반응형
막연히 같은 버스에 두 개가 연결되면 대역폭이 부족해서 제대로 동작을 안하는 거라 생각했었다.
실제로도 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 python - 극좌표를 이용하여 방사형으로 라인 그리기 (0) | 2015.11.07 |
---|---|
허프라인(HoughLine) 태스트 (9) | 2015.10.23 |
opencv에서 2대이상의 카메라 사용하기 (17) | 2015.09.24 |
OpenCV 튜토리얼 – OpenCV를 사용하여 두 개의 이미지를 더하기(블렌딩) (6) | 2015.02.08 |
OpenCV 튜토리얼 – 마스크(mask) 오퍼레이션 (0) | 2015.01.09 |
OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 2/2 (0) | 2015.01.08 |
OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 1/2 (2) | 2015.01.06 |
opencv에서 두 대 이상의 webcam 사용하여 캡처하기 (6) | 2010.04.04 |
포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
개선 사항을 댓글로 남겨주면 가능한 빨리 반영하도록 하겠습니다.
여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다.
감사합니다 ~~
유튜브 구독하기
제가 쓴 책도 한번 검토해보세요 ^^
-
-
학생 2016.07.20 14:03
감사합니다. 웹캠과 파이캠 동시에 띄우는데 성공했습니다.
이 두영상을 각기 다른 영상처리를 하려고 하는데 램이 넉넉할까요?
부족하다면 스트리밍 영상을 전부가 아닌 일부만 받아와서 해야하나요? -
학생 2016.07.20 18:11
그럼 PC에서 웹캠으로 얼굴인식을 하고 라즈베리파이에서 파이캠으로 차선인식을 동시에 처리하려면
원격제어를 해야하나요? 여기선 갈피를 못잡겠습니다.