상세 컨텐츠

본문 제목

YOLOv3 Object Detection 1

인공지능/딥러닝

by 2^7 2022. 7. 4. 13:40

본문

YOLO_v3

  • YOLO는 객체 검출(Object Detection)의 대표적인 방법 중 하나
  • 워싱턴대 대학원생 Joseph Redmon이 개발

https://github.com/AlexeyAB/darknet#custom-object-detection

 

GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Da

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object ...

github.com


1. CUDA Version & GPU Check

!nvcc --version
!nvidia-smi

2. cudnn Version Check

!ls -l /usr/local

3. Custom Data_Set

from google.colab import drive
drive.mount('/content/drive')   #Google Drive Mount

3-1. 'custom_data' & 'darknet' 설치경로 설정

!mkdir /content/yolo_custom_modeling
%cd /content/yolo_custom_modeling

3-2. 학습 데이터 Upload

!ls -l '/content/drive/My Drive/Colab Notebooks/datasets/maskDataSet.zip'
!unzip '/content/drive/My Drive/Colab Notebooks/datasets/maskDataSet.zip'
!ls -l '/content/yolo_custom_modeling'

4.Train vs. Test Split Setting

4-1.  'labelled_data.data' 파일 생성

!python creating-files-data-and-name.py
!ls -l dataset/labelled_data.data

4-2. train 및 test 데이터 분류 파일 생성

!python creating-train-and-test-txt-files.py
!ls -l dataset/*.txt

5. 'darknet' Setting

5-1. 'darknet' Clone

!git clone https://github.com/AlexeyAB/darknet.git
%ls -l

5-2.  'Makefile' Configuration

%cd darknet/
!ls -l Makefile
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile

5-3.'darknet' Installation

%%time

!make


6. 'darknet' Learning

6-1. 실행권한 설정

!ls -l darknet
!chmod +x darknet
!./darknet detector


6-2. 실행환경 설정

  • 1) backup 폴더 생성
  • 2) 아래 파일을 image 디렉토리에 위치
    • yolov3-tiny-custom.cfg
%cd ..
!mkdir backup
!ls -l

!ls -l dataset/labelled_data.data

-rw-r--r-- 1 root root 113 Apr 5 04:11 dataset/labelled_data.data

!ls -l dataset/yolov3-tiny-custom.cfg

-rw-r--r-- 1 root root 1967 Oct 6 09:26 dataset/yolov3-tiny-custom.cfg


6-3.학습 실행

%%time

!darknet/darknet detector train dataset/labelled_data.data dataset/yolov3-tiny-custom.cfg -dont_show


6-4.학습된 모델 확인

  • yolov3-tiny-custom_final.weights
!ls -l ../backup


7. 학습결과 확인

7-1. 'coco.names' Update

!cp -f /content/yolo_custom_modeling/dataset/image/classes.names /content/yolo_custom_modeling/darknet/data/coco.names

coco.names 파일에 검출할 물체의 이름이 저장


7-2. Object Detection 실행

!./darknet detect ../dataset/yolov3-tiny-custom.cfg ../backup/yolov3-tiny-custom_final.weights ../dataset/image/images248.jpg


7-3. Object Detection 결과 확인

import matplotlib.image as img 
import matplotlib.pyplot as pp 

fileName = 'predictions.jpg' 

ndarray = img.imread(fileName) 

pp.imshow(ndarray) 
pp.show()

728x90

관련글 더보기