Bỏ để qua phần nội dung

YOLO-Người mẫu thế giới

Các YOLO-World Model giới thiệu một tiên tiến, thời gian thực Ultralytics YOLOv8-dựa trên cách tiếp cận cho các nhiệm vụ Phát hiện từ vựng mở. Sự đổi mới này cho phép phát hiện bất kỳ đối tượng nào trong hình ảnh dựa trên các văn bản mô tả. Bằng cách giảm đáng kể nhu cầu tính toán trong khi vẫn duy trì hiệu suất cạnh tranh, YOLO-World nổi lên như một công cụ linh hoạt cho nhiều ứng dụng dựa trên tầm nhìn.



Xem: YOLO Quy trình đào tạo thế giới về tập dữ liệu tùy chỉnh

YOLO-Tổng quan về kiến trúc mô hình thế giới

Tổng quan

YOLO-World giải quyết những thách thức mà các mô hình phát hiện Từ vựng Mở truyền thống phải đối mặt, thường dựa vào các mô hình Transformer cồng kềnh đòi hỏi tài nguyên tính toán rộng rãi. Sự phụ thuộc của các mô hình này vào các loại đối tượng được xác định trước cũng hạn chế tiện ích của chúng trong các kịch bản động. YOLO-Thế giới hồi sinh YOLOv8 Framework với khả năng phát hiện từ vựng mở, sử dụng mô hình ngôn ngữ thị giác và đào tạo trước về các bộ dữ liệu mở rộng để vượt trội trong việc xác định một loạt các đối tượng trong các tình huống zero-shot với hiệu quả chưa từng có.

Các tính năng chính

  1. Giải pháp thời gian thực: Khai thác tốc độ tính toán của CNN, YOLO-World cung cấp một giải pháp phát hiện từ vựng mở nhanh chóng, phục vụ cho các ngành công nghiệp cần kết quả ngay lập tức.

  2. Hiệu quả và hiệu suất: YOLO-Thế giới cắt giảm các yêu cầu tính toán và tài nguyên mà không làm giảm hiệu suất, cung cấp một giải pháp thay thế mạnh mẽ cho các mô hình như SAM nhưng với một phần nhỏ chi phí tính toán, cho phép các ứng dụng thời gian thực.

  3. Suy luận với Từ vựng ngoại tuyến: YOLO-World giới thiệu chiến lược "prompt-then-detect", sử dụng từ vựng ngoại tuyến để nâng cao hiệu quả hơn nữa. Cách tiếp cận này cho phép sử dụng lời nhắc tùy chỉnh được tính toán trước, bao gồm chú thích hoặc danh mục, được mã hóa và lưu trữ dưới dạng nhúng từ vựng ngoại tuyến, hợp lý hóa quy trình phát hiện.

  4. Được tài trợ bởi YOLOv8: Được xây dựng dựa trên Ultralytics YOLOv8, YOLO-World tận dụng những tiến bộ mới nhất trong phát hiện đối tượng thời gian thực để tạo điều kiện phát hiện từ vựng mở với độ chính xác và tốc độ vô song.

  5. Điểm chuẩn xuất sắc: YOLO-World vượt trội hơn các máy dò từ vựng mở hiện có, bao gồm dòng MDETR và GLIP, về tốc độ và hiệu quả trên các tiêu chuẩn tiêu chuẩn, thể hiện YOLOv8Khả năng vượt trội của nó trên một GPU NVIDIA V100 duy nhất.

  6. Ứng dụng đa năng: YOLOCách tiếp cận sáng tạo của thế giới mở ra những khả năng mới cho vô số nhiệm vụ tầm nhìn, mang lại sự cải thiện tốc độ theo thứ tự cường độ so với các phương pháp hiện có.

Các kiểu máy có sẵn, tác vụ được hỗ trợ và chế độ hoạt động

Phần này trình bày chi tiết các mô hình có sẵn với trọng số được đào tạo trước cụ thể của chúng, các tác vụ mà chúng hỗ trợ và khả năng tương thích của chúng với các chế độ hoạt động khác nhau như Suy luận, Xác thực, Đào tạoXuất, được biểu thị bằng ✅ cho các chế độ được hỗ trợ và ❌ cho các chế độ không được hỗ trợ.

Ghi

Tất cả các YOLOv8-Trọng lượng thế giới đã được di chuyển trực tiếp từ chính thức YOLO-Kho lưu trữ thế giới , làm nổi bật những đóng góp tuyệt vời của họ.

Loại mô hình Trọng lượng được đào tạo trước Các tác vụ được hỗ trợ Suy luận Xác nhận Đào tạo Xuất khẩu
YOLOv8s-thế giới yolov8s-world.pt Phát hiện đối tượng
YOLOv8s-Worldv2 yolov8s-worldv2.pt Phát hiện đối tượng
YOLOv8m-thế giới yolov8m-world.pt Phát hiện đối tượng
YOLOv8m-Worldv2 yolov8m-worldv2.pt Phát hiện đối tượng
YOLOv8l-thế giới yolov8l-world.pt Phát hiện đối tượng
YOLOv8l-Worldv2 yolov8l-worldv2.pt Phát hiện đối tượng
YOLOv8x-thế giới yolov8x-world.pt Phát hiện đối tượng
YOLOv8x-Worldv2 yolov8x-worldv2.pt Phát hiện đối tượng

Truyền Zero-shot trên tập dữ liệu COCO

Loại mô hình bản đồ mAP50 mAP75
yolov8s-thế giới 37.4 52.0 40.6
yolov8s-Worldv2 37.7 52.2 41.0
yolov8m-thế giới 42.0 57.0 45.6
yolov8m-Worldv2 43.0 58.4 46.8
yolov8l-thế giới 45.7 61.3 49.8
yolov8l-Worldv2 45.8 61.3 49.8
yolov8x-thế giới 47.0 63.0 51.2
yolov8x-Worldv2 47.1 62.8 51.4

Ví dụ sử dụng

Các YOLO-Mô hình thế giới dễ dàng tích hợp vào Python Ứng dụng. Ultralytics Cung cấp thân thiện với người dùng Python API và CLI các lệnh để hợp lý hóa sự phát triển.

Sử dụng tàu

Mẹo

Chúng tôi thực sự khuyên bạn nên sử dụng yolov8-worldv2 Mô hình cho đào tạo tùy chỉnh, bởi vì nó hỗ trợ đào tạo xác định và cũng dễ dàng xuất các định dạng khác, tức là onnx/tensorrt.

Phát hiện đối tượng rất đơn giản với train Phương pháp, như minh họa dưới đây:

Ví dụ

PyTorch được đào tạo trước *.pt Mô hình cũng như cấu hình *.yaml Các tập tin có thể được chuyển đến YOLOWorld() lớp để tạo một thể hiện mô hình trong python:

from ultralytics import YOLOWorld

# Load a pretrained YOLOv8s-worldv2 model
model = YOLOWorld("yolov8s-worldv2.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a pretrained YOLOv8s-worldv2 model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8s-worldv2.yaml data=coco8.yaml epochs=100 imgsz=640

Dự đoán mức sử dụng

Phát hiện đối tượng rất đơn giản với predict Phương pháp, như minh họa dưới đây:

Ví dụ

from ultralytics import YOLOWorld

# Initialize a YOLO-World model
model = YOLOWorld("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Execute inference with the YOLOv8s-world model on the specified image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()
# Perform object detection using a YOLO-World model
yolo predict model=yolov8s-world.pt source=path/to/image.jpg imgsz=640

Đoạn mã này thể hiện sự đơn giản của việc tải một mô hình được đào tạo trước và chạy dự đoán trên hình ảnh.

Sử dụng Val

Xác thực mô hình trên tập dữ liệu được sắp xếp hợp lý như sau:

Ví dụ

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Conduct model validation on the COCO8 example dataset
metrics = model.val(data="coco8.yaml")
# Validate a YOLO-World model on the COCO8 dataset with a specified image size
yolo val model=yolov8s-world.pt data=coco8.yaml imgsz=640

Theo dõi việc sử dụng

Theo dõi đối tượng với YOLO-Mô hình thế giới trên video/hình ảnh được sắp xếp hợp lý như sau:

Ví dụ

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt for different sizes

# Track with a YOLO-World model on a video
results = model.track(source="path/to/video.mp4")
# Track with a YOLO-World model on the video with a specified image size
yolo track model=yolov8s-world.pt imgsz=640 source="path/to/video/file.mp4"

Ghi

Các YOLO-Mô hình thế giới được cung cấp bởi Ultralytics được cấu hình sẵn với các danh mục tập dữ liệu COCO như một phần của từ vựng ngoại tuyến của chúng, nâng cao hiệu quả cho ứng dụng ngay lập tức. Sự tích hợp này cho phép YOLOv8Các mô hình thế giới để trực tiếp nhận dạng và dự đoán 80 danh mục tiêu chuẩn được xác định trong tập dữ liệu COCO mà không yêu cầu thiết lập hoặc tùy chỉnh bổ sung.

Đặt lời nhắc

YOLO-Tổng quan về tên lớp nhắc nhở thế giới

Các YOLO-World framework cho phép đặc tả động của các lớp thông qua lời nhắc tùy chỉnh, trao quyền cho người dùng điều chỉnh mô hình theo nhu cầu cụ thể của họ mà không cần đào tạo lại. Tính năng này đặc biệt hữu ích để điều chỉnh mô hình cho các miền mới hoặc các tác vụ cụ thể ban đầu không phải là một phần của dữ liệu đào tạo. Bằng cách đặt lời nhắc tùy chỉnh, người dùng về cơ bản có thể hướng dẫn mô hình tập trung vào các đối tượng quan tâm, nâng cao mức độ liên quan và độ chính xác của kết quả phát hiện.

Ví dụ: nếu ứng dụng của bạn chỉ yêu cầu phát hiện các đối tượng 'person' và 'bus', bạn có thể chỉ định các lớp này trực tiếp:

Ví dụ

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or choose yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction for specified categories on an image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

Bạn cũng có thể lưu mô hình sau khi đặt các lớp tùy chỉnh. Bằng cách này, bạn tạo ra một phiên bản của YOLO-Mô hình thế giới chuyên biệt cho trường hợp sử dụng cụ thể của bạn. Quá trình này nhúng các định nghĩa lớp tùy chỉnh của bạn trực tiếp vào tệp mô hình, làm cho mô hình sẵn sàng để sử dụng với các lớp được chỉ định của bạn mà không cần điều chỉnh thêm. Làm theo các bước sau để lưu và tải tùy chỉnh của bạn YOLOv8 mẫu:

Ví dụ

Tải đầu tiên a YOLO-Mô hình thế giới, đặt các lớp tùy chỉnh cho nó và lưu nó:

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Save the model with the defined offline vocabulary
model.save("custom_yolov8s.pt")

Sau khi lưu, mô hình custom_yolov8s.pt hoạt động giống như bất kỳ khóa đào tạo trước nào khác YOLOv8 Mô hình nhưng với một sự khác biệt chính: Bây giờ nó được tối ưu hóa để chỉ phát hiện các lớp bạn đã xác định. Tùy chỉnh này có thể cải thiện đáng kể hiệu suất và hiệu quả phát hiện cho các tình huống ứng dụng cụ thể của bạn.

from ultralytics import YOLO

# Load your custom model
model = YOLO("custom_yolov8s.pt")

# Run inference to detect your custom classes
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

Lợi ích của việc tiết kiệm với từ vựng tùy chỉnh

  • Hiệu quả: Hợp lý hóa quy trình phát hiện bằng cách tập trung vào các đối tượng có liên quan, giảm chi phí tính toán và tăng tốc độ suy luận.
  • Tính linh hoạt: Cho phép dễ dàng điều chỉnh mô hình với các tác vụ phát hiện mới hoặc thích hợp mà không cần đào tạo lại hoặc thu thập dữ liệu rộng rãi.
  • Đơn giản: Đơn giản hóa việc triển khai bằng cách loại bỏ sự cần thiết phải liên tục chỉ định các lớp tùy chỉnh trong thời gian chạy, làm cho mô hình có thể sử dụng trực tiếp với từ vựng được nhúng của nó.
  • Hiệu suất: Tăng cường độ chính xác phát hiện cho các lớp được chỉ định bằng cách tập trung sự chú ý và tài nguyên của mô hình vào việc nhận dạng các đối tượng đã xác định.

Cách tiếp cận này cung cấp một phương tiện mạnh mẽ để tùy chỉnh các mô hình phát hiện đối tượng hiện đại cho các nhiệm vụ cụ thể, làm cho AI tiên tiến dễ tiếp cận hơn và áp dụng cho nhiều ứng dụng thực tế hơn.

Tái tạo kết quả chính thức từ đầu (Thử nghiệm)

Chuẩn bị bộ dữ liệu

  • Dữ liệu tàu hỏa
Tập dữ liệu Kiểu Mẫu Hộp Tệp chú thích
Đối tượng365v1 Detection 609k 9621k objects365_train.json
GQA Nền tảng 621k 3681k final_mixed_train_no_coco.json
Flickr30k Nền tảng 149k 641k final_flickr_separateGT_train.json
  • Val data
Tập dữ liệu Kiểu Tệp chú thích
LVIS minival Detection minival.txt

Khởi chạy đào tạo từ đầu

Ghi

WorldTrainerFromScratch được tùy chỉnh cao để cho phép đào tạo yolo-mô hình thế giới trên cả bộ dữ liệu phát hiện và bộ dữ liệu nối đất đồng thời. Để biết thêm chi tiết, vui lòng thanh toán ultralytics.mẫu.yolo.world.train_world.py.

Ví dụ

from ultralytics import YOLOWorld
from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch

data = dict(
    train=dict(
        yolo_data=["Objects365.yaml"],
        grounding_data=[
            dict(
                img_path="../datasets/flickr30k/images",
                json_file="../datasets/flickr30k/final_flickr_separateGT_train.json",
            ),
            dict(
                img_path="../datasets/GQA/images",
                json_file="../datasets/GQA/final_mixed_train_no_coco.json",
            ),
        ],
    ),
    val=dict(yolo_data=["lvis.yaml"]),
)
model = YOLOWorld("yolov8s-worldv2.yaml")
model.train(data=data, batch=128, epochs=100, trainer=WorldTrainerFromScratch)

Trích dẫn và xác nhận

Chúng tôi gửi lời cảm ơn đến Trung tâm Thị giác Máy tính Tencent AILab vì công việc tiên phong của họ trong việc phát hiện đối tượng từ vựng mở theo thời gian thực với YOLO-Thế giới:

@article{cheng2024yolow,
title={YOLO-World: Real-Time Open-Vocabulary Object Detection},
author={Cheng, Tianheng and Song, Lin and Ge, Yixiao and Liu, Wenyu and Wang, Xinggang and Shan, Ying},
journal={arXiv preprint arXiv:2401.17270},
year={2024}
}

Để đọc thêm, bản gốc YOLO-Giấy thế giới có sẵn trên arXiv. Mã nguồn của dự án và các tài nguyên bổ sung có thể được truy cập thông qua kho lưu trữ GitHub của họ. Chúng tôi đánh giá cao cam kết của họ trong việc thúc đẩy lĩnh vực này và chia sẻ những hiểu biết có giá trị của họ với cộng đồng.



Created 2024-02-14, Updated 2024-06-10
Authors: glenn-jocher (6), RizwanMunawar (3), Burhan-Q (1), Laughing-q (4)

Ý kiến