Evaluation
- Confusion matrix : TP (True Positive), FP (False Positive), FN (False Negative), TN (True Negative)
- Precision : TP / TP + FP (All Detections)
- Recall : TP / TP + FN (All Ground truths)
- PR Curve : Confidence score 내림차순으로 누적 값의 Recall, Precision 그래프
- AP : PR Curve의 아랫면적
- mAP : AP의 평균
- IOU (Intersection Over Union) : overlapping region / combined region
- FPS (Frames Per Second) : 초당 처리 프레임
- FLOPs (Floating Point Operations) : Model이 얼마나 빠른지 측정하는 metric, 연산량 횟수
- Convolution layer Flops = Cin * Cout * K * K * Hout * Wout
Library
- MMDetection, Detectron2, YOLOv5, EfficientDet
R-CNN
- Sliding Window : 특정 크기의 후보 영역을 모두 뽑아냄, 더이상 사용 안함
- Selective Search : 영역은 나눈 후 통합해나감
- RoI 2000개 추출
- 동일한 사이즈로 warping
- CNN으로 feature 추출
- SVM에 넣어 분류
- regression을 통해 bounding box를 예측
- CNN 연산 2000번, 강제 Warping, 따로 학습, End-to-End가 아님
SPPNet
- Spatial Pyramid Pooling : feature를 사이즈 별로 뽑은뒤 concat을 해 고정된 사이즈의 feature vector로 만듦
- CNN 연산 2000번, 강제 Warping하는 것을 해결
Fast R-CNN
- 이미지를 CNN에 넣어 feature 추출 (CNN을 한번만 사용)
- RoI Projection으로 feature map 상에서 RoI를 계산
- RoI Pooling을 통해 일정한 크기의 feature 추출 (SPP 사용)
- Fully connected layer 후, Softmax Classifier과 Bounding Box Regressor (클래스는 배경 포함 C+1개)
- 따로 학습 하는 것을 해결
Faster R-CNN
- 이미지를 CNN에 넣어 feature 추출 (CNN을 한번만 사용)
- RPN을 통해 RoI 계산 (기존 selective search 대체)
- Anchor box : 각 셀마다 비율과 스케일을 가진 다른 박스를 지정
- Region Proposal Network : 정해진 anchor box가 객체를 포함하는지 확인 한 후 미세조정
- NMS : 유사한 RPN Proposals 제거
- End-to-End
MMDetection
- Backbone : 입력 이미지를 특징 맵으로 변형
- Neck : backbone과 head를 연결, Feature map을 재구성 (FPN)
- DenseHead : 특징 맵의 dense location을 수행
- RoIHead : RoI 특징을입력받아 box 분류, 좌표 회귀 등을 예측
Detectron2
- Setup Config
- Setup Trainer
- Setup Training
Neck
- 다양한 크기의 객체를 잘 탐지하기 위해 다양한 feature map을 사용
- Feature Pyramid Network (FPN)
- Path Aggregation Network (PANet)
- DetectoRS - Recursive Feature Pyramid (RFP)
- Bi-directional Feature Pyramid (BiFPN)
- NASFPN
- AugFPN
YOLOv1
- GoogLeNet 변형 사용
- 빠른 속도, 사진에 대한 맥락적 정보(background error가 낮음), 일반화된 표현 학습
SSD
- Extra convolution layers에 나온 feature map 모두 detection : 크기에 따른 물체 탐지
- Fully connected layer 대신 convolution layer
- Default box (anchor box와 유사)
YOLOv2
- Better : Batch norm, 448x448 finetuning, anchor box, Fine-grained features, Multi-scale training
- Faster : GoogLeNet에서 Darknet-19로
- Stronger : WordTree 구성하여 9418개 class 구성
YOLOv3
- Darknet-53
- Multi-scale Feature maps
RetinaNet
- Focal Loss로 background나 Class imbalnce 해결
EfficientNet
- width scaling, depth scaling, resolution scaling, compound scaling
- 최적값을 찾아 FLOPS 대비 성능 향상
EfficientDet
- Efficient multi-scale feature fusion
- Model Scaling
Cascade RCNN
- Iterative, Integral 방식을 혼합
- 여러 개의 RoI head를 학습하고 Head 별로 IOU threshold가 다르게
- 높은 IOU들에 대해 큰 성능 향상
Deformable Convolutional Networks (DCN)
- Deformable Convolution : offset을 둔 피쳐맵을 더해주고 학습
Transformer
- Vision Transformer (ViT)
- End-to-End Object Detection with Transformer
- Swin Transformer
YOLOv4
- BOF (Bag of Freebies) : inference 비용을 늘리지 않고 정확도를 향상시키는 방법
- BOS (Bag of Specials) : inference 비용을 조금 높이지만 정확도를 크게 향상시키는 방법
- Cross Stage Partial Network (CSPNet)
M2Det
- Multi-level, multi-scale feature pyramid (MLFPN) : FFM(Feature Fusion Module), TUM(Thinned U-shape Module), SFAM(Scale-wise Feature Aggregation Module)
CornerNet
- Hourglass
- Detecting corner
- Grouping corner
- Corner pooling
- CenterNet
EDA
- 클래스 별 Object 개수 : 많으면 오버피팅되는 경향을 보일 수 있음
- 하나의 Image 내에 등장하는 Object 개수 : 너무 많은 경우 아웃라이어로 처리할 필요가 있음
- Bbox의 사이즈
- 클래스 별 bbox 사이즈 평균
- 클래스 간 등장 상관관계
파이프라인 구축
- Dataset
- CV strategy
- Training
Validation set 찾기
- Public score와 Private가 모두 오르는 validation set
- Random split, Stratified k-fold, Group k-fold
반복 시도
- Data Augmentation : Albumentation, Cutmix, Mosaic
- Ensemble & TTA : NMS(Non-Maximum Suppresion), Soft NMS, WBF(Weighted Box Fusion)
- ETC : Seed Ensemble, Framework Ensemble, Snapshot Ensemble, Stochastic Weight Averaging (SWA)
'부스트캠프 AI Tech' 카테고리의 다른 글
[WEEK 12-13] CV Data-Centric (0) | 2024.01.22 |
---|---|
재활용 품목 분류를 위한 Object Detection 트러블 슈팅 (0) | 2024.01.07 |
[WEEK 8] AI 서비스 개발 기초 (1) | 2023.12.26 |
GitHub 제대로 쓰기 (0) | 2023.12.14 |
[WEEK 6-7] CV 기초 프로젝트 (0) | 2023.12.11 |