2022년 3월 18일

Ubuntu 20.04.4 LTS 환경에 OpenCV 설치하기

◼︎ 작업환경

  • Model : MacBook Pro (16-inch, 2019)
  • CPU : 2.3 GHz 8코어 Intel Core i9
  • GPU : AMD Radeon Pro 5500M 4 GB
  • MENORY : 16GB
  • DISK : 1TB SSD
  • OS : macOS Monterey 12.2.1
◼︎ 기기
  • DEVICE : Raspberry Pi 4 (4G RAM)
  • DISK : 128GB SD Card 
  • 모니터 암에 고정하여 사용


1.자바 설치하기

자바 환경에서 실해아는 것이 목적이기 때문에 먼저 최신 자바를 설치한다. (작업 당시에 자바버전은 11.013 이었다.)
  

sudo apt update
sudo apt install default-jdk

2. OpenCV 설치

먼저 컴파일을 위한 소프트웨어 패키지들을 설치한다. CentOS와는 차이가 있었다. 

sudo apt install cmake build-essential

다음 패키지들은 반듯이 설치가 필요한 것은 아니다. 

sudo apt-get install pkg-config

sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev

sudo apt-get install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev

sudo apt-get install libv4l-dev v4l-utils

sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 


원하는 버전의 OpenCV 소스 파일을 다운로드 한다. 다운로드는 /home/pi 경로을 사용했다.

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip


unzip 명령을 사용하여 압축을 풀고 빌드를 위하여 build 폴더를 생성한다음 build 경로로 이동한다.
  

unzip opencv.zip
unzip opencv_contrib.zip 
mkdir build
cd build


이제 cmake 명령을 실행하여 컴파일을 위한 설정을 수행한다.


컴파일을 위한 설정 과정에서 JAVA 을 인식하지 못하는 문제가 발생되었다.  이부분을 해결하는 과정에 어려움이 있었는데 아래와 같이계정 프로파일에  매뉴얼하게 경로를 지정해주는 방법으로 해결했다. 

이미 최신 자바 버전이 설치되었지만 호환성을 고려하여 JDK 1.8 과 ant 를 설치한다. 이는 cmake 실행 옵션에 자바 버전을 명시한 경우에 맥 환경에서는 동작하였지만 CentOS 환경에서는 효과가 없어 이번에도 컴파일시에는 1.8 자바를 사용하고 이후에 높은 버전의 자바로 변경하여 사용하였다. 
sudo apt install ant openjdk-8-jdk 

.profile 파일을 아래와 같이 수정하여 수동으로 홈 경로를 지정해준다.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
export JRE_HOME=/usr/lib/jvm/java-8-openjdk-arm64/jre
export ANT_HOME=/usr/share/ant
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

다시 cmake를 실행한다. 이때 사용한 옵션은 아래와 같다.
 
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON  \
-D INSTALL_PYTHON_EXAMPLES=ON  \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_opencv_ximgproc=ON \
-D BUILD_SHARED_LIBS=OFF \
-D OPENCV_JAVA_TARGET_VERSION=1.8 \
-D BUILD_EXAMPLES=ON ../opencv-4.5.5

처음과는 다르게 JAVA 항목이 인식됨을 확인할 수 있다.



이제 빌드 및 설치를 진행한다. 컴파일 작업은 많은 시간이 소요되기 때문에 실행 후 다른 볼일을 보는 것이 좋을 것 같다. 프로세스 수를 2정도로 하고 실행을 했는데 nmon 도구를 사용하여 프로세스 사용량을 모니터링 해보면 옵션 값을 3 또는 4 을 적용해도 될 것 같다는 생각이 된다. 실재로 -j4 값을 주고 컴파일을 해보면 4개의 cc1plus 인스턴스가 96% 정도 CPU 자원을 사용하는 것으로 모니터링 된다.
 
make -j2
sudo make install
-j2 옵션을 사용한 경우


-j4 옵션을 사용한 경우
 

댓글 없음:

댓글 쓰기