Mask R-CNN官方實現「又」來了!基於PyTorch,訓練速度是原來2倍

2021-01-11 量子位

曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI

來自官方的Mask R-CNN實現終於「又」來了!PyTorch官方Twitter今天公布了一個名為Mask R-CNN Benchmark的項目。

10個月前Facebook曾發布過名叫Detecron的項目,也是一款圖像分割與識別平臺,其中也包含Mask R-CNN。不過它是基於Caffe 2深度學習框架編寫的。這一次,在Caffe2項目併入PyTorch半年之後,Facebook換上了更受歡迎的PyTorch框架。

除了更改框架,Mask R-CNN Benchmark相比它的「前輩」Detectron,訓練速度提高了一倍。

Detectron效果輸出圖

Mask R-CNN Benchmark是一個完全由PyTorch 1.0寫成,快速、模塊化的Faster R-CNN和Mask R-CNN組件。該項目旨在讓用戶更容易地創建一種模塊,實現對圖片中物品的識別與分割。

負責這一項目的Facebook AI工程師Francisco Massa還在個人Twitter發了張自拍照,並使用新工具對圖片中的物品進行了識別,尷尬的是好像有些對象被識別錯誤:

Francisco Massa自拍照

第三方項目

在Facebook官方推出Mask R-CNN Benchmark之前,程式設計師們一直希望能用更流行的PyTorch取代Caffe 2實現Mask R-CNN,今年7月GitHub上有一名印度小哥完成任務。

另外,商湯和香港中文大學的多媒體實驗室也開源了一個類似項目:mmdetection。它支持Faster R-CNN、Mask R-CNN、RetinaNet等等,相比Facebook的Detecron有5%到20%的性能提升。這個模型還在2018年的COCO Detection競賽中拿下了冠軍。

那麼今天Facebook發布的Mask R-CNN Benchmark相比前兩者有哪些優點呢?

亮點

PyTorch 1.0編寫:RPN、Faster R-CNN和Mask R-CNN均可實現,達到甚至超出Detectron的準確度快速:訓練速度是Detectron的2倍,比mmdetection高30%。顯存效率更高:大約比mmdetection少使用500MB顯存支持多GPU訓練與推斷支持以CPU進行推斷支持圖像批處理:可分批分GPU對多圖進行推斷提供預訓練模型:針對幾乎所有引用Faster RCNN和Mask RCNN的架構PyTorch官方Twitter轉發了該項目,並希望mmdetection等項目都能使用一下。

安裝小貼士

使用Mask R-CNN Benchmark需要安裝以下組件:

PyTorch 1.0orchvisioncocoapiyacsmatplotlibOpenCV(可選)R-CNN發展歷史

R-CNN是卷積神經網絡(CNN)在圖像識別領域的應用,Facebook AI研究團隊在這條到道路上做出了頗多貢獻,其中不得不提一位大神:Ross Girshick。他發明了RCNN,又提出速度更快的Fast R-CNN。2016年,微軟研究院提出了Faster R-CNN,降低了在邊框搜索上的運算量,進一步提高了算法的速度。2017年,Facebook AI研究團隊又再次提出了Mask R-CNN:通過添加與現有分支並行的對象掩碼(object mask)分支,以增強Faster RCNN在邊框識別上的性能。

傳送門

Mask R-CNN Benchmark項目地址:https://github.com/facebookresearch/maskrcnn-benchmark

印度小哥的Mask R-CNN項目地址:https://github.com/wannabeOG/Mask-RCNN

Detecron項目地址:https://github.com/facebookresearch/Detectron

mmdetection項目地址:https://github.com/open-mmlab/mmdetection

相關焦點

  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    而 Detectron2 則是剛推出的新版 PyTorch 1.3 (詳情查看:https://www.leiphone.com/news/201910/9J4PTd833WMwdVoQ.html)中一重大新工具,它源於 maskrcnn 基準測試,但它卻是對先前版本 detectron 的一次徹底重寫。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    因此,基於深度學習的目標檢測方法得到了廣泛應用,該框架包含有 Faster R-CNN,Yolo,Mask R-CNN 等,圖 1 和圖 2 分別顯示的是基於 PaddlePaddle 深度學習框架訓練的 Faster R-CNN 和 Mask R-CNN 模型對圖片中的物體進行目標檢測。
  • 在多目標識別方面,maskr-cnn已經取得了一些進展
    maskr-cnn是業界首款實用的全卷積神經網絡模型,為計算機視覺中的多目標識別與自動對焦,開創性的成為計算機視覺發展的新方向。無論是基於計算機視覺的自動對焦系統、模式識別系統,還是圖像識別,maskr-cnn都是有標誌性意義的。它強調平滑準確的計算輸入、檢測框和定位點,訓練過程與特徵提取過程採用多級感受野融合技術進行自動優化提高目標解析度及精度,以及做出精度更高的語義推理判斷。
  • FAIR最新視覺論文集錦:FPN,RetinaNet,Mask 和 Mask-X RCNN(含代碼...
    深究細節之前先強調一點,FPN 是基於一個特徵提取網絡的,它可以是常見的 ResNet 或者 DenseNet 之類的網絡。在你最常用的深度學習框架下取一個預訓練模型,就可以用來實現 FPN 了。   圖像裡的目標尺寸大小各種各樣,數據集裡的物體不可能涵蓋所有的尺度,所以人們利用圖像金字塔(不同解析度的下採樣)來幫助 CNN 學習。
  • .| 深度學習理論與實戰:提高篇(14)——​Mask R-CNN代碼簡介
    但是這是用Caffe2實現的,本書沒有介紹這個框架,因此我們介紹Tensorflow和Keras的版本實現的版本。但是建議有興趣的讀者也可以嘗試一下Facebook提供的代碼。下面我們來生成一些圖片看看。
  • 潮科技行業入門指南 | 深度學習理論與實戰:提高篇(14)——Mask R...
    但是這是用Caffe2實現的,本書沒有介紹這個框架,因此我們介紹Tensorflow和Keras的版本實現的版本。但是建議有興趣的讀者也可以嘗試一下Facebook提供的代碼。下面我們來生成一些圖片看看。
  • 從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)
    要想進一步了解,可以查看以下PPT和筆記:http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdfhttp://www.cs.berkeley.edu/~rbg/slides/rcnn-cvpr14-slides.pdf
  • PyTorch實現TPU版本CNN模型
    隨著深度學習模型在各種應用中的成功實施,現在是時候獲得不僅準確而且速度更快的結果。為了得到更準確的結果,數據的大小是非常重要的,但是當這個大小影響到機器學習模型的訓練時間時,這一直是一個值得關注的問題。為了克服訓練時間的問題,我們使用TPU運行時環境來加速訓練。為此,PyTorch一直在通過提供最先進的硬體加速器來支持機器學習的實現。
  • 資源丨用PyTorch實現Mask R-CNN
    10個月後,FAIR官方公布了原始碼,以及基於Caffe 2的開源物體檢測平臺Detectron。但是,再好的「黑科技」也有人吐槽啊,比如,MIT的周博磊博士就曾經在知乎爆料,FAIR的實習生們對不常使用的Caffe 2一直叫苦不迭;還有人翹首以盼官方PyTorch版本;還有人想起TensorFlow成熟的可視化工具和文檔,看著Caffe 2就開始思考人生……「Caffe 2,從安裝到放棄……」還好最近,量子位發現有人做出了Mask
  • 輕鬆學Pytorch –Mask-RCNN圖像實例分割
    Pytorch中使用Mask-RCNN實現實例分割,是基於torchvision的預訓練模型庫,首先需要下載預訓練模型,並檢查是否可以支持GPU推理,相關的代碼如下:model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)model.eval
  • Mask R-CNN原始碼終於來了,還有它背後的物體檢測平臺
    現在,官方版開原始碼終於來了。同時發布的,是這項研究背後的一個基礎平臺:Detectron。Detectron是Facebook的物體檢測平臺,今天宣布開源,它基於Caffe2,用Python寫成,這次開放的代碼中就包含了Mask R-CNN的實現。
  • 【像訓練CNN一樣快速訓練RNN】全新RNN實現,比優化後的LSTM快10倍
    作為應對,研究人員開始深入挖掘並行計算的潛力,很多人使用GPU加速訓練來擴展深度學習。不過,雖然諸如卷積和注意力的運算非常適合於多線程/GPU計算,但是循環神經網絡(RNN)仍然不太適合併行化。在典型的RNN實現中,輸出狀態的計算需要等到計算完成後才能開始。這阻礙了獨立計算,並大大減慢了序列處理的速度。  圖1展示了cuDNN優化後的LSTM和使用conv2d的字級卷積的處理時間。
  • PyTorch 1.7發布,支持CUDA 11、Windows分布式訓練
    該版本增添了很多新特性,如支持 CUDA 11、Windows 分布式訓練、增加了支持快速傅立葉變換(FFT)的新型 API 等。PyTorch 1.7 版本包含很多新的 API,如支持 NumPy 兼容的 FFT 操作、性能分析工具,以及對基於分布式數據並行(DDP)和基於遠程過程調用(RPC)的分布式訓練的重要更新。
  • 先理解Mask R-CNN的工作原理,然後構建顏色填充器應用
    RPN 掃描這些 anchor 的速度有多快呢?非常快。滑動窗口是由 RPN 的卷積過程實現的,可以使用 GPU 並行地掃描所有區域。此外,RPN 並不會直接掃描圖像,而是掃描主幹特徵圖。這使得 RPN 可以有效地復用提取的特徵,並避免重複計算。
  • Transformer註解及PyTorch實現(上)
    這裡提供的代碼主要依賴OpenNMT[5]實現,想了解更多關於此模型的其他實現版本可以查看Tensor2Tensor[6] (tensorflow版本) 和 Sockeye[7](mxnet版本)準備工作# !
  • 13個算法工程師必須掌握的PyTorch Tricks
    2、查看模型每層輸出詳情Keras有一個簡潔的API來查看模型的每一層輸出尺寸,這在調試網絡時非常有用。現在在PyTorch中也可以實現這個功能。這是原回答:Pytorch 訓練時無用的臨時變量可能會越來越多,導致 out of memory,可以使用下面語句來清理這些不需要的變量。
  • PyTorch 0.2發布:更多NumPy特性,高階梯度、分布式訓練等
    PyTorch的GitHub新版發布說明中介紹了0.2版的以下新特性:NumPy風格的Tensor BroadcastingBroadcasting是NumPy在算數運算中處理不同形狀數組的一種方式,在特定條件下,比較小的數組會通過比較大的數組進行「廣播」,來獲得相應的形狀。
  • 大家心心念念的PyTorch Windows官方支持來了
    五個小時前,PyTorch 官方 GitHub 發布 0.4.0 版本,大家心心念念的 Windows 支持終於來了。GitHub 發布地址:https://github.com/pytorch/pytorch/releasesPyTorch 官網:http://pytorch.org/