DeepFlowest

[Object Detection] YOLO v3 데모 실행 및 custom 데이터 학습 후 webcam으로 확인하기 (darknet 기반) : ubuntu+c 버전 본문

Computer Vision/실습, 세미 프로젝트

[Object Detection] YOLO v3 데모 실행 및 custom 데이터 학습 후 webcam으로 확인하기 (darknet 기반) : ubuntu+c 버전

Orange57 2020. 11. 4. 15:25
728x90
반응형
SMALL

[개발 환경]

  • Ubuntu 18.04
  • CUDA-version : 11.0
  • cuDNN : 8.0.1
  • GPU count : 2
  • OpenCV version : 4.4.0

1. 설치 및 데모 확인

$ git clone https://github.com/pjreddie/darknet
$ vi Makefile

-> CUDA를 사용한다면 GPU=1로

-> opencv를 사용한다면 OPENCV=1로 변경

 

$ cd darknet-master
$ make
$ wget https://pjreddie.com/media/files/yolov3.weights

 

  • 이미지 파일 예제 실행
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

2. YOLO_MARK로 라벨링 작업

YOLO mark 이용해서 custom 데이터 라벨링 작업하는 부분은 앞 포스팅 참고

https://deepflowest.tistory.com/194 여기서 1번까지 과정 참고

 

3. custom 데이터로 학습하기 ( 학습된 가중치파일 만들기 ) 

  • darknet-master/cfg/yolov3.cfg 를 yolo_mark/x64/Release 경로에 복사해 붙여넣기 
  • Yolo_mark-master/x64/Release 경로로 이동
$ vi yolov3.cfg

      - max_batches = 30000

      - classes 값을 총 3번 바꿔야 함.

         -> classes = 3

      - [yolo] 바로 위에 있는 [convolutional]레이어의 필터 수만 다음으로 바꾸기 (3번 바꿔야 함.)

         -> filters = 3 * (classes + 5) = 24

 

      - 다음과 같이 변경

        [net]

        # Testing

        # batch=1

        # subdivisions=1

        # Training

        batch=64

        subdivisions=64

 

 

 

  • yolov3.cfg파일을 darknet 디렉토리로 이동
  • yolo_mark/x64/Release/data 경로안에 있는 image 디렉토리와 obj.names , obj.data , train.txt를 darknet/data 경로로 이동

 

  • 학습 코드 실행
$ cd darknet
$ ./darknet detector train data/obj.data yolov3.cfg darknet19_448.conv.23

 

(학습 시 사용하는 weight는 기존의 웨이트 파일 불러와서 사용하는 거라서 사용하지 않아도 지장 없음)

(위 코드에서 weight는 darknet19_448.conv.23 이다.)

 

4. Webcam 실행 코드

$ cd darknet-master
$ ./darknet detector demo data/obj.data yolov3.cfg backup/yolov3_final.weights

 

728x90
반응형
LIST
Comments