구현체 사용 준비
Darknet을 사용하기로 하고, 여기저기 Tutorial과 문서들을 찾아봤다. 일단 Darknet을 사용하기 위해서 컴파일을 하기로 했다. 저번 글에서도 말했듯, 코드 기반 구현체를 거른 이유는 한번의 컴파일로 유사한 환경에서 쓸 수 있기 때문이었다.
후다닥 컴파일을 하고 팀원들에게 배포하려고 작업에 착수했다.
컴파일을 하기 위해서 일단 Python, Git, CMAKE, VS, CUDA와 CUDNN이 깔려 있어야 한다.
Python - python version이 3.8보다 낮아야 한다. 3.8이후부터는 DLL을 로드하는 방식이 달라져 추후 darknet dll을 로드할때 에러가 발생한다.
Git - 깔면 된다.
CMAKE - 깔면 된다. (최근 작동확인한 버전은 3.18.3)
Visual Studio - 깔면 된다. Python Development, Desktop Development with C++ 포함해서 설치한다.
CUDA, CUDNN - GPU드라이버를 최신으로 올리고, Cuda Toolkit 10.2를 받아 설치한다. CUDNN의 경우, Nvidia Developers 계정을 생성하고 다운로드 받을 수 있다. CUDNN v7.6.5 for CUDA 10.2를 받아 bin\ 의 내용을
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
에 복사해둔다.
컴파일 삽질 시작 - OpenCV
본격적으로 Darknet을 컴파일 하기 전, Darknet에서 사용될 OpenCV를 컴파일/설치해야 한다.
- OpenCV의 코드를 받아(v.4.1.0) 특정 Dir에 풀어둔다(여기선 opencv)
- 추가 확장에 대한 코드도 받아 같은 Dir에 풀어둔다.
- opencv Dir안에 build Dir를 생성한다.
- CMAKE 실행 후, Code Dir에 opencv 압축 풀린 dir(opencv\opencv-4.1.0), build dir에 3)에서 생성한 dir(opencv\build)를 선택한다.
- Configure에서 VScode 선택, 플랫폼은 x64 선택후 finish
- 주르륵 플래그들 뜨는데 BUILD_opencv_world 체크해준다.
- Generate!
- opencv\build 폴더에 보면 ALL_BUILD.vcxproj가 있다. 열어준다.
- 상단의 환경을 Debug가 아닌 Relese, x64로 설정한다.
- Solution Explorer에서 CmakeTargets-ALL_BUILD를 빌드해준다.
- 다 되면 그 뒤 INSTALL도 Build.
- (정상적으로 된다면) Python에서 opencv가 된다!
Step이 많지만 별거없다. 받아서 빌드만 할 뿐...
빌드 시간이 꽤 걸리더라... 말로만 듣던 "큰 프로젝트" 라서 그런지 신기했다...
'프로젝트 기록' 카테고리의 다른 글
[문을 편하게 열고 싶다] 아두이노 + RFID 태그 복사해보기(진행중) (0) | 2021.10.07 |
---|---|
[문을 편하게 열고 싶다] 스마트폰/갤럭시 워치로 문을 열어보자(실패기) (0) | 2021.10.04 |
YOLO Object Detector 쓰기 (3) (0) | 2021.08.29 |
YOLO Object Detector 쓰기 (1) (0) | 2021.08.29 |