Object Detection Architectures
객체 검출 아키텍처는 픽셀을 박스와 레이블로 변환하는 네트워크 설계입니다. 백본, 넥, 헤드, 주요 검출기 계열을 다룹니다.
객체 탐지 아키텍처는 이미지를 바운딩 박스, 클래스 레이블, 신뢰도 점수 목록으로 변환하는 네트워크 설계입니다. 거의 모든 최신 탐지기는 백본, 넥, 헤드로 구성되며, 설계의 주요 차이는 영역 제안, 조밀한 그리드 또는 학습된 쿼리를 통해 후보 박스를 생성하는 방식과 비최대 억제 (NMS) 또는 일대일 매칭으로 중복 예측을 제거하는 방식에 있습니다. 이러한 선택에 따라 탐지기의 정확도와 속도, 엣지 하드웨어에 배포하기 쉬운 정도가 달라집니다. 객체 탐지는 작업을 가리키고, 탐지 헤드는 아키텍처의 한 부분입니다.
백본, 넥, 헤드#
백본은 특징을 추출합니다. ResNet이나 CSPDarknet과 같은 합성곱 신경망, 또는 비전 트랜스포머이며, ImageNet 분류 데이터로 사전 학습되는 경우가 많습니다. 백본은 이미지를 단계적으로 다운샘플링하므로, 깊이가 깊어질수록 특징 맵의 해상도는 낮아지고 의미 정보는 풍부해집니다. 일반적으로 특징 피라미드 네트워크 (FPN)에 PANet과 같은 추가 상향식 경로를 더한 넥은 깊은 특징 맵과 얕은 특징 맵을 결합해 각 출력 스케일이 세밀한 정보와 맥락을 모두 포함하도록 합니다. 헤드는 일반적으로 스트라이드 8, 16, 32에서 각 스케일의 모든 위치에 대해 박스와 클래스 점수를 예측하므로, 가장 세밀한 맵은 작은 객체를 찾고 가장 거친 맵은 큰 객체를 찾습니다. 실제 탐지기의 모델 정의에서 세 부분을 확인할 수 있습니다.
from ultralytics import YOLO
# YOLO26n을 불러오고 모델 YAML과 같은 방식으로 레이어를 분리합니다
model = YOLO("yolo26n.pt")
layers = model.model.model
n_backbone = len(model.model.yaml["backbone"])
# 백본은 특징을 추출하고, 넥은 스케일을 융합하며, 마지막 레이어가 헤드입니다
print("Backbone:", [type(m).__name__ for m in layers[:n_backbone]])
print("Neck:", [type(m).__name__ for m in layers[n_backbone:-1]])
print("Head:", type(layers[-1]).__name__, "at strides", model.model.stride.tolist())백본 목록에는 스트라이드가 적용된 Conv 레이어와 SPPF 풀링 및 C2PSA 어텐션 블록으로 끝나는 C3k2 블록이 표시됩니다. 넥은 Upsample, Concat, C3k2 레이어를 위에서 아래 방향으로 실행하고, 스트라이드가 적용된 Conv, Concat, C3k2 레이어를 다시 위쪽 방향으로 실행합니다. Detect 헤드는 스트라이드 8, 16, 32에서 예측합니다.
탐지기 유형#
- 2단계 탐지기: 영역 제안 네트워크가 수백 개의 후보 영역을 제안하고, 두 번째 헤드가 Faster R-CNN (2015) 및 Mask R-CNN (2017)과 같이 각 영역을 분류하고 보정합니다.
- 앵커 기반 1단계 탐지기: SSD (2016), YOLOv2부터 YOLOv5까지의 모델, RetinaNet (2017)은 단일 패스에서 모든 그리드 셀의 사전 정의된 앵커 박스를 기준으로 오프셋을 예측합니다.
- 앵커 프리 탐지기: FCOS (2019)와 YOLOv8 (2023)은 한 점에서 박스 네 변까지의 거리를 예측하고, CenterNet (2019)은 각 중심점의 너비 및 높이와 함께 히트맵 피크로 박스 중심을 예측합니다. YOLOX (2021)는 YOLO 제품군을 앵커 프리 예측 방식으로 되돌렸으며, 이들 모델은 모두 앵커 튜닝이 필요하지 않습니다.
- DETR 방식의 Transformer 탐지기: DETR(2020)은 학습된 객체 쿼리의 고정 집합을 디코딩하고 라벨이 지정된 객체와 일대일로 매칭하므로 출력에 NMS가 필요하지 않습니다. Deformable DETR은 학습 에포크를 10분의 1로 줄이면서 정확도를 높였고, RT-DETR은 2023년에 이 설계를 실시간으로 구현했습니다.
- NMS 프리 CNN 탐지기: YOLOv10 (2024)은 일대일 헤드와 일대다 헤드를 함께 학습하고 추론 시 일대일 헤드만 실행하므로, 박스에 NMS가 필요하지 않습니다.
- 오픈 보캐뷸러리 탐지기: Grounding DINO와 YOLO-World는 고정된 분류 계층을 텍스트 임베딩으로 대체하므로 추론 시점에 지정된 클래스를 탐지합니다.
아키텍처 선택하기#
COCO의 평균 정밀도(mAP)와 같은 벤치마크는 정확도를 비교하는 데 유용하지만, 설계는 대개 대상 하드웨어와 이미지 속 객체에 따라 결정됩니다. YOLO26은 두 종류의 헤드를 갖춘 앵커 프리 원스테이지 CNN입니다. 기본적으로 원투매니 브랜치에 NMS를 적용하고, nms=False를 지정하면 원투원 브랜치로 전환됩니다. 모델 YAML에는 스트라이드 4 또는 스트라이드 64 출력을 추가하는 P2 및 P6 변형이 포함됩니다.
- 엣지 및 실시간 비디오: 소형 CNN 탐지기는 TensorRT 및 OpenVINO와 같은 런타임으로 컴파일하기에 적합하며, NMS 프리 헤드는 후보 수에 따라 비용이 증가하는 후처리 단계를 제거합니다.
- 작은 객체: 항공 및 검사 이미지는 스트라이드 4와 같은 더 세밀한 출력 레벨이나, 겹치는 크롭에 탐지기를 실행하는 타일 추론이 필요합니다.
- 변화하는 제품 카탈로그: 오픈 어휘 탐지기는 레이블이 지정된 이미지가 없어도 텍스트 프롬프트를 통해 새로운 제품을 찾습니다.
- 회전 객체: 위성 이미지의 선박, 차량, 건물은 헤드에 각도 출력을 추가하는 방향성 박스로 더 정확하게 표현할 수 있습니다.










