陳業(yè)宏
(廣東粵電楓樹壩發(fā)電有限責(zé)任公司,廣東河源,517000 )
在日常巡檢過程中,運行人員需要對發(fā)電機、變壓器、線路等保護(hù)裝置進(jìn)行檢查,其中根據(jù)當(dāng)時機變和線路的運行方式檢查壓板相應(yīng)的投退情況是非常重要的項目。由于在廠房中保護(hù)裝置臺數(shù)眾多、壓板數(shù)量繁多,且壓板類型容易造成混淆,而巡檢人員常常處于人數(shù)不足的狀態(tài),難免會因為在高溫、高噪聲的工作環(huán)境下引起精力不集中,產(chǎn)生失誤導(dǎo)致的錯檢、漏檢。為了幫助避免上述情況發(fā)生,本文提出一種通過人工智能識別算法來檢查壓板投退狀態(tài)并進(jìn)行圖像和文字顯示的工具。
針對壓板狀態(tài)識別的技術(shù),先前已有學(xué)者采用神經(jīng)網(wǎng)絡(luò)和機器視覺的方法,先對圖像進(jìn)行預(yù)處理,然后針對壓板三個狀態(tài):投入、退出、備用的不同特征進(jìn)行提取,最后根據(jù)特征匹配輸出大于閾值的結(jié)果。這種方式雖然簡單、容易實現(xiàn),但由于現(xiàn)場光線干擾和拍攝圖像與特征模板匹配時產(chǎn)生畸變的問題,導(dǎo)致最終檢測分類速度慢且結(jié)果與實際具有較大偏差。
基于以上出現(xiàn)的問題,本文基于對不同類型的壓板不同狀態(tài)表現(xiàn)的研究,采用YOLOv2 目標(biāo)檢測算法,采集不同顏色、種類的壓板進(jìn)行三種狀態(tài)的特征提取,導(dǎo)入算法進(jìn)行多次訓(xùn)練,并通過調(diào)整參數(shù)進(jìn)行對比驗證,得到現(xiàn)場識別效果較好的目標(biāo)檢測模型,證明基于YOLOv2 目標(biāo)檢測算法和K210 芯片的智能壓板狀態(tài)識別系統(tǒng)的可行性和有效性。
本系統(tǒng)使用搭載K210 芯片的Maix Bit 最小系統(tǒng)板,采用型號為OV2640 的廣角攝像頭和2.4 寸彩色屏幕。將提前訓(xùn)練好的模型(.kmodel 文件)燒錄到芯片0x300000 地址上,在0x00000 和0X1a0000 地址上燒錄最新版本的模型驅(qū)動固件以及最小系統(tǒng)固件(均為bin 文件);使用攝像頭采集壓板圖像,識別壓板是否處于投入、退出或者備用的狀態(tài);攝像頭所拍攝圖像以及識別結(jié)果可以顯示在LCD 屏幕上。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
圖2 系統(tǒng)開發(fā)流程框圖
與經(jīng)典的目標(biāo)檢測算法,例如R-CNN、Faster-RCNN等相比,YOLO 算法更具有實時性的優(yōu)勢。由于YOLOv1 算法采用單次循環(huán)檢測的方式,對尺寸小、密度高的目標(biāo)定位存在較高的位置誤差,而YOLOv2 在引入Darknet-19 網(wǎng)絡(luò)和Anchor box 之后,通過多尺度特征的比對來提高檢測精度和穩(wěn)定性。在精確性方面,可以利用Anchor box 和多尺度特征提取提高壓板檢測的準(zhǔn)確性,同時適當(dāng)增加樣本數(shù)量,保證良好的訓(xùn)練效果和檢測準(zhǔn)度??梢詫ξ矬w進(jìn)行實時檢測,以圖片作為輸入,將識別目標(biāo)的位置和置信度作為輸出,能夠在保持原有較高的檢測速度的基礎(chǔ)上,提高目標(biāo)檢測的準(zhǔn)確率,而目標(biāo)檢測的主要任務(wù)無非就是兩個:分類和定位。
在分類過程中,R-CNN 采用選擇性搜索的方式產(chǎn)生候選框,再使用分類器對每個候選區(qū)域進(jìn)行特征提取,使用預(yù)先訓(xùn)練的CNN 提取區(qū)域的特征,最后采用線性回歸的方法來判斷候選物體的類別,這種方式速度較慢,且容易造成數(shù)據(jù)丟失。Fast R-CNN 雖是利用整圖一次性提取候選框的方式,在整個識別分類的過程中使用了2 個不同的CNN 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行特征提取,導(dǎo)致速度依然不夠理想。YOLOv1 是一個end-to-end 的檢測分類算法,即將目標(biāo)檢測任務(wù)轉(zhuǎn)化為回歸問題。它采用全卷積神經(jīng)網(wǎng)絡(luò)將整個圖像作為輸入,同時預(yù)測多個邊界框和類別,僅使用1 個CNN 網(wǎng)絡(luò)就能輸出目標(biāo)物體的置信度得分和類別得分,最后通過非極大值抑制(NMS)篩選最終檢測結(jié)果,檢測分類速度高達(dá)45~155幀/秒,缺點在于定位精度不夠高。而YOLOv2 在模型中去除全連接結(jié)構(gòu),不再使用滑動搜索方式進(jìn)行特征提取,取而代之的是使用卷積層和池化層對最后的結(jié)果進(jìn)行預(yù)測,對每個候選區(qū)域預(yù)測一個獨立的類別,同時引入Anchor box 的概念對不同尺度和比例的目標(biāo)邊界框進(jìn)行預(yù)測,然后同樣使用非極大值抑制(NMS)篩選檢測結(jié)果,在YOLOv1 的高速度的基礎(chǔ)上進(jìn)一步提高檢測準(zhǔn)度。
在定位過程中,在R-CNN 是采用選擇性搜索的算法對候選區(qū)域進(jìn)行劃分。選擇性搜索是一種基于圖像分割的算法,通過將圖像分割成若干個像素塊,并將相似度較高的像素塊來合并形成候選區(qū)域。對于每個候選區(qū)域,R-CNN 使用預(yù)訓(xùn)練的CNN(如AlexNet 或VGG)對候選區(qū)域進(jìn)行特征提取,然后使用支持向量機(SVM)或線性回歸器進(jìn)行目標(biāo)分類和邊界框回歸,從而實現(xiàn)目標(biāo)定位。Fast R-CNN 通過RoI (Region of Interest) pooling 層將選擇性搜索生成的候選區(qū)域映射到固定大小的特征圖上,并將每個RoI 映射為相同大小的特征向量。然后,這些RoI 特征向量傳入全連接層用于目標(biāo)分類和邊界框回歸,最后經(jīng)過非極大值抑制(NMS)篩選出結(jié)果。在目標(biāo)定位方面Fast R-CNN 比R-CNN更高效。YOLOv1 是通過直接回歸目標(biāo)邊界框的位置實現(xiàn)定位的,將整個圖像劃分為網(wǎng)格,并預(yù)測每個網(wǎng)格的多個邊界框。每個邊界框由五個值組成:中心坐標(biāo)(x,y)、寬度(w)、高度(h)以及目標(biāo)置信度得分和多個類別得分。通過預(yù)測這些值,YOLOv1 可以定位目標(biāo)的位置和大小。YOLOv2 則是在YOLOv1 的基礎(chǔ)上引入Anchor box 來預(yù)測邊界框的位置,模型再訓(xùn)練檢測之前已經(jīng)適應(yīng)不經(jīng)切換的高分辨率輸入。Anchor box 作為在各類目標(biāo)檢測的網(wǎng)絡(luò)模型中作為先驗框的存在,每次訓(xùn)練都會將輸入的圖片分成S*S 的方格,每個方格圍繞中心生成5 個Anchor box,先驗框與目標(biāo)框進(jìn)行一個交并比IOU 的計算得到閾值,小于閾值的歸屬于背景區(qū)域,大于閾值的歸屬于目標(biāo)區(qū)域,經(jīng)過K-means 聚類之后的數(shù)據(jù)產(chǎn)生歸一化,回歸產(chǎn)生的框就是bounding box。先驗框的應(yīng)用可以簡化識別問題,使網(wǎng)絡(luò)模型更容易學(xué)習(xí);bounding box 作為檢測目標(biāo)的位置參數(shù),能提取出目標(biāo)邊界框左上角坐標(biāo)[tx,ty]以及寬高[tw,th]。由bounding box 得到預(yù)測結(jié)果的轉(zhuǎn)換公式如下:
其中cx,cy 是grid cell 在feature map 左上角的坐標(biāo),Pw,Ph 是Anchor box 相對原圖的寬高。
本設(shè)計使用勘智K210 芯片作為該系統(tǒng)的主控,兼顧數(shù)據(jù)處理、圖像處理等功能。該芯片采用RSIC-V 架構(gòu),具備雙核64 位處理器,搭載FPIOA 可編程陣列,并配備豐富的外設(shè)接口,包括UART、SPI、I2C、PWM、GPIO 等??筛鶕?jù)不同需求結(jié)合不同的編程語言,能夠?qū)崿F(xiàn)神經(jīng)網(wǎng)絡(luò)計算、人臉識別、特征檢測等功能,具有低功耗、低價格、高性能的特點,其高效的AI 加速和圖像處理能力,加快終端感知數(shù)據(jù)處理,并減少數(shù)據(jù)傳輸壓力,可廣泛應(yīng)用于工業(yè)、園區(qū)等場景的智能識別系統(tǒng)。
表1 K210芯片性能參數(shù)表
本系統(tǒng)主要以Mx_YOLOv3 開源工具作為本地模型訓(xùn)練平臺,配合其他工具完成訓(xùn)練集的制作和文件類型的轉(zhuǎn)換。
(1)訓(xùn)練集制作和標(biāo)注
首先,通過采取攝像頭拍攝的方式收集生產(chǎn)現(xiàn)場環(huán)境下保護(hù)裝置屏面壓板的圖像數(shù)據(jù),也可以從工業(yè)場景或模擬器中獲取。為提高攝像頭在不同場合光線下的識別成功率,以及從不同角度拍攝壓板返回重疊不規(guī)則特征圖像導(dǎo)致識別失敗的情況,采取環(huán)境、光線、角度多樣化進(jìn)行采樣,且采樣數(shù)量比例保持均衡的策略,確保圖像質(zhì)量良好,包含不同尺寸、狀態(tài)和顏色的壓板。
然后是對圖片進(jìn)行預(yù)處理,這個步驟能夠有效減少計算復(fù)雜度,提高模型訓(xùn)練效率。通過圖像的大小歸一化、調(diào)整、裁剪和增強等操作,以確保圖像具有一致的尺寸和質(zhì)量。此處使用圖形轉(zhuǎn)換工具將訓(xùn)練集處理為像素448×448、jpg 格式的方格圖片,并對壓板圖像進(jìn)行銳化,減少曝光面積等調(diào)整。
最后是標(biāo)注和文件標(biāo)簽。對于每張圖像,需要標(biāo)注其中的壓板位置和類別信息。通常使用邊界框來標(biāo)注壓板的位置,即在圖像中用矩形框框出壓板的邊界。標(biāo)簽文件中保存著標(biāo)注信息,其中包含壓板的位置(邊界框坐標(biāo))和類別。此處根據(jù)壓板在不同狀態(tài)下的特征進(jìn)行框圖標(biāo)注,使用LabelImg 工具分別對訓(xùn)練集中投入、退出、備用的壓板框選出來進(jìn)行標(biāo)注,生成的xml標(biāo)簽文件則是供程序讀取信息。
(2)模型訓(xùn)練和參數(shù)選擇
配置好開發(fā)環(huán)境后,在Mx_YOLOv3 平臺中選擇物體識別—YOLOv2 模型,相關(guān)參數(shù)設(shè)置參考表2。
表2 YOLOv2訓(xùn)練參數(shù)設(shè)置表
合理的Batch_size 數(shù)值能夠保證最大限度利用電腦內(nèi)存,提高訓(xùn)練速度,常見的設(shè)定值有32、64、128 等。Alpha 數(shù)值的設(shè)定則需要根據(jù)數(shù)據(jù)集的特點進(jìn)行調(diào)整,如果Alpha 值過小,目標(biāo)框的尺寸可能變小,導(dǎo)致漏檢的問題。在訓(xùn)練中選擇合適的Alpha 值來保證目標(biāo)框大小與圖像尺寸之間的比例適當(dāng),從而得到更好的訓(xùn)練效果。Epoch 是指整個訓(xùn)練集的訓(xùn)練次數(shù),通常設(shè)置在30~100 之間,一般來說損失函數(shù)loss 明顯收斂以及平均精度mAP 趨于穩(wěn)定之后,說明模型基本達(dá)到充分訓(xùn)練的程度,此時應(yīng)當(dāng)防止訓(xùn)練次數(shù)過多導(dǎo)致過擬合問題。
(3)文件轉(zhuǎn)換和燒錄
為了適配K210 芯片上的神經(jīng)網(wǎng)絡(luò)加速器,需要將訓(xùn)練好的模型文件,包括模型參數(shù)、權(quán)重和結(jié)構(gòu)等信息重新編碼,轉(zhuǎn)換成特定格式的k210model 文件。在Mx_YOLOv3平臺進(jìn)行模型訓(xùn)練,完成后自動生成tflite 模型文件,使用NNCase0.1.0 工具將tflite 文件轉(zhuǎn)換為k210model 文件。
由圖3 可知,K210 內(nèi)部Flash根據(jù)功能和作用主要分成三大區(qū)域:固件區(qū)、模型區(qū)和文件系統(tǒng)區(qū),將相應(yīng)文件在起始地址偏移量開始燒錄即可。固件區(qū)通常燒錄用于系統(tǒng)啟動的驅(qū)動程序和用戶編寫的應(yīng)用程序。模型區(qū)實際上是K210 芯片特有的AI RAM 存儲器,能夠快速加載和處理模型文件。
圖3 K210 內(nèi)部Flash 分區(qū)結(jié)構(gòu)圖
K210 最小系統(tǒng)板上集成了攝像頭處理單元(DVP)及攝像頭排線接口,支持OV2460、OV2560 等多種攝像頭,支持RGB565 像素格式、QVGA 幀面尺寸、亮度、飽和度、自動增益模式設(shè)置。OV2460 是一款具有200 萬像素的CMOS 圖像傳感器,在K210 芯片固件上相應(yīng)的攝像頭驅(qū)動程序。攝像頭將采集的圖像數(shù)據(jù)傳輸?shù)教幚韱卧M(jìn)行預(yù)處理,然后作為輸入傳遞到Y(jié)OLOv2 模型中進(jìn)行目標(biāo)檢測。在完成攝像頭初始化配置后測試攝像頭能夠穩(wěn)定運行。
調(diào)用kpu.load(0x300000)加載模型文件,并將返回值填入YOLOv2 初始化函數(shù)kpu.init_yolov2(kpu_net,threshold,nms_value,Anchor_num,Anchor),其中kpu_net 即kpu.load 的返回值,threshold 為輸出門限值,nms_value 為輸出交并比門限值,Anchor_num 為Anchor 錨點數(shù),Anchor為模型訓(xùn)練前計算出來的錨點參數(shù)。
圖4、5、6是訓(xùn)練模型優(yōu)化前對模型進(jìn)行測試的識別結(jié)果,明顯看出識別準(zhǔn)確率不高,且有的樣本仍然識別失敗,無法正確框出檢測目標(biāo)。分析圖7 的loss 曲線圖發(fā)現(xiàn)經(jīng)過50 次Epoch 之后loss(藍(lán)色)、val_loss(橙色)曲線總體單調(diào)遞減呈收斂趨勢,數(shù)值處于0.6~0.8 之間,但局部區(qū)域出現(xiàn)明顯震蕩,存在過擬合現(xiàn)象,應(yīng)考慮增加樣本數(shù)量、減少特征無關(guān)像素的占比、提高訓(xùn)練集和測試集的關(guān)聯(lián)等等。
圖4 優(yōu)化前壓板投入狀態(tài)測試效果
圖5 優(yōu)化前壓板退出狀態(tài)測試效果
圖6 優(yōu)化前備用壓板測試效果
圖7 優(yōu)化前l(fā)oss、val_loss 曲線圖
如圖8 所示,在采取一系列措施進(jìn)行模型優(yōu)化后,loss(藍(lán)色)、val_loss(橙色)的曲線均呈收斂趨勢,且無明顯起伏,經(jīng)過30 次Epoch 之后數(shù)值均小于0.1。由圖9、10、11模型測試效果可看出,識別成功率和準(zhǔn)確率明顯提高。
圖8 優(yōu)化后loss、val_loss 曲線圖
圖9 優(yōu)化后壓板投入狀態(tài)測試效果
圖10 優(yōu)化后壓板退出狀態(tài)測試效果
圖11 優(yōu)化后備用壓板測試效果
圖12、13、14 是對三種不同狀態(tài)的壓板進(jìn)行實物識別之后在LCD 顯示屏反饋的效果,圖12 是壓板投入圖像,左下角顯示“yaban_on 0.8325”代表壓板投入狀態(tài)的概率為83.25%;圖13 是壓板退出圖像,左下角顯示“yaban_off0.9398”代表壓板退出的概率為93.98%;圖14 是備用壓板圖像,左下角顯示“yaban_none 0.9081”代表此為備用壓板的概率是90.81%。
圖12 壓板投入狀態(tài)檢測結(jié)果
圖13 壓板退出狀態(tài)檢測結(jié)果
圖14 備用壓板檢測結(jié)果
本文研究了一種由K210 芯片、OV2640 攝像頭和LCD彩色顯示屏組成的智能壓板狀態(tài)識別系統(tǒng)設(shè)計。該系統(tǒng)設(shè)計簡潔、資源利用率高,通過攝像頭對生產(chǎn)環(huán)境下保護(hù)裝置屏面的壓板進(jìn)行圖像采集,輸入到訓(xùn)練好的YOLOv2 算法模型中能夠有效針對壓板投退狀態(tài)進(jìn)行檢測識別,并將結(jié)果顯示在LCD 屏幕上。經(jīng)過多次現(xiàn)場識別測試,目前可以快速、準(zhǔn)確顯示多個角度下壓板的不同狀態(tài)。未來將以提高單次識別保護(hù)裝置的壓板界面的速度為導(dǎo)向,采用算力更大,性能更強的人工智能模塊和檢測算法,提高真實場景下單臺保護(hù)裝置壓板狀態(tài)的檢測速度和準(zhǔn)確率。