楊道清,侯開虎,包 迪,曹如玥,姬思陽
(昆明理工大學(xué) 機(jī)電工程學(xué)院工業(yè)工程系,昆明 650500)
在產(chǎn)品生產(chǎn)過程中,若不同質(zhì)量狀態(tài)的產(chǎn)品發(fā)生混淆,使“不合格”的產(chǎn)品投入到下一道工序的生產(chǎn)中,不僅僅造成工作量的加大,還會(huì)造成最終產(chǎn)品的質(zhì)量問題,嚴(yán)重時(shí)還會(huì)導(dǎo)致批量廢品。因此,如何避免產(chǎn)品質(zhì)量安全事故的發(fā)生,實(shí)現(xiàn)產(chǎn)品生產(chǎn)有序、高效地進(jìn)行成為國內(nèi)外專家的研究熱點(diǎn)。
為了使產(chǎn)品質(zhì)量處于受控狀態(tài),許多專家提出在產(chǎn)品生產(chǎn)、搬運(yùn)過程中實(shí)現(xiàn)自動(dòng)化,盡量減少人力操做,甚至取消人作業(yè)[1~3]。何楠等人則提出對生產(chǎn)現(xiàn)場進(jìn)行標(biāo)識管理[4,5],通過使用標(biāo)識牌、標(biāo)識符、標(biāo)簽以及語義符號等來區(qū)分識別不同的產(chǎn)品或區(qū)域[6~8]。但在以上提出的生產(chǎn)現(xiàn)場標(biāo)識管理中,標(biāo)識的識別仍由工作人員完成,不適合于產(chǎn)品質(zhì)量管理。因?yàn)楫a(chǎn)品的質(zhì)量檢驗(yàn)狀態(tài)不是固定不變的,剛剛還是“待檢”狀態(tài),一會(huì)又變?yōu)椤昂细瘛睜顟B(tài),當(dāng)產(chǎn)品經(jīng)過下一道工序加工后又變?yōu)榱恕按龣z”狀態(tài)[4]。當(dāng)產(chǎn)品批量大時(shí),很多員工都參與到產(chǎn)品標(biāo)識的分類識別,產(chǎn)品搬運(yùn)和分區(qū)存放的工作中,因此,發(fā)生失誤的概率也就變大。
為了實(shí)現(xiàn)更精準(zhǔn)的標(biāo)識識別,劉成云等人基于感興趣區(qū)域和HOG-MBLBP特征對交通標(biāo)識進(jìn)行檢測[9],徐蔚等人就將雙BP神經(jīng)網(wǎng)絡(luò)用于標(biāo)識牌的識別中[10]。由此,本文針對4種不同的產(chǎn)品質(zhì)量狀態(tài),設(shè)計(jì)了4種簡單易識別的產(chǎn)品質(zhì)量狀態(tài)標(biāo)識符,將GA-BP神經(jīng)網(wǎng)絡(luò)[11~14]與機(jī)器視覺AGV結(jié)合來實(shí)現(xiàn)對標(biāo)識符的分類識別[15],AGV根據(jù)識別結(jié)果,對不同質(zhì)量狀態(tài)的產(chǎn)品進(jìn)行搬運(yùn)與分區(qū)存放,讓產(chǎn)品生產(chǎn)高效有序地進(jìn)行,降低產(chǎn)品質(zhì)量事故發(fā)生的概率。
為了減少標(biāo)識符圖像處理過程中的運(yùn)算量,加快識別速度,以滿足實(shí)時(shí)性需求,本文設(shè)計(jì)的標(biāo)識符以簡單易識別為標(biāo)準(zhǔn)。4種標(biāo)識符“待檢”、“合格”、“待處理”以及“不合格”,其具體設(shè)計(jì)圖分別如圖1所示。標(biāo)識符由簡單的圖形和字母組成,每個(gè)字母分別代表的含義如下。
圖1 產(chǎn)品質(zhì)量狀態(tài)標(biāo)識符設(shè)計(jì)圖
1)字母C代表“check”,即產(chǎn)品質(zhì)量狀態(tài)為待檢驗(yàn)。
2)字母Y代表“yes”,即經(jīng)質(zhì)檢員檢驗(yàn)以后,判斷為合格的產(chǎn)品。
3)字母P代表“pend”,即待處理,指產(chǎn)品并不是不合格,只是存在一定的瑕疵,需進(jìn)行進(jìn)一步的檢驗(yàn)判斷,再?zèng)Q定去處。
4)字母N代表“no”,即不合格的產(chǎn)品。
人工神經(jīng)網(wǎng)絡(luò)在圖像分類識別中應(yīng)用廣泛,其中應(yīng)用最多的是BP神經(jīng)網(wǎng)絡(luò),傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的參數(shù)是隨機(jī)產(chǎn)生的,因此魯棒性較差,模型訓(xùn)練過程容易陷入“局部最優(yōu)”。因此,本文采用基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(GA-BP模型)對標(biāo)識符進(jìn)行分類識別,相對于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),GA-BP神經(jīng)網(wǎng)絡(luò)性能更優(yōu)。
BP神經(jīng)網(wǎng)絡(luò)是一種信息前向傳播,誤差逆向傳播的監(jiān)督學(xué)習(xí)算法,由輸入層、隱含層、輸出層組成,其模型結(jié)構(gòu)如圖1.1所示。輸入層接收外界信號后經(jīng)過隱含層,最后到達(dá)輸出層,各層之間通過權(quán)重進(jìn)行連接傳遞,即輸入信息是正向傳播的。從圖1中可以看出,在信息的傳播過程中,不同層神經(jīng)元之間是相互影響的。即每層神經(jīng)元的信息輸入與其所占有的比例都對下一層神經(jīng)元所獲得的信息總量產(chǎn)生影響。信息輸入量保持不變,改變其內(nèi)部的權(quán)重分配,都會(huì)改變下一層神經(jīng)元的輸入總量。BP神經(jīng)網(wǎng)絡(luò)的核心正是通過這一特性來進(jìn)行逆向反饋。即得到輸出層與期望值的誤差,然后將誤差按照原來的網(wǎng)絡(luò)路徑反向傳遞回來,不斷地修正權(quán)重和閾值,減小輸出層輸出結(jié)果與期望值之間的誤差。
由圖2可知,BP神經(jīng)網(wǎng)絡(luò)的模型可以用如下公式表示,其中式(1)中ωij為輸入層到隱含層的各輸入變量的權(quán)重,f1為隱含層的激活函數(shù)。式(2)中為ωjh隱含層各變量到輸出層的權(quán)重,為輸出層的激活函數(shù)。式(3)和式(4)為權(quán)重調(diào)整公式,其中η∈(0,1)稱為學(xué)習(xí)率,為期望輸出值,學(xué)習(xí)器將根據(jù)錯(cuò)誤的程度進(jìn)行權(quán)重的多次調(diào)整。
圖2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在BP神經(jīng)網(wǎng)絡(luò)中,輸出層是M-P神經(jīng)元,M-P神經(jīng)元模型將復(fù)雜的生物神經(jīng)元活動(dòng)通過簡單的數(shù)學(xué)模型表達(dá)出來。在這個(gè)模型中,神經(jīng)元接收來自其他n個(gè)神經(jīng)元的帶有權(quán)重的輸入信號,然后將這些總輸入值與自身的閾值進(jìn)行比較,最后通過“激活函數(shù)”的處理以產(chǎn)生神經(jīng)元的輸出。常用的“激活函數(shù)”有S型函數(shù)(Sigmoid)、雙極S型函數(shù)、線性函數(shù)等。M-P神經(jīng)元模型結(jié)構(gòu)如圖3所示。
圖3 M-P神經(jīng)元模型
圖中x1~xi為神經(jīng)元的輸入變量,ω1~ωi為連接權(quán)重,代表的是各輸入變量所占比重,θ表示該神經(jīng)元的閾值,當(dāng)神經(jīng)元接收到的總輸入值大于閾值時(shí),神經(jīng)元才會(huì)被激活,即。
遺傳算法(GA)的基本思想就是首先產(chǎn)生一個(gè)初始種群,然后根據(jù)設(shè)定的目標(biāo)函數(shù)得到種群中每個(gè)個(gè)體的的適應(yīng)度值,根據(jù)適應(yīng)度值的大小來進(jìn)行選擇,被選中的個(gè)體進(jìn)行復(fù)制、交叉、變異、產(chǎn)生新的適應(yīng)度更高的種群,這一過程將持續(xù)到輸出的種群中個(gè)體適應(yīng)度值最優(yōu)為止。
本文提出的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)主要分為以下三個(gè)部分:
1)創(chuàng)建BP神經(jīng)網(wǎng)絡(luò),并用其進(jìn)行分類訓(xùn)練;
2)用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值;
3)將新的權(quán)值和閾值賦予BP神經(jīng)網(wǎng)絡(luò),得到GA-BP模型。其具體算法流程如圖3所示。
1)創(chuàng)建BP神經(jīng)網(wǎng)絡(luò)
在實(shí)驗(yàn)過程中,首先要確定BP神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu),本文所創(chuàng)建的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為81-45-4,為三層結(jié)構(gòu),輸入層神經(jīng)元個(gè)數(shù)為81,隱含層神經(jīng)元個(gè)數(shù)為45,輸出層神經(jīng)元個(gè)數(shù)為4,由神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可得其初始權(quán)值和閾值的數(shù)目表1。
表1 權(quán)值和閾值數(shù)目
圖4 GA-BP神經(jīng)網(wǎng)絡(luò)流程圖
當(dāng)確定了BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以后,開始創(chuàng)建網(wǎng)絡(luò),對其進(jìn)行參數(shù)設(shè)置,包括最大訓(xùn)練次數(shù),學(xué)習(xí)速率,訓(xùn)練要求精度等,BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)設(shè)置如表2所示。
表2 模型參數(shù)表
在信息傳遞過程中,當(dāng)輸入層各輸入變量與各變量權(quán)值乘積的總和大于隱含層各神經(jīng)元上的閾值時(shí),才可以被激活函數(shù)處理以產(chǎn)生神經(jīng)元的輸出。本文中的BP神經(jīng)網(wǎng)絡(luò)算法將隱含層的激活函數(shù)設(shè)為tansig函數(shù),其表達(dá)式如式(4)所示,而輸出層的激活函數(shù)設(shè)為purelin函數(shù),其表達(dá)式如式(5)所示。
2)遺傳算法(GA)的優(yōu)化
當(dāng)創(chuàng)建好BP神經(jīng)網(wǎng)絡(luò)以后,對其進(jìn)行優(yōu)化,優(yōu)化步驟如下:
Step1:確定編碼方式并進(jìn)行編碼。本次優(yōu)化采用了實(shí)數(shù)編碼,編碼長度由BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及神經(jīng)層閾值和權(quán)值數(shù)目確定,由表3得到編碼長度為3874。其計(jì)算公式如式(6),式中S為編碼長度,R為輸入神經(jīng)元個(gè)數(shù),S1為隱層神經(jīng)元個(gè)數(shù),S2為輸出神經(jīng)元個(gè)數(shù)。
Step2:隨機(jī)產(chǎn)生初始化種群。種群規(guī)模最好設(shè)置在40~100之間,對于本次優(yōu)化,通過多次仿真得到種群規(guī)模設(shè)置為50時(shí),仿真結(jié)果最好,因此種群規(guī)模設(shè)置為50。
Step3:確定適應(yīng)度函數(shù)。在本文設(shè)置的適應(yīng)度函數(shù)中,首先求出真實(shí)標(biāo)記矩陣與模型輸出層的輸出矩陣之間的均方誤差,然后再對其求倒,得到的值作為個(gè)體的適應(yīng)度值。
Step4:進(jìn)行選擇,交叉,變異操作。算出種群中個(gè)體適應(yīng)度值后,以個(gè)體適應(yīng)度值為依據(jù),進(jìn)行種群的選擇,選擇概率為0.05。然后在GAOT工具箱中分別調(diào)用arithXover交叉函數(shù)和nonUnifMutation變異函數(shù),對選擇出來的種群進(jìn)行交叉、變異,得到新的種群,如果新種群符合條件,則終止,不然又重新進(jìn)行迭代優(yōu)化,直至滿足條件為止或達(dá)到最大迭代次數(shù)為止。本次算法優(yōu)化設(shè)置的最大迭代次數(shù)為100。
為了驗(yàn)證模型的性能,進(jìn)行仿真實(shí)驗(yàn)驗(yàn)證。此次仿真軟件環(huán)境為MATLAB2016a,操作系統(tǒng)為Windows8。
1)標(biāo)識符圖像的獲取
在本次實(shí)驗(yàn)中所用到的標(biāo)識符數(shù)據(jù)集,均為手繪圖像,像素為50×50,總共有400張。
2)標(biāo)識符圖像的預(yù)處理
在對標(biāo)識符圖像的預(yù)處理過程中,本文首先對圖像進(jìn)行反色處理,然后使用閾值變化法將灰度圖像轉(zhuǎn)換為二值圖像,通過查找圖像上所有像素點(diǎn)坐標(biāo),截取包含完整標(biāo)識符的最小區(qū)域。最后將截取的包含完整標(biāo)識符的最小區(qū)域圖像轉(zhuǎn)成81維數(shù)據(jù)。
3)標(biāo)識符圖像數(shù)據(jù)集的劃分
本文采用留出法直接將圖像數(shù)據(jù)集D劃分為兩個(gè)互斥的集合,分別為訓(xùn)練集S,測試集T,訓(xùn)練集S與測試集T以8比2的比例劃分,即D=S∪T,S∩T=φ,S∶T=8∶2。
在本次實(shí)驗(yàn)中首先進(jìn)行標(biāo)識符圖片的獲取,然后對獲取的圖片進(jìn)行預(yù)處理,轉(zhuǎn)化為數(shù)據(jù)矩陣。將處理所得的數(shù)據(jù)集劃分為訓(xùn)練集和測試集。訓(xùn)練集用于訓(xùn)練GA-BP模型,然后使用訓(xùn)練好的模型對測試集標(biāo)識符圖像進(jìn)行分類識別,通過測試集來對創(chuàng)建的模型進(jìn)行性能評估。其具體的實(shí)驗(yàn)流程圖如圖5所示。
圖5 實(shí)驗(yàn)流程圖
1)遺傳算法(GA)優(yōu)化實(shí)驗(yàn)
(1)種群中個(gè)體適應(yīng)度值是優(yōu)化過程中選擇操作的依據(jù),本次優(yōu)化過程如圖6所示。
從圖6中可以看出,隨著遺傳代數(shù)的增加,每一代的平均適應(yīng)度函數(shù)值越接近于最優(yōu)個(gè)體,大約在60代左右,平均適應(yīng)度值等于種群中個(gè)體最優(yōu)適應(yīng)度值,即每個(gè)個(gè)體均達(dá)到最優(yōu)。且60代以后,隨著遺傳代數(shù)的增加,最佳適應(yīng)度值變化很小。從圖中可以看出,最優(yōu)種群的適應(yīng)度值大約為0.85,實(shí)際實(shí)驗(yàn)輸出為0.8524。
圖6 種群適應(yīng)度函數(shù)值變化曲線
(2)遺傳算法優(yōu)化的目的是為了得到最佳權(quán)值和閾值,經(jīng)實(shí)驗(yàn)仿真,得到了輸入層與隱含層之間的一個(gè)45×81連接權(quán)值矩陣,隱含層與輸出層之間4×45的連接權(quán)值矩陣以及45個(gè)隱含層閾值和4個(gè)輸出層閾值。然后將所獲得的最佳權(quán)值與閾值賦予BP神經(jīng)網(wǎng)絡(luò),使用訓(xùn)練集進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,得到GA-BP模型。
2)實(shí)驗(yàn)結(jié)果分析
(1)模型好壞是相對的,它不僅僅取決于算法和數(shù)據(jù),還取決于任務(wù)需求。當(dāng)GA-BP神經(jīng)網(wǎng)絡(luò)用于分類任務(wù),精度是最常用的性能度量,精度即分類正確樣本數(shù)占樣本總數(shù)的比例。通過實(shí)驗(yàn),得到GA—BP模型識別標(biāo)識符的混淆矩陣,如表3所示。
表3 GA-BP模型識別模式的混淆矩陣
由表3GA-BP模型識別模式的混淆矩陣可以得到,待檢驗(yàn)標(biāo)識符、合格標(biāo)識符以及不合格標(biāo)識符的識別率均為95%,待處理標(biāo)識符的識別率為90%,平均識別率為93.75%。
(2)為了測試GA-BP模型的穩(wěn)定性,進(jìn)行了多次實(shí)驗(yàn)仿真,得到各個(gè)標(biāo)識符識別率的變化曲線如圖7所示。
從圖7可以看出,經(jīng)過多次實(shí)驗(yàn)仿真,不同標(biāo)識符識別率曲線變化均比較平緩。平均識別率曲線也比較平緩,基本在92%上下波動(dòng),說明GA-BP模型具有較好的魯棒性,用于本文設(shè)計(jì)的產(chǎn)品質(zhì)量狀態(tài)標(biāo)識符的分類識別是可行的。
圖7 不同標(biāo)識符識別率變化曲線
通過實(shí)驗(yàn)仿真得到,GA-BP算法能夠?qū)Ρ疚脑O(shè)計(jì)的四種產(chǎn)品質(zhì)量狀態(tài)標(biāo)識符進(jìn)行快速準(zhǔn)確地分類與識別。這表明將GA-BP算法應(yīng)用于AGV的圖像處理系統(tǒng),使AGV對采集到的標(biāo)識符圖像進(jìn)行分類識別,根據(jù)識別結(jié)果進(jìn)行產(chǎn)品的搬運(yùn)與分區(qū)是可行且可靠的,除此之外,能夠有效避免人工失誤,提高質(zhì)檢工作效率。