ubuntu 16.04 YOLO 설치

2019. 9. 30. 20:51드론

https://pjreddie.com/darknet/

 

Darknet: Open Source Neural Networks in C

Nightmare Use Darknet's black magic to conjure ghosts, ghouls, and wild badgermoles. But be warned, ye who enter here: no one is safe in the land of nightmares.

pjreddie.com

 

Darknet은 C와 CUDA로 구성된 Neural Network에 대한 오픈소스다. 설치가 쉽고, 빠르고, CPU GPU 연산을 지원한다는 점이 장점이다. CUDA와 Opencv를 컴파일 옵션으로 사용한다면 사전에 설치가 되있어야 한다. 현재 컴퓨터에는 Nvidia 그래픽이 없기 때문에 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 -y

$ cd ~ && mkdir opencv
$ cd opencv
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
$ unzip opencv.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
$ unzip opencv_contrib.zip

$ cd opencv-3.2.0/ && mkdir build
$ cd build
$ 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 WITH_QT=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_INCLUDE_DIR=/usr/include/python2.7 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so ../
$ make -j
$ sudo make install

 

#include <opencv2/opencv.hpp>

int main(void)
{
    cv::Mat img = cv::imread("/home/neol/opencv-workspace/Lena.jpeg", CV_LOAD_IMAGE_COLOR);
    cv::namedWindow("Image", cv::WINDOW_AUTOSIZE);
    cv::imshow("Image", img);
    cv::waitKey(0);

    return 0;
}
 g++ -o intro intro.cpp $(pkg-config --libs --cflags opencv) 

사진 불러오는 과정에서 libopencv_highgui.so.3.2: cannot open shared object file 오류는 다음과 같이 해결할 수 있다

$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig

 

[출처] https://github.com/pjreddie/darknet/issues/382

 

opencv 설치가 정상적으로 완료되었다면 Darknet을 설치하려고 한다

 
cd ~
git clone https://github.com/pjreddie/darknet.git
cd darknet
make

 

make 과정에서 다음과 같은 log가 나온다면 정상적으로 수행되는 것이다

 

빌드 후 darknet 실행파일을 실행시키면

 ./darknet 

 

다음과 같은 화면이 나오면 정상적으로 설치가 완료된 것이다

 

Opencv 옵션을 사용하는 이유는 CMYK jpegs와 같은 포맷을 사용하기 위함과 디스크에 저장하는 것없이 이미지 view와 detection을 할 수 있다는 점이다. 또한 Opencv를 사용함으로써 Bounding Box 내에서 물체를 인식시킬 수 있다

 

 

그리고 Makefile에서 위와 같이 OPENCV=1로 수정한다. 그리고 기존 소스파일들을 다시 빌드한다

 make 

 

그리고 darknet에 기본으로 포함되어있는 이미지를 보여주는 명령을 통해 최종 점검을 할 수 있다. 실행하면 다음과 같이 8개의 서로 다른 효과를 가진 이미지가 보여진다

 

 ./darknet imtest data/eagle.jpg 

'드론' 카테고리의 다른 글

ROS bebop2 installation  (0) 2019.10.01
YOLO 실행하기  (0) 2019.10.01
ROS tf_remap debug  (0) 2019.09.27
ROS remap  (0) 2019.09.26
ROS TurtleBot Follower Demo -1  (0) 2019.09.24