一种基于STM32的监控图像跟踪系统的设计

2016-05-30 10:48杨瑶刘波裴娟陆毅季美贺乃宝
江苏理工学院学报 2016年2期

杨瑶 刘波 裴娟 陆毅 季美 贺乃宝

摘要:随着城市化进程的发展,城市人口的不断增加,对于把控社会治安环境,智能化的监控设备开发与应用,未来将逐步成为安防管理的有效手段。本文初步探索了一种监控图像跟踪系统,本系统采用ARM-Cortex M4架构的高性能处理器,配以数字化图像传感器,运用二自由度云台,最终在TFT高色彩液晶显示器上实时动态显示和跟踪监控物体。硬件设计上采用了意法半导体公司的高性能微处理器STM32F407作为处理控制核心,数字摄像头采用基于Omni Vision图像传感的CMOS数字摄像头OV7670。本系统以STM32微处理器为控制核心,将摄像头采集的图像送至LCD显示,并分析获取图像的数据,计算出目标物体的坐标和大小,控制云台转动,使目标处于摄像头视野中央,解决了单片机在图像识别上内存不足,速度慢的问题,以较低的功耗和成本实现视频目标的跟踪。

关键词:ARM;STM32;图像跟踪;图像监控;数字摄像头

中图分类号:TP277.2 文献标识码:A 文章编号:2095-7394(2016)02-0049-06

进入21世纪,图像传感技术工艺得到了大幅的提升,使得图像技术得到了空前的发展,将高分辨率的图像传感技术融入VLSI技术后,能够大幅提升图像处理的性能,在国民经济、社会安防和军事领域等应用广泛。对于连续不断的一帧帧图像的识别和跟踪,是动态图像分析的一大难题。目前国内图像识别、跟踪系统的硬件平台常常选用处理性能优越的DSP、FPGA等高性能的处理器平台,有些甚至直接采用PC机仿真显示,而实际应用中往往采用DSP和FPGA相结合的方法来实现动态图像分析。这些方法运用在监控图像跟踪系统上,往往投入较大的硬件和开发成本,且存在开发周期长,量产应用后不便维修和固件升级不易等问题。近两年来单片机技术的飞速崛起,由于其性能越来越强,而功耗大幅降低,加之其价格不断下降,使得单片机应用越来越普遍。本设计采用32位单片机为控制处理核心,将单片机运用到图像跟踪系统是一种大胆的创新和尝试。

1 系统方案设计

本设计采用基于Cortex M4架构的ARM处理器STM32F407,配合COMS数字摄像头0v7670,实现实时动态的图像采集。对采集的图像信息由STM32F4单片机进行图像识别算法处理后锁定目标,并实时动态的送入高色彩的TFT显示设备,进行监控视频显示。根据锁定的目标位置,通过二自由度云台,转动摄像头实时跟踪锁定的目标。系统设计框架如图1所示,ARM作为核心处理控制单元,实时采集OV7670摄像头的数字图像信息,算法处理后控制二自由度云台转动,使得摄像头跟踪目标物体,该方式是一种实时动态有效的闭环控制模型。

2 单元电路分析与设计

2.1 STM32主控模块设计

本设计采用了基于ARM®;CortexTM-M4为内核的STM32F407的高性能微处理器,其采用了90nm的NVM工艺和ART(自适应实时存储器加速器,Adaptive Real-Time Memo~AcceleratorTM)。ART技术的应用,将Cortex-M4的性能发挥到了极致,通过ART技术使得指令的等待执行时间趋近于零,可谓大大提升了程序执行效率。STM32F407的处理能力可以达到210DMIPS@168MHz,也就是说在168MHz主频下,可以每秒执行2100万条指令,这种处理能力融入ART技术,大幅提升了STM32F4系列的处理性能,完全可以胜任对实时动态图像的分析处理。再者,STM32F4的指令集采用了ARMv7-M体系的32位标准RISC(精简指令集),具备了较高的代码执行效率,易于IDE的开发、仿真和调试。不仅如此,其还具备低成本、低系统功耗、卓越的计算性能和先进的中断响应系统等特点,所以综合考虑,选用了32位ST microcontroller的F4系列中的STM32F407VG作为主控芯片。

基于该款处理芯片,搭建了STM32主控模块,该模块包括了STM32F407VG、复位电路、时钟电路和JTAG电路组成。设计了稳定的按键复位电路,保障了上电复位和Reset Input Signal的事件的发生。时钟电路采用了精度较高的8M无源晶振电路,内部高频时钟可以PLL倍频器获得。预留了JTAG接口,方便了在线仿真和Debug调试。

2.2 图像传感模块设计

图像传感器模块采用了著名的OV(Omni Vi-sion)公司生产的COMS图像传感器OV7670,该传感器是一颗1/6寸的VGA图像传感器,可实现影像处理器和单片式的VGA摄像功能。OV7670具备低工作电压的电气特性,结构上体积小适合各种结构件的安装,单片机通过SCCB总线,进行相应的寄存器配置,可实现子采样、窗口大小调整、整帧输出的8位分辨率的影像数据包。该图像传感器实测最高可输出30帧,秒的VGA图像数据,使用者可以通过改变图像传感器内部的寄存器值,实现对输出图像质量、传输方式和数据格式的控制。对于图像数据的白平衡度、色彩度和伽马曲线等都可以通过SCCB接口编程控制,OmniVision公司的图像传感器具有自己的调校风格,通过对光学或者电子缺陷等因素的调校,使得固定图案噪声、拖尾和浮散得到有效的控制,提高了图像采集的质量,从而使色彩图像清晰而又稳定。

如图2所示为OV7670的功能框架图,主要包括了感光整列(Image Array)、模拟信号处理(Aha-log Processing)、数字处理器(DsP)、数字视频接口(Digital Video Port)、SCCB接口(SCCB Interface)、LED和闪光灯的输出控制(LED and Strobe FlashControl Output)等模块组成。由于OV7670的像素采集时钟具备高速的特点,最高振荡时钟可达24MHz,这么高的数据传输,若单片机直接I/O去读取数据,十分困难,也非常的占用单片机的内部资源。所以,设计时并不使用I/O去直接读取OV7670的图像数据,而是通过加入一个FIFO(First Input First Output)的芯片,起到数据缓冲的作用,摄像头高速采集的图像信息暂存于FIFO芯片中,单片机可以很方便的读取图像数据。这样的缓冲机制,使得单片机并不一定要具备高速的I/O口,也不一定要具备高速的CPU运算能力,就可以轻松的抓去图像信息,进一步的提升了采集效率。图像传感器模块原理图如图3所示:

从图3中可以看出,摄像头模块自带了有源晶振,用于产生12M时钟作为OV7670的XCLK输入。同时自带了稳压芯片,用于提供OV7670稳定的2.8V工作电压,并带有一个FIFO芯片(AIA22B),该FIFO芯片提供384K字节的FLASH空间,足够存储2帧QVGA的图像数据。

2.3 云台模块设计

图像跟踪系统的执行机构,采用了二自由度舵机云台,顾名思义,其可在水平和垂直两个方向上做一定角度的自由运动,采用高性能的线圈驱动,可获得较大的转动扭矩。云台结构上为方便安装摄像头等传感器设备,在云台顶层预留了两个安装孔位,安装完成后能够实现图像监控、图像识别和跟踪功能。也可以在云台上加装其他的传感器设备,如红外传感器或者超声波传感器,实现一个简易的一体化探测仪器。加装红外传感器或者超声波传感器后能够感知周围障碍物,从而为某一功能性提供了探测感知的功能;也可加装数字摄像头,实现水平和垂直两个方向上定位和跟踪锁定的目标。

(1)舵机的工作原理

舵机具备一个控制信号接口,通过该接口获得单片机的控制信号,将控制信号送人调制芯片中,转换成相应的直流偏置电压或偏置电流,而此时舵机内部具备一个基准信号发生器,实时产生一个周期为20ms,脉宽为1.5ms的基础脉冲信号,将此前转换的偏置电压和该基准脉冲比较,输出对应的电压差信号。电压差信号可驱动电机决定了电机的转动角度,当到达转动角度极限时,通过内部的减速齿轮可带动内部的电位器滑动,使得电压差为0,此时电机停止转动。了解它的具体工作原理后,我们就可以通过单片机输出相应的脉冲信号进行转动角度的控制了。

(2)舵机的控制

舵机的控制需要一个20ms的时基脉冲,该信号由内部的时基电路产生,该时基脉冲的高电平部分是一个0.5-2.5ms范围内部的脉宽,那可以看出,其对应的控制关系是这样的:0.5ms对应0度、1.0ms对应45度、1.5ms对应90度、2.0ms对应135度和2.5ms对应180度,如图4所示:

MG995舵机的工作电压是4.8~6V,本设计供电电压为5V,舵机在空载的时候电流几乎为0,而在正常负载的情况下,电流在0.5A左右。设计中采用两个MG995舵机,并运用支架和底座等结构件,组装出了可水平和垂直角度转动的二自由度云台。设计中注意到如果电源功率不够会影响舵机的性能,最常见的现象是,当一个舵机负载的时候,其他舵机会出现混乱,无规律的乱摆。所以设计了稳定而又高效的电源模块,充分保障了舵机云台运作中的稳定性。

2.4 液晶显示模块设计

液晶显示模块采用了TFT(Thin Film Transis-tor)液晶显示器,TFT是薄膜晶体管,即每个液晶的像素点都由采用贴合工艺的薄膜晶体管来驱动,这种方式可以得到较高的屏幕亮度,并且屏幕的对比度和响应速度都很理想,所以该显示液晶技术是目前主流LCD技术之一。相对应老式的CRT显示器,具备了体积小,画面色彩度高的特点,目前笔记本电脑都采用该显示屏。由于采用了薄膜晶体管驱动的特点,所以必须有一定的主控逻辑单元,TFT是一种有源像素点的显示方式,所以在屏幕的色彩饱和度和响应速度上都有了大幅的提高,并且分辨率也可以轻松比肩CRT等显示器。

本设计采用了2.4寸320×240分辨率的18色真彩液晶显示屏TFT-LCD作为显示模块,其主控芯片为ILI9341,并且液晶显示器具备172.8k Byte的自带显存,可以完整的保存二帧RGB图像数据,显示的主控芯片预留了16位的并行接口与单片机进行数据传输,也可以通过串口方式进行数据通信。微处理器STM32将采集处理后的图像信息,实时的送入该TFT液晶显示模块,实时动态的显示摄像头捕捉的画面。

3 软件设计及算法实现

3.1 图像采集与显示程序

由于采用了FIFO技术方式,所以OV7670采集的图像数据会被暂时存放在FIFO芯片中,这样做的好处是可以帮助STM32处理器省出更多的内存空间和时间去处理其他算法任务。单片机通过连续不断的读取FIFO中的一帧帧的图像数据后,送入LCD的显示内存中,图像就会显示在TFF屏幕上了。其流程图如图5所示:

3.2 图像识别算法处理程序

图像识别算法的程序流程图如图6所示,对于数字摄像头采集的RGB格式的图像信息,进行HSL处理,即得出图像的H(色调)、S(饱和度)、L(亮度)数据,通过与设定的HSL阈值做比较,若实际的像素块的HSL值介于某设定的物体基准值的范围内,即可已锁定目标,实现图像的识别功能,如果想跟踪识别其他物体,只需要改变设定的HSL的范围值。

对于图像识别的算法流程,首先开始搜素识别像素块的中心点,即按照预先设定的识别规则寻找摄像头采集图像的各个区域,找都一个满足识别规则的区域,以该区域的几何中心点为目标图像的中心,然后以此基点向周围寻找满足要求的像素点,在某一方向上搜素的像素点的不匹配率超过容错率,即可认为此时为物体的边缘。同理可得,目标物理的其他边缘,最终得到目标物体的大小和中心坐标。

3.3 云台跟踪程序

云台跟踪的实现,通过单片机产生两个毫秒级的PWM波,进行二自由度方向的舵机转动,其转动角度可以PWM的脉冲宽度控制,其PWM的脉冲周期为20ms,占空比的范围为2.5%~12.5%,不同的占空比对应的转动角度为0~180度。单片机通过定时器产生PWM,改变定时器的初值,即可改变输出PWM波的占空比值,实现舵机目标角度的转动。

对于320×240的屏幕而言,其中心显示位置坐标为(120,160),根据上述的图像识别程序得到的目标物体的中心坐标值,分析其和屏幕中心位置坐标的差值,驱动舵机进行相应的角度转动。为了得到稳定的转动控制,避免不必要的小范围颤抖式的转动,故设定了死区阈值,即目标物体的中心坐标值与屏幕中心坐标值差值不大时,舵机不动作。

云台跟踪程序流程图如图7所示:

4 实验结果和分析

系统设计完善后,通过Debug程序后,优化后的图像识别算法,能够高效率的完成图像识别操作,经过图像识别算法得出目标物体的中心点和区域,通过对比显示屏幕的中心值,输出一定比例的控制信号,转动舵机使得跟踪的目标时钟显示在监控屏幕的中心位置。实验表明运用STM32F407,并结合FIFO技术的VO7670图像传感器技术,能够有效的跟踪动态物体,达到了每秒15到20帧的图像显示。实验中,采用红色小球以1cm/s的速度运动,摄像头能在二自由度云台的转动下,实现对红色小球的跟踪,使其显示在屏幕的中心位置。

5 结语

采用STM 32单片机实现的图像跟踪系统,以较高的性价比实现监控物体的简单跟踪,本系统设计具备成本低廉、扩展性好的特点,非常适合监控跟踪速度不高和监控环境良好的应用场合。采用FIFO技术图像跟踪系统,依托STM32的ARM处理性能能够对低速且形状边界清晰的物体进行跟踪,整个系统硬件设计明朗简洁,软件算法框架逻辑性强,效率高。不过由于单片机的处理速度,使得整机运行中出现偶尔跟丢的问题,特别是恶劣环境下,识别跟踪的错误率变大,这些问题将进一步的通过优化软件算法和结构来解决。

责任编辑 祁秀春