GitHub趨勢榜第一:超強PyTorch目標檢測庫Detectron2,5天3100星
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
第一:超強PyTorch目標檢測庫Detectron2,5天3100星">
PyTorch目標檢測庫Detectron2誕生了,Facebook出品。
第一:超強PyTorch目標檢測庫Detectron2,5天3100星" style="text-align: center;">
站在初代的肩膀上,它訓練比從前更快,功能比從前更全,支持的模型也比從前更豐盛。
開源5天,已在GitHub收獲3100星,還成了趨勢榜第一:

除此之外,團隊把大規模姿態估計算法DensePose,做出了基于Detectron2的新版本。
Facebook說,像DensePose一樣,今后會有更多研究項目,在Detectron2上搭建起來。
這樣,就可以把它當成一個廣泛支持各種研究工作的庫了。
那么,現在就來仔細觀察一下,Detectron2都發生了哪些進化:
全方位升級

首先,Detectron2比起初代,最明顯的變化是:
基于PyTorch了,初代還是在Caffe2里實現的。
團隊說,PyTorch有直觀的指令式編程,這樣就能更快地迭代模型設計和實驗。
Detectron2是在PyTorch里從零開始寫成的,團隊希望這種做法,能讓用戶享受PyTorch做深度學習的思路。社區更活躍的話,PyTorch也會變得更好。
第二個變化,是模塊化了。
所謂模塊化,就是用戶可以把自己定制的模塊實現,加到一個目標檢測系統的任何部分里去。
這意味著許多的新研究,都能用幾百行代碼寫成,并且可以把新實現的部分,跟核心Detectron2庫完全分開。
除此之外,還有許多新支持的模型、功能和任務:
新模型&新功能
首先,Detectron2包含了一代可用的所有模型:
比如Faster R-CNN,Mask R-CNN,RetinaNet,DensePose等等。

然后,加入了一些新模型:
比如Cascade R-NN,Panoptic FPN,以及TensorMask。
今后,陸續會有新的算法支持。
功能方面,二代新支持了同步批量歸一化 (synchronous Batch Norm) ,也支持了LVIS等等許多新的數據集。
新任務
和目標檢測有關的任務,初代已經支持了一部分,二代也都支持:
有邊界框的目標檢測,實例分割mask,以及人類姿態預測。

在這基礎之上,二代又增加了新任務:
語義分割和全景分割 (Panoptic Segmentation) ,這是一個把語義分割和實例分割結合到一起的任務。
速度快
博客提到,由于把整個訓練pipeline移到了GPU上,二代比初代更快了,在許多模型上都是如此。分布式訓練,讓幾臺GPU一起跑的話,還可以把訓練規模擴張到更大的數據集上。
速度的對比,是用第100-500次迭代之間的平均吞吐量 (Average Throughput) 作為指標。這樣就跳過了GPU預熱時間。結果如下:

肉眼可見的加速。
注意,對于R-CNN這類模型,一個模型的吞吐量會隨著訓練的進行而變化,這取決于模型的預測。
因此,這個指標也不能和model zoo里的“訓練速度”相提并論。model zoo用的是整個訓練過程運行的平均速度。
部署一下
最后,Facebook的計算機視覺攻城獅們,實現了一個額外的軟件層,叫Detectron2go。
有了它,就可以更快地把新實現的模型,部署到生產環節。
這一層的功能包括了標準訓練工作流,帶有內部數據集,網絡量化,以及模型轉化 (為了給云端和移動端部署,選擇各自最優的格式) 。