馮相如,朱 明
(中國(guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)與技術(shù)學(xué)院,合肥 230027)
在2015年及其以前,國(guó)內(nèi)的所有快遞的測(cè)量幾乎都是由快遞員人工測(cè)量完成的[1],耗費(fèi)了大量的人力和時(shí)間,頻繁的手動(dòng)操作對(duì)快遞員是一種極大的負(fù)擔(dān),測(cè)量精度也很難得到保證,因此導(dǎo)致物流行業(yè)的效率非常低.為了提高物流效率,測(cè)量光幕和激光雷達(dá)等儀器設(shè)備被應(yīng)用于快遞物流行業(yè)中,劉士興等人[2]利用測(cè)量光幕提出了基于線(xiàn)性回歸分析的邊緣擬合底面建模體積測(cè)量系統(tǒng),毛丹輝等人[3]詳細(xì)介紹了激光技術(shù)在體積測(cè)量中的應(yīng)用現(xiàn)狀.但是該方法也存在著一定的不足,測(cè)量光幕除了對(duì)物品擺放有一定的要求,還對(duì)工作環(huán)境有所限制,而激光雷達(dá)等設(shè)備也比較昂貴,增加了物流行業(yè)的成本.
第一代基于圖像的3D 重建技術(shù)主要是基于幾何視角來(lái)理解重建3D 到2D 的投影關(guān)系,并建立有效地?cái)?shù)學(xué)模型來(lái)解決這一問(wèn)題.王玉偉等人[4]利用訓(xùn)練好的RCF 網(wǎng)絡(luò)模型得到圖像中箱體的邊緣二值圖,并通過(guò)預(yù)處理獲取目標(biāo)箱體的邊緣與頂點(diǎn),最后通過(guò)雙目立體視覺(jué)獲得其體積,宓逸舟[5]同樣用了雙目立體視覺(jué)的算法對(duì)快遞包裹進(jìn)行了體積測(cè)量.但是這類(lèi)方法過(guò)程比較復(fù)雜,需要進(jìn)行精準(zhǔn)的相機(jī)標(biāo)定和多張不同視角的圖像,這會(huì)大大限制多種環(huán)境下的應(yīng)用.由于最近幾年深度學(xué)習(xí)的快速發(fā)展,基于圖像的深度學(xué)習(xí)構(gòu)架出了第二代3D 重建技術(shù),在大量數(shù)據(jù)的支撐下實(shí)現(xiàn)單視圖直接重建出物體的三維信息,而不需要復(fù)雜的標(biāo)定和數(shù)學(xué)過(guò)程.
本文提出的基于第二代3D 重建的快遞紙箱體積測(cè)量算法,是讓快遞員用普通手機(jī)正對(duì)著快遞紙箱拍照并上傳到服務(wù)器,通過(guò)部署在服務(wù)器上體積測(cè)量算法計(jì)算出快遞紙箱的體積,最終將結(jié)果在手機(jī)上顯示.相對(duì)于前面幾種方法,該方法僅需要拍攝一張照片便可獲得其體積信息,并對(duì)工作環(huán)境沒(méi)有特殊的要求,成本低,適用性強(qiáng).
本文第1 節(jié)闡述基于單視圖3D 重建的相關(guān)研究,并簡(jiǎn)單介紹所設(shè)計(jì)的體積測(cè)量算法;第2 節(jié)詳細(xì)介紹整個(gè)體積測(cè)量算法的各個(gè)模塊;第3 節(jié)是實(shí)驗(yàn)結(jié)果對(duì)比與分析,驗(yàn)證該算法對(duì)快遞紙箱體積測(cè)量的有效性;第4 節(jié)對(duì)全文總結(jié),并展望下一步工作.
3D 重建問(wèn)題可以歸結(jié)為通過(guò)n張RGB 圖像預(yù)測(cè)出單個(gè)或多個(gè)目標(biāo)X,并盡可能地縮小預(yù)測(cè)形狀與真實(shí)形狀之間的差異.在過(guò)去的數(shù)十年中,計(jì)算機(jī)視覺(jué)和計(jì)算機(jī)圖形學(xué)的專(zhuān)家對(duì)3D 重建進(jìn)行了很多的研究.自2015年首次將卷積神經(jīng)網(wǎng)絡(luò)用于基于圖像的3D 重建[6],并有著十分不錯(cuò)的表現(xiàn)后,越來(lái)越多人專(zhuān)注于使用深度學(xué)習(xí)技術(shù)從單張或多張RGB 圖像來(lái)估計(jì)通用對(duì)象的3D 形狀.本文考慮到實(shí)際操作的簡(jiǎn)單實(shí)用性,所以采用單視圖的3D 重建算法來(lái)進(jìn)行快遞紙箱的體積測(cè)量.
3D-VAE-GAN[7]利用變分自編碼器和生成對(duì)抗網(wǎng)絡(luò)從概率空間生成三維對(duì)象,但是由于3D-VAE-GAN需要使用類(lèi)別標(biāo)簽進(jìn)行重建.MarrNet[8]將3D 重建分解為兩個(gè)步驟,使用一個(gè)編碼器-解碼器網(wǎng)絡(luò)架構(gòu)恢復(fù)2.5D 草圖(深度圖和法線(xiàn)貼圖),并借鑒3D-VAE-GAN網(wǎng)絡(luò)結(jié)構(gòu),以一張普通圖像和一張深度圖作為輸入來(lái)恢復(fù)3D 形狀.Choy 等[9]提出了3D-R2N2 網(wǎng)絡(luò),采用標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)原始的2D 圖像進(jìn)行編碼,再利用一個(gè)反卷積網(wǎng)絡(luò)對(duì)其進(jìn)行解碼,編碼器與解碼器中間用長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)進(jìn)行連接,通過(guò)Encoder+3D LSTM+Decoder 的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)建立2D 圖像到3D 體素的映射,該網(wǎng)絡(luò)不需要任何的圖像注釋和類(lèi)別標(biāo)簽即可訓(xùn)練測(cè)試,但是3D-R2N2 由于循環(huán)神經(jīng)網(wǎng)絡(luò)的長(zhǎng)期記憶損失,無(wú)法精確恢復(fù)物體3D 形狀,并且比較耗時(shí).
黨的十九大勝利召開(kāi)以來(lái),西南政法大學(xué)始終把學(xué)習(xí)宣傳貫徹習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想和黨的十九大精神作為首要的政治任務(wù),按照中央、市委、市委教育工委的統(tǒng)一部署,遵循馬克思主義大眾化和大學(xué)生思想政治工作規(guī)律,結(jié)合學(xué)校思想政治工作實(shí)際,依托學(xué)校馬克思主義傳播人才培養(yǎng)專(zhuān)業(yè)群,探索建立了一支以學(xué)生骨干為核心主講團(tuán)隊(duì)的習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想大學(xué)生講習(xí)所(以下簡(jiǎn)稱(chēng)“講習(xí)所”)。
本文采用基于體素的Pix2Vox3D 重建網(wǎng)絡(luò)[10],Pix2Vox 對(duì)3D-R2N2 網(wǎng)絡(luò)存在的不足進(jìn)行了改進(jìn),在速度和性能上都獲得了一定的提升.它同樣采用編碼器-解碼器的架構(gòu),輸入圖像經(jīng)過(guò)VGG16[11]的編碼器生成特征圖,解碼器中將特征圖作為輸入,經(jīng)過(guò)多次反卷積操作生成一個(gè)粗糙的3D 模型,通過(guò)上下文感知模塊來(lái)為物體的每個(gè)部分自適應(yīng)的選擇高質(zhì)量重建結(jié)果,最終經(jīng)過(guò)具有跳躍結(jié)構(gòu)的精煉化模塊生成最終的重建結(jié)果.但是對(duì)于體積測(cè)量來(lái)說(shuō)精確度仍不滿(mǎn)足實(shí)際的需求,所以本文通過(guò)注意力機(jī)制進(jìn)行信息的融合,并將網(wǎng)絡(luò)輸出分辨率提高,提升快遞紙箱重建的精度.
本文提出的快遞紙箱的體積測(cè)量算法主要包含3 部分,如圖1所示:圖像預(yù)處理,3D 重建和后處理.圖像預(yù)處理是通過(guò)YOLOv3[12]級(jí)聯(lián)GrabCut[13]去除圖像中的背景,提取紙箱與快遞單標(biāo)簽圖像,并獲得紙箱的實(shí)際長(zhǎng)度,用于后續(xù)的計(jì)算.3D 重建部分是如何在不增加網(wǎng)絡(luò)參數(shù)的同時(shí)提高重建的精度,從而達(dá)到體積測(cè)量的需求,本文將網(wǎng)絡(luò)的輸出分辨率提高至643,并通過(guò)結(jié)合注意力機(jī)制PSA 模塊[14]降低網(wǎng)絡(luò)參數(shù).后處理是為了將網(wǎng)絡(luò)重建后模型中的一些重建錯(cuò)誤的點(diǎn)進(jìn)行剔除,精細(xì)化的重建結(jié)果,并集成在3D 重建網(wǎng)絡(luò)中.
圖1 算法流程圖
考慮到快遞員的工作環(huán)境,手機(jī)攝像頭獲取的圖像往往不能直接使用,如圖2(a).需要通過(guò)對(duì)圖像進(jìn)行預(yù)處理,將紙箱和快遞單與背景圖像分割,該處理有助于提高三維重建算法的性能.
GrabCut 算法可以將圖像中的紙箱和快遞單標(biāo)簽與背景分割,該算法利用了圖像的紋理顏色信息和邊界反差信息,通過(guò)輸入包含目標(biāo)物體的矩形框,便可以得到良好的分割結(jié)果.由于快遞單標(biāo)簽較小,考慮檢測(cè)的速度與小目標(biāo)檢測(cè)的精確度,本文采用了YOLOv3目標(biāo)檢測(cè)網(wǎng)絡(luò)獲取包含紙箱和快遞單標(biāo)簽的矩形框.YOLOv3 采用了類(lèi)似FPN 的上采樣和融合做法,相對(duì)于YOLOv2/v1 提升了小目標(biāo)檢測(cè)的精確度,同時(shí)采用了DarkNet-53 網(wǎng)絡(luò)結(jié)構(gòu),相對(duì)于ResNet101/VGG16,速度更快.通過(guò)級(jí)聯(lián)YOLOv3 與GrabCut 可以快速精準(zhǔn)的分割出快遞紙箱與快遞單標(biāo)簽,快遞紙箱分割結(jié)果如圖2(b)所示.
將拍攝圖簡(jiǎn)化如圖2(c),將紙箱和快遞單標(biāo)簽與背景分割后,接著使用圖像處理可以在分割圖像中找到P3、P4、P7、P8 四點(diǎn)的像素坐標(biāo).假定P7 與P8 點(diǎn)的像素長(zhǎng)度為l1,P3 與P4 點(diǎn)像素長(zhǎng)度為l2,因?yàn)榭爝f單標(biāo)簽的實(shí)際尺寸是不變并且是可知的,我們?cè)O(shè)為P7 與P8 的實(shí)際長(zhǎng)度為l,那么P3 與P4 點(diǎn)的實(shí)際長(zhǎng)度L便為:
經(jīng)過(guò)預(yù)處理操作后,從原始圖像可以得到快遞紙箱P3、P4 點(diǎn)之間的實(shí)際長(zhǎng)度以及去除背景干凈的快遞紙箱的圖像.
圖2 圖像處理樣例
Pix2Vox 網(wǎng)絡(luò)雖然針對(duì)3D R2N2 網(wǎng)絡(luò)存在的問(wèn)題做了改進(jìn),但是網(wǎng)絡(luò)最終輸出的空間分辨率是323,對(duì)于精確地恢復(fù)快遞紙箱的長(zhǎng)寬高的尺寸是不夠的.本文在Pix2Vox 的基礎(chǔ)上,做了如下兩點(diǎn)改進(jìn),網(wǎng)絡(luò)結(jié)構(gòu)圖見(jiàn)圖3.
(1)重新設(shè)計(jì)解碼器,提高重建的分辨率.
(2)用PSA 模塊替換網(wǎng)絡(luò)中的兩個(gè)全連接層,降低網(wǎng)絡(luò)的參數(shù).
每一次的3D 反卷積可以將網(wǎng)絡(luò)的輸出分辨率提升8 倍,本文通過(guò)設(shè)計(jì)一個(gè)具有6 層3D 反卷積的解碼器來(lái)將網(wǎng)絡(luò)的輸出分辨率從323提升到643,如表1解碼器列所示,輸出分辨率的提升可以更好的恢復(fù)重建物體的細(xì)節(jié),提升重建性能.由于網(wǎng)絡(luò)中存在全連接層,提升分辨率會(huì)導(dǎo)致網(wǎng)絡(luò)中參數(shù)增加了8 倍,在實(shí)際應(yīng)用中是不可行的.根據(jù)分析可以知道網(wǎng)絡(luò)中的全連接層主要作用是融合全局信息,以糾正3D 模型中錯(cuò)誤恢復(fù)的部分,本文使用PSA 模塊替換全連接層,PSA 模塊具有局部和全局信息融合的效果,并且參數(shù)量會(huì)大大降低,參數(shù)量對(duì)比見(jiàn)后文分析.
圖3 3D 重建網(wǎng)絡(luò)結(jié)構(gòu)圖
表1 編碼器-解碼器網(wǎng)絡(luò)結(jié)構(gòu)
PSA 包括上下并行的兩個(gè)分支,如圖3中虛線(xiàn)部分,在實(shí)現(xiàn)上兩個(gè)分支是完全一樣的.在每個(gè)分支中,首先應(yīng)用具有1×1 的卷積層減少輸入特征圖X的通道數(shù)以降低計(jì)算開(kāi)銷(xiāo),得到H×W×C的特征圖Xr.然后再應(yīng)用一個(gè)1×1 的卷積層得到H×W×[(2H–1)×(2W–1)]的Xc,最后經(jīng)過(guò)收集和分散操作獲得兩個(gè)具有全局融合信息的特征圖.收集或分散操作如圖4所示,圖4對(duì)應(yīng)圖3中的CollectAttention 和DistributeAttention 具體操作.特征圖Xr上每個(gè)位置i,對(duì)應(yīng)特征圖Xc的i位置1×1×[(2H–1)×(2W–1)] 的特征圖,將其轉(zhuǎn)換成(2H–1)×(2W–1)×1 的特征圖Xi,最后以i作為特征圖Xi中心點(diǎn),如圖4中以虛線(xiàn)突出顯示的區(qū)域是用于特征的收集和分散,將該區(qū)域與Hr進(jìn)行矩陣相乘得到具有全局融合信息的特征圖.上下兩層各得到這樣的一個(gè)分支特征圖,我們將該兩個(gè)分支特征圖進(jìn)行通道數(shù)疊加并進(jìn)行1×1 的卷積操作得到具有融合全局信息的特征圖,最后與具有局部信息的特征圖X 進(jìn)行通道數(shù)疊加,完成全局信息的融合.
圖4 Collect / Distribute Attention
網(wǎng)絡(luò)采用的損失函數(shù)是體素交叉熵的平均值,公式如下:
其中,N為標(biāo)簽的數(shù)量,yi為真實(shí)概率,pi為預(yù)測(cè)概率,pi越接近yi,L值越小.
3D 重建網(wǎng)絡(luò)輸出的3D 模型是一個(gè)三維矩陣,每個(gè)位置的值代表了是該點(diǎn)的置信度.Trimesh 是一個(gè)專(zhuān)門(mén)用來(lái)加載和使用三角網(wǎng)格的Python 庫(kù),可以直接得到包圍該重建模型的最小外接立方體的歸一化的長(zhǎng)寬高,但是因?yàn)樵谥亟ńY(jié)果中會(huì)在邊界生成一些錯(cuò)誤的點(diǎn),如圖5中紅色圈標(biāo)注所示,如果用Trimesh 庫(kù)來(lái)計(jì)算會(huì)有較大的誤差,所以本文設(shè)計(jì)了算法1 來(lái)剔除這些噪點(diǎn).
?
4)假定符合x(chóng)=0,z=0 所有點(diǎn)的集合為S2,假定S2 中點(diǎn)的個(gè)數(shù)為N2,在x=0 的yz 這個(gè)面上,統(tǒng)計(jì)z 從max 到0 每列點(diǎn)的個(gè)數(shù),若某列中點(diǎn)的個(gè)數(shù)大于 時(shí),則此時(shí)z 值為快遞紙箱歸一化后的w.?N2(1?T1+T2)
圖5 三維重建結(jié)果圖
通過(guò)噪點(diǎn)剔除算法可以得到快遞紙箱精確地歸一化后的長(zhǎng)寬高值,由2.1 節(jié)圖像預(yù)處理操作可以得到快遞紙箱實(shí)際的長(zhǎng)度L,假定快遞紙箱實(shí)際的寬度為W,實(shí)際的高度為H,存在如下的比例關(guān)系:
通過(guò)式(3)我們可以求出快遞紙箱實(shí)際的長(zhǎng)寬高,即能算出快遞紙箱的實(shí)際體積.
按照文獻(xiàn)[9] 實(shí)驗(yàn)的數(shù)據(jù)集設(shè)置,我們也使用了ShapeNet[15]的子集,包含13 個(gè)類(lèi)別,共43 783 個(gè)3D模型組成.由于目前的相關(guān)的3D 重建的開(kāi)源數(shù)據(jù)集中沒(méi)有快遞紙箱的模型,所以為了驗(yàn)證本文算法的有效性,我們使用Cinema 4D 軟件制作了與ShapeNet 相同格式的快遞紙箱數(shù)據(jù)集,總共150 個(gè)快遞紙箱的3D 模型,3600 張2 維圖片,這里簡(jiǎn)稱(chēng)該數(shù)據(jù)集為box-150.
首先為了評(píng)估改進(jìn)后的3D 重建網(wǎng)絡(luò)的性能,使用3D 體素重建與真實(shí)體素標(biāo)簽之間的體素IoU作為相似性度量,其公式如下:
其中,p(i,j,k)和y(i,j,k)分別表示預(yù)測(cè)概率和真實(shí)標(biāo)簽.I(·)是指示函數(shù),t表示體素化閾值.IoU越高,重建越好.
我們用體積的相對(duì)誤差衡量一個(gè)快遞紙箱體積測(cè)量結(jié)果的好壞,具體公式如下:
其中,Vp和Vy分別代表預(yù)測(cè)體積和真實(shí)體積,δ越小表示體積測(cè)量的越準(zhǔn)確.
在實(shí)際訓(xùn)練中,由于快遞紙箱數(shù)據(jù)集的限制,本文采用遷移學(xué)習(xí)的思想,網(wǎng)絡(luò)先用ShapeNet 子集進(jìn)行預(yù)訓(xùn)練150 個(gè)周期,接著在box-150 數(shù)據(jù)集上訓(xùn)練150個(gè)周期.網(wǎng)絡(luò)采用224×224 RGB 圖像作為輸入,使用Adam 優(yōu)化器,β1為0.9,β2為0.999,預(yù)訓(xùn)練時(shí),批處理大小為64,初始學(xué)習(xí)率都設(shè)置為0.001,在box-150 訓(xùn)練時(shí),批處理大小為10,初始學(xué)習(xí)率都設(shè)置為0.0005.
本文選擇3 種3D 重建算法作為對(duì)比,第1 種是原始的Pix2Vox,第2 種是Pix2Vox 去除網(wǎng)絡(luò)中的全連接層,簡(jiǎn)稱(chēng)為Pix2Vox-NF32,第3 種是Pix2Vox 去除網(wǎng)絡(luò)中全連接層并將網(wǎng)絡(luò)輸出分辨率提高至643,這里簡(jiǎn)稱(chēng)為Pix2Vox-NF64.表2為4 個(gè)網(wǎng)絡(luò)在不同閾值下重建性能的對(duì)比,以IoU作為評(píng)價(jià)標(biāo)準(zhǔn),實(shí)驗(yàn)數(shù)據(jù)表明,直接去除全連接層會(huì)降低網(wǎng)絡(luò)的性能,但去除全連接層后提高網(wǎng)絡(luò)的輸出分辨率能夠提升網(wǎng)絡(luò)的模型,當(dāng)同時(shí)采用提高分辨率與PSA,模型更優(yōu).圖6為4 種模型的參數(shù)量比較,通過(guò)比較可以發(fā)現(xiàn)我們的網(wǎng)絡(luò)比Pix2Vox 參數(shù)量更低.
表2 不同閾值下模型性能對(duì)比
體積測(cè)量的誤差主要來(lái)自?xún)蓚€(gè)部分,第1 個(gè)是在圖像預(yù)處理階段,獲取快遞紙箱的長(zhǎng)度時(shí)會(huì)存在誤差;第2 個(gè)誤差是3D 重建得到的歸一化長(zhǎng)寬高的值,這一誤差可以歸結(jié)為后處理階段.我們對(duì)box-150 中25 組數(shù)據(jù)進(jìn)行了第一個(gè)誤差的統(tǒng)計(jì)分析,具體如圖7所示,根據(jù)預(yù)處理獲取快遞紙箱的長(zhǎng)度的誤差平均僅為0.6%,80%的數(shù)據(jù)的相對(duì)誤差都小于1%,證明了圖像預(yù)處理模塊對(duì)于計(jì)算快遞紙箱長(zhǎng)度的有效性.第2 個(gè)誤差可以通過(guò)統(tǒng)計(jì)快遞紙箱的體積相對(duì)誤差來(lái)分析,并與用trimesh 庫(kù)來(lái)計(jì)算體積進(jìn)行對(duì)比,通過(guò)圖8可以看出由后處理得出的平均體積相對(duì)誤差比用trimesh 庫(kù)的低了很多,證明了后處理模塊的有效性.
圖6 不同模型的參數(shù)量對(duì)比
圖7 25 組快遞紙箱長(zhǎng)度相對(duì)誤差分析
圖8 基于trimesh 庫(kù)與后處理程序的體積誤差對(duì)比圖
考慮算法的實(shí)用性,本文還測(cè)試了6 組真實(shí)數(shù)據(jù),具體的誤差分析見(jiàn)表3,可以看出相對(duì)誤差基本在5%以?xún)?nèi),滿(mǎn)足實(shí)際的需求.但相較于box-150 數(shù)據(jù)集效果差了一點(diǎn),這是因?yàn)檎鎸?shí)數(shù)據(jù)與模型訓(xùn)練使用的數(shù)據(jù)還是存在著一些差異.
表3 手機(jī)拍照快遞紙箱體積測(cè)量誤差分析
本文基于3D 重建網(wǎng)絡(luò),設(shè)計(jì)了一個(gè)通過(guò)手機(jī)對(duì)快遞紙箱拍照就能獲得其體積的算法,通過(guò)實(shí)驗(yàn)證明了圖像預(yù)處理模塊計(jì)算快遞紙箱長(zhǎng)度的有效性以及提高網(wǎng)絡(luò)的重建分辨率并結(jié)合PSA 模塊有助于提高快遞紙箱的重建性能,此外后處理模塊能更精確的計(jì)算快遞紙箱的體積.最后考慮算法的實(shí)用性,本文還對(duì)真實(shí)數(shù)據(jù)做了測(cè)試.
下一步的研究工作在于如何讓該算法對(duì)拍攝快遞紙箱的角度更加魯棒性,保證在實(shí)際操作中更方便快捷地得到快遞紙箱的體積數(shù)據(jù).