- OpenCV Yolo inference 코드는 기존 OpenCV inference코드와 다름.
- 3개의 Output Feature Map 에서 직접 Object Detection 정보 추출
Tensorflow api 와 한것이 다르다 다크넷 을 다운로드받아야한다. (번거로움)
직접 오브젝트 정보를 추춣해야한다.
- Weight 모델 파일과 config 파일은 Darknet 사이트에 Download 가능
- cv2.dnn.readNetFromDarknet(config 파일, weight 모델 파일)으로 pretrained된 inference 모델 로딩.
- readNetFromDarket(config 파일, weight 모델 파일)에서 config 파일 인자가 weight 모델 파일 인자보다 먼저 위치함에 유의
82번 Layer / 94번 Layer / 106번 Layer
Coco 데이터 세트로 Pretrained 된 모델에서 bounding box 정보 추출하기
• Bounding Box 정보를 4개의 Box 좌표, 1개의 Object Score, 그리고 80개의 Class score(Coco는 80개의 Object Category임)로 구성된 총 85개의 정보 구성에서 정보 추출 필요.
• Class id와 class score는 이 80개 vector에서 가장 높은 값을 가지는 위치 인덱스와 그 값임.
OpenCV Yolo로 추출한 좌표는 Detected된 Object의 center와 width, height 값이므로 이를 좌상단, 우하단 좌표로 변경 필요.
1.cv1.dnn.readNetFromDarknet(config 파일, weight 모델 파일)으로 pretrained된 inference 모델 로딩
- 사용자가 3개의 다른 Scale 별로 구성된 output layer에서 Obect Detect 결과 추출
- 사용자가 직접, NMS(Non Mazimum Suppressing)로 최종 결과 필터링 해야 함
참고자료
Deep System’s YOLO