首页> 中国专利> 用于通过检测预定图案进行3D测量的方法和设备

用于通过检测预定图案进行3D测量的方法和设备

摘要

一种图像信息处理设备,其使用通过将包含二维符号序列的投影图案投影至被摄体上、并且拍摄被摄体的图像所获得的拍摄图像,来进行被摄体的三维测量,其中,投影图案是通过向二维配置多种类型的代码的投影代码串中的各代码分配预定符号而获得的。图像信息处理设备通过从拍摄图像提取符号序列来获得摄像图案,并且将摄像图案中的符号点转换成相应代码,从而获得摄像代码串。图像信息处理设备根据从多个类型的采样特征所选择的一个采样特征而获得预定数量的代码,通过配置所获得的代码而生成信息代码串,并且确定信息代码串和投影代码串的一部分之间的对应关系,从而进行三维测量。

著录项

  • 公开/公告号CN103098091A

    专利类型发明专利

  • 公开/公告日2013-05-08

    原文格式PDF

  • 申请/专利权人 佳能株式会社;

    申请/专利号CN201180043428.9

  • 发明设计人 园田哲理;

    申请日2011-08-31

  • 分类号G06T7/00;G06F11/08;

  • 代理机构北京魏启学律师事务所;

  • 代理人魏启学

  • 地址 日本东京都大田区下丸子3丁目30番2号

  • 入库时间 2024-02-19 19:50:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-09

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20110831

    实质审查的生效

  • 2013-05-08

    公开

    公开

说明书

技术领域

本发明涉及一种从利用投影预定图案所拍摄到的图像检测 该预定图案从而进行三维测量的图像信息处理设备及其控制方 法。

背景技术

测量物体的三维形状的设备被广泛应用于各种领域,例如, 在工业领域,用于检查工厂的部件,或者在医学领域,用于测 量生物体的形状。特别地,在存在对象物体可能因与测量设备 的接触而变形或破损的风险的情况下,非接触式测量方法是有 效的。在这类非接触式三维形状测量中,广泛使用这样一种方 案,在该方案中,使用利用摄像设备获得的图像进行三角测量 方法。例如,P.M.Griffin,L.S.Narashimhan,and S.R.Yee: “GENERATION OF UNIQUELY ENCODED LIGHT PATTERNS  FOR RANGE DATA ACQUISITION”,Pattern Recognition,Vol.25, pp.609-616(以下称为文献1)说明了下面的例子:通过利用投影 仪将具有颜色特征的点序列图案投影至被摄体、并且利用照相 机对反射光进行摄像,来进行三维形状测量。

下面具体说明文献1所述的三维测量的过程。首先,利用投 影仪将三色RGB点序列作为投影图案图像投影至被摄体,其中, 通过符合数学法则的二维代码串来确定颜色序列。利用照相机 拍摄被投影了投影图案图像的被摄体的图像,并且挑选在拍摄 图像中所观察到的点序列,作为摄像点序列。基于预定代码串, 将所挑选的摄像点序列中的相邻色的序列解码成摄像代码串。 使用投影图案图像的代码串的数学法则,确定所获得的摄像代 码串中包含的各部分的部分代码串和投影图案图像的代码串的 二维位置之间的对应关系。获取摄像代码串中的所有可能部分 代码串,如上所述确定部分代码串和二维位置之间的对应关系, 并且基于三角测量方法的原理获得各个点的三维位置。使用上 述过程进行被摄体的三维形状测量。

然而,在上述传统例子中,存在下面的问题:根据被摄体 的形状,对于不能从摄像代码串获取足够大小的部分代码串的 拍摄图像的区域,可能不能确定该对应关系,因而不能进行三 维形状测量。此外,还存在下面的问题:在从摄像点序列错误 地挑选了原本不相邻的点的序列的情况下、或者在由于噪声或 其他原因而将摄像点序列中的颜色判别为错误颜色的情况下, 将代码串与错误的二维位置相关联,并且输出是三维测量的不 正确结果。通过增大对应关系确定中所使用的部分代码串的长 度,这确实可能检测到这类错误对应关系,但是,另一方面, 出现的问题是,根据被摄体的形状,从摄像代码串不能挑选部 分代码串的区域可能增加更多。

发明内容

考虑到上述问题做出本发明,并且根据本发明的实施例, 提出一种减少对应关系的错误确定、并且甚至对于更多形状的 被摄体进行三维测量的更稳健的三维测量方法。

根据本发明的一个方面,提供一种图像信息处理设备,用 于使用通过将投影图案投影至被摄体上所获得的拍摄图像来进 行所述被摄体的三维测量,其中,所述投影图案是通过向二维 地配置了多种类型的代码的投影代码串中的各代码分配针对各 代码类型而不同的符号而获得的,所述图像信息处理设备包括: 获得部件,用于通过从所述拍摄图像提取符号来获得摄像图案; 转换部件,用于将所述获得部件所获得的摄像图案中的各符号 转换成相应代码以获得摄像代码串;生成部件,用于通过根据 采样特征从所述摄像代码串获得预定数量的代码、并且配置所 获得的代码,来生成信息代码串,其中,在所述采样特征中, 定义了所述预定数量的代码的采样位置和所述代码的顺序;以 及测量部件,用于通过基于所述信息代码串和所述采样特征而 确定所述信息代码串和所述投影代码串之间的对应关系,来进 行所述被摄体的三维测量。

另外,根据本发明的另一方面,提供一种用于控制图像信 息处理设备的方法,其中,所述图像信息处理设备用于使用通 过将投影图案投影至被摄体上所获得的拍摄图像来进行所述被 摄体的三维测量,所述投影图案是通过向二维地配置了多种类 型的代码的投影代码串中的各代码分配针对各代码类型而不同 的预定符号而获得的,所述方法包括以下步骤:获得步骤,用 于通过从所述拍摄图像提取符号来获得摄像图案;转换步骤, 用于将在所述获得步骤中所获得的摄像图案中的各符号转换成 相应代码以获得摄像代码串;生成步骤,用于通过根据采样特 征从所述摄像代码串获得预定数量的代码、并且配置所获得的 代码,来生成信息代码串,其中,在所述采样特征中,定义了 所述预定数量的代码的采样位置和所述代码的顺序;以及测量 步骤,用于通过基于所述信息代码串和所述采样特征而确定所 述信息代码串和所述投影代码串之间的对应关系,来进行所述 被摄体的三维测量。

通过以下参考附图对典型实施例的说明,本发明的其他特 征将显而易见。

附图说明

图1是示出三维测量设备的总体结构的图。

图2是示出投影图案图像的例子的图。

图3是示出生成投影图案图像所使用的投影代码串的例子 的图。

图4是示出三维测量设备的处理的流程的流程图。

图5A和5B是示出拍摄图像的例子和从拍摄图像所提取的 摄像点序列的例子的图。

图6是示出摄像代码串的例子的图。

图7是摄像代码串的一部分的放大图。

图8是示出用于获得信息代码串和冗余代码的方法(步骤 S408)的流程图。

图9是示出本发明实施例的所有采样特征的图。

图10是示出本实施例的所有采样特征中的信息代码串的 图。

图11是示出代码错误检测/校正的方法的流程图。

图12A~12D是示出用于进行代码错误检测/校正的采样代 码串的三个例子的图。

图13A~13C是示出根据采样代码串的三个例子所计算出 的散列(hash)值的图。

图14是示出用于确定投影图案图像和摄像代码串之间的对 应关系的方法的流程图。

图15是示出本实施例所使用的投影代码串表的例子的图。

图16是示出根据实施例的三维测量的图。

图17是示出另一投影图案的例子的图。

具体实施方式

下面参考附图说明本发明的优选实施例的例子。

图1示出根据本发明实施例的图像信息处理设备的总体结 构。投影仪101用作为图案投影单元,其中,其将如图2所示的、 由红色、绿色或蓝色的点的序列所构成的投影图案图像投影至 要测量的被摄体102。图案生成单元103生成投影图案图像(包含 二维符号序列的投影图案的图像),其中,投影图案图像包含通 过向二维配置多种类型的代码的投影代码串中的各代码分配颜 色或亮度针对每一类型的代码而不同的点所获得的二维点序 列。这样,投影仪101和图案生成单元103用作为图案投影设备。 在本实施例中,图案生成单元103生成通过红色、绿色和蓝色点 序列以符号表示由图3所示的代码1、2和3所构成的投影代码串 的图像,作为要通过上述投影仪101投影的投影图案图像。应该 注意,尽管使用红色、绿色或蓝色与各代码值相对应的点序列 作为符号化图像,但是本发明不局限于此。照相机104用作为在 将投影图案图像投影至被摄体102的状态下拍摄该被摄体的图 像的摄像单元。这里,调整照相机104的位置和姿势,从而使得 照相机104的图像坐标系统的x轴与通过投影仪101和照相机104 的两个主点的位置所定义的直线相互平行。图案提取单元105 进行用于从利用照相机104所获得的拍摄图像提取被摄体102上 暴露于投影图案图像的部分的摄像点序列的处理。

信息获得单元106将由图案提取单元105所提取的摄像点序 列中的每一个点转换成与各颜色相对应的代码,以获得摄像代 码串。代码采样单元107选择预定多种类型的采样特征(稍后参 考图9和10说明)中的一个,从信息获得单元所获得的摄像代码 串采样预定数量的代码,并且获得信息代码串和冗余代码。代 码错误检测/校正单元108对通过代码采样单元107所获得的信 息代码串和冗余代码集中进行代码校验,并且在信息代码串和 冗余代码中进行代码错误的检测,如果可能,对代码错误进行 校正,并且输出校验后的信息代码串。对应关系计算单元109 基于代码错误检测/校正单元108所获得的校验后的信息代码 串、图案生成单元103所生成的投影代码串和代码采样单元107 在采样时所使用的采样特征,确定投影图案图像和摄像代码串 之间的对应关系。三维形状获得单元110使用已确定对应关系的 摄像点序列,基于三角测量的原理,计算照相机104和被投影了 投影图案图像的被摄体102之间的深度,即形状。

图4示出根据本实施例的图像信息处理设备的控制的流程 图。下面,按照该流程图的步骤的顺序,说明根据本实施例的 图像信息处理设备的操作。

步骤S401:图案生成单元103生成投影图案图像。如图2所 示,这里所生成的投影图案图像由根据代码而具有红色、绿色 和蓝色三种颜色中的任一颜色、并且在垂直方向和水平方向上 规则配置的点的序列所构成。该红色、绿色和蓝色点序列用作 为表示投影代码串的符号序列,并且使用图3所示的投影代码串 来确定配置这些点的序列。根据本实施例,在投影图案图像中, 向投影代码串中的1、2和3分别分配红色、绿色和蓝色。

图3所示的投影代码串由分别在u方向和v方向上延伸的行 和列上的、并且使用下述规则所编码的二维阵列码所构成。首 先,选择u方向和v方向各自的一个de Bruijn序列,即水平方向 和垂直方向总共两个方向的两个de Bruijn序列。de Bruijn序列在 可用单位代码的类型的数量是k的情况下是序列长度为kl的序 列,并且具有子序列长度为l的每一连续子序列在整个代码串中 仅存在一次的性质。例如,将投影图案图像中可使用的符号的 数量设置成k,以u方向和v方向的顺序,将围绕采样特征(稍后 说明)的矩形的大小设置成m×(n+1)(在水平方向上具有m个符 号、并且在垂直方向上具有n+1个符号的大小)。在这种情况下, 在u方向上选择序列长度km的de Bruijn序列,并且在v方向上选 择序列长度kn的de Bruijn序列。在本实施例中,使用三个颜色作 为符号,因此,k=3。此外,通过具有3×3大小的矩形围绕所有 采样特征(稍后说明),因此m=3且n=2。

本实施例在u方向上所使用的、k=3且m=3(序列长度33=27) 的de Bruijn序列是下面所示的数字序列:

33132131123122121113323222333    (1)

类似地,下面示出本实施例在v方向上所使用的、k=3且 n=3(序列长度32=9)的de Bruijn序列:

3311322123    (2)

应该注意,本实施例所使用的de Bruijn序列(1)和(2)不允许 循环,因此,分别具有比原始序列长度长m+k-1和n+k-1的长度。 (稍后将说明图案中存在重复的情况)。

接着说明用于使用上述两个de Bruijn序列生成投影代码串 的方法。首先,在u方向上的第一行,原样使用u方向上的de Bruijn作为投影代码串。在u方向上的第二行及随后的行,使用 将v方向上的de Bruijn序列的值与关注行的前一行的代码串的 值相加的结果作为代码串。这里以k-ary表示加法的结果,因而 由1~k表示该结果,并且忽略进位。例如,将以(2)所示的序列 中的第一个数值“3”相加至图3中的第一行的代码串(最下面行 的代码串)中的每一个值。在这种情况下,进行运算1+3=1、2+3=2 和3+3=3,从而使得第一行的代码串和第二行的代码串相互相 等。此外,对于第四行的代码串,将(2)的序列中的第三个值“1” 相加至第三行的代码串。因而,1+1=2、2+1=3并且3+1=1,因 此,通过向图3中的第三行的代码串中的每一个值相加1,获得 如第四行的代码串。如上所述,通过将v方向上的de Bruijn序列 的所有行逐一相加来获得代码串,可以生成如图3所示的u方向 和v方向上的二维投影代码串。

通过使用上述方法所生成的投影代码串具有下面的性质: 在以位于投影代码串内的任意位置处、且具有大小m×(n+1)的矩 形所围绕的部分代码串中,通过按照固定顺序对预定行和预定 列进行采样所获得的长度m+n的信息代码串在投影代码串中仅 存在一次。对稍后所述的步骤S408的采样特征的确定和步骤 S410的代码错误检测/校正,使用该性质。

通过生成下面的投影图案图像使得可以进行以下步骤的处 理:在该投影图案图像中,使用如上所述的三个颜色的点图像 对具有上述性质的投影代码串进行符号化和嵌入。

步骤S402:投影仪101将在步骤S401所生成的投影图案图像 投影至被摄体102上。

步骤S403:照相机104拍摄被投影了投影图案图像的被摄体 102的图像,并且生成图5A所示的拍摄图像501。

步骤S404:图案提取单元105从在步骤S403所生成的拍摄图 像501内提取摄像点序列502,其中,摄像点序列502是如图5B 所示的与被投影至被摄体102上的投影图案图像相对应的摄像 图案。在该处理中,提取具有对于红色、绿色和蓝色各颜色具 有高于或等于预定水平的亮度的区域作为符号,从而提取摄像 点序列502。应该注意,保持所提取的所有颜色信息。此外,将 具有单一颜色的单个连续区域当作为单位摄像点,并且保持x-y 照相机坐标系统上各摄像点的二维位置(例如,摄像点的重心)。

步骤S405:信息获得单元106基于在步骤S404所提取的摄像 点序列502,获得摄像代码串。这里,可以对在步骤S401被分配 了作为符号的各颜色的点的代码进行逆向解码。也就是说,通 过向红色分配1、向绿色分配2、并且向蓝色分配3,获得摄像代 码串。作为构成摄像代码串的单位摄像代码(用于各摄像点的摄 像代码),保持解码代码和x-y坐标上的相应摄像点的二维位置。 图6示出解码摄像代码串601。

接着对各摄像代码和存在于该摄像代码的上下左右的邻接 摄像代码之间的邻接关系进行解码。图7示出摄像代码串的一部 分的放大图。作为例子,说明图7中关注摄像代码701的邻接关 系的解码。由于调整照相机104的位置和姿势,从而使得照相机 104的图像坐标系统的x轴与通过投影仪101和照相机104的两个 主点的位置所定义的直线相互平行,所以在与x轴平行的方向上 拍摄所有摄像点序列。因此,可以容易地对x方向上的摄像代码 串之间的邻接关系进行解码。首先,搜索在x方向上存在于关注 摄像代码701的左右的最近的相邻代码作为邻接代码。接着,搜 索与y方向上的上下的摄像代码的邻接关系。此时,由于y方向 与y轴不平行,并且存在邻接代码可能处于在x方向上偏移的状 态的可能性,所以在x方向上定义搜索范围702,并且在该范围 内搜索邻接代码。

根据上述过程来恢复各摄像代码和该摄像代码的上下左右 的摄像代码之间的邻接关系,并且以摄像代码为单位,保持恢 复的结果。

步骤S406:代码采样单元107扫描通过信息获得单元106所 获得的摄像代码串,并且为了获得信息代码串(稍后说明),设 置用作为开始代码采样的第一个点的原点。

步骤S407:判断步骤S406的结果是否是完成了扫描。如果 完成了扫描,则结束该处理。如果没有,则处理进入步骤S408。 以不重复设置同一原点的方式进行扫描,并且假定如果进行扫 描直到将所有摄像代码串设置为原点为止则完成扫描。

步骤S408:代码采样单元107选择预定多个类型的采样特征 中的一个。然后,代码采样单元107根据所选择的采样特征,从 与由信息获得单元106所获得的摄像代码串的、在步骤S406所设 置的原点相对应的位置开始进行代码采样。然后,获得信息代 码串和冗余代码。图8示出用于说明步骤S408的用于获得信息代 码串和冗余代码的方法的流程图。下面按照图8的流程图中的步 骤的顺序,详细说明步骤S408的操作。

步骤S801:代码采样单元107将表示代码采样所使用的采样 特征的采样特征编号P初始化成1。采样特征定义要提取的预定 数量的点的位置和信息代码串中的这些点的顺序。各采样特征 从预定大小的部分点序列选择预定数量的点。例如,对于本实 施例的采样特征,在摄像代码串中的包含3×3部分点序列的矩形 内,准备按照固定顺序对任意行和任意列进行采样的情况下的 所有组合形状,并且向所准备的形状预先分配编号P。图9中的 附图标记901~909表示本实施例的所有采样特征。圆形标记表 示各个代码,并且虚线表示摄像代码串中包含3×3部分点序列的 矩形。代码中的数字表示采样顺序(信息代码串中的顺序),并 且在向关注代码分配采样顺序编号1的情况下,按照编号顺序进 行采样。

此外,使用与上述部分点序列中除预定数量的点以外的点 (除上述m+n个代码以外的点)相对应的代码,作为用于检测信息 代码串中的错误的冗余代码。例如,在本实施例中,采样顺序 编号1~5表示对于对应关系确定所使用的、并且具有长度 m+n=5的信息代码串,并且其他顺序编号,即除信息代码串以 外的顺序编号6~9表示对于代码错误检测/校正所使用的冗余 代码。对于每一采样特征,从摄像代码串的代码的不同组合采 样信息代码串,如图10中的1001~1009所示。例如,作为多个 采样特征,假定定义在水平方向上具有m个点、并且在垂直方 向上具有n+1个点的部分代码串(在图10的情况下,m=3并且 n=2)、从水平方向上所选择的单个行和从垂直方向上所选择的 单个列中所包含的m+n个代码的位置、以及这些代码的顺序。

步骤S802:代码采样单元107将表示要采样的代码串的顺序 编号的采样顺序编号N初始化成1。

在步骤S803,代码采样单元107检查采样特征编号P是否超 过了最大编号Pmax。在本实施例中,如图9所示,Pmax=9。如果 在步骤S803判断为P超过了Pmax,则由于这意味着不可能获得所 有采样特征的信息代码串,所以认为步骤S406的处理失败,并 且结束该处理。如果P没有超过Pmax,则继续该处理。

步骤S804:代码采样单元107对与当前采样特征编号P的采 样顺序编号N相对应的代码进行采样,并且获得一个信息代码 串。如果该单元成功获得信息代码串,则处理进入步骤S806。 如果在摄像代码串中没有邻接代码,并且该单元在采样顺序编 号N的位置处获取信息代码串失败,则处理进入步骤S805。

步骤S805:向采样特征编号P相加1,并且处理返回到步骤 S803。

步骤S806:代码采样单元107检查采样顺序编号N是否达到 了信息代码串的长度5。如果没有达到该长度,则处理进入步骤 S807。如果达到了该长度,则处理进入步骤S808。

步骤S807:向采样顺序编号N相加1,并且处理返回到步骤 S804。

步骤S808:代码采样单元107对与当前采样特征编号P的采 样顺序编号N相对应的代码进行采样,并且获得一个冗余代码。 如果该单元成功获得冗余代码,则处理进入步骤S809。如果在 摄像代码串中的采样顺序编号N的位置处未能获得代码,并且 该单元获取冗余代码失败,则认为代码采样成功,并且结束该 处理。

步骤S809:代码采样单元107检查采样顺序编号N是否达到 了组合信息代码串和冗余代码的最大长度9。如果没有达到该最 大长度,则处理进入步骤S810。如果达到了最大长度,则认为 处理成功,并且结束该处理。

步骤S810:向采样顺序编号N相加1,并且处理返回到步骤 S808。

通过进行根据上述过程的处理,在步骤S408,进行从通过 信息获得单元106所获得的摄像代码串的采样,并且获得信息代 码串和冗余代码(下面,将其通称为“采样代码串”)。当完成了步 骤S408的代码采样的处理时,处理进入步骤S409。

步骤S409:代码错误检测/校正单元108判断步骤S408的代 码采样处理是否成功。如果处理结果是不成功的,则处理返回 到步骤S406。如果处理结果是成功的,则处理进入步骤S410。

步骤S410:代码错误检测/校正单元108使用采样代码串进 行代码校验,并且检测采样代码串中的任何代码错误。此外, 如果代码错误是可校正的,则代码错误检测/校正单元校正代 码。图11示出用于说明步骤S410的代码错误检测/校正的方法的 流程图。下面按照图11的流程图中的步骤的顺序说明步骤S410 的操作。

步骤S1101:代码错误检测/校正单元108计算表示来自采样 代码串的代码校验的结果的散列值。图12A~12C示出采样代码 串的例子。图12A~12C中的所有例子具有相同信息代码串 1201,并且仅在冗余代码的数量上有所不同。垂直方向和水平 方向上的信息代码串和冗余代码之间的邻接关系都符合摄像代 码串的邻接关系,并且将投影代码串的u坐标轴当作为行方向, 并且将v坐标轴当作为列方向。

为了计算散列值,在这些信息代码串和冗余代码的行方向 上顺次计算右列和左列之间的差。在本实施例中,列的数量为 n+1=3,因此,计算出各行上的两个差值作为散列值。应该注意, 以k-ary表示差计算的所有结果。在本实施例中,k=3,因此,散 列值是0、1和2中的任一个。此外,在不存在采样代码串的位置 处,不进行散列值计算,并且在该位置处设置空白。图13A~ 13C示出图12A~12C中的信息代码串和冗余代码的散列值。在 代码错误检测/校正处理中,将所有列中的一组计算值是完全的 一行散列值,当作为一个代码校验结果。

步骤S1102:代码错误检测/校正单元108判断是否存在在步 骤S1101所计算出的多于一行的散列值。如果仅存在一行散列 值,则其仅是根据具有该散列值的信息代码串所生成的行,并 且不能进行代码错误检测,因而认为步骤S410的处理成功,并 且结束该处理。如果存在多于一行的散列值,则处理进入步骤 S1103。在图13A所示的例子中,仅存在一行散列值,因此认为 该步骤成功,并且结束该步骤。在图13B和13C所示的例子中, 分别存在两行和三行的散列值,即,在这两个例子中,存在多 于一行的散列值,因此,处理进入步骤S1103。

步骤S1103:代码错误检测/校正单元108判断列方向上的所 有散列值是否相同。如果列方向上的值都相同,则与在投影代 码串的生成期间的各列中的相同值的相加的结果不矛盾,并且 这意味着在计算出的散列值的范围中没有检测到代码错误。因 此,认为该计算成功,并且结束该处理。另一方面,如果在列 方向上甚至存在一个不同值,则与上述计算结果发生矛盾。因 此,判断为存在代码错误,并且处理进入步骤S1104。在图13B 和13C所示的两个例子中,右侧的列方向上的值不同。因此,在 这两种情况下,判断为存在代码错误,并且处理进入步骤S1104。

步骤S1104:代码错误检测/校正单元108判断是否存在在步 骤S1101所计算出的所有三个行的散列值。如果行的数量小于3, 则不能进行代码错误校正,因此认为步骤S410不成功,并且结 束该步骤。如果存在所有三个行,则处理进入步骤S1105。在图 13B所示的例子中,最下面行中的一组散列值不是完全的,因此 认为步骤S410不成功,并且结束该步骤。在图13C所示的例子 中,三个行中的所有组的离散值都是完全的,因此处理进入步 骤S1105。

步骤S1105:代码错误检测/校正单元108判断针对对象采样 代码串是否可以进行代码错误校正。首先,在三个行的散列值 中,检测包含与列方向上的其他散列值不同的散列值的行。如 果所有行都包含不同散列值,则不能进行代码错误校正,因此 认为步骤S410不成功,并且结束该步骤。如果在三个行中的散 列值中,仅一个行中的散列值不同,则判断为在该行中存在可 校正代码错误,并且处理进入步骤S1106。在图13C所示的例子 中,仅最上面行1301中的右侧列中的值不同,因此判断为在该 行中存在可校正代码错误,并且处理进入步骤S1106。

步骤S1106:代码错误检测/校正单元108使用其他行中的散 列值,对在步骤S1105被判断为包含可校正代码错误的采样代码 串的行进行代码错误校正。代码错误检测/校正单元108在最初 被判断为包含代码错误的行中,检查离散值与其他行中的散列 值不同的列。

如果仅左侧列中的散列值不同,则假定在采样代码串的相 关行左侧的代码值中存在错误,并且校正该代码值。可以通过 利用采样代码串的相关行中的中央列中的代码值和除相关行以 外的行中的左侧列中的散列值之间的差的值,替换错误值来进 行错误校正。在本实施例中,还使用没有借位的k-ary,即使用 答案仅为1、2和3的三进制数系来进行该差计算。

如果仅右侧列中的散列值不同,则假定在采样代码串的相 关行的右侧的代码值中存在错误,并且以相同方式进行校正。 在三进制数系中,可以通过利用采样代码串的相关行中的中央 列中的代码值和除相关行以外的行中的右侧列中的散列值的和 的值,替换错误值来进行错误校正。

如果左侧列和右侧列两者中的散列值都不同,则假定在采 样代码串的相关行中的中央列中的代码值中存在错误,并且以 相同方式进行校正。在三进制数系中,可以通过利用采样代码 串的相关行中的右侧列中的代码值和除相关行以外的行中的右 侧列中的散列值之间的差的值,替换错误值来进行错误校正。

在图13C所示的例子中,仅行1301中的右侧列中的散列值不 同,因此假定在采样代码串的相关行中的右侧列中的代码值“3” 中存在错误来进行校正。在错误校正计算中,以校正值“2”替换 错误值“3”,其中,该校正值“2”是图12C中的采样代码串的相关 行中的中央列中的代码值“2”和除行1301以外的行中的右侧列 中的散列值“0”的和。可以看出,通过这样进行代码错误校正, 利用校正值1202,将图12C所示的校正之前的信息代码串 “12321”校正成“12221”,如图12D所示。

在上述计算之后,认为步骤S410成功,并且结束该步骤。

通过执行上述步骤S1101~S1106,检测采样代码串中的代 码错误。此外,如果代码错误是可校正的,则进行代码校正。 应该注意,下面将对于在步骤S410的处理成功的信息代码串称 为“校验信息代码串”。处理进入图4的步骤S411。

步骤S411:代码错误检测/校正单元108判断步骤S410的代 码错误校正/检测的处理结果。如果该处理成功,则处理进入步 骤S412。如果该处理不成功,则处理返回至步骤S406,并且处 理对象变换成下一代码采样位置。

步骤S412:对应关系计算单元109确定投影图案图像和构成 摄像代码串的校验信息代码串之间的对应关系。图14示出用于 说明步骤S412的用于确定投影图案图像和摄像代码串之间的对 应关系的方法的流程图。下面,按照图14的流程图中的步骤的 顺序,详细说明步骤S412的处理。

步骤S1401:对应关系计算单元109选择具有与在步骤S408 的信息代码串的采样中所使用的采样特征编号P相同的编号的 投影代码串表。图15示出本实施例所使用的投影代码串表的例 子。投影代码串表是存储在使用采样特征编号P在各种二维位置 (u,v)处对投影代码串进行采样的情况下的信息代码串的值的 表,并且准备与要使用的采样特征的数量(该例子中为9)相同数 量的表。通过使用这类投影代码串表,可以在无需进行复杂计 算的情况下,容易地进行用于确定投影代码串和校验信息代码 串之间的对应关系的计算。

步骤S1402:对应关系计算单元109在u方向和v方向上二维 扫描在步骤S1401所选择的投影代码串表,以搜索与校验信息代 码串一致的表值。如果存在一致的表值,则记录该表值的位置 (u,v)。

步骤S1403:对应关系计算单元109判断在步骤S1402的搜索 中是否存在与校验信息代码串一致的表值。如果存在这类表值, 则处理进入步骤S1404。如果不存在这类表值,则由于不能确定 对应关系,所以判断为对应关系确定不成功,并且结束步骤 S412。

步骤S1404:对应关系计算单元109输出包含与步骤S1402 的搜索中与校验信息代码串一致的表值的位置(u,v)的校正信息 代码串,作为对应关系确定摄像代码串,并且判断为对应关系 确定成功,并且结束步骤S412。

通过进行根据上述过程的处理,对应关系计算单元109确定 投影图案图像和构成摄像代码串的校验信息代码串之间的对应 关系。然后,处理进入步骤S413。

步骤S413:对应关系计算单元109判断步骤S412的用于确定 对应关系的计算的处理结果。如果该处理成功,则处理进入步 骤S414。如果该处理不成功,则处理返回到步骤S406。

步骤S414:三维形状获得单元110使用在步骤S412所获得的 对应关系确定摄像代码串,测量被摄体102的三维形状。图16 示出下面的情况下的示意图:使用照相机坐标系统1602,测量 与摄像点序列中的对应关系确定摄像代码串相对应的测量点 1603的位置,其中,在照相机坐标系统1602中,将照相机的主 点1601的位置设置成原点O(0,0)。在利用投影仪101投影的投 影图案图像中,配置具有相同的u坐标值的点序列中的点,以使 得在v方向上排列在单个直线1604上。此时,测量点1603是处于 直线1604在空间形成的切割平面1605和被摄体102的相交线上 的点。这里假定使用照相机坐标系统,通过下面的公式(3)预先 校准通过投影测量线图案所形成的切割平面1605:

ax+by+cz+d=0    (3)

此外,测量点1603处于使用利用图1的照相机104所拍摄的 拍摄图像1606上的投影点1607的位置P((Px,Py,-f)、通过下面 的公式(4)所表示的直线1608上。应该注意,在拍摄图像1606中, 为了简化,省略排除投影点1607的摄像点序列。此外,当假定 图1中的照相机104为针孔照相机时,图16中的拍摄图像1606具 有等于摄像装置上的投影图像的实际大小。此外,假定拍摄图 像1606与照相机坐标的xy平面平行,并且将图像的中心设置在 在z轴方向上与原点位置相距焦距-f的位置处。

x=-Pxft

y=-Pyft---(4)

z=t

其中,t是为任意实数的参数。

由于以公式(3)所表示的切割平面1605和以公式(4)所表示 的直线1608的相交点是测量点1603,所以通过下面的公式(5)表 示照相机坐标系统中的测量点1603的位置C(Cx,Cy,Cz):

Cx=-dPxaPx+bPy-cf

Cy=-dPyaPx+bPy-cf---(5)

Cz=dfaPx+bPy-cf

如果对所有对应关系确定摄像代码串进行上述计算,则可 以从一组测量点1603获得整个被摄体102的形状。

通过进行上述过程,即使对于趋于导致传统方法的对应关 系确定的错误结果的、具有不连续表面作为边界的这类被摄体, 也可以通过进行步骤S410的代码错误校正/检测,使对应关系的 错误确定最小化。此外,即使对于由于传统方法仅使用一种类 型的采样特征因而难以确定对应关系的、具有复杂形状的被摄 体,也可以通过在步骤S408使用多个类型的采样特征而尝试采 样信息代码串,增大可以确定对应关系的区域。由于上述原因, 与传统方法相比,可以进行更稳健的三维测量。

应该注意,本实施例的图1中的图案生成单元103、图案提 取单元105、信息获得单元106、代码采样单元107、代码错误检 测/校正单元108、对应关系计算单元109和三维形状获得单元 110不必是独立设备。还可以作为运行在由中央处理单元、主存 储器、外部存储器和使这些装置相互连接的信息总线所构成的 计算机上的程序的一部分,来分别实现这些单元。

此外,无需每当进行处理时,都在步骤S401通过图案生成 单元103生成投影图案图像。可以将以前生成的投影图案图像存 储在存储器中,并且在下一次需要时,从该存储器读出该投影 图案图像。在要拍摄的被摄体受限、并且预先确定最佳投影图 案图像的这类情况下,可以省略使用上述结构的处理,并且实 现加速。

此外,在一些情况下,根据被摄体102的形状、大小和表面 材质,可以使用较小数量的采样特征从大多数区域中获得信息 代码串。在这种情况下,可以将在步骤S408要使用的采样特征 的数量最小减小至1。随着采样特征的数量减小,计算负荷降低, 因此通过适当减少采样特征的数量,可以实现可拍摄被摄体的 复杂性和处理速度之间的平衡。

此外,类似地,根据被摄体102的形状、大小和表面材质, 存在几乎不发生代码错误的情况。在这种情况下,可以省略代 码错误检测/校正单元108和相应处理,即步骤S410。处理的省 略导致计算负荷降低,因此通过适当省略如上所述的处理,可 以实现可拍摄被摄体的复杂性和处理速度之间的平衡。

此外,在本实施例中,假定将投影图案图像中所使用的符 号的类型的数量设置成3,也就是说,红色、蓝色和绿色,并且 围绕采样特征的矩形的大小被设置成3×3。因此,选择具有子序 列长度为2和3的三个数de Bruijn序列,作为生成投影代码串所 使用的Bruijn序列。根据投影图案图像中可使用的符号的类型和 被摄体的性质,可以适当改变这些数值,并且可以使用具有3 以上的子序列长度的三个数以上的de Bruijn序列。如果可以增 大要使用的符号的数量,则可以根据所选择的de Bruijn序列, 提高代码错误校正/检测能力。可选地,还可以通过增大整个投 影代码串的大小来增大可拍摄的范围。

此外,尽管在本实施例中使用了红色、绿色或蓝色对应于 各代码值、并且用作为投影图案图像中所使用的符号的点序列, 但是本发明不局限于此。可以使用任何类型的符号,只要将诸 如颜色、亮度和形状等的可区分特征设置成与各代码值相对应, 从而使得可区分各代码值即可。图17示出另一投影图案的例子。 在本例子的投影图案图像中,代替点,将符号表示为具有用于 构成网格的水平线和垂直线的投影图案中的相交点的位置处的 形状。在该例子中,如果相交点的位置处的形状是矩形,则将 相应代码设置成1,如果形状是十字形,则将相应代码设置成2, 并且如果形状是圆形,则将相应代码设置成3。利用上述结构, 可以使用单色投影图案图像,因此,可以简化投影仪101。此外, 通过跟踪构成网格的水平线和垂直线,还可以更容易地检测代 码之间的邻接关系。

此外,尽管在本实施例中,采用了仅使用一个基于de Bruijn 序列的投影代码串,但是在下面的情况下可以使用重复投影代 码串的投影图案图像:被摄体的深度方向的变化足够小,并且 具有相同值的信息代码串决不相互重叠。应该注意,在重复投 影代码串的情况下,对于要使用的de Bruijn序列必需考虑循环 性,因而需要使用原始序列长度的序列。

本例子中在u方向上要使用的、k=3并且m=3(序列长度33=27) 的de Bruijn序列是下面的数字序列:

331321311231221211133232223    (6)

类似地,下面示出本实施例在v方向上要使用k=3并且 n=2(序列长度长度32=9)的de Bruijn序列:

331132212    (7)

如上所述,通过使用重复投影代码串的投影图案图像可以 扩展可拍摄范围。

此外,在本实施例的步骤S410中的S1102,在仅存在一行散 列值的情况下,不能进行代码错误检测,因此,判断为不存在 代码错误,并且结束该处理。然而,如果想要进一步减少错误 对应关系,则可以将此判断为不成功。此外,由于冗余代码越 长,则代码错误校正/检测能力的提高越多,所以将能够获得的 冗余代码的长度当作为可靠性的测量,并且用作为判断是否使 用对应关系确定的结果的标准。

此外,不必需如本实施例中那样使用de Bruijn序列作为投 影代码串。在仅可以使用两个类型的符号的情况下,例如,在 使用单色投影仪投影投影图案图像的情况下,可以使用利用0 和1表示的二个数代码所形成的M序列,作为投影代码串。在使 用M序列的情况下,通过将围绕采样特征的矩形的大小设置成 m×(n+1)、在u方向和v方向上分别选择两种类型,即m阶和n阶M 序列、并且计算二进制和,可以以与上述例子相同的方式生成 投影代码串。在使用M序列的情况下,即使采样特征大小变得 相对地大,也仅需两种类型的符号,并且可以投影高密度的投 影图案图像。因此,在存在很少代码错误的环境下,可以进行 更精确的三维测量。

如上所述,根据本实施例,由于可以在使从拍摄图像所挑 选的摄像图案的数量最小化的同时获得可以进行代码错误校正 的代码串,所以不仅可以减少对应关系的错误确定,而且还可 以应付更加多样的被摄体形状。

根据本发明,提供一种减少对应关系的错误确定、并且还 使得能够对于更加多样的被摄体形状进行三维测量的更加稳健 的三维测量方法。

尽管以上对本实施例进行了详细说明,但是可以作为例如 系统、设备、方法、程序或存储介质来实现本发明。具体地, 可以将本发明应用于由多个装置构成的系统、或由单个装置所 构成的设备。

还可以利用读出并执行记录在存储器装置上的程序以进行 上述实施例的功能的系统或设备的计算机(或者诸如CPU或 MPU等装置)和通过下面的方法实现本发明的方面,其中,利用 系统或设备的计算机通过例如读出并执行记录在存储器装置上 的程序以进行上述实施例的功能来进行上述方法的步骤。为此, 例如,通过网络或者通过用作存储器装置的各种类型的记录介 质(例如,计算机可读介质)将该程序提供给计算机。

尽管参考典型实施例说明了本发明,但是应该理解,本发 明不局限于所公开的典型实施例。所附权利要求书的范围符合 最宽的解释,以包含所有这类修改、等同结构和功能。

本申请要求2010年9月8日提交的日本申请2010-201341的 优先权,其全部内容通过引用包含于此。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号