# YOLO v3 demo webcam 돌려보기 for ubuntu 18.04


# YOLO란 무엇인가

- 는 웹사이트 읽어보시면 자세히 나와있습니다: https://pjreddie.com/darknet/yolo/

- 요약: YOLO가 나오기 전까지의 CNN은 사진을 여러조각(kernel or filter size)으로 그리고 그것들이 겹치게(stride) 하는 알고리즘이였다면, YOLO는 stride를 없애는(You Only Look Once) 전략으로 만들어진 알고리즘.



# 진행단계

- darknet 소스 다운로드

    - https://github.com/pjreddie/darknet


- CUDA 빌드환경 구성

    - Nvidia용 Additional driver 추가

    - CUDA toolkit 설치


- OpenCV 빌드환경 구성

    - OpenCV 설치


- darknet 빌드

- darknet 실행




0. 준비물

- Nvidia CUDA 지원 그래픽카드

- OpenCV

- webcam: ubuntu 호환되는 제품(ubuntu 내에 cheese 앱 실행여부로 확인가능)

- ubuntu(18.04): 이 데모가 ubuntu에서 진행되었기 때문.



1. darknet 소스 다운로드

- 적절한 위치에서

- $ git clone https://github.com/pjreddie/darknet.git



2. CUDA 빌드환경 구성

2.1. Nvidia용 Additional driver 추가

- Software & Updates > Additional Drivers > 드라이버 선택

  (YOLO 빌드가 안되는 낮은 버전이 있으니 주의)


2.2. CUDA toolkit 설치

- 설치가이드: https://developer.nvidia.com/cuda-downloads

    - 운영체제와 버전에 따라 설치

    - Tensorflow Object Detection에서는 CUDA 9.0을 지원하는데 CUDA 10.0 설치하면 호환에 어려움이 있을것.


2.3. ubuntu 내에서의 실행환경구성

- path와 기타 설정들을 알아서 해줌.

- $ sudo apt install nvidia-cuda-toolkit



3. OpenCV 빌드환경 구성

- 설치가이드: https://docs.opencv.org/3.4.1/d2/de6/tutorial_py_setup_in_ubuntu.html

- $ sudo apt-get install python-opencv



4. darknet 빌드 및 실행

4.1. Makefile 수정

    - $ vi Makefile

    - GPU=1

    - OPENCV=1

    - :wq

    - $ make


4.2. darknet 실행

- data출처(?) / hyperparameter 설정값 / weight 순서로 지정

- 실행을 위한 설정들이 cfg 파일 안에 있으니 해당 디렉토리를 참조


- $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

  OR 메모리 부족이라고 나오는 경우 tiny 버전으로...

- $ ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights

'Machine Learning' 카테고리의 다른 글

Activation functions  (0) 2017.11.30
Wrap-up "Machine learning" by Andrew Ng  (0) 2017.10.13
Binomial Logistic Regression/Classification  (0) 2017.07.10
Linear Regression  (0) 2017.07.07

+ Recent posts