WSL에서 OpenCV 컴파일하기
2020. 8. 20. 10:53ㆍData & AI/ComputerVision
WSL에서 OpenCV 컴파일하기
개발 환경
- CPU : i7-782-HQ
- GPU : NVIDIA GeForce 940MX
- Memory : 16GB
- Ubuntu 20.04 (WSL)
- CUDA 10.0
- cuDNN 7.6.5
OpenCV 설치하기
준비과정
먼저 시스템 업데이트를 하자
sudo apt-get update
sudo apt-get upgrade
OpenCV를 설치하기 앞서, 필요한 라이브러리들을 먼저 설치해야 한다.
- 설치에 필요한 기본적인 라이브러리
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall
- 이미지 입출력 관련 라이브러리
sudo apt install libjpeg-dev libpng-dev libtiff-dev
- Video/Audio 관련 라이브러리
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev libfaac-dev libmp3lame-dev libvorbis-dev
- OpenCore 라이브러리 (Adaptive Multi Rate Narrow Band (AMRNB), Wide Band (AMRWB) speech codec)
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
- Cameras programming interface 라이브러리
sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~
- GTK lib for the graphical user functionalites coming from OpenCV highgui module
sudo apt-get install libgtk-3-dev
- Python libraries for python3
sudo apt-get install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt install python3-testresources
- Parallelism library C++ for CPU
sudo apt-get install libtbb-dev
- Optimization libraries for OpenCV
sudo apt-get install libatlas-base-dev gfortran
- Optional libraries
sudo apt-get install libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
OpenCV 설치
이렇게 다 설치하고 나면 OpenCV를 설치할 수 있다. 일단 먼저 다운부터 받자.
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
일단 Virtualenv 환경을 만들자
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip
그리고 vi ~/.bashrc명령어를
이용해 .bashrc
에 아래 두줄을 추가하자
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
위의 커맨드를 터미널에서 실행하고
source /usr/local/bin/virtualenvwrapper.sh
으로 적용해줘도 되지만, 재부팅 시 다시 해야 하니 그냥.bashrc
에 추가하자
그리고 Virtualenv를 실행한다.
mkvirtualenv cv -p python3
pip install numpy
이제 opencv-4.2.0 폴더로
이동해서 빌드를 시작한다. (엄청 오래 걸린다.....)
cd opencv-4.2.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=/usr/bin/gcc-7 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D WITH_TBB=ON \
-D BUILD_opencv_cudacodec=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUDA=ON \
-D WITH_CUBLAS=1 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_PYTHON3_INSTALL_PATH=~/.virtualenvs/cv/lib/python3.8/site-packages \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.2.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.7.6.5 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D CUDA_ARCH_BIN=7.5 ..
컴파일 과정에서 gcc 관련 에러가 발생한다면
/usr/bin/
에서 gcc버전을 확인하고 없으면 일단 버전별로 다 설치해보자sudo apt install gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9
이제 마지막이다. (하지만 이건 진
~
짜 오래 걸린다.)
nproc
make -j8
sudo make install
nproc
을 통해 CPU의 코어 수를 확인한다.그리고 CPU Core 개수에 따라
-j
뒤에 붙는 숫자를 조절해주어야 한다. (4 Core면 4, 8 Core면 8)
진짜 마지막으로 설치된 라이브러리를 환경변수로 설정해주면 끝난다
sudo /bin/bash -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
Refrences
'Data & AI > ComputerVision' 카테고리의 다른 글
이미지에 OCR 결과물 출력하기 (0) | 2020.08.31 |
---|