본문 바로가기

AI

YOLO 동작 시 화면에 있는 퍼센트(확률) 지우기

YOLO에서 실시간 detection 혹은 동영상 detection 등을 하게 되면 화면에 class의 name과 probability(확률)이 %로 나온다.

 

감지된 화면이 어지럽다고 생각하거나, 단순히 어떤 객체로 인식하는 지만 출력해 줄 필요가 있다면 그다지 유용한 기능이 아니다.

따라서 화면에서 probability가 표시 되지 않게 하기 위해서는 소스코드를 수정해줘야 한다.

 

환경은 windows의 darknet에서 진행했다.

 

 

darknet에서 사용하는 여러 소스파일 중 image_opencv.cpp 파일에서 이를 해결 할 수 있다.

image_opencv.cpp 에서 draw_detections_cv_v3를 수정하면 된다.

 

extern "C" void draw_detections_cv_v3(mat_cv* mat, detection *dets, int num, float thresh, char **names, image **alphabet, int classes, int ext_output)

 

draw_detections_cv_v3 함수 내용을 보면 prob를 구해서 string을 합친다는 것을 알 수 있다.

따라서 그 부분만 주석 처리를 하게 되면, 확률이 표시 되지 않는다.

 

 

< image_opencv.cpp 중 draw_detections_cv_v3 함수의 일부 >

 

< 변경 후 >

 

수정 후 다시 컴파일 하여 darknet을 실행시키면 영상, 실시간 처리 등의 감지에서 probability를 표시하지 않는다.

 

 

* 결과

 

< mark 우측 상단에 표시되었던 %가 없어졌다는 것을 확인 할 수 있다. >