肖東 韓晨 范文強
(煙臺大學光電信息科學技術學院 煙臺 264000)
檢測瑕疵產品的過程實質上是圖像分類的過程,給你一幅圖像,來判斷是好的產品,還是帶有瑕疵的產品。以2012 年Hinton 和他的學生Alex 設計的AlexNet[1]為起點,卷積神經網絡開始逐漸在ILSVRC 獲勝,成為競賽的Winning algorithm,包括2013 年Zeiler 和Fergus 設計的ZFNet[2]、2014 年 牛津大學計算機視覺組合和Google DeepMind 公司一起研發的的VGGNet[3]、Christian Szegedy提出的GoogLeNet[4]和2015年何愷明提出的ResNet[5]。
但是利用卷積神經網絡來檢測帶有缺陷的產品,也有不足的地方。首當其沖的問題就是數據,數據是OCR 研究中最重要的要素之一。目前在很多行業里,短時間內很難獲得足夠多的帶有缺陷的產品圖像,所以在應用深度學習進行缺陷檢測時存在分類的準確率不高的問題。因此,尋找一個對數據需求少,分類準確率高的深度學習算法是一個值得研究的問題。本文的“UR”法就是結合U-net[6]和ResNet來實現少量數據高準確率的圖像分類。
使用U-net 進行植物葉片的圖像分割,數據集需要包含兩部分,植物葉片原圖像和植物葉片圖像的標簽(label)。實驗中從自然環境中采集了300枚植物的葉片。為避免由于數據集的分布規律過于簡單而造成網絡產生過擬合,因此實驗中共采集了9種不同植物的葉片。
由于本次研究的目的是圖像缺陷檢測,所以對有缺陷的植物葉片的需求較高。在有缺陷的植物葉片較少的情況下,采取了在原有的無缺陷葉片的基礎上自制有缺陷葉片的方法,主要采用了裁剪,撕取等方法。自然形成的有缺陷植物葉片和人工制作的有缺陷植物葉片如圖1 所示。最終共采集到無缺陷葉片圖像412幅,有缺陷葉片圖像136幅,共548幅。

圖1 自然形成和人工制作
U-net圖像分割網絡在進行訓練過程對隨機選取的71 幅原始圖像用Labelme 進行標注后得到標簽圖。
ResNet 圖像分類網絡是使用U-net 圖像分割的結果來訓練的,用訓練好的U-net 網絡處理所有的圖像數據,可以得到共548 幅分割圖像。按照80%訓練集,20%測試集的分配比例,隨機取448幅圖像作為ResNet 網絡的訓練集,100 幅圖像作為網絡的測試集以測試網絡性能。和U-net 網絡一樣,ResNet也需要對圖像打標簽,但是和圖像分割網絡不同,這里的標簽只是一個代表圖像類別的字符,比如0代表有缺陷,1代表沒缺陷。
U-net 網絡和ResNet 網絡一樣,都是卷積神經網絡算法的一種,它們兩種算法都主要用于分類問題,不過相比ResNet 網絡,U-net 網絡的分類是像素級別的分類,通過對組成圖像不同部分的像素點進行分類來實現圖像的語義分割。
U-net 網絡在經過足夠的訓練后,可以清晰地把一副圖像中葉片的輪廓分割出來,就像圖2(b)所示的那樣。分割后的圖像相比原圖,在形狀上的特征變得更加明顯,葉片的缺陷相比原圖也更加的突出。因此,圖像分割這一步驟,就相當于發揮了特征提取的作用。經過圖像分割,用于進行區分缺陷葉片的輪廓特征變得更加明顯,雖然葉片的顏色特征會被掩蓋,但由于所研究的植物葉片的缺陷主要是形體上的缺陷,所以可以忽略被掩蓋的顏色特征。

圖2 灰度圖和分割圖
利用訓練好的U-net 網絡來處理采集的數據,相比原來未經處理的植物葉片圖像,圖像分割后產生的二值圖像因為除了植物葉片外的背景全是白色,只有葉片是黑色,所以這樣的圖像相比背景復雜的圖像,其中包含的特征會更加的明顯,對于圖像分類網絡學習起來也更加簡單,因此訓練這樣一個圖像分類網絡既不需要太多的數據,網絡的深度也不需要特別深。實驗中將從U-net 網絡得到的數據按照80%訓練集,20%測試集的分配方法進行分配,在將數據按照類別標記好之后,就可以用于ResNet-18網絡的訓練。
通過U-net 圖像分割網絡對植物葉片圖像進行特征提取是本實驗的第一步。圖3 列出了當U-net 網絡在訓練集上訓練100 次(右上),200 次(左下),300次(右下)時對植物葉片的分割結果。

圖3 U-net網絡分割結果
圖4 為U-net 網絡的訓練狀態曲線,實線的曲線為損失值(loss),虛線的曲線為準確率(accuracy),橫軸為U-net 網絡訓練的次數。由圖2、3 可見,在訓練300 次時,網絡仍還有很大的潛力進一步改善,但是考慮到本實驗的目的并不是進行圖像分割并且增加訓練次數會增大訓練的時間成本,所以最終U-net 模型訓練了300 次。最終訓練300 次模型的loss 值為0.12109,準確率為96.50%。可見,已經是很好的結果。

圖4 U-net訓練狀態曲線
實驗中將ResNet-18 模型在訓練集上訓練了30 次,訓練過程中使用minibatch 的方法,batchsize為16,圖5為模型的訓練狀態曲線,最終,在經過30次的訓練后,模型在訓練集上的loss 值為0.0350,準確率為98.88%。將模型在含有100 張圖像的測試集上進行測試,得到的loss 值為0.0907,準確率為98%。在測試集上98%的準確率這個結果已經相當的令人滿意了,畢竟模型的訓練集只有448 張圖像,并且這個模型僅僅訓練了30次。

圖5 “UR”法ResNet-18訓練狀態曲線
單純的觀察“UR”法的實驗結果并不能發現“UR”法比其他的方法強在哪里,所以本節將對經過U-net特征提取后ResNet-18 的分類結果與不經過U-net特征提取ResNet-18 的分類結果進行對比分析。
實驗中,為了確保對比的公平性,所用的ResNet-18網絡與“UR”法所用的ResNet-18網絡保持參數一致,訓練次數一致,優化方法一致等。圖6 是ResNet-18 直接對448 張大小 為256*256 的植物葉片的灰度圖進行訓練30次的訓練狀態曲線。

圖6 ResNet-18 訓練狀態曲線
由圖6可以看出,單純用ResNet-18時,在訓練集上訓練了30 次之后,模型還沒有收斂,loss 曲線仍然有下降的趨勢,而“UR”法在訓練15 次之后模型就已經收斂了。這說明,“UR 法”在模型優化的速度上比普通的ResNet網絡要快很多。經過30次訓練后,單純的ResNet-18 網絡的loss 值為0.2778,準確率為88.62%。將模型在100 張圖像的測試集上進行測試,得到的準確率為85%。這里通過數據可以看出,只用ResNet 的分類準確率比“UR”法大約低了10%。
所以,由數據可知,與傳統的圖像分類算法相比,“UR”法可以用很少的數據就能夠得到更好的分類準確率,并且模型的優化速度更快。
本文針對上述問題,基于深度學習提出了一種和傳統的圖像分類不一樣的思路。即在圖像分類之前,先對所要分類的圖像做一個“預處理”。這個“預處理”會將圖像的特征進行提取,特征提取后,用于圖像分類的特征會變得更加的“突出”。隨后再在圖像分類模型上進行訓練,因為此時用于圖像分類的數據的特征都變得非常的明顯,所以在訓練時,圖像分類網絡可以很容易地學習到圖像的特征,因此訓練耗費的時間就會少并且準確率也會提高。
由于實際生產中產品的缺陷檢測大多是二分類問題,所以本文中以植物葉片為例對“UR”法的研究可以很好地泛化到其他更復雜的缺陷檢測問題上。