Ultralytics YOLO27:
Get Started

Cách sử dụng Python#

Chào mừng bạn đến với tài liệu hướng dẫn sử dụng Python của Ultralytics YOLO! Hướng dẫn này giúp bạn tích hợp liền mạch Ultralytics YOLO vào các dự án Python để thực hiện phát hiện đối tượng, phân đoạn đối tượng, phân đoạn ngữ nghĩa, ước tính độ sâu và phân loại. Tại đây, bạn sẽ tìm hiểu cách tải và sử dụng model đã được huấn luyện trước, huấn luyện model mới và thực hiện dự đoán trên ảnh. Giao diện Python dễ sử dụng là tài nguyên hữu ích cho bất kỳ ai muốn tích hợp YOLO vào các dự án Python, giúp bạn nhanh chóng triển khai các tính năng phát hiện đối tượng tiên tiến. Hãy bắt đầu!



Xem: Làm chủ Ultralytics YOLO: Python

Ví dụ: chỉ với vài dòng code, người dùng có thể tải model, huấn luyện model, đánh giá hiệu năng trên tập validation và thậm chí xuất model sang định dạng ONNX.

Python
from ultralytics import YOLO

# # Tạo model YOLO mới từ đầu
model = YOLO("yolo26n.yaml")

# # Tải model YOLO đã được huấn luyện trước (khuyến nghị khi huấn luyện)
model = YOLO("yolo26n.pt")

# # Huấn luyện model bằng dataset 'coco8.yaml' trong 3 epoch
results = model.train(data="coco8.yaml", epochs=3)

# # Đánh giá hiệu năng của model trên tập validation
results = model.val()

# # Thực hiện phát hiện đối tượng trên ảnh bằng model
results = model("https://ultralytics.com/images/bus.jpg")

# # Xuất model sang định dạng ONNX
success = model.export(format="onnx")

Huấn luyện#

Chế độ Train được dùng để huấn luyện model YOLO trên dataset tùy chỉnh. Ở chế độ này, model được huấn luyện bằng dataset và siêu tham số đã chỉ định. Quá trình huấn luyện bao gồm tối ưu hóa các tham số của model để model có thể dự đoán chính xác lớp và vị trí của đối tượng trong ảnh.

Huấn luyện
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # # truyền bất kỳ loại model nào
results = model.train(epochs=5)

Ví dụ huấn luyện

Đánh giá#

Chế độ Val được dùng để đánh giá một model YOLO sau khi huấn luyện. Ở chế độ này, model được đánh giá trên tập validation để đo độ chính xác và khả năng tổng quát hóa. Có thể dùng chế độ này để tinh chỉnh các hyperparameter của model nhằm cải thiện hiệu suất.

Đánh giá
from ultralytics import YOLO

# Tải model YOLO
model = YOLO("yolo26n.yaml")

# Huấn luyện model
model.train(data="coco8.yaml", epochs=5)

# Đánh giá trên tập validation của dataset huấn luyện
model.val()

Ví dụ Val

Dự đoán#

Chế độ Predict được dùng để dự đoán trên hình ảnh hoặc video mới bằng model YOLO đã huấn luyện. Ở chế độ này, model được tải từ tệp checkpoint và người dùng có thể cung cấp hình ảnh hoặc video để chạy inference. Model dự đoán lớp và vị trí của các đối tượng trong hình ảnh hoặc video đầu vào.

Dự đoán
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# chấp nhận mọi định dạng - image/dir/Path/URL/video/PIL/ndarray. 0 cho webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Hiển thị preds. Chấp nhận mọi đối số YOLO predict

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # lưu hình ảnh đã vẽ

# từ ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # lưu dự đoán dưới dạng nhãn

# từ danh sách PIL/ndarray
results = model.predict(source=[im1, im2])

Ví dụ Predict

Export#

Chế độ Export được dùng để xuất model YOLO sang định dạng có thể triển khai. Ở chế độ này, model được chuyển đổi sang định dạng mà các ứng dụng phần mềm hoặc thiết bị phần cứng khác có thể sử dụng. Chế độ này hữu ích khi triển khai model trong môi trường production.

Export

Xuất model YOLO chính thức sang ONNX với kích thước batch và hình ảnh linh hoạt.

from ultralytics import YOLO

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

Ví dụ Export

Theo dõi#

Chế độ Track được dùng để theo dõi đối tượng theo thời gian thực bằng model YOLO. Ở chế độ này, model được tải từ tệp checkpoint và người dùng có thể cung cấp luồng video trực tiếp để theo dõi đối tượng theo thời gian thực. Chế độ này hữu ích cho các ứng dụng như hệ thống giám sát hoặc xe tự lái.

Theo dõi
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n.pt")  # tải model phát hiện chính thức
model = YOLO("yolo26n-seg.pt")  # tải model segmentation chính thức
model = YOLO("path/to/best.pt")  # tải model tùy chỉnh

# Theo dõi bằng model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Ví dụ Track

Benchmark#

Chế độ Benchmark được dùng để phân tích tốc độ và độ chính xác của các định dạng export khác nhau cho YOLO. Benchmark cung cấp thông tin về kích thước của định dạng đã export, các chỉ số mAP50-95 (cho tác vụ phát hiện đối tượng và segmentation) hoặc các chỉ số accuracy_top1 (cho tác vụ phân loại), cùng thời gian inference tính bằng mili giây trên mỗi hình ảnh ở nhiều định dạng export như ONNX, OpenVINO, TensorRT và các định dạng khác. Thông tin này giúp người dùng chọn định dạng export tối ưu cho từng trường hợp sử dụng dựa trên yêu cầu về tốc độ và độ chính xác.

Benchmark

Benchmark model YOLO chính thức trên tất cả định dạng export.

from ultralytics.utils.benchmarks import benchmark

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

Ví dụ Benchmark

Sử dụng Trainer#

Lớp model YOLO đóng vai trò wrapper cấp cao cho các lớp Trainer. Mỗi tác vụ YOLO có Trainer riêng, kế thừa từ BaseTrainer. Kiến trúc này mang lại sự linh hoạt và khả năng tùy chỉnh cao hơn cho quy trình machine learning của bạn.

Ví dụ về Detection Trainer
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # đường dẫn đến best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Tiếp tục quá trình huấn luyện bị gián đoạn từ checkpoint gần nhất
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

Bạn có thể dễ dàng tùy chỉnh Trainer để hỗ trợ các tác vụ tùy chỉnh hoặc thử nghiệm ý tưởng nghiên cứu và phát triển. Thiết kế module của Ultralytics YOLO cho phép bạn điều chỉnh framework theo nhu cầu cụ thể, dù bạn đang thực hiện một tác vụ thị giác máy tính mới hay fine-tune các model hiện có để cải thiện hiệu suất.

Hướng dẫn tùy chỉnh

Câu hỏi thường gặp#

  • Việc tích hợp Ultralytics YOLO vào dự án Python rất đơn giản. Bạn có thể tải model pretrained hoặc huấn luyện model mới từ đầu. Sau đây là cách bắt đầu:

    from ultralytics import YOLO
    
    # Tải model YOLO pretrained
    model = YOLO("yolo26n.pt")
    
    # Thực hiện phát hiện đối tượng trên hình ảnh
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Trực quan hóa kết quả
    for result in results:
        result.show()

    Xem thêm ví dụ chi tiết trong phần Chế độ Predict.

  • Ultralytics YOLO cung cấp nhiều chế độ để đáp ứng các quy trình machine learning khác nhau, bao gồm:

    • Train: Huấn luyện model bằng dataset tùy chỉnh.
    • Val: Đánh giá hiệu suất model trên tập validation.
    • Predict: Dự đoán trên hình ảnh hoặc luồng video mới.
    • Export: Xuất model sang nhiều định dạng như ONNX và TensorRT.
    • Track: Theo dõi đối tượng theo thời gian thực trong luồng video.
    • Benchmark: Đánh giá hiệu suất model trên các cấu hình khác nhau.

    Mỗi chế độ được thiết kế để cung cấp đầy đủ chức năng cho từng giai đoạn của quá trình phát triển và triển khai model.

  • Để huấn luyện model YOLO tùy chỉnh, bạn cần chỉ định dataset và các hyperparameter khác. Sau đây là ví dụ nhanh:

    from ultralytics import YOLO
    
    # Tải model YOLO
    model = YOLO("yolo26n.yaml")
    
    # Huấn luyện model bằng dataset tùy chỉnh
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Để biết thêm chi tiết về huấn luyện và xem liên kết đến ví dụ sử dụng, hãy truy cập trang Chế độ Train.

  • Có thể dễ dàng export model YOLO sang định dạng phù hợp để triển khai bằng hàm export. Ví dụ: bạn có thể export model sang định dạng ONNX:

    from ultralytics import YOLO
    
    # Tải model YOLO
    model = YOLO("yolo26n.pt")
    
    # # Xuất model sang định dạng ONNX
    model.export(format="onnx")

    Để xem các tùy chọn export, hãy tham khảo tài liệu Chế độ Export.

  • Có thể đánh giá model YOLO trên các dataset khác nhau. Sau khi huấn luyện, bạn có thể dùng chế độ validation để đánh giá hiệu suất:

    from ultralytics import YOLO
    
    # Tải model YOLO
    model = YOLO("yolo26n.yaml")
    
    # Huấn luyện model
    model.train(data="coco8.yaml", epochs=5)
    
    # Đánh giá model trên một dataset khác
    model.val(data="path/to/separate/data.yaml")

    Xem trang Chế độ Val để biết các ví dụ chi tiết và cách sử dụng.

Bình luận