В настоящее время пытается одновременно захватить 10 изображений с 10 USB-камер, подключенных к Raspberry Pi 4 (через USB-порты платы и USB-концентратор) с установленной Ubuntu 18.04. Я использую многопоточный подход для создания нескольких объектов камеры, которые будут снимать фотографии. В настоящее время он работает с 4 камерами (доходит до /dev/video7, при этом каждая физическая камера занимает 2 указателя устройства.
Проблема, с которой я сталкиваюсь в настоящее время, заключается в доступе к любому устройству камеры с индексом больше 7 (физическая камера 5 или выше не будет доступна). В настоящее время я получаю следующую ошибку:
ВИДЕО ОШИБКА: V4L: индекс 8 неверен!
который связан с исходным файлом opencv_3.4.1, расположенным в modules/videoio/src/cap_v4l.cpp. В этом исходном файле упоминается, что он был протестирован до 8 входов, кому-нибудь удалось получить более 8 устройств ввода для захвата фотографий с помощью Raspberry Pi?
Я также добавлю немного отладочной информации, которую я уже пробовал.
- Изменено #define MAX_CAMERAS 8 (находится в cap_v4l.cpp) на большее значение и перестроен модуль opencv, однако это не повлияло.
- Я также пытался просто получить доступ к любой камере с индексом устройства, превышающим 7, и он все еще сохраняется.
- Мне удалось получить доступ к этим камерам с помощью usb_cam на ROS melodic, поэтому они работают и подключаются правильно. Я бы предпочел, чтобы это работало через opencv-python, если это возможно, но если решения не возникнет, я изучу подход ROS для решения задачи.
Любая помощь или совет приветствуется, спасибо.