프로젝트에서 필요한 OpenCV 라이브러리를 설치해야했습니다. 그러나 아래와 같은 기존의 설치방식
6편 : 라즈베리 파이에 OpenCV 설치하기
라즈베리 파이에 OpenCV 설치하기프로젝트 목차0편 : 개요1편 : 라즈베리 파이에 라즈비안(OS) 설치(...
blog.naver.com
으로 설치하는경우 라즈베리파이 제로 W의 경우 time make 명령어를 입력하고 OpenCV 컴파일 시간을 확인한 결과 무려 16시간이 소요된다는 사실을 깨달았습니다.(3번이나 삽질했죠 ㅎㅎ)
어떻게 해야 OpenCV 설치시간을 단축시킬 수 있을지 고민하다가 다음과 같은 방법을 찾아내었습니다.
VMWare Workstation Download Link
우선 VMware Workstation Player를 다운로드한 뒤
https://ubuntu.com/download/desktop
Download Ubuntu Desktop | Download | Ubuntu
Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.
ubuntu.com
우분투를 설치합니다.
우분투를 설치한뒤 터미널을 열어줍니다. 그다음 다음과 같이 진행합니다.
sudo apt update
sudo apt upgrade
우선 우분투를 최신화시켜줍니다. 다음과정은 우분투에 라즈베리파이 제로와 동일한 시스템을 설치하는 과정입니다.
sudo apt install qemu-user-static debootstrap
mkdir raspbian
sudo debootstrap --no-check-gpg --foreign --arch=armhf buster ~/raspbian http://archive.raspbian.org/raspbian
sudo cp /usr/bin/qemu-arm-static ~/raspbian/usr/bin
sudo chroot ~/raspbian /debootstrap/debootstrap --second-stage
sudo chroot ~/raspbian apt update
sudo chroot ~/raspbian apt upgrade
sudo chroot ~/raspbian
이 과정을 통해 X86-64 시스템에서 ARM 시스템을 만들게 되었습니다. ARM 에뮬레이터 밖으로 나가고 싶다면
sudo chroot ~/raspbian
을 입력하면 됩니다.
이제 OpenCV 설치에 필요한 라이브러리들을 설치해야하는데 한번에 되지 않을 가능성이 높습니다. 그럴때는 라즈베리파이 라이브러리 미러 서버를 변경해줍니다.
nano /etc/apt/sources.list
를 입력해준뒤
deb http://ftp.kaist.ac.kr/raspbian/raspbian/ buster main contrib non-free rpi
이렇게 바꾸어주고 저장해줍니다.
아래 적혀있는 모든 라이브러리를 설치해줍니다.
apt install build-essential gfortran
apt install cmake git pkg-config wget
파이썬 2,3을 설치해줍니다.
apt install python-dev python-numpy python3-dev python3-numpy
GUI 라이브러리를 설치해줍니다.
apt install libgtk-3-dev libcanberra-gtk3-dev
이미지, 비디오 라이브러리를 설치해줍니다.
apt install libtiff-dev zlib1g-dev
apt install libjpeg-dev libpng-dev
apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
apt install libxvidcore-dev libx264-dev
Opencv 4.1.0버전을 설치해줍니다.
mkdir opencv_all && cd opencv_all
wget -O opencv.tar.gz https://github.com/opencv/opencv/archive/4.1.0.tar.gz
tar xf opencv.tar.gz
wget -O opencv_contrib.tar.gz https://github.com/opencv/opencv_contrib/archive/4.1.0.tar.gz
tar xf opencv_contrib.tar.gz
rm *.tar.gz
opencv 4.1.0 디렉토리로 갑니다.
cd opencv-4.1.0
mkdir build && cd build
Cmake 빌드 스크립트를 입력해줍니다.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/opt/opencv-4.1.0 \
-D OPENCV_EXTRA_MODULES_PATH=/opencv_all/opencv_contrib-4.1.0/modules \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_TESTS=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_OPENCV_PYTHON2=ON \
-D BUILD_OPENCV_PYTHON3=ON \
-D BUILD_EXAMPLES=OFF ..
빌드를 시작합니다.
make -j16
빌드가 끝나면 아래 라이브러리를 설치해줍니다.
make install/strip
마지막입니다. 다음과 같은 경로로 이동합니다.
cd /opt/opencv-4.1.0/lib/python3.7/dist-packages/cv2/python-3.7/
cp cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
라즈베리파이 제로로 옮길 파일을 만들어봅시다.
cd /opt
tar -cjvf /opencv_all/opencv-4.1.0-pizero.tar.bz2 opencv-4.1.0
opencv-4.1.0-pizero.tar.bz2파일을 라즈베리파이 제로로 옮깁니다.
이제 라즈베리파이 제로에서 필요한 OpenCV 라이브러리를 모두 설치해줍니다.
sudo apt install libgtk-3-dev libcanberra-gtk3-dev
sudo apt install libtiff-dev zlib1g-dev
sudo apt install libjpeg-dev libpng-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt install python3-numpy
sudo apt install python-numpy
그다음 opencv-4.1.0-pizero.tar.bz2파일의 압축을 해제해준 다음 /opt 폴더로 이동시킵니다.
tar xfv opencv-4.1.0-pizero.tar.bz2
sudo mv opencv-4.1.0 /opt
다음 명령어를 통해 라이브러리 경로를 지정해줍니다.
echo 'export LD_LIBRARY_PATH=/opt/opencv-4.1.0/lib:$LD_LIBRARY_PATH' >> .bashrc
source .bashrc
터미널을 로그아웃하고 다시 로그인한 뒤 다음과 같이 입력합니다.
sudo ln -s /opt/opencv-4.1.0/lib/python2.7/dist-packages/cv2 /usr/lib/python2.7/dist-packages/cv2
sudo ln -s /opt/opencv-4.1.0/lib/python3.7/dist-packages/cv2 /usr/lib/python3/dist-packages/cv2
Git이 설치되어있지 않다면 다음 명령어를 통해 설치합니다.
sudo apt install git
compile세팅값들을 github을 통해서 다운로드합니다.
git clone https://gist.github.com/sol-prog/ed383474872958081985de733eaf352d opencv_cpp_compile_settings
cd opencv_cpp_compile_settings/
sudo cp opencv.pc /usr/lib/arm-linux-gnueabihf/pkgconfig
cd ~
rm -rf opencv_cpp_compile_settings/
이제 파이썬 혹은 C++ Opencv를 라즈베리파이 제로에서 이용할 수 있습니다.
Written with StackEdit.
'Projects > CanSatellite' 카테고리의 다른 글
🛰️ CANSAT Competition Summary (0) | 2021.02.16 |
---|---|
[캔위성] 2020 캔위성대회 수상 후기 (0) | 2020.10.15 |
캔위성 대회 후기 (0) | 2020.08.11 |
캔위성을 위한 파이썬을 이용한 Xbee (2) | 2020.08.11 |
프로젝트를 위한 NVIDIA Jetson 구입기 (0) | 2020.05.20 |