Information Security ˗ˋˏ ♡ ˎˊ˗

AI/deep learning

tensorflow of YOLOv3 실습

토오쓰 2019. 8. 20. 22:58

실습 : https://github.com/YunYang1994/tensorflow-yolov3

 

Please install tensorflow-gpu 1.11.0

참고 : https://gorakgarak.tistory.com/1314

가상머신 : tf-gpu

 

1. Introduction

tensorflow YOLOv3를 이용하여 object detection

 

2. Quick start

2.1) $ pip install -r ./docs/requirements.txt

 

2.2) Exporting loaded COCO weights as TF checkpoint(yolov3_coco.ckpt)

    = 적재된 coco 가중치를 TF 체크포인트로 내보내기

 

윈도우에서 wget 사용 https://www.poftut.com/download-install-wget-windows/

참고 : https://www.poftut.com/download-install-wget-windows/

 

$ cd checkpoint

$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz

$ tar -xvf yolov3_coco.tar.gz

$ cd ..

$ python convert_weight.py

 

발생하는 error

해결 : https://towardsdatascience.com/installing-tensorflow-with-cuda-cudnn-and-gpu-support-on-windows-10-60693e46e781

 

해결 :  pip install opencv-python

 

$ python freeze_graph.py

발생하는 error

해결 :  pip install easydict

 

 

$ python image_demo.py

 

 

$ python video_demo.py

3. Train on your own dataset

두 개의 파일이 필요 _ class.names, dataset.txt

 

3.1) Train VOC dataset

훈련하는 방법?

$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

 

이 tar를 모두 하나의 디렉토리에 추출하고 이름을 바꾼다. 기본 구조는 다음과 같다.

구조

$ python scripts/voc_annotation.py --data_path /내경로/VOC

 

./core/config.py필요한 구성을 구성하기 위해 편집

 

__C.YOLO.CLASSES                = "./data/classes/voc.names"

__C.TRAIN.ANNOT_PATH            = "./data/dataset/voc_train.txt"

__C.TEST.ANNOT_PATH             = "./data/dataset/voc_test.txt"

 

 

(1) train from scratch:

$ python train.py

$ tensorboard --logdir ./data

해결 : pip install --upgrade setuptools

 

(2) train from COCO weights(recommend):

$ cd checkpoint

$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz

$ tar -xvf yolov3_coco.tar.gz

$ cd ..

$ python convert_weight.py --train_from_coco

$ python train.py

여기까지 했음

 

how to test and evaluate it ?

$ python evaluate.py

$ cd mAP

$ python main.py –na

 

 

3.2) Train other dataset

COCO trainval 및 테스트 데이터 다운로드

$ wget http://images.cocodataset.org/zips/train2017.zip

$ wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip

$ wget http://images.cocodataset.org/zips/test2017.zip

$ wget http://images.cocodataset.org/annotations/image_info_test2017.zip

 

4. Why it is so magical?

YOLO는 You Only Look Once의 약자이다.

깊은 회선 신경망에서 학습 한 기능을 사용하여 물체를 감지하는 물체 탐지기이다.

이 코드를 성공적으로 실행했지만 YOLO 작동 방식을 이해하고 진행해야 한다.

 

4.1) Anchors clustering

참고: https://nbviewer.jupyter.org/github/YunYang1994/tensorflow-yolov3/blob/master/docs/Box-Clustering.ipynb

 

4.2) Architercutre details

 

4.3) Neural network io:

4.4) Filtering with score threshold

4.5) Do non-maximum suppression

 

 

참고

https://pjreddie.com/media/files/papers/YOLOv3.pdf