개인 프로젝트/이미지 인식

01. 개발 환경 세팅하기. (Yolo - darknet)

Jerry Jun 2020. 11. 5. 23:05
728x90

Yolo.... darknet 쉽지 않은 상대다. 이것저것 많이 해봤는데 결국 실패해서 태초마을로 돌아왔다.

Visual Studio, CUDA, cudnn, openCV 를 다 삭제했다. 처음부터 다시 시작해보자.

게시물에 적은 순대로 설치를 시작합니다. 버전에 대해서는 제가 설치한 버전으로 설명합니다.

 

나의 컴퓨터 사양

CPU : intel i7-7700

GPU : NVIDIA GTX 1050ti (ㅠㅠ)

RAM : 16GB

OS : WINDOWS 10 (64bit)

 

 

1. Visual Studio 2015 다운받기.

다운로드 링크 : Visual Studio 2015

Visual_Studio2015

 

 

2. NVIDIA CUDA 10.1 설치하기

다운로드 링크 : CUDA 10.1 다운로드하기

 

cuda10.1 다운로드

 

 

3. Cudnn 설치하기 (v7.6.4 for CUDA 10.1)

다운로드 링크 : cudnn 설치하기

cudnn 설치하기

 

CUDA 가 설치된 경로에 cudnn 폴더를 복사 붙여넣기!

 

4. OpenCV 설치하기 (Version 3.4.8)

다운로드 링크 : OpenCV 다운로드 링크

 

opencv 다운사진

 

 

5. Darknet 다운로드

다운로드 링크 : darknet 다운로드 링크

darknet 사진

 

 

Step 1

darknet-master\darknet-master\build\darknet 경로에 들어가서 darknet.vcxproj 파일을 열기

ToolsVersion="14.0" 으로 설정하기 (전 되어있었습니다. Visual Studio 버전에 따라 다를 수 있습니다.)

 

CUDA 10.0 이라고 써진 부분을 자신의 CUDA 버전으로 바꿉니다.

왠지모르게 저는 10.1 로 다 되어있네요.

 

이제 darknet.sln 파일을 visual studio 로 실행합니다.

그랬더니 첫 에러가 저를 반겨줍니다.

 

ERROR01

이럴 때는 다시 darknet.vcxproj 파일을 열고 CUDA 의 경로를 변경합니다.

 

변경 전 : "$(VCTargetsPath) \BuildCustomizations\CUDA 10.1.props"

변경 후 : "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions\CUDA 10.1.props"

 

 

변경 전 : "$(VCTargetsPath) \BuildCustomizations\CUDA 10.1.targets"

변경 후 : "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions\CUDA 10.1.targets"

 

 

setting_plus

음 뭔지 모르겠지만 설치해줘야 할 것 같아서 설치합니다.

이런 저런 추가 도구가 뜨고 4GB 를 더 잡아먹는다고 하네요... SSD 용량 얼마 안남았는데...

그리고 다시 열어줍니다.

 

error_clear01

 

그러면 정상적으로 불러와집니다.

첫번째 에러 클리어!

 


Step 2

보기 - 속성 페이지 - C/C++ - 일반 - 추가 포함 디렉터리 설정

 

setting01

 

C:\opencv\build\include   OPENCV 경로를 설정합니다.
..\..\include
..\..\3rdparty\stb\include
..\..\3rdparty\pthreads\include
%(AdditionalIncludeDirectories)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include   CUDA 경로의 include 입니다.
D:\cudnn\include  CUDNN 의 include 경로입니다.

 

 


보기 - 속성 페이지 - CUDA C/C++ - Device - Code Generation

 

저는 GTX 1050ti 이기 때문에 compute_61,sm_61 로 설정하였습니다.

 


보기 - 속성 페이지 - 링커 - 일반 - 추가 라이브러리 디렉터리

 

C:\opencv\build\x64\vc14\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
D:\cudnn\lib\x64
..\..\3rdparty\pthreads\lib
%(AdditionalLibraryDirectories)


(개인 opencv 경로)\build\x64\vc14\bin 경로에서 opencv_world348.dll / opencv_ffmpeg348_64.dll 와

(개인 cuda 경로)\bin 경로에서 cublas64_10.dll / cudart64_101.dll / curand64_dll / cusolver64_10.dll 를 복사해서

 

darknet.exe 파일이 생성될 경로에 붙여넣습니다.

저의 경우는 build\darknet\x64 폴더 안에 넣었습니다.

 

이제 빌드를 시작해볼까요? (두근두근)

 

 

error02

두번째 에러가 방문했습니다!

 

저의 해결 방법은 다시 추가 포함 디렉터리와 추가 라이브러리 디렉터리의 opencv 경로를 재수정하는 것이었습니다.

다시 들어가보니 opencv 경로가 잘못되어있더라구요.

 

success

darknet.exe 파일 두둥등장.

이제 잘 돌아가는지 시험을 해 볼 차례입니다.

 

이미 나와있는 Yolov3 의 가중치 파일을 다운 받습니다.

다운로드 링크 : 가중치 파일 다운받기!

그리고 darknet.exe 파일이 있는 경로에 넣습니다.

 

그리고 cmd 창을 열고 darknet.exe 가 있는 경로로 디렉토리를 옮깁니다.

그리고 명령어를 실행해줍니다.

darknet.exe detector test .\cfg\coco.data .\cfg\yolov3.cfg .\yolov3.weights .\data\dog.jpg

그러면!

 

세 번째 에러가 저의 다리를 또 잡습니다.

CUDA Error : unknown error 가 나오네요... 이건 또 뭘까요.

뭘 설정안한거지...

 

자고 일어나서 다시 시도해봐야겠다..

 

============================================================================

 

20.11.08

해결했다.

darknet.exe 를 만들기 전에 compute_52,sm_52 였는데 61로 해서 그랬나보다....

 

learning

 

학습 중.....

300x250