1交通视觉监控中的摄像机参数求解楼建光柳崎峰胡卫明谭铁牛(中国科学院自动化所模式识别国家重点实验室北京100080)摘要本文提出了一种适用于交通场景视觉监控实际应用中的方便的投影参数求取方法,主要着眼于方法的易用性,并在此基础上改进了模型可视化算法.它首先利用地平面与图象中的对应点建立一个对应矩阵(homography),然后利用已知的摄像机高度以及地面上垂线在图象中的投影等约束信息来求取摄像机的参数.实验证明,本文提出的方法是有效的,而且能够比别的方法更方便地解决视觉交通监控实际中的摄像机标定和模型可视化问题.关键词投影参数,模型可视化,消失点,对应矩阵,视觉交通监控0引言交通场景的车辆视觉跟踪是计算机视觉领域一个具有广阔应用前景的前沿研究方向,受到国内外很多学者的密切注意.本文针对的系统中采用了基于三维线框模型的车辆跟踪方法,在地平面约束下,利用三维线框模型在图象平面的投影与图象中的运动车辆进行匹配来得到车辆的三维位置[1].在三维模型投影到图象平面的可视化算法中[2],需要求取摄像机的内外参数来对车辆模型进行投影计算.摄像机标定是计算机视觉研究中的一个基本问题,已经有很多这方面的工作.常用的摄像机标定方法有以下几种:1、利用3D结构的定标块与图象点的对应点进行标定的方法[3];2、利用消失点标定的方法[4,5,6],这种方法利用平行线在图象中形成的消失点和消失线的性质来求解摄像机参数;3、利用平面对应矩阵标定的方法[7],这种方法使用比较方便;4、基于对应点的自标定方法,这种方法利用摄像机在两组平移[8]或旋转[9]中拍摄的序列图象之间的对应关系求取摄像机的内参数;等等.但是这些方法应用在视觉交通监控场合中都存在一定的缺点,对此本文在第4节“比较与实验”中将作详细讨论.本文结合交通视觉监控中的实际情况,提出一种在这个应用领域中简单可行的摄像机参数求取方法,目的在于方便和实用.在监控系统摄像机安装过程中,一般可以非常容易地得到摄像机安装的高度(由于不知道具体光心位置,这个高度存在几个厘米的误差,但是这个误差的影响较小,分析见第4节).在标定过程中,利用地平面与图象平面的对应矩阵和测得的摄像机高度进行摄像机参数的标定.实验表明,这种简单标定方法可以得到符合应用要求的参数精度,在交通监控场合中具有比传统方法更好的方便性和实用性.1对应矩阵的求取图象坐标系和世界坐标系中的点分别以齐次坐标[]Tvu1=m和[]Tzyx1=w来标记,.根据针孔摄像机模型,如图1,摄像机的投影方程为:[]wtRAm=s(1)其中[]321rrrR=和t分别是摄像机坐标系与世界坐标系之间的旋转矩阵和平移向量;=1000000vuβαA是摄像机的内参数矩阵;s为比例因子.以地平面为世界坐标系的X-Y平面,也即地平面上任何点的z=0.对于地平面上的点,从(1)式可以得到:[][]Tyxs1⋅=trrAm21(2)VXcYcXwYwZwZcU图1.摄像机模型2记[]==332313322212312111hhhhhhhhhtrrAH21,H是一个3x3的矩阵,称为对应矩阵(homography).本文采用最小二乘方法从地平面与图像中的对应点来求取H矩阵,结果与[]trrA21相差一个因子λ.2摄像机参数求解世界坐标系中点(x,y,z)在图象平面的投影,[][]Tzyxs1⋅=trrrAm321321hArhh3λλλ+++=hyx(3)其中h1,h2,h3分别为矩阵H的三个列向量,h为摄像机距离地面的安装高度.性质1:假设光心在世界坐标系中的坐标为Wc=[xcyczc]T,根据光心的性质可以得到如下方程:[][]0hArhh3=⋅Tccczyx1321λλλ由于zc=h,并令KAr3λ=h,记K=[K1K2K3]T,得:0hKhh=+++321ccyx(4)这是一组(三个)关于K1,K2,K3,xc,yc,的线性方程.在监控场合中往往有一些与地平面垂直的直线存在,例如场景中的房屋的边线、电线杆等,可以利用这些线条在图象平面的投影线段来得到更多的约束.假设直线l是图象平面中上述类型一条直线,那么直线l有以下性质.性质2:摄像机光心在地平面上的垂直投影点(xc,yc,0)在把l用对应矩阵H反投影到地平面上得到的的直线l/上.如图2所示.假设直线l的方程为[]01=⋅TTvus,那么直线l/的方程为[]01=⋅TccTyxHs根据这一性质,利用图象上的一条这种特殊直线段可以得到关于xc,yc的一个线性约束方程.如果在图像中有两条或者两条以上的这种直线(两条直线之间不重合),就对应于在地平面上两条或两条以上经过(xc,yc)点的直线,这样就可以对xc,yc进行求解.在实际计算时,采用人机交互的方式,首先人为选定屋沿、灯柱、电线杆或者其他垂直于地面的直线段,为了减少人为误差,在选定直线段的附近提取边缘点,然后用霍夫变换来获取直线的方程,最后把直线变换到地平面上.一旦得到地平面上的直线方程,就可以求取它们的交点(xc,yc).当有超过两条这种特殊直线输入时,采用了最小二乘的方法来计算(xc,yc).得到(xc,yc)数值后,进而就可以求得K.在求得K1,K2,K3,xc,yc这些参数以后,就可以根据(3)式得到完整的投影矩阵PTM(PerspectiveTransformationMatrix),进而可以利用文献[3]中的方法求得摄像机的内外参数.3模型可视化的改进在本文应用的监控系统中,摄像机的参数应用于模型可视化模块[2]之中,只需要将模型可视化模块作一个小小的改动,直接使用H矩阵和摄像机位置(xcych)来进行模型可视化,而无需计算摄像机的其他详细内外参数,如图3所示.方法步骤如下:STEP1:以摄像机的位置(xcych)作为视点,把车辆模型投影到地平面,并在这个投影过程中进行消影和裁减图2.性质2示意图lCl/(xc,yc,0)l*WIJ图3.模型投影C(xc,yc,0)WIStep1Step2(xw,yw,zw)3等运算.STEP2:把地平面上车辆模型的投影结果通过对应矩阵H对应到图象平面,得到车辆模型在图象平面的投影结果.这样,可视化过程无需知道摄像机的其他详细内外参数,简化了摄像机的标定过程,免去了计算内外参数过程中的计算误差.4比较与实验下面对本文中使用的方法与几种经典的方法进行一个比较.参考文献[3]中利用3D结构的定标块与图象点的对应点进行标定的方法具有相对好的稳定性和准确度,但是它需要在场景中放置足够大的三维结构已知的标定块,或者知道分布在整个视野中的至少6个空间点的三维坐标,这在实际监控场景中操作起来有很大的困难.文献[4][5][6]提出的利用消失点来求取摄像机参数的方法,虽然使用和操作非常方便,但是往往由于两个平行直线在图象中投影直线之间的角度偏差不是很大,求取的消失点位置对噪声比较敏感,误差比较大.要提高精度必须使得两个平行直线在图象中投影直线之间的角度比较大,由于这个角度与摄像机的空间位置和姿态有关系,这样就对摄像机的放置提出了一定的限制条件,使用起来变得不方便.文献[7]中使用的方法是一种比较实用的方法,它利用两个或两个以上的平面来进行摄像机内参数标定,在交通监控场合中地平面是现存的一个平面,但是要另外再设立一个标定平面往往不太方便,相反,本文方法中的摄像机高度等信息却比较容易获取.对于基于主动视觉的自标定方法,由于要对摄像机的运动(平移或旋转)做比较多的限制和约束,在实际应用中操作和实现比较困难,并不适合交通监控场合的户外工作.在本文的方法中,由于不知道具体光心位置,用垂直线获取的摄像机高度可能存在几个厘米(5cm)的误差,有必要分析一下这个误差对参数求取和可视化的影响.在视觉交通监控场合中,一般摄像机设置在几层楼高的高度,几个厘米的误差在总高度的1%以下.在以上算法中h值只会影响K向量的计算,而对投影矩阵的其他列向量没有影响,对整个算法的精度影响并不严重,下面的数值实验可以证实这一点.实验使用数值验证的方法,采用已知的摄像机内外参数为:绕x,y,z轴都旋转60度,摄像机光心位置[100,200,300],α=β=300和u0=320,v0=240,加入2%以内的高度误差,计算后得到参数α如下表:误差-2%-1.5%-1.0%-0.5%0%0.5%1.0%1.5%2%α值296.86297.65298.44299.22300.00300.77301.53302.29303.04误差全部在2%以内,其他参数也得出同样的结果,不一一列出.因为摄像机安装高度是汽车高度的好几倍,在图象上的投影误差则更小,完全能够适合交通监控场合的实际应用.本文提出的方法主要着眼于方法的易用性,同时能够保证交通监控系统所需要的应用精度.本文使用MicrosoftVisualC++6.0实现了上述算法,操作界面如图4所示.图5中的图象是一个交通场景的缩略模型.在标定计算中,世界坐标系定位在图中模型的中心,摄像机摆放高度为1470mm,利用第一节中的方法计算得到地平面与图象平面的对应矩阵H如下:=13-0.32157e5-9.3569e123.2080.118231-0.00756504-174.9130.0185570.21486H在图5的图象中,选取墙角作为垂直于地平面的线段,求解得到K1K2K3xcyc的数值如下:=0.60162-260.144-78.9212-K和-1137.43mmymm529.348c=−=cx,进一步计算矩阵A得到:100120.49383.53570171.790384.2563,4由于本文采用的图像是320*240的,得到的内参数是比较合理的,说明了方法的有效性.图4.标定程序界面图5.为标定实验图图6是一组户外的实验数据,图(a)中的地面上的白色线段的长度和坐标用来计算对应矩阵,并有多条垂直于地平面的直线段被利用(包括屋沿和路灯的柱子),图b是采用图a标定得到的摄像机参数计算模型可视化以后的结果,可以看到模型可视化的结果与实际车辆吻合得很好.5结论摄像机标定是一个经典的问题,已经提出了很多标定方法,但是实际的应用场合中有不同的实际情况,需要选择和设计一些方便有效的算法.本文结合视觉交通监控场景的实际情况,提出一种实用可行的摄像机参数求取方法,主要提高了方法的易用性,同时能够保证交通监控系统所需要的应用精度,并在此基础上提出文献[2]中的模型可视化算法的改进算法.实验证明,这种标定方法使用方便灵活,计算精度能够符合视觉交通监控应用要求.ab图6.(a)为实际场景标定用图像,(b)为模型可视化后的结果参考文献1YangH,LouJG,SunHZ,HuWM.andTanTN.EfficientandRobustVehicleLocalization.InProc.ofIEEEInt.Conf.onImageProcessing,Greece,2001,355-358.2昌娅,胡卫明,谭铁牛.交通视觉监控系统中的三维车辆线框模型可视化算法.工程图学学报增刊,2001,28~33.3马颂德,张正友.计算机视觉-计算理论与算法基础.北京:科学出版社,1998.4WangLL,TsaiWH.CameraCalibrationbyVanishingLinesfor3DComputerVision.IEEETrans.onPatternRecognitionandMachineIntelligence,1991,13(3):370-376.5HuangJB,ChenZ,LinJY.AStudyOnTheDualVanishingPointProperty.PatternRecognition,1999,32(12):2029-2039.6B.Caprile,andV.Torre,UsingVanishingPointsforCameraCalibration.Int.J.ofComputerVision,1990,4(2):1