본문 바로가기

object detection

IoU, Intersection over Union 개념을 이해하자 Intersection over Union ? Intersection over Union (IoU)는 object detection에서 사용되는 도구다. 성능 지표는 아니고, 객체 인식 모델의 성능 평가를 하는 과정에서 사용되는 도구로 생각하면 된다. 정의는 아래와 같다. IoU = 교집합 영역 넓이 / 합집합 영역 넓이 두 box의 크기가 동일하다 가정하면, 두 개의 box가 적어도 2/3는 겹쳐줘야 0.5의 값이 나오기 때문에 여러 곳에서 IoU의 threshold 값을 0.5로 잡아서 사용하는 듯 하다. 모델의 성능을 높여보고자 IoU threshold 값을 올려서 모델링을 해도 되기는 하는데, 객체 인식 모델의 성능이라는 게 feature extractor, classifier, regressor.. 더보기
2. Tensorflow Object Detection Model Retrain 방법에 대해 알아보자 진행하는 논문만 마무리하고 다시 쓰고자 계획했는데 어느덧 반년이 넘는 시간이 흘러버렸다.. 지금은 논문 작업이 거의 완료돼서 시간적 여유가 많으니 Tensorflow Object Detection Model Retrain 방법에 대해 정리하도록 하겠다. Retrain에는 segmentation도 같이 진행하는 Mask R-CNN 모델을 사용했다. Dataset은 여기에서 Training Data에서 Rigid Instruments만을 받아 학습에 사용했다. Rigid Instruments를 받아보면 4개의 폴더가 있는데 그 중 3개는 학습용으로, 나머지 1개는 검증용으로 정리해서 사용했다. 정리된 Dataset와 사용한 코드들은 내 Github에서 다운받을 수 있다. 이제 다음 글에서 다운받은 Custo.. 더보기
1.5. draw_bounding_boxes 함수 설계 및 inference 결과 확인 pretrained model을 실행시켜서 결과 받아보는 과정까지 알아보았다. 이제는 detecting 결과를 이미지에 표현해주기만 하면 된다. 튜토리얼 코드를 봐보면 ./object_detection/utils/visualization_utils.py 를 사용해서 그려주는 걸 볼 수 있는데 그냥 경험삼아 직접 한 번 구현해보고 싶어서 draw_bounding_boxes 함수를 만들었다. 1. class_info.txt 만들기 코드 설명에 앞서 class_info.txt를 만들어줄 필요가 있다. draw_bounding_boxes 함수는 class에 대한 정보를 text가 아닌 int로 반환해준다. 따라서 각 숫자가 어떤 class를 뜻하지는 지에 대한 정보가 필요하다. visualization_util.. 더보기