공대생 잡학사전/ROS

Virtual Box Ubuntu 20.04에서 OpenCV를 활용해 Webcam 사용하기

내이릉망고 2022. 12. 16. 02:05

제가 다니는 대학교에서 로봇운영체제(ROS) 관련 교과목을 들으며 진행한 프로젝트의 과정입니다.

 

저는 Virtual Box 를 이용해 Ubuntu 20.04 개발 환경을 구축하였습니다.

 

가상 머신에 Ubuntu 20.04 설치를 위해 아래 블로그 주소를 참고하면 됩니다. 

 

1. Virtual Box - Ubuntu 20.04

https://truelifer.medium.com/virtual-box-%EC%97%90-ubuntu-20-04-lts-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-71ab044eb4f8

 

Virtual Box 에 Ubuntu 20.04 LTS 설치하기

무엇인가를 개발하려면 그에 앞서 개발환경 셋업이 먼저 이루어져야 합니다. 특히나 서버를 개발한다고 하면 주로 Linux 환경을 선택하게 됩니다. 이유로는 여러가지가 있지만 가장 큰 이유는 무

truelifer.medium.com

 

설치가 끝나면 본격적으로 OpenCV 설치를 진행합니다.  버전은 OpenCV 4.0.0 입니다

 

우선 OpenCV에서 필요한 종속 패키지를 설치합니다. 

sudo apt install libjpeg-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev \
	libswscale-dev libdc1394-22-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev \
	v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk-3-dev
wget -O opencv-4.0.0.zip https://github.com/opencv/opencv/archive/4.0.0.zip
wget -O opencv_contrib-4.0.0.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

다운로드가 완료되면 압축을 해제합니다.

unzip opencv-4.0.0.zip
unzip opencv_contrib-4.0.0.zip

다음 OpenCV 소스코드를 빌드합니다.

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_WITH_DEBUG_INFO=OFF -D BUILD_EXAMPLES=ON -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.0.0/modules -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_TBB=ON ../opencv-4.0.0/
make
sudo make install
sudo ldconfig

 

OpenCV가 정상적으로 설치 됬는지 확인을 위해 버전을 출력해봅니다.

pkg-config --modversion opencv4

 

 

정상적으로 설치를 완료했습니다!

 

설치를 진행할때 참고한 블로그 주소입니다

https://makepluscode.tistory.com/91?category=1021038 

 

[OPENCV] Ubuntu 20.04 OpenCV 4.0.0 설치하기

Ubuntu 20.04 OpenCV 설치하기 OpenCV (Open Source Computer Vision)은 실시간 컴퓨터비전 개발을 위한 프로그래밍 라이브러리이다. 초기에는 인텔이 개발하였기 때문에, CPU에서 가속되는 IPP(Intel Performance Primit

makepluscode.tistory.com

 

다음은 가상머신에서 Webcam을 사용하기 위해 사전 작업을 진행해야 합니다. 

 

물론 가상머신을 활용하지 않고 Ubuntu 20.04를 사용하는 것이라면 생략해도 됩니다. 

 

버추얼 머신에서 우분투는 게스트 운영체제 이기 때문에 사전 작업 없이는 우분투에서 노트북에 내장된 Webcam을 불러올 수 없습니다. 

 

우선 실행중인 가상 머신을 종료한 후, 아래 사이트에 가서 VirtualBox Extension Pack을 다운로드 받아 설치합니다.

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.1 packages, see Virt

www.virtualbox.org

 

설치를 완료하면 가상 머신의 설정에서 USB 3.0 컨트롤러를 사용하도록 변경합니다. 

 

다음 윈도우 창에서 cmd를 검색해 명령 프롬프트를 엽니다.

명령 프롬프트에서 아래 코드를 입력해 컴퓨터에 연결된 웹캠을 확인합니다.

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list webcams

그럼 아래와 같은 결과를 출력합니다. 

여기서 노트북에 내장된 웹캠의 주소 ( 노란색 주소)를 따로 저장해 둡니다

Video Input Devices: 2
.1 "HP Wide Vision HD Camera"
\\?\usb#vid_04f2&pid_b6b6&mi_00#6&12293a26&1&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
.2 "Logi Capture"
@device:sw:{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4A2FEA90-B0A0-438E-8BC3-D84157660D0A}

 

그런 다음 다시 가상 머신을 실행해 가상머신 창의 메뉴에서 장치 -> 웹갬에 체크된 웹캠을 체크해제 합니다.

 

우분투 부팅이 완료 되면 다시 cmd를 검색해 윈도우의 명령 프롬프트에서 다음 명령어를 입력합니다.

이 명령어는 앞에서 저장해두었던 웹캠의 경로를 입력하여 웹캠을 가상 머신에 연결합니다. ( 이때 경로를 큰 따옴표 ""를 사용해야 합니다.)

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "VM name" webcam list " 저장한 웹캠 주소"

저는 VM name이 Ubuntu 20.04 이므로 아래와 같이 입력했습니다.

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "Ubuntu 20.04" webcam list "\\?\usb#vid_04f2&pid_b6b6&mi_00#6&12293a26&1&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"

 

가상 머신 창에서 확인해보면 메뉴의 장치-> 웹캠이 자동으로 체크 됩니다. 

 

체크됬음을 확인 했으면 우분투 환경으로 돌아와서 웹캠이 잘 연결 됬는지 아래 명령을 입력하면

ls /dev/video*

 

웹캠이 잘 연결 됬음을 확인할 수 있습니다.

 

실제 영상을 확인하기 위해 아래 명령어를 입력하면

sudo apt-get install vlc
vlc v412:///dev/video0

잘 출력 되는것을 확인할 수 있습니다.

이 과정 또한 아래 사이트를 참고하였습니다.

https://webnautes.tistory.com/1371

 

VirtualBox에 설치된 Ubuntu에서 웹캠(webcam) 사용하는 방법

버추얼박스에 설치된 우분투에서 웹캠을 사용하는 방법을 다룹니다. 최초작성 2019. 8. 23 버추얼박스의 가상머신 창에 있는 메뉴를 보면 아래 스크린샷처럼 장치 > 웹캠에서 컴퓨터에 연결되어

webnautes.tistory.com

 

다음시간에는 ROS2 topic을 활용해 사진을 Publish, Subscribe 하는것을 다뤄보겠습니다.