牛 牧 門(mén)禹彤
(1,綏化學(xué)院發(fā)展規(guī)劃與政策研究中心 黑龍江綏化 152061;2,綏化學(xué)院信息工程學(xué)院 黑龍江綏化 152061)
遠(yuǎn)程虛擬試衣是近年來(lái)興起的一個(gè)新的研究領(lǐng)域[1-3]。隨著線上購(gòu)物的興起,顧客希望在網(wǎng)上挑選自己喜愛(ài)的衣服,這樣可以省去實(shí)體店店員雇傭費(fèi)用和房租等線下成本。但是,直接通過(guò)瀏覽服裝圖片的方式,顧客通過(guò)網(wǎng)上試衣時(shí)很難對(duì)衣服的尺碼、效果等有精準(zhǔn)的把握,所以,虛擬試衣技術(shù)應(yīng)運(yùn)而生。攝像系統(tǒng)抓取顧客三維形體數(shù)據(jù),結(jié)合虛擬現(xiàn)實(shí)等技術(shù),生成顧客和衣服的虛擬圖像,利用該圖像,顧客可以評(píng)判衣服是否合適。但是現(xiàn)有的圖形學(xué)技術(shù)、3D虛擬現(xiàn)實(shí)技術(shù)還無(wú)法提供真實(shí)線下試衣的體驗(yàn),虛擬圖像和真人的真實(shí)尺寸、體型、臉型的還有諸多區(qū)別。目前工業(yè)界的虛擬試衣技術(shù)研究雖然方興未艾,但還不能實(shí)際落地使用,如國(guó)內(nèi)深圳的云之夢(mèng)科技、俄羅斯的虛擬試衣鏡都還不能替代線下真實(shí)試衣。
從上述介紹可知,目前的虛擬試衣技術(shù)路線主要依賴3D圖形虛擬技術(shù),但因?yàn)閳D形學(xué)、虛擬現(xiàn)實(shí)技術(shù)的目前進(jìn)展還不足以提供真實(shí)線下試衣水平的技術(shù)要求,所以研究者需要開(kāi)辟新的研究路徑。最近兩年來(lái),深度學(xué)習(xí)技術(shù)的進(jìn)展非常迅速,很多相關(guān)應(yīng)用已經(jīng)能工業(yè)落地。其中,在傳統(tǒng)上被認(rèn)為具有巨大研究難度的自然語(yǔ)言處理領(lǐng)域,深度學(xué)習(xí)也帶來(lái)了重要進(jìn)展。谷歌公司2017年提出的transformer模型大幅度提高了機(jī)器翻譯、自動(dòng)應(yīng)答的應(yīng)用水平。目前出現(xiàn)的一系列具有重要應(yīng)用前景的自然語(yǔ)言理解新模型如bert(Bidirectional Encoder Representations from Transformers)、xlnet[4],本質(zhì)上都是基于transformer模型的,該模型具有在大數(shù)據(jù)集上進(jìn)行精確分類的強(qiáng)大能力,是深度學(xué)習(xí)研究的一個(gè)重要里程碑[5,6]。transformer模型一般被應(yīng)用在具有序列特征的自然語(yǔ)言理解領(lǐng)域,但作為一個(gè)優(yōu)秀的分類器,其也有潛力在其他領(lǐng)域帶來(lái)重要進(jìn)展。本文旨在利用transformer模型替代虛擬現(xiàn)實(shí)技術(shù),避開(kāi)圖形學(xué)、虛擬現(xiàn)實(shí)技術(shù)的研究瓶頸,不再將虛擬試衣系統(tǒng)的重心放在提高服裝和人體的三維虛擬數(shù)據(jù)精確度上,而是將不很精確的人體數(shù)據(jù)作為transformer模型的輸入數(shù)據(jù),利用該深度學(xué)習(xí)模型強(qiáng)大的分類判別能力,由機(jī)器系統(tǒng)自動(dòng)為顧客挑選最合適的服裝,該思路替代了傳統(tǒng)的虛擬試衣系統(tǒng)研究路徑。
作為云端線上虛擬系統(tǒng),網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)相應(yīng)速度對(duì)顧客的購(gòu)物試衣體驗(yàn)也尤為重要。這里在transformer模型的基礎(chǔ)上,利用網(wǎng)絡(luò)傳輸加速技術(shù)--網(wǎng)絡(luò)編碼來(lái)提高系統(tǒng)的響應(yīng)速度[7]。在網(wǎng)絡(luò)接收端,傳統(tǒng)上網(wǎng)絡(luò)編碼需要一次解碼操作,但這里可以用transformer模型的正向傳播直接替代網(wǎng)絡(luò)編碼的解碼操作,這一設(shè)計(jì)使二者有機(jī)融合,降低了運(yùn)算負(fù)載。
(一)隨機(jī)線性網(wǎng)絡(luò)編碼。網(wǎng)絡(luò)編碼的核心思想就是允許并提倡網(wǎng)絡(luò)的中間節(jié)點(diǎn)對(duì)信源消息進(jìn)行中間的加工。通過(guò)Jaggi-Sanders算法可以實(shí)現(xiàn)確定性網(wǎng)絡(luò)的網(wǎng)絡(luò)容量的上限[7]。通過(guò)隨機(jī)網(wǎng)絡(luò)編碼算法可以實(shí)現(xiàn)非相干網(wǎng)絡(luò)的多播容量上限[8]。網(wǎng)絡(luò)編碼技術(shù)是信息論的一個(gè)大發(fā)展,也是一種突破[9]。
整個(gè)網(wǎng)絡(luò)編碼過(guò)程如下:1.數(shù)據(jù)包分組。信源將要發(fā)送的消息分組,每組的前面加上包頭,包頭存儲(chǔ)的是網(wǎng)絡(luò)編碼向量,信源處的編碼向量是單位向量。2.中間節(jié)點(diǎn)再編碼。中間節(jié)點(diǎn)收到消息后重新再編碼,也就是將每個(gè)包前面乘以一個(gè)隨機(jī)系統(tǒng),算出新的包頭編碼向量,然后發(fā)送給下游節(jié)點(diǎn)。3.譯碼。信宿節(jié)點(diǎn)收到足夠多個(gè)線性獨(dú)立的包之后就可以進(jìn)行譯碼,解出信源處的信息。網(wǎng)絡(luò)編碼原理如圖1所示。
圖1 蝴蝶圖
網(wǎng)絡(luò)編碼的應(yīng)用范圍已經(jīng)擴(kuò)展到很多領(lǐng)域[7-12]。在有線網(wǎng)絡(luò)中可以提高網(wǎng)絡(luò)的吞吐量[13];無(wú)線網(wǎng)絡(luò)中可以減少重傳次數(shù),進(jìn)行復(fù)雜環(huán)境下的糾錯(cuò)等[15-17]。
(二)transformer模型簡(jiǎn)介。Transformer模型2017年由Google團(tuán)隊(duì)的《Attention is All You Need》提出,有一個(gè)完整的Encoder-Decoder框架,其主要由attention(注意力)機(jī)制構(gòu)成。Transformer模型拋棄了以往深度學(xué)習(xí)任務(wù)里面使用到的CNN(卷積神經(jīng)網(wǎng)絡(luò))、RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))。這個(gè)模型廣泛應(yīng)用于NLP領(lǐng)域,例如機(jī)器翻譯,問(wèn)答系統(tǒng),文本摘要和語(yǔ)音識(shí)別等等方向,因其出色性能,也有學(xué)者將其引用到別的研究領(lǐng)域。
模型分為編碼器(Encoder)和解碼器(Decoder)兩部分,包含內(nèi)部結(jié)構(gòu)的總體結(jié)構(gòu)如圖2所示。
圖2 transformer內(nèi)部結(jié)構(gòu)圖
transformer模型本質(zhì)上是一個(gè)樣本分類器,充分使用了attention注意力機(jī)制,其在污染數(shù)據(jù)的恢復(fù)方面有較好效果。
(一)總體方案。訓(xùn)練階段:云3D服務(wù)器端以自己庫(kù)存衣物為標(biāo)簽,以大量人體三維形態(tài)數(shù)據(jù)作為輸入數(shù)據(jù),訓(xùn)練生成transformer神經(jīng)網(wǎng)絡(luò)模型,得出此神經(jīng)模型的最優(yōu)參數(shù)。
測(cè)試階段:各客戶端通過(guò)攝像機(jī)拍照取得實(shí)際試衣人的三維形態(tài)數(shù)據(jù),利用網(wǎng)絡(luò)編碼技術(shù)實(shí)時(shí)將數(shù)據(jù)傳輸至云端服務(wù)器,服務(wù)器將該客戶形體數(shù)據(jù)輸入之前訓(xùn)練階段得出的transformer神經(jīng)網(wǎng)絡(luò)模型,該模型通過(guò)正向傳播得出客戶最適合的衣服編號(hào)。
在測(cè)試階段,網(wǎng)絡(luò)編碼技術(shù)和transformer模型的正向傳播有機(jī)結(jié)合起來(lái),并不需要配置額外系統(tǒng)資源。從transformer模型的角度來(lái)看,客戶端傳輸過(guò)來(lái)的數(shù)據(jù)會(huì)有一定的“偏差”。“偏差”來(lái)自于兩部分,一部分來(lái)自于網(wǎng)絡(luò)編碼的錯(cuò)誤擴(kuò)散,另外一部分是因?yàn)檎鎸?shí)測(cè)試的人體三維數(shù)據(jù)和模型采用的訓(xùn)練樣本不是完全相同的。一般情況下,網(wǎng)絡(luò)編碼的糾錯(cuò)需要額外的機(jī)制去解決,如密碼學(xué)和信息論技術(shù)。而在本文方案中,transformer深度學(xué)習(xí)模型的正向傳播能自然地糾正一部分“偏差”,所以其能替代網(wǎng)絡(luò)編碼糾錯(cuò)中的糾錯(cuò)機(jī)制部分,并不需要額外提供諸如密碼學(xué)和信息論的糾錯(cuò)技術(shù)模塊,即本方案無(wú)縫融合了網(wǎng)絡(luò)編碼和transformer模型,能同時(shí)達(dá)到數(shù)據(jù)傳輸提速和提高人體三維形態(tài)數(shù)據(jù)精確度的目標(biāo)。
下面將闡述這兩部分的方案細(xì)節(jié)。
(二)transformer模型技術(shù)細(xì)節(jié)。根據(jù)不同的任務(wù)特點(diǎn),圖2所示的transformer模型中的參數(shù)需要不同的設(shè)置數(shù)值。根據(jù)實(shí)驗(yàn),本方案中參數(shù)設(shè)置如下?;A(chǔ)參數(shù)部分:詞向量維度為256,encoder、decoder模塊的神經(jīng)網(wǎng)絡(luò)層數(shù)都為6,多頭數(shù)為8,默認(rèn)不采用attention_dropout。訓(xùn)練參數(shù)部分:batchsize=32,可選用三種優(yōu)化器(Optimizer=SGD/RMSprop/Adam),epoch_size=300000,多進(jìn)程數(shù)num_workers=10。測(cè)試參數(shù)部分:采用集束搜索,beam_size=1。
(三)網(wǎng)絡(luò)編碼方案。雖然本方案將用于提速的網(wǎng)絡(luò)編碼和用于人體形態(tài)估計(jì)的transformer模型結(jié)合起來(lái),但這兩種技術(shù)的自身特點(diǎn)使得二者自然的無(wú)縫自然融合,所以在具體方案實(shí)現(xiàn)上,二者可以分開(kāi)描述。從網(wǎng)絡(luò)編碼角度來(lái)看,傳輸?shù)娜梭w姿態(tài)數(shù)據(jù)和普通數(shù)據(jù)沒(méi)有任何區(qū)別,都是通信數(shù)據(jù),所以關(guān)于網(wǎng)絡(luò)編碼模塊這里僅僅從通信傳輸角度進(jìn)行描述,而不關(guān)注其所傳數(shù)據(jù)為深度學(xué)習(xí)模型transformer的輸入的客觀特點(diǎn)。
將分發(fā)的文件分成m份,每份有n個(gè)字符。字符為選定有限域F上的一個(gè)元素,F(xiàn)的大小采用經(jīng)典的數(shù)值256,即一個(gè)字節(jié)大小的8次方[4]。證明在此有限域下,解碼成功率可以達(dá)到99%以上,已經(jīng)足夠工程實(shí)踐的要求。256也是最近很多網(wǎng)絡(luò)編碼具體實(shí)現(xiàn)方案經(jīng)常采用的有限域大小。m的值這里根據(jù)具體情況選擇,一般來(lái)講,跟節(jié)點(diǎn)的計(jì)算能力有很大關(guān)系,如果CPU運(yùn)算能力強(qiáng),m值可以大一點(diǎn),比如可以取50,反之,就要小一點(diǎn),有時(shí)采用m=10,這時(shí)解碼求逆矩陣的運(yùn)算量不至于太大。信源節(jié)點(diǎn)在每個(gè)數(shù)據(jù)包的包頭加上隨機(jī)編碼的向量,在信源節(jié)點(diǎn)就是m個(gè)標(biāo)準(zhǔn)基。中間節(jié)點(diǎn)隨機(jī)選取編碼系數(shù),和接受的數(shù)據(jù)包包頭的編碼向量進(jìn)行運(yùn)算,得到新的針對(duì)原始消息的編碼向量,將這個(gè)新的編碼向量插入到生成的數(shù)據(jù)包的包頭部位,然后連同數(shù)據(jù)本身組成新的數(shù)據(jù)包,然后傳輸?shù)较掠喂?jié)點(diǎn)。信宿節(jié)點(diǎn)收到新的數(shù)據(jù)包之后,取出包頭的編碼向量,檢查他們的獨(dú)立性,直到收到m個(gè)彼此獨(dú)立的信息包,就可以通過(guò)解方程的形式解碼出原始消息。整個(gè)單輪的傳輸周期結(jié)束。
因?yàn)橛胻ransformer模型的正向傳播替代了網(wǎng)絡(luò)編碼的糾錯(cuò)解碼模塊,所以,除了網(wǎng)絡(luò)編碼本身的提速外,也因?yàn)楣?jié)省了一次網(wǎng)絡(luò)編碼解碼操作,所以,系統(tǒng)的響應(yīng)速度會(huì)進(jìn)一步提高。
云3D虛擬試衣技術(shù)目前還處于理論研究階段,理論和工程實(shí)踐都還有許多難點(diǎn)待以解決,距離可供工業(yè)使用的標(biāo)準(zhǔn)還有很遠(yuǎn)的距離,所以這里沒(méi)有給出原型系統(tǒng)級(jí)別的測(cè)試。本方案將從數(shù)據(jù)傳輸速率和人體形態(tài)數(shù)據(jù)識(shí)別準(zhǔn)確度兩個(gè)角度對(duì)本方案進(jìn)行仿真。數(shù)據(jù)集采用H3D Dataset(伯克利大學(xué)人體3D數(shù)據(jù)庫(kù)),H3D(人體3D)是一個(gè)標(biāo)注人體數(shù)據(jù)集。標(biāo)注包括:關(guān)節(jié)和關(guān)鍵點(diǎn)(眼、耳、鼻、肩、肘、腕、踝、膝和踝)。3D姿態(tài)由關(guān)鍵點(diǎn)推導(dǎo)而得。但因?yàn)镠3D Dataset的標(biāo)簽和本方案的標(biāo)簽不一致,而目前并沒(méi)有匹配本方案的公開(kāi)數(shù)據(jù)集,所以,這里在該數(shù)據(jù)集的基礎(chǔ)上人工標(biāo)注。標(biāo)簽為庫(kù)存衣服編號(hào),方案會(huì)為輸入樣本標(biāo)注一個(gè)最“合適”的標(biāo)簽,即會(huì)為樣本選擇一件最合適的衣服。在此修改后的數(shù)據(jù)集上,訓(xùn)練集、驗(yàn)證集、測(cè)試集尺寸比例為9:1:1。transformer模型的參數(shù)設(shè)置參見(jiàn)前文“transformer模型技術(shù)細(xì)節(jié)”部分。人體三維數(shù)據(jù)示例如圖3所示。
圖3 三維人體形態(tài)數(shù)據(jù)示例
針對(duì)識(shí)別準(zhǔn)確率,本文采用RNN和CNN網(wǎng)絡(luò)模型作為transformer模型的對(duì)比方案。三者準(zhǔn)確率對(duì)比如表1所示。
表1 三種模型對(duì)應(yīng)準(zhǔn)確率
準(zhǔn)確性實(shí)驗(yàn)討論如下。實(shí)驗(yàn)表明,相對(duì)于RNN和CNN網(wǎng)絡(luò)模型,transformer模型在提高三維試衣識(shí)別準(zhǔn)確性方面具有明顯優(yōu)勢(shì)。但該實(shí)驗(yàn)采用數(shù)據(jù)集和3D試衣真實(shí)場(chǎng)景具有較大差別。在真實(shí)場(chǎng)景中,標(biāo)簽表明人對(duì)衣服的審美結(jié)果,但不同地區(qū)、年齡、文化教育背景對(duì)審美結(jié)果有很大差異,所以,如沒(méi)有特別機(jī)制,真實(shí)場(chǎng)景中識(shí)別準(zhǔn)確度可能會(huì)下降。另外,因?yàn)槿丝跀?shù)目的龐大,即使訓(xùn)練數(shù)據(jù)集非常大,其也難以覆蓋測(cè)試樣本顧客數(shù)據(jù)的主要特點(diǎn),這些因素同樣可能會(huì)導(dǎo)致真實(shí)場(chǎng)景識(shí)別率會(huì)下降。
針對(duì)數(shù)據(jù)傳輸速率實(shí)驗(yàn),這里將云端服務(wù)服務(wù)器分布式訓(xùn)練節(jié)點(diǎn)數(shù)目設(shè)置為3,這樣,網(wǎng)絡(luò)編碼的最小割為3。 將未采用網(wǎng)絡(luò)編碼的路由轉(zhuǎn)發(fā)機(jī)制作為對(duì)比方案。假定路由轉(zhuǎn)發(fā)機(jī)制速率為1,二者速率對(duì)比如表2所示。
表2 傳輸速率對(duì)比
傳輸速率實(shí)驗(yàn)分析如下。表2表明網(wǎng)絡(luò)編碼技術(shù)可以極大提高網(wǎng)絡(luò)傳輸速率,這對(duì)云端3D試衣系統(tǒng)非常重要。在云端3D試衣真實(shí)場(chǎng)景里,客戶上傳到服務(wù)器的數(shù)據(jù)需要盡可能小的延遲,否則會(huì)很大程度上影響顧客的試衣體驗(yàn)。理論上,在三個(gè)分布式節(jié)點(diǎn)情況下,相比于路由轉(zhuǎn)發(fā)機(jī)制,網(wǎng)絡(luò)編碼方案的速率是路由轉(zhuǎn)發(fā)方案速率的3倍。但因?yàn)檎鎸?shí)數(shù)據(jù)傳輸時(shí)不可避免的遇到網(wǎng)絡(luò)編碼的錯(cuò)誤擴(kuò)散,同時(shí)因?yàn)闇y(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)具有一定“偏差”,這里在應(yīng)用層又直接將數(shù)據(jù)送至transformer模型進(jìn)行正向傳播以進(jìn)行解碼,而沒(méi)有在輸入模型之前進(jìn)行傳統(tǒng)的網(wǎng)絡(luò)編碼糾錯(cuò),所以,網(wǎng)絡(luò)編碼的速率性能增益并沒(méi)有達(dá)到理想值3。但因?yàn)橛胻ransformer模型的正向傳播替代了網(wǎng)絡(luò)編碼的糾錯(cuò)解碼模塊,總體速率會(huì)進(jìn)一步加大。同時(shí)因?yàn)闇p少一次網(wǎng)絡(luò)編碼的過(guò)程,運(yùn)算負(fù)載也會(huì)降低。
本文將網(wǎng)絡(luò)編碼技術(shù)和深度學(xué)習(xí)里的transformer模型相結(jié)合以實(shí)現(xiàn)云端3D試衣方案,以深度神經(jīng)網(wǎng)絡(luò)的正向傳播充當(dāng)網(wǎng)絡(luò)編碼的解碼器從而降低通信時(shí)延和運(yùn)算負(fù)載。實(shí)驗(yàn)結(jié)果表明,此方案有效的提高了3D試衣識(shí)別準(zhǔn)確率和數(shù)據(jù)傳輸速率。