2018년 11월 14일 수요일

YOLO 설치 및 경험해보기

딥러닝의 강력한 툴 중에 하나인 YOLO를 경험해 보면서 겪었던 trouble에 대해서 정리해 보기로 한다. 리눅스 환경에 익수한 사용자라면 darknet에 나온 설명만 따라하면 쉽게 시작할 수 있겠지만, 나와같이 리눅스 문외한을 위해 또 나의 부족한 기억력을 위해 YOLO 설치 과정을 정리하기로 한다.



1. 시작하며


YOLO를 실행시키기 위해서는 Darknet이 필요하다. Darknet은 Joseph Redmon이 독자 개발한 신경망 프레임워크(neural network framework)로서 dnn(deep neural network)들을 학습시키고 실행시킬 수 있는 프레임워크다. Darknet을 이용하면 기존 정통 주류의 dnn 모델, 예를 들어, AlexNet, VGG-16, Resnet, Densenet 등 들도 돌려 볼 수 있다. YOLO 역시 Darknet을 통해 학습된 신경망 중 하나이다.



2. YOLO 설치 및 실행


앞서 말했듯이, YOLO를 설치하기 위해서는 Darknet을 먼저 설치해야한다. Darknet은 아래와 같이 git에서 다운받을 수 있다. 다운로드가 완료되면 darknet 폴더로 이동 후, make 명령어를 입력하여 코드를 Compile한다. 컴파일이 완료되면 폴더에 darknet이라는 실행파일이 만들어진다.

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


2.1 설치 옵션


make 명령어 실행 전, 아래와 같이 Makefile을 수정하여 설치 옵션을 변경할 수 있다.


  • CUDA를 설치 했다면, GPU=1
  • OpenCV를 설치 했다면, OPENCV=1
  • 둘 다 설치 안된 경우에는 OPENCV=0, GPU=0으로 설정


2.2 YOLO 실행


위 과정까지 마무리 되었다면 Darknet 및 YOLO의 설치는 끝났다. git에서 다운받은 Darknet에는 예제로 주어진 딥러닝 모델과 weight들이 제공되고 있어 쉽게 YOLO의 동작을 검증해볼 수 있다. 그 예는 Darknet 홈페이지(https://pjreddie.com/darknet/install/)를 참조하면 쉽게 시도해볼 수 있다.




3. YOLO 윈도우즈 버전


git은 없는 소스코드 빼고 필요한 모든 소스코드가 제공되는 것 같다. 나와같이 Windows-friendly한 사람을 위한 YOLO 윈도우즈 버전 설치방법을 안내한다.


3.1 소스코드 다운받기


YOLO 윈도우즈 버전은 아래 git에서 다운받을 수 있다. 이 버전은 YOLO 윈도우즈 버전 뿐만 아니라 리눅스 버전을 포함하며, 현재(2018.11.15) 기준 Yolo-v3와 Yolo-v2를 모두 지원한다.

  • YOLO 윈도우 버전: https://github.com/AlexeyAB/darknet/

3.2 소스코드 빌드하기

위에서 언급한 git에 접속하면 windows와 linux에서 build하는 방법을 자세하게 설명하고 있다. windows 설치 방법은 아래 사이트를 참조하면 쉽게 이해할 것이다.

  • YOLO windows 버전 설치 안내: https://github.com/AlexeyAB/darknet/#how-to-compile-on-windows

[Windows build 환경]


Windows 환경에서 YOLO를 빌드하기 위해서는 MSVS2015와 OpenCV 3.4.0 이전 버전 (3.4.1버전에서는 버그 발생)이 기본적으로 설치되어 있어야 한다. 빌드 환경은 x64, release mode이다. 본인 PC에서는 OpenCV 3.0.0을 사용하였다.


  • CUDA9.1, cuDNN7.0이 설치된 경우

MSVS2015에서 build\darknet\darknet.sln 파일을  열고 빌드한다. 만약, CUDA9.1 버전이 아닌 경우에는 build\darknet\darknet.vcxproj 파일을 열어서 "CUDA 9.1"로 되어 있는 곳을  현재 Winodws에 설치된 "CUDA version"으로 수정하면 된다. 본인의 PC에는 CUDA 9.0, cuDNN7.3.0이 설치되었고, 빌드도 성공하였다.


  • GPU가 없는 경우

MSVS2015에서 build\darknet\darknet_no_gpu.sln 파일을  열고 빌드한다. 이 경우, CPU만으로 YOLO가 실행되어 속도가 느리지만 실행하는데에는 문제가 없다.




이상, 나의 기억력을 불신하여 리눅스 및 Windows 환경에서 YOLO를 설치하고 실행하는 예제를 정리한 글을 마칩니다.

댓글 없음:

댓글 쓰기

[Scrap] Zero to Hero: Guide to Object Detection using Deep Learning: Faster R-CNN,YOLO,SSD

Zero to Hero: Guide to Object Detection using Deep Learning: Faster R-CNN,YOLO,SSD https://cv-tricks.com/object-detection/faster-r-cnn-yo...