CN103918250A - 图像处理装置和方法、以及程序 - Google Patents

图像处理装置和方法、以及程序 Download PDF

Info

Publication number
CN103918250A
CN103918250A CN201280053872.3A CN201280053872A CN103918250A CN 103918250 A CN103918250 A CN 103918250A CN 201280053872 A CN201280053872 A CN 201280053872A CN 103918250 A CN103918250 A CN 103918250A
Authority
CN
China
Prior art keywords
image
catching
catch
panoramic picture
projected image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280053872.3A
Other languages
English (en)
Inventor
大木光晴
山田英史
佐野乾一
加藤直哉
木村笃史
增野智经
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN103918250A publication Critical patent/CN103918250A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Abstract

本技术涉及一种图像处理装置和方法、以及程序,其使得可以在生成360度全景图像时获得高质量的全景图像。投影图像生成单元以当360度旋转摄像装置时所捕获的图像被映射在圆柱表面上的方式生成投影图像。累积差分值计算单元计算在每个位置处邻近的投影图像之间的累积差分值。有向图生成单元基于投影图像和累积差分值生成有向图,在有向图中,累积差分值反映在边缘能量上。根据有向图,当彼此连接投影图像以生成全景图像时,路径搜索单元搜索具有最少间断的投影图像的连接位置。基于搜索结果,全景图像生成单元连接投影图像并且生成全景图像。本技术适用于图像处理装置。

Description

图像处理装置和方法、以及程序
技术领域
本技术涉及一种图像处理装置和图像处理方法、以及程序,并且更具体地,涉及一种用于当生成360度全景图像时、获得具有较高质量的全景图像的图像处理装置、图像处理方法、以及程序。
背景技术
例如,可以从每次近似36度地旋转数字摄像装置时连续地捕获的10个图像生成360度全景图像。即,从每个捕获图像中裁剪出等价于36度视图的区域,并且将所裁剪出的图像接合在一起以生成360度全景图像。
具体地,如下所述地生成这种全景图像。
首先,通过对彼此邻近的捕获图像进行分析,确定邻近的捕获图像之间的位置关系。对位置关系进行累积,以在基于第一个捕获图像的坐标系中确定拍摄每个捕获图像的方向(在下文中,也称为图像捕获方向)。
在这种基于第一个捕获图像的坐标系中的每个捕获图像的图像捕获方向、或在基于第一捕获图像的坐标系中关于每个捕获图像的位置关系,通常可以表达为3乘3的矩阵,并且被称为齐次变换矩阵(单应性矩阵)。
在基于第一个捕获图像的坐标系中表达关于第s个捕获图像的位置关系的齐次变换矩阵表示为H1,s的情况下,建立了根据下面的表达式(1)的关系。
[数学等式1]
X 1 Y 1 F ∝ H 1 , s X s Y s F . . . ( 1 )
在表达式(1)中,F表示捕获图像时透镜的焦距。另外,在表达式(1)中,Xt和Yt表示基于第t(1≤t)个捕获图像的坐标系中的X坐标和Y坐标。
表达式(1)意味着由在第s个捕获图像中的位置(Xs,Ys)处的像素所反映的对象也由在第一个捕获图像中的位置(X1,Y1)处的像素所反映。在s=1的情况下,齐次变换矩阵H1,s为单位矩阵。因为通过图像分析确定齐次变换矩阵的方法是已知的方法,所以在本文中未具体地描述该方法。
现在,假定图1所示的圆柱表面处于基于第一个捕获图像的坐标系中。在图1中,彼此垂直的X1轴、Y1轴以及Z1轴是基于第一个捕获图像的X1-Y1-Z1坐标系的轴,并且CL11表示圆柱表面。
圆柱表面CL11是具有Y1轴作为中心轴并且具有半径F的圆柱体的侧表面。在此,圆柱表面CL11与Z1轴相交的点是原点,以及具有与Y1轴平行的Cy轴并且具有沿着圆柱表面CL11在X1-Z1平面内延伸的Cx轴的Cx-Cy坐标系中的位置表示为(Cx,Cy)。即,图1中的弧AR11的长度表示为Cx,并且直线SL11的长度表示为Cy。更具体地,在附图中,向下的方向是Cy轴的正方向。
如从图1可以看到地,在X1-Y1-Z1坐标系中,从X1-Y1-Z1坐标系的原点O朝向点(Cx,Cy)的方向等于满足下面的表达式(2)的(X1,Y1,Z1)方向。
[数学等式2]
X 1 Y 1 Z 1 ∝ F × sin ( Cx ) Cy F × cos ( Cx ) . . . ( 2 )
表达式(1)和表达式(2)还证明了下述。在第s(1≤s≤10)个捕获图像中的位置(Xs,Ys)中的像素的像素值被映射(复制)到在圆柱表面CL11上满足下面的表达式(3)的位置(Cx,Cy)中。因为按照此方式确定在圆柱表面CL11上的各个位置(Cx,Cy)的像素值,所以可以在圆柱表面CL11上形成360度全景图像。
[数学等式3]
F × sin ( Cx ) Cy F × cos ( Cx ) ∝ H 1 , s X s Y s F . . . ( 3 )
现在参照图2至图5,再次描述通过将各个捕获图像映射在圆柱表面CL11上形成全景图像的处理。
图2至图5示出了布置在圆柱表面CL11所展开的二维平面中的投影图像,或示出了通过对捕获图像进行映射所获得的图像。在附图中,水平方向是Cx轴方向。
在图2中,圆柱表面CL11所展开的二维平面的水平方向上的长度(角度)是0至360度,并且角度等价于Cx-Cy坐标系中的Cx坐标。
在图2中,图像P1至图像P10是分别地根据以上表达式(3)(其中,s为1至10),将第一个捕获图像至第十个捕获图像映射在圆柱表面CL11上所获得的图像。例如,图像P1是通过变量s在表达式(3)中为1的计算、将第一个捕获图像映射在圆柱表面CL11上所获得的图像。
图像P1至图像P10中的阴影区域是第一个捕获图像至第十个捕获图像的像素被映射的区域,或投影图像的区域。图像P1至图像P10中的没有阴影区域是第一个捕获图像至第十个捕获图像的像素未被映射的区域,因为这些区域在图像捕获范围之外。
例如,基于第一个捕获图像限定圆柱表面CL11,因此投影在图像P1上的图像的中心位置为在0度处的位置。
当确定了投影在图像P1至图像P10上的图像区域中的像素的像素值时,通过对这10个图像的图像数据进行合成获得360度全景图像。
出于说明的方便,对Cx坐标轴施加偏移,使得图2中的图像P1中的阴影区域的左端或投影图像的左端变为Cx=0的位置。作为结果,获得了图3所示的图像。
在图3所示的图像P1至图像P10中,投影图像的阴影区域被运动了等价于所施加的偏移的量。
在此,作为坐标单位,假定圆柱表面CL11的一周的Cx为36。Cx与最终要获得的360度全景图像的水平方向上的像素间距紧密相关。
当圆柱表面CL11的一周为36时,最终的360度全景图像的水平(Cx轴方向)等价于36个像素。通常,最终的360度全景图像的水平长度等价于数千个像素。然而,出于说明的方便,在此使用小至36的数字。
在如上地限定Cx坐标单位的情况下,通过使用Cx坐标系代替角度、表达其中放置有图3所示的各个图像P1至图像P10的二维平面的水平方向。作为结果,获得了图4所示的图像。
在图4中,在各个图像P1至图像P10中的阴影区域还表示投影图像的区域。
在图4中,可以通过部分地对在各个图像P1至图像P10中的投影图像的区域进行接合获得360度全景图像。
特别地,例如,如图5所示,可以通过对在图像P1至图像P10中的投影图像的区域的区域TR1至区域TR10进行接合,获得360度全景图像。
在图5所示的示例中,区域TR1是在图像P1中、在Cx坐标上从10到14的区域。区域TR2是在图像P2中、在Cx坐标上从15到18的区域。区域TR3是在图像P3中、在Cx坐标上从19到21的区域。区域TR4是在图像P4中、在Cx坐标上从22到26的区域。
区域TR5是在图像P5中、在Cx坐标上从27到29的区域。区域TR6是在图像P6中、在Cx坐标上从30到31的区域。区域TR7是在图像P7中、在Cx坐标上从32到34的区域。
此外,区域TR8是在图像P8中、在Cx坐标上35处的区域以及在Cx坐标上从0到3的区域。区域TR9是在图像P9中、在Cx坐标上从4到5的区域。区域TR10是在图像P10中、在Cx坐标上从6到9的区域。
如上所述,通过对区域TR1至区域TR10进行接合获得360度全景图像。
作为与全景图像相关的技术,提议了下述一种技术:该技术用于当通过对各个捕获图像的剪裁区域进行接合生成全景图像时,防止在从捕获图像所剪裁的区域的端部处的运动对象的图像的分割(例如,参见专利文献1)。通过使用这种技术,可以防止图像缺陷,诸如显示在全景图像中的运动对象的分割的部分。因此,可以获得高质量全景图像。
引用列表
专利文献
专利文献1:日本专利申请早期公开第2011-97246号
发明内容
发明要解决的问题
存在当如上所述地生成360度全景图像时、在捕获图像中示出运动对象的情况。
例如,在图5所示的示例中,各个捕获图像是连续地捕获的第一个捕获图像至第十个捕获图像。换言之,因为这些图像是由一个摄像装置所捕获的,所以在这些捕获图像之中,不存在同一时间捕获的两个图像。因此,在捕获运动对象的图像的情况下,存在一个捕获图像未示出运动对象而另一个捕获图像示出了运动对象的可能性。
例如,如图6所示,在与第一个捕获图像相对应的图像P1中,运动对象MB11的图像投影到在Cx坐标上从13至16的区域上。在图6中,通过与图5中所使用的附图标记相同的附图标记来指示与图5中所示的部分等价的部分,并且在此不再重复对其的说明。
当拍摄第二个捕获图像时,此运动对象MB11发生了运动。例如,在与第二个捕获图像相对应的图像P2中,运动对象MB11的图像被投影到在Cx坐标上从10至13的区域上。
此外,在与第一个捕获图像相对应的图像P1中,另一个运动对象MB12的图像被投影到在Cx坐标上从8到10的区域上。当拍摄第十个捕获图像时,此运动对象MB12发生了运动,并且运动对象MB12的图像被投影到在与第十个捕获图像相对应的图像P10的Cx坐标上从12到14的区域上。
如果在生成360度全景图像中使用了在各个图像P1至图像P10中的区域TR1至区域TR10,则在最终所获得的全景图像中运动对象MB11和运动对象MB12变为分割的图像。
特别地,在生成全景图像中,使用在与第一个捕获图像相对应的图像P1中的区域TR1。虽然此区域TR1仅示出了运动对象MB11的一部分,但是生成全景图像时要被接合到区域TR1的区域TR2未示出运动对象MB11。因此,最终所获得的全景图像仅示出了运动对象MB11的一部分。
同样地,运动对象MB12的图像仅部分地投影在区域TR1上,并且未投影在生成全景图像时要被接合到区域TR1的区域TR10上。因此,最终所获得的全景图像仅示出了运动对象MB12的一部分。
如上所述,依赖于其图像被投影在各个捕获图像中的运动对象的运动,运动对象的图像被分割,并且最终所获得的全景图像不自然地仅示出了运动对象的一部分。有鉴于此,存在对于如下技术的需求:该技术用于在生成360度全景图像时,防止运动对象的图像的分割。
在专利文献1中所公开的技术可以在一定程度上防止运动对象的图像的分割,但是不可以处理360度全景图像。特别地,在专利文献1中所公开的技术不可以对第一个捕获图像和最后一个捕获图像进行接合、而不导致运动对象的图像的分割。
鉴于这些情形开发了本技术,并且本技术旨在当生成360度全景图像时获得具有高质量的全景图像。
问题的解决方案
本技术的一个方面的图像处理装置是下述图像处理装置:通过对被旋转的成像装置连续地拍摄的多个捕获图像进行接合,生成360度全景图像。该图像处理装置包括:差分计算单元,计算彼此邻近的捕获图像之间的差分信息;数据生成单元,基于差分信息生成数据,该数据指示当在预定位置对彼此邻近的捕获图像进行接合时发生的图像缺陷程度;确定单元,基于数据确定捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在捕获图像的参考捕获图像中的指定位置与捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,该接合位置使图像缺陷程度最小化,N是从参考捕获图像起计数的数量;以及图像生成单元,通过基于所确定的接合位置对捕获图像进行接合,生成全景图像。
确定单元可以确定在关于不同的指定位置所确定的接合位置之中、具有全景图像的最小缺陷程度的接合位置为最终接合位置。
数据可以是下述有向图:在该有向图中,在预定位置对彼此邻近的捕获图像进行接合时发生的图像缺陷程度被示为与在捕获图像中的预定位置相对应的节点的边缘能量。
数据生成单元可以计算图像缺陷程度,该图像缺陷程度作为在彼此邻近的捕获图像中的第一捕获图像与捕获图像中的第二捕获图像之间的预定位置的差分信息与在第一捕获图像和第二捕获图像中与预定位置邻近的其他位置的差分信息的均值;以及数据生成单元可以将均值设置为与第一捕获图像中的预定位置相对应的节点和与第二捕获图像中的其他位置相对应的节点之间的边缘能量。
确定单元可以通过从在有向图中从与参考捕获图像中的指定位置相对应的节点延伸至与第(N+1)个捕获图像中的指定位置相对应的节点的路径之中、识别出具有在路径中所存在的节点之间最小总边缘能量的路径,确定捕获图像之间的接合位置。
图像生成单元可以通过使用捕获图像中的不同的捕获图像作为参考捕获图像,生成多个全景图像;并且图像处理装置还可以包括输出单元,输出单元输出最终全景图像,该最终全景图像是在全景图像中具有最小图像缺陷程度的全景图像。
本技术的一个方面的图像处理方法或程序是用于通过对被旋转的成像装置连续地拍摄的捕获图像进行接合生成360度全景图像的图像处理方法或程序。图像处理方法或程序包括下述步骤:计算彼此邻近的捕获图像之间的差分信息;基于差分信息生成数据,该数据指示当在预定位置对彼此邻近的捕获图像进行接合时发生的图像缺陷程度;基于数据确定捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在捕获图像的参考捕获图像中的指定位置与捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,该接合位置使图像缺陷程度最小化,N是从参考捕获图像起计数的数量;以及通过基于所确定的接合位置对捕获图像进行接合,生成全景图像。
在本技术的一个方面中,当通过对被旋转的成像装置连续地拍摄的捕获图像进行接合生成360度全景图像时,计算彼此邻近的捕获图像之间的差分信息,并且基于差分信息生成数据,该数据指示当在预定位置对彼此邻近的捕获图像进行接合时发生的图像缺陷程度。基于数据确定捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在捕获图像的参考捕获图像中的指定位置与捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,该接合位置使图像缺陷程度最小化,N是从参考捕获图像起计数的数量。通过基于所确定的接合位置对捕获图像进行接合,生成全景图像。
发明的效果
根据本技术的一个方面,可以获得具有较高质量的全景图像。
附图说明
图1是用于说明捕获图像投影在其上的圆柱表面的图。
图2是用于说明投影在圆柱表面上的图像的图。
图3是用于说明投影在圆柱表面上的图像的图。
图4是用于说明投影在圆柱表面上的图像的图。
图5是用于说明全景图像的生成的图。
图6是用于说明全景图像中的运动对象的分割的图。
图7是用于说明投影在圆柱表面上的图像的图。
图8是用于说明从投影图像所生成的有向图的图。
图9是用于说明从投影图像所生成的有向图的图。
图10是用于说明从投影图像所生成的有向图的图。
图11是用于说明从投影图像所生成的有向图的图。
图12是用于说明从投影图像所生成的有向图的图。
图13是用于说明累积差分值的图。
图14是用于说明被分配给有向图中的边缘的能量的图。
图15是用于说明在有向图中通过特定的节点延伸的路径的图。
图16是用于说明在有向图中通过特定的节点延伸的路径的图。
图17是用于说明在全景图像中的运动对象的路径选择和分割的图。
图18是用于说明在有向图中通过特定的节点延伸的路径的图。
图19是用于说明在有向图中通过特定的节点延伸的路径的图。
图20是用于说明在有向图中通过特定的节点延伸的路径的图。
图21是用于说明在有向图中通过特定的节点延伸的路径的图。
图22是示出了图像处理装置的示例结构的图。
图23是用于说明全景图像生成处理的流程图。
图24是用于说明映射处理的流程图。
图25是示出了映射处理的伪代码的图。
图26是示出了映射处理的伪代码的图。
图27是用于说明在垂直方向上的第一画布区域的长度的图。
图28是用于说明在投影图像上所执行的处理的图。
图29是示出了累积差分值计算的伪代码的图。
图30是示出了累积差分值计算的伪代码的图。
图31是示出了有向图生成的伪代码的图。
图32是示出了有向图生成的伪代码的图。
图33是示出了有向图生成的伪代码的图。
图34是示出了路径搜索的伪代码的图。
图35是示出了全景图像生成的伪代码的图。
图36是示出了图像处理装置的其他示例结构的图。
图37是用于说明全景图像生成处理的流程图。
图38是示出了图像集生成的伪代码的图。
图39是示出了计算机的示例配置的图。
具体实施方式
下面是参照附图对应用了本技术的实施例进行的说明。
<第一实施例>
[本技术的概要]
首先,描述本技术的概要。
例如,当诸如摄像装置的成像装置被旋转地运动时,连续地拍摄捕获图像,并且获得指示这些捕获图像之间的位置关系的齐次变换矩阵。在此示例中,获得了10个捕获图像。
此时,关于基于第一个捕获图像的X1-Y1-Z1坐标系限定上述的Cx-Cy坐标系,并且各个捕获图像根据表达式(3)被投影在圆柱表面CL11上。作为结果,获得了图7所示的投影图像。
图7示出了下述二维平面,在该二维平面内展开有具有投影在其上的捕获图像的圆柱表面CL11,并且附图中的水平方向指示在Cx-Cy坐标系中的Cx轴方向。另外,在图7中,限定Cx以使得圆柱表面CL11的一周为36,并且施加偏移值以使得投影在附图中的二维平面(圆柱表面CL11)上的第一个捕获图像的左端的位置表示为Cx=0。
在图7中,投影图像PR1至投影图像PR10被示为根据表达式(3)通过将第一个捕获图像至第十个捕获图像映射(投影)到圆柱表面CL11上所获得的图像。投影图像PR11是通过在圆柱表面CL11上、将投影图像PR1在图中向右运动与一周等价的量(或Cx=36)所获得的图像。
对按照以上方式所获得的各个投影图像的部分进行接合,以生成360度全景图像。根据本技术,通过使用有向图,确定在彼此邻近的投影图像之间的接合位置,或在生成全景图像中所使用的投影图像的区域的端部的位置。
例如,基于映射在圆柱表面CL11上的各个投影图像PR1至投影图像PR11,生成了图8所示的有向图。
图8中的水平方向指示在Cx-Cy坐标系中的Cx轴方向,并且垂直方向指示捕获图像(投影图像)的图像捕获顺序、或变量s。在此,如上所述,第一个投影图像也用作第十一个(s=11)投影图像。
有向图是具有方向(箭头)的图,但是为了避免复杂,采用线段代替箭头形成图8所示的有向图。
因此,在图9至图12中更具体地示出了有向图的区域Q11至区域Q14。在图9至图12中,水平方向指示在Cx-Cy坐标系中的Cx轴方向,并且垂直方向指示捕获图像(投影图像)的图像捕获顺序。
图9是图8所示的有向图的区域Q11的放大视图。在图9中,在存在投影图像PR1和投影图像PR2的区域中示出了由附图中圆圈所表示的节点,并且通过箭头连接各个节点。
在此示例中,通过箭头连接在Cx轴方向上彼此邻近的各个节点,并且通过箭头,将在存在投影图像PR1的区域中示出的节点之中的一些节点连接到在附图中位于关于这些节点的右下位置处的节点。
应当注意,在下文中,在与第s(1≤s≤11)个投影图像PRs相对应的区域中的Cx轴方向上的Cx的位置(Cx坐标)中的节点还被称为位于位置(Cx,s)中的节点。
图10是图8所示的有向图的区域Q12的放大视图。在此示例中,也通过箭头连接在Cx轴方向上彼此邻近的各个节点,并且通过箭头将下述节点连接到右下节点:该节点具有在附图中关于该节点位于右下位置的其他节点。
此外,图11是图8所示的有向图的区域Q13的放大视图。在此示例中,也通过箭头连接在Cx轴方向上以及附图中在右下手方向上彼此邻近的各个节点。
同样地,图12是图8所示的有向图的区域Q14的放大视图。在此示例中,也通过箭头连接在Cx轴方向上以及附图中在右下手方向上彼此邻近的各个节点。
例如,在图12中,连接位于位置(Cx,s)=(34,7)的节点与位于位置(35,7)的节点的箭头W11表示从位置(34,7)到位置(35,7)的边缘。
连接位于位置(Cx,s)=(34,6)的节点与位于位置(35,7)的节点的箭头W12表示从位置(34,6)到位置(35,7)的边缘。即,连接各个节点的箭头表示边缘。
如上所述,图8所示的有向图是在附图中在从左到右的方向上、或在附图中在从左上到右下的方向上的有指向的图。
具体地,图8所示的有向图是按照以下所述的方式、从图7所示的各个投影图像PR1至投影图像PR11所生成的。
首先,通过从图7中水平方向上的投影图像PR1的任一端减去1确定在图8所示的s=1的行中的节点(箭头的开始点或结束点)。即,当投影图像PR1存在于Cx上的从0至22时,节点被放置于在Cx方向上减去两端的Cx上的从1至21的各个位置上,或在从(1,1)至(21,1)的各个位置上。然后,在图8中,在这些节点是开始点或结束点的情况下,添加从这些节点向右(+Cx轴方向)延伸或向右延伸到这些节点的箭头。
通过从图7中水平方向上的投影图像PR2的任一端减去1确定在图8所示的s=2的行中的节点。即,当投影图像PR2存在于Cx上的从4至26时,节点被放置于在Cx方向上减去两端的Cx上的从5至25的各个位置上,或在从(5,2)至(25,2)的各个位置上。然后,在图8中,在这些节点是开始点或结束点的情况下,添加从这些节点向右(+Cx轴方向)延伸或向右延伸到这些节点的箭头。
之后,按照与以上相同的方式生成图8中s=3至s=11的各个行中的节点。此外,在关于图8中s=1至s=10的位置(Cx,s)、在两个位置(Cx,s)和(Cx+1,s+1)中存在节点的情况下,添加从位置(Cx,s)向右下延伸到(Cx+1,s+1)的箭头(边缘)。
按照以上方式,从各个投影图像生成一个有向图。更具体地,能量被分配至连接有向图中各个节点的箭头(边缘),并且基于能量确定各个投影图像之间的接合点、或在生成全景图像中所使用的区域的端部的位置(接合位置)。
通过与这两个节点相对应的投影图像区域之间的差异,确定有向图中每两个节点之间的箭头(边缘)能量。下面是计算分配至节点之间的箭头的能量的方法的说明。
例如,如图13所示,捕获作为对象的三个运动对象MB31至MB33的图像。在图13中,水平方向指示Cx轴方向而垂直方向指示Cy轴方向。在图13中,通过与图7中所使用的附图标记相同的附图标记表示与图7中所示的部分等价的部分,并且在此不再重复对其的说明。
例如,运动对象MB31在附图中向右运动,或在Cx-Cy坐标心中在+Cx轴方向上运动。运动对象MB32在附图中向上运动,或在Cx-Cy坐标系中在-Cy轴方向上运动。运动对象MB33在附图中对角地向右下运动。
在这种情况下,在捕获第一个图像之后捕获第二个图像。因此,运动对象MB31至MB33在这两个捕获图像之间发生了运动。
因此,通过将第一个捕获图像映射在圆柱表面CL11上所获得的在投影图像PR1中的Cx-Cy坐标系中的运动对象MB31至MB33的位置不同于在第二投影图像PR2中的位置。
当计算投影图像PR1与投影图像PR2之间的重叠部分的差异时,获得差分图像DP11。例如,此差分图像DP11的像素的像素值是如下值:该值是与差分图像DP11的像素位于相同位置的投影图像PR1的像素的像素值与投影图像PR2的像素的像素值之间的差分的绝对值。
因此,在差分图像DP11中,由具有等于或大于预定阈值的像素值的像素或具有不为0的像素值的像素所形成的区域,是运动对象的图像投影在其上的区域。在图13中,在差分图像DP11中没有阴影的区域指示运动对象的区域。
此外,当对在差分图像DP11中在Cy轴方向上排列的像素的像素值、或就Cy轴方向而言具有相同Cx坐标的像素的像素值进行累积(图像被变换到Cx轴)时,如由箭头DF11所指示地获得投影图像PR1与投影图像PR2之间的累积差分值Diff[1,2](Cx)。
在此,累积差分值Diff[1,2](5)是在差分图像DP11中Cx=5处的各个像素的像素值的总和。
在按照以上方式所获得的累积差分值Diff[1,2](Cx)不为0的位置Cx中,在第一个捕获图像和第二个捕获图像(或投影图像PR1和投影图像PR2)中示出了运动对象。在累积差分值Diff[1,2](Cx)为0的位置Cx中,未在第一个捕获图像和第二个捕获图像(投影图像PR1和投影图像PR2)中示出运动对象。
在下文中,根据从与第s个捕获图像相对应的投影图像PRs和与第(s+1)个捕获图像相对应的投影图像PRs+1所获得的差分图像确定的位置Cx的累积差分值将被表示为Diff[s,s+1](Cx)。
根据本技术,按照以上方式所获得的累积差分值Diff[s,s+1](Cx)由图8所示的有向图所反映。即,基于各个累积差分值Diff[s,s+1](Cx)确定节点之间的箭头(边缘)的能量。
具体地,例如当能量被分配至图8中所示的有向图的区域Q12、或被分配至在图10所示的放大部分中的各个节点时,结果如图14所示。在图14中,水平方向指示Cx轴方向,而垂直方向指示捕获图像(投影图像)的图像捕获顺序。
在图14中,节点之间的箭头(边缘)的粗度指示分配至箭头的能量的量,并且箭头越粗则指示能量越大。
例如,在其中在位于位置(Cx,1)中的节点是开始节点、并且位于位置(Cx+1,2)中的节点是结束节点的附图的情况下,从在位于位置(Cx,1)中的节点向右下延伸到在位于位置(Cx+1,2)中的节点的箭头(边缘)的能量是累积差分值Diff[1,2](Cx)与累积差分值Diff[1,2](Cx+1)的均值。
因此,当位于与这些节点的位置相对应的投影图像中的运动对象的Cy方向面积和运动对象的运动变大时,累积差分值变大,并且作为结果,节点之间的箭头的能量变大。即,节点之间的箭头变粗。在图14中,在右手方向上或在Cx轴方向上所排列的节点之间的箭头的能量基本上为0。
同时,确定在生成360度全景图像中要使用的投影图像的区域之间的边界位置等价于确定从在有向图中位于位置(Cx,1)中的节点经由若干节点到达在位置(Cx,11)中的节点的路径。
具体地,例如,在关注图8所示的有向图中s=1至s=2的部分的情况下,现在描述如图15所示从位于位置(Cx,s)=(4,1)中的节点经由位置(14,1)和位置(15,2)延伸到位置(22,2)中的节点的路径PT11。
此路径PT11意味着在生成360度全景图像中,使用在投影图像PR1中在Cx上从4至14的区域和在投影图像PR2中在Cx上从15至22的区域。
如从图14所示的有向图中的节点之间的箭头的能量可以看到地,较小的能量被分配至从位于位置(14,1)中的节点向右下延伸到位于位置(15,2)中的节点的箭头。因此,当存在于路径PT11中的边缘(节点之间的箭头)的总能量被计算为路径PT11的总能量值时,总能量值较小。
在此,当位于与这些节点的位置相对应的投影图像中的运动对象的Cy方向面积和运动对象的运动变小时,各个节点之间的箭头的能量变小。因此,当路径PT11的总能量值变小时,生成的图像具有较少的缺陷,诸如在投影图像PR1与投影图像PR2之间的接合点处较少的运动对象的分割部分。
现在参照图16,现在将描述从位于位置(Cx,s)=(4,1)中的节点经由位置(19,1)和位置(20,2)延伸到位置(22,2)中的节点的路径PT12。
此路径PT12意味着在生成360度全景图像中、使用在投影图像PR1中在Cx上从4至19的区域和在投影图像PR2中在Cx上从20至22的区域。
如从图14所示的有向图中的节点之间的箭头的能量可以看到地,较大的能量被分配至从位于位置(19,1)中的节点向右下延伸到位于位置(20,2)中的节点的箭头。
因此,路径PT12的总能量值是较大的值。明显的是,如果通过对由此路径PT12所限定的投影图像PR1和投影图像PR2的区域进行接合生成全景图像,则生成的图像较大数量的缺陷,并且全景图像的质量较差。
如上所述,如图17所示,通过使用由路径PT11所限定的投影图像区域所生成的全景图像与通过使用由路径PT12所限定的投影图像区域所生成的全景图像之间的全景图像质量的差异较大。
在图17中,水平方向指示Cx轴方向,并且垂直方向指示Cy轴方向。在图17中,通过与图13中所使用的附图标记相同的附图标记来表示与图13中所示的部分等价的部分,并且在此不再重复对其的说明。
在图17中,虚线BD11指示由路径PT11所限定的投影图像之间的边界位置(接合位置),并且虚线BD12指示由路径PT12所限定的投影图像之间的边界位置(接合位置)。
在边界位置被表示为由路径PT11所限定的虚线BD11时,例如,通过对在虚线BD11左侧的投影图像PR1的区域和在虚线BD11右侧的投影图像PR2的区域进行接合,生成全景图像WP11。即,通过对在投影图像PR1中在Cx上从0至14的位置上的区域与在投影图像PR2中在Cx上从15至26的位置上的区域进行接合,生成全景图像WP11。
在这种情况下,在投影图像PR1和投影图像PR12中在虚线BD11附近不存在运动对象。因此,可以获得不具有缺陷的高质量全景图像WP11。
另一方面,在边界位置被表示为由路径PT12所限定的虚线BD12时,通过对在虚线BD12的左侧的投影图像PR1的区域与在虚线BD12的右侧的投影图像PR2的区域进行接合,生成全景图像WP12。即,通过对在投影图像PR1中在Cx上从0至19的位置中的区域与在投影图像PR2中Cx上从20至26的位置中的区域进行接合,生成全景图像WP12。
在这种情况下,在投影图像PR1中在虚线BD12附近存在运动对象MB33,并且在投影图像PR2中的运动对象MB33在由虚线BD12所分开的位置中。因此,在虚线BD12附近发生图像缺陷。
即,在全景图像WP12中仅在虚线BD12附近示出了运动对象MB33的一部分,并且还在部分的运动对象MB33的右侧示出了同一运动对象MB33。
鉴于以上,通常,下述为真。根据第s个投影图像与第(s+1)个投影图像之间的重叠部分之间的差异计算累积差分值Diff[s,s+1](Cx),并且累积差分值Diff[s,s+1](Cx)由图8中所示的有向图中的能量所反映。
关于在图8所示的有向图中所存在的路径,此路径延伸通过下述箭头,该箭头从位于位置(Cx’,s)中的节点向右下延伸到位于位置(Cx’+1,s+1)中的节点。
此时,确定这种路径与通过使用在第s个投影图像中的在Cx’或小于Cx’的Cx位置中的区域和在第(s+1)个投影图像中在Cx’+1或大于Cx’+1的Cx位置中的区域生成全景图像相关联。
在这种情况下,如果所确定的路径的总能量较大,则在第s个投影图像中和在第(s+1)个投影图像中、为Cx’的Cx部分中和为Cx’+1的Cx部分中存在运动对象。作为结果,由于在为Cx’的Cx部分和为Cx’+1的Cx部分中的分割的运动对象,所以在所生成的全景图像中发生缺陷。另一方面,如果所确定的路径的总能量较小,则在投影图像之间的接合部分(接合位置)中不存在运动对象,获得了不具有缺陷的高质量全景图像。
有鉴于此,如果在图8所示的有向图中检测到具有最小总能量的路径,则可以通过使用由路径所限定的各个投影图像的区域获得具有较少缺陷的运动对象的全景图像。
具体地,首先确定在有向图中从位于位置(Cx,s)=(1,1)中的节点到位于位置(Cx,s)=(1,11)中的节点的路径,并且在这些路径之中执行具有最小总能量值的路径的搜索。例如,可以通过动态编程进行具有最小总能量值的路径的搜索。
按照以上方式,例如,获得图18中所示的路径PT31作为具有最小总能量值的路径。在图18中,水平方向指示Cx轴方向,而垂直方向指示捕获图像(投影图像)的图像捕获顺序。
图18在与图8所示的有向图相同的有向图中、示出了从位置(1,1)中的节点到位置(1,11)中的节点的路径PT31。
在按照以上所述的方式获得从在位置(1,1)中的节点延伸、并且具有最小总能量值的路径PT31之后,在从在位置(Cx,s)=(2,1)中的节点延伸到在位置(2,11)中的节点的路径之中执行具有最小总能量值的路径的搜索。
同样地,对于在有向图中从Cx=3至Cx=21的位置中的每个,在从在位置(Cx,s)=(Cx,1)中的节点延伸到在位置(Cx,11)中的节点的路径之中、执行具有最小总能量值的路径的搜索。
例如,在有向图中从在位置(Cx,s)=(4,1)中的节点延伸到在位置(4,11)中的节点路径之中、执行具有最小总能量值的路径的搜索,以获得图19中所示的路径PT32。
另外,例如,在有向图中从在位置(Cx,s)=(11,1)中的节点延伸到在位置(11,11)中的节点路径之中、执行具有最小总能量值的路径的搜索,以获得图20中所示的路径PT33。
此外,例如,在有向图中从在位置(Cx,s)=(21,1)中的节点延伸到在位置(21,11)中的节点路径之中、执行具有最小总能量值的路径的搜索,以获得图21中所示的路径PT34。
在图19至图21中,水平方向指示Cx轴方向,而垂直方向指示捕获图像(投影图像)的图像捕获顺序。
按照以上方式,在有向图中从在Cx=1至Cx=21的21个位置(Cx,1)延伸的路径之中、确定具有各自最小总能量值的路径。在这21个路径之中具有最小总能量值的路径是用于最终生成具有最少缺陷的全景图像的路径。在确定这样的路径之后,基于路径所生成的全景图像被输出为最终的360度全景图像。
如上所述,根据本技术,通过使用从投影图像所生成的有向图,生成不具有缺陷的高质量全景图像。
[图像处理装置的示例结构]
接下来,描述应用了以上所述的本技术的图像处理装置的具体的实施例。
图22是示出了应用了本技术的图像处理装置的示例结构的图。此图像处理装置11包括获取单元21、投影图像生成单元22、累积差分值计算单元23、有向图生成单元24、路径搜索单元25以及全景图像生成单元26。
获取单元21获取由成像装置连续地拍摄的N个捕获图像、指示每个捕获图像与第一个捕获图像之间的位置关系的齐次变换矩阵等。获取单元21将捕获图像、齐次变换矩阵等提供给投影图像生成单元22。基于从获取单元21所提供的捕获图像和齐次变换矩阵,投影图像生成单元22通过将捕获图像投影(映射)在圆柱表面上生成投影图像。投影图像生成单元22还将投影图像提供给累积差分值计算单元23、有向图生成单元24、以及全景图像生成单元26。
基于从投影图像生成单元22所提供的投影图像,累积差分值计算单元23计算彼此邻近的投影图像之间的累积差分值,并且将累积差分值提供给有向图生成单元24。基于从投影图像生成单元22所提供的投影图像和从累积差分值计算单元23所提供的累积差分值,有向图生成单元24生成有向图,并且将有向图提供给路径搜索单元25。
基于从有向图生成单元24所提供的有向图,路径搜索单元25在有向图中搜索具有最小总能量值的路径,并且将所获得的路径提供给全景图像生成单元26。路径搜索单元25包括总能量值计算单元31,并且总能量值计算单元31在由路径搜索单元25执行的路径搜索期间、计算各个路径的总能量值。
基于从路径搜索单元25所提供的路径和从投影图像生成单元22所提供的投影图像,全景图像生成单元26生成并且输出360度全景图像。全景图像生成单元26包括使用区域确定单元32。基于从路径搜索单元25所提供的路径,使用区域确定单元32确定在生成全景图像总要使用的投影图像的区域。
[全景图像生成处理的说明]
现在参照图23中所示的流程图,描述由图像处理装置11要执行的全景图像生成处理。
在步骤S11中,获取单元21获取N个捕获图像、指示每个捕获图像与第一个捕获图像之间的位置关系的齐次变换矩阵、以及指示每个捕获图像的焦距F的信息;并且将捕获图像、齐次变换矩阵、以及信息提供给投影图像生成单元22。
在此,由获取单元21所获取的捕获图像是由诸如被旋转的摄像装置的成像装置连续地捕获的图像。N个捕获图像具有相同的焦距。
在步骤S12中,投影图像生成单元22执行映射处理,并且基于从获取单元21所提供的捕获图像和齐次变换矩阵生成投影图像。
现在参照图24中所示的流程图,描述与步骤S12中的处理相对应的映射处理。此映射处理等价于通过使用图25和图26中所示的伪代码要执行的处理。
在步骤S41中,投影图像生成单元22确保在其上要映射第s(1≤s≤N)个捕获图像的第一画布区域。
例如,投影图像生成单元22在以上所述的Cx-Cy坐标系中限定第一画布区域。此时,放置第一画布区域,使得第一画布区域在-Cx轴方向上的端部处的第一画布区域在Cy轴方向上的中心位置为Cx-Cy坐标系的原点。
第一画布区域在Cx轴方向上的宽度(“width”)(在下文中还称为水平宽度)是2πF,并且第一画布区域在Cy轴方向上的宽度(“height”)(在下文中还称为垂直宽度)是通过将捕获图像在Cy轴方向上的像素数量乘以0.9所获得的值。在此,在计算水平宽度(“width”)中所使用的F是捕获图像的焦距。
第一画布区域的垂直宽度(“height”)等于捕获图像在Cy轴方向上的像素数量的90%,使得投影图像在Cy轴方向上的端部与Cx轴方向平行,例如如图27所示。在图27中,水平方向和垂直方向分别地指示Cx轴方向和Cy轴方向。
例如,确保具有基本上等于捕获图像在Cy轴方向上的像素数量的垂直宽度(“height”)的区域CA11为第一画布区域。图像TR31是通过将捕获图像映射在Cx-Cy坐标系的圆柱表面上所获得的图像。
在这种情况下,将位于区域CA11之内的图像TR31的部分当做投影图像。如果区域CA11过大,则区域Q31和区域Q32包括在捕获图像的图像捕获范围之外的部分,并且在其中不存在有效像素值。作为结果,所获得的投影图像在Cy轴方向上的端部变为不平行于Cx轴方向。
有鉴于此,例如,第一画布区域的垂直宽度(“height”)减少了一定的量,并且区域CA12被设置为第一画布区域。作为结果,所获得的投影图像在Cy轴方向上的端部变为平行于Cx轴方向。
当用户在旋转成像装置时拍摄图像的情况下,以与Cy轴平行的直线为轴、在Cx轴方向上旋转成像装置。然而,成像装置可能在Cy轴方向上轻微摇摆。如果成像装置在Cy轴方向上的轻微摇摆较大,则投影在圆柱表面上的捕获图像的位置大大地变化,尤其是当用户在不稳定的位置中拍摄图像时。因此,垂直宽度(“height”)需要变得更小。
在步骤S42中,投影图像生成单元22将第s个捕获图像写入到第一画布区域,以生成第s个投影图像。
对于在第一画布区域中的每个位置(Cx,Cy)(0≤Cx≤width,-height/2≤Cy≤height/2),投影图像生成单元22计算满足以上所述的表达式(3)的位置(Xs,Ys)。在此,位置(Xs,Ys)是基于第s个捕获图像的坐标系中的位置。
在第s个捕获图像的像素位于所计算出的位置(Xs,Ys)中的情况下,投影图像生成单元22将像素的像素值设置为位于第一画布区域中的位置(Cx,Cy)中的像素的像素值。换言之,如果位于捕获图像的位置(Xs,Ys)中的像素是有效像素,则该像素的像素值被写入(映射)到第一画布区域中的位置(Cx,Cy)。
当按照以上方式将捕获图像的像素映射到各个位置(Cx,Cy)中时,在第一画布区域中生成投影图像。在步骤S41和S42中的这些处理等价于图25中所示的伪代码中的部分FC11。
在步骤S43中,投影图像生成单元22对投影图像进行处理,使得第s个投影图像在Cx轴方向上的端部变为平行于Cy轴。
具体地,在由在第一画布区域中具有相同Cy坐标的像素所形成的像素行包括一个或更多个在步骤S42的处理中未对其分配像素值的像素时,投影图像生成单元22使得在像素行中的像素的像素值无效。
例如,如图28的上半部分所示,确保第一画布区域CA31,并且通过将捕获图像映射在第一画布区域CA31上获得图像TR41。在图28中,水平方向和垂直方向分别地指示Cx轴方向和Cy轴方向。直线L11和直线L12是平行于Cy轴的直线。
按照以上方式所获得的图像TR41的右端和左端不必平行于Cy轴方向。在图28所示的示例中,图像TR41的右端和左端不平行于Cy轴方向。
因为图像处理装置11通过使用累积差分值生成全景图像,所以例如,每个投影图像的右端和左端优选地平行于Cy轴。因此,投影图像生成单元22移除在附图中在图像TR41中的直线L11左侧的部分和在附图中在图像TR41中的直线L12右侧的部分。即,使得在这些部分中的像素值无效。作为结果,如在附图的下半部分中所示,在第一画布区域CA31中获得了矩形投影图像TR42。
在步骤S43中的这样的处理等价于在图25中所示的伪代码中的部分FC12。
参照回图24中所示的流程图,在步骤S44中,投影图像生成单元22确定是否已经处理了所有捕获图像。例如,当已经生成了与N个捕获图像相对应的投影图像时,则投影图像生成单元22确定已经处理了所有捕获图像。
如果在步骤S44中确定尚未处理所有捕获图像,则处理返回到步骤S41并且重复以上所述的处理。即,未处理的捕获图像被投影到第一画布区域中,以形成投影图像。
另一方面,如果在步骤S44中确定已经处理了所有捕获图像,则投影图像生成单元22在步骤S45中对投影图像执行偏移处理。
例如,投影图像生成单元22确定偏移值,使得第一个投影图像的左端运动到Cx-Cy坐标系的原点位置。即,计算从Cx-Cy坐标系的原点到第一个投影图像的左端的距离。换言之,从第一画布区域在+Cx轴方向上的端部到关于第一画布区域在+Cx轴方向上的端部具有位于-Cx轴方向上的有效像素值的第一个像素的距离被设置为偏移值。
在确定了偏移值之后,投影图像生成单元22在Cx-Cy坐标系中确保第二画布区域以用于第s个投影图像(1≤s≤N)。
在此,第二画布区域在Cx轴方向上的宽度和第二画布区域在Cy轴方向上的宽度分别地为“width”和“height”。即,第二画布区域具有与第一画布区域相同的尺寸。放置第二画布区域,使得第二画布区域在-Cx轴方向上的端部处的第二画布区域在Cy轴方向上的中心位置为Cx-Cy坐标系的原点。
然后,投影图像生成单元22将位于第s个第一画布区域中的位置(tmpCx,Cy)中的像素的像素值写入到在第s个第二画布区域中的位置(Cx,Cy)。即,位于第一画布区域中的位置(tmpCx,Cy)中的像素的像素值被设置为位于第二画布区域中的位置(Cx,Cy)的像素的像素值。在偏移值被表示为offsetCx的情况下,tmpCx被表示为(Cx–offsetCx)。
当对第一个第二画布区域至第N个第二画布区域执行写入时,在这些第二画布区域中的图像数据形成了投影图像。更具体地,在由在第二画布区域中的有效像素所形成的图像是投影图像。
在按照以上方式使得投影图像中的每个在Cx轴方向上移位了与偏移值等价的量之后,第一投影图像的端部位于Cx-Cy坐标系的原点的位置上。在步骤S45中所执行的偏移处理等价与图26中所示的伪代码。
投影图像生成单元22将第一个投影图像至第N个投影图像提供给累积差分值计算单元23、有向图生成单元24、以及全景图像生成单元26。在生成投影图像之后,映射处理结束,并且处理继续到图23中的步骤S13。
参照回图23中所示的流程图,在步骤S13中,累积差分值计算单元23基于从投影图像生成单元22所提供的各个投影图像计算投影图像之间的累积差分值,并且将累积差分值提供给有向图生成单元24。
例如,累积差分值计算单元23通过执行图29和图30中所示的伪代码,计算累积差分值。
即,累积差分值计算单元23将宽度(“width”)设置为2πF,并且通过将捕获图像在Cy轴方向上的像素的数量乘以0.9计算宽度(“heigth”)。
在1≤s≤N-1的情况下,累积差分值计算单元23计算第s个投影图像与第(s+1)个投影图像之间的累积差分值Diff[s,s+1](Cx)。
具体地,累积差分值计算单元23确定是否满足下面的条件:在第s个投影图像中,在位置Cx中或在Cx坐标为预定位置Cx的位置中存在有效像素;以及在第s+1个投影图像中,在位置Cx中也存在有效像素。
如果满足这样的条件,则累积差分值计算单元23对于每个Cy(-height/2≤Cy≤height/2)值,计算在第s个投影图像中的位置(Cx,Cy)中的像素的像素值与在第(s+1)个投影图像中的位置(Cx,Cy)中的像素的像素值之间的差分(差分绝对值)。累积差分值计算单元23按照以上方式、关于各个Cy值计算像素值的差分的总和,以确定累积差分值Diff[s,s+1](Cx)。
如果关于预定的位置Cx不满足以上的条件,则累积差分值计算单元23使得关于预定位置Cx的累积差分值Diff[s,s+1](Cx)无效。
按照以上方式,累积差分值计算单元23针对每个s值(1≤s≤N-1)、关于在0≤Cx≤width的范围中的每个位置Cx,计算连续的投影图像之间的累积差分值Diff[s,s+1](Cx)。
累积差分值计算单元23还确定第N个投影图像与第(N+1)个投影图像之间的累积差分值Diff[N,N+1](Cx),第一个投影图像是第(N+1)个投影图像。
即,累积差分值计算单元23确定是否满足下面的条件:在第N个投影图像中的位置Cx中存在有效像素;以及在第一个或第(N+1)个投影图像中的位置Cx中存在有效像素。如果满足条件,则累积差分值计算单元23对于每个Cy(-height/2≤Cy≤height/2)值,计算在第N个投影图像中的位置(Cx,Cy)中的像素的像素值与在第(N+1)个(第一个)投影图像中的位置(Cx,Cy)中的像素的像素值之间的差分(差分绝对值)。累积差分值计算单元23按照以上方式、关于各个Cy值计算像素值的差分的总和,以确定累积差分值Diff[N,N+1](Cx)。
如果关于预定的位置Cx不满足以上的条件,则累积差分值计算单元23使得关于预定位置Cx的累积差分值Diff[N,N+1](Cx)无效。
累积差分值计算单元23将按照以上方式所计算出的累积差分值Diff[s,s+1](Cx)提供给有向图生成单元24。按照以上方式计算累积差分值等价于通过确定投影图像之间的差分信息、检测投影图像中的运动对象。
在步骤S14中,有向图生成单元24基于从投影图像生成单元22所提供的投影图像和从累积差分值计算单元23所提供的累积差分值Diff[s,s+1](Cx)生成有向图,并且将有向图提供路径搜索单元25。
例如,通过执行图31至图33中所示的伪代码,有向图生成单元24基于累积差分值构建具有分配至其的能量的有向图。
具体地,针对每个s(1≤s≤N)值,有向图生成单元24确定在第s个投影图像中、在Cx坐标上在位置Cx中或在具有预定位置Cx的位置中是否存在有效像素,并且确定在第s个投影图像中在位置Cx+1中是否也存在有效像素。
如果在第s个投影图像中、在位置Cx和位置Cx+1中存在有效像素,则有向图生成单元24将0设置为用于在有向图中从在位置(Cx,s)中的节点延伸到在位置(Cx+1,s)中的节点的箭头(边缘)的能量。有向图生成单元24针对满足0≤Cx≤width-1的所有Cx值执行此处理。在此捕获图像的焦距被表示为F,并且“width”为2πF。
如果在第s个投影图像中在位置Cx=width-1中存在有效像素,并且在第s个投影图像中在位置Cx=0中存在有效像素,则有向图生成单元24将0设置为用于在有向图中从在位置(width-1,s)中的节点到在位置(0,s)中的节点的边缘的能量值。
此外,图像生成单元24关于s=N+1,确定在第一个(第(N+1)个)投影图像中在位置Cx中是否存在有效像素,并且还确定在第一个投影图像的位置Cx+1中是否存在有效像素。如果在第一投影图像中在位置Cx和位置Cx+1中存在有效像素,则有向图生成单元24将0设置为用于在有向图中从在位置(Cx,N+1)中的节点到位置(Cx+1,N+1)中的节点的边缘的能量值。
通过以上处理,能量被分配至图8所示的有向图中的向右的箭头(边缘)。此处理等价于图31和图32中所示的伪代码。
然后,针对每个s(1≤s≤N)值,有向图生成单元24确定累积差分值Diff[s,s+1](Cx)是否有效,并且还确定累积差分值Diff[s,s+1](Cx+1)是否有效。如果这些累积差分值有效,则有向图生成单元24将累积差分值Diff[s,s+1](Cx)和累积差分值Diff[s,s+1](Cx+1)的均值设置为用于从在位置(Cx,s)中的节点到位置(Cx+1,s+1)中的节点的边缘的能量值。
有向图生成单元24针对满足0≤Cx≤width-1的所有Cx值,执行此处理。
针对每个s(1≤s≤N)值,有向图生成单元24还确定累积差分值Diff[s,s+1](width-1)是否有效,并且还确定累积差分值Diff[s,s+1](0)是否有效。如果这些累积差分值有效,则有向图生成单元24将累积差分值Diff[s,s+1](width-1)和累积差分值Diff[s,s+1](0)的均值设置为用于从在位置(width-1,s)中的节点到位置(0,s+1)中的节点的边缘的能量值。
通过这些处理,能量被分配至在图8所示的有向图中向右下延伸的箭头(边缘),并且构建有向图。这些处理等价于图33中所示的伪代码。在由有向图生成单元24所生成的有向图中,能量被分配至在各个节点之间的边缘,并且这些能量指示当在这些节点的位置处对投影图像进行结合时发生的图像缺陷的程度。
在通过按照以上方式在各个节点之间分配能量构建有向图之后,将所获得的有向图提供给路径搜索单元24,并且处理继续到步骤S15。
在步骤S15中,路径搜索单元25基于从有向图生成单元24所提供的有向图,搜索具有最小总能量值的路径(在下文中,还称为最小能量路径)。
例如,路径搜索单元25通过执行图34中所示的伪代码,搜索最小能量路径。
具体地,路径搜索单元25将图像处理装置11可以处理的最大值设置为各个路径的总能量值之中的最小值“minTotal”的初始值。
然后,路径搜索单元25从在满足0≤Cx≤width-1的位置Cx之中选择未处理的位置Cx。在此“width”为2πF。
在能量被分配至从在位置(Cx,1)中的节点到在位置(Cx+1,1)中的节点的边缘的情况下,或在能量被分配至从在位置(Cx,1)中的节点到在位置(Cx+1,2)中的节点的边缘的情况下,路径选择单元25针对所选择的位置Cx执行下面的处理。
具体地,路径选择单元25通过动态编程,计算在有向图中在从位置(Cx,1)延伸到位置(Cx,N+1)的路径之中、具有最小总能量值的路径。此时,总能量值计算单元31计算每个路径的总能量值,其为存在于路径中的节点之间的边缘的能量的总和。
所获得的从位置(Cx,1)延伸到位置(Cx,N+1)并且具有最小总能量值的路径被设置为路径“path(Cx)”。此路径“path(Cx)”的总能量值被表示为“total(Cx)”。
在关于所选择的位置Cx计算路径“path(Cx)”和总能量值“total(Cx)”之后,路径选择单元25更新最小能量路径“minPath”和最小能量路径“minPath”的总能量值、或在各个路径的总能量值之中的最小值“minTotal”。
即,如果当前路径“path(Cx)”的总能量值“total(Cx)”小于最小值“minTotal”、或如果total(Cx)<minTotal,则路径搜索单元25将当前路径“path(Cx)”设置为最小能量路径“minPath”。路径搜索单元25还将路径“path(Cx)”的总能量值“total(Cx)”设置为新的最小值“minTotal”。
当total(Cx)≥minTotal时,则未更新最小能量路径“minPath”和最小值“minTotal”。
虽然顺序地选择满足0≤Cx≤width-1的所有位置Cx,但是路径搜索单元25关于每个位置Cx计算路径“path(Cx)”和总能量值“total(Cx)”,并且通过更新最小能量路径“minPath”和最小值“minTotal”确定最终最小能量路径“minPath”。最小能量路径“minPath”指示各个投影图像之间的这样的接合位置,以便使得通过使用从作为参考的第一投影图像中的预定位置到在第(N+1)个投影图像中的预定位置的位置所生成的全景图像中的图像缺陷最小化。
路径搜索单元25将最终所获得的最小能量路径“minPath”提供给全景图像生成单元26,并且处理从步骤S15继续到步骤S16。
在步骤S16中,全景图像生成单元26基于从路径搜索单元25所提供的最小能量路径“minPath”和从投影图像生成单元22所提供的投影图像、生成360度全景图像,并且然后输出360度全景图像。
例如,全景图像生成单元26通过执行图35所示的伪代码,生成360度全景图像。
具体地,全景图像生成单元26在Cx-Cy坐标系中确保用于360度全景图像的全景画布区域。
此时,布置全景画布区域,使得全景画布区域在-Cx轴方向上的端部处的全景画布区域在Cy轴方向上的中心位置为Cx-Cy坐标系的原点。在Cx轴方向上的全景画布区域的宽度(“width”)为2πF,并且全景画布区域在Cy轴上的垂直宽度(“height”)具有通过将捕获图像在Cy轴方向上的像素数量乘以0.9所获得的值。
针对满足0≤Cx≤width的预定位置Cx,全景图像生成单元26的使用区域确定单元32确定在有向图中延伸通过位于位置(Cx,s)中的节点的最小能量路径“miniPath”的“s”,并且将所确定的“s”设置为“approariateS”。即,在最小能量路径“miniPath”中,确定在Cx坐标上在所选择的预定位置Cx中的节点的位置(Cx,s),并且将位置(Cx,s)的“s”确定为“approariateS”。
关于按照以上方式所确定的“s=approariateS”,全景图像生成单元26将位于第approariateS个投影图像的位置(Cx,Cy)(-height/2≤Cy≤height/2)中的像素的像素值写入到在全景画布区域中的位置(Cx,Cy)。即,在作为第approariateS个投影图像中Cx坐标上的预定位置Cx的每个位置(Cx,Cy)中的像素的像素值被设置为位于全景画布区域的位置(Cx,Cy)中的像素的像素值。
通过针对满足0≤Cx≤width的每个位置Cx执行以上处理,全景图像生成单元26将像素值写入到全景画布区域中的每个像素中,以形成最终的360度全景图像。即,被由写入到全景画布区域中的各个像素所形成的图像是360度全景图像。
在此,对于使用区域确定单元32,基于最小能量路径、关于Cx坐标的各个值确定在生成全景图像中要使用的投影图像等价于基于最小能量路径、确定在生成全景图像中要使用的投影图像的区域之间的边界位置(接合位置)。
在生成全景图像之后,全景图像生成单元26输出所生成的全景图像。然后,全景图像生成处理结束。
如上所述,图像处理装置11基于从投影图像所获得的累积差分值生成有向图,并且通过基于在所获得的有向图中具有最小总能量值的路径、对各个投影图像进行接合,生成360度全景图像。
通过按照以上方式使用有向图,可以确定在生成全景图像中要使用的投影图像之间的接合位置,以便使得图像缺陷最小化,并且可以获得具有较少缺陷的高质量全景图像。
尽管在步骤S14中生成有向图时,用于从在位置(Cx,s)中的节点延伸到在位置(Cx+1,s)中的节点的边缘的能量被设置为0,但是预定的正值可以被设置为用于有效的投影图像的端部部分的能量。按照这种方式,通过搜索所检测到的具有最小总能量值的路径很可能通过投影图像的中心部分,并且很难通过投影图像的端部部分。
作为结果,使用投影图像更中心的部分作为在360度全景图像中要使用的各个投影图像的区域,并且较少使用投影图像的端部部分。通常,指定诸如摄像装置的成像装置清楚地捕获每个图像的中心部分。因此,通过执行以上所述的能量设置,在生成全景图像中使用作为投影图像的清楚部分的更中心的部分。作为结果,可以获得更清楚的全景图像。
另外,在以上的说明中,以第一个投影图像为参考,确定在有向图中与第一投影图像的各个位置相对应的节点与在第(N+1)个投影图像中各个位置相对应的节点之间的最小能量路径。然而,参考图像可以不是第一个投影图像。
在使用第二个投影图像作为参考的情况下、或在将第二个投影图像当做第一个投影图像的情况下,例如,将第一个投影图像当做第N个投影图像,并且将与第二个投影图像相同的图像当做在第一个投影图像之后的第N+1个投影图像。确定与在第二投影图像中各个位置相对应的节点和与在第N+1投影图像中与各个位置相对应的节点之间的最小能量路径,并且基于最小能量路径生成全景图像。
<第二实施例>
[图像处理装置的示例结构]
根据通过使用在第一实施例中所描述的有向图生成全景图像的方法(在下文中,还被称为有向图方法),可以确定在生成全景图像中要使用的投影图像之间的接合点,而同时使得每个运动对象的图像的分割最小化。然而,根据有向图方法,存在无论如何确定接合点,也会分割运动对象的图像的情况。
为了获得甚至具有更高质量的全景图像,可以通过在成像装置被旋转360度或更多时捕获对象的图像、生成若干全景图像,并且可以选择在这些全景图像中具有最少缺陷的全景图像作为最终的全景图像。
具体地,例如,根据有向图方法,当每一次36度地旋转成像装置时拍摄10个捕获图像。然而,在本实施例中,执行额外的图像捕获。即,例如,当每一次36度地旋转成像装置时拍摄12个捕获图像。
根据有向图法,使用第一个捕获图像至第十个捕获图像生成360度全景图像。同样地,根据有向图法,使用第二个至第十一个捕获图像生成其他的360度全景图像,以及根据有向图法,使用第三个至第十二个捕获图像生成其他的360度全景图像。
在按照以上方式获得三个全景图像之后,具有最高质量的全景图像或具有由运动对象所导致的最少缺陷的全景图像被输出作为最终全景图像。
作为在全景图像中由运动对象随导致的缺陷的评估指示符,例如,可以使用作为在生成全景图像时所确定的最小能量路径“minPath”的总能量值的最小值的“minTotal”。这是因为最小值“minTotal”指示在计算运动对象的图像中具有最少缺陷的路径时、在运动对象的图像中的缺陷的程度。
在生成全景图像并且输出在这些全景图像中具有最少缺陷的全景图像作为如上所述的最终全景图像的情况下,例如,图像处理装置具有如图36所示的结构。
图36所示的图像处理装置81包括获取单元91、图像集生成单元92、投影图像生成单元22、累积差分值计算单元23、有向图生成单元24、路径搜索单元25、全景图像生成单元26、以及输出单元93。在图36中,通过与图22中所使用的附图标记相同的附图标记表示与在图22中所示的组件等价的组件,并且在此不再重复对其的说明。
获取单元91获取由成像装置连续地拍摄的Mmax个捕获图像、指示每个捕获图像与第一个捕获图像之间的位置关系的齐次变换矩阵、以及捕获图像的焦距F;并且获取单元91将Mmax个捕获图像、齐次变换矩阵以及捕获图像的焦距F提供给图像集生成单元92。在此,由获取单元91所获取的Mmax个捕获图像是通过用户旋转摄像装置360度或更多连续地拍摄的图像。
基于从获取单元91所提供的捕获图像、齐次变换矩阵、以及焦距F,图像集生成单元92确定用于生成一个全景图像所需要的一周(360度)的捕获图像集。
在此,一周捕获图像集(在下文中,还称为图像集)是在旋转成像装置360度时、通过用户拍摄图像所获得的捕获图像集。更具体地,图像集包括指示捕获图像与焦距F之间的位置关系的齐次变换矩阵。
图像集生成单元92确定一些图像集,并且将这些图像集提供给投影图像生成单元22。
针对从图像集生成单元92所提供的每个图像集,投影图像生成单元22生成在图像集中所包括的捕获图像的投影图像,并且将投影图像提供给累积差分值计算单元23、有向图生成单元24、以及全景图像生成单元26。
针对每个图像集,累积差分值计算单元23、有向图生成单元24、路径搜索单元25、以及全景图像生成单元26执行累积差分值的计算、有向图的生成、最小能量路径的搜索、以及全景图像的生成。此时,路径搜索单元25将通过在每个图像集中的搜索所获得的最小能量路径和最小值“minTotal”(最小能量路径的总能量值)提供给全景图像生成单元26。针对每个图像集,全景图像生成单元26将全景图像和全景图像的最小值“minTotal”提供给所输出单元93。
基于从全景图像生成单元26所提供的最小值“minTotal”,输出单元93在从全景图像生成单元26所提供的全景图像之中选择最终全景图像,并且输出所选择的全景图像。
[图像集]
在指示基于第一个捕获图像的坐标系中关于第s(1≤s≤Mmax)个捕获图像的位置关系的齐次变换矩阵表示为H1,s的情况下,建立了根据下面的表达式(4)的关系。
[数学等式4]
X 1 Y 1 F &Proportional; H 1 , s X s Y s F &equiv; H 1 , s [ 1,1 ] H 1 , s [ 1,2 ] H 1 , s [ 1,3 ] H 1 , s [ 2,1 ] H 1 , s [ 2,2 ] H 1 , s [ 2,3 ] H 1 , s [ 3,1 ] H 1 , s [ 3 , 2 ] H 1 , s [ 3,1 ] X s Y s F . . . ( 4 )
在表达式(4)中,F表示捕获图像的焦距。在表达式(4)中,Xt和Yt表示基于第t(1≤t)个捕获图像的坐标系中的X坐标和Y坐标,并且在s=1的情况下,齐次变换矩阵H1,1为单位矩阵。
在表达式(4)中的齐次变换矩阵H1s是由9个标量H1s[ab](1≤a≤3,1≤b≤3)所形成的3乘3矩阵。
根据齐次变换矩阵H1,s的含义变得明显的是,在以下表达式(5)中所示的三维向量的方向是在基于第一个捕获图像的坐标系中的第s个捕获图像的图像捕获方向。在此,第s个捕获图像的图像捕获方向是从基于第一个捕获图像的坐标系的原点到第s个捕获图像的中心的方向。
[数学等式5]
H 1 , s [ 1,3 ] H 1 , s [ 2,3 ] H 1 , s [ 3,1 ] . . . ( 5 )
此外,标量H1,s[1,3]的值是在基于第一个捕获图像的X1-Y1-Z1的坐标系中的第s个捕获图像的图像捕获方向的X1坐标。
检查每个“s”的标量H1,s[1,3],并且计算满足下面的等式(6)的“s”的值以确定M(1)=s。
[数学等式6]H1,s[1,3]<0<H1,s+1[1,3]...(6)
在此,M(t)指示在拍摄Mmax个捕获图像之中的第t个捕获图像的方向是开始点的情况下或在成像装置的旋转角度是0度的情况下,在少于360度的一周中的最后捕获图像是第几号图像。
因此,在表达式(6)中所示的示例中,在第一个捕获图像的图像捕获方向是0度的情况下,当在从0度到360度旋转成像装置时(更具体地,不包括360度)执行图像捕获时,捕获第一个至第s个捕获图像、或捕获总共s个捕获图像。
鉴于上述,为了生成基于第一个捕获图像的360度全景图像,应当准备第一个至第s个捕获图像或总共“s”个捕获图像的图像集。
在指示关于基于第二个捕获图像的X2-Y2-Z2坐标系中的第s个捕获图像的位置关系的齐次变换矩阵被表示为H2,s的情况下,可以通过在以下的表达式(7)中所示的计算确定此齐次变换矩阵H2,s。即,通过齐次变换矩阵H1,2的逆矩阵与齐次变换矩阵H1,s的乘积确定齐次变换矩阵H2,s
[数学等式7]
H 2 , s &equiv; H 2 , s [ 1,1 ] H 2 , s [ 1,2 ] H 2 , s [ 1,3 ] H 2 , s [ 2,1 ] H 2 , s [ 2,2 ] H 2 , s [ 2,3 ] H 2 , s [ 3,1 ] H 2 , s [ 3 , 2 ] H 2 , s [ 3,1 ] = H 1,2 - 1 H 1 , s . . . ( 7 )
在此,在齐次变换矩阵H2,s中的元素H2,s[1,3]的值是在基于第二个捕获图像的坐标系中的第s个捕获图像的图像捕获方向的X2坐标。有鉴于此,检查每个“s”的H2,s[1,3]的值,并且计算满足下面的表达式(8)的“s”的值,以确定M(2)=s。
[数学等式8]H2,s[1,3]<0<H2,s+1[1,3]...(8)
此外,在指示关于基于第三个捕获图像的X3-Y3-Z3坐标系中的第s个捕获图像的位置关系的齐次变换矩阵被表示为H3,s的情况下,可以通过在以下的表达式(9)中所示的计算确定此齐次变换矩阵H3,s
[数学等式9]
H 3 , s &equiv; H 3 , s [ 1,1 ] H 3 , s [ 1,2 ] H 3 , s [ 1,3 ] H 3 , s [ 2,1 ] H 3 , s [ 2,2 ] H 3 , s [ 2,3 ] H 3 , s [ 3,1 ] H 3 , s [ 3 , 2 ] H 3 , s [ 3,1 ] = H 1 , 3 - 1 H 1 , s . . . ( 9 )
在此,在齐次变换矩阵H3,s中的元素H3,s[1,3]的值是在基于第三个捕获图像的坐标系中的第s个捕获图像的图像捕获方向的X3坐标。有鉴于此,检查每个“s”的H3,s[1,3]的值,并且计算满足下面的表达式(10)的“s”的值,以确定M(3)=s。
[数学等式10]H3,s[1,3]<0<H3,s+1[1,3]...(10)
同样地,可以确定M(k)的各个值,诸如M(3)和M(5)。例如,在指示关于基于第t个捕获图像的Xt-Yt-Zt坐标系中的第s个捕获图像的位置关系的齐次变换矩阵被表示为Ht,s的情况下,可以通过在以下的表达式(11)中所示的计算确定此齐次变换矩阵Ht,s。即,通过齐次变换矩阵H1,t的逆矩阵与齐次变换矩阵H1,s的乘积确定齐次变换矩阵Ht,s
[数学等式11]
H t , s &equiv; H t , s [ 1,1 ] H t , s [ 1,2 ] H t , s [ 1,3 ] H t , s [ 2,1 ] H t , s [ 2,2 ] H t , s [ 2,3 ] H t , s [ 3,1 ] H t , s [ 3 , 2 ] H t , s [ 3,1 ] = H 1 , t - 1 H 1 , s . . . ( 11 )
在此,在齐次变换矩阵Ht,s中的元素Ht,s[1,3]的值是在基于第t个捕获图像的坐标系中的第s个捕获图像的图像捕获方向的Xt坐标。有鉴于此,检查每个“s”的Ht,s[1,3]的值,并且计算满足下面的表达式(12)的“s”的值,以确定M(t)=s。
[数学等式12]Ht,s[1,3]<0<Ht,s+1[1,3]...(12)
因为捕获图像的数量为“Mmax”,所以如果“t”过大则不存在M(t)。因此,仅针对存在(确保)第M(t)个捕获图像的每个“t”生成一周的图像集。
[全景图像生成处理的说明]
现在参照图37中的流程图,描述由图像处理装置81所要执行的全景图像生成处理。
尽管以下描述当用户相对于用户向右(顺时针)旋转成像装置时捕获了图像的示例情况,但是在当向左旋转成像装置时捕获图像的情况下执行与如下所述相同的处理。
在步骤S91中,获取单元91获取Mmax个捕获图像、指示每个捕获图像与第一个捕获图像之间的位置关系的齐次变换矩阵、以及指示每个捕获图像的焦距F的信息;并且获取单元91将捕获图像、齐次变换矩阵、以及信息提供给图像集生成单元92。
在步骤S92中,基于从获取单元91所提供的捕获图像、齐次变换矩阵、以及焦距F,图像集生成单元92生成若干图像集,并且将图像集提供给投影图像生成单元22。
具体地,图像集生成单元92通过执行图38中所示的伪代码生成若干图像集。
即,图像集生成单元92选择“t”的值作为指示参考捕获图像是第几号图像或指示目前为止已经捕获了多少图像的值“t”(1≤t≤Mmax)。例如,顺序地选择从1至“Mmax”的每个编号作为“t”的值。
然后,图像集生成单元92执行在以上的表达式(11)中所示的计算,以计算指示在基于第t个捕获图像的坐标系中的第s个捕获图像的位置的齐次变换矩阵Ht,s
图像集生成单元92还确定满足在所计算出的齐次变换矩阵Ht,s中的元素Ht,s[1,3]中的表达式(12)的“s”值。通过这样做,图像集生成单元92识别在基于第t个捕获图像生成360度全景图像中要使用的最后的第M(t)个捕获图像。
此时,如果存在满足表达式(12)的“s”值,则图像集生成单元92生成下述图像集作为用于基于第t个捕获图像的360度全景图像的图像集:该图像集包括从第t个至第s个(第M(t)个)捕获图像、齐次变换矩阵Ht,s、以及焦距F。
然后,图像集生成单元92选择下一个“t”值,并且重复以上所述的处理。如果没有满足表达式(12)的“s”值,则未获得用于基于第t个或之后的捕获图像的360度全景图像的图像集。因此,图像集生成单元92结束生成图像集的处理。
在按照以上方式生成图像集之后,图像集生成单元92将所生成的图像集提供给投影图像生成单元22。然后,处理继续到步骤S93。假定在步骤S92中的处理中,获得了从基于第一个捕获图像的图像集到基于第T个捕获图像的范围的总共T个图像集,并且下面的描述基于此假定。在此,T表示图38中所示的伪代码中的“Tmax”。
在执行了步骤S92中的处理之后,执行步骤S93至步骤S97中的处理。然而,这些处理与在图23中的步骤S12至步骤S16中的处理相同,因此,在此不再重复对其的说明。
应当注意,在从步骤S93至步骤S97中,针对T个图像集中的每个执行处理,并且生成与T个图像集相对应的T个360度全景图像。
例如,当生成关于第t个(1≤t≤T)投影图像集的投影图像时,在圆柱表面上基于第t个捕获图像的坐标系中限定Cx-Cy坐标系。即,通过使用在图像集中所包括的齐次变换矩阵Ht,s和焦距F、执行将各个捕获图像映射在圆柱表面上的处理,并且生成投影图像。
在生成T个全景图像之后,全景图像生成单元26将在生成这些全景图像时所计算出的最小值“minTotal”和全景图像提供给输出单元93。
在步骤S98中,输出单元93基于从全景图像生成单元26中所提供的最小值“minTotal”,在从全景图像生成单元26所提供的全景图像之中选择最终全景图像。
关于每个全景图像所计算出的最小值“minTotal”是在根据生成全景图像中所使用的投影图像所构建的有向图中的各个路径的总能量值之中的最小值。即,最小值“minTotal”是最小能量路径的总能量值,并且指示由于运动对象等所导致的全景图像中的缺陷程度。因此,具有最小值“minTotal”的全景图像是具有较少缺陷的最高质量的全景图像。
有鉴于此,输出单元93在T个全景图像之中选择具有最小的最小值“minTotal”的全景图像,并且输出所选择的全景图像作为最终的360度全景图像。在输出全景图像之后,全景图像生成处理结束。
按照以上所述的方式,图像处理装置81生成对于从被旋转地运动360度或更多的成像装置所拍摄的捕获图像生成360度全景图像所需要的图像集,并且生成用于各个图像集的全景图像。然后,图像处理装置81在所获得的全景图像之中选择最高质量的全景图像,并且输出最高质量的全景图像作为最终的全景图像。
当用作生成全景图像中所使用的参考(开始点)的成像装置的位置如上所述地发生变化时、生成全景图像的情况下,可以获得甚至具有更高质量的全景图像。
以上所述的处理序列可以由硬件或软件执行。在处理序列由软件执行的情况下,形成软件的程序被安装在计算机中。计算机可以是例如专用硬件中所包含的计算机,或可以是通过安装各种程序执行各种功能的通用计算机。
图39是示出了依照程序、执行以上所述的处理序列的计算机的硬件的示例结构的框图。
在计算机中,CPU(中央处理单元)201、ROM(只读存储器)202、以及RAM(随机存取存储器)203通过总线204彼此连接。
输入/输出接口205也连接到总线204。输入单元206、输出单元207、记录单元208、通信单元209、以及驱动器210连接到输入/输出接口205。
输入单元206由键盘、鼠标、麦克风等形成。输出单元207由显示器、扬声器等形成。记录单元208由硬盘、非易失性存储器等形成。通信单元209由网络接口等形成。驱动器210驱动可移除介质211,诸如,磁盘、光盘、磁光盘、或半导体存储器。
在具有以上所述的结构的计算机中,CPU201将在记录单元208中所存储的程序经由输入/输出接口205和总线204载入到RAM203,并且执行程序,使得执行以上所述的处理序列。
例如,计算机(CPU201)要执行的程序可以记录在作为封装介质的可移除介质211上,并且可以经由可移除介质211而提供。替选地,可以经由有线的或无线的传输介质(诸如局域网、互联网、或卫星数字广播)提供程序。
在计算机中,当可移除介质211被安装在驱动器210上时,可以经由输入/输出接口205将程序安装在记录单元208中。另外,程序可以由通信单元209经由有线的或无线的传输介质所接收,并且被安装到记录单元208中。替选地,程序可以预先被安装到ROM202或记录单元208中。
计算机要执行的程序可以用于依照在本说明书中所描述的顺序按照时间顺序执行操作的程序,或可以是并行地执行操作或当需要时(诸如当存在调用时)执行操作的程序。
应当理解,本技术的实施例不限于以上所述的实施例,并且可以对其进行各种修改而不背离本技术的范围。
例如,本技术可以例示为云计算结构,在云计算结构中,经由网络在设备之间共享一个功能,并且通过设备彼此协作执行处理。
参照以上所述的流程图所描述的各个步骤可以是由一个设备所实施的或可以在设备之间共享。
此外,在一个步骤中包括多于一个处理的情况下,在该步骤中所包括的处理可以由一个设备所执行或可以在设备之间共享。
本技术还可以是下述形式。
[1]一种图像处理装置,通过对被旋转的成像装置连续地拍摄的多个捕获图像进行接合、生成360度全景图像,
所述图像处理装置包括:
差分计算单元,配置成计算彼此邻近的捕获图像之间的差分信息;
数据生成单元,配置成基于所述差分信息生成数据,所述数据指示当在预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度;
确定单元,配置成基于所述数据确定所述捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为所述捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在所述捕获图像的参考捕获图像中的指定位置与所述捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,所述接合位置使所述图像缺陷程度最小化,N是从所述参考捕获图像起计数的数量;以及
图像生成单元,配置成通过基于所确定的接合位置对所述捕获图像进行接合,生成所述全景图像。
[2]根据[1]所述的图像处理装置,其中,所述确定单元确定在关于不同的指定位置所确定的接合位置之中、具有全景图像的最小缺陷程度的接合位置为最终接合位置。
[3]根据[1]或[2]所述的图像处理装置,其中,所述数据是下述有向图:在所述有向图中,在所述预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度被示为与在所述捕获图像中的所述预定位置相对应的节点的边缘能量。
[4]根据[3]所述的图像处理装置,其中,所述数据生成单元计算图像缺陷程度,所述图像缺陷程度作为在彼此邻近的所述捕获图像中的第一捕获图像与所述捕获图像中的第二捕获图像之间的所述预定位置的所述差分信息和在所述第一捕获图像和所述第二捕获图像中与所述预定位置邻近的其他位置的所述差分信息的均值;以及所述数据生成单元将所述均值设置为与所述第一捕获图像中的所述预定位置相对应的节点和与所述第二捕获图像中的所述其他位置相对应的节点之间的边缘能量。
[5]根据[4]所述的图像处理装置,其中,所述确定单元通过从在所述有向图中从与所述参考捕获图像中的所述指定位置相对应的节点延伸至与所述第N+1个捕获图像中的所述指定位置相对应的节点的路径之中、识别出具有在所述路径中所存在的节点之间最小总边缘能量的路径,确定所述捕获图像之间的所述接合位置。
[6]根据[1]至[5]中任一项所述的图像处理装置,其中
所述图像生成单元通过使用所述捕获图像中的不同的捕获图像作为参考捕获图像,生成全景图像,以及
所述图像处理装置还包括输出单元,所述输出单元配置成输出最终全景图像,所述最终全景图像是在所述全景图像中具有最小图像缺陷程度的全景图像。
附图标记列表
11图像处理装置
21获取单元
22投影图像生成单元
23累积差分值计算单元
24有向图生成单元
25路径搜索单元
26全景图像生成单元
31总能量值计算单元
32使用区域确定单元
81图像处理装置
91获取单元
92图像集生成单元
93输出单元

Claims (8)

1.一种图像处理装置,通过对被旋转的成像装置连续地拍摄的多个捕获图像进行接合,生成360度全景图像,
所述图像处理装置包括:
差分计算单元,配置成计算彼此邻近的捕获图像之间的差分信息;
数据生成单元,配置成基于所述差分信息生成数据,所述数据指示当在预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度;
确定单元,配置成基于所述数据确定所述捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为所述捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在所述捕获图像的参考捕获图像中的指定位置与所述捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,所述接合位置使所述图像缺陷程度最小化,N是从所述参考捕获图像起计数的数量;以及
图像生成单元,配置成通过基于所确定的接合位置对所述捕获图像进行接合,生成所述全景图像。
2.根据权利要求1所述的图像处理装置,其中,所述确定单元确定在关于不同的指定位置所确定的接合位置之中、具有全景图像的最小缺陷程度的接合位置为最终接合位置。
3.根据权利要求2所述的图像处理装置,其中,所述数据是下述有向图:在所述有向图中,在所述预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度被示为与在所述捕获图像中的所述预定位置相对应的节点的边缘能量。
4.根据权利要求3所述的图像处理装置,其中,所述数据生成单元计算图像缺陷程度,所述图像缺陷程度作为在彼此邻近的所述捕获图像中的第一捕获图像与所述捕获图像中的第二捕获图像之间的所述预定位置的所述差分信息与在所述第一捕获图像和所述第二捕获图像中与所述预定位置邻近的其他位置的所述差分信息的均值;以及所述数据生成单元将所述均值设置为与所述第一捕获图像中的所述预定位置相对应的节点和与所述第二捕获图像中的所述其他位置相对应的节点之间的边缘能量。
5.根据权利要求4所述的图像处理装置,其中,所述确定单元通过从在所述有向图中从与所述参考捕获图像中的所述指定位置相对应的节点延伸至与所述第N+1个捕获图像中的所述指定位置相对应的节点的路径之中、识别出具有在所述路径中所存在的节点之间最小总边缘能量的路径,确定所述捕获图像之间的所述接合位置。
6.根据权利要求5所述的图像处理装置,其中
所述图像生成单元通过使用所述捕获图像中的不同的捕获图像作为参考捕获图像,生成多个全景图像,以及
所述图像处理装置还包括输出单元,所述输出单元配置成输出最终全景图像,所述最终全景图像是在所述全景图像中具有最小图像缺陷程度的全景图像。
7.一种用于通过对被旋转的成像装置连续地拍摄的多个捕获图像进行接合、生成360度全景图像的图像处理方法,
所述图像处理方法包括下述步骤:
计算彼此邻近的捕获图像之间的差分信息;
基于所述差分信息生成数据,所述数据指示当在预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度;
基于所述数据确定所述捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为所述捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在所述捕获图像的参考捕获图像中的指定位置与所述捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,所述接合位置使所述图像缺陷程度最小化,N是从所述参考捕获图像起计数的数量;以及
通过基于所确定的接合位置对所述捕获图像进行接合,生成所述全景图像。
8.一种用于对图像进行处理、以通过对被旋转的成像装置连续地拍摄的多个捕获图像进行接合生成360度全景图像的程序,
所述程序使得计算机执行包括下述步骤的处理:
计算彼此邻近的所述捕获图像之间的差分信息;
基于所述差分信息生成数据,所述数据指示当在预定位置对彼此邻近的所述捕获图像进行接合时发生的图像缺陷程度;
基于所述数据确定所述捕获图像之间的接合位置,当在与参考捕获图像相同的图像被设置为所述捕获图像的第N个捕获图像之后的第N+1个捕获图像的情况下、通过使用在所述捕获图像的参考捕获图像中的指定位置与所述捕获图像的第N+1个捕获图像中的指定位置之间的部分生成全景图像时,所述接合位置使所述图像缺陷程度最小化,N是从所述参考捕获图像起计数的数量;以及
通过基于所确定的接合位置对所述捕获图像进行接合,生成所述全景图像。
CN201280053872.3A 2011-11-09 2012-11-02 图像处理装置和方法、以及程序 Pending CN103918250A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-245294 2011-09-11
JP2011245294A JP5870636B2 (ja) 2011-11-09 2011-11-09 画像処理装置および方法、並びにプログラム
PCT/JP2012/078424 WO2013069554A1 (ja) 2011-11-09 2012-11-02 画像処理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
CN103918250A true CN103918250A (zh) 2014-07-09

Family

ID=48289930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053872.3A Pending CN103918250A (zh) 2011-11-09 2012-11-02 图像处理装置和方法、以及程序

Country Status (7)

Country Link
US (1) US9704218B2 (zh)
EP (1) EP2779626A4 (zh)
JP (1) JP5870636B2 (zh)
CN (1) CN103918250A (zh)
BR (1) BR112014010688A2 (zh)
IN (1) IN2014CN03349A (zh)
WO (1) WO2013069554A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875331A (zh) * 2017-01-19 2017-06-20 北京大学深圳研究生院 一种全景图像的非对称映射方法
CN109074677A (zh) * 2016-04-05 2018-12-21 三星电子株式会社 用于处理图像的方法和设备
CN110622501A (zh) * 2017-03-14 2019-12-27 株式会社尼康 图像处理装置及电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3004565B1 (fr) * 2013-04-12 2016-11-11 Kolor Fusion de plusieurs flux video
CN103984188A (zh) * 2014-05-29 2014-08-13 周丹涛 一种多角度成像摄影装置
KR102468086B1 (ko) 2015-11-06 2022-11-17 삼성전자주식회사 컨텐츠 표시 방법 및 이를 구현한 전자 장치
JP6983651B2 (ja) * 2017-12-28 2021-12-17 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
US11295526B2 (en) 2018-10-02 2022-04-05 Nodalview Method for creating an interactive virtual tour of a place

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060115181A1 (en) * 2004-11-30 2006-06-01 Yining Deng System and method of aligning images
CN101902571A (zh) * 2009-05-27 2010-12-01 索尼公司 图像拍摄装置、电子设备、全景图像记录方法及程序
US20110096143A1 (en) * 2009-10-28 2011-04-28 Hiroaki Ono Apparatus for generating a panoramic image, method for generating a panoramic image, and computer-readable medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4178878B2 (ja) * 2002-08-29 2008-11-12 株式会社日立製作所 画像処理方法及び装置
JP2008003683A (ja) * 2006-06-20 2008-01-10 Matsushita Electric Ind Co Ltd 画像生成装置及びその方法並びに記録媒体
US10080006B2 (en) * 2009-12-11 2018-09-18 Fotonation Limited Stereoscopic (3D) panorama creation on handheld device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060115181A1 (en) * 2004-11-30 2006-06-01 Yining Deng System and method of aligning images
CN101902571A (zh) * 2009-05-27 2010-12-01 索尼公司 图像拍摄装置、电子设备、全景图像记录方法及程序
US20110096143A1 (en) * 2009-10-28 2011-04-28 Hiroaki Ono Apparatus for generating a panoramic image, method for generating a panoramic image, and computer-readable medium
CN102063711A (zh) * 2009-10-28 2011-05-18 索尼公司 用于生成全景图像的装置和方法以及计算机可读介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074677A (zh) * 2016-04-05 2018-12-21 三星电子株式会社 用于处理图像的方法和设备
CN109074677B (zh) * 2016-04-05 2023-07-07 三星电子株式会社 用于处理图像的方法和设备
CN106875331A (zh) * 2017-01-19 2017-06-20 北京大学深圳研究生院 一种全景图像的非对称映射方法
CN106875331B (zh) * 2017-01-19 2019-04-12 北京大学深圳研究生院 一种全景图像的非对称映射方法
CN110622501A (zh) * 2017-03-14 2019-12-27 株式会社尼康 图像处理装置及电子设备
CN110622501B (zh) * 2017-03-14 2021-10-01 株式会社尼康 图像处理装置及电子设备

Also Published As

Publication number Publication date
IN2014CN03349A (zh) 2015-07-03
BR112014010688A2 (pt) 2017-04-25
US9704218B2 (en) 2017-07-11
JP2013102366A (ja) 2013-05-23
JP5870636B2 (ja) 2016-03-01
WO2013069554A1 (ja) 2013-05-16
US20140313224A1 (en) 2014-10-23
EP2779626A4 (en) 2016-01-13
EP2779626A1 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
CN103918250A (zh) 图像处理装置和方法、以及程序
US10984556B2 (en) Method and apparatus for calibrating relative parameters of collector, device and storage medium
US9224063B2 (en) Apparatus and method for digital microscopy imaging
US8452081B2 (en) Forming 3D models using multiple images
US8582820B2 (en) Coded aperture camera with adaptive image processing
JP5580164B2 (ja) 光学情報処理装置、光学情報処理方法、光学情報処理システム、光学情報処理プログラム
US8897546B2 (en) Semi-global stereo correspondence processing with lossless image decomposition
EP2609570B1 (en) Method for generating a model of a flat object from views of the object
US20090213240A1 (en) Method and apparatus for processing three-dimensional (3D) images
US20150117756A1 (en) Processing of Light Fields by Transforming to Scale and Depth Space
US10321112B2 (en) Stereo matching system and method of operating thereof
US20130028472A1 (en) Multi-hypothesis projection-based shift estimation
JP6683307B2 (ja) 多数のカメラを用いた最適の球形映像獲得方法
Mills et al. Global seamline networks for orthomosaic generation via local search
US20140369622A1 (en) Image completion based on patch offset statistics
Alsadik et al. Efficient use of video for 3D modelling of cultural heritage objects
US9872011B2 (en) High-speed depth sensing with a hybrid camera setup
JP2009111921A (ja) 画像処理装置及び画像処理方法
KR20090091639A (ko) 3d 영상 처리 방법
US20210266490A1 (en) Lens array camera and method of driving lens array camera
JP7416573B2 (ja) 立体画像生成装置及びそのプログラム
WO2023231141A1 (zh) 非相干孔径合成像差校正方法及装置
US11790606B2 (en) Determining camera rotations based on known translations
JP2004258775A (ja) 光線空間データ処理方法、空間データ処理装置
CN116071490B (zh) 室内空间布局的重构方法及重构装置、电子设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140709