資源丨用PyTorch實現Mask R-CNN

2021-01-11 量子位

伊瓢 發自 凹非寺 量子位 報導 | 公眾號 QbitAI

FACEBOOK人工智慧實驗室何凱明博士領銜的Mask R-CNN喜提ICCV 2017最佳論文後,吸引了大量業內研究者的興趣。

10個月後,FAIR官方公布了原始碼,以及基於Caffe 2的開源物體檢測平臺Detectron。

但是,再好的「黑科技」也有人吐槽啊,比如,MIT的周博磊博士就曾經在知乎爆料,FAIR的實習生們對不常使用的Caffe 2一直叫苦不迭;

還有人翹首以盼官方PyTorch版本;

還有人想起TensorFlow成熟的可視化工具和文檔,看著Caffe 2就開始思考人生……

「Caffe 2,從安裝到放棄……」

還好最近,量子位發現有人做出了Mask R-CNN的PyTorch版本:

開原始碼的貢獻者是印度理工學院的小哥哥Sai Himal Allu。

Mask R-CNN

不過說到這裡,還是需要先介紹一下前面提到的目標檢測大殺器Mask R-CNN。

Mask R-CNN可以說是從目標檢測領域R-CNN系列的四代目了,FACEBOOK人工智慧實驗室(FAIR)團隊以何凱明(Kaiming He)和Ross Girshick(RBG)為首的一眾目標檢測大佬不斷更迭了許多個版本:

R-CNN:對每個候選區域進行特徵提取,能提升一定的效率;Fast R-CNN:一張圖像上使用一次AlexNet,然後再得到不同區域的特徵的新方法,比R-CNN快了200多倍;Faster R-CNN:Fast R-CNN的升級版,訓練時間和測試時間縮短十倍;Mask R-CNN:像素級目標檢測,不僅給出其邊界框,並且對邊界框內的各個像素是否屬於該物體進行標記。

Mask R-CNN在MS COCO測試集的實例分割、邊界框對象檢測、以及人體關鍵點檢測三項任務上,都取得了頂尖的成績。

它的單模型邊界框(bounding box)檢測成績,比上一代——Fatser-RCNN與ResNet-101和FPN結合所取得的,還要高3.6個百分點。

於是,Mask R-CNN一經推出,廣受好評。

傳送門全家桶

GitHub: A PyTorch implementation of the architecture of Mask RCNN, serves as an introduction to working with PyTorchgithub.com/wannabeOG/Mask-RCNN

Mask R-CNN:arxiv.org/abs/1703.06870

Detectron:github.com/facebookresearch/Detectron

相關焦點

  • Mask R-CNN官方實現「又」來了!基於PyTorch,訓練速度是原來2倍
    該項目旨在讓用戶更容易地創建一種模塊,實現對圖片中物品的識別與分割。負責這一項目的Facebook AI工程師Francisco Massa還在個人Twitter發了張自拍照,並使用新工具對圖片中的物品進行了識別,尷尬的是好像有些對象被識別錯誤:
  • 在多目標識別方面,maskr-cnn已經取得了一些進展
    maskr-cnn是業界首款實用的全卷積神經網絡模型,為計算機視覺中的多目標識別與自動對焦,開創性的成為計算機視覺發展的新方向。無論是基於計算機視覺的自動對焦系統、模式識別系統,還是圖像識別,maskr-cnn都是有標誌性意義的。它強調平滑準確的計算輸入、檢測框和定位點,訓練過程與特徵提取過程採用多級感受野融合技術進行自動優化提高目標解析度及精度,以及做出精度更高的語義推理判斷。
  • .| 深度學習理論與實戰:提高篇(14)——​Mask R-CNN代碼簡介
    但是這是用Caffe2實現的,本書沒有介紹這個框架,因此我們介紹Tensorflow和Keras的版本實現的版本。但是建議有興趣的讀者也可以嘗試一下Facebook提供的代碼。), # logits(mrcnn_class_logits) # 輸出的boudning box(mrcnn_bbox)和Mask(mrcnn_mask) model.load_weights(COCO_MODEL_PATH, by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc", "mrcnn_bbox
  • FAIR最新視覺論文集錦:FPN,RetinaNet,Mask 和 Mask-X RCNN(含代碼...
    代碼實現   Caffe2(官方實現) - https://github.com/facebookresearch/Detectron/tree/master/configs/12_2017_baselines   PyTorch - https://github.com/kuangliu/pytorch-retinanet
  • 潮科技行業入門指南 | 深度學習理論與實戰:提高篇(14)——Mask R...
    但是這是用Caffe2實現的,本書沒有介紹這個框架,因此我們介紹Tensorflow和Keras的版本實現的版本。但是建議有興趣的讀者也可以嘗試一下Facebook提供的代碼。), # logits(mrcnn_class_logits) # 輸出的boudning box(mrcnn_bbox)和Mask(mrcnn_mask) model.load_weights(COCO_MODEL_PATH, by_name=True, exclude=["mrcnn_class_logits
  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    而 Detectron2 則是剛推出的新版 PyTorch 1.3 (詳情查看:https://www.leiphone.com/news/201910/9J4PTd833WMwdVoQ.html)中一重大新工具,它源於 maskrcnn 基準測試,但它卻是對先前版本 detectron 的一次徹底重寫。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    Mask R-CNN 同樣為兩階段框架,第一階段掃描圖像生成候選框;第二階段根據候選框得到分類結果,邊界框,同時在原有 Faster R-CNN 模型基礎上添加分割分支,得到掩碼結果,實現了掩碼和類別預測關係的解藕。
  • PyTorch實現TPU版本CNN模型
    為此,PyTorch一直在通過提供最先進的硬體加速器來支持機器學習的實現。PyTorch對雲TPU的支持是通過與XLA(加速線性代數)的集成實現的,XLA是一種用於線性代數的編譯器,可以針對多種類型的硬體,包括CPU、GPU和TPU。本文演示了如何使用PyTorch和TPU實現深度學習模型,以加快訓練過程。
  • 從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 –Mask-RCNN圖像實例分割
    Pytorch中使用Mask-RCNN實現實例分割,是基於torchvision的預訓練模型庫,首先需要下載預訓練模型,並檢查是否可以支持GPU推理,相關的代碼如下:model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)model.eval
  • 雲計算學習:用PyTorch實現一個簡單的分類器
    回想了一下自己關於 pytorch 的學習路線,一開始找的各種資料,寫下來都能跑,但是卻沒有給自己體會到學習的過程。有的教程一上來就是寫一個 cnn,雖然其實內容很簡單,但是直接上手容易讓人找不到重點,學的雲裡霧裡。有的教程又淺嘗輒止,師傅領到了門檻跟前,總感覺自己還沒有進門,教程就結束了。
  • 先理解Mask R-CNN的工作原理,然後構建顏色填充器應用
    上年 11 月,matterport 開源了 Mask R-CNN 實現,它在 GitHub 已 fork1400 次,被用於很多項目,同時也獲得了完善。作者將在本文中解釋 Mask R-CNN 的工作原理,並介紹了顏色填充器的應用案例和實現過程。
  • Transformer註解及PyTorch實現(上)
    雖然原文寫得很清楚,但實際上大家普遍反映很難正確地實現。所以我們為此文章寫了篇註解文檔,並給出了一行行實現的Transformer的代碼。本文檔刪除了原文的一些章節並進行了重新排序,並在整個文章中加入了相應的註解。此外,本文檔以Jupyter notebook的形式完成,本身就是直接可以運行的代碼實現,總共有400行庫代碼,在4個GPU上每秒可以處理27,000個tokens。
  • 用Java實現目標檢測|PyTorch
    這篇來自AWS軟體工程師的投稿,結合實例,詳細介紹了DJL這個為Java開發者設計的深度學習庫:5分鐘,你就能在PyTorch上,用Java實現目標檢測。5分鐘,用Java實現目標檢測文 / 知乎用戶@LankingPyTorch在深度學習領域中的應用日趨廣泛,得益於它獨到的設計。無論是數據的並行處理還是動態計算圖,一切都為Python做出了很多簡化。
  • 用Java實現目標檢測 | PyTorch
    這篇來自AWS軟體工程師的投稿,結合實例,詳細介紹了DJL這個為Java開發者設計的深度學習庫:5分鐘,你就能在PyTorch上,用Java實現目標檢測。5分鐘,用Java實現目標檢測文 / 知乎用戶@LankingPyTorch在深度學習領域中的應用日趨廣泛,得益於它獨到的設計。
  • Mask R-CNN原始碼終於來了,還有它背後的物體檢測平臺
    Detectron是Facebook的物體檢測平臺,今天宣布開源,它基於Caffe2,用Python寫成,這次開放的代碼中就包含了Mask R-CNN的實現。除此之外,Detectron還包含了ICCV 2017最佳學生論文RetinaNet,Ross Girshick(RBG)此前的研究Faster R-CNN和RPN、Fast R-CNN、以及R-FCN的實現。
  • 13個算法工程師必須掌握的PyTorch Tricks
    現在在PyTorch中也可以實現這個功能。使用很簡單,如下用法:from torchsummary import summarysummary(your_model, input_size=(channels, H, W))input_size是根據你自己的網絡模型的輸入尺寸進行設置。
  • 深度學習新應用:在PyTorch中用單個2D圖像創建3D模型
    有用體素的密度會隨著解析度的增加而降低。優勢: 從 2D 表徵到 3D 表徵,可以直接應用 CNN。劣勢:容易浪費,要在細節和資源(計算力、內存)之間好好權衡。幾何形式:不能直接應用 CNN椅子的點雲表徵多邊形網格:是三維空間中定義對象表面的頂點、邊和面的集合。它可以在相當緊湊的表徵中捕獲粒度細節。
  • 教你用PyTorch實現「看圖說話」(附代碼、學習資源)
    本文用淺顯易懂的方式解釋了什麼是「看圖說話」(Image Captioning),藉助github上的PyTorch代碼帶領大家自己做一個模型,並附帶了很多相關的學習資源。介紹深度學習目前是一個非常活躍的領域---每天都會有許多應用出現。