吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從FPN到Mask R-CNN,Facebook的計算機視覺有多強

8g3K_AI_Thinker ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-27 14:38 ? 次閱讀

Feature Pyramid Networks( 特征金字塔網絡

首先,我們要介紹的是著名的特征金字塔網絡(這是發表在 CVPR 2017 上的一篇論文,以下簡稱FPN)。

如果你在過去兩年有一直跟進計算機視覺領域的最新進展的話,那你一定聽說過這個網絡的大名,并和其他人一樣等待著作者開源這個項目。FPN 這篇論文提出的一種非常棒的思路。我們都知道,構建一個多任務、多子主題、多應用領域的基線模型是很困難的。

FPN 可以視為是一種擴展的通用特征提取網絡(如 ResNet、DenseNet),你可以從深度學習模型庫中選擇你想要的預訓練的 FPN 模型并直接使用它!

通常,圖像目標有多個不同尺度和尺寸大小。一般的數據集無法捕捉所有的圖像屬性,因此人們使用圖像金字塔的方式,對圖像按多種分辨率進行降級,提取圖像特征,以方便 CNN 處理。但是,這種方法最大弊端是網絡處理的速度很慢,因此我們更喜歡使用單個圖像尺度進行預測,也就導致大量圖像特征的流失,如一部分研究者可能從特征空間的中間層獲取預測結果。

換句話說,以 ResNet 為例,對于分類任務而言,在幾個 ResNet 模塊后放置一個反卷積層,在有輔助信息和輔助損失的情況下獲取分割輸出(可能是 1x1 卷積和 GlobalPool),這就是大部分現有模型架構的工作流程。

回到我們的主題,FPN 作者提出一種新穎的思想,能夠有效改善現有的處理方式。他們不單單使用側向連接,還使用自上而下的路徑,并通過一個簡單的 MergeLayer(mode=『addition』)將二者結合起來,這種方式對于特征的處理是非常有效!由于初始卷積層提取到的底層特征圖(初始卷積層)的語義信息不夠強,無法直接用于分類任務,而深層特征圖的語義信息更強,FPN 正是利用了這一關鍵點從深層特征圖中捕獲到更強的語義信息。

此外,FPN 通過自上而下的連接路徑獲得圖像的 Fmaps(特征圖),從而能夠到達網絡的最深層。可以說,FPN 巧妙地將二者結合了起來,這種網絡結構能夠提取圖像更深層的特征語義信息,從而避免了現有處理過程信息的流失。

其他一些實現細節

  • 圖像金字塔:認為同樣大小的所有特征圖屬于同一個階段。最后一層的輸出是金字塔的 reference FMaps。如 ResNet 中的第 2、3、4、5 個模塊的輸出。你可以根據內存和特定使用情況來改變金字塔。

  • 側向連接:1x1 卷積和自上而下的路徑都經過 2× 的上采樣過程。上層的特征以自上而下的方式生成粗粒度的圖像特征,而側向連接則通過自下而上的路徑來添加更多細粒度的特征信息。在此我引用了論文中的一些圖片來幫助你進一步理解這一過程。

  • 在 FPN 的論文中,作者還介紹了一個簡單的 demo 來可視化這個想法的設計思路。

如前所述,FPN 是一個能夠在多任務情景中使用的基線模型,適用于如目標檢測、分割、姿態估計、人臉檢測及其他計算機視覺應用領域。這篇論文的題目是 FPNs for Object Detection,自 2017 年發表以來引用量已超過 100 次!

此外,論文作者在隨后的 RPN(區域建議網絡)和 Faster-RCNN 網絡研究中,仍使用 FPN 作為網絡的基線模型,可見 FPN的強大之處。以下我將列出一些關鍵的實驗細節,這些在論文中也都可以找到。

?

實驗要點

  • RPN:這篇論文中,作者用 FPN 來代替單個尺度 Fmap,并在每一級使用單尺度 anchor (由于使用了 FPN,因此沒必要使用多尺度的 anchor)。此外,作者還展示了所有層級的特征金字塔共享類似的語義信息。

  • Faster RCNN:這篇論文中,作者使用類似圖像金字塔的輸出方式處理這個特征金字塔,并使用以下公式將感興趣域(RoI)分配到特定的層級中。

  • ??,其中 w、h 分別表示寬度和高度,k 表示 RoI 所分配到的層級,k0 代表的是 w=224,h=224 時所映射到的層級。

  • Faster RCNN 在 COCO 數據集上取得當前最先進的實驗結果,沒有任何冗余的結構。

  • 論文的作者對每個模塊的功能進行了消融(ablation)研究,并論證了本文提出的想法。

  • 此外,還基于 DeepMask 和 SharpMask 論文,作者進一步展示了如何使用 FPN 生成分割的建議區域(segmentation proposal generation)。

對于其他的實現細節、實驗設置等內容,感興趣的同學可以認真閱讀下這篇論文。

實現代碼

  • 官方的Caffe2版本:

    https://github.com/facebookresearch/Detectron/tree/master/configs/12_2017_baselines

  • Caffe版本:https://github.com/unsky/FPN

  • PyTorch版本:https://github.com/kuangliu/pytorch-fpn (just the network)

  • MXNet版本:https://github.com/unsky/FPN-mxnet

  • Tensorflow版本:https://github.com/yangxue0827/FPN_Tensorflow

RetinaNet:Focal Loss 損失函數用于密集目標檢測任務

這個架構是由同一個團隊所開發,這篇論文[2]發表在 ICCV 2017 上,論文的一作也是 FPN 論文的一作。該論文中提出有兩個關鍵想法:通用損失函數Focal Loss(FL)和單階段的目標檢測器RetinaNet。兩者組合成的RetinaNet在COCO的目標檢測任務中表現得非常好,并超過了先前FPN所保持的結果。

Focal Loss

Focal Loss損失函數的提出來源于一個聰明又簡單的想法。如果你熟悉加權函數的話,那么你應該對Focal Loss并不陌生。該損失函數其實就是巧妙地使用了加權的損失函數,讓模型訓練過程更聚焦于分類難度高的樣本。其數學公式如下所示:

其中,γ 是一個可改變的超參數,pt 表示分類器輸出的樣本概率。將 γ 設置為大于 0,將會減小分類結果較好的樣本權重。α_t 表示標準加權損失函數中的類別權重,在論文中將其稱為 α-balanced 損失。值得注意的是,這個是分類損失,RetinaNet 將其與 smooth L1 損失結合,用于目標檢測任務。

RetinaNet

YOLO2 和 SSD 是當前處理目標場景最優的單階段(one-stage)算法。相繼的,FAIR 也開發了自己的單階段檢測器。作者指出,YOLO2 和 SSD 模型都無法接近當前最佳的結果,而RetinaNet 可以輕松地實現單階段的最佳的檢測結果,而且速度較快,他們將這歸功于新型損失函數(Focal Loss)的應用,而不是簡單的網絡結構(其結構仍以 FPN 為基礎網絡)。

作者認為,單階段檢測器將面臨很多背景和正負類別樣本數量不平衡的問題(而不僅僅的簡單的正類別樣本的不均衡問題),一般的加權損失函數僅僅是為了解決樣本數量不均衡問題,而Focal Loss 函數主要是針對分類難度大/小的樣本,而這正好能與 RetinaNet 很好地契合。

注意點:

  • 兩階段(two-stage)目標檢測器無需擔心正、負樣本的不均衡問題,因為在第一階段就將絕大部分不均衡的樣本都移除了。

  • RetinaNet 由兩部分組成:主干網絡(即卷積特征提取器,如 FPN)和兩個特定任務的子網絡(分類器和邊界框回歸器)。

  • 采用不同的設計參數時,網絡的性能不會發生太大的變化。

  • Anchor 或 AnchorBoxes 是與 RPN 中相同的 Anchor[5]。Anchor 的坐標是滑動窗口的中心位置,其大小、橫縱比(aspect ratio)與滑動窗口的長寬比有關,大小從 322 到 512 ,橫縱比取值為{1:2, 1:1, 2:1}。

  • 用 FPN 來提取圖像特征,在每一階段都有 cls+bbox 子網絡,用于給出 Anchor 中所有位置的對應輸出。

實現代碼

  • 官方的Caffe2版本:

    https://github.com/facebookresearch/Detectron/tree/master/configs/12_2017_baselines

  • PyTorch版本:https://github.com/kuangliu/pytorch-retinanet

  • Keras版本:https://github.com/fizyr/keras-retinanet

  • MXNet版本:https://github.com/unsky/RetinaNet

Mask R-CNN

正如上面所述,Mask R-CNN [3]也幾乎是同一個團隊開發的,并發表在 ICCV 2017 上,用于圖像的實例分割任務。簡單來說,圖像的實例分割不過就是不使用邊界框的目標檢測任務,目的是給出檢測目標準確的分割掩碼。這項任務想法簡單,實現起來也并不困難,但是要使模型正常運行并達到當前最佳的水準,或者使用預訓練好的模型來加快分割任務的實現等,想要做到這些可并不容易。

TL;DR:如果你了解 Faster R-CNN 的工作原理,那么 Mask R-CNN 模型對你來說是很簡單的,只需要在 Faster R-CNN 的基礎上添加一個用于分割的網絡分支,其網絡主體有 3 個分支,分別對應于 3 個不同的任務:分類、邊界框回歸和實例分割。

值得注意的是,Mask R-CNN 的最大貢獻在于,僅僅使用簡單、基礎的網絡設計,不需要多么復雜的訓練優化過程及參數設置,就能夠實現當前最佳的實例分割效果,并有很高的運行效率。

我很喜歡這篇論文,因為它的思想很簡單。但是,那些看似簡單的東西卻伴有大量的解釋。例如,多項式掩碼與獨立掩碼的使用(softmax vs sigmoid)。

此外,Mask R-CNN 并未假設大量先驗知識,因此在論文中也沒有需要論證的內容。如果你有興趣,可以仔細查看這篇論文,你可能會發現一些有趣的細節。基于你對 Faster RCNN已有了基礎了解,我總結了以下一些細節幫助你進一步理解 Mask R-CNN:

  • 首先,Mask R-CNN 與 Faster RCNN 類似,都是兩階段網絡。第一階段都是 RPN 網絡。

  • Mask R-CNN 添加一個并行分割分支,用于預測分割的掩碼,稱之為 FCN。

  • Mask R-CNN 的損失函數由 L_cls、L_box、L_maskLcls、L_box、L_mask 四部分構成。

  • Mask R-CNN 中用 ROIAlign 層代替 ROIPool。這不像 ROIPool 中那樣能將你的計算結果的分數部分(x/spatial_scale)四舍五入成整數,而是通過雙線性內插值法來找出特定浮點值對應的像素。

  • 例如:假定 ROI 高度和寬度分別是 54、167。空間尺度,也稱為 stride 是圖像大小 size/Fmap 的值(H/h),其值通常為 224/14=16 (H=224,h=14)。此外,還要注意的是:

    • ROIPool: 54/16, 167/16 = 3,10

    • ROIAlign: 54/16, 167/16 = 3.375, 10.4375

    • 現在,我們使用雙線性內插值法對其進行上采樣。

    • 根據 ROIAlign 輸出的形狀(如7x7),我們可以用類似的操作將對應的區域分割成合適大小的子區域。

    • 使用 Chainer folks 檢查 ROIPooling 的 Python 實現,并嘗試自己實現 ROIAlign。

    • ROIAlign 的實現代碼可在不同的庫中獲得,具體可查看下面給出的代碼鏈接。

  • Mask R-CNN 的主干網絡是 ResNet-FPN。

此外,我還曾專門寫過一篇文章介紹過Mask-RCNN的原理,博客地址是:https://coming.soon/。

實現代碼

  • 官方的Caffe2版本:

    https://github.com/facebookresearch/Detectron/tree/master/configs/12_2017_baselines

  • Keras版本:https://github.com/matterport/Mask_RCNN/

  • PyTorch版本:https://github.com/soeaver/Pytorch_Mask_RCNN/

  • MXNet版本:https://github.com/TuSimple/mx-maskrcnn

Learning to Segment Everything

正如題目 Learning to Segment Everything 那樣,這篇論文是關于目標分割任務,具體來說是解決實例分割問題。計算機視覺領域中標準的分割數據集對于現實的應用而言,數據集的數量都太有限了,即使是當前最流行、最豐富的 COCO 數據集[7],也僅有 80 種目標類別,這還遠遠無法達到實用的需求。

相比之下,目標識別及檢測的數據集,如 OpenImages[8]就有將近 6000 個分類類別和 545 個檢測類別。此外,斯坦福大學的另一個數據集 Visual Genome 也擁有近 3000 個目標類別。但由于這個數據集中每個類別所包含的目標數量太少了,即使它的類別在實際應用中更加豐富、有用,深度神經網絡也無法在這樣的數據集上取得足夠好的性能,因此研究者通常不喜歡選用這些數據集進行目標分類、檢測問題的研究。值得注意的是,這個數據集僅有 3000 個目標檢測(邊界框)的標簽類別,而沒有包含任何目標分割的標注,即無法直接用于目標分割的研究。

下面來介紹我們要講的這篇論文[4]。

就數據集而言,實際上邊界框與分割標注之間并不存在太大的區別,區別僅在于后者比前者的標注信息更加精確。因此,本文的作者正是利用 Visual Genome[9]數據集中有 3000 個類別的目標邊界框標簽來解決目標分割任務。我們稱這種方法為弱監督學習,即不需要相關任務的完整監督信息。如果他們使用的是 COCO + Visual Genome 的數據集,即同時使用分割標簽和邊界框標簽,那么這同樣可稱為是半監督學習。

讓我們回到主題,這篇論文提出了一種非常棒的思想,其網絡架構主要如下:

  • 網絡結構建立在 Mask-RCNN 基礎上。

  • 同時使用有掩碼和無掩碼的輸入對模型進行訓練。

  • 在分割掩碼和邊界框掩碼之間添加了一個權重遷移函數。

  • 當使用一個無掩碼的輸入時,將

  • 如下圖所示:A 表示 COCO 數據集,B 表示 Visual Genome 數據集,對網絡的不同輸入使用不同的訓練路徑。

  • 將兩個損失同時進行反向傳播將導致

    • Fix:當反向傳播掩碼損失時,要計算預測掩碼的權重 τ 關于權重遷移函數參數 θ 的梯度值,而對邊界框的權重

    • ,其中 τ 表示預測掩碼的權重值。?

由于 Visual Genome 數據集沒有分割標注,模型無法給出在該數據集上目標分割的準確率,因此作者在其他的數據集上展示模型的驗證結果。PASCAL-VOC 數據集有 20 個目標類別,這些類別全部包含在 COCO 數據集中。因此,對于這 20 種類別,他們使用 PASCAL-VOC 數據集的分割標注及 COCO 數據集中相應類別的邊界框標簽對模型進行訓練。

論文展示了在 COCO 數據集中這 20 個類別上,模型實例分割的結果。此外由于兩個數據集包含兩種不同的真實標簽,他們還對相反的情況進行了訓練,實驗結果如下圖所示。

?


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Facebook
    +關注

    關注

    3

    文章

    1429

    瀏覽量

    55000
  • 計算機視覺
    +關注

    關注

    8

    文章

    1700

    瀏覽量

    46130

原文標題:從FPN到Mask R-CNN,一文告訴你Facebook的計算機視覺有多強

文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割(含源碼)

    使用LabVIEW實現Mask R-CNN圖像實例分割
    的頭像 發表于 03-21 13:39 ?2449次閱讀
    手把手教你使用LabVIEW實現<b class='flag-5'>Mask</b> <b class='flag-5'>R-CNN</b>圖像實例分割(含源碼)

    機器視覺計算機視覺的關系簡述

    初涉機器視覺領域,總是容易將其與計算機視覺這一概念混淆。實際上兩者確實存在一定的相同之處,但也不能因此而將這兩者視為同一概念,因為這兩者還存在著顯著的差別。而與此同時,兩者也還有著密不可分的關系
    發表于 05-13 14:57

    計算機視覺領域的關鍵技術/典型算法模型/通信工程領域的應用方案

    Mask R-CNN算法有著較強的魯棒性,可以有效解決天線數量檢測任務(圖12)。表1 天線目標的檢測結果圖12天線數量目標結果示例4、結束語計算機視覺是通信與信息系統領域一個方興未
    發表于 12-03 13:58

    深度學習與傳統計算機視覺簡介

    轉折點,我們的設備開始我們的汽車開始引起人們的注意。越來越多的計算機視覺算法正被部署諸如無人機、安全攝像頭、
    發表于 12-23 06:17

    Mask R-CNN:自動視頻中制作目標物體的GIF動圖

    用深度學習模型——Mask R-CNN,自動視頻中制作目標物體的GIF動圖。
    的頭像 發表于 02-03 14:19 ?1.1w次閱讀

    什么是Mask R-CNNMask R-CNN的工作原理

    掩模(mask)。和前兩個輸出不同,這個新輸出需要提取更精細的空間布局,為此,Mask R-CNN在Faster-RCNN上添加一個分支網絡:Fully Convolution Networ(FCN)。
    的頭像 發表于 07-20 08:53 ?6.8w次閱讀

    引入Mask R-CNN思想通過語義分割進行任意形狀文本檢測與識別

    網絡架構由四部分組成,骨干網feature pyramid network (FPN) ,文本候選區域生成網絡region proposal network (RPN) ,文本包圍盒回歸網絡Fast R-CNN ,文本實例分割與字符分割網絡
    的頭像 發表于 08-07 14:24 ?1.4w次閱讀

    計算機視覺與機器視覺區別

     “計算機視覺”,是指用計算機實現人的視覺功能,對客觀世界的三維場景的感知、識別和理解。計算機視覺
    的頭像 發表于 12-08 09:27 ?1.3w次閱讀

    手把手教你操作Faster R-CNNMask R-CNN

    R-CNN又承繼于R-CNN,因此,為了能讓大家更好的理解基于CNN的目標檢測方法,我們R-CNN開始切入,一直介紹
    的頭像 發表于 04-04 16:32 ?1.3w次閱讀

    Facebook AI使用單一神經網絡架構來同時完成實例分割和語義分割

    這一新架構“全景 FPN ”在 Facebook 2017 年發布的 Mask R-CNN 的基礎上添加了一個用于語義分割的分支。這一新架構可以同時對圖像進行實例和語義分割,而且精確度
    的頭像 發表于 04-22 11:46 ?2938次閱讀
    <b class='flag-5'>Facebook</b> AI使用單一神經網絡架構來同時完成實例分割和語義分割

    計算機視覺入門指南

    這是一篇計算機視覺入門指南,概念、原理、用例等角度介紹了計算機視覺。 「機器能夠模擬人類視覺
    的頭像 發表于 11-27 09:52 ?2900次閱讀

    基于Mask R-CNN的遙感圖像處理技術綜述

    較為密集,且容易與港口混合。當前對艦船檢測的輸岀結果主要是檢測框,缺少對艦船掩碼的輸岀,使得無法全面分析岀模型存在的不足;冋時,由于遙感圖像中的艦船停靠密集,容易產生漏檢問題。為解決上述問題,利用 Mask r-cnn對艦
    發表于 05-08 16:39 ?3次下載

    用于實例分割的Mask R-CNN框架

    是應用于每個 RoI 的小型 FCN,以像素像素的方式預測分割掩碼。鑒于 Faster R-CNN 框架,Mask R-CNN 易于實現和訓練,這有助于廣泛的靈活架構設計。此外,掩碼
    的頭像 發表于 04-13 10:40 ?2723次閱讀

    PyTorch教程14.8之基于區域的CNN(R-CNN)

    電子發燒友網站提供《PyTorch教程14.8之基于區域的CNN(R-CNN).pdf》資料免費下載
    發表于 06-05 11:09 ?0次下載
    PyTorch教程14.8之基于區域的<b class='flag-5'>CNN</b>(<b class='flag-5'>R-CNN</b>)

    PyTorch教程-14.8。基于區域的 CNN (R-CNN)

    14.8。基于區域的 CNN (R-CNN)? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook in Colab
    的頭像 發表于 06-05 15:44 ?699次閱讀
    PyTorch教程-14.8。基于區域的 <b class='flag-5'>CNN</b> (<b class='flag-5'>R-CNN</b>)
    澳门百家乐网上赌| 大发888棋牌下载| 天猫国际娱乐城| 吉利百家乐官网的玩法技巧和规则 | 基础百家乐官网的玩法技巧和规则| 郑州水果机遥控器| 澳门档百家乐官网的玩法技巧和规则| 网络百家乐破解平台| 百家乐官网的寻龙定穴| 百家乐心态研究| 嵊泗县| 最佳场百家乐的玩法技巧和规则 | 大发888手机版官网| 大连百家乐官网食品| 大发888官方sscptdf88yb| 百家乐官网赌博代理荐| 百家乐获胜秘决百家乐获胜秘诀| 百家乐官网概率怎么算| 北京太阳城小区| 百家乐官网那个娱乐城信誉好| 235棋牌游戏| 百家乐二代皇冠博彩| 威尼斯人娱乐城| 郑州百家乐高手| 在线百家乐官网官方网| 威尼斯人娱乐场安全吗| 苏尼特左旗| 澳门百家乐游戏| 大世界百家乐娱乐城| 蒙特卡罗网上娱乐| 百家乐优惠现金| 百家乐官网路单网下载| 大发888注册bet| 百家乐分析博彩正网| 网上百家乐官网是假| 威尼斯人娱乐天上人间| 百家乐官网大西洋城| 斗地主棋牌游戏| 新锦江百家乐娱乐场| 新东方百家乐官网的玩法技巧和规则 | 百家乐官网网娱乐城|