Ultralytics YOLO 객체(모델 인스턴스)에서 사용할 수 있는 메서드(함수) 정리
model.train() : 모델 학습모델을 새로운 데이터셋에 맞춰 훈련시키는 함수입니다.
주요 파라미터
data: 데이터셋 설정 파일(.yaml) 경로
epochs: 학습 반복 횟수
imgsz: 입력 이미지 크기 (기본 640)
batch: 한 번에 학습할 이미지 개수
device: 학습 장치 ('cpu', 0, 'mps')
lr0: 초기 학습률
freeze: 레이어 고정 개수 (Few-shot 학습 시 중요)
활용 팁: 학습이 중간에 끊겼다면 resume=True를 추가하여 마지막 체크포인트부터 이어서 학습할 수 있습니다.
model.predict() : 추론 (검출)학습된 모델로 이미지나 영상에서 물체를 찾아내는 함수입니다.
주요 파라미터
source: 입력 소스 (이미지 파일, 폴더, 영상 URL, 웹캠 0 등)
conf: 신뢰도 임계값 (이 값보다 높은 것만 검출, 예: 0.25)
iou: NMS(중복 박스 제거) 임계값
save: 결과 이미지 저장 여부 (True/False)
show: 화면에 즉시 표시 여부
stream: 대량 이미지 처리 시 메모리 효율을 위해 True 권장
코드 예시
```python
results = model.predict(source='test.jpg', conf=0.5, save=True)
```
model.val() : 모델 검증 (성능 평가)학습된 모델이 얼마나 정확한지(mAP 등)를 검증 데이터셋으로 평가합니다.
주요 특징
별도의 파라미터 없이 실행하면 data.yaml에 지정된 val 경로의 데이터를 사용합니다.
mAP50, mAP50-95, Precision, Recall 등의 지표를 반환합니다.
활용 팁: 학습 완료 후 best.pt 모델의 실제 성능을 수치로 확인할 때 필수입니다.
model.export() : 모델 변환 (배포용)PyTorch 파일(.pt)을 다른 환경에서 빠르게 돌릴 수 있도록 변환합니다.
주요 포맷 (format 파라미터):
onnx: 범용적 (가장 많이 씀)
engine: NVIDIA TensorRT (가속기 최적화)
tflite: 안드로이드/모바일용
openvino: 인텔 CPU/내장그래픽 최적화
코드 예시
```python
model.export(format='onnx', dynamic=True)
```
model.track() : 객체 추적 (Tracking)단순 검출을 넘어, 영상 내 객체에 고유 ID를 부여하여 추적합니다.
주요 파라미터
tracker: 추적 알고리즘 선택 ('botsort.yaml' 또는 'bytetrack.yaml')
persist: 프레임 간 추적 정보를 유지할지 여부 (True)
활용 팁: CCTV에서 "특정 사람이 어디로 이동하는지" 추적할 때 사용합니다.
model.info() : 모델 정보 출력모델의 구조와 파라미터 개수 등을 요약해서 보여줍니다.
파라미터
detailed=True: 모든 레이어의 상세 정보를 보여줍니다.활용 팁 모델이 너무 무겁지는 않은지, 레이어 구조는 어떻게 되어 있는지 파악할 때 씁니다.
model.fuse() : 모델 레이어 융합 (최적화)Conv(컨볼루션) 레이어와 BatchNorm 레이어를 하나로 합쳐서 추론 속도를 향상시킵니다.
model.tune() : 하이퍼파라미터 튜닝최적의 학습 파라미터(lr, augment 설정 등)를 자동으로 찾아줍니다.
주요 파라미터
iterations: 몇 번의 조합을 시도해볼지 설정 (최소 30회 이상 권장)주의사항: 시간이 매우 오래 걸리므로 성능을 극한으로 끌어올려야 할 때만 사용합니다.
model.to() : 장치 이동모델을 특정 장치(CPU/GPU)로 명시적으로 이동시킵니다.
코드 예시
model.to('cuda') # GPU로 이동
model.to('cpu') # CPU로 이동
| 함수명 | 용도 | 언제 쓰는가? |
|---|---|---|
train() | 학습 | 내 데이터를 모델에 가르칠 때 |
predict() | 검출 | 사진/영상에서 물체를 찾을 때 |
val() | 평가 | 내 모델이 얼마나 똑똑한지 점수 매길 때 |
export() | 변환 | 모바일, 웹, C++ 등 다른 환경으로 보낼 때 |
track() | 추적 | 영상에서 물체에 번호를 붙여 따라다닐 때 |
fuse() | 최적화 | 추론 속도를 조금이라도 더 올리고 싶을 때 |