专利名称:一种可全局索引编码序列的产生方法及其应用的制作方法
技术领域:
本发明涉及一种用于三维计算机视觉实现方面的可全局索引编码序列的产生技术,尤其是一种最长可全局索引编码序列的产生方法及其应用。
背景技术:
编码结构光三维视觉系统,通常可以达到较高的测量精度和较低的设备成本。其原理是把立体视觉一个摄像机用模式投射仪来代替。该投射仪发出一组可编码的光模板并投射到物体表面上,另一个摄像机检测到经物体表面反射的图像后即可利用三角形原理进行三维重构。相比传统双目立体视觉方法,由于这个外部的光投射装置被用来主动地发出某种能量,也就是说它们是以特定的方式来探测场景而不是被动地依靠自然光能,所以其视觉过程基本上不存在匹配歧义问题,可以直接得到物体的外形信息,而且可靠性好精度比较高。然而,在通常的结构光视觉系统中,如果用条纹投影机进行二值编码或者灰度编码原理,通常需要数幅图片(通常是10多幅)才能复原一个三维场景的图象。现有的编码方法存在的缺陷1、计算复杂,系统速度慢;2、编码获取的信息量较少,工作效率低。
发明内容为了克服已有的编码序列的产生方法及其应用的计算复杂、系统速度慢、工作效率低的不足,本发明提供一种计算简单、系统速度快、工作效率高的一种可全局索引编码序列的产生方法及其应用。
本发明解决其技术问题所采用的技术方案是一种可全局索引编码序列的产生方法,该方法包括以下步骤(1)、给定编码集合P={c1,c2,c3,...cp},p≥3,编码序列P的代码数量p,cp表示特定的物理量值代码(例如颜色值),码字长度参数k,k为大于1的整数;(2)、对于集合P,生成k元码字集合W,k元码字为长度为k的代码序列串,集合W中包含p(p-1)(k-1)个k元码字;(3)、将W内的码字进行从小到大排列,形成集合V;选取V中第p-1个码字作为编码序列S的起始码段,然后将第p-1个码字从W集合中删去;(4)、将集合V中所有以S序列中最后k-1个单元代码作为开始的码字,选取其中最大码字接到S中,形成一个新序列来替换原来S,进行相接时略去重复部分,把选中码字的最后一位单元代码加入到S中,并把本次选中的码字从集合V中删去;(5)、重复(4)的步骤,集合V中码字不断减少,S序列不断增长,直到集合V中的所有码字都接到了S序列上为止,形成一条最长可全局索引编码序列。
作为优选的一种方案在所述(2)中,对于k元码字相邻的单元对,它满足条件1条件1ci≠ci+1,1≤i<p在所述(5)中,最大编码序列中的任意k个相邻代码单元的组合Tki=[cici+1... ci+k-1,它在整个序列中是唯一存在的(也即在全局有唯一的索引值),即条件2Tki≠Tkj,i≠j,1≤i,j≤p-k+1。
作为优选的再一种方案当参数p和k给定时,在所述(5)中,所述最长编码序列长度为len=p(p-1)(k-1)+k-1。
进一步,在所述的(2)中,生成k元码字的方法采用排列组合法或者枚举法。
再进一步,所述的代码包括颜色、光强或电压物理量。
一种可全局索引编码序列的产生方法的应用,所述的可全局索引编码序列应用于三维计算机视觉处理。
本发明的工作原理为对于有p个代码的集合P,考虑任一k元码字,其形式为Ti=[ci(1)ci(2)... ci(k)]。根据排列组合原理,Ti的第一个单元有p种可能,后面的每个单元都有p-1种可能,因此满足“任意相邻两个单元的代码不同”条件的码字总个数是p(p-1)(k-1)个(形成集合W)。如果所有这些码字能连在一起,则序列的长度为p(p-1)(k-1)+2,而且序列中的任意两个k元码字必定不同(因为这个序列中刚好有且只有p(p-1)(k-1)个码字),从而形成一条最长编码序列。
所生成的最大编码序列,可以用于信息编码、信号传输以及计算机视觉等领域的工程实现。例如在一个三维结构光视觉系统中,通过投影仪可以把这种编码序列调制成彩色条纹光图案投射到场景中,用一个摄像机检测到物体表面已经编码序列照射的图像,通过分析代码分布可以解译出每个象素点所对应的投影坐标,再利用系统定标参数(即摄像机和投影仪的透视转换矩阵),便可以进行三维计算机以测量场景中每一个可见点的三维坐标。由于系统工作过程中只需要获取一幅场景图像,而且图像只需在局部进行处理,因此工作效率非常高,可以用于快速三维测量。
本发明的有益效果主要表现在1、用有限低阶计算的方法产生编码序列;2、所产生的序列为最大可全局索引编码序列,因而利用了有限的资源得到最多的信息;3、使用最长编码序列使得工程实现的效率高、系统速度快;4、可以实现彩色条纹图案编码的视觉方法,其优点是三维图象重建效率高、系统速度快、实时性好。
图1是当p=4,k=3时,由所有k元码字组成的集合W。
图2是当p=4,k=3时,由图1中集合W生成的最大可全局索引编码序列。
图3是由图2中编码序列应用于结构光视觉时生成的彩色条纹模板图形。
图4是把图3的条纹模板图形用于结构光视觉系统时的工作情形。
图5是当p=3,k=3时用本发明生成的最大可全局索引编码序列。
图6是当p=5,k=3时用本发明生成的最大可全局索引编码序列。
图7是当p=6,k=3时用本发明生成的最大可全局索引编码序列。
图8是当p=7,k=3时用本发明生成的最大可全局索引编码序列。
图9是当p=8,k=3时用本发明生成的最大可全局索引编码序列。
图10是当p=9,k=3时用本发明生成的最大可全局索引编码序列。
图11是当p=5,k=5时用本发明生成的最大可全局索引编码序列。
图12是当p=3,k=4时用本发明生成的最大可全局索引编码序列。
具体实施方式
下面结合附图对本发明作进一步描述。
实施例1参照图1、图2、图3、图4,一种最大可全局索引编码序列的产生方法,该方法包括以下步骤(1)、给定编码集合P={c1,c2,c3,...cp},p≥3,编码序列P的代码数量p,cp表示特定的物理量值代码,码字长度参数k,k为大于1的整数;(2)、对于集合P,生成k元码字集合W,k元码字为长度为k的代码序列串,集合W中包含p(p-1)(k-1)个k元码字;(3)、将W内的码字进行从小到大排列,形成集合V;选取V中第p-1个码字作为编码序列S的起始码段,然后将第p-1个码字从W集合中删去;(4)、将集合V中所有以S序列中最后k-1个单元代码作为开始的码字,选取其中最大码字接到S中,形成一个新序列来替换原来S,进行相接时略去重复部分,把选中码字的最后一位单元代码加入到S中,并把本次选中的码字从集合V中删去;(5)、重复(4)的步骤,集合V中码字不断减少,S序列不断增长,直到集合V中的所有码字都接到了S序列上为止,形成一条最长可全局索引编码序列。
本实施例中定义编码序列是一个符号串,串中的每一个单元是一个符号或者代码用以表示某种物理量(例如颜色、光强、电压等),串中任意相邻两个单元不同,并且串中邻近的若干个单元组成一个全局唯一的(即可全局索引的)码字。
可全局索引编码序列的最主要特征是码字的唯一性,这使得任一码字在整个序列中有唯一确定的索引值,因而在信息处理时只需要观察信号局部便知其来源。数学地,可以描述如下对于一个符号或代码(以下统称为代码)集合P,如果构造的一个代码序列(式1)同时满足下列条件1和2,则被称为编码序列。
S=[c1,c2,c3,...,cp](1)其中,p是序列的长度。
对于任何相邻的单元对,它满足条件1ci≠ci+1,1≤i<p(2)对于其中任意k个相邻代码单元的组合Tki=[cici+1... ci+k-1],它在整个序列中是唯一存在的,即条件2Tki≠Tkj,i≠j,1≤i,j≤m-k+1(3)定义k为固定整数值时,相应的序列被称为k元编码序列。
定义当集合P和数值k确定时,相应产生的最长序列称为最大编码序列,其长度为L(S)=p(p-1)(k-1)+2,(其中p是集合P中的代码种数)。
对于一个代码集合P={c1,c2,c3,...cp},p≥3,其中cp表示一种特定的物理量值代码,我们需要通过它产生一个最大编码序列。其特点是序列中任意相邻两个单元的代码不同,并且序列中邻近的k(k是大于1的自然数)个单元组成码字在整个序列中唯一存在。考虑k元码字的形式为Ti=[ci(1)ci(2)... ci(k)]。根据排列组合或枚举法原理,Ti的第一个单元有p种可能,后面的每个单元都有p-1种可能,因此满足“任意相邻两个单元的代码不同”条件的码字总个数是p(p-1)(k-1)个。这些码字形成集合W,例如,当p=4,k=3时,W集合为{121 123 124 131 132134 141 142 143 212 213 214 231 232 234 241 242 243 312 313 314 321 323 324 341342 343 412 413 414 421 423 424 431 432 434}。对于集合W,然后我们利用以下步聚生成编码序列S(1)将集合W中的所有码字从小到大排列,选取其中第p-1个作为序列S的起始码段。然后将第p-1个码字从W集合中删去。
(2)对于集合W中所有以S序列中最后k-1个单元代码作为开始的码字,选其中最大码字接到新的S序列中(相接时重复部分略去,即只加入选中码字的最后一位单元代码)。然后把选中的码字从集合W中删去。
(3)重复第(2)步工作,集合W中码字不断减少,S序列不断增长,直到集合W中的所有码字都接到了S序列上,从而形成一条最长编码序列S。该序列的长度为p(p-1)(k-1)+2,并且满足编码序列的条件。
具体实施时,可以使用以下算法产生最大编码序列[最大编码序列生成算法(给定参数p,参数k)]计算长度len=p(p-1)(k-1)+k-1;生成集合W={Ti|1<=i<=len-k+1},Ti为所有可能的k元码字;将W内的码字进行从小到大排列,形成V;初始化S=V(p-1);
把V中的第p-1个码字删去;初始化下标量index=k+1;while index<len+1(做循环直到S的长度达到len)w0=S(index-k+1:index-1);(下一码字的开始为S中的最后k-1个单元)S(index)=GetMaxWord(V,w0);(在V中得到以w0开头的最大码字)index=index+1;end;(循环体结束)返回结果S。
图1是当p=4,k=3时,由所有k元码字组成的集合W。图2是当p=4,k=3时,由图1中集合W生成的最大可全局索引编码序列。图3是由图2中编码序列进一步应用于结构光视觉时生成的条纹模板图形。(其中白色表示代码1,灰色表示代码2,灰白色表示代码3,黑色表示代码4)图4是把图3的条纹模板图形再进一步用于结构光三维视觉系统时的工作情形。图5至图12是取不同p和k值时用本发明生成的一些最大可全局索引编码序列实例。
实施例2参照图1~图12,实施例1生成的最大可全局索引编码序列,可以应用于三维计算机视觉等领域,可以实现高效率的实现技术。例如在视觉系统中,参照图4,其中1表示投影仪调制器,2表示摄像机成像面,3表示被检测物体。通过投影仪1可以把这种编码序列调制成彩色条纹光图案投射到场景中,用一个摄像机2检测到物体3表面已经编码序列照射的图像,通过分析代码分布可以解译出每个象素点所对应的投影坐标,再利用系统定标参数(即摄像机和投影仪的透视转换矩阵),便可以进行三维计算机以测量场景中每一个可见点的三维坐标。由于系统工作过程中只需要获取一幅场景图像,而且图像只需在局部进行处理,因此工作效率非常高,可以用于快速三维测量。
如果用条纹投影机进行二值编码或者灰度编码原理,通常需要数幅图片(通常是10多幅)才能复原一个三维场景的图象,而使用实施例1的编码序列则可能只用一张图片便获得其三维图象了。
权利要求
1.一种可全局索引编码序列的产生方法,其特征在于该方法包括以下步骤(1)、给定编码集合P={c1,c2,c3,...cp},p≥3,编码序列P的代码数量p,cp表示特定的颜色或者其它物理量值的代码,码字长度参数k,k为大于1的整数;(2)、对于集合P,生成k元码字集合W,k元码字为长度为k的代码序列串,集合W中包含p(p-1)(k-1)个k元码字;(3)、将W内的码字进行从小到大排列,形成集合V;选取V中第p-1个码字作为编码序列S的起始码段,然后将第p-1个码字从W集合中删去;(4)、将集合V中所有以S序列中最后k-1个单元代码作为开始的码字,选取其中最大码字接到S中,形成一个新序列来替换原来S,进行相接时略去重复部分,把选中码字的最后一位单元代码加入到S中,并把本次选中的码字从集合V中删去;(5)、重复(4)的步骤,直到集合V中的所有码字都接到了S序列上为止,形成一条最长可全局索引编码序列。
2.如权利要求1所述的一种可全局索引编码序列的产生方法,其特征在于在所述(2)中,对于k元码字相邻的单元对,它满足条件1条件1ci≠ci+1,1≤i<p在所述(5)中,可全局索引编码序列中的任意k个相邻代码单元的组合Tki=[cici+1...ci+k-1],它在整个序列中是唯一存在的,即条件2Tki≠Tkj,i≠j,1≤i,j≤p-k+1。
3.如权利要求1或2所述的一种最长可全局索引编码序列的产生方法,其特征在于当参数p和k给定时,在所述(5)中,所述最长可全局索引编码序列长度为len=p(p-1)(k-1)+k-1。
4.如权利要求3所述的一种可全局索引编码序列的产生方法,其特征在于在所述的(2)中,生成k元码字的方法采用排列组合法或者枚举法。
5.如权利要求3所述的一种可全局索引编码序列的产生方法,其特征在于所述的代码包括颜色、光强或电压物理量。
6.一种如权利要求1所述的可全局索引编码序列的产生方法的应用,其特征在于所述的可全局索引编码序列应用于三维计算机视觉处理。
全文摘要
一种可全局索引编码序列的产生方法,给定编码集合P={c
文档编号G06T9/00GK101042295SQ20071006681
公开日2007年9月26日 申请日期2007年1月23日 优先权日2007年1月23日
发明者陈胜勇 申请人:浙江工业大学