본문 바로가기
컴퓨터공학/YOLO

[YOLO - darknet] Window 10에서 YOLO 빌드 및 실행하기 (visual studio 2015) +20.8.13 수정

by Upupa epops 2019. 5. 3.

(+ 2020.08.13)

 

YOLO를 사용할때는 CUDA8.0과 cuDNN 6.0을 쓰도록 합시다.

VS 2015에서 darknet.sln 파일을 열 때, CUDA8.0 이 필요하기때문에

버젼이 안맞으면 솔루션(sln)파일이 열리지 않습니다.

 

 

 

 Windows 10 x64 환경을 사용하고 있습니다.

 

※ 본 포스팅은 아래 페이지를 참고하여 작성되었습니다.

 1) 개발자 이상현님 블로그 : https://pgmrlsh.tistory.com/4?category=766787

 2) 다크 프로그래머님 블로그 : https://darkpgmr.tistory.com/170

 3) 쌍둥아범님 블로그 : https://m.blog.naver.com/gorillamoon/221185312341 

 4) Blue-Moon님 블로그 : https://bluemoon-1st.tistory.com/5

 

 

0. Visual studio 2015용 YOLO 설치를 위한 준비

 

  - 해당 Github에 의하면 MS Visual Studio 2015 (v14.0)과 CUDA 8.0 for Window x64, OpenCV 2.4.9이 요구된다.

  - 단, OpenCV 2.4.13(v14)나 OpenCV 3.2(v14)으로 작성하여도 큰 문제가 없다.

 

해당 GitHub에서 요구하는 개발환경

 

1. YOLO 설치를 위한 환경설정

 

- 2019.05.03 기준 가상환경은 이전 darkflow 포스팅[클릭]과 동일한 환경에서 진행하였다. 

 

 - Anaconda/CUDA 설치 참고

    : 2019/01/05 - [Laboratory/인공지능] - Python/Tensorflow/Keras를 이용한 Mask RCNN (1)

 

 - Darknet GitHub : https://github.com/AlexeyAB/darknet/

 - Darknet weights site : https://pjreddie.com/darknet/yolo/

 

 - YOLO for Windows v2 Github : https://github.com/unsky/yolo-for-windows-v2

 - OpenCV site : https://sourceforge.net/projects/opencvlibrary/

 

 

2. YOLO for Windows v2 관련 파일 다운로드

 

  2-1. YOLO for Windows v2 다운

  

  - GitHub : https://github.com/unsky/yolo-for-windows-v2

  - GitHub에서 git을 다운받거나 git clone을 이용하여 폴더로 다운로드하여 압축을 푼다.

    (편의상 YOLOdark 폴더에 풀었음)

 

YOLO-for-Windows v2 다운받기

 

  2-2. Visual studio 2015 설치 (+ 2020.8. 수정)

  - Microsoft download link : https://visualstudio.microsoft.com/ko/downloads/

 

  - 이전버전을 다운받기 위해서는 MS 홈페이지[클릭]에서 로그인을 해야한다. 

  - setup 파일 다이렉트 링크(영문) →  [클릭]

 

 

   2-3. OpenCV 2.4.13 설치

    - OpenCV (v.2.4.13) download link 

        : https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.13/opencv-2.4.13.6-vc14.exe/download

   

    - Visual Studio 2015 v14.0과 호환되는 OpenCV 2.4.13 버전을 C:\에 설치하였다.

 

OpenCV 다운로드

 

  - Visual studio 2015에서 라이브러리를 사용하기 위하여 환경변수를 설정해준다.

  - [시스템 환경변수] - [user에 대한 사용자 변수] - [path] - [편집]

C:\opencv_2.4.13\opencv\build\x64\vc14\bin

user(컴퓨터 이름)에 대한 사용자 변수
opencv_2.4.13 에 대한 환경변수를 추가

 

3. YOLO for Windows v2 빌드

 

  3-1. YOLO for Windows v2 내의 darknet_no_gpu를 Visual Studio 2015로 열기

  - YOLO for Windows에서 제공하는 솔루션파일(*.sln)을 빌드해야한다. 

  - 압축을 푼 상태에서 [yolo-for-windows-v2-master] - [build] - [darknet] 폴더에 sln파일이 있다.

  - 본 포스팅에서는 darknet_no_gpu 버전을 visual studio 2015에서 빌드하였다.   

 

visual studio 2015에서 darknet_no_gpu.sln 파일을 열도록 하자.

 

 3-2. Visual studio 2015 OpenCV 라이브러리 수정

  - [속성(Alt+Enter)]를 눌러 Release x64의 디렉터리를 수정한다. 

1. [C/C++] - [일반] - [추가포함디렉터리] : C:\opencv_2.4.13\opencv\build\include

 

C/C++ - 일반 - 추가 포함 디렉터리

 

2. [링커] - [일반] - [추가 라이브러리 디렉터리] : C:\opencv_2.4.13\opencv\build\x64\vc14\lib

 

[링커] - [일반] - [추가 라이브러리 디렉터리]

 

3. [링커] - [입력] - [추가 종속성] : C:\opencv_2.4.13\opencv\build\x64\vc14\bin 내의 dll 확장자를 lib로 바꿔 추가

 

- *.txt 파일로 만들어보았다. (2.4.9나 3.0이면 뒤 2413 → 249 등으로 변경된다.) 

추가 종속성.txt
0.00MB

 

  3-3. darknet_no_gpu 빌드

  - 아래와 같이 눌러 빌드하여 오류가 없다면, "yolo-for-windows-v2-master\build\darknet\x64" 폴더에 

    "darknet_no_gpu.exe" 파일이 생성될 것이다.

 

빌드
빌드 성공 후 생성된 exe 파일

 

3-4. 빌드 오류

  - 빌드 시에 몇가지 오류가 있을 수 있다.

  - 처음에는 2.4.9의 lib 파일이 없어도 실행이 되었는데 2번째로 실행시키니 2.4.9 lib 파일이 없다는 오류가 떠서 

     어쩔 수 없이 C:\opencv_2.4.13\opencv\build\x64\vc14\lib 폴더에 2.4.9에 해당하는 lib을 다운받아서 넣었다.

  - 그외 오류는 위 참고 블로그에 잘 작성되어있으므로 확인이 가능하다. (추후 수정 예정)

 

 

 

4. YOLO for Windows v2 (darknet_no_gpu.exe 실행시켜보기)

 

  4-1. 검출 테스트

    - data파일, cfg 파일, weights파일, 테스트용 이미지나 영상 등이 있어야한다.

    - 간단히 이미지 검출을 위해 제공되는 데이터를 이용하여 아래와 같이 테스트해보았다.

      (weights파일은 darknet 홈페이지에서 다운받을 수 있다.)

    - 동영상이나 웹캠도 아래와 같은 방법으로 가능하다. (해보지는 않아서 추후 확인하도록 할 예정)

고정 이미지 검출 : darknet_no_gpu detector test data/coco.data yolo.cfg yolo.weights data/dog.jpg
동영상 검출 : darknet_no_gpu detector demo data/coco.data yolo.cfg yolo.weights data/video.mp4
웹캠 검출 : darknet_no_gpu detector demo data/coco.data yolo.cfg yolo.weights

 

검출 완료!

 

 

※ 새벽에 custom으로 학습시키다가 윈도우 업데이트가 되면서 no_gpu로 돌리던게 최다 날라가버렸다....

빡쳐서 CUDA 8.0과 cuDNN 6.0으로 바꾸고 돌렸더니 darknet.exe로도 문제없이 돌아간다.

600배 속도 차이를 뼈저리게 느끼는중...

저녁 내내 돌리던게 2시간만에 끝났다....

 

YOLO를 사용할때는 CUDA8.0과 cuDNN 6.0을 쓰도록 합시다.

 

SMALL