Keras-Object Detector

Keras 기반의 classifier, object detector 구현 코드입니다.
아래 각 디렉토리 별 설명을 참고해주세요.

Project
├─ .gitignore
├─ Classifier : Classification 모델의 학습 코드 및 Generator 코드가 정의돼 있습니다.
├─ Detector : Detection 모델의 학습 코드 및 Generator 코드가 정의돼 있습니다.
├─ map : Detector의 성능 지표인 mAP(mean average precision) 계산을 위한 모듈입니다.
├─ models : 모델의 구성을 정의한 디렉토리입니다.
│  ├─ Backbones.py : 기본 Backbone 구현
│  ├─ Head.py : Detection Head 구현
│  ├─ Layers.py : 공통으로 쓰는 Convolution Block 구현
│  └─ LossFunc.py : Detector Loss 함수(Focal Loss, cIoU Loss 등) 구현
├─ Scripts : Anchor Cluster, Deploy를 위한 freeze 등 기타 유틸 스크립트
├─ Utils : 학습 시 사용하는 Callback 등 유틸 함수 구현
└─ Datasets : 학습 데이터 파일이 위치하는 경로입니다. BDD Dataset을 테스트 했던 스크립트만 추가돼있습니다.

Reference

기본적인 Detector의 구성은 SSD: Single Shot MultiBox Detector 를 기본으로 한 One-Stage Detector 입니다.
정확도, 성능 향상을 위해 FPN, Focal Loss, cIoU Loss, Anchor Clustering 등 여러 기법을 참고하여 구현했습니다.

구현된 코드들은 다음 논문 및 오픈소스를 참고했습니다.

기타 CSPNet, Partial Residual Block, Dynamic Convolution 을 적용했으며, 정확도 향상이 미미하거나 Keras 구조상 제대로 구현이 되지 않은 코드도 일부 존재합니다.