何 瑞 丁澤慶
(1.黃河水利職業(yè)技術(shù)學(xué)院,河南 開(kāi)封 475004;2.南陽(yáng)技師學(xué)院,河南 南陽(yáng) 473000)
微小零件的尺寸較小,不便于人工接觸與識(shí)別。食品機(jī)械中的微小零件對(duì)產(chǎn)品的質(zhì)量起決定作用,如飲料灌裝設(shè)備中的軌跡控制軸承零件可以保證其生產(chǎn)線平穩(wěn),使得灌裝具有一致性[1];腐竹切割刀具的零件是腐竹切割質(zhì)量的關(guān)鍵因素[2]。
機(jī)器視覺(jué)具有效率高、非接觸式識(shí)別微小零件,可全檢機(jī)械零件加工生產(chǎn)線。神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)屬于監(jiān)督式學(xué)習(xí)算法[3],其識(shí)別效果良好,被廣泛應(yīng)用于零件識(shí)別等領(lǐng)域,但是零件識(shí)別過(guò)程中需要較多的神經(jīng)元,計(jì)算數(shù)據(jù)量大且需要較多訓(xùn)練樣本。將小波變換與神經(jīng)網(wǎng)絡(luò)結(jié)合(WTNN)[4],需要人工提取微小零件圖像特征,特征提取的效果直接影響識(shí)別精度,同時(shí)在包含多目標(biāo)的零件圖像中無(wú)法進(jìn)行有效提取。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network, CNN)具有更強(qiáng)的提取特征能力[5],其網(wǎng)絡(luò)結(jié)構(gòu)通過(guò)局部連接實(shí)現(xiàn),能夠降低訓(xùn)練時(shí)需要的微小零件特征參數(shù)數(shù)量,由于采用誤差反向傳播算法進(jìn)行訓(xùn)練,卷積神經(jīng)網(wǎng)絡(luò)存在收斂速度慢、訓(xùn)練成本高、泛化能力弱等缺陷。豐富功能階段卷積神經(jīng)網(wǎng)絡(luò)算法(Rich feature hierarchies CNN,R-CNN)[6]在零件檢測(cè)過(guò)程中分3個(gè)階段:候選、提取特征信息和圖像分類,各階段相互分離,使得算法檢測(cè)過(guò)程復(fù)雜,耗時(shí)較多,不便于優(yōu)化。Faster R-CNN在一定程度上降低了卷積神經(jīng)網(wǎng)絡(luò)算法檢測(cè)過(guò)程中的復(fù)雜度[7],但其檢測(cè)速度有待提高。運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)的級(jí)聯(lián)結(jié)構(gòu)YOLOv4算法[8],其檢測(cè)速度相較于R-CNN有了很大的提升,但其檢測(cè)正確率較低,尤其是對(duì)于復(fù)雜場(chǎng)景和小目標(biāo)物體的檢測(cè)。
文章擬將量子算法和卷積神經(jīng)網(wǎng)絡(luò)算法(Quantum Convolution Neural Network, QCNN)結(jié)合,設(shè)計(jì)量子卷積神經(jīng)網(wǎng)絡(luò)輸入層、隱藏層以及輸出層量子門模型,并進(jìn)行微小零件識(shí)別仿真試驗(yàn),旨在為解決工業(yè)中對(duì)微小零件的快速、準(zhǔn)確識(shí)別提供依據(jù)。
量子計(jì)算單位是量子比特,其狀態(tài)通過(guò)|0〉、|1〉或者疊加態(tài)構(gòu)成:
|φ〉=α|0〉+β|1〉,
(1)
式中:
α、β——|0〉、|1〉狀態(tài)的概率幅,且|α|2+|β|2=1。
1.2.1 量子卷積神經(jīng)網(wǎng)絡(luò)表示層模型 量子卷積神經(jīng)網(wǎng)絡(luò)由表示層、卷積層、池化層、全連接層、輸出層組成,其中卷積層、池化層、全連接層可通過(guò)隱含層表示[9-10]。為了使得輸出與輸入能夠映射相關(guān)性,通過(guò)量子受限玻爾茲曼網(wǎng)絡(luò),表示層模型結(jié)構(gòu)如圖1所示。
圖1 表示層模型
表示層模型神經(jīng)元經(jīng)過(guò)4部分操作實(shí)現(xiàn):輸入由|xn〉量子比特表示、相位移動(dòng)由Hadamard門與旋轉(zhuǎn)門R(θl)實(shí)現(xiàn)、聚合由Σ操作、輸出結(jié)果。多級(jí)神經(jīng)網(wǎng)絡(luò)表示層模型中,每一級(jí)表示層神經(jīng)元輸出結(jié)果作為下一級(jí)表示層神經(jīng)元的輸入,下一級(jí)依次需要經(jīng)過(guò)輸入、相位移動(dòng)、聚合、輸出4個(gè)過(guò)程,這樣避免了相位移動(dòng)、聚合的單一性,使得神經(jīng)網(wǎng)絡(luò)充分學(xué)習(xí),能夠增加微小零件識(shí)別的準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)邏輯運(yùn)算主要通過(guò)Hadamard門和旋轉(zhuǎn)門實(shí)現(xiàn),Hadamard門主要是使量子態(tài)旋轉(zhuǎn)和反射,即對(duì)卷積神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣進(jìn)行初始運(yùn)算,其表達(dá)式為:
(2)
按式(3)計(jì)算量子門旋轉(zhuǎn):
(3)
式中:
θ——量子旋轉(zhuǎn)角,rad。
(4)
則R(θ)實(shí)現(xiàn)了對(duì)|τ〉的相位旋轉(zhuǎn)。
|xl〉經(jīng)過(guò) Hadamard門和旋轉(zhuǎn)門R(θl)操作后,其結(jié)果為:
(5)
式中:
聚合結(jié)果為:
(6)
當(dāng)量子位處于|1〉狀態(tài),即量子神經(jīng)元的輸入輸出關(guān)系為:
(7)
式中:
當(dāng)量子位處于|0〉狀態(tài),即量子神經(jīng)元的輸入輸出關(guān)系為:
(8)
1.2.2 隱藏層神經(jīng)元模型 隱藏層神經(jīng)元量子門模型設(shè)計(jì)如圖2所示。
為輸入,rl為第l層的通道數(shù),為卷積輸出
1.2.3 輸出層神經(jīng)元模型 當(dāng)對(duì)量子態(tài)進(jìn)行提取時(shí),量子態(tài)坍縮到一個(gè)具體的態(tài)上[11],為了避免卷積結(jié)果被破壞,輸出層神經(jīng)元線路模型設(shè)計(jì)如圖3所示。
|x1〉,|x2〉,…,|xK〉為輸出層的輸入,|y1〉,|y2〉,…,|yK〉為輸出層的分類輸出結(jié)果
在輸出層神經(jīng)元量子門模型中,|x1〉經(jīng)過(guò)Hadamard門操作后,可根據(jù)需要自由選擇量子態(tài)|0〉或者|1〉進(jìn)行運(yùn)算,為充分進(jìn)行神經(jīng)網(wǎng)絡(luò)權(quán)值更新,需要再次經(jīng)Hadamard門操作后,最終輸出分類結(jié)果。
1.3.1 激活函數(shù)優(yōu)化 表示層到隱含層的激活函數(shù)、隱含層到輸出層的激活函數(shù)均采用修正線性激活函數(shù)ReLu如式(9)所示。
u′=min[φmax,max(φmin,u)],
(9)
式中:
φmin<0、φmax>1——激活函數(shù)ReLu邊緣常量值;
u——輸入;
u′——輸出。
ReLu具有比動(dòng)物神經(jīng)元模型接收信號(hào)更準(zhǔn)確的激活模型,如圖4所示。
圖4 激活函數(shù)示意圖
與傳統(tǒng)的Sigmoid型激活函數(shù)相比,修正線性激活函數(shù)Relu無(wú)除法和指數(shù)運(yùn)算,計(jì)算速度較快,同時(shí)ReLu函數(shù)能夠?qū)⒇?fù)的激活值全部表示為零,使網(wǎng)絡(luò)產(chǎn)生稀疏性,并且當(dāng)量子卷積神經(jīng)網(wǎng)絡(luò)算法用于訓(xùn)練網(wǎng)絡(luò)時(shí),可以提升其收斂速度。
1.3.2 旋轉(zhuǎn)角度、連接權(quán)值優(yōu)化 神經(jīng)網(wǎng)絡(luò)算法通過(guò)量子旋轉(zhuǎn)門更新時(shí),旋轉(zhuǎn)門的角度與收斂速率有關(guān)。若旋轉(zhuǎn)角度值與期望值相差較大,此時(shí)需要增大旋轉(zhuǎn)角度,加快收斂;若旋轉(zhuǎn)角度值與期望值比較接近,此時(shí)需要減小旋轉(zhuǎn)角度,以避免早熟。假設(shè)訓(xùn)練誤差函數(shù)為:
(10)
式中:
E——訓(xùn)練誤差值;
ym——第m個(gè)神經(jīng)網(wǎng)絡(luò)輸出端的實(shí)際輸出。
試驗(yàn)要求訓(xùn)練誤差<10-3。
隱藏層和輸出層量子旋轉(zhuǎn)門的旋轉(zhuǎn)角度分別為θ、ψ,其更新方式為:
(11)
式中:
t——迭代步數(shù);
η1∈(0,1)、η2∈(0,1)——學(xué)習(xí)速率。
當(dāng)訓(xùn)練誤差較大時(shí),旋轉(zhuǎn)角度此時(shí)旋轉(zhuǎn)增加,加快收斂;否則進(jìn)行相反操作。
按式(12)計(jì)算連接權(quán)值。
(12)
式中:
ω——連接權(quán)值;
η3∈(0,1)——學(xué)習(xí)速率。
微小零件識(shí)別的訓(xùn)練器使用量子算法優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,然后生成多組固定初始權(quán)值的卷積神經(jīng)網(wǎng)絡(luò),并對(duì)多組卷積神經(jīng)網(wǎng)絡(luò)并行計(jì)算以獲得最優(yōu)訓(xùn)練器。
2.1.1 幾何特征提取 微小零件的形狀因子、球狀性、矩形度、圓形度是其自身的重要特征,通常由零件所占區(qū)域的邊界決定[12]。
形狀因子為:
(13)
球狀性為:
(14)
矩形度為:
(15)
圓形度為:
(16)
式中:
L——零件物輪廓周長(zhǎng),mm;
L′——與零件對(duì)象具有相同面積的面積圓的周長(zhǎng),mm。
當(dāng)對(duì)圖像進(jìn)行旋轉(zhuǎn)和平移時(shí),微小零件的幾何特征不發(fā)生改變。在獲得零件的各個(gè)輪廓之后,幾何特征為對(duì)應(yīng)的輪廓內(nèi)區(qū)域的形狀因子、球狀性、矩形度和圓形度。
2.1.2 形狀特征提取 由于零件加工后在傳送過(guò)程中非規(guī)則性放置,導(dǎo)致零件圖像位置和姿態(tài)不同,但是零件的Hu不變矩具有穩(wěn)定性,不因圖像的旋轉(zhuǎn)、縮放而改變,因此通過(guò)Hu不變矩作為零件的形狀特征來(lái)識(shí)別零件[13-15]。
假設(shè)圖像大小為H×S,在(p+q)階的原點(diǎn)矩和中心矩分別為:
(17)
式中:
f(h,s)——圖像在(h,s)處的灰度值;
歸一化中心矩:
(18)
式中:
p,q=0,1,2,…;
利用二階和三階歸一化中心矩,可以獲得對(duì)平移、縮放、旋轉(zhuǎn)都不敏感的7個(gè)不變矩,如式(19)所示。
(19)
但是這7個(gè)不變矩的變化范圍較大,并且會(huì)出現(xiàn)負(fù)值,因此需要設(shè)計(jì)新的7個(gè)不變矩如式(20)所示。
Φc=|lg?c|,
(20)
式中:
c=1,2,…,7。
根據(jù)零件圖像A和零件圖像B的幾何特征、形狀特征來(lái)識(shí)別零件A和零件B的相似度:
① 如果圖像A和圖像B的形狀因子、球狀性、矩形度和圓形度的差值均>10%,則認(rèn)為圖像A與圖像B不相似。
② 如果圖像A和圖像B的形狀因子、球狀性、矩形度和圓形度的差值均<4%,則認(rèn)為圖像A與圖像B高度相似,進(jìn)行④。
③ 如果圖像A和圖像B的形狀因子、球狀性、矩形度和圓形度的差值為4%~10%,則認(rèn)為圖像A與圖像B具有相似性,進(jìn)行④。
④ 計(jì)算圖像A和圖像B的7個(gè)不變矩,如果圖像A和圖像B的 7個(gè)不變矩的差值均<5%,認(rèn)為圖像A與圖像B相似,否則認(rèn)為圖像A與圖像B不相似。
識(shí)別流程中,根據(jù)訓(xùn)練過(guò)程所提取的幾何特征和形狀特征進(jìn)行比較,通過(guò)圖像的相似度來(lái)判定待測(cè)零件的類別。
量子卷積神經(jīng)網(wǎng)絡(luò)算法識(shí)別微小零件時(shí),需要先進(jìn)行量子卷積神經(jīng)網(wǎng)絡(luò)算法識(shí)別訓(xùn)練,當(dāng)滿足訓(xùn)練誤差精度或訓(xùn)練次數(shù)時(shí),即可獲得零件識(shí)別最優(yōu)模型,此時(shí)輸入零件圖像即可進(jìn)行識(shí)別,其識(shí)別流程如圖5所示。
圖5 識(shí)別流程圖
通過(guò)工業(yè)相機(jī)在不同時(shí)段、視角、光照?qǐng)鼍跋虏杉@得8種零件圖像(見(jiàn)圖6),由于零件圖像有7個(gè)不變矩以及4個(gè)幾何特征,因此輸入層節(jié)點(diǎn)數(shù)為11,輸出層節(jié)點(diǎn)數(shù)為8,隱含層節(jié)點(diǎn)數(shù)取10,初始化連接權(quán)值ω,旋轉(zhuǎn)角度θ和ψ為[0,2π]的隨機(jī)數(shù),最大迭代步數(shù)為500,分別進(jìn)行40次仿真試驗(yàn)。為了保證試驗(yàn)結(jié)果的可靠性,在數(shù)據(jù)集制作過(guò)程中,通過(guò)旋轉(zhuǎn)不同角度、平移不同距離、縮放不同倍數(shù)、模擬零件堆疊、調(diào)整飽和度和曝光度等方式對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,并以此作為訓(xùn)練樣本。硬件環(huán)境為CPU為Intel I7-10700KF,3.80 GHz、內(nèi)存8 GB,GPU為Quadro P620,試驗(yàn)運(yùn)行系統(tǒng)為Windows7.0,程序運(yùn)用C++和Open CV編寫,采集圖像大小為640×480。
圖6 8種微小零件
為了提高計(jì)算速度、減少存儲(chǔ)空間,對(duì)圖像進(jìn)行JPEG格式壓縮,然后灰度變換以獲得連續(xù)、清晰的輪廓圖像,對(duì)零件圖像進(jìn)行特征提取,量子卷積神經(jīng)網(wǎng)絡(luò)的期望輸出結(jié)果如表1所示。
表1 零件圖像特征
訓(xùn)練過(guò)程中,每種零件采集70幅圖像,共560幅圖像進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后,采用QCNN算法對(duì)8種不同的零件進(jìn)行識(shí)別,每種零件采集40幅圖像,共400幅圖像進(jìn)行識(shí)別,每種算法測(cè)試40次,不同零件的識(shí)別準(zhǔn)確率如圖7所示。
由圖7可知,QCNN算法對(duì)規(guī)則的微小零件的識(shí)別準(zhǔn)確率高于非規(guī)則的微小零件,這是因?yàn)橐?guī)則的微小零件的幾何特征和形狀特征相對(duì)于非規(guī)則的微小零件更易于統(tǒng)計(jì)識(shí)別。從形態(tài)上看,零件7的外觀最簡(jiǎn)單,所以最易于識(shí)別;零件8的結(jié)構(gòu)特征最為復(fù)雜,所以識(shí)別準(zhǔn)確率較低。
圖7 QCNN算法對(duì)8種零件的識(shí)別準(zhǔn)確率
增加訓(xùn)練樣本數(shù),每種零件采集90幅圖像,共720幅圖像進(jìn)行訓(xùn)練,采用QCNN算法對(duì)8種不同的零件進(jìn)行識(shí)別,每種零件采集40幅圖像,共400幅圖像進(jìn)行識(shí)別,每種算法測(cè)試40次,不同零件的識(shí)別準(zhǔn)確率如圖8所示。
由圖8可知,增加訓(xùn)練樣本數(shù)時(shí),各種規(guī)則、非規(guī)則的微小零件的識(shí)別準(zhǔn)確率均有所提高,這是因?yàn)镼CNN算法設(shè)計(jì)了量子卷積神經(jīng)網(wǎng)絡(luò)算法的各層模型,多次訓(xùn)練能夠獲得更加準(zhǔn)確的卷積神經(jīng)網(wǎng)絡(luò)參數(shù);規(guī)則的微小零件識(shí)別準(zhǔn)確率的提高程度高于非規(guī)則的微小零件,這是因?yàn)橐?guī)則的微小零件相對(duì)于非規(guī)則的微小零件更易于訓(xùn)練、識(shí)別。
圖8 QCNN算法對(duì)8種零件的識(shí)別準(zhǔn)確率
識(shí)別過(guò)程中每種零件的平均消耗時(shí)間如表2所示。
由表2可知,QCNN算法識(shí)別各類零件圖像的耗時(shí)最少,其實(shí)時(shí)性較高,易于實(shí)現(xiàn)對(duì)批量零件的識(shí)別。
表2 消耗時(shí)間
針對(duì)微小零件尺寸識(shí)別過(guò)程中存在的問(wèn)題,提出了一種基于量子卷積神經(jīng)網(wǎng)絡(luò)算法的微小零件尺寸檢測(cè)方法。設(shè)計(jì)了量子卷積神經(jīng)網(wǎng)絡(luò)算法的各層模型,同時(shí)優(yōu)化了卷積神經(jīng)網(wǎng)絡(luò)參數(shù),縮短了計(jì)算時(shí)間,提高了識(shí)別速度。微小零件尺寸識(shí)別中,存在識(shí)別準(zhǔn)確率不能滿足實(shí)際工作需求的缺陷,采用改進(jìn)量子卷積神經(jīng)網(wǎng)絡(luò)算法能夠提高識(shí)別準(zhǔn)確率。而試驗(yàn)只是針對(duì)簡(jiǎn)單的微小零件進(jìn)行識(shí)別,并未對(duì)復(fù)雜外觀的微小零件進(jìn)行識(shí)別,這將是后續(xù)研究的重點(diǎn)。