基于树莓派的智能监控系统

基于树莓派的物联网监控系统

摘要

proposed system描述了一种使用树莓派和摄像头开发的监控系统,该系统持续监控某个高度安全区域。当系统检测到与前一帧相比出现运动变化(人体运动)时,便会开始录制视频,并将其主要存储在内存中,同时也会存储在云中(原因在于即使入侵者试图破坏系统,其图像/视频仍会保存在云存储中),用户将收到来自系统的警报邮件,提示“检测到人体运动”,并附上捕获的图像。系统包含本地嫌疑人的面部特征数据库,将其与触发系统人员的面部特征进行比对,并通过实时图像处理准确识别所检测到的人脸;即使人员移出画面范围,系统也能通过安装在伺服电机上的摄像头持续跟踪人脸。当入侵者试图破坏系统时,系统会启动蜂鸣体型报警。系统允许用户远程访问摄像头,以查看实时视频流输出并控制摄像头的旋转。

在本项目中,分析了多种已有的监控系统,并利用树莓派开发了便携式监控系统的方法。采用了用于面部识别和人脸识别的图像处理方法。

基于多种图像处理技术的研究表明,Haar级联和局部二值模式是适用于实时图像处理的合适算法。为了实现更好的监控,引入了人脸跟踪功能,可在整个区域内持续跟踪被检测到的人脸,即使人员离开摄像头画面范围也能继续跟踪;同时引入了通过物联网对摄像头进行远程访问和控制的功能。

关键词 树莓派 Camera模块 IoT监控与控制 云上传 Face匹配 Face跟踪

1 引言

室内监控是健康与安全框架领域中最关键的部分。监控的重要性在于通过观察人们的行为、活动或其他变化的数据,以达到影响、管理、协调或保护他们的目的。这类系统通常应用于家庭、办公室、工厂或车辆的监控和图像识别;但该系统需要更好的核心支持,因为它必须处理多个证据点的实时图像,这与嵌入式系统的一些优势(如低功耗和低成本)存在冲突。proposed system对政府和执法部门极为有用,可用于维持社会控制、重新组织和监测威胁,以及预防/调查犯罪活动。

视频监控系统在满足来自各个方面安全需求方面发挥着极其不可或缺的作用。盗窃和入室盗窃一直困扰着普通居民,特别是居住在大城市的居民。视频监控对于执法部门调查和预防犯罪活动、识别和监控威胁极为有用。任何监控系统的基本框架都包括:分析公众的需求,根据现有硬件和技术评估系统成本,审查选择方案,最后制定安装计划。每个家庭业主都有必要考虑加装家庭安防系统,因为在大城市中,入室盗窃、偷窃和谋杀已成为常态 [1]。

2 现有系统

本章介绍了现有监控系统的详细信息。此外,这一概述有助于使监控系统项目更加完善。一些研究在某种程度上与proposed system类似,但它们存在一些局限性,例如可能成本较低但效率不高,或者效率较高但实现起来更为复杂。此外,类似的项目或平台、微控制器、操作系统、传感器、输入/输出设备以及控制机制为提高开发人员的生产力提供了知识基础。以下文献综述中解释了相关的人脸检测、人脸识别和人脸跟踪技术。

森蒂库马尔等人[2]:在这项工作中,介绍了树莓派的特性以及仅使用树莓派自带的摄像头模块进行图像采集的过程;本工作未包含其他功能。这被视为构建安防系统的基础和初步工作,因为安防系统的首要任务是在嵌入式设备上采集图像。

桑贾娜·普拉萨德 等人[3]指出,通过使用树莓派作为主要嵌入式设备,在系统中创建VNC服务器,并将实时视频流传输到互联网网页,从而实现远程监控;随后,可通过便携式移动设备上的网页对窗口进行监控,以确保接收端的身份验证和可靠性;该系统使用普通网络摄像头来捕获图像。这项工作似乎并非一个高效的监控系统,因为它未涉及图像处理和远程控制功能,但该工作中关于连接到树莓派的摄像头的远程监控部分值得观察和研究[3]。

3 proposed system

proposed system 涉及从数据(即图像)中提取特征的实时数据采集与分析。树莓派2B型号开发板能够高效地逐帧处理多张图像。图像处理单元向树莓派发送指令,控制与系统连接的伺服电机进行倾斜运动,该电机带动固定在其上的摄像头转动。最初使用树莓派本身进行实时图像处理测试,但在后续实现过程中发现,树莓派在运行实时人脸识别循环时存在困难,导致数据处理延迟;由于本系统需要实现实时性,因此采用了另一种方案:在 Linux平台核心上执行图像处理,并将人脸跟踪值传输给树莓派以控制其伺服电机完成相机倾斜操作。

否则,传感器的处理、图像上传到云、使用超声波传感器进行持续的距离/接近监测以及摄像头实时视频流的远程访问、监控和控制等所有功能均由树莓派系统本身完成。该系统属于实时数据采集、数据处理和控制系统。

采用了一种新的图像处理技术用于人脸检测、人脸识别与跟踪,该技术基于开源计算机视觉(OpenCV)。大部分编码工作借助OpenCV库完成。编程采用Python语言,该语言用户友好,有助于高效地解决错误。本系统使用 OpenCV 2.7.9库与Python配合[4]。

4 设计方法论

该监控系统通过以下给定步骤进行图像处理操作:

  • 被动红外传感器(PIR)用于人体检测。当传感器检测到人体时,系统被启动。摄像头被触发,开始拍摄照片和图像,并将其保存在系统以及云/邮箱中。为了发送电子邮件,需导入“import smtplib”。简单邮件传输协议(SMTP)是一种处理电子邮件发送及在邮件服务器之间路由电子邮件的协议。
  • 系统通过OpenCV包中的图像处理算法Haar级联和局部二值模式直方图执行人脸检测和人脸识别技术。该算法经过修改,当存在多张人脸时,系统将不允许访问以控制系统 [4]。
  • 系统将检测到的人脸与预定义人脸模式数据库进行匹配,人脸被标记在一个矩形框内,矩形框上的预定义标签会显示正确识别的人脸,否则标记为“未知”。
  • 对于人脸跟踪,移动人脸的图像位置由图像处理平台(即安装了OpenCV包的Linux系统)通过串行通信发送至树莓派。
  • 图像跟踪通过获取图像的中心点实现。矩形框的边为 x1, x2, y1, y2。图像的中心x位置通过函数(x1+ x2)/2计算得出;同理,中心y位置通过(y1+y2)/2获得。
  • 由于摄像头设置为水平旋转,因此仅需中心 x值来确定水平位置。中心x值与移动物体的读取值之间的差即为水平位置。根据中心x位置和移动物体的读取值,安装在伺服电机上的摄像头会发生倾斜。实际上是伺服电机根据从移动物体获得的水平位置值进行倾斜,安装在其上的摄像头随之相应倾斜。伺服电机将人脸位置的角度转换为电信号PWM占空比,以按照倾斜位置进行旋转。
  • 树莓派的摄像头可以通过物联网使用其IP地址进行远程登录,以监控现场情况。当树莓派中安装了VNC服务器软件包时,它可充当服务器。在树莓派上安装的Apache服务器使用户能够在网页中创建控制按钮,通过物联网远程手动控制伺服电机。
  • 超声波传感器用于测量入侵者与系统之间的距离;如果距离非常近(例如 5厘米),则会触发入侵者警报器。

整个设计过程以flow chart 的形式展示在图 1。

示意图0

5 系统算法描述

5.1 人脸检测—Haar级联算法

类Haar特征检测算法是OpenCV库的一部分。摄像头捕获的图像经过处理后,基于Haar级联算法获得用于人脸检测的结果数据。最简单的人脸检测就是在图像中找到人脸。

“级联”是一系列组合起来形成分类器的“类Haar特征”。类Haar特征的基本定义可以表述为哈尔小波,它实际上是一种产生方波输出的数学函数。当提到类Haar特征时,实际上是指这里的模式通常是矩形的。每个组件都是一个单独的值,通过从黑色矩形下像素的总和中减去白色矩形下像素的总和得到,并且其在垂直、水平以及对角线方向上都有独特的表示形式[4]。

5.2 人脸识别—局部二值模式算法

考虑到局部二值模式(LBP)特征的面部表示,有助于实现个体自由的外观识别。LBP特征最初是为表面检测(即纹理分析)而提出的,近年来已被应用于面部图像分析。LBP特征最关键的特性是对光照变化的鲁棒性以及其计算简单性[4–13]。

5.3 人脸跟踪算法

人脸跟踪算法提及如下。

  • 静止点相对于分辨率为0。最左侧点将为 −340,最右侧将为340。
  • 伺服电机的静止点为90°。从中心点开始,人脸跟踪在左侧方向和右侧方向各有四个不同的位置。
  • 每倾斜22.5°,角度被转换为伺服电机可识别的PWM占空比。占空比作为电信号,使伺服电机旋转。
  • 下图描述了该方法的概念以及八个位置的人脸跟踪计算,包括每个位置对应的角度、图像位置以及所需占空比,如图2所示。

示意图1

6 实现

所提出的框架/系统使用依赖于持续获取的信息,这被称为实时数据采集和数据处理(图3)。

6.1 人脸检测

使用OpenCV库的图像预处理功能进行人脸检测,如图5所示。首先,利用Haar特征计算进行人脸识别,当摄像头运行时,人脸会被标记一个绿色框(如图4所示)。

示意图2

示意图3

6.2 人脸识别

使用线性二值模式算法进行人脸识别;该算法将捕获的图像与数据库中保存的训练过的面部样本进行比较[6, 8, 9]。

当捕获的人脸与训练过的人脸匹配时,系统识别人脸并在终端窗口显示“正确识别”消息,如图 5 所示。

示意图4

6.3 面部跟踪

通过获取图像的中心点来实现图像跟踪。矩形框的边为x1, x2, y1, y2。图像的中心x位置通过函数(x1+ x2)/2计算,中心y位置通过(y1+y2)/2获得。仅需中心x位置即可确定水平位置。

由于摄像头安装在伺服电机上,可水平旋转180°。移动物体的中心x值与读取值之间的差即为水平位置。该位置显示在跟踪面板上。

6.4 树莓派远程网络摄像头流媒体

根据IP地址的类型,树莓派的网络摄像头可以远程、本地或全球访问。端口号对于打开网络摄像头流媒体端口至关重要;默认情况下,网络摄像头端口为8086,在终端窗口中运行“sudo service motion start”以启动网络摄像头流媒体。

在浏览器中输入树莓派的IP地址和网络摄像头端口号后,即可实现对实时流媒体摄像头输出的远程访问。

6.5 树莓派网络摄像头物联网控制

树莓派的网络摄像头提供物联网控制功能,通过向GPIO引脚发送指令来控制安装摄像头的伺服电机,系统可通过基于物联网的网页用户界面远程调节树莓派网络摄像头的视角至180°,该网页用户界面包含“右”、“左”、“关闭”等按钮,如图 6[10–13]所示。

示意图5

7 结果与讨论

7.1 图像处理

图 7显示了实时系统从摄像头模块运行的实时视频中获取输入人脸。在实时播放的视频中,采用了不同的图像处理技术来检测与识别输入人脸。

在同一面板中,人脸的水平位置会持续更新;当水平位置在 0–340 范围内时,摄像头向右旋转,而在 −340 到 0 的范围内则向左旋转。当水平位置超出范围的最小值和最大值时,摄像头分别被设置为 0 和 180°。

7.2 传感器

PIR传感器触发树莓派摄像头拍摄图像,图像将本地保存在系统中,并发送至用户邮箱。

超声波传感器与系统连接,用于持续测量系统与物体之间的距离。当系统与物体之间的距离低于5厘米时,将启动蜂鸣器报警。

示意图6

7.3 物联网结果数据

7.3.1 远程网络摄像头访问

物联网监控,即远程访问树莓派的网络摄像头,通过“service motion start”实现。要远程访问网络摄像头,需在网页浏览器中输入树莓派的IP地址。远程访问可以通过本地或全球方式进行。进行本地访问时,访问网络摄像头的设备必须与树莓派连接在同一网络中;这通常适用于树莓派连接到动态网络的情况,其IP地址会定期频繁变化。对于全球访问,即在全球范围内访问树莓派的网络摄像头,树莓派需要连接到一个静态网络,该网络的IP地址在全球范围内保持恒定[5]。实时视频流将在网页浏览器的一个 320 × 480‐分辨率窗口中显示。

7.3.2 通过物联网控制摄像头

树莓派的摄像头可以通过物联网使用基于网页的用户界面进行远程控制,该用户界面包含右、左和关闭按钮,如图8所示。通过GPIO引脚发送命令以控制这些按钮。

摄像头初始处于静止位置,即 90°(7.5 占空比)。当按下“右”方向按钮时,摄像头角度从 90° 增加到最大 180°(12.5 占空比),即最右位置。当按下“左”方向按钮时,摄像头角度从 90° 减小到最小 0°(2.5 占空比),即最左位置。

示意图7

8 结论

图像处理和远程物联网监控系统的概念不仅代表了监控的一种替代资源,实际上更是让基于物联网的应用为现代世界所熟知的概念,因为基于物联网的产品将在2020年迎来革命性发展。基于图像处理的监控系统能够帮助用户和警察部门尽早且准确地识别嫌疑人,减少调查时间中的人力投入,当入侵者逃离监控地点时,若其身份已被确认,则被盗财产也能尽快被追回。图像处理为安全系统提供了额外优势。一些实时配置约束指标表明,该系统在从实时环境中获取的视频执行图像处理时需要较长时间(6秒),因为图像识别循环在实时环境中持续运行,需要性能更强的处理器核心进行图像处理。因此,图像处理在计算机上完成,人脸位置值被传输至树莓派用于人脸跟踪;最终的人脸跟踪仅由树莓派完成。但在未来,通过将多个树莓派连接形成树莓派集群,有望构建高性能核心,使该系统可在独立系统中运行。

这是一个实时数据采集与控制系统,提供简单的用户界面技术,可对摄像头在左右方向上进行完全控制,并支持视频流传输。尽管该系统较为脆弱,容易被破坏,但系统配备了超声波传感器,当有人试图靠近系统以进行破坏时,会触发警报通知。入侵者的照片将被保存在系统中并发送至用户邮箱,以便用户即使不在监控位置附近,也能访问捕获的图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值