Visual Prompting
Khám phá visual prompting để hướng dẫn các mô hình AI bằng điểm và hộp. Tìm hiểu cách Ultralytics YOLO và SAM cho phép phân đoạn chính xác và chú thích dữ liệu nhanh hơn.
Visual prompting là một kỹ thuật mới nổi trong thị giác máy tính, nơi người dùng cung cấp các tín hiệu không gian hoặc thị giác—chẳng hạn như điểm, bounding box hoặc nét vẽ—để hướng sự tập trung của model AI vào các đối tượng hoặc vùng cụ thể trong một hình ảnh. Không giống như prompt engineering truyền thống vốn chủ yếu dựa vào mô tả văn bản, visual prompting cho phép tương tác chính xác và trực quan hơn với các hệ thống Artificial Intelligence (AI). Phương pháp này tận dụng khả năng của các foundation models hiện đại để thực hiện các tác vụ như phân đoạn (segmentation) và phát hiện (detection) mà không cần retraining chuyên sâu hoặc bộ dữ liệu gán nhãn lớn. Bằng cách "chỉ" hiệu quả vào những gì quan trọng, người dùng có thể điều chỉnh các model đa mục đích cho các tác vụ mới ngay lập tức, thu hẹp khoảng cách giữa ý định của con người và khả năng cảm nhận của máy móc.
Link to this sectionCác cơ chế của Visual Prompting#
Về bản chất, visual prompting hoạt động bằng cách đưa thông tin không gian trực tiếp vào pipeline xử lý của model. Khi người dùng nhấp vào một đối tượng hoặc vẽ một khung hình, các đầu vào này sẽ được chuyển đổi thành các embedding dựa trên tọa độ mà mạng thần kinh tích hợp với các đặc trưng hình ảnh. Quá trình này là trung tâm của các kiến trúc tương tác như Segment Anything Model (SAM), nơi model dự đoán các mask dựa trên các prompt hình học.
Sự linh hoạt của visual prompting cho phép nhiều loại hình tương tác:
- Point Prompts: Người dùng nhấp vào một pixel cụ thể để chỉ định đối tượng quan tâm. Sau đó, model sẽ mở rộng vùng chọn này đến toàn bộ biên của đối tượng.
- Box Prompts: Việc vẽ một bounding box cung cấp khả năng định vị thô, ra hiệu cho model thực hiện phân đoạn hoặc phân loại mọi thứ nằm trong khu vực đó.
- Scribble Prompts: Các nét vẽ tự do trên một đối tượng có thể giúp làm rõ các cảnh phức tạp nơi các đối tượng chồng lấp hoặc có kết cấu tương tự nhau.
Nghiên cứu gần đây được trình bày tại CVPR 2024 nêu bật cách visual prompting giảm đáng kể thời gian cần thiết cho data annotation, vì người gán nhãn có thể sửa dự đoán của model theo thời gian thực bằng các cú nhấp chuột đơn giản thay vì phải vẽ polygon thủ công.
Link to this sectionVisual Prompting so với Text Prompting#
Mặc dù cả hai kỹ thuật đều nhằm mục đích hướng dẫn hành vi của model, nhưng điều quan trọng là phải phân biệt visual prompting với các phương pháp dựa trên văn bản. Việc tạo Text-to-image hoặc phát hiện zero-shot dựa vào natural language processing (NLP) để diễn giải các mô tả ngữ nghĩa (ví dụ: "tìm chiếc xe màu đỏ"). Tuy nhiên, ngôn ngữ có thể mơ hồ hoặc không đủ để mô tả chính xác các vị trí không gian hoặc hình dạng trừu tượng.
Visual prompting giải quyết sự mơ hồ này bằng cách đặt hướng dẫn vào chính không gian pixel. Ví dụ, trong medical image analysis, bác sĩ chẩn đoán hình ảnh nhấp vào một nốt sần đáng ngờ sẽ chính xác hơn nhiều so với việc cố gắng mô tả tọa độ chính xác và hình dạng không đều của nó qua văn bản. Thông thường, các quy trình làm việc mạnh mẽ nhất kết hợp cả hai phương pháp—sử dụng văn bản để lọc ngữ nghĩa và visual prompt để đạt độ chính xác về không gian—một khái niệm được gọi là multi-modal learning.
Link to this sectionCác ứng dụng trong thực tế#
Khả năng thích ứng của visual prompting đã dẫn đến việc áp dụng nhanh chóng trong nhiều ngành công nghiệp đa dạng:
- Chẩn đoán y tế tương tác: Các bác sĩ sử dụng công cụ visual prompting để cô lập khối u hoặc cơ quan trong ảnh quét MRI. Bằng cách chỉ cần nhấp vào một vùng quan tâm, họ có thể tạo ngay các phép đo thể tích 3D, hỗ trợ tumor detection chính xác và lập kế hoạch phẫu thuật.
- Chỉnh sửa ảnh thông minh: Trong phần mềm người dùng như Adobe Photoshop hoặc các ứng dụng di động, visual prompting cung cấp năng lượng cho các công cụ "magic select". Người dùng có thể nhấn vào một người hoặc đối tượng để xóa nền hoặc áp dụng các bộ lọc mục tiêu, sử dụng các công nghệ instance segmentation cơ bản mà không cần kỹ năng tạo mask thủ công.
- Thao tác robot: Trong AI in Robotics, robot có thể được chỉ dẫn để nhặt các vật phẩm cụ thể thông qua giao diện trực quan. Người vận hành nhấp vào một đối tượng trong nguồn cấp dữ liệu camera của robot, cung cấp một visual prompt mà robot dịch thành tọa độ gắp, tạo điều kiện cho tự động hóa human-in-the-loop trong các kho hàng.
Link to this sectionTriển khai với Ultralytics#
Hệ sinh thái Ultralytics hỗ trợ các quy trình visual prompting, đặc biệt thông qua các model như FastSAM và SAM. Các model này cho phép các nhà phát triển chuyển tọa độ điểm hoặc khung hình theo chương trình để truy xuất các mask phân đoạn.
Ví dụ sau đây minh họa cách sử dụng gói ultralytics để áp dụng một point prompt cho hình ảnh, hướng dẫn model phân đoạn đối tượng nằm tại các tọa độ cụ thể.
from ultralytics import SAM
# Load the Segment Anything Model (SAM)
model = SAM("sam2.1_b.pt")
# Apply a visual point prompt to the image
# The 'points' argument accepts [x, y] coordinates
# labels: 1 indicates a foreground point (include), 0 indicates background
results = model("https://ultralytics.com/images/bus.jpg", points=[[300, 350]], labels=[1])
# Display the segmented result
results[0].show()Link to this sectionThúc đẩy sự linh hoạt của Model#
Visual prompting đại diện cho một sự chuyển dịch hướng tới thị giác máy tính "có thể prompt" (promptable), nơi các model không còn là những "hộp đen" tĩnh mà là các công cụ tương tác. Khả năng này rất cần thiết cho các vòng lặp active learning, nơi các model cải thiện nhanh chóng bằng cách kết hợp phản hồi từ người dùng.
Đối với các nhà phát triển muốn tích hợp các khả năng này vào sản xuất, Ultralytics Platform cung cấp các công cụ để quản lý bộ dữ liệu và triển khai các model có thể xử lý các đầu vào động. Khi nghiên cứu tiến triển, chúng tôi hy vọng sẽ thấy sự tích hợp chặt chẽ hơn nữa giữa visual prompt và large language models (LLMs), cho phép các hệ thống có thể suy luận về các đầu vào thị giác với cùng sự trôi chảy mà chúng hiện đang xử lý văn bản.






