Meet YOLO26: next-gen vision AI.

Link to this sectionSử 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 được thiết kế để giúp bạn tích hợp liền mạch Ultralytics YOLO vào các dự án Python của mình cho các tác vụ phát hiện đối tượng, phân đoạn cá thể, phân đoạn ngữ nghĩaphân loại. Tại đây, bạn sẽ học cách tải và sử dụng các mô hình đã huấn luyện trước, huấn luyện mô hình mới và thực hiện dự đoán trên hình ảnh. Giao diện Python dễ sử dụng là nguồn tài nguyên quý giá cho bất kỳ ai muốn kết hợp YOLO vào các dự án Python của họ, cho phép bạn nhanh chóng triển khai các khả năng phát hiện đối tượng nâng cao. Hãy bắt đầu ngay!



Watch: Mastering Ultralytics YOLO: Python

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

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")

Link to this sectionHuấn luyện (Train)#

Chế độ huấn luyện (Train mode) được sử dụng để huấn luyện một mô hình YOLO trên tập dữ liệu tùy chỉnh. Trong chế độ này, mô hình được huấn luyện bằng tập dữ liệu và các siêu tham số (hyperparameters) được chỉ định. Quá trình huấn luyện bao gồm việc tối ưu hóa các tham số của mô hình để nó có thể dự đoán chính xác các lớp và vị trí của các đối tượng trong một hình ảnh.

Huấn luyện (Train)
from ultralytics import YOLO

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

Ví dụ về Train

Link to this sectionVal#

Chế độ kiểm chứng (Val mode) được sử dụng để kiểm chứng một mô hình YOLO sau khi nó đã được huấn luyện. Trong chế độ này, mô hình được đánh giá trên tập kiểm chứng để đo lường độ chính xác và hiệu suất tổng quát hóa. Chế độ này có thể được sử dụng để tinh chỉnh các siêu tham số của mô hình nhằm cải thiện hiệu suất.

Val
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()

Ví dụ về Val

Link to this sectionDự đoán (Predict)#

Chế độ dự đoán (Predict mode) được sử dụng để thực hiện dự đoán bằng mô hình YOLO đã huấn luyện trên hình ảnh hoặc video mới. Trong chế độ này, mô hình được tải từ file checkpoint và người dùng có thể cung cấp hình ảnh hoặc video để thực hiện suy luận (inference). Mô hình dự đoán các 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 (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])

Ví dụ về Predict

Link to this sectionXuất (Export)#

Chế độ xuất (Export mode) được sử dụng để xuất mô hình YOLO sang định dạng có thể dùng để triển khai. Trong chế độ này, mô hình đượ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 mô hình vào môi trường sản xuất.

Xuất (Export)

Xuất mô hình YOLO chính thức sang ONNX với kích thước batch và kích thước hình ảnh động.

from ultralytics import YOLO

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

Ví dụ về Export

Link to this sectionTheo dõi (Track)#

Chế độ theo dõi (Track mode) được sử dụng để theo dõi các đối tượng trong thời gian thực bằng mô hình YOLO. Trong chế độ này, mô hình được tải từ file checkpoint và người dùng có thể cung cấp luồng video trực tiếp để thực hiện 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 (Track)
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")

Ví dụ về Track

Link to this sectionĐánh giá hiệu năng (Benchmark)#

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

Đánh giá hiệu năng (Benchmark)

Đánh giá hiệu năng một mô hình YOLO chính thức trên tất cả các định dạng xuất.

from ultralytics.utils.benchmarks import benchmark

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

Ví dụ về Benchmark

Link to this sectionSử dụng các lớp Trainer#

Lớp mô hình YOLO đóng vai trò là trình bao bọc cấp cao cho các lớp Trainer. Mỗi tác vụ YOLO đều có trình huấn luyện riêng, kế thừa từ BaseTrainer. Kiến trúc này cho phép sự linh hoạt và tùy chỉnh lớn hơn trong các quy trình làm việc học máy của bạn.

Ví dụ về Detection Trainer
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)

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

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

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm thế nào để tích hợp YOLO vào dự án Python của tôi để phát hiện đối tượng?#

Việc tích hợp Ultralytics YOLO vào các dự án Python của bạn rất đơn giản. Bạn có thể tải một mô hình đã huấn luyện trước hoặc huấn luyện một mô hình mới từ đầu. Dưới đây là cách bắt đầu:

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()

Xem thêm các ví dụ chi tiết trong phần Chế độ dự đoán (Predict Mode) của chúng tôi.

Link to this sectionCó những chế độ nào khả dụng trong YOLO?#

Ultralytics YOLO cung cấp nhiều chế độ khác nhau để phục vụ các quy trình học máy khác nhau. Các chế độ này bao gồm:

  • Train: Huấn luyện mô hình sử dụng các tập dữ liệu tùy chỉnh.
  • Val: Kiểm chứng hiệu suất mô hình trên tập kiểm chứng.
  • Predict: Thực hiện dự đoán trên hình ảnh hoặc luồng video mới.
  • Export: Xuất mô hình sang các định dạng khác nhau như ONNX và TensorRT.
  • Track: Theo dõi đối tượng thời gian thực trong các luồng video.
  • Benchmark: Đánh giá hiệu năng mô hình trên các cấu hình khác nhau.

Mỗi chế độ được thiết kế để cung cấp các chức năng toàn diện cho các giai đoạn khác nhau của phát triển và triển khai mô hình.

Link to this sectionLàm thế nào để huấn luyện một mô hình YOLO tùy chỉnh bằng tập dữ liệu của tôi?#

Để huấn luyện một mô hình YOLO tùy chỉnh, bạn cần chỉ định tập dữ liệu của mình và các siêu tham số khác. Đây là một ví dụ nhanh:

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)

Để biết thêm chi tiết về huấn luyện và các siêu liên kết đến ví dụ sử dụng, hãy truy cập trang Chế độ huấn luyện (Train Mode) của chúng tôi.

Link to this sectionLàm thế nào để xuất các mô hình YOLO để triển khai?#

Việc xuất các mô hình YOLO sang định dạng phù hợp để triển khai rất đơn giản với hàm export. Ví dụ, bạn có thể xuất một mô hình sang định dạng ONNX:

from ultralytics import YOLO

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

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

Để biết các tùy chọn xuất khác nhau, hãy tham khảo tài liệu Chế độ xuất (Export Mode).

Link to this sectionTôi có thể kiểm chứng mô hình YOLO của mình trên các tập dữ liệu khác nhau không?#

Có, việc kiểm chứng các mô hình YOLO trên các tập dữ liệu khác nhau là hoàn toàn khả thi. Sau khi huấn luyện, bạn có thể sử dụng chế độ kiểm chứng để đánh giá hiệu suất:

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")

Kiểm tra trang Chế độ kiểm chứng (Val Mode) để biết các ví dụ chi tiết và cách sử dụng.

Bình luận