YOLO가 전체 이미지 정보를 활용하여 각 객체에 대한 바운딩 박스와 클래스 확률을 신속하게 예측하며,
이는 아래와 같은 4단계 과정을 거치는 기존 방법에 비해 속도와 통합성 면에서 상당한 이점을 가짐
1. 그리드 분할- YOLO는 입력 이미지를 SxS 그리드로 나눕니다. 각 그리드 셀은 객체의 중심이 그 셀 안에 있을 경우 그 객체를 감지하는 책임이 있습니다.
2. 바운딩 박스 및 확률 예측 - 각 그리드 셀은 B개의 바운딩 박스와 각 박스에 대한 객체가 존재할 확률을 예측합니다.
바운딩 박스는 객체 위치를 정의하며, 확률은 그 박스가 객체를 포함하고 있을 가능성을 나타냅니다.
3. 클래스 예측 - 각 그리드 셀은 또한 C개의 클래스에 대한 조건부 확률을 예측합니다. 즉, 그리드 셀에 객체가 있는 경우 해당 객체가 각 클래스에 속할 확률입니다.
4. 비최대 억제(non-maximum suppression) - 여러 바운딩 박스가 같은 객체에 대해 예측될 수 있으므로, 비최대 억제는 겹치는 박스 중 가장 확률이 높은 하나를 제외하고 나머지를 제거하여 중복을 줄입니다.
이러한 단계들을 통해 YOLO는 이미지를 한 번만 보고서도 객체의 위치와 해당 객체가 어떤 클래스에 속하는지를 빠르고 효율적으로 예측할 수 있음
이는 다른 방식에 비해 처리 속도가 매우 빠르다는 장점이 있어 실시간 시스템에 적합함
모델 아키텍처를 최적화하려고 시도할 뿐만 아니라 훈련 프로세스를 최적화하는 것을 목표로함
CSPNet (Cross Stage Partial Network) :
YOLOv4, YOLOv5 등의 YOLO series 모델에서 사용되는 네트워크 아키텍쳐에서 네트워크를 크게 두 단계 backbone과 neck으로 나뉨.
backbone 네트워크는 강력한 특징 추출에 집중하며, neck 네트워크는 object detection에 집중함
ELAN (Efficient and Lightweight Anchor-Free Network) :
YOLOv7에서 사용되는 object detection 알고리즘으로, 기존 anchor-based 알고리즘의 단점을 보완하고 효율성을 높이고자함
anchor box를 사용하지 않고, center-based prediction 방식을 사용하여 객체 중심 좌표와 크기를 직접 예측함
각 픽셀마다 객체가 존재할 확률을 나타내는 heatmap을 사용하여 객체 위치를 예측함
DETR(DEtection TRansformer) :
단일 Transformer 구조만 사용하여 객체 탐지 수행하고, encoder에서 이미지 특성을 추출하고, self-attention mechanism을 통해 상호 연관성을 학습함
decoder에서 각 객체를 예측함. Transformer의 병렬 처리 특성으로 빠른 추론 속도를 제공함
최근 DETR()에 기반한 real-time object detector들이 일부 제안되었지만, DETR 시리즈는 상응하는 도메인 사전학습 모델 없이 새로운 도메인에 적용하는 것이
극도로 어렵기 때문에, 아직까지는 YOLO series가 가장 널리 사용되는 real-time object detector로 알려져 있음
참고사이트 : https://velog.io/@choonsik_mom/YOLOv9-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0
TIL [Today I Learned]