1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        輕量級語義分割網(wǎng)絡:ENet

        共 3373字,需瀏覽 7分鐘

         ·

        2021-11-27 14:04

        點擊上方小白學視覺”,選擇加"星標"或“置頂

        重磅干貨,第一時間送達

        ? ?作者:石文華 ? ? ? ? ??

        作者&編輯:石文華? ? ? ? ? ?


        章節(jié)目錄

        • 介紹

        • 網(wǎng)絡結構

        • 設計選擇

        • 實驗

        • 代碼



        01

        介紹

        為了減少浮點運算的次數(shù)和內存占用以及推理時間,提出了Enet,采用編碼器-解碼器架構,相比SegNet,速度提升18倍,計算量減少75倍,參數(shù)量減少79倍。并且具有相當?shù)木?,它是一個實時的語義分割網(wǎng)絡結構。ENet分割圖像的示例如下圖所示:



        02

        網(wǎng)絡結構

        網(wǎng)絡結構如下表所示:

        網(wǎng)絡的輸入大小是512x512,有兩種網(wǎng)絡模塊,分別是initial和bottleneck,如下圖所示:


        圖(a)是initial模塊,MaxPooling為步長2的2x2的filter,卷積有13個filter,Concat后的特征映射總計為16個,起到特征提取、壓縮輸入圖像”體積”、除去圖像中的視覺冗余信息的作用。圖(b)是bottleneck 模塊,采用殘差連接的思想,包含三個卷積層:一個1 x 1的降維卷積,一個主卷積層,一個1 x 1擴張卷積,bn和PReLU放在中間。對于下采樣的bottleneck模塊,主分支添加最大池層,第一個1×1卷積被替換為步長為2的2×2卷積,中間的主卷積有三種可能的選擇:Conv普通卷積,asymmetric分解卷積(如分解成 5 × 1 和 1 × 5 ),Dilated空洞卷積。對于正則化方式,使用了Spatial Dropout,在bottleneck 2.0之前p=0.01,之后p=0.1。由網(wǎng)絡結構表格可以看到,初始階段包含一個塊,接著是階段1由5個bottleneck 組成,而階段2和階段3具有相同的結構,階段3在開始時沒有對輸入進行降采樣。階段1到3是編碼器。階段4和5屬于解碼器。


        細節(jié):

        (1)為了減少內核調用和內存操作,沒有在任何投影中使用bias,因為cuDNN會使用單獨的內核進行卷積和bias相加。這種方式對準確性沒有任何影響。

        (2)在每個卷積層和隨后的非線性之間,都使用了bn進行處理。

        (3)在解碼器中,用max unpooling代替max pooling,用無bias的spatial convolution代替padding。

        (4)在最后一個上采樣模塊中,沒有使用池化索引,因為初始塊在輸入幀的3個通道上操作,而最終輸出具有C特征映射(對象類的數(shù)量)。

        (5)出于性能原因,只在網(wǎng)絡的最后一個模塊設置一個完全卷積,僅這一項就占用了解碼器處理時間的很大一部分。



        03

        設計選擇

        ?1、Feature map resolution:

        ????語義分割中的圖像下采樣有兩個主要缺點:一是降低特征圖的分辨率意味著丟失精確邊緣形狀等空間信息;二是全像素分割要求輸出與輸入具有相同的分辨率。這意味著進行了多少次下采樣將需要同樣次數(shù)的上采樣,這將增加模型尺寸和計算成本。第一個問題在FCN中通過編碼器生成的特征映射之間的add得到了解決,在SegNet中通過保存在max pooling層中選擇的元素的索引,并使用它們在解碼器中生成稀疏的上采樣映射得到了解決。作者遵循SegNet方法,因為它減少了對內存需求。盡管如此,還是發(fā)現(xiàn)下采樣會損害準確性,需要盡可能的限制下采樣。當然,下采樣能夠擴大感受野,學習到更多的上下文特征用于逐像素的分類。

        ?2、Early downsampling:

        ????高分辨率的輸入會耗費大量計算資源,ENet的初始化模塊會大大減少輸入圖像的大小,并且只使用了少量的feature maps,初始化模塊充當良好的特性提取器,并且只對網(wǎng)絡稍后部分的輸入進行預處理。

        ?3、Decoder size:

        ??? ENet的Encoder和Decoder不對稱,由一個較大的Encoder和一個較小的Decoder組成,作者認為Encoder和分類模型相似,主要進行特征信息的處理和過濾,而decoder主要是對encoder的輸出做上采樣,對細節(jié)做細微調。

        4、Nonlinear operations:

        ????作者發(fā)現(xiàn)ENet上使用ReLU卻降低了精度。相反,刪除網(wǎng)絡初始層中的大多數(shù)ReLU可以改善結果。用PReLU替換了網(wǎng)絡中的所有ReLU,對每個特征映射PReLU有一個附加參數(shù),目的是學習非線性的負斜率。

        ?5、Information-preserving dimensionality changes:

        ????選擇在使用步長2的卷積的同時并行執(zhí)行池化操作,并將得到的特征圖拼接(concatenate)起來。這種技術可以將初始塊的推理時間提高10倍。此外,在原始ResNet架構中發(fā)現(xiàn)了一個問題。下采樣時,卷積分支中的第一個1×1卷積在兩個維度上以2的步長滑動,直接丟棄了75%的輸入。而ENet將卷積核的大小增加到了2×2,這樣可以讓整個輸入都參與下采樣,從而提高信息流和精度。雖然這使得這些層的計算成本增加了4倍,但是在ENET中這些層的數(shù)量很少,開銷并不明顯。

        6、Factorizing filters:

        ????卷積權重存在大量冗余,并且每個n x n卷積可以分解成一個n x 1濾波和一個1 x n濾波,稱為非對稱卷積。本文采用n = 5的非對稱卷積,它的操作相當于一個3 x 3的卷積,增加了模塊的學習能力并增加了感受野,更重要的是,在瓶頸模塊中使用的一系列操作(投影、卷積、投影)可以被視為將一個大卷積層分解為一系列更小和更簡單的操作,即其低階近似。這樣的因子分解可以極大地減少參數(shù)的數(shù)量,從而減少冗余。此外,由于在層之間插入的非線性操作,特征也變得更豐富了。

        7、Dilated convolutions:

        大的感受野對分割任務也是非常重要的,可以參考更多的上下文特征對像素進行分類,為了避免對特征圖進行過度的下采樣,使用空洞卷積,在最小分辨率下運行的階段中,幾個瓶頸模塊內的主要卷積層都使用了空洞卷積。在沒有增加額外計算開銷的情況下,便提高了準確度。當作者將空洞卷積與其他bottleneck(常規(guī)和非對稱卷積)交織時,即不是按順序排列它們,獲得了最佳效果。

        8、Regularization:

        為了防止過擬合,把Spatial Dropout放在卷積分支的末端,就在加法之前。



        04

        實驗

        1、性能比較:


        2、硬件要求比較:


        3、Cityscapes測試集上的結果比較:


        4、CamVid數(shù)據(jù)集上不同模型的比較:





        05

        代碼

        網(wǎng)絡結構部分的代碼詳見:

        https://github.com/cswhshi/segmentation/blob/master/ENet.py

        歡迎大家指正和star~



        下載1:OpenCV-Contrib擴展模塊中文版教程
        在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

        下載2:Python視覺實戰(zhàn)項目52講
        小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 94
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            按摩性高湖婬AAA片A片中国 | 丝袜足交诱惑 | 中日韩操逼视频 | 谁有免费黄色网址 | 操逼3级黄色毛片儿 | 亚洲传媒视频在线 | 婷婷五月天社区 | 免费黄色小说在线观看 | 男男动漫全程肉无删减 | 开心五月天激情网 |