Страница 2 из 2
Re: какое устройство - WEB камера?
Добавлено: 14 авг 2018, 11:34
Olej
Olej писал(а):
Очень интересно! :
Video4Linux
Video4Linux (v4l) — интерфейс прикладного программирования (API) аудио и видео захвата для операционных систем семейства Linux[1]. Video4Linux тесно интегрируется с ядром Linux. Поддержка v4l появилась в конце цикла развития ядра Linux 2.1.X. Поддерживается большое количество веб-камер и видео устройств — плат видеозахвата, ТВ-тюнеров, плат приёма DVB.
И спецификация:
Linux Media Subsystem Documentation.
Где даже по отдельным конкретным моделям драйверов разделы, типа:
24. Qualcomm Camera Subsystem driver
Re: какое устройство - WEB камера?
Добавлено: 15 авг 2018, 11:56
Olej
Вот такой скрипт, по итогам:
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys, commands, cv2, re
vd = []
stat, ls = commands.getstatusoutput( 'ls -l /dev/v4l/by-id' )
if stat != 0:
print( 'no video cameras!' )
sys.exit( 0 )
for dir in ls.splitlines():
i = dir.find( 'index' )
if i < 0: continue
vv = dir[ i: ].split( ' -> ' )
if int( vv[ 0 ][ ( re.search( '\d', vv[ 0 ] ).start( 0 ) ): ] ) != 0:
continue # index not 0
print( vv[ 0 ].strip(), ' | ', vv[ 1 ].strip( ' ./' ) )
vd.append( int( vv[ 1 ][ ( re.search( '\d', vv[ 1 ] ).start( 0 ) ): ] ) )
print( vd )
На десктопе где 2 WEB-камеры висят на USB:
Код: Выделить всё
[olej@xenix Face_recognition]$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
[olej@xenix Face_recognition]$ lsusb
Bus 001 Device 004: ID 0c45:62f0 Microdia
Bus 001 Device 003: ID 1908:2310 GEMBIRD
...
[olej@xenix Face_recognition]$ python find_video.py
('index0', ' | ', 'video0')
('index0', ' | ', 'video2')
[0, 2]
На другом десктопе, где на USB висит всё что угодно, только не WEB-камеры:
Код: Выделить всё
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ lsusb
Bus 001 Device 007: ID 14cd:168a Super Top
Bus 001 Device 004: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 05d8:4002 Ultima Electronics Corp. Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 2101:020f ActionStar
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ ls /dev/video*
ls: невозможно получить доступ к '/dev/video*': Нет такого файла или каталога
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ python find_video.py
no video cameras!
На SBC DragonBoard 410c ARM64:
Код: Выделить всё
linaro@linaro-alip:~/Face$ uname -a
Linux linaro-alip 4.14.0-qcomlt-arm64 #1 SMP PREEMPT Fri Feb 2 21:19:01 UTC 2018 aarch64 GNU/Linux
linaro@linaro-alip:~/Face$ lsusb
Bus 001 Device 016: ID 046d:082b Logitech, Inc. Webcam C170
Bus 001 Device 015: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Bus 001 Device 014: ID 046d:c03d Logitech, Inc. M-BT96a Pilot Optical Mouse
Bus 001 Device 017: ID 07a6:8515 ADMtek, Inc. AN8515 Ethernet
Bus 001 Device 013: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 0424:2513 Standard Microsystems Corp. 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
linaro@linaro-alip:~/Face$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2
linaro@linaro-alip:~/Face$
linaro@linaro-alip:~/Face$ python find_video.py
('index0', ' | ', 'video2')
[2]
Re: какое устройство - WEB камера?
Добавлено: 15 авг 2018, 12:31
Olej
Olej писал(а):На SBC DragonBoard 410c ARM64:
Вот такая игрушка: Orange Pi One
Код: Выделить всё
___ ____ _ ___
/ _ \ _ __ __ _ _ __ __ _ ___ | _ \(_) / _ \ _ __ ___
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | | | | '_ \ / _ \
| |_| | | | (_| | | | | (_| | __/ | __/| | | |_| | | | | __/
\___/|_| \__,_|_| |_|\__, |\___| |_| |_| \___/|_| |_|\___|
|___/
Welcome to ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.48-sunxi
System load: 1.34 1.72 1.00 Up time: 8 min
Memory usage: 10 % of 493MB IP: 192.168.1.201
CPU temp: 47°C
Usage of /: 94% of 1.7G
[ 0 security updates available, 1 updates total: apt upgrade ]
Last check: 2018-06-30 13:17
Код: Выделить всё
olej@orangepione:~$ uname -a
Linux orangepione 4.14.48-sunxi #1 SMP Wed Jun 6 19:14:27 EEST 2018 armv7l GNU/Linux
olej@orangepione:~$ lsusb
Bus 004 Device 004: ID 1908:2310 GEMBIRD
Bus 004 Device 003: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 004 Device 002: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Здесь вообще ничего нет на USB (не считая клавиатуры и мышки) кроме всё той же WEB-камеры 1908:2310 GEMBIRD
Код: Выделить всё
olej@orangepione:~$ ls /dev/video*
/dev/video0
olej@orangepione:~$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 авг 15 12:15 /dev/video0
Но здесь она же, в отличие от стационара выше, отображается только как единичное устройство /dev/video0
Код: Выделить всё
olej@orangepione:~$ ls -l /dev/v4l/by-id/
total 0
lrwxrwxrwx 1 root root 12 авг 15 12:15 usb-Generic_USB2.0_PC_CAMERA-video-index0 -> ../../video0
Код: Выделить всё
olej@orangepione:~$ python find_video.py
Traceback (most recent call last):
File "find_video.py", line 3, in <module>
import os, sys, commands, cv2, re
ImportError: No module named cv2
Естественно
Re: какое устройство - WEB камера?
Добавлено: 15 авг 2018, 13:37
Olej
Olej писал(а):
На десктопе где 2 WEB-камеры висят на USB:
Код: Выделить всё
[olej@xenix Face_recognition]$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
[olej@xenix Face_recognition]$ lsusb
Bus 001 Device 004: ID 0c45:62f0 Microdia
Bus 001 Device 003: ID 1908:2310 GEMBIRD
...
[olej@xenix Face_recognition]$ python find_video.py
('index0', ' | ', 'video0')
('index0', ' | ', 'video2')
[0, 2]
Вот
ровно на том же десктопе, когда одна из камер отключена:
Код: Выделить всё
[olej@xenix Face_recognition]$ lsusb
Bus 001 Device 004: ID 0c45:62f0 Microdia
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 2101:020f ActionStar
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
[olej@xenix Face_recognition]$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 2 авг 14 10:13 /dev/video2
crw-rw----+ 1 root video 81, 3 авг 14 10:13 /dev/video3
[olej@xenix Face_recognition]$ python find_video.py
('index0', ' | ', 'video2')
[2]
Как легко видеть, разобраться в /dev/video* "на глаз" не так то и просто.
Re: какое устройство - WEB камера?
Добавлено: 15 авг 2018, 13:42
Olej
Olej писал(а):Естественно
Но для этого скрипта вовсе не нужен OpenCV.
Достаточно строку импорта упростить до:
И вот на том же Orange Pi One:
Код: Выделить всё
olej@orangepione:~$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 авг 15 12:15 /dev/video0
olej@orangepione:~$ python find_video.py
('index0', ' | ', 'video0')
[0]
Re: какое устройство - WEB камера?
Добавлено: 15 авг 2018, 13:46
Olej
Olej писал(а):
Но для этого скрипта вовсе не нужен OpenCV.
В конечном итоге, для работы с видео в OpenCV (а это всё и делалось для OpenCV) создались 2 функции:
Код: Выделить всё
def get_cameras():
vd = []
stat, ls = commands.getstatusoutput( 'ls -l /dev/v4l/by-id' )
if stat != 0: return vd
for dir in ls.splitlines():
i = dir.find( 'index' )
if i < 0: continue
vv = dir[ i: ].split( ' -> ' )
if int( vv[ 0 ][ ( re.search( '\d', vv[ 0 ] ).start( 0 ) ): ] ) != 0:
continue # index not 0
vd.append( int( vv[ 1 ][ ( re.search( '\d', vv[ 1 ] ).start( 0 ) ): ] ) )
return vd
def get_default():
vd = get_cameras()
if len( vd ) != 0: return vd[ 0 ]
else: return -1
get_cameras() - возвращает список номеров доступных камер;
get_default() - возвращает камеру по умолчанию, когда не хочется указывать конкретно - это 1-я камера в списке get_cameras();
Re: какое устройство - WEB камера?
Добавлено: 13 сен 2022, 23:54
Olej
Опять возник интерес к теме в связи с разборкой с камерой Genius VideoCam GE111 (
USB камера 093a:2471).
Код: Выделить всё
root@HP-Compaq:/dev/v4l/by-id# ls -l /dev/v4l/by-id
итого 0
lrwxrwxrwx 1 root root 12 фев 2 17:36 usb-Pixart_Imaging_Inc._CIF_Single_Chip-video-index0 -> ../../video0
какое устройство - WEB камера?
Добавлено: 25 янв 2023, 16:58
Olej
Olej писал(а): ↑13 сен 2022, 23:54
Опять возник интерес к теме в связи с разборкой с камерой Genius VideoCam GE111
И опять, в связи с диагностикой работоспособности камеры:
диагностика WEB-камеры.