王振亞,趙繼紅,王艷鵬,葛廣英,孫群
(1.聊城大學物理科學與信息工程學院,聊城 252059;2.聊城大學季羨林學院,聊城 252059;3.聊城大學機械與汽車工程學院,聊城 252059)
近年來,人們生活水平逐漸提高,對醫(yī)藥的品質追求也越來越嚴格。藥品的特殊性使其在研發(fā)、生產(chǎn)、包裝到流通等各個環(huán)節(jié)都應當受到監(jiān)督和檢查,對藥片的品質分類檢測顯得尤為重要。如何在藥品生產(chǎn)輸送時、包裝入庫前,高效地檢測出不合格的藥品并剔除,是藥品生產(chǎn)領域研究的一個重要方向。傳統(tǒng)的人工抽檢的方法效率低,并且容易出錯,成本較高,不能適應工業(yè)自動化的發(fā)展。因此,研究人員提出了很多研究方法,如機器視覺檢測法、深度學習檢測法等。
機器視覺檢測方法在我國被應用到制藥領域較晚,主要是通用相機采集圖像,對圖像進行處理,得到結果。例如泡罩藥品包裝缺陷檢測[1]、液體藥品異物檢測[2]以及利用近紅外光譜進行藥片種類判別[3~4]等研究。
通過圖像處理技術提取到圖片的顏色、紋理、形狀等特征,再根據(jù)向量利用神經(jīng)網(wǎng)絡、支持向量機等模式識別的方法進行圖像分類。這類檢測方法雖然圖像識別的準確率有一定的提高,但是本質上依然依賴人工設計與特征的自然表達,導致訓練時間長并且誤差率較高。[5]
深度學習隨著大數(shù)據(jù)和人工智能的發(fā)展越來越廣泛的被應用,尤其在圖像分類、目標檢測領域等方面。卷積神經(jīng)網(wǎng)絡(CNN,convolutional neural network)[6]具有局部連接、參數(shù)共享,降采樣的特點,減少了網(wǎng)絡參數(shù),提高了網(wǎng)絡的泛化能力,比傳統(tǒng)的方法具有更加強大的特征學習與表達能力。
本文基于EfficientNet-B0網(wǎng)絡,并對其進行改進。簡化了網(wǎng)絡模型架構,減少了網(wǎng)絡參數(shù),提高了網(wǎng)絡的運行速率;將注意力機制SE模塊改進為ECA模塊,其激勵操作使用一維卷積自適應地確定卷積核的大小,避免降維導致的副作用,提高了網(wǎng)絡模型的精度;對藥片數(shù)據(jù)集進行數(shù)據(jù)擴充,滿足實驗應用,防止產(chǎn)生過擬合;對比分析其他的網(wǎng)絡模型驗證改進后模型的性能效果。
EfficientNet[7]網(wǎng)絡是2019年Tan等人提出的一種新的分類識別網(wǎng)絡,是標準圖像集ImageNet[8]下分類性能最優(yōu)的網(wǎng)絡之一。EfficientNet網(wǎng)絡通過復合縮放的方法,按照比例對網(wǎng)絡寬度(width),深度(depth)以及輸入圖像分辨率(resolution)三個維度進行擴展[7],尋求最大化識別精度需要的最優(yōu)參數(shù),而不是像傳統(tǒng)的方法那樣任意縮放網(wǎng)絡的維度。在模型參數(shù)量不變的情況下找出最優(yōu)的組合,網(wǎng)絡縮放的具體關系如下所示:
式(2)中的參數(shù)均為基準網(wǎng)絡中定義好的參數(shù),式(3)中Memory為記憶存儲器,式(4)中FLOPS為每秒浮點運算次數(shù)。為了尋求最優(yōu)的組合參數(shù),將用指數(shù)Φ表示出這三個待優(yōu)化參數(shù),如式(5)所示:
式中,d、w和r分別代表網(wǎng)絡的深度、寬度和分辨率。α、β和γ分別代表網(wǎng)絡深度、寬度和分辨率的分配系數(shù),是需要求解的參數(shù)。而α、β和γ是可以通過網(wǎng)格搜索固定的每個維度的縮放系數(shù)。Φ為復合系數(shù),其大小可以根據(jù)可用資源進行調節(jié)。通過改變式(5)中的Φ值,放大基準網(wǎng)絡EfficentNet-B0,得到EfficientNet-B1至Efficient Net-B7。EfficientNet-B0主要是由16個倒置瓶頸卷積模塊(mobile inverted bottleneck convolution,MBConv)、2個卷積層、1個全局平均池化層和1個全連接層構成,網(wǎng)絡結構參數(shù)如表1所示。MBConv模塊中包含深度可分離卷積,批處理歸一化以及Swish激活函數(shù),并引入SENet通道注意力機制,使得淺層網(wǎng)絡也能通過全局感受野來捕獲圖像特征對圖像進行描述。MBConv網(wǎng)絡模型結構如圖1所示。
表1 EfficientNet-B0網(wǎng)絡參數(shù)
圖1 MBConv結構圖
Swish激活函數(shù)的公式如下:
函數(shù)中x為輸入,μ為常數(shù)或可訓練的參數(shù)。Swish函數(shù)無上界,有下界,平滑并且非單調,準確率優(yōu)于傳統(tǒng)的ReLU函數(shù)。
SE(squeeze-excitation)[9]模塊是一種注意力(attention)機制,可以自動搜集每個特征通道的重要性并根據(jù)所搜集的特征的重要性排序,對有用特征增強并抑制在目前任務用處不大的特征。SE模塊使用全局平均池化提取通道間的特征,將結果和后層特征融合,起到對不同通道的注意力加權重機制。在SE模塊中有三個操作,分別是Squeeze、Excitation、Scale操作。SE模塊結構圖如圖2所示。
圖2 SE模塊結構圖
EfficientNet網(wǎng)絡的優(yōu)點是平衡了網(wǎng)絡的寬度、深度、輸入圖像的分辨率,尋找三者最優(yōu)的組合擴展網(wǎng)絡。采用核心的MBConv模塊,集成了眾多結構來豐富特征的提取。同時用深度可分離卷積代替標準卷積,使得模型參數(shù)量減小,減小參數(shù)意味著減小模型的大?。?0],從而提升效率。但Efficient Net網(wǎng)絡也有一定的局限性,其中的MBConv模塊內部結構復雜,對計算機的硬件設備要求較高,同時對小樣本數(shù)據(jù)也可能會出現(xiàn)過擬合現(xiàn)象。
基于原EfficientNet網(wǎng)絡模型計算量復雜,為了使EfficientNet模型更好的適應藥片的分類檢測,對網(wǎng)絡進行了以下修改。
2.1.1 簡化EfficientNet網(wǎng)絡
將原EfficientNet網(wǎng)絡中的多個MBConv模塊去掉進行精簡。保留共4個尺寸為3×3的MBConv,1個尺寸為5×5的MBConv。經(jīng)實驗發(fā)現(xiàn)5×5尺寸的卷積核大小下采樣時圖像數(shù)據(jù)失真較少,保留信息較好,當全部尺寸為3×3時,有失真的現(xiàn)象。故保留1個尺寸為5×5的MBConv模塊,在盡可能減少參數(shù)的情況下保證圖像信息的準確性。EfficientNet原網(wǎng)絡層數(shù)復雜,所消耗的計算資源多,藥片的數(shù)據(jù)集樣本非復雜的數(shù)百萬級別數(shù)據(jù)集,網(wǎng)絡復雜會造成過擬合的現(xiàn)象。因此對原EfficientNet網(wǎng)絡的簡化,保留了網(wǎng)絡中的核心架構,減少了網(wǎng)絡參數(shù),簡化了計算量同時也能達到很好的分類檢測效果。
2.1.2 引入ECA模塊
ECA(efficient channel attention)[11]模塊提出了一種不降維的局部跨信道交互策略,模塊通過非線性自適應確定的一維卷積實現(xiàn)。SE模塊是對特征圖通道注意力機制的研究,ECA模塊在其基礎上進行改進,避免了SE因降維導致的通道與權重不直接對應的副作用,同時以極其輕量級的方式有效地捕獲了跨通道交互的信息。ECA模塊是一種非常輕量級的即插即用塊,可以調高各種CNN的性能,結構如圖3所示。
圖3 ECA模塊結構圖
由圖3可知,ECA模塊去掉了SE模塊的2層全連接層,采用一維卷積。其激勵操作能夠自適應地判斷卷積核的大小k,通過一維卷積來學習GAP(global average pooling)之后的特征,避免維度的減少,通道和權重可以直接互相對應,同時使參數(shù)量大幅減少。ECA模塊采用分組卷積,改進CNN架構,通道維度C和卷積核大小k成比例,如公式(7)所示:卷
積尺寸如公式(8):
改進后的網(wǎng)絡模型總體結構如圖4所示,大大減少了網(wǎng)絡的參數(shù)。由圖4看出,輸入的圖片首先經(jīng)過卷積和批標準化以及Swish激活操作,然后使用一系列不同尺寸的MBConv模塊提取特征,內嵌ECA模塊。使用尺寸為1×1的卷積能適應各種不同尺寸的特征圖,并將其統(tǒng)一為我們需要的維度。最后通過Softmax函數(shù)完成藥片的分類識別檢測。
圖4 改進后的網(wǎng)絡結構圖
本實驗采用Python語言,TensorFlow和Keras深度學習框架,在Windows 10環(huán)境下完成的。實驗的硬件設備:CPU為Intel(R)Xeon(R)Silver 4210R CPU@2.40 GHz 2.39 GHz(2個處理器);GPU為RTX 4000。
實驗所采集的數(shù)據(jù)分為兩部分,一部分來自HALCON中的MVTec藥丸數(shù)據(jù)集;另一部分是使用工業(yè)相機對藥片進行拍攝所得。拍攝設備為陜西維視數(shù)字圖像技術有限公司生產(chǎn)的型號為MVEM120M/C的CCD面陣工業(yè)相機,鏡頭型號為MP系列的AFT-1214MP百萬像素工業(yè)鏡頭。藥片圖像共計3750張,分為9個類別,包括三種不同的藥片品牌ginseng、magnesium、mint的三種不同質量類別contamination(污染)、crack(破損)、good(完好),圖5為部分樣本示例。
圖5 部分藥片分類圖樣本示例
為防止在訓練過程中出現(xiàn)過擬合現(xiàn)象,對圖像數(shù)據(jù)通過增強來進行擴充。通過對原始數(shù)據(jù)集進行90°旋轉、亮度、色度和對比度變化的方法來擴充圖像樣本。擴充后的圖像共15000幅。將擴充后的樣本統(tǒng)一放縮為224×224像素大小,并進行歸一化處理。隨機將圖像劃分為訓練集、驗證集和測試集三個數(shù)據(jù)集。比例為70%:15%:15%,分別為10500幅、2250幅和2250幅。
為了直觀地觀察網(wǎng)絡的性能,對其進行分析,本文繪制了改進后的EfficientNet網(wǎng)絡模型對藥片分類仿真實驗的損失值和準確率曲線,如圖6所示。
從圖6中可以看出改進后的EfficientNet網(wǎng)絡模型共訓練了30個eopchs,隨著迭代次數(shù)的增加,準確率和損失值曲線逐漸平緩,趨于穩(wěn)定,并且損失值能夠較好的收斂。改進后的Efficient-Net網(wǎng)絡的訓練曲線和驗證曲線基本的趨勢相同,沒有出現(xiàn)過擬合的情況,具有一定的泛化能力。實驗證明,改進后EfficientNet網(wǎng)絡對藥片數(shù)據(jù)集的分類檢測精度達到98.93%。
圖6 改進后EfficientNet網(wǎng)絡訓練曲線
在相同實驗環(huán)境下,用原EfficientNet、GoogleNet[12]、MoblieNetV2[13]網(wǎng) 絡 模 型 對 構 建 的藥片數(shù)據(jù)集進行分類檢測,與改進后的Efficient-Net網(wǎng)絡進行對比,如表2所示。
表2 各類分類方法精度對比
由表2可以看出,改進后的EfficientNet網(wǎng)絡準確率明顯高于其他三個網(wǎng)絡,比原網(wǎng)絡提高了1.83%,運算速率也明顯提升,說明改進模型的可行有效性。
本文針對傳統(tǒng)藥片的分類檢測準確率低等問題,提出基于改進EfficientNet網(wǎng)絡模型的藥片分類檢測方法。構建藥片數(shù)據(jù)集,數(shù)據(jù)增強防止過擬合。通過對原網(wǎng)絡進行簡化,減少了網(wǎng)絡參數(shù)量,提升了網(wǎng)絡的運行效率。改進了注意力機制模塊,將SE模塊改進為ECA模塊,避免了SE模塊因降維帶來的通道與權重不直接對應的副作用。實驗結果表明,此方法取得了98.93%的準確率,較原網(wǎng)絡提高了1.83%;同時減少了網(wǎng)絡參數(shù),識別時間與原網(wǎng)絡相比明顯縮短,提高了實時性效率,實現(xiàn)了較好的效果。