-
- Tổng tiền thanh toán:
Các kỹ thuật Phân đoạn hình ảnh - Image Segmentation
Phân đoạn hình ảnh (image segmentation) là một trong những lĩnh vực chính của thị giác máy tính, được hỗ trợ bởi một lượng lớn nghiên cứu liên quan đến cả thuật toán xử lý hình ảnh và kỹ thuật học tập. Phân đoạn hình ảnh đứng đằng sau các ứng dụng nổi bật như Robotics, Hình ảnh y tế, Xe tự lái và Phân tích video thông minh. Lĩnh vực này cũng được biết đến bởi lịch sử nghiên cứu, phát triển lâu dài, với các công trình đầu tiên ra mắt vào đầu năm 1970-1972.
Hãy cùng chúng tôi tìm hiểu các kỹ thuật phân đoạn hình ảnh truyền thống & phương pháp học sâu nhé!
Các loại tác vụ phân đoạn ảnh
Phân đoạn ảnh có thể được chia thành ba nhóm tác vụ dựa trên số lượng và loại thông tin mà chúng truyền tải.
Trong khi semantic segmentation phân đoạn một ranh giới rộng của các đối tượng thuộc về một lớp cụ thể, thì instance segmentation cung cấp bản đồ phân đoạn cho từng đối tượng mà.
Panoptic segmentation cho đến nay là nhiều thông tin nhất, bởi kết hợp các tác vụ semantic segmentation và instance segmentation. Panoptic segmentation cho ta bản đồ phân đoạn của tất cả các đối tượng thuộc bất kỳ lớp cụ thể nào có trong ảnh.
Dưới đây là đặc điểm chi tiết hơn của từng tác vụ.
Semantic segmentation
Semantic segmentation đề cập đến việc phân loại các pixel trong một hình ảnh thành các lớp ngữ nghĩa. Các pixel thuộc về một lớp cụ thể được phân loại một cách đơn giản vào lớp đó mà không cần xem xét thông tin hoặc bối cảnh nào khác.
Tác vụ này không phù hợp khi có nhiều đối tượng được nhóm chặt chẽ trên cùng một lớp trong hình ảnh. Ví dụ: Hình ảnh đám đông trên đường phố sẽ có mô hình semantic segmentation dự đoán toàn bộ khu vực đám đông thuộc về lớp “người đi bộ”, do đó cung cấp rất ít chi tiết hoặc thông tin chuyên sâu về hình ảnh.
Instance segmentation
Các mô hình instance segmentation phân loại các pixel thành các danh mục trên cơ sở “các đối tượng” (instances) với nhãn cụ thể.
Ví dụ: Nếu một hình ảnh về đám đông được đưa vào mô hình instance segmentation, thì mô hình đó sẽ có thể tách biệt từng người khỏi đám đông cũng như các đối tượng xung quanh (lý tưởng nhất).
Panoptic segmentation
Panoptic segmentation, tác vụ phân đoạn được phát triển gần đây nhất, là sự kết hợp giữa semantic segmentation và instance segmentation, trong đó ranh giới của mỗi đối tượng trong ảnh được tách biệt và danh tính của đối tượng được dự đoán.
Các thuật toán panoptic segmentation có khả năng ứng dụng quy mô lớn trong các tác vụ phổ biến như ô tô tự lái, khi một lượng lớn thông tin về môi trường xung quanh phải được ghi lại ngay lập tức với sự trợ giúp của một luồng hình ảnh.
3 loại tác vụ phân đoạn hình ảnh.
Kỹ thuật phân đoạn hình ảnh truyền thống
Khởi nguyên của phân đoạn hình ảnh bắt nguồn từ Xử lý hình ảnh kỹ thuật số cùng với các thuật toán tối ưu hóa. Kỹ thuật truyền thống này sử dụng thuật toán region growing and snakes, trong đó thiết lập các vùng ban đầu và thuật toán so sánh giá trị pixel để xác định bản đồ phân đoạn. Các phương pháp như vậy quan sát cục bộ các đặc trưng trong ảnh và tập trung vào sự khác biệt của từng phần cũng như gradients tính bằng pixel.
Những thuật toán tiên tiến hơn, xem xét toàn bộ hình ảnh đầu vào, thì xuất hiện muộn hơn nhiều, cùng với các phương pháp như adaptive thresholding, thuật toán Otsu’s và phân cụm được đề xuất nằm trong số các phương pháp xử lý ảnh cổ điển.
Các phương pháp phân đoạn hình ảnh truyền thống.
Thresholding
Thresholding là một trong những phương pháp phân đoạn hình ảnh đơn giản nhất, trong đó ngưỡng được đặt để chia pixel thành hai lớp. Các pixel có giá trị lớn hơn giá trị ngưỡng được đặt thành 1 trong khi các pixel có giá trị nhỏ hơn giá trị ngưỡng được đặt thành 0.
Do đó, hình ảnh được chuyển đổi thành bản đồ nhị phân, dẫn đến quá trình thường được gọi là nhị phân hóa. Ngưỡng hình ảnh rất hữu ích trong trường hợp sự khác biệt về giá trị pixel giữa hai lớp mục tiêu là rất cao và dễ dàng chọn giá trị trung bình làm ngưỡng.
Thresholding thường được sử dụng để nhị phân hóa hình ảnh, nhằm cho phép sử dụng các thuật toán khác như phát hiện và nhận dạng đường viền (contour detection and identification) vốn chỉ hoạt động trên loại hình ảnh này.
Region-Based Segmentation
Các thuật toán phân đoạn dựa trên khu vực hoạt động bằng cách tìm kiếm sự giống nhau giữa các pixel liền kề và nhóm chúng dưới một lớp chung. Thông thường, quy trình phân đoạn bắt đầu với một số pixel được đặt làm pixel gốc (seed pixel). Thuật toán sẽ phát hiện ranh giới trực tiếp của các pixel gốc, từ đó phân loại chúng là tương tự hoặc khác nhau. Các vùng lân cận sau đó được coi là seeds và các bước được lặp lại cho đến khi toàn bộ hình ảnh được phân đoạn.
Edge Segmentation
Phân đoạn cạnh, còn được gọi là phát hiện cạnh, thực hiện tác vụ phát hiện các cạnh trong ảnh. Việc này có thể hiểu đơn giản là: phân loại pixel nào trong hình ảnh là pixel cạnh và chọn các pixel cạnh đó theo một lớp riêng biệt tương ứng.
Phát hiện cạnh thường được thực hiện bằng cách sử dụng các bộ lọc đặc biệt cung cấp cho ta biết các cạnh của hình ảnh khi tích chập. Các bộ lọc này được tính toán bằng các thuật toán chuyên dụng hoạt động dựa trên ước tính gradients của hình ảnh theo tọa độ x và y của mặt phẳng không gian. Ví dụ Canny là một trong những thuật toán phát hiện cạnh phổ biến nhất được hiển thị bên dưới.
Clustering-based Segmentation
Các quy trình phân đoạn hiện đại phụ thuộc vào kỹ thuật xử lý ảnh thường sử dụng thuật toán phân cụm. Những thuật toán này có thể cung cấp các phân đoạn hợp lý trong một khoảng thời gian ngắn. Các thuật toán phổ biến như phân cụm K-mean (K-means clustering) là các thuật toán không giám sát hoạt động bằng cách phân cụm các pixel có thuộc tính chung lại với nhau.
Đặc biệt, K-means clustering xem xét tất cả các pixel và phân cụm chúng thành các lớp “k”. Khác với phương pháp phân đoạn theo vùng, các phương pháp dựa trên phân cụm không cần điểm gốc để bắt đầu phân đoạn từ đó.
Phương pháp dựa trên Deep Learning
Các mô hình semantic segmentation cung cấp các bản đồ phân đoạn dưới dạng đầu ra tương ứng với đầu vào mà chúng được cung cấp. Các bản đồ phân đoạn này thường có n kênh với n là số lớp mà mô hình được cho là phân đoạn. Mỗi kênh trong số n kênh này có bản chất nhị phân với các vị trí chứa đối tượng được biểu diễn bằng số 1 và các vùng trống là các số 0. The ground truth map là một mảng số nguyên kênh đơn có cùng kích thước với đầu vào và có phạm vi “n”, với mỗi phân đoạn được “điền” giá trị chỉ mục của các lớp tương ứng (các lớp được lập chỉ mục từ 0 đến n-1).
Đầu ra của mô hình ở định dạng nhị phân “kênh n” còn được gọi là two-dimensional one-hot encoded representation of the predictions.
Các mạng thần kinh thực hiện phân đoạn thường sử dụng cấu trúc bộ mã hóa-giải mã, trong đó bộ mã hóa được theo sau bởi bottleneck và bộ giải mã hoặc các lớp lấy mẫu trực tiếp từ bottleneck (như trong FCN).
SegNet
Kiến trúc bộ mã hóa-giải mã cho semantic segmentation đã trở nên phổ biến sau khi các công trình như SegNet (của Badrinarayanan et. al) ra đời vào năm 2015.
SegNet đề xuất việc sử dụng kết hợp các khối tích chập (convolutional) cùng khối downsampling để nén thông tin vào bottleneck và tạo thành biểu diễn của đầu vào. Bộ giải mã sau đó xây dựng lại thông tin đầu vào để tạo thành một bản đồ phân đoạn và nhóm các vùng theo các lớp. Cuối cùng, bộ giải mã có kích hoạt sigmoid ở cuối để nén đầu ra trong phạm vi (0,1).
U-Net
SegNet được phát hành cùng lúc với một nghiên cứu phân đoạn độc lập khác, U-Net (của Ronnerberger và cộng sự). U-Net lần đầu tiên giới thiệu các kết nối tắt (skip connections) trong Deep Learning như một giải pháp cho việc mất thông tin trong các lớp downsampling điển hình của mạng mã hóa-giải mã.
Skip connections là kết nối đi trực tiếp từ bộ mã hóa đến bộ giải mã mà không đi qua bottleneck. Điều này giúp giảm mất mát dữ liệu bởi aggressive pooling và downsampling như được thực hiện trong các khối mã hóa của kiến trúc bộ mã hóa-giải mã.
Skip Connections được đánh giá là một thành công lớn, đặc biệt trong lĩnh vực hình ảnh y tế, với U-Net cung cấp các kết quả tiên tiến nhất trong phân đoạn tế bào để chẩn đoán bệnh.
DeepLab
Theo sau UNet, DeepLab của Facebook đóng vai trò như một cột mốc quan trọng, cung cấp các kết quả tiên tiến nhất về phân đoạn ngữ nghĩa.
DeepLab đã sử dụng các kết cấu phức tạp thay thế các hoạt động tổng hợp đơn giản và ngăn ngừa mất thông tin đáng kể trong khi downsampling. Ngoài ra, DeepLab tiếp tục giới thiệu trích xuất đặc trưng đa tầng (multi-scale feature extraction) với sự trợ giúp của Atrous Spatial Pyramid Pooling để giúp mạng phân đoạn các đối tượng bất kể kích thước của chúng.
Để khôi phục thông tin về ranh giới, một trong những phần quan trọng nhất của semantic hay instance segmentation, DeepLab đã sử dụng Conditional Random Fields (CRF) được kết nối đầy đủ.
Sự kết hợp giữa độ chính xác khi khoanh vùng chi tiết của CRF và khả năng nhận dạng của CNN đã khiến DeepLab cung cấp bản đồ phân đoạn có độ chính xác cao, đánh bại các phương pháp như FCN và SegNet với biên độ rộng.
Các nghiên cứu như SegNet, U-Net và DeepLab đã đặt nền móng cho các công trình tương lai như Mask-RCNN, chuỗi DeepLab của Facebook hay PspNet và GSCNN.
Kết luận
Mục đích của phân đoạn hình ảnh là nhóm các vùng hoặc phân đoạn một hình ảnh theo các nhãn lớp tương ứng. Tác vụ này tương đương với việc nhóm các pixel. Ngoài phân loại, phân đoạn hình ảnh cũng yêu cầu khoanh vùng (xác định vị trí chính xác của một đối tượng bằng cách xác định ranh giới của chúng). Do đó, có thể coi đây là bài toán mở rộng của phân loại hình ảnh (image classification).