Phát Hiện Đối Tượng
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: Nhận diện đối tượng với mô hình Ultralytics YOLO được huấn luyện trước.
Mẹo
Các mô hình YOLO11 Detect là các mô hình YOLO11 mặc định, tức là yolo11n.pt
và được huấn luyện trước trên COCO.
Mô hình
Các mô hình YOLO11 Detect được huấn luyện trước được hiển thị ở đây. Các mô hình Detect, Segment và Pose được huấn luyện trước trên bộ dữ liệu COCO, trong khi các mô hình Classify được huấn luyện trước trên bộ dữ liệu ImageNet.
Các mô hình sẽ tự động tải xuống từ phiên bản phát hành Ultralytics mới nhất khi sử dụng lần đầu.
Mô hình | Kích thước (pixels) |
mAPval 50-95 |
Tốc độ CPU ONNX (ms) |
Tốc độ T4 TensorRT10 (ms) |
Tham số (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 1.5 ± 0.0 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 ± 1.2 | 2.5 ± 0.0 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 ± 2.0 | 4.7 ± 0.1 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 ± 1.4 | 6.2 ± 0.1 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 ± 6.7 | 11.3 ± 0.2 | 56.9 | 194.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áchyolo 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 Amazon EC2 P4d instance.
Tái tạo bằng cáchyolo val detect data=coco.yaml batch=1 device=0|cpu
Huấn luyện
Huấn luyện YOLO11n trên tập dữ liệu COCO8 trong 100 epochs ở kích thước ảnh 640. Để có 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("yolo11n.yaml") # build a new model from YAML
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.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=yolo11n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.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=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640
Định dạng bộ dữ liệu
Định dạng bộ dữ liệu phát hiện YOLO có thể được tìm thấy chi tiết trong Hướng dẫn về Bộ dữ liệu. Để chuyển đổi bộ 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 YOLO11n đã 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("yolo11n.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 contains map50-95 of each category
yolo detect val model=yolo11n.pt # val official model
yolo detect val model=path/to/best.pt # val custom model
Dự đoán
Sử dụng mô hình YOLO11n đã huấn luyện để chạy dự đoán trên ảnh.
Ví dụ
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.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=yolo11n.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 YOLO11n sang một định dạng khác như ONNX, CoreML, v.v.
Ví dụ
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.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=yolo11n.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 YOLO11 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, ví dụ: yolo predict model=yolo11n.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ạng | format Đối số |
Mô hình | Metadata (Siêu dữ liệu) | Các đối số |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , 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 YOLO11 trên bộ dữ liệu tùy chỉnh của tôi?
Huấn luyện mô hình YOLO11 trên một bộ dữ liệu tùy chỉnh bao gồm một vài bước:
- 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.
- Tải Mô Hình: Sử dụng thư viện Ultralytics YOLO để tải mô hình đã được huấn luyện trước hoặc tạo mô hình mới từ tệp YAML.
- Huấn luyện Mô Hình: Thực thi phương thức
train
trong python hoặcyolo detect train
lệnh trong CLI.
Ví dụ
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n.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=yolo11n.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 được huấn luyện trước nào có sẵn trong YOLO11?
Ultralytics YOLO11 cung cấp nhiều mô hình đã được huấn luyện trước cho phát hiện đối tượng, phân đoạn và ước tính tư thế. Các mô hình này được huấn luyện trước trên bộ dữ liệu COCO hoặc ImageNet cho các tác vụ phân loại. 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 YOLO11 đã huấn luyện, bạn có thể sử dụng .val()
trong python hoặc yolo detect val
lệnh trong CLI. Thao tác này sẽ cung cấp các số liệu như mAP50-95, mAP50, v.v.
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 YOLO11 sang những định dạng nào?
Ultralytics YOLO11 cho phép xuất các mô hình sang nhiều định dạng khác nhau như ONNX, TensorRT, CoreML, v.v. để đả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("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n.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 YOLO11 để phát hiện đối tượng?
Ultralytics YOLO11 được thiết kế để mang lại hiệu suất hiện đại nhất cho phát hiện đối tượng, phân đoạn và ước tính tư thế. Dưới đây là một số ưu điểm chính:
- Các mô hình được 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 bộ dữ liệu phổ biến như COCO và ImageNet để phát triển nhanh hơn.
- Độ chính xác cao: Đạt được điểm số mAP ấn tượng, đảm bảo phát hiện đối tượng đáng tin cậy.
- 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.
- 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 để biết các trường hợp sử dụng và câu chuyện thành công giới thiệu YOLO11 trong thực tế.