Python 사용법

Ultralytics YOLO Python 사용법 문서에 오신 것을 환영합니다! 이 가이드는 객체 탐지, 인스턴스 분할, 의미론적 분할분류 작업을 위해 Python 프로젝트에 Ultralytics YOLO를 원활하게 통합할 수 있도록 설계되었습니다. 여기에서는 사전 훈련된 모델을 로드하고 사용하는 방법, 새 모델을 훈련하는 방법, 이미지에 대해 예측을 수행하는 방법을 배울 수 있습니다. 사용하기 쉬운 Python 인터페이스는 YOLO를 Python 프로젝트에 통합하려는 모든 사람에게 유용한 리소스이며, 고급 객체 탐지 기능을 빠르게 구현할 수 있게 해줍니다. 시작해 봅시다!



Watch: Mastering Ultralytics YOLO: Python

예를 들어, 사용자는 몇 줄의 코드만으로 모델을 로드하고, 훈련하고, 검증 세트에서 성능을 평가하며, ONNX 형식으로 내보내기까지 수행할 수 있습니다.

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")

훈련

Train 모드는 사용자 지정 데이터셋으로 YOLO 모델을 훈련하는 데 사용됩니다. 이 모드에서는 지정된 데이터셋과 하이퍼파라미터를 사용하여 모델이 훈련됩니다. 훈련 과정에는 이미지 내 객체의 클래스와 위치를 정확하게 예측할 수 있도록 모델의 파라미터를 최적화하는 작업이 포함됩니다.

훈련
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

훈련 예제

검증

Val 모드는 훈련이 완료된 YOLO 모델을 검증하는 데 사용됩니다. 이 모드에서는 모델을 검증 세트에서 평가하여 정확도와 일반화 성능을 측정합니다. 이 모드를 사용하여 모델의 성능을 향상시키기 위해 하이퍼파라미터를 조정할 수 있습니다.

검증
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

검증 예제

예측(Predict)

Predict 모드는 훈련된 YOLO 모델을 사용하여 새로운 이미지나 비디오에 대해 예측을 수행하는 데 사용됩니다. 이 모드에서는 체크포인트 파일로부터 모델을 로드하며, 사용자는 이미지나 비디오를 제공하여 추론을 수행할 수 있습니다. 모델은 입력된 이미지나 비디오 내 객체의 클래스와 위치를 예측합니다.

예측(Predict)
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

예측 예제

내보내기

Export 모드는 YOLO 모델을 배포에 사용할 수 있는 형식으로 내보내는 데 사용됩니다. 이 모드에서 모델은 다른 소프트웨어 애플리케이션이나 하드웨어 장치에서 사용할 수 있는 형식으로 변환됩니다. 이 모드는 모델을 프로덕션 환경에 배포할 때 유용합니다.

내보내기

공식 YOLO 모델을 동적 배치 크기 및 이미지 크기와 함께 ONNX로 내보냅니다.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

내보내기 예제

추적

Track 모드는 YOLO 모델을 사용하여 실시간으로 객체를 추적하는 데 사용됩니다. 이 모드에서는 체크포인트 파일로부터 모델을 로드하며, 사용자는 라이브 비디오 스트림을 제공하여 실시간 객체 추적을 수행할 수 있습니다. 이 모드는 감시 시스템이나 자율 주행 자동차와 같은 애플리케이션에 유용합니다.

추적
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-seg.pt")  # load an official segmentation model
model = YOLO("path/to/best.pt")  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

추적 예제

벤치마크

Benchmark 모드는 다양한 YOLO 내보내기 형식의 속도와 정확도를 프로파일링하는 데 사용됩니다. 벤치마크는 내보낸 형식의 크기, mAP50-95 지표(객체 탐지 및 분할의 경우) 또는 accuracy_top5 지표(분류의 경우), 그리고 ONNX, OpenVINO, TensorRT 등 다양한 내보내기 형식 전반에서의 이미지당 밀리초 단위 추론 시간을 제공합니다. 이 정보는 사용자가 속도와 정확도 요구 사항에 따라 특정 사용 사례에 최적의 내보내기 형식을 선택하는 데 도움을 줄 수 있습니다.

벤치마크

모든 내보내기 형식에 걸쳐 공식 YOLO 모델을 벤치마킹합니다.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

벤치마크 예제

트레이너(Trainer) 사용

YOLO 모델 클래스는 트레이너 클래스를 위한 상위 수준의 래퍼 역할을 합니다. 각 YOLO 작업에는 BaseTrainer를 상속하는 고유한 트레이너가 있습니다. 이 아키텍처는 머신 러닝 워크플로우에서 더 큰 유연성과 사용자 정의 기능을 제공합니다.

탐지 트레이너 예제
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)

트레이너를 쉽게 사용자 정의하여 사용자 지정 작업을 지원하거나 연구 및 개발 아이디어를 탐색할 수 있습니다. Ultralytics YOLO의 모듈식 설계 덕분에 새로운 컴퓨터 비전 작업을 수행하거나 더 나은 성능을 위해 기존 모델을 미세 조정할 때 프레임워크를 특정 요구 사항에 맞게 조정할 수 있습니다.

사용자 정의 튜토리얼

FAQ

객체 탐지를 위해 Python 프로젝트에 YOLO를 어떻게 통합할 수 있나요?

Ultralytics YOLO를 Python 프로젝트에 통합하는 것은 간단합니다. 사전 훈련된 모델을 로드하거나 처음부터 새 모델을 훈련할 수 있습니다. 시작 방법은 다음과 같습니다:

from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")

# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Visualize the results
for result in results:
    result.show()

더 자세한 예제는 Predict Mode 섹션을 참조하세요.

YOLO에서 사용할 수 있는 다양한 모드는 무엇인가요?

Ultralytics YOLO는 다양한 머신 러닝 워크플로우에 대응하기 위해 여러 모드를 제공합니다. 여기에는 다음이 포함됩니다:

  • Train: 사용자 지정 데이터셋을 사용하여 모델을 훈련합니다.
  • Val: 검증 세트에서 모델 성능을 검증합니다.
  • Predict: 새로운 이미지나 비디오 스트림에 대해 예측을 수행합니다.
  • Export: ONNX 및 TensorRT와 같은 다양한 형식으로 모델을 내보냅니다.
  • Track: 비디오 스트림에서 실시간 객체 추적을 수행합니다.
  • Benchmark: 다양한 구성에서 모델 성능을 벤치마킹합니다.

각 모드는 모델 개발 및 배포의 여러 단계를 위한 포괄적인 기능을 제공하도록 설계되었습니다.

내 데이터셋을 사용하여 사용자 지정 YOLO 모델을 어떻게 훈련하나요?

사용자 지정 YOLO 모델을 훈련하려면 데이터셋과 기타 하이퍼파라미터를 지정해야 합니다. 간단한 예시는 다음과 같습니다:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.yaml")

# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)

훈련에 대한 더 자세한 정보와 사용 예제 링크는 Train Mode 페이지를 방문하세요.

배포를 위해 YOLO 모델을 어떻게 내보내나요?

배포에 적합한 형식으로 YOLO 모델을 내보내는 것은 export 함수를 사용하면 간단합니다. 예를 들어, 모델을 ONNX 형식으로 내보낼 수 있습니다:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")

다양한 내보내기 옵션은 Export Mode 문서를 참조하세요.

다른 데이터셋에서 YOLO 모델을 검증할 수 있나요?

네, 다른 데이터셋에서 YOLO 모델을 검증할 수 있습니다. 훈련 후, 검증 모드를 사용하여 성능을 평가할 수 있습니다:

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")

자세한 예제와 사용법은 Val Mode 페이지를 확인하세요.

댓글