Пикамера v2 с ограниченной частотой кадров

Вопрос о частоте кадров на пикамере v2: Согласно документации picamera, следующие частоты кадров возможны для этого оборудования:

Resolution  Aspect Ratio    Framerates  Video   Image   FoV     Binning
1   1920x1080   16:9    0.1-30fps   x       Partial     None
2   3280x2464   4:3     0.1-15fps   x   x   Full    None
3   3280x2464   4:3     0.1-15fps   x   x   Full    None
4   1640x1232   4:3     0.1-40fps   x       Full    2x2
5   1640x922    16:9    0.1-40fps   x       Full    2x2
6   1280x720    16:9    40-90fps    x       Partial     2x2
7   640x480     4:3     40-90fps    x       Partial     2x2

Однако при сборе изображений с помощью метода capture_sequence (который в документации упоминается как самый быстрый метод) я не приближаюсь к этим цифрам.

Для скорости 1280x720 максимальная частота кадров составляет 25 кадров в секунду, а для 640x480 — около 60.

Вычисления, которые я выполняю, не имеют значения, то есть их комментирование не имеет значения (вычисления выполняются достаточно быстро, чтобы не быть причиной проблемы). Если бы кто-нибудь увидел некоторые недостатки в том, что я пытаюсь сделать, и решил бы увеличить частоту кадров ... .

import io
import time
import picamera
#import multiprocessing
from multiprocessing.pool import ThreadPool
#import threading
import cv2
#from PIL import Image
from referenceimage import ReferenceImage
from detectobject_stream import detectobject_stream
from collections import deque
from datawriter import DataWriter


backgroundimage=ReferenceImage()
threadn = cv2.getNumberOfCPUs()
pool = ThreadPool(processes = threadn)
pending = deque()
Numberofimages=500

starttime=time.time()

#datawrite=DataWriter()
#datawrite.start()

def outputs():
    stream = io.BytesIO()
    Start=True
    global backgroundimage
    for i in range(Numberofimages):
        yield stream

        #print time.time()-starttime
        #start = time.time()
        while len(pending) > 0 and pending[0].ready():
            timestamps = pending.popleft().get()
            #print timestamps   

        if len(pending)<threadn:
            stream.seek(0)
            task = pool.apply_async(detectobject_stream, (stream.getvalue(),backgroundimage,Start,0))
        pending.append(task)   

        Start=False

        stoptime = time.time()

        print stoptime-start

        stream.seek(0)
        stream.truncate()
        #print i

with picamera.PiCamera() as camera:
    #camera.resolution = (640, 480)
    camera.resolution = (1280, 720)
    camera.framerate = 60
    camera.start_preview()

    time.sleep(2)
    start = time.time()
    camera.capture_sequence(outputs(),format='bgr',use_video_port=True)
    finish = time.time()
    print('Captured images at %.2ffps' % (Numberofimages / (finish - start)))

заранее спасибо


person Stijn G    schedule 21.07.2016    source источник
comment
Это питон? Он должен быть помечен языком программирования — вы можете получить больше просмотров от правильной группы.   -  person dbmitch    schedule 22.07.2016
comment
да, добавил python в теги   -  person Stijn G    schedule 22.07.2016
comment
Какая ОС установлена ​​- Raspbian Jessie или LIte или что-то еще? На что у вас настроена память графического процессора?   -  person dbmitch    schedule 22.07.2016
comment
Проблема уже решена :) raspberrypi.org /форумы/. спасибо   -  person Stijn G    schedule 24.07.2016