4. SIFT part 2: Image processing Pyramid và Scale-Invariant Interest Point Detection

Image processing Pyramid

Đại khái là việc lặp lại xử lí làm mờ ảnh nhiều lần, mỗi lần sẽ áp dụng smoothing kernel và giảm kích thước (thường là /2). Tác dụng là làm nổi bật một vài feature muốn xét ( giống như việc xếp chồng các Convolution Layer trong CNN models)

Mục đích là phát hiện các Scale-invariant

Tùy thuộc vào dạng kernel (phương thức smoothing) mà có nhiều loại như:

    - Gaussian Pyramid: 

        Thường thấy nhất, tác dụng lan tỏa giá trị pixel  ==>  texture synthesis




    - Laplacian Pyramid: 

        Gần giống Gaussian, nhưng mỗi tầng là 1 blur image khác nhau ==>  image compression



    - Steerable Pyramid:

        Multi-scale, multi-orientation band-pass filter bank, có thể coi là 1 phiên bản chọn lọc của Laplacian Pyramid ==> Đa dạng chức năng

Tác dụng thường tập trung vào những cái lớn, cái rõ hơn là tập trung vào những vật nhỏ, chi tiết



Phân tích kĩ hơn:

Ta so sánh giữa việc sử dụng Gaussian pyramid và không sử dụng (chỉ loại bỏ các pixel mà position không phải even (chẵn) ):
Tương tự, để phóng to 1 image ra nhiều lần (rescaling) ta cần biết form ( function biểu diễn) của nó. Tức là ta cần biểu diễn được image từ các điểm độc lập (discrete point) thành một hàm liên tục (countiunous function):
Rồi từ biểu diễn này, ta suy ra các điểm không phải even position ( x mod 2 = 0, y mod 2 = 0) dựa vào giá trị của position theo form function

Vậy nếu ta không biết được F?

Áp dụng ý tưởng của các cách tìm nguyên hàm (Antiderivative) trong bài toán 
tích phân (Integral),  ta có nhiều hướng sau:
Với ảnh trên, ta dùng theo các đường linear nối các điểm kề cận ( Linear interpolation): 
Tưởng tượng theo hướng chuỗi số (1D):
Đặt t = x - x1 , d= x2 - x1 (khoảng cách của điểm với đầu mút và độ dài của đoạn)
Ta thấy rằng nó rất giống với phép tích chập (convolution) vì vậy đó là lí do ta sử dụng các phép tích chập tương ứng ở đây

Dựa vào ý tưởng trên, trở lại với bài toán ảnh số ( 2D), ta thấy tương tự giữa linear interpolation và bilinear interpolation, hay phép neighbor interpolation cho cả 1D và 2D

Ta hiểu được rõ hơn về Image processing Pyramid hay sự liên quan đến các Deep Learning models




Ý tưởng của Interest Point Dectection
Để chọn lọc ra được các Scale-variant Interest Point
Đầu tiên ta để ý đến Gaussian blurDifference of Gaussian (DOG) để cho thấy rõ sự khác biệt phân bổ màu tiệm cận của pixel đang xét và các pixel khác
Sau đó ta áp dụng phương trình Laplacian cho dạng Gaussian (tương đương với phương trình đạo hàm riêng mũ 2 của Edge detection trong bài trước (https://hoanglong187.blogspot.com/2022/09/sift-part-1-corner-detection.html )


Hiện tại ta có tham số delta  𝛿 để làm scale parameter cho hàm detect trên trong khi scaling transform

Từ đó có thể xác định Charactesistic scale là điểm peak (minimum hoặc maximum) trong hàm Laplacian

Ta có thể thấy kết quả qua các thao tác chọn các tham số delta khác nhau qua cùng 1 bức ảnh như sau:








Cải thiện (Lowe's DoG)



Ta thấy rằng nếu với mỗi tầng pyramid khác nhau, nếu ta sử dụng chênh lệch scale là k lần thì khi trừ ra sẽ thấy rõ các edge 
Vậy nếu ta sử dụng một cấp số nhân theo k. ta có:
Vây ta liệt kê lại các bước:
    - Tính Gaussian pyramid
    - Tính Difference of Gaussian (DOG)
    - Tại mỗi scale delta:
        + Tìm local maxima
        + Loại bỏ bớt các bad maxima mà ta không cần (Backpropagation hoặc global threshold?)
Tóm tắt
Giờ ta có:
    - Harris corner detector đại diện cho phép quay (rotation)
    - Scale invariant interest points đại diện cho phép biến đổi tỉ lệ (scale)
    - Translation (tịnh tiến) invariant dựa vào window tiệm cận của điểm
Vì vậy ta đã đủ 3 phép biến đổi hình sử dụng cho SIFT algorithm
Hiểu nôm na, việc thay đổi scale là để tìm ra scale invariant

Tham khảo

Nhận xét