Giới thiệu tính năng phân đoạn instance trong Ultralytics YOLOv5 v7.0
Khám phá YOLOv5 v7.0, phiên bản giới thiệu các model phân đoạn instance YOLOv5, cùng ví dụ về huấn luyện, validation, dự đoán và export.
Nuvola Ladi4 phút đọc
YOLOv5 v7.0, phiên bản mới nhất của kiến trúc AI của chúng tôi, đã ra mắt và chúng tôi rất vui được giới thiệu các model phân đoạn instance mới! (Với các dự án mới hiện nay, hãy xem Ultralytics YOLO26, model cũng hỗ trợ phân đoạn instance.)

Trong quá trình phát triể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. Mục tiêu đầu tiên là sứ mệnh giúp AI dễ tiếp cận, và mục tiêu thứ hai là định nghĩa lại ý nghĩa thực sự của “tiên tiến nhất”.
Với những cải tiến, bản sửa lỗi và nâng cấp đáng kể, chúng tôi đã thực hiện được điều đó. Vẫn giữ quy trình làm việc đơn giản như các model phát hiện đối tượng Ultralytics YOLOv5 hiện có, YOLOv5 v7.0 giúp việc huấn luyện, đánh giá và triển khai model trở nên dễ dàng hơn bao giờ hết. Hơn nữa, chúng tôi đã vượt qua tất cả benchmark SOTA, đưa YOLOv5-seg trở thành model phân đoạn instance thời gian thực nhanh nhất và chính xác nhất tại thời điểm ra mắt.
Đây là lần đầu tiên chúng tôi phát hành các model phân đoạn, vì vậy chúng tôi vô cùng tự hào về cột mốc này. Chúng tôi xin cảm ơn cộng đồng tận tâm và các đóng góp viên, những người đã góp phần biến bản phát hành này thành hiện thực.

Vậy hãy cùng bắt đầu với ghi chú phát hành YOLOv5 v7.0!
Các cập nhật quan trọng của Ultralytics YOLOv5#
Dưới đây là những cập nhật của YOLOv5 kể từ lần phát hành YOLOv5 v6.2 gần nhất vào tháng 8 năm 2022.
- Model phân đoạn ⭐ MỚI: Lần đầu tiên, các model phân đoạn YOLOv5-seg SOTA được pretrained trên COCO đã sẵn sàng sử dụng (#9052 do @glenn-jocher, @AyushExel và @Laughing-q thực hiện)
- Xuất PaddlePaddle: Xuất mọi model YOLOv5 (cls, seg, det) sang định dạng Paddle bằng
python export.py --include paddle(#9459 bởi @glenn-jocher) - YOLOv5 AutoCache: Giờ đây,
python train.py --cache ramsẽ quét 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ảm nguy cơ khi lưu vào bộ nhớ đệm, đồng thời giúp tăng mức độ sử dụng tính năng cache dataset, vốn có thể tăng tốc đáng kể quá trình huấn luyện. (#10027 bởi @glenn-jocher) - Tích hợp ghi log và trực quan hóa Comet: Comet miễn phí vĩnh viễn, cho phép bạn lưu model YOLOv5, tiếp tục huấn luyện, đồng thời trực quan hóa và debug dự đoán một cách tương tác. (#9232 do @DN6 thực hiện)
Các checkpoint phân đoạn mới#
Chúng tôi huấn luyện các model phân đoạn Ultralytics YOLOv5 trên COCO trong 300 epoch với kích thước hình ảnh 640 bằng GPU A100. Chúng tôi xuất tất 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 mọi bài kiểm tra tốc độ trên notebook Google Colab Pro để dễ dàng tái lập.
- Tất cả checkpoint được huấn luyện trong 300 epoch bằng optimizer SGD với lr0=0.01 và weight_decay=5e-5, ở kích thước hình ảnh 640 và sử dụng toàn bộ thiết lập mặc định. Tất cả lần chạy được ghi lại trong nhật ký huấn luyện Weights & Biases này.
- Các giá trị độ chính xác được đo trên COCO với một model và một scale. Tái lập bằng
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt - Tốc độ được tính trung bình trên 100 hình ảnh suy luận bằng instance Colab Pro A100 High-RAM. Các giá trị chỉ biểu thị tốc độ suy luận (NMS thêm khoảng 1 ms mỗi hình ảnh). Tái lập bằng
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1 - Xuất sang ONNX ở FP32 và TensorRT ở FP16 bằng export.py. Tái lập bằng
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 phân đoạn Ultralytics YOLOv5 hỗ trợ tự động tải xuống dataset phân đoạn COCO128-seg bằng đối số --data coco128-seg.yaml, và tải xuống thủ công dataset COCO-segments bằng bash data/scripts/get_coco.sh --train --val --segments, sau đó chạy python segment/train.py --data coco.yaml.
Một GPU#
python segment/train.py --weights yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640Đa GPU DDP#
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --weights yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3Xác thực#
Đánh giá độ chính xác của YOLOv5s-seg trên dataset COCO:
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validateDự đoán#
Dùng YOLOv5m-seg pretrained để dự đoán bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpgmodel = torch.hub.load("ultralytics/yolov5", "custom", "yolov5m-seg.pt") # tải từ PyTorch Hub (CẢNH BÁO: hiện chưa hỗ trợ suy luận)
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 diễn đàn Ultralytics, tạo issue hoặc gửi PR trên repo. Bạn cũng có thể bắt đầu với notebook Colab phân đoạn YOLOv5 để xem hướng dẫn bắt đầu nhanh.
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










