Deep Learning - (3) Ubuntu16.04 에서 YOLO: Real-Time Object Detection
2018. 8. 10.
reference : https://github.com/pjreddie/darknet/wiki/YOLO:-Real-Time-Object-Detection
config 파일은 기존 darknet framework을 설치하면서 cfg 디렉토리에 있다
pi@pi-15U560-MFLGL:~/darknet$ ls LICENSE LICENSE.meta README.md cfg include predictions.jpg src LICENSE.fuck LICENSE.mit TestImg darknet libdarknet.a python yolo.weights LICENSE.gen LICENSE.v1 TestYolo data libdarknet.so results LICENSE.gpl Makefile backup examples obj scripts pi@pi-15U560-MFLGL:~/darknet$ ls cfg alexnet.cfg extraction.conv.cfg rnn.cfg yolov1.cfg cifar.cfg extraction22k.cfg rnn.train.cfg yolov2-tiny-voc.cfg cifar.test.cfg go.cfg strided.cfg yolov2-tiny.cfg coco.data go.test.cfg t1.test.cfg yolov2-voc.cfg combine9k.data gru.cfg tiny.cfg yolov2.cfg darknet.cfg imagenet1k.data vgg-16.cfg yolov3-spp.cfg darknet19.cfg imagenet22k.dataset vgg-conv.cfg yolov3-tiny.cfg darknet19_448.cfg imagenet9k.hierarchy.dataset voc.data yolov3-voc.cfg darknet9000.cfg jnet-conv.cfg writing.cfg yolov3.cfg densenet201.cfg resnet152.cfg yolo9000.cfg extraction.cfg resnet50.cfg yolov1-tiny.cfg pi@pi-15U560-MFLGL:~/darknet$ |
darknet 디렉토리에서 weight 파일(이미 트레이닝받은 파일)을 받는다.
용량은 약 200MB정도 된다.
pi@pi-15U560-MFLGL:~/darknet$ wget http://pjreddie.com/media/files/yolo.weights URL transformed to HTTPS due to an HSTS policy --2018-08-10 15:51:13-- https://pjreddie.com/media/files/yolo.weights Resolving pjreddie.com (pjreddie.com)... 128.208.3.39 Connecting to pjreddie.com (pjreddie.com)|128.208.3.39|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 203934260 (194M) [application/octet-stream] Saving to: ‘yolo.weights.1’ yolo.weights.1 0%[ ] 87.70K 27.7KB/s eta 1h 59m pi@pi-15U560-MFLGL:~/darknet$ ls -al yolo.weights -rw-rw-r-- 1 pi pi 203934260 3월 27 2017 yolo.weights |
YOLO 환경파일을 이용하여 강아지 이미지 테스트
pi@pi-15U560-MFLGL:~/darknet$ pi@pi-15U560-MFLGL:~/darknet$ ./darknet yolo test cfg/yolov1.cfg yolo.weights data/dog.jpg layer filters size input output 0 conv 64 7 x 7 / 2 448 x 448 x 3 -> 224 x 224 x 64 0.944 BFLOPs 1 max 2 x 2 / 2 224 x 224 x 64 -> 112 x 112 x 64 2 conv 192 3 x 3 / 1 112 x 112 x 64 -> 112 x 112 x 192 2.775 BFLOPs 3 max 2 x 2 / 2 112 x 112 x 192 -> 56 x 56 x 192 4 conv 128 1 x 1 / 1 56 x 56 x 192 -> 56 x 56 x 128 0.154 BFLOPs 5 conv 256 3 x 3 / 1 56 x 56 x 128 -> 56 x 56 x 256 1.850 BFLOPs ... ... 27 conv 1024 3 x 3 / 1 7 x 7 x1024 -> 7 x 7 x1024 0.925 BFLOPs 28 Local Layer: 7 x 7 x 1024 image, 256 filters -> 7 x 7 x 256 image 29 dropout p = 0.50 12544 -> 12544 30 connected 12544 -> 1715 31 Detection Layer forced: Using default '0' Loading weights from yolo.weights...Done! data/dog.jpg: Predicted in 10.088818 seconds. |
tiny YOLO 테스트
pi@pi-15U560-MFLGL:~/darknet$ wget http://pjreddie.com/media/files/yolo-tiny.weights pi@pi-15U560-MFLGL:~/darknet$ ./darknet yolo test cfg/yolov1-tiny.cfg yolo-tiny.weights data/person.jpg layer filters size input output 0 conv 16 3 x 3 / 1 448 x 448 x 3 -> 448 x 448 x 16 0.173 BFLOPs 1 max 2 x 2 / 2 448 x 448 x 16 -> 224 x 224 x 16 2 conv 32 3 x 3 / 1 224 x 224 x 16 -> 224 x 224 x 32 0.462 BFLOPs 3 max 2 x 2 / 2 224 x 224 x 32 -> 112 x 112 x 32 4 conv 64 3 x 3 / 1 112 x 112 x 32 -> 112 x 112 x 64 0.462 BFLOPs 5 max 2 x 2 / 2 112 x 112 x 64 -> 56 x 56 x 64 6 conv 128 3 x 3 / 1 56 x 56 x 64 -> 56 x 56 x 128 0.462 BFLOPs 7 max 2 x 2 / 2 56 x 56 x 128 -> 28 x 28 x 128 8 conv 256 3 x 3 / 1 28 x 28 x 128 -> 28 x 28 x 256 0.462 BFLOPs 9 max 2 x 2 / 2 28 x 28 x 256 -> 14 x 14 x 256 10 conv 512 3 x 3 / 1 14 x 14 x 256 -> 14 x 14 x 512 0.462 BFLOPs 11 max 2 x 2 / 2 14 x 14 x 512 -> 7 x 7 x 512 12 conv 1024 3 x 3 / 1 7 x 7 x 512 -> 7 x 7 x1024 0.462 BFLOPs 13 conv 256 3 x 3 / 1 7 x 7 x1024 -> 7 x 7 x 256 0.231 BFLOPs 14 connected 12544 -> 1470 15 Detection Layer forced: Using default '0' Loading weights from yolo-tiny.weights...Done! data/person.jpg: Predicted in 1.089886 seconds. |
옵션테스트 -thresh 0.9하면 90%이상의 값만 보여준다.
pi@pi-15U560-MFLGL:~/darknet$ ./darknet yolo test cfg/yolov1.cfg yolo.weights data/dog.jpg -thresh 0 |
threshold값을 0으로 주는 옵션으로 기본적으>로는 0.2보다 같거나높은 값만 보여준다고 합니다. (-thresh 값)
이렇게 0으로 주면 0보다 같거나 높은 모든 찾아낸 object를 표시해주는데 매우 복잡하기 때문에 자주 사용하지는 않습니다.
실시간 웹캡을 이용한 detection 테스트.
pi@pi-15U560-MFLGL:~/darknet$ ./darknet detector demo cfg/coco.data cfg/yolov1.cfg yolo.weights |
웹캡으로 나오는 이미지를 실시간으로 확인이 가능합니다.
End of Posting
'Tech Story > AI, ML, BigData' 카테고리의 다른 글
R Learning (5) | 2021.05.01 |
---|---|
Deep Learning - (2) Ubuntu16.04 에서 Darknet 설치하기 (0) | 2018.08.10 |
Deep Learning - (1) Ubuntu16.04에서 OpenCV 설치하기 (0) | 2018.08.10 |