張銀勝,單慧琳,何秉坤,郭子民
(1.無錫學院 電子信息工程學院,江蘇 無錫 214105;2.南京信息工程大學 電子與信息工程學院,江蘇 南京 210044)
機器學習作為人工智能等專業的必修課,也可作為電子信息類專業的選修課,教學目標是使學生理解機器學習的基本問題和算法,掌握相關實踐方法,為學生今后從事相關領域的研究工作奠定堅實的基礎。該課程的實驗教學側重于電子信息與人工智能相結合,內容設計一般以示例入手,逐步推進,以體現算法思想與基本原理。其中,目標分揀是實驗項目的重點,傳統實驗教學通常在虛擬仿真環境下完成,利用計算機技術模擬目標進行分揀,雖然仿真實驗存在效率高、可重復性強、成本低等優點,但直觀性差、模型準確性低,存在數據缺乏和驗證不確定性等問題。因此十分迫切需要設計一種目標分揀實驗系統。
特征提取是目標分揀的關鍵技術,卷積神經網絡(Convolutional Neural Network,CNN)可自動提取圖像特征,模型提取的特征隨著網絡深度增加越來越抽象,識別能力更強。Krizhevsky 等[1]提出AlexNet,在ImageNet 數據集上達到15.3%的top5 錯誤率,遠超其他傳統特征提取方式。2015 年,GoogleNet[2]、VGG[3]、ResNet[4]和DenseNet[5]相繼被提出。Wang 等[6]使用ResNet 網絡作為卷積層,提出自動檢測系統,有效解決了區域誤檢問題。Vo 等[7]修改原始ResNet 模型,在全局平均池化層后添加兩個全連接層,能快速實現分類模型的穩定和泛化。董子源等[8]提出一種注意力機制模型,通過全局、局部特征提取與特征融合機制等手段建立圖像分類模型GCNet,以獲得更完善、有效的特征信息,但實驗過程較復雜。Song 等[9]提出基于Inceptionv4[10]和ResNet 的自動分類網絡DSCR,解決了由于使用縮減模塊而導致模型過于敏感的問題,但分類效率較低。YOLOv3 算法[11]在犧牲少量精度的前提下,取得了較高的檢測速度。張靜等[12]通過減少YOLOv3 特征提取網絡中卷積層的層數,以提升模型精度和速度,但對類間差距不明顯的目標存在誤檢現象。
目前,深度學習逐步應用于課程實驗教學中。張飛等[13]開發了機器人抓取實驗教學系統。邱益等[14]開發了平面無序列抓取實驗系統。孫友昭等[15]開發了自動化控制仿真實踐教學平臺,取得了一定的實踐教學成效。然而,上述實驗教學系統的功能集中在實驗操作本身,技術較陳舊,在檢測速度、精度上落后于新技術。
為此,本文提出一種基于深度學習的目標分揀教學實驗系統,聚焦目標源頭進行分類和控制操作,使學生既能通過算法優化、設計和操作驗證目標檢測算法,還能通過實驗數據分析目標分揀算法的結果。
在虛擬仿真教學中,目標分揀存在實驗過程復雜、成本高等問題。為了解決該問題,本文教學實驗系統圍繞目標識別分類的算法實現、分揀操作等教學要求,簡化硬件設計,聚焦目標采集、識別、分類、分揀操作等主要功能。其中,目標分揀實驗的教學要求是學習并掌握目標檢測與分揀的基本原理,通過軟、硬件的綜合設計,實現目標檢測與分揀,可選擇元器件、水果等目標進行實驗,學生可通過改進檢測算法提升目標檢測的速度和精度。系統總體結構如圖1所示。

Fig.1 Overall system structure圖1 系統總體結構
由圖1 可見,系統主要包括主控模塊、攝像頭、機械臂、分揀模塊等。主控部分由Jetson Nano 和STM32 芯片組成,二者間采用串口進行通信。首先由攝像頭將拍攝到的目標圖片傳輸至Jetson Nano;然后由Jetson Nano 根據目標檢測算法識別、分類目標,同時STM32 對目標當前位置進行三維坐標轉換,控制機械臂進行抓取,通過分揀模塊實現自動分揀。分揀模塊主要由STM32芯片、42步進電機、6個舵機及7 個光電傳感器組成。其中,STM32 負責控制42步進電機帶動傳送帶運送物料;光電傳感器起開關作用,當物料落至傳送帶時光電傳感器檢測到物料,并反饋給STM32,隨后STM32 驅動步進電機轉動;舵機主要完成分揀擋板的旋轉運動,驅動擋板與傳送帶形成45~60°夾角,使傳送過來的物料落至分揀槽,分揀槽內置的光電傳感器發出分揀完成信號,再由STM32 控制各部分電機完成復原操作。
YOLOv3 網絡結構如圖2 所示,整個框架分為主干網絡(Darknet-53)、特征層融合和分類檢測3個部分[16-18]。

Fig.2 YOLOv3 network structure圖2 YOLOv3網絡結構
由于YOLOv2無法處理大尺度與小尺度物品數據的圖片,YOLOv3 采用3 個不同大小的網格劃分原始圖像,通過金字塔網絡解決該問題。預測大物體時使用13×13 的網格(具有最大感受野),預測中等物體時使用26×26 的網格(中等感受野),預測小物體時使用52×52 的網格(較小感受野)。
YOLOv3 的損失函數是在YOLOv2 的基礎上改進所得,將分類損失替換為二值交叉熵損失,損失函數由目標置信度損失、目標類別損失和目標定位偏移量損失相加所得,具體計算公式如式(1)所示。
式中:λ1、λ2、λ3為置信度誤差、類別誤差與偏移量誤差的權重,分別表示對應誤差在損失函數中所占權重;Lconf(o,c)為目標置信度損失;Lclɑ(O,C)為目標類別損失;Lloc(l,g)為目標定位偏移量損失。
目標置信度為檢測目標矩形框內,存在被測目標的概率,目標置信度損失采用二值交叉熵損失,具體計算公式如式(2)所示。其中,通過Oi∈(0,1)表示檢測目標是否在預測目標邊界框i內,0 代表不存在,1 代表存在。預測值采用Sigmoid 函數計算,代表預測目標邊界框i內真實存在目標的Sigmoid 概率,如式(3)所示。
式中:ci表示預測值。
2.2.1 特征提取網絡
為了解決Darknet-53 網絡在前向特征提取時,參數量和計算量較大的問題[19-20],本文采用輕量級網絡Mobile-NetV2 進行前向推理。MobileNetV2 的網絡結構如圖3所示。

Fig.3 Network architecture of MobileNetV2圖3 MobileNetV2的網絡結構
MobileNetV2 模型雖然具有較高的分類效率,但在僅使用低維度提取特征時,提取的目標特征有限。為此,在深度可分離卷積前使用1×1 的網絡結構,將高維度特征值映射在低維度空間內,在計算深度可分離卷積后,再利用擴展連接層將計算的低維度信息傳入下一層卷積網絡,以減少通道數、計算量和運算時間。
實驗表明,在連接過程中采用擴展6 倍的分離卷積網絡能較好的滿足運算需求,同時該模型采用1×1 的卷積核進行維度轉換過程。考慮到原有激活函數ReLU 在反向輸入情況下不會激活神經元,在大梯度運算時會導致狀態無法激活,造成目標物體進入網絡時喪失目標信息或信息被破壞的問題。因此,在升高維度時將激活函數ReLU 替換為線性激活函數,以確保在降維過程中最大限度地保留目標信息。
在主干網絡內部,在信息處理時,Darknet-53 使用標準卷積融合相鄰的兩層特征層。然而,當面對混在一起的物品時檢測效果較差,并且特征金字塔結構(Feature Pyramid Networks,FPN)過深會增加目標檢測的計算量。為此,本文系統采用分組卷積和逐點卷積替換標準卷積,在此結構下相同輸入模型的卷積個數僅為Darknet-53 網絡的1/3,以此提升模型檢測速度和精度。
綜上所述,MobileNetV2 網絡采用深度可分離卷積操作大幅減少了網絡的運算量和參數量,既降低了網絡復雜度,又提升了網絡推理速度與檢測模塊的運行速度。
2.2.2 特征尺度
YOLOv3 網絡直接使用1×1 多維度卷積核,替換傳統YOLOv2網絡使用的3×3與5×5的多維度,既能達到傳統網絡卷積核的性能,還能節約90%的計算效能,減少模型所需參數和計算維度。同時,3×3 與5×5 多維度卷積核采用傳統特征圖進行線性有機結合,實現跨通道的信息交互與資源整合,1×1 的多維度卷積核僅需一個特征圖就能有效表示在多維度通道間的交互。
在各不同物體分類的任務和回歸壓縮為0 到1 的置信度方面,1×1 卷積核有效替代了作為分類器的完全連接層(Fully Connected Layers),在視覺任務方面降低了大量計算量,既節約了實際部署能源消耗,又降低了算力。
2.2.3 損失函數
YOLOv3 中主干網絡Darknet-53 會輸出3 種不同尺度的特征圖,分別對應不同尺度的Loss 函數,需要將最終的計算損失結果求和后再進行反向傳播。
在判斷物體的過程中會出現正例、負例和忽視3 種情況,因此在輸入特征圖中應統計邊界框數量,針對特征圖中識別出的每一個對象,選擇交并比(Intersection over Union,IoU)最大值為正例,邊界框如果大于0.5 則忽視,剩余的為負例。
在實際計算過程中會出現背景錯誤檢測的問題,對于訓練圖片的真值(Ground Truth),若中心點在某個區域內,同時另一個物體的中心點恰好也在此處,則將該區域內所有框體與Ground Truth 值進行匹配,選擇最優值作為預測框體進行計算,其余框體繼續按照流程進行剔除。
此外,本文增加Focal Loss 函數修正模型,根據樣本分辨的難易程度給樣本損失添加權重。在實際應用中,置信度高的負樣本在總體樣本中占比較大,剔除或減弱該部分損失能明顯提升損失函數的效率,因此在交叉熵前加入權重因子形成新的損失函數,如式(4)所示。
式中:log 為交叉熵損失函數;γ為權重的參數,當γ>1時,能取得更好的效果(默認值為2);Pt為目標物體的置信度,為容易區分的樣本(置信度接近1 或接近0)添加較小的權重α1,為難分辨的樣本(置信度在0.5 附近)添加較大權重α2,如式(5)所示。
綜上,損失函數的計算取決于樣本的區分難度,采用Focal Loss 在處理類不均衡問題時,效果優于傳統YOLOv3算法中使用的損失函數。
2.2.4 利用K-means++實現錨點框聚類
為了高效預測不同尺度與寬高比的物體邊界框,一般采用Anchor(錨點框)機制。合適的Anchor 值既能快速準確定位邊界框,還能減少計算量和損失值,提升目標檢測精度與速度。
傳統YOLOv3 錨框利用K-means 算法進行聚類所得,由于K-means 隨機生成的聚類初始點對聚類結果具有較大影響,極易造成每次聚類結果產生嚴重偏差。雖然,YOLOv3 能在不同尺度下實現檢測,但聚類結果在尺寸上沒有明顯差別,難以根據算法要求對錨框進行排序,一旦直接將聚類結果應用到各尺度的特征圖檢測中,將降低檢測精度。
為此,本文系統首先分析目標圖像的形狀及特點,手動選擇K-Means++的12個初始聚類框,以有效降低原始算法在初始聚類點時的聚類偏差,得到尺寸更好的先驗框,并將其匹配到對應的特征圖上,達到提升系統檢測召回率、準確率的目的。
目標抓取控制由機械臂實現,通過逆運動學求解和角度轉化,獲得目標點坐標的對應角度數值和轉化后的舵機脈寬數據,控制舵機轉動。通過移動、夾取、抬升操作抓取目標后進行轉動、抬升、放置操作,一般抓取過程包括靠近目標、對齊目標、夾取目標、機體抬升、回歸中位解5 個步驟。
機械臂控制系統由控制芯片、六自由度機械臂機械結構、姿態控制模塊、舵機和電源模塊等組成。其中,控制芯片為STM32,通過串行外設接口(Serial Peripheral Interface,SPI)接受來自Jetson Nano 的目標檢測信號,以控制機械臂姿態,進而實現目標抓取;六自由度機械臂包含6 個舵機,每個舵機均具有堵轉保護和過溫保護功能;姿態控制模塊實現機械臂各關節的撓度控制。
電源接通后,通過編程接口將控制程序燒錄至控制芯片內,STM32 輸出脈沖寬度調制(Pulse Width Modulation,PWM)信號。通過修改輸入信號的脈寬可轉換舵機角度:①當脈沖寬度為1.5 ms 時進行舵機位置歸一化;②脈寬每增加0.5 ms,舵機輸出軸角度順時針旋轉45°;③脈沖寬度每減小0.5 ms,舵機輸出軸的角度逆時針旋轉45°。
本文提出的目標分揀實驗系統應用場景廣泛[21-22],在機器學習及創新實踐等課程中,學生可通過系統驗證與優化檢測算法、完成綜合設計和目標分揀操作等內容。本文以元器件分揀為例,YOLOv3 原算法和改進YOLOv3 算法的元器件檢測結果如圖4、圖5所示。

Fig.4 Component detection results based on original YOLOv3 algorithm圖4 基于YOLOv3原算法的元器件檢測結果

Fig.5 Component detection results based on improved YOLOv3 algorithm圖5 基于改進YOLOv3算法的元器件檢測結果
本文系統采用六自由度機械臂結合視覺識別算法進行操作,開發的分揀樣機和分揀過程如圖6、圖7 所示。同時,采用原算法和改進算法進行比較實驗,實驗結果如表1所示。由此可見,系統能快速識別、分揀目標,改進后的算法相較于原算法更快速、精確。

Table 1 Evaluation indicator表1 評價指標

Fig.6 Target sorting prototype圖6 目標分揀樣機

Fig.7 Screenshot of target sorting process圖7 目標分揀過程截圖
由表1 可知,輕量級主干網絡能提升算法的識別精度與檢測速度,改進后算法的mAP_0.5(損失函數IoU=0.5 時對應的平均準確率)從70.2%提升至93.6%。在檢測速度方面,處理一幀圖片的速度減少了9.35 ms,權重模型大小減少11.3 MB。
圖8 為改進前后的Loss 值變化曲線,當樣本數量為400 時,改進前的初始Loss 值相較于改進后的初始Loss 值更高,經過200 次迭代后一直維持在0.25 以下,證實了改進后算法能提升檢測目標的速度與準確度。

Fig.8 Loss curve of detection results圖8 檢測結果的loss曲線
同時,在機器學習、創新實踐等課程開設了目標分揀實驗項目。其中,機器學習課程重點考查分類算法,實驗內容是目標檢測算法的驗證與完善,分揀操作結果證明了檢測算法精度的重要性;創新實踐課程中目標分揀作為設計選題之一,實踐內容包括目標數據集的采集與預處理、網絡模型搭建與優化、控制系統設計編程、機械臂調試操作、分揀模塊設計等,學生在樣機上能分類元器件、水果、垃圾等。2022 年無錫學院電子信息工程學院通信工程專業的課程教學質量報告顯示,該系統的教學效果良好,相較于傳統實驗方案課程目標達成度得到了明顯提升,如表2所示。

Table 2 Achievement situation of curriculum objectives表2 課程目標達成情況
為了解決傳統目標分揀實驗的虛擬仿真教學實驗系統,因依靠人工提取的圖像特征進行分類,導致過程復雜、成本高、分類效率低、無法滿足機器學習等課程實驗需求的問題。本文通過改進YOLOv3 算法,提出一種基于深度學習的目標分揀教學實驗系統。具體為:①利用Mobile-NetV2 替換傳統算法的特征提取網絡,以減少特征尺度;②將YOLOv3 的損失函數替換為調整后的Focal loss;③將錨點框聚類算法替換為K-Means++。
本文以元器件分揀為例,在物理樣機上的比較實驗結果表明,所提模型能快速識別與分揀目標、控制機械臂進行分揀操作,完成了目標分揀實驗的教學要求。雖然,該系統為人工智能相關專業的教學、科研和課外學術競賽提供了一套完整的實驗平臺,具有良好的實用價值,但分類物品的種類有待提高,目標檢測精度仍具有進一步提升的空間。