劉云厚,呂強(qiáng),張艷杰
(國(guó)網(wǎng)技術(shù)學(xué)院,山東 濟(jì)南 250002)
針對(duì)變電運(yùn)檢工作中人工智能安全防控的需求,基于深度學(xué)習(xí)技術(shù),研究適應(yīng)變電站安防場(chǎng)景工作人員多攝像頭目標(biāo)檢測(cè)定位、目標(biāo)跟蹤、目標(biāo)識(shí)別的機(jī)器視覺算法,形成變電站場(chǎng)景的低功耗、輕量化機(jī)器視覺監(jiān)視方案[1-2]。研制變電站場(chǎng)景中對(duì)安全工器具、人員操作行為等目標(biāo)進(jìn)行跟蹤識(shí)別的在線機(jī)器識(shí)別的智能穿戴設(shè)備及后臺(tái)安防分析系統(tǒng),通過(guò)智能穿戴設(shè)備對(duì)變電站現(xiàn)場(chǎng)操作跟蹤識(shí)別,具備變電站現(xiàn)場(chǎng)操作跟蹤識(shí)別、安全預(yù)警與評(píng)價(jià)考核功能,達(dá)到變電站安全監(jiān)護(hù)目標(biāo)[3-5]。
變電運(yùn)檢工作中違規(guī)場(chǎng)景主要包括:①通用場(chǎng)景下的通用違規(guī)動(dòng)作識(shí)別,如未按規(guī)定穿戴絕緣手套、未按規(guī)定佩戴安全帽;②結(jié)合特定復(fù)雜業(yè)務(wù)場(chǎng)景下,如誤入間隔,完成指定動(dòng)作的識(shí)別(500 ms 以內(nèi))。
系統(tǒng)主要技術(shù)流程如圖1 所示。
圖1 變電站違規(guī)技術(shù)檢測(cè)技術(shù)路線圖
本文重點(diǎn)研究誤入間隔行為檢測(cè)。誤入間隔行為檢測(cè)技術(shù)的關(guān)鍵在于將數(shù)據(jù)操作票系統(tǒng)與間隔銘牌識(shí)別功能相結(jié)合。根據(jù)當(dāng)前間隔銘牌的識(shí)別結(jié)果與操作票系統(tǒng)需要的正確間隔比對(duì),進(jìn)行誤入間隔行為的判定。
由于變電站內(nèi)部通信機(jī)制的特點(diǎn),站內(nèi)固定攝像頭無(wú)法與具體的操作票結(jié)合,為了與業(yè)務(wù)場(chǎng)景更加緊密結(jié)合,需要將操作票接入到整個(gè)系統(tǒng)中。通過(guò)預(yù)留接入生產(chǎn)管理系統(tǒng)(PMS)操作票的接口,實(shí)現(xiàn)操作票的下發(fā),在操作票終端中集成誤入間隔檢測(cè)識(shí)別算法,進(jìn)行綜合判定。
圖2 為操作票任務(wù)示意,其中 “220 kV 出線Ⅰ”表示正確操作間隔。實(shí)時(shí)識(shí)別部分的關(guān)鍵在于銘牌文字識(shí)別算法。
圖2 操作票任務(wù)示意圖
銘牌的文字識(shí)別將分為2 個(gè)步驟完成:①采用單目標(biāo)多框檢測(cè)(SSD)算法將銘牌區(qū)域進(jìn)行識(shí)別;②在銘牌區(qū)域內(nèi)完成文字的識(shí)別。
與通用的光學(xué)字符識(shí)別(OCR)相比,本文OCR的主要特點(diǎn)在于:①銘牌在視野范圍內(nèi)存在一定的變形;②需要考慮不同的反光情況;③銘牌數(shù)據(jù)中存在區(qū)分較為困難的字符,如1、l(字母L 的小寫)、Ⅰ(羅馬字母1)等。銘牌文字示意如圖3 所示。
圖3 銘牌文字示意圖
本文采用的算法為:①針對(duì)所有可能在銘牌上出現(xiàn)的文字內(nèi)容和字體規(guī)范,生成500 000~800 000 行的訓(xùn)練數(shù)據(jù),同步加入畸變、噪聲,形成符合實(shí)際情況的訓(xùn)練樣本。②采用卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(CRNN)為OCR 任務(wù)的骨干網(wǎng)絡(luò)。OCR 的任務(wù)具有圖像中目標(biāo)識(shí)別和不定長(zhǎng)的文字識(shí)別兩大特點(diǎn)。傳統(tǒng)圖像目標(biāo)識(shí)別一般采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)方法,而文字識(shí)別一般采用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)任務(wù)。結(jié)合了這2 種方法的優(yōu)點(diǎn),即采用CRNN 的方法。在CRNN 的底部,卷積層自動(dòng)從每幅輸入圖像中提取一個(gè)特征序列。在卷積網(wǎng)絡(luò)之上,構(gòu)建一個(gè)遞歸層,對(duì)卷積層輸出的每一幀特征序列進(jìn)行預(yù)測(cè)。在頂部的轉(zhuǎn)錄層,將遞歸層每幀的預(yù)測(cè)轉(zhuǎn)換成標(biāo)簽序列。③訓(xùn)練數(shù)據(jù)特點(diǎn)與數(shù)據(jù)增廣。
訓(xùn)練數(shù)據(jù)樣例如圖4 所示。
圖4 訓(xùn)練數(shù)據(jù)樣例
變電站的銘牌中大量存在1、Ⅰ、Ⅱ、Ⅲ這些易混淆的字符,為了提高Hard Samples 的正確率,采取以下3 種措施:①采用數(shù)據(jù)增廣辦法擴(kuò)展數(shù)據(jù),數(shù)據(jù)增廣是深度學(xué)習(xí)中常用的技巧之一,主要用于增加訓(xùn)練數(shù)據(jù)集,讓數(shù)據(jù)集盡可能多樣化,使得訓(xùn)練的模型具有更強(qiáng)的泛化能力;②在數(shù)據(jù)增廣過(guò)程中,重點(diǎn)關(guān)注1、Ⅰ、Ⅱ、Ⅲ這些易混淆的字符;③在模型的訓(xùn)練中,引入困難樣本挖掘機(jī)制Hard Example Mining,對(duì)于模型一直學(xué)不會(huì)的樣本,將其扔進(jìn)網(wǎng)絡(luò)再繼續(xù)訓(xùn)練,從而加強(qiáng)分類器的判別能力。
根據(jù)上文的算法設(shè)計(jì)了試驗(yàn),以視頻為基礎(chǔ)數(shù)據(jù),需要錄制約20 h 的原始有效視頻數(shù)據(jù),篩選出20 萬(wàn)~30 萬(wàn)張工作場(chǎng)景數(shù)據(jù),然后采用數(shù)據(jù)標(biāo)注平臺(tái)進(jìn)行標(biāo)注,采用其中1/2 的數(shù)據(jù)用于訓(xùn)練,剩余數(shù)據(jù)用于測(cè)試。銘牌文字識(shí)別結(jié)果如圖5 所示。
圖5 銘牌文字識(shí)別結(jié)果
算法統(tǒng)計(jì)結(jié)果如下。
測(cè)試條件:標(biāo)準(zhǔn)測(cè)試集上的字符識(shí)別率為99%;單次識(shí)別時(shí)間不超過(guò)100 ms;測(cè)試集樣本數(shù)大于等于10 000,待識(shí)別目標(biāo)有效像素?cái)?shù)不小于8 000。
測(cè)試結(jié)論:測(cè)試樣本數(shù)2 萬(wàn),正確識(shí)別數(shù)為19 900 個(gè),識(shí)別準(zhǔn)確率為99.9%。
根據(jù)行業(yè)實(shí)時(shí)計(jì)算標(biāo)準(zhǔn),端側(cè)算法性能超過(guò)10 fps(單幀運(yùn)算時(shí)間不超過(guò)100 ms)可以認(rèn)為是實(shí)時(shí)計(jì)算,本研究采用驍龍865 平臺(tái)。
深度神經(jīng)網(wǎng)絡(luò)(DNN)已成為當(dāng)今機(jī)器智能的關(guān)鍵推動(dòng)因素。近年來(lái),DNN 系統(tǒng)的一個(gè)趨勢(shì)是將預(yù)測(cè)管道從云數(shù)據(jù)中心轉(zhuǎn)移到終端設(shè)備(例如智能手機(jī)、可穿戴設(shè)備、物聯(lián)網(wǎng)等)。通過(guò)在終端設(shè)備上部署DNN,可以更好地保護(hù)用戶數(shù)據(jù)隱私以及降低不必要的網(wǎng)絡(luò)傳輸,甚至在無(wú)公用網(wǎng)絡(luò)的情況下仍然可以實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法。完成設(shè)備上DNN 的關(guān)鍵部分是推斷性能(延遲和吞吐量),給定大多數(shù)設(shè)備的硬件資源受到嚴(yán)格限制。這樣的任務(wù)不能部署到云/邊緣服務(wù)器,因?yàn)槌脱舆t要求以及潛在的電磁干擾,均由于低延遲要求和數(shù)據(jù)隱私問題無(wú)法利用遠(yuǎn)程服務(wù)器的計(jì)算資源。在通常情況下,較寬較深較大的模型往往比較窄較淺較小的模型精度要高,但是較寬較深較大的模型對(duì)計(jì)算資源要求更高,而現(xiàn)在模型應(yīng)用越來(lái)越傾向于從云端部署到邊緣側(cè),受限于邊緣側(cè)設(shè)備的計(jì)算資源,不得不考慮設(shè)備存儲(chǔ)空間(Storage)、設(shè)備內(nèi)存大小(Memory)、設(shè)備運(yùn)行功耗(Power)及時(shí)延性(Latency)等問題,特別是在移動(dòng)終端和嵌入式設(shè)備等資源受限的邊緣側(cè)應(yīng)用場(chǎng)景中更加需要進(jìn)行優(yōu)化。因此,模型量化應(yīng)運(yùn)而生[6-7]。
本文考慮在端側(cè)直接將算法進(jìn)行優(yōu)化和部署。模型量化即以較低的推理精度損失將連續(xù)取值(或者大量可能的離散取值)的浮點(diǎn)型模型權(quán)重或流經(jīng)模型的張量數(shù)據(jù)定點(diǎn)近似(通常為int8)為有限多個(gè)(或較少的)離散值的過(guò)程,其是以更少位數(shù)的數(shù)據(jù)類型用于近似表示32 位有限范圍浮點(diǎn)型數(shù)據(jù)的過(guò)程,而模型的輸入輸出依然是浮點(diǎn)型,從而達(dá)到減少模型尺寸大小、減少模型內(nèi)存消耗及加快模型推理速度等目標(biāo)。
在Android 操作系統(tǒng)上實(shí)施了本文算法端到端的算法量化。支持設(shè)備上CPU、GPU 和DSP 推理的運(yùn)行時(shí),考慮到移動(dòng)CPU 包含大小核心問題,使用POSⅠX APⅠ在大核心上運(yùn)行推理。此外,考慮到許多DNN 推理任務(wù)異步運(yùn)行,所以建立一個(gè)Thread Pool 和一個(gè)Ⅰnference Finish Listener 來(lái)控制推理執(zhí)行作為策略順序。系統(tǒng)有3 個(gè)DNN 級(jí)聯(lián),涉及6 個(gè)不同的子模型、2 個(gè)變電站實(shí)際工作中的視頻流和2 個(gè)終端設(shè)備。系統(tǒng)算法運(yùn)行的工作流圖如圖6 所示。
圖6 算法運(yùn)行的工作流圖
算法優(yōu)化結(jié)果如表1 所示。對(duì)照實(shí)時(shí)計(jì)算的要求,單幀運(yùn)算時(shí)間沒有超過(guò)100 ms,滿足實(shí)時(shí)運(yùn)行的基本條件。
表1 算法單幀性能優(yōu)化結(jié)果
本文分析了變電運(yùn)檢工作中人工智能安全防控的需求,深入研究了誤入識(shí)別間隔的系統(tǒng)結(jié)構(gòu)與算法實(shí)現(xiàn),在移動(dòng)端側(cè)計(jì)算芯片上實(shí)現(xiàn)了算法的實(shí)時(shí)計(jì)算。這將為變電站實(shí)時(shí)行為檢測(cè)打下堅(jiān)實(shí)的基礎(chǔ),具有繼續(xù)深入研究的價(jià)值。