Giới thiệu phân đoạn instance trong Ultralytics YOLOv5 v7.0
Khám phá YOLOv5 v7.0 với các model phân đoạn instance mới, vượt qua các benchmark 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, đã ra mắt và chúng tôi rất vui mừng được giới thiệu các model phân đoạn đối tượng mới!

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 trở nên dễ tiếp cận, còn 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 hiện nay”.
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 đúng điều đó. Vẫn duy trì các workflow đơn giản như những model phát hiện đối tượng Ultralytics YOLOv5 hiện có, giờ đây việc train, validate và deploy model với YOLOv5 v7.0 trở nên dễ dàng hơn bao giờ hết. Không chỉ vậy, chúng tôi đã vượt qua tất cả benchmark SOTA, qua đó đưa YOLOv5 trở thành model nhanh nhất và chính xác nhất thế giới.
Vì đây là bản phát hành đầu tiên của các model phân đoạn, 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, 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 bắt đầu với release notes của YOLOv5 v7.0!
Các cập nhật quan trọng của Ultralytics YOLOv5#
Dưới đây là những nội dung đã được cập nhật trong 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: Các model phân đoạn SOTA YOLOv5-seg được pretrain trên COCO hiện đã khả dụng lần đầu tiên (#9052 bởi @glenn-jocher, @AyushExel và @Laughing-q)
- Export PaddlePaddle: Export 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: Lệnh python train.py --cache ram giờ đây sẽ 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 làm giảm rủi ro khi caching và sẽ giúp tăng khả năng áp dụng tính năng caching dataset, vốn có thể tăng tốc đáng kể quá trình train. (#10027 bởi @glenn-jocher)
- Tích hợp Logging và Visualization với Comet: Comet miễn phí vĩnh viễn, cho phép bạn lưu model YOLOv5, tiếp tục quá trình train, cũng như trực quan hóa và debug prediction một cách tương tác. (#9232 bởi @DN6)
Checkpoint phân đoạn mới#
Chúng tôi đã train các model phân đoạn Ultralytics YOLOv5 trên COCO trong 300 epoch với kích thước ảnh 640 bằng GPU A100. Chúng tôi đã export tất cả model sang ONNX FP32 để kiểm thử tốc độ trên CPU và sang TensorRT FP16 để kiểm thử tốc độ trên GPU. Chúng tôi thực hiện toàn bộ bài kiểm thử tốc độ trên notebook Google Colab Pro để dễ dàng tái lập.
- Tất cả checkpoint đều được train trong 300 epoch bằng optimizer SGD với lr0=0.01 và weight_decay=5e-5 ở kích thước ảnh 640 cùng toàn bộ thiết lập mặc định. Tất cả run đều được ghi log trong training log của Weights & Biases.
- Các giá trị độ chính xác áp dụng cho single-model single-scale trên dataset COCO. 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 ảnh inference bằng instance Colab Pro A100 High-RAM. Các giá trị chỉ biểu thị tốc độ inference (NMS thêm khoảng 1 ms cho mỗi ảnh). Tái lập bằng python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- Export sang ONNX ở FP32 và TensorRT ở FP16 được thực hiện 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#
Tính năng train phân đoạn của Ultralytics YOLOv5 hỗ trợ tự động tải dataset phân đoạn COCO128-seg bằng argument --data coco128-seg.yaml và tải thủ công dataset COCO-segments bằng bash data/scripts/get_coco.sh --train --val --segments, sau đó chạy 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
Đánh giá#
Đánh giá độ chính xác của YOLOv5m-seg trên dataset COCO:
bash data/scripts/get_coco.sh --val --segments # tải split phân đoạn COCO val (780MB, 5000 ảnh) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # đánh giá
Predict#
Sử dụng YOLOv5m-seg đã pretrain để 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: inference hiện chưa được hỗ trợ)

Export#
Export 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? Hãy hỏi trên diễn đàn Ultralytics, tạo issue hoặc submit PR trên repo. Bạn cũng có thể bắt đầu với notebook YOLOv5 segmentation trên Colab để xem các tutorial quickstart.









