Table of Contents
影像金字塔是什麼 ?
影像金字塔(Image Pyramid)是一種多尺度影像表示方法,它透過逐層縮小影像,建立從高解析度到低解析度的一系列影像層級,類似於金字塔的結構。

為什麼 ORB-SLAM2 中需要使用影像金字塔 ? 
先說明一下,ORB-SLAM2 中特徵點通常出現在影像中的尖銳邊緣或顯著的角落處,如圖 2 所示。
因為當相機靠近某個角落處時,同一個角落處在影像中的解析度會變高,也就是,該區域的像素(Pixels)數量會變多。不幸的是,ORB SLAM2 檢測特徵點(角點)的方式,需要利用到 7 * 7 的像素區域,如圖(二)所示。
原本相機距離畫框很遠的時候,畫框很小,這讓畫框角落所佔的像素數量少,所以 7 * 7 的像素區域可以讓我們很輕易地提取到畫框角落的特徵點(角點);但如果今天相機在真實場景中被我們移動到靠近圖(二)中的畫框,這會導致該畫框角落處的像素變多,那 7 * 7 的像素區域就無法輕易提取到特徵點(角點)了。
所以為了解決這個問題,我們可以利用「影像金字塔」來實現特徵點的「尺度不變性」。
透過選取影像金字塔中解析度較低的影像,即較上層的影像,如圖(一)所示,無論相機靠近還是遠離場景,都能在相同區域提取到相同的特徵點(角點)。

「設定影像金字塔」是「影像特徵提取」過程中的關鍵前置步驟
設定影像金字塔參數
在 ORB-SLAM2 中,影像金字塔的層數 ( m ) 設定為 8,而且每層之間的縮放係數 ( s ) 為 : 0.83(即 1 / 1.2)。
也就是說,影像金字塔的每一層影像的解析度 ( 大小 ) 都會比上一層低 1.2 倍,這樣可以有效地捕捉從近距離到遠距離的特徵,並保證在不同尺度下都能穩定檢測到特徵點。
合理分配每一層影像中應提取的特徵點數
每一層影像的面積不同,較高解析度的層(面積大)包含較多細節,而較低解析度的層(面積小)則細節較少。
根據面積來分配特徵點數,可以確保每一層都能獲得適量的特徵點,從而達到整個影像均勻覆蓋,不會因某層過於密集或稀疏而導致資訊分布不平衡。

其中,level 表示影像金字塔的第幾層 ( 從 0 開始 ),m 表示金字塔的總層數,s 是縮放係數,N 代表總共需要提取的特徵點數量(這個數量可以根據需求自行設定),而 Nlevel 則是分配給特定層數的特徵點數量。
結語
當「影像金字塔」設定完成後,我們便能有效進行特徵提取,確保特徵點具備「尺度不變性」。
對於要提取特徵點的影像,我們會根據設定的縮放係數對影像進行縮放,並將每層縮放後的影像依序放入影像金字塔中。接著,我們在每一層影像上提取所需數量的特徵點。




[…] 《【ORB-SLAM2】探索之旅 第 2 天:影像金字塔 (Image Pyramid) Part 1》 […]