Использование Kinect v1 в качестве веб-камеры в Python

Итак, последние пару дней я пытался использовать свой Kinect v1 (1414) в качестве веб-камеры для проекта с OpenCV (я использую Ubuntu 16.04) . Я уже установил Openkinect freenect (несколько раз) и OpenNI, и я получаю вывод видео, когда запускаю sudo freenect-glview . Когда я запускаю lsusb , он распознает камеру и двигатель.

Bus 001 Device 017: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
Bus 001 Device 014: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 016: ID 045e:02bb Microsoft Corp.

Проблема возникает, когда я пытаюсь использовать камеру как простую веб-камеру для проекта python-OpenCV. Итак, когда в python я запускаю cv2.VideoCapture (0) , консоль показывает следующую ошибку:

[ WARN:0] VIDEOIO(V4L2:/dev/video0): can't open camera by index

Итак, я прочитал, что использование cv2.VideoCapture (-1) может работать , но затем появляется следующая ошибка:

[ WARN:0] VIDEOIO(V4L2): can't find camera device

После поиска ошибки в Интернете люди говорили, что если я не могу найти v4l2src , то необходимо установить Gstream, поэтому я сделал, попробовал с 1.0 и 0.10, но ни один из них не работал.Я также пробовал запустить ls -ltrh / dev / video * , но показал ls: cannot access '/ dev / video *': нет такого файла или каталога или запущен v4l2- ctl --list-devices показывает Не удалось открыть / dev / video0: Нет такого файла или каталога

В конце концов, я понял, что мне нужно найти способ заставить камеру распознаваться система (dev / video0) . но до сих пор мне не удавалось добиться успеха, поэтому теперь я прихожу к вам и спрашиваю, была ли у кого-нибудь такая же проблема раньше и / или знаете ли вы, как реши.

Заранее спасибо.

0
задан 6 April 2020 в 08:06

1 ответ

Так что я наконец смог решить эту проблему. Что вам нужно проверить, так это следующее:

Если запуск -ltrh /dev/video* показывает ls: невозможно получить доступ к '/dev/video*, вам необходимо " gcspa_kinect (По-видимому, freenect не позволяет использовать его после запуска yopu, например freenect-glview. "Переустановка" выполняется следующим образом:

sudo modprobe - r gcspa_kinect, а затем sudo modprobe gcspa_kinect.

Если вы снова запустите -ltrh /dev/video*, он покажет распознанное устройство. Теперь вы можете использовать, например, Сыр, чтобы убедиться, что камера работает.

Если вы снова запустите freenect-glview, вам нужно будет повторить процесс.

Если кто-нибудь знает, как сделать постоянное решение, как сделать так, чтобы камера распознавалась системой как веб-камера, и при этом иметь возможность использовать freenect, это было бы здорово!!

1
ответ дан 17 April 2020 в 16:19

Другие вопросы по тегам:

Похожие вопросы: