콘텐츠로 건너뛰기

구성

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

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



Watch: 마스터링 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)

Where:

기본값 ARG 값은 이 페이지에 정의되어 있으며 cfg/defaults.yaml 파일.

작업

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

  • 감지: 객체 감지: 이미지 또는 비디오 내의 객체를 식별하고 위치를 파악합니다.
  • 세그먼트: 인스턴스 분할은 이미지 또는 비디오를 서로 다른 객체 또는 클래스에 해당하는 영역으로 나눕니다.
  • 분류: 이미지 분류는 입력 이미지의 클래스 레이블을 예측합니다.
  • 포즈: 포즈 추정: 이미지 또는 동영상에서 객체를 식별하고 키포인트를 추정합니다.
  • OBB: 회전된 바운딩 박스는 위성 또는 의료 이미지에 적합한 회전된 바운딩 박스를 사용합니다.
인수 기본값 설명
task 'detect' YOLO 작업을 지정합니다: detect 에 대한 물체 감지, segment 를 사용하여 세분화할 수 있습니다, classify 분류를 위해, pose 를 사용하여 포즈를 추정하고 obb 를 사용합니다. 각 작업은 이미지 및 비디오 분석의 특정 출력과 문제에 맞게 조정됩니다.

작업 가이드

모드

각 모델 수명 주기의 특정 단계에 맞게 설계된 다양한 모드로 작동하는 Ultralytics YOLO 모델입니다:

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

모드 가이드

열차 설정

YOLO 모델의 학습 설정에는 모델의 성능, 속도 및 정확도에 영향을 미치는 하이퍼파라미터 및 구성이 포함됩니다. 주요 설정에는 배치 크기, 학습 속도, 모멘텀 및 가중치 감쇠가 포함됩니다. 최적화 도구의 선택, 손실 함수, 데이터 세트 구성도 학습에 영향을 미칩니다. 최적의 성능을 위해서는 튜닝과 실험이 중요합니다. 자세한 내용은 Ultralytics 엔트리포인트 기능을 참조하세요.

인수 유형 기본값 설명
model str None 학습할 모델 파일을 지정합니다. 다음 중 하나의 경로를 허용합니다. .pt 사전 학습된 모델 또는 .yaml 구성 파일. 모델 구조를 정의하거나 가중치를 초기화하는 데 필수적입니다.
data str None 데이터 집합 구성 파일의 경로(예:, coco8.yaml). 이 파일에는 트레이닝 경로를 비롯한 데이터 세트별 매개변수와 유효성 검사 데이터, 클래스 이름, 클래스 수를 입력합니다.
epochs int 100 총 훈련 에포크 수입니다. 각 에포크는 전체 데이터 세트에 대한 전체 패스를 나타냅니다. 이 값을 조정하면 학습 기간과 모델 성능에 영향을 줄 수 있습니다.
time float None 최대 훈련 시간(시간). 설정하면 이 값은 epochs 인수를 사용하여 지정된 시간 후에 트레이닝을 자동으로 중지할 수 있습니다. 시간 제약이 있는 교육 시나리오에 유용합니다.
patience int 100 훈련을 조기 중단하기 전에 검증 지표의 개선 없이 기다려야 하는 에포크 수입니다. 성능이 정체될 때 훈련을 중단하여 과적합을 방지합니다.
batch int 16 배치 크기세 가지 모드가 있습니다(예: 정수로 설정), batch=16), 60% GPU 메모리 사용률의 자동 모드(batch=-1) 또는 지정된 사용률 비율의 자동 모드(batch=0.70).
imgsz int 또는 list 640 학습을 위한 목표 이미지 크기입니다. 모든 이미지는 모델에 입력되기 전에 이 크기로 조정됩니다. 모델 정확도와 계산 복잡도에 영향을 줍니다.
save bool True 훈련 체크포인트와 최종 모델 가중치를 저장할 수 있습니다. 훈련 또는 모델 배포를 재개할 때 유용합니다.
save_period int -1 모델 체크포인트 저장 빈도(에포크 단위로 지정)입니다. 값이 -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) 또는 애플 실리콘의 경우 MPS (device=mps).
workers int 8 데이터 로딩을 위한 워커 스레드 수(당 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 코사인 학습률 스케줄러를 활용하여 기간별 코사인 곡선에 따라 학습률을 조정합니다. 더 나은 컨버전스를 위해 학습 속도를 관리하는 데 도움이 됩니다.
close_mosaic int 10 완료하기 전에 훈련을 안정화하기 위해 지난 N개의 에포크에서 모자이크 데이터 증강을 비활성화합니다. 0으로 설정하면 이 기능이 비활성화됩니다.
resume bool False 마지막으로 저장한 체크포인트부터 훈련을 재개합니다. 모델 가중치, 최적화 상태 및 에포크 수를 자동으로 로드하여 훈련을 원활하게 계속합니다.
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 또는 아담 옵티마이저용 베타1의 모멘텀 계수로, 현재 업데이트에서 과거 그라데이션의 통합에 영향을 줍니다.
weight_decay float 0.0005 L2 정규화 기간, 과적합을 방지하기 위해 큰 가중치에 불이익을 줍니다.
warmup_epochs float 3.0 학습 속도 워밍업을 위한 에포크 수로, 학습 속도를 낮은 값에서 초기 학습 속도까지 서서히 높여 조기에 학습을 안정화합니다.
warmup_momentum float 0.8 워밍업 단계의 초기 운동량으로, 워밍업 기간 동안 설정된 운동량에 점차적으로 적응합니다.
warmup_bias_lr float 0.1 워밍업 단계에서 바이어스 매개변수에 대한 학습 속도를 높여 초기 단계에서 모델 학습을 안정화하는 데 도움이 됩니다.
box float 7.5 손실 함수에서 박스 손실 성분의 가중치로, 바운딩 박스 좌표를 정확하게 예측하는 데 얼마나 중점을 두는지에 영향을 줍니다.
cls float 0.5 총 손실 함수에서 분류 손실의 가중치로, 다른 구성 요소에 비해 정확한 클래스 예측의 중요도에 영향을 줍니다.
dfl float 1.5 세분화된 분류를 위해 특정 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).
  • 자동 모드(60% GPU 메모리): 사용 batch=-1 를 클릭해 약 60%의 CUDA 메모리 사용률로 자동 조정합니다.
  • 사용률 비율을 사용한 자동 모드: 분수 설정(예:, batch=0.70)를 사용하여 지정된 GPU 메모리 사용량에 따라 조정할 수 있습니다.

기차 가이드

예측 설정

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

추론 인수:

인수 유형 기본값 설명
source str 'ultralytics/assets' 추론할 데이터 소스를 지정합니다. 이미지 경로, 동영상 파일, 디렉토리, URL 또는 실시간 피드용 디바이스 ID가 될 수 있습니다. 다양한 형식과 소스를 지원하므로 다양한 유형의 입력에 유연하게 적용할 수 있습니다.
conf float 0.25 탐지에 대한 최소 신뢰도 임계값을 설정합니다. 이 임계값보다 낮은 신뢰도로 탐지된 개체는 무시됩니다. 이 값을 조정하면 오탐지를 줄이는 데 도움이 될 수 있습니다.
iou float 0.7 비최대 억제(NMS)에 대한 교차점 초과 (IoU) 임계값입니다. 값이 낮을수록 중복되는 상자를 제거하여 탐지 횟수가 줄어들어 중복을 줄이는 데 유용합니다.
imgsz int 또는 tuple 640 추론할 이미지 크기를 정의합니다. 단일 정수일 수 있습니다. 640 를 사용하여 정사각형 크기 조정 또는 (높이, 너비) 튜플을 사용합니다. 적절한 크기 조정은 감지율을 향상시킬 수 있습니다. 정확성 처리 속도.
half bool False 정확도에 미치는 영향을 최소화하면서 지원되는 GPU에서 모델 추론 속도를 높일 수 있는 반정확도 (FP16) 추론을 활성화합니다.
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는 새 프레임을 버퍼에 대기시켜 프레임이 건너뛰지 않도록 하지만 추론 FPS가 스트림 FPS보다 낮으면 지연 시간이 발생합니다.
visualize bool False 추론 중에 모델 기능의 시각화를 활성화하여 모델이 '보고 있는 것'에 대한 인사이트를 제공합니다. 디버깅 및 모델 해석에 유용합니다.
augment bool False 예측을 위한 테스트 시간 증강(TTA)을 지원하여 추론 속도를 희생하면서 탐지 견고성을 향상시킬 수 있습니다.
agnostic_nms bool False 서로 다른 클래스의 겹치는 상자를 병합하는 클래스 무관 NMS(Non-Maximum Suppression)를 활성화합니다. 클래스 중복이 일반적인 다중 클래스 탐지 시나리오에 유용합니다.
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 모든 프레임을 한 번에 메모리에 로드하는 대신 결과 객체 생성기를 반환하여 긴 동영상이나 수많은 이미지를 메모리 효율적으로 처리할 수 있습니다.
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를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.
font_size float None 주석의 텍스트 글꼴 크기입니다. 다음과 같이 설정하면 이미지 크기에 따라 자동으로 조정됩니다. None.
font str 'Arial.ttf' 시각화에서 텍스트 주석을 위한 글꼴 이름 또는 경로입니다.
pil bool False 이미지를 널 배열 대신 PIL 이미지 객체로 반환합니다.
kpt_radius int 5 포즈 추정 결과를 시각화할 때 키포인트의 반경입니다.
kpt_line bool True 포즈 추정을 시각화할 때 키포인트를 선으로 연결합니다.
masks bool True 시각화 출력에 세분화 마스크를 표시합니다.
probs bool True 시각화에 분류 확률을 포함합니다.
filename str None 주석이 달린 이미지를 저장할 경로 및 파일 이름 save=True.
color_mode str 'class' 시각화의 색상 지정 모드(예: '인스턴스' 또는 '클래스')를 지정합니다.
txt_color tuple[int, int, int] (255, 255, 255) 분류 작업 주석을 위한 RGB 텍스트 색상입니다.

예측 가이드

유효성 검사 설정

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 유효성 검사 중에 모든 클래스를 단일 클래스로 취급합니다. 이진 탐지 작업에서 모델 성능을 평가하거나 클래스 구분이 중요하지 않은 경우에 유용합니다.

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

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 에 대해 Keras 형식으로 내보내기를 활성화합니다. TensorFlow SavedModel 로 내보낼 수 있도록 설정하여 TensorFlow 서비스 및 API와의 호환성을 제공합니다.
optimize bool False TorchScript 내보낼 때 모바일 기기에 대한 최적화를 적용하여 모델 크기를 줄이고 추론 성능을 개선할 수 있습니다. NCNN 형식 또는 CUDA 장치와 호환되지 않습니다.
half bool False FP16(반정밀) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다. INT8 양자화 또는 ONNX CPU 내보내기와는 호환되지 않습니다.
int8 bool False INT8 양자화를 활성화하여 모델을 더욱 압축하고 주로 에지 디바이스의 경우 정확도 손실을 최소화하면서 추론 속도를 높입니다. TensorRT 함께 사용할 경우, 학습 후 양자화(PTQ)를 수행합니다.
dynamic bool False ONNX, TensorRT 및 OpenVINO 내보내기를 위한 동적 입력 크기를 허용하여 다양한 이미지 크기를 유연하게 처리할 수 있습니다. 자동으로 True 를 INT8과 함께 사용하는 경우.
simplify bool True 다음을 사용하여 ONNX 내보내기에 대한 모델 그래프를 단순화합니다. onnxslim를 사용하여 추론 엔진의 성능과 호환성을 개선할 수 있습니다.
opset int None 다른 운영체제와의 호환성을 위해 ONNX 옵셋 버전을 지정합니다. ONNX 파서 및 런타임과의 호환성을 지정합니다. 설정하지 않으면 지원되는 최신 버전을 사용합니다.
workspace float 또는 None None 다음에 대한 최대 작업 공간 크기를 GiB 단위로 설정합니다. TensorRT 최적화를 통해 메모리 사용량과 성능의 균형을 맞춥니다. 사용 None 를 통해 최대 장치까지 TensorRT 로 자동 할당할 수 있습니다.
nms bool False 지원되는 경우 내보낸 모델에 NMS(비최대 억제)를 추가하여( 내보내기 형식 참조) 탐지 후 처리 효율을 개선합니다. 엔드투엔드 모델에는 사용할 수 없습니다.
batch int 1 내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 설정합니다. Edge TPU 내보내기의 경우 이 값은 자동으로 1로 설정됩니다.
device str None 내보낼 장치를 지정합니다: GPU (device=0), CPU (device=cpu), 애플 실리콘의 경우 MPS (device=mps) 또는 DLA for NVIDIA Jetson(device=dla:0 또는 device=dla:1). TensorRT 내보내기는 자동으로 GPU 사용합니다.
data str 'coco8.yaml' 경로 데이터 세트 구성 파일(기본값: coco8.yaml), INT8 양자화 보정에 필수적입니다. INT8을 활성화하여 지정하지 않으면 기본 데이터 세트가 할당됩니다.

세심한 구성을 통해 내보낸 모델이 사용 사례에 최적화되고 대상 환경에서 효과적으로 작동하도록 보장합니다.

내보내기 가이드

솔루션 설정

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

인수 유형 기본값 설명
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] (50, 50) 비전아이 솔루션을 사용하여 객체를 추적하고 경로를 그리는 지점입니다.
tracker str 'botsort.yaml' 사용할 추적 알고리즘을 지정합니다(예, bytetrack.yaml 또는 botsort.yaml.
conf float 0.3 탐지 신뢰 임계값을 설정합니다. 값이 낮을수록 더 많은 개체를 추적할 수 있지만 오탐이 포함될 수 있습니다.
iou float 0.5 중복 감지를 필터링하기 위한 IoU(Intersection over Union) 임계값을 설정합니다.
classes list None 클래스 인덱스별로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3] 지정된 클래스만 추적합니다.
verbose bool True 추적 결과의 표시를 제어하여 추적된 개체의 시각적 출력을 제공합니다.
device str None 추론할 장치를 지정합니다(예, cpu, cuda:0 또는 0). 사용자가 모델 실행을 위해 CPU, 특정 GPU, 또는 기타 컴퓨팅 장치 중에서 선택할 수 있습니다.
show bool False 만약 True를 클릭하면 주석이 달린 이미지 또는 동영상이 창에 표시됩니다. 개발 또는 테스트 중에 즉각적인 시각적 피드백을 받을 때 유용합니다.
line_width None or int None 경계 상자의 선 너비를 지정합니다. 만약 None를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.

솔루션 가이드

증강 설정

데이터 증강 기술은 학습 데이터에 가변성을 도입하여 보이지 않는 데이터에 대해 모델이 더 잘 일반화할 수 있도록 지원함으로써 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 -180 - +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 4개의 훈련 이미지를 하나로 결합하여 다양한 장면 구성과 물체 상호 작용을 시뮬레이션합니다. 복잡한 장면 이해에 매우 효과적입니다.
mixup float 0.0 0.0 - 1.0 두 이미지와 해당 레이블을 혼합하여 합성 이미지를 만듭니다. 레이블 노이즈와 시각적 가변성을 도입하여 모델의 일반화 능력을 향상시킵니다.
copy_paste float 0.0 0.0 - 1.0 객체 인스턴스를 늘리고 객체 오클루전을 학습하는 데 유용한 객체를 이미지 전체에 복사하여 붙여넣기합니다. 세분화 레이블이 필요합니다.
copy_paste_mode str 'flip' - 의 옵션 중 복사-붙여넣기 확대 방법 선택("flip", "mixup").
auto_augment str 'randaugment' - 미리 정의된 증강 정책을 자동으로 적용합니다(randaugment, autoaugment, augmix), 시각적 기능을 다양화하여 분류 작업에 최적화합니다.
erasing float 0.4 0.0 - 0.9 분류 훈련 중에 이미지의 일부를 임의로 지워 모델이 덜 분명한 특징에 집중하여 인식하도록 유도합니다.
crop_fraction float 1.0 0.1 - 1.0 분류 이미지를 일부 크기로 잘라내어 중심 특징을 강조하고 물체 크기에 맞게 조정하여 배경의 산만함을 줄입니다.

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

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

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

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

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

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

자주 묻는 질문

교육 중에 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): For 비최대 억제(NMS).
  • 이미지 크기(imgsz=640): 입력 이미지 크기를 조정합니다.
  • 장치 (device=None): CPU 또는 GPU 선택합니다.

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

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

혼합 정밀도 교육 (amp=True)는 메모리 사용량을 줄이고 FP16 및 FP32를 사용하여 훈련 속도를 높입니다. 최신 GPU에 유리하며, 큰 정확도 손실 없이 더 큰 모델과 더 빠른 계산을 가능하게 합니다. 자세한 내용은 기차 가이드.

📅1 년 전 생성됨 ✏️ 업데이트됨 7일 전

댓글