斑點偵測
角點偵測器尋找被兩條交叉邊緣釘住的點,而斑點偵測器則尋找內部大致均勻、且與周圍不同的緊湊區域,例如亮背景上的暗點或陰影中的亮點。想想瓢蟲身上的圓點、顯微鏡載玻片上的細胞,或海綿那種斑塊狀的紋理。斑點有中心和一個特徵大小,因此斑點偵測自然會回傳的不只是位置,還有尺度,這使斑點成為極佳的、具尺度意識的關鍵點。
主力運算子是高斯拉普拉斯(Laplacian of Gaussian, LoG)。拉普拉斯(二階導數之和)對局部強度的峰與谷強烈反應,而事先用標準差為 sigma 的高斯平滑,則調整它對哪種大小的斑點反應。一個給定半徑的斑點,當高斯尺度與該半徑相匹配時會產生最強的 LoG 反應,具體而言是當半徑約為根號二乘以 sigma 時。所以若你在許多尺度上計算 LoG 反應,並尋找同時在空間與尺度上都是極值的點,每個極值就同時給你一個斑點的位置與大小。為了讓不同尺度的反應可比較,拉普拉斯必須做尺度正規化,方法是乘以 sigma 的平方,這個洞見來自 Lindeberg;沒有這個正規化,反應在粗尺度下自然會縮小,斑點大小便無法被選出。
在許多尺度上計算真正的 LoG 代價高昂,因此通常用高斯差(Difference of Gaussians, DoG)來近似:把影像在鄰近兩個尺度下的兩份高斯模糊版本相減。這個差的行為幾乎與尺度正規化的 LoG 完全相同,但每個尺度只花兩次模糊與一次相減,這正是 SIFT 在尺度空間金字塔上以 DoG 建立其關鍵點偵測器的原因。第二種經典方法使用 Hessian 矩陣(二階導數矩陣)的行列式,它同樣具斑點選擇性,並是 SURF 快速盒狀濾波器偵測器的基礎。
斑點偵測器是尺度不變局部特徵的基礎,且在關鍵點之外也被大量使用:在生醫影像中計數細胞或菌落、在天文學中偵測恆星或星系、在文件中尋找文字或符號。一個相關的區域偵測器,最大穩定極值區域(Maximally Stable Extremal Regions, MSER),把斑點狀區域找成在一段強度門檻範圍內都保持穩定的連通分量,在文字偵測中很受歡迎。實務上的陷阱在於選擇尺度範圍:比你尺度取樣小得多或大得多的斑點都會被漏掉,因此尺度範圍與取樣密度是最關鍵的參數。
要計數螢光細胞,先建立 DoG 反應的尺度空間,再挑出 (x, y, sigma) 中的局部極值。每個極值給出位於 (x, y) 的細胞中心,以及約為 sqrt(2)·sigma 的估計半徑,因此偵測與大小估計在一次運算中同時完成。