Instance Segmentation
Tìm hiểu cách phân đoạn thực thể (instance segmentation) cho phép phát hiện đối tượng ở cấp độ pixel. Khám phá cách sử dụng Ultralytics YOLO26 để tạo mặt nạ thời gian thực, tốc độ cao và hơn thế nữa.
Instance segmentation là một kỹ thuật tinh vi trong computer vision (CV) nhằm nhận diện và phác thảo từng đối tượng quan tâm riêng biệt trong một hình ảnh ở mức độ pixel. Trong khi object detection tiêu chuẩn định vị các mục bằng các bounding boxes hình chữ nhật, instance segmentation đưa quá trình phân tích đi sâu hơn bằng cách tạo ra một mặt nạ chính xác cho mọi thực thể được phát hiện. Khả năng này cho phép các mô hình artificial intelligence (AI) phân biệt giữa các đối tượng cá thể thuộc cùng một lớp — chẳng hạn như tách biệt hai người đang chồng chéo lên nhau — từ đó cung cấp sự hiểu biết phong phú và chi tiết hơn về cảnh trực quan so với các phương pháp phân loại đơn giản hơn.
Phân biệt các loại Segmentation#
Để nắm bắt đầy đủ lợi ích của instance segmentation, việc phân biệt nó với các tác vụ xử lý hình ảnh liên quan khác là rất hữu ích. Mỗi phương pháp cung cấp một cấp độ chi tiết khác nhau tùy thuộc vào yêu cầu của ứng dụng.
- Semantic Segmentation: Phương pháp này phân loại mọi pixel trong một hình ảnh thành một danh mục (ví dụ: "road", "sky", "car"). Tuy nhiên, nó không phân biệt giữa các đối tượng riêng biệt thuộc cùng một danh mục. Nếu có ba chiếc xe ô tô đỗ cạnh nhau, semantic segmentation xem chúng như một vùng "car" duy nhất.
- Instance Segmentation: Phương pháp này coi mỗi đối tượng là một thực thể độc lập. Nó phát hiện các cá thể riêng lẻ và gán một nhãn duy nhất cho các pixel của từng thực thể. Trong ví dụ về xe ô tô đỗ, instance segmentation sẽ tạo ra ba mặt nạ riêng biệt, xác định "Car A", "Car B" và "Car C" một cách tách biệt.
- Panoptic Segmentation: Một phương pháp lai kết hợp việc gán nhãn nền của semantic segmentation với tính năng nhận diện đối tượng đếm được của instance segmentation.
Cơ chế phân tích cấp độ Pixel#
Các mô hình instance segmentation hiện đại thường dựa trên các kiến trúc deep learning (DL) tiên tiến, đặc biệt là Convolutional Neural Networks (CNNs). Các mạng này trích xuất các đặc trưng từ một hình ảnh để dự đoán cả lớp của đối tượng và đường viền không gian của nó. Trong lịch sử, các kiến trúc hai giai đoạn như Mask R-CNN là tiêu chuẩn, đầu tiên đề xuất các vùng quan tâm và sau đó tinh chỉnh chúng thành các mặt nạ.
Tuy nhiên, những tiến bộ gần đây đã dẫn đến các bộ dò một giai đoạn như YOLO26, thực hiện phát hiện và phân đoạn đồng thời. Cách tiếp cận "end-to-end" này cải thiện đáng kể tốc độ real-time inference, giúp việc áp dụng phân segmentation độ chính xác cao vào các luồng video trực tiếp trên phần cứng tiêu dùng trở nên khả thi.
Các ứng dụng trong thực tế#
Các đường biên chính xác mà instance segmentation cung cấp rất quan trọng đối với các ngành công nghiệp mà việc hiểu rõ hình dạng và vị trí chính xác của đối tượng là cần thiết để đưa ra quyết định.
- AI in Healthcare: Trong chẩn đoán y tế, việc xác định chính xác kích thước và hình dạng của khối u hoặc tổn thương là rất quan trọng. Instance segmentation cho phép các mô hình phác thảo các điểm bất thường trong MRI scans với độ chính xác cao, hỗ trợ các bác sĩ X-quang trong việc lên kế hoạch điều trị và theo dõi sự tiến triển của bệnh.
- Autonomous Vehicles: Xe tự hành dựa vào segmentation để điều hướng qua các môi trường phức tạp. Bằng cách sử dụng các tập dữ liệu như Cityscapes, xe có thể xác định các bề mặt có thể lái, nhận diện vạch kẻ đường và tách biệt từng người đi bộ ở các vạch qua đường đông đúc để đảm bảo an toàn.
- AI in Agriculture: Nông nghiệp chính xác sử dụng segmentation để giám sát sức khỏe cây trồng. Robot được trang bị hệ thống thị giác có thể nhận diện từng loại quả để thu hoạch tự động hoặc phát hiện các loại cỏ dại cụ thể để phun thuốc diệt cỏ có mục tiêu, qua đó giảm lượng hóa chất sử dụng và tối ưu hóa năng suất.
Triển khai Segmentation với Python#
Các lập trình viên có thể dễ dàng triển khai instance segmentation bằng cách sử dụng thư viện ultralytics. Ví dụ sau đây minh họa cách tải một mô hình YOLO26 được huấn luyện trước và tạo ra các mặt nạ segmentation cho một hình ảnh.
from ultralytics import YOLO
# Load a pre-trained YOLO26 instance segmentation model
# The 'n' suffix denotes the nano version, optimized for speed
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
# This predicts classes, bounding boxes, and masks
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# Displays the image with overlaid segmentation masks
results[0].show()Thách thức và Huấn luyện mô hình#
Mặc dù rất mạnh mẽ, instance segmentation đòi hỏi nhiều tài nguyên tính toán hơn so với việc phát hiện bounding box đơn giản. Việc tạo ra các mặt nạ chuẩn xác đến từng pixel đòi hỏi GPU resources đáng kể và data annotation chính xác. Việc gán nhãn dữ liệu cho các tác vụ này liên quan đến việc vẽ các đa giác khít quanh mọi đối tượng, điều này có thể tốn nhiều thời gian.
Để đơn giản hóa quy trình này, các nhóm thường sử dụng các công cụ như Ultralytics Platform, cung cấp các tính năng quản lý tập dữ liệu, tự động gán nhãn và huấn luyện trên nền tảng đám mây. Điều này cho phép các lập trình viên tinh chỉnh các mô hình trên dữ liệu tùy chỉnh — chẳng hạn như các bộ phận công nghiệp cụ thể hoặc mẫu sinh học — và triển khai chúng một cách hiệu quả lên các thiết bị edge AI sử dụng các định dạng được tối ưu hóa như ONNX hoặc TensorRT.






