基于FPGA的图像运动检测算法研究.pdf
基于FPGA的图像运动检测算法研究
摘要:近年来关于运动图像的处理在公共安全、生物识别、机器视觉、无人
机追踪导航、小区安防等领域的运用非常广泛。对运动图像的处理是后续跟踪识
别算法的基础。本文采用OV7760摄像头采集原始图像,利用帧间差分法以及光
照阈值自适应,以FPGA为主控芯片处理运动图像数据,Verilog硬件编程语言,
是在Quartusll13.1的CycloneIV平台环境下设计、仿真的。
关键词:FPGA;视频图像识别;运动目标检测;帧间差分法
1.
概述
机器视觉是人工智能的一个重要分支,对于视觉数据的采集和处理是非常重
要的。目前机器视觉在我们生活中运用非常广泛,运动物体的检测识别有着极大
的开发空间。本文使用的主控芯片为EP4CE10F17C8可编程逻辑门阵列,FPGA设
计过程中使用的流水线结构使其具有较高的运行速度,同时又以相对较低的成本
保持软件所具有的可重新编程的灵活特性。FPGA运算速度快,适合用于数字图像
处理。所以,基于FPGA平台上开发并实现对运动物体的实时检测识别是一种趋
势,它能极大的提高图像处理速度。
1.
系统硬件设计
图一硬件设计
系统的硬件是以FPGA为主控,在一个二自由度的舵机顶部放上摄像头。通
过帧间差分法来判断运动物体的运动方向,加上自动调节光照适应阈值来减小判
断误差,最终判断二自由度机械臂该如何调整角度,使摄像头可以180°追踪运
动问题。利用FPGA的强大处理能力来处理摄像头采集回来的图像数据。
1.
系统设计架构
图二运动目标检测系统设计架构
整个系统的设计分为两个部分,第一部分是摄像头采集模块,第二部分是运
动目标检测响应模块,系统的总体设计框架如图二所示。
摄像头采集模块在图一的左侧,其模块功能主要是用于捕获当前运动物体的
视频图像,系统供电后,OV7760摄像头就会将采集图像数据,通过图像帧缓存,
在将图像数据发送给第二部分进行图像预处理。
运动目标检测响应模块在图二的右侧,改模块包含了整个系统的核心算法。
算法包含了三部分内容,即图像预处理、帧间差分、自适应阈值。其中,图像预
处理是运用平均值法将RGB彩色图像转换成为灰度图像。这样就可以减少后续计
算的复杂程度,使得图像数据更适合后期算法的处理。预处理后的灰度图像数据
送入帧间差分模块的帧缓存中,通过帧缓存,将相邻的两帧图像叠加相减后得到
一帧差分图像。根据彩色图像计算出当前的亮度值,从而选择最合适的阈值。最
终判断运动物体的位置和运动轨迹,调整二自由度舵机,让物体回到摄像头中心
区域。
1.
系统算法设计
图三帧间差分法
图像处理采用帧间差分法,将当前帧的图像与上一帧图像进行差分处理。当
有物体运动时,前一帧中会有部分静止的背景被运动的物体遮挡,使得像素值发
生变化。通过二值化处理后,可以明显检测到两帧图像的明显差异。通过调试,
我们可以设定阈值Dt,让数值大于一定阈值时说明有物体运动,通过像素点的判
断可以知道运动物体的位置,从而计算出二自由度舵机的运转角度,保证运动物
体始终处在图像的中心。
1.
算法优缺点分析
帧间差分法的主要优点是其简单的算法设计流程,实时处理的数据量较少,
这样就可以提高系统的灵敏度。对环境的适应性也较强,非常实用,可以迅速的
从背景模型中分析出运动物体的位置。缺点是判断的阈值需要人为手动的调整,
光照的强弱对阈值的设定都有一定的影响。另一方面是如果运动物体的速度过快,
相邻两帧的图像过于接近,就判断不出运动小球的运动轨迹,从而无法追踪。
结果分析
表一光亮-光强-阈值表
光亮(L)光强(Q)阈值(Dt)
210.62w/㎡121
601.2w/㎡253
10376w/㎡