Thực hành với YOLO-World
Tìm hiểu về YOLO-World, model phát hiện đối tượng với bộ từ vựng mở theo thời gian thực có thể tìm đối tượng từ prompt văn bản, cùng các ứng dụng và ví dụ code nhanh.
Abirami Vina11 phút đọc
Các dự án thị giác máy tính thường đòi hỏi nhiều thời gian để gán nhãn dữ liệu và huấn luyện model phát hiện đối tượng. Nhưng điều đó có thể sớm thay đổi. Phòng thí nghiệm AI của Tencent phát hành YOLO-World, một model phát hiện đối tượng từ vựng mở theo thời gian thực, vào ngày 31 tháng 1 năm 2024. YOLO-World là model zero-shot, nghĩa là bạn có thể chạy suy luận phát hiện đối tượng trên hình ảnh mà không cần huấn luyện model.
Các model zero-shot có tiềm năng thay đổi cách chúng ta tiếp cận ứng dụng thị giác máy tính. Trong bài viết này, chúng ta sẽ tìm hiểu cách YOLO-World hoạt động và các ứng dụng tiềm năng, đồng thời chia sẻ ví dụ mã thực tế để bạn bắt đầu.
Tìm hiểu sơ lược về YOLO-World#
Bạn có thể đưa hình ảnh và prompt văn bản mô tả các đối tượng cần tìm vào model YOLO-World. Ví dụ: nếu muốn tìm "một người mặc áo đỏ" trong ảnh, YOLO-World sẽ tiếp nhận đầu vào này và bắt đầu xử lý.
Kiến trúc độc đáo của model kết hợp ba thành phần chính:
- Một detector dựa trên model phát hiện đối tượng Ultralytics YOLOv8, dùng để phân tích nội dung trực quan của hình ảnh.
- Một bộ mã hóa văn bản được OpenAI huấn luyện trước bằng CLIP, được thiết kế riêng để hiểu prompt văn bản của bạn.
- Một mạng có tên Re-parameterizable Vision-Language Path Aggregation Network (RepVL-PAN), tích hợp dữ liệu hình ảnh đã xử lý với dữ liệu văn bản.
Detector YOLO quét hình ảnh đầu vào để xác định các đối tượng tiềm năng. Bộ mã hóa văn bản chuyển mô tả của bạn thành định dạng mà model có thể hiểu. Sau đó, hai luồng thông tin này được hợp nhất qua RepVL-PAN bằng phương pháp hợp nhất đa cấp giữa các phương thức. Nhờ vậy, YOLO-World có thể phát hiện và định vị chính xác các đối tượng được mô tả trong prompt của bạn ở bên trong hình ảnh.

Ví dụ về kết quả từ YOLO-World.
Lợi ích khi chọn YOLO-World#
Một trong những ưu điểm lớn nhất của YOLO-World là bạn không cần huấn luyện model cho một lớp cụ thể. Model đã học từ các cặp hình ảnh và văn bản nên có thể tìm đối tượng dựa trên mô tả. Bạn có thể tránh hàng giờ thu thập dữ liệu, gán nhãn dữ liệu, huấn luyện trên GPU đắt tiền, v.v.
Dưới đây là một số lợi ích khác khi sử dụng YOLO-World:
- Hiệu năng thời gian thực - YOLO-World hỗ trợ hiệu năng thời gian thực như kiến trúc YOLO ban đầu. Model phù hợp với các ứng dụng cần phát hiện đối tượng ngay lập tức, chẳng hạn như xe tự hành và hệ thống giám sát.
- Phân đoạn đối tượng riêng lẻ - Bản phát hành YOLO-World ban đầu bao gồm các biến thể phân đoạn; trong gói Ultralytics, YOLO-World thực hiện phát hiện đối tượng, còn YOLOE bổ sung tính năng phân đoạn đối tượng riêng lẻ từ vựng mở.
- Hiệu quả - YOLO-World kết hợp độ chính xác cao với hiệu quả tính toán, phù hợp để triển khai trong thực tế. Kiến trúc tinh gọn giúp phát hiện đối tượng nhanh chóng mà không đòi hỏi quá nhiều sức mạnh xử lý.
Các ứng dụng của YOLO-World#
Model YOLO-World có thể được sử dụng trong nhiều ứng dụng khác nhau. Hãy cùng tìm hiểu một số ứng dụng.
Kiểm soát chất lượng trong sản xuất#
Sản phẩm được sản xuất trên dây chuyền lắp ráp được kiểm tra trực quan để phát hiện lỗi trước khi đóng gói. Việc phát hiện lỗi thường được thực hiện thủ công, tốn thời gian và dễ dẫn đến sai sót. Những sai sót này có thể gây ra vấn đề như chi phí cao và nhu cầu sửa chữa hoặc thu hồi sản phẩm. Để giải quyết vấn đề này, người ta đã phát triển camera thị giác máy và hệ thống AI chuyên dụng để thực hiện các bước kiểm tra.
Các model YOLO-World là một bước tiến lớn trong lĩnh vực này. Nhờ khả năng zero-shot, chúng có thể tìm lỗi trong sản phẩm ngay cả khi chưa được huấn luyện cho vấn đề cụ thể đó. Chẳng hạn, một nhà máy sản xuất chai nước có thể dùng YOLO-World để phân biệt chai được đóng kín đúng cách với nắp chai và chai bị thiếu nắp hoặc nắp bị lỗi.

Ví dụ về kiểm tra nắp chai.
Robot#
Model YOLO-World cho phép robot tương tác với những môi trường xa lạ. Dù chưa được huấn luyện trên các đối tượng cụ thể có thể xuất hiện trong phòng, robot vẫn có thể xác định những đối tượng hiện diện. Chẳng hạn, một robot bước vào căn phòng chưa từng đến trước đây. Với model YOLO-World, robot vẫn có thể nhận diện và xác định các vật thể như ghế, bàn hoặc đèn, dù chưa được huấn luyện cụ thể trên những vật thể đó.
Ngoài phát hiện đối tượng, YOLO-World còn có thể xác định trạng thái của các đối tượng nhờ tính năng 'prompt-then-detect'. Chẳng hạn, trong robot nông nghiệp, có thể dùng tính năng này để phân biệt quả chín với quả chưa chín bằng cách lập trình robot phát hiện chúng.
AI trong ngành ô tô#
Ngành công nghiệp ô tô có nhiều bộ phận chuyển động và YOLO-World có thể được sử dụng cho nhiều ứng dụng liên quan đến xe. Chẳng hạn, trong bảo trì ô tô, khả năng nhận diện nhiều loại đối tượng của YOLO-World mà không cần gán nhãn thủ công hay huấn luyện trước quy mô lớn rất hữu ích. YOLO-World có thể được dùng để xác định các bộ phận xe cần thay thế. Model thậm chí có thể tự động hóa các tác vụ như kiểm tra chất lượng, phát hiện lỗi hoặc bộ phận còn thiếu trên xe mới.
Một ứng dụng khác là phát hiện đối tượng zero-shot trong xe tự lái. Khả năng phát hiện zero-shot của YOLO-World có thể cải thiện khả năng phát hiện và phân loại các đối tượng trên đường theo thời gian thực của xe tự hành, chẳng hạn như người đi bộ, biển báo giao thông và các phương tiện khác. Nhờ đó, model có thể phát hiện chướng ngại vật và ngăn ngừa tai nạn để hành trình an toàn hơn.

Ví dụ về phát hiện đối tượng trên đường.
Quản lý tồn kho cho cửa hàng bán lẻ#
Nhận diện đối tượng trên kệ hàng trong cửa hàng bán lẻ là khâu quan trọng để theo dõi hàng tồn kho, duy trì mức dự trữ và tự động hóa quy trình. Tính năng phát hiện từ vựng mở của Ultralytics YOLO-World cũng hữu ích cho việc quản lý hàng tồn kho.
Ví dụ, trong quản lý tồn kho, YOLO-World có thể nhanh chóng phát hiện và phân loại các mặt hàng trên kệ, chẳng hạn như các nhãn hiệu nước tăng lực khác nhau. Các cửa hàng bán lẻ có thể duy trì dữ liệu tồn kho chính xác, quản lý mức hàng hiệu quả và tối ưu hóa hoạt động chuỗi cung ứng.
Tất cả ứng dụng đều độc đáo và cho thấy YOLO-World có thể được sử dụng rộng rãi đến mức nào. Tiếp theo, hãy cùng thực hành với YOLO-World và xem qua một ví dụ mã.
Hướng dẫn từng bước qua mã#
Như đã đề cập, YOLO-World có thể được dùng để phát hiện các bộ phận khác nhau của ô tô phục vụ bảo dưỡng. Một ứng dụng thị giác máy tính phát hiện các hạng mục cần sửa chữa sẽ cần chụp ảnh xe, xác định các bộ phận, kiểm tra từng bộ phận để tìm hư hỏng và đề xuất sửa chữa. Mỗi phần của hệ thống này sẽ sử dụng các kỹ thuật và phương pháp AI khác nhau. Trong hướng dẫn từng bước qua mã này, chúng ta sẽ tập trung vào phần phát hiện các bộ phận ô tô.
Với YOLO-World, bạn có thể nhận diện các bộ phận ô tô khác nhau trong một hình ảnh trong chưa đầy 5 phút. Bạn cũng có thể mở rộng đoạn mã này để thử nghiệm các ứng dụng khác nhau bằng YOLO-World! Để bắt đầu, chúng ta cần cài đặt gói Ultralytics bằng pip như minh họa bên dưới.
pip install ultralyticsĐể biết thêm hướng dẫn và các phương pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các gói cần thiết cho YOLOv8, hãy tham khảo hướng dẫn Các vấn đề thường gặp để tìm giải pháp và mẹo.
Sau khi cài đặt gói cần thiết, chúng ta có thể tải hình ảnh từ Internet để chạy suy luận. Chúng ta sẽ sử dụng hình ảnh bên dưới.

Hình ảnh đầu vào của chúng ta.
Tiếp theo, chúng ta sẽ import gói cần thiết, khởi tạo model và thiết lập các lớp cần tìm trong hình ảnh đầu vào. Ở đây, chúng ta quan tâm đến các lớp sau: ô tô, bánh xe, cửa xe, gương chiếu hậu và biển số xe.
Sau đó, chúng ta sẽ dùng phương thức predict, truyền vào đường dẫn hình ảnh cùng các tham số quy định số lượng phát hiện tối đa và ngưỡng giao trên hợp (IoU) cùng độ tin cậy (conf) để chạy suy luận trên hình ảnh. Cuối cùng, các đối tượng được phát hiện sẽ được lưu vào tệp có tên result.jpg.
from ultralytics import YOLOWorld
# Khởi tạo model YOLO-World
model = YOLOWorld("yolov8s-worldv2.pt")
# Xác định các lớp tùy chỉnh cần phát hiện
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# Chạy suy luận với số lượng phát hiện tối đa cùng các ngưỡng IoU và độ tin cậy
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# Lưu kết quả đã gán nhãn
results[0].save("result.jpg")Hình ảnh đầu ra sau đây sẽ được lưu vào các tệp của bạn.

Hình ảnh đầu ra của chúng ta.
Nếu muốn xem YOLO-World có thể làm gì mà không cần viết code, bạn có thể truy cập trang demo YOLO-World, tải lên ảnh đầu vào và nhập các lớp tùy chỉnh.
Đọc trang tài liệu về YOLO-World để tìm hiểu cách lưu model cùng các lớp tùy chỉnh để có thể dùng trực tiếp về sau mà không cần nhập lại các lớp tùy chỉnh.
Bạn có nhận thấy cửa xe không được phát hiện không?#
Nếu xem lại hình ảnh đầu ra, bạn sẽ nhận thấy lớp tùy chỉnh “cửa xe” không được phát hiện. Dù đạt được nhiều thành tựu, YOLO-World vẫn có những hạn chế nhất định. Để khắc phục các hạn chế này và sử dụng model YOLO-World hiệu quả, điều quan trọng là phải dùng đúng loại prompt văn bản.
Dưới đây là một số thông tin hữu ích:
- YOLO-World có thể không cần ngưỡng độ tin cậy cao để đưa ra dự đoán chính xác, vì vậy giảm ngưỡng độ tin cậy có thể cải thiện tỷ lệ phát hiện.
- Thêm các lớp mà bạn không quan tâm. Điều này sẽ giúp cải thiện khả năng phát hiện đối tượng chính bằng cách giảm kết quả dương tính giả đối với các đối tượng phụ.
- Phát hiện các đối tượng lớn trước khi tập trung vào chi tiết nhỏ có thể cải thiện độ chính xác phát hiện.
- Đề cập màu sắc trong tên lớp để phát hiện đối tượng dựa trên dấu hiệu màu sắc.
- Mô tả kích thước đối tượng trong prompt cũng có thể giúp YOLO-World xác định các đối tượng cụ thể chính xác hơn.
- Các phương pháp hậu xử lý, chẳng hạn như lọc dự đoán theo kích thước hoặc điều chỉnh mức độ tin cậy theo từng lớp, có thể cải thiện thêm kết quả phát hiện đối tượng.
Khả năng là vô tận#
Nhìn chung, các model YOLO-World có thể trở thành công cụ mạnh mẽ nhờ khả năng phát hiện đối tượng tiên tiến. Model mang lại hiệu quả và độ chính xác cao, đồng thời giúp tự động hóa nhiều tác vụ trong các ứng dụng khác nhau, chẳng hạn như ví dụ xác định các bộ phận ô tô mà chúng ta đã thực hành.
Bạn có thể khám phá kho lưu trữ GitHub của chúng tôi để tìm hiểu thêm về những đóng góp của chúng tôi cho thị giác máy tính và AI. Nếu bạn tò mò về cách AI đang định hình lại các lĩnh vực như công nghệ chăm sóc sức khỏe, hãy xem các trang giải pháp của chúng tôi. YOLO-World mở ra nhiều khả năng mới cho AI thị giác.
Đượ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.










