Semantic Segmentation
Khám phá semantic segmentation để hiểu hình ảnh ở cấp độ pixel. Tìm hiểu cách train và deploy các model segmentation chính xác bằng Ultralytics YOLO26 ngay hôm nay.
Phân đoạn ngữ nghĩa là một tác vụ thị giác máy tính, trong đó hình ảnh được chia thành các vùng riêng biệt bằng cách gán một nhãn lớp cụ thể cho từng pixel. Khác với các tác vụ đơn giản hơn như phân loại hình ảnh, vốn gán một nhãn duy nhất cho toàn bộ hình ảnh, hoặc phát hiện đối tượng, vốn vẽ các bounding box quanh đối tượng, phân đoạn ngữ nghĩa cung cấp khả năng hiểu cảnh ở cấp độ pixel. Phân tích chi tiết này rất quan trọng đối với các ứng dụng mà hình dạng và ranh giới chính xác của đối tượng cũng quan trọng không kém danh tính của đối tượng. Nhờ đó, máy móc có thể "nhìn" thế giới giống con người hơn, phân biệt chính xác các pixel tạo nên một con đường, một người đi bộ hoặc một khối u trong ảnh chụp y tế.
Cách hoạt động của phân đoạn ngữ nghĩa#
Về cốt lõi, phân đoạn ngữ nghĩa coi hình ảnh như một lưới pixel cần được phân loại. Các model deep learning, đặc biệt là Mạng nơ-ron tích chập (CNNs), là kiến trúc tiêu chuẩn cho tác vụ này. Một kiến trúc điển hình, chẳng hạn U-Net được sử dụng rộng rãi, áp dụng cấu trúc encoder-decoder. Encoder nén hình ảnh đầu vào để trích xuất các đặc trưng cấp cao (như kết cấu và hình dạng), trong khi decoder upsample các đặc trưng này về độ phân giải ban đầu của hình ảnh để tạo ra mặt nạ phân đoạn chính xác.
Để thực hiện việc này, các model được huấn luyện trên những dataset đã gắn nhãn quy mô lớn, trong đó người gắn nhãn cẩn thận tô màu cho từng pixel theo lớp tương ứng. Các công cụ như Ultralytics Platform hỗ trợ quy trình này bằng cách cung cấp các tính năng auto-annotation, giúp đẩy nhanh việc tạo dữ liệu ground truth chất lượng cao. Sau khi được huấn luyện, model xuất ra một mask trong đó giá trị của mỗi pixel tương ứng với một class ID, thực chất là "tô" ý nghĩa lên hình ảnh.
Phân biệt các khái niệm liên quan#
Việc nhầm lẫn giữa phân đoạn ngữ nghĩa và các tác vụ khác ở cấp độ pixel là điều thường gặp. Hiểu rõ những khác biệt này là yếu tố then chốt để lựa chọn phương pháp phù hợp cho một dự án:
- Phân đoạn instance: Trong khi phân đoạn ngữ nghĩa coi tất cả đối tượng thuộc cùng một lớp là một thực thể duy nhất (ví dụ: tất cả "ô tô" đều được tô màu xanh), phân đoạn instance phân biệt từng đối tượng riêng lẻ (ví dụ: "Ô tô A" màu xanh, "Ô tô B" màu đỏ).
- Phân đoạn panoptic: Phương pháp này kết hợp cả hai khái niệm. Nó gán một lớp cho mỗi pixel (ngữ nghĩa), đồng thời tách riêng từng instance của các đối tượng có thể đếm được (instance), từ đó cung cấp khả năng hiểu cảnh toàn diện nhất.
Các ứng dụng trong thực tế#
Khả năng phân tích dữ liệu hình ảnh với độ chính xác đến từng pixel đang thúc đẩy đổi mới trong nhiều ngành có yêu cầu an toàn cao:
- AI trong ngành ô tô: Xe tự hành phụ thuộc rất nhiều vào phân đoạn để di chuyển an toàn. Bằng cách xác định khu vực có thể lái xe và phân biệt chúng với vỉa hè, đồng thời phác thảo chính xác người đi bộ, ô tô và chướng ngại vật, các hệ thống tự lái có thể đưa ra quyết định quan trọng theo thời gian thực.
- AI trong chăm sóc sức khỏe: Trong chẩn đoán hình ảnh y tế, các model phân đoạn cơ quan, tổn thương hoặc khối u từ ảnh chụp CT và MRI. Điều này hỗ trợ bác sĩ chẩn đoán hình ảnh tính toán thể tích khối u để lập kế hoạch điều trị hoặc hướng dẫn các công cụ phẫu thuật robot với độ chính xác cực cao.
- AI trong nông nghiệp: Nông dân sử dụng hình ảnh chụp từ drone trên không và phân đoạn để theo dõi tình trạng cây trồng. Bằng cách phân loại các pixel thành "cây trồng khỏe mạnh", "cỏ dại" hoặc "đất", các hệ thống tự động có thể phun thuốc diệt cỏ đúng mục tiêu, giảm mức sử dụng hóa chất và tối ưu hóa năng suất.
Triển khai phân đoạn với Ultralytics#
Các model phân đoạn hiện đại cần cân bằng độ chính xác với tốc độ, đặc biệt khi thực hiện suy luận theo thời gian thực trên các thiết bị edge. Họ model Ultralytics YOLO26 bao gồm các model phân đoạn chuyên biệt (được ký hiệu bằng hậu tố -seg), vốn end-to-end nguyên bản và mang lại hiệu năng vượt trội so với các kiến trúc cũ hơn như YOLO11.
Ví dụ sau minh họa cách thực hiện phân đoạn trên một hình ảnh bằng package ultralytics Python. Kết quả là các mask nhị phân xác định ranh giới của đối tượng.
from ultralytics import YOLO
# Load a pre-trained YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# This will display the image with the segmentation masks overlaid
results[0].show()Thách thức và định hướng tương lai#
Mặc dù đã đạt được những tiến bộ đáng kể, phân đoạn ngữ nghĩa vẫn đòi hỏi nhiều tài nguyên tính toán. Việc tạo kết quả phân loại cho từng pixel cần một lượng lớn tài nguyên GPU và bộ nhớ. Các nhà nghiên cứu đang tích cực tối ưu hóa những model này để nâng cao hiệu quả, nghiên cứu các kỹ thuật như lượng tử hóa model nhằm chạy các network lớn trên điện thoại di động và thiết bị nhúng.
Ngoài ra, nhu cầu về các dataset được gắn nhãn quy mô rất lớn cũng là một nút thắt. Để giải quyết vấn đề này, ngành đang chuyển sang tạo dữ liệu tổng hợp và học tự giám sát, cho phép model học từ hình ảnh thô mà không cần hàng triệu nhãn pixel được gán thủ công. Khi các công nghệ này trưởng thành, chúng ta có thể kỳ vọng phân đoạn sẽ trở nên phổ biến hơn nữa trong camera thông minh, robot và các ứng dụng thực tế tăng cường.









