opencv에서 두 대 이상의 webcam 사용하여 캡처하기OpenCV/OpenCV 강좌2010. 4. 4. 23:20
Table of Contents
반응형
예전에 아이토이(소니 플레이스테이션용 카메라) 네 개를 컴퓨터에 연결하려고 했었을 때에는
막연히 같은 버스에 두 개가 연결되면 대역폭이 부족해서 제대로 동작을 안하는 거라 생각했었다.
실제로도 lsusb 명령으로 확인해 가며 두 개의 웹캠이 같은 bus에 연결되지 않게 하면 잘 동작했었다.
지금 생각해보면 USB 규격에 따라 최대 전송속도가 다르다..
USB 1.1은 12Mbps (= 1.5M byte/s) , USB 2.0은 480Mbps ( = 60M byte/s )
USB 1.1에서는 두 개의 웹캠을 돌리는 것은 무리같지만
usb 2.0 포트에 두 개를 같이 연결해도 동작하는지 테스트해봤는지 궁금해졌다.
웹캠 하나를 연결한 후 , lsusb 명령을 사용해보니 Bus 1에 장치 정보가 추가되있었다.
하나를 추가했는데 2개가 달리는 이유는 잘모르겠지만.. 자세히 보면 if 0, if 1으로 좀 차이가 있다.
그리고 USB 1.1 드라이버는 ohci와 uhci 방식을 지원하고 USB 2.0 드라이버는 ehci방식을 지원한다.
추가로 웹캠을 하나 더 연결했더니 BUS 1을 공유한다.
USB 2.0이라 두대가 연결되어도 대역폭은 충분한지..
opencv에서 돌려봤는데 잘된다.
이런 것 때문에 이런 고생한다는 게......
막연히 같은 버스에 두 개가 연결되면 대역폭이 부족해서 제대로 동작을 안하는 거라 생각했었다.
실제로도 lsusb 명령으로 확인해 가며 두 개의 웹캠이 같은 bus에 연결되지 않게 하면 잘 동작했었다.
지금 생각해보면 USB 규격에 따라 최대 전송속도가 다르다..
USB 1.1은 12Mbps (= 1.5M byte/s) , USB 2.0은 480Mbps ( = 60M byte/s )
USB 1.1에서는 두 개의 웹캠을 돌리는 것은 무리같지만
usb 2.0 포트에 두 개를 같이 연결해도 동작하는지 테스트해봤는지 궁금해졌다.
웹캠 하나를 연결한 후 , lsusb 명령을 사용해보니 Bus 1에 장치 정보가 추가되있었다.
하나를 추가했는데 2개가 달리는 이유는 잘모르겠지만.. 자세히 보면 if 0, if 1으로 좀 차이가 있다.
그리고 USB 1.1 드라이버는 ohci와 uhci 방식을 지원하고 USB 2.0 드라이버는 ehci방식을 지원한다.
$ lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
추가로 웹캠을 하나 더 연결했더니 BUS 1을 공유한다.
USB 2.0이라 두대가 연결되어도 대역폭은 충분한지..
opencv에서 돌려봤는데 잘된다.
$ lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 2: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 5, If 3, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 2: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 5, If 3, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
이런 것 때문에 이런 고생한다는 게......
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
opencv에서 2대이상의 카메라 사용하기 (34) | 2015.09.24 |
---|---|
OpenCV 튜토리얼 – OpenCV를 사용하여 두 개의 이미지를 더하기(블렌딩) (6) | 2015.02.08 |
OpenCV 튜토리얼 – 마스크(mask) 오퍼레이션 (0) | 2015.01.09 |
OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 2/2 (6) | 2015.01.08 |
OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 1/2 (2) | 2015.01.06 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!