黨應(yīng)聰 陳勁杰
摘 ?要:本文針對(duì)五類(lèi)簡(jiǎn)單幾何體三維模型,設(shè)計(jì)了完整的卷積神經(jīng)網(wǎng)絡(luò)模型以實(shí)現(xiàn)自動(dòng)分類(lèi)識(shí)別。首先本文運(yùn)用CATIA二次開(kāi)發(fā)技術(shù)完成了模型的生產(chǎn)并收集了原始數(shù)據(jù),其次運(yùn)用圖像處理的理論對(duì)原始數(shù)據(jù)進(jìn)行了預(yù)處理,然后運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)理論完成了本文的卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì),最后進(jìn)行了實(shí)驗(yàn)分析并驗(yàn)證了本文模型的可行性。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);識(shí)別與分類(lèi);簡(jiǎn)單幾何體;三維模型
中圖分類(lèi)號(hào):TP391.41 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:In this paper,a complete convolution neural network model is designed for automatic classification and recognition of five kinds of simple geometric three-dimensional models.Firstly,the CATIA secondary development technology is used to complete the production of the model and collect the original data.Secondly,the theory of image processing is used to preprocess the original data.Thirdly,the convolutional neural network model is designed by using the convolutional neural network theory.Finally,the feasibility of the model is analyzed and verified through experiments.
Keywords:convolutional neural network;classification and recognition;simple geometric;3D models
1 ? 引言(Introduction)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network) 是有監(jiān)督的學(xué)習(xí)模型,模型中的參數(shù)可以使用帶標(biāo)簽的數(shù)據(jù)通過(guò)優(yōu)化算法進(jìn)行訓(xùn)練,經(jīng)過(guò)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)模型能夠有效地學(xué)習(xí)到圖像中的特征,并且完成對(duì)圖像特征的提取和分類(lèi)[1]。卷積神經(jīng)網(wǎng)絡(luò)具有三個(gè)巨大的優(yōu)勢(shì),即分層局部視野感知,參數(shù)共享和多卷積核處理,這三大優(yōu)勢(shì)使得其成為研究圖像識(shí)別的強(qiáng)大算法[2]。
本文從數(shù)據(jù)處理入手,完整地實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)模型的搭建和訓(xùn)練,主要目的在于研究卷積神經(jīng)網(wǎng)絡(luò)對(duì)由CATIA建模軟件生產(chǎn)的三維實(shí)體模型的自主識(shí)別,為以后機(jī)器理解更多種類(lèi)的3D模型提供識(shí)別分類(lèi)基礎(chǔ)。
2 ? 總體設(shè)計(jì)路線(Overall design route)
本文研究目是完成卷積神經(jīng)網(wǎng)絡(luò)對(duì)三維實(shí)體模型的自動(dòng)分類(lèi)識(shí)別,考慮到模型種類(lèi)的復(fù)雜多樣,本文以五類(lèi)簡(jiǎn)單幾何體三維模型作為研究對(duì)象,其中包括:長(zhǎng)方體、正方體、圓柱體、圓錐和球體。
總體設(shè)計(jì)路線如圖1所示,主要包括五大部分:收集原始數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,搭建卷積神經(jīng)網(wǎng)絡(luò)模型,訓(xùn)練并驗(yàn)證模型以得到最優(yōu)參數(shù),最后用訓(xùn)練好的模型用于實(shí)際預(yù)測(cè)。本文關(guān)鍵點(diǎn)在于原始數(shù)據(jù)的收集處理和網(wǎng)絡(luò)模型的搭建下文將著重研究這兩點(diǎn)內(nèi)容。
3 數(shù)據(jù)的收集與預(yù)處理(Data collection andpreprocessing)
3.1 ? 數(shù)據(jù)集的產(chǎn)生
本文所用的數(shù)據(jù)是通過(guò)CATIA軟件創(chuàng)建的三維實(shí)體模型,根據(jù)CATIA二次開(kāi)發(fā)技術(shù)產(chǎn)生三維實(shí)體模型,對(duì)模型進(jìn)行截圖作為初始數(shù)據(jù)集,然后再對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,以使卷積神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)標(biāo)準(zhǔn)化,整個(gè)二次開(kāi)發(fā)配置如表1所示。
Catia零件建模二次開(kāi)發(fā)流程如圖2所示,利用二次開(kāi)發(fā)接口去獲取Part零件對(duì)象,在對(duì)象上獲取實(shí)體集合,然后添加并繪制草圖,最后使用造型工廠完成三維建模[3]。
最終生產(chǎn)的初始數(shù)據(jù)集截圖如圖3所示,五種類(lèi)別三維模型幾何體的圖像分別有400張,至此完成了初始數(shù)據(jù)集的收集。
3.2 ? 數(shù)據(jù)集的標(biāo)準(zhǔn)化處理
由于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)量十分龐大,當(dāng)前的初始數(shù)據(jù)不能滿(mǎn)足訓(xùn)練數(shù)據(jù)量的要求,同時(shí)由于初始圖像的像素大小參差不齊,無(wú)法直接作為卷積神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù),因此對(duì)原始圖像的預(yù)處理變得尤為重要[4]。
圖像預(yù)處理過(guò)程如圖4所示,對(duì)原始圖像進(jìn)行目標(biāo)位置檢測(cè),框選出整幅圖像里三維模型實(shí)體的位置;其次是通過(guò)圖像的剪裁與填充算法,將每個(gè)圖像都剪裁并填充為正方形以方便對(duì)圖像做壓縮處理,填充為正方形的目的是為了使圖像在等比壓縮或擴(kuò)大的同時(shí)其本身結(jié)構(gòu)不發(fā)生變化,以減少識(shí)別出錯(cuò)的可能;最后將所有的處理好的數(shù)據(jù)進(jìn)行旋轉(zhuǎn),鏡像等操作以增強(qiáng)數(shù)據(jù)量和提高數(shù)據(jù)的魯棒性。
圖像中的目標(biāo)檢測(cè)過(guò)程如圖5所示,本文采取的策略是對(duì)原始圖像進(jìn)行灰度化處理、Sobel算子梯度處理、均值濾波處理、二值化處理[5,6]。最后找到圖像中的最大輪廓,用矩形框框選出來(lái)圖像中關(guān)鍵信息,框選后對(duì)圖像進(jìn)行剪裁并填充為正方形圖像。
經(jīng)過(guò)剪裁填充后的數(shù)據(jù)在總量上沒(méi)有變化,仍然存在數(shù)據(jù)量較小的問(wèn)題,需要使用數(shù)據(jù)增強(qiáng)算法,即對(duì)所有原始圖像進(jìn)行水平翻轉(zhuǎn),垂直翻轉(zhuǎn)和水平垂直翻轉(zhuǎn)操作。這樣使得數(shù)據(jù)量變?yōu)樵瓉?lái)的四倍,再將翻轉(zhuǎn)后的圖像旋轉(zhuǎn)90度、180度、270度,這樣便使數(shù)據(jù)量變?yōu)槌跏嫉氖叮敲疵恳活?lèi)別的數(shù)據(jù)量變?yōu)?800張圖像。
3.3 ? 數(shù)據(jù)集的存儲(chǔ)
卷積神經(jīng)網(wǎng)絡(luò)的圖像矩陣的輸入,上文處理好的數(shù)據(jù)的像素大小仍然不盡相同,所以預(yù)處理好的圖像需要進(jìn)行歸一化處理(即壓縮為50×50像素大小的圖像),并為每一張圖像貼上對(duì)應(yīng)的標(biāo)簽,最后將其以矩陣的形式保存起來(lái)。卷積神經(jīng)網(wǎng)絡(luò)需要的數(shù)據(jù)除了訓(xùn)練集之外還有測(cè)試集,訓(xùn)練集主要用于優(yōu)化網(wǎng)絡(luò)的權(quán)重和偏置,而測(cè)試集數(shù)據(jù)主要用于驗(yàn)證優(yōu)化后網(wǎng)絡(luò)的魯棒性和準(zhǔn)確率[7]。因此,本文將上文處理后的24000張圖像中的80%作為訓(xùn)練數(shù)據(jù)集,剩下的20%作為測(cè)試數(shù)據(jù)集,最后保持結(jié)果如圖8所示。
4 ?卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)(Design of convolutionalneural network model)
4.1 ? 卷積神經(jīng)網(wǎng)絡(luò)的搭建
一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)模型主要由輸入層、卷積層、池化層、全連接層和輸出層組成,其中卷積層和全連接層的層數(shù)是根據(jù)具體情況而設(shè)定[8]。本文通過(guò)經(jīng)驗(yàn)和由低層級(jí)向高層級(jí)逐漸驗(yàn)證的方法最終確定了整個(gè)卷積網(wǎng)絡(luò)的層數(shù)于其中的神經(jīng)元個(gè)數(shù)。每層的矩陣維度如表2所示,總共包含兩個(gè)卷積層,兩個(gè)池化層,一個(gè)全連接層,一個(gè)輸入層和一個(gè)輸出層。
4.2 ? 卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法
在完成網(wǎng)絡(luò)的模型的搭建之后,就需要用準(zhǔn)備好的數(shù)據(jù)去訓(xùn)練整個(gè)網(wǎng)絡(luò),本文采用的訓(xùn)練算法流程如圖9所示。該流程算法主要包含兩個(gè)訓(xùn)練,一個(gè)大循環(huán)是用所有數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),在大循環(huán)里有一個(gè)小循環(huán)是將所有訓(xùn)練數(shù)據(jù)在整個(gè)大循環(huán)里分批次訓(xùn)練,這樣可以減少計(jì)算量,整個(gè)訓(xùn)練流算法如下所示:
(1)初始化所有權(quán)重W和偏置b;
(2)將所有訓(xùn)練集數(shù)據(jù)分批次沿卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行前向傳播得到預(yù)測(cè)值;
(3)將預(yù)測(cè)值與對(duì)應(yīng)輸入的標(biāo)簽值進(jìn)行比較得出誤差值即損失函數(shù)的值;
(4)根據(jù)損失函數(shù),利用隨機(jī)梯度下降法(SGD)去跟新每層權(quán)重與偏置的值以?xún)?yōu)化參數(shù),這也就是卷積神經(jīng)網(wǎng)絡(luò)的后續(xù)傳播;
(5)計(jì)算訓(xùn)練集結(jié)果準(zhǔn)確率,如果準(zhǔn)確率滿(mǎn)足要求則停止訓(xùn)練;
(6)重復(fù)過(guò)程(2)—過(guò)程(5),直到訓(xùn)練次數(shù)到達(dá)設(shè)定值。
4.3 ? 卷積神經(jīng)網(wǎng)絡(luò)的測(cè)試與預(yù)測(cè)
卷積神經(jīng)網(wǎng)絡(luò)模型的測(cè)試過(guò)程如圖10(a)所示,主要將全部的測(cè)試數(shù)據(jù)輸入訓(xùn)練后的模型,進(jìn)行前向傳播最后得到預(yù)測(cè)值,將預(yù)測(cè)值與圖像的實(shí)際標(biāo)簽值對(duì)比,可以得到測(cè)試訓(xùn)練集的總體準(zhǔn)確率,一般情況下沒(méi)完成一次網(wǎng)絡(luò)的訓(xùn)練都會(huì)進(jìn)行一次測(cè)試,以驗(yàn)證此次訓(xùn)練的效果;而預(yù)測(cè)過(guò)程如圖10(b)所示,與測(cè)試過(guò)程基本一致,只是預(yù)測(cè)過(guò)程輸入的數(shù)據(jù)是單個(gè)數(shù)據(jù)。
5 ? 實(shí)驗(yàn)結(jié)果與分析(Experimental results and analysis)
在完成了針對(duì)簡(jiǎn)單幾何體的三維模型的卷積網(wǎng)絡(luò)整體設(shè)計(jì)之后,本文在高性能計(jì)算機(jī)上進(jìn)行了訓(xùn)練和測(cè)試實(shí)驗(yàn),用于實(shí)驗(yàn)的計(jì)算機(jī)配置如表3所示。
如圖11和圖12所示,通過(guò)不斷地訓(xùn)練使得卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)得到優(yōu)化,使得訓(xùn)練數(shù)據(jù)的準(zhǔn)確率隨迭代次數(shù)的增加而不斷提升最終達(dá)到一個(gè)較為穩(wěn)定的值,經(jīng)過(guò)55次的訓(xùn)練準(zhǔn)確率已經(jīng)到達(dá)了99.98%,同時(shí)訓(xùn)練集的損失函數(shù)的值也隨著訓(xùn)練次數(shù)的下降,表示隨著訓(xùn)練次數(shù)的增加預(yù)測(cè)誤差在減小。
在完成一次訓(xùn)練并更新優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)參數(shù)之后,都會(huì)進(jìn)行一次測(cè)試數(shù)據(jù)的實(shí)驗(yàn),用于驗(yàn)證該網(wǎng)絡(luò)的通用性和魯棒性。如圖13所示,測(cè)試數(shù)據(jù)集的準(zhǔn)確率也隨著訓(xùn)練次數(shù)的增加而增加,測(cè)試準(zhǔn)確率低于訓(xùn)練準(zhǔn)確率并且與之相差不多,可以說(shuō)明該訓(xùn)練好的模型并沒(méi)有過(guò)擬合,卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)合理,識(shí)別精度高。在第55次訓(xùn)練后,測(cè)試數(shù)據(jù)集的準(zhǔn)確率到達(dá)98.09%,如果繼續(xù)進(jìn)行訓(xùn)練準(zhǔn)確還可以再提升。
6 ? 結(jié)論(Conclusion)
本文系統(tǒng)將卷積神經(jīng)網(wǎng)絡(luò)用于簡(jiǎn)單幾何體三維模型的識(shí)別和分類(lèi),為了機(jī)器理解三維模型實(shí)體提供一種方法,為以后機(jī)器自主設(shè)計(jì)三維模型實(shí)體提供一個(gè)鋪墊。同時(shí)本文針對(duì)五類(lèi)簡(jiǎn)單幾何體的三維模型,進(jìn)行了總體系統(tǒng)設(shè)計(jì),完成了數(shù)據(jù)集的收集,數(shù)據(jù)的預(yù)處理,卷積神經(jīng)網(wǎng)絡(luò)的搭建和訓(xùn)練算法的設(shè)計(jì),最后通過(guò)實(shí)驗(yàn)驗(yàn)證了整套系統(tǒng)的可行性,驗(yàn)證了網(wǎng)絡(luò)模型的可用性。
參考文獻(xiàn)(References)
[1] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017,40(06):1229-1251.
[2] 李彥冬,郝宗波,雷航.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)應(yīng)用,2016,36(09):2508-2515;2565.
[3] 胡挺,吳立君.CATIA二次開(kāi)發(fā)基礎(chǔ)[M].浙江:浙大旭日科技圖書(shū),2006.
[4] 許可.卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別上的應(yīng)用的研究[D].浙江大學(xué),2012:12-24.
[5] Robust Real-Time Face Detection[J].Paul Viola,Michael J.Jones. International Journal of Computer Vision,2004(2):137-154.
[6] Richard Szeliski.Computer Vision:Algorithms and Applications [M].Springer,2010:101-118.
[7] 常亮,鄧小明,周明全,等.圖像理解中的卷積神經(jīng)網(wǎng)絡(luò)[J].自動(dòng)化學(xué)報(bào),2016,42(09):1300-1312.
[8] Yu Chen,Hongbing Meng,Xinling Wen,et al.Classification methods of a small sample target object in the sky based on the higher layer visualizing feature and transfer learning deep networks[J].EURASIP Journal on Wireless Communications and Networking,2018(1):127-138.
作者簡(jiǎn)介:
黨應(yīng)聰(1993-),男,碩士生.研究領(lǐng)域:智能機(jī)器人,機(jī)器學(xué)習(xí).
陳勁杰(1969-),男,碩士,副教授.研究領(lǐng)域:智能機(jī)器人,機(jī)器學(xué)習(xí).