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

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

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

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

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

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