一种空间编码方法

文档序号:6653066阅读:604来源:国知局
专利名称:一种空间编码方法
技术领域
本发明属于三维传感与计量技术领域,特别涉及三维物体表面形貌的计算机重构技术中的空间编码方法。
三维物体表面轮廓的计算机重构技术是目前国内外三维传感与计量研究的热点之一,它被广泛地应用于航空航天、机械制造、在线检测与质量控制、医疗诊断、计算机辅助设计/计算机辅助制造(CAD/CAM)、机器人的视觉系统等领域。基于三角法的空间编码方法是三维形貌重构主要研究方向之一,然而现有的空间编码方法存在编码效率较低等不足,因此发展一种高效的、高精度的空间编码方法,日益受到各国专家的重视。
三角法的工作原理描述如下

图1a是空间坐标系XYZ的XZ平面视图,图1b是YZ平面视图。物点P是被测物体11表面上任意一点,CCD摄象机12和投影仪13放置在物体上方,它们的光轴成一定角度,图中分别将摄象机和投影仪简化成两个透镜。以摄象机镜头中心为原点(0,0,0),投影仪镜头中心的坐标是(X0,0,Z0),0是投影仪的光轴与摄象机的光轴的夹角。物点P相对于摄象机镜头的水平视角和垂直视角分别是α和β,相对于投影仪镜头的投影角为。按照投影仪镜头中心、摄象机镜头中心和物点P之间的几何三角关系,设P点的坐标是(X,Y,Z),可以建立下面的方程组
X=Z·tgα (2)Y=Z·tgβ (3)按照上面的方程组,只要已知物点的水平视角、垂直视角和投影角,就可以求出该点的三维位置坐标,其中视角α、β由物点P在摄象机CCD阵列中对应的像素位置给出。
CCD摄象机成像关系如图2所示,图中CCD阵列22对应的被测基准面21水平宽度为W,摄像机镜头23到被测基准面21的距离是L,物点P在CCD阵列上水平方向上的像素位置是m,CCD阵列水平方向总像素数是M,则水平视角α表示为α=tg-1(mM·WL)----(4)]]>同理,垂直视角β表示为β=tg-1(nN·HL)----(5)]]>其中,H是摄象机CCD阵列对应的被测基准面垂直高度,n是物点P在CCD阵列上垂直方向上的像素位置,N是CCD阵列垂直方向总像素数。投影角用条纹投影空间编码法求得。
空间编码三角法原理如图3所示,LCD投影仪33将投影图案A、B、C依次投影到被测空间31,如图3a所示;CCD摄象机依次记录下三幅灰度图像,如图3b所示;图像a、b、c分别对应图案A、B、C。在一般情况下,摄象机32正对被测空间31放置,投影仪33的光轴与摄象机32的光轴成一定的角度。投影图案中的黑白条在被测空间内形成亮暗条纹,这就在摄象机的图像中形成不同的灰度值。把图像二值化后,高灰度值的亮条纹表示为“1”,低灰度值的暗条纹表示为“0”。这样图像中的每一个像素获得一个三位字长的二进制编码,一个码位对应一幅图,顺序为第一位对应图像a,第二位对应图像b,依次类推。这就是说,不同的投影图案有不同的权,投影图案A的权最高,图案B其次,等等。
图3b中,采用的是最简单的二进制码投影图案,第一幅图案A由亮暗两条等宽度的条纹组成,第二幅图案B将第一幅中的两条条纹分别等分成两条亮暗条纹,以后的投影图案均将前一幅图案中的每一条条纹细分成两条等宽的亮暗条纹。图3a中用三幅投影图案将被测空间划分成8个区域d,每个区域用一个三位的二进制码字表示出来。区域0获得的编码是“000”,区域1获得的编码是“001”,区域2获得的编码是“010”,等等。然后将每个区域获得的二进制编码转换成该区域对应的投影码,这个过程称为译码。可以通过建立译码表或译码公式两种方法来完成译码过程。图3中投影图案的译码表表示如下表1译码表
按照上面的译码表编写搜寻译码程序,出计算机完成译码过程。二进制码投影图案还可以建立译码公式Np=Nd-2n-1+0.5(6)其中,Np是投影码,Nd是十进制编码,n是二进制码投影图案幅数。有了投影码,通过下面的关系式就可以求出投影角。
其中,L是镜头到被测基准面的距离,K是投影条纹在被测基准面上划分的子区域的宽度。
在上述的三角法测量中,使用的是简单的二进制编码,它的编码效率高达100%,但是它有明显的缺点。用图4所示的形式表示二进制编码的投影图案,每一幅图案用一排黑白方格表示,每一个方格对应一个编码区域,白方格表示亮条纹,二值化为“1”,黑方格表示暗条纹,二值化为“0”。图中有4幅投影图案,将被测空间划分成16个区域D,从右到左编号依次为1-16。区域6的编码是“0101”,区域7的编码是“0110”,而区域6和区域7分界地方的编码可能是“0101”、“0110”、“0100”、“0111”,其中编码“0100”和“0111”分别对应区域5和区域8。如果区域6和区域7分界地方被编码成“0100”或“0111”,就产生较大的编码误差,当被编码成“0101”或“0110”时,产生的误差最小。通过上述分析,可以得出这样的结论区域分界处发生黑白条纹变化次数越多,分界处编码的可能性越多,编码误差也就越大。如果将相邻编码分界处发生黑白条纹变化的次数定义为Hamming距离H,显然其变化范围为1-N(N是投影图案数),那么当Hamming距离为1时,边缘编码误差最小;当Hamming距离为N时,边缘误差最大。例如,图中所示条纹投影图案在区域8和区域9边缘处的Hamming距离H为4,产生的编码误差最大,在区域1和区域2边缘处的Hamming距离H为1,产生的编码误差最小。目前流行的编码方式是格雷码,它是相邻编码只有一位不同的编码方法,编码误差最小。然而格雷码编码效率低,效率只有25%,而且由于编码中有全亮和全暗区域,不能很好进行二值化,所以还需要发展更好的编码方法。
本发明的目的在于克服现有空间编码的不足之处,提出了一种空间编码方法,具有效率高、误差小的特点。
本发明提出的一种空间编码方法,其特征在于,包括1)每一个编码区域对应码字均不相同;2)相邻编码区域之间的Hamming距离均是1;3)每一个物点上至少有被一个亮条纹和一个暗条纹所投影的机会;4)投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度。
上述的空间编码方法的具体实现步骤可为1)设定投影的图案数目N,使投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度,每幅投影图案的明暗分布对应设定的编码区域M,组成一个N*M矩阵,该矩阵中的元素aij对应第j个编码区域的第i位的值;2)给矩阵的第一列赋初值,初始值可以由1和0任意组合,也可以取默认值;3)变化第一列中的一位的值,把它作为下一列;4)判断该列是否全为0或全为1或与前面的某列相同,如果是,则重新变化另一位的值,再判断;如果没有上述情况,则将其作为新生成的列;5)重复3、4步骤的过程,直至生成全部投影图案矩阵。
本发明所述的空间编码方法详细说明如下1.编码的相互独立性。
在编码图案中,每一个编码区域对应码字均不相同。这个条件是必要的,它使基于单一像素的三角法成为可能,令计算机自动处理编码时不会产生歧义。图5中列出了一种相互独立的二进制编码。
2.相邻编码区域之间的Hamming距离均是1。
这个条件使条纹投影空间二进制编码造成的边缘编码误差最小。图6中列出了一种Hamming距离H均为1的编码。
3.编码的自我规范化性。
测量中由于像素上取得的光强灰度值受投影物面的反射率影响,可能发生的情况是暗条纹在白色物面上产生的灰度值比亮条纹在黑色物面上产生的灰度值大。这样就不能用一个全局恒定的二值化阈值去满足所有的被测区域,全局阈值只适用于物面反射率一致且无外部光照或外部光照均匀的构造情况。因此,要求每一个物点上至少有被一个亮条纹和一个暗条纹所投影的机会,它对应的像素上的光强灰度值序列中就会含有一个较大和较小的灰度值。这样就可以按单一像素二值化以取得二进制编码,其阈值为该像素上较大和较小的灰度值的平均值。称这样的编码为能够自我规范化的,它能够适用于物面反射率不一致且有外部光照的非构造情况。
图7a的格雷码具有相邻码字的Hamming距离恒为1的特性,同时具有便于数据转化的特点。但是,该编码中含有不能自我规范化的区域D,它们是区域0和区域5。区域0由三个全亮的条纹构成编码,区域5由三个全暗的条纹构成编码。当进行动态阈值二值化时,它们当中的一些码位被二值化成“1”,另一些码位被二值化成“0”,从而产生编码错误。解决这个问题的方法是增加一幅全亮和一幅全暗的投影图案,以确保每一个码字能够自我规范化,如图7b所示。这相当于增加一个0和1位到每一个码字中,这样区域0和5由原来的码字“111”和“000”变成现在的码字“01000”和“01111”,可以实现动态阈值二值化。
4.编码要满足采样定理。
采样定理在这里可以描述为摄象机的采样频率是投影仪对物体表面的区域划分频率的两倍以上。即编码要满足投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度。
如图8所示,图中小方格表示CCD摄象机的一个像素在被测物面上对应的视野范围。图上投影条纹划分的最小区域的宽度大于两个像素视野宽度,满足采样定理。
空间二进制编码的效率是指在某一字长下编码生成的有效码字数目除以该字长,码字数目对应编码将被测空间划分的区域数目,码字数目越大,划分的区域越多,测量分辨率越高。
本发明当投影7幅图案时,编码效率为98.4%,当投影8幅图案时,编码效率为98.8%,远远高于格雷码25%的编码效率。实验证明,运用这种编码方法可以取得较好的测量结果。
附图简要说明
图1为三角法原理示意图。
图2为CCD摄象机成像关系示意图。
图3为空间编码三角法原理示意图。
图4为二进制码条纹投影图案示意图。
图5为本发明的编码的独立性示意图。
图6为本发明的Hamming距离均是1的编码图案示意图。
图7为本发明的编码的自我规范化示意图。
图8为本发明的编码的采样定理示意图。
图9为本发明的实施例的编码图案自动生成程序流程图。
图10为本实施例的二进制编码图案示意图。
本发明提出的一种空间编码方法实施例结合附图详细描述如下本实施例的空间编码方法利用程序自动完成,程序流程图如图9所示。首先设定要投影的图案数目N,这里取N=5。然后计算需要生成的投影矩阵的大小。矩阵的行数N为投影图案数目,为设定值5,其列数M为该编码对空间的划分个数,理论上应为2N个。但是这2N个划分中包括了全亮、全暗的编码,不能很好的二值化,还可能不满足Hamming距离为1的条件。如果按照N的奇偶分类,分别设定列数M=2N-2或M=2N-3,那么就一定可以保证生成的编码符合本发明设定的条件。接下来输入初始列或采用默认值。下面由程序变换这一列中的一位,并检查该列是否全零(全暗)、全一(全亮)或与前面的列重复,进而决定接受该列或变化另一位继续检查,直到得到满意的列。这样逐列生成编码,当全部编码生成后,输出编码矩阵。图10是用这个程序生成的一组5位的二进制编码图案,它有30个码字,将被测空间划分成30个子区域,每个码字是一个5位字长的二进制编码。这组编码图案是用缺省初始列[10...0]T生成的,当然,如果采用不同的初始列,会生成不同的编码图案。
权利要求
1.一种空间编码方法,其特征在于,包括1)每一个编码区域对应码字均不相同;2)相邻编码区域之间的Hamming距离均是1;3)每一个物点上至少有被一个亮条纹和一个暗条纹所投影的机会;4)投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度。
2.如权利要求1所述的空间编码方法,其特征在于,具体实现步骤为1)设定投影的图案数目N,使投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度,每幅投影图案的明暗分布对应设定的编码区域M,组成一个N*M矩阵,该矩阵中的元素aij对应第j个编码区域的第i位的值;2)给矩阵的第一列赋初值,初始值可以由1和0任意组合,也可以取默认值;3)变化第一列中的一位的值,把它作为下一列;4)判断该列是否全为0或全为1或与前面的某列相同,如果是,则重新变化另一位的值,再判断;如果没有上述情况,则将其作为新生成的列;5)重复3、4步骤的过程,直至生成全部投影图案矩阵。
全文摘要
本发明属于三维传感与计量技术领域,包括:每一个编码区域对应码字均不相同;相邻编码区域之间的Hamming距离均是1;每一个物点上至少有被一个亮条纹和一个暗条纹所投影的机会;投影条纹划分的最小区域的宽度至少二倍于一个像素视野宽度。本发明具有效率高、误差小的特点。
文档编号G06T9/00GK1271143SQ00107759
公开日2000年10月25日 申请日期2000年5月26日 优先权日2000年5月26日
发明者尤政, 董斌, 于世洁 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1