YOLO (v3) object detector in PyTorch: Part 5-Designing the input and the output pipelines

maroo·2022년 11월 10일
0

ML&DL

목록 보기
6/6
post-custom-banner

Part5에서는 input에서부터 output까지의 pipeline을 구축한다.
즉, image 읽기-->prediction-->prediction을 이용해 image에 BB그리기-->그 image 저장하기 과정을 수행한다는 이야기다.
또한, 실시간으로 이 detector를 작동시키는 방법을 알아볼 것이다.

먼저, detector.py file을 만든다.

  • pandas가 설치되어 있지 않아 conda install pandas로 pandas 설치

Creating Command Line Arguments

-ArgParse module을 이용해 detector에 command line argument를 전해 주는 function을 만든다.

Loading the Network

-COCO data의 label이 담긴coco.names file 다운받고 data 폴더 만들어서 넣기
-util.pyload_classes 정의

  • label string을 담은 dictionary를 return하는 함수

Read the Input images

-util.pyletterbox_image 정의

  • image resize, aspect ratio 유지, padding
    -util.pyprep_image 정의

Create the Batches

The Detection Loop

-batch마다 detection에 걸린 time 측정

  • input을 받은 시간과, write_results의 output을 내기까지 사이의 시간
    -write_prediction의 output attribute 중 하나는 batch에서 image의 index이다. 이를 imlist에서의 image index로 이용한다.

Drawing bounding boxes on images

-output의 prediction은 padding image에 따른 상태지, original image에 대한 것이 아님.

  • 따라서 BB를 그리기 전 original image의 dimension에 맞게 corner를 바꿔 주는 과정이 필요
    -BB clip 코드 위에 output_recast = time.time() 추가

Printing Time Summary

Testing The Object Detector

$ python detector.py --images dog-cycle-car.png --det det

결과: 실패....net load는 됐는데 person이라고만 계속 나옴;;
detect 실패...로 video/webcam은 진행하지 않기로 함

Running the Detector on Video/Webcam

Conclusion

profile
할수이따 ~
post-custom-banner

0개의 댓글