王振亞,趙繼紅,王艷鵬,葛廣英,孫群
(1.聊城大學物理科學與信息工程學院,聊城 252059;2.聊城大學季羨林學院,聊城 252059;3.聊城大學機械與汽車工程學院,聊城 252059)
近年來,人們生活水平逐漸提高,對醫(yī)藥的品質追求也越來越嚴格。藥品的特殊性使其在研發(fā)、生產、包裝到流通等各個環(huán)節(jié)都應當受到監(jiān)督和檢查,對藥片的品質分類檢測顯得尤為重要。如何在藥品生產輸送時、包裝入庫前,高效地檢測出不合格的藥品并剔除,是藥品生產領域研究的一個重要方向。傳統(tǒng)的人工抽檢的方法效率低,并且容易出錯,成本較高,不能適應工業(yè)自動化的發(fā)展。因此,研究人員提出了很多研究方法,如機器視覺檢測法、深度學習檢測法等。
機器視覺檢測方法在我國被應用到制藥領域較晚,主要是通用相機采集圖像,對圖像進行處理,得到結果。例如泡罩藥品包裝缺陷檢測[1]、液體藥品異物檢測[2]以及利用近紅外光譜進行藥片種類判別[3~4]等研究。
通過圖像處理技術提取到圖片的顏色、紋理、形狀等特征,再根據向量利用神經網絡、支持向量機等模式識別的方法進行圖像分類。這類檢測方法雖然圖像識別的準確率有一定的提高,但是本質上依然依賴人工設計與特征的自然表達,導致訓練時間長并且誤差率較高。[5]
深度學習隨著大數據和人工智能的發(fā)展越來越廣泛的被應用,尤其在圖像分類、目標檢測領域等方面。卷積神經網絡(CNN,convolutional neural network)[6]具有局部連接、參數共享,降采樣的特點,減少了網絡參數,提高了網絡的泛化能力,比傳統(tǒng)的方法具有更加強大的特征學習與表達能力。
本文基于EfficientNet-B0網絡,并對其進行改進。簡化了網絡模型架構,減少了網絡參數,提高了網絡的運行速率;將注意力機制SE模塊改進為ECA模塊,其激勵操作使用一維卷積自適應地確定卷積核的大小,避免降維導致的副作用,提高了網絡模型的精度;對藥片數據集進行數據擴充,滿足實驗應用,防止產生過擬合;對比分析其他的網絡模型驗證改進后模型的性能效果。
EfficientNet[7]網絡是2019年Tan等人提出的一種新的分類識別網絡,是標準圖像集ImageNet[8]下分類性能最優(yōu)的網絡之一。EfficientNet網絡通過復合縮放的方法,按照比例對網絡寬度(width),深度(depth)以及輸入圖像分辨率(resolution)三個維度進行擴展[7],尋求最大化識別精度需要的最優(yōu)參數,而不是像傳統(tǒng)的方法那樣任意縮放網絡的維度。在模型參數量不變的情況下找出最優(yōu)的組合,網絡縮放的具體關系如下所示:

式(2)中的參數均為基準網絡中定義好的參數,式(3)中Memory為記憶存儲器,式(4)中FLOPS為每秒浮點運算次數。為了尋求最優(yōu)的組合參數,將用指數Φ表示出這三個待優(yōu)化參數,如式(5)所示:

式中,d、w和r分別代表網絡的深度、寬度和分辨率。α、β和γ分別代表網絡深度、寬度和分辨率的分配系數,是需要求解的參數。而α、β和γ是可以通過網格搜索固定的每個維度的縮放系數。Φ為復合系數,其大小可以根據可用資源進行調節(jié)。通過改變式(5)中的Φ值,放大基準網絡EfficentNet-B0,得到EfficientNet-B1至Efficient Net-B7。EfficientNet-B0主要是由16個倒置瓶頸卷積模塊(mobile inverted bottleneck convolution,MBConv)、2個卷積層、1個全局平均池化層和1個全連接層構成,網絡結構參數如表1所示。MBConv模塊中包含深度可分離卷積,批處理歸一化以及Swish激活函數,并引入SENet通道注意力機制,使得淺層網絡也能通過全局感受野來捕獲圖像特征對圖像進行描述。MBConv網絡模型結構如圖1所示。

表1 EfficientNet-B0網絡參數

圖1 MBConv結構圖
Swish激活函數的公式如下:

函數中x為輸入,μ為常數或可訓練的參數。Swish函數無上界,有下界,平滑并且非單調,準確率優(yōu)于傳統(tǒng)的ReLU函數。
SE(squeeze-excitation)[9]模塊是一種注意力(attention)機制,可以自動搜集每個特征通道的重要性并根據所搜集的特征的重要性排序,對有用特征增強并抑制在目前任務用處不大的特征。SE模塊使用全局平均池化提取通道間的特征,將結果和后層特征融合,起到對不同通道的注意力加權重機制。在SE模塊中有三個操作,分別是Squeeze、Excitation、Scale操作。SE模塊結構圖如圖2所示。

圖2 SE模塊結構圖
EfficientNet網絡的優(yōu)點是平衡了網絡的寬度、深度、輸入圖像的分辨率,尋找三者最優(yōu)的組合擴展網絡。采用核心的MBConv模塊,集成了眾多結構來豐富特征的提取。同時用深度可分離卷積代替標準卷積,使得模型參數量減小,減小參數意味著減小模型的大小[10],從而提升效率。但Efficient Net網絡也有一定的局限性,其中的MBConv模塊內部結構復雜,對計算機的硬件設備要求較高,同時對小樣本數據也可能會出現過擬合現象。
基于原EfficientNet網絡模型計算量復雜,為了使EfficientNet模型更好的適應藥片的分類檢測,對網絡進行了以下修改。
2.1.1 簡化EfficientNet網絡
將原EfficientNet網絡中的多個MBConv模塊去掉進行精簡。保留共4個尺寸為3×3的MBConv,1個尺寸為5×5的MBConv。經實驗發(fā)現5×5尺寸的卷積核大小下采樣時圖像數據失真較少,保留信息較好,當全部尺寸為3×3時,有失真的現象。故保留1個尺寸為5×5的MBConv模塊,在盡可能減少參數的情況下保證圖像信息的準確性。EfficientNet原網絡層數復雜,所消耗的計算資源多,藥片的數據集樣本非復雜的數百萬級別數據集,網絡復雜會造成過擬合的現象。因此對原EfficientNet網絡的簡化,保留了網絡中的核心架構,減少了網絡參數,簡化了計算量同時也能達到很好的分類檢測效果。
2.1.2 引入ECA模塊
ECA(efficient channel attention)[11]模塊提出了一種不降維的局部跨信道交互策略,模塊通過非線性自適應確定的一維卷積實現。SE模塊是對特征圖通道注意力機制的研究,ECA模塊在其基礎上進行改進,避免了SE因降維導致的通道與權重不直接對應的副作用,同時以極其輕量級的方式有效地捕獲了跨通道交互的信息。ECA模塊是一種非常輕量級的即插即用塊,可以調高各種CNN的性能,結構如圖3所示。

圖3 ECA模塊結構圖
由圖3可知,ECA模塊去掉了SE模塊的2層全連接層,采用一維卷積。其激勵操作能夠自適應地判斷卷積核的大小k,通過一維卷積來學習GAP(global average pooling)之后的特征,避免維度的減少,通道和權重可以直接互相對應,同時使參數量大幅減少。ECA模塊采用分組卷積,改進CNN架構,通道維度C和卷積核大小k成比例,如公式(7)所示:卷

積尺寸如公式(8):

改進后的網絡模型總體結構如圖4所示,大大減少了網絡的參數。由圖4看出,輸入的圖片首先經過卷積和批標準化以及Swish激活操作,然后使用一系列不同尺寸的MBConv模塊提取特征,內嵌ECA模塊。使用尺寸為1×1的卷積能適應各種不同尺寸的特征圖,并將其統(tǒng)一為我們需要的維度。最后通過Softmax函數完成藥片的分類識別檢測。

圖4 改進后的網絡結構圖
本實驗采用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。
實驗所采集的數據分為兩部分,一部分來自HALCON中的MVTec藥丸數據集;另一部分是使用工業(yè)相機對藥片進行拍攝所得。拍攝設備為陜西維視數字圖像技術有限公司生產的型號為MVEM120M/C的CCD面陣工業(yè)相機,鏡頭型號為MP系列的AFT-1214MP百萬像素工業(yè)鏡頭。藥片圖像共計3750張,分為9個類別,包括三種不同的藥片品牌ginseng、magnesium、mint的三種不同質量類別contamination(污染)、crack(破損)、good(完好),圖5為部分樣本示例。

圖5 部分藥片分類圖樣本示例
為防止在訓練過程中出現過擬合現象,對圖像數據通過增強來進行擴充。通過對原始數據集進行90°旋轉、亮度、色度和對比度變化的方法來擴充圖像樣本。擴充后的圖像共15000幅。將擴充后的樣本統(tǒng)一放縮為224×224像素大小,并進行歸一化處理。隨機將圖像劃分為訓練集、驗證集和測試集三個數據集。比例為70%:15%:15%,分別為10500幅、2250幅和2250幅。
為了直觀地觀察網絡的性能,對其進行分析,本文繪制了改進后的EfficientNet網絡模型對藥片分類仿真實驗的損失值和準確率曲線,如圖6所示。
從圖6中可以看出改進后的EfficientNet網絡模型共訓練了30個eopchs,隨著迭代次數的增加,準確率和損失值曲線逐漸平緩,趨于穩(wěn)定,并且損失值能夠較好的收斂。改進后的Efficient-Net網絡的訓練曲線和驗證曲線基本的趨勢相同,沒有出現過擬合的情況,具有一定的泛化能力。實驗證明,改進后EfficientNet網絡對藥片數據集的分類檢測精度達到98.93%。

圖6 改進后EfficientNet網絡訓練曲線
在相同實驗環(huán)境下,用原EfficientNet、GoogleNet[12]、MoblieNetV2[13]網 絡 模 型 對 構 建 的藥片數據集進行分類檢測,與改進后的Efficient-Net網絡進行對比,如表2所示。

表2 各類分類方法精度對比
由表2可以看出,改進后的EfficientNet網絡準確率明顯高于其他三個網絡,比原網絡提高了1.83%,運算速率也明顯提升,說明改進模型的可行有效性。
本文針對傳統(tǒng)藥片的分類檢測準確率低等問題,提出基于改進EfficientNet網絡模型的藥片分類檢測方法。構建藥片數據集,數據增強防止過擬合。通過對原網絡進行簡化,減少了網絡參數量,提升了網絡的運行效率。改進了注意力機制模塊,將SE模塊改進為ECA模塊,避免了SE模塊因降維帶來的通道與權重不直接對應的副作用。實驗結果表明,此方法取得了98.93%的準確率,較原網絡提高了1.83%;同時減少了網絡參數,識別時間與原網絡相比明顯縮短,提高了實時性效率,實現了較好的效果。