모델 평가 및 파인튜닝 인사이트#
YOLO 모델을 학습한 후에는 모델의 성능을 측정하고 격차를 줄이도록 파인튜닝하는 것이 다음 단계입니다. 평가는 mAP 및 IoU와 같은 지표를 사용하여 정확도를 정량화하고, 파인튜닝은 학습 파라미터를 조정하여 취약한 부분을 강화함으로써 모델이 프로젝트 목표를 충족하도록 합니다. 이 가이드에서는 주요 평가 지표와 이를 해석하는 방법, 그리고 지표가 보여 주는 결과에 따라 조치를 취하는 방법을 설명합니다.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
평가와 파인튜닝은 컴퓨터 비전 프로젝트 워크플로의 후반부에 해당하며, 학습이 진행 중이고 모델이 정확하고 효율적이며 배포할 준비가 되었는지 확인해야 할 때 수행합니다.
주요 평가 지표#
다양한 지표를 통해 모델의 성능을 측정할 수 있습니다. 이러한 성능 지표는 모델이 의도한 목표를 충족하도록 개선 방향을 제시하는 명확한 수치 정보를 제공합니다.
신뢰도 점수#
신뢰도 점수는 감지된 객체가 특정 클래스에 속한다고 모델이 확신하는 정도를 나타냅니다. 값의 범위는 0에서 1까지이며, 점수가 높을수록 신뢰도가 높음을 의미합니다. 신뢰도 점수는 예측을 필터링하는 데 사용되며, 지정된 임계값보다 높은 신뢰도 점수를 가진 감지만 유효한 것으로 간주합니다.
추론을 실행할 때 다른 모든 사항을 확인했는데도 예측 결과가 표시되지 않는다면 신뢰도 임계값을 낮춰 보세요. 임계값이 너무 높으면 모델이 유효한 예측을 무시할 수 있습니다. 임계값을 낮추면 모델이 더 많은 가능성을 고려할 수 있습니다. 이 설정이 최종 프로젝트 목표에 부합하지 않을 수도 있지만, 모델이 수행할 수 있는 작업을 확인하고 파인튜닝 방법을 결정하는 데 유용합니다.
교집합 대비 합집합#
교집합 대비 합집합 (IoU)은 객체 감지에서 예측된 바운딩 박스가 실측 바운딩 박스와 얼마나 겹치는지를 측정하는 지표입니다. IoU 값의 범위는 0에서 1까지이며, 1은 완벽하게 일치함을 의미합니다. IoU는 예측된 경계가 실제 객체의 경계와 얼마나 정확하게 일치하는지를 측정하므로 중요합니다.
평균 정밀도#
평균 정밀도 (mAP)는 객체 감지 모델의 전반적인 성능을 측정합니다. 각 객체 클래스를 감지하는 정밀도를 확인하고 이러한 점수의 평균을 계산하여 모델이 객체를 얼마나 정확하게 식별하고 분류할 수 있는지를 보여 주는 단일 수치를 제공합니다.
가장 일반적으로 보고되는 mAP 지표는 다음 두 가지입니다.
- mAP@.5: 단일 IoU 임계값 0.5에서의 평균 정밀도를 측정합니다. 이 지표는 모델이 완화된 정확도 요구 사항으로 객체를 올바르게 찾을 수 있는지 확인합니다. 객체가 대략 올바른 위치에 있는지를 중점적으로 평가하므로 정확한 위치 일치가 필요하지 않으며, 모델이 전반적으로 객체를 잘 감지하는지 확인하는 데 도움이 됩니다.
- mAP@.5:.95: 0.5부터 0.95까지 0.05씩 증가하는 여러 IoU 임계값에서 계산된 mAP 값의 평균입니다. 이 지표는 더 세부적이고 엄격합니다. 다양한 엄격도 수준에서 모델이 객체를 얼마나 정확하게 찾을 수 있는지에 대한 더 종합적인 정보를 제공하며, 정밀한 객체 감지가 필요한 애플리케이션에 특히 유용합니다.
그 밖의 mAP 지표로는 더 엄격한 IoU 임계값 0.75를 사용하는 mAP@0.75와 크기가 서로 다른 객체에 대한 정밀도를 평가하는 mAP@small, medium, large가 있습니다.
YOLO26 모델 평가#
검증 모드를 사용하여 학습된 YOLO26 모델을 평가할 수 있습니다. 각 지표의 계산 및 해석 방법을 자세히 알아보려면 YOLO26 성능 지표 가이드를 참조하세요.
가변 이미지 크기 처리#
크기가 서로 다른 이미지로 모델을 평가하면 다양한 데이터셋에서의 성능을 이해하는 데 도움이 됩니다. rect=true 검증 파라미터는 종횡비에 따라 이미지를 그룹화하고 각 배치를 해당 배치에 맞는 가장 작은 형태로 패딩하므로, 직사각형 이미지가 정사각형으로 강제 변환되지 않은 상태에서 평가됩니다.
imgsz 파라미터는 검증 중 사용되는 이미지 크기를 정사각형 형태로 설정합니다. 명시적으로 설정하지 않으면 YOLO26은 모델 설정에 저장된 값을 재사용합니다(공식 사전 학습 모델은 640, 사용자 지정 체크포인트는 해당 체크포인트를 학습한 크기). rect=true을 사용하면 YOLO26은 긴 변을 imgsz로 제한하고 짧은 변을 stride 배수에 맞게 패딩하여 종횡비를 유지합니다. 데이터셋의 크기와 사용 가능한 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 딕셔너리에 별도로 보고됩니다. 이를 함께 사용하면 모델이 어떤 이미지에서 어려움을 겪는지 파악하고 그에 맞게 파인튜닝할 수 있습니다.
모델 파인튜닝#
파인튜닝은 사전 학습된 모델의 파라미터를 조정하여 특정 작업이나 데이터셋에서의 성능을 향상합니다. 모델 재학습이라고도 하며, 실제 애플리케이션에서 접하게 될 데이터를 모델이 더 잘 이해하고 결과를 예측할 수 있도록 합니다. 평가 결과를 바탕으로 자체 데이터에서 모델을 재학습하고, 파인튜닝 가이드에서 다룬 학습 인자를 조정합니다.
소규모 객체를 위한 이미지 타일링#
이미지 타일링은 소규모 객체의 감지 정확도를 향상할 수 있습니다. 큰 이미지를 더 작은 세그먼트로 나누면, 예를 들어 1280x1280 이미지를 여러 640x640 세그먼트로 분할하면 원본 해상도를 유지하면서 모델이 고해상도 조각으로부터 학습하도록 할 수 있습니다. Ultralytics는 SAHI 타일링 추론을 통해 추론 시 이 기능을 지원합니다. 타일링된 이미지로 학습할 때는 각 새 세그먼트에 맞게 라벨을 올바르게 조정해야 합니다.
결론#
평가와 파인튜닝을 통해 학습된 모델은 신뢰할 수 있고 배포 가능한 모델로 거듭납니다. mAP 및 IoU와 같은 지표로 약점을 파악하고, 목표에 맞는 파라미터 변경으로 이를 해결할 수 있습니다. 먼저 검증 모드로 모델을 벤치마크한 다음, 파인튜닝 가이드에서 다룬 인자를 사용해 재학습하고 새로운 파라미터, 기법 및 데이터셋으로 계속 반복하세요. 진행 중 질문이 생기면 Ultralytics GitHub 저장소 또는 Ultralytics Discord 서버의 커뮤니티에 문의하세요.
FAQ#
YOLO26 모델 성능을 평가할 때 중요한 지표로는 신뢰도 점수, 교집합 대비 합집합 (IoU), 평균 정밀도 (mAP)가 있습니다. 신뢰도 점수는 감지된 각 객체 클래스에 대한 모델의 확신 정도를 측정합니다. IoU는 예측된 바운딩 박스가 실측 바운딩 박스와 얼마나 겹치는지 평가합니다. 평균 정밀도 (mAP)는 클래스 전체의 정밀도 점수를 종합하며, mAP@.5와 mAP@.5:.95는 서로 다른 IoU 임계값에 사용되는 두 가지 일반적인 유형입니다. 이러한 지표에 대한 자세한 내용은 YOLO26 성능 지표 가이드에서 확인하세요.
사전 학습된 YOLO26 모델의 파인튜닝은 특정 작업이나 데이터셋에서의 성능을 향상하도록 파라미터를 조정하는 과정입니다. 먼저 지표를 사용하여 모델을 평가한 다음, 사전 학습된 가중치에서 시작해 자체 데이터셋으로 재학습하세요. 평가 중에는
rect=true과 같은 파라미터를 사용하여 다양한 이미지 크기를 효과적으로 처리할 수 있습니다. 조정할 학습 인자는 파인튜닝 가이드를 참조하세요.평가 중 가변 이미지 크기를 처리하려면 YOLO26에서
rect=true파라미터를 사용하세요. 이 파라미터는 모든 이미지를 정사각형으로 강제 변환하는 대신 종횡비에 따라 이미지를 그룹화하고 각 배치를 패딩합니다.imgsz파라미터는 검증에 사용할 이미지 크기를 설정하며, 재정의하지 않으면 YOLO26은 모델에 저장된 값을 재사용합니다(공식 사전 학습 모델은 640). 데이터셋과 GPU 메모리에 맞게imgsz를 조정하세요. 자세한 내용은 가변 이미지 크기 처리 섹션을 참조하세요.검증을 실행한 후 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 성능 지표 가이드를 참조하세요.