You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Darknet network라고 부르며 ImageNet dataset으로 Pre-trained된 network를 사용
1x1 Conv layer와 3x3 Conv layer의 교차를 통해 Parameter 감소시킨다.
특징
각 Grid cell은 하나의 Class만을 예측
인접한 Cell들이 동일한 객체에 대한 Bounding Box를 생성
Background Error가 낮다
당시 SOTA들에 비해 Real-Time 부분에서 가장 좋은 성능
Yolo v2
Architecture
Darknet -> Darknet19
기존 network의 마지막 Fully Connected Layer -> 1✕1 Convolution Layer로 대체
Global Average Pooling을 사용해 파라미터 감소 및 속도 향상
Anchor Box
여러 개의 크기와 비율로 미리 정의된 형태를 가진 경계 박스(B-Box)
사용자가 개수와 형태를 임의로 지정 가능
B-box 좌표를 직접 예측 -> 미리 지정된 Anchor box의 offset(size,ratio)을 예측, 훨씬 간단
기존 Grid당 2개 B-Box 좌표 예측 -> Grid당 5개의 Anchor Box 찾는다.
Fine-grained features 적용
중간 feature 맵은 지역적 특성을 잘 반영하고 작은 객체에 대한 정보를 갖고 있기 때문에 반영
Batch Normalization
Dropout Layer 제거 및 Batch Norm 사용, mAP 점수 2% 향상
High Resolution Classifier
224224로 Pre-train -> 448448로 변경 -> mAP 점수 4% 향상
Dynamic Anchor box
Faster R-CNN에서 Anchor Box의 사이즈와 비율을 미리 정하는 부분에 대한 문제가 제기되어 제안된 개념
입력 이미지에 따라 앵커 박스를 동적으로 업데이트하는 방식, DETR(Detection Transformer) 같은 모델에서 활용
박스 좌표를 쿼리로 사용하여 쿼리와 특징 간의 유사성을 높임
YOLOv2 에서는 k-means Clustering을 통해 GT와 가장 유사한 Optimal Anchor box를 탐색함으로써 데이터셋 특성에 적합한 Anchor Box를 생성
Yolo v3
v2보다 속도는 느리지만, 탐지 성능 대폭 개선
Architecture
Darknet-19 -> Datknet-53으로 변경
Skip Connection 적용
Pooling Layer 제거
SSD 모델의 Multi-Scale Feature Layer와 Retinanet의 FPN(Feature Pyramid Network)과 유사한 기법을 적용 (SSD의 Multi-Scale Feature Layer는 서로 다른 크기의 Feature Map에 각 포인트마다 Object Detection을 수행해주는 기법이다.)
Multilabel Classification
다중 라벨링 지원
각 label 결과 마지막에 binary classification 하도록 변경 (binary cross entropy)
Yolo v4
작은 객체 검출 문제 개선에 집중
input 해상도 크게 사용 224, 256 -> 512
다양한 크기의 object 동시 검출을 위해 Layer 및 파라미터 수를 늘림
Architecture
속도 문제를 아키택처 개선으로 해결
FPN(Feature Pyramid Network)과 PAN(Path Aggregation Network) 기술을 도입
CSP (Cross Stage Partial connections) 기반의 backbone 연결과 SPP (Spatial Pyramid Pooling) 등의 새로운 네트워크 구조를 도입하여 성능을 향상
다양한 데이터셋을 이용한 데이터 증강 기술과 quantization 기술도 함께 도dlq -> 더 높은 성능과 더 낮은 모델 크기를 가지게 되었다.
Yolo v5
논문 없이 코드만 공개
CSPNet을 이용할 때, BottleneckCSP를 사용하여 각 계층의 연산량을 균등하게 분배해서 연산 bottleneck을 없애고 CNN layer의 연산 활용을 업그레이드 시켰다.
backbone을 depth multiple과 width multiple를 기준으로 크기별로 모델 구분
yolo v5 s
small
가장 빠른 대신에 정확도는 떨어짐
yolo v5 m
medium
yolo v5 l
large
yolo v5 x
x large
가장 느린 대신에 정확도는 향상
Yolo v7
eal-time object detection 이면서 inference cost를 증가시키지 않고도 정확도를 향상시킬 수 있는 trainable bag-of-freebies 방법을 제안하는데, 해당 방법들이 적용
특징
Model reparameterization
학습시 여러개의 레이어들을 학습하고 inference시에는 해당 레이어들을 하나의 레이어로 fusing함
Label assignment
Ground truth를 그냥 사용하는 것이 아니라 모델의 prediction, ground truth의 distribution을 고려하여 새로운 soft label 생성
기존 label assignment방법들이 다른 branch에서 도출되는 다른 output에 대해 dynamic label assignment strategy 방법을 제안
extend and compound scaling -> 계산 효율
SOTA 방법 보다 parameter 수를 40%, 계산량을 50% 감소시키고 더 빠른 inference time과 더 높은 accurcy를 달성
기존 연구들에서 제안된 ELAN은 Computation block을 어느정도 많이 쌓아도 잘 학습되지만 무한대 가까이로 쌓을경우 parameter utilization이 낮아지는 문제가 있었음 -> 따라서 YOLOv7에서는 마음껏 쌓아도 학습이 잘되도록 하기 위해 E-ELAN을 제안함
Architecture
Expand, shuffle, merge cardinality를 통해 computational block을 많이 쌓아도 학습능력이 뛰어남
아키텍쳐 측면에서 E-ELAN은 computational block의 아키텍쳐만 변경하는 반면 transition layer의 아키텍쳐는 변경되지 않음
이러한 전략은 grup conv를 사용하여 computational block의 channel과 cardinality를 확장
computational layer의 모든 block에 동일한 group parameter와 channel multiplier를 적용하고, 각 computational block에서 계산된 feature map은 설정된 parameter에 따라 group으로 섞인 다음 함께 연결된다. 이 때 각 feature map group의 channel 수는 원래 아키텍쳐 수와 동일
마지막으로 merge cardinality를 수행하기 위해 g개의 feature map group을 추가
출시 시점
Yolo v1
Yolo v2
Yolo v3
Yolo v4
Yolo v5
Yolo v7
Yolo v6
Yolo v8
참조