티스토리 뷰
라즈베리파이에서 V4L2기반의 OpenCV를 설치하는 내용을 다루겠습니다.
우선 V4L2(Video4Linux2)에 대해서 설명하자면, 리눅스에서 카메라 입력을 받기 위한 표준 디바이스로서 V4L2를 설치 후 활성화 시에 사용자 프로그램이 커널을 통해 I/O요청을 확인하고 장치 드라이버로 전송이 이루어지는 것이 가능해집니다.
이러한 것처럼 사용자 프로크램이 커널을 통해 시스템 하드웨어에 접근 할 수 있도록 /dev/video0 라는 파일이 생성됩니다. 사용자는 /dev/video0 을 통해 자료을 읽거나 기타 장치로 자료를 전송이 가능합니다.
(/dev/video0 의 숫자 0은 인덱스 번호입니다.)
V4L2 는 OpenCV를 포함한 여러 소프트웨어들을 지원합니다.
우선 라즈베리파이에 접속을 합니다.
직접 라즈베리 파이의 x윈도우에서 명령을 입력해도 되나 라즈베리파이에 모니터, 키보드, 마우스 꼽는게 여간 귀찮은 일이 아닙니다. 더욱 모니터가 한 개 일 경우에는 꼽았다 뺐다하는 일이 매우 성가십니다.
그래서 이렇게 스위치에 물려놓고 ssh 를 이용하여 접속하는게 마음이 편합니다.
ssh 접속방법은 다들 아시겠지만 그냥 config 에서 ssh enable 설정을 해주시면 됩니다.
윈도우에서 putty 같은 것으로 접속을 해도되지만 추천드리는 것은 리눅스(우분투)에서 ssh 로 접속 하는 것입니다. 바로 ssh -X 옵션을 이용해서 접속하는 것인데요.
-X 옵션이 뭔가하면
basis in a configuration file.
X11 forwarding should be enabled with caution. Users with the
ability to bypass file permissions on the remote host (for the
user's X authorization database) can access the local X11 display
through the forwarded connection. An attacker may then be able
to perform activities such as keystroke monitoring.
For this reason, X11 forwarding is subjected to X11 SECURITY
extension restrictions by default. Please refer to the ssh -Y
option and the ForwardX11Trusted directive in ssh_config(5) for
more information.
라고 하네요. 허허허헣 이렇게 편리할 수가. 대충 어떤 장점인가 보여드리자면.
이렇게 라즈베리파이 카메라에서 입력받는 영상을 포워딩해서 우분투에서 바로 볼 수가 있습니다. 이렇게되면 굳이 라즈베리파이에 모니터를 연결해야되는 번거로움이 없어집니다.
그러므로 -X 옵션으로 ssh 원격접속을 해줍니다.
이제 접속을 하셔서 카메라 장치를 활성화 시켜주셔야 합니다.
그림과 같이 Enable Camera 를 선택해 <Enable> 로 선택해주시고 재부팅을 해줍니다.
위의 명령어로 제대로 카메라가 등록이 되었는지 확인해줍니다.
이제 V4L2 패키지를 설치해줄 차례입니다.
$ sudo vi /etc/apt/sources.list
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
source.list 파일을 열어 위의 저장소를 추가해줍니다.
$ sudo apt-get update
$ sudo apt-get install uv4l uv4l-raspicam
$ uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg --frame-time 0
그리고 마지막으로 OpenCV를 설치해주면 됩니다.
이상 라즈베리파이에서 V4L2 기반의 OpenCV 를 설치하는 방법이었습니다.