Sử dụng Python#
Chào mừng bạn đến với tài liệu về 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 mượt mà Ultralytics YOLO vào các dự án Python của bạn cho phát hiện đối tượng, phân đoạn cá thể, phân đoạn ngữ nghĩa, ước tính độ sâu và phân loại. Tại đây, bạn sẽ học cách tải và sử dụng các mô hình được huấn luyện trước, huấn luyện các 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à một 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 thôi!
Watch: Mastering Ultralytics YOLO: Python
Ví dụ, người dùng có thể tải một mô hình, huấn luyện mô hình, đánh giá hiệu năng của mô hình trên tập xác thực, và thậm chí xuất mô hình sang định dạng ONNX chỉ với vài dòng mã.
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")Huấn luyện#
Chế độ huấn luyện được sử dụng để huấn luyện một mô hình YOLO trên một tập dữ liệu tùy chỉnh. Trong chế độ này, mô hình được huấn luyện bằng cách sử dụng tập dữ liệu được chỉ định và các siêu tham số. 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 để mô hình 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.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Val#
Chế độ xác thực được sử dụng để xác thực một mô hình YOLO sau khi mô hình đã được huấn luyện. Trong chế độ này, mô hình được đánh giá trên tập xác thực để đo lường độ chính xác và hiệu năng tổng quát hóa của mô hình. 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 năng của mô hình.
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#
Chế độ dự đoán được sử dụng để đưa ra dự đoán bằng cách sử dụng một mô hình YOLO đã được huấn luyện trên các hình ảnh hoặc video mới. Trong chế độ này, mô hình được tải từ một tệp điểm kiểm tra và người dùng có thể cung cấp hình ảnh hoặc video để thực hiện suy luận. Mô hình dự đoán các lớp và vị trí của các đối tượng trong các hình ảnh hoặc video đầu vào.
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#
Chế độ xuất được sử dụng để xuất một mô hình YOLO sang định dạng có thể được sử dụng để triển khai. Trong chế độ này, mô hình được chuyển đổi sang định dạng có thể được sử dụng bởi các ứng dụng phần mềm hoặc thiết bị phần cứng khác. Chế độ này hữu ích khi triển khai mô hình vào các môi trường sản xuất.
Xuất một mô hình YOLO chính thức sang ONNX với kích thước lô và kích thước ảnh động.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Theo dõi#
Chế độ theo dõi được sử dụng để theo dõi các đối tượng theo thời gian thực bằng cách sử dụng một mô hình YOLO. Trong chế độ này, mô hình được tải từ một tệp điểm kiểm tra và người dùng có thể cung cấp một 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ự hành.
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#
Chế độ điểm chuẩn được sử dụng để lập hồ sơ tốc độ và độ chính xác của các định dạng xuất khác nhau cho YOLO. Các điểm chuẩn cung cấp thông tin về kích thước của định dạng được xuất, các chỉ số mAP50-95 của định dạng được xuất (đối với phát hiện đối tượng và phân đoạn) hoặc các chỉ số accuracy_top1 (đối với 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 các yêu cầu về tốc độ và độ chính xác của người dùng.
Chạy điểm chuẩn cho 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, device=0)Sử dụng bộ huấn luyện#
Lớp mô hình YOLO đóng vai trò là một trình bao bọc cấp cao cho các lớp Bộ huấn luyện. Mỗi tác vụ YOLO có bộ huấn luyện riêng, kế thừa từ BaseTrainer. Kiến trúc này cho phép tính linh hoạt và tùy chỉnh lớn hơn trong quy trình làm việc học máy của bạn.
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 # path to 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")
# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})Bạn có thể dễ dàng tùy chỉnh các Bộ huấn luyện để 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 khung làm việc cho phù hợp với các nhu cầu cụ thể của bạn, 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ó để có hiệu năng tốt hơn.
FAQ#
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 được 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 của chúng tôi.
Ultralytics YOLO cung cấp nhiều chế độ khác nhau để phục vụ cho các quy trình làm việc học máy khác nhau. Các chế độ này bao gồm:
- Huấn luyện: Huấn luyện một mô hình sử dụng các tập dữ liệu tùy chỉnh.
- Xác thực: Xác thực hiệu năng mô hình trên một tập xác thực.
- Dự đoán: Đưa ra dự đoán trên các hình ảnh hoặc luồng video mới.
- Xuất: Xuất mô hình sang nhiều định dạng khác nhau như ONNX và TensorRT.
- Theo dõi: Theo dõi đối tượng thời gian thực trong các luồng video.
- Điểm chuẩn: Đánh giá điểm chuẩn 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 quá trình phát triển và triển khai mô hình.
Để 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. Dưới đâ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ề việc huấn luyện và các liên kết đến ví dụ sử dụng, hãy truy cập trang Chế độ huấn luyện của chúng tôi.
Việc xuất các mô hình YOLO ở định dạng thích hợp cho việc 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")Đối với các tùy chọn xuất khác nhau, hãy tham khảo tài liệu Chế độ xuất.
Có, việc xác thực các mô hình YOLO trên các tập dữ liệu khác nhau là có thể thực hiện được. Sau khi huấn luyện, bạn có thể sử dụng chế độ xác thực để đánh giá hiệu năng:
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ế độ xác thực để biết các ví dụ chi tiết và cách sử dụng.