Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Anchor Boxes

앵커 박스는 고정된 크기와 종횡비를 가진 사전 정의 박스로, 검출기가 객체에 맞게 위치와 크기를 조정합니다. 크기 설정, 매칭, 사용 방법을 다룹니다.

앵커 박스는 고정된 크기와 종횡비를 가진 사전 정의된 직사각형으로, 감지기의 특징 맵 전체 위치에 타일처럼 배치되어 객체의 위치와 형태를 추정하는 시작점 역할을 합니다. 앵커 기반 감지기는 각 앵커에 대해 모든 클래스의 점수를 계산하고, 객체에 맞게 앵커를 이동하고 크기를 조정하는 작은 오프셋을 예측합니다. 이는 아무것도 없는 상태에서 박스를 예측하는 것보다 학습하기 쉽습니다. Faster R-CNN은 각 위치에 앵커 9개를 배치합니다. 세 가지 영역(128², 256², 512² 픽셀)에 세 가지 종횡비(1:1, 1:2, 2:1)를 적용하므로 1000 × 600 이미지에는 앵커가 약 20,000개 생성됩니다.

앵커 정의 방법#

앵커 세트는 특징 맵의 모든 셀에 반복적으로 적용되는 크기와 종횡비 목록이므로, 앵커 수는 셀 수 × 셀당 형태 수와 같습니다. 특징 피라미드 네트워크(FPN)를 사용하는 감지기는 해상도가 높고 세밀한 레벨에 작은 앵커를, 거친 레벨에 큰 앵커를 할당합니다. RetinaNet은 5개 레벨 각각의 위치에 앵커 9개를 사용하므로 이미지당 앵커가 약 100,000개입니다. SSD는 앵커를 기본 박스라고 부르며, SSD300은 기본 박스 8,732개를 타일처럼 배치합니다.

직접 선택한 형태는 일부 데이터 세트에 잘 맞지 않으므로 YOLOv2는 학습 박스의 너비와 높이에 k-means 클러스터링을 적용하고, 거리로 1 − IoU를 사용해 클러스터 중심 5개를 앵커로 선택했습니다. YOLOv3는 앵커 9개를 클러스터링해 세 개의 출력 스트라이드에 균등하게 나눴습니다. 스트라이드 8 레벨의 10 × 13 픽셀부터 스트라이드 32 레벨의 373 × 326 픽셀까지 범위가 이어집니다.

객체와 앵커 매칭#

학습 중에는 각 앵커를 교집합 대비 합집합(IoU)으로 레이블이 지정된 모든 박스와 비교합니다. 객체와 충분히 겹치는 앵커는 양성 샘플이 되어 해당 객체의 클래스와 바운딩 박스까지의 오프셋을 학습합니다. 겹침이 적은 앵커는 "배경"을 학습하는 음성 샘플이 되고, 그 사이의 앵커는 무시됩니다. Faster R-CNN의 영역 제안 네트워크는 IoU가 0.7 이상이면 양성, 0.3 미만이면 음성으로 표시하며, 각 객체와 가장 잘 매칭되는 앵커도 양성으로 설정해 어떤 객체도 앵커 없이 남지 않도록 합니다.

import torch
from torchvision.ops import box_iou

# Nine anchors centered on one feature-map cell at (200, 200): 3 sizes x 3 aspect ratios (height / width)
shapes = [(size, ratio) for size in (64, 128, 256) for ratio in (0.5, 1.0, 2.0)]
anchors = []
for size, ratio in shapes:
    w, h = size / ratio**0.5, size * ratio**0.5
    anchors.append([200 - w / 2, 200 - h / 2, 200 + w / 2, 200 + h / 2])

# A labeled pedestrian box (x1, y1, x2, y2): tall and narrow
person = torch.tensor([[160.0, 110.0, 240.0, 290.0]])

# Faster R-CNN RPN rule: IoU >= 0.7 is positive, below 0.3 is negative, anything between is ignored
iou = box_iou(torch.tensor(anchors), person).squeeze(1)
for (size, ratio), value in zip(shapes, iou.tolist()):
    label = "positive" if value >= 0.7 else "negative" if value < 0.3 else "ignored"
    print(f"size {size}, ratio {ratio}: IoU {value:.2f} -> {label}")

높이가 긴 128픽셀 앵커(ratio 2.0)만 보행자와 충분히 겹쳐 양성으로 판정되며, IoU는 0.88입니다. 다른 128픽셀 앵커 두 개는 IoU가 0.31과 0.50으로 무시되고, 크기가 맞지 않는 앵커 여섯 개는 음성으로 처리됩니다. 이후 양성 앵커는 표준 파라미터화에 따라 오프셋을 학습합니다. 중심은 앵커의 너비와 높이에 대한 비율만큼 이동하며, 너비와 높이는 예측값의 지수만큼 배율이 적용됩니다.

데이터 세트에 맞는 앵커 크기 선택#

데이터 세트의 객체 형태와 잘 맞는 앵커를 사용하면 더 많은 객체에 양성 앵커를 할당할 수 있어 감지기가 도달할 수 있는 재현율이 높아집니다. Ultralytics YOLOv5는 YOLOv3의 앵커 9개를 시작점으로 사용하고, AutoAnchor로 학습 전에 적합성을 확인합니다. 학습 레이블에서 앵커의 가능한 최고 재현율을 측정하고, 그 값이 0.98을 초과하지 않으면 k-means와 1,000세대의 유전적 진화를 사용해 다시 적합화하며, 재현율이 향상되는 경우에만 새 앵커를 채택합니다.

한계와 앵커 프리 감지기#

앵커에는 세 가지 비용이 따릅니다. 이미지에서 수만 개에 달하는 앵커의 거의 대부분은 배경을 덮으므로, 쉬운 음성 샘플이 손실을 압도합니다. RetinaNet은 이를 완화하기 위해 포컬 로스를 도입해 쉬운 음성 샘플의 가중치를 낮췄습니다. 여러 인접 앵커가 같은 객체에 맞으므로 객체마다 박스 하나만 남기려면 비최대 억제(NMS)가 필요합니다. 크기, 종횡비, IoU 임계값도 데이터 세트와 이미지 크기에 따라 달라지는 하이퍼파라미터입니다.

앵커 프리 감지기는 점이나 키포인트에서 박스를 예측해 이러한 하이퍼파라미터를 제거합니다. 2021년 YOLOX 이후 출시된 대부분의 실시간 감지기는 앵커 프리 방식입니다. Faster R-CNN, Mask R-CNN, RetinaNet과 같은 앵커 기반 감지기에는 여전히 앵커가 사용됩니다. RetinaNet과 앵커 프리 방식인 FCOS를 비교한 ATSS는 두 모델이 양성 샘플을 동일한 방식으로 선택하면 위치당 앵커 9개를 사용하는 RetinaNet의 정확도가 앵커 1개를 사용하는 경우보다 높지 않다는 점을 확인했습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요