콘텐츠로 건너뛰기

구성

YOLO settings and hyperparameters play a critical role in the model's performance, speed, and accuracy. These settings and hyperparameters can affect the model's behavior at various stages of the model development process, including training, validation, and prediction.



Watch: Mastering Ultralytics YOLO: Configuration

Ultralytics 명령은 다음 구문을 사용합니다:

yolo TASK MODE ARGS
from ultralytics import YOLO

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

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

Where:

기본값 ARG 값은 이 페이지에서 cfg/defaults.yaml 파일.

작업

YOLO 모델은 감지, 세분화, 분류, 포즈 등 다양한 작업에 사용할 수 있습니다. 이러한 작업은 생성하는 결과물의 유형과 해결하고자 하는 특정 문제가 다릅니다.

  • 감지: 감지: 이미지 또는 동영상에서 관심 있는 물체 또는 영역을 식별하고 위치를 파악합니다.
  • 세그먼트: 이미지 또는 동영상을 다른 객체 또는 클래스에 해당하는 영역 또는 픽셀로 나누는 데 사용됩니다.
  • 분류: 입력 이미지의 클래스 레이블을 예측합니다.
  • 포즈: 포즈: 이미지 또는 동영상에서 객체를 식별하고 키포인트를 추정하는 데 사용됩니다.
  • OBB: 위성 또는 의료 이미지에 적합한 방향성(즉, 회전된) 바운딩 박스입니다.
인수기본값설명
task'detect'실행할 YOLO 작업을 지정합니다. 옵션은 다음과 같습니다. detect for object detection, segment 를 사용하여 세분화할 수 있습니다, classify 분류를 위해, pose 를 사용하여 포즈를 추정하고 obb 를 사용합니다. 각 작업은 이미지 및 동영상 분석의 특정 출력 유형과 문제에 맞게 조정됩니다.

작업 가이드

모드

YOLO 모델은 해결하려는 특정 문제에 따라 다양한 모드로 사용할 수 있습니다. 이러한 모드에는 다음이 포함됩니다:

  • Train: For training a YOLO11 model on a custom dataset.
  • Val: For validating a YOLO11 model after it has been trained.
  • Predict: For making predictions using a trained YOLO11 model on new images or videos.
  • Export: For exporting a YOLO11 model to a format that can be used for deployment.
  • Track: For tracking objects in real-time using a YOLO11 model.
  • Benchmark: For benchmarking YOLO11 exports (ONNX, TensorRT, etc.) speed and accuracy.
인수기본값설명
mode'train'YOLO 모델이 작동하는 모드를 지정합니다. 옵션은 다음과 같습니다. train 모델 트레이닝을 위해 val 를 사용하여 유효성을 검사합니다, predict 를 사용하여 새로운 데이터를 추론할 수 있습니다, export 를 사용하여 모델을 배포 형식으로 변환할 수 있습니다, track 객체 추적용 benchmark 를 사용하여 성능 평가를 수행할 수 있습니다. 각 모드는 개발부터 배포까지 모델 라이프사이클의 여러 단계에 맞게 설계되었습니다.

모드 가이드

열차 설정

The training settings for YOLO models encompass various hyperparameters and configurations used during the training process. These settings influence the model's performance, speed, and accuracy. Key training settings include batch size, learning rate, momentum, and weight decay. Additionally, the choice of optimizer, loss function, and training dataset composition can impact the training process. Careful tuning and experimentation with these settings are crucial for optimizing performance.

인수기본값설명
modelNone학습할 모델 파일을 지정합니다. 다음 중 하나의 경로를 허용합니다. .pt 사전 학습된 모델 또는 .yaml 구성 파일. 모델 구조를 정의하거나 가중치를 초기화하는 데 필수적입니다.
dataNone데이터 집합 구성 파일의 경로(예:, coco8.yaml). This file contains dataset-specific parameters, including paths to training and validation data, class names, and number of classes.
epochs100Total number of training epochs. Each epoch represents a full pass over the entire dataset. Adjusting this value can affect training duration and model performance.
timeNone최대 훈련 시간(시간). 설정하면 이 값은 epochs 인수를 사용하여 지정된 시간 후에 트레이닝을 자동으로 중지할 수 있습니다. 시간 제약이 있는 교육 시나리오에 유용합니다.
patience100Number of epochs to wait without improvement in validation metrics before early stopping the training. Helps prevent overfitting by stopping training when performance plateaus.
batch16Batch size, with three modes: set as an integer (e.g., batch=16), 60% GPU 메모리 사용률의 자동 모드(batch=-1) 또는 지정된 사용률 비율의 자동 모드(batch=0.70).
imgsz640Target image size for training. All images are resized to this dimension before being fed into the model. Affects model accuracy and computational complexity.
saveTrueEnables saving of training checkpoints and final model weights. Useful for resuming training or model deployment.
save_period-1모델 체크포인트 저장 빈도(에포크 단위로 지정)입니다. 값이 -1이면 이 기능이 비활성화됩니다. 긴 훈련 세션 동안 중간 모델을 저장할 때 유용합니다.
cacheFalse메모리에서 데이터 세트 이미지의 캐싱을 활성화합니다(True/ram), 디스크(disk) 또는 비활성화(False). 메모리 사용량을 늘리는 대신 디스크 I/O를 줄여 훈련 속도를 향상시킵니다.
deviceNone교육용 계산 장치를 지정합니다: 단일 GPU (device=0), 다중 GPU(device=0,1), CPU (device=cpu) 또는 애플 실리콘의 경우 MPS (device=mps).
workers8데이터 로딩을 위한 워커 스레드 수(당 RANK 다중GPU 훈련인 경우). 데이터 전처리 및 모델에 공급하는 속도에 영향을 미치며, 특히 다중GPU 설정에서 유용합니다.
projectNone교육 결과물이 저장되는 프로젝트 디렉토리의 이름입니다. 다양한 실험을 체계적으로 저장할 수 있습니다.
nameNone트레이닝 실행의 이름입니다. 프로젝트 폴더 내에 트레이닝 로그 및 결과물이 저장되는 하위 디렉터리를 만드는 데 사용됩니다.
exist_okFalseTrue로 설정하면 기존 프로젝트/이름 디렉터리를 덮어쓸 수 있습니다. 이전 결과물을 수동으로 지울 필요 없이 반복적인 실험을 할 때 유용합니다.
pretrainedTrue사전 학습된 모델에서 학습을 시작할지 여부를 결정합니다. 가중치를 로드할 특정 모델에 대한 부울 값 또는 문자열 경로일 수 있습니다. 학습 효율성과 모델 성능을 향상시킵니다.
optimizer'auto'교육용 옵티마이저 선택. 옵션은 다음과 같습니다. SGD, Adam, AdamW, NAdam, RAdam, RMSProp 등 또는 auto 를 사용하여 모델 구성에 따라 자동으로 선택할 수 있습니다. 컨버전스 속도와 안정성에 영향을 줍니다.
verboseFalse교육 중에 자세한 로그와 진행 상황 업데이트를 제공하는 상세 출력을 활성화합니다. 교육 프로세스를 디버깅하고 면밀히 모니터링하는 데 유용합니다.
seed0트레이닝을 위한 무작위 시드를 설정하여 동일한 구성으로 실행할 때 결과의 재현성을 보장합니다.
deterministicTrue결정론적 알고리즘 사용을 강제하여 재현성을 보장하지만 비결정론적 알고리즘에 대한 제한으로 인해 성능과 속도에 영향을 줄 수 있습니다.
single_clsFalse훈련 중에 다중 클래스 데이터 세트의 모든 클래스를 단일 클래스로 취급합니다. 이진 분류 작업이나 분류보다는 객체의 존재 여부에 초점을 맞출 때 유용합니다.
rectFalse직사각형 학습을 활성화하여 배치 구성을 최적화하여 패딩을 최소화합니다. 효율성과 속도를 향상시킬 수 있지만 모델 정확도에 영향을 줄 수 있습니다.
cos_lrFalseUtilizes a cosine learning rate scheduler, adjusting the learning rate following a cosine curve over epochs. Helps in managing learning rate for better convergence.
close_mosaic10Disables mosaic data augmentation in the last N epochs to stabilize training before completion. Setting to 0 disables this feature.
resumeFalse마지막으로 저장한 체크포인트부터 훈련을 재개합니다. 모델 가중치, 최적화 상태 및 에포크 수를 자동으로 로드하여 훈련을 원활하게 계속합니다.
ampTrueEnables Automatic Mixed Precision (AMP) training, reducing memory usage and possibly speeding up training with minimal impact on accuracy.
fraction1.0학습에 사용할 데이터 세트의 일부를 지정합니다. 전체 데이터 세트의 하위 집합에 대한 학습을 허용하며, 실험이나 리소스가 제한되어 있는 경우에 유용합니다.
profileFalse훈련 중에 ONNX 및 TensorRT 속도를 프로파일링하여 모델 배포를 최적화하는 데 유용합니다.
freezeNoneFreezes the first N layers of the model or specified layers by index, reducing the number of trainable parameters. Useful for fine-tuning or transfer learning.
lr00.01초기 학습률(예 SGD=1E-2, Adam=1E-3) . 이 값을 조정하는 것은 최적화 프로세스에서 매우 중요하며, 모델 가중치가 업데이트되는 속도에 영향을 줍니다.
lrf0.01초기 학습률의 일부분인 최종 학습률 = (lr0 * lrf), 스케줄러와 함께 사용하여 시간에 따른 학습 속도를 조정하는 데 사용됩니다.
momentum0.937Momentum factor for SGD or beta1 for Adam optimizers, influencing the incorporation of past gradients in the current update.
weight_decay0.0005L2 regularization term, penalizing large weights to prevent overfitting.
warmup_epochs3.0학습 속도 워밍업을 위한 에포크 수로, 학습 속도를 낮은 값에서 초기 학습 속도까지 서서히 높여 조기에 학습을 안정화합니다.
warmup_momentum0.8워밍업 단계의 초기 운동량으로, 워밍업 기간 동안 설정된 운동량에 점차적으로 적응합니다.
warmup_bias_lr0.1워밍업 단계에서 바이어스 매개변수에 대한 학습 속도를 높여 초기 단계에서 모델 학습을 안정화하는 데 도움이 됩니다.
box7.5Weight of the box loss component in the loss function, influencing how much emphasis is placed on accurately predicting bounding box coordinates.
cls0.5총 손실 함수에서 분류 손실의 가중치로, 다른 구성 요소에 비해 정확한 클래스 예측의 중요도에 영향을 줍니다.
dfl1.5세분화된 분류를 위해 특정 YOLO 버전에서 사용되는 분포 초점 손실의 가중치입니다.
pose12.0포즈 추정을 위해 학습된 모델에서 포즈 손실의 가중치로, 포즈 키포인트를 정확하게 예측하는 데 중점을 둡니다.
kobj2.0포즈 추정 모델에서 키포인트 객체성 손실의 가중치로, 감지 신뢰도와 포즈 정확도 간의 균형을 맞춥니다.
label_smoothing0.0라벨 평활화를 적용하여 대상 라벨의 혼합에 하드 라벨을 부드럽게 하고 라벨을 균일하게 분포하면 일반화를 개선할 수 있습니다.
nbs64손실 정규화를 위한 공칭 배치 크기입니다.
overlap_maskTrueDetermines whether segmentation masks should overlap during training, applicable in instance segmentation tasks.
mask_ratio4세분화 마스크의 다운샘플 비율로, 훈련 중에 사용되는 마스크의 해상도에 영향을 줍니다.
dropout0.0분류 작업의 정규화를 위한 탈락률, 훈련 중 무작위로 단위를 생략하여 과적합을 방지합니다.
valTrue훈련 중 유효성 검사를 활성화하여 별도의 데이터 세트에서 모델 성능을 주기적으로 평가할 수 있습니다.
plotsFalse학습 및 검증 메트릭과 예측 예제의 플롯을 생성하고 저장하여 모델 성능 및 학습 진행 상황에 대한 시각적 인사이트를 제공합니다.

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

그리고 batch 인수는 세 가지 방법으로 구성할 수 있습니다:

  • Fixed Batch Size: 정수 값을 설정합니다(예 batch=16)를 사용하여 배치당 이미지 수를 직접 지정할 수 있습니다.
  • 자동 모드(60% GPU 메모리): 사용 batch=-1 를 사용하여 약 60%의 CUDA 메모리 사용률에 맞게 배치 크기를 자동으로 조정합니다.
  • 사용률 분할 자동 모드: 분수 값 설정(예:, batch=0.70)를 사용하여 GPU 메모리 사용량의 지정된 비율에 따라 배치 크기를 조정할 수 있습니다.

기차 가이드

예측 설정

YOLO 모델의 예측 설정에는 새로운 데이터를 추론하는 동안 모델의 성능, 속도 및 정확도에 영향을 미치는 다양한 하이퍼파라미터와 구성이 포함되어 있습니다. 특정 작업에 대한 최적의 성능을 얻으려면 이러한 설정을 신중하게 조정하고 실험해 보는 것이 필수적입니다. 주요 설정에는 신뢰도 임계값, NMS(비최대 억제) 임계값 및 고려되는 클래스 수가 포함됩니다. 예측 프로세스에 영향을 미치는 추가 요소로는 입력 데이터 크기 및 형식, 마스크 또는 상자당 여러 개의 레이블과 같은 보조 기능의 존재 여부, 모델이 사용되는 특정 작업 등이 있습니다.

추론 인수:

인수유형기본값설명
sourcestr'ultralytics/assets'Specifies the data source for inference. Can be an image path, video file, directory, URL, or device ID for live feeds. Supports a wide range of formats and sources, enabling flexible application across different types of input.
conffloat0.25탐지에 대한 최소 신뢰도 임계값을 설정합니다. 이 임계값보다 낮은 신뢰도로 탐지된 개체는 무시됩니다. 이 값을 조정하면 오탐지를 줄이는 데 도움이 될 수 있습니다.
ioufloat0.7Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Lower values result in fewer detections by eliminating overlapping boxes, useful for reducing duplicates.
imgszint or tuple640추론할 이미지 크기를 정의합니다. 단일 정수일 수 있습니다. 640 for square resizing or a (height, width) tuple. Proper sizing can improve detection accuracy and processing speed.
halfboolFalseEnables half-precision (FP16) inference, which can speed up model inference on supported GPUs with minimal impact on accuracy.
devicestrNone추론할 장치를 지정합니다(예, cpu, cuda:0 또는 0). 사용자가 모델 실행을 위해 CPU, 특정 GPU, 또는 기타 컴퓨팅 장치 중에서 선택할 수 있습니다.
max_detint300이미지당 허용되는 최대 감지 횟수. 모델이 한 번의 추론에서 감지할 수 있는 총 오브젝트 수를 제한하여 밀집된 장면에서 과도한 출력을 방지합니다.
vid_strideint1비디오 입력의 프레임 보폭. 동영상에서 프레임을 건너뛰어 시간 해상도를 희생하면서 처리 속도를 높일 수 있습니다. 값이 1이면 모든 프레임을 처리하고, 값이 클수록 프레임을 건너뜁니다.
stream_bufferboolFalseDetermines whether to queue incoming frames for video streams. If False, old frames get dropped to accomodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream FPS.
visualizeboolFalse추론 중에 모델 기능의 시각화를 활성화하여 모델이 '보고 있는 것'에 대한 인사이트를 제공합니다. 디버깅 및 모델 해석에 유용합니다.
augmentboolFalse예측을 위한 테스트 시간 증강(TTA)을 지원하여 추론 속도를 희생하더라도 탐지 견고성을 향상시킬 수 있습니다.
agnostic_nmsboolFalse서로 다른 클래스의 겹치는 상자를 병합하는 클래스 무관 NMS(Non-Maximum Suppression)를 활성화합니다. 클래스 중복이 일반적인 다중 클래스 탐지 시나리오에 유용합니다.
classeslist[int]None클래스 ID 집합으로 예측을 필터링합니다. 지정된 클래스에 속하는 탐지만 반환됩니다. 다중 클래스 탐지 작업에서 관련 개체에 집중하는 데 유용합니다.
retina_masksboolFalse모델에서 사용 가능한 경우 고해상도 세분화 마스크를 사용합니다. 이렇게 하면 세분화 작업의 마스크 품질을 향상시켜 더 세밀한 디테일을 제공할 수 있습니다.
embedlist[int]NoneSpecifies the layers from which to extract feature vectors or embeddings. Useful for downstream tasks like clustering or similarity search.

시각화 인수:

인수유형기본값설명
showboolFalse만약 True를 클릭하면 주석이 달린 이미지 또는 동영상이 창에 표시됩니다. 개발 또는 테스트 중에 즉각적인 시각적 피드백을 받을 때 유용합니다.
saveboolFalse 또는 TrueEnables saving of the annotated images or videos to file. Useful for documentation, further analysis, or sharing results. Defaults to True when using CLI & False when used in Python.
save_framesboolFalse동영상 처리 시 개별 프레임을 이미지로 저장합니다. 특정 프레임을 추출하거나 프레임별로 세부적으로 분석할 때 유용합니다.
save_txtboolFalse탐지 결과를 다음 형식에 따라 텍스트 파일로 저장합니다. [class] [x_center] [y_center] [width] [height] [confidence]. 다른 분석 도구와의 통합에 유용합니다.
save_confboolFalse저장된 텍스트 파일에 신뢰도 점수를 포함합니다. 후처리 및 분석에 사용할 수 있는 세부 정보를 향상시킵니다.
save_cropboolFalse탐지된 이미지를 잘라낸 이미지를 저장합니다. 데이터 세트 보강, 분석 또는 특정 개체에 대한 집중 데이터 세트 생성에 유용합니다.
show_labelsboolTrue시각적 출력에 각 감지 항목에 대한 레이블을 표시합니다. 감지된 개체에 대한 즉각적인 이해를 제공합니다.
show_confboolTrue각 탐지에 대한 신뢰도 점수를 라벨과 함께 표시합니다. 각 탐지에 대한 모델의 확실성에 대한 인사이트를 제공합니다.
show_boxesboolTrue감지된 개체 주위에 경계 상자를 그립니다. 이미지 또는 비디오 프레임에서 물체를 시각적으로 식별하고 위치를 파악하는 데 필수적입니다.
line_widthNone 또는 intNone경계 상자의 선 너비를 지정합니다. 만약 None를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.

예측 가이드

유효성 검사 설정

YOLO 모델의 VAL(유효성 검사) 설정에는 유효성 검사 데이터 세트에서 모델의 성능을 평가하는 데 사용되는 다양한 하이퍼파라미터 및 구성이 포함됩니다. 이러한 설정은 모델의 성능, 속도 및 정확도에 영향을 미칩니다. 일반적인 YOLO 유효성 검사 설정에는 배치 크기, 학습 중 유효성 검사 빈도 및 성능 평가 메트릭이 포함됩니다. 유효성 검사 프로세스에 영향을 미치는 다른 요인으로는 유효성 검사 데이터 세트의 크기와 구성, 모델이 사용되는 특정 작업 등이 있습니다.

인수유형기본값설명
datastrNone데이터 세트 구성 파일의 경로를 지정합니다(예:, coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640입력 이미지의 크기를 정의합니다. 모든 이미지는 처리하기 전에 이 크기로 크기가 조정됩니다.
batchint16배치당 이미지 수를 설정합니다. 사용 -1 를 설정하면 GPU 메모리 가용성에 따라 자동으로 조정됩니다.
save_jsonboolFalse만약 True를 클릭하면 추가 분석 또는 다른 도구와의 통합을 위해 결과를 JSON 파일에 저장합니다.
save_hybridboolFalse만약 True를 클릭하면 원래 주석과 추가 모델 예측을 결합한 하이브리드 버전의 레이블이 저장됩니다.
conffloat0.001탐지에 대한 최소 신뢰도 임계값을 설정합니다. 이 임계값보다 낮은 신뢰도를 가진 탐지는 삭제됩니다.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300이미지당 최대 감지 횟수를 제한합니다. 과도한 감지를 방지하기 위해 밀집된 장면에서 유용합니다.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNone유효성 검사할 장치를 지정합니다(cpu, cuda:0등). CPU 또는 GPU 리소스를 유연하게 활용할 수 있습니다.
dnnboolFalse만약 True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalse로 설정한 경우 True는 모델의 성능을 시각적으로 평가할 수 있도록 실측값과 예측값을 비교한 플롯을 생성하고 저장합니다.
rectboolFalse만약 True는 일괄 처리에 직사각형 추론을 사용하여 패딩을 줄이고 잠재적으로 속도와 효율성을 높입니다.
splitstrval유효성 검사에 사용할 데이터 세트 분할을 결정합니다(val, test또는 train). 성능 평가를 위한 데이터 세그먼트를 유연하게 선택할 수 있습니다.

Careful tuning and experimentation with these settings are crucial to ensure optimal performance on the validation dataset and detect and prevent overfitting.

Val 가이드

내보내기 설정

YOLO 모델의 내보내기 설정에는 다양한 환경이나 플랫폼에서 사용할 수 있도록 모델을 저장하거나 내보내는 것과 관련된 구성 및 옵션이 포함됩니다. 이러한 설정은 모델의 성능, 크기 및 다양한 시스템과의 호환성에 영향을 줄 수 있습니다. 주요 내보내기 설정에는 내보내는 모델 파일 형식(예: ONNX, TensorFlow SavedModel ), 대상 장치(예: CPU, GPU), 마스크 또는 상자당 여러 개의 레이블과 같은 추가 기능이 포함됩니다. 내보내기 프로세스는 모델의 특정 작업과 대상 환경 또는 플랫폼의 요구 사항 또는 제약 조건에 따라 영향을 받을 수도 있습니다.

인수유형기본값설명
formatstr'torchscript'내보낸 모델의 대상 형식은 다음과 같습니다. 'onnx', 'torchscript', 'tensorflow'등을 사용하여 다양한 배포 환경과의 호환성을 정의합니다.
imgszint 또는 tuple640모델 입력에 사용할 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수 또는 튜플일 수 있습니다. (height, width) 를 입력합니다.
kerasboolFalseEnables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs.
optimizeboolFalseTorchScript 으로 내보낼 때 모바일 장치에 대한 최적화를 적용하여 모델 크기를 줄이고 성능을 개선할 수 있습니다.
halfboolFalseFP16(반정밀) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다.
int8boolFalseActivates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices.
dynamicboolFalseONNX, TensorRT 및 OpenVINO 내보내기에 대한 동적 입력 크기를 허용하여 다양한 이미지 크기를 유연하게 처리할 수 있습니다.
simplifyboolTrue다음을 사용하여 ONNX 내보내기에 대한 모델 그래프를 단순화합니다. onnxslim를 사용하여 성능과 호환성을 개선할 수 있습니다.
opsetintNone다른 ONNX 파서 및 런타임과의 호환성을 위해 ONNX 옵셋 버전을 지정합니다. 설정하지 않으면 지원되는 최신 버전을 사용합니다.
workspacefloat4.0TensorRT 최적화를 위한 최대 작업 공간 크기를 GiB 단위로 설정하여 메모리 사용량과 성능의 균형을 맞춥니다.
nmsboolFalse정확하고 효율적인 탐지 후처리를 위해 필수적인 비최대 억제(NMS)를 CoreML 내보내기에 추가합니다.
batchint1내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 전환합니다.

내보낸 모델이 의도한 사용 사례에 최적화되고 대상 환경에서 효과적으로 작동하도록 하려면 이러한 설정을 신중하게 구성하는 것이 중요합니다.

내보내기 가이드

증강 설정

Augmentation techniques are essential for improving the robustness and performance of YOLO models by introducing variability into the training data, helping the model generalize better to unseen data. The following table outlines the purpose and effect of each augmentation argument:

인수유형기본값범위설명
hsv_hfloat0.0150.0 - 1.0이미지의 색조를 컬러환의 일부분으로 조정하여 색상 가변성을 도입합니다. 다양한 조명 조건에서 모델을 일반화하는 데 도움이 됩니다.
hsv_sfloat0.70.0 - 1.0이미지의 채도를 일부 변경하여 색상의 강도에 영향을 줍니다. 다양한 환경 조건을 시뮬레이션하는 데 유용합니다.
hsv_vfloat0.40.0 - 1.0이미지의 값(밝기)을 일부 수정하여 다양한 조명 조건에서 모델이 잘 작동하도록 돕습니다.
degreesfloat0.0-180 - +180지정된 각도 범위 내에서 이미지를 임의로 회전하여 다양한 방향에서 물체를 인식하는 모델의 능력을 향상시킵니다.
translatefloat0.10.0 - 1.0이미지 크기를 가로 및 세로로 변환하여 부분적으로 보이는 물체를 감지하는 학습을 돕습니다.
scalefloat0.5>=0.0게인 계수에 따라 이미지의 크기를 조정하여 카메라에서 다양한 거리에 있는 물체를 시뮬레이션합니다.
shearfloat0.0-180 - +180이미지를 지정된 각도만큼 잘라내어 물체를 다른 각도에서 보는 효과를 모방합니다.
perspectivefloat0.00.0 - 0.001이미지에 무작위 원근 변환을 적용하여 3D 공간에서 물체를 이해하는 모델의 능력을 향상시킵니다.
flipudfloat0.00.0 - 1.0지정된 확률로 이미지를 거꾸로 뒤집어 오브젝트의 특성에 영향을 주지 않고 데이터 가변성을 높입니다.
fliplrfloat0.50.0 - 1.0지정된 확률로 이미지를 왼쪽에서 오른쪽으로 뒤집어 대칭 개체를 학습하고 데이터 세트의 다양성을 높이는 데 유용합니다.
bgrfloat0.00.0 - 1.0지정된 확률로 이미지 채널을 RGB에서 BGR로 전환하여 잘못된 채널 순서에 대한 견고성을 높이는 데 유용합니다.
mosaicfloat1.00.0 - 1.04개의 훈련 이미지를 하나로 결합하여 다양한 장면 구성과 물체 상호 작용을 시뮬레이션합니다. 복잡한 장면 이해에 매우 효과적입니다.
mixupfloat0.00.0 - 1.0두 이미지와 해당 레이블을 혼합하여 합성 이미지를 만듭니다. 레이블 노이즈와 시각적 가변성을 도입하여 모델의 일반화 능력을 향상시킵니다.
copy_pastefloat0.00.0 - 1.0한 이미지에서 오브젝트를 복사하여 다른 이미지에 붙여넣는 기능으로 오브젝트 인스턴스를 늘리고 오브젝트 오클루전을 학습하는 데 유용합니다.
copy_paste_modestrflip-Copy-Paste augmentation method selection among the options of ("flip", "mixup").
auto_augmentstrrandaugment-미리 정의된 증강 정책을 자동으로 적용합니다(randaugment, autoaugment, augmix), 시각적 기능을 다양화하여 분류 작업에 최적화합니다.
erasingfloat0.40.0 - 0.9분류 훈련 중에 이미지의 일부를 임의로 지워 모델이 덜 분명한 특징에 집중하여 인식하도록 유도합니다.
crop_fractionfloat1.00.1 - 1.0분류 이미지를 일부 크기로 잘라내어 중심 특징을 강조하고 물체 크기에 맞게 조정하여 배경의 산만함을 줄입니다.

이러한 설정은 데이터 세트와 작업의 특정 요구 사항을 충족하도록 조정할 수 있습니다. 다양한 값으로 실험해 보면 최상의 모델 성능을 이끌어내는 최적의 증강 전략을 찾는 데 도움이 될 수 있습니다.

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

로깅, 체크포인트, 플로팅 및 파일 관리는 YOLO 모델을 학습시킬 때 중요한 고려 사항입니다.

  • 로깅: 모델의 진행 상황을 추적하고 발생할 수 있는 문제를 진단하기 위해 훈련 중에 다양한 메트릭과 통계를 기록하는 것이 도움이 되는 경우가 많습니다. 이 작업은 텐서보드와 같은 로깅 라이브러리를 사용하거나 로그 메시지를 파일에 기록하여 수행할 수 있습니다.
  • 체크포인트: 훈련 중 일정한 간격으로 모델의 체크포인트를 저장하는 것이 좋습니다. 이렇게 하면 학습 프로세스가 중단되거나 다른 학습 구성을 실험하려는 경우 이전 지점부터 학습을 재개할 수 있습니다.
  • 플로팅: 모델의 성능과 학습 진행 상황을 시각화하면 모델의 작동 방식을 이해하고 잠재적인 문제를 파악하는 데 도움이 될 수 있습니다. 이 작업은 matplotlib와 같은 플로팅 라이브러리를 사용하거나 TensorBoard와 같은 로깅 라이브러리를 사용하여 플롯을 생성하여 수행할 수 있습니다.
  • 파일 관리: 모델 체크포인트, 로그 파일, 플롯 등 훈련 과정에서 생성되는 다양한 파일을 관리하는 것은 어려울 수 있습니다. 이러한 파일을 추적하고 필요에 따라 쉽게 액세스하고 분석할 수 있도록 명확하고 체계적인 파일 구조를 갖추는 것이 중요합니다.

효과적인 로깅, 체크포인트, 플로팅 및 파일 관리를 통해 모델의 진행 상황을 추적하고 훈련 프로세스를 더 쉽게 디버깅하고 최적화할 수 있습니다.

인수기본값설명
project'runs'트레이닝 실행을 저장할 루트 디렉터리를 지정합니다. 각 실행은 이 디렉터리 내의 별도의 하위 디렉터리에 저장됩니다.
name'exp'실험의 이름을 정의합니다. 지정하지 않으면 YOLO 은 각 실행에 대해 이 이름을 자동으로 증가시킵니다(예 exp, exp2등을 사용하여 이전 실험을 덮어쓰지 않도록 합니다.
exist_okFalse같은 이름의 실험 디렉터리가 이미 있는 경우 기존 실험 디렉터리를 덮어쓸지 여부를 결정합니다. 이를 True 은 덮어쓰기를 허용하고 False 를 사용하면 이를 방지할 수 있습니다.
plotsFalse트레이닝 및 유효성 검사 플롯의 생성 및 저장을 제어합니다. 설정 True to create plots such as loss curves, precision-recall curves, and sample predictions. Useful for visually tracking model performance over time.
saveFalse훈련 체크포인트와 최종 모델 가중치를 저장할 수 있습니다. 설정 True 를 사용하여 모델 상태를 주기적으로 저장하여 이러한 체크포인트 또는 배포할 모델에서 교육을 재개할 수 있습니다.

자주 묻는 질문

교육 중에 YOLO 모델의 성능을 향상시키려면 어떻게 해야 하나요?

Improving YOLO model performance involves tuning hyperparameters like batch size, learning rate, momentum, and weight decay. Adjusting augmentation settings, selecting the right optimizer, and employing techniques like early stopping or mixed precision can also help. For detailed guidance on training settings, refer to the Train Guide.

YOLO 모델 정확도를 위해 고려해야 할 주요 하이퍼파라미터는 무엇인가요?

YOLO 모델 정확도에 영향을 미치는 주요 하이퍼파라미터는 다음과 같습니다:

  • 배치 크기(batch): 배치 크기가 클수록 훈련이 안정화될 수 있지만 더 많은 메모리가 필요할 수 있습니다.
  • 학습률 (lr0): 가중치 업데이트의 단계 크기를 제어합니다. 속도가 작을수록 미세 조정이 가능하지만 수렴 속도가 느려집니다.
  • 모멘텀 (momentum): 그래디언트 벡터를 올바른 방향으로 가속하여 진동을 완화합니다.
  • 이미지 크기(imgsz): 이미지 크기가 클수록 정확도는 향상되지만 계산 부하가 증가할 수 있습니다.

데이터 세트와 하드웨어 기능에 따라 이 값을 조정하세요. 훈련 설정 섹션에서 자세히 알아보세요.

YOLO 모델 학습을 위한 학습률은 어떻게 설정하나요?

학습 속도(lr0)는 최적화에 매우 중요합니다. 일반적인 시작점은 0.01 또는 0.001 를 설정합니다. 학습 메트릭을 모니터링하고 필요한 경우 조정하는 것이 중요합니다. 코사인 학습률 스케줄러 사용(cos_lr) 또는 워밍업 기술(warmup_epochs, warmup_momentum)를 사용하여 훈련 중에 속도를 동적으로 수정할 수 있습니다. 자세한 내용은 기차 가이드.

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

기본 추론 설정에는 다음이 포함됩니다:

  • 신뢰도 임계값(conf=0.25): 탐지에 대한 최소 신뢰도.
  • IoU 임계값(iou=0.7): 비 최대 억제(NMS)의 경우.
  • 이미지 크기(imgsz=640): 추론하기 전에 입력 이미지 크기를 조정합니다.
  • 장치 (device=None): Selects CPU or GPU for inference. For a comprehensive overview, visit the 예측 설정 섹션과 예측 가이드.

혼합 정밀 교육을 YOLO 모델과 함께 사용해야 하는 이유는 무엇인가요?

혼합 정밀 교육, 다음을 통해 활성화 amp=True를 사용하면 메모리 사용량을 줄이고 FP16과 FP32의 장점을 모두 활용하여 훈련 속도를 높일 수 있습니다. 이는 기본적으로 혼합 정밀도를 지원하는 최신 GPU에 유용하며, 더 많은 모델을 메모리에 넣을 수 있고 정확도의 큰 손실 없이 더 빠른 계산을 가능하게 합니다. 이에 대한 자세한 내용은 기차 가이드.

📅 Created 11 months ago ✏️ Updated 17 days ago

댓글