Thực hành với YOLO-World
Tìm hiểu về YOLO-World, một mô hình phát hiện đối tượng sáng tạo có khả năng xác định các đối tượng thông qua gợi ý văn bản. Khám phá cách thức hoạt động, ứng dụng của YOLO-World và thực hành với một ví dụ mã nguồn nhanh.

Các dự án thị giác máy tính thường tiêu tốn nhiều thời gian cho việc gán nhãn dữ liệu và huấn luyện các model object detection. Tuy nhiên, điều đó có thể sớm trở thành dĩ vãng. AI Lab của Tencent đã phát hành YOLO-World, một model phát hiện đối tượng mở, thời gian thực vào ngày 31 tháng 1 năm 2024. YOLO-World là một 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 phải huấn luyện nó.
Các model zero-shot có tiềm năng thay đổi cách chúng ta tiếp cận các ứng dụng thị giác máy tính. Trong blog này, chúng ta sẽ khám phá cách hoạt động và các ứng dụng tiềm năng của YOLO-World, đồng thời chia sẻ một ví dụ code thực tế để giúp bạn bắt đầu.
Tìm hiểu về YOLO-World#
Bạn có thể truyền một hình ảnh và một text prompt mô tả những đối tượng bạn đang tìm kiếm thông qua model YOLO-World. Ví dụ, nếu bạn muốn tìm "một người mặc áo sơ mi đỏ" trong ảnh, YOLO-World sẽ nhận input này và bắt đầu xử lý.
Kiến trúc độc đáo của model kết hợp ba yếu tố chính:
- Một bộ phát hiện 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 text encoder được huấn luyện trước bởi CLIP của OpenAI, được thiết kế đặc biệt để hiểu text prompt của bạn.
- Một mạng lưới, Vision-Language Path Aggregation Network (RepVL-PAN), giúp tích hợp dữ liệu hình ảnh đã xử lý với dữ liệu văn bản.
YOLO detector quét hình ảnh đầu vào của bạn để xác định các đối tượng tiềm năng. Text encoder chuyển đổi mô tả của bạn thành định dạng mà model có thể hiểu được. Hai luồng thông tin này sau đó được hợp nhất thông qua RepVL-PAN bằng cách sử dụng kết hợp đa phương thức đa tầng (multi-level cross-modality fusion). Điều này cho phép YOLO-World 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 ngay trong hình ảnh.

Một ví dụ về kết quả từ YOLO-World.
Lợi ích khi lựa chọn YOLO-World#
Một trong những ưu điểm lớn nhất khi sử dụng YOLO-World là bạn không cần phải huấn luyện model cho một class cụ thể. Nó đã được học từ các cặp hình ảnh và văn bản, vì vậy nó biết cách tìm đối tượng dựa trên các mô tả. Bạn có thể tránh được 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 suất thời gian thực - YOLO-World hỗ trợ hiệu suất thời gian thực giống như kiến trúc YOLO ban đầu. Nó lý tưởng cho các ứng dụng yêu cầu phát hiện đối tượng tức thời như xe tự hành và hệ thống giám sát.
- Instance Segmentation - YOLO-World có thể khoanh vùng và tách biệt các đối tượng trong ảnh một cách gọn gàng, ngay cả khi các đối tượng đó không được dạy cụ thể trong quá trình huấn luyện.
- Hiệu quả - YOLO-World kết hợp độ chính xác cao với hiệu quả tính toán, giúp nó trở nên thiết thực cho các ứng dụng trong thế giới thực. Kiến trúc được tinh giản giúp việc phát hiện đối tượng nhanh chóng mà không đòi hỏi quá mức về sức mạnh xử lý.
Các ứng dụng của YOLO-World#
Các model YOLO-World có thể được sử dụng cho nhiều ứng dụng đa dạng. Hãy cùng khám phá một số ứng dụng đó.
Kiểm soát chất lượng trong sản xuất#
Các sản phẩm được manufactured trên dây chuyền lắp ráp được kiểm tra trực quan các 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, mất thời gian và có thể dẫn đến sai sót. Những sai sót này có thể gây ra các vấn đề như chi phí cao và nhu cầu sửa chữa hoặc thu hồi. Để hỗ trợ việc này, các camera thị vision chuyên dụng và các hệ thống AI đã được tạo ra để thực hiện các kiểm tra này.
Các model YOLO-World là một bước tiến lớn trong lĩnh vực này. Chúng có thể tìm thấy lỗi trên sản phẩm ngay cả khi chưa được huấn luyện cho vấn đề cụ thể đó nhờ vào khả năng zero-shot. Ví dụ, một nhà máy sản xuất chai nước có thể dễ dàng phân biệt giữa một chai được đóng kín đúng cách với một chai bị thiếu nắp hoặc lỗi bằng cách sử dụng YOLO-World.

Một ví dụ về kiểm tra nắp chai.
Robot học#
Các model YOLO-World cho phép robot tương tác với các môi trường lạ. Không cần huấn luyện trên các đối tượng cụ thể có thể xuất hiện trong phòng, chúng vẫn có thể xác định được các đối tượng nào đang hiện diện. Ví dụ, nếu một robot đi vào một căn phòng mà nó chưa từng ở đó trước đây, với model YOLO-World, nó vẫn có thể nhận diện và xác định các đối tượng như ghế, bàn hoặc đèn, mặc dù nó không được huấn luyện cụ thể trên các vật dụng đó.
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'. Ví dụ, trong lĩnh vực robot agricultural, nó có thể được sử dụng để phân biệt trái cây chín và trái cây chưa chín bằng cách lập trình robot để phát hiện chúng.
AI trong ngành công nghiệp ô tô#
Ngành công nghiệp ô tô liên quan đến nhiều bộ phận chuyển động, và YOLO-World có thể được sử dụng cho các ứng dụng xe hơi khác nhau. Ví dụ, khi nói đến bảo trì xe, khả năng nhận diện nhiều loại đối tượng mà không cần gán nhãn thủ công hoặc tiền huấn luyện chuyên sâu của YOLO-World cực kỳ hữu ích. YOLO-World có thể được sử dụng để xác định các bộ phận xe cần thay thế. Nó 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 các chi tiết bị 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 self-driving cars. Khả năng phát hiện zero-shot của YOLO-World có thể nâng cao khả năng của xe tự hành trong việc phát hiện và phân loại các đối tượng trên đường, 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 trong thời gian thực. Bằng cách đó, nó có thể giúp phát hiện chướng ngại vật và ngăn ngừa tai nạn cho một hành trình an toàn hơn.

Một ví dụ về việc phát hiện đối tượng trên đường.
Quản lý hàng tồn kho cho các cửa hàng bán lẻ#
Xác định các đối tượng trên kệ hàng trong cửa hàng bán lẻ là một phần quan trọng của việc theo dõi hàng tồn kho, duy trì kho hàng và tự động hóa các quy trình. Khả năng nhận diện nhiều loại đối tượng mà không cần gán nhãn thủ công hoặc tiền huấn luyện chuyên sâu của Ultralytics YOLO-World cực kỳ hữu ích cho việc quản lý hàng tồn kho.
Ví dụ, trong inventory management, 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ì kho hàng chính xác, quản lý mức tồn kho hiệu quả và suôn sẻ các hoạt động chuỗi cung ứng.
Tất cả các ứng dụng đều độc đáo và cho thấy YOLO-World có thể được sử dụng rộng rãi như thế nào. Tiếp theo, hãy cùng bắt tay thực hiện với YOLO-World và xem qua một ví dụ code.
Hướng dẫn sử dụng code#
Như đã đề cập trước đó, YOLO-World có thể được sử dụng để phát hiện các bộ phận khác nhau của một chiếc xe để bảo trì. Một ứng dụng thị giác máy tính phát hiện các sửa chữa cần thiết sẽ bao gồm việc chụp ảnh chiếc xe, xác định các bộ phận xe, kiểm tra từng bộ phận để tìm hư hỏng và đưa ra các đề 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. Đối với phần hướng dẫn code này, chúng ta hãy tập trung vào phần khi các bộ phận xe được phát hiện.
Với YOLO-World, bạn có thể xác định các bộ phận ô tô khác nhau trong một hình ảnh trong vòng chưa đầy 5 phút. Bạn cũng có thể mở rộng mã này để thử nghiệm các ứng dụng khác nhau bằng cách sử dụng YOLO-World! Để bắt đầu, chúng ta cần cài đặt qua pip Ultralytics package như minh họa bên dưới.
Để biết thêm hướng dẫn và các phương pháp hay nhất liên quan đến quá trình cài đặt, hãy xem hướng dẫn Ultralytics Installation của chúng tôi. Trong quá trình cài đặt các gói bắt buộc cho YOLOv8, nếu bạn gặp bất kỳ khó khăn nào, hãy xem Common Issues guide của chúng tôi để 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 xuống một hình ảnh từ Internet để chạy các suy luận (inference). Chúng ta sẽ sử dụng hình ảnh bên dưới.

Hình ảnh input của chúng ta.
Sau đó, chúng ta sẽ import gói cần thiết, khởi tạo model và đặt các class mà chúng ta đang tìm kiếm trong hình ảnh input. Ở đây, chúng ta quan tâm đến các class sau: car (ô tô), wheel (bánh xe), car door (cửa xe), car mirror (gương xe) và license plate (biển số xe).
Chúng ta sau đó sẽ sử dụng phương thức predict, cung cấp đường dẫn đến hình ảnh cùng với các tham số cho số lượng phát hiện tối đa, và các ngưỡng cho IoU và độ tự tin (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 một tệp có tên 'result.jpg'.
Hình ảnh output sau đây sẽ được lưu vào các tệp của bạn.

Hình ảnh output của chúng ta.
Nếu bạn muốn xem những gì YOLO-World có thể làm mà không cần viết code, bạn có thể truy cập trang YOLO-World Demo, tải lên một hình ảnh input và nhập các custom class.
Đọc trang docs page on YOLO-World của chúng tôi để tìm hiểu cách lưu model với các lớp tùy chỉnh để có thể sử dụng trực tiếp sau này mà không cần nhập lại các lớp tùy chỉnh nhiều lần.
Bạn có nhận thấy rằng các cửa xe không được phát hiện không?#
Nếu bạn xem lại hình ảnh output, bạn sẽ nhận thấy rằng custom class “car door” đã không được phát hiện. Mặc dù có những thành tựu tuyệt vời, YOLO-World vẫn có những hạn chế nhất định. Để vượt qua những hạn chế này và sử dụng model YOLO-World một cách hiệu quả, điều quan trọng là phải sử dụng các loại textual prompt chính xác.
Dưới đây là một số thông tin chi tiết về điều đó:
- YOLO-World có thể không cần mức độ tự tin (confidence levels) cao để có các dự đoán chính xác, vì vậy việc giảm ngưỡng confidence 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 đó sẽ giúp cải thiện object detection chính bằng cách giảm tỷ lệ dương tính giả đối với các đối tượng phụ.
- Việc phát hiện các đối tượng lớn hơn trước khi tập trung vào các chi tiết nhỏ hơn có thể cải thiện độ chính xác khi phát hiện.
- Đề cập đến màu sắc trong các class của bạn để phát hiện đối tượng dựa trên các gợi ý về màu sắc.
- Mô tả kích thước đối tượng trong các 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ý (post-processing), chẳng hạn như lọc các dự đoán theo kích thước hoặc điều chỉnh mức độ confidence cho mỗi class, có thể cải thiện hơn nữa các kết quả object detection.
Giới hạn là vô tận#
Nhìn chung, các model YOLO-World có thể trở thành một công cụ mạnh mẽ với khả năng phát hiện đối tượng nâng cao. Nó mang lại hiệu quả, độ chính xác cao và giúp tự động hóa các tác vụ khác nhau trên nhiều ứng dụng, giống như ví dụ về identifying car parts mà chúng ta đã thảo luận thực tế.
Hãy thoải mái khám phá GitHub repository của chúng tôi để tìm hiểu thêm về các đó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ệ healthcare, hãy xem các trang giải pháp của chúng tôi. Các khả năng với các đổi mới như YOLO-World dường như là vô tận!






