다음을 사용한 모델 유효성 검사 Ultralytics YOLO
소개
검증은 머신 러닝 파이프라인에서 중요한 단계로, 학습된 모델의 품질을 평가할 수 있게 해줍니다. Ultralytics YOLO11 의 Val 모드는 객체 감지 모델의 성능을 평가하기 위한 강력한 도구와 메트릭을 제공합니다. 이 가이드는 Val 모드를 효과적으로 사용하여 모델의 정확성과 신뢰성을 보장하는 방법을 이해하는 데 도움이 되는 완벽한 리소스입니다.
Watch: Ultralytics 모드 튜토리얼: 유효성 검사
왜 Ultralytics YOLO 으로 유효성 검사를 해야 하나요?
YOLO11 의 Val 모드를 사용하는 것이 유리한 이유는 다음과 같습니다:
- 정밀도: mAP50, mAP75, mAP50-95와 같은 정확한 지표를 통해 모델을 종합적으로 평가할 수 있습니다.
- 편리함: 교육 설정을 기억하는 기본 제공 기능을 활용하여 유효성 검사 프로세스를 간소화합니다.
- 유연성: 동일하거나 다른 데이터 세트와 이미지 크기로 모델을 검증하세요.
- 하이퍼파라미터 튜닝: 유효성 검사 메트릭을 사용하여 모델을 미세 조정하여 성능을 개선할 수 있습니다.
Val 모드의 주요 기능
다음은 YOLO11 의 Val 모드에서 제공하는 주목할 만한 기능입니다:
- 자동화된 설정: 모델이 학습 구성을 기억하여 간편하게 검증할 수 있습니다.
- 멀티 메트릭 지원: 다양한 정확도 지표를 기반으로 모델을 평가할 수 있습니다.
- CLI 및 Python API: 유효성 검사에 대한 선호도에 따라 명령줄 인터페이스 또는 Python API 중에서 선택합니다.
- 데이터 호환성: 학습 단계에서 사용된 데이터 세트는 물론 사용자 지정 데이터 세트와도 원활하게 작동합니다.
팁
- YOLO11 모델은 학습 설정을 자동으로 기억하므로 동일한 이미지 크기와 원본 데이터 세트에서 다음과 같은 방법으로 모델을 쉽게 검증할 수 있습니다.
yolo val model=yolo11n.pt
또는model('yolo11n.pt').val()
사용 예
학습된 YOLO11n 모델 검증하기 정확성 로 설정할 수 있습니다. 인수가 필요하지 않으므로 model
교육 유지 data
및 인수를 모델 속성으로 사용할 수 있습니다. 유효성 검사 인수의 전체 목록은 아래 인수 섹션을 참조하세요.
예
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
YOLO 모델 유효성 검사에 대한 인수
YOLO 모델을 검증할 때 여러 인수를 미세 조정하여 평가 프로세스를 최적화할 수 있습니다. 이러한 인수는 입력 이미지 크기, 일괄 처리 및 성능 임계값과 같은 측면을 제어합니다. 다음은 유효성 검사 설정을 효과적으로 사용자 지정하는 데 도움이 되는 각 인수에 대한 자세한 분석입니다.
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
data |
str |
None |
데이터 세트 구성 파일의 경로를 지정합니다(예:, coco8.yaml ). 이 파일에는 다음 경로가 포함됩니다. 유효성 검사 데이터, 클래스 이름, 클래스 수를 입력합니다. |
imgsz |
int |
640 |
입력 이미지의 크기를 정의합니다. 모든 이미지는 처리하기 전에 이 크기로 크기가 조정됩니다. 크기가 클수록 작은 물체의 정확도는 향상되지만 계산 시간이 늘어날 수 있습니다. |
batch |
int |
16 |
배치당 이미지 수를 설정합니다. 값이 클수록 GPU 메모리를 더 효율적으로 활용하지만 더 많은 VRAM이 필요합니다. 사용 가능한 하드웨어 리소스에 따라 조정합니다. |
save_json |
bool |
False |
만약 True 는 추가 분석, 다른 도구와의 통합 또는 COCO와 같은 평가 서버에 제출할 수 있도록 결과를 JSON 파일에 저장합니다. |
save_hybrid |
bool |
False |
만약 True 를 사용하면 원본 주석과 추가 모델 예측을 결합한 하이브리드 버전의 레이블을 저장할 수 있습니다. 준지도 학습 및 데이터 세트 향상에 유용합니다. |
conf |
float |
0.001 |
탐지에 대한 최소 신뢰도 임계값을 설정합니다. 값이 낮을수록 정확도는 높아지지만 오탐이 더 많이 발생할 수 있습니다. 유효성 검사 중에 정밀도-재검색 곡선을 계산하는 데 사용됩니다. |
iou |
float |
0.6 |
비최대 억제에 대한 교집합 초과 임계값을 설정합니다. 중복 감지 제거를 제어합니다. |
max_det |
int |
300 |
이미지당 최대 감지 횟수를 제한합니다. 과도한 감지를 방지하고 컴퓨팅 리소스를 관리하기 위해 밀집된 장면에서 유용합니다. |
half |
bool |
True |
반정밀도 (FP16) 계산을 지원하여 정확도에 미치는 영향을 최소화하면서 메모리 사용량을 줄이고 잠재적으로 속도를 높일 수 있습니다. |
device |
str |
None |
유효성 검사할 장치를 지정합니다(cpu , cuda:0 등). 언제 None 를 입력하면 사용 가능한 최적의 장치가 자동으로 선택됩니다. 쉼표로 구분하여 여러 CUDA 장치를 지정할 수 있습니다. |
dnn |
bool |
False |
만약 True 를 사용하여 OpenCV ONNX 모델 추론을 위한 DNN 모듈로, 다음과 같은 대안을 제공합니다. PyTorch 추론 방법. |
plots |
bool |
False |
로 설정한 경우 True 는 모델 성능을 시각적으로 평가할 수 있도록 예측과 지상 진실, 혼동 행렬 및 PR 곡선의 플롯을 생성하고 저장합니다. |
rect |
bool |
True |
만약 True 는 일괄 처리에 직사각형 추론을 사용하여 패딩을 줄이고 이미지를 원래 종횡비로 처리하여 속도와 효율성을 높일 수 있습니다. |
split |
str |
'val' |
유효성 검사에 사용할 데이터 세트 분할을 결정합니다(val , test 또는 train ). 성능 평가를 위한 데이터 세그먼트를 유연하게 선택할 수 있습니다. |
project |
str |
None |
유효성 검사 결과가 저장되는 프로젝트 디렉터리의 이름입니다. 다양한 실험 또는 모델의 결과를 정리하는 데 도움이 됩니다. |
name |
str |
None |
유효성 검사 실행의 이름입니다. 유효성 검사 로그 및 출력이 저장되는 프로젝트 폴더 내에 하위 디렉터리를 만드는 데 사용됩니다. |
verbose |
bool |
False |
만약 True 를 클릭하면 클래스별 메트릭, 배치 진행률, 추가 디버깅 정보 등 유효성 검사 프로세스 중 자세한 정보를 표시합니다. |
save_txt |
bool |
False |
만약 True 는 이미지당 하나의 파일로 탐지 결과를 텍스트 파일로 저장하여 추가 분석, 사용자 지정 후처리 또는 다른 시스템과의 통합에 유용합니다. |
save_conf |
bool |
False |
만약 True 는 다음과 같은 경우 저장된 텍스트 파일에 신뢰도 값을 포함합니다. save_txt 를 활성화하면 분석 및 필터링을 위한 더 자세한 출력이 제공됩니다. |
save_crop |
bool |
False |
만약 True 는 탐지된 객체의 잘린 이미지를 저장하여 집중된 데이터 세트를 만들거나, 시각적으로 확인하거나, 개별 탐지에 대한 추가 분석에 유용하게 사용할 수 있습니다. |
workers |
int |
8 |
데이터 로딩을 위한 워커 스레드 수입니다. 값이 클수록 데이터 전처리 속도가 빨라지지만 CPU 사용량이 증가할 수 있습니다. 0으로 설정하면 메인 스레드를 사용하므로 일부 환경에서는 더 안정적일 수 있습니다. |
augment |
bool |
False |
유효성 검사 중에 테스트 시간 증강(TTA)을 활성화하여 입력의 변환된 버전에 대해 추론을 실행함으로써 추론 속도를 희생하면서 탐지 정확도를 향상시킬 수 있습니다. |
agnostic_nms |
bool |
False |
예상 클래스에 관계없이 겹치는 상자를 병합하는 클래스 무관 비-최대 억제 기능을 활성화합니다. 인스턴스 중심 애플리케이션에 유용합니다. |
single_cls |
bool |
False |
유효성 검사 중에 모든 클래스를 단일 클래스로 취급합니다. 이진 탐지 작업에서 모델 성능을 평가하거나 클래스 구분이 중요하지 않은 경우에 유용합니다. |
이러한 각 설정은 유효성 검사 프로세스에서 중요한 역할을 하며, YOLO 모델을 사용자 지정하고 효율적으로 평가할 수 있게 해줍니다. 특정 요구 사항과 리소스에 따라 이러한 매개변수를 조정하면 정확도와 성능 간의 최상의 균형을 달성하는 데 도움이 될 수 있습니다.
인수를 사용한 유효성 검사 예제
아래 예제에서는 Python 및 CLI 에서 사용자 지정 인수를 사용한 YOLO 모델 유효성 검사를 보여줍니다.
예
자주 묻는 질문
Ultralytics 으로 내 YOLO11 모델의 유효성을 검사하려면 어떻게 하나요?
YOLO11 모델의 유효성을 검사하려면 Ultralytics 에서 제공하는 Val 모드를 사용할 수 있습니다. 예를 들어 Python API를 사용하여 모델을 로드하고 유효성 검사를 실행할 수 있습니다:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate the model
metrics = model.val()
print(metrics.box.map) # map50-95
또는 명령줄 인터페이스(CLI)를 사용할 수도 있습니다:
추가 사용자 지정을 위해 다음과 같은 다양한 인수를 조정할 수 있습니다. imgsz
, batch
및 conf
Python 및 CLI 모드에서 모두 사용할 수 있습니다. 확인 YOLO 모델 유효성 검사에 대한 인수 섹션에서 전체 매개변수 목록을 확인하세요.
YOLO11 모델 유효성 검사에서 어떤 메트릭을 얻을 수 있나요?
YOLO11 모델 유효성 검사는 모델 성능을 평가하기 위한 몇 가지 주요 지표를 제공합니다. 여기에는 다음이 포함됩니다:
- mAP50(IoU 임계값 0.5에서 평균 평균 정밀도)
- mAP75(IoU 임계값 0.75에서 평균 평균 정밀도)
- mAP50-95(0.5 ~ 0.95의 여러 IoU 임계값에서 평균 평균 정밀도)
Python API를 사용하면 다음과 같이 이러한 메트릭에 액세스할 수 있습니다:
metrics = model.val() # assumes `model` has been loaded
print(metrics.box.map) # mAP50-95
print(metrics.box.map50) # mAP50
print(metrics.box.map75) # mAP75
print(metrics.box.maps) # list of mAP50-95 for each category
완전한 성능 평가를 위해서는 이러한 모든 지표를 검토하는 것이 중요합니다. 자세한 내용은 Val 모드의 주요 기능을 참조하세요.
유효성 검사에 Ultralytics YOLO 을 사용하면 어떤 이점이 있나요?
유효성 검사에 Ultralytics YOLO 을 사용하면 몇 가지 이점이 있습니다:
- 정밀도: YOLO11 는 mAP50, mAP75, mAP50-95를 포함한 정확한 성능 지표를 제공합니다.
- 편의성: 모델이 학습 설정을 기억하므로 검증이 간단합니다.
- 유연성: 동일하거나 다른 데이터 세트 및 이미지 크기에 대해 유효성을 검사할 수 있습니다.
- 하이퍼파라미터 튜닝: 유효성 검사 메트릭은 더 나은 성능을 위해 모델을 미세 조정하는 데 도움이 됩니다.
이러한 이점을 통해 모델을 철저하게 평가하고 우수한 결과를 위해 최적화할 수 있습니다. 이러한 장점에 대해 자세히 알아보려면 Ultralytics YOLO 섹션을 참조하세요.
사용자 지정 데이터 집합을 사용하여 YOLO11 모델의 유효성을 검사할 수 있나요?
예, YOLO11 모델을 사용하여 유효성을 검사할 수 있습니다. 사용자 지정 데이터 세트. 를 지정하십시오. data
인수를 데이터 세트 구성 파일의 경로와 함께 지정합니다. 이 파일에는 유효성 검사 데이터, 클래스 이름 및 기타 관련 세부 정보를 입력합니다.
Python 의 예제 :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map) # map50-95
CLI 사용 예제 :
유효성 검사 중 사용자 지정 가능한 옵션에 대한 자세한 내용은 인수를 사용한 유효성 검사 예제 섹션을 참조하세요.
유효성 검사 결과를 YOLO11 에 있는 JSON 파일에 저장하려면 어떻게 하나요?
유효성 검사 결과를 JSON 파일에 저장하려면 다음과 같이 설정할 수 있습니다. save_json
인수를 True
를 추가해야 합니다. 이는 Python API와 CLI 에서 모두 수행할 수 있습니다.
Python 의 예제 :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Save validation results to JSON
metrics = model.val(save_json=True)
CLI 사용 예제 :
이 기능은 추가 분석이나 다른 도구와의 통합에 특히 유용합니다. 자세한 내용은 YOLO 모델 유효성 검사 인수를 참조하세요.