1. Cmake 다운로드
cmake download를 검색하여 다운로드 사이트로 이동합니다. (링크 : https://cmake.org/download/)
[cmake-3.17.0-rc1.tar.gz]를 다운로드합니다. 3.17 버전 이외의 최신 버전을 다운로드하셔도 상관없습니다.
그리고 다운로드한 경로로 접근하여 압축을 해제합니다.
tar -xvzf cmake-3.17.0-rc1.tar.gz
압축 해제가 완료된 후에 qt5, SSL패키지를 설치합니다.
sudo apt install qt5-default
sudo apt-get install build-essential
sudo apt install libssl-dev
다운로드한 cmake 설치 파일의 경로로 이동한 후 bootstrap파일을 실행합니다.
./bootstrap
bootstrap파일이 정상적으로 실행되면 다음 두 명령어를 차례로 입력하여 컴파일을 진행합니다.
make
sudo make install
cmake가 정상적으로 다운된 경우 다음과 같이 cmake 버전을 확인할 수 있습니다.
2. Opencv 다운로드
설치 전 패키지 업데이트 및 업그레이드를 진행합니다.
sudo apt update
sudo apt upgrade
opencv 설치를 위한 패키지를 다운로드합니다.
sudo apt-get install build-essential cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libqt4-dev mesa-utils libgl1-mesa-dri libqt4-opengl-dev libatlas-base-dev gfortran libeigen3-dev python2.7-dev python3-dev python-numpy python3-numpy
opencv를 다운로드할 폴더를 생성합니다. 이때 폴더의 상위 경로 한글 명인 경우 나중에 오류가 발생합니다.
예를 들어, cmake 설치 파일이 다운로드된 [다운로드] 폴더에 opencv를 다운로드할 폴더를 생성하면 opencv 설정을 진행하는 경우 오류가 생깁니다. 따라서 홈 경로에 설치 폴더를 생성하는 것을 권장합니다.
mkdir opencv && cd opencv
설치 파일을 다운로드하고 압축을 해제합니다.
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip
unzip opencv_contrib.zip
[opencv-3.4.0] 폴더에 접근한 후 [build] 폴더를 생성합니다.
cd opencv-3.4.0
mkdir build && cd build
darknet 사용 환경에 맞춰 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 WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
-D WITH_V4L=ON \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_xfeatures2d=OFF \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_GSTREAMER=ON -D WITH_FFMPEG=ON \
../
cmake 다운로드와 마찬가지로 다음 두 명령어를 입력하여 컴파일을 진행합니다.
make
sudo make install
pkg-config --cflags opencv
3. Nvidia 그래픽 드라이버 설치
CUDA, CUDNN의 사용을 위해 NVIDIA 그래픽 카드 드라이버 설치를 진행합니다.
[시스템 설정] - [소프트웨어 & 업데이트] - [추가 드라이버]로 진입한 후 NVIDIA 그래픽 카드를 선택하고 [바뀐 내용 적용(A)]을 클릭합니다. 설치가 완료된 후에는 재부팅을 진행합니다.
4. CUDA 설치
cuda download를 검색하여 다운로드 사이트로 이동합니다.
가장 최신 버전은 10.2이지만, 파이토치(Pytorch)나 텐서플로우(Tensorflow)등의 프레임워크들에서 호환되는 버전은 아직까지 10.1이기 때문에 10.1 버전으로 다운로드합니다.
[Linux] - [x86_64] - [Ubuntu] - [18.04] - [deb (network)]를 선택한 후 [Donwload] 버튼을 클릭합니다.
파일이 다운로드된 이후에는 CUDA 설치를 명령어로 진행합니다.
sudo dpkg -i cuda-repo-ubuntu1604_10.1.105-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt update
업데이트 후 데스크탑을 재부팅한 뒤에 다시 명령어를 실행합니다.
sudo apt install cuda
만약 설치 과정에서 다음과 같은 오류가 발생하는 경우 다음 명령어로 CUDA를 설치합니다.
sudo apt install cuda --fix-missing
5. CUDNN 설치
cuda download를 검색하여 다운로드 사이트로 이동하고 [Download CUDNN]를 클릭한 후 로그인합니다.
(링크 : https://developer.nvidia.com/cudnn)
체크박스를 클릭하여 라이센스에 동의한 후 설치한 CUDA버전에 맞는 CUDNN 중에서 [cuDNN Library for LINUX]를 다운로드합니다. 다운로드한 후에는 설치 파일의 압축을 해제합니다.
tar -xvzf cudnn-10.2-linux-x64-v7.6.5.32.tgz
다음 명령어를 실행합니다.
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
설치 완료 후에는 환경변수를 설정합니다.
터미널에서 다음 명령어를 통해 쉘을 실행합니다.
nano ~/.bashrc
가장 마지막 부분에 다음과 같이 입력한 후 저장합니다.
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
6. Darknet 설치
깃허브의 darknet은 pjreddie, AlexeyAB 2가지 버전이 있습니다. AlexeyAB버전의 darknet을 다운로드합니다.
(링크 : https://github.com/AlexeyAB/darknet)
git clone https://github.com/AlexeyAB/darknet.git
설치된 [darknet] 폴더로 접근한 후 [Makefile]의 설정을 수정합니다.
cd darknet
nano Makefile
cuda, cudnn, opencv를 사용하기 위해 GPU = 1, CUDNN = 1, OPENCV=1로 수정합니다.
그림처럼 [darknet] 실행파일이 생성되면 cuda, cudnn, opencv가 문제없이 설치된 것입니다.
마지막으로 darknet을 이용해서 단일 이미지에 대한 object detection을 진행해보겠습니다.
darknet 사용 방법은 다음 포스트에서 상세하게 작성할 예정입니다.
먼저 가중치 파일을 다운로드 받습니다.
wget https://pjreddie.com/media/files/yolov3.weights
그리고 단일 이미지에 대하여 객체를 탐지하는 명령어를 실행합니다.
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
명령어를 실행하면 구축되어 있는 CNN에 대해 Feed-foward가 진행되며 터미널에는 탐지된 객체의 종류, 신뢰도가 출력됩니다.
또한 Makefile의 OPENCV=1로 설정했기 때문에 탐지 결과가 이미지에 표시된 창이 생성됩니다.
Contact Us
blog : https://deep-eye.tistory.com
mail : deepi.contact.us@gmail.com
Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발
인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai