⑴ fpn是什麼意思
FPN的意思是多尺度特徵金字塔網路。它是一種在計算機視覺領域,特別是在目標檢測任務中廣泛應用的深度學習網路結構。
FPN的核心思想在於構建一種特徵金字塔,通過融合不同尺度的特徵信息來提高目標檢測的准確性。在網路結構中,FPN通過自上而下的路徑和自下而上的路徑相結合,實現了多尺度特徵的融合。具體來說,自上而下的路徑將高層特徵傳遞給低層特徵,增強了對小目標的檢測能力;而自下而上的路徑則注重保留原始的空間細節信息,有助於大目標的檢測。通過這種方式,FPN能夠綜合利用不同尺度的特徵信息,提高目標檢測的精度和速度。此外,FPN還具有結構簡潔、計算效率高等優點。它不僅可單獨應用於各種目標檢測演算法中,也可與其他網路結構相結合以進一步提升性能。在現代計算機視覺應用中,FPN已成為了一種重要的技術手段。它不僅有助於提高目標檢測的精度和速度,也在圖像分類、圖像分割等領域中展現出良好的應用前景。因此,深入理解FPN的原理和應用對於掌握計算機視覺技術具有重要意義。
總的來說,FPN作為一種重要的深度學習網路結構,在目標檢測等計算機視覺任務中發揮著重要作用。它通過融合不同尺度的特徵信息,提高了目標檢測的准確性和速度,已成為該領域中的一種重要技術手段。同時,FPN也在圖像分類、圖像分割等領域中展現出良好的應用前景。
⑵ 多尺度分割
與傳統的基於像元的分類方法不同,面向對象的遙感影像分類方法處理的基本單元是影像對象,而不是單個的像元。其採用一種基於遙感影像的多尺度分割方法,可以生成任意尺度的、屬性信息相似的影像多邊形 ( 對象) ,運用模糊數學方法獲得每個對象的屬性信息,以影像對象為信息提取的基本單元,實現分類和信息提取。面向對象的遙感影像分類有兩個獨立的模塊: 對象生成 ( 影像分割) 與信息提取 ( 影像分類) ( Blaschket et al. ,2000; Metzler et al. ,2002) 。對象生成即採用多尺度分割技術生成同質對象,其是進行分類識別和信息提取的必要前提。信息提取是基於模糊邏輯分類的思想,建立特徵屬性的判別規則體系,計算出每個對象屬於某一類別的概率,達到分類識別和信息提取的目的。
地表信息在不同的尺度 ( 時間或空間跨度) 上有著不同的表現,例如從圖 5 -1 中分辨出的就是兩個圓形的物體,當把觀察距離拉遠時,我們看到了圖5 -2,這時我們根據其與相鄰物體之間的關系能立刻分辨出左邊的圓形物體是盤子,右邊的圓形物體是車輪。這是空間尺度上的一個簡單例子。時間尺度就更加簡單,例如一片耕地,在夏季的時候是綠色的,到了秋季變成黃色的。上述的例子說明,當我們要正確識別目標地物的時候,必須要選擇一個合適的尺度,達到最佳的分辨效果。傳統的基於像元的信息提取方法均是在同一個尺度上進行,該尺度即影像的空間解析度,由於它無法兼顧地物的宏觀和微觀特徵,導致在影像信息十分豐富的時候 ( 高解析度影像) ,往往達不到很好的提取效果,出現許多破碎的區域,這也就是常說的高解析度影像分類的 「胡椒鹽效應」。針對這一問題,面向對象的分類方法引進了多尺度分割的概念。
圖 5 -1 兩個圓形物體
圖 5 -2 盤子和車輪
( 一) 多尺度分割的概念
多尺度分割是指在影像信息損失最小的前提下,以任意尺度生成異質性最小、同質性最大的有意義影像多邊形對象的過程,其是一種影像抽象 ( 壓縮) 的手段,即把高解析度像元的信息保留到低解析度的對象上,不同的地物類型可以在相應尺度的對象上得到反映( 黃慧萍,2003) 。影像的多尺度分割從任意一個像元開始,採用自下而上的區域合並方法形成對象。小的對象可以經過若干步驟合並成大的對象,每一對象大小的調整都必須確保合並後對象的異質性小於給定的閾值 ( 王岩等,2009) 。因此,多尺度分割可以理解為一個局部優化過程,而對象的同質性標准則是由對象的顏色 ( color) 因子和形狀 ( shape)因子確定,分別代表了影像分割時 「顏色」和 「形狀」各自所佔的權重,兩者之和為 1。而 「形狀因子」又由光滑度 ( smoothness) 和緊致度 ( compactness) 兩部分組成,兩者權重之和為 1,這四個參數共同決定分割效果 ( 圖 5 -3) 。
圖 5 -3 多尺度分割的參數構成
( 二) 多尺度分割參數的選擇
同質性標准包括光譜 ( 顏色) 和形狀兩個因子,其中形狀因子又包括光滑度和緊致度。大多數情況下,顏色因子對生成對象最重要,形狀因子有效控制著影像對象的破碎程度,可以避免 「同物異譜」和 「同譜異物」現象與 「胡椒鹽效應」,以此提高分類精度( 田新光,2007) 。傳統的基於像元的方法不考慮形狀因子,而將光譜因子設置為 1,即完全依靠像元的光譜值進行信息提取。光滑度是通過邊界平滑來優化影像對象的,其描述的是對象邊界與一個正方形的相似度; 緊致度是通過聚集度來優化影像對象的,其作用是利用較小的差別把緊湊和不緊湊的目標對象區分開。光滑度和緊致度兩個形狀因子相互作用、相互影響,但並不完全對立,即通過光滑度優化的對象也可能會有好的緊致度,反之,通過緊致度優化過的對象也可能會有光滑的邊界。
在參數設置時,首先應當明確光譜信息的重要性,應充分利用光譜 ( 顏色) 信息,形狀因子權重太高會導致對象同質性的破壞,出現一個對象包含若乾地類的情況,不利於信息提取。因此,在進行多尺度分割時要遵循兩條基本原則: ① 盡可能使用較大的顏色因子; ② 如果遇到邊界不很光滑但是聚集度較高的影像對象,可嘗試使用較大的形狀因子來加以控制。
( 三) 分割尺度的選擇
多尺度分割的一個突出貢獻是同一空間解析度的遙感影像信息不再只由一種尺度來表示,而是在同一遙感影像中可以由多種適宜的尺度來描述 ( 黃慧萍,2003) 。多尺度分割不僅生成了有意義的影像對象,並且將原解析度的影像信息擴展到不同尺度上,實現了信息的多尺度表達與描述。多尺度分割表示在影像分割過程中採用不同的分割尺度值,所生成的對象大小取決於分割前確定的分割尺度值,其值越大,所生成對象的多邊形面積就越大而數目越少,反之多邊形面積越小,數目越多。因此,影像分割時尺度的選擇很重要,其直接決定了分類和信息提取的精度。
最優尺度的確定一直是面向對象分類方法的一個研究重點,但是最優尺度是相對的,是相對於某一特定目標或要求的,某一特定變數的最優分割尺度值不一定適用於其他變數,所以最優尺度只能是一個數值范圍。但是分割尺度的選擇應當遵守以下規則: 對於某一特定地物類別,最適合的尺度是指分割後的對象邊界清晰,能用一個或者多個對象來表達這種地物類別,既不能太破碎也不能出現混合類別對象,單個對象能夠很好地表達這種地物類別特有的屬性特徵,使其能很好地與其他地物類別區分開來 ( 黃慧萍,2003) 。一般來看,分割尺度越小,產生的對象就越 「純」,不同地物類別被劃分到單個對象的概率就越小,這樣信息提取的精度就越高; 但是分割尺度越小會導致同一地物類別對象之間差異性增加,不同地物類別對象之間的異質性反而降低,並不利於分類和識別,而且分割對象數目過多,過於破碎,反而增加了計算機的運算量,降低了提取的精度,並不可取,所以,必須在分割尺度和分類精度之間尋找到平衡點。
( 四) 多尺度分割的網路層次關系
不同的分割尺度生成相應的對象層,從而構建影像對象之間的層次等級網路,它以不同的空間尺度表達了影像所包含的信息,每一個對象都有它的鄰域 ( 左右) 對象、上層父對象和下層子對象 ( 圖 5 -4) 。對象網路層次結構按照從大到小、從上到下的方式安排:原始層 ( 像元層) 放在最底層,尺度最大的放在最高層。分割尺度較小的層中包含的對象數量較多,每個對象包含的像元數較少; 而分割尺度較大的層中,單個對象包含的像元數目比較多,而包含的對象數量比較少。在這個對象網路層次結構中,每一個對象都包含了鄰域對象、下層子對象和上層父對象之間復雜的屬性關系,在處理這些關系的時候,上、下層次對象間的關系顯得尤為重要,因為通常可以根據父對象的屬性確定子對象類別、根據子對象的平均屬性對父對象的紋理屬性進行分類以及根據已確定類別的子對象組成對父對象進行分類等。此外,相鄰對象也十分重要,因為如果有些對象的光譜、紋理和形狀信息都十分相似,若以它們的對象作為分類判定的一個標准,則信息提取就容易得多。
圖 5 -4 多尺度分割的網路層次結構圖
( 五) 基於異質性最小原則的區域合並演算法
多尺度分割採用的是基於異質性最小原則的區域合並演算法,其基本思想是把具有相同或相似性質的相鄰像元集合起來組成區域多邊形 ( 對象) 。首先在每個需要分割的區域中找一個種子像元作為生長起點,然後將種子像元鄰域中與種子像元有相同或相似性質的像元合並到種子像元所在的區域中,將這些新的像元當作新的種子像元繼續進行上面的過程,直到再沒有滿足條件的像元,由此生成一個區域 ( 對象) ( 章毓晉,2000) 。區域合並演算法的目的是實現分割後影像對象的權重異質性最小,如果僅考慮光譜異質性最小會導致分割後的對象邊界比較破碎,因此,需要把光譜異質性的標准和空間異質性的標准配合使用。在分割前,需要首先確定影響異質性大小的光譜因子和形狀因子,因為只有同時滿足光譜異質性、光滑度異質性和緊致度異質性最小,才能使整幅影像中所有對象的平均異質性最小 ( 戴昌達等,2004) 。
( 六) 模糊分類方法
面向對象的遙感影像分類方法採用的是基於模糊邏輯分類系統的模糊數學分析方法。模糊理論是由美國加州伯克萊分校 Zadeh 教授於 1965 年提出的,主要用來處理模糊不清、不嚴密和不明確的問題。模糊性是客觀世界存在的普遍現象 ( 陳文凱,2007) ,遙感影像中的模糊性主要表現在一個對象 ( 像元) 內可能出現多個地物類別在這種情況下如何確定其歸屬。
模糊分類系統一般由模糊化、模糊推理和去模糊三個部分組成。模糊化就是把特徵值向模糊值轉化的過程,實質上是一個特徵標准化的過程,成員函數是一個模糊表達式,能把任意特徵值范圍轉換為 [0,1] 這個統一的范圍。模糊推理是指對模糊集合建立相關的模糊判斷規則並進行最終推理。去模糊實際上是通過模糊推理以及綜合評價方法最終確定結果的過程。
遙感影像經過分割後得到的對象不再是硬性地屬於某個特定的地物類別,而是在不同程度上與該類別相關,它們之間的關系不再是 「是」與 「非」的硬性關系,而是不確定的。模糊分類方法是一種量化不確定狀態的數學分析方法。採用模糊分類方法有以下三點優勢:① 特徵值向模糊值轉化,這實際上是一個特徵標准化的過程; ② 允許特徵之間的相互組合,甚至是范圍和大小迥異的特徵也可以組合起來作為分類的規則; ③ 提供了靈活的、可調整的特徵描述,通過模糊運算和層次分析,能夠進行復雜的分類和信息提取 ( 張永生等,2004) 。
本研究面向對象的地物分類方法技術流程如圖 5 -5 所示。
圖 5 -5 面向對象的地物分類方法技術流程圖
⑶ 「多尺度」目標檢測問題
在目標檢測任務中,被檢測目標的大小經常是不固定的,例如,自動駕駛相關檢測任務可能要同時檢測大卡車與小狗;工業質檢相關檢測任務可能要同時檢測布料的大面積撕裂與小穿孔;醫療病灶檢測任務可能要同時檢測大小不一的病灶。當被測物體尺度相差極大時,模型通常難以對極大和極小的目標同時進行檢測。
首先,我們需要明白為什麼被測物體尺度相差過大會導致模型精度降低。在物體檢測領域中,各個模型的骨幹網路,無外乎不是使用多層卷積逐步提取圖像深層信息,生成多層特徵圖,並基於深層特徵圖做定位、分類等進一步處理。
在這「由淺至深」的特徵提取過程中,淺層特徵具有較高的解析度,可以攜帶豐富的幾何細節信息,但感受野很小且缺乏語義信息,與之相反的是,深層特徵具備較大的感受野以及豐富的語義信息,但解析度不高,難以攜帶幾何細節信息。此時假設我們將模型繼續加深,超深層特徵中將具有極大的感受野,被測物體的語義信息也會因被周遭環境信息所稀釋而降低。
如果訓練數據中同時包含尺度極大和極小的被測物體,那麼會發生什麼呢?
如上圖所示,假設模型一共有100層,大小目標的細節信息都隨著模型層數的加深而衰退。對於語義信息而言,由於小目標尺度小,隨著模型層數的增多(下采樣次數的增多),語義信息可能在25層即提取完畢,之後隨著層數的繼續增加,小目標的語義信息也會快速被環境信息所稀釋;而大目標尺度大,可能要在50層才能提取到足夠的語義信息,但此時小目標的語義信息已經丟失的差不多了。
那麼這個網路的深度應定為25層,還是50層,亦或是37層呢?定25層則對小目標的檢測效果好而大目標檢測能力差;定50層則反之;定37層則兩類目標的檢測能力較為均衡但都不在最好的檢測狀態。而這就是「多尺度」目標檢測問題的根源所在。
以下是面對尺度變化范圍過大導致精度降低的幾種常見策略。
由同一圖像生成的多張不同解析度圖像的集合,由大到小摞在一起,就是圖像金字塔。圖像金字塔可以通過對圖像不斷地進行梯次向下采樣,直至達到某個終止條件而獲得,這個過程看似十分簡單,但是它可以十分有效的從多解析度的角度來解釋圖像。圖像金字塔的底部是待處理圖像的高解析度表示,而頂部是圖像的低解析度近似。
使用圖像金字塔來解決「被測物體尺度變化幅度大導致模型精度降低「問題的過程可以看做是:將一張圖片處理成圖片金字塔後,隨著金字塔層級的變化,單個被測物體也會生成由大到小的多種尺度。在將這些不同尺度的圖片傳入模型之後,即使模型只擅長對某一尺度范圍內的物體進行識別,不論被測物大或小,總能在金字塔的某一層中被縮放至模型擅長處理的尺度范圍內。請你思考一下,「圖像金字塔」方法有哪些優缺點?
這種處理方法雖然通過多尺度的特徵提取,解決了被測物體尺度變化范圍過大的問題,但是會大幅增加內存佔用量,導致復雜的網路難以進行訓練;會大幅增加模型運算量,導致模型推理時間變長。
金字塔特徵層級可以看做是一個特徵圖化的圖像金字塔。模型一般淺層的特徵圖較大,後面會逐漸採用stride=2的卷積或者池化來降低特徵圖大小,可將前面較大的特徵圖和後面較小的特徵圖都用來做檢測。
單次檢測器模型(SSD)就嘗試使用了金字塔特徵層級的結構,SSD的「附加特徵層(Extra Feature Layers)」中的特徵圖經由多次下采樣,形成了不同尺度的4層特徵圖,而後在正向傳播過程中重復使用這四層特徵圖分別進行預測,因此「金字塔特徵層級」不會增加模型運算量,可看作是零計算成本的。但是與此同時,SSD沒有重復使用VGG-Base中的特徵圖,而是再網路中的最高層之後添加幾個新層,以此構建金字塔,因此它錯過了重復使用特徵層級中更高解析度特徵圖的機會,但這些更高解析度的特徵圖對於檢測小目標很重要。
FPN的全稱是Feature Pyramid Networks,即「特徵金字塔網路」,總體結構如上圖所示。FPN是一個利用深度卷積神經網路中固有的多尺度特徵圖,通過加入側向連接和上采樣,來以極小的附加計算量構建不同尺度的具有高級語義信息的特徵金字塔的網路結構。
對於物體檢測模型而言,FPN結構並不是模型中獨立的一個模塊,而是作為原始Backbone的附加項,融合在卷積神經網路之中。FPN結構可分為Bottom-up pathway和Top-down pathway and lateral connections兩條主線,下面將以ResNet作為原始Backbone,為大家講解FPN結構是如何運作的。
Bottom-up pathway即為由下至上的通路,也就是FPN結構圖左側的結構,它等價於標准ResNet骨幹網路。首先回顧一下ResNet網路結構:
ResNet18網路的原始輸入大小是(224x224),隨後經由stride=2的卷積層或池化層,將特徵圖大小逐步縮放至(112x112)、(56x56)、(28x28)、(14x14)、(7x7)(忽略最後的Average pool、Fc、Softmax層),此時的特徵圖根據解析度由大到小一次排開,就形成了一個特徵金字塔的結構。此時可將這每個block的輸出按順序標記為{C1,C2,C3,C4,C5}。
Top-down pathway and lateral connections又可分為「由上至下的通路」以及「側向連接」兩部分,也就是FPN結構圖右側的結構。這部分的運算規則可表示為:
運算規則1:通過側向連接取左側Bottom-up pathway的頂層輸出C5(size=7x7),經由1x1的卷積調整通道數(論文中將此通道數調整為256以便Faster RCNN後續計算)後,所得的結果即為Top-down pathway and lateral connections結構的頂層,可標記為M5(size=7x7)。
運算規則2:通過側向連接取左側的輸出C4(size=14x14),並將所得的M5通過最近鄰值插值法進行2倍上采樣(size=14x14),再將C4與上采樣的結果進行加和,所得結果可標記為M4(size=14x14)。
以此類推,後續還可運算求得M3(size=28x28)、M2(size=56x56)(M1理論上可求,但是由於C1僅由原圖經一次卷積所得,幾乎不具備任何語義信息,因此一般不做計算)。運算完成後,結構圖可表示為:
上述步驟所獲得的結果可按順序標記為{M2,M3,M4,M5}。但這還不是最終的輸出結果,因為上采樣過程中產生的混疊效應會對後續預測造成影響,所以還需對所有經由上采樣得到的特徵圖進行一次3x3的卷積,來消除混疊效應造成的影響並獲得最終的輸出結果,輸出結果可標記為{P2,P3,P4,P5}。由於M5並不是由上采樣所得,故只需對{M2,M3,M4}做卷積即可。
上圖展示的即為FPN結構的全部計算流程。
數據增強是一種提升小目標檢測性能的最簡單和有效的方法,通過不同的數據增強策略可以擴充訓練數據集的規模,豐富數據集的多樣性,從而增強檢測模型的魯棒性和泛化能力。常見的數據增強方法如下圖所示:
數據增強這一策略雖然在一定程度上解決了小目標信息量少、缺乏外貌特徵和紋理等問題,有效提高了網路的泛化能力,在最終檢測性能上獲得了較好的效果,但同時帶來了計算成本的增加。而且在實際應用中,往往需要針對目標特性做出優化,設計不當的數據增強策略可能會引入新的雜訊,損害特徵提取的性能,這也給演算法的設計帶來了挑戰。
生成對抗學習的方法旨在通過將低解析度小目標的特徵映射成與高解析度目標等價的特徵,從而達到與尺寸較大目標同等的檢測性能。前文所提到的數據增強、特徵融合和上下文學習等方法雖然可以有效地提升小目標檢測性能,但是這些方法帶來的性能增益往往受限於計算成本。例如Noh等人提出了新的特徵級別的超解析度方法,該方法通過空洞卷積的方式使生成的高解析度目標特徵與特徵提取器生成的低解析度特徵保持相同的感受野大小,從而避免了因感受野不匹配而生成錯誤超分特徵的問題。
「FPN是一個利用深度卷積神經網路中固有的多尺度特徵圖,通過加入側向連接和上采樣,來以極小的附加計算量構建不同尺度的具有高級語義信息的特徵金字塔的網路結構。」
1.FPN結構與標準的單特徵圖輸出的卷積神經網路進行比較:單特徵圖輸出的卷積神經網路只輸出最後一次特徵圖,容易丟失小目標的細節信息。
2.