1.1 设计目的
高空抛物现象被称为“悬在城市上空的痛”。近年来,高空坠物致人员伤亡的案例屡见不鲜。该类顽疾的久治不愈拷问着城市管理,也拷问着立法部门,事后赔偿、追责问题能否妥善处理也给法院审判执行工作带来不小挑战。在一些居民楼尤其是老旧小区的阳台,堆砌杂物、盆栽,甚至悬挂拖把等现象更为常见。甚至在有些空调外挂机上还堆有放着随时有坠落风险的杂物,这些安全隐患随时都可能转化为一起伤人事件。如何高效防范并且规避高空坠物风险,是对安防领域提出的一项重大挑战。
1.2 应用领域
本系统主要应用于安防领域,可对目标进行实时的跟踪和对空中危险物体进行预警,达到安全防范的作用。
例如,不仅可以用于对高空坠物进行跟踪与预警,还可放置于云台上应用于地面对空中的移动不明飞行物体或无人机进行跟踪预警和拦截。此外,在一些大规模作战场合也可作为防空预警系统,具有一定的战略作用。
1.3 主要技术特点
①利用FPGA在图像处理方面的优势,对图像处理速度快、计算精度高和功耗低等优点。
②利用读写仲裁,进行同时读出两帧图像和写入图像,避免DDR同一时刻不能进行同时读写工作。采用帧间差分法对邻近间的几帧图像进行计算,检测速度快,效果好。
③利用动态地址切换和乒乓操作实现图像画面实时流畅显示,对于高帧率和大分辨率的图像也能达到实时显示效果,不会出现画面撕裂,断层现象。
④利用腐蚀膨胀技术,去除图像噪声,达到更好的显示效果。
⑤抗干扰能力强,根据距离远近和像素关系,能够有效解决空中飞机或者鸟类飞行等不利因素影响。对于空中非高空坠物进行有效的排除。
1.4 关键性能指标
①本系统视频实时跟踪和显示帧率可达60fps,分辨率为1024768。
②本系统图像腐蚀膨胀和帧间差分计算算法的时间延时在10ms以内。
③本系统采用ddr作为图像存储单元,处理速度可达12.8GB/s。
1.5 主要创新点
- 本系统可对高空坠物进行实时跟踪,同时发出警报信号提醒周围人群及 时躲避高空坠物和减少伤害。适用于高层建筑和居民楼等场所进行高空 坠物跟踪和预警,具有一定的实用性。
- 本系统能够有效的排除空中飞机和鸟类飞行等干扰因素的影响,准确锁 定跟踪高空坠物。
- 本系统采用Verilog硬件描述语言进行模块化的设计,具有处理速度快、 延时低、帧率高、功率小等优点。
2.1 整体介绍
本系统主要由三部分组成,图像采集和显示部分、主控制单元部分和预警信号部分。基于机器视觉,着眼于图像感知技术、图传技术及控制技术于一体。
将FPGA作为核心处理单元,利用OV5640摄像头对高层建筑物或者居民楼的上空图像信息进行实时监控获取,FPGA进行存储、计算,并实时输出上空情况的图像信息。若发生高空坠物的情况,该系统会对高空坠物进行标定为红色警示颜色,并且进行实时跟踪。同时,预警信号部分会发出闪亮LED灯和蜂鸣器警报信号,以便警示周围人员进行及时躲避或者减少伤害。
对于空中飞行的飞机和鸟类飞行等不利因素影响,本系统能够有效的排除此类影响,准确锁定高空坠物。当本系统在图像采集过程中,采集到空中飞机等影响因素时候,只会闪亮LED灯作为提醒,并不会发出声音警报。
该系统体积轻巧、集成度高、功耗低,便于安装对居民楼及商业区人口流动密集时进行无间断监测和预警,具有较高的实用性。
主控制器采用紫光同创Logos系列的FPGA开发平台(型号:PGL22G)。
在主控制器FPGA中的完成情况大致主要有以下几部分:
(1)数据预处理
对数据进行简单的位拼接,灰度化等操作。灰度化后的图像,像素数量的减少减轻计算压力,同时不会对帧间差分计算造成影响。
OV5640 在 HREF 信号为高时输出一行的图像数据,输出数据在 PCLK 的上升沿的时候有效。因为 RGB565 显示每个像数为 16bit, 但 OV5640 每个 PCLK 输出的是 8bit,所以每个图像的像数分两次输出,第一个 Byte 输出为 R4~R0 和 G5~G3, 第二个 Byte 输出为 G2~G0 和 B4~B0,将前后 2 个字节拼接起来就是 16Bit RGB565 数据,原理图如下图所示。
图3-3 数据位拼接
由摄像头输入的图像数据经过数据位拼接模块后,进入帧缓存读写控制模块进行控制FIFO里的图像数据,进行突发传输。其中,位拼接前后的仿真图如下图所示。
图3-4 位拼接仿真图
(2)图像帧处理模块
本系统利用DDR3作为存储单元,FIFO作为缓冲单元。DDR地址的乒乓操作:比如在DDR中设置两个储存空间,用于储存两帧图片。分别用于储存输入的图像数据,和输出图像数据。当第一个存储空间在存储输入的图像数据时,与此同时第二个存储空间进行输出图像数据。若读写数据都完成时,则进行互换读写存储空间。利用这种乒乓操作的主要原因是:如果只利用一个储存空间来输入输出图像数据时,当前一帧图像还没有读取输出完成,下一帧图像的数据就输入进来,由于DDR同一时刻不能同时进行读写操作,所以输入进来的数据会覆盖存储空间,那么对于输出显示的画面会造成拖影现象,或者两帧图像可能会交叠在一起的混乱情况。DDR地址的乒乓操作原理图如下图所示。
图3-5 DDR地址的乒乓操作原理图
同时,在DDR3存储器中分配四个地址空间,完成对四个地址的动态切换。这样的设计,不仅可以避免视频图像的撕裂和重影现象,还极大的缩短的图像数据的传输和缓存时间。具体的DDR3的多地址的动态切换原理图如下图所示。
图3-6 动态地址的切换
(3)读仲裁模块
由于帧间差分法需要同时对2帧图像做计算处理,所以需要从DDR3中同时读出2帧图像数据。由于DDR的核心内存频率为400MHz,速度较快。所以利用两个FIFO作为读出两帧图像数据的缓存单元,既解决了跨时钟问题,又解决了同时需要两帧图像数据的问题。
利用DDR的突发数据传输,当第一帧图像的突发长度传输完成后,则立即切换为第二帧图像在DDR3的存储地址空间,进行突发传输;待第二帧图像的突发长度传输完成后,再切换回第一帧图像在DDR3的存储地址空间,进行突发传输,依次循环下去,直到两帧图像数据被完整的读出后,再次切换另外两个地址空间。
(4)像素灰度化和帧间差分计算
帧间差分法是通过对视频中相邻两帧图像做差分运算来标记运动物体的方法。
帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰度变化为非0,这样就能大致计算出移动物体的位置、轮廓和移动路径等。
图3-7 两帧差分法示意图
两帧差分法的运算过程如上图所示。记视频序列中第n帧和第n−1帧图像为和,两帧对应像素点的灰度值记为和,按照式2.13将两帧图像对应像素点的灰度值进行相减,并取其绝对值,得到差分图像:
设定阈值T,按照式2.14逐个对像素点进行二值化处理,得到二值化图像。其中,灰度值为255的点即为前景(运动目标)点,灰度值为0的点即为背景点;对图像进行连通性分析,最终可得到含有完整运动目标的图像。
(5)图像腐蚀和膨胀
①简单来说,膨胀是将与物体解出的背景点合并到该物体中,使边界向外部扩张的过程。用卷积模版对图像进行膨胀处理,会使图像像素点周围原的像素点的像素值得到同化的效果。下面采用一个形象的比喻来说明该运算,且用0表示害虫,1表示青蛙。青蛙吃了害虫表示膨胀运算,我们用33像素阵列来解释:
图3-8 膨胀示意图
上图只有害虫(0),固然害虫(0)幸免被吃;上图中虽然存在着8只害虫(0),但青蛙(1)的胃口太大,所以把害虫(0)全吃了;上图右只有青蛙(1),虽然没吃的,但青蛙(1)还是青蛙(1)。
关于算法的实现,可以用下式子来表示,即像素的或运算:
②腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。形象的比喻来说明该运算,用0表示蛀虫,1表示大米。蛀虫腐蚀大米的过程便是腐蚀运算。
图3-9 腐蚀示意图
上图左因为蛀虫(0)的存在,将8颗大米(1)腐蚀掉了,最后剩下蛀虫(0);上图中即便只存在一个蛀虫(0),但由于蛀虫太厉害,最后大米都烂掉了;
上图右没有蛀虫(0),大米(1)一颗不烂。
关于算法的实现,可以用下式子来表示,即像素的与运算:
(6)目标跟踪模块
本系统可通过两种方法实现目标的跟踪,一种是通过包盒子技术实现目标的框选,另外一种是通过将高空坠物的目标像素赋予红色作为警示颜色。
第一种方法,首先需要计算高空坠物目标的XY坐标,同时找到XY轴上的最大值和最小值。然后通过包盒子技术,将该四个极值点连成一个矩形,同时再连成一个小一点的矩形,将大于小矩形且小于大矩形的区域赋予红色,即可实现目标的跟踪框选。
第二种方法,通过帧间差分计算,得到差分图像后,进行判别。将大于预设值的像素赋予红色,即可将目标覆盖成红色。
由于本系统为了实现能够有效的排除空中飞机和飞行鸟类的影响,故才有第二种方法。对差分图像进行判别,同时根据像素面积与距离的关系,对持续较远距离的目标物体进行判别为非高空坠物。
完整工程在我的资源里下载文章来源:https://www.toymoban.com/news/detail-415993.html
本工程下载后可以直接运行。文章来源地址https://www.toymoban.com/news/detail-415993.html
到了这里,关于基于FPGA的高空坠物跟踪和预警系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!