안녕하세요 키노코더입니다.


AI (인공지능)이나 Machine Learning 등에 관심이 있으신 분들은 한번쯤 직접 결과물을 보고싶다는 생각을 많이 하실 수 있는데요. 그러한 SW Engineer들을 위해 오늘은 윈도우 환경에서 간단(?)하게 Machine Learning을 경험해보도록 하겠습니다.


오늘의 목표: 이미지에서 사물 인식하기


결과물 미리보기



이걸 잘 활용하면 이런 결과물도 얻을 수 있습니다.




전체적인 Flow는 다음과 같습니다. Visual Studio로 빌드를 해본 경험이 있다면 쉽게 따라하실 수 있으며, 초보자도 충분히 따라할 만한 작업입니다.


  • git hub에서 Windows용 darknet pull하기 (혹은 다운로드): Windows용 darknet (github)
  • CUDA SDK 8.0 설치하기 (CUDA Toolkit)
  • OpenCV 2.4.9 설치하기 (OpenCV library)
  • Visual Studio에서 darknet 빌드하기
  • 명령창에서 darknet 실행하여 이미지 내의 객체 인식하기


Windows용 Darknet 설치하기

[TBD]

CUDA SDK 설치하기

[TBD]

OpenCV 설치하기

[TBD]

Darknet 빌드하기

아래 빌드 설정은 Visual Studio 2015에서 빌드하는 것을 기준으로 한다.


프로젝트 속성 - C/C++ - 일반 - 추가 포함 디렉터리

- CUDA SDK의 include 폴더 추가 (예: c:\cuda\include)

- OpenCV의 include 폴더 추가 (예: c:\opencv_2.4.9\opencv\build\include)



프로젝트 속성 - C/C++ - 전처리기 - 전처리기 정의

- CUDA를 사용한다면 'CUDNN' 추가

- CUDA를 사용하지 않는다면 'CUDNN' 추가 X



프로젝트 속성 - 링커 - 일반 - 추가 라이브러리 디렉터리

- CUDA SDK의 library 폴더 추가 (예: c:\cuda\lib\x64)

- OpenCV의 library 폴더 추가 

(예: c:\opencv_2.4.9\opencv\build\x64\vc14\lib, c:\opencv_2.4.9\opencv\build\x64\vc12\lib)


빌드 - 솔루션 빌드하기 실행

- source 코드가 있는 폴더의 x64 폴더(혹은 x86)에 darknet.exe 파일이 생성된다.

Yolo 실행하여 결과 얻기

darknet.exe detector test data/coco.data tiny-yolo.cfg tiny-yolo.weights -i 0 -thresh 0.2

윈도우 명령창에서 위의 Command를 입력한 결과




이미지로 'data/person.jpg'를 입력한 결과



참고 사이트

YOLO: Real-Time Object Detection 실습해보기

우분투에서 YOLO를 수행할 때 참고하시면 좋을 것 같습니다.


블로그 이미지

키노코더

각종 이야기를 다루는 키노코더의 블로그입니다

,