이미지에서 object들을 detect했는데, 얼마나 정확한지 평가를 해야 합니다. 이를 위해서는 일종의 평가 지표가 필요하죠. AP와 mAP(mean average precision)도 평가의 지표입니다.
이에 대한 상세하고 쉬운 설명은 아래 링크를 참고해 주세요.
글쓴이가 전문가라서 그런지, 매우 이해하기 쉽게 설명해 주셔서 처음 접하는 개념인데도 이해하기 쉬웠습니다.
mAP를 구하기 위한 코드로 아래 링크를 제안해 주셨습니다.
https://github.com/Cartucho/mAP
git 소스에 예제 파일들이 포함되어 있어서, 실행 및 결과를 쉽게 확인할 수 있습니다.
원할한 수행을 위해서는 numpy, matplotlib, opencv-python 패키지가 필요합니다.
virtualenv를 이용한 가장 기본적인 환경 설정은 다음과 같습니다.
# virtualenv 환경 설치
virtualenv venv --python=python3
# virtualenv 실행
source venv/bin/activate
# 필요한 패키지 설치
pip install numpy
pip install matplotlib
pip install opencv-python
이후에는 단순히 아래 명령어를 수행하면 됩니다.
python main.py
프로그램이 실행되면서 화면이 계속 변경되는 것을 확인할 수 있습니다.
최종적인 디렉토리 구조는 아래와 같습니다.
├── input
│ ├── detection-results # detection 결과 txt 파일들
│ ├── ground-truth # object 정보 txt 파일들 (정답)
│ └── images-optional # 원본 이미지
└── output # 통계 이미지, output.txt
├── classes # class별 AP 그림
└── images # 원본과 detection 결과를 같이 보여 주는 이미지
└── detections_one_by_one # 각각의 object별 이미지
소스를 처음 받으면 input 폴더와 하위 폴더만 있고, 실행 후에 output 폴더가 생성됩니다.
각 폴더 및 폴더에 포함된 파일들에 대한 상세 설명은 아래와 같습니다.
- input/detection-results : 모델을 통해서 얻어진 detection 결과값
- input/ground-truth : ground-truth data. 일종의 정답
- input/images-optional : 실제 사용한 이미지들
- output : 통계 이미지. AP, mAP를 위한 실제 데이터 값 (output.txt)
- output/classes : class별 AP 이미지
- output/images : detection 정보 및 ground-truth data가 box 형태로 실제 이미지에 표시된 최종 결과 이미지
- output/images/detections_one_by_one : detection된 내용이 개별적으로 이미지에 표시된 파일
detection-results에 포함된 "이미지파일명.txt" 파일들의 구성은 다음과 같습니다.
class명 confidence xtl ytl xbr ybr
- confidence : 모델이 해당 class로 확신하는 정도. float. %
- xtl, ytl : box의 좌측상단 좌표(top left)
- xbr, ybr : box의 우측하단 좌표(bottom right)
ground-truth에 포함된 "이미지파일명.txt"는 위와 동일한데, confidence만 없습니다.
class명 xtl ytl xbr ybr
다음에는 예제 실행을 통해서 얻은 데이터를 확인하도록 하겠습니다.
- End -
'프로그래밍 > Big data' 카테고리의 다른 글
[Big data] darknet 기본 시험 방법 - 2 (0) | 2020.09.15 |
---|---|
[Big data] darknet 기본 시험 방법 - 1 (2) | 2020.09.14 |