本發(fā)明涉及工業(yè)自動(dòng)化檢測(cè)技術(shù)領(lǐng)域,特別涉及一種基于局部PCA和BP神經(jīng)網(wǎng)絡(luò)的瓶口缺陷檢測(cè)方法。
背景技術(shù):
目前,國(guó)內(nèi)每年啤酒瓶需求量任然十分大。據(jù)最新行業(yè)數(shù)據(jù)顯示。2016年1-9月,中國(guó)啤酒行業(yè)累計(jì)產(chǎn)量3685.3萬(wàn)千升。2015年全國(guó)規(guī)模以上啤酒企業(yè)470家,完成釀酒總產(chǎn)量4715.72萬(wàn)千升??上攵?,啤酒瓶需求量十分巨大。而國(guó)內(nèi)80%以上的啤酒瓶需要回收使用。
根據(jù)中國(guó)制造2025的要求,機(jī)器換人成為機(jī)器人相關(guān)領(lǐng)域的重大趨勢(shì)。使用高速高精度啤酒瓶空瓶檢測(cè)系統(tǒng)取代人工檢測(cè),不僅可以減少不合格瓶流入市場(chǎng),對(duì)消費(fèi)者和生產(chǎn)廠家造成的傷害,而且具有以下幾個(gè)優(yōu)點(diǎn):(1)檢測(cè)速度快。國(guó)內(nèi)啤酒生產(chǎn)線速度達(dá)到兩萬(wàn)四到四萬(wàn)瓶每小時(shí),國(guó)外最快速度達(dá)到七萬(wàn)瓶每小時(shí)。(2)人力成本驟減。近年來(lái),人力成本迅速增加,人工檢測(cè)不僅愈加昂貴,而且效率低,達(dá)不到生產(chǎn)線的要求。(3)解決了企業(yè)招工難的問(wèn)題,并提高了生產(chǎn)質(zhì)量。由于人工檢測(cè)工作量大、枯燥,愿意從事該工作的人愈來(lái)愈少,并且高強(qiáng)度,枯燥的工作,很難保證人檢后的質(zhì)量。因此,高速高精度的瓶酒瓶空瓶檢測(cè)系統(tǒng)被迅速推廣。
據(jù)智能工廠相關(guān)要求,十分必要擁有和大力發(fā)展一批具有完全自主知識(shí)產(chǎn)權(quán)的智能自動(dòng)化工業(yè)生產(chǎn)設(shè)備。高速高精度空瓶檢測(cè)系統(tǒng)的實(shí)現(xiàn),不僅解決了進(jìn)口驗(yàn)瓶機(jī)歐洲檢測(cè)標(biāo)準(zhǔn)與我國(guó)國(guó)家標(biāo)準(zhǔn)不盡相同,給啤酒瓶生產(chǎn)廠商帶來(lái)的困擾,而且對(duì)我國(guó)食品飲料行業(yè)衛(wèi)生安全的提升具有實(shí)際價(jià)值。
瓶口檢測(cè)作為空瓶檢測(cè)系統(tǒng)中重要環(huán)節(jié),直接影響到啤酒生產(chǎn)廠商的產(chǎn)品質(zhì)量和經(jīng)濟(jì)效益。當(dāng)瓶口破損的啤酒瓶流入市場(chǎng),可能會(huì)對(duì)消費(fèi)者造成傷害,同時(shí)導(dǎo)致啤酒在運(yùn)輸途中快速變質(zhì),損害企業(yè)的經(jīng)濟(jì)效益和聲譽(yù)。因此,對(duì)瓶口檢測(cè)提出了很高的精度要求。
目前,存在許多瓶酒瓶瓶口檢測(cè)算法,如1995年,陳建國(guó),賀正輝等在《殘差分析用于動(dòng)態(tài)門限分割》提出基于殘差分析動(dòng)態(tài)閾值的缺陷檢測(cè),檢測(cè)精度為83.33%。2005年,劉煥軍,王耀南,段峰等在《基于支撐向量機(jī)的空瓶智能檢測(cè)方法》中提出基于支持向量機(jī)的缺陷檢測(cè),檢測(cè)精度為97.78%。2006年,嚴(yán)筱永等在《基于圖像的啤酒瓶瓶口與瓶底污損自動(dòng)檢測(cè)》中提出基于Otsu閾值的缺陷檢測(cè),檢測(cè)精度為95.56%。2009年,張?zhí)锾锏仍凇痘跈C(jī)器視覺(jué)的啤酒瓶瓶口檢測(cè)系統(tǒng)的研究》中提出基于全局閾值的缺陷檢測(cè),檢測(cè)精度為96.67%。2014年,郭克友,廉麗冰等在《基于BP神經(jīng)網(wǎng)絡(luò)的啤酒瓶口檢測(cè)方法》中提出基于BP神經(jīng)網(wǎng)絡(luò)的缺陷檢測(cè)法,檢測(cè)精度為88.89%。2015年,周顯恩、王耀南、朱青等在《基于機(jī)器視覺(jué)的瓶口缺陷檢測(cè)方法研究》中提出殘差分割法來(lái)檢測(cè)瓶口缺陷,檢測(cè)精度為100%。
然而,由于空瓶檢測(cè)系統(tǒng)的高速、穩(wěn)定、高精度、適應(yīng)性強(qiáng)、便于工程師調(diào)試等諸多要求,現(xiàn)有方法無(wú)法滿足日益增長(zhǎng)的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:如何提出一種高速高精度瓶口缺陷檢測(cè)算法,用于解決高速瓶酒灌裝生產(chǎn)流水線上空瓶瓶口缺陷中檢測(cè)時(shí)間長(zhǎng)、檢測(cè)精度不高的問(wèn)題,同時(shí)解決瓶口檢測(cè)中任需定位或者精確定位所帶來(lái)的定位時(shí)間長(zhǎng),定位精度不高,定位結(jié)果易受干擾等一系列問(wèn)題。
一種基于局部PCA和BP神經(jīng)網(wǎng)絡(luò)的瓶口缺陷檢測(cè)方法,包括以下步驟:
步驟1:構(gòu)建多個(gè)樣本瓶口圖像集合;
從已知有無(wú)瓶口缺陷的啤酒瓶瓶口圖像中隨機(jī)抽取多個(gè)大小相同的樣本瓶口圖像集合,每個(gè)樣本瓶口圖像集合中包含M個(gè)樣本;
步驟2:對(duì)樣本瓶口圖像集合中的每一張瓶口圖像進(jìn)行歸一化處理;
步驟3:構(gòu)建樣本瓶口圖像集合中相同局部圖像塊的局部樣本集合;
按照設(shè)定的圖像塊大小F、水平步長(zhǎng)以及垂直步長(zhǎng),按照從左至右,從上到下的順序掃描歸一化后的圖像,依次提取局部圖像塊,以相同位置的局部圖像塊組建局部樣本集合;
獲取每張瓶口圖像有N個(gè)局部樣本集合;
步驟4:對(duì)局部樣本集合進(jìn)行PCA降維處理;
將局部樣本集合中每個(gè)局部樣本均轉(zhuǎn)化為一維行向量,獲得局部樣本集合的局部二維矩陣,并對(duì)局部二維矩陣進(jìn)行PCA降維處理,獲得局部樣本集合PCA特征;
局部樣本集合PCA特征中每一行代表一張樣本瓶口圖像的單個(gè)局部PCA特征;
步驟5:PCA特征融合;
將樣本瓶口圖像集合中所有的局部樣本集合PCA特征按照局部樣本集合中局部樣本在樣本中的位置順序進(jìn)行拼合,得到樣本瓶口圖像集合PCA融合特征和每張瓶口圖像的融合PCA特征;
樣本瓶口圖像集合PCA融合特征中每一行代表一張瓶口圖像的融合PCA特征;
步驟6:以樣本瓶口圖像的PCA融合特征和對(duì)應(yīng)的缺陷標(biāo)記,訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型;
步驟7:將待檢測(cè)的圖像和隨機(jī)抽取的M-1個(gè)樣本構(gòu)建成一個(gè)樣本瓶口圖像,重復(fù)步驟2-步驟5,獲得待檢測(cè)圖像的融合PCA特征,并輸入步驟6已訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型,得到待檢測(cè)圖像的缺陷檢測(cè)結(jié)果。
進(jìn)一步地,對(duì)進(jìn)行PCA降維處理后的二維矩陣進(jìn)行歸一化處理。
進(jìn)一步地,所述PCA降維處理是指將二維矩陣降維處理為K列,K的取值為[4,23]。
進(jìn)一步地,所述BP神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)個(gè)數(shù)為融合PCA特征的列數(shù),隱含層的節(jié)點(diǎn)個(gè)數(shù)為輸入層節(jié)點(diǎn)個(gè)數(shù)2-3倍,輸出層節(jié)點(diǎn)個(gè)數(shù)為2,輸出缺陷檢測(cè)結(jié)果。
進(jìn)一步地,所述樣本瓶口圖像集合中樣本個(gè)數(shù)M的取值為100-500。
進(jìn)一步地,當(dāng)待檢測(cè)圖像數(shù)量P達(dá)到M時(shí),則以所有待檢測(cè)圖像圖像構(gòu)建樣本瓶口圖像集合,否則,則從已知有無(wú)瓶口缺陷的啤酒瓶瓶口圖像中隨機(jī)選取M-P張圖像和待檢測(cè)圖像構(gòu)建樣本瓶口圖像集合。
進(jìn)一步地,所有瓶口圖像采用工業(yè)相機(jī)Baumer TXG12拍攝,所采集的圖像尺寸為400*400。
有益效果
本發(fā)明提供了一種基于局部PCA和BP神經(jīng)網(wǎng)絡(luò)的瓶口缺陷檢測(cè)方法,通過(guò)利用工業(yè)相機(jī)獲取瓶口圖像,利用瓶口圖像像素值十分稀疏,好瓶與壞瓶口十分相似,且瓶口在圖像中的位置變換不大的特點(diǎn),利用相同位置處的圖像特征相似的特點(diǎn),采用PCA對(duì)相同局部特征降維處理后,提取主成成分,輸入到BP神經(jīng)網(wǎng)絡(luò)中,經(jīng)大量樣本訓(xùn)練后,獲得訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò);再利用待檢測(cè)圖像的主成成分特征輸入BP神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測(cè),完全滿足了高速高精度的要求。該檢測(cè)方法由于采用了與瓶口圖像特征匹配的工業(yè)相機(jī),不再需要對(duì)瓶口進(jìn)行定位,確定圓心,這樣大大減少了精確定位引起的定位時(shí)間長(zhǎng),定位精度不高,定位結(jié)果易受干擾等一系列問(wèn)題;采用基于BP神經(jīng)網(wǎng)絡(luò)和局部PCA(主成分分析)的瓶口缺陷檢測(cè)算法具有更高的精度,最高精度達(dá)到千分之一的誤檢率。
附圖說(shuō)明
圖1為相機(jī)采取的幾種瓶口缺陷圖像示意圖,其中,(a)表示外環(huán)崩口,(b)表示封蓋面磨損,(c)表示內(nèi)環(huán)磨損,(d)表示封蓋面磨損,(e)表示外環(huán)磨損,(f)表示封蓋面破裂;
圖2為相機(jī)采取的兩張大小為400行、400列的瓶口檢測(cè)壞的圖像示意圖,其中,(a)表示無(wú)缺陷瓶口,(b)表示有缺陷瓶口;
圖3為局部PCA(主成分分析)加BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測(cè)試系統(tǒng)示意圖;
圖4為一個(gè)10*10的矩陣局部樣本的提取過(guò)程。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步的詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
瓶口缺陷圖像指的是存在內(nèi)環(huán)磨損、外環(huán)磨損、封蓋面磨損、存在臟污、內(nèi)環(huán)崩口、外環(huán)崩口、封蓋面破裂等缺陷的瓶口圖像,如圖1所示。
一種基于局部PCA和BP神經(jīng)網(wǎng)絡(luò)的瓶口缺陷檢測(cè)方法,如圖3所示,具體步驟如下:
步驟1:利用工業(yè)相機(jī)獲取大量瓶口樣本圖片(如圖二),每張圖片大小為400*400,創(chuàng)建一個(gè)瓶口樣本數(shù)據(jù)庫(kù),6萬(wàn)張好的瓶口圖像,6萬(wàn)張壞的瓶口圖像,一共12萬(wàn)張樣本圖片。該實(shí)施例中Q取值為120000。同時(shí)將好瓶口圖像標(biāo)簽為1,壞的瓶口圖像標(biāo)簽為0。從樣本數(shù)據(jù)庫(kù)中每次隨機(jī)抽取M個(gè)樣本,并保存好這M個(gè)樣本對(duì)應(yīng)標(biāo)簽。該實(shí)施例中M取值為200。
步驟2:對(duì)步驟1抽取的200張樣本提取局部樣本。
首先對(duì)每一個(gè)樣本進(jìn)行歸一化處理,接著設(shè)置F、Brows、和Bcols的值。該實(shí)施例中初始范圍F取值為100*400,行步長(zhǎng)為Brows為10,列步長(zhǎng)為Bcols為0。
然后,提取局部樣本。
如圖4所示,該圖為一個(gè)10*10的矩陣局部樣本的提取過(guò)程。初始范圍F為4*6,行步長(zhǎng)Brows為4,列步長(zhǎng)Bcols為3,一共6個(gè)局部樣本;
本實(shí)例中,對(duì)于200張樣本圖片的每張圖片,提取出它第1行到100行和全部列的像素值,并保存為第一個(gè)局部樣本集,該樣本集有200個(gè)大小為100*400的樣本。同樣按照行步長(zhǎng)為10,我們提取200張樣本圖片每張圖片的第11行到110行和全部列的像素值,保存為第二個(gè)局部樣本集。以同樣的方式移動(dòng)行步長(zhǎng)保存局部樣本集,最終得到31個(gè)局部樣本集(實(shí)施例中N為31)。
步驟3:將步驟2得到的31個(gè)局部樣本集分別進(jìn)行PCA處理。
一個(gè)局部樣本集有200個(gè)大小為100*400的樣本;
首先將200個(gè)大小為100*400的樣本轉(zhuǎn)換成一個(gè)200*40000的矩陣,每一行代表一個(gè)局部樣本;
然后進(jìn)行PCA處理,提取主成成分,降維至K維,該實(shí)施例中K取值為6;因此一個(gè)局部樣本集的PCA結(jié)果為200*6的矩陣,每一行代表一個(gè)局部樣本的PCA樣本特征。
對(duì)每一個(gè)局部樣本的PCA特征做歸一化處理,找到局部PCA特征矩陣每一行的最大值與最小值,將每一行的各個(gè)數(shù)值減去該行的最小值后除以該行最大值與最小值之差,就可以得到歸一化的局部樣本PCA特征矩陣。
將31個(gè)局部樣本集分別進(jìn)行PCA處理和歸一化后,得到31個(gè)200*6的矩陣;
最后按行拼成一個(gè)200行、31*6即186列的二維矩陣。
每一行代表一個(gè)樣本圖像的局部PCA融合特征,每一個(gè)樣本圖像都有相應(yīng)的標(biāo)簽。
步驟4:每次從樣本數(shù)據(jù)庫(kù)中抽取200張不同的樣本集,依次重復(fù)上述步驟2和3,進(jìn)行局部PCA處理,重復(fù)600次直到所有樣本處理完,得到所有樣本的局部PCA融合特征,每一行代表一個(gè)圖像樣本的局部PCA融合特征。
步驟5:訓(xùn)練BP神經(jīng)網(wǎng)絡(luò);
將局部樣本PCA融合特征矩陣作為BP神經(jīng)網(wǎng)絡(luò)的輸入,因此BP神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)個(gè)數(shù)等于融合特征矩陣的列數(shù)即輸入節(jié)點(diǎn)個(gè)數(shù)有186個(gè);
隱含層的節(jié)點(diǎn)個(gè)數(shù)一般按經(jīng)驗(yàn)設(shè)置成輸入層節(jié)點(diǎn)個(gè)數(shù)的兩倍,在實(shí)際情況調(diào)到最好的情況時(shí)隱含層的節(jié)點(diǎn)個(gè)數(shù)有397個(gè);
輸出層節(jié)點(diǎn)個(gè)數(shù)有兩個(gè),代表著瓶口圖像缺陷檢測(cè)結(jié)果的好與壞,對(duì)應(yīng)好的瓶口標(biāo)簽1,壞的瓶口標(biāo)簽0;
將好的瓶口樣本圖像和壞的樣本圖像按照4:3:3的比例隨機(jī)分成訓(xùn)練集、驗(yàn)證集和測(cè)試集,輸入到BP神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練、驗(yàn)證和測(cè)試;
最后保存訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型;
步驟6:用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型在啤酒瓶空瓶檢測(cè)系統(tǒng)中做瓶口缺陷檢測(cè)。
在檢測(cè)時(shí)利用工業(yè)相機(jī)采取1張瓶口圖像,并與隨機(jī)從瓶口樣本數(shù)據(jù)庫(kù)中抽取的199張樣本圖像組成200個(gè)樣本,經(jīng)過(guò)步驟2、3和4,得到200個(gè)樣本的局部PCA特征。然后單獨(dú)提取出這1張圖像的局部PCA特征,輸入到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)中檢測(cè),得到瓶口圖像檢測(cè)結(jié)果。
本發(fā)明中應(yīng)用了具體實(shí)施例對(duì)發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)發(fā)明的限制。