双目结构光高精度三维复原算法的快速实现

2018-06-05 01:44敖黎铭
传感器与微系统 2018年6期
关键词:双目级数高精度

敖黎铭, 徐 晓, 李 熙

0 引 言

双目视觉技术类似于模拟人眼技术,能够较好地恢复出物体和场景的三维信息[1],但其运算量大,限制了其在高精度快速图像处理系统中的应用[2]。在本项目组进行的实际工程中,通过基于双目的结构光进行高精度三维复原,因此,需要研究不同的软、硬件方法[3]加速解算。

现在广泛应用的图像处理系统根据图像处理器的不同可以分为四种[4]:基于个人电脑(personal computer,PC)+采集卡的结构、基于现场可编程门阵列(field programmable gate array,FPGA)的图像处理系统、基于数字信号处理器(digital signal processor,DSP)的图像处理系统和基于FPGA+DSP的图像处理系统。其中基于PC +采集卡架构拥有超高的处理速度,但便携性不足,在某些场合并不适合应用;基于FPGA的图像处理系统由于过分要求针对特殊算法配置硬件结构,因此并不适合普遍的图像处理情景;DSP是专门的数字信号处理器,算法开发难度也比较低,但是单纯的DSP既做功能控制,又做算法处理,会降低系统的算法处理效率[5]。

本文采用DM8168平台将功能核集成在单片系统中[6,7],避免了单纯的DSP同时进行算法运算和功能控制所导致的算法处理效率低的问题,并采用了一系列优化手段,尤其通过采用查表和级数展开相结合的算法,大幅提高了高精度三维复原算法的运算速度。

1 针对DM8168的三维复原算法

1.1 算法介绍

在实际应用中,线激光垂直照射在物体表面,通过左右交叉放置相机拍摄得到2幅灰度图像,通过两幅图像复原光条处的三维信息。首先分别对左右灰度图进行畸变校正,接着根据双目单视面原理,将图像像素坐标转换为角度坐标,转换关系如图1所示。本文以左相机为例对角度αL计算进行优化。

图1 双目相机等效模型

基于左右图像灰度信息的特征匹配和匹配点的三维复原,具体匹配和三维复原的研究参考文献[8]。

1.2 平台结构与算法流程

DM8168是一种多核异构片上系统,其集成的Cortex—A8处理器用于控制各个协处理器存储、传输图像等;集成的浮点C674xDSP处理器,用于实现用户自定义算法[9]。在该平台上所运行的算法流程如图2所示。

图2 算法流程

2 算法优化

2.1 减少数据处理量

在DM8168上采用了粗裁剪和细裁剪相结合的方法,将1 628×1 236转换成1 628×40大小的图像。以左图为例,具体步骤为:

1)对1 628×1 236的图像G(i,j)进行二值化处理,得到黑白二值图像B(i,j)

(1)

式中T为分割阈值,可预设或使用自适应的方法确定。

2)寻找B(i,j)中白值(255)出现的次数在一定范围内(如1 628×10)的最大值,即找到光条主体位置,但考虑到光条照射物体时产生弯曲,以该最大值所处位置为中心,将灰度图像G(i,j)裁剪为1 628×100大小的图像Cut1_G(i,j),同时记下裁剪的起始列位置Left_Initial。

3)由于畸变校正与像素点在原图G(i,j)中的位置相关,因此,在得到裁剪的起始列位置Left_Initial后,便可直接对裁剪后的图像Cut1_G(i,j)进行畸变校正[10],得到畸变校正后的图像Cut1_Co_G(i,j)。

4)提取光条。根据本文算法的特点,在第一次裁剪并校正后的图像Cut1_Co_G(i,j)的基础上再一次进行裁剪,得到图像Cut2_G(i,k)

(2)

式中Tc为判断是否为光条的阈值,可事先给定。同时在二维数组LeftReImageU[i][k]中存储对应行光条在原图G(i,j)中的列坐标。经过2次裁剪后运行时间较未裁剪减少了5.84 s,整个裁剪过程如图3所示。

图3 第二次裁剪示意

2.2 常规优化

常规优化包括2方面:1)指令级优化。包括循环体展开以便于软件流水作业,使用内联函数以减少函数调用,打开编译器优化选项,使用Const关键字以减少存储器间的相关性等[11];2)算法级优化。针对三角函数和根号运算的优化,由于DM8168没有相应的内联函数,使用库函数运算较为缓慢,因此,针对三角函数和根号运算的计算范围使用简单的查表法。经常规优化后算法的运行时间降为0.15 s。

2.3 角度转换计算优化

图1中坐标转换α计算较为复杂,进一步优化,以左图为例,具体为

(3)

式中f为图1中焦距LO的长度,θ为左相机光轴与基线LR的夹角,ccx为主点的列坐标,ccy为主点的行坐标,以上参数均由相机标定可得;x,y分别为某个像素点在图片中行、列坐标。考虑到该公式中除了x,y坐标外的其他参数值在相机固定的情况下保持不变,因此,采用以部分空间换取时间的方法,通过级数展开和查表法相结合代替直接计算,提高运算效率。

具体评估公式如下

(4)

式中k1,k2为权重参数,k1取0.8,k2取0.2;T0,V0分别为最适宜接受系统的计算所花费的CPU时钟周期数和表所占内存大小;t,v分别为级数展开后对运算量和内存大小的评估。V0取值为L2cache大小,即256 kB,T0取值为1 000CPU时钟周期。

对于时间t和表的大小v的评估采用如下办法:1)将αL的计算公式通过二元函数的泰勒级数展开分别展开成本阶、一阶、二阶3种情况,更高阶的展开由于项数的增多导致计算量增大,不予考虑,即可评估3种展开情况下计算机计算所用的加载、加乘和跳转次数,结合DM8168开发板的硬件结构进一步评估出具体所花费的CPU时钟周期数;2)在3种展开情况下分别寻求插值所引起最大误差不超过某一精度要求时x,y的间隔,由此间隔便可算出此时表所占内存大小。通过对3种情况的评估,找到使评估公式中的s值最小的点作为本文的运算时间与内存大小之间平衡结果。

式(3)展开成本阶、一阶、二阶后,其插值结果与真实结果的最大误差值如图4~图6所示。

图4 级数本阶展开后插值结果与真实值的最大α角误差

图5 级数一阶展开后,插值结果与真实值的最大α角误差

图6 级数二阶展开后插值结果与真实值的最大α角误差

本文在计算机中用差分求出α角沿x方向和沿y方向上的变化基本一致,因此,对于行x和列y取间隔采用同步的方式。由上述图中可以得出最大误差值小于10-4的三个间隔分别为14,15,21。通过CCS查看汇编代码发现展开成本阶后计算需要10次加载、15次加法运算、9次乘法运算,展开成一阶后计算需要7次加载、4次加法运算、2次乘法运算,展开成二阶后计算需要11次加载运算、16次加法运算、10次乘法运算,而在DM8168中,对于float单精度型数据,一次加载指令、加法指令、乘法指令的执行分别需要5,7,7个CPU时钟周期。将以上结果代入评估公式中计算得本阶结果s0为0.21,一阶结果s1为0.14,二阶结果s2为0.28,由此可得展开成一阶,x,y的间隔取15制表其值最小。本文利用此优化方法使得程序运行时间减少到0.11 s,在常规优化的基础上降低了26.67 %的时间。

3 实验结果与讨论

为了验证本算法优化后的运算速度,分别在DM8168嵌入式系统平台(主芯片是TI公司的TMS320DM8168)和PC平台(Inter(R)酷睿双核CPU)上选择不同形状的光条进行多次实验对比,统计算法运行时间以及分析最后的重建效果。结果如图7,表1和图8所示。

图7 不同光条在不同平台的运行结果

平台平均运行时间/s图像大小重建效果PC端MATLAB R2010b(优化后)2.51628×1236良好DM8168系统(未优化)6.7591628×1236良好DM8168系统(优化后)0.1141628×1236良好

图8 三维重建结果

由表1可以看出,优化后在运行速度上,DM8168表现明显优于PC端MATLAB,二者的运算速度相差近20倍,可见本文优化方法有效。在输入变量可预测的情况下,使用查表和级数展开相结合的方法,可以使得包含三角函数和根号等的复杂算术运算变得更为简单,减少了运行开销。

在精度上,DM8168平台与PC端基本相同,差别与本文在DM8168平台中对图像数据取值为float型有关,使得图像数据的有效位数在6位后与PC端不同,但并不影响本文的高精度三维重建效果。

4 结 论

本文以DM8168双目三维高精度重建系统为平台,针对嵌入式DM8168系统对基于双目的结构光高精度三维复原算法进行优化,使得该算法能达到快速高精度三维重建效果。本文优化方法不仅局限于本平台算法中,可以应用到其他需要移植优化的图像算法场合。从实用意义出发,经过本文中优化方法,高精度三维复原算法虽然处理速度达到了0.11 s,但仍有改进的空间,尤其是查表和级数展开相结合的方法,对于复杂的算术运算具有良好的优化效果,但对于循环以及条件语句仍需要进一步优化,这将是下一步的研究内容。

参考文献:

[1] 梁 琨.基于双目视觉的三维重建研究[D].西安:陕西科技大学,2007.

[2] Shotton J,Fitzgibbon A,Cook M,et al.Real-time human pose recognition in parts from single depth images[J].Communications of the ACM,2013,56(1):116-124.

[3] Huang X,Gong L.Shortest path based planar graph cuts for bi-layer segmentation of binocular stereo video[C]∥2010 Asian Conference on Computer Vision,ACCV 2010 Workshops,Springer,Berlin Heidelberg,2010:82-91.

[4] 杨振永.基于TMS320DM8168的嵌入式高清图像处理系统的关键技术研究[D].长春:中国科学院研究生院(长春光学精密机械与物理研究所),2013.

[5] 黄晓婷.基于DM8168双核DSP的车型识别系统[D].南京:南京航空航天大学,2015.

[6] 杨振永,王延杰,孙海江,等.基于TMS320DM8168的SOC高清视频处理系统的设计与实现[J].液晶与显示,2013(5):764-769.

[7] 刘 冰,谷源涛.基于DM8168的视频会议系统MCU设计与实现[J].计算机工程与设计,2014(10):3399-3403.

[8] 王 珊,徐 晓.基于双目单视面的三维重建[J].光学学报,2017,37(5):207-215.

[9] 朱 海.基于DM8168的视频监控系统的实现[D].成都:电子科技大学,2013.

[10] 吴火森.鱼眼相机图像处理及校正算法研究与实现[D].西安:西安电子科技大学,2015.

[11] 魏带娣,李 元,郭 浩,等.基于DSP的运动目标检测算法优化[J].指挥控制与仿真,2014,36(1):66-70.

猜你喜欢
双目级数高精度
拟齐次核的Hilbert型级数不等式的最佳搭配参数条件及应用
基于双目测距的卡尔曼滤波船舶轨迹跟踪
一个非终止7F6-级数求和公式的q-模拟
双目视觉运动目标跟踪定位系统的设计
基于Niosll高精度超声波流量计的研究
高精度PWM式DAC开发与设计
高精度PWM式DAC开发与设计
高抗扰高精度无人机着舰纵向飞行控制
船载高精度星敏感器安装角的标定
哥德巴赫问题中的一类奇异级数