許俊杰,蔡凡,林城浩,檀鴻亮
閩南理工學院,福建 石獅 362700
我國經濟快速發展,對于電力的需求也在逐年增加,電力設施出現故障的幾率也隨之增加[1]。在實際的電力施工和檢修工作中,電力線路受到外力或者其他因素的破壞,此時需要進行檢修和維護,而安全應該時刻擺在第一位。工作人員除了應該提升安全意識外,外部環境的監測也十分重要。特別是高壓設備在維護、維修期間,是不允許動物和人靠近的[2]。因此設計一個設備,能夠動態識別人體和動物,并且發出警報,作為安全監督的一種輔助手段,是非常有必要的。該項目使用機器視覺技術,通過攝像頭動態識別人體和動物,并且發出警報,聯動其他設備進行報警信息的傳遞。使用的技術包括機器視覺、無線組網技術、物聯網技術等。當檢測端監測到人或者動物靠近時,設備端通過無線組網進行報警提醒現場執勤人員。設備便攜,易安裝,一定程度上提升工作人員的安全系數。
該裝置使用機器視覺替代人工觀測,適合戶外工作使用。該裝置的硬件主要由發送端和接收端組成。采用多對一的組網方式,多個發送端發送數據到接收端。發送端包含K210攝像頭模塊(驗證模式下可接液晶屏方便觀察,實際應用則無需液晶屏)、微波雷達模塊、鋰電池以及主控芯片和無線模塊。接收端包含高音蜂鳴器、鋰電池、語音播放模塊、液晶屏、主控芯片和無線模塊。為增加系統的可靠性,每個發射端配置了微波雷達,主要監測移動物體,與視覺方案形成雙重檢測。在顯示端采用液晶屏顯示監測到的靠近的動物種類,同時蜂鳴器和語音喇叭提醒工作人員。
系統的運作方式:將多個發送端以一定高度放置在工作地點四周,接收端由一人手持看管之后便可以進行戶外作業。若有運動物體靠近,經過微波雷達探測到異常信號后,通過K210芯片執行目標檢測,得出接近物是人或者牛、羊等動物,隨后數據通過發送端的無線模塊發送到接收端,接收端接收到信號后,蜂鳴器會發聲警示工作人員,同時語音播放所接近物的名稱,液晶屏顯示接近物的象征性圖片與文字,多重示警確保工作人員得到警報信息。考慮到設備需要便攜和長續航,發送端與接收端均使用可拆卸鋰電池供電。由于采用視覺方案,該系統適用于戶外光線條件較好的場合,另外,如果不使用視覺檢測功能,也可以單獨使用微波雷達傳感器實現運動物體的接近檢測。
發送端電路原理圖設計如圖1所示。

圖1 監測發送端硬件設計圖
基于低功耗考慮,發送端采用STM32L0101 C6T6作為主控芯片。該芯片具備2個串口和12位ADC接口。STM32L010C6T6使用了超低功耗的Arm Cortex-M0+MCU,并具有32-KB Flash存儲器和32MHz CPU。供電部分由12V鋰電池經過LM2596進行穩壓,再由680uf電容與100nf電容進行濾波,得到5V電源。由于攝像頭部分耗電較大,所以采用了MOS管控制攝像頭電源,當微波雷達檢測到有物體靠近時,MOS管導通,輸出5V電壓供給攝像頭模塊運行,攝像頭模塊包含1個OV2640 CMOS攝像頭和1個使用RISC-V指令的K210芯片,該芯片內部包含1個神經網絡加速KPU[3],能夠以較快速度執行卷積、批歸一化、激活以及池化的基礎運算。在1W的功耗條件下,該KPU算力能達0.8TFLOPS[4]。通過AMS1117-3.3芯片進一步降壓,對主芯片NRF無線模塊3.3V器件供電。電池電壓檢測電路使用了簡單的電阻分壓檢測,為了確保精確性,增加C2濾波電容,分壓電阻使用精度為1%。當電池電量過低時,蜂鳴器響起提醒使用者電量不足。
接收顯示端硬件原理圖設計如圖2所示。

圖2 接收端電路設計圖
接收端采用與發送端相同的主控芯片、電源芯片,接收端的2.8寸LCD顯示屏采用3.3V供電。電池采用12V、2800mAH鋰電池。
發射端程序設計思路:設定微波雷達輸出信號為中斷信號,當中斷信號觸發時,程序流程如圖3所示。

圖3 發射端程序流程圖
其中,K210攝像頭模塊與主控芯片的通信方式為串口通信,通信協議自定義,格式為幀頭+報警發射端編號+移動物體編號+電池電量+檢驗和。例如4號發射端檢測到有人靠近,此時電量為飽滿狀態(100%),則K210攝像頭通過串口發送給主控芯片的數據為0XFF 0X04 0X01 0X64 0X6D。幀頭不算入校驗和字節。如有需要,后續可增加字節發送目標出現在攝像頭中位置的坐標。
其中,發射端的攝像頭模塊內部K210芯片識別目標使用了YOLOv2算法。YOLOv2是YOLO(You Only Look Once)系列目標檢測算法中的第二版[5]。實現該功能的流程為準備數據集,圖片標注,圖片訓練,導出模型,轉化為K210模塊可運行的Kmodel模型,加載模型進行圖片推理。將不同分辨率的圖片統一調整分辨率為224*224,使用LabelImg軟件進行標注。該項目使用的數據集圖片為800張,標注的類別有Person、Cow、Sheep、Dog四類,每一類圖片200張。為了減少出現過擬合現象,得到泛化能力更好的模型,使用imgaug庫對數據集進行增廣,增廣方法并未完全按照imgaug庫中提供的方法,選擇性使用了包括用高斯模糊,均值模糊,中值模糊,銳化處理,加入高斯噪聲,將1%到10%的像素設置為黑色,每個像素隨機加減-10到10之間的數,像素乘上0.5或者1.5之間的數字,將整個圖像的對比度變為原來的一半或者二倍等以上的方法。
數據集中,目標物體已有標注好的目標框,錨框是對于預測目標框的潛在候選框,為使錨框長寬形狀更接近真實的目標框,根據YOLOv5的算法采用k-means聚類方法形成新的錨框參數。本次使用TensorFlow2.5.1框架訓練數據集,訓練結束后導出.h5格式的模型,將模型轉為.tflite格式,在NNCase中編譯模型為.kmodel格式后通過復制到SD卡上運行。K210芯片支持運行MicroPython代碼。
接收端程序設計思路:接收端默認處于接收狀態,當檢測到無線數據后對數據解析,執行對應的報警程序。考慮到極端情況下,多個發射端同時發送數據導致沖突,因此在發送端和接收端定義握手協議。當發射端發送一次數據后,無線模塊轉為接收狀態,此時等待接收端回饋數據。接收端接收到發射端發來的數據時,轉為發射狀態,回饋2個字節,幀頭+接收到的發送端編號,之后再轉為接收狀態。當發送端發送數據以后,5秒鐘之內未接收到回饋數據,則認為數據沖突或者丟失,隨機延時100~500ms之后重新發送。當接收端開機之后10分鐘內未接收到發射端的數據,則認為發射端設備故障,在接收端液晶屏上顯示。
接收端顯示靠近的物體類型、例如人或牛。同時顯示發射端的編號,例如2號發射端檢測到人以后發射信號,接收端顯示屏顯示人的圖片且顯示數字2(表示移動物體在2號發射端方向),蜂鳴器報警、語音喇叭播放相關的語音信號。
訓練損失在深度學習中是衡量網絡模型性能優良的重要指標[6]。本次訓練網絡訓練超參數設置如下:批次大小為8,迭代次數為300,學習率為0.001,顯卡使用RTX1080Ti,8G顯存,基于本數據集訓練得到的Loss值如圖4所示。

圖4 Loss值
當迭代次數在100次時,Loss值基本不再明顯下降,網絡達到收斂效果,在驗證集中最高Accuracy達到100%,當然驗證集中樣本數量較少也會導致Accuracy數值偏高。
系統實物圖如圖3所示,其中紅色圈圈內的設備表示發送端,方框內的設備表示接收端。

圖3 系統實物圖
為探究裝置的有效性,確保裝置在戶外能夠運行,進行了如下測試(表1)。測試時間為下午4點左右,環境為空曠操場。由于牛、羊、狗等家畜不方便進行實驗測試,因此使用打印的彩色照片,以人手持出現在鏡頭前的方式作模擬,由于是照片模擬,與實際生物的大小差別較大,因此不對人以外的家禽做檢測距離測試,只做識別測試。測試發送端A和B以及C以“Y”形放置,接收端放置于三個發送端中心,每個種類測試100次識別效果。

表1 目標檢測測試
測試中,微波雷達可以在8米范圍內有效檢測到移動物接近。測試結果可知,攝像頭可以在5米范圍內識別目標準確率達到91%,當距離為8米時較難有效識別目標物體,主要原因是光線和圖片采集質量導致的,光線原因是所有采用視覺方案遇到的共性問題,圖片質量則和芯片的計算能力以及攝像頭參數相關,因此根據應用場景,如無需對接近物做分類識別,則可依靠微波雷達作為接近物監測的判斷條件。另外,測試的準確率很大程度依賴于模型,因此數據集的質量也對檢測效果有較大影響。
本文對區域安全監測系統的整體硬件結構進行了說明,描述了目標識別的過程,最終通過實驗測試驗證了系統的穩定性和準確性,在特定環境下具備一定的市場應用前景。目前系統實現了區域安全檢測功能,后續還可豐富功能,例如將圖像信息發送到云端、記錄接近物的種類情況等功能。