YOLO: 모델 인스턴스 메서드

calico·2026년 1월 8일

Artificial Intelligence

목록 보기
164/177

Ultralytics YOLO 객체(모델 인스턴스)에서 사용할 수 있는 메서드(함수) 정리

1. model.train() : 모델 학습


모델을 새로운 데이터셋에 맞춰 훈련시키는 함수입니다.

  • 주요 파라미터

    • data: 데이터셋 설정 파일(.yaml) 경로

    • epochs: 학습 반복 횟수

    • imgsz: 입력 이미지 크기 (기본 640)

    • batch: 한 번에 학습할 이미지 개수

    • device: 학습 장치 ('cpu', 0, 'mps')

    • lr0: 초기 학습률

    • freeze: 레이어 고정 개수 (Few-shot 학습 시 중요)

  • 활용 팁: 학습이 중간에 끊겼다면 resume=True를 추가하여 마지막 체크포인트부터 이어서 학습할 수 있습니다.



2. 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)
    ```



3. model.val() : 모델 검증 (성능 평가)


학습된 모델이 얼마나 정확한지(mAP 등)를 검증 데이터셋으로 평가합니다.

  • 주요 특징

    • 별도의 파라미터 없이 실행하면 data.yaml에 지정된 val 경로의 데이터를 사용합니다.

    • mAP50, mAP50-95, Precision, Recall 등의 지표를 반환합니다.

  • 활용 팁: 학습 완료 후 best.pt 모델의 실제 성능을 수치로 확인할 때 필수입니다.



4. model.export() : 모델 변환 (배포용)


PyTorch 파일(.pt)을 다른 환경에서 빠르게 돌릴 수 있도록 변환합니다.

  • 주요 포맷 (format 파라미터):

    • onnx: 범용적 (가장 많이 씀)

    • engine: NVIDIA TensorRT (가속기 최적화)

    • tflite: 안드로이드/모바일용

    • openvino: 인텔 CPU/내장그래픽 최적화

  • 코드 예시

    ```python
    model.export(format='onnx', dynamic=True)
    ```



5. model.track() : 객체 추적 (Tracking)


단순 검출을 넘어, 영상 내 객체에 고유 ID를 부여하여 추적합니다.

  • 주요 파라미터

    • tracker: 추적 알고리즘 선택 ('botsort.yaml' 또는 'bytetrack.yaml')

    • persist: 프레임 간 추적 정보를 유지할지 여부 (True)

  • 활용 팁: CCTV에서 "특정 사람이 어디로 이동하는지" 추적할 때 사용합니다.



6. model.info() : 모델 정보 출력


모델의 구조와 파라미터 개수 등을 요약해서 보여줍니다.

  • 파라미터

    • detailed=True: 모든 레이어의 상세 정보를 보여줍니다.
  • 활용 팁 모델이 너무 무겁지는 않은지, 레이어 구조는 어떻게 되어 있는지 파악할 때 씁니다.



7. model.fuse() : 모델 레이어 융합 (최적화)


Conv(컨볼루션) 레이어와 BatchNorm 레이어를 하나로 합쳐서 추론 속도를 향상시킵니다.

  • 활용 팁 실제 서비스(Inference) 단계에서 모델을 불러온 직후 실행하면 속도가 약간 빨라집니다. (학습 시에는 사용 안 함)



8. model.tune() : 하이퍼파라미터 튜닝


최적의 학습 파라미터(lr, augment 설정 등)를 자동으로 찾아줍니다.

  • 주요 파라미터

    • iterations: 몇 번의 조합을 시도해볼지 설정 (최소 30회 이상 권장)
  • 주의사항: 시간이 매우 오래 걸리므로 성능을 극한으로 끌어올려야 할 때만 사용합니다.



9. model.to() : 장치 이동


모델을 특정 장치(CPU/GPU)로 명시적으로 이동시킵니다.

  • 코드 예시

    model.to('cuda') # GPU로 이동
    model.to('cpu')  # CPU로 이동



실무 요약표


함수명용도언제 쓰는가?
train()학습내 데이터를 모델에 가르칠 때
predict()검출사진/영상에서 물체를 찾을 때
val()평가내 모델이 얼마나 똑똑한지 점수 매길 때
export()변환모바일, 웹, C++ 등 다른 환경으로 보낼 때
track()추적영상에서 물체에 번호를 붙여 따라다닐 때
fuse()최적화추론 속도를 조금이라도 더 올리고 싶을 때



profile
All views expressed here are solely my own and do not represent those of any affiliated organization.

0개의 댓글