YOLO Vision 2026:

모델 평가 및 미세 조정에 대한 인사이트#

YOLO 모델을 학습시킨 후, 다음 단계는 성능을 측정하고 취약점을 보완하기 위해 파인튜닝을 진행하는 것입니다. 평가에서는 mAPIoU와 같은 지표를 사용하여 정확도를 수치화하며, 파인튜닝은 학습 파라미터를 조정하여 약한 부분을 강화함으로써 모델이 프로젝트 목표를 충족할 수 있도록 합니다. 이 가이드에서는 주요 평가 지표, 이를 해석하는 방법, 그리고 모델의 역량을 높여주는 파인튜닝 기법에 대해 설명합니다.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

평가와 파인튜닝은 학습이 진행된 후 모델이 정확하고 효율적이며 배포 준비가 되었는지 확인해야 하는 컴퓨터 비전 프로젝트 워크플로의 막바지에 해당합니다.

주요 평가 지표#

다양한 지표를 통해 모델의 성능을 측정할 수 있습니다. 이러한 성능 지표는 모델이 의도한 목표를 달성할 수 있도록 개선 방향을 제시하는 명확한 수치적 인사이트를 제공합니다.

신뢰도 점수 (Confidence Score)#

신뢰도 점수는 감지된 객체가 특정 클래스에 속할 확률에 대한 모델의 확신을 나타냅니다. 0에서 1 사이의 값을 가지며, 점수가 높을수록 확신이 크다는 것을 의미합니다. 신뢰도 점수는 예측을 필터링하는 데 도움이 되며, 지정된 임계값보다 높은 신뢰도 점수를 가진 감지만 유효한 것으로 간주됩니다.

예측 결과가 보이지 않습니까?

추론 실행 시 예측 결과가 보이지 않고 다른 모든 사항을 점검했다면, 신뢰도 임계값(confidence threshold)을 낮춰 보십시오. 때로는 임계값이 너무 높아 모델이 유효한 예측을 무시하는 경우가 있습니다. 이를 낮추면 모델이 더 많은 가능성을 고려하게 됩니다. 최종 프로젝트 목표에는 부합하지 않을 수 있으나, 모델의 성능을 확인하고 파인 튜닝 방법을 결정하는 좋은 방법입니다.

Intersection over Union#

Intersection over Union(IoU)은 객체 검출에서 예측된 바운딩 박스가 실제 정답(ground truth) 바운딩 박스와 얼마나 겹치는지 측정하는 지표입니다. IoU 값은 0에서 1 사이이며, 1은 완벽한 일치를 의미합니다. IoU는 예측된 경계가 실제 객체 경계와 얼마나 밀접하게 일치하는지 측정하므로 필수적입니다.

Intersection over Union Overview

평균 정밀도 (Mean Average Precision)#

Mean Average Precision(mAP)은 객체 검출 모델의 전반적인 성능을 측정합니다. 각 객체 클래스 검출의 정밀도를 살펴보고 이 점수들을 평균하여 모델이 객체를 얼마나 정확하게 식별하고 분류할 수 있는지 보여주는 단일 숫자를 제공합니다.

일반적으로 다음 두 가지 mAP 지표가 보고됩니다:

  • mAP@.5: 0.5의 단일 IoU 임계값에서의 평균 정밀도를 측정합니다. 이 지표는 모델이 다소 완화된 정확도 요구 사항으로 객체를 올바르게 찾을 수 있는지 확인합니다. 완벽한 배치가 아니더라도 객체가 대략 올바른 위치에 있는지에 초점을 맞추며, 모델이 전반적으로 객체를 잘 탐지하는지 확인하는 데 도움이 됩니다.
  • mAP@.5:.95: 0.5부터 0.95까지 0.05 단위로 여러 IoU 임계값에서 계산된 mAP 값을 평균화합니다. 이 지표는 더 상세하고 엄격합니다. 다양한 엄격성 수준에서 모델이 객체를 얼마나 정확하게 찾을 수 있는지에 대한 전체적인 그림을 제공하며, 정밀한 object detection이 필요한 애플리케이션에 특히 유용합니다.

다른 mAP 지표로는 더 엄격한 0.75 IoU 임계값을 사용하는 mAP@0.75와, 다양한 크기의 객체에 걸쳐 정밀도를 평가하는 mAP@small, medium, large가 있습니다.

Mean average precision mAP metric

YOLO26 모델 평가하기#

검증 모드를 사용하여 학습된 YOLO26 모델을 평가할 수 있습니다. 각 지표가 계산되고 해석되는 방식에 대한 자세한 내용은 YOLO26 성능 지표 가이드를 참조하세요.

가변 이미지 크기 처리#

다양한 크기의 이미지로 모델을 평가하면 다양한 데이터셋에서의 성능을 이해하는 데 도움이 됩니다. rect=true 검증 파라미터는 이미지를 종횡비별로 그룹화하고 각 배치에 맞는 가장 작은 크기로 패딩을 적용하므로, 직사각형 이미지를 강제로 정사각형으로 만들지 않고 평가할 수 있습니다.

imgsz 파라미터는 검증 중에 사용되는 이미지 크기를 정사각형으로 설정합니다. 명시적으로 설정하지 않으면 YOLO26은 모델 설정에 저장된 값(공식 사전 학습된 모델의 경우 640, 또는 커스텀 체크포인트가 학습된 크기)을 재사용합니다. rect=true을 사용하면 YOLO26은 긴 변을 imgsz로 제한하고 짧은 변을 스트라이드 배수로 패딩하여 종횡비를 유지합니다. 데이터셋의 크기와 사용 가능한 GPU 메모리에 따라 imgsz을 조정하세요.

YOLO26 지표 액세스#

모델의 성능을 자세히 파악하기 위해 몇 줄의 Python 코드로 특정 평가 지표에 접근할 수 있습니다. 아래 코드 조각은 모델을 로드하고, 검증을 실행하며, 가장 유용한 지표를 출력합니다.

사용법
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

fitness()은 메서드이므로 괄호와 함께 호출해야 하는 반면, map, map50, mp과 같은 지표는 직접 액세스하는 속성입니다.

results.box.image_metrics 속성은 이미지 파일 이름을 키로 하는 이미지별 딕셔너리로, 각 이미지에 대해 IoU 0.5에서의 precision, recall, f1, tp, fp, fn을 담고 있습니다. 전처리, 추론, 손실 및 후처리 타이밍은 results.speed 딕셔너리에 별도로 보고됩니다. 이를 통해 모델이 어떤 이미지에서 어려움을 겪는지 정확히 파악하고 그에 맞춰 파인튜닝을 수행할 수 있습니다.

모델 파인 튜닝하기#

파인 튜닝은 사전 학습된 모델을 가져와 특정 작업이나 데이터셋에 대한 성능을 개선하기 위해 파라미터를 조정하는 작업입니다. 모델 재학습이라고도 하며, 모델이 실제 애플리케이션에서 접하게 될 데이터를 더 잘 이해하고 예측할 수 있도록 합니다. 평가 결과를 바탕으로 몇 가지 주요 파라미터와 기법에 주의를 기울여 최적의 결과를 얻도록 모델을 재학습합니다.

더 높은 학습률로 시작하기#

일반적인 학습 중에는 학습률이 낮게 시작하여 초기 업데이트를 안정시키기 위해 처음 몇 에포크 동안 점진적으로 증가합니다. 파인튜닝 시에는 모델이 이미 사전 학습에서 유용한 피처를 가지고 있으므로 이 웜업 단계를 건너뛰고 즉시 새 데이터에 적응하기 시작할 수 있습니다.

model.train()에서 warmup_epochs 학습 인수를 0로 설정하여 워밍업 단계를 비활성화합니다. 그러면 학습률이 서서히 증가하는 대신 설정된 기본 학습률(lr0)에서 사전 학습된 가중치로 계속 진행되어 새로운 데이터의 특성에 적응합니다.

학습률 웜업 없이 파인 튜닝하기
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

작은 객체를 위한 이미지 타일링#

이미지 타일링은 작은 객체의 검출 정확도를 향상시킬 수 있습니다. 1280x1280 이미지를 여러 개의 640x640 세그먼트로 나누는 것과 같이 더 큰 이미지를 더 작은 세그먼트로 분할하면 원래 해상도를 유지하고 모델이 고해상도 조각에서 학습할 수 있습니다. Ultralytics는 SAHI 타일링 추론을 통해 추론 시 이를 지원합니다. 타일링된 이미지로 학습할 때는 각 새 세그먼트에 맞게 레이블을 올바르게 조정해야 합니다.

결론#

평가와 파인튜닝은 학습된 모델을 신뢰할 수 있고 배포 가능한 모델로 바꿔주는 핵심 요소입니다. mAP 및 IoU 같은 지표는 약점을 드러내고, 타겟팅된 파라미터 변경은 이를 해결합니다. 검증 모드로 모델의 벤치마크를 측정한 다음, 위의 파인튜닝 기법을 적용하고 새로운 파라미터, 기법, 데이터셋으로 계속 반복 작업을 수행하세요. 진행 중에 질문이 생기면 Ultralytics GitHub 저장소 또는 Ultralytics Discord 서버의 커뮤니티에 문의하세요.

FAQ#

  • YOLO26 모델 성능을 평가하기 위한 중요한 지표로는 신뢰도 점수(Confidence Score), Intersection over Union (IoU), Mean Average Precision (mAP)이 있습니다. 신뢰도 점수는 감지된 각 객체 클래스에 대한 모델의 확실성을 측정합니다. IoU는 예측된 바운딩 박스가 정답과 얼마나 잘 겹치는지 평가합니다. Mean Average Precision (mAP)은 클래스 전반의 정밀도 점수를 집계하며, mAP@.5와 mAP@.5:.95는 다양한 IoU 임계값에 대해 흔히 쓰이는 두 가지 유형입니다. 이러한 지표에 대한 자세한 내용은 YOLO26 성능 지표 가이드에서 확인하세요.

  • 사전 학습된 YOLO26 모델의 파인튜닝은 특정 작업이나 데이터셋에서 성능을 향상시키기 위해 파라미터를 조정하는 과정을 포함합니다. 먼저 지표를 통해 모델을 평가한 다음, model.train()에서 warmup_epochs 학습 인수를 0로 설정하여 학습률이 서서히 증가하는 대신 설정된 기본값에서 즉시 시작되도록 합니다. 평가하는 동안 rect=true과 같은 파라미터는 다양한 이미지 크기를 효과적으로 처리하는 데 도움을 줍니다. 더 자세한 안내는 fine-tuning your model 섹션을 참고하십시오.

  • 평가 중에 가변적인 이미지 크기를 처리하려면 YOLO26의 rect=true 파라미터를 사용하세요. 이 파라미터는 모든 이미지를 강제로 정사각형으로 만드는 대신 이미지를 종횡비별로 그룹화하고 각 배치에 패딩을 적용합니다. imgsz 파라미터는 검증용 이미지 크기를 설정하며, 이를 재정의하지 않으면 YOLO26은 모델에 저장된 값(공식 사전 학습 모델의 경우 640)을 재사용합니다. 데이터셋과 GPU 메모리에 맞게 imgsz를 조정하세요. 자세한 내용은 가변 이미지 크기 처리 섹션을 방문하세요.

  • YOLO26 모델의 mAP(mean average precision)를 개선하는 작업에는 몇 가지 단계가 포함됩니다:

    1. 하이퍼파라미터 튜닝: 다양한 학습률, 배치 크기, 이미지 증강을 실험해 보세요.
    2. 데이터 증강: Mosaic 및 MixUp과 같은 기법을 사용하여 다양한 학습 샘플을 만듭니다.
    3. 이미지 타일링: 큰 이미지를 더 작은 타일로 분할하여 작은 객체에 대한 탐지 정확도를 향상시킵니다.

    구체적인 전략은 모델 파인튜닝에 관한 상세 섹션을 참조하세요.

  • 검증 실행 후 Python을 사용하여 YOLO26 모델 평가 지표에 접근할 수 있습니다:

    사용법
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")
    
    # Run validation
    results = model.val(data="coco8.yaml")
    
    # Access key metrics
    print("Mean average precision at IoU=0.50:", results.box.map50)
    print("Mean average precision at IoU=0.50:0.95:", results.box.map)
    print("Mean recall:", results.box.mr)
    print("Class indices evaluated:", results.box.ap_class_index)

    이러한 지표를 분석하면 YOLO26 모델을 파인튜닝하고 최적화하는 데 도움이 됩니다. 더 자세히 알아보려면 YOLO 성능 지표 가이드를 확인하세요.

댓글