[YOLOv5]
https://arxiv.org/pdf/2304.00501v6
YOLOv5는 따로 오피셜 논문이 있지는 않지만, 위 survey 논문에서 YOLOv5의 구조와 특징에 대해 간략하게 설명하였다.
YOLOv5
- YOLOv4 이후 몇 달만에 출시한 경량화 모델로, Darknet 대신 Pytoch에서 개발됨
- 다양한 Scale 버전 : YOLOv5n (nano), YOLOv5s (small), YOLOv5m (medium), YOLOv5l (large), YOLOv5x(extra large)로 나뉘어 각각 어플리케이션과 하드웨어 사양에 맞게 convolution layer의 폭과 깊이가 차이남.
- YOLOv4 이후 성능 개선 : 속도는 더 빠르고, 더 높은 정확성을 보임.
- MS COCO data set test dev-2017에서 640 pixel의 크기로 50.7% AP 달성
Architecture
- Backbone : CSPDarknet53 (YOLOv3 backbone)를 기반으로 하여 수정된 버전. Convolution layer, Upsample layer, SPPF layer로 구성되어 계산량을 줄이는 역할
- Neck : PAN (Path Aggregation Network) 구조를 통해 Top-down, Bottom-up Path를 구현. 크기가 작은 객체를 탐지하는 성능이 크게 향상
- Head : YOLO layer와 동일한 구조. 3가지 크기의 출력을 통해 다양한 객체 크기 처리.
[YOLOv9]
https://arxiv.org/html/2402.13616v1
Abstract
- Input data가 Deep network를 통해 전송되면서 발생하는 정보 소실 문제 (Information bottleneck)를 해결하기 위한 architecture 고안
- PGI : Object function을 계산하는 과정에서 완전한 input data를 활용할 수 있도록 함 → 신뢰할 수 있는 gradient를 통한 network weight update
- GELAN : Lightweight model에서 효과적으로 작동하는 Network architecture
- 더 나은 parameter 활용, 다양한 model size 적용 가능성에서 다른 모델에 비해 우수한 성능을 보임
1. Introduction
Information bottleneck : Input data가 Feedforward 과정에서 정보를 잃는 현상
- Deep Learning 기반 모델은 다양한 분야에서 input data와 target task 간의 정확한 mapping을 찾기 위해 노력하고 있음.
- 하지만 Feedforward process에서 발생한 input data의 정보 손실은 편향된 gradient 흐름을 가져오고, 이를 기반으로 update된 model은 잘못된 예측을 수행하여 낮은 성능을 보이게 됨.
Information bottleneck을 완화하기 위해 고안된 기법은 다음과 같으며, 각각 고유의 설계 방법과 단점을 지니고 있다.
1) Reversible architecture
- 반복되는 input data 사용, 데이터 유지하기 위한 명시적 방법
- 추가 layer 사용으로 인한 cost 증가, deep layer 접근의 한계로 인한 high-order semantic information modeling 어려움
2) Masked modeling
- reconstruction loss 사용, 데이터를 유지하기 위한 암묵적 방법 (extracted feature 최대한 활용)
- reconstruction loss와 target loss와 충돌, mask mechanism의 부정확도 (incorrect association)
3) Deep supervision concept
- 정보 소실이 비교적 적은 얕은 층의 특징 사용, mapping을 미리 설정하여 deep layer로 전송
- 오류 누적 및 얕은 층에서의 정보 손실 시 부정확한 모델 생성 가능성
위 문제를 해결하기 위해 본 논문은 PGI (Programmable Gradient Information)을 제안함. 이는 Auxiliary reversible branch를 통해 Deep feature가 key characteristic을 유지할 수 있도록 함으로써, 다양한 semantic level에서의 gradient 정보가 전파되도록 프로그래밍되었다.
- Reversible architecture가 Auxiliary branch에서 발생되므로 추가적 cost가 발생하지 않음.
- loss fuction을 자유롭게 사용함으로써 Mask modeling에서 발생한 문제가 발생하지 않음.
- 다양한 크기의 Deep neural network에 적용할 수 있어 Deep supervision보다 일반적임.
GELAN (generalized ELAN) 설계 역시 YOLOv9의 핵심인데, 이는 다양한 장치에 적합한 computational block을 선택할 수 있는 설계이다. PGI와 GELAN은 YOLOv9의 핵심적인 시스템으로, 이는 기존 모델에 비해 훌륭한 성능을 보이는 데에 기여하였다.
2. Related work
2.1 Real-time Object Detectors
- 현재 주류를 이루는 Object Detection model은 YOLO 시리즈이며, 이는 대부분 CSPNet, ELAN을 기본 구조로 사용함.
- 본 모델은 YOLO v7을 기반으로 하여, GELAN으로 구조를 개선하고 PGI로 training process를 개선함.
2.2 Reversible Architectures
- Operation unit이 기존 정보를 유지할 수 있도록 설계되어, 각 layer가 완전한 원본 정보를 유지할 수 있도록 함.
- RevCol은 reversible unit을 다양한 level로 일반화시켰고, 그 외 여러 architecture가 있으나 extra layer로 인한 속도 감소 효과가 발생함.
- 본 논문은 DynamicDet architecture(CBNet과 YOLOv7의 결합)을 기반으로 PGI를 도입함. → 추가적인 connection 없이 구조를 설계하여 speed, parameter 개수, accuracy의 이점을 취함.
2.3 Auxiliary Supervision
- Auxiliary supervision : 중간 계층에 additional prediction layer를 삽입하거나(= Deep supervision), target task에서 필요로 하는 정보를 취득하기 위해 중간 featrure map을 활용하도록 하는 방식
- 최근 auxiliary supervision을 수행할 독립적인 label을 할당하는 방식을 사용하고 있지만, lightweight model에 적용 시 parameter 개수 제한으로 성능이 저하 → PGI로 극복 (muitiple level semantic information을 재프로그래밍)
3. Problem Statement
수렴 속도, 정확성의 문제는 초기 gradient가 전송되고 Deep layer를 거쳐오는 과정에서 많은 정보가 소실되기 때문 (Information bottleneck) → reversible network-based method를 설계하여 해결할 수 있음.
3.1 Information Bottleneck Principle
$I(X, X) \geq I(X, f_\theta (X)) \geq I(X, g_\phi(f_\theta (X))) $
→ $f$, $g$와 같은 layer 연산을 거칠수록 데이터가 손실된다 (=상호 유사도 $I$가 작아진다)
- layer 층의 수가 많아지면 원본 데이터 손실이 커짐.
- 손실된 input을 바탕으로 만들어진 output과 target data를 기반으로 gardient를 계산하므로 수렴치에 오류가 발생함.
- model 크기를 늘려서 (=parameter를 많이 사용하면, width를 늘리자) 충분한 정보를 유지할 수 있는 기회 늘리면 해결 가능. 하지만 deep layer을 거치면 나타나는 자연스러운 문제이기 때문에 근본적으로 해결 불가
3.2 Reversible Functions
$X=v_\zeta(r_\psi(X))$
$I(X, X) = I(X, r_\psi(X)) = I(X, v_\zeta(r_\psi(X)))$
→ $r$은 $v$를 역함수로 가지는 reversible fucntion. Reversible fuction을 활용하여 layer 구성 시 정보 손실이 없다.
$I(X,X) \geq I(Y, X) \geq I(Y, f_\theta (X)) \geq ... \geq I(Y, \hat{Y})$
→ target $Y$를 구하기 위해 $X$를 통해 예측값 $\hat{Y}$를 구하는 과정에서 발생하는 information bottleneck
- Reversible fuction을 사용하면 정보 손실없이 데이터를 전달할 수 있음.
- PreAct ResNet은 이 장점을 활용한 Deep neural network였으나, 이는 복잡한 추론을 요할 때 성능이 저하됨.
- Masked modeling을 이용한 Diffusion model과 VAE 역시 inverse fucntion을 이용하나, lightweight model에서 parameter 개수의 부족으로 defect가 발생함.
- Feedforward stage에서 소실되는 정보가 그리 중요하지 않더라도 그 정보의 소실로 인해 발생하는 training effect가 클 수 있음. (이는 lightwight model에서 특히 두드러짐)
→ model update를 위한 reliable gradient 생성 및 shallow, lightweight한 neural network에도 적합한 model을 만드는 것이 목표
4. Methodology
4.1 Programmable Gradient Information
- Main branch
- Auxiliary Reversible Branch : 신경망 depth 증가로 인해 발생하는 문제 해결
- Multi-level Auxiliary Information : Deep supervision으로 인해 발생하는 오류 누적 문제 처리
4.1.1 Auxiliary Reversible Branch
- Target mapping 정보 제공 : loss fucntion의 guide 제공, target과 무관한 feedforward feature 영향 줄임
- Reversible architectrue 도입 시 완전한 input data 유지가 가능하나, inference cost 증가 → Auxiliary Reversible Branch 설계를 Deep supervision branch의 확장으로 접근
- Branch에서 소실된 정보에 포함된 유용한 gradient 정보를 받을 수 있음, 효과적인 feature 추출, 얕은 network에 적용 가능
- interference 단계에서 제거 가능 (원래 네트워크의 추론 기능만 필요할 경우), 종류별 reversible architecture 선택 가능
4.1.2 Multi-level Auxiliary Information
- Object detection에서는 서로 다른 feature pyramid를 사용하여 다양한 작업을 수행 (다양한 크기 이미지 감지 등)
- Deep supervision : 대상 개체 예측에 필요한 많은 정보를 배경처리하면서 주변 정보를 소실, 각 feature pyramid별로 모든 대상 객체에 대한 정보가 수신되어야 함.
- Auxiliary Reversivle Branch의 feature pyramid layer와 main branch 사이에 통합 네트워크 삽입 → 모든 target object에 대한 Gradient가 main branch로 전달
- Deep supervision에서 몇몇 특정 정보에 의해 전체 layer가 영향을 받는 현상을 방지
4.2 Generalized ELAN
- CSPNet, ELAN 구조를 결합
- 합성곱 계층을 쌓는데 그치지 않고 모든 계산 블록을 사용할 수 있는 architecture로 전환
5. Experiments
5.1 Experimental Setup, Details : MS COCO data set, YOLOv7 AF setup
5.2 Implimentation Details : YOLOv7 혹은 Dynamic YOLOv7에 GELAN, RepConv computation block 적용
5.3 Comparison with state-of-the-arts
- 기존 모델에서 size별로 높은 성적을 기록한 모델보다 더 낮은 parameter와 계산량에도 불구하고 동일하거나 향상된 AP을 보임.
- ImageNet 사전 학습 모델과 비교해도 Parameter 수와 연산량 측면에서 효율적이면서 더 높은 정확도를 보임.
5.4 Ablation Studies
5.4.1 Generalized ELAN
- GELAN의 성능을 연구한 결과에서는 전반적인 성능 향상을 보였고 특히 CSP block을 사용했을 경우 가장 높은 성능을 보임
- GELAN의 성능이 layer의 깊이에 상관없이 결정되며, GELAN의 구성 요소를 임의로 결합하여 사용하여도 안정적인 성능을 보인다는 것을 의미함.
5.4.2 Programmable Gradient Information
- PGI의 정확도는 deep model 뿐만 아니라 다양한 조합에서 정확도를 향상시킬 수 있으며, 이는 auxiliary supervision을 shallow model에 적용할 수 있고 Deep model process가 안정적인 gradient를 얻도록 하는 데에 기여함.
5.5 Visualization
- Layer의 깊이가 깊어질수록 원본 input data의 정보가 점차 흐릿해지는데 반해, CSPNet과 GELAN을 활용할 경우 object detection에 필요한 정보들이 잘 보존되어 있음.
- PGI를 사용할 경우 GELAN만 사용할 경우에 비해 더 나은 gradient를 제공함으로써 object detection 성능을 높이는데 기여함.
6. Conclusions
- Deep supervision이 lightweight model에 적합하지 않다는 점을 개선하기 위해, PGI와 GELAN을 설계하여 다양한 모델 적용성과 높은 정확도 향상을 보일 수 있었음.
- 뛰어난 성능을 보이는 YOLOv9은 YOLOv8에 비해 parameter 수를 49%, 계산량을 43% 줄일 수 있지만 AP는 0.6% 향상된 결과를 보임.
[YOLOv11]
https://arxiv.org/pdf/2410.17725
Introduction
- YOLO algorithm은 전체 이미지를 한 번에 처리하는 single pass 기법을 통해 기존 2 stage detection으로 이루어지던 object detection을 단일 신경망으로 구성된 regression model로 접근함.
- YOLOv11은 YOLO vision 2024 conference에서 공개된 모델로 정확도, 속도, 효율성에서 높은 향상도를 보였는데, 이는 advanced featrue extraction을 가능하게 함.
Evolution of YOLO models, What is YOLOv11?
- YOLOv11은 Computer Vision 영역에 적용되는 범위를 넓혔으며, 특히 posture estimation과 instance segmentation 영역에서 model 적용 가능성을 확장하여 실용성을 높이는 데 기여함.
Architectural footprint of YOLOv11
- YOLO framework는 bounding box regression과 object classification을 동시에 수행하는 통합 신경망 구조를 가짐.
- Backbone : CNN을 통해 input data를 multi-scale feature map 전환
- Neck : 특수화된 layer를 적용하여 feature 표현을 향상시킴
- Head : Prediction mechanism, 최종 object localization, classification output 도출
- YOLOv11은 YOLOv8에서 마련된 기반을 확장, 개선하여 architecture 혁신 및 parameter 최적화를 보임.
4.1 Backbone
- C3k2 block : C2f block을 대체하여 사용. 더 작은 kernel 크기를 사용하여 2개의 convolution을 수행.
- C2PSA : SPPF block 뒤에 C2PSA block을 도입하여 특정 관심 영역에 집중할 수 있도록 featrue map pooling
4.2 Neck
- C3k2 block : Neck의 C2f block 대체. 전반적인 feature extraction의 속도와 성능 향상에 기여.
- Attention Mechanism : C2PSA를 거쳐온 featrue map에 의해 이미지 내 주요 영역에 집중한 feature 표현
4.3 Head
- C3k2 block : 다양한 경로에 배치되어 multi-scale feature 처리. c3k parameter 값에 따라 처리 방식을 변환.
- Processing 속도 개선 : 2개의 convolution으로 계산 overhead가 줄어들어 빠르게 feature 추출 가능
- Parameter 효율성 : CSP bottleneck 연산을 더욱 효율적으로 구현한 연산
Key Computer Vision Tasks Supported by YOLO11
- Objection detection : 이미지나 비디오 내 객체의 위치 및 분류
- Instance Segmentation : 개별 객체의 픽셀 단위 식별
- Image Classification : 전체 이미지를 범주형 분류
- Pose Estimation : 객체의 움직임이나 자세 추적
- Oriented Object Detection (OBB) : 회전하는 객체의 방향, 위치 파악
- Object Tracking : 객체의 경로 식별, 추적
Advanced and Key Features of YOLOv11
- 정밀도 향상 : YOLOv8에 비해 더 적은 parameter 수와 뛰어난 mAP
- CV 작업의 다양성 : 다양한 CV application 분야에서 높은 성능
- 최적화된 속도 및 성능
- 간소화된 parameter 수
- Advanced feature extraction : 향상된 featrue extraction으로 정확한 object 감지 가능
- Contextual adaptibility : Cloud platform, edge devices, systems optimized for NVIDIA GPU 등 다양한 deployment에 적용 가능
- YOLOv11 model이 정확도 (mAP) 및 속도(Latency) 면에서 이전 버전에 비해 향상된 모습을 보임.
Conclusion
- YOLOv11은 높은 정확도와 처리 속도를 보이며, 광범위한 application에서 다양한 작업에 적용될 수 있는 model임.