Semantic Segmentation
Phân đoạn ngữ nghĩa gán một lớp cho mọi pixel và trả về một bản đồ lớp dày đặc duy nhất. Tìm hiểu cách model hoạt động, sự khác biệt với phân đoạn instance và mã nguồn.
Phân đoạn ngữ nghĩa là tác vụ thị giác máy tính gán nhãn lớp cho từng pixel trong ảnh. Đầu ra là một bản đồ lớp dày đặc có cùng chiều cao và chiều rộng với đầu vào, trong đó mỗi giá trị là một ID lớp như đường, vỉa hè, tòa nhà, bầu trời hoặc người. Trong khi phân loại ảnh gán một nhãn cho mỗi ảnh và phát hiện đối tượng vẽ một bounding box cho mỗi đối tượng, phân đoạn ngữ nghĩa mô tả toàn bộ cảnh theo từng vùng, bao gồm cả các vùng nền không có hình dạng cố định như cỏ và bầu trời, vốn không có các instance có thể đếm được.
Cách phân đoạn ngữ nghĩa hoạt động#
Model phân đoạn ngữ nghĩa là bộ phân loại theo từng pixel. Mạng nơ-ron tích chập (CNN) hoặc vision transformer tạo ra một bản đồ điểm cho mỗi lớp, thường ở độ phân giải giảm; các bản đồ được upsample lên kích thước ảnh và mỗi pixel nhận lớp có điểm cao nhất. Khi huấn luyện, dự đoán của từng pixel được so sánh với mask đã gán nhãn bằng cross-entropy, còn các pixel được đánh dấu bằng giá trị cần bỏ qua, thường là 255, sẽ không được tính vào loss.
Khó khăn cốt lõi là nhận biết một vùng đòi hỏi receptive field lớn và downsampling mạnh, trong khi vẽ đường biên chính xác lại đòi hỏi giữ được chi tiết không gian. Mạng tích chập hoàn toàn (FCN) lần đầu chuyển các mạng phân loại thành bộ dự đoán dày đặc vào năm 2014. Sau đó, các kiến trúc encoder-decoder như U-Net khôi phục đường biên bằng cách chuyển đặc trưng encoder độ phân giải cao tới decoder qua các skip connection, còn DeepLab sử dụng tích chập giãn (atrous) để mở rộng ngữ cảnh mà không thu nhỏ feature map. Các model thời gian thực kết hợp ngữ cảnh thô với chi tiết mịn theo cách này:
Các model phân đoạn ngữ nghĩa YOLO26 của Ultralytics, được nhận diện bằng hậu tố -sem, tuân theo khuôn mẫu này: model phân loại pixel từ đặc trưng neck ở tỷ lệ 1/8 vốn đã chứa ngữ cảnh hợp nhất, rồi upsample logits lên kích thước đầu vào với hệ số 8×. Các model được pretrained trên 19 lớp Cityscapes hoặc 150 lớp ADE20K, và huấn luyện trên ảnh mask hoặc nhãn polygon YOLO được chuyển thành mask ngay trong quá trình chạy.
from ultralytics import YOLO
# Load a YOLO26 semantic segmentation model trained on the 19 Cityscapes classes
model = YOLO("yolo26n-sem.pt")
# Predict one class ID for every pixel of a street image
results = model("https://ultralytics.com/images/bus.jpg")
class_map = results[0].semantic_mask.data
# Measure how much of the image each class covers
ids, counts = class_map.unique(return_counts=True)
for class_id, count in zip(ids.tolist(), counts.tolist()):
print(f"{results[0].names[class_id]}: {count / class_map.numel():.1%}")Kết quả in ra liệt kê từng lớp xuất hiện và tỷ lệ của lớp đó trong ảnh. Tất cả người trong ảnh đều được tính vào cùng một tỷ lệ lớp người, vì bản đồ lớp lưu lớp của từng pixel chứ không lưu thông tin pixel đó thuộc về đối tượng nào.
Phân đoạn ngữ nghĩa, phân đoạn instance và phân đoạn panoptic#
Phân đoạn ngữ nghĩa là một trong ba tác vụ phân đoạn ảnh:
- Phân đoạn instance: Gán mask và ID riêng cho mỗi đối tượng có thể đếm được, vì vậy ba chiếc xe trở thành xe 1, xe 2 và xe 3; các pixel nền không được gán nhãn.
- Phân đoạn panoptic: Gán nhãn lớp cho mọi pixel như phân đoạn ngữ nghĩa, đồng thời gán thêm ID instance cho các pixel thuộc đối tượng có thể đếm được.
Phân đoạn ngữ nghĩa phù hợp với các cảnh mà vùng quan trọng hơn số lượng đối tượng, chẳng hạn như phần đường có thể lái xe hoặc lớp phủ mặt đất.
Để được trợ giúp chọn giữa phân đoạn ngữ nghĩa và phân đoạn instance, hãy xem hướng dẫn so sánh phân đoạn ngữ nghĩa và phân đoạn instance; bài học Ultralytics Academy Phân đoạn ngữ nghĩa: gán nhãn mọi pixel hướng dẫn cách gán nhãn dữ liệu và huấn luyện model cho tác vụ này.
Ứng dụng thực tế#
- Xe tự hành: Các hệ thống điều khiển xe phân đoạn khung hình camera thành đường, vỉa hè, vạch kẻ làn, phương tiện và người đi bộ để xác định vùng có thể lái xe và chướng ngại vật.
- Chẩn đoán hình ảnh y tế: Model phác thảo cơ quan, khối u và tổn thương trên ảnh CT và MRI để bác sĩ lâm sàng đo thể tích và lập kế hoạch điều trị; U-Net ban đầu được thiết kế cho ảnh y sinh.
- Phân tích ảnh vệ tinh: Bản đồ lớp phủ mặt đất gán nhãn mỗi pixel là nước, rừng, đất trồng trọt hoặc khu vực xây dựng để theo dõi nạn phá rừng và sự phát triển đô thị.
- Nông nghiệp: Robot đồng ruộng và drone phân loại pixel thành cây trồng, cỏ dại hoặc đất để máy phun chỉ xử lý cỏ dại.
Benchmark và metric#
Model được đánh giá bằng trung bình Intersection over Union (IoU), hay mIoU: độ chồng lấp giữa pixel dự đoán và pixel thực tế được tính cho từng lớp rồi lấy trung bình, nhờ vậy các lớp hiếm như cột và biển báo giao thông có trọng số ngang với đường và bầu trời. ADE20K bao phủ 150 lớp trong nhà và ngoài trời để phân tích cảnh tổng quát; còn Cityscapes, benchmark lái xe nổi tiếng nhất, gồm 5.000 ảnh đường phố từ 50 thành phố với nhãn pixel chi tiết, được xếp hạng theo mIoU trên 19 lớp đánh giá.










