Оптимизация OpenCV FPS
Как я могу увеличить opencv
видео FPS в Linux на Intel Atom? Видео кажется запаздывающим при обработке с библиотеками opencv.
Кроме того, я пытаюсь выполнить программу / файл с opencv
Система (/home/file/image.jpg);
тем не менее, он показывает доступ запрещен.
2 ответа
Есть несколько вещей, которые вы можете сделать, чтобы улучшить производительность. Использование OpenGL, графических процессоров и даже просто отключение определенных функций в OpenCV. При захвате видео вы также можете изменить FPS по умолчанию, который иногда устанавливается на низком уровне. Если вы получаете отказ в доступе к этому файлу, я бы проверил разрешения, но без установки полной ошибки, это трудно понять.
Первый - это пример отключения преобразования, а второй - установка желаемого FPS. Я думаю, что эти определения изменены в OpenCV 3, хотя.
cap.set(CV_CAP_PROP_CONVERT_RGB , false);
cap.set(CV_CAP_PROP_FPS , 60);
Судя по вашему вопросу, кажется, у вас есть проблема в том, что ваш буфер кадров собирает много кадров, которые вы не можете очистить до достижения кадра в реальном времени. т.е. захват кадра сейчас обрабатывается несколько секунд спустя. Правильно ли я понимаю?
В этом случае я бы предложил несколько вещей,
- Используйте отдельный поток, чтобы получить кадры из VideoCapture, а затем поместить эти кадры в очередь ограниченного размера. Конечно, это приведет к отсутствию кадров, но если вы заинтересованы в обработке в реальном времени, то эта стоимость часто оправдана.
- Если вы используете ООП, то я могу предложить использовать отдельный поток для каждого объекта, поскольку это значительно ускоряет обработку. Вы можете увидеть увеличение в несколько раз в зависимости от приложения и используемых функций.