Giới thiệu Phân đoạn đối tượng trong Ultralytics YOLOv5 v7.0
Khám phá YOLOv5 v7.0 với các mô hình phân đoạn đối tượng mới, vượt trội hơn các tiêu chuẩn SOTA về độ chính xác và tốc độ AI hàng đầu. Tham gia cộng đồng của chúng tôi.

YOLOv5 v7.0, phiên bản mới nhất của kiến trúc AI của chúng tôi, đã chính thức ra mắt và chúng tôi vô cùng hào hứng giới thiệu các model instance segmentation mới!

Trong quá trình thực hiện bản phát hành mới nhất này, chúng tôi luôn tập trung vào hai mục tiêu chính. Mục tiêu đầu tiên là sứ mệnh làm cho AI trở nên dễ dàng, và mục tiêu thứ hai là định nghĩa lại ý nghĩa thực sự của "trạng thái tiên tiến" (state-of-the-art).
So, with significant improvements, fixes, and upgrades, we’ve done just that. Keeping the same simple workflows as our existing Ultralytics YOLOv5 object detection models, it’s now easier than ever to train, validate and deploy your models with YOLOv5 v7.0. On top of this, we’ve surpassed all SOTA benchmarks, effectively making YOLOv5 the fastest and most accurate in the world.
Vì đây là bản phát hành đầu tiên về các model segmentation, chúng tôi vô cùng tự hào về cột mốc này. Chúng tôi xin gửi lời cảm ơn sâu sắc đến cộng đồng tận tâm và các contributors của mình, những người đã giúp hiện thực hóa bản phát hành này.

Nào, hãy cùng bắt đầu với release notes của YOLOv5 v7.0!
Cập nhật quan trọng về Ultralytics YOLOv5#
Dưới đây là những điểm được cập nhật trong YOLOv5 kể từ bản phát hành YOLOv5 v6.2 vào tháng 8 năm 2022.
- Segmentation Models ⭐ NEW: Các model segmentation được train sẵn trên COCO đạt chuẩn SOTA của YOLOv5 hiện đã có mặt lần đầu tiên (#9052 bởi @glenn-jocher, @AyushExel và @Laughing-q)
- PaddlePaddle Export: Export bất kỳ model YOLOv5 nào (cls, seg, det) sang định dạng Paddle bằng câu lệnh python export.py --include paddle (#9459 bởi @glenn-jocher)
- YOLOv5 AutoCache: Sử dụng python train.py --cache ram giờ đây sẽ quét dung lượng bộ nhớ khả dụng và so sánh với mức sử dụng RAM dự kiến của dataset. Điều này giúp giảm rủi ro khi caching và nâng cao khả năng áp dụng tính năng caching dataset, qua đó giúp tăng tốc đáng kể quá trình train. (#10027 bởi @glenn-jocher)
- Tích hợp Logging và Visualization của Comet: Hoàn toàn miễn phí, Comet cho phép bạn lưu các model YOLOv5, tiếp tục quá trình train (resume training), cũng như trực quan hóa và debug các dự đoán một cách tương tác. (#9232 bởi @DN6)
Các checkpoint phân đoạn mới#
Chúng tôi đã huấn luyện các model segmentation của Ultralytics YOLOv5 trên COCO trong 300 epoch với kích thước ảnh 640 sử dụng GPU A100. Chúng tôi đã export tất cả các model sang ONNX FP32 để kiểm tra tốc độ trên CPU và sang TensorRT FP16 để kiểm tra tốc độ trên GPU. Chúng tôi đã chạy tất cả các bài kiểm tra tốc độ trên các notebook của Google Colab Pro để dễ dàng tái tạo kết quả.
- Tất cả các checkpoint đều được train đến 300 epochs với optimizer SGD cùng lr0=0.01 và weight_decay=5e-5 ở kích thước ảnh 640 với các thiết lập mặc định. Tất cả các lượt chạy đều được ghi lại trong Weights & Biases training logs.
- Các giá trị độ chính xác được đo cho model đơn, quy mô đơn trên tập dữ liệu COCO. Hãy tái lập bằng lệnh python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- Tốc độ trung bình trên 100 ảnh suy luận (inference) sử dụng instance A100 High-RAM trên Colab Pro. Các giá trị chỉ thể hiện tốc độ suy luận (NMS thêm khoảng 1ms cho mỗi ảnh). Hãy tái lập bằng lệnh python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- Xuất sang ONNX ở định dạng FP32 và TensorRT ở định dạng FP16 được thực hiện bằng export.py. Hãy tái lập bằng lệnh python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Ví dụ sử dụng phân đoạn mới#
Huấn luyện#
Quá trình huấn luyện segmentation của Ultralytics YOLOv5 hỗ trợ tính năng tự động tải xuống tập dữ liệu segmentation COCO128-seg bằng tham số --data coco128-seg.yaml và tải xuống thủ công tập dữ liệu COCO-segments bằng lệnh bash data/scripts/get_coco.sh --train --val --segments và sau đó chạy lệnh python train.py --data coco.yaml.
Single-GPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
Multi-GPU DDP#
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3
Val (Kiểm thử)#
Kiểm thử độ chính xác của YOLOv5m-seg trên tập dữ liệu COCO:
bash data/scripts/get_coco.sh --val --segments # tải tập dữ liệu COCO val segments (780MB, 5000 ảnh) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # kiểm thử
Predict (Dự đoán)#
Sử dụng YOLOv5m-seg đã pretrained để dự đoán bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # tải từ PyTorch Hub (CẢNH BÁO: chưa hỗ trợ suy luận)

Export (Xuất)#
Xuất model YOLOv5s-seg sang ONNX và TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Bạn có câu hỏi nào không? Hãy hỏi trên Ultralytics forum, tạo một issue, hoặc gửi một PR trên kho lưu trữ. Bạn cũng có thể bắt đầu với YOLOv5 segmentation Colab notebook của chúng tôi để xem các hướng dẫn bắt đầu nhanh.






