特徵,特徵不變性,尺度空間與影象金字塔
部落格: ofollow,noindex" target="_blank">blog.shinelee.me |部落格園 | CSDN
特徵
在計算機視覺領域, 特徵是為了完成某一特定任務需要的相關資訊 。比如,人臉檢測中,我們需要在影象中提取特徵來判斷哪些區域是人臉、哪些區域不是人臉,人臉驗證中,我們需要在兩個人臉區域分別提取特徵,來判斷他們是不是同一個人,如下圖所示,深度神經網路最終得到一個128維的特徵用於識別等任務,圖片來自 Openface
常用的特徵包括:影象灰度or灰度、直方圖、梯度、邊緣、紋理、矩、SIFT、深度學習特徵等等。以關鍵點特徵為例,關鍵點指的是可以穩定出現的特殊點,如角點、區域性極值點等,如上圖中人臉中眼鼻口處的關鍵點,先檢測影象中的關鍵點,然後在以該點為中心的鄰域範圍內提取資訊,作為該點的特徵描述。關鍵點特徵的好處在於,關鍵點可以穩定復現同時其特徵描述聚焦在關鍵點鄰域內,對遮擋、形變等有很好魯棒性。以 SIFT 描述子為例,其將關鍵點周圍的梯度統計直方圖作為該點的特徵,如下圖所示,圖片來自 連結 。
不同的特徵適用範圍也不同,有些特徵對光照敏感,有些特徵對形變敏感, 需要根據任務場景選擇適合的特徵 ——適合的才是最好的,不是什麼時候都要上牛刀。如果任務場景簡單,比如明確知道光照條件不變、人臉基本正面且表情妝容沒有變化,可能直接使用灰度或梯度進行模板匹配就可以識別了,但如果場景複雜,光照可能變化、表情可能變化、人臉角度也不確定,那麼為了完成任務,選取的特徵就需要有較好的適應性,這就要談到 特徵不變性 。
特徵不變性
以上圖為例,左右兩圖中玩具車的姿態不同、大小不同、影象亮度不同,對應區域性(圖中黃色小塊)在各自圖中的絕對位置不同、大小不同、方向不同、灰度不同,為了實現配準,就需要在區域性提取的特徵具有某些不變性,才能夠匹配上。
- 幾何不變性(geometric invariance) :平移,旋轉,尺度……
- 光度不變性(photometric invariance) :亮度,曝光……
影象預處理通過對輸入影象進行歸一化(最大最小值歸一化、均值方差歸一化、直方圖均衡化等),能在一定程度上做到對亮度或光照魯棒。此外,在設計特徵提取演算法時,通過考慮 相對資訊和統計資訊 (比如梯度、直方圖等),降低對灰度(顏色)絕對值的敏感度,可以進一步做到 對亮度或光照魯棒 。
通過使用 區域性視窗內的畫素資訊和相對位置資訊 , 區域性特徵 一般都能做到 平移無關 。要做到 旋轉無關 ,則需要將視窗 以某個主方向對齊 後再提取區域性特徵,如圖中傾斜的黃色小塊,主方向可以是視窗內最集中的梯度方向。
接下來,講述一下如何做到 尺度無關 。
尺度空間
尺度,可以通過地圖的比例尺來理解,如下圖所示,如果以100米為單位進行觀測(稱為圖100),箭頭處有一個角點A,如果以5米為單位進行觀測(成為圖5),則A附近多了一個凹陷B,而這個凹陷B在圖100中是看不見的,為什麼呢?尺度空間理論認為是被平滑掉了,即低尺度下可以看清細節,高尺度下細節會被平滑掉只剩下更“巨集觀”的特徵,因此可知
- 特徵是有尺度的 ,在某個尺度下B是關鍵點(圖5中),但在更大的尺度下可能就不是了(圖100中)
- 需要在對應的尺度下提取特徵 ,既然B僅在圖5的尺度下是關鍵點,其特徵自然需要在圖5的尺度下提取
如果兩幅影象的尺度不同該如何匹配?圖100和圖5中的A是同一個點,但因為尺度不同, 鄰域差異很大 ,在各自的鄰域中提取的特徵自然不同,為了讓它們能匹配上,需要對圖5構建 尺度空間 ,獲得不同尺度下的表達,具體怎麼做呢?保持圖5影象尺寸不變,不斷(高斯)平滑,直到B處的凹陷平滑沒了(與圖100相似),達到與圖100相近的尺度,圖100中在A鄰域內(比如 \(10 \times 10\) )提取特徵(比如SIFT),圖5中在A鄰域內( \(200 \times 200\) )提取特徵,兩者在各自影象中提取的SIFT特徵長度相同(將領域劃分成同樣數量的子區域,然後在子區域中統計梯度直方圖,某種程度上講是對鄰域視窗的歸一化後再提取特徵),這樣就可以匹配上了。
平滑類似如下過程,最下面一行為原始訊號,每一行對應一個尺度:

一般來講,在沒有先驗知識的情況下,對兩幅影象分別在每個尺度上檢測關鍵點並提取特徵,總有某些關鍵點及其特徵正好來自相同的尺度,如果它們恰好可以匹配上,則影象1和影象2匹配,反之,如果所有關鍵點都配不上,則影象1和影象2不匹配。
小結一下: 尺度空間,是在訊號長度不變的情況下(如上圖 \(f(x)\) 到 \(f^t(x)\) ),通過(高斯)平滑,獲得訊號在不同尺度下的表達,然後使用尺度對應大小的視窗進行觀測和提取特徵。因為獲得了原始訊號在所有尺度下的特徵,這些特徵在整體上做到了尺度無關——因為原始訊號各種尺度的特徵都有了。
影象金字塔
尺度空間中,不同尺度下觀測視窗的畫素尺寸是不同,還有另外一種情況, 保持觀測視窗大小不變,讓影象尺寸發生變化 。以人臉檢測為例,通常訓練結束後,方法中用到的濾波器、卷積核的引數和尺寸就固定了,因此提取到的特徵只適用於檢測畫素大小在某個範圍內的人臉,超出這個範圍的人臉就檢測不出來了。但是,在沒有先驗知識的情況下, 輸入影象中人臉的畫素大小是未知的,不同輸入影象中人臉的畫素尺寸也可能不同,怎麼辦? 這是就要用到 影象金字塔 ,如下圖所示,使用 RCNN 檢測人臉,影象中的人臉有大有小,通過構建影象金字塔來檢測,圖片來自 連結 。
構建 影象金字塔 ,是為了獲得影象在不同尺寸(不同解析度)下的表達,通過不斷重複 平滑+下采樣 的過程(也有通過插值Resize),獲得了不同畫素尺寸的人臉影象,其中只要有與網路適配的人臉就可以被檢測出來。
小結一下: 影象金字塔,是在保持觀測視窗不變的情況下,獲得輸入影象在不同尺寸(解析度)下的表達,在不同尺寸上提取到的特徵在整體上做到了尺寸(解析度)無關。 實際使用中,一般採用2倍下采樣,即金字塔中影象長寬逐層折半。
細心的讀者可能已經發現,尺度空間和影象金字塔存在著某種關聯,有種一體兩面的感覺,實際上兩者可以聯合在一起使用,我們以後再談。
總結
本文的重點在於講述 幾種 特徵不變性 以及實現 特徵不變性 的途徑,對尺度空間和影象金字塔只是做了直觀的介紹,後面會單獨寫文章詳細講解。
參考
- Feature (computer vision)
- Scale-invariant feature transform
- Pyramid (image processing)
- Scale space
- Pyramids and Scale Space
- ACE-PYR.pdf" rel="nofollow,noindex" target="_blank">Scale Space Theory and Applications