日前,F(xiàn)acebook 人工智能攝像團(tuán)隊(duì)(AI Camera Team)正在研發(fā)各種計(jì)算機(jī)視覺技術(shù)和創(chuàng)新工具,幫助人們更有創(chuàng)意地表達(dá)自我。比如,利用實(shí)時(shí)“風(fēng)格轉(zhuǎn)換”技術(shù),你可以制作出“梵高風(fēng)”的照片和視頻。使用實(shí)時(shí)面部追蹤技術(shù),你可以實(shí)現(xiàn)“一鍵美妝”或者“換頭術(shù)”,變化成各種卡通頭像。那么,你有想過“換身術(shù)“嗎?Facebook 團(tuán)隊(duì)的 AR 全身追蹤技術(shù)或許可以幫你實(shí)現(xiàn)。雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))將該團(tuán)隊(duì)目前取得的成果編譯如下。
為了實(shí)現(xiàn)“換身術(shù)”,我們需要實(shí)時(shí)并準(zhǔn)確地檢測和追蹤身體動(dòng)作。這其實(shí)是一個(gè)非常具有挑戰(zhàn)性的問題,因?yàn)樯眢w姿勢和動(dòng)作變化會(huì)很大,識(shí)別起來并不容易。一個(gè)人可以是坐著的,走著的或是跑動(dòng)著的;人們可能穿著長外套或者短褲; 有時(shí)候人的身體還會(huì)被他人或物體阻擋。這些因素都大大增加了身體追蹤系統(tǒng)保持穩(wěn)健性的難度。
我們團(tuán)隊(duì)最近開發(fā)了一種新的技術(shù),可以準(zhǔn)確地檢測到身體姿勢,同時(shí)將人體從背景中分割出來。目前,我們的模型還處于研究階段,但這個(gè)模型的好處在于,它只有幾兆大小,可以在智能手機(jī)上實(shí)時(shí)運(yùn)行。不久之后,它還可以衍生出許多新的應(yīng)用程序,比如創(chuàng)建“全身面具”,使用手勢來控制游戲,或者對(duì)人體進(jìn)行“去識(shí)別化(de-identifying)”。
MaskR-CNN2Go的架構(gòu)
我們的人體檢測和分割模型基于一個(gè)叫做“Mask R-CNN”的框架。這是一個(gè)簡單、靈活且十分通用的對(duì)象檢測和分割框架。它可以高效地檢測圖像中的對(duì)象,同時(shí)預(yù)測關(guān)鍵點(diǎn)的運(yùn)行軌跡,并為每個(gè)對(duì)象生成一個(gè)分割掩碼(segmentation mask)。Mask R-CNN 框架研究獲得了 ICCV 2017 年度最佳論文獎(jiǎng)。為了在移動(dòng)設(shè)備上實(shí)時(shí)運(yùn)行 Mask R-CNN 模型,F(xiàn)acebook 的 Camera,F(xiàn)AIR 和 AML 團(tuán)隊(duì)的研究人員和工程師共同合作,構(gòu)建了一個(gè)高效而輕量的框架模型:“Mask R-CNN2Go”。
Mask R-CNN2Go 模型由五個(gè)主要組件組成:
1、主干模型包含多個(gè)卷積層,并且生成輸入圖像的深層特征表征。
2、候選區(qū)域生成網(wǎng)絡(luò)(RPN)以預(yù)定的比例和縱橫比(錨點(diǎn))生成候選對(duì)象。OI-Align 層從每個(gè)對(duì)象的邊界框中提取其特征并將它們發(fā)送到探測端。
3、探測端口包含一組卷積層,池化層和全連接層。它能預(yù)測每個(gè)候選框中的對(duì)象有多大可能是一個(gè)人體。探測頭還可以改進(jìn)邊界框的坐標(biāo),將非極大抑制值的相鄰框候選框進(jìn)行分組,并為圖像中的每個(gè)人生成最終的邊界框。
4、利用每個(gè)人的邊界框,我們使用第二個(gè) ROI-Align 層來提取特征,這些特征來自于關(guān)鍵點(diǎn)端口和分割端口的輸入。
5、關(guān)鍵點(diǎn)端口與分割端口具有相似的結(jié)構(gòu)。它為身體上的每個(gè)預(yù)定關(guān)鍵點(diǎn)預(yù)測出一個(gè)掩碼。并使用單一最大掃描來生成最終坐標(biāo)。
一個(gè)針對(duì)移動(dòng)設(shè)備而優(yōu)化的輕量級(jí)模型
與現(xiàn)代 GPU 服務(wù)器不同,手機(jī)的算力和存儲(chǔ)空間都十分有限。Mask R-CNN 最初的模型是基于 ResNet的,它太大而且太慢,無法在手機(jī)上運(yùn)行。為了解決這個(gè)問題,我們?yōu)橐苿?dòng)設(shè)備開發(fā)了一個(gè)非常優(yōu)化而高效的模型架構(gòu)。
我們使用了幾種方法來減小模型的大小。首先,我們優(yōu)化了卷積層的數(shù)量和每層的寬度,這也是我們在處理中最耗時(shí)的部分。為了確保擁有足夠大的感受野,我們使用了包括 1×1,3×3 和 5×5 的內(nèi)核大小的組合。另外,我們還使用權(quán)重剪枝算法來縮減模型。我們的最終模型只有幾兆字節(jié),但是非常精準(zhǔn)。
模塊化設(shè)計(jì)提高了計(jì)算速度
為了能夠?qū)崟r(shí)運(yùn)行深度學(xué)習(xí)算法,我們使用并優(yōu)化了我們的核心框架: 載有 NNPack 的 Caffe2,SNPE和 Metal。通過使用移動(dòng) CPU 和包含 NNPack,SNPE 和 Metal 在內(nèi)的 GPU 庫,我們能夠顯著提高移動(dòng)計(jì)算的速度。并且,所有這些都是通過模塊化設(shè)計(jì)完成的,并不需要改變模型的一般定義。因此,我們既可以獲得較小的模型,又可以獲得較快的運(yùn)行時(shí)間,同時(shí)避免了潛在的不兼容問題。
Facebook AI 研發(fā)團(tuán)隊(duì)(FAIR)最近發(fā)布了 Mask R-CNN 研究平臺(tái)(Detectron)。我們開源了 Caffe2 運(yùn)算符(GenerateProposalsOp,BBoxTransformOp,BoxWithNMSLimit 以及 RoIAlignOp)并提供了必要的模型轉(zhuǎn)換代碼,供研究社區(qū)使用。
下一步是什么
開發(fā)移動(dòng)設(shè)備的計(jì)算機(jī)視覺模型是一項(xiàng)艱巨的任務(wù)。移動(dòng)設(shè)備模型必須小巧,快速而準(zhǔn)確,并且不需要大量內(nèi)存。我們將繼續(xù)探索新的模型架構(gòu),力求進(jìn)一步提升模型效率。我們還將探索更適合移動(dòng) GPU 和 DSP 的模型,讓它們更加節(jié)省電量和算力。
via research.fb.com 雷鋒網(wǎng)雷鋒網(wǎng)編譯