摄像装置以及长度测量方法转让专利

申请号 : CN201110091035.7

文献号 : CN102278946B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吉滨由纪樱井敬一中岛光康山谷崇史

申请人 : 卡西欧计算机株式会社

摘要 :

本发明提供一种摄像装置,测量被摄体的所指定的两点间的长度。摄像部通过对同一被摄体的一次摄像从而取得具有视差的一组成对图像。显示部显示基于所取得的成对图像的至少一方的图像的显示图像。受理部受理显示图像上的被摄体上的始点以及终点的指定。长度取得部根据一组或多组成对图像,计算所指定的被摄体上的始点以及终点各自在实际空间上的位置,并根据所计算出的实际空间上的始点以及终点位置,取得被摄体上的从始点到终点的长度。

权利要求 :

1.一种摄像装置,具备:

摄像部,其通过对同一被摄体的一次摄像,取得具有视差的一组成对图像;

显示部,其显示基于所述成对图像的至少一方的图像的显示图像;

受理部,其受理所述显示图像上的所述被摄体上的始点以及终点的指定;和长度取得部,其根据一组或多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置,并根据所计算出的实际空间上的始点以及终点位置,取得从所述被摄体上的始点到终点的长度,所述长度取得部,在所指定的所述被摄体上的始点以及终点未收纳于同组所述成对图像中时,根据通过所述摄像部进行多次摄像所得到的多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置。

2.根据权利要求1所述的摄像装置,其中,

所述长度取得部,在所指定的所述被摄体上的始点以及终点收纳于一组所述成对图像中时,根据该一组成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置。

3.根据权利要求1所述的摄像装置,其中,

所述长度取得部,在所指定的所述被摄体上的始点以及终点未收纳于同组所述成对图像中时,根据通过所述摄像部进行多次摄像所得到的多组所述成对图像中的所述被摄体的图像部分,计算收纳所述终点的成对图像被拍摄的位置相对于收纳所述始点的成对图像被拍摄的位置的相对坐标,并根据所计算出的相对坐标,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置。

4.根据权利要求1所述的摄像装置,其中,

所述长度取得部,计算到所述被摄体的距离与纵深的精度的相对误差,在所计算出的相对误差比规定值大时,根据通过所述摄像部进行多次摄像所得到的多组所述成对图像中的、位于比所述被摄体更靠前的其他被摄体的图像部分,计算收纳所述终点的成对图像被拍摄的位置相对于收纳所述始点的成对图像被拍摄的位置的相对坐标,并根据所计算出的相对坐标,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置。

5.根据权利要求4所述的摄像装置,其中,

所述相对误差(ΔZ/Z)是(p/B)·(Z/f),Z是到被摄体的距离,ΔZ是纵深的精度,B是平行移动距离,f是焦点距离,p是摄像元件的像素尺寸。

6.根据权利要求1所述的摄像装置,其中,

所述显示部,在所述显示图像上重叠显示通过所述受理部所受理的被摄体上的始点以及终点。

7.一种长度测量方法,是利用具有通过对同一被摄体的一次摄像而取得具有视差的一组成对图像的摄像部的摄像装置对所述被摄体上的所指定的2点间的长度进行测量的长度测量方法,包括以下步骤:显示步骤,显示基于所述成对图像的至少一方的图像的显示图像;

受理步骤,受理所述显示图像上的所述被摄体上的始点以及终点的指定;和长度取得步骤,根据一组或多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置,并根据所计算出的实际空间上的始点以及终点位置,取得从所述被摄体上的始点到终点的长度,在所述长度取得步骤中,在所指定的所述被摄体上的始点以及终点未收纳于同组所述成对图像中时,根据通过所述摄像部进行多次摄像所得到的多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置。

说明书 :

摄像装置以及长度测量方法

[0001] 对于本申请,主张以2010年4月8日申请的日本国专利申请特愿2010-089681以及2011年3月31申请的日本国专利申请2011-080828为基础的优先权,并将该基础申请的内容全部引入本申请中。

技术领域

[0002] 本发明涉及测量被摄体的长度的摄像装置以及测量方法。

背景技术

[0003] 具备两个摄像部并能够拍摄立体视觉用的图像的所谓立体相机已被人所知。例如,在日本特开平6-3122号公报所公开的立体相机中,通过各摄像部同时摄像同一被摄体,取得右眼用图像和左眼用图像这两种图像。
[0004] 此外,例如,日本特开2004-093457号公报所公开的那样,已知通过同时使用多个立体相机来测量到被摄体的距离的技术。
[0005] 但是,对于采用立体相机等摄像装置,精度良好地测量被摄体上用户指定的2点间的长度的技术,还没有做出有益的提案也是事实。

发明内容

[0006] 本发明鉴于上述事实而作,目的在于提供一种精度良好地测量被摄体上所指定的2点间的长度的摄像装置以及测量方法。
[0007] 为了实现上述目的,本发明的第1观点所涉及的摄像装置具备:
[0008] 摄像部,其通过对同一被摄体的一次摄像,取得具有视差的一组成对图像;
[0009] 显示部,其显示基于所述成对图像的至少一方的图像的显示图像;
[0010] 受理部,其受理所述显示图像上的所述被摄体上的始点以及终点的指定;和[0011] 长度取得部,其根据一组或多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置,并根据所计算出的实际空间上的始点以及终点位置,取得从所述被摄体上的始点到终点的长度。
[0012] 为了实现上述目的,本发明的第2观点所涉及的长度测量方法是利用具有通过对同一被摄体的一次摄像而取得具有视差的一组成对图像的摄像部的摄像装置对所述被摄体上的所指定的2点间的长度进行测量的长度测量方法,包括以下步骤:
[0013] 显示步骤,显示基于所述成对图像的至少一方的图像的显示图像;
[0014] 受理步骤,受理所述显示图像上的所述被摄体上的始点以及终点的指定;和[0015] 长度取得步骤,根据一组或多组所述成对图像,计算所指定的所述被摄体上的始点以及终点在实际空间上的各自的位置,并根据所计算出的实际空间上的始点以及终点位置,取得从所述被摄体上的始点到终点的长度。

附图说明

[0016] 参照以下的附图来考虑以下的详细描述,则可以较深地理解本申请。
[0017] 图1A是表示本发明的实施方式的数码相机的外观结构的图。
[0018] 图1B是表示本发明的实施方式中的平行立体的概念的图。
[0019] 图2是表示本发明的实施方式所涉及的数码相机的结构的框图。
[0020] 图3是用于说明长度测量处理的流程图。
[0021] 图4是用于说明用图3所示的「长度测量处理」执行的测量模式1的处理的流程图。
[0022] 图5是用于说明三维模型生成处理的流程图。
[0023] 图6是用于说明用图3所示的「长度测量处理」执行的测量模式2的处理的流程图。
[0024] 图7是用于说明相机位置推定处理的流程图。
[0025] 图8是用于说明坐标变换参数取得处理的流程图。
[0026] 图9是用于说明测量模式3的处理的流程图。
[0027] 图10A、图10B是用于对本发明的被摄体的测量开始位置以及测量结束位置的指定方法进行说明的图,图10A是用于说明用触摸面板进行指定的情况的图,图10B是用于说明使用十字按钮进行指定的情况的图。
[0028] 图11是用于对测量模式3的处理进行说明的图。
[0029] 图12是示出测量结果的显示例的图。
[0030] 图13是用于对位置信息的计算进行说明的图(其1)。
[0031] 图14是用于对位置信息的计算进行说明的图(其2)。

具体实施方式

[0032] 以下参照附图来说明本发明的实施方式。在本实施方式中,例示通过数字静态相机(以下称为“数码相机”)来实现本发明的情况。图1A所示的本实施方式所涉及的数码相机1是具备一般的数码相机具有的功能并且具备两个与摄像相关的结构的所谓的复眼相机(立体相机)。数码相机1将作为这样的立体相机的结构作为所谓的袖珍(compact)相机来实现。
[0033] 数码相机1具有采用所拍摄的图像进行三维建模(modeling)(3D建模)的功能。在该3D建模功能中,在本实施方式的数码相机1中,采用图案(pattern)投影法,以获得适于3D建模的摄像图像。
[0034] 图2是表示数码相机1的结构的框图。如图所示,数码相机1由摄像动作部100、数据处理部200、接口(I/F)部300等构成。
[0035] 摄像动作部100是进行摄像时的动作的部分,如图2所示,由第1摄像部110、第2摄像部120等构成。
[0036] 如上所述,数码相机1是立体相机(复眼相机),具有第1摄像部110和第2摄像部120。第1摄像部110和第2摄像部120的结构相同。
[0037] 以下,对于针对第1摄像部110的结构标注以110为基础值的参照符号,对于针对第2摄像部120的结构标注以120为基础值的参照符号。在这些参照符号中,第1位为同值的符号表示同一结构。
[0038] 如图2所示,第1摄像部110(第2摄像部120)由光学装置111(121)、图像传感器部112(122)等构成。
[0039] 光学装置111(121),例如包括镜头、光圈机构、快门机构等,进行关于摄像的光学动作。即,通过光学装置111(121)的动作,入射光被聚集,并且进行焦点距离、光圈、快门速度等这些与视角、焦距、曝光等相关的光学要素的调整。
[0040] 另外,光学装置111(121)中所包含的快门机构是所谓的机械快门。但是,在仅通过图像传感器的动作来进行快门动作的情况下,光学装置111(121)中也可以不包含快门机构。
[0041] 此外,光学装置111(121)通过后述的控制部210进行的控制来动作。
[0042] 图像传感器部112(122)生成与由光学装置111(121)所聚集的入射光相应的电信号。图像传感器部112(122)例如由CCD(Charge Coupled Device:电荷耦合器件)或CMOS(Complementally Metal Oxide Semiconductor:互补金属氧化物半导体)等图像传感器构成。图像传感器部112(122)通过进行光电变换,从而产生与接收光相应的电信号并输出给数据处理部200。
[0043] 如上所述,第1摄像部110和第2摄像部120是相同的结构。更详细而言,镜头的焦点距离f以及F值、光圈机构的光圈范围、图像传感器的尺寸以及像素数、排列、像素面积等各规格全部相同。
[0044] 如图1A所示,光学装置111具备的镜头和光学装置121具备的镜头被设置在数码相机1的外表面上的同一面上。
[0045] 更详细而言,在以快门按钮朝上的方向使数码相机1水平的情况下,隔开规定的间隔配置这些镜头,使得各自的中心位置在水平方向上在同一线上。也就是说,在使第1摄像部110和第2摄像部120同时动作时,针对同一被摄体拍摄2个图像(成对图像,pair image)。在该情况下,成为各图像中的光轴位置沿横方向偏移的图像。
[0046] 更详细而言,第1摄像部110和第2摄像部120被配置为能够获得图1B的透视投影模型所示那样的光学特性。图1B所示的透视投影模型基于由X、Y、Z构成的三维正交坐标系,以下将针对第1摄像部110的该坐标系称为「相机坐标」。在图1B中,示出了将第1摄像部110的光学中心作为原点的相机坐标。
[0047] 在相机坐标中,使Z轴为与相机的光学方向一致的方向,X轴和Y轴分别与图像的横方向和纵方向平行。这里,将光轴与图像坐标面的交点设为原点(即,光学中心),在换算图像传感器的像素间隔而相机坐标和长度的单位相一致的情况下,在针对第1摄像部110的图像坐标面表示被摄体A1的图像坐标为(u1,v1),在针对第2摄像部120的图像坐标面中为(u′1,v′1)。
[0048] 第1摄像部110和第2摄像部120被配置为,各自的光轴相互平行(即,辐辏角为0),并且针对第1摄像部110的图像坐标u轴和针对第2摄像部120的图像坐标u′轴在同一线上且为相同方向(即,极线(epipolar line)一致)。此外,如上所述,第1摄像部110以及第2摄像部120的焦点距离f、像素间隔相同,光轴和图像坐标面垂直相交。这样的结构被称为「平行立体」,数码相机1的第1摄像部110和第2摄像部120成为平行立体的结构。
[0049] 返回到图2,继续说明数码相机1的结构。
[0050] 数据处理部200处理通过第1摄像部110以及第2摄像部120的摄像动作而生成的电信号,生成表示摄像图像的数字数据。进而,数据处理部200进行对摄像图像的图像处理等。如图2所示,数据处理部200由控制部210、图像处理部220、图像存储器230、图像输出部240、存储部250、外部存储部260等构成。
[0051] 控制部210例如由CPU(Central Processing Unit:中央处理器)等处理器、RAM(Random Access Memory:随机存取存储器)等主存储装置等构成。控制部210通过执行存储于后述的存储部250等中的程序,来控制数码相机1的各部。此外,在本实施方式中,通过执行规定的程序,由控制部210来实现后述的各处理所涉及的功能。在本实施方式中,控制部210进行后述的各处理涉及的动作,但是还可以构成为与控制部210独立的专用处理器等进行后述的各处理涉及的动作。
[0052] 图像处理部220例如由ADC(Analog-Digital Converter:模数转换器)、缓冲存储器、图像处理用的处理器(所谓的图像处理引擎)等构成,基于由图像传感器部112以及122所生成的电信号,生成表示摄像图像的数字数据。
[0053] 即,ADC将从图像传感器部112(122)输出的模拟电信号变换为数字信号之后依次存储到缓冲存储器中。然后,图像处理引擎对被缓存的数字数据,进行所谓的显像处理等。由此,进行画质的调整、数据压缩等。
[0054] 图像存储器230例如由RAM或闪速存储器等存储装置构成,临时存储由图像处理部220所生成的摄像图像数据、由控制部210所处理的图像数据等。
[0055] 图像输出部240例如由RGB信号的生成电路等构成,将在图像存储器230中所解压的图像数据变换为RGB信号等之后输出给显示画面(后述的显示部310等)。
[0056] 存储部250例如由ROM(Read Only Memory:只读存储器)或闪速存储器等存储装置构成,存储数码相机1的动作所需要的程序、数据等。在本实施方式中,在存储部250中存储了控制部210等执行的动作程序、执行动作程序时所需要的参数、运算式等数据。
[0057] 外部存储部260例如由称为存储卡等的可对数码相机1装卸的存储装置构成,存储由数码相机1所拍摄的图像数据等。
[0058] I/F(接口)部300是担负数码相机1与用户或者外部装置之间的接口所涉及的功能的处理部。I/F部300由显示部310、外部I/F部320、操作部330等构成。
[0059] 显示部310例如由液晶显示装置等构成,显示输出用于操作数码相机1所需要的各种画面、摄像时的实时取景图像(取景器图像)、摄像图像等。在本实施方式中,显示部310根据来自图像输出部240的图像信号(RGB信号)等,进行摄像图像等的显示输出。
[0060] 外部I/F部320例如由USB(Universal Serial Bus)连接器、视频输出端子等构成,将图像数据等传递给外部的计算机装置,或者将摄像图像等显示输出到外部的监视器装置。
[0061] 操作部330由设置在数码相机1的外表面上的各种按钮等构成,生成与数码相机1的使用者的操作相应的输入信号,发送到控制部210。在构成操作部330的按钮中,包括例如,用于指示快门动作的快门按钮、用于指定数码相机1的动作模式的模式按钮、用于进行各种设定操作的十字键或功能按钮等。
[0062] 以上,对于用于实现本发明所需要的数码相机1的结构进行了说明,但是除此之外,数码相机1还具备用于实现一般的数码相机功能的结构。
[0063] 下面,参照图3~图9所示的流程图,说明上述结构的数码相机1执行的长度测量处理。
[0064] 首先,控制部210判别是否由用户指定了测量开始位置(步骤S101)。控制部210,在判别为没有指定测量开始位置时(步骤S101:否),再次执行步骤S101的处理。另一方面,控制部210,在判别为指定了测量开始位置时(步骤S101:是),进行被摄体的摄像(步骤S102)。所取得的摄像图像例如存储到图像存储器230中。
[0065] 这里,对于测量开始位置以及测量结束位置的指定方法,参照图10A、图10B进行说明。图10A示出通过用显示部310的触摸面板画面触摸被摄体400上的测量开始位置和测量结束位置来进行指定的方法。此外,图10B示出通过数码相机1的十字按钮331来移动画面上所显示的指示光标(pointer)来指定测量开始位置和测量结束位置的方法。
[0066] 摄像后,控制部210判别测量开始位置是否移动了一定量以上(步骤S103)。例如,在实时取景图像(取景器图像)中,判别测量开始位置是否从上次摄像时移动了规定像素以上。另外,在测量开始位置未包括于实时取景图像中(即测量开始位置未被取景(framing out))的情况下,判别实时取景图像中的被摄体400的位置是否从上次摄像时移动了规定像素以上。如此判别的结果,在测量开始位置移动了一定量以上时(步骤S103:是),控制部210再次进行摄像(步骤S104)。在测量开始位置没有移动一定量以上时(步骤S103:否)或者步骤S104的处理后,控制部210判别是否由用户指定了测量结束位置(步骤S105)。控制部210,在判别为由用户指定了测量结束位置时(步骤S105:是),进行步骤S106的处理。
[0067] 另一方面,控制部210,在判别为没有由用户指定测量结束位置时(步骤S105:否),再次执行步骤S103的处理。
[0068] 控制部210,在结束步骤S105的处理后,判别是否在一张图像内记录了测量开始位置和测量结束位置(步骤S106)。在判别为在一张图像内记录了测量开始位置和测量结束位置时(步骤S106:是),进行测量模式1的处理(步骤S107)。
[0069] 这里,参照图4所示的流程图,说明测量模式1的处理。
[0070] 本实施方式的数码相机1对被摄体400上的任意2点间的长度进行测量。此外,此时,数码相机1能够根据到被摄体400的距离、被摄体400的大小来改变测量方法(测量模式)。测量模式1的处理,是对应于从摄像位置到被摄体400的距离近、并且被摄体400收在1组的成对图像中的情况的处理。在该处理中,通过1组成对图像中的视差来测量长度。
[0071] 首先,控制部210执行三维模型生成处理(步骤S201)。
[0072] 参照图5所示的流程图来说明三维模型生成处理。另外,三维模型生成处理,是根据一组成对图像来生成三维模型的处理。也就是说,三维模型生成处理,可以认为是生成从一个相机位置观察到的三维模型的处理。
[0073] 首先,控制部210提取特征点的候补(步骤S301)。例如,控制部210对图像A(第1摄像部110的摄像结果所得到的图像)进行角点检测。在角点(corner)检测中,哈里斯(Harris)等的角点特征量为规定阈值以上并且在规定半径内成为最大的点被选择为角点点。因此,提取被摄体的前端等相对于其他点具有特征的点,作为特征点。
[0074] 控制部210,在结束步骤S301的处理后,执行立体匹配,由此从图像B(第2摄像部120的摄像结果所得到的图像)搜索与图像A的特征点对应的点(对应点)(步骤S302)。
具体而言,控制部210通过模板匹配将相似度为规定阈值以上且最大的点(差异度为规定阈值以下且最小的点)取做对应点。对于模板匹配,可以利用各种已知的技术,例如:残差绝对值和(SAD)、残差平方和(SSD)、归一化相关(NCC、ZNCC)、方向符号相关等。
[0075] 控制部210,在结束步骤S302的处理后,根据在步骤S302中找到的对应点的视差信息、第1摄像部110以及第2摄像部120的视角、基线长等,计算特征点的位置信息(步骤S303)。所生成的特征点的位置信息例如存储到存储部250中。
[0076] 这里,详细地说明位置信息的计算。图13示出进行模板匹配时的图像A以及图像B的例。在图13中示出,通过针对图像A的被摄体400上的特征点(u1,v1)的模板匹配,在图像B的被摄体400上获得匹配的位置是(u′1,v′1)。本实施方式的数码相机1是第1摄像部110和第2摄像部120的光轴沿水平方向不同的平行立体相机,所以在图像A和图像B之间,产生了针对获得匹配的位置的视差(u′-u)。
[0077] 这里,将通过模板匹配而获得匹配的(被对照的)特征点所对应的实际位置,以图1B所示的相机坐标表示为A1(X1、Y1、Z1)时,A1的坐标(X1、Y1、Z1)分别用以下的数1~数3表示。如上所述,(u1,v1)表示向针对第1摄像部110的图像坐标面(即,对象图像)的投影点。(u′1,v′1)表示向针对第2摄像部120的图像坐标面(即,参照图像)的投影点。此外,b表示第1摄像部110以及第2摄像部120的光轴间的长度(基线长)。
[0078] (数1)
[0079] X1=(b×u1)/(u′1-u1)
[0080] (数2)
[0081] Y1=(b×v1)/(u′1-u1)
[0082] (数3)
[0083] Z1=(b×f)/(u′1-u1)
[0084] 该数3是通过三角测量的原理而导出的。参照图14来说明三角测量的原理。
[0085] 图14是从上观察图1B所示的平行立体结构中的相机坐标的示意图。因为第1摄像部110的视点成为相机坐标,所以用相机坐标上的X1来给予位置A1的X轴方向的坐标,用下述的式(1)求出该数值。
[0086] X1=(u1×Z1)/f ……(1)
[0087] 另一方面,从第2摄像部120的视点的A1的X轴方向的坐标,是基线长b与相机坐标X1之和,用下述的式(2)来求出。
[0088] b+X1=(u′×Z1)/f ……(2)
[0089] 根据这些式(1)和式(2)导出上述数3。
[0090] 控制部210,在结束步骤S303的处理后,根据步骤S303中所计算出的特征点的位置信息,执行德劳内(delaunay)三角形分割,执行多边形(polygon)化(步骤S304)。所生成的多边形信息例如存储到存储部250中。控制部210,在结束步骤S304的处理后,结束三维模型生成处理。
[0091] 另外,在特征点的数量少时,被摄体的形状信息欠缺,不能得到被摄体的忠实的三维模型。另一方面,为了获得更多的特征点而放松提取特征点的候补的条件、立体匹配的条件时,产生如下那样的不良。即,或者不适合的点被包含在特征点的候补中,或者由立体匹配发生误对应,从而位置精度降低,也就是说,建模精度变差。因此,为了既防止建模精度变差又能够得到被摄体的忠实的三维模型,需要提取适当数量的特征点。
[0092] 返回图4的流程,控制部210计算相对误差(步骤S202)。
[0093] 这里,对相对误差进行说明。
[0094] 相对误差用以下的式子求出。
[0095] ΔZ/Z=(p/B)·(Z/f)
[0096] 其中,Z表示到被摄体400的距离,ΔZ表示纵深的精度,ΔZ/Z表示相对误差,B表示平行移动距离,f表示焦点距离,p表示图像传感器的像素尺寸。于是,(p/B)成为精度,通过使其乘以倍率(Z/f),来求出相对误差ΔZ/Z。
[0097] 控制部210,在判别为相对误差为基准值以下时(步骤S203:是),结束测量模式1的处理。返回图3的流程,控制部210使由三维模型上的测量开始位置以及测量结束位置的坐标所求出的长度和相对误差显示,结束处理(步骤S109)。
[0098] 在步骤S109中,例如,如图12所示,在相对误差为20%以下时,在画面上显示所测量的长度和此时的相对误差。
[0099] 另外,根据相对误差的值,还可以向用户提示通过再靠近一些进行摄像能够提高精度等的建议。
[0100] 另一方面,控制部210,在判别为相对误差超过基准值时(步骤S203:否),进行改变了测量方法的测量。为此,向用户通知该意思,使其错开相机位置再拍摄一张被摄体400(步骤S204)。
[0101] 之后,控制部210,直到由用户指定测量结束位置,进行待机。在指定了测量结束位置时(步骤S205:是),进行被摄体的摄像(步骤S206)。
[0102] 然后,控制部210进行三维模型生成处理(步骤S207)。之后,控制部210进行测量模式3的处理(步骤S208),结束测量模式1的处理。
[0103] 对于测量模式3的处理,后面进行详细叙述。
[0104] 返回图3的流程,在进行了多次摄像时(步骤S106:否),控制部210进行测量模式2的处理(步骤S108)。
[0105] 这里,参照图6的流程图来说明测量模式2的处理。
[0106] 测量模式2的处理,是对应于从摄像位置到被摄体400的距离近、并且被摄体400较大从而测量开始位置和测量结束位置没有收在一组的成对图像中的情况的处理。
[0107] 作为示例,在第一次对被摄体400的测量开始位置进行拍摄,使相机位置偏移在第二次对测量结束位置进行拍摄的情况下,从所拍摄的二组成对图像中至少检测3个相同的特征点。然后,根据这些特征点,取得对最初的相机位置的相对位置,由此得到测量开始位置和测量结束位置的坐标,通过三角测量的原理,对长度进行测量。另外,在两组成对图像中没有收纳始点(测量开始位置)和终点(测量结束位置)的情况下,进行多次摄像以从始点追踪到终点,与上述相同地,测量始点和终点之间的长度。
[0108] 这里,考虑从2组摄像图像计算相机位置的方法。
[0109] 首先,控制部210进行三维模型生成处理(步骤S401)。
[0110] 控制部210,在结束步骤S401的处理后,进行相机位置推定处理(步骤S402)。
[0111] 这里,参照图7的流程图来说明相机位置推定处理。
[0112] 首先,控制部210从被合成三维模型以及合成三维模型的双方取得三维空间上的特征点(步骤S501)。例如,控制部210从被合成三维模型(或者合成三维模型)的特征点中选择角点强度高、立体匹配的一致度高的特征点。或者,控制部210也可以在成对图像间考虑了极线约束的基础上,执行基于SURF(Speeded-Up Robust Features)特征量的匹配,由此取得特征点。这里,将由最初的摄像所得到的三维模型、即成为合成基础的三维模型称为被合成三维模型。此外,将通过第二次以后的摄像所得到的三维模型、即合成为被合成三维模型的三维模型称为合成三维模型。
[0113] 控制部210,在结束步骤S501的处理后,从被合成三维模型选择3个特征点(步骤S502)。这里,所选择的3个特征点,是选择的满足以下所示的(A)以及(B)的条件的特征点。(A)的条件,是以3个特征点为顶点的三角形的面积不过小,即,为预先决定的面积以上。(B)的条件,是以3个特征点为顶点的三角形没有极端的锐角的角,即,为预先决定的角度以上。例如,控制部210随机地选择3个特征点,直到选择了满足上述(A)以及(B)的条件的3个特征点。
[0114] 控制部210,在结束步骤S502的处理后,从以合成三维模型具有的3个特征点为3个顶点的三角形中,检索与以步骤S502中所选择的3个特征点为3个顶点的三角形全等的三角形(步骤S503)。例如,在3边的长度大致相等的情况下,判别为两个三角形全等。
步骤S503的处理,也可以被考虑为是如下的处理:从合成三维模型的特征点中检索被认为是与步骤S502中从被合成三维模型所选择的3个特征点对应的3个特征点。另外,控制部
210可以通过利用特征点、周边的色信息、或者SURF特征量等预先缩小三角形的候补范围,从而使探索高速化。表示所探索到的三角形的信息(典型的是表示构成该三角形的顶点的
3个特征点的三维空间上的坐标的信息),例如被存储到存储部250中。在有多个全等三角形的情况下,将表示全部三角形的信息存储在存储部250中。
[0115] 控制部210,在结束步骤S503的处理后,在步骤S503中,判别是否至少检索到了一个全等三角形(步骤S504)。另外,还可以采用以下的规格:在所探索到的全等三角形过多的情况下,看做没有检索到全等三角形。
[0116] 控制部210,在判别为至少检索到了一个全等三角形时(步骤S504:是),选择一个全等三角形(步骤S505)。另一方面,控制部210,在判别为全等三角形一个都没有被检索到时(步骤S504:否),使处理返回到步骤S502。
[0117] 控制部210,在结束步骤S505的处理后,执行坐标变换参数取得处理(步骤S506)。对于坐标变换参数取得处理,参照图8所示的流程图来详细地进行说明。另外,坐标变换参数取得处理是为了将合成三维模型的坐标变换为被合成三维模型的坐标系的坐标而进行的取得坐标变换参数的处理。另外,按照每个步骤S502中所选择的3个特征点与步骤S505中所选择的全等三角形的组合,来执行坐标变换参数取得处理。这里,坐标变换参数取得处理是如下的处理:对利用以下的数4以及数5所提供的对应点对(特征点对、顶点对),计算满足数6的旋转矩阵R和移动矢量t。数4以及数5的p和p′具有从各个相机视线观察的三维空间上的坐标。另外,N是对应点对的对数。
[0118] (数4)
[0119]
[0120] (数5)
[0121]
[0122] (数6)
[0123] pi=Rp′i+t
[0124] 首先,如以下的数7以及数8所示的那样,控制部210设定对应点对(步骤S601)。这里,c1和c2是对应的列矢量成为对应点的坐标的矩阵。直接从该矩阵计算旋转矩阵R和移动矢量t是困难的。但是,因为p和p′的分布大致相等,所以若对准对应点的重心来进行旋转,则能够使对应点重合。利用这一点,计算旋转矩阵R和移动矢量t。
[0125] (数7)
[0126] c1=[p1 p2 … pN]
[0127] (数8)
[0128] c2=[p′1 p′2 … p′N]
[0129] 也就是说,控制部210采用以下的数9以及数10来计算特征点的重心即重心t1以及t2(步骤S602)。
[0130] (数9)
[0131]
[0132] (数10)
[0133]
[0134] 其次,控制部210采用以下的数11以及数12来计算特征点的分布即分布d1以及d2(步骤S603)。这里,如上所述,在分布d1和分布d2之间具有数13的关系。
[0135] (数11)
[0136] d1=[(p1-t1)(p2-t1)…(pN-t1)]
[0137] (数12)
[0138] d2=[(p′1-t2)(p′2-t2)…(p′N-t2)]
[0139] (数13)
[0140] d1=Rd2
[0141] 其次,控制部210采用以下的数14以及数15来执行分布d1以及d2的奇异值分解(步骤S604)。奇异值降序排列。这里,记号*表示复共轭转置。
[0142] (数14)
[0143]
[0144] (数15)
[0145]
[0146] 其次,控制部210判别分布d1以及d2是否是二维以上(步骤S605)。奇异值与分布的广度相对应。因此,利用最大的奇异值与这以外的奇异值的比率、奇异值的大小来进行判定。例如,在第二大的奇异值为规定值以上并且与最大的奇异值的比率在规定范围内时,判定为分布为二维以上。
[0147] 控制部210,在判别为分布d1以及d2不是二维以上时(步骤S605:否),因为不能求出旋转矩阵R,所以执行错误处理(步骤S613),结束坐标变换参数取得处理。
[0148] 另一方面,控制部210,在判别为分布d1以及d2为二维以上时(步骤S605:是),计算关联度K(步骤S606)。由数13~15,旋转矩阵R可以表示为以下的数16。这里,如数17那样定义关联度K时,旋转矩阵R成为数18。
[0149] (数16)
[0150]
[0151] (数17)
[0152]
[0153] (数18)
[0154]
[0155] 这里,本征矢量U相当于分布d1以及d2的本征矢量,通过关联度K建立关联。对于关联度K的要素,在本征矢量对应的情况下被赋予1或-1,在本征矢量不对应的情况下被赋予0。但是,因为分布d1以及d2相等,所以奇异值也相等。也就是说,S也相等。实际上,因为在分布d1和分布d2中含有误差,所以对误差进行修整(丸める)。考虑以上情况,关联度K成为以下的数19。也就是说,控制部210在步骤S606中计算数19。
[0156] (数19)
[0157]
[0158] 控制部210,在结束步骤S606的处理后,计算旋转矩阵R(步骤S607)。具体而言,控制部210根据数18和数19计算旋转矩阵R。表述由计算所得到的旋转矩阵R的信息例如被存储到存储部250中。
[0159] 控制部210,在结束步骤S607的处理后,判别分布d1以及d2是否是二维(步骤S608)。例如,最小奇异值为规定值以下或者与最大奇异值的比率为规定范围外的情况下,判别为分布d1以及d2是二维。
[0160] 控制部210,在判别为分布d1以及d2不是二维时(步骤S608:否),计算移动矢量t(步骤S614)。这里,分布d1以及d2不是二维,表示分布d1以及d2是三维。这里,p和p′满足以下的数20的关系。使数20变形,成为数21。由数21和数6的对应,移动矢量t成为以下的数22。
[0161] (数20)
[0162] (pi-t1)=R(p′i-t2)
[0163] (数21)
[0164] pi=Rp′i+(t1-Rt2)
[0165] (数22)
[0166] t=t1-Rt2
[0167] 另一方面,控制部210,在判别为分布d1以及d2为二维时(步骤S608:是),验证旋转矩阵R,判别旋转矩阵R是否正常(步骤S609)。在分布为二维的情况下,奇异值的一个成为0,所以由数17可知,关联度成为不定值。也就是说,虽然K的第3行3列的要素是1或-1中的一个,但数19中不能保证分配正确的符号。因此,需要进行旋转矩阵R的验证。
验证是旋转矩阵R的外积关系的确认或基于数13的验算等。这里所说的外积关系的确认,是指确认旋转矩阵R的列矢量(以及行矢量)满足坐标系的制约。在右手坐标系中,第1列的矢量和第2列的矢量的外积与第3列的矢量相等。
[0168] 控制部210,在判别为旋转矩阵R正常时(步骤S609:是),计算移动矢量t(步骤S614),结束坐标变换参数取得处理。
[0169] 另一方面,控制部210,在判别为旋转矩阵R不正常时(步骤S609:否),修正关联度K(步骤S610)。这里,使关联度K的第3行3列的要素的符号反转。
[0170] 控制部210,在结束步骤S610的处理后,采用被修正的关联度K计算旋转矩阵R(步骤S611)。
[0171] 控制部210,在结束步骤S611的处理后,以防万一,再次判别旋转矩阵R是否正常(步骤S612)。
[0172] 控制部210,在判别为旋转矩阵R正常时(步骤S612:是),计算移动矢量t(步骤S614),结束坐标变换参数取得处理。
[0173] 另一方面,控制部210,在判别为旋转矩阵R不正常时(步骤S612:否),执行错误处理(步骤S613),结束坐标变换参数取得处理。
[0174] 返回图7的流程,控制部210,在结束坐标变换参数取得处理(步骤S506)后,利用所取得的坐标变换参数,合并坐标系(步骤S507)。具体而言,利用数6,将合成三维模型的特征点的坐标变换为被合成三维模型的坐标系的坐标。
[0175] 其次,控制部210,在结束步骤S507的处理后,存储特征点对(步骤S508)。这里,特征点对由被合成三维模型的特征点、和坐标变换后的合成三维模型的特征点中的与该被合成三维模型的特征点的距离为规定值以下且最近的特征点构成。这里,特征点对的数量越多,推定为步骤S502中的3个特征点的选择、以及步骤S505中的全等三角形的选择越恰当。另外,特征点对与坐标变换参数的取得条件(步骤S502中的3个特征点的选择、以及步骤S505中的全等三角形的选择)一起被存储在存储部250等中。
[0176] 控制部210,在结束步骤S508的处理后,判断步骤S503中所检索到的全部全等三角形是否在步骤S505中被选择(步骤S509)。
[0177] 控制部210,在判别为任一个全等三角形没有被选择时(步骤S509:否),使处理返回步骤S505。
[0178] 另一方面,控制部210,在判别为选择了全部全等三角形时(步骤S509:是),判别是否满足结束条件(步骤S510)。在本实施方式中,结束条件是:针对规定个数以上的条件取得了坐标变换参数。
[0179] 控制部210,在判断为未满足结束条件时(步骤S510:否),使处理返回步骤S502。
[0180] 另一方面,控制部210,在判别为满足结束条件时(步骤S510:是),确定最合适的坐标变换参数(步骤S511)。具体而言,确定取得了最多特征点对的坐标变换参数。换言之,确定步骤S502中的3个特征点的选择、以及步骤S505中的全等三角形的选择为最合适的参数。另外,坐标变换参数中包含旋转矩阵R和移动矢量t。
[0181] 控制部210,在结束步骤S511的处理后,结束相机位置推定处理。
[0182] 返回图6的流程,控制部210计算相对误差(步骤S403)。控制部210,在判别为相对误差为基准值以下时(步骤S404:是),结束测量模式2的处理。然后,返回图3的流程,控制部210显示由三维模型上的测量开始位置以及测量结束位置的坐标所求得的长度和相对误差,结束长度测量处理(步骤S109)。
[0183] 另一方面,控制部210,在判别为相对误差超过基准值时(步骤S404:否),进行测量模式3的处理(步骤S405),结束测量模式2的处理。
[0184] 接着,参照图9所示的流程图来说明测量模式3的处理。
[0185] 测量模式3的处理是对应于从摄像位置到测量对象的被摄体400的距离远的情况的处理。
[0186] 在测量模式3的处理中,控制部210利用比测量对象的被摄体400靠近数码相机1的被摄体(基准被摄体410)来计算相机位置。然后,根据该结果,控制部210对测量对象的被摄体400中的所指定的长度进行测量(参照图11)。
[0187] 首先,控制部210根据基准被摄体410,执行前述的相机位置推定处理(步骤S701)。
[0188] 参照图11来进行说明。控制部210,分别在最初的相机位置A、移动后的相机位置B的摄像中,将到数码相机1的距离近、在各个位置收纳于数码相机1的两个镜头的视角内的被摄体决定为基准被摄体410。然后,控制部210从所拍摄的2组的图像中在基准被摄体410中至少取得3点公共的特征点。由此,能够取得相机位置A和相机位置B的相对位置关系。也就是说,能够取得相机位置A中的a镜头与相机位置B中的b镜头的主点位置关系。
[0189] 其次,通过镜头主点位置关系、即来自相机位置A中的a镜头的(由旋转矩阵、平移矢量构成的)运动参数,生成相机投影参数。
[0190] 通过以下的数23,计算图像A的相机投影参数P、图像B的相机射影参数P′,例如,利用最小平方法由以下的数24以及数25计算三维信息(X1、Y1、Z1)。
[0191] (数23)
[0192] P=A·[R|t]
[0193] (数24)
[0194] trans(u1,v1,1)~P·trans(X1,Y1,Z1,1)
[0195] (数25)
[0196] trans(u’1,v’1,1)~P’·trans(X1,Y1,Z1,1)
[0197] 另外,在数24、数25中,图像坐标、世界坐标都用同维坐标表示,记号“~”表示其两边允许常数倍的不同而相等。
[0198] 由此得到测量开始位置(始点)和测量结束位置(终点)的坐标,可计算测量对象的被摄体400中的所指定的长度。
[0199] 另外,在两次摄像中,在始点和终点没有被收纳的情况下,从始点追踪到终点而进行多次摄像,与上述相同地测量始点和终点之间的长度。
[0200] 控制部210,在结束相机位置推定处理后,计算此时的相对误差(步骤S702),结束测量模式3的处理。
[0201] 控制部210,在结束测量模式3的处理后,返回图3的流程,显示由三维模型上的测量开始位置以及测量结束位置的坐标求出的长度和相对误差(步骤S109),结束长度测量处理。
[0202] (变形例)
[0203] 本发明不限定于上述实施方式所公开的内容。
[0204] 在上述的实施方式中,控制部210在相对误差超过基准值的情况下进行了向测量模式3的转移。但是,也可以并不立刻进行模式转移,而是控制部210通过显示部310对使用者显示用于提示缩短与被摄体400的摄像间距离的消息。即,这是因为若使用者靠近被摄体400,则通过数码相机1和被摄体400的距离变短从而测量精度提高。而且,可以在即使显示消息后经过了一定时间,相对误差仍是超过基准值的情况下,控制部210进行测量模式3的处理。
[0205] 如以上说明的那样,本发明的上述实施方式的数码相机1能够基于通过3D建模而得到的坐标位置来计算用户分别指定的被摄体上的2点(始点以及终点)间的长度。
[0206] 那时,数码相机1从三个测量模式中适当选择任意测量模式,来执行长度测量处理。例如,从数码相机1到测量对象的被摄体的距离短、且始点以及终点收纳于通过第1摄像部110以及第2摄像部120的同时摄像而得到的1组成对图像中时,选择测量模式1。在测量模式1的处理中,通过基于一次摄像结果的被摄体的3D建模,来计算上述2点间的长度。
[0207] 此外,虽然从数码相机1到测量对象的被摄体的距离短,但是被摄体大、始点以及终点未收纳于由上述同时摄像所得到的1组成对图像中时,选择测量模式2。在测量模式2的处理中,通过基于在多个相机位置的多次摄像结果的被摄体的3D建模,计算上述2点间的长度。
[0208] 此外,从数码相机1到测量对象的被摄体的距离长、始点以及终点收纳于通过上述同时摄像而得到的1组成对图像中但到被摄体的距离与纵深的精度的相对误差比规定值大时,选择测量模式3。在测量模式3的处理中,由在多个相机位置的多次摄像结果,基于存在于比测量对象的被摄体靠前的其他被摄体的图像部分,计算相机位置(移动矢量、旋转矢量)。由此,即使从数码相机1到测量对象的被摄体的距离长时,也能够精度良好地计算上述2点间的长度。
[0209] 此外,在显示图像上重叠显示由使用者所指定的被摄体上的始点以及终点,所以使用者能够容易识别被摄体上的始点以及终点的位置。
[0210] 另外,本发明所涉及的摄像装置,即使利用现有的立体相机等也能够实现。即,通过将上述控制部210所执行的程序应用于现有的立体相机等,该立体相机等的CPU等(计算机)执行该程序,从而能够使该立体相机等作为本发明所涉及的摄像装置发挥功能。
[0211] 这种程序的配送方法是任意的,例如,可以存储在软盘、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、存储卡等计算机可读取的记录介质中来配送。或者,在因特网等通信网络上的服务器装置具有的盘装置等中预先存储上述程序,从相应的服务器装置经由该通信网络使上述程序与载波重叠来进行配送。
[0212] 在该情况下,在通过OS(操作系统)和应用程序的分担、或者OS和应用程序的协作来实现上述的本发明所涉及的功能的情况下等,还可以在记录介质等中仅格納应用程序部分。
[0213] 以上对本发明的优选实施例进行了详细叙述,但是本发明不限定于相关的特定实施例,在权利要求书所记载的本发明的主旨的范围内,可以进行各种变形、变更。