PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%


相信很多人都看過電影《變形金剛》中大黃蜂變身的跑車飛馳在公路之上,可是大家有沒有仔細想過,大黃蜂是怎麼知道馬路中間是黃實線還是黃虛線,到底能不能壓線,能不能掉頭呢?要知道差一點沒分清楚,那就是200塊錢罰3分的下場。

說到這裡那些瞭解圖計算機視覺的小夥伴們應該就會想到這個領域的核心研究方向之一的圖像分割技術(Image Segmentation)。


什麼是圖像分割?


圖像分割是一種將圖像分成若干個特定的、具有獨特性質的區域並提取出感興趣目標的技術和過程。從數學角度來看,圖像分割是將圖像劃分成互不相交的區域的過程。


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

▲ 圖1 圖像分割應用效果圖


如圖1所示,隨著人工智能的發展,圖像分割技術已經在交通控制、醫療影像和工業用表識別等多個領域獲得了廣範的應用。為了讓廣大開發者可以方便快捷的將圖像分割技術應用到自己的業務中,飛槳開發了一整套圖像分割模型庫,這就是我們接下來要介紹的 PaddleSeg。


什麼是 PaddleSeg?


早在2019年秋季的時候飛槳就已經正式發佈了圖像分割模型庫 PaddleSeg,這是一款如同工具箱般便捷實用的圖像分割開發套件,該套件具有模塊化設計、豐富的數據增強、高性能、工業級部署四大特點:


  • 模塊化設計:支持 U-Net、DeepLabv3+、ICNet 和 PSPNet 等多種主流分割網絡,結合預訓練模型和可調節的骨幹網絡,可以滿足不同性能和精度的要求;PaddleSeg 提供了不同的損失函數,如 Dice Loss、BCE Loss 等類型,通過選擇合適的損失函數,可以強化小目標和不均衡樣本場景下的分割精度。
  • 豐富的數據增強:基於百度視覺技術部的實際業務經驗,內置10+種數據增強策略,可結合實際業務場景進行定製組合,提升模型泛化能力和魯棒性。
  • 高性能:PaddleSeg 支持多進程 IO、多卡並行、跨卡 Batch Norm 同步等訓練加速策略,結合飛槳開源框架的顯存優化功能,可以大幅度減少分割模型的顯存開銷,更快完成分割模型訓練。
  • 工業級部署:全面提供服務端和移動端的工業級部署能力,依託飛槳高性能推理引擎和高性能圖像處理,開發者可以輕鬆完成高性能的分割模型部署和集成。並且通過 Paddle Lite,用戶可以在移動設備或者嵌入式設備上完成輕量級、高性能的人像分割模型部署。

正因為上述特點,用戶僅需要少量代碼或指令就可以根據使用場景從 PaddleSeg 中選擇並組合出合適的圖像分割方案,從而更快捷高效地開發出從訓練到部署的全流程圖像分割應用。

如今 PaddleSeg 升級了!


為了不斷追求卓越,此次隨著飛槳開源框架升級到1.7版本,PaddleSeg 再度重磅出擊。如圖2所示,如今的 PaddleSeg 無論在性能上,還是在模型豐富度上都做出了提升!


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

▲ 圖2 飛槳開源框架1.7版本上的 PaddleSeg 架構圖


新增高精度圖像分割模型 HRNet


HRNet(High-Resolution Net)模型最大的特點就是可以使圖像在整個處理過程中保持高分辨率特徵,

這和大多數模型所使用的從高分辨率到低分辨率網絡(high-to-low resolution network)產生的低分辨率特徵中恢復高分辨率特徵有所不同。

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

▲ 圖3 HRNet 網絡結構圖


如圖3所示,HRNet 以高分辨率子網開始作為第一階段,逐個添加由高到低分辨率子網以形成更多階段,同時並行連接多分辨率子網絡。

在整個過程中反覆交換並行多分辨率子網絡中的信息來進行重複的多尺度融合。在像素級分類、區域級分類和圖像級分類任務中,都證明了這些方法的有效性。

這樣的網絡結構特點使得 HRNet 網絡能夠學習到更豐富的語義信息和細節信息,因此 HRNet 在人體姿態估計、語義分割和目標檢測領域都取得了顯著的性能提升。如下表所示,基於 Cityscapes 數據驗證集進行測評,HRNet 的分割精度最高。


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

  • HRNet 模型使用教程請參見:https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.4.0/turtorial/finetune_hrnet.md


新增實時語義分割模型 Fast-SCNN


Fast-SCNN 是一個面向實時的快速語義分割模型,其網絡結構如圖4所示,主要包含了四個部分,分別是學習下采樣模塊、全局特徵提取模塊、特徵融合模塊和最後的分類器模塊。在雙分支的結構基礎上,Fast-SCNN 使用了大量的深度可分離卷積和逆殘差(inverted-residual)模塊,並且使用特徵融合構造金字塔池化模塊(Pyramid Pooling Module)來融合上下文信息。這使得 Fast-SCNN 在保持高效的情況下能學習到豐富的細節信息。


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

▲ 圖4 Fast-SCNN 網絡結構圖


Fast-SCNN 最大的特點是“小快靈”,即該模型在推理計算時僅需要較小的 FLOPs,就可以快速推理出一個不錯的結果。如下表所示,在不需要預訓練模型的情況下,輸入尺寸為(1024,2048)的圖片推理時, PaddleSeg 實現的 Fast-SCNN 的 FLOPs 僅為7.21 G,推理時間只需要6.28 ms,而在基於 Cityscapes 驗證數據集進行評測時,其 mIoU 評價能夠達到0.6964,可見 Fast-SCNN 不僅速度快,而且效果良好。


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

  • Fast-SCNN 模型使用教程請參見:https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.4.0/turtorial/finetune_fast_scnn.md


分割模型壓縮方案助力模型部署 FLOPs 減少51%


在某些場景中,語義分割模型在實際部署時,可能會由於耗時、體積等多方面因素導致模型無法滿足要求。此時模型壓縮通常是解決內存佔用和速度問題的有效手段。飛槳模型壓縮工具 PaddleSlim 為 PaddleSeg 提供了多種分割模型的壓縮方案,保障 PaddleSeg 可以順利部署成功。

以 L1 Pruning 裁剪方案為例,該方案通過裁剪掉卷積核來減小模型體積並降低模型計算複雜度,是一種常用的有效裁剪方案。其原理如下所示。


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

▲ 圖5 L1 Pruning 原理圖


以圖5為例,ni 是第 i 個卷積層的輸入通道數,wi 和 hi 是輸入特徵圖的寬和高。卷積層將輸入維度為 Xi 的特徵圖轉化為維度為 Xi+1 的輸出特徵圖,且該特徵圖可以直接當作下一個卷積層的輸入。該卷積核的維度為

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

,卷積層的加乘操作次數為

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

。如果將圖中的第一個卷積核裁剪掉,則對應的一個特徵圖通道就沒有了,這樣將減少

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

次運算。

同時由於此處輸出通道數的減少,將會連鎖導致下一層的卷積通道維度的縮減,又減少了

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

次運算。這是因為當圖中第一個卷積層的卷積核被剪掉以後,第二層保留的卷積核參數不僅是在卷積核個數這個維度上縮減了,還和第一個卷積層剪掉的卷積核個數有關,因此第一層卷積核的裁剪會間接導致了第二層卷積核在通道維度的縮減。


那麼如何確定哪些卷積核可以被裁剪呢?其具體過程如下:


  1. 對每個卷積核(ni × h × w)計算 h 和 w 維度的 L1 範數,從而得到通道維度上的特徵(ni × 1)。
  2. 對得到的特徵(ni × 1)進行排序,這個排序就可以看成是通道維度上的特徵重要性排序。
  3. 最後根據排序的結果和需要被裁剪的卷積核比例,裁剪掉排序中比較靠後的不重要的卷積核。

如下表所示,實驗表明在 Cityscapes 數據集上,使用 PaddleSlim 對 Fast-SCNN 模型進行裁剪,能夠確保在模型精度幾乎無損的情況下,減少51%的 FLOPs(每秒浮點運算次數),可以有效的提高運算速度。

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%


如果您想詳細瞭解更多飛槳的相關內容,請參閱以下文檔。您還可以加入官方 QQ 群,將遇到許多志同道合的深度學習同學。點擊“閱讀原文”即可進入飛槳 PaddleSeg 項目頁面。


  • 官方 QQ 群:703252161
  • 官網地址:https://www.paddlepaddle.org.cn
  • 飛槳 PaddleSeg 項目地址:https://github.com/PaddlePaddle/PaddleSeg
  • 飛槳開源框架項目地址:GitHub:https://github.com/PaddlePaddle/PaddleGitee:https://gitee.com/paddlepaddle/Paddle


PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%

PaddleSeg圖像分割庫再添新武器,新增壓縮部署方案FLOPs降低51%


分享到:


相關文章: