矢量控制算法范文(精选8篇)
矢量控制算法 第1篇
传统的弱磁控制方法是在基速以上,控制电机磁链和电机转速成反比[1,2],这种方法简单易实现,但是没有输出最大转矩电流比,即没有最大限度输出转矩;文献[3]提出了一种过调制算法,用来实现永磁同步电机的弱磁调速,但是该方法实现起来较困难;文献[4-11]提出的查表修正方法目前较为流行,主要是根据电机的转速通过查表修正电机励磁电流iM和转矩电流iT,此类方法简单易实现,应用也较为广泛,但是受电机本身参数影响较大;文献[12]提出了一种通过控制电机电压轨迹的方法实现电机弱磁调速控制,该方法不受电机参数影响,但前提是要获得电机励磁电流的大小。近年来,利用M-T轴电压参考进行弱磁控制的方法受到了越来越多的关注[13,14],电压参考值和它的最大限制值之间的偏差用于确定M轴电流的大小,这种方法对参数不敏感,但如何最大限度地利用直流母线电压仍需研究。以上方法各有优缺点,但都可以实现电机弱磁调速,只是输出转矩大小、电流电压利用率及实现的难易程度不一样。本文在总结已有研究成果基础上,提出一种可以尽可能输出最大电磁转矩的弱磁调速方法。该方法基于转子磁场定向的矢量控制,在随转子磁链同步旋转的M-T坐标系下,根据电机的转速分别控制纯转矩电流轨迹和纯励磁电流轨迹,实现电机变频调速。
1 感应电机弱磁控制
在随转子磁场同步旋转M-T坐标系下,感应电机的定子电压方程和磁链方程为
其中
式中:uM,uT为定子电压在M,T轴分量;iM,iT为定子电流在M,T轴分量;ΨM,ΨT为定子磁链在M,T轴分量;Ψr为转子磁链;Rs为电机定子电阻;Lm为互感;Ls为定子自感;p为微分算子;ωe为磁场同步旋转速度。
由式(4)可以得到:
其中
式中:L's为定子瞬态电感,H。
电机在高速稳定状态运行时,考虑到电机的定子电流瞬态过程很短,与电机定子电流相关的微分项可以忽略,同时定子压降也可以忽略,则由式(1)、式(2)、式(5)可得:
感应电动机矢量控制系统由三相电压源逆变器驱动时,由于受驱动器容量的限制,驱动器可以提供的电压和电流矢量的幅值是有限的,因此电动机所承受的最大电压和最大电流分别为
式中:us_ max为电压源逆变器能够提供的最大相电压峰值,V;is_ max为电压源逆变器能够提供的最大相电流峰值,A。
将式(6)、式(7)带入式(8),则可以得到
式(9)和式(10)构成了电机电流轨迹平面上的电流限制圆和电压限制椭圆,如图1所示,电流(iM,iT) 的轨迹必须在他们的重合面积范围内。当转速逐渐增大时,电压限制椭圆的面积逐渐减小,电流限制圆保持恒定,图1中 ω1< ω2< ω3。
2 最大转矩弱磁控制算法
最大转矩弱磁控制算法是指在满足电压、电流约束条件的前提下,在全速度范围内尽量使电机输出最大转矩的一种控制方法。基于转子磁场定向的感应电机电磁转矩方程为
由式(11)可以看出,当电机定子电流的乘积iMiT取最大值时,Te也达到最大值,即电机输出转矩最大,此时iM= |iT|。根据电机转速可以将运行区间划分为恒转矩区、恒功率区及恒电压区3 个区间,如图2 所示。
2.1 恒转矩区
低速时,由于励磁电流iM不能为0,因此当|iT|过小时,可令iM等于1 个最小限制值,如图3中的I1,此时电流轨迹沿直线AB走。当纯转矩电流|iT|逐渐增大到达B点时,为使电机尽量输出最大转矩,电流轨迹沿直线BC走。在C点时,iM达到电机最大励磁电流I2,随着负载转矩的持续增大,iM恒等于I2,电流轨迹沿直线CD走。
根据式(11)可以获得此时电机的最大输出转矩为
根据式(10)可以求得电机达到的最高转速ωT_ max为
2.2 恒功率区
在B点电机的转矩达到最大值Te_ max,转速达到 ωT_ max,若要继续增加转速,只有通过减小iM才能实现,这种通过减小励磁电流增加电机转速的方法被称为弱磁调速。在电压和电流矢量的幅值均达到最大值后,由于逆变器容量的限制,电流和电压矢量的幅值不能继续增大,因此只能通过改变其相位角的方法使转速继续上升。此时,电流轨迹沿曲线DE走,根据式(9)、式(10)可得:
根据式(14)和式(15)控制iM和iT,可使电流轨迹沿着圆周DE行走到达E点,在整个控制过程中,电机电压矢量的幅值和电流矢量的幅值以及他们之间的相位基本保持不变,电机的输出功率也基本不变,故称为恒功率区。在E点电机达到恒功率区的最高转速 ωP_ max,由式(9)、式(10)可求得 ωP_ max为
2.3 恒电压区
当电机转速超过 ωP_ max,即电流轨迹到达E点以后,要想继续增加电机转速,并要充分利用逆变器的电压输出能力,电压限制椭圆的离心率就必须不断减小,即必须令电压轨迹维持在E点不变,因此该区间被称为恒电压区。在此区间,,电机输出转矩只受电压限制椭圆的限制。根据式(9)、式(10)可得
根据式(17)、式(18)控制电流轨迹沿EF到达F点,在这个变化过程中,随着转速的不断升高,电流矢量的幅值也不断减小,逆变器的输出功率也急剧下降,电机电磁转矩也急速减小。
3 控制算法的实现策略
在分析了感应电机工作原理的基础上,提出基于转子磁场定向下的最大转矩弱磁控制算法。如果控制系统的最大允许电压us_ max和最大允许电流is_ max已知,根据式(13)和式(16)可以将电机的转速区间划分成恒转矩区、恒功率区、恒电压区3 个区间,如图4 所示。当转速满足0 < ωr< ωT_ max时,iT*由速度PI调节器输出,iM*根据转速的不同分别取I1,iT*和I2;当转速满足 ωT_ max≤ωr< ωP_ max时,iT*,iM*可分别由式(14)、式(15)获得;当转速 ωr≥ ωP_ max时,iT*,iM*可分别由式(17)、式(18)获得。弱磁控制算法在感应电机矢量控制中的实现方法如图5所示。
4 实验研究
4.1 实验设计
实验控制平台以TMS320F2812 为核心构成一个全数字化控制系统,其硬件结构如图6 所示。实验所用的三相感应电机参数如下:额定功率PN=7.5 k W,额定电流IN=139 A,额定电压UN=72 V,额定转速nN=2 000 r/min,最高转速nmax=4 800 r/min,额定转矩30 N·m,极对数Np= 2 。所采用的逆变器最大输出电流is_ max为400 A,最大输出电压us_ max为100 V。在图5 所示的感应电机矢量控制系统中,实现本文提出的最大转矩控制弱磁算法,励磁电流iM和转矩电流iT的变化轨迹如图7所示。
4.2 实验结果分析
根据图5所示的感应电机矢量控制原理对电机实现变频调速控制,图8 和图9 分别是采用传统弱磁控制方法和最大转矩弱磁控制方法时电机性能曲线。观察图8 和图9 可以看出,根据电机转矩的变化,都将电机的转速分为3个区间,即为恒转矩区、恒功率区、恒电压区,与本文提出的理论相一致,不同的是图8 从转速2 000 r/min开始进入弱磁,而图9在2 200 r/min才进入弱磁;另一个显著的区别就是输出转矩的变化,图8 所示控制策略的最大输出转矩为54 N·m,而图9的最大输出转矩为60 N·m,并且在全速范围内,图9输出的转矩都大于图8;更重要的是图8 的转矩曲线和电流曲线出现波动,而图9在全速范围内,电流曲线和转矩曲线的变化都很平缓和光滑,说明最大转矩控制策略下的电机运行更平稳,波动较小,而传统弱磁控制方法可能会出现较强烈的波动和振荡。
图10 为传统弱磁控制方法下转速为2 600r/min时的电机相电流曲线,根据图8 可知此时已进入弱磁调速,相电流整体仍为正弦电流,但出现了较强的谐波成分,说明电机内部的磁场出现动荡,电机的转速和转矩输出存在波动,与图8所分析的结果一致。图11 为采用最大转矩弱磁控制方法下电机转速为3 500 r/min时的相电流曲线,根据图9 可得此时电机已进入恒功率区的高速部分,此时的电机相电流仍是理想的正弦电流,只有微弱的毛刺,说明电机内部的磁场更稳定,与图9分析的结果一致。
由图8~图11的分析结果看出,采用最大转矩法弱磁控制方法不仅可以在全速范围内提升电机的转矩输出,更能优化电机的输出性能,转速和转矩输出更稳定,波动更小,从而系统性能更优。
5 结论
矢量控制算法 第2篇
基于双重网格的矢量地图数字水印算法
通过分析数字水印技术和矢量地图的结合方式,提出了一种基于双重网格的数字水印算法,该算法通过双重网格划分,将水印信息分散隐藏到节点坐标的最低有效位上.实验证明,该算法具有良好的.隐蔽性、较强的鲁棒性,可以抵抗常规的节点编辑和地图裁切对水印信息的破坏,适合于矢量地图的版权保护.
作 者:车森 邓术军 CHE Sen DENG Shu-jun 作者单位:解放军信息工程大学,测绘学院,河南,郑州,450052刊 名:海洋测绘 ISTIC英文刊名:HYDROGRAPHIC SURVEYING AND CHARTING年,卷(期):28(1)分类号:P208关键词:数字水印 矢量地图 最低有效位 鲁棒性 版权保护
矢量控制算法 第3篇
三相异步电机的动态数学模型是一个高阶、非线性、强耦合的多变量系统。1971年德国学者伯拉斯切克提出的交流电机矢量控制原理使交流传动技术具有与直流传动技术相媲美的调速性能。矢量控制的关键在于对磁链和转矩的解耦[1]。其基本控制思想是:通过矢量变换将异步电机等效为直流电机,根据磁链定向原理分别对电机的励磁电流和转矩电流进行控制,以达到控制转矩的目的,从而实现了三相异步电机的磁链和转矩的解耦控制。电机相电流检测的是否准确直接影响到电机矢量控制系统性能。
目前,常用的电流采样方法有以下2种:使用霍耳传感器采样电机的相电流[2,3,4];在三相逆变器下桥臂串联3个电阻进行电流采样。霍耳传感器虽然具有使用简单、电气隔离的显著优点,但价格昂贵、体积较大。三电阻电流采样克服了霍耳方法的缺点,虽不具备前者优点,但因成本低常被采用。该方法缺点是不适合下桥臂不开放的智能功率模块(IPM)的应用场合。近年来随着对系统成本关注,单电阻电流重构技术得到广泛的应用和研究[5,6,7,8,9,10]。单电阻电流采样及相电流重构方法有效地克服了三电阻电流采样的不足,其基本原理是,在空间电压矢量脉宽调制(SVPWM)控制中,当非零基本电压矢量作用时,通过测量母线电流的瞬时值,再根据母线电流和电机相电流的关系来重构电机的相电流[11,12,13,14]。
在扇区更迭区域及低调制区域,单电阻电流采样由于自身的局限性无法实现全区域电流采样。本文介绍了一种可以实现全区域单电阻电流采样的办法,并结合该方法在异步电动机矢量控制的基础上对异步电动机调速性能进行了仿真研究和实验,为低成本应用场合的电机控制提供了参考。
2 转子磁场定向矢量控制方法
当异步电机按照转子磁链定向时,同步旋转坐标系的d轴与转子总磁链矢量Ψrd的方向一致,如图1所示。由于转子磁链Ψrd本身就是以同步转速旋转的矢量,所以有
异步电机的数学模型为
转矩方程为
Tem=np(isqΨsd-isdΨsq)
=npLm(isqird-isdirq) (4)
对于鼠笼形转子电机,转子短路Urd=Urq=0,则式(3)可简化为
将式(1)代入式(5)的第3行中,可得
0=Rrird+p(Lmird+Lrird)=Rrird+pΨr
因此
由式(6)与式(1)推导可得
式中:Tr为转子时间常数,Tr=Lr/Rr。
式(7)表明,转子磁链Ψr仅由isd产生,与isq无关。
将式(1)、式(2)与电机转矩方程结合可得
可以认为,isq是定子电流的转矩分量。当isd不变时,转子磁链Ψr也保持不变,如果isq变化,则转矩Tem立即随之成正比变化。
按转子磁链定向,在定子电流的2个分量之间实现了完全解耦,isd唯一决定转子磁链Ψr,当转子磁链Ψr确定时,isq只影响转矩。通常,在额定转速以下,转子磁链保持恒定;在额定转速以上,进行弱磁控制。
3 单电阻电流采样及相电流重构原理分析
SVPWM控制策略是依据变流器空间电压(电流)矢量切换来控制变流器的一种新颖思路的控制策略,其主要思路在于抛弃了原有的正弦波脉冲调制(SPWM),而采用逆变器空间电压矢量的切换以获得准圆形旋转磁场[15]。在异步电机矢量控制中,通常采用电压型逆变器,每相桥臂有上、下2个开关器件,如图2所示。定义每相桥臂的开关管状态分别为Sa,Sb,Sc,把上桥臂开关管导通时定义为状态“1”;关断时定义为“0”。根据三相桥臂(Sa,Sb,Sc)的通断,产生6组基本的非零空间矢量,即V001,V010,V011,V100,V101,V110和2组零矢量V000,V111,通过这8种基本的电压矢量可形成任何预期的目标电压矢量。
单电阻电流采样及相电流重构方法的基础是直流母线电流与电机相电流之间的关系。例如:基本矢量V100作用的t2时间内逆变器上桥臂只有a相桥臂导通,b,c相下桥臂导通,形成回路,如图3所示。此时母线电流i=ia。
依此类推,可以得出其他基本电压矢量作用时直流母线电流与电机相电流之间的关系。在表1中列出了8种基本电压矢量单独作用时,直流母线电流与电机相电流之间的关系。
在SVPWM调制中,这8个基本电压矢量有机合成任何一个目标矢量,结合表1中列出的直流母线电流与电机相电流之间的关系,在一个PWM周期中当2个基本电压矢量分别作用时分别进行母线电流采样,然后通过ia+ib+ic=0计算得到电机的全部三相电流信息。所以,非零电压矢量在一个PWM周期中作用的时间必须一次电流采样所需的最短时间Tmin才能完成相电流重构。Tmin为
Tmin=td+tAD+tup (9)
式中:td为逆变器的死区时间;tAD为A/D转换所需时间;tup为母线电流建立时间[8]。
当目标电压矢量处于SVPWM波扇区更迭区域或者低调制区域时,就不满足上述条件。下面以第1扇区为例来具体分析。
当目标电压矢量V从扇区6进入到扇区1,处于扇区更迭区域时,电压矢量V110作用时间很短,此时电流采样时间不足,无法得到准确的电流值,如图4所示;同理,参考电压矢量V处于低调制区域时,电压矢量V100和V110作用时间都很短,采样时间不足,此时也无法得到准确的电流值,如图5所示。
针对上述问题,本文采用了PWM移相来解决这一技术难点。PWM移相方法的基本思想就是把占空比最大和最小的对应相的PWM波前后平移,以留出足够的采样时间,并且以移相前后合成的目标电压矢量不变为前提条件。本文以第1扇区为例,来说明PWM移相方法,具体分析如下。
如图6所示,定义Ts1=Tmin-0.5T1,Ts2=Tmin-0.5T2。当Ts1或Ts2大于零时表明当前的空间电压矢量作用时间不足以进行母线电流采样,即t3-t2<Tmin,t4-t3<Tmin。此时要进行移相,才能保证电流采样的正常进行。按照PWM移相的思想,进行移相后的PWM波形如图7所示。
移相后,当t5<t6<t7时,PWM周期中不要插入额外的基本电压矢量,但其他情况下会增加额外的基础电压矢量。以第1扇区为例,移相后PWM波形如图7所示,各个矢量的作用时间如表2所示。
4 仿真与实验
系统框图如图8所示。在Simulink环境下进行了异步电动机基于单电阻电流采样的矢量控制仿真,实验是基于Freescale公司的DSC8023控制平台进行的实验。选用电机参数为:额定电流2.5 A;Rs=2.6 Ω;Rr=1.68 Ω;Ls=0.002 1 Η;Lr=0.004 9 Η;Lm=0.160 0 Η;极对数=1。
所设计的仿真及实验为带载5 N·m启动到90 r/min稳定运行后突加负载到10 N·m,再次稳定运行后,突卸负载到5 N·m。
仿真波形如图9所示。从仿真结果中看出重构电流跟电机中的电流基本一致,而且电机带载启动,突加突卸负载时运行稳定。
图10给出了n=90 r/min时重构的电流波形,转速及实际的电机三相电流波形。从图10中可得出重构电流和实际的电机相电流基本相符。带载启动、突加突卸负载时电机运行稳定,与仿真相吻合。
5 结论
本文分析了单电阻电流采样及相电流重构的方法,采用PWM移相的方法实现了全区域单电阻电流采样及相电流重构。该方法的本质是采用多个基本电压矢量去合成目标电压矢量。通过对基于单电阻电流采样的异步电动机矢量控制的仿真和实验,采用该方法进行异步电动机控制同样可以得到很好的性能。该方法结构简单、易于DSP实现,且未增加逆变器的开关量。该方案可以广泛应用于交流电机低成本应用场合,具有较高的实用价值。
预印制图像轮廓矢量化算法研究 第4篇
本文先介绍我们设计的预印制板材切割自动找正系统的工作流程, 然后详细介绍其中的一个重要模块--轮廓矢量化模块。
1 系统简介
预印制板材切割自动找正系统的操作流程如图1所示, 其中方形框内显示各功能模块, 包括轮廓矢量化、CAM、印刷、测量找正、CNC加工这五个模块, 圆角框内显示模块间传递的数据如文件、参数等。
轮廓矢量化模块:对一幅原始图像, 首先需经过此模块的处理。提取图像的轮廓线并矢量化生成DAT文件以供后续C A M模块进行数控编程, 在图像上添加易于C C D相机测量识别的标记点并将标记点的位置保存在文件中。
C A M:轮廓D A T文件是待加工的轮廓在图像坐标系下的位置, 在CAM模块中再进行进刀、退刀、刀具偏置等处理, 生成轮廓加工的初始NC代码。
印刷:对轮廓矢量化模块处理后的图像进行喷绘打印, 得到印制好的板材。
测量找正:预印制板材装夹在切割机床上, CCD相机在机床控制下依次运行到各标记处进行测量识别, 计算出各标记点中心在机床坐标系中的位置, 加上在轮廓矢量化模块中已保存的标记点在图像中的位置文件, 就可建立图像坐标系与机床坐标系的位置关系, 得出位置参数。根据这些位置参数对初始NC代码中的刀位进行坐标变换, 就可得到找正后的NC代码。
CNC加工:根据找正后的NC代码进行板材切割数控加工。
系统的五个模块中, 虚线方框中各模块都已有配套的成熟产品, 本课题重点研究开发了三个实线方框内的模块, 由于篇幅原因, 本文将详细介绍轮廓矢量化模块, 其它模块另作他文介绍。
2 轮廓矢量化
如前文所述, 轮廓矢量化模块的主要功能有两个, 一是提取图像的轮廓线并矢量化, 以供后续CAM模块进行数控编程;二是在图像上添加标记点并保存带标记点的图像和标记点的位置文件。
图像轮廓矢量化算法大量应用于图像分割、图像跟踪、图像识别等场合, 国内外均有不少研究, 如对矢量化算法中的轮廓追踪、线的细化、轮廓的多边形逼近等技术进行了研究, 采用一种逆时针顺序追踪的方法对彩色图像进行轮廓矢量化, 对轮廓矢量化和图像分割中的一些基本问题进行了综述性分析和总结。有不少研究针对某类具体问题如工程图像的矢量化、航拍地图的识别等展开。
用于板材切割的图像轮廓有其特殊性。一般图像中有封闭轮廓和开轮廓, 但非封闭轮廓不能切割分离材料, 在实际板材切割加工中一般不生成刀轨, 因此本文不提取此类轮廓, 如无特别说明, 在后文中提到的轮廓提取均指封闭轮廓提取。还需要指出的是, 用于印制板切割的图像, 背景一般比较简单, 因而待处理的彩色图像与背景对比较明显。另外, 初始提取的轮廓线由相邻像素点组成, 分辨率高, 但存在走刀步长过短、轮廓线较图像真实轮廓误差较大、加工中容易产生锯齿状等缺点, 因而不能直接用于数控加工, 必须在矢量化过程中进行优化处理。据此, 本文制定了适于预印制板材切割自动找正系统的轮廓矢量化算法流程, 如图2所示。
2.1 图像预处理
图像预处理的流程包括平滑、二值化、二值化后去噪声、边缘检测和轮廓细化。
图像平滑采用的中值滤波算法, 有效地消除了噪声, 保护了边缘信息, 并且有较快的平滑速度。
二值化处理的要求是处理后的图像能真实地反映原始图像的灰度边界, 其中关键是阈值的选取。本文根据原始图像的直方图的灰度分布, 选两峰之间的谷底所对应的灰度值, 自然地将背景和目标分开。
二值化处理结果会存在很多噪声, 包括毛刺噪声和孔洞噪声。对此, 本文采用图3所示3×3模板卷积运算的方法进行处理。处理过程是, 对图像中的每一像素p, 若与图3 (a) 的模板相匹配, 则判定像素p为毛刺, 像素值由1变为0;若像素p与图3 (b) 的模板匹配, 则判定像素p为孔洞, 像素值由0变为1。这种噪声处理方法可以很好地保留原图边缘信息, 改善了后续边缘检测的效果。
边缘检测的算法很多, 如Roberts, Sobel, Canny等。相比较之下, 利用Roberts算子提取的轮廓较粗, 定位不准确;Sobel算子虽然定位准确, 但轮廓的完整性和连续性不好;Canny算子进行了“非极大值抑制”和形态学连接操作, 使算法具有定位准确、单边缘响应和信噪比高等优点, 提取得到的轮廓边缘十分完整, 且连续性很好。因此, 本文的边缘检测使用Canny算子。
轮廓细化在本文中的主要目的是删除多余的像素点, 消除锯齿状轮廓现象。这里采用了图4的两个模板进行检测, 若像素p与这两个模板之一匹配, 则删除像素p。轮廓细化后, 实现:
(1) 轮廓线宽为1个像素;
(2) 保持目标图像的连通性, 至少是8连通。
(3) 删除直角点, 使轮廓更加顺滑。
2.2 矢量线生成
矢量线生成的主要操作包括轮廓像素点跟踪、Snake轮廓优化、矢量线拟合。
2.2.1 轮廓像素点跟踪
经过图像预处理得到的轮廓是离散、独立、互不关联的各个边界轮廓点的无序组合, 要进行矢量化必须对轮廓点进行有序排列。文献[3]中提出一种逆时针轮廓点搜索算法, 该算法的基本思想是先追踪到两个连续轮廓像素点Pn与Pn+1, 这两个点称为当前种子点, 考虑一个以Pn+1为中心的3×3模板, 在这个模板中按逆时针方向检查特定的几个像素点是否为轮廓点, 这几个特定轮廓点由Pn与Pn+1的相对位置决定。图5为其中一个模板。若检测到新的轮廓点, 则接着将此轮廓点作为新的模板中心像素, 按同样的方法搜索下一轮廓点, 以此循环, 直到轮廓闭合或中断。该算法避免了搜索过程中像素点的重复判断, 具有较高的搜索效率。
本文借鉴文献[3]的逆时针轮廓点搜索算法, 但该算法应用在本文中存在不足。预处理后轮廓在局部可能会出现短距离的不连续, 一般是缺失几个像素点。文献[3]的搜索算法会在断裂处停止跟踪, 缺乏智能连接的能力。据此, 本文对该算法作出改进, 基本思想是用逆时针搜索算法跟踪轮廓点, 并按顺序记录在list中, 同时设置list中新增加的轮廓点为背景色, 以list中最后两个轮廓点为种子点继续下一轮搜索;若搜索不到下一轮廓点, 则说明此处出现断裂, 以断点为中心向四周进行24邻域、48邻域、…搜索 (最大搜索区域可由用户指定, 不搜索重叠区域) , 若找到一个新的轮廓点p, 则用Bresenham算法计算断点与p点连线上的像素点, 按从断点到p点的方向将这些像素点加入到list中, 最后再将p点加入到list中, 然后设置新加入list的所有轮廓点为背景色, 再用list末尾两个轮廓点进行下一轮廓点的搜索。需要指出的是, 当轮廓不连续长度为几个像素时, 用直线相连造成的误差不大, 基本在允许范围之内;若不连续长度较大时, 直线连接会造成轮廓偏离图像真实轮廓, 但可以通过后续的轮廓优化处理来予以修正。经过跟踪与自动连接, 最终得到有序、闭合的轮廓像素点列。
对于需要搜索内轮廓的情况, 可在已搜索到的闭合轮廓区域内, 按从上到下、从左到右的方式搜索内轮廓点, 从第一个内轮廓点开始, 按照上面的搜索算法继续搜索其他内轮廓点。在这个过程中, 判断一像素点是否在当前封闭轮廓区域内的算法在很大程度上将决定内轮廓搜索的速度。本文的算法是首先查找有序轮廓点列中与此像素点Y坐标值相同的所有像素点, 然后合并X坐标值相差为1的点为一点, 再记录下合并后的像素点比欲判断的像素点X坐标值小的个数, 若个数为奇数, 则说明此像素点在区域之内;若为偶数, 则不在区域内。
2.2.2 Snake轮廓优化
由于以下几个原因可能造成提取出的轮廓偏离图像真实轮廓。
(1) 二值化阈值选取存在偏差。
(2) 残留噪声。
(3) 轮廓搜索时, 若断裂长度较大, 直线连接会造成偏差。
因此, 在进行下一步的矢量线生成之前, 有必要对轮廓进行优化处理, 使其逼近图像真实轮廓, 从而提高最终数控切割的精度。
对轮廓的优化, 本文采用Snake模型予以实现。Snake模型, 也称主动轮廓模型, 是由Kass于1988年提出的一种图像分割方法, 在目标跟踪和图像分割领域有着广泛的应用。该模型通过使用能量函数将轮廓提取问题转化为轮廓能量最小化的问题。由于在能量函数中采用积分运算, 该模型具有较好的抗噪性, 对目标的局部模糊也不敏感, 因而适用性较广。需要注意的是, Snake模型容易收敛到局部最优, 因此初始轮廓应尽可能靠近真实轮廓。本文将上文轮廓像素点跟踪得到的相邻、有序轮廓点列P={ (xi, yi) |i=0, 1, …, n|}设定为Snake初始轮廓, 然后应用能量函数对每一个轮廓点进行迭代运算, 使其逼近图像真实轮廓, 最终得到新的、更加精确的有序轮廓点列。该轮廓点列Pnew={ (xj, yj) |j=0, 1, …, n|}可用于后续的矢量线拟合。
2.2.3 矢量线拟合
经过Snake轮廓优化后, 得到由有序的轮廓像素点组成的轮廓。相邻轮廓点在像素位置上相邻或相隔一两个像素, 它们之间的实际印刷距离由图像分辨率和打印尺寸决定, 对于印刷板材, 这个距离通常较小, 若直接利用此图像轮廓去生成NC代码, 易造成步长过小, 使机床切割的速度发生波动和平均速度下降, 从而影响加工质量和效率。因此, 在将轮廓交由CAM模块生成数控代码前, 有必要对图像轮廓进行曲线拟合, 拟合成直线、圆弧和B样条曲线等。针对本课题组选择的切割机床插补情况, 这里分段拟合成直线即可。
本文采用动态分割法进行直线拟合。假设待拟合的点链为ABCDE, 如图6所示。则动态分割直线拟合的算法步骤可描述如下:
(1) 首先连接曲线两端点AE, 获得过该两点的直线方程。找到AE间距离直线AE距离最远的点C, 如果点C到直线AE的距离大于允许的拟合误差ε, 则以C点作为分割点, 连接A、C。
(2) 在A、C之间的轮廓点上重复 (1) 的做法, 直到找到一点X, 使A与X之间的点距直线AX的距离均小于ε。此时A与X之间的曲线可用直线AX拟合, 将X点保存。
(3) 在轮廓点X与B之间重复步骤 (1) 和 (2) , 即可将整条曲线用直线拟合。
在生产实际中, 允许的拟合误差ε是用实际物理距离来衡量的, 而在图像坐标系中计算的距离是像素距离, 需要根据打印PPI (单位长度上打印的像素个数) 计算对应的印刷尺寸。
dij是像素距离。设原图像的图像分辨率为a*b, 打印尺寸为lp*lx (单位为英寸) , 当图像在长宽方向上进行等比例缩放打印时, 打印PPI为:PPI=a/lp (或b/lx) , 所以实际印刷尺寸为:d=d0/PPI。
本文的拟合对象是由若干有序轮廓点组成的闭合轮廓。根据动态分割直线拟合的算法原理, 使用递归的形式实现闭合轮廓的直线拟合。伪代码如下:
Head表示当前待拟合轮廓段的起始点, Tail表示当前待拟合轮廓段的终点。这两点的初始值是整个有序轮廓序列的起点和终点。MaxPoint为起始点与终点间距离起、终点构成直线最远的轮廓点, 最远距离为MaxDist, T为允许的拟合误差, 所有距离的单位都是mm。
2.3 标记点设计与添加
标记点设计技术的关键是易于让CCD摄像头快速、准确地识别并确定标记点中心位置。据此, 本文设计的标记点如图7所示。标记点呈圆环状, 外圈为黑色, 内部为白色, 圆环的圆心即为标记点中心位置, 摄像头拍照后, 可通过椭圆中心拟合技术予以确定。该标记点结构简单, 易于识别, 且识别精度高。为节省材料并保证精度, 标记点的打印尺寸设计为外圆直径10mm, 由打印PPI算出标记点的分辨率, 然后将此标记点添加到原图像的适当位置。为建立图像坐标系与机床坐标系之间的联系, 至少要添加三个标记点。在添加标记点时应注意:标记点应置于图像的空白处;且不能在同一直线上。最后, 保存带有标记点的原图像, 并将标记点在图像上的位置信息以一定格式存储起来, 用于自动找正模块。
3 实验结果
运用VC 6.0作为编程工具, 实现了预印制板材切割自动找正系统中轮廓矢量化模块。通过对多幅彩色图像进行实验, 验证了上述原理及流程的有效性。实验所用的计算机主要配置为:AMD X1300处理器, 768M内存, Windows XP操作系统。
实验一:图8 (a) 是一小提琴彩色图像, 大小为900*1200像素, 以300DPI打印, 打印尺寸为3*4英寸, 拟合允许误差设定为0.1mm。图8 (b) 是对原图边缘检测后得到的轮廓图;图8 (c) 是对轮廓图进行Snake优化处理后的效果图, 可以看到, 较图8 (b) 更加贴近原轮廓 (如图8 (b) 与 (c) 椭圆标记处) ;图8 (b) 是矢量线拟合后的效果图。拟合前, 轮廓上共有3257轮廓点, 拟合后, 轮廓信息由直线来表示, 直线端点数为381。
实验二:图9 (a) 是一卡通人物彩色图像, 该图像有内外两个轮廓, 大小为600*900像素, 以100DPI打印, 打印尺寸为6*9英寸, 拟合允许误差设定为0.2mm。拟合前, 内、外轮廓的轮廓点数分别为272, 2781;拟合后, 内、外轮廓的拟合直线端点数分别为43, 366。由实验结果可知, 在误差允许的情况下, 矢量线拟合使得图像信息大量压缩, 显著提高了加工效率。
4 结束语
本文首先介绍了预印制板材切割自动找正系统, 然后研究并实现了一种适于该系统的图像矢量化技术, 其基本流程是先对预印制图像进行预处理, 包括图像平滑、二值化、边缘检测、轮廓细化, 然后进行轮廓像素点跟踪、Snake轮廓优化处理, 最后对所得的轮廓点进行矢量线拟合。通过对多幅彩色图像进行处理, 验证了此矢量化技术的有效性。
摘要:研究并实现了一种图像轮廓矢量化算法, 并将其应用到预印制板材切割自动找正系统中。先对图像进行预处理, 主要包括图像平滑、二值化、边缘提取和轮廓细化, 得到图像的轮廓像素点, 对其进行跟踪排序, 将得到的有序轮廓点列作为Snake的初始轮廓, 实现轮廓的优化, 再对优化后的轮廓像素点进行矢量线拟合。实验表明, 矢量化结果能直接用于自动找正系统的后续CAM模块的数控编程, 达到了预期的效果。
关键词:图像预处理,矢量化,snake模型,轮廓优化,自动找正
参考文献
[1]陈俊华, 张美琴.非规则外形工件的坐标找正研究[J].机械制造.2006.
[2]J.Jimenez, JL.Navalon.Some Experiments in Image Vectorization[J].IBM Journal of Research and Development.1982.
矢量控制算法 第5篇
关键词:错误隐藏,时域,H.264/AVC,运动矢量
随着视频和网络技术的发展,基于H.264/AVC[1]标准的移动多媒体传输和实时视频传输系统广泛的应用人们生活。为了实现多媒体数据的传输,需要对这些数据进行压缩,对数据压缩时通常采用基于上下文相关编码,使得压缩数据对信道传输错误非常敏感。目前各种网络不可能提供完全可靠的传输环境,尤其在无线网络传输中,经常会发生数据包丢失或损坏,从而解码端对接收到的码流解码时,解码错误会在时间和空间上扩散,不仅破坏当前帧,还会影响到后续帧,严重影响主观视觉效果。因此必须对解码错误进行必要处理。
时域错误隐藏即利用图像序列的连续性,恢复受损块的运动矢量并用其运动补偿块来代替受损块进行错误隐藏。恢复运动矢量主要利用运动矢量的空间和时间的相关性。参考文献[2]列举了一系列运动矢量恢复方法,如采用零矢量、参考帧相应宏块运动矢量、邻域宏块运动矢量的均值、邻域宏块运动矢量的中值等。参考文献[3]提出更为精确的边界匹配算法BMA(Boundary Matching Algorithm),通过计算补偿块的内外边界像素变化差值来选择候选集中最优的运动矢量用于受损块重建,这一方法由于其简单、易实现等优点已被H.26L的验证模型所采纳[4]。
然而BMA算法在丢失块的运动方向和周围块运动方向不同时会产生的严重的方块效应。为了更进一步提高受损宏块的恢复质量,本文提出了基于运动矢量恢复的时域错误隐藏算法。
1 H.264/AVC运动补偿块和差错控制
1.1 H.264/AVC补偿块的尺寸和形状
H.264/AVC引入了更为精确和灵活的帧间预测方法,采用了更小的块进行运动估计和运动补偿,支持的块大小范围从16×16到4×4[5]。每个宏块的亮度块可以有四种方式划分(如图1):16×16、16×8、8×16和8×8。对于8×8划分方式,每个子块还可以有四种方式继续分割(如图2):8×8、8×4、4×8和4×4。这样进一步减小了残差信号的大小,同时又提供了更多可选择的运动信息。另外H.264/AVC还支持1/4像素的运动估计,来提高图像重建的精度,既降低了码率,又提高了视频图像的质量。
1.2 宏块灵活排序(FMO)
灵活的宏块组织形式(FMO)有利于差错控制。H.264中一帧可以分为多个片组(Slice),宏块可以通过不同的映射方式映射到不同的片组,从而形成不同式样的片组结构,如交错型、散乱型等。对于大小为M×N像素的帧,宏块的个数为(M/16)×(N/16)。若把帧划分为i个片组,把映射记为F,则宏块到片组的映射过程可描述为:
其中,k∈{0,…,(M/16)×(N/16)-1},j∈{0,…,i-1}。若把帧划分成两个片组,即i=2,当映射F取f(k/(M/16))%i就可得到图1(a)所示的交错型片组;当F取f=k%i则可得到图3(b)所示的散乱型片组。宏块以不同的形式组织,对错误隐藏时可利用的信息量有不同的影响,例如当图3中红线框标记的宏块丢失时,图3(a)中可用于隐藏的相邻宏块只有上下2个(标记为蓝线框,不计角点宏块),而图3(b)中有上下左右4个。显然散乱型片组的宏块组织形式,在发生错误时有更多空间相邻宏块的像素信息用于恢复操作,更有利于错误隐藏。
2 基于运动矢量恢复的时域错误隐藏
在一帧图像内,相邻宏块通常具有相似的运动矢量,即保持运动的一致性。H.264/AVC支持多种块尺寸的运动估计,块尺寸越小预测的运动矢量值越精确,因此,本算法将受损宏块划分成16个4×4像素块。在差错控制中,H.264/AVC将同一帧内的宏块划分到不同的片组(slice)内,片组是视频同步和视频传输时的基本单元,选择不同的片组模式对受损宏块错误隐藏的效果有很大影响。为了减少视频网络传输时丢包现象对相邻宏块的影响,本文使用FMO[10]的散乱型模式。
假设有一个受损宏块M,并且与M上下左右直接相邻的四个宏块均完好,具体如图4所示。将M划分为16个4×4子块,图中V(0,0)到V(3,3)表示M的16个4×4子块的运动矢量,Mt(i),Mb(i),Ml(i),Mr(i),i=0,1,2,3分别表示与M直接相邻的上、下、左、右宏块的4个4×4子块。Mt(i)mvx代表Mt(i)水平方向(x方向)的运动矢量,Mt(i)mvy代表Mt(i)垂直方向(y方向)的运动矢量。
根据相邻四个宏块的运动矢量得到宏块运动矢量在水平方向和垂直方向绝对差之和:
下面将16个4×4子块分为三类,来预测子块的运动矢量。
第一类,只有一边与完好宏块相邻的子块,共8个子块,V(0,1),V(0,2),V(1,0),V(2,0),V(3,1),V(3,2),V(1,3)和V(2,3),其运动矢量为
第二类,两边与完好宏块相邻的子块,共4个子块,V(0,0)V(0,3)V(3,0)和V(3,3)。其运动矢量的预测方法,先利用公式(2)计算宏块在水平方向和垂直方向上的SAD,确定宏块运动矢量的趋势,如果,则宏块运动矢量在水平方向上具有更强的相关性,并分以权值T/(T+1),垂直方向上相邻宏块权值为1/(T+1);如果T*SADvmv
第三类,受损宏块中间子块,共4个子块,V(1,1),V(1,2),V(2,1)和V(2,2)。其运动矢量的预测方法,在第二类子块的预测方法的基础上,将根据到恢复子块的距离确定的参考子块的权值分别设为2/5和3/5,以恢复V(1,1)为例,有,
3 实验结果及分析
实验平台:Intel Pentium 4 3.00GHz CPU,512MB DDR内存的PC机,程序运行环境:VC++6.0,在JM10.1[10][8]标准测试模型中实现算法。编码端设置帧的结构为IPPP…,对Foreman、News、Coast-guard三个序列进行编码生成H.264码流。所选序列具有不同的运动特征,均为QCIF(176×144,4:2:0,30Hz)格式。为了测试算法在不同码率情况下的隐藏性能,分别设置QP的值为20,24,28来进行试验。表1列出了在各种不同码率、不同宏块丢失率的情况下,本文算法与BMA[6]算法和Lagrange[7]算法对相同错误的隐藏性能的比较。表中PSNR值只是对亮度分量进行计算得到的。从实验结果看出本文的算法的错误恢复效果相对于BMA算法和Lagrange算法明显要好。
图5给出了Foreman视频序列使用不同的错误隐藏算法对图像恢复的主观质量比较,其中图5(a)中黑色的方块表示一帧中受损的宏块,图5(b)、图5(c)和图5(d)分别为采用BMA,Lagrange和本文算法隐藏后的效果,观察到帽子前沿和墙体空隙处受损的三个宏块,看出本文算法能够得到更好的恢复效果。
5 结论
本文提出了一种基于H.264/AVC平台的时域错误隐藏算法,该算法充分利用相邻宏块间运动矢量的空域相关性恢复受损宏块的运动矢量。为了获得受损宏块更精确的运动矢量,将受损宏块分成16个4×4子块。在受损宏块周围相邻的宏块完好的情况下,将16个子块分为三类,然后通过文中给出的不同计算方法,预测每个子块的运动矢量。实验结果表明该算法无论在主观质量评价还是客观质量评价方面较BMA算法和Lagrange算法都具有明显的优越性。
参考文献
[1]Draft ITU-T recommendation and final draft international standard of joint video specification(ITU-T Rec.H.264/AVC ISO/IEC14496-10AVC).
[2]HASKELL P,MESSERSCHMITT D.Resynchronization of motion compensated video affected by ATM cell loss[A].Proc ICASSP'92[C].San Francisco,CA:IEEE,1992(3):545-548.
[3]LAM W M,REILBMAN A R,LIU B.Recovery of lost or erroneously received motion vectors[A].Proc ICASSP'93[C].Minneapdis:IEEE,1993:417-420.
[4]WANG Y K,HANNUKSELA M M,VSRSA V,et al.The error concealment feature in the H.26L test model[A].Proc ICIP[C].Rochester,NY:IEEE,2002:729-732.
[5]Wieg T,Gray J.Sullivan,et al.Overview of the H.264/AVC Video Coding Standard[J].IEEE Transactions on circuits and systems for video technology,2003.
[6]Lee P J,Chen H H,Chen L G.A new error concealment algorithm for H.264/AVC video transmission[C].in Proc.Intel Symp.On Intel-ligent Multimedia,Video,and Speech Processing,2003:619-622.
[8]Joint Video Team(JVT)Reference Software10.1.
[9]Wenger S.Error patterns for Internet video experiments,ITU-T SG16document Q15-I-16-R1,Oct.1999.
矢量控制算法 第6篇
关键词:智能交通,计算机视觉,车辆检测,运动矢量场,时域滤波,空域滤波
随着社会经济的快速发展, 人们生活水平不断提高, 各种汽车的保有量大幅度增加, 怎样提高交通效率就显得越来越重要, 目前世界各国都投入了大量的人力和物力对智能交通系统 (ITS) 进行研究[1]。交通监视系统是智能交通系统中的一个重要环节。近年来, 基于视频检测的方法随着计算机技术, 图像处理, 人工智能和模式识别等技术的不断发展, 在交通流检测中得到了越来越广泛的应用, 相对于其它交通流量检测技术而言, 它具有以下优势[2~3]:
1) 视频检测可以检测较大的交通场景面积;
2) 相对于其它检测方法, 投资少, 费用低;视频传感器等设备, 例如摄像头, 易于安装和调试, 且对路面设施不会产生破坏;
3) 使用视频检测技术可以采集到更多的交通流量参数。
动态视频目标检测技术是智能化视频分析的基础, 随着计算机视觉以及视频分析技术的进一步发展, 视频目标检测面临着许多新的应用, 以图像分割为基础的视频目标识别检测技术在智能交通等方面有着广泛的应用。
1 运动目标检测的基本算法
运动目标检测是计算机视觉研究中进行信息提取键步骤之一, 是视频分析技术的基础.在视频监控目标跟踪运动分析等实际应用系统中, 往往要求能够实时检测和分割出目标.运动目标检测是视频序列运动分析与理解的基础, 是底层的处理过程是目标分类目标跟踪等处理步骤的基础, 运动目标检测的主要任务是将运动目标从视频序列中提取出来。图像运动目标检测常用方法包括背景差分法和光流法等[4~5]。
1.1 背景差分
背景图像差分是目前运动检测中最常用的一种方法, 它是利用当前图像与背景图像的差分来检测出运动目标的一种技术。它一般能够提供相对来说比较全面的运动目标的特征数据, 但对于动态场景的变化, 如光线照射情况和外来无关事件的干扰等也特别敏感[6]。
实际上, 背景的建模是背景图像差分方法的技术关键。最简单的背景模型是时间平均图像, 即利用同一场景在一个时段的平均图像作为该场景的背景模型。由于该模型是固定的, 一旦建立之后, 对于该场景图像所发生的任何变化都比较敏感, 比如阳光照射方向、影子、树叶随风摇动等。大部分的研究人员目前都致力于开发更加实用的背景模型, 以期减少动态场景变化对于运动目标检测效果的影响[7]。
1.2 光流法
基于光流方法的运动检测采用了运动目标随时间变化的光流特性, 如Meyer等作者通过计算位移向量光流场来初始化基于轮廓的跟踪算法, 从而有效地提取和跟踪运动目标。该方法的优点是在所摄场所运动存在的前提下也能检测出独立的运动目标。然而, 大多数的光流计算方法相当复杂, 且抗噪性能差, 如果没有特别的硬件装置则不能被应用于全帧视频流的实时处理[8]。
1.3 帧差阈值方法
差分比较常用的是连续三帧作两两差分, 这种方法虽然具有很强的自适应性, 但是对进行差分的连续帧的选择时机要求较高, 而且有赖于运动物体的运动速度, 如果运动速度较快, 且选取的时间间隔过长, 就会造成两帧之间无覆盖区域, 从而无法分割出运动物体;而如果运动速度过慢, 且选取的时间过小, 则会造成过度重叠, 最坏的情况是物体几乎完全重叠, 根本检测不到物体。另一缺陷是该方法需要不断改变最佳的阈值, 才能产生最佳效果, 使用不便[9]。
2 基于运动矢量场时空滤波的车辆检测算法
目前的各类车辆目标提取的方法的最大问题在于算法较为复杂, 提取速度偏低, 难以在实时性要求较高的监控视频压缩系统上实现[10]。本文针对该问题, 综合光流场和帧差法的特点, 提出检测过程中产生的辅助信息, 包括运动模式分类和运动矢量场信息, 通过低复杂度的分析和判断, 提出粗糙的车辆物体信息, 再通过实际部署地点的先验知识在后端进行辅助判断和设置, 最终实现实时性较好的车辆检测算法。
2.1 运动模式分类
由于基于像素域的光流场算法运行效率较低, 本算法将视频划分为宏块区域进行判定, 对于运动车辆目标提取而言, 则可设计一套机制, 根据基于宏块的参考帧运动矢量场信息, 将待检测宏块分为背景宏块、待检测宏块和运动宏块这三类。
2.2 基于运动矢量场时空滤波的宏块分类
在初步完成宏块模式分类之后, 进一步提取帧间预测时产生的运动矢量场做进一步分析, 即使用部分已提取帧的运动矢量场对当前帧中的宏块运动状态进行预测, 联合第一步的初始宏块模式分类, 完成视频运动对象的粗提取。在实际提取和使用帧间运动矢量场时, 必须先经过运动矢量场的预处理, 即平滑和矫正, 以去除噪声运动矢量。常用的去除噪声的滤波器包括高斯滤波器和中值滤波器等。考虑到运动矢量并不是图像像素, 因此利用高斯滤波器对几组空间临近的宏块上的运动矢量场进行滤波即可。其原理是先确定一个N×N, N=3, 5, 7, …的模板, 分布对模板窗口正中的水平运动矢量和垂直运动矢量进行卷积, 使之与空间相邻的运动矢量更为接近, 这样就可以去除噪声运动矢量, 获得一致性较好的, 较为平滑的运动矢量场。一般常见的高斯模板如下:
除去空间上的高斯滤波对运动矢量场做处理之外, 还可以利用事件相关性, 将与当前宏块在时间上相邻的宏块的运动矢量提取之后, 进行运动矢量场的累积。这样就可以对当前的宏块运动状态做出较为准确的判断。从而提取出较为可靠的视频运动目标。时域滤波的累积定义如下:
式中MV (t-1) (i, j) , MV (t-2) (i, j) , MV (t-3) (i, j) 代表与当前帧相邻的三个的运动矢量场, 如图1所示:
2.3 压缩域运动目标提取算法的整体流程
通过前述算法处理, 已经可以对当前宏块是否属于运动目标进行判定, 本文算法整体流程见图2。
3 仿真实验与结果分析
本文算法的仿真平台为Matlab2008b。为了评估当前宏块经过运动矢量场滤波之后的运动显著性, 可视具体监控视频系统的部署条件进行适当调整, 运动矢量场空域滤波的高斯模板是3×3则采用了3×3大小。测试序列采用了实际交通监控视频采集的YUV原始序列[10]。本文算法实验结果如图3, 4所示。
从两图中可以看出, 本文算法对宏块模式进行分类并且提取运动矢量场进行分析之后, 已经大大减少了误判概率。基本上可以将目标的主要轮廓勾勒出来。特别是多目标检测视频帧中, 较小的目标区域 (比如摩托车) 也能检测出来。如果再加上车辆视频监控场景的先验知识, 比如视频场景中不含有两个宏块面积大小之下的运动目标, 则可剔除掉大多数的误判, 较精确地提取出视频中的运动目标。
4 总结
本文在深入分析了车辆检测的基本算法之后, 提出了一种基于运动矢量场时空滤波的车辆目标提取算法。该算法综合利用了检测过程中产生的模式信息和已检测帧的运动矢量场信息, 仅仅使用了复杂度较低的运算即可较为准确的车辆运动目标, 这为视频监控系统带来了很大方便。
参考文献
[1]张强, 王正林.精通MATLAB图像处理[M].北京:电子工业出版社, 2009.
[2]李智勇.动态图像分析[M].北京:国防工业出版社, 1999.
[3]魏武, 张起森.基于计算机视觉和图像处理的交通参数检测[J].信息与控制, 2001, 30 (3) :257-261.
[4]兰利宝, 董慧颖, 高岚.视频监控系统中运动目标识别方法研究[C].2007第三届中国智能交通年会论文集, 2007.
[5]赵文哲, 秦世隐.视频运动目标检测方法的对比分析[J].科技导报, 2009 (10) :2-7.
[6]李春生, 龚晓峰.视频序列中的运动目标检测与跟踪[J].现代电子技术, 2009 (23) :23-210.
[7]杨明, 宋雪峰.面向智能交通系统的图像处理[J].计算机工程与应用, 2001 (9) .
[8]朱辉.视频检测技术在智能交通系统中的应用研究[D].西安:长安大学, 2002.
矢量控制算法 第7篇
1 相关理论
1.1 象素的8邻域
对象素(x,y)将其上下左右4个象素点及其对角线上的 4个象素点构成的集合称为象素(x,y)8邻域:
在位图处理时,由于位图图像是点阵结构,寻找轮廓线是从当前点出发寻找其相邻轮廓点,如上图1所示,每一个点周围都有8个点,事先准备好8个方向,在搜索过程中,在8个方向上试探可否前进,用矩阵元素下标(,)表示当前轮廓点坐标,对每一个象素点用3×3的模板,也叫8邻域图进行处理。
1.2 位图的矢量化过程
位图的矢量化过程如图2所示。
二值位图 由于扫描后的图像以不同灰度级存储,为了进行数据矢量化的转换,需压缩为2级(0和1),这就称为二值化。
图像预处理 对于扫描输入的图幅,由于原稿不干净等原因,总是会出现一些飞白、污点、线划边缘凹凸不平等。除了依靠图像编辑功能进行人机交互处理外,还可以通过一些算法来进行处理,经过预处理后的图像对矢量化的过程的影响会减小
轮廓提取 图像经过预处理后,还需要从二值图象区域中产生出区域边界点序列,轮廓提取即可以完成这一功能,为后续的轮廓跟踪做好准备。
轮廓跟踪 图像经过轮廓提取后得到的点的序列并不是有序的,轮廓跟踪用来将这些点有序化、从而将这些有序坐标点进行曲线拟合而实现矢量化。
曲线拟合 通过轮廓跟踪后,得到了对于封闭区域的有序的连通分量,通过对这些有序点的重新筛选后,采用高次Bezier曲线将其进行拟合成一条光滑的,可任意缩放的矢量曲线,即实现了位图到矢量图像的转换。
下面,将对矢量化过程中的几个关键点技术的处理方法进行详细的介绍。
2 几个关键技术的改进算法
2.1 四领域轮廓提取
本文提出的4邻域轮廓提取的算法原理是查找一个目标黑点的上下左右4个方向的非白点,只要这4个方向上存在非白点,则认为该黑点为轮廓点。该算法与现有的8邻域掏空算法相比,轮廓的提取更准确,对于复杂图像的某些连接处不会有重复黑点的情况,从而对轮廓的跟踪影响也减小许多,同时也减小了后续的矢量化效果。经过轮廓提取后,图像的边缘轮廓就会突显出来。在VC 6.0下的算法过程如下:
(1) 水平扫描整副图像,搜寻象素值为0的点,即黑点。
(2) 如果该黑点是边界点,将其确定为轮廓点,并将数组outline 的该点象素值(outline+y×lHeight+x)置为0;
(3) 如果该黑点不是边界点,则在该点上下左右4个方向判断是否存在非白点,如果其上,下,左,右有一个方向点的象素值不为0,则找到一个轮廓点,并将数组outline 的该点象素值(outline+y×lHeight+x)置为0;
(4) 重复执行(2)和(3),直至找到所有轮廓点。
2.2 双向轮廓跟踪
图像经过轮廓提取后得到的点的序列并不是有序的,这些轮廓点是离散、独立、互不相关的无序集合,要想进行矢量化,必须得到这些边界点的有序集合,把一幅图象分割成一段段点的系列,使这些象素点之间用曲线连接起来,为此必须要进行轮廓跟踪。
而如何快速,准确的跟踪到轮廓序列点,这就是这里的研究目的,是进行有效矢量化的最关键的一步。一般在单区域内进行轮廓跟踪方法比较多,对于多区域内的轮廓跟踪则比较复杂,本文提出了一种更为简单的双向轮廓跟踪算法,算法流程图如图3所示。
在算法中,所使用到的数据结构如下:数组outline,存放轮廓提取点,同时可标志在轮廓跟踪是该数组中的点是否遍历过。vector < vector
在VC 6.0下的算法实现步骤如下:
(1) 利用水平行扫描,将搜索到的第一个黑点确定为第一个跟踪起点,记下其坐标,将其加入到闭区域结果向量vCircle中,,并将数组outline 的该点象素值(outline+y×lHeight+x)置为1,即标记为已遍历。
(2) 接着对该点的8邻域方向的点进行扫描。8个方向和起始扫描方向的数据结构为:int Direction [8][2] = {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}},Direction的方向变化值如下:
Direction[0,0]=1; Direction[0,1]=0;
Direction[1]=1; Direction[1]=1;
Direction[2]=0; Direction[1,2]=1;
Direction[3]=-1; Direction[1,3]=1;
Direction[4]=-1; Direction[1,4]=0;
Direction[5]=-1; Direction[1,5]=-1;
Direction[6]=0; Direction[1,6]=-1;
Direction[7]=1; Direction[1,7]=-1;
以此确定的点为中心,分别按照0, 1, 2, 3, 4和0, 7, 6, 5, 4两个方向依次扫描,若遇到的下一点为黑点,根据Direction的方向变化便可计算出下一点的坐标值x,y,将该点加入到闭区域结果向量vCircle中,并将数组outline 的该点象素值(outline+y×lHeight+x)置为1,即标记为已遍历,跳出循环,再重复第(2)步直至两个方向均未遇到黑点,则进入第(3)步。
(3) 第一个封闭区域跟踪完毕,将该闭区域结果向量vCircle加入到全局结果向量gvCircle中。并进入到第(1)步继续搜索下一个封闭区域跟踪起点。
(4) 重复执行(1),(2)和(3)步,直至所有的闭区域跟踪完毕。
2.3 轮廓特征点提取
通过轮廓跟踪后,得到闭区域的有序的连通分量。由于所得的每一轮廓线的序列点是从点阵图像中所得,相邻2点差值为l,数据很密,特别是剧齿比较大的图形。因此,需要对已找到的轮廓点进行删除和其他处理。
(1) 将一条轮廓线起点A0坐标送到变量Ai中;
(2) 将点Ai和点Ai+2连成一条直线,求出点Ai+1到这条直线之间的垂直距离,如果其距离大于某一固定允许误差值。则点Ai+1保留,不能删除,将点Ai+1置为当前点,转(2)头继续处理;如果其距离小于某一固定允许误差值。将点Ai+1从轮廓线序列点中删除,将点Ai和点Ai+3连成1条直线,计算点Ai+2和这条直线之间关系,一直循环找到1个中间点Ak其垂直距离大于某一固定允许误差值,将点Ak置为当前点Ai,删除Ai和Ak之间所有点,转b头继续处理;当点Ak等于此条轮廓线的终点时,删除多余点过程结束;
(3) 将删除多余点后得到的轮廓序列点.再从头向后判断,如果相邻2点之间相隔不超过3个点,则取2 点的平均值作为序列点,将此2点删除。
(4) 转(1)继续处理下1条轮廓线,直到所有轮廓线处理完毕。处理完后的轮廓线序列点就可以进行曲线拟合。
2.4 Bezier曲线拟合
若给定空间n+1个点的位置矢量Pi,则n次Bezier曲线的矢量方程是:
undefined
undefined
其中,Pi构成Bezier曲线的控制点即轮廓线上连续序列点,他们构成Bezier曲线的特征多边形Bi,n(t)是Bernstein基函数,也是曲线上个点位置矢量的调和函数:
undefined
由于采用了Bezier曲线拟合,只要对扫描图像得到的轮廓序列点进行放大或缩小后再拟合,就可以对原图进行无级放大或缩小而不变形,仍然得到的是光滑的轮廓曲线。根据Bezier曲线基本原理,利用GDI+,并依据轮廓跟踪特征点的坐标,将各封闭向量的点坐标代入Graphics.DrawBeziers(Pen* pen,PointF* points,INT count),(其中,pen,画Bezier曲线所用的画笔,points,轮廓线上连续序列控制点类型,count,每一个跟踪序列向量数组的点个数)便可得到比较光滑的矢量线条,同时将其保存为.vtr矢量格式文件。
3 结 语
通过深入研究图像矢量化算法,特别针对矢量化过程几个关键处理点提出了自己的处理算法: 轮廓提取、轮廓跟踪、特征点提取以及采用Bezier曲线进行矢量线条的拟合,并在VC6环境下对算法进行了实现,最后成功应用在一个无纸动漫平台动画软件系统中,验证了算法的可行性与实用性。矢量化工作仍在继续研究和完善中,通过进一步的研究,会使这一算法更加有效和高效。
摘要:位图图像的矢量化是计算机图形学的热点问题。图像的矢量化解决了速度和空间上的问题,为图像进一步的输出与管理提供了便利。因此,他也是无纸动漫领域所面临的基础问题之一。通过对位图矢量化课题的深入研究,针对矢量化过程中的几个关键点技术,特别针对图像轮廓的提取,跟踪及关键特征点提取和曲线拟合,提出行之有效的解决算法。最后在VC 6.0环境下对算法进行实现。其处理速度快、曲线拟合光滑、失真小,验证了算法的可行性,为其在一个无纸动漫系统中的初步应用奠定了基础。
关键词:位图,图像轮廓,曲线拟合,矢量化
参考文献
[1]Arcelli C.Pattern Thinning by Contour Tracing[J].Com-puter Graphics and Image Processing,1981,17(1):130-144.
[2]Kasturi R,Fernandez R,Amlani M L,et al.Map Data Pro-cessing in Geographic Information Systems[J].Computer,1989,22(12):10-21.
[3]Nagasamy V,Langrana N A.Engineering Drawing Processingand Vectorization System[J].Computer Vision,Graphics,andImage Processing,1990,(49):379-397.
[4]Parker J R.Extracting Vectors From Raster Images[J].Computer&Graphics,1988,12(1):75-79.
[5]孙家广,杨长贵.计算机图形学[M].北京:清华大学出版社,1997.
[6]孙圣和,陆哲明.矢量量化技术及应用[M].北京:科学出版社,2002.
矢量控制算法 第8篇
其中基于区域的方法主要利用统一区域内的相似性识别区域。Adams等[2]首先提出种子区域生长算法,该算法基于局部像素的相似性,分割出种子点邻域中满足某些条件的像素点,是分割连通区域的常用方法,其计算简单,运算速度快,在血管连续的区域能够得到较好的分割结果。但是分割结果对种子点的选择有很大的依赖性,而且区域生长算法在有很多断点或者噪声点的血管区域可能不能继续生长,从而得不到好的分割效果。大量的研究人员致力于改进区域生长算法[15,16]。程明等[15]根据区域生长的历史数据以及血管方向信息,提出一种定向区域生长算法,用于肝脏血管的分割。由于医学图像的复杂性,单一的分割算法往往不能取得理想的分割结果。许修等[16]基于血管增强滤波联合动态阈值分割和动态阈值区域生长的血管提取方法,取得了较好的分割效果。但此方法计算比较复杂,且对图像质量的要求较高。近年来,很多研究人员将区域生长与其他分割方法相结合取得不错的结果[17,18,19]。Del Fresno等[17]首先采用区域生长分割出粗略的血管,然后使用粗略的血管模型作为构造可形变模型的初始几何形状,得到较精细的分割结果。Palomera-Pérez等[18]基于医学影像分割与配准算法的研发平台(ITK)的并行运算,采用多尺度特征与区域生长相结合的方法,提取视网膜血管,在精度和速度上均有很大的改进。Cseh[19]采用神经网络和区域生长结合的方法,在肿瘤分割中取得不错的效果。现有的区域生长算法大多未考虑医学图像的相邻切片之间的相关性特点,致使算法的抗噪性较低。
由于医学影像设备电子器件的噪声、容积效应、场偏移效应等的影响,生成的医学图像往往含有噪声污染,图像信息缺失,尤其是半径较小的血管在噪声影响下容易出现断裂。使用常规的区域生长算法,在血管断裂的位置会停止生长,不能得到理想的分割结果。近年,高维代数理论八元数分析[20]在图像处理中得到了重要的应用[21,22]。刘伟[21]提出了一种基于八元数乘法几何意义的边缘检测滤波器,该方法能够提取出丰富的彩色图像的边缘以及特定的颜色区域,在色彩较鲜艳的彩色图像中,取得非常好的效果。黄国恒等[22]提出一种基于八元数的彩色掌纹特征提取与识别算法,对图像进行二维小波分解后,在频率域中利用八元数构造七维向量,在掌纹提取与识别方面获得良好的效果。本文综合考虑CT序列中相邻切片图像的相关性,在空间域中利用八元数构造种子点的六维特征向量,使用八元数的矢量积性质,结合区域生长算法的思想,提出一种新的基于八元数矢量积的三维区域生长算法。
1 基于八元数矢量积的三维区域生长算法
本文提出的基于八元数矢量积的三维区域生长算法流程见图1。
1.1 区域生长
区域生长的基本方法是:从一组“种子点”开始,对其邻域进行搜索,将其中具有与种子点性质相似的像素合并成生长区域,直到所有邻域点都不符合生长规则[23]。区域生长的研究重点,一方面是初始种子点的选取,另一方面是区域合并规则的设计。在医学图像的分割中,区域生长的常用合并准则是基于种子点的灰度值,用来判断其邻域像素值是否在设定的波动范围内。如果是,则将其添加到生长区域中;否则不添加。灰度波动范围通过上下阈值设定,在CT图像中,血管的灰度值一般在180~450。区域生长算法计算简单,运算速度较快,通常可以将连通的血管树从CT图像中分割出来。
1.2 八元数乘法的矢量积表示定理
实数域上交错的有限维可除代数只有4种:实数R、复数C、四元数H、八元数O。八元数O是由Graves和Cayley于1844—1845年发现的,是一种非交换、非结合的八维代数[20]。八元数又称Cayley数。八元数形如:x=x0e0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7,其中e0、e1、e2、e3、e4、e5、e6、e7是八元数的一组基,满足:。令W={(1,2,3),(1,4,5),(2,4,6),(3,4,7),(2,5,7),(6,1,7),(5,3,6)}。则对,有:
对于,x都可以表示成,其中Rex=x0称为x的标量部分,称为x的向量部分。八元数的模定义为。当且仅当||x||=1时,x称为单位八元数。当且仅当x0=0时,x称为纯八元数。当且仅当||x||=1且x0=0时,x是一个单位纯八元数。
设两个八元数,分别表示为,则八元数的乘法为[20]。
两个纯八元数的乘法展开规则有。即对于两个纯八元数的乘法可以用七维向量的点积和叉积表示。如果两个纯八元数x=y且|x|=||y||=1,则有。由此可以推出。八元数的这一性质称为八元数乘法的矢量积表示定理[20]。其意义为,如果两个单位纯八元数相等,则其乘积为-1。
1.3基于八元数矢量积的三维区域生长算法
传统的区域生长算法一般只考虑种子点本身的灰度信息。算法运行过程中,根据相似性准则对种子点周边的像素进行相似性判断,如果相似就加入到分割区域中,最终的算法结果是一个或多个由相似像素组成的连通区域。因此,对于因噪声而断裂的血管不能合并进来,导致分割的精细程度不够高。另外,生长过程本身也未考虑到血管结构及走向,因此有一定的弊端。而将八元数与区域生长的思想结合起来能克服上述缺点,并能分割出更细小的、不连续的血管。本文针对血管可能不连续的区域,使用种子点邻域的灰度信息表示种子点的特征,运用八元数的矢量积表示定理,判断该点是否为血管上的点。具体做法是:选择种子点的上、下、左、右、前、后6个邻域的像素值,构造一个纯八元数,并将其单位化,作为该种子点的特征向量。即一个点对应于一个六维的特征向量。6个邻域定义见图2,对于第N张切片中的点P,取与其相邻切片中的上、下2个点和当前切片中的前、后、左、右4个点的灰度值,构成纯八元数,每一分量除以八元数自身的模,得到单位纯八元数。
设当前点的坐标值为为(x,y,z),其像素值用f(x,y,z)表示。构造的纯八元数Oseed如下所示:
对其进行单位化得到种子点的特征向量O如下,用f1,f2,…,f6表示Oseed的每一分量。
选择初始种子点后,对种子点的邻域进行搜索,如果搜索点的6个邻域组成的单位纯八元数特征向量与当前种子点特征向量的内积等于或接近1,则将该点添加到种子点区域,直到所有的点都不满足条件。
由上述描述可知,对于每个点的判断,都需要计算其6个邻域的像素值,并构造八元数,进行八元数的单位化。另外由于医学图像本身就有很大的数据量,算法的运算时间会很长,不能满足实际的应用需要,尤其是实时的手术导航。考虑到常规区域生长法在血管连续区域的分割效果较好,基于八元数矢量积的区域生长在血管断裂的位置能够发挥较大功效,所以本文首先使用1.1节介绍的常规区域生长算法,分割出连续的血管,通过梯度计算,找到血管的边缘,即有可能存在血管断裂的位置,作为八元数矢量积区域生长的初始种子点,进一步分割可能断裂的血管。具体算法流程如下:
记L(seeds)为区域生长算法的种子点列表,L(octseeds)为基于八元数矢量积表示的区域生长算法的种子点列表,R(output)为分割区域。首先初始化L(seeds),L(octseeds)和R(output)为空。①输入DICOM格式的K张M×N的CT序列图像,体数据大小为M×N×K;在血管区域交互式选择一个种子点,并添加到L(seeds)中。②从L(seeds)中取出一个种子点作为当前种子点,搜索当前种子点的26邻域,判断像素值是否在血管的灰度值范围内。如果在,则将其添加到L(seeds)中,并将分割区域R(output)中的相应位置的像素值置为255。③循环执行②,直到L(seeds)为空。④通过梯度计算,找出当前分割区域R(output)中的血管边缘,添加到L(octseeds)中。⑤从L(octseeds)中取出一个种子点作为当前种子点,取当前种子点的6个邻域像素值,构造单位纯八元数。搜索当前种子点的26邻域作为当前分割点,计算当前分割点的八元数特征向量,并与种子点的特征向量做内积。判断内积值与1的差值是否在给定范围内。如果是,则将当前分割点添加到L(octseeds)中,并将分割区域R(output)中的相应位置的像素值置为255。⑥循环执行⑤,直到L(octseeds)为空。输出的R(output)则为最终的分割结果。
2 实验结果与分析
本算法是在Windows7操作系统上,使用Visual Studio编程工具来实现。为了分析算法对医学图像的分割效果,验证是否能够达到血管分割的目的,取南方医科大学珠江医院提供的2套腹部CT序列作为测试图像。第一套数据S70是对肝静脉的造影数据,大小为512×512×336。第二套数据S50是对主动脉的造影数据,大小为512×512×365。对于S70,在体数据的其中一张切片中选择种子点,见图3,红色标记点为种子点,其像素值为284,并设置血管的上下阈值为[180,380]。种子点特征向量与分割点特征向量的内积与1的差的绝对值小于0.005。分别使用本文算法与区域生长算法分割后,取选择种子点的切片结果见图4,绿色部分为分割结果。
对分割结果进行三维重建得到的血管模型见图5。为了说明算法的优势,在相同的阈值条件,与文献[3]中常规的区域生长算法进行对比,区域生长的结果见图6。
以同样的方法对S50数据进行分割。在图7所示的切片中选择种子点,种子点的像素值为364:血管的阈值范围设置为[180,450]。种子点所在切片的分割结果见图8。对其进行三维重建后如图9所示,使用同样的阈值进行区域生长分割,三维重建后的模型见图10。
为了进一步验证本文所提出算法的分割效果,本研究将医师手工分割结果作为评价的“金标准”[24],将上面两组实验数据S70和S50运用本文算法和传统区域生长算法进行血管分割的敏感度和特异度测试,结果见表1。
由上述实验结果可见,本文提出的基于八元数矢量积的三维区域生长算法对CT序列图像的分割敏感度和特异度均相对较高,说明有较好的效果,特别适用于肝脏中血管的分割,相对于区域生长算法,能够分割出更多更精细的血管。而在运算时间上,相同的机器配置环境下对于S70数据,区域生长算法的运算时间为25 s,本文算法时间为40 s,时间消耗不大,能够满足实际应用需求。故基于八元数矢量积的三维区域生长算法在CT图像的肝脏血管分割中具有较大的优势。
本文使用八元数这一高维的数学工具,在计算过程中综合考虑多个特性,与少量特性进行处理的结果相比有明显的优势,相对于传统的血管分割算法,提高了三维重建图像的精度,运算时间也较短。种子点特征向量的构造结合了血管的结构特征,对于断裂或噪声污染的血管具有很好的适用性。
摘要:针对传统区域生长算法不能在有断点的血管区域继续生长的问题,本文提出一种新的基于八元数矢量积的三维区域生长算法,首先使用传统的区域生长算法,分割出连续的血管,通过梯度计算,找到血管的边缘,将其作为八元数区域生长的初始种子点,然后用种子点6个邻域的灰度构造八元数来表示种子点的特征,运用八元数的矢量积运算,进一步对于噪声等影响下的断裂血管进行有效的连接。对肝脏血管分割的结果表明,相对于传统的区域生长算法,该算法能够快速有效地分割出更多更精细的血管。