Thuật toán xác định superpixel - SLIC ( Simple Linear Iterative Clustering)

Superpixels cung cấp một dạng thô tiện lợi để tính toán các đặc trưng cục bộ ảnh. Chúng lọc bỏ bắt dư thừa và giảm đi đáng kể sự phức tạp trong việc xử lý ảnh tiếp theo. Chúng đã được chứng minh ngày càng hữu ích trong các ứng dụng như ước lượng chiều sâu, phân cắt ảnh, ước lượng mô hình cơ thể, đối tượng cục bộ.

Để superpixels hữu tính, thuật toán xác định phải nhanh, dễ sử dụng và cho kết quả phân tách có chất lượng cao. Thuật toán Simple linear iterative clustering (SLIC) đáp ứng được các yêu cầu trên. Nó gom nhóm pixels cục bộ trong không gian 5 chiều được tạo ra từ L, a, b (giá trị trong không gian màu CIELAB) và tọa độ x, y của pixel. SLIC đơn giản để triển khai và áp dụng trong thực tiễn. Khảo nghiệm trên các tập dữ liệu cho thấy SLIC hiệu quả hơn các phương pháp trước đây.










Thuật toán này tạo ra các superpixel bằng cách gom nhóm các pixels dựa trên sự tương quan màu của chúng trên mặt phẳng ảnh. Điều này được thực hiện trên không gian 5 chiều [labxy] với [lab] là vector màu trong không gian mày CIELAB và xy là vị trí của pixel. Trong khi khoảng cách lớn nhất có thể giữa 2 màu trong không gian màu CIELAB là hữu hạn thì khoảng cách trong mặt phẳng xy phụ thuộc vào kích thước ảnh đầu vào. Thế nên không thể sử dụng khoảng cách Euclidean trong không gian 5 chiều mà không chuẩn hóa.

SLIC sẽ lấy dữ liệu đầu vào một số K cho trước xấp xỉ bằng kích thước của superpixel. Với ảnh có N pixels thì mỗi superpixel sẽ có khoảng N/K pixel. Với mỗi superpixel có kích thước bằng nhau sẽ có một tâm ở mỗi superpixel.

Độ do khoảng cách giữa 2 pixel được xác định như sau: 
Trong đó S là căn bậc 2 của N/K mà m là một số cho trước giúp chúng ta kiểm soát độ rộng của superpixel.
Thuật toán SLIC được mô tả như sau:
  1. Khở tạo K và tâm các nhóm bằng bước S
  2. Đảo lộn tâm nhóm trong khu vực nxn lân cận, chọn vị trí gradient thấp nhất nhằm tránh trường hợp chọn tâm ở cạnh hoặc điểm ảnh nhiễu.
  3. Lặp lại (vòng while)
  4.       Với mỗi tâm nhóm thì (vòng for)
  5.                Chỉ định các pixel phù hợp nhất với tâm nhóm từ không gian 2S x 2S lân cận dựa trên độ đo khoảng cách được tính ở trên.
  6.       Kết thúc vòng for
  7.       Tính toán lại tâm nhóm mới bằng cách tính trung bình và độ lỗi E ( Khoảng cách chuẩn hóa L1 giữa tâm cũ và mới)
  8. Kết thúc vòng while khi E nhỏ hơn một ngưỡng cho trước
  9. Đánh nhãn các phần rời với nhãn của phần lớn nhất gần đó.
Các bạn có thể tải code tham khảo tại đây: https://mega.co.nz/#!Lhdz1KDZ!nMyIWC6j1X_sknl6MWvmGAq3npZUxnFDgCIdHL7-Qxo

Bài viết được dựa trên bài báo khoa học: Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk, SLIC Superpixels, EPFL Technical Report 149300, June 2010 và code ví dụ của đồng chí Lê Tiến Tài ( letientai299@gmail.com).

Nhận xét

Bài đăng phổ biến từ blog này

Chuyển biểu thức trung tố sang tiền tố và hậu tố bằng Stack

Cài đặt OpenCV trên Windows với Visual Studio 2013

HÀM THỐNG KÊ STATISTICAL TRONG EXCEL