Yolo Vision Thâm Quyến
Thâm Quyến
Tham gia ngay

Giới thiệu Instance Segmentation trong Ultralytics YOLOv5 v7.0

Nhóm Ultralytics

3 phút đọc

23 tháng 11, 2022

Khám phá YOLOv5 v7.0 với các mô hình phân đoạn instance (Instance Segmentation) mới, vượt trội so với các chuẩn SOTA về tốc độ và độ chính xá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 mô hình phân đoạn instance mới của mình!

Trong khi thực hiện bản phát hành mới nhất này, chúng tôi luôn đặt hai mục tiêu lên hàng đầu. Đầu tiên là sứ mệnh làm cho AI trở nên dễ dàng và thứ hai là mục tiêu xác định lại ý nghĩa thực sự của “trạng thái hiện đại”.

Vì vậy, với những cải tiến, sửa lỗi và nâng cấp đáng kể, chúng tôi đã thực hiện được điều đó. Giữ nguyên quy trình làm việc đơn giản như các mô hình phát hiện đối tượng YOLOv5 hiện có của chúng tôi, giờ đây việc huấn luyện, xác thực và triển khai các mô hình của bạn với YOLOv5 v7.0 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ả các chuẩn SOTA, giúp YOLOv5 trở thành mô hình nhanh nhất và chính xác nhất trên thế giới.

Vì đây là bản phát hành đầu tiên của chúng tôi về các mô hình phân đoạn (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à những người đóng góp của chúng tôi, những người đã giúp bản phát hành này trở nên khả thi.  

Ultralytics YOLOv5 v7.0 SOTA Realtime Instance Segmentation

Vậy, hãy 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 YOLOv5

Đây là những gì đã được cập nhật trong YOLOv5 kể từ bản phát hành YOLOv5 v6.2 cuối cùng của chúng tôi vào tháng 8 năm 2022.

  • Các mô hình phân đoạn ⭐ MỚI: Các mô hình phân đoạn YOLOv5-seg COCO được huấn luyện trước SOTA hiện đã có lần đầu tiên (#9052 bởi @glenn-jocher, @AyushExel và @Laughing-q)
  • Xuất PaddlePaddle: Xuất bất kỳ mô hình YOLOv5 nào (cls, seg, det) sang định dạng Paddle bằng 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 bộ nhớ khả dụng và so sánh với mức sử dụng RAM của bộ dữ liệu dự đoán. Điều này làm giảm rủi ro trong việc lưu vào bộ nhớ đệm và sẽ giúp cải thiện việc áp dụng tính năng lưu vào bộ nhớ đệm của bộ dữ liệu, có thể tăng tốc đáng kể quá trình huấn luyện. (#10027 bởi @glenn-jocher)
  • Tích hợp trực quan hóa và ghi nhật ký Comet: Miễn phí vĩnh viễn, Comet cho phép bạn lưu các mô hình YOLOv5, tiếp tục huấn luyện và trực quan hóa và gỡ lỗi các dự đoán một cách tương tác. (#9232 bởi @DN6)

Điểm kiểm tra phân đoạn mới

Chúng tôi đã huấn luyện các mô hình phân đoạn YOLOv5 trên COCO trong 300 epochs ở kích thước ảnh 640 bằng GPU A100. Chúng tôi đã xuất tất cả các mô hình sang ONNX FP32 để kiểm tra tốc độ CPU và sang TensorRT FP16 để kiểm tra tốc độ GPU. Chúng tôi đã chạy tất cả các thử nghiệm tốc độ trên sổ tay Google Colab Pro để dễ dàng tái tạo.

  • Tất cả các điểm kiểm tra (checkpoint) đều được huấn luyện trong 300 epochs với thuật toán tối ưu hóa SGD, lr0=0.01 và weight_decay=5e-5 ở kích thước ảnh 640 và tất cả các cài đặt mặc định. Tất cả các lần chạy đều được ghi lại tại đây.
  • Các giá trị độ chính xác dành cho single-model single-scale trên bộ dữ liệu COCO. Tái tạo bằng lệnh python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Tốc độ được tính trung bình trên 100 ảnh suy luận bằng cách sử dụng phiên bản Colab Pro A100 High-RAM. Các giá trị chỉ ra tốc độ suy luận (NMS thêm khoảng 1ms cho mỗi ảnh). Tái tạo bằng lệnh python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • Xuất sang ONNX ở FP32 và TensorRT ở FP16 được thực hiện bằng export.py. Tái tạo bằng lệnh python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Các ví dụ mới về cách sử dụng Segmentation

Huấn luyện

Huấn luyện phân đoạn YOLOv5 hỗ trợ tự động tải xuống bộ dữ liệu phân đoạn COCO128-seg bằng đối số --data coco128-seg.yaml và tải xuống thủ công bộ dữ liệu COCO-segments bằng bash data/scripts/get_coco.sh --train --val --segments và sau đó 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

Kiểm định

Xác thực độ chính xác của YOLOv5m-seg trên bộ dữ liệu ImageNet-1k:

bash data/scripts/get_coco.sh --val --segments  # tải xuống COCO val segments split (780MB, 5000 ảnh) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640  # kiểm định

Dự đoán

Sử dụng YOLOv5m-seg đã được huấn luyện trước để 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)

Ultralytics YOLOv5 v7.0 Phân đoạn Instance


Xuất

Xuất mô hình YOLOv5s-seg sang ONNX và TensorRT:

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Ultralytics YOLOv5 v7.0 Phân đoạn Instance

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

Hãy cùng nhau xây dựng tương lai
của AI!

Bắt đầu hành trình của bạn với tương lai của học máy

Bắt đầu miễn phí
Đã sao chép liên kết vào clipboard