刘 刚,凌 强,李 峰,王 嵩
(中国科学技术大学 自动化系,安徽 合肥 230027)
基于DSP的交通视频稳像算法设计与实现*
刘 刚,凌 强,李 峰,王 嵩
(中国科学技术大学 自动化系,安徽 合肥 230027)
针对因交通监控设备抖动而引起的视频图像序列不稳定问题,提出了一种在设备内的DSP上直接工作的快速稳像方法。该方法采用Harris算子提取参考帧图像的特征点,利用金字塔LK光流在当前帧跟踪参考帧的特征点,从而获得运动矢量。通过RANSAC剔除匹配错误或前景物体的特征点对,筛选出全局运动矢量。采用描述复杂运动的单应性模型估算全局运动参数,用单纯形法和模板相似性微调参数优化整体效果。最后进行全局运动补偿,实现图像的稳定。依赖TI公司C674X系列DSP的优化方法,实现了对720×480交通视频精确、实时的图像稳定处理。
视频稳定;全局运动估计;单应性;运动补偿;DSP
交通安防监控车辆停靠在路边监视路况信息时,安装在车辆顶部的监控设备易受到载重车辆经过等因素影响而抖动,导致监控视频不稳定。不稳定的图像序列干扰交通内容的观察,同时也会影响后期视频信息处理其他环节(如车速估计、目标识别与跟踪等)的准确性。因此,发展基于采集交通信息设备的视频图像稳定技术变得越来越重要。
稳像算法主要包括两个部分:运动估计和运动补偿。运动估计是提取图像序列的帧间变化量,为运动补偿提供可靠参数。常用于提取帧间变化量的方法有块匹配[1]、灰度投影法[2]、特征匹配等。抖动视频图像帧间的运动形式主要为旋转和平移,因而设定运动模型为平移的块匹配、灰度投影等方法不适用于本场景。特征匹配法能够准确地估算任意形式抖动的运动矢量,是主流的研究方向和发展趋势。估算帧间运动参数的模型主要有4参数的相似变换模型[3]、6参数的仿射模型[4]和8参数的单应性模型。模型参数越多,描述场景变化越充分,相似变换和仿射模型在交通场景的表现力不够,单应性是此场景的理想模型。运动补偿是依据运动参数对当前帧图像像元重组实现视频图像的稳定。
针对交通视频稳像的需求,本文提出一种均衡准确度和实时性的基于TI公司C674x系列DSP的快速视频稳像方法。首先,在运动估计环节用Harris算子和金字塔LK光流获得粗略的运动矢量。然后通过RANSAC剔除匹配错误或前景物体的特征点对,筛选出反映监控设备抖动量的全局运动矢量。接着,采用单应性模型估算全局运动参数,用单纯形法和模板相似性微调参数以优化整体效果。再通过全局运动参数对当前帧图像进行全局运动补偿,实现视频稳像。依赖TI公司C6000系列DSP的优化方法,实现了720×480交通视频精确、实时的图像稳定处理。
1.1 稳像原理
在视频拍摄过程中,由于摄像机受到外界干扰发生抖动,原本静止的物体在视频中小幅抖动。稳像技术就是找出背景运动矢量,对其进行校正,使第I+1帧特征点与匹配的第I帧特征点重合,实现静止的物体在视频中依然保持位置不变的视觉效果,其基本原理如图1所示。图中的网格,每一格代表一个像素,圆圈代表图像的特征点。
图1 稳像原理示意图
1.2 稳像算法
基于特征匹配的稳像算法可分为特征点提取、特征点匹配、全局运动估计和运动补偿四个环节,每一环节又有若干种方法可以使用。综合稳定性、准确性和实时性的考虑,本文形成以Harris算子、金字塔LK光流、单应性模型为主的视频稳像方法。
1.2.1 特征点提取
在图像处理中,通常以描述图像特殊位置的特征点来建立图像间的对应关系。特征点,有时又叫角点,指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。Harris算子作为检测角点的常用方法,因其具有稳定性好、速度快等特点,得到了广泛的应用。
Harris算子的原理:将窗口w在所处理的灰度图像上沿任意方向移动微小距离(u,v), 则灰度改变量可定义为:
(1)
其中,I(x,y)表示像素的灰度值。将其展开整理近似可得:
(2)
式中,Ix、Iy表示灰度值x方向和y方向的一阶梯度。由此可以看出,表示角点强弱的灰度值剧烈变化程度取决于矩阵M。Harris算子的角点响应函数定义为:
R=det(M)-k*trace2(M)>T
(3)
式中,det为矩阵的行列式;trace为矩阵的迹;k为默认常数,通常设为 0. 04;T为角点响应阈值。
提取角点的通常做法是,设定一个窗口,选出其中角点响应值最大的点,将其与给定阈值比较,若大于阈值则判为角点,窗口向后平移继续比较。这种做法对阈值设定要求比较高,不能解决相邻窗口特征点可能很近的问题,也不能均衡特征突出区域和平坦区域特征点的比例。为此,本文提出一种二级筛选角点的方法。首先,设定一个相对宽容的阈值和较小的窗口,如通常做法一样提取候选角点;接着,对候选角点按照角点响应值大小进行排序;然后,从角点响应值最大的点开始,取消其窗口内其他候选角点的资格。如此筛选,获得的特征点分布更加均匀合理,能有效地提高视差对运动估计精度的影响。
1.2.2 特征点匹配
虽然类似于SIFT的特征点提取与匹配算子有最优的配对效果,但是这类在每一帧都提取特征点的方法耗时严重,满足不了实时性的要求。LK光流算法只需在当前帧计算每个参考帧提取的特征点位置周围小窗口的局部信息,判定当前帧特征点的位置,具有更少的时间开销。图像金字塔的加入,使得小窗口能够捕获较大的运动量,很好地实现特征点的跟踪。该方法稳定、准确、快速,适合本场景的需求。
金字塔LK光流算法的原理如图2所示。首先,构建参考帧和当前帧图像的金字塔,特征点坐标u满足uL=u/2L,L=0,1,2,…,L,底层为0,顶层为Lm;然后,假设参考帧顶层图像特征点坐标为当前帧顶层图像特征点的初始坐标,用LK光流估计出其准确位置,光流为dm;接着,将求出的顶层图像特征点坐标乘以2作为下一层特征点的初始位置,继续用LK光流估算特征点位置,光流为2dm+dm-1;自上而下依次迭代,找出底层特征点的位置,光流为(2Lmdm+2Lm-1dm-1+…+d0)。匹配成功的特征点对之间的位移即为要求的运动矢量。
图2 金字塔LK光流法原理图
1.2.3 全局运动估计
RANSAC的思想是:先从集合中随机选取4个点对,利用单应性模型粗估全局运动参数,衡量集合中全部点对的匹配情况。由于背景特征点占大多数,参数越能反映背景变化,则匹配上的特征点对越多。多次粗估运动参数,选出匹配成功最多的一组参数,作为参数优化的初始值。
(1)运动模型
单应性揭示了同一场景不同视角的两帧图像间的像素坐标的投影关系。为将当前帧图像变换到参考帧图像视角,设psrc为某当前帧图像的特征点,pdst为参考帧图像上对应的特征点,则有:
(4)
H称为单应性矩阵。
(2)参数求解
(5)
将该方程组整理为齐次方程组的形式,得:
(6)
式中,h33通常取1,h中含有8个未知数。因此,取四个点对联立方程组,用奇异值分解(SVD)求解齐次线性最小二乘问题的方法可以得到H中的参数。
(3)参数优化
由于视差的存在,同属背景的特征点的运动矢量也会有微小差异。在RANSAC筛选内点的时候,应该容许一定误差范围内的特征点被保留为内点,以反映图像不同区域的变化。由于已知的运动参数并非完全适合所有内点,需要对运动参数进行拟合以提高内点的匹配度。
文中采用了单纯形算法优化运动参数。单纯形算法采用反射、扩展、压缩、收缩四种手段将所有内点的残差尽量降低,以实现更好拟合的目的。由于观察图像的注意力都集中在中心区域,因此希望在残差较低的基础上,中心区域拟合得最好。为此,本文加入了模板相似性的比较。拟合出多组备选运动参数,比较每组参数变换后与参考帧图像指定区域的差异,将差异最小的单应性矩阵作为最终确定的运动参数。
1.2.4 运动补偿
运动补偿是减弱或消除静止物体由于相机抖动而在视频中晃动的运动量,实现稳定图像序列的目的。依据单应性模型求出的反映背景物体抖动的全局运动参数,计算当前帧图像各个像素矫正后的位置。由于变换前像素的位置是整型的,运动参数是浮点型的,因而变换后的像素位置极可能也是浮点型的。由于变换后的像素位置需要取整,四舍五入会造成偏差,因此必须对该位置的像素灰度值进行插值以实现变换的平滑。
设(x′,y′)是源点O变换后的浮点型像素位置,a、b、c、d是点O最近邻的四个点的像素值,有:
(7)
其中,floor()是对浮点数向下取整。双线性插值的过程如下:
(8)
则点O变换后整型像素的灰度值为:
p=p12+(y′-y1)(p34-p12)
(9)
本文采用的硬件平台是TI公司的达芬奇数字多媒体处理器TMS320DM8168。TMS320DM8168是一款多核处理器,内含一个Cortex-A8型ARM处理器和一个C674x浮点型DSP处理器。视频稳像的实现过程是:C674x内核从双口RAM中读取不稳定图像数据,经过稳像算法处理,然后将稳定的图像数据存储到原RAM空间。
2.1 C674x内核简介
C674x的CPU采用基于超长指令字(VLIW)的结构,拥有高达9 000 MIPS和6 750 MFLOPS的处理能力。C674x有6个ALU功能单元和2个乘法功能单元,具有强大的并行处理能力。
C674x采用二级缓存器架构,第一级是各为32 KB相互独立的程序(L1P)和数据(L1D)RAM, 其只能作为高速缓存使用;第二级256 KB的L2是一个统一映射的程序、数据空间,可以整体作为SRAM映射到存储空间或作为第二级Cache,或是将二者按比例组合起来使用。L2的这一特点可以有效提高外设的数据传输速度。
2.2 基于DSP的程序优化
DSP的特点决定了程序的运行效率,在用C语言实现算法后,需要进一步针对DSP进行优化。参考TI公司提供的TMS320C6000系列技术文档[5-6],本文进行了针对C674x内核的优化工作。从效果来看,提速显著的方法主要有优化编译器、使用DMA[7]和使用内联函数。
2.2.1 优化编译器
(1)选择最高优化等级。优化等级分为O1、O2、O3共三个等级,等级越高优化效果越好。为了使处理速度尽可能提高,本文选中O3等级。
(2)勾除-g调试选项。-g选项是程序的调试模式,在生成可执行文件时关闭调试模式可以明显提高程序的运行效率。
2.2.2 使用DMA
由于需处理的图像数据通常存储在DDR中,CPU直接读取和写入的速度很慢,并且搬移数据时阻碍了CPU的计算功能。通过DMA控制器和L2 RAM的使用,有效提高了数据的搬移速度。
图3 DMA数据搬移路径
首先DMA从DDR中搬移数据到L2 RAM上;CPU直接从L2 RAM中读取需要处理的数据;处理结果保存在L2 RAM中;DMA再把处理结果搬移到DDR上对应的存储位置。具体的DMA数据搬移路径如图3所示。
2.2.3 使用内联函数
C6000编译器提供了许多内联函数intrinsics,利用它们可以快速提高C代码的执行效率。intrinsics是能直接与汇编指令相映射的在线函数,可以在C语言代码中直接嵌入,达到与汇编指令相类似的性能。
3.1 处理结果
以一段交通监控视频的图像序列为例来说明文中稳像算法的效果。图4是从序列中抽取的6个关键帧,通过图像中心方框的定位可以发现摄像机存在明显的抖动。图5是6个关键帧运动补偿后的效果图,比较定位方框周边的内容可以看出,图像得到了精确的校正。校正后的图像周边会有黑边,这是因为位移导致的部分内容缺失。在进行稳像后,通常要对图像做切边处理以保证主要内容的视觉效果。
图4 抖动的交通视频序列
图5 校正后的交通视频序列
3.2 优化结果
以720×480的图像为例来说明优化的效果。将程序直接移植到DSP的开发工具CCS5.4进行仿真,经过调试通过后,处理单帧图像的耗时需要20 s以上。经过程序本身的优化和基于DSP特点的优化,处理一帧图像的平均耗时为40 ms,实现了实时处理的要求。
本文针对交通视频抖动复杂、存在前景物体的特点,实现了基于特征匹配和单应性模型的视频稳像算法。依据DSP的特点并利用相应的优化方法,实现了对720×480视频的实时稳像处理。该方法兼具了精度、速度和稳定度的要求,达到了较好的稳定效果,可用于监控固定背景交通路况的安防设备上。
[1] 遆晓光,靳万鑫,余颖. 大运动前景和旋转抖动视频的快速数字稳定[J]. 光学精密工程,2014,22(1):177-185.
[2] 赵志强,陈盈. 一种基于灰度投影与块匹配的视频序列快速稳像算法[J]. 光电工程,2011,38(6):146-150.
[3] 李慧娟,郭宝龙.基于DM642的电子稳像的研究与实现[J]. 微电子学与计算机,2009,26(11):120-123.
[4] 王兆军,田裕鹏. 基于Harris-LM全局运动估计的电子稳像算法研究[J].应用科技,2010, 37(1):32-35.
[5] Texas Instruments. TMS320C6000 optimizing compiler user’s guide[EB/OL].(2000-xx-xx)[2017-02-20]http://www.ti.com/litv/pdf/spru187u.
[6] Texas Instruments.TMS320C6000 programmer’s guide [EB/OL]. (2007-02-20) [2017-02-20]http://www.ti.com/litv/pdf/spru198k.
[7] 朱学俊,凌强,李博伦,等. 基于DSP的实时去雾优化与实现[J].微型机与应用,2015, 34(22):96-98.
Design and realization of traffic video stabilization based on DSP
Liu Gang, Ling Qiang, Li Feng, Wang Song
(Deptartment of Automation, University of Science and Technology of China, Hefei 230027, China)
Aiming at removing the jitter of video sequences caused by traffic monitoring equipment, a fast image stabilization method based on DSP in the device is proposed. The feature points of reference image frame are extracted by Harris corner, and the LK optical flow of Pyramid is used to track them in the current frame. The feature point pairs that are matching error or belong to foreground objects are eliminated by RANSAC. The homography model which is always used for describing the complex motion is used to estimate the global motion parameters. The overall effect is improved by trimming parameters with simplex method and template similarity. Finally, the global motion compensation is performed and the stabilization and reconstruction of image are implemented. The accurate and real-time image stabilization system of 720×480 traffic video is implemented based on the optimization method of C674X series DSP.
video stabilization; global motion estimation; homography; motion compensation; DSP
国家重点研发计划(2016YFC0201003)
TP391
A
10.19358/j.issn.1674- 7720.2017.16.005
刘刚,凌强,李峰,等.基于DSP的交通视频稳像算法设计与实现[J].微型机与应用,2017,36(16):15-18.
2017-02-21)
刘刚(1987-),男,硕士研究生,主要研究方向:嵌入式、图像处理。
凌强(1975-),通信作者,男,博士,副教授,博士生导师,主要研究方向:网络化控制、嵌入式系统。E-mail:qling@ustc.edu.cn。
李峰(1976-),男,博士,主要研究方向:图像处理。