Chuyển đến nội dung

Phát Hiện Đối Tượng

YOLO phát hiện đối tượng bằng hộp giới hạn

Nhận diện đối tượng là một tác vụ liên quan đến việc xác định vị trí và phân loại các đối tượng trong một hình ảnh hoặc luồng video.

Đầu ra của một trình nhận diện đối tượng là một tập hợp các khung giới hạn bao quanh các đối tượng trong hình ảnh, cùng với nhãn lớp và điểm tin cậy cho mỗi khung. Nhận diện đối tượng là một lựa chọn tốt khi bạn cần xác định các đối tượng quan tâm trong một khung cảnh, nhưng không cần biết chính xác vị trí hoặc hình dạng chính xác của đối tượng.



Xem: Detect đối tượng với mô hình Ultralytics YOLO đã được huấn luyện trước.

Mẹo

Các mô hình YOLO26 Detect là các mô hình YOLO26 mặc định, tức là, yolo26n.pt, và được huấn luyện trước trên COCO.

Mô hình

Các mô hình YOLO26 Detect tiền huấn luyện được hiển thị ở đây. Các mô hình Detect, Segment và Pose được tiền huấn luyện trên tập dữ liệu COCO, trong khi các mô hình Classify được tiền huấn luyện trên tập dữ liệu ImageNet.

Các mô hình được tải xuống tự động từ bản phát hành Ultralytics mới nhất khi sử dụng lần đầu.

Mô hìnhKích thước
(pixels)
mAPval
50-95
mAPval
50-95(e2e)
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9
  • mAPval các giá trị dành cho mô hình đơn lẻ, tỉ lệ đơn lẻ trên COCO val2017 tập dữ liệu.
    Tái tạo bằng cách yolo val detect data=coco.yaml device=0
  • Tốc độ được tính trung bình trên các ảnh COCO val sử dụng một Amazon EC2 P4d instance.
    Tái tạo bằng cách yolo val detect data=coco.yaml batch=1 device=0|cpu

Huấn luyện

Huấn luyện YOLO26n trên tập dữ liệu COCO8 trong 100 epochs với kích thước ảnh 640. Để xem danh sách đầy đủ các đối số có sẵn, hãy xem trang Cấu hình.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo26n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo26n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo26n.yaml pretrained=yolo26n.pt epochs=100 imgsz=640

Định dạng bộ dữ liệu

Định dạng tập dữ liệu detect của YOLO có thể được tìm thấy chi tiết trong Hướng dẫn về tập dữ liệu. Để chuyển đổi tập dữ liệu hiện có của bạn từ các định dạng khác (như COCO, v.v.) sang định dạng YOLO, vui lòng sử dụng công cụ JSON2YOLO của Ultralytics.

Val

Xác thực mô hình YOLO26n đã huấn luyện độ chính xác trên tập dữ liệu COCO8. Không cần đối số nào vì model giữ lại quá trình huấn luyện data và các đối số của nó như các thuộc tính của mô hình.

Ví dụ

from ultralytics import YOLO

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

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
yolo detect val model=yolo26n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

Dự đoán

Sử dụng mô hình YOLO26n đã huấn luyện để chạy dự đoán trên hình ảnh.

Ví dụ

from ultralytics import YOLO

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

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box
yolo detect predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'      # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Xem đầy đủ predict chi tiết chế độ trong Dự đoán trang.

Xuất

Xuất mô hình YOLO26n sang định dạng khác như ONNX, CoreML, v.v.

Ví dụ

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo26n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model

Các định dạng xuất YOLO26 có sẵn được liệt kê trong bảng dưới đây. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng format đối số, ví dụ: format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là, yolo predict model=yolo26n.onnx. Các ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi quá trình xuất hoàn tất.

Định dạngformat Đối sốMô hìnhMetadata (Siêu dữ liệu)Các đối số
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, device
Axeleraaxelerayolo26n_axelera_model/imgsz, int8, data, fraction, device

Xem đầy đủ export chi tiết trong Xuất trang.

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

Làm cách nào để huấn luyện mô hình YOLO26 trên tập dữ liệu tùy chỉnh của tôi?

Huấn luyện mô hình YOLO26 trên tập dữ liệu tùy chỉnh bao gồm một vài bước:

  1. Chuẩn bị Bộ Dữ Liệu: Đảm bảo bộ dữ liệu của bạn ở định dạng YOLO. Để được hướng dẫn, hãy tham khảo Hướng Dẫn về Bộ Dữ Liệu của chúng tôi.
  2. Tải mô hình: Sử dụng thư viện Ultralytics YOLO để tải một mô hình đã được huấn luyện trước hoặc tạo một mô hình mới từ một tệp YAML.
  3. Huấn luyện Mô Hình: Thực thi phương thức train trong python hoặc yolo detect train lệnh trong CLI.

Ví dụ

from ultralytics import YOLO

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

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolo26n.pt epochs=100 imgsz=640

Để biết các tùy chọn cấu hình chi tiết, hãy truy cập trang Cấu Hình.

Những mô hình tiền huấn luyện nào có sẵn trong YOLO26?

Ultralytics YOLO26 cung cấp nhiều mô hình tiền huấn luyện khác nhau cho detect đối tượng, segment và ước tính tư thế. Các mô hình này được tiền huấn luyện trên tập dữ liệu COCO hoặc ImageNet cho các tác vụ classify. Dưới đây là một số mô hình có sẵn:

Để có danh sách chi tiết và số liệu hiệu suất, hãy tham khảo phần Các Mô Hình.

Làm cách nào để xác thực độ chính xác của mô hình YOLO đã huấn luyện của tôi?

Để xác thực độ chính xác của mô hình YOLO26 đã huấn luyện của bạn, bạn có thể sử dụng .val() trong python hoặc yolo detect val lệnh trong CLI. Điều này sẽ cung cấp các chỉ số như mAP50-95, mAP50, và nhiều hơn nữa.

Ví dụ

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95
yolo detect val model=path/to/best.pt

Để biết thêm chi tiết về xác thực, hãy truy cập trang Val.

Tôi có thể xuất mô hình YOLO26 sang những định dạng nào?

Ultralytics YOLO26 cho phép xuất mô hình sang nhiều định dạng khác nhau như ONNX, TensorRT, CoreML, và nhiều định dạng khác để đảm bảo khả năng tương thích trên các nền tảng và thiết bị khác nhau.

Ví dụ

from ultralytics import YOLO

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

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

Xem danh sách đầy đủ các định dạng được hỗ trợ và hướng dẫn trên trang Xuất.

Tại sao tôi nên sử dụng Ultralytics YOLO26 cho detect đối tượng?

Ultralytics YOLO26 được thiết kế để mang lại hiệu suất tiên tiến nhất cho detect đối tượng, segment và ước tính tư thế. Dưới đây là một số ưu điểm chính:

  1. Mô hình đã huấn luyện trước: Sử dụng các mô hình đã được huấn luyện trước trên các tập dữ liệu phổ biến như COCOImageNet để phát triển nhanh hơn.
  2. Độ chính xác cao: Đạt được điểm mAP ấn tượng, đảm bảo detect đối tượng đáng tin cậy.
  3. Tốc độ: Được tối ưu hóa cho suy luận thời gian thực, làm cho nó trở nên lý tưởng cho các ứng dụng yêu cầu xử lý nhanh chóng.
  4. Tính linh hoạt: Xuất mô hình sang nhiều định dạng khác nhau như ONNX và TensorRT để triển khai trên nhiều nền tảng.

Khám phá Blog của chúng tôi để tìm hiểu các trường hợp sử dụng và câu chuyện thành công thể hiện YOLO26 trong thực tế.



📅 Được tạo 2 năm trước ✏️ Cập nhật 2 ngày trước
glenn-jocherBurhan-Qambitious-octopusUltralyticsAssistantpderrengerY-T-GMatthewNoyceRizwanMunawar

Bình luận