구성
YOLO 설정과 하이퍼파라미터는 모델의 성능, 속도 및 정확도에 중요한 역할을 합니다. 이러한 설정은 학습, 유효성 검사, 예측 등 다양한 단계에서 모델의 동작에 영향을 미칠 수 있습니다.
시청하기: Ultralytics YOLO 마스터하기: 구성
Watch: 마스터링 Ultralytics YOLO : 구성
Ultralytics 명령은 다음 구문을 사용합니다:
예
Where:
TASK
(선택 사항)은 (감지, 세그먼트, 분류, 포즈, obb)MODE
(필수)는 (기차, val, 예측, 내보내기, 트랙, 벤치마크)ARGS
(선택 사항)은 다음과 같습니다.arg=value
같은imgsz=640
기본값을 재정의할 수 있습니다.
기본값 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 |
유효성 검사 중에 모든 클래스를 단일 클래스로 취급합니다. 이진 탐지 작업에서 모델 성능을 평가하거나 클래스 구분이 중요하지 않은 경우에 유용합니다. |
최적의 성능을 보장하고 과적합을 감지하고 방지하려면 세심한 튜닝과 실험이 중요합니다.
내보내기 설정
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에 유리하며, 큰 정확도 손실 없이 더 큰 모델과 더 빠른 계산을 가능하게 합니다. 자세한 내용은 기차 가이드.