在我國電力系統中,配電站作為電網末端與用電設備相連的關鍵節點,與輸電、變電同樣是電力系統中的重要環節。隨著社會經濟的高速發展,以及配電站在整個電力網絡中的特殊地位,其數量也日益增加。
人工巡檢或一些傳統硬件設備的數據采集手段,由于成本或效率等問題,已經無法完美匹配當下數以萬計的配電站安防巡檢需求。并且,配電站屬于高電壓、高危場所,如何高效、安全地監管進入站房的工作人員及其施工區域是否合規等,更是一個重要問題。
當前的主流做法是采用安裝相關傳感器的方式進行監管,該方案存在成本高、無法存證等問題。因此,有必要研究與設計新的監管方法,在低成本的條件下實現證據鏈的保存和違規識別的高準確率。
在傳統硬件設備環境感知的基礎上,本文提出一種基于機器視覺的智能配電站安防巡檢解決方案。此方案可通過視頻監控設備,實現對配電站房內視頻流的視覺分析,通過YOLO(you only look once)卷積神經網絡進行目標檢測,從而實現安全帽佩戴檢測、工作服著裝檢測、越界預警識別等功能。
在實際應用中,絕大部分卷積神經網絡都是部署在中央處理器(central processing unit, CPU)和圖形處理器(graphics processing unit, GPU)上,然而CPU的高延時、低效率,GPU的高成本、高功耗的缺點決定了其難以在邊緣設備上實現。
張量處理器(tense processing unit, TPU)、網絡處理器(neural- network processing unit, NPU)作為特殊的專用集成電路(application specific integrated circuit, ASIC)方案,研發成本高,研發周期長,且完成后難以更改,難以適應更新迭代較快的神經網絡算法。因此,本文利用現場可編程門陣列(field programmable gate array, FPGA)的可定制性、可重構性及高并行度的獨特優勢,設計一套基于FPGA的快速推理模型。
1.1 YOLO模型
近些年來,有關目標檢測算法的研究取得了一定的進展。目前比較流行的算法可以分為基于候選區域的兩階段(two stage)目標檢測算法和單階段(one stage)目標檢測算法,包括YOLO、SSD(single shot multibox detector)等。相較于兩階段目標檢測算法,單階段目標檢測算法雖然在精度上略有不及,但其在模型參數量及檢測速度上均有一定優勢。
YOLO是一種基于深度神經網絡的對象識別和定位算法,是較為優秀的目標檢測架構之一,其在檢測實時性方面具有較大優勢。YOLO將生成候選區和對象識別這兩個階段合二為一,利用整張圖片作為網絡的輸入,直接在輸出層回歸邊界框的位置和所屬類別。
YOLOv4-tiny是在YOLOv4算法的基礎上進行壓縮設計的,其結構更為簡單,參數量只有原來的十分之一,這使YOLOv4-tiny的檢測速度獲得較大提升,使之部署在移動和嵌入式設備上成為可能。因此本文采取YOLOv4-tiny網絡進行目標檢測。而對于部分對速度、功耗、資源不敏感,對精度有較高要求的場景,可使用YOLOv4或其他卷積神經網絡。
1.2 數據集采集
由于配電站環境復雜多變,通過監控攝像頭和公開數據集獲取更為豐富的數據集。利用監控攝像頭進行視頻采集,并經過篩選及處理共獲得12928張圖片。此外,還從公開數據集中獲得9873張圖像文件。完成圖像采集后,使用開源項目LabelImg進行標定工作。
數據集各類標簽比例如圖1所示,通過對數據集標簽文件的分析可知,本次采集的數據集中共四種檢測目標,即穿著工作服的行人、未穿著工作服的行人、已佩戴安全帽的頭部、未佩戴安全帽的頭部。
圖1 數據集各類標簽比例
1.3 訓練結果
利用本次采集的數據集對YOLOv4-tiny模型進行訓練,訓練結果各項指標見表1。其中,Precision為準確率;Recall為召回率;MAP.5為將IOU(intersection over union)設置為0.5時,每個類別的AP(average precision)的平均值。
表1 模型訓練結果指標
利用訓練好的模型對驗證集圖片進行檢測,如圖2所示,能夠準確識別畫面中所出現的工作人員是否佩戴了安全帽,以及是否穿著工作服。若正確佩戴安全帽且穿著工作服,則不出現提示信息,使用綠框框出工作人員;若錯誤佩戴或未佩戴安全帽,則使用黃框框出對應工作人員頭部,并使用“Helmet”在頭部進行標注;若未穿著工作服,則使用黃框框出對應工作人員,并使用“Dress”在頭部進行標注。
圖2 效果展示
2.1 量化方案
神經網絡的訓練一般采用浮點數進行計算,然而浮點運算在硬件平臺上的實現比定點計算更加復雜,運算效率更低。為減少硬件資源消耗,提高系統推理速度,對YOLOv4-tiny模型進行8bits對稱線性量化。對稱線性量化具有高效、易于硬件實現的優勢,其具體量化公式為
2.2 系統架構設計
系統架構如圖3所示。CPU負責統籌協調任務并發送指令。PL端主要負責YOLOv4-tiny網絡的加速實現。由于片上存儲資源有限,采用片外數據方向寄存器(data direction register, DDR)協同存儲數據。
圖3 系統架構
PL端可通過配置直接存儲器訪問(direct memory access, DMA)實現輸入輸出數據的傳輸。指令存儲于隨機塊的存儲器(block random access memory, BRAM),其中包括操作模式、配置參數、存儲位置等指令。
Command Analyzer作為核心控制模塊,負責解析指令,并輸出相應的控制信號。池化模塊、上采樣模塊、卷積模塊等計算單元,從輸入緩沖區讀取輸入特征圖,利用數字信號處理(digital signal processing, DSP)資源進行相應計算,中間數據緩存于輸出緩沖區,計算完成后進行量化、激活,最終存入輸入緩沖區。
2.3 加速器優化設計
YOLO網絡經歷多次的卷積和池化層,其中包含大量的重復循環操作,因此需對數據排布與存儲、計算過程等方面進行優化與改進。本文考慮采用并行展開與流水線技術來提高并行度,增加系統吞吐量。并行展開是一種用面積換速度的設計方法,通過在硬件上重復設計多個計算單元,可以實現一定數量計算單元的并行運算。
卷積優化架構如圖4所示,卷積過程中,考慮到隨著網絡層數的增加,特征圖尺寸越來越小,而通道數越來越大,故若直接按照特征圖寬度和高度進行并行展開,當寬度和高度小于并行度時則無法充分利用重復設計的硬件單元,造成資源的浪費且無法達到加速的目的。因此選擇對輸入通道及輸出通道進行并行展開。充分利用DSP資源,提高系統并行度,從而增大系統吞吐量。
圖4 卷積優化架構
流水線技術廣泛運用于硬件架構設計中,它可以縮短運行周期并有效提升系統效率。本文對循環中的任務采取流水線技術優化,將原有卷積操作進行細分,以周期為單位細分讀數據、乘法、累加、寫數據等操作,使每個環節在每個周期都可以有連續的輸入與輸出。以卷積中的累加操作為例,如圖4中PE所示,通過加法器樹的設計,使每個周期并行展開的乘法結果都可以開始累加操作而不互相依賴,從而實現流水線設計。
為了評估本文的優化策略,使用Xilinx公司的ZCU102開發板進行驗證。性能評估見表2,DSP資源主要用于進行乘法運算,BRAM資源主要用于存儲輸入圖片、權重、量化參數等數據。為了提升并行度、加快檢測速度,各邏輯模塊消耗了較多的觸發器和查找表(look up table, LUT)資源。
系統時鐘頻率150MHz的情況下,整體平均性能達到228十億次運算/秒(giga operations per second, GOPS),峰值性能達到307GOPS,系統實現每秒傳輸幀數(frames per second, FPS)為68的檢測速度。
表2 性能評估
本文針對當下配電站存在的缺陷及其需求,設計了一套基于FPGA的智能配電站安防巡檢系統。
通過YOLOv4-tiny網絡實現安全帽佩戴檢測、工作服著裝檢測、越界預警識別等功能,達到了危險預警和異常告警的目的。在ZCU102 FPGA開發板上進行了加速器的實現與優化,通過并行展開及流水線操作兩方面進行加速優化,最終實現68FPS的檢測速度,整體平均性能達到228GOPS,峰值性能可達307GOPS。
考慮到配電網絡結構龐大多變,配電站環境較為復雜,可通過增加、修改數據集,利用神經網絡的自學習、自適應能力,重新訓練獲得網絡模型,并更新硬件系統相關參數本,以適應新場景的需求。
因此,本文提出的解決方案具備較強的通用性,能夠大幅降低整個電力網絡在配電站環節針對安防巡檢的投入成本,并有效提高整個電力網絡的運行效率,最大限度保障人員、設施安全,為配電站安防巡檢的智能化發展提供參考。
本文編自2022年第5期《電氣技術》,論文標題為“基于現場可編程門陣列的智能配電站安防巡檢系統設計與實現”,作者為陳標發、陳傳東 等。