留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

光场成像目标测距技术

张石磊 崔宇 邢慕增 闫斌斌

张石磊, 崔宇, 邢慕增, 闫斌斌. 光场成像目标测距技术[J]. 中国光学. doi: 10.37188/CO.2020-0043
引用本文: 张石磊, 崔宇, 邢慕增, 闫斌斌. 光场成像目标测距技术[J]. 中国光学. doi: 10.37188/CO.2020-0043
ZHANG Shi-lei, CUI Yu, XING Mu-zeng, YAN Bin-bin. Light field imaging target ranging technology[J]. Chinese Optics. doi: 10.37188/CO.2020-0043
Citation: ZHANG Shi-lei, CUI Yu, XING Mu-zeng, YAN Bin-bin. Light field imaging target ranging technology[J]. Chinese Optics. doi: 10.37188/CO.2020-0043

光场成像目标测距技术

doi: 10.37188/CO.2020-0043
基金项目: 国家自然科学基金委员会 中国工程物理研究院NSAF联合基金资助(No. U1730135)
详细信息
    作者简介:

    张石磊(1982—),男,黑龙江哈尔滨人,工程师,2020年于西北工业大学获得工学硕士学位,2006年起长期在92941部队从事测控靶标总体工作。E-mail:zsl71382@163.com

    闫斌斌(1981—),男,陕西西安人,副教授,2010年于西北工业大学导航、制导与控制专业获得博士学位,主要研究方向为飞行器制导控制和无人系统自主飞行。E-mail:yanbinbin@nwpu.edu.cn

    通讯作者: 闫斌斌(1981—),男,陕西西安人,副教授,2010年于西北工业大学导航、制导与控制专业获得博士学位,主要研究方向为飞行器制导控制和无人系统自主飞行。E-mail:yanbinbin@nwpu.edu.cn
  • 中图分类号: TP391

Light field imaging target ranging technology

Funds: Supported by NSAF (No: U1730135)
More Information
图(20) / 表 (2)
计量
  • 文章访问数:  16
  • HTML全文浏览量:  5
  • PDF下载量:  3
  • 被引次数: 0
出版历程

光场成像目标测距技术

doi: 10.37188/CO.2020-0043
    基金项目:  国家自然科学基金委员会 中国工程物理研究院NSAF联合基金资助(No. U1730135)
    作者简介:

    张石磊(1982—),男,黑龙江哈尔滨人,工程师,2020年于西北工业大学获得工学硕士学位,2006年起长期在92941部队从事测控靶标总体工作。E-mail:zsl71382@163.com

    闫斌斌(1981—),男,陕西西安人,副教授,2010年于西北工业大学导航、制导与控制专业获得博士学位,主要研究方向为飞行器制导控制和无人系统自主飞行。E-mail:yanbinbin@nwpu.edu.cn

    通讯作者: 闫斌斌(1981—),男,陕西西安人,副教授,2010年于西北工业大学导航、制导与控制专业获得博士学位,主要研究方向为飞行器制导控制和无人系统自主飞行。E-mail:yanbinbin@nwpu.edu.cn
  • 中图分类号: TP391

摘要: 为了使现代制导律能够在图像制导中得以应用,提高图像制导的性能,针对图像制导难以获取目标距离信息的问题,提出基于光场成像的目标测距算法。该算法首先对光场数据进行解码和整定,从原始图像中提取出子孔径图像;其次对两张子孔径图像进行双线性插值来提高图像的空间分辨率;之后选取两张子孔径图像进行标定获取对应的内参数和外参数,利用这些参数校正子孔径图像,使其共面且行对准;最后采用半全局匹配方法进行图像匹配获取目标的视差值,将视差进行三维转换即可得到目标距离。实验结果表明,改进前算法平均测量误差为28.54 mm,改进后算法平均测量误差为14.96 mm,距离测量精度得到有效提高,能够在较为复杂的场景中有效提取目标距离信息,具有一定的理论和应用价值。

English Abstract

张石磊, 崔宇, 邢慕增, 闫斌斌. 光场成像目标测距技术[J]. 中国光学. doi: 10.37188/CO.2020-0043
引用本文: 张石磊, 崔宇, 邢慕增, 闫斌斌. 光场成像目标测距技术[J]. 中国光学. doi: 10.37188/CO.2020-0043
ZHANG Shi-lei, CUI Yu, XING Mu-zeng, YAN Bin-bin. Light field imaging target ranging technology[J]. Chinese Optics. doi: 10.37188/CO.2020-0043
Citation: ZHANG Shi-lei, CUI Yu, XING Mu-zeng, YAN Bin-bin. Light field imaging target ranging technology[J]. Chinese Optics. doi: 10.37188/CO.2020-0043
    • 图像制导利用目标辐射或反射的可见光信息形成图像,在图像中提取目标位置并实现跟踪,具有隐蔽性好、抗电磁干扰强等优点[1],目前已在多种型号的导弹中得到应用。图像制导系统的核心器件是可见光摄像机,一般由光电系统、光电转换器件和信号处理电路等组成,传统摄像机通过对光线的角度信息进行积分来得到普通的二维数字图像,仅记录了光线的空间信息,因此无法利用图像进行目标距离信息的获取,这就限制了现代制导律在图像制导中的应用,尽管利用激光[2-3]等方式可以测距,但多余器件的加入会增加系统的复杂度,不利于图像制导整体性能的提升。

      光场成像不同于传统成像方式,其可以记录光线的多维信息,实现对光线空间和角度的辨识,从而让传统图像算法[4-6]在光场中能够得到进一步的发展。在光场理论不断丰富的同时,光场捕获设备的相关研究也在不断发展,Yang[7]设计了一种多相机阵列光场捕获设备,能够对动态场景进行记录,但这种设备体积庞大并且成本高昂,难以实现工程和商业应用。Ng[8]简化了传统光场捕获设备的结构,在主透镜和传感器之间加入微透镜阵列,设计出一种全新的光场相机Lytro,该相机体积小且成本低,一经面世即受到广泛关注,将传统的光学研究[9-11]带入了新的领域,中国科学院的解培月[12]给出了光场变换方程,并利用这些方程建立了光场相机成像模型。西北工业大学的张春萍[13]对光场相机的成像模型和参数标定方法进行了归纳和总结。在光电计算方面,Lin等人[14-15]利用光学衍射属性搭建全光学深度学习模型,为下一代智能光场采集设备提供指导。在深度图像提取方面,Shin[16]采用数据增强和CNN训练进行深度估计,有效解决了训练数据不足的问题。Peng[17]则利用子孔径图像的发散性和顺应性设计组合损失函数,利用神经网络训练得到深度图像。为了实现对光场的视点合成,Zhou[18]利用彩色图像层和透明度层进行视点图像的快速获取。Yeung[19]则直接对四维光场数据进行神经网络训练,通过多维度信息融合获得合成图像。光场图像记录了丰富的光线信息,可以利用单张光场图像提取出目标距离信息,使现代制导律能够在图像制导中应用,提高制导精度和制导性能。

      本文利用光场成像进行目标距离信息提取,通过对光场数据解码和整定获得子孔径图像,利用插值增加图像的空间分辨率,然后通过标定、校正、匹配和三维转换得到目标真实距离。仿真结果表明,本文提出的算法测量精度高,同时运算速度快,能够通过单张光场图像获取距离,对图像制导的发展有一定的应用意义。

    • 当前主流光场相机采用的是多路复用模式进行光场捕获,通常是在主透镜和传感器之间添加微透镜阵列,其中Lytro光场相机是这类相机的典型代表,目前已经实现商业化生产,同时在学术研究中也得到广泛关注,因此本文基于该相机进行理论分析和仿真实验。图1为基于微透镜阵列的光场成像原理图,光线经过微透镜时会再一次发生折射,这样可以避免传感器对光线角度信息积分,从而在传统空间分辨的基础上实现角度分辨。光场数据一般由四维函数$L\left( {x,y,u,v} \right)$进行表示,其中$\left( {x,y} \right)$记录的是光线的空间信息,即传统图像中的二维像素位置,$\left( {u,v} \right)$记录的是光线角度信息,即光线射入方向,可以简化为光线在主透镜射出的位置。

      图  1  光场成像原理

      Figure 1.  Light field imaging principle

      将光场文件导出并解码来获得四维光场数据,把每个空间像素位置处的角度数据按照对应顺序进行排列,可以复现出相机传感器捕获的原始光场图像,如图2所示,图像呈现出明显的圆形分割现象,这正是微透镜阵列对光线折射而产生的记录结果。

      图  2  原始光场图像

      Figure 2.  Original light field image

      当光场函数中角度位置为固定值$\left( {{u^*},{v^*}} \right)$时,光场数据$L\left( {x,y,{u^*},{v^*}} \right)$可以简化为二维数据信息,其形成的图像称为子孔径图像。图3展示了不同角度位置子孔径图像按顺序排列而成的组合,由于相机自身结构限制导致边角位置处图像亮度较低,需要后期进行滤波处理来恢复正常成像。子孔径图像等效于从主透镜某个位置射出的光线组合而成的图像结果,尽管在视觉上难以辨识出图像的区别,但是不同的子孔径图像之间是存在视差的,这也使得利用子孔径图像进行距离测量成为可能。

      图  3  子孔径图像

      Figure 3.  Sub-aperture images

    • 子孔径图像相当于从不同视角对同一场景进行拍摄,因此每张图像可以等效为一个虚拟相机的记录结果。若想对两张子孔径图像的视差大小进行获取,首先需要对其相对应的虚拟相机进行标定,目前有众多的相机标定算法,其中张正友标定法[20]不需要特殊的标定材料,仅需要一张棋盘格标定板即可以获得较为精确的结果,在视觉领域得到广泛应用,因此本文采用该方法完成对虚拟相机的标定过程。

      标定过程要确定世界坐标系$\left( {{O_W},{X_W},{Y_W},{Z_W}} \right)$、相机坐标系$\left( {{O_C},{X_C},{Y_C},{Z_C}} \right)$、图像物理坐标系$\left( {{o_2},s,t} \right)$和图像像素坐标系$\left( {{o_1},x,y} \right)$之间的转换关系,图4为三者之间的空间相对位置,其中${O_W}$位置是人为定义的,${O_C}$位于相机光心,${o_1}$${o_2}$位于成像平面,空间物理点P在四个坐标系中均有相应的坐标。

      图  4  坐标系空间相对位置

      Figure 4.  Relative position in coordinate system

      事实上标定最终目的是完成世界坐标系至图像像素坐标系的转换,可以得到

      $$\begin{array}{l} s\left[ {\begin{array}{*{20}{c}} x \\ y \\ 1 \end{array}} \right] = {\bf{A}}\left[ {{\bf{R}}\;\;{\bf{T}}} \right]\left[ {\begin{array}{*{20}{c}} {{X_W}} \\ {{Y_W}} \\ {{Z_W}} \\ 1 \end{array}} \right] \\ \\ \end{array} $$ (1)

      式中,s为比例系数,A表示相机内参数矩阵,R为旋转矩阵,T为平移向量,RT合称为外参数矩阵。为了简化计算,一般将${Z_W}$置为0,同时令${\bf{H}} = {\bf{A}}\left[ {{\bf{R}}\;\;{\bf{T}}} \right]$,其中H称为单应性矩阵,其具有八个自由度,只需要四个角点获得的八个方程即可求解出H

      之后将单应性矩阵改写为${\bf{H}} = \left[ {\begin{array}{*{20}{c}} {{h_1}}&{{h_2}}&{{h_3}} \end{array}} \right]$,同时旋转矩阵拆分为${{R}} = \left[ {{r_1}\;\;{r_2}} \right]$,根据旋转矩阵性质可以得到

      $$\begin{split} & h_1^T{{\bf{A}}^{ - T}}{{\bf{A}}^{ - 1}}{h_2} = 0 \\ & h_1^T{{\bf{A}}^{ - T}}{{\bf{A}}^{ - 1}}{h_1} = h_2^T{{\bf{A}}^{ - T}}{{\bf{A}}^{ - 1}}{h_2} \\ \end{split} $$ (2)

      内参数矩阵A含有五个未知参数,因此由三个单应性矩阵获得的六个方程即可进行求解,不同的单应性矩阵可通过改变标定板姿态即可得到。至此已经完成初始标定过程,为了得到更为准确的标定结果,通常选取十个及以上的标定板姿态参与计算,采用极大似然法进行估计,获得误差最小的标定参数。

    • 通过标定可以获得虚拟相机的内外参数,利用这些参数即可实现对子孔径图像的校正过程。图5为极线校正示意图,其中OlOr分别为左右虚拟相机的投影中心,OlOr连线与成像平面相交于eler,这两点称为极点,空间点P与OlOr的连线和成像平面相交于plpr,其与极点的连线称为极线。

      图  5  极线校正

      Figure 5.  Epipolar correction

      将旋转矩阵R进行分割,可以得到

      $$\begin{split} &{{r}_{l}}={{\bf{R}}^{{\scriptstyle{}^{1}\!\!\diagup\!\!{}_{2}\;}}} \\ & {{r}_{r}}={{\bf{R}}^{-{\scriptstyle{}^{1}\!\!\diagup\!\!{}_{2}\;}}} \\ \end{split}$$ (3)

      为了使极线水平,首先需要构造出一个单位平移向量

      $${{{e}}_{{1}}} = \frac{{{T}}}{{\left\| {{T}} \right\|}}$$ (4)

      之后再构造一个向量与${{{e}}_1}$及光轴正交,可以得到

      $${{{e}}_2} = \frac{1}{{\sqrt {T_x^2 + T_y^2} }}{\left( { - {T_y},{T_x},0} \right)^T}$$ (5)

      最后建立向量${{{e}}_3}{\rm{ = }}{{{e}}_1} \times {{{e}}_2}$,使其分别与前两个向量正交,最终可以得到左右校正矩阵

      $$\begin{split} &{{{R}}_l} = \left[ {\begin{array}{*{20}{c}} {{{{e}}_1}}\\ {{{{e}}_2}}\\ {{{{e}}_3}} \end{array}} \right] \cdot {r_l}\\ &{{{R}}_r} = \left[ {\begin{array}{*{20}{c}} {{{{e}}_1}}\\ {{{{e}}_2}}\\ {{{{e}}_3}} \end{array}} \right] \cdot {r_r} \end{split}$$ (6)

      利用校正矩阵对左右图像处理,可以使两张子孔径图像重投影至同一平面,同时相同位置的像素在同一行,这将大大减小匹配的时间消耗。

    • 利用图像匹配可以获得两张子孔径图像之间的视差大小,其中BM(Block Matching)算法运算速度快,同时还能获得较为准确的匹配结果,适合于实际应用。图6为BM图像匹配示意图,匹配过程是通过窗口形式进行计算,此处以3*3窗口进行描述,实际上窗口大小是可以根据需求进行改变的。

      图  6  图像匹配

      Figure 6.  Image matching

      计算左右图像窗口内的误差之和,可以得到

      $$SAD = \sum\limits_{i = 1}^9 {\left| {{A_i} - {B_i}} \right|} $$ (7)

      将此SAD值作为窗口内中间像素的计算结果。图7为视差获取示意图,以左图像中某一元素$\left( {{x_0},{y_0}} \right)$为基准,在右图像同一行内不断搜索,寻找到使SAD最小的像素位置,该点即为最佳匹配点,其坐标与左图像中的坐标${x_0}$之差即为视差d

      图  7  视差求取

      Figure 7.  Parallax finding

      为了提高匹配的鲁棒性,此处设置了最大视差点来防止误匹配的产生,使匹配过程在有限范围内进行。同时设置差异率UR进一步极高匹配准确度,可以得到

      $$SAD\left( {d'} \right) \text{≥} SAD\left( {{d^*}} \right) \cdot \left( {1 + \frac{{UR}}{{100}}} \right)$$ (8)

      式中,${d^*}$表示最佳匹配点,$d'$表示次佳匹配点,只有当最佳点的SAD值低于设置的差异阈值时将其保留,否则认为其可信度不高而置为0。

    • 当校正完成后,左右图像位于同一平面且光轴平行,图8为三维转换示意图,其中OlOr为左右相机光心,O1O2为左右成像平面中心,利用相似关系可以将视差值转化为真实距离。

      图  8  三维转换

      Figure 8.  3D conversion

      通过简单的几何分析即可得到转换矩阵为

      $${\bf{Q}} = \left[ {\begin{array}{*{20}{c}} 1&0&0&{ - {C_x}} \\ 0&1&0&{ - {C_y}} \\ 0&0&0&f \\ 0&0&{\dfrac{1}{T}}&{\dfrac{{{{C'}_x} - {C_x}}}{T}} \end{array}} \right]$$ (9)

      式中,${C_x}$${C_y}$${O_1}$在左图像像素坐标系的位置,${C_x}^\prime $${O_2}$在右图像像素坐标系的位置,利用该矩阵进行转化,可以得到

      $${\bf{Q}}\left[ {\begin{array}{*{20}{c}} {{x_{l2}}} \\ {{y_{l2}}} \\ d \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {W{X_P}} \\ {W{Y_P}} \\ {W{Z_P}} \\ W \end{array}} \right]$$ (10)

      式中,${x_{l2}}$${x_{r2}}$为交点${x_l}$${x_r}$在各自像素坐标系中的位置,d为视差大小,$\left( {{X_P},{Y_P},{Z_P}} \right)$为点P在左相机坐标系中的位置,其中${Z_P}$即为目标与相机之间的距离。

    • 初始算法能够完成目标距离信息的获取,为了进一步提高测量精度,本文从两个方面对原始方法进行改进。

    • 多路复用光场相机传感器同时记录了光线的角度信息和空间信息,多余维度信息的记录会占用原始的空间信息位置,实际上是用空间分辨来换取角度分辨,这就导致子孔径图像的分辨率是较低的,从而影响图像匹配的进程,增加误匹配点的产生。因此本文采用双线性插值方法来增大子孔径图像的空间分辨率,以此来提高匹配准确度,进而增加距离测量精度。

      图9为双线性插值示意图,其中[.]为向下取整,点$\left( {x,y} \right)$处的像素值大小为$Z\left( {x,y} \right)$,在重投影过程中xy均可能不为整数,此时原始图像中并不存在该点像素值,需要通过二维插值的方式来获得。

      $a = x - [x]$$b = y - [y]$,先在$x$方向进行插值,得到

      $$\begin{split} &{{t_1} = aZ\left( {[x] + 1,[y]} \right) + \left( {1 - a} \right)Z\left( {[x + 1],[y]} \right)}\\ &{{t_2} = aZ\left( {[x] + 1,[y] + 1} \right) + \left( {1 - a} \right)Z\left( {[x],[y] + 1} \right)} \end{split}$$ (11)

      之后在$y$方向插值即可得到

      $$Z\left( {x,y} \right) = \left( {1 - b} \right){t_1} + b{t_2}$$ (12)

      此时完成像素的插值过程,子孔径图像的空间分辨率可以作任意比例的扩大。

      图  9  双线性插值

      Figure 9.  Bilinear interpolation

      由于双线性插值过程对原始子孔径图像进行了修改,因此其对应的虚拟相机内外参数均会发生改变,因此需要重新进行标定过程。首先将标定板子孔径图像空间分辨率先按照对应比例进行扩大,之后执行标定算法获得新的内外参数,依据新内外参数对插值后的图像进行校正,实现新的左右子孔径图像行对准,最后进行图像匹配和三维转换得到目标距离。

    • 尽管BM算法能够获得较为准确的匹配结果,但在一些较为复杂场景中很容易产生误匹配现象,对于视差获取造成很大影响。为了在不影响实时性的条件下提高匹配可靠性,本文采用半全局匹配算法进行改进。

      在半全局算法中首先需要构造一个基于视差的全局能量函数,使能量函数最小即可获得每个像素点的最佳视差大小,然而求解过程会耗费大量时间,这在实际应用中是不被允许的,因此需要将初始能量函数求解问题分解为多个一维线性问题,对每一条路径建立代价方程

      $$\begin{split} { {L_r}\left( {p,d} \right) = \,}&{\min \left( {{L_r}\left( {p - r,d} \right),{L_r}\left( {p - r,d \pm 1} \right) + {P_1},\mathop {\min }\limits_i {L_r}\left( {p - r,i} \right) + {P_2}} \right) } \\ & {- \mathop {\min }\limits_i {L_r}\left( {p - r,i} \right) + C\left( {p,d} \right) }\\[-10pt] \end{split} $$ (13)

      式中,$r$表示某一方向,${L_r}\left( {p,d} \right)$表示在$r$方向下$p$点位置视差为$d$时的最小代价值,$C\left( {p,d} \right)$表示$p$点视差为$d$时的代价值,${P_1},{P_2}$为惩罚系数。

      最终将各条路径的代价值求和即可得到

      $$S\left( {p,d} \right) = \sum\limits_r {{L_r}\left( {p,d} \right)} $$ (14)

      使$S\left( {p,d} \right)$最小的视差$d$即为$p$点的最佳视差大小。

      为了提高匹配的鲁棒性,对于半全局匹配算法同样采用窗口计算形式,同时设置了最大视差点对匹配范围进行了一定限制,同时采用差异率来排除可信度低的视差。由于匹配算法没有改变原始子孔径图像,因此不需要重新进行标定和校正过程。

    • 为了验证算法的可行性,本文使用光场相机捕获的图像进行距离测量。试验中采用的是Lytro光场相机,角度分辨率为11*11,空间分辨率为379*379;待测物体为图2中的包装盒目标,其与相机真实距离为450 mm;仿真平台硬件环境为:Intel(R) Core(TM) i5-8300H CPU @2.30 GHz,8 GB内存的PC机;软件工具为:MATLAB 2018a,Visual Studio 2015,OpenCV3.4.1。为了提高测量精度,本文选取了基线较长的两个子孔径视角$L\left( {x,y,5,2} \right)$$L\left( {x,y,5,10} \right)$,其所对应的虚拟相机分别为左相机和右相机

    • 首先需要对左右虚拟相机进行标定,此处以$L\left( {x,y,5,2} \right)$处的子孔径图像为例,试验中共采用了20个姿态的标定板图像,图10展示了这些图像,同时图11直观显示了对原始标定板的姿态复现,可以看出通过标定能够较为准确地获得虚拟相机参数。

      图  10  不同姿态的标定板图像

      Figure 10.  Images of calibration plates with different attitudes

      图  11  标定板姿态复现

      Figure 11.  Calibration plate posture reproduction

      此时计算得到左虚拟相机内参数为

      $${\bf{A}} = \left[ {\begin{array}{*{20}{c}} {540.991}&0&{192.891}&0 \\ 0&{541.535}&{177.996}&0 \\ 0&0&1&0 \end{array}} \right]$$ (15)

      以同样的方法对右虚拟相机进行标定,得到其内参数为

      $${{\bf{A}}_2} = \left[ {\begin{array}{*{20}{c}} {539.280}&0&{200.904}&0 \\ 0&{539.808}&{177.332}&0 \\ 0&0&1&0 \end{array}} \right]$$ (16)

      最终得到两台虚拟相机进行立体标定,得到其旋转矩阵R*和平移矩阵T*分别为

      $$\begin{array}{l} {{\bf{R}}^*} = \left[ {\begin{array}{*{20}{c}} {0.999}&{ - 0.001}&{ - 0.034} \\ {0.001}&{1.000}&{0.005} \\ {0.034}&{ - 0.005}&{0.999} \end{array}} \right] \\ \\ {{\bf{T}}^*} = \left[ {\begin{array}{*{20}{c}} { - 2.142}&{ - 0.005}&{0.131} \end{array}} \right] \\ \end{array} $$ (17)

      获得内外参数后即可进行校正,图12为校正结果,可以看出校正完成后的两张子孔径图像平行且实现了行对准。

      图  12  校正图像

      Figure 12.  Correcting image

      之后采用BM算法进行匹配,从最小值开始逐步增加窗口、最大视差点和差异率大小,直至能较为清晰地辨识出目标物体的轮廓,此时将窗口大小设置为7*7,最大视差点设置为16,差异率设置为5,得到图13所示的匹配深度图像,图像中的灰度值代表着该位置的距离信息,此时能够识别出目标的位置。

      图  13  小参数匹配

      Figure 13.  Small parameter matching results

      为了提高匹配的准确度和可信度,尽可能减少误匹配点,把参数在一定范围内不断增大,直至目标物体的视差图不再发生较为显著的变化,此时窗口大小设置为17*17,最大视差点设置为128,差异率设置为40,得到图14的匹配深度图像,此时获得的视差位置为可信度更高,有利于提高距离测量的准确性,此时将矩形区域内不为0的像素点称为有效像素点。

      图  14  大参数匹配

      Figure 14.  Large parameter matching results

    • 采用双线性插值将原始子孔径图像空间分辨率扩大为758*758,对初始标定板图像插值后进行重新标定,得到左虚拟相机内参数为

      $${{\tilde{\bf{ A}}} = \left[ {\begin{array}{*{20}{c}} {1\;080.462}&0&{374.987}&0 \\ 0&{1\;081.982}&{352.004\;3}&0 \\ 0&0&1&0 \end{array}} \right]}$$ (18)

      右虚拟相机内参数为

      $${{{\tilde{\bf{ A}}}_2} = \left[ {\begin{array}{*{20}{c}} {1\;079.897}&0&{418.675}&0 \\ 0&{1\;081.852}&{348.325}&0 \\ 0&0&1&0 \end{array}} \right]}$$ (19)

      旋转矩阵和平移矩阵分别为

      $$\begin{array}{l} {{\tilde {\bf{R}}}^*} = \left[ {\begin{array}{*{20}{c}} {1.000}&{ - 0.001}&{ - 0.033} \\ {0.001}&{1.000}&{0.003} \\ {0.033}&{ - 0.004}&{1.000} \end{array}} \right] \\ \\ {{\tilde {\bf{T}}}^*} = \left[ {\begin{array}{*{20}{c}} { - 2.200}&{ - 0.023}&{0.233} \end{array}} \right] \\ \end{array} $$ (20)

      可以看出插值对于内外参数的数值有较大影响,之后进行校正和BM匹配过程,此时同样将窗口大小设置为17*17,最大视差点设置为128,差异率设置为40,得到匹配结果如图15所示,从视觉上而言矩形区域内有效像素点较少,但此时图像分辨率已经扩大,因此实际上像素点数目是大于原始算法的。

      图  15  插值后匹配结果

      Figure 15.  Matching results after interpolation

    • 由于仅修改了匹配方式,此时无需重新进行标定过程,此时为了实现有效对比,同样将窗口大小设置为17*17,最大视差点设置为128,差异率设置为40,得到匹配结果如图16所示,可以看出矩形区域内的有效像素点显著增加,大大提高了结果的可信度。

      图  16  半全局匹配结果

      Figure 16.  Semi-global matching result

    • 同时采用双线性插值和半全局匹配对初始算法进行改进,将窗口大小设置为17*17,最大视差点设置为128,差异率设置为40,得到的图17所示的匹配结果,此时可以得到更为清晰的深度图像。

      图  17  双重改进结果

      Figure 17.  Double improvement

    • 为了提高距离测量的准确性,只采用子孔径图像盒状目标区域内的有效像素点计算距离结果,求取这些点的距离平均值。表1给出了算法的各项指标:

      表 1  算法对比分析

      Table 1.  Algorithm comparison analysis

      距离测量有效像素点
      初始算法488.57 mm 8051
      双线性插值算法480.59 mm21363
      半全局匹配算法483.10 mm16659
      双重改进算法466.55 mm57441

      可以看出初始算法有效像素点较少,距离测量误差相对较大;双线性插值算法以及半全局匹配算法均较大幅度地增加了有效像素点数目,同时在一定程度上提高了距离测量精度;双重改进算法不仅大幅增加了有效像素点数量,同时距离测量精度也得到有效提高,使误差减小至20 mm以内,在复杂场景条件下可以大大提高测量的可信度与准确性。

      为了进一步验证算法的可行性,采用不同的物体目标及距离进行试验,得到的结果如图18图19图20所示,可以看出改进算法能够识别出更多的细节,提高了深度图像的质量。

      图  18  A物体测量

      Figure 18.  A Object measurement

      图  19  B物体测量

      Figure 19.  B Object measurement

      图  20  C物体测量

      Figure 20.  C Object measurement

      表 2  测量结果

      Table 2.  Measurement results

      真实距离距离测量有效像素点时间
      A-初始算法400 mm442.83 mm 172181.31 s
      A-改进算法400 mm431.14 mm1113806.42 s
      B-初始算法400 mm372.50 mm 31611.06 s
      B-改进算法400 mm392.54 mm 285575.83 s
      C-初始算法450 mm465.28 mm 41561.27 s
      C-改进算法450 mm443.72 mm 141685.76 s

      表2为A、B、C物体的测量结果,可以看出相对于初始算法,改进算法获得的有效像素点数目大大增加,同时距离测量的精度也得到有效提高,能够获得相对准确的测量结果。由于算法的运行平台为PC机,系统自身运行会产生大量的时间开销,而初始算法在专用硬件平台中是可以达到毫秒级的,改进算法的时间开销约为初始算法的五倍左右,依然可以满足实时性的需求。同时还可以看出,在相同距离下,由于匹配像素点的数目随着目标体积的增大而增加,误匹配产生的可能性也随之增大,因此大体积物体的距离测量误差较大。

    • 本文提出了基于光场成像的目标测距算法,首先从光场数据中提取出子孔径图像,之后对图像进行双线性插值处理,将插值后的图像进行标定获得对应虚拟相机的内参数和外参数,利用这些参数对子孔径图像进行校正,使其共面并且行对准;采用半全局匹配方法获得视差,通过三维转换将视差变为目标真实距离,实验结果表明,改进前算法平均测量误差为28.54 mm,改进后算法平均测量误差为14.96 mm,距离测量精度得到有效提高。当前能够对500 mm内目标进行精确的距离测量,在保证精度的同时实现远距离测量是下一步研究的方向。

参考文献 (20)

目录

    /

    返回文章
    返回