구성
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)
위치:
TASK
(선택 사항)은 (detect, segment, classify, pose, obb)MODE
(필수 사항)은 (train, val, predict, export, track, benchmark)ARGS
(선택 사항) 다음과 같습니다.arg=value
와 같은 쌍입니다.imgsz=640
기본값을 재정의합니다.
기본값 ARG
값은 이 페이지에 정의되어 있으며 다음에서 가져옵니다. cfg/defaults.yaml
파일.
태스크
Ultralytics YOLO 모델은 다음과 같은 다양한 컴퓨터 비전 작업을 수행할 수 있습니다.
- 감지: 객체 감지는 이미지 또는 비디오 내에서 객체를 식별하고 위치를 파악합니다.
- 분할(Segment): 인스턴스 분할은 이미지 또는 비디오를 서로 다른 객체 또는 클래스에 해당하는 영역으로 나눕니다.
- 분류: 이미지 분류는 입력 이미지의 클래스 레이블을 예측합니다.
- 포즈: 포즈 추정은 이미지 또는 비디오에서 객체를 식별하고 키포인트를 추정합니다.
- OBB: Oriented Bounding Boxes는 회전된 경계 상자를 사용하며, 위성 또는 의료 이미지에 적합합니다.
인수 | 기본값 | 설명 |
---|---|---|
task |
'detect' |
YOLO 작업(task)을 지정합니다: 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 |
총 학습 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 메모리 사용량을 기준으로 조정합니다.
예측 설정
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 , 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다. |
검증 설정
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를 시각화합니다. 디버깅 및 모델 해석에 유용합니다. |
최적의 성능을 보장하고 과적합을 감지하고 방지하려면 신중한 튜닝과 실험이 중요합니다.
내보내기 설정
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 가이드.