콘텐츠로 건너뛰기

구성

YOLO 설정 및 하이퍼파라미터는 모델의 성능, 속도 및 정확도에 중요한 역할을 합니다. 이러한 설정은 훈련, 유효성 검사 및 예측을 포함한 다양한 단계에서 모델의 동작에 영향을 줄 수 있습니다.

시청: Ultralytics YOLO 마스터하기: 구성



참고: Ultralytics YOLO 마스터하기: 구성

Ultralytics 명령어는 다음 구문을 사용합니다.

예시

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

위치:

기본값 ARG 값은 이 페이지에 정의되어 있으며 다음에서 가져옵니다. cfg/defaults.yaml 파일.

태스크

Ultralytics YOLO 모델은 다음과 같은 다양한 컴퓨터 비전 작업을 수행할 수 있습니다.

  • 감지: 객체 감지는 이미지 또는 비디오 내에서 객체를 식별하고 위치를 파악합니다.
  • 분할(Segment): 인스턴스 분할은 이미지 또는 비디오를 서로 다른 객체 또는 클래스에 해당하는 영역으로 나눕니다.
  • 분류: 이미지 분류는 입력 이미지의 클래스 레이블을 예측합니다.
  • 포즈: 포즈 추정은 이미지 또는 비디오에서 객체를 식별하고 키포인트를 추정합니다.
  • OBB: Oriented Bounding Boxes는 회전된 경계 상자를 사용하며, 위성 또는 의료 이미지에 적합합니다.
인수 기본값 설명
task 'detect' YOLO 작업(task)을 지정합니다: detect 다음을 위한 객체 감지, segment 분할용, classify 분류용, pose 포즈 추정을 위한 것이며, obb 방향이 지정된 경계 상자를 위한 것입니다. 각 작업은 이미지 및 비디오 분석의 특정 출력 및 문제에 맞게 조정됩니다.

Tasks 가이드

모드

Ultralytics YOLO 모델은 모델 수명 주기의 특정 단계를 위해 설계된 다양한 모드에서 작동합니다.

  • 훈련: 사용자 정의 데이터 세트에 대해 YOLO 모델을 훈련합니다.
  • Val: 훈련된 YOLO 모델을 검증합니다.
  • 예측: 훈련된 YOLO 모델을 사용하여 새로운 이미지나 비디오에 대한 예측을 수행합니다.
  • 내보내기: 배포를 위해 YOLO 모델을 내보냅니다.
  • 추적: YOLO 모델을 사용하여 실시간으로 객체를 추적합니다.
  • 벤치마크: YOLO 내보내기(ONNX, TensorRT 등)의 속도와 정확도를 벤치마킹합니다.
인수 기본값 설명
mode 'train' YOLO 모델의 작동 모드를 지정합니다: train 모델 학습, val 유효성 검사, predict 추론을 위해, export 배포 형식으로 변환하기 위해, track 객체 추적, 그리고 benchmark 성능 평가를 위한 것입니다. 각 모드는 개발에서 배포에 이르기까지 다양한 단계를 지원합니다.

Modes 가이드

훈련 설정

YOLO 모델의 훈련 설정에는 모델의 성능, 속도 및 정확도에 영향을 미치는 하이퍼파라미터와 구성이 포함됩니다. 주요 설정에는 배치 크기, 학습률, 모멘텀 및 가중치 감소가 있습니다. 옵티마이저, 손실 함수 및 데이터 세트 구성의 선택 또한 훈련에 영향을 미칩니다. 최적의 성능을 위해서는 튜닝 및 실험이 중요합니다. 자세한 내용은 Ultralytics 진입점 함수를 참조하십시오.

인수 유형 기본값 설명
model str None 학습에 사용할 모델 파일을 지정합니다. 사전 학습된 모델 또는 .pt 사전 학습된 모델 또는 .yaml 구성 파일의 경로를 허용합니다. 모델 구조를 정의하거나 가중치를 초기화하는 데 필수적입니다.
data str None 데이터 세트 구성 파일의 경로입니다(예: coco8.yaml데이터 세트 구성 파일의 경로입니다(예:). 이 파일에는 학습 경로를 포함한 데이터 세트 관련 파라미터가 포함되어 있습니다. 유효성 검사 데이터, 클래스 이름 및 클래스 수가 포함됩니다.
epochs int 100 총 학습 epoch 수입니다. 각 epoch은 전체 데이터 세트에 대한 전체 패스를 나타냅니다. 이 값을 조정하면 학습 기간 및 모델 성능에 영향을 줄 수 있습니다.
time float None 최대 학습 시간(시간)입니다. 설정된 경우 `--epochs` 인수를 덮어쓰고 지정된 기간 후 학습이 자동으로 중지되도록 합니다. 시간이 제한된 학습 시나리오에 유용합니다. epochs 인수를 덮어쓰고 지정된 기간 후 학습이 자동으로 중지되도록 합니다. 시간이 제한된 학습 시나리오에 유용합니다.
patience int 100 검증 메트릭이 개선되지 않은 상태로 조기 중단을 위해 대기하는 epoch 수입니다. 성능이 정체될 때 학습을 중단하여 과적합을 방지하는 데 도움이 됩니다.
batch int 또는 float 16 배치 크기이며, 세 가지 모드가 있습니다. 정수로 설정(예: batch=16) 60% GPU 메모리 활용을 위한 자동 모드(batch=-1) 또는 지정된 활용 비율의 자동 모드(batch=0.70)입니다.
imgsz int 또는 list 640 학습을 위한 대상 이미지 크기입니다. 모든 이미지는 모델에 입력되기 전에 이 크기로 조정됩니다. 모델 정확도 및 계산 복잡성에 영향을 줍니다.
save bool True 학습 체크포인트 및 최종 모델 가중치 저장을 활성화합니다. 학습 재개 또는 모델 배포에 유용합니다.
save_period int -1 모델 체크포인트 저장 빈도(epoch 단위)입니다. -1 값은 이 기능을 비활성화합니다. 긴 학습 세션 중에 중간 모델을 저장하는 데 유용합니다.
cache bool False 데이터 세트 이미지를 메모리(True/ram), 디스크(disk)에 캐싱하거나 비활성화(False)합니다. 메모리 사용량을 늘리는 대신 디스크 I/O를 줄여 학습 속도를 향상시킵니다.
device int 또는 str 또는 list None 학습을 위한 계산 장치를 지정합니다. 단일 GPU(device=0), 다중 GPU (device=[0,1]), CPU (device=cpu), Apple Silicon용 MPS (device=mps), 또는 가장 유휴 상태인 GPU 자동 선택(device=-1) 또는 여러 개의 유휴 GPU(device=[-1,-1])
workers int 8 데이터 로딩을 위한 worker 스레드 수 (per RANK ) (다중 GPU 훈련인 경우). 데이터 전처리 속도와 모델에 데이터를 공급하는 속도에 영향을 미치며, 특히 다중 GPU 설정에서 유용합니다.
project str None 훈련 결과가 저장되는 프로젝트 디렉터리의 이름입니다. 다양한 실험을 체계적으로 저장할 수 있습니다.
name str None 훈련 실행 이름입니다. 훈련 로그 및 결과가 저장되는 프로젝트 폴더 내에 하위 디렉터리를 만드는 데 사용됩니다.
exist_ok bool False True인 경우 기존 프로젝트/이름 디렉터리를 덮어쓸 수 있습니다. 이전 결과를 수동으로 지우지 않고 반복적인 실험을 수행하는 데 유용합니다.
pretrained bool 또는 str True 사전 훈련된 모델에서 훈련을 시작할지 여부를 결정합니다. 부울 값이거나 가중치를 로드할 특정 모델의 문자열 경로일 수 있습니다. 훈련 효율성과 모델 성능을 향상시킵니다.
optimizer str 'auto' 훈련에 사용할 최적화 알고리즘을 선택합니다. 옵션에는 SGD, Adam, AdamW, NAdam, RAdam, RMSProp 등이 있으며, auto 모델 구성에 따라 자동 선택을 위한 옵션도 있습니다. 수렴 속도와 안정성에 영향을 미칩니다.
seed int 0 훈련을 위한 임의 시드를 설정하여 동일한 구성으로 실행할 때마다 결과의 재현성을 보장합니다.
deterministic bool True 결정론적 알고리즘 사용을 강제하여 재현성을 보장하지만, 비결정론적 알고리즘에 대한 제한으로 인해 성능과 속도에 영향을 줄 수 있습니다.
single_cls bool False 다중 클래스 데이터 세트의 모든 클래스를 훈련 중에 단일 클래스로 취급합니다. 이진 분류 작업이나 분류보다는 객체 존재에 집중할 때 유용합니다.
classes list[int] None 학습할 클래스 ID 목록을 지정합니다. 학습 중에 특정 클래스만 필터링하여 집중하는 데 유용합니다.
rect bool False 직사각형 훈련을 활성화하여 최소 패딩을 위해 배치 구성을 최적화합니다. 효율성과 속도를 향상시킬 수 있지만 모델 정확도에 영향을 줄 수 있습니다.
multi_scale bool False 증가/감소를 통해 다중 스케일 학습을 활성화합니다. imgsz 최대 0.5 학습 중. 모델이 여러 번 더 정확해지도록 학습합니다. imgsz 추론 시.
cos_lr bool False 코사인 학습률 스케줄러를 활용하여 epoch에 따라 코사인 곡선을 따라 학습률을 조정합니다. 더 나은 수렴을 위해 학습률을 관리하는 데 도움이 됩니다.
close_mosaic int 10 완료 전에 훈련을 안정화하기 위해 마지막 N epoch에서 모자이크 데이터 증강을 비활성화합니다. 0으로 설정하면 이 기능이 비활성화됩니다.
resume bool False 마지막으로 저장된 체크포인트부터 훈련을 재개합니다. 모델 가중치, 최적화 프로그램 상태 및 epoch 수를 자동으로 로드하여 훈련을 원활하게 계속합니다.
amp bool True 자동 혼합 정밀도 (AMP) 훈련을 활성화하여 메모리 사용량을 줄이고 정확도에 미치는 영향을 최소화하면서 훈련 속도를 높일 수 있습니다.
fraction float 1.0 훈련에 사용할 데이터 세트의 비율을 지정합니다. 전체 데이터 세트의 하위 세트에서 훈련할 수 있으므로 실험이나 리소스가 제한적인 경우에 유용합니다.
profile bool False 훈련 중 ONNX 및 TensorRT 속도 프로파일링을 활성화하여 모델 배포를 최적화하는 데 유용합니다.
freeze int 또는 list None 모델의 처음 N개 레이어 또는 지정된 레이어를 인덱스별로 고정하여 훈련 가능한 파라미터 수를 줄입니다. 전이 학습 또는 미세 조정에 유용합니다.
lr0 float 0.01 초기 학습률 (예: SGD=1E-2, Adam=1E-3). 이 값을 조정하는 것은 최적화 프로세스에 매우 중요하며 모델 가중치가 업데이트되는 속도에 영향을 미칩니다.
lrf float 0.01 초기 비율의 일부로 최종 학습률 = (lr0 * lrf스케줄러와 함께 사용하여 학습률을 시간에 따라 조정합니다.
momentum float 0.937 SGD의 모멘텀 계수 또는 Adam 옵티마이저의 베타1으로, 현재 업데이트에 과거 기울기를 통합하는 데 영향을 줍니다.
weight_decay float 0.0005 L2 정규화 항으로, 과적합을 방지하기 위해 큰 가중치에 페널티를 줍니다.
warmup_epochs float 3.0 학습률 워밍업을 위한 epoch 수로, 학습 초기에 안정화를 위해 낮은 값에서 초기 학습률로 점진적으로 증가시킵니다.
warmup_momentum float 0.8 워밍업 단계의 초기 모멘텀으로, 워밍업 기간 동안 설정된 모멘텀으로 점진적으로 조정됩니다.
warmup_bias_lr float 0.1 워밍업 단계 동안 편향 파라미터에 대한 학습률로, 초기 epoch에서 모델 학습을 안정화하는 데 도움이 됩니다.
box float 7.5 손실 함수에서 박스 손실 요소의 가중치로, bounding box 좌표를 정확하게 예측하는 데 얼마나 중점을 둘지 영향을 줍니다.
cls float 0.5 전체 손실 함수에서 분류 손실의 가중치로, 다른 요소에 비해 올바른 클래스 예측의 중요도에 영향을 미칩니다.
dfl float 1.5 분포 focal loss의 가중치로, 세분화된 분류를 위해 특정 YOLO 버전에서 사용됩니다.
pose float 12.0 포즈 추정을 위해 학습된 모델에서 포즈 손실의 가중치로, 포즈 키포인트를 정확하게 예측하는 데 중점을 둡니다.
kobj float 2.0 포즈 추정 모델에서 키포인트 객체성 손실의 가중치로, 감지 신뢰도와 포즈 정확도 간의 균형을 맞춥니다.
nbs int 64 손실 정규화를 위한 명목 배치 크기입니다.
overlap_mask bool True 객체 마스크를 훈련을 위해 단일 마스크로 병합할지, 아니면 각 객체에 대해 개별적으로 유지할지 결정합니다. 겹치는 경우 병합하는 동안 더 작은 마스크가 더 큰 마스크 위에 겹쳐집니다.
mask_ratio int 4 세분화 마스크의 다운샘플링 비율로, 학습 중에 사용되는 마스크의 해상도에 영향을 줍니다.
dropout float 0.0 분류 작업에서 정규화를 위한 드롭아웃 비율로, 학습 중에 임의로 유닛을 생략하여 과적합을 방지합니다.
val bool True 학습 중 유효성 검사를 활성화하여 별도의 데이터 세트에서 모델 성능을 주기적으로 평가할 수 있습니다.
plots bool False 학습 및 유효성 검사 지표와 예측 예제의 플롯을 생성하고 저장하여 모델 성능 및 학습 진행 상황에 대한 시각적 통찰력을 제공합니다.

배치 크기 설정에 대한 참고 사항

그리고 batch 인수는 세 가지 구성 옵션을 제공합니다.

  • 고정 배치 크기: 배치당 이미지 수를 정수로 지정합니다(예: batch=16)입니다.
  • 자동 모드(GPU 메모리 60%): 사용 batch=-1 CUDA 메모리 사용률을 약 60%로 자동 조정합니다.
  • 활용률 분수를 사용하는 자동 모드: 비율을 설정합니다(예: batch=0.70)를 사용하여 지정된 GPU 메모리 사용량을 기준으로 조정합니다.

Train 가이드

예측 설정

YOLO 모델의 예측 설정에는 추론 중 성능, 속도 및 정확도에 영향을 미치는 하이퍼파라미터 및 구성이 포함됩니다. 주요 설정에는 신뢰도 임계값, Non-Maximum Suppression (NMS) 임계값 및 클래스 수가 포함됩니다. 입력 데이터 크기, 형식 및 마스크와 같은 추가 기능도 예측에 영향을 미칩니다. 최적의 성능을 위해서는 이러한 설정을 조정하는 것이 필수적입니다.

추론 인수:

인수 유형 기본값 설명
source str 'ultralytics/assets' 추론을 위한 데이터 소스를 지정합니다. 이미지 경로, 비디오 파일, 디렉터리, URL 또는 라이브 피드를 위한 장치 ID가 될 수 있습니다. 다양한 형식과 소스를 지원하여 다양한 유형의 입력에 걸쳐 유연한 적용이 가능합니다.
conf float 0.25 검출에 대한 최소 신뢰도 임계값을 설정합니다. 이 임계값 미만의 신뢰도로 검출된 객체는 무시됩니다. 이 값을 조정하면 오탐지를 줄이는 데 도움이 될 수 있습니다.
iou float 0.7 Non-Maximum Suppression (NMS)을 위한 Intersection Over Union (IoU) 임계값입니다. 값이 낮을수록 중복 상자를 제거하여 검출 수가 줄어들며, 이는 중복을 줄이는 데 유용합니다.
imgsz int 또는 tuple 640 추론을 위한 이미지 크기를 정의합니다. 정사각형 크기 조정을 위한 단일 정수 640 또는 (높이, 너비) 튜플이 될 수 있습니다. 적절한 크기 조정은 검출 정확도 및 처리 속도를 향상시킬 수 있습니다.
rect bool True 활성화된 경우 추론 속도를 향상시키기 위해 이미지의 짧은 면을 스트라이드(stride)로 나눌 수 있을 때까지 최소한으로 채웁니다. 비활성화된 경우 추론 중에 이미지를 정사각형으로 채웁니다.
half bool False Half-precision (FP16) 추론을 활성화하여 정확도에 미치는 영향을 최소화하면서 지원되는 GPU에서 모델 추론 속도를 높일 수 있습니다.
device str None 추론을 위한 장치를 지정합니다 (예: cpu, cuda:0 또는 0). 사용자는 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 선택할 수 있습니다.
batch int 1 추론을 위한 배치 크기를 지정합니다(소스가 다음인 경우에만 작동). 디렉토리, 비디오 파일 또는 .txt 파일). 배치 크기가 클수록 처리량이 높아져 추론에 필요한 총 시간을 단축할 수 있습니다.
max_det int 300 이미지당 허용되는 최대 검출 수입니다. 모델이 단일 추론에서 검출할 수 있는 총 객체 수를 제한하여 밀집된 장면에서 과도한 출력을 방지합니다.
vid_stride int 1 비디오 입력에 대한 프레임 스트라이드입니다. 시간 해상도를 희생하면서 비디오에서 프레임을 건너뛰어 처리 속도를 높일 수 있습니다. 값이 1이면 모든 프레임을 처리하고, 값이 높을수록 프레임을 건너뜁니다.
stream_buffer bool False 비디오 스트림에 대한 들어오는 프레임을 대기열에 넣을지 여부를 결정합니다. 만약 False, 이전 프레임은 삭제되어 새 프레임을 수용합니다(실시간 애플리케이션에 최적화됨). `True`인 경우 True, 새 프레임을 버퍼에 대기시켜 프레임이 건너뛰지 않도록 하지만, 추론 FPS가 스트림 FPS보다 낮으면 지연이 발생합니다.
visualize bool False 추론 중에 모델 특징의 시각화를 활성화하여 모델이 "보고" 있는 내용에 대한 통찰력을 제공합니다. 디버깅 및 모델 해석에 유용합니다.
augment bool False 예측에 대한 테스트 시간 증강 (TTA)을 활성화하여 추론 속도를 희생하면서 검출 견고성을 잠재적으로 향상시킵니다.
agnostic_nms bool False 클래스에 구애받지 않는 Non-Maximum Suppression (NMS)을 활성화하여 서로 다른 클래스의 겹치는 상자를 병합합니다. 클래스 겹침이 흔한 다중 클래스 검출 시나리오에서 유용합니다.
classes list[int] None 예측을 클래스 ID 집합으로 필터링합니다. 지정된 클래스에 속하는 검출만 반환됩니다. 다중 클래스 검출 작업에서 관련 객체에 집중하는 데 유용합니다.
retina_masks bool False 고해상도 분할 마스크를 반환합니다. 반환된 마스크 (masks.data)는 활성화된 경우 원본 이미지 크기와 일치합니다. 비활성화된 경우 추론 중에 사용된 이미지 크기를 갖습니다.
embed list[int] None 특징 벡터 또는 임베딩을 추출할 레이어를 지정합니다. 클러스터링 또는 유사성 검색과 같은 다운스트림 작업에 유용합니다.
project str None 예측 출력이 저장되는 프로젝트 디렉터리의 이름(다음과 같은 경우). save 가 활성화되어 있습니다.
name str None 예측 실행 이름입니다. 프로젝트 폴더 내에 하위 디렉터리를 만드는 데 사용되며, 예측 결과가 저장되는 경우 save 가 활성화되어 있습니다.
stream bool False 모든 프레임을 한 번에 메모리에 로드하는 대신 Results 객체의 생성기를 반환하여 긴 비디오 또는 수많은 이미지에 대한 메모리 효율적인 처리를 활성화합니다.
verbose bool True 터미널에 자세한 추론 로그를 표시할지 여부를 제어하여 예측 프로세스에 대한 실시간 피드백을 제공합니다.

시각화 인수:

인수 유형 기본값 설명
show bool False 만약 True, 어노테이션이 적용된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백에 유용합니다.
save bool False or True 어노테이션이 적용된 이미지 또는 비디오를 파일로 저장할 수 있습니다. 문서화, 추가 분석 또는 결과 공유에 유용합니다. CLI를 사용할 때는 기본적으로 True이고, python에서 사용할 때는 False입니다.
save_frames bool False 비디오를 처리할 때 개별 프레임을 이미지로 저장합니다. 특정 프레임을 추출하거나 프레임별 상세 분석에 유용합니다.
save_txt bool False 감지 결과를 텍스트 파일에 다음 형식으로 저장합니다. [class] [x_center] [y_center] [width] [height] [confidence]. 다른 분석 도구와의 통합에 유용합니다.
save_conf bool False 저장된 텍스트 파일에 신뢰도 점수를 포함합니다. 사후 처리 및 분석에 사용할 수 있는 세부 정보를 향상시킵니다.
save_crop bool False 감지된 객체의 잘린 이미지를 저장합니다. 데이터 세트 증강, 분석 또는 특정 객체에 대한 집중적인 데이터 세트 생성에 유용합니다.
show_labels bool True 시각적 출력에서 각 감지에 대한 레이블을 표시합니다. 감지된 객체에 대한 즉각적인 이해를 제공합니다.
show_conf bool True 레이블과 함께 각 감지에 대한 신뢰도 점수를 표시합니다. 각 감지에 대한 모델의 확신에 대한 통찰력을 제공합니다.
show_boxes bool True 감지된 객체 주위에 경계 상자를 그립니다. 이미지 또는 비디오 프레임에서 객체의 시각적 식별 및 위치에 필수적입니다.
line_width None or int None 경계 상자의 선 너비를 지정합니다. 만약 None, 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다.

Predict 가이드

검증 설정

YOLO 모델의 유효성 검사 설정에는 유효성 검사 데이터 세트에서 성능을 평가하기 위한 하이퍼파라미터 및 구성이 포함됩니다. 이러한 설정은 성능, 속도 및 정확도에 영향을 미칩니다. 일반적인 설정에는 배치 크기, 유효성 검사 빈도 및 성능 지표가 포함됩니다. 특정 작업과 함께 유효성 검사 데이터 세트의 크기 및 구성도 프로세스에 영향을 미칩니다.

인수 유형 기본값 설명
data str None 데이터 세트 구성 파일의 경로를 지정합니다(예: coco8.yaml). 이 파일에는 다음 경로가 포함됩니다. 유효성 검사 데이터, 클래스 이름 및 클래스 수가 포함됩니다.
imgsz int 640 입력 이미지의 크기를 정의합니다. 모든 이미지는 처리 전에 이 크기로 조정됩니다. 크기가 클수록 작은 객체의 정확도가 향상될 수 있지만 계산 시간이 늘어납니다.
batch int 16 배치당 이미지 수를 설정합니다. 값이 높을수록 GPU 메모리를 더 효율적으로 사용하지만 더 많은 VRAM이 필요합니다. 사용 가능한 하드웨어 리소스를 기준으로 조정합니다.
save_json bool False 만약 True, 추가 분석, 다른 도구와의 통합 또는 COCO와 같은 평가 서버에 제출하기 위해 결과를 JSON 파일에 저장합니다.
conf float 0.001 감지에 대한 최소 신뢰도 임계값을 설정합니다. 값이 낮을수록 재현율은 증가하지만 오탐지가 더 많이 발생할 수 있습니다. 정밀도-재현율 곡선을 계산하기 위해 유효성 검사 중에 사용됩니다.
iou float 0.7 Non-Maximum Suppression을 위한 Intersection Over Union 임계값을 설정합니다. 중복 감지 제거를 제어합니다.
max_det int 300 이미지당 최대 감지 수를 제한합니다. 과도한 감지를 방지하고 계산 리소스를 관리하기 위해 밀집된 장면에서 유용합니다.
half bool True Half-precision (FP16) 연산을 활성화하여 메모리 사용량을 줄이고 정확도에 미치는 영향을 최소화하면서 속도를 향상시킬 수 있습니다.
device str None 유효성 검사를 위한 장치를 지정합니다(cpu, cuda:0, 등)입니다. 다음의 경우 None, 사용 가능한 최상의 장치를 자동으로 선택합니다. 쉼표로 구분하여 여러 CUDA 장치를 지정할 수 있습니다.
dnn bool False 만약 True, 다음을 사용합니다. OpenCV ONNX 모델 추론을 위해 DNN 모듈을 사용하여 다음의 대안을 제공합니다. PyTorch 추론 방법입니다.
plots bool False 다음으로 설정하면 True, 모델 성능의 시각적 평가를 위해 예측 대 실제값, 혼동 행렬 및 PR 곡선의 플롯을 생성하고 저장합니다.
classes list[int] None 학습할 클래스 ID 목록을 지정합니다. 평가 중에 특정 클래스만 필터링하고 집중하는 데 유용합니다.
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 활성화되어 분석 및 필터링을 위해 더 자세한 출력을 제공합니다.
workers int 8 데이터 로딩을 위한 작업자 스레드 수입니다. 값이 높을수록 데이터 전처리 속도를 높일 수 있지만 CPU 사용량이 증가할 수 있습니다. 0으로 설정하면 메인 스레드를 사용하며, 이는 일부 환경에서 더 안정적일 수 있습니다.
augment bool False 유효성 검사 중 테스트 시간 증강(TTA)을 활성화하여 입력의 변환된 버전에 대한 추론을 실행하여 추론 속도를 희생시키면서 탐지 정확도를 잠재적으로 향상시킵니다.
agnostic_nms bool False 클래스에 구애받지 않는 Non-Maximum Suppression을 활성화하여 예측된 클래스와 상관없이 겹치는 박스를 병합합니다. 인스턴스 중심 애플리케이션에 유용합니다.
single_cls bool False 유효성 검사 중에 모든 클래스를 단일 클래스로 취급합니다. 이진 감지 작업이나 클래스 구분이 중요하지 않은 경우 모델 성능을 평가하는 데 유용합니다.
visualize bool False 각 이미지에 대한 ground truth, true positive, false positive 및 false negative를 시각화합니다. 디버깅 및 모델 해석에 유용합니다.

최적의 성능을 보장하고 과적합을 감지하고 방지하려면 신중한 튜닝과 실험이 중요합니다.

Val 가이드

내보내기 설정

YOLO 모델 내보내기 설정에는 다양한 환경에서 사용하기 위해 모델을 저장하거나 내보내기 위한 구성이 포함됩니다. 이러한 설정은 성능, 크기 및 호환성에 영향을 미칩니다. 주요 설정에는 내보낸 파일 형식(예: ONNX, TensorFlow SavedModel), 대상 장치(예: CPU, GPU) 및 마스크와 같은 기능이 포함됩니다. 모델의 작업과 대상 환경의 제약 조건도 내보내기 프로세스에 영향을 미칩니다.

인수 유형 기본값 설명
format str 'torchscript' 내보낸 모델의 대상 형식(예: 'onnx', 'torchscript', 'engine' (TensorRT) 등. 각 포맷은 다양한 환경과의 호환성을 지원합니다. 배포 환경.
imgsz int 또는 tuple 640 모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수일 수 있습니다 (예: 640 640×640) 또는 튜플 (height, width) 특정 크기의 경우.
keras bool False TensorFlow SavedModel에 대한 Keras 형식으로 내보내기를 활성화하여 TensorFlow 제공 및 API와의 호환성을 제공합니다.
optimize bool False TorchScript로 내보낼 때 모바일 장치에 대한 최적화를 적용하여 모델 크기를 줄이고 추론 성능을 향상시킬 수 있습니다. NCNN 형식 또는 CUDA 장치와는 호환되지 않습니다.
half bool False FP16 (반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 잠재적으로 향상시킵니다. ONNX의 INT8 양자화 또는 CPU 전용 내보내기와는 호환되지 않습니다.
int8 bool False INT8 양자화를 활성화하여 모델을 더욱 압축하고 주로 에지 장치에서 정확도 손실을 최소화하면서 추론 속도를 높입니다. TensorRT와 함께 사용하면 사후 훈련 양자화(PTQ)를 수행합니다.
dynamic bool False ONNX, TensorRT 및 OpenVINO 내보내기를 위한 동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 유연성을 향상시킵니다. 자동으로 다음으로 설정됩니다. True INT8로 TensorRT를 사용할 때.
simplify bool True ONNX 내보내기를 위해 모델 그래프를 단순화합니다. onnxslim, 추론 엔진과의 성능 및 호환성을 향상시킬 수 있습니다.
opset int None 다양한 ONNX 파서 및 런타임과의 호환성을 위해 ONNX opset 버전을 지정합니다. 설정하지 않으면 지원되는 최신 버전이 사용됩니다.
workspace float 또는 None None 다음에 대한 최대 작업 공간 크기를 GiB 단위로 설정합니다. TensorRT 메모리 사용량과 성능의 균형을 맞추는 최적화. 사용 None TensorRT에 의한 장치 최대값까지 자동 할당을 위해.
nms bool False 지원되는 경우 내보낸 모델에 NMS(Non-Maximum Suppression)를 추가하여(내보내기 형식 참조) detection 후 처리 효율성을 개선합니다. end2end 모델에는 사용할 수 없습니다.
batch int 1 내보낸 모델이 동시에 처리할 배치 추론 크기 또는 최대 이미지 수를 지정합니다. predict 모드. Edge TPU 내보내기의 경우, 이는 자동으로 1로 설정됩니다.
device str None 내보내기할 장치를 지정합니다: GPU (device=0), CPU (device=cpu), Apple Silicon용 MPS (device=mps) 또는 NVIDIA Jetson용 DLA (device=dla:0 또는 device=dla:1). TensorRT 내보내기는 자동으로 GPU를 사용합니다.
data str 'coco8.yaml' 다음 경로: 데이터 세트 구성 파일(기본값: coco8.yaml), INT8 양자화 보정에 필수적입니다. INT8을 활성화한 상태에서 지정하지 않으면 기본 데이터 세트가 할당됩니다.
fraction float 1.0 INT8 양자화 보정에 사용할 데이터 세트의 비율을 지정합니다. 전체 데이터 세트의 하위 집합에서 보정할 수 있으므로 실험이나 리소스가 제한적일 때 유용합니다. INT8을 활성화한 상태에서 지정하지 않으면 전체 데이터 세트가 사용됩니다.

신중한 구성을 통해 내보낸 모델이 사용 사례에 최적화되고 대상 환경에서 효과적으로 작동하는지 확인할 수 있습니다.

내보내기 가이드

솔루션 설정

Ultralytics Solutions 구성 설정을 통해 객체 수 계산, 히트맵 생성, 운동 추적, 데이터 분석, 영역 추적, 대기열 관리 및 영역 기반 계산과 같은 작업에 맞게 모델을 유연하게 사용자 정의할 수 있습니다. 이러한 옵션을 통해 특정 요구 사항에 맞춰 정확하고 유용한 결과를 얻을 수 있도록 쉽게 조정할 수 있습니다.

인수 유형 기본값 설명
model str None Ultralytics YOLO 모델 파일의 경로입니다.
region list '[(20, 400), (1260, 400)]' 계수 영역을 정의하는 점 목록입니다.
show_in bool True 비디오 스트림에 내부 개수를 표시할지 여부를 제어하는 플래그입니다.
show_out bool True 비디오 스트림에 외부 개수를 표시할지 여부를 제어하는 플래그입니다.
analytics_type str line 그래프 유형 (예: line, bar, area또는 pie.
colormap int cv2.COLORMAP_JET 히트맵에 사용할 컬러맵입니다.
json_file str None 모든 주차 좌표 데이터가 포함된 JSON 파일의 경로입니다.
up_angle float 145.0 '위' 자세에 대한 각도 임계값입니다.
kpts list[int, int, int] '[6, 8, 10]' 운동 모니터링에 사용되는 키포인트 목록입니다. 이러한 키포인트는 팔굽혀펴기, 턱걸이, 스쿼트, 복근 운동과 같은 운동을 위한 어깨, 팔꿈치, 손목과 같은 신체 관절 또는 부위에 해당합니다.
down_angle float 90.0 '아래' 자세에 대한 각도 임계값입니다.
blur_ratio float 0.5 흐림 강도 비율을 조정하며, 값의 범위는 다음과 같습니다. 0.1 - 1.0.
crop_dir str 'cropped-detections' 잘린 탐지 결과를 저장할 디렉토리 이름.
records int 5 보안 경보 시스템으로 이메일을 트리거하는 총 감지 횟수입니다.
vision_point tuple[int, int] (20, 20) VisionEye 솔루션을 사용하여 비전이 객체를 추적하고 경로를 그리는 지점입니다.
source str None 입력 소스(비디오, RTSP 등)의 경로입니다. Solutions CLI(명령줄 인터페이스)에서만 사용할 수 있습니다.
figsize tuple[int, int] (12.8, 7.2) 히트맵 또는 그래프와 같은 분석 차트의 그림 크기입니다.
fps float 30.0 속도 계산에 사용되는 초당 프레임 수입니다.
max_hist int 5 속도/방향 계산을 위해 객체당 추적할 최대 과거 포인트 수입니다.
meter_per_pixel float 0.05 픽셀 거리를 실제 단위로 변환하는 데 사용되는 스케일링 요소입니다.
max_speed int 120 시각적 오버레이의 최대 속도 제한(경고에 사용)입니다.
data str 'images' 유사성 검색에 사용되는 이미지 디렉토리 경로입니다.

솔루션 가이드

데이터 증강 설정

데이터 증강 기술은 훈련 데이터에 가변성을 도입하여 YOLO 모델의 견고성과 성능을 향상시키는 데 필수적이며, 모델이 보이지 않는 데이터에 더 잘 일반화되도록 돕습니다. 다음 표는 각 증강 인수의 목적과 효과를 간략하게 설명합니다.

인수 유형 기본값 범위 설명
hsv_h float 0.015 0.0 - 1.0 색상환의 일부를 기준으로 이미지의 색조를 조정하여 색상 변화를 줍니다. 다양한 조명 조건에서 모델이 일반화되도록 돕습니다.
hsv_s float 0.7 0.0 - 1.0 일정 비율로 이미지의 채도를 변경하여 색상의 강도에 영향을 줍니다. 다양한 환경 조건을 시뮬레이션하는 데 유용합니다.
hsv_v float 0.4 0.0 - 1.0 일정 비율로 이미지의 값(밝기)을 수정하여 다양한 조명 조건에서 모델이 잘 작동하도록 돕습니다.
degrees float 0.0 0.0 - 180 지정된 각도 범위 내에서 이미지를 무작위로 회전시켜 다양한 방향에서 객체를 인식하는 모델의 능력을 향상시킵니다.
translate float 0.1 0.0 - 1.0 이미지 크기의 일부를 기준으로 이미지를 가로 및 세로로 이동시켜 부분적으로 보이는 객체를 감지하는 학습을 돕습니다.
scale float 0.5 >=0.0 이득 계수로 이미지의 크기를 조정하여 카메라에서 서로 다른 거리에 있는 객체를 시뮬레이션합니다.
shear float 0.0 -180 - +180 지정된 각도로 이미지를 기울여 서로 다른 각도에서 보이는 객체의 효과를 모방합니다.
perspective float 0.0 0.0 - 0.001 이미지에 임의 원근 변환을 적용하여 3D 공간에서 객체를 이해하는 모델의 능력을 향상시킵니다.
flipud float 0.0 0.0 - 1.0 지정된 확률로 이미지를 뒤집어 객체의 특성에 영향을 주지 않으면서 데이터 변동성을 높입니다.
fliplr float 0.5 0.0 - 1.0 지정된 확률로 이미지를 좌우로 뒤집어 대칭 객체를 학습하고 데이터 세트 다양성을 높이는 데 유용합니다.
bgr float 0.0 0.0 - 1.0 지정된 확률로 이미지 채널을 RGB에서 BGR로 뒤집어 잘못된 채널 순서에 대한 견고성을 높이는 데 유용합니다.
mosaic float 1.0 0.0 - 1.0 네 개의 학습 이미지를 하나로 결합하여 다양한 장면 구성과 객체 상호 작용을 시뮬레이션합니다. 복잡한 장면 이해에 매우 효과적입니다.
mixup float 0.0 0.0 - 1.0 두 이미지와 해당 레이블을 혼합하여 합성 이미지를 만듭니다. 레이블 노이즈와 시각적 가변성을 도입하여 모델의 일반화 능력을 향상시킵니다.
cutmix float 0.0 0.0 - 1.0 두 이미지의 일부를 결합하여 뚜렷한 영역을 유지하면서 부분적으로 혼합합니다. 폐색 시나리오를 만들어 모델의 견고성을 향상시킵니다.
copy_paste float 0.0 0.0 - 1.0 분할만 해당. 객체 인스턴스를 늘리기 위해 이미지 간에 객체를 복사하여 붙여넣습니다.
copy_paste_mode str flip - 분할 전용다음을 지정합니다. copy-paste 사용할 전략. 옵션은 다음과 같습니다. 'flip''mixup'.
auto_augment str randaugment - 분류 전용. 미리 정의된 증강 정책을 적용합니다('randaugment', 'autoaugment'또는 'augmix') 시각적 다양성을 통해 모델 성능을 향상시킵니다.
erasing float 0.4 0.0 - 0.9 분류만 해당. 모델이 덜 명확한 특징에 집중하도록 학습 중에 이미지 영역을 무작위로 지웁니다.

데이터세트 및 작업 요구 사항에 맞게 이러한 설정을 조정하십시오. 다양한 값을 실험하면 최상의 모델 성능을 위한 최적의 증강 전략을 찾는 데 도움이 될 수 있습니다.

데이터 증강 가이드

로깅, 체크포인트 및 플로팅 설정

YOLO 모델을 훈련할 때 로깅, 체크포인트, 플로팅 및 파일 관리는 중요합니다.

  • 로깅: TensorBoard와 같은 라이브러리를 사용하거나 파일에 써서 모델의 진행 상황을 추적하고 문제를 진단합니다.
  • 체크포인트: 훈련을 재개하거나 다른 구성을 실험하기 위해 정기적인 간격으로 모델을 저장합니다.
  • 플로팅: matplotlib 또는 TensorBoard와 같은 라이브러리를 사용하여 성능 및 훈련 진행 상황을 시각화합니다.
  • 파일 관리: 체크포인트, 로그 파일, 플롯 등 학습 중에 생성된 파일을 쉽게 액세스하고 분석할 수 있도록 정리합니다.

이러한 측면을 효과적으로 관리하면 진행 상황을 추적하고 디버깅 및 최적화를 더 쉽게 할 수 있습니다.

인수 기본값 설명
project 'runs' 훈련 실행을 저장할 루트 디렉토리를 지정합니다. 각 실행은 별도의 하위 디렉토리에 저장됩니다.
name 'exp' 실험 이름을 정의합니다. 지정하지 않으면 YOLO는 각 실행에 대해 이 이름을 증가시킵니다(예: exp, exp2)을 사용하여 덮어쓰기를 방지합니다.
exist_ok False 기존 실험 디렉토리를 덮어쓸지 여부를 결정합니다. True 덮어쓰기 허용; False 방지됩니다.
plots False 학습 및 검증 플롯의 생성 및 저장을 제어합니다. 다음으로 설정합니다. True 손실 곡선과 같은 플롯을 만들려면, 정밀도-재현율 성능의 시각적 추적을 위한 곡선 및 샘플 예측.
save False 학습 체크포인트 및 최종 모델 가중치 저장을 활성화합니다. 다음으로 설정: True 모델 상태를 주기적으로 저장하여 학습 재개 또는 모델 배포를 가능하게 합니다.

FAQ

학습 중에 YOLO 모델의 성능을 어떻게 향상시키나요?

배치 크기, 학습률, 모멘텀, 가중치 감소와 같은 하이퍼파라미터를 조정하여 성능을 개선합니다. 데이터 증강 설정을 조정하고, 적절한 옵티마이저를 선택하고, 조기 종료 또는 혼합 정밀도와 같은 기술을 사용하십시오. 자세한 내용은 학습 가이드를 참조하십시오.

YOLO 모델 정확도를 위한 주요 하이퍼파라미터는 무엇입니까?

정확도에 영향을 미치는 주요 하이퍼파라미터:

  • 배치 크기(batch): 크기가 클수록 훈련이 안정화되지만 더 많은 메모리가 필요합니다.
  • 학습률(lr0): 속도가 작을수록 미세 조정이 가능하지만 수렴 속도가 느립니다.
  • 모멘텀(momentum): 기울기 벡터를 가속화하여 진동을 엄업합니다.
  • 이미지 크기(imgsz): 크기가 클수록 정확도가 향상되지만 계산량이 늘어납니다.

데이터세트 및 하드웨어에 따라 조정하십시오. 자세한 내용은 학습 설정에서 확인하십시오.

YOLO 모델 학습을 위한 학습률은 어떻게 설정해야 할까요?

학습률(lr0)이 중요합니다. 다음으로 시작하십시오. 0.01 SGD의 경우 또는 0.001 다음을 위한 Adam 옵티마이저입니다. 메트릭을 모니터링하고 필요에 따라 조정합니다. 코사인 학습률 스케줄러를 사용합니다(cos_lr) 또는 warmup (warmup_epochs, warmup_momentum). 자세한 내용은 Train 가이드.

YOLO 모델의 기본 추론 설정은 무엇인가요?

기본 설정은 다음과 같습니다.

  • 신뢰도 임계값(conf=0.25)): 검출을 위한 최소 신뢰도입니다.
  • IoU 임계값(iou=0.7): 다음을 위해 Non-Maximum Suppression (NMS).
  • 이미지 크기(imgsz=640): 입력 이미지의 크기를 조정합니다.
  • 장치(device=None): CPU 또는 GPU를 선택합니다.

전체 개요는 예측 설정예측 가이드를 참조하십시오.

YOLO 모델에서 혼합 정밀도 학습을 사용하는 이유는 무엇인가요?

혼합 정밀도 학습 (amp=True)은 FP16 및 FP32를 사용하여 메모리 사용량을 줄이고 학습 속도를 높입니다. 최신 GPU에 유용하며 정확도 손실 없이 더 큰 모델과 더 빠른 계산이 가능합니다. 자세한 내용은 다음을 참조하십시오. Train 가이드.



📅 1년 전에 생성됨 ✏️ 1개월 전에 업데이트됨

댓글