Link to this section컴퓨터 비전 모델을 테스트하는 방법#
Link to this section소개#
모델 테스트는 학습된 모델이 잘 정제된 벤치마크 데이터가 아닌, 움직이거나 조명이 열악하거나 부분적으로 가려진 객체가 포함된 이전에 본 적 없는 실제 데이터에서 어떻게 작동하는지 확인하는 과정입니다. 모델 평가는 라벨이 지정된 데이터셋에서 지표를 측정하는 반면, 테스트는 배포 전에 모델이 학습한 동작이 애플리케이션 목표와 일치하는지 검증합니다. 이 가이드에서는 테스트 데이터 준비, Ultralytics YOLO26 모델 테스트, 그리고 과적합(overfitting), 과소적합(underfitting) 및 데이터 누출(data leakage)을 파악하는 방법을 다룹니다.
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
Link to this section모델 테스트와 모델 평가의 비교#
모델 테스트와 모델 평가는 컴퓨터 비전 프로젝트의 두 가지 별도 단계입니다. 평가는 라벨이 지정된 데이터셋에서 지표를 사용하여 성능을 측정하며, 테스트는 모델이 학습한 동작이 실제 배포 환경과 유사한 조건에서 유지되는지 확인합니다.
고양이와 강아지를 인식하기 위해 컴퓨터 비전 모델을 학습시켰고, 이를 펫샵에 배포하여 동물을 모니터링하려 한다고 가정해 보겠습니다. 모델 평가 단계에서는 라벨이 지정된 데이터셋을 사용하여 정확도(accuracy), 정밀도(precision), 재현율(recall)과 같은 지표를 계산합니다. 예를 들어, 특정 데이터셋에서 고양이와 강아지를 구분하는 모델의 정확도가 98%일 수 있습니다.
평가 후에는 펫샵의 이미지를 사용하여 모델을 테스트함으로써 더 다양하고 현실적인 조건에서 고양이와 강아지를 얼마나 잘 식별하는지 확인합니다. 모델이 동물들이 움직이거나, 조명이 다를 때, 또는 장난감이나 가구 등에 부분적으로 가려져 있을 때 정확하게 라벨을 지정할 수 있는지 체크합니다. 모델 테스트는 제어된 평가 환경 밖에서도 모델이 예상대로 작동하는지 확인하는 과정입니다.
Link to this section모델 테스트 준비#
컴퓨터 비전 데이터셋은 일반적으로 실제 환경을 시뮬레이션하기 위해 학습 세트와 테스트 세트로 나뉩니다. 학습 데이터는 모델을 학습시키고, 테스트 데이터는 모델이 이전에 본 적 없는 예제에서 모델의 동작을 검증합니다. Ultralytics Platform은 데이터셋 구성 및 주석을 한곳에서 관리할 수 있게 하여 라벨이 지정된 테스트 세트를 구축할 때 도움이 됩니다.
- 현실적인 표현: 이전에 본 적 없는 테스트 데이터는 모델이 배포 시 처리할 데이터와 유사해야 합니다. 이는 모델의 역량에 대한 현실적인 지표를 제공합니다.
- 충분한 크기: 테스트 데이터셋은 모델이 얼마나 잘 수행되는지에 대한 신뢰할 수 있는 통찰을 제공할 만큼 충분히 커야 합니다.
Link to this sectionYOLO26 모델 테스트 방법#
학습된 YOLO26 모델을 테스트하는 과정은 라벨이 지정된 테스트 분할(test split)에서 검증하여 정량적 지표를 얻는 것과, 새로운 이미지에서 예측을 수행하여 동작을 정성적으로 검사하는 두 가지 상호 보완적인 워크플로우를 포함합니다.
Link to this section라벨이 지정된 테스트 분할에서 검증#
검증 모드(Validation mode)는 모델의 예측을 정답 라벨(ground-truth labels)과 비교하여 탐지 모델에 대한 정밀도, 재현율, mAP50 및 mAP50-95를 보고합니다. 또한 혼동 행렬(confusion matrix) 및 정밀도-재현율 곡선(precision-recall curve)과 같은 시각적 도구를 저장하여 모델이 잘 수행되지 않는 특정 영역을 파악할 수 있도록 돕습니다.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95기본적으로 검증은 데이터셋의 val 분할에서 실행됩니다. 별도의 테스트 세트에서 성능을 측정하려면 데이터셋 YAML에 test: 분할을 정의하고 split="test"를 전달하십시오.
Link to this section새로운 이미지에서 예측 수행#
예측 모드(Prediction mode)는 라벨 없이 새로운 데이터에서 모델을 실행합니다. 이 모드는 성능 지표를 생성하지 않지만, 어노테이션이 포함된 출력을 저장하면 테스트 이미지 전체 폴더와 같이 실제 이미지에서 모델이 어떻게 동작하는지 검토할 수 있습니다.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)사용자 지정 학습에 투자하기 전에 YOLO26이 애플리케이션에 적합한지 확인하려면, 자신의 이미지로 사전 학습된 체크포인트를 사용하여 예측 모드를 실행하십시오. 모델은 COCO와 같은 데이터셋으로 사전 학습되어 있으므로, 결과는 모델이 특정 환경에서 얼마나 잘 수행될지에 대한 빠른 감각을 제공합니다.
Link to this section검증 모드와 예측 모드 비교#
| 모드 | 목적 | 라벨 필요 여부 | 출력 |
|---|---|---|---|
| 검증(Validation) | 정답과 비교하여 성능 정량화 | 예 | 정밀도, 재현율, mAP50, mAP50-95, 혼동 행렬, PR 곡선 |
| 예측(Prediction) | 새로운 라벨이 없는 데이터에서 모델 동작 검사 | 아니요 | 어노테이션이 포함된 이미지 및 예측 결과, 지표 없음 |
Link to this section테스트 결과 분석 방법#
예측과 지표를 확보한 후에는 모델이 어디서, 왜 실패하는지 자세히 조사해야 합니다:
- 잘못 분류된 이미지: 모델이 잘못 분류한 이미지를 식별하고 검토하여 어떤 부분에서 문제가 발생하는지 이해하십시오.
- 오류 분석: 철저한 오류 분석을 수행하여 오류 유형(예: 거짓 양성(false positive) vs 거짓 음성(false negative))과 그 잠재적 원인을 파악하십시오.
- 편향 및 공정성: 모델 예측의 편향을 확인하십시오. 특히 인종, 성별, 연령과 같은 민감한 속성이 포함된 경우 데이터의 다양한 하위 집합 전반에서 모델이 균등하게 잘 작동하는지 확인하십시오.
Link to this section머신러닝에서의 과적합과 과소적합#
머신러닝 모델, 특히 컴퓨터 비전 모델을 테스트할 때는 과적합과 과소적합(underfitting)에 주의하는 것이 중요합니다. 이러한 문제는 모델이 새로운 데이터에서 얼마나 잘 작동하는지에 큰 영향을 미칠 수 있습니다.
| 문제 | 일반적인 징후 | 대처 방법 |
|---|---|---|
| 과적합(Overfitting) | 학습 정확도는 높으나 검증 정확도는 낮음; 이미지의 사소한 변화나 관련 없는 세부 사항에 지나치게 민감하게 반응함 | 드롭아웃과 같은 정규화(regularization) 적용, 학습 데이터셋 크기 증가, 모델 아키텍처 단순화 |
| 과소적합(Underfitting) | 학습 세트에서도 낮은 정확도; 분명한 특징이나 객체를 지속적으로 인식하지 못함 | 더 복잡한 모델 사용, 더 관련성 높은 특징 제공, 학습 에포크(epochs) 증가 |
핵심은 모델이 학습 및 검증 데이터셋 모두에서 잘 작동하도록 균형을 잡는 것입니다. 테스트 중에 지표를 정기적으로 모니터링하고 예측을 시각적으로 검사하면 양극단으로 치우치는 현상을 포착할 수 있습니다.
Link to this section컴퓨터 비전의 데이터 누출 및 방지 방법#
데이터 누출(data leakage)은 학습 데이터셋 외부의 정보가 실수로 모델 학습에 사용될 때 발생합니다. 데이터 누출이 발생하면 학습 중에는 모델이 매우 정확해 보일 수 있지만, 새로운 데이터에서는 제대로 작동하지 않습니다.
누출은 발견하기 까다로울 수 있으며 종종 학습 데이터에 숨겨진 편향으로 인해 발생합니다:
| 편향 유형 | 징후 |
|---|---|
| 카메라 편향 | 다른 각도, 조명, 그림자, 카메라 움직임이 원치 않는 패턴을 유입시킴 |
| 오버레이 편향 | 이미지의 로고, 타임스탬프 또는 기타 오버레이가 모델을 오도함 |
| 폰트 및 객체 편향 | 특정 클래스에 자주 나타나는 특정 폰트나 객체가 모델 학습을 왜곡함 |
| 공간적 편향 | 전경-배경 불균형, 바운딩 박스(bounding box) 분포 및 객체 위치가 학습에 영향을 미침 |
| 라벨 및 도메인 편향 | 부정확한 라벨이나 데이터 유형의 변화가 누출을 유도함 |
Link to this section데이터 누출 탐지 및 방지 방법#
데이터 누출을 찾으려면 모델 결과가 놀라울 정도로 좋은지 확인하고, 특정 특징이 다른 특징보다 훨씬 중요한지 검토하며, 모델의 결정이 직관적으로 타당한지 재확인하고, 처리가 수행되기 전에 데이터가 올바르게 분할되었는지 검증하십시오.
이를 방지하려면 서로 다른 카메라와 환경에서 수집된 이미지나 비디오가 포함된 다양한 데이터셋을 사용하고, 데이터에 숨겨진 편향(예: 모든 긍정 샘플이 특정 시간대에 촬영된 경우)이 있는지 신중하게 검토하십시오. 데이터 누출을 방지하면 컴퓨터 비전 모델이 실제 상황에서 더욱 신뢰할 수 있게 됩니다.
Link to this section모델 테스트 다음 단계#
모델 테스트 후 다음 단계는 결과에 따라 달라집니다. 모델 성능이 우수하다면 실제 환경에 배포할 수 있습니다. 결과가 만족스럽지 않다면 개선이 필요합니다. 여기에는 오류 분석, 더 많은 데이터 수집, 데이터 품질 향상, 하이퍼파라미터 조정 및 모델 재학습이 포함될 수 있습니다.
Link to this section결론#
엄격한 모델 테스트(별도의 테스트 세트에서 검증, 실제 이미지에서 예측, 과적합 및 데이터 누출 확인)는 잘 평가된 모델을 신뢰할 수 있는 모델로 변모시킵니다. 배포 전 테스트에서 드러난 문제를 해결하면 모델이 생산 환경에서 의도대로 수행될 가능성이 훨씬 높아집니다. 진행 과정에서 질문이 생기면 Ultralytics GitHub 저장소 또는 Ultralytics Discord 서버의 커뮤니티에 문의하십시오.
Link to this sectionFAQ#
Link to this section컴퓨터 비전에서 모델 평가와 모델 테스트의 주요 차이점은 무엇입니까?#
모델 평가는 라벨이 지정된 데이터셋에서 지표를 사용하여 성능을 측정하는 반면, 모델 테스트는 배포 조건과 유사한 새로운 미지의 데이터에서 모델이 어떻게 작동하는지 확인합니다. 평가는 제어된 데이터셋에서 정밀도 및 mAP와 같은 수치를 생성하며, 테스트는 다양한 조명, 움직임, 가림 현상에서 학습된 동작이 유지되는지 확인합니다. 구체적인 예시는 모델 테스트와 모델 평가 비교를 참조하십시오.
Link to this sectionUltralytics YOLO26 모델을 여러 이미지에서 테스트하려면 어떻게 해야 합니까?#
예측 모드를 사용하고 폴더 경로를 source로 전달하십시오. YOLO26은 폴더 내 모든 이미지에서 실행되며 검토를 위해 어노테이션이 포함된 결과를 저장할 수 있습니다. 예측 모드는 지표를 계산하지 않으므로, 라벨이 지정된 세트에서 성능을 정량화하려면 대신 검증 모드를 사용하십시오. 두 워크플로우 모두 YOLO26 모델 테스트 방법에 나와 있습니다.
Link to this sectionYOLO26 검증은 테스트 세트에서 어떤 지표를 보고합니까?#
탐지 모델의 경우 검증은 정밀도, 재현율, mAP50, mAP50-95를 보고하며 혼동 행렬과 정밀도-재현율 곡선을 포함한 플롯을 저장합니다. 기본 val 분할 대신 전용 테스트 분할에서 검증하려면 데이터셋 YAML에 test:를 정의하고 split="test"를 전달하십시오. 각 지표를 해석하는 방법은 성능 지표 가이드를 참조하십시오.
Link to this section컴퓨터 비전 모델에서 과적합이나 과소적합 징후가 보이면 어떻게 해야 합니까?#
과적합의 경우 드롭아웃과 같은 정규화 기법을 적용하거나 학습 데이터셋 크기를 늘리거나 모델 아키텍처를 단순화하십시오. 과소적합의 경우 더 복잡한 모델을 사용하거나, 더 관련성 높은 특징을 제공하거나, 더 많은 에포크 동안 학습하십시오. 각 문제의 징후와 해당 해결책은 머신러닝에서의 과적합과 과소적합에 요약되어 있습니다.
Link to this section컴퓨터 비전에서 데이터 누출을 어떻게 탐지하고 방지할 수 있습니까?#
테스트 성능이 놀라울 정도로 좋거나, 단일 특징이 예측을 지배하거나, 모델의 결정이 직관적으로 타당하지 않을 때 데이터 누출을 의심하십시오. 다양한 카메라와 환경의 데이터셋을 사용하고, 데이터의 숨겨진 편향을 검토하며, 처리가 수행되기 전에 학습/테스트 분할이 완료되었는지 확인하여 이를 방지하십시오. 일반적인 편향 유형은 컴퓨터 비전의 데이터 누출을 참조하십시오.
Link to this section컴퓨터 비전 모델을 테스트한 후 어떤 단계를 밟아야 합니까?#
결과가 프로젝트 목표를 충족하면 모델을 배포하고, 그렇지 않으면 배포 전 개선하십시오. 이는 오류 분석, 더 다양한 데이터 수집, 데이터 품질 향상, 하이퍼파라미터 튜닝 및 재학습을 의미할 수 있습니다. 변경 사항을 적용할 때마다 테스트를 반복하여 해결책이 효과가 있었는지 확인하십시오.