胡 鷹 孫紹寧 喬磊明
(太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 太原 030024)
隨著時(shí)代的進(jìn)步發(fā)展,板材在我們?nèi)粘I钪械膽?yīng)用越發(fā)廣泛,然而板材的生產(chǎn)不是一個(gè)完美的過(guò)程,外部原因可能導(dǎo)致板材有許多不同類(lèi)別的缺陷。板材質(zhì)量不合格不僅影響矯直機(jī)作業(yè)的速度和質(zhì)量,嚴(yán)重的甚至?xí)斐蓹C(jī)械報(bào)廢[2]。
傳統(tǒng)的板形缺陷識(shí)別大多依靠人的經(jīng)驗(yàn)[5],不僅工作效率低下,而且容易受到人力因素的干擾。有經(jīng)驗(yàn)的工人畢竟是少數(shù),一旦工作量較大時(shí)往往會(huì)因人手不夠?qū)е鹿ぷ鳠o(wú)法進(jìn)行下去。隨著時(shí)代的發(fā)展,人力操作逐漸被人工智能所取代。板形儀作為當(dāng)代測(cè)量板形數(shù)據(jù)常用的儀器[5],在國(guó)外的應(yīng)用較為廣泛,在國(guó)內(nèi)還沒(méi)有普及。國(guó)內(nèi)大多是利用徑向基(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)和BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)進(jìn)行板形缺陷的識(shí)別[10]。但現(xiàn)有的方法只能糾正簡(jiǎn)單的板形缺陷,不能識(shí)別稍復(fù)雜的缺陷。
為了解決板形缺陷識(shí)別精度不高、操作復(fù)雜和成本過(guò)高等問(wèn)題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的板形缺陷識(shí)別模型(OP-AlexNet)。
目前,很多學(xué)者針對(duì)板形缺陷識(shí)別問(wèn)題做了許多研究。馮曉華等將遺傳算法與BP算法相結(jié)合,讓網(wǎng)絡(luò)結(jié)構(gòu)能隨著板寬的變化而變化,使得網(wǎng)絡(luò)結(jié)構(gòu)靈活多變[17],減少了訓(xùn)練所需樣本,提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力和收斂性。解相朋等利用粒子群優(yōu)化算法優(yōu)化了徑向基神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),增強(qiáng)了網(wǎng)絡(luò)的泛化能力,提高了板形識(shí)別的精度[11]。張秀玲等通過(guò)對(duì)聚類(lèi)算法的優(yōu)化,提出了SOM聚類(lèi)方法,對(duì)RBF和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行混合優(yōu)化從而提高了板形識(shí)別的精度,同時(shí)相比之前的方法計(jì)算量減少,網(wǎng)絡(luò)模型的魯棒性也更強(qiáng)[10]。但不論是RBF還是BP神經(jīng)網(wǎng)絡(luò)模型都需要精密儀器測(cè)量數(shù)據(jù),操作復(fù)雜且成本過(guò)高。
自LeNet-5誕生后陸續(xù)誕生了AlexNet、VGGNet、Inception等經(jīng)典卷積網(wǎng)絡(luò)模型相繼問(wèn)世并得到廣泛應(yīng)用[13]。嚴(yán)飛等改進(jìn)了CNN圖像語(yǔ)義分割方法并應(yīng)用于木材缺陷識(shí)別。但由于結(jié)構(gòu)相對(duì)簡(jiǎn)單效果并不出眾[8]。姜洪全等改進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)建立池化模型并應(yīng)用于焊縫缺陷識(shí)別,通過(guò)對(duì)池化層的改進(jìn)提升了模型的特征提取能力,從而提高了焊縫缺陷識(shí)別的精度[20]。陳立潮等改進(jìn)了經(jīng)典的AlexNet模型并應(yīng)用于不銹鋼焊縫缺陷分類(lèi)中,通過(guò)凍結(jié)網(wǎng)絡(luò)的前三層減小網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)量的限制,之后采用BN層代替原模型的LRN層以提高網(wǎng)絡(luò)訓(xùn)練速度,并使用LeakyReLU函數(shù)對(duì)抑制神經(jīng)元進(jìn)行重新激活,從而提出一種融合遷移學(xué)習(xí)的AlexNet神經(jīng)網(wǎng)絡(luò)不銹鋼焊縫缺陷分類(lèi)模型并達(dá)到了較好的效果。但是上述方法均在不同于板形識(shí)別的領(lǐng)域且不同程度的存在一定不足,例如BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值、節(jié)點(diǎn)數(shù)以及網(wǎng)絡(luò)層數(shù)等參數(shù)過(guò)多,工作量龐大。不同領(lǐng)域的模型參數(shù)不同,且受材料、加工等多方面因素影響,因此不能直接用于板形缺陷識(shí)別當(dāng)中。
綜上,為使板形缺陷識(shí)別的操作更為簡(jiǎn)單、成本更低以及識(shí)別更加準(zhǔn)確,本文提出OP-AlexNet模型對(duì)各種板形缺陷進(jìn)行識(shí)別。
卷積神經(jīng)網(wǎng)絡(luò)于1987年被提出并應(yīng)用,當(dāng)時(shí)的神經(jīng)網(wǎng)絡(luò)存在內(nèi)存和內(nèi)部參數(shù)占用過(guò)多的問(wèn)題,卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)很好地解決了這些問(wèn)題[1]。整個(gè)網(wǎng)絡(luò)主要包含卷積層、池化層、全連接層這三個(gè)部分[18]。圖1為卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積層的正向傳播映射為
偏置項(xiàng)的偏導(dǎo)數(shù)為
定義誤差項(xiàng)為
則有:
在卷積層后的是池化層,它的作用是將提取的特征進(jìn)行分割。假設(shè)池化層輸入為x(l-1),輸出為x(l)那么將有以下定義:
上式為下采樣操作,同理可得上采樣計(jì)算誤差項(xiàng)為
最后是全連接層,它的作用是將提取到的特征信息組合在一起,識(shí)別出種類(lèi)。
AlexNet由Alex Krizhevsky于2012年提出[21]。AlexNet提出后深度學(xué)習(xí)開(kāi)始迅速發(fā)展。圖2為AlexNet模型的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
圖2 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)示意圖
由圖2可以看出AlexNet模型具有5層卷積層、3層池化層以及3層全連接層[15]。激活函數(shù)采用ReLU進(jìn)行運(yùn)算,ReLU函數(shù)的公式為
AlexNet是多GPU并行運(yùn)算,其輸出大小為
其中n為輸入圖片的大小,p為填充像素,f為過(guò)濾器,s為步長(zhǎng)。
AlexNet在圖像處理方面有著廣泛的應(yīng)用且相較其它網(wǎng)絡(luò)模型效果出眾,因此本文選擇AlexNet作為基礎(chǔ)模型進(jìn)行改進(jìn)。
板形缺陷識(shí)別就是判斷板材中存在的缺陷類(lèi)型,而板形缺陷種類(lèi)繁多且有單一和復(fù)合型缺陷之分。生活中常見(jiàn)的板形缺陷模式有左邊浪、右邊浪、中間浪、雙邊浪、四分浪和邊中浪[10]。如圖3所示。
圖3 6種板形缺陷模式
勒讓德多項(xiàng)式為判斷板形模式的常用方法,因?yàn)槟壳鞍逍蝺?nèi)部的殘余應(yīng)力用勒讓德多項(xiàng)式表達(dá)最為準(zhǔn)確[10]。幾種常見(jiàn)的板形缺陷歸一化方程如式(9)~(14)所示:
左邊浪:
右邊浪:
中間浪:
雙邊浪:
四分浪:
邊中浪:
因?yàn)閿?shù)據(jù)集中的圖片采集自不同的環(huán)境、設(shè)備,例如光照、拍攝角度等因素,所以極容易對(duì)圖片產(chǎn)生干擾噪聲,因此需要對(duì)圖片進(jìn)行預(yù)處理。
本文使用雙立方插值算法對(duì)數(shù)據(jù)集中的圖片進(jìn)行尺寸的統(tǒng)一。其算法函數(shù)公式為
取a=-0.5,即:
假設(shè)原圖片大小為m×n,像素坐標(biāo)為(x,y),目標(biāo)圖片大小為M×N,目標(biāo)圖片的像素坐標(biāo)為( X,Y),轉(zhuǎn)換成原圖片像素坐標(biāo)為( x+μ,y+ν):
雙立方插值算法考慮參考點(diǎn)周?chē)幕叶戎底兓?,在圖像縮放過(guò)程中可以更多地保留圖像的細(xì)節(jié),且放大后的圖像不會(huì)帶有鋸齒。
本文另選擇最近鄰插值算法、線性插值算法與雙立方插值算法進(jìn)行比較,效果均不如雙立方插值算法。最近鄰插值算法采集的信息過(guò)于片面,只采集最近的信息,沒(méi)有考慮周?chē)畔⒌挠绊?,盡管算法的速度較快但處理后的圖片連續(xù)性不強(qiáng),斷層現(xiàn)象嚴(yán)重。線性插值算法雖然圖片的連續(xù)性相較前者增強(qiáng),但在圖像邊緣會(huì)出現(xiàn)模糊問(wèn)題。因此本文對(duì)圖片的預(yù)處理選擇雙立方插值算法。
本文采用傳統(tǒng)的AlexNet模型作為基礎(chǔ)實(shí)驗(yàn),在此基礎(chǔ)上對(duì)AlexNet模型結(jié)構(gòu)進(jìn)行改進(jìn),因?yàn)楸疚臄?shù)據(jù)集中的圖片尺寸偏小,原結(jié)構(gòu)的卷積核大小并不適用于處理本文數(shù)據(jù)集中的圖片,為了更好地提取板形特征,本文將卷積核調(diào)小并只保留3層卷積層,卷積核大小分別為5×5,3×3,5×5。由于本文數(shù)據(jù)集龐大且板形缺陷較為復(fù)雜,為避免參數(shù)過(guò)多使得整個(gè)網(wǎng)絡(luò)復(fù)雜度偏高,本文在原結(jié)構(gòu)基礎(chǔ)上減少1層全連接層。此外,將原結(jié)構(gòu)的LRN層用BN層代替,BN層的計(jì)算方法是先求出數(shù)據(jù)x的均值和方差,接著將每一層地?cái)?shù)據(jù)標(biāo)準(zhǔn)化,引入兩個(gè)變量γ和β,最后輸出。具體操作步驟如式(18)~(21)所示。
其中θ={ x1…m},γ,β為待學(xué)習(xí)變量,xi為輸入,yi為輸出。因BN較LRN在數(shù)據(jù)處理上有著更好的包容性,因此在原結(jié)構(gòu)上使用BN層代替LRN層。
綜上,改進(jìn)后的網(wǎng)絡(luò)模型減少了訓(xùn)練時(shí)間,對(duì)圖片特征提取的能力增強(qiáng),使網(wǎng)絡(luò)能夠更好地適于板形缺陷識(shí)別。如圖4所示為改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)。
圖4 OP-AlexNet模型網(wǎng)絡(luò)結(jié)構(gòu)
本文使用PyCharm2019.3.1實(shí)現(xiàn)板形缺陷識(shí)別系統(tǒng),并進(jìn)行實(shí)驗(yàn),同時(shí)所使用的系統(tǒng)參數(shù)如表1所示。
表1 系統(tǒng)參數(shù)表
本實(shí)驗(yàn)選擇kaggle比賽中的板材缺陷檢測(cè)競(jìng)賽的實(shí)驗(yàn)數(shù)據(jù)作為板形缺陷識(shí)別模型的原始數(shù)據(jù),以此來(lái)驗(yàn)證所提出模型的有效性。實(shí)驗(yàn)數(shù)據(jù)集中每一張圖片都是帶有缺陷的板材。圖片共18074張,按照2∶1的比例劃分,12050張為訓(xùn)練集,6024張為測(cè)試集。
5.2.1 模型效果驗(yàn)證
本文實(shí)驗(yàn)在PyCharm2019.3.1中進(jìn)行,首先按照前一節(jié)所述搭建好板形缺陷識(shí)別模型(OP-AlexNet),然后將圖片輸入進(jìn)行訓(xùn)練實(shí)驗(yàn)。為了驗(yàn)證模型的性能,本文選擇AlexNet做基礎(chǔ)實(shí)驗(yàn),并將兩者的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。每迭代100次記錄當(dāng)前驗(yàn)證精度,由此得到迭代次數(shù)與驗(yàn)證精度變化曲線圖如圖5所示。
圖5 AlexNet與板形缺陷識(shí)別模型驗(yàn)證精度對(duì)比
從圖5中可以看出,在訓(xùn)練初期,兩種模型的驗(yàn)證精度都存在波動(dòng),這是因?yàn)槌跏蓟瘷?quán)重不同對(duì)訓(xùn)練結(jié)果的影響較大。隨著訓(xùn)練的進(jìn)行,兩種模型的驗(yàn)證精度都在提高并趨于穩(wěn)定,收斂速度也在提高。但板形缺陷識(shí)別模型較經(jīng)典AlexNet神經(jīng)網(wǎng)絡(luò)模型識(shí)別精度提高16.2%,并且收斂速度和魯棒性都有了提升。
5.2.2 激活函數(shù)的改進(jìn)對(duì)模型效果的影響
本文在OP-AlexNet模型基礎(chǔ)上采用LeakyRe-LU激活函數(shù)與原本的ReLU激活函數(shù)進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)比結(jié)果如圖6所示。
圖6 不同激活函數(shù)驗(yàn)證精度對(duì)比
由圖可以看出,兩種模型在迭代1000次后均已基本收斂,改進(jìn)后的模型相較傳統(tǒng)的AlexNet模型在驗(yàn)證精度上提高了1.25%。這是因?yàn)镽eLU激活函數(shù)在作用時(shí)可能導(dǎo)致一部分神經(jīng)元靜默,從而導(dǎo)致這部分參數(shù)更新停滯。而LeakyReLU可以改善這個(gè)問(wèn)題,因?yàn)長(zhǎng)eakyReLU在負(fù)半軸不會(huì)出現(xiàn)導(dǎo)數(shù)為0的情況,可以使得這些被靜默的神經(jīng)元重新被激活,因此本文激活函數(shù)采用LeakyReLU。
本文使用4.1節(jié)配置的實(shí)驗(yàn)環(huán)境進(jìn)行訓(xùn)練,結(jié)束訓(xùn)練的迭代次數(shù)設(shè)置為1000次,本文統(tǒng)計(jì)了6種板形缺陷的識(shí)別精度、召回率和F1值來(lái)評(píng)價(jià)模型的性能,實(shí)驗(yàn)結(jié)果如表2所示。
表2 模型性能評(píng)價(jià)
從表2可以看出,左邊浪和右邊浪的識(shí)別效果最好,中間浪和雙邊浪的識(shí)別效果次之,四邊浪和邊中浪的識(shí)別效果較差。原因在于它們分別屬于一次、二次和四次板形[10],缺陷復(fù)雜度依次增高,識(shí)別的困難程度依次增大,因此識(shí)別效果依次降低。
為了使實(shí)驗(yàn)結(jié)果更具有說(shuō)服力,將本文模型與未經(jīng)預(yù)訓(xùn)練的VGGNet模型和Inception模型進(jìn)行對(duì)比,并統(tǒng)計(jì)實(shí)驗(yàn)進(jìn)行至1000次的精度變化。對(duì)比結(jié)果如表3和圖6所示。
表3 不同模型性能對(duì)比
由圖7可以看出,VGGNet和Inception模型的運(yùn)行時(shí)間分別為14.8h和13.6h,本文模型在迭代1000次時(shí)的時(shí)間約為16.3h,分別是VGGnet和Inception模型的1.1倍和1.2倍。這主要是因?yàn)榘逍稳毕葺^為復(fù)雜導(dǎo)致參數(shù)過(guò)多,計(jì)算量較大,因而達(dá)到相同迭代次數(shù)的時(shí)間較長(zhǎng)。然而本文實(shí)驗(yàn)?zāi)P蜏?zhǔn)確率達(dá)到了91.3%,相較于VGGNet和Inception模型分別提高了27.5%和13.2%。VGGNet模型因其網(wǎng)絡(luò)的深度與廣度不高,隨著迭代次數(shù)地增加效果會(huì)變差,錯(cuò)誤率會(huì)提高。而Inception屬于大型的深度提取網(wǎng)絡(luò),對(duì)數(shù)據(jù)集有著較為嚴(yán)格的標(biāo)準(zhǔn),而本文的數(shù)據(jù)集還存在一定不足,因?yàn)閷?shí)驗(yàn)結(jié)果較差。
圖7 不同模型驗(yàn)證精度對(duì)比
本文針對(duì)現(xiàn)有的板形缺陷識(shí)別操作復(fù)雜、成本高等問(wèn)題,采用雙立法插值算法統(tǒng)一數(shù)據(jù)集中的圖片尺寸,以AlexNet為基礎(chǔ)對(duì)網(wǎng)絡(luò)模型結(jié)構(gòu)進(jìn)行改進(jìn),使其特征提取能力增強(qiáng),并使用LeakyReLU激活函數(shù)替換ReLU激活函數(shù)對(duì)抑制的神經(jīng)元進(jìn)行重新激活,提出了OP-AlexNet模型。本文模型的識(shí)別準(zhǔn)確率最終達(dá)到91.3%。相較傳統(tǒng)的AlexNet模型提高了16.2%,相較于VGGNet和Inception模型分別提高了27.5%和13.2%,由此驗(yàn)證了該模型的有效性。但該模型相較于現(xiàn)有模型,訓(xùn)練時(shí)間相對(duì)較長(zhǎng),今后還需繼續(xù)研究,縮短訓(xùn)練時(shí)間,以適應(yīng)現(xiàn)代化工業(yè)生產(chǎn)。