基于DM642的结构光图像中心线提取
2015-07-02孙灵灵
马 炎,徐 晓,孙灵灵
(华南理工大学 物理与光电学院,广东 广州 510640)
基于DM642的结构光图像中心线提取
马 炎,徐 晓,孙灵灵
(华南理工大学 物理与光电学院,广东 广州 510640)
提出了一种基于DM642的中心线提取算法,针对TMS320DM642嵌入式平台的特性,采用3×3最亮邻接点加权平均法提取结构光带中心线,并对其进行优化。该方法与其他一些基于MATLAB的传统中心线提取算法相比,不仅提高了提取速度和精度,而且大大减少了类似模板法等需用的卷积运算量,实时性好,适合在大数据量背景下的嵌入式平台应用,通过图像处理板卡的PCI接口,可以方便地实现处理数据的及时上传。
TMS320DM642;结构光图像;中心线提取;加权平均;PCI通信;优化
随着测控技术及数字图像处理技术的发展,基于三角法线结构光的三维测量以其非接触、高精度、实时性及强主动受控性在现实中有着广泛的应用,尤其在计算机视觉、工业检测、医疗诊断等领域,应用价值日益增强。在结构光检测系统中,利用工业相机或者CCD相机摄取线结构平面激光照射在物体表面所形成的光条中心量信息图像,根据光条中心偏移量进行三维定标,这样可以得到诸如物体表面面型缺陷等信息量。鉴于此,线结构光条中心信息的图像处理在这一测量过程中就显得尤为关键[1-3]。比较流行的结构光中心线的提取方法有灰度重心法、方向模板法、Hessian矩阵法等,这些方法各自有着一定的应用范围,但在大数据量、高精度、强实时性等要求下,上述方法各有劣势,不能满足越来越复杂的现代检测任务。本文主要研究基于TMS320DM642(以下简称DM642)嵌入式平台的结构光中心线提取算法,采用取光带图像上的灰度值最大点及其邻接点进行加权平均,能比较明显地提高提取速度和精度,结合DM642的特性对算法进行优化,能比较好地适应嵌入式系统的要求[4]。另外,在现代数据图像处理实时性要求越来越高的背景下,通过采用图像处理板卡自带的PCI接口可以很好地满足与上位机(PC机)的高速通信及大数据量的存储要求。
1 DM642结构光中心线提取系统
DM642结构光中心线提取系统采用TI公司性能强大的DSP芯片-TMS320DM642[5]及其外围器件,由数据采集、数据处理、数据显示3个模块构成,如图1所示,DM642主频可达720 MHz、针对多媒体处理的32位定点DSP处理器,其高达4 800 MIPS(兆指令每秒)的指令周期速度保证了出色的运算能力。此外,它还拥有3个可配置的视频外设接口VP0,VP1,VP2,能方便地对视频数据进行采集处理。数据采集模块是由CCD摄像机和TVP5150视频解码器组成,该部分负责将视频数据转换成DSP能够处理的YCbCr(其比例为4∶2∶2)格式,数据处理模块由DM642及其外围器件构成,完成数据处理任务,数据显示存储模块则完成视频数据的显示和存储。
如图1所示,本文的DM642结构光中心线提取系统使用一台固定放置的普通彩色CCD摄像机采集图像,系统通过摄像机获取含有目标结构光带的图像,经解码芯片解码之后传输给数据处理模块,DM642先对包含目标光带的图像进行校正滤波等预处理,然后进行中心线提取,最后将中心线位置信息数据通过PCI接口传给远程终端进行后期处理,并将处理后的视频数据传输给显示端。
图1 DM642结构光中心线提取系统
2 结构光中心线提取过程和算法及其优化
在实际测量中,线激光垂直照射在物体表面,需要找到激光与物体表面理论上无限薄的轮廓线,这是中心线提取的目的所在。由于CCD摄像机所拍摄的含有目标结构光带的图像并不是一条理想的无限薄的曲线,因此必须采用一定的方法对图像进行处理,以得到结构光带的中心线,进而通过坐标变换得到该中心线的世界坐标[6]。
结构光中心线提取包括图像采集、图像滤波及阈值分割、图像中心线提取、相机标定、结构光带中心线数据计算等过程,其中图像中心线提取算法的实现是本论文研究的关键,以下将着重介绍该算法流程及其优化。
2.1 针对DM642的算法流程及其优化
由DM642处理器的结构[5]可知,DM642对于并行运算和连续地址的数据指令读取具有很好的CPU效率,而对于判断和随机地址的数据指令读取则CPU效率较低,所以在该算法中大量采取并行设计,采用分组加乘这种连续地址的数据处理,尽可能减少程序块调用等跳址数据读取运算,尽量减少判断和循环语句的使用。同时根据DM642的两级缓存结构,合理配置CACHE,提高程序运行速度[4]。
在实际运用中,算法的速度及可靠性非常关键,结合DM642的特性[5],设计一种运算方案,其流程如图2所示。
图2 DM642结构光中心线提取算法流程
在传统找点过程中会用到冒泡算法,需要循环嵌套和大量判断,这样会造成CPU等待,使程序运算效率大大降低,进而降低整个算法效率,为此本文结合DM642的特性采用图像宏块化逐行找点,具体做法如下:首先,将采集到的图像存储在DM642片外SDRAM中,本文研究过程中只考虑图像Y值(即下文中的灰度值)。对于DM642来说,片外SDRAM中的运算速度大大低于片内SRAM内存,因此,将256 kbyte大小的L2中的128 kbyte设置为二级缓存。受限于片内内存的大小,将图像按行分块处理,由于DM642自带强大的EDMA功能,所以不用担心数据搬移速度,可以认为CPU将只进行数据计算。在L2 SRAM中构造3个长度为720的数组tempY⁃line、perYline及rowind,然后,将图像前两行导入到前两个数组中,perYline用于存储最终比较结果,而tempYline用做循环缓存变量,每次更新一行,相比传统逐点比较,这种方法每次能并行处理一行720点的比较,这样就大大节省了CPU重复读取片外内存的开销;每次都要将两者对应位置元素进行比较,存储较大元素于perYline,同时存入该元素行坐标值于rowind中,最终perYline数组和rowind数组中的数据分别就是每列最大亮点值及其行像素坐标。这样就达到了数据传输和处理并行执行的目的,节省了CPU时间,由于tempYline,perYline,rowind,row,max,subpixeldata数组属于常用数据,将其放到L2的SRAM中会大大提高数据存取速度,因此可以达到效率优化的目的。另外,采用软件流水线技术对算法进行优化,更进一步提高程序执行效率。
计算分为两步:首先,对perYline数组记录的每个数据找寻其前后相邻点并记录下其行坐标,依次记录下每列这样的3个点,将其行坐标和灰度值分别存入L2的row数组及max数组,这样做可以提高中心线定位准确度,有一定的滤波作用;然后,对数据进行灰度加权计算求得中心线位置坐标(具体实现见下文),由于DM642属于定点型处理器,计算中会出现浮点数,为了保证精度,将浮点数据都扩大10倍取整,存入32位的subpixeldata数组,其高16位存储行坐标,低16位存储列坐标,到此,一帧图像的中心线提取完成,随后将其打包上传。
2.2 结构光带中心线提取算法
针对不同实验环境、不同灰度值范围的噪声点,设置一定的阈值范围,对背景噪声进行过滤,之后得到的图像中就只剩下一条亮度分布不均匀的二维光带,其余部分基本是黑色。然后,对图像进行亮度判断,根据判断结果将含有二维光带的区域划分出来,记该区域任一数据点P(其像素坐标为(x,y))灰度值为G(x,y),对P进行灰度加权得到其亚像素位置坐标,具体做法如下
式中:n为一个可变的参数,可根据现实情况及硬件水平进行调整;,为P点的亚像素坐标,它是在一个以n为半径的邻域内通过将邻域内各点坐标求灰度加权和得到;wi为第i个像素点的灰度权值,即。然而,由于光带图像中的亮点太多,如果没有先找到光带的中心线位置,直接对几万个像素亮点进行式(1)的计算,计算量将非常庞大,这也使DSP运算开销加大,计算时间加长,不利于图像处理效率的提升,因此,需要先大致确定光带中心线的位置。为此,对光带进行如下处理:
1)对任一xi,找到亮度值最大的点及其前后相邻两点P1i,P2i,P3i,它们的纵坐标分别为y1i,y2i,y3i;
2)然后,对Pi(xi,yi)分别运用式(1)求得其亚像素坐标
2.3 PCI数据传输[7]
在实际应用中,实时处理后的数据量比较巨大,DM642的存储空间有限,并不能最大限度地存储处理结果,因此,需要将数据存入容量大的主机硬盘。本实验所使用的图像处理板卡自带PCI接口,将其插入主机PCI插槽,安装驱动后即可进行数据通信,如图3所示,过程如下:当DM642计算得到结果后,将其送入缓存区,在缓存区打包,PCI主机一直在请求数据,如果判断数据准备好,及时读入存盘,文件为dat格式。
图3 PCI通信流程框架图
3 实验结果与分析
为了验证本算法的运算速度及可靠性,本文分别在DM642嵌入式系统平台(深圳奇想达公司的DM642板卡,主芯片是TI公司的TMS320DM642)和PC平台(CPU是Intel(R)酷睿双核)上进行了实验论证,统计算法运行时间及分析最终提取效果,选择了平直、折线、曲线这3种结构光带进行试验,原图图像是由一款数字视频CCD摄像机采集得来(见部分1),下文具体分析其结果。
3.1 平直光带
图4b是一幅二维平直结构光带原图像,尺寸是576×720(下同),由线激光器打出,图4c及图4d分别是经过DM642和MATLAB提取后所得的图像;结构光中心线提取的目标是图中的白色亮光带。待提取的图像经过运算后得到中心线像素位置的坐标,实验表明,每幅图像的中心线像素位置数据帧(大小为2 880 kbyte)上传速度可达微秒级,在保证精度的同时速度完全能达到实时要求。为了精确起见,算法分别在两个平台上对同一图像各运算15次,如图4a,利用DM642定时器TIMER0及MATLAB的TIC-TOC命令分别统计出算法在DM642和PC上的运行时间,进而得到其运行速度统计平均值,相关统计见表1。
3.2 折线、曲线光带
对于结构较长较复杂的折线、曲线混合光带图像的处理结果如图5所示。图5a依然是在两个平台上各处理15次结果,图5b是一幅二维带有折线、曲线的混合结构光带原图像,图5c及图5d分别是经过DM642和MATLAB最终运算所得的图像,本次实验结果相关统计如表2所示。
图4 平直光带处理结果
表1 平直光带处理结果统计
图5 平直光带处理结果
表2 平直光带处理结果统计
由以上实验结果可看出,在精度上,DM642相比PC端稍好,体现在细节表现及提取的平滑度上:由图4b到图4d可以看出,对于结构较简单的平直光带图,二者的提取效果相差不大,DM642稍好,线型更紧凑,更平滑;然而,由图5b到图5d可以看出,对于结构较复杂的折线或曲线光带,DM642要比MATLAB效果稍好,轮廓更接近,细节更丰富,这是因为采用DM642对算法优化使得在运算处理时可以通过直接取址对原图像进行操作,而MATLAB中需要读入原图,在计算时多次进行数值化估约,会引入一定的误差,而在运行速度上,DM642表现明显优于PC端MATLAB,二者的运算速度相差超过二三十倍,而无论对于结构较简单的平直光带或者较复杂的折线或曲线光带,DM642在运算速度上表现稳定,从统计图上看起伏不大,而MATLAB却有较大差异,由此可推知DM642在连续帧图像处理上提取稳定性优于MATLAB。综合可知,在提取精度上,DM642要比MATLAB效果稍好,而在提取速度上大约是MATLAB的30倍。尤其对于结构光较长较复杂的结构光带图,可以推出MATLAB对于结构较长、较复杂的光带图在精度上稍差,运行开销却增长较明显,而DM642在精度上保持稳定(与原图中心线轮廓位置很接近),运行开销却无明显增长,甚至由于针对DM642的特性对算法进行优化后,其运行开销反而有少许减少,这说明DM642平台更适合解决实际的较复杂中心线的图像处理问题。
4 总结
精度和速度是大数据量背景下中心线提取方法的核心指标,本文以DM642中心线提取系统为算法验证平台,针对嵌入式系统对中心线提取算法进行研究,提出了一种基于3× 3最亮邻接点加权平均的算法,并根据DM642处理器平台的特性对之进行改进和优化,由实验结果可以看出,该算法对结构光带中心线提取具有良好的效果,较之其他算法平滑性较好,精度也有一定的保证,尤其是DM642上的运算速度与传统算法相比提高了很多,这是实现结构光带中心线实时提取的关键一环,实验显示该算法能够很好地适应嵌入式平台。同时本方法也有一定的局限性:首先,该方法对结构光带的结构有一定要求,对于曲度较复杂的结构光,其处理结果相对较差;其次,若结构光带宽度较大,光强横向分布均匀,则该方法精度可能达不到要求,这些也将是下一步需要研究的内容。
[1]ZHANG S,HUANG P S.High-resolution real-time three-dimen⁃sional shape measurement[J].Optical Engineering,2006,12(45):1-8.[2]NAESSET E,NELSON R.Using airborne laser scanning to moni⁃tor tree migration in the boreal-alpine transition zone[J].Remote Sensing of Environment,2007,11(3):357-369.
[3]李莹莹,张志毅,袁林.线结构光光条中心提取综述[J].激光与光电子学进展,2013(10):13-22.
[4] 徐晓,赵林献.基于DM642的双目三维重建[J].电视技术,2013,37(11):206-209.
[5] TI.TMS320DM642 Video Imaging Fixed-Point Digital Signal Pro⁃cessor[Z].[S.l.]:Texas Instruments Incorporated,2004.
[6]孙哲明.光带图像处理算法及在DSP开发环境下的程序设计研究[D].天津:天津大学,2007.
[7]马姝琳,钟先信,姚富光.基于DM642EVM的PCI总线实时数据通信技术[J].光学精密工程,2005(S1):196-200.
马 炎,硕士生,主研DSP下的图像处理算法及应用;
徐 晓,硕士生导师,主要从事机器视觉与人机工程的研究、工程开发和教学工作;
孙灵灵,女,硕士生,主研图像处理算法的研究。
责任编辑:许 盈
Extraction of Linear Structured Light Center Position Based on DM642
MA Yan,XU Xiao,SUN Lingling
(College of Physics and Optoelectronics,South China University of Technology,Guangzhou 510640,China)
An algorithm based on DM642 by using the optimal 3×3 brightest adjacent spots weighted average to find the center position in linear structured light stripe is presented in this paper,according to the characteristic of TMS320DM642.Compared to some other traditional methods which are based on MATLAB,it has a higher speed and accuracy.In addition,the amount of convolution operation which other algorithms like the template method must use is greatly reduced in this method.Besides,this method has a good real-time performance,which makes it suitable for embedded platform under the background of big data.Through the PCI interface of image processing card,data can be uploaded conveniently.
TMS320DM642;structured light image;center position extraction;weighted average;PCI communication; optimization
TP391
B
10.16280/j.videoe.2015.08.008
2014-12-08
【本文献信息】马炎,徐晓,孙灵灵.基于DM642的结构光图像中心线提取[J].电视技术,2015,39(8).