王奕文,羅戎蕾,康宇哲
(1. 浙江理工大學(xué) 服裝學(xué)院,浙江 杭州 310018;2. 浙江理工大學(xué) 國際教育學(xué)院,浙江 杭州 310018; 3. 浙江省絲綢與時尚文化研究中心,浙江 杭州 310018;4. 浙江理工大學(xué) 信息學(xué)院,浙江 杭州 310018)
古代漢服的結(jié)構(gòu)及形制研究是傳統(tǒng)服飾研究的重要組成部分。博物館為避免風(fēng)化等問題對文物造成的損害,大部分出土衣物在測量和拍照完成后會保存在庫房里,很少展出,且發(fā)掘報告中給出的數(shù)據(jù)有限,后續(xù)研究人員無法按照需求進(jìn)行尺寸測量,不利于傳統(tǒng)服飾文化的繼承與發(fā)展。
尺寸自動測量一般應(yīng)用于成衣檢驗環(huán)節(jié)。曹麗等[1]提出利用邊緣檢測算法和拐點(diǎn)檢測算法進(jìn)行尺寸測量;王生偉等[2]利用Shi-Tomasi算法進(jìn)行角點(diǎn)檢測求得尺寸特征點(diǎn);董建明等[3]利用SUSAN算子和回光反射標(biāo)志結(jié)合測量比,標(biāo)定推算尺寸數(shù)據(jù);肖祎[4]采用Canny邊緣檢測算法、霍夫(Hough)變換提取輪廓并進(jìn)行關(guān)鍵點(diǎn)分級掃描檢索,最后利用擬合公式求得尺寸數(shù)據(jù)。以上研究都是基于人工設(shè)計的檢測算法,樣本特征提取單一,易受到周圍環(huán)境和服裝形變的干擾。
針對以上分析,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的古代漢服關(guān)鍵尺寸自動測量方案,以漢服上衣為例進(jìn)行實驗,所測關(guān)鍵尺寸包括領(lǐng)口寬、袖口寬、通袖長、袖寬、胸圍寬、下擺寬和衣長等。在特征提取上采用深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行漢服關(guān)鍵點(diǎn)檢測。卷積神經(jīng)網(wǎng)絡(luò)可從大量的原始圖像中進(jìn)行特征自學(xué)習(xí),從而有效避免外界因素的干擾,在目標(biāo)識別與定位方面具有明顯優(yōu)勢。再利用霍夫變換圓檢測算法結(jié)合K-Means聚類算法將無效關(guān)鍵點(diǎn)清除,最后通過比例映射即可求得所需的漢服尺寸數(shù)據(jù)。
在模型設(shè)計上,采用自上而下的特征提取方案,以Inception-ResNet-V2[5]作為特征提取的骨干網(wǎng)絡(luò)。參照特征金字塔融合網(wǎng)絡(luò)(FPN)[6]和單人姿態(tài)識別模型[7]的網(wǎng)絡(luò)思想,設(shè)計出一個包括全局網(wǎng)絡(luò)GlobalNet和精練網(wǎng)絡(luò)RefineNet的二階段卷積神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)高階特征和低階特征的融合作用,其中GlobalNet用于提取關(guān)鍵點(diǎn)特征,RefineNet用于提取關(guān)鍵點(diǎn)。
骨干網(wǎng)絡(luò)Inception-Resnet是由Inception網(wǎng)絡(luò)和Resnet網(wǎng)絡(luò)結(jié)合而來,在加深特征提取深度的同時增加殘差學(xué)習(xí)單元,對服裝特征的冗余信息進(jìn)行恒等映射,避免出現(xiàn)因網(wǎng)絡(luò)過深而造成的末端梯度消失問題。全局網(wǎng)絡(luò)GlobalNet是在Inception-ResNet-V2的網(wǎng)絡(luò)結(jié)構(gòu)中引入4種中間特征抽取算法(C2~C5),并構(gòu)造成類似于FPN的金字塔網(wǎng)絡(luò)特征提取結(jié)構(gòu)。其中C2和C3用于提取淺層特征,C4和C5用于提取較深層次的高階語義特征,其結(jié)構(gòu)如圖1所示。
圖1 GlobalNet金字塔網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 GlobalNet pyramid network structure
與FPN網(wǎng)絡(luò)不同的是,GlobalNet在每一層都加入了1×1卷積核進(jìn)行上采樣,且基于這種U型特征的金字塔網(wǎng)絡(luò)結(jié)構(gòu)可保留空間分辨率和語義信息,從而準(zhǔn)確定位到漢服的袖口、下擺等結(jié)構(gòu)較易分辨的部位。對于結(jié)構(gòu)較復(fù)雜的領(lǐng)口、裙褶等細(xì)節(jié)部位,需要引入更高階的語義信息和背景信息進(jìn)行識別,因此,在GlobalNet的基礎(chǔ)上又加入了精煉網(wǎng)絡(luò)RefineNet。RefineNet是在GlobalNet提取特征的基礎(chǔ)上將特征分成相同的3路,每路都加入了不同數(shù)量的1×1卷積核,以擴(kuò)大輸入和輸出的維度差距形成瓶頸層,以此對特征圖進(jìn)行非線性壓縮減小計算量,最后將3路特征經(jīng)過不同維度的線性壓縮后送入concat模塊,實現(xiàn)高低階特征的融合并存。區(qū)別于元素特征相加,concat結(jié)構(gòu)可在特征融合時通過增加特征圖的維度即通道數(shù)量,提高精煉網(wǎng)絡(luò)的關(guān)鍵點(diǎn)識別準(zhǔn)確率。最終得到的模型結(jié)構(gòu)如圖2所示。
圖2 二階段卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Two-stage convolutional neural network structure diagram
此外,GlobalNet和RefineNet均采用損失函數(shù)Smooth L2進(jìn)行關(guān)鍵點(diǎn)的回歸預(yù)測,計算公式如下:
L=|f(x)-Y|2
(1)
L′=2(f(x)-Y)f′(x)
(2)
式中:L為損失量;f(x)為系統(tǒng)預(yù)測的關(guān)鍵點(diǎn)坐標(biāo);Y為人工標(biāo)記的關(guān)鍵點(diǎn)坐標(biāo)。
在進(jìn)行回歸預(yù)測時,首先通過式(1)求得損失量L,再對其進(jìn)行求導(dǎo)即可得到損失量的下降方向L′。
將待測圖片導(dǎo)入GlobalNet-RefineNet后,最終的輸出維度為[1,256,256,24],即24張256像素×256像素的特征圖。利用霍夫變換圓檢測算法對這24幅特征圖進(jìn)行熱點(diǎn)檢測。首先對圖像進(jìn)行二值化處理和邊緣檢測,獲取圖像的前景點(diǎn),將邊緣檢測得到的像素點(diǎn)進(jìn)行強(qiáng)度累計[8],在二維坐標(biāo)空間中,對強(qiáng)度值進(jìn)行0~255的歸一化處理,其中強(qiáng)度最大的點(diǎn)即為熱點(diǎn)的坐標(biāo)點(diǎn),最后利用K-Means聚類算法將24幅特征圖中的無效關(guān)鍵點(diǎn)去除。
K-means聚類算法是將樣本數(shù)據(jù)分成K類,設(shè)樣本數(shù)據(jù)點(diǎn)分別為x(1),x(2),x(3),…,x(n),隨機(jī)選取K個聚類質(zhì)點(diǎn)μ1,μ2,μ3,μ4,…,μk,計算聚類質(zhì)點(diǎn)到每個樣本之間的損失ci:
(3)
其導(dǎo)數(shù)為
ci′=2argmin|x(i)-μj|
(4)
按照梯度下降的方向不斷重復(fù)以上計算直至損失收斂,此時每個樣本的質(zhì)心μj為
(5)
式中:i∈(1,2,…,n);j∈(1,2,…,n)。通過公式計算出的質(zhì)心坐標(biāo)即為所需關(guān)鍵點(diǎn)的二維坐標(biāo)。此時,只需再結(jié)合博物館或發(fā)掘報告中給出的任意一個真實測量數(shù)據(jù),即任意2個關(guān)鍵點(diǎn)之間的真實距離,通過比例映射即可得出所有關(guān)鍵點(diǎn)對應(yīng)的尺寸數(shù)據(jù)。
本文的訓(xùn)練環(huán)境搭建在Ubuntu18.04系統(tǒng)下進(jìn)行,采用CUDA10.0-cu、DNN7.6.5版本進(jìn)行GPU加速,keras2.1.3版本庫作為神經(jīng)網(wǎng)絡(luò)的前端,使用Tensorflow-GPU 1.15.0版本庫作為神經(jīng)網(wǎng)絡(luò)的后端,深度學(xué)習(xí)訓(xùn)練環(huán)境為:Intel Xeon E3 2603V2型號CPU,128 GB DDR3 ECC服務(wù)器內(nèi)存和11 GB NVIDIA RTX2080TI型號顯卡。測試環(huán)境使用2 GB NVIDIA 940MX顯卡進(jìn)行實驗,其余實驗條件與上述一致。
作為本文實驗對象的漢服上衣取自漢服結(jié)構(gòu)體系中的“上衣下裳”衣制,包括襦、衫、襖等分裁短衣,其結(jié)構(gòu)變化大都集中于領(lǐng)型和袖型。交領(lǐng)右衽、圓袂收袪作為漢服最典型的結(jié)構(gòu)特征,蘊(yùn)含著千年華夏文明的精神內(nèi)涵,本文主要針對具有此類領(lǐng)袖結(jié)構(gòu)的漢服上衣進(jìn)行實驗。
為解決古代漢服樣本數(shù)據(jù)和信息稀缺的問題,采用基于模型的遷移學(xué)習(xí)方法,將在大規(guī)模數(shù)據(jù)集上訓(xùn)練完成的卷積神經(jīng)網(wǎng)絡(luò)模型遷移到小規(guī)模目標(biāo)數(shù)據(jù)域上[9],利用模型之間的相似性,提高系統(tǒng)泛化能力。在模型訓(xùn)練時,分別以與古代漢服形制特征相似的現(xiàn)代服裝和現(xiàn)代漢服圖片作為2次遷移學(xué)習(xí)的數(shù)據(jù)集進(jìn)行訓(xùn)練,具體操作如下。
首先對現(xiàn)有的開源服裝數(shù)據(jù)集Fashion AI[10]和Deep Fashion[11]進(jìn)行人工篩選,得到與漢服輪廓特征相似的現(xiàn)代服裝圖片30 000余張,為避免因擺拍造型復(fù)雜而產(chǎn)生的數(shù)據(jù)分布不一致情況[12],所選圖片均為平鋪圖或直立人體模特圖。將收集來的圖片按5∶3∶1的比例分別作為訓(xùn)練集、驗證集和測試集,輸入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行遷移學(xué)習(xí),并得到第1次學(xué)習(xí)后的參數(shù)模型。
從淘寶網(wǎng)、漢服薈等電商平臺收集1 000張現(xiàn)代漢服平鋪圖,選取標(biāo)準(zhǔn)為服裝實物是依照傳世文物仿制或遵循傳統(tǒng)形制平裁而成的。通過對收集的圖片進(jìn)行旋轉(zhuǎn)、增加適當(dāng)噪聲等操作,將樣本容量擴(kuò)充到5 000張,作為第2次遷移學(xué)習(xí)的數(shù)據(jù)集。將第1次學(xué)習(xí)后的參數(shù)模型作為預(yù)訓(xùn)練模型輸入網(wǎng)絡(luò),再利用現(xiàn)代漢服數(shù)據(jù)集進(jìn)行第2次遷移學(xué)習(xí),最終得到一個能夠較好地識別漢服輪廓特征的網(wǎng)絡(luò)參數(shù)模型,如圖3所示。
圖3 遷移訓(xùn)練流程圖Fig.3 Flow chart of migration training
經(jīng)過反復(fù)迭代訓(xùn)練發(fā)現(xiàn),迭代曲線呈收斂趨勢,且當(dāng)?shù)螖?shù)達(dá)到300 000次,2次遷移學(xué)習(xí)的loss指數(shù)分別下降至0.2和0.18,說明模型收斂程度高,訓(xùn)練效果好。
為驗證經(jīng)過2次遷移學(xué)習(xí)的二階段卷積神經(jīng)網(wǎng)絡(luò)GlobalNet-RefineNet是否可較好地識別古代漢服的關(guān)鍵點(diǎn),以漢服上衣為例,選取現(xiàn)代漢服上衣和古代漢服上衣的平鋪圖各50張,將這100張圖片分別輸入到經(jīng)過第1次和第2次訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行關(guān)鍵點(diǎn)檢測,其結(jié)果如表1、2所示。
表1 第1次訓(xùn)練后的關(guān)鍵點(diǎn)檢測結(jié)果Tab.1 Key point detection results after first training
表2 第2次訓(xùn)練后的關(guān)鍵點(diǎn)檢測結(jié)果Tab.2 Key point detection results after second training
由表1、2中數(shù)據(jù)可知,經(jīng)第2次遷移學(xué)習(xí)后,關(guān)鍵點(diǎn)的識別準(zhǔn)確率有了大幅提升;2次檢測的結(jié)果均是現(xiàn)代漢服稍好于古代漢服,這與服裝的完整性和照片的質(zhì)量有一定關(guān)系。
圖4示出模型經(jīng)過第1次遷移學(xué)習(xí)后的關(guān)鍵點(diǎn)檢測效果圖。
圖4 第1次訓(xùn)練后的漢服檢測效果示例Fig.4 Detection effect of Han-style costumes after first training. (a) Modern Han-style costumes ; (b) Ancient Han-style costumes
第1次訓(xùn)練時采用的是與漢服輪廓特征相似的上萬張現(xiàn)代服裝圖片。從圖中不難發(fā)現(xiàn),訓(xùn)練后的模型在識別與現(xiàn)代服裝結(jié)構(gòu)相似的漢服衣擺、小袖等部位時表現(xiàn)出較好的識別能力,但對于漢服特有的交領(lǐng)、垂胡等細(xì)部結(jié)構(gòu)的識別能力較差,因此,此時模型的泛化能力還達(dá)不到準(zhǔn)確檢測漢服關(guān)鍵點(diǎn)的要求。
圖5示出利用現(xiàn)代漢服進(jìn)行第2次遷移學(xué)習(xí)后的檢測效果圖。結(jié)合表2中數(shù)據(jù)可知,此時的神經(jīng)網(wǎng)絡(luò)模型因為有了現(xiàn)代漢服的訓(xùn)練,模型的泛化能力顯著提高,并可較為準(zhǔn)確地識別出漢服特有的造型結(jié)構(gòu)。古代漢服關(guān)鍵點(diǎn)識別的單點(diǎn)準(zhǔn)確率達(dá)到86%,識別準(zhǔn)確率達(dá)到80%;訓(xùn)練結(jié)果的總體單點(diǎn)準(zhǔn)確率為90.5%,總體識別準(zhǔn)確率為86%,且坐標(biāo)點(diǎn)滿足誤差范圍。
圖5 第2次訓(xùn)練后的古代漢服檢測效果示例Fig.5 Detection effect of Han-style costumes after second training.(a) Modern Han-style costumes; (b) Ancient Han-style costumes
選取實測數(shù)據(jù)較多的古代漢服上衣鑲幾何邊絹襖[13]、素綢夾衫[14]和藍(lán)湖縐麒麟補(bǔ)女短衣[15]進(jìn)行測量結(jié)果分析,以各自通袖長的實測尺寸和機(jī)測尺寸之比作為比例映射關(guān)系,測量結(jié)果如表3~5所示。
表3 鑲幾何邊絹襖尺寸測量表Tab.3 Size measurement table of women′s jacket with geometric patterns
由表3~5可知,利用上述方法測得的尺寸絕對誤差在3~9 mm之間,相對誤差在0.59%~4.17%之間,誤差處于可接受范圍內(nèi)。誤差主要來源于系統(tǒng)標(biāo)定、照片質(zhì)量以及服裝褶皺等因素。系統(tǒng)誤差可通過調(diào)整模型參數(shù)提高識別準(zhǔn)確率,照片及服裝褶皺的影響隨著紡織品保護(hù)與修復(fù)技術(shù)的發(fā)展將會逐年降低。
表4 素綢夾衫尺寸測量表Tab.4 Size measurement table of plain silk shirt
表5 藍(lán)湖縐麒麟補(bǔ)女短衣尺寸測量表Tab.5 Size measurement table of blue crepe short women′s Bufu with unicorn pattern
本文將卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上的優(yōu)越性應(yīng)用于漢服關(guān)鍵尺寸的自動測量,得到以下主要結(jié)論。
1)通過搭建二階段卷積神經(jīng)網(wǎng)絡(luò)模型GlobalNet-RefineNet,并對其進(jìn)行反復(fù)迭代訓(xùn)練,得到可實現(xiàn)漢服關(guān)鍵點(diǎn)自動檢測與定位的網(wǎng)絡(luò)參數(shù)模型。
2)應(yīng)用該模型測得的漢服上衣總體單點(diǎn)準(zhǔn)確率達(dá)到90.5%,總體識別準(zhǔn)確率達(dá)到86%。
3)對輸出有效關(guān)鍵點(diǎn)的二維坐標(biāo)進(jìn)行比例映射,得到的漢服上衣尺寸的絕對誤差在3~9 mm之間,相對誤差在0.59%~4.17%之間。
綜上,本文方案誤差范圍小,操作流程不易受外界因素的干擾,系統(tǒng)設(shè)計及測量方案有效。在今后的研究中,可通過調(diào)整實驗參數(shù)優(yōu)化神經(jīng)網(wǎng)絡(luò)模型,不斷提高系統(tǒng)的魯棒性。利用先進(jìn)的現(xiàn)代技術(shù)探索古代的物質(zhì)文明,不僅是傳承傳統(tǒng)文化的科學(xué)途徑,也是時代發(fā)展與進(jìn)步的最佳體現(xiàn)。