sudo find / -name "*opencv*" -exec rm -rf {} \;
sudo find /usr/local/ -name "*opencv*" -exec rm {} \;
sudo apt-get purge libopencv* python-opencv
sudo find /usr/local -name "*opencv*"
sudo find / -name "*libopencv*"
INSTALL BY BUILD
Raspbian 2019.9.26 Ver.(BUSTER), OpenCV 4.1.2
reference : https://webnautes.tistory.com/916
3-2. build-essential 패키지에는 C/C++ 컴파일러와 관련 라이브러리, make 같은 도구들이 포함되어 있습니다.
cmake는 컴파일 옵션이나 빌드된 라이브러리에 포함시킬 OpenCV 모듈 설정등을 위해 필요합니다.
$ sudo apt-get install build-essential cmake
3-3. 특정 포맷의 이미지 파일을 불러오거나 기록하기 위해 필요한 패키지들입니다.
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
3-4. 특정 코덱의 비디오 파일을 읽어오거나 기록하기 위해 필요한 패키지들입니다.
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
3-5. Video4Linux 패키지는 리눅스에서 실시간 비디오 캡처를 지원하기 위한 디바이스 드라이버와 API를 포함하고 있습니다.
$ sudo apt-get install libv4l-dev v4l-utils
3-6. GStreamer는 비디오 스트리밍을 위한 라이브러리입니다.
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
3-7. OpenCV에서는 highgui 모듈을 사용하여 자체적으로 윈도우 생성하여 이미지나 비디오들을 보여줄 수 있습니다.
윈도우 생성 등의 GUI를 위해 gtk 또는 qt를 선택해서 사용가능합니다. 여기서는 gtk2를 지정해주었습니다.
$ sudo apt-get install libgtk2.0-dev
그외 선택 가능한 패키지는 다음과 같습니다.
libgtk-3-dev
libqt4-dev
libqt5-dev
3-8. OpenGL 지원하기 위해 필요한 라이브러리입니다.
$ sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev
3-9. OpenCV 최적화를 위해 사용되는 라이브러리들입니다.
$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev
3-10. python2.7-dev와 python3-dev 패키지는 OpenCV-Python 바인딩을 위해 필요한 패키지들입니다.
Numpy는 매트릭스 연산등을 빠르게 처리할 수 있어서 OpenCV Python에서 사용됩니다.
$ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy
4-1. 소스 코드를 저장할 임시 디렉토리를 생성하여 이동 후.. 진행합니다
mkdir opencv
cd opencv
4-2. OpenCV 4.1.2 소스코드를 다운로드 받아 압축을 풀어줍니다.
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.2.zip
$ unzip opencv.zip
4-3. opencv_contrib(extra modules) 소스코드를 다운로드 받아 압축을 풀어줍니다.
SIFT, SURF 등을 사용하기 위해 필요합니다
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.2.zip
$ unzip opencv_contrib.zip
4-5. opencv-4.1.2 디렉토리로 이동하여 build 디렉토리를 생성하고 build 디렉토리로 이동합니다.
컴파일은 build 디렉토리에서 이루어집니다.
pi@raspberrypi:~/opencv $ cd opencv-4.1.2
pi@raspberrypi:~/opencv/opencv-4.1.2 $ mkdir build
pi@raspberrypi:~/opencv/opencv-4.1.2 $ cd build
pi@raspberrypi:~/opencv/opencv-4.1.2/build $
4-6. cmake를 사용하여 OpenCV 컴파일 설정을 해줍니다. 복사해서 터미널에 붙여넣기 해주면 됩니다.
다음 옵션은 빌드할 OpenCV 버전에 맞추어 아래 경로중 빨간색 부분을 변경하세요.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D WITH_IPP=OFF \
-D WITH_1394=OFF \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D WITH_QT=OFF \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.2/modules \
-D WITH_V4L=ON \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON ../
4-8. 다음과 같은 메시지가 보이면 정상적으로 된 것입니다.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv/opencv-4.1.2/build
4-9. 진행하기 전에 스왑(swap) 공간을 늘려줘야 멀티코어를 사용하여 컴파일시 메모리 부족으로 에러가 나지 않습니다.
( 참고 https://www.pyimagesearch.com/2017/10/09/optimizing-opencv-on-the-raspberry-pi/ )
/etc/dphys-swapfile 파일을 열어서
$ sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE 변수값을 100에서 2048로 수정합니다.
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048
스왑 서비스 재시작하여 변경된 설정을 반영시켜주면 스왑 크기가 대략 20배가 됩니다
$ free
$ sudo /etc/init.d/dphys-swapfile restart
$ time make -j4
혹, python 라이브러리 빌드하는 부분에서 다음처럼 오랫동안 멈춤 현상이 있는 경우 . Ctrl + C를 눌러 중지하고
make 명령으로 다시 진행해서 완료하면 됩니다.(이때 인내심이 중요함)
pi@raspberrypi:~/opencv/opencv-4.1.2/build $ make
4-11. 이제 컴파일 결과물을 설치합니다.
pi@raspberrypi:~/opencv/opencv-4.1.2/build $ sudo make install
샘플 코드들은 /usr/local/share/opencv4/samples/ 위치에 복사됩니다.
4-12. opencv 라이브러리를 찾을 수 있도록 다음 명령을 실행합니다.
pi@raspberrypi:~/opencv/opencv-4.1.2/build $ sudo ldconfig
4-13. /etc/dphys-swapfile 파일을 열어서 CONF_SWAPSIZE 변수값을 다시 100으로 수정합니다.
$ sudo nano /etc/dphys-swapfile
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=100
스왑 서비스 재시작하여 변경된 설정을 반영시켜주면 스왑 크기가 원래대로 돌아옵니다.
$ sudo /etc/init.d/dphys-swapfile restart
INSTALL BY PKG (Simple Method)
Raspbian (STRETCH), OpenCV 3.4.1
1. apt update
$ sudo apt update
$ sudo apt upgrade
If you are busy, you can skip 'upgrade', but 'update' is necessary.
시간을 절약하려면 'upgrade'는 안해도 되는데, 'update'는 꼭 해야 합니다.
2. Download
All (모든 버전 다운로드)
~ $ cd opencv-for-rpi
~/opencv-for-rpi $ cd <rasbian_version>/<opencv_version> #cd stretch/3.4.0
3. Installation
~/opencv-for-rpi/stretch/3.4.0 $ sudo apt-get install -y ./OpenCV*.deb
or
~/opencv-for-rpi/stretch/3.4.0 $ sudo dpkg -i ./OpenCV*.dev
~/opencv-for-rpi/stretch/3.4.0 $ sudo apt install -f
https://github.com/dltpdn 읽어볼것
wget https://github.com/dltpdn/opencv-for-rpi/releases/download/v3.4.1/OpenCV-3.4.1.tar.gz
tar -xvf OpenCV-3.4.1.tar.gz
sudo apt-get install -y ./OpenCV*.deb
3. Check the result(결과 확인)
~ $ pkg-config —modversion opencv #opencv 3.4.0
~ $ dpkg -l |grep opencv
No comments:
Post a Comment