王长璟,杨秋翔,刘晴晴
(中北大学 计算机与控制工程学院,山西 太原030051)
近年来,基于计算机和光电技术的三维测量[1]技术已经得到了较快的发展,形成了较完善的体系,目前的研究热点致力于提高三维测量的精度和速度以及一些特殊环境测量的研究,并取得了一定的研究成果。
在编码结构光三维测量[2]方法中,三维测量精度的高低是衡量一个三维测量方法好坏的重要指标。为解决光栅交界处像素点编码错误的问题,本文提出了一种可纠错的编码光栅方法,使编码光栅本身具有可纠错性,对误码问题进行检测和纠正。
本文采用可纠错编码的结构光编码光栅测量方法,属于非接触主动式三维测量方法的一种,非接触式三维测量方法是指将一定的光栅或者声波发送到物体表面,然后通过CMOS 图像采集传感器进行采集[3],再使用适当的模型和算法,求取物体表面的三维信息[4]。主动式三维测量方法是指利用一个专门的光源装置,而不是采用被测环境中存在的自然光。
使用的三维测量统主要由结构光投射器[5]、CMOS 传感器[6]以及PC 构成。其中,CMOS 传感器采用DHHV1351UM 摄像机,尺寸为54.5 mm×54.5 mm×46.1 mm,分辨率为1 280×1 024,像素尺寸为5.2 μm×5.2 μm,功耗为1.75 W。
硬件条件包括:计算机、结构光投射器、CMOS 传感器、黑白棋盘标定板、光滑的平面。
1)计算机:对CMOS 传感器采集到的图像进行处理。
2)结构光投射器:向被测物体投影结构光编码光栅图案和标准正弦光栅条纹图案。
3)CMOS 传感器:大恒DH—HV1351UM 摄像机,负责图像采集。
4)黑白棋盘标定板:对双目摄像机系统进行标定。
5)光滑的平面:被测物体。
软件为Matlab 2012 软件和图像采集系统。
图像采集系统采用的是大恒图像公司提供的图像采集处理系统。该系统提供了单帧采集和连续采集两种方式,可以同时对多个图像传感器(DH—HV1351UM 摄像机)进行采集,本文采用的是单帧采集模式,主要是采集投影在被测物体上的图像和黑白棋盘标定板的不同空间位置的图像。
Matlab 2012 软件主要是用来产生编码光栅条纹图和标准正弦光栅及实现四步相移,并对采集的图像进行处理,求取相位值,摄像机标定[7]求取系统参数等。
为确保双目相机的三维测量采集到具有较高的质量的图片,一是调整摄像机的位置和高度,确保被测物体在左右相机的拍摄范围内;二是调整摄像机的焦距和明暗程度,保证采集的图片清晰。此外,还要调整结构光投射器,保证投射图像的质量。实验平台如图1 所示。
图1 实验平台Fig 1 Experiment platform
为了解决基于格雷码的结构光光栅编码方法在实际测量中出现的黑白光栅交界处的误码问题,设计了一种基于汉明线性分组码的可纠错结构光光栅编码方案[8]。汉明码是1950 年由汉明首先构造的[9],用以纠正单个错误的线性分组码,由于汉明码编码非常简单,易于实现,被广泛使用在计算机和通信领域。
汉明码(n,k,d)中参数满足:n=2m-1,k=2m-1-m,d=3,用c=(cn-1,cn-2,…,c2,c1,c0)表示一个有n 个码元的汉明码,k 表示有k 个码元为一段,称为信息码元,n-k表示除信息元剩下的码元组成的一段,称为监督码元,d 表示最小汉明距离。在码字内,检测e 个错误,则要求码的最小距离d≥e+1;纠正t 个随机错误,则要求d≥2t+1。
根据汉明码(n,k,d)设计的编码光栅向被测物体投影时,共投影n 幅基于汉明码的编码光栅,其中,前k 幅编码图案组合起来的码字可以构成汉明码的信息位,对黑白光栅条纹进行定级。后投影的n-k 幅编码图案组合起来的码字是汉明的监督位,监督位的作用是与信息位一起实现纠错功能,并不对条纹光栅定级。
基于汉明码的可纠错编码的结构光栅的设计是基于汉明码的编解码原理,首先根据测量视场的大小和测量精度的要求,确定投影图案所需的光栅周期数,从而确定汉明码(n,k,d)中k 的值(即信息位的位数),进而根据需要设计合适的汉明码。
本文设计汉明码编码光栅时,令m=3,即n=23-1=7,k=23-1-3=4,是(7,4,3)汉明码c=(c6,c5,…,c2,c1,c0),可获得条纹节距最小的编码图案的光栅周期16。c6,c5,c4,c3代表4 个信息位,则c2,c1,c0代表3 个监督位。
所有(7,4,3)汉明码的码字,如表1 所示。
表1 汉明码的码字Tab 1 Hamming code
根据上述编码,设计相应的基于汉明码的编码光栅,如图2 所示。
图2 基于汉明码的可纠错编码光栅图案Fig 2 Error correction encoding grating patternbased on Hamming code
由图2 可以看出:基于汉明码的可纠错编码方法,根据汉明码的编码性质,在设计编码结构光光栅时,由信息位和监督位共同组成。对光栅条纹定级时只涉及信息位编码,增加一些校验位的光栅的设计和投影是为了利用汉明码的纠错原理,在解码过程中达到对黑白光栅条纹交界处的误码问题进行纠错的目的。
按序向被测物体表面投影并采集,编码图案组合起来对像素点编码的示意图如图3 所示。
图3 基于汉明码的编码光栅的像素点编码示意图Fig 3 Pixel point encoding diagram of encoding grating based on Hamming code
图3 中,虚线表示处于黑白光栅交界处的任意像素点的编码情况,P 点的正确的编码应该为C=0100110,取对应的信息位,对应的条纹级数应该为4,然而,在实际情况中,假设在黑白条纹交界处由于受外界因素的干扰发生了误码问题,实际获取的像素点P 的编码码字R=0110110,对应的条纹级数因误码变成了6,现在就可以根据汉明码的纠错原理对P 点所获取的码字R=0110110 进行纠错,通过计算可知,S=101 时(S 为校正子)对应c4码元出错,因此,将R=0110110 中的c4码元的1 纠正为0,进而得到正确的码字C=0100110。
从对设计的可纠错编码的结构光光栅解码时的纠错过程来看,该方法依据汉明码的纠错原理,能够有效地解决黑白光栅交界处的误码问题,通过实验验证证明了本文所提出方法的正确性。
[1] 杨云涛.非接触式人体三维测量系统的研究[D].长春:吉林大学,2006.
[2] 邢文哲.基于编码结构光的三维重建[D].西安:西安电子科技大学,2009.
[3] 陈振宇,李忠新.微小型弹载图像采集系统设计[J].传感器与微系统,2015,34(3):116-119.
[4] 陶 奇.基于投影结构光技术的三维重构研究[D].杭州:浙江大学,2010.
[5] 宗明理.主动式三维立体全景视觉传感技术的研究[D].杭州:浙江工业大学,2012.
[6] 仲丛久,张芝贤,关宗安,等.基于CMOS 传感器的图象采集系统的设计[J].工矿自动化,2008,4(2):113-115.
[7] Zhang Zhengyou.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[8] 刘晴晴.基于可纠错编码的结构光三维测量方法研究[D].太原:中北大学,2014.
[9] 王新梅,肖国镇.纠错码——原理与方法[M].西安:西安电子科技大学出版社,2011:17-99.