Interactive Segmentation
Phân đoạn tương tác chuyển các thao tác nhấp, hộp hoặc nét vẽ của người dùng thành mask vật thể, rồi tinh chỉnh mask bằng các thao tác nhấp sửa. Các phương pháp từ GrabCut đến SAM của Meta.
Phân đoạn tương tác tạo mask chính xác đến từng pixel cho một đối tượng từ một vài gợi ý của con người, chẳng hạn cú nhấp, hộp giới hạn hoặc nét vẽ nguệch ngoạc; mask được tinh chỉnh khi người dùng bổ sung các điều chỉnh. Cú nhấp dương đánh dấu một điểm thuộc về đối tượng, còn cú nhấp âm đánh dấu điểm không thuộc về đối tượng, vì vậy sau mỗi lượt người dùng chỉ cần chỉ ra lỗi lớn nhất còn lại. Phương pháp này không phụ thuộc lớp: model phân đoạn bất cứ thứ gì người dùng chỉ định, kể cả đối tượng chưa từng thấy trong quá trình huấn luyện, nhờ đó trở thành công cụ tiêu chuẩn cho chú giải dữ liệu, chỉnh sửa ảnh và phân định cấu trúc trong ảnh quét y tế. Đây là hình thức human-in-the-loop của phân đoạn ảnh.
Cách thức vòng lặp nhấp hoạt động#
Model nhận ảnh cùng tất cả các cú nhấp đã thực hiện; nhiều model còn nhận cả mask trước đó, rồi dự đoán mask mới. Vòng lặp tiếp tục cho đến khi mask đạt chất lượng mong muốn:
Các benchmark mô phỏng người dùng này: mỗi lần nhấp mới sẽ đặt vào tâm vùng lỗi lớn nhất, và điểm số là số lần nhấp cần thiết để đạt intersection over union 85% hoặc 90% so với ground truth, được báo cáo là NoC@85 và NoC@90 trên các dataset như GrabCut, Berkeley và DAVIS.
Gói Ultralytics chạy các model SAM của Meta với point prompt, trong đó nhãn 1 đánh dấu một lần nhấp dương tính và 0 đánh dấu một lần nhấp âm tính:
from ultralytics import SAM
# Meta's SAM 2.1 base model, run through the Ultralytics package
model = SAM("sam2.1_b.pt")
image = "https://ultralytics.com/images/bus.jpg"
# Round 1: a single positive click on the pedestrian's dark coat
results = model(image, points=[[[250, 620]]], labels=[[1]])
print(f"1 click: {int(results[0].masks.data.sum())} mask pixels")
# Round 2: add a positive click on the pedestrian's jeans and a negative click on the bus
results = model(image, points=[[[250, 620], [290, 760], [420, 560]]], labels=[[1, 1, 0]])
print(f"3 clicks: {int(results[0].masks.data.sum())} mask pixels")
results[0].save(filename="interactive_mask.jpg")Sau một lần nhấp, kết quả là 32.598 pixel mask; sau ba lần nhấp, con số là 33.120. Như vậy, chỉ một lần nhấp vào áo khoác đã chọn gần như toàn bộ người đi bộ, còn các lần nhấp bổ sung tinh chỉnh mask khoảng 500 pixel. Ultralytics Platform chạy cùng vòng lặp trong trình chỉnh sửa annotation: ở chế độ Smart, nhấp bên ngoài mask SAM hiện tại sẽ thêm vùng đó, còn nhấp bên trong sẽ loại bỏ vùng đó; mask hoàn chỉnh được lưu thành polygon, bounding box hoặc box có hướng phù hợp với tác vụ của bộ dữ liệu.
Từ Graph Cuts đến Model có thể Prompt#
Các công cụ đời đầu tối ưu hóa trực tiếp đường biên. Intelligent Scissors (1995) khớp đường viền được vẽ theo các cạnh rõ nét, còn GrabCut, do Microsoft Research công bố năm 2004 và được đưa vào OpenCV, phân đoạn đối tượng bên trong khung do người dùng vẽ bằng cách lặp lại việc khớp các model màu cho tiền cảnh và hậu cảnh rồi giải bài toán graph cut. Từ năm 2016, các phương pháp deep learning mã hóa các lần nhấp thành những kênh đầu vào bổ sung bên cạnh ảnh và học mask bằng mạng nơ-ron tích chập; các model ra đời sau cũng nhận mask trước đó làm đầu vào để tinh chỉnh.
Segment Anything Model (SAM) của Meta, ra mắt năm 2023, phân chia công việc để tương tác gần như tức thì: một vision transformer lớn mã hóa ảnh một lần, còn prompt encoder và mask decoder gọn nhẹ chuyển mỗi tập hợp lần nhấp mới thành mask trong khoảng 50 mili giây. SAM cũng được huấn luyện bằng vòng lặp tương tác riêng: trong quá trình xây dựng dataset SA-1B, người gán nhãn nhấp để phân đoạn đối tượng bằng các phiên bản model kế tiếp, và thời gian trung bình cho mỗi mask giảm từ 34 xuống còn 14 giây. SAM 2 mở rộng thao tác nhấp sang video, truyền mask qua các khung hình, còn SAM 3 bổ sung phân đoạn khái niệm có thể prompt, tìm mọi instance khớp với một cụm từ ngắn.
Phân đoạn tương tác và phân đoạn tự động#
Các model phân đoạn instance tự động phân đoạn một tập lớp cố định đã được huấn luyện mà không cần con người can thiệp, phù hợp với pipeline production cần xử lý mọi khung hình. Phân đoạn tương tác đánh đổi khả năng tự động hóa để lấy tính linh hoạt; đây cũng là cách thường dùng để tạo mask huấn luyện cho các model như vậy, thường bên trong vòng lặp active learning gửi những ảnh mà model ít chắc chắn nhất cho người gán nhãn. Prompting bằng hình ảnh là ý tưởng rộng hơn về việc điều khiển model thị giác bằng điểm, khung hoặc ảnh ví dụ; phân đoạn tương tác là hình thức lặp lại, tạo ra mask của ý tưởng này.
Ứng dụng thực tế#
- Gán nhãn dataset: Người gán nhãn phác đường viền đối tượng bằng vài lần nhấp thay vì lần theo hàng trăm đỉnh polygon; người gán nhãn có hỗ trợ SAM cần 14 giây cho mỗi mask, nhanh hơn 6.5 lần so với gán nhãn mask thủ công trên COCO.
- Chẩn đoán hình ảnh y khoa: Bác sĩ chẩn đoán hình ảnh khoanh vùng khối u và cơ quan trên ảnh CT và MRI bằng khung cùng các lần nhấp hiệu chỉnh; MedSAM điều chỉnh SAM cho lĩnh vực y tế bằng cách fine-tune trên 1,570,263 cặp ảnh-mask y khoa thuộc 10 phương thức chẩn đoán hình ảnh.










