1. 引言
随着乡村振兴进程的不断推进,农网变电站在保障能源供应方面扮演着重要的角色 [1] [2] [3] [4] 。由于农网变电站通常位于偏远地区,且十分受限于建设成本,以至于诸如监控图像传感器等检测装备缺失现象突出,安全管理意识也相对薄弱,诸如小孩攀爬等常无意闯入或非法入侵行为事故频发 [5] [6] [7] ,不仅会影响电能传输和运行安全造成经济损失,还会直接关乎人员生命安全。因此,针对农网变电站存在的问题现状,及时发现和防范非法入侵事件,是一个亟待解决的问题。
现阶段,农网变电站通常采用简单围栏实现物理隔离,在电子防护方面投入较少。为此,国内众多学者提出了基于视频技术的入侵检测方案,通过机器学习算法实现变电站非法入侵行为识别与探测 [5] [6] [7] 。该类方案大都采用传统的有线视频监控系统,如基于海康大华工业图像传感器,通过高性能的GPU或CPU实现关键特征提取和多类入侵行为识别,成本十分高昂且需要大宽带传输网络支撑。然而,农网变电站非法入侵通常仅为防范小孩攀爬和动物入侵,且实施十分受限于成本和有限的网络资源,故低成本和无线化视频检测终端必然是农网变电站入侵检测的最优途径 [8] [9] [10] [11] 。
针对上述问题,本文研究面向农网变电站的低成本变电站,聚焦低成本数字化视频检测终端研究,基于低成本WiFi SoC ESP32和OV2640,构建基于帧间差分入侵检测算法和OpenCV (Open Source Computer Vision)的人脸识别算法。此外,为推动检测终端上线数据上云,本文通过国产安路公司设计的FPGA AG1280Q48实现LTE-Cat.1等通信接口的拓展,实现入侵行为检测结果上云上线,以及远程与本地语音模块控制。相对于现有方案,该类技术可为现代化乡村电力系统的可靠运行提供有力保障,具有重要的应用价值和推广前景。
2. 系统原理
本文以ESP32和OV2640为基础,构建基于帧间差分的运动目标检测算法,在识别移动目标基础上实现人员合法性进一步识别,进而确认是否向指控中心发出预警信息。若一旦发现非法运动目标出现,该视频检测终端便会立即触发报警功能,通过LTE-Cat.1模块向云端发送对应的状态信息以期做进一步处理。为说明设计的合理性和有效性,本文将从电路及系统架构、移动目标检测和合法人员识别三方面介绍所设计的视频检测终端。
2.1. 电路及系统架构
本文以ESP32为核心,通过FPGA扩展相应的接口,实现视频流采集分析,并打通视频检测终端与云端数据共享通路,为检测终端软件系统远程升级和参数远程调优奠定基础,具体的电路结构如图1所示。
Figure 1. Circuit and system architecture
图1. 电路及系统架构
由图1可知,鉴于ESP32的IO有限性,本文采用国产FPGA AG1280Q48扩展对应接口。此外,本文采用OV2640图像传感器作为数据采集单元,该图像传感器由OmniVision公司生产,最大分辨率为200万像素,具有尺寸小与能耗低等特点,同时拥有影像处理器集成化功能。通过对应的IO扩展,ESP32可以调节该图像传感器的图像质量、数据格式和传输方式,并利用该图像传感器内置的伽玛曲线、白平衡、对比度和色度等图像处理模块优化视频流质量,提升图像处理效率。
此外,为实现数据实时上线,本文引入上海合宙公司生产的Air724UG通信模组,同时预留WiFi数据通信链路,使得终端数据可以远程上传云上线,确保农网变电站非法入侵行为及时上传。为制止非法入侵行为,本文设计的检测终端上预留了语音播报模块,确保入侵行为发生时实现声音提醒。由此可见,上述技术相互协作、集成,形成了一个具有高度自动化和智能化系统,从而为现代化乡村电力系统的可靠运行提供有力保障。
2.2. 移动目标检测
帧间差分算法是一种基于帧间差分的运动检测方法,它通过比较相邻视频帧之间的像素值差异来判断是否有物体运动。其原理是利用两个相邻帧之间的像素差异信息,结合阈值技术,来检测运动的目标。令在一个时间轴上第k帧的像素值为
,第k+1帧的像素值为
,则可以计算得:
(1)
(2)
其中
和
分别为第k帧和第k + 1帧的运动目标的数据;
和
分别是第k帧和第k+1帧的噪声数据。由公式(1)和(2)可计算出第k帧和第k + 1帧的差分图像
:
(3)
其中
是由运动的目标引起的图像变化数据;
是噪声数
据。为了过滤噪声数据,本文采用腐蚀滤波器对图像进行滤波处理。滤波后的数据可以根据检测阈值进行下一步判断,当差分图像值大于阈值时,则认为检测到运动的目标。
(4)
其中
为差分图像的最终输出结果;T为检测阈值,本文设置为20。如果输出结果为1则说明检测到目标,进而触发下一步的人脸识别算法。
2.3. 合法人员识别
为避免变电站维护人员作业期间误报,本文利用OpenCV计算机视觉库,通过人脸识别技术实现入侵行为进一步识别 [12] 。OpenCV由一系列C函数和少量C++类构成,实现图像处理和计算机视觉方面的众多通用算法。为提高检测精准度,本文利用OpenCV与HAAR级联算法实现人脸识别 [13] [14] 。
HAAR级联算法是一种机器学习算法,其中级联函数是从大量正面和负面图像中训练出来的。正图像是由人脸组成的图像,负图像是没有人脸的图像。在人脸检测中,图像特征被视为从图片中提取的数字信息,可以将一幅图像与另一幅图像区分开来。此外,OpenCV提供了两个应用程序来训练级联分类器opencv_haartraining和opencv_traincascade。分类器中包含一个分类函数,该函数中的参数由机器训练获得。训练开始时,所有训练集中的图片具有相同的权重,对于被分类错误的图片,提升权重,重新计算出新的错误率和新的权重。直到错误率或迭代次数达到要求。上述训练过程可通过以下公式表示:
(5)
(6)
其中,
表示第t次迭代时分配给第i个训练样例的权重,
表示第i个训练样例的标签,
表示第t次迭代时对第i个训练样例的分类器输出,
表示第t次迭代的加权分类误差,
表示归一化因子,
表示第t次迭代时分配给分类器的权重。为训练级联分类器,本文手动准备了训练所用的负样本图像,而正样本图像是使用opencv_createsamples程序创建。HAAR算法的核心步骤是特征提取,其流程如图2所示。
Figure 2. Feature extraction flowchart of HAAR
图2. HAAR特征提取流程图
在HAAR级联算法中,积分图像的计算是为了实现快速地计算图像中各个子区域内的像素和。HAAR特征对于图像的每个子区域都需要进行计算,并且每个子区域的大小和位置可能不同,因此需要高效的方法来计算这些子区域的像素和。积分图像的计算如下:
(7)
其中,
表示积分图像在位置
处的值,
表示原始图像在位置
处的值。由公式(7)可知,通过使用积分图像,可以避免重复的区域和像素计算,并且能够在常数时间内快速获得任何矩形区域的像素和。积分图像是原始图像的一个累加版本,其中每个像素的值等于其自身以及左上角所有像素之和,这使得像素和可以在常数时间内计算出来。
此外,由于一张图片绝大部分的区域都不是人脸,如果对图像的所有区域都进行特征提取,将会浪费大量的计算资源,为此本文在HAAR算法引入了cascade级联分类器 [15] 。cascade不是将所有特征都用在一个窗口,而是将特征分为不同的阶段,然后逐个阶段的应用这些特征。如果窗口在第一个阶段就检测失败了,那么就无需考虑剩下的特征。如果检测通过,则考虑第二阶段的特征并继续处理。如果所有阶段的都通过了,那么这个窗口就是人脸区域。由于被检测目标的大小不定,因此设置分类器具备按比例增大的能力。当小窗口移动完整一张待检图片而没有发现目标时,分类器大小自动调整并继续检测,直到检测到完整的人脸目标。最后在获得人脸图像中标注眼睛、鼻子和嘴巴位置参数数据,且通过欧拉距离实现人脸识别。
3. 算法实现
为确保移动检测与非法目标识别的实时性,ESP32作为主控将实时采集图像信息,并利用帧差法判断是否有移动目标闯入监测区域。为了滤出其它移动目标的干扰,本文将利用OpenCV人脸识别算法分析是否有人员入侵,若是则标注对应的人脸特征以生成人脸特征,然后在本地数据库中搜索合法人脸模型进行匹配,以此来判断是否有非法人员入侵,具体的实现流程如图3所示。
Figure 3. Implementation flowchart of intrusion detection method
图3. 入侵检测方法实现流程图
根据图3可知,本文设计的入侵检测方法实现步骤如下:1) ESP32通过图像传感器模块OV2640采集图像数据,并将其传输到 ESP32 芯片进行处理;2) 在图像预处理阶段,ESP32对图像进行灰度化或归一化处理,以提高后续的人脸检测准确率;3) 根据预处理后的图像将基于帧间差分算法实现移动目标检测,一旦检测到目标则触发人脸识别环节;4) ESP32利用OpenCV算法对移动检测到的图像进行分析和分类,以识别人脸并确定其位置和大小;5) 若检测到非变电站工作人员人脸信息,则触发报警机制。
部分关键代码如下:
# 打开图像传感器
camera = cv2.VideoCapture(0)
# 加载移动检测器
face_cascade = cv2.CascadeClassifier('data/haarcascade_frontalface_default.xml')
# 读取一帧图像
ret, frame = camera.read()
# 转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 遍历所有检测到的人脸,并标记出来
for (x,y,w,h) in faces:
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
# 是否是合法人员识别
cv2.imshow('Face Detection', frame)
# 非法人员入侵检测结果通过串口驱动LTE模块发送
uart.write(Detected {} face(s)\r\n.format(len(faces)))
根据上述代码可知,在一个无限循环中,农网变电站环境信息被不断被读取并转换为灰度图像,然后detectMultiScale()函数将对灰度图像进行移动目标检测,返回入侵人员的边界框坐标,并抓取人脸信息并用矩形标注出来。最后遍历存储在内在存储器中的人脸信息,以确认是否是合法的。若不合法,通过LTE-Cat.1模块内建的NTP (Network Time Protocol)网络时间协议获取的网络时间,并与入侵图像信息进行封装,再通过串口将数据发往LTE-Cat.1模块,进而通过运营商网络将数据传递至云端。
4. 系统测试
4.1. 移动检测性能分析
为验证本文设计的视频检测终端移动目标监测的可行性与有效性,本文选取了农网变电站进行实验,实际场景和检测结果如图4和图5所示。
Figure 4. Scenarios of unmanned intrusion into rural power grid substations
图4. 无人入侵农网变电站场景
Figure 5. Detection effect of someone invading rural power grid substations
图5. 有人入侵农网变电站检测效果
根据图4和图5可知,当所监测的农网变电站环境发生改变时,本文设计的视频检测终端内置的帧差法,可以精准度识别到移动物体是否进入监测区域。如图5所示,当有人员闯入农网变电站时,设本文设计的视频检测终端将捕捉人脸信息,并标注关键特征点,以此区分是人还是其它运动目标,确保诸如小动物等移动物体触发远程报警功能,进而降低虚警事件数。
鉴于OV2640可输出UXVGA (1600x1200)、SXVGA (1280x1024)、SVGA (800x600)和QVGA (320 × 240)等分辨率图像,故本文对不同分辨率下的移动入侵检测性能进行了评估。该实验中,实现人员将分别以5 km/h和15 km/h左右的速度走路和跑步进入监测区域,相关实验结果图6所示。
Figure 6. Effect of movement detection with different resolutions
图6. 不同分辨率移动检测效果
从图6可以看出,当采用1600 × 1200 (200万)像素图像作为帧差法输入时,虽然可活动较好的图像信息,但移动监测效果并非达到最优。经过实际测试发现,当采用1600 × 1200像素图像作为算法输入时,ESP32在采集每帧图像和计算背景差值的平均时间分别达到了120.12 ms和248.63 ms,以至于入侵人员快速跑步进入监测区域时,无法被ESP32所捕获关键特征而检测失败。此外,当采用分辨率为320 × 240的QVGA格式的图像作为算法输入时,4米范围内入侵检测的精准度高达100%,但随着距离的增加检测精准度呈现下降趋势。主要缘由是ESP32仅花费20 ms左右时间采集320 × 240分辨率图像信息,且计算处理时间也压缩至60 ms左右,故可以更快速而准确的检测跑步通过监测区域的入侵人员。
此外,农网变电站通常不足10平方米,因此,5米的检测半径完全满足实际应用场景监测需求。综上,虽然更大的分辨率可以提供更为清晰的图像信息,但受限于ESP32的运算速度和存储资源,必然带来更多的时间开销,进而影响移动入侵检测的性能,故采用分辨率为320 × 240的QVGA格式图像作为输入,可满足农网变电站入侵监测的现实需求。
4.2. 人脸识别性能分析
农网变电站必然有人员定期维护以确保电网能量供给的稳定性,若能将定期维保人员的入侵行为过滤将大幅提升后台管理人员报警事件审核效率。为此,本文将实时抓取人脸图像信息,将检测到的人脸信息和数据库中的变电站工作人员的人脸信息进行匹配。如果匹配成功,则认为该人员是合法且不报警。若匹配失败则认为该人员是非法的,随后ESP32将包含人脸信息和网络时间的字符串保存并报警。
为此,本文对所提人脸识别算法性能进行实验。本次实验中,OV2640输出图像的分辨率为320 × 240,实时识别效率理论值为5帧/秒;人脸与检测终端的距离为50 cm,实验者在检测终端前驻足最长5秒,若超时未输出结果则认为识别失败。相关实验结果如下图7所示。
根据图7(a)与图7(b)可知,本文建构的人脸识别算法能够精准的截取人脸框,通过抓取人脸眼睛、鼻子和嘴巴五个面部关键点的位置特征,与训练后的数据比较识别人脸,进而实现Hello User 0 (合法巡检人员)精准输出。然而,通过图7(c)可以看出,当用口罩对口鼻进行覆盖时,人脸识别算法因无法抓取人脸关键特征而导致识别失败。鉴于疫情现已结束,口罩遮蔽下的人脸识别问题将不在突出。此外,根据图7(d),对于没有录入到检测终端的人脸,本文提出的人脸识别算法也将给出告警信息。
为了验证人脸识别的鲁棒性,本文也分析了人脸与图像传感器OV2640的夹角对识别性能的影响,具体的实现结果如图8所示。
Figure 8. Relationship between recognition accuracy, average time, and angle
图8. 识别精准度和平均时间与夹角关系
通过图8可知,人脸识别的精准度与人脸角度可能相关,随着人脸与图像传感器夹角增大,人脸识别的精准度下降,当人机夹角达到90˚时,因双眼间距特征难以被图像传感器所捕获,进而导致检测精准度已经不足20%。此外,根据图8也可知,在15˚范围内人脸识别平均时间为1.7秒,与理论识别效率为5帧/秒存在较大差距,导致上述的是因为人脸在图像传感器前难以保持绝对稳定,以至于人脸特征提取存在一定误差。为此,在实际应用中,应确保人脸与图像传感器的角度不大于45˚且要保持相对稳定,才可确保人脸识别的整体性能。由此可见,本文设计的视频检测终端,可以有效地保护变电站免受未经授权的人员进入的威胁,提高农网变电站的安全性和可靠性。
5. 结束语
本文针对农网变电站安全管理相对薄弱的问题,提出了一种低成本非法入侵视频检测终端设计方法与原型系统,探明了帧间差分算法和OpenCV算法在低成本ESP32芯片上构建入侵检测与报警机制的可行性和有效性。实验表明,该视频检测终端能够有效地检测到非法人员入侵行为,并能通过人脸识别技术降低虚警率。与传统的视频监控系统相比,本文所提出的方案具有成本低、可靠性高和远程操作等优势。该系统可为现代化电力系统的可靠运行提供了重要保障,有望在乡村电网规模不断增长的背景下得到广泛应用。鉴于乡村变电站环境复杂,存在低光线条件或者目标遮挡等状况,未来将进一步改进算法,以提高检测准确率和鲁棒性。
基金项目
本文由国网信通产业集团两级协同研发项目《创建国家级新型电力系统人工智能开放创新平台的关键技术研究及应用》科技项目资助,编号YR-DLL-BJ-RJKF-221014-03219。