CN116724331A - 系列照片的三维建模 - Google Patents

系列照片的三维建模 Download PDF

Info

Publication number
CN116724331A
CN116724331A CN202280010569.9A CN202280010569A CN116724331A CN 116724331 A CN116724331 A CN 116724331A CN 202280010569 A CN202280010569 A CN 202280010569A CN 116724331 A CN116724331 A CN 116724331A
Authority
CN
China
Prior art keywords
product
camera
pictures
model
processor
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
CN202280010569.9A
Other languages
English (en)
Inventor
K·菲阿尔科
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.)
K Feiaerke
Original Assignee
K Feiaerke
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 K Feiaerke filed Critical K Feiaerke
Publication of CN116724331A publication Critical patent/CN116724331A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • G06Q30/0643Graphical representation of items or shoppers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/38Registration of image sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B2210/00Aspects not specifically covered by any group under G01B, e.g. of wheel alignment, caliper-like sensors
    • G01B2210/52Combining or merging partially overlapping images to an overall image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Processing Or Creating Images (AREA)

Abstract

对产品建模,包括用相机在第一位置和第一距离处拍摄产品的第一图片,用相机在第一距离和第二位置处拍摄产品的第二图片,根据相应图片的重叠部分来组合图片,并生成组合图片的可交互模型。

Description

系列照片的三维建模
相关申请的交叉引用
本申请要求2021年1月29日提交的美国临时专利申请No.63/143,506的优先权并要求其权益,该申请的内容全部并入本文。
技术领域
本发明涉及三维建模和显示。更具体地,本发明涉及创建产品的三维模型并通过产品网页提供所述模型以供潜在购买者操纵。
现有技术
美国专利10,311,282描述了现有的飞行时间相机的一个实施例,例如可以根据本发明的原则用于与一些系统和方法的实施例相关的实施例。
相关技术的描述
线框模型可以是三维计算机图形中使用的三维(3D)物理对象的可视化表示(也即视觉呈现)。这样的线框可以通过指定物理对象的每个边缘来创建,其中边缘处两个数学上连续的光滑表面相遇,或者通过使用直线和/或曲线连接对象的组成顶点来创建。可以将对象投影到屏幕空间中,并通过在每个边缘的位置绘制线条来进行渲染。“线框”一词源于设计师使用金属线来表现实体(或者说立方体,或立体图形,也即solid)的三维形状。三维线框计算机模型允许构建和操纵实体和实体表面。与传统的线条绘制相比,三维实体建模可以有效地绘制更高质量的实体表示。
使用线框模型允许三维模型的基础设计结构的可视化。传统的二维视图和绘图/渲染可以通过对象的适当旋转,以及通过切割平面以选择的隐藏线去除来创建。
由于线框渲染相对简单且计算速度快,因此它们通常用于需要相对较高的屏幕帧率的情况(例如,当使用特别复杂的三维模型时,或者在对外部模型进行建模的实时系统)。当需要更多的图形细节时,可以在线框的初始渲染完成后自动添加表面纹理。这可以让设计者快速查看实体,或将对象旋转到不同的视图,而不会因更真实的渲染,甚至是面部处理和简单的平面着色而造成的长时间延迟。
线框格式也非常适合,并广泛地用于对直接数控(DNC)机床的编程工具路径中。
手绘线框状插图可以追溯到意大利文艺复兴时期。在20世纪80年代和90年代初,线框模型也广泛用于视频游戏中来表示三维对象,当时“适当地”填充三维对象过于复杂,无法用当时的计算机进行计算和绘制。线框模型也用作计算机辅助制造(CAM)的输入。
三维模型计算机辅助设计(CAD)主要分为三种类型;线框是最抽象、最不现实的。其他类型是表面和实体。线框建模方法仅由连接点或顶点并由此定义对象边缘的直线和曲线组成。
线框图是几何建模系统中使用的方法之一。线框模型使用其特征线和点表示实体的形状。线框建模有两种类型:Pro和Con。在Pro中,用户提供了一个简单的输入来创建形状。在开发系统中很有用。在Con的线框模型中,它不包括有关内部和外部边界表面的信息。如今,线框模型用于定义复杂的实体对象。设计人员创建实体对象的线框模型,然后由CAD操作员重建对象,包括详细分析。该技术具有一些优点:通常,三维实体很复杂,但是可以在一维中查看线框模型,从而提高了可理解性。实体可以进一步修改;设计人员可以忽略表面内部的几何图形,而在实体建模中,设计人员必须为所有细节提供一致的几何图形;线框模型需要更少的内存空间和CPU容量。
线框模型可以由顶点表和/或边表来指定。在一些复杂的模型中,三维表面可以由大量的小三角形来表示。然而,通常为每个表面赋予单一颜色,这可能有损所渲染对象的真实感。
发明内容
本发明的实施例包括了一种通过围绕对象(或者说物体,即object)拍摄的图片以拼接图片来对对象进行3D建模和3D模拟的新方法。
本发明的实施例包括对产品进行建模,包括用相机在第一位置和第一距离处拍摄产品的第一图片(或者说照片,也即picture),用相机在第一距离和第二位置处拍摄产品的第二图片,根据各个图片的重叠部分组合图片,并生成组合图片的可交互模型。
本发明的进一步实施例包括系统,且系统包括位于灯箱内的产品、位于灯箱内的相机、被配置为用于围绕产品绕轨道运行的相机、以及被配置为用于组合由相机拍摄的两个或多个图片的处理器。
附图说明
图1示出了依据本发明原理的用于通过照片拼接获得用于三维建模的产品的一系列照片的系统的示意性框图。
图2示出了依据本发明原理的用于通过照片拼接获得用于三维建模的产品的一系列照片的方法的示例性流程图。
图3示出了与美国专利No.10,311,282相似的相机的模块框图,该相机可依据本发明的原理通过照片拼接以获取用于三维建模的产品的系列照片。
图4示出了依据本发明原理的计算机的框图。
图5示出了依据本发明原理的相机、计算机和服务器的电子连接。
图6示出了依据本发明原理的通过照片拼接动态加载和渲染三维产品视图以用于模拟三维模型的方法的示例性流程图。
图7示出了依据本发明原理的通过照片拼接来组合产品的两个或更多个视图的方法的示例性流程图。
图8示出了一个球状物,所述球状物由从对象周围不同角度的独立的、离散的图片的照片拼接而成,并通过第一用户输入对球状物进行水平旋转。
图9示出了图8的球状物及其根据第二用户输入的垂直旋转。
图10示出了图8的球状物及其根据第三用户输入对其进行缩放。
图11示出了图8的球状物以及由球状物上的照片拼接形成的离散视图,使得可以从不同角度观看所述对象。
图12a-12c示出了通过照片拼接构造图8的球状物的方法。
图13a-13c示出了对象的部分以及通过照片拼接所形成的对应视图。
图14a-14c示出了对象的额外部分以及通过照片拼接形成的相应视图。
图15示出了通过将各单张照片拼接到图8的球状物中而形成的可旋转模型。
图16示出了当根据用户输入旋转图15的照片拼接模型时可通过查看器查看的所述对象的一系列描述的图库视图。
具体实施方式
提供以下描述以使本领域的任何技术人员能够实践本文描述的各种实施例。对这些实施例的各种修改对于本领域技术人员来说将是显而易见的,并且本文中定义的一般原理可以应用于其他实施例。因此,权利要求并不旨在限于本文所示的实施例,而是符合/具有与每个权利要求的语言/措辞一致的完整范围,其中并不旨在表示“一个且仅有一”,除非具体如此表述,而是“一个或多个”。类似地,除非另外具体说明,否则说明书中以单数形式提及的元素(或元件)意味着“一个或多个”。本领域普通技术人员已知的或以后将知道的与贯穿本公开所描述的各种实施例的元素的所有结构和功能等同物均通过引用明确地并入本文,并且旨在由权利要求书所涵盖。此外,本文所公开的任何内容均不旨在献给公众,无论此类公开是否在权利要求中明确记载。任何权利要求元素均不得根据美国专利法35U.S.C§112第6段的规定进行解释,除非该元素使用短语“用于(means for)”明确地叙述,或者在方法权利要求的情况下,所述元素使用“用于……的步骤(step for)”明确地叙述。
本申请中,“大约(about)”或“近似(approximately)”是指在上次所报告的数字上加一或减一范围以内。例如,大约1.00表示1.00±0.01单位。
本申请中,与数字测量结合使用的“左右(或大约,即around)”是指在正负一个单位之内。例如,50%左右意味着49%-51%。例如,大约11.01单位意味着10.01-12.01。
在本申请说明书中,“和”和“或”应被解释为结合或分离,在使用“和”或“或”的每个实例中,以提供最广泛的披露者为准。
许多产品网页通过从视口(即viewport)处断开的视图(或者说图像,也即view)的单个图片的展示,或者可以通过显示视频以显示对应产品的独立的视图。然而,这些图片中缺少一些离散视图和可调节深度,从而剥夺了客户和潜在购买者通过虚拟方式获得产品的三维触觉的体验。产品网页可以包括产品的三维模型,但当前模型包括对小线框表面模型三角形进行着色的CAD微框渲染(即CAD microframe renderings)。这些模型所提供的表面渲染质量比本发明实施例提供的低。因此,本发明的实施例包括为了表面渲染而放置的摄影图像(或照片,也即photographic images),以产生三维摄影质量模型。在一些实施例中,图片可以简单地重叠,并且视图循环以模仿产品的三维转动。此外,本发明的实施例包括通过相机(或者说摄影机)的飞行时间计算所得的表面形貌存储和/或相应线框模型。
举例来说,本发明可以实施在显示产品的网页上,例如在显示产品的图片视口中或附近。此外,本实施例包括用于操纵产品模型的控件,例如点击和拖动。
本发明的实施例包括以一个或多个缩放级别(或者说缩放水平,变焦水平)提供了产品外部的完整360度的视图、从一个或多个位置提供产品内部的完整360度的视图(例如,前排座椅和/或乘客座椅的汽车内部),以及最多围绕产品的全球形旋转以及放大至各种缩放轨道级别和/或插值至中间缩放位置。此外,产品的部件可以被缩放和旋转,例如保险杠、轮子等。另外,部件的爆炸示意图可以在选择部件和围绕部件的轨道时显示。在一些实施例中,可以选择围绕观察球体的64,442度的不同位置来观看产品。进一步地,在一些实施例中,多个缩放轨道(也即变焦轨道,即zoom orbits)可以展示几个缩放轨道中的每个64,442度视点的观察点。
本发明的实施例可以体现为包括以下步骤的方法,体现为处理器上的可执行指令的计算机程序产品,包括计算机、服务器、计算机及服务器的网络的系统,和/或计算机和/或服务器的分布式网络。
因此,以下描述将被本领域普通技术人员理解为解释了以下步骤:1)获得产品的图片,2)处理产品的原始图片,以及3)向终端用户提供360度可旋转、可球形旋转和可缩放的可交互产品视图。本发明的实施例可以包含这些步骤中的一个、多个或所有,以提升对通过网络浏览器、应用程序或通过屏幕查看的另一计算机程序来查看待购买产品的终端用户的产品呈现。
图像拼接或照片拼接(或者说图像缝合或照片缝合,即image stitching orphoto stitching)是将具有重叠视场的多个摄影图像进行组合以产生分段全景、高分辨率图像或如本发明的实施例中所述三维地球模型的过程。图像拼接和照片拼接可以类似于摄影测量。通过使用计算机软件执行,大多数图像拼接方法可能需要图像之间几乎精确的重叠和相同的曝光以产生无缝结果,尽管一些拼接算法可以使用不同曝光的图像在重叠区域进行高动态范围的成像。某些数码相机可以在内部执行此类照片拼接。在一些实施例中,Autodesk ReCap、Agisoft Metashape、AliceVision Meshroom、3DF Zephyr、Colmap、Regard3D、Visual SFM、iWitness、Photomodeler、Qlone、PTGui、RealityCapture或AgisoftPhotoScan可以在处理器上使用来执行照片拼接。此外,这些应用程序可用于图像和模型校正,例如色彩平衡、摄影测量距离计算、角度校正、和/或接缝校正。
图像拼接过程可以分为三个主要部分:图像配准、图像校正(或标定)和图像融合(或影像混合)。
图像拼接算法
为了估计图像对齐(或图像对位),需要算法来确定将一个图像中的像素坐标与另一图像中的像素坐标相关联的适当的数学模型。可以使用将直接进行像素到像素比较与梯度下降法(和其他优化技术)相结合的算法来估计这些参数。
可以在每个图像中找到独特的特征,并有效地匹配以快速建立各对图像(即pairsof images)之间的对应关系。当全景图中存在多个图像时,已经开发出一些技术来计算一组全局一致的对齐方式,并有效地发现哪些图像彼此重叠。
需要最终的组合面,组合面用于包装(wrap)或投影变换并放置所有对齐的图像,并且还需要即使是存在视差、镜头畸变、场景运动和曝光差异的情况下,可无缝混合重叠图像的算法。
图像拼接问题
因为不能保证两个视图中的照明相同,所以拼接两个图像可能产生可见的接缝。因此,作为本发明的实施例中的照片的主题的对象可以被放置在灯箱(即lightbox)中,以在整个系列照片中保持一致的照明和曝光。接缝的其他原因可能是同一连续前景的两个图像之间的背景变化。其他需要处理的主要问题包括视差、镜头畸变、场景运动和曝光差异的存在。在非理想化的现实生活中,整个场景的强度会发生变化,帧之间的对比度和强度也会发生变化。此外,需要考虑全景图像的纵横比才能创建视觉上令人愉悦的合成图像。
对于照片拼接,理想的图像集将具有合理的重叠量(至少15-30%)以克服镜头畸变并具有足够的可检测特征。然而,本发明的实施例中包括80%或更大的重叠。进一步,实施例中包括90%或更大的重叠。该图像集可以各帧之间具有一致的曝光,以最小化出现接缝的可能性。
关键点(或者说特征点)检测
特征检测可以自动找到图像之间的对应关系。稳健的对应关系可以帮助估计将图像与正在复合/混合的图像对齐所需的变换。角点、斑点、哈里斯角点和哈里斯角点的高斯差异可以是很好的关键点特征,因为它们是重复且独特的。在本发明的一些实施例中,可以识别和/或匹配40,000至50,000个关键点以验证重叠。对应图片之间的两个相匹配的关键点可以被称为连接点。连接点可以被重叠以对齐相应的邻近图片(或者说相邻图片,neighboring pictures)。在本发明的实施例中,可以拍摄邻近图片,使得图片之间出现大约80%或更大的重叠。这可以确保足够的重叠以识别相应图片之间的多个连接点。可以基于连接点来组合图片以生成产品模型和/或附加到产品模型的邻近图片。在一些实施例中,可以使用大约4,000个连接点。图片的不重叠部分可以被添加到产品模型中。在一些实施例中,一对图片的非重叠部分可以通过与不同的相邻图片相匹配来验证。
用于兴趣点检测的第一批算子之一是由Hans P.Morave于1977年为研究涉及机器人通过集群环境的自动导航而开发。Moravec还定义了图像中“兴趣点”的概念,并得出结论,这些兴趣点可用于查找不同图像中的匹配区域。Moravec算子被认为是角点检测器,因为它将兴趣点定义为在所有方向上都有较大强度变化的点。在拐角处经常出现这种情况。
Harris和Stephens通过直接考虑角点得分相对于方向的微分来改进Moravec的角点检测器。他们需要其作为一个处理步骤来根据图像序列构建对机器人环境的解释。与Moravec一样,他们需要一种方法来匹配连续图像帧中的对应点,但对跟踪帧之间的角点和边缘感兴趣。
尺度不变特征变换(也即SIFT)和SURF(也即加速稳健特征)可以被包括作为关键点或兴趣点检测器算法。一旦检测到特征,就可以应用SIFT描述符(也被称为描述器)等描述符方法稍后来匹配它们。
配准(Registration)
图像配准涉及匹配图像集中的特征或使用直接对准方法来搜索图像对准,图像对准使重叠像素之间的绝对差之和最小化。当使用直接对准方法时,人们可能首先校准图像以获得更好的结果。另外,用户可以输入全景图的粗略模型来帮助特征匹配过程以使得,例如仅搜索邻近图像来寻找匹配特征。由于用于匹配的特征组更小,因此搜索结果更加准确,并且比较的执行速度也更快。
为了根据数据估计鲁棒模型(或者说,稳健模型),所使用的常用方法被称为RANSAC。RANSAC这个名字是“RANdom Sample Consensus(即随机抽样一致)”的缩写。它是一种用于稳健参数估计的迭代方法,可以从可能包含异常值的观测数据点集中拟合数学模型。该算法是非确定性的,因为它只能在一种概率下产生合理的结果,并且该概率随着迭代次数的增加而加大。它是一种概率方法,意味着每次运行算法都会得到不同的结果。
RANSAC算法已在计算机视觉中得到许多应用,包括同时求解对应问题和估计与一对立体相机相关的基本矩阵。该方法的基本假设是数据由“内点”和“外点”组成,其中,“内点”即其分布可以通过某种数学模型解释的数据,“外点”即不适合该模型的数据。外点被认为是来自噪声、错误测量或简单错误的数据的点。
对于单应性估计的问题,RANSAC通过尝试使用一些点对(即point pairs)来拟合多个模型,然后检查模型是否能够关联大多数点来运行。然后选择最佳模型(产生最多正确匹配数的单应性模型)作为问题的答案;因此,如果外点与数据点的数量之比非常低,RANSAC会输出一个与数据拟合良好的模型。
校正(Calibration)
图像校正旨在最小化理想镜头模型与所使用的相机镜头组合之间的差异,诸如畸变、图像之间的曝光差异、渐晕、相机响应和色差等光学缺陷。如果使用特征检测方法来配准图像,并且特征的绝对位置被记录以及保存,则除了将图像放置在全景球上之外,拼接软件还可以使用该数据来对图像进行几何优化。全景软件工具及其各种衍生程序都使用这种方法。
对准(或者说对齐,即Alignment)
可能需要对准来变换图像以匹配与其组合的图像的视点。对准,简单来说,就是改变坐标系,以采用输出的图像可与所需视点相匹配的新的坐标系。图像可能经历的变换类型有纯平移、纯旋转、包括需要变换的图像的平移、旋转和缩放的相似变换、仿射变换(或者说,仿射映射)或投影变换。
投影变换是图像所能进行的最大限度的变换(在二维平面变换的集合中),其中在变换的图像中仅保留的可见特征是直线,而在仿射变换中保持平行性。
投影变换可以在数学上描述为a)x'=H·x,
其中x是旧坐标系中的点,x'是变换的图像中的对应点且H是单应性矩阵。使用相机的特性(K和K')及其到真实世界坐标X和X'的旋转和平移[Rt]来表达点x和x',得到a)x=K·[Rt]·X和x'=K'·[R't']·X'。
使用上述两个方程以及x'和x之间的单应性关系,提供:a)H=K'·R'·R-1·K-1
单应性矩阵H具有8个参数或自由度。单应性可以使用直接线性变换和奇异值分解计算,其中a)A·h=0,其中A是使用对应坐标构建的矩阵,h是重构单应性矩阵的9个元素中的一维向量。要获得h,请应用奇异值分解(SVD):A=U·S·VT和h=V(对应于最小奇异向量的列)。这是成立的,因为h位于A的零空间中。由于我们有8个自由度,该算法需要至少四点对应。如果使用RANSAC来估计单应性并且存在多个对应关系,则正确的单应性矩阵是具有最大内点数的矩阵。
合成(Compositing)
合成是将被校正的图像,以呈现/表现场景中的单个镜头的方式对准的过程。合成可以自动完成,因为算法现在知道哪些对应重叠。
混合(Blending)
图像混合涉及执行在校正阶段计算出的调整,以及将图像重新映射到输出投影。调整图像之间的颜色以补偿曝光差异。如果适用,高动态范围合成与运动补偿和去重影一起完成。图像混合在一起,并进行接缝线调整以最大程度地减少图像之间接缝的可见性。
可以通过简单的增益调节来减少接缝。这种补偿基本上可最小化重叠像素的强度差异。图像混合算法为图像中心附近的像素分配更多权重。增益补偿和多波段混合图像比较最佳。IJCV(计算机视觉国际期刊)2007。矫直(或者说校正,即Straightening)是另一种校正图像的方法。Matthew Brown和David G.Lowe在他们的论文“使用不变特征的自动全景图像拼接(Automatic Panoramic Image Stitching using Invariant Features)”中描述了应用全局旋转的矫直方法,使得向量u是垂直的(在渲染帧中),从而有效地消除了输出全景图中的波浪效果。
即使在增益补偿之后,由于许多未建模的效应,例如渐晕(强度朝向图像边缘减小),以及由于光学中心的不需要的运动导致的视差效应,由于相机模型错误导致的配准错误,径向畸变等等,一些图像边缘仍然可见。由于这些原因,他们提出了一种称为多频段融合的混合策略。
投影布局(即Projective layouts)
对于从空间中的同一点处获取的图像片段,可以使用各种地图投影来布置拼接图像。
直线(Rectilinear)
直线投影,拼接后的图像在一个与全景在一个点上相交的二维平面上被观看。现实中的直线无论其在图像上的方向如何,都会显示为直线。宽视角(大约120°左右)可能会在图像边界附近开始出现严重的失真。直线投影的一种情况是使用具有立方映射的立方体面来观看全景。全景图被映射到六个正方形,每个立方体面显示全景图的90×90度区域。
圆柱(Cylindrical)
圆柱投影,其中拼接图像显示360°水平视场和有限的垂直视场。该投影中的全景图看起来就像图像被包裹在圆柱体中并从内部观看一样。在二维平面上查看时,水平线看起来是弯曲的,而垂直线则保持为直线。当接近全景层顶部时,垂直畸变迅速增加。还有各种其他圆柱格式,例如墨卡托圆柱和米勒圆柱,它们在全景层极点附近的失真较小。
球面(Spherical)
球面投影或等距柱状投影——严格来说是另一种圆柱投影——其中缝合图像显示了360°水平视场及180°垂直视场(360°horizontal by 180°vertical field of view),即整个球体。此投影中的全景图的观看效果就好像图像被包裹在一个球体中并从内部观看一样。在二维平面上查看时,水平线看起来像圆柱投影中那样弯曲,而垂直线则保持垂直。
帕尼尼(Pannini)
由于全景图基本上是球体地图,因此如果需要的话也可以使用来自制图者的各种其他地图投影。此外,还有一些特殊的投影,与普通制图投影相比,可能具有更美观的优势,例如Hugin的帕尼尼投影(即Pannini projection),其以意大利全景画画家GiovanniPaolo Pannini命名,或PTgui的全景投影(即Vedutismo projection)。不同的投影可以组合在同一图像中,以微调输出图像的最终外观。
立体投影(Stereographic)
立体投影或鱼眼投影可用于通过将虚拟相机笔直向下,并设置足够大的视场以显示整个地面及其上方的一些区域来形成小行星全景;将虚拟相机指向上方会产生隧道效果。立体投影的保形性可以产生比立体投影文章中讨论的等面积鱼眼投影更令人愉悦的结果。
图1示出了根据本发明原理的用于获得产品102的一系列照片以进行三维建模的系统101的示意性框图。在拍摄图片时,要考虑最终可视模型,本领域普通技术人员可以确定用于产品102的完整360度视图、产品102的完整球形视图、产品102的多个缩放级别所需的图片和视图,和/或其任何部分旋转视图所需的图片和视图的数量。举例来说,较小的产品,例如戒指,可能需要12张照片才能显示完整的相应360度视图,而较大的产品,例如汽车,可能需要更多的照片。在较大产品的实施例中,可能出现偏移轴视图和旋转视图,使得产品的一部分或一方面可以成为旋转的焦点,而不是产品的中心轴。
在拍摄稍后足以生成和提供产品的360度视图的照片时,系统101可以包括灯箱100,使得可以在漫射光下从一个或多个角度拍摄产品102,以在各个角度下最小化表面阴影。灯箱100可以包括具有光漫射器的立方体,例如白色薄纸,覆盖灯箱100内部的每一侧以获得均匀的背景。此外,系统101可以在一个,或优选地在四个、五个或六个漫射器后面具有一个或多个灯。每个灯可以具有相似的瓦特数、功率、流明、颜色等,使得在灯箱100内产生均匀的光。
产品102可以被放置在诸如灯箱100中心内的基座上。可以选择预定距离处的一个或多个轨道。例如,第一轨道104和第二轨道106可以被设置在距离产品102各自预定的半径处。在每个轨道处,可以放置相机108并且拍摄产品的静态照片。可以记录与图片相对应的位置,例如XY坐标或径向坐标。以这种方式,可以将对应轨道周围的多个图片相关联以识别最近的邻近图片。例如,可以在每个轨道周围取60个,甚至360个均匀间隔的位置,并用相应的位置数据记录下来。
对象可以是Y-Z和/或X-Z平面中围绕轨道所拍摄的旋转图片。这些图片可以在一个或多个与在X-Y平面中拍摄的轨道类似的轨道上拍摄。
每个平面中的每个轨道所对应的照片可以构成照片集(或者说,一组照片)。在一些实施例中,可以组合(或者说结合,即combined)一个或多个照片集以创建产品102在相应平面中的三维旋转视图。由于每张相邻照片的重叠区域,这可以实现。通过叠加(或者说,重叠,即overlapping)每张照片的重叠部分,可以创建产品102的三维模型。在一些实施例中,照片集可以单独存储并且根据用户输入循环以模拟三维建模。然而,实施例包括生成三维模型,例如线框模型,并将照片叠加在线框上。进一步地,实施例包括飞行时间摄影以从每个角度对产品102的表面进行建模。可以组合表面形貌和相邻照片的重叠视觉数据来生成三维模型。
在一些实施例中,三维模型可以被存储为要循环以模拟三维模型的一组图片。在其他一些实施例中,可以存储位置数据,例如相机位置数据,地理飞行时间数据,和/或从三角表面位置数据估计的表面数据。例如,对于每个相对应的轨道,半径可以是预定的。飞行时间数据可以对应于相机108与产品102的相应表面的位置数据和颜色数据的阵列之间的距离。可以从预定半径中减去飞行时间距离以确定距产品102中心的地形表面距离。此外,所述飞行时间距离还可以根据与相机108的表面位置的角度进行调整。举例来说,该调整可以基于产品102的预定高度、宽度和深度。此外,利用预定半径表示从产品102的中心到相机108的距离,高度、宽度和/或深度可用于以三角学方法计算照片集中的每个相机位置到每个对应表面位置的角度。这样,产品102周围的多个位置可以相关地存储,例如(存储于)表格、阵列、字典等,其还相关联地存储有与颜色数据(例如RGB颜色数据,CYMK(即印刷四分色模式)等)相关联的产品102的形貌(例如距中心的距离)。
举例来说,相机108安装在可从用于支撑产品102的平台110处延伸的伸缩轨道杆(或者说轨道极,即orbital pole)112上。轨道杆112可以在与平台110的连接处旋转,使得相机108可以围绕产品102绕轨道运行。在另一些实施例中,电机可以旋转驱动齿轮,齿轮可驱动旋转轨道杆112和相机108的轨道。以这种方式,一旦产品和相机108被设置在灯箱100内部,拍摄过程就可以自动化。因此,漫射器(即diffusers)可以不受干扰地放置在灯箱100上,直到拍摄过程完成。在一些实施例中,处理器可以开始拍摄过程,包括照片的数量,距离,和/或移动速度。这些中的每一个都可以通过用户输入来设置和/或启动。
图2示出了根据本发明的原理的用于获得用于三维建模的产品的一系列照片的方法200的示例性流程图。在步骤202中,产品102可以被放置在灯箱100中。例如,产品可以被直立放置。相机108可以被放置在第一缩放级别处。相机108可以相对产品102绕轨旋转并且在距产品102同一半径上(或者说,均匀半径上)的所有点处面向产品102。当在步骤204中相机108绕产品102的轨道旋转时,可以从第一缩放级别上的多个位置处拍摄图片。例如,对应于灯箱100的四个面可以拍摄最少四张图片。然而,许多实施例中,可以包括60到360个(包括端值)位置,每个位置沿轨道大致均匀地间隔开。在一些实施例中,可以在步骤206中选择第二轨道缩放级别,并且可以在步骤208中围绕第二轨道缩放级别拍摄多张照片。在第二轨道缩放级别上所拍摄的照片可以与在第一轨道上拍摄的照片相对应。
在步骤210中,产品102可以相对于对应于产品102的垂直位置可选地旋转到另一平面,使得所述相机轨道可对应于所述产品102的X-Z或Y-Z平面。步骤210可以包括在一个或多个轨道缩放级别拍摄产品102。步骤210可以类似于步骤210中的相应平面中的步骤202、204、206、208和210。
在步骤212中,产品102可以相对于产品102的垂直位置的平面可选地旋转以获取,其余对应于所述产品102的Y-Z或X-Z平面。步骤212可以包括从一个或多个轨道缩放级别上拍摄产品102。步骤212可以类似于步骤212中的相应平面中的步骤202、204、206、208和210。
在步骤214中,可以选择性地将照片与产品102的形貌相协调,例如,在一些实施例中,通过飞行时间分析。然而,实施例包括基于包含在对应的相邻图片中的产品102的重叠部分来简单地重叠图片,使得可以创建产品102的高达360度的视图。随后可以在,例如浏览器或应用程序中,显示在每个缩放轨道上的产品102的高达360度的视图。或者,随后可以根据产品102的组合图片来显示产品102的每个缩放级别上的整个球形视图。事实上,视图可以在缩放轨道级别之间和观看球体上的任何位置之间被被插入(即interpolate),以提供从关于产品102的任何角度观察产品的视图。例如,可以呈现全360度视图、可以呈现整体球形视图、和/或可以呈现完全可缩放视图。因此,实施例包括在步骤216中,将相机108和产品102的位置与飞行时间数据相关联地存储,以将相应照片的部分与产品102的深度和/或地形相关联。在一些实施例中,整个视图可以一起传输和加载。在另一些实施例中,可以在显示渲染图像时可以动态地加载相邻部分。
在步骤218中,每个相应轨道中的邻近图片的重叠部分可以包括显著相似的部分,这些部分能够被重叠以生成产品102的360°地图/映射。这可以通过将每个图片与其每个最近的邻居(或者说邻近图,也即neighbor)成对地配对来实现。可以在每个像素位置处测试成对的图片以比较重叠像素,例如具有相似RGB值的像素。可以测试每个可能的位置,并通过为每个相似像素添加一个点来计算分数。最高得分的位置可用于将各个图片中的产品102的重叠部分一起拟合到单个图像中,并添加垂直像素以捕获产品102的广角。通过对每个最近的相邻图片重复该过程,可以生成产品102的整个360度视图。在一些实施例中,可以存储该连续视图。然而,实施例还包括根据产品102的高度、宽度和深度来估计每个像素位置处的距离。在一些实施例中,甚至可以测量表面位置,如通过飞行时间相机,以拟合照片并随后展示摄影模型。
在一些实施例中,图2的步骤可以由服务器在将各单个图片上传到服务器时执行。所得到的三维摄影模型可以被下载到计算机,例如上传用户的计算机。
图3示出了根据本发明的原理的可以用于获得用于三维建模的产品的一系列照片的相机108的框图。在一些实施例中,相机108可以简单地捕获在照片集中的每个位置处从产品102处反射的光。在另一些实施例中,相机108可以是飞行时间相机,其还提供光源,且该光源所提供的光的波长与从灯箱100外部提供的波长不冲突。因此,相机108可以包括光源302,例如红外光源。光源可以将光投射在产品102上,用于根据已知的光速和接收光的时间来计算距离。反射光304可以从产品102反射。反射光304可以包括从灯箱100外部的光源提供的光。在一些实施例中,反射光304可以包括从光源302提供的光。接收器306可以接收反射光304。此外,相机108可以在所有方面与本文所描述的计算机相似。相机108可以包括处理器308,使得可以存储数据点表。例如,原始传感器数据可以包括帧中每个点处的颜色数据、照明数据和/或距离数据(例如,根据已知光速,从光源提供的光到由接收器接收过程的飞行时间来计算)。
相机108可以包括区域检测器310,或者区域检测器310可以被实施在被配置为从相机108处接收原始传感器数据的单独的计算机上。在一些实施例中,区域检测器310可以在被包含在处理器上的软件上实现。区域检测器310可以被配置为将飞行时间、颜色、照明和/或其平均值分组到相应的区域中,例如用于生成产品102的摄影蒙皮线框(即photographically skinned wireframe)。在一些可选的实施例中,飞行数据、颜色数据和照明数据可以原始格式存储。
相机108可以包括深度计算(即depth computation)312,深度计算312可以实施在单独的计算机上,或者实施在处理器上的软件中。在一些实施例中,深度计算312可以使用飞行时间数据来计算产品102的深度和/或形貌。例如,这可以根据相应的轨道的预设半径减去深度(例如,根据飞机时间和已知光速)估计得到。在另一些实施例中,根据对象的预定/预设半径、高度、宽度和深度的三角角度可以首先用于计算表面与对应轨道平面处之间偏差,以进一步地在对应点处确定产品102的表面的精准距离。
产品102的表面形貌可被编译(或编辑,也即compiled)并存储为一个或多个深度图314。例如,可存储每张照片的深度图314。然而,重叠区域可能存在双重存储。因此,可以存储预定部分(即predetermined sections)的深度图314,其中每个部分对应于预定数量的最近邻居。在另一些的实施例中,产品102的整体形貌可以存储在单个深度图314中,例如当存储产品的整个包装(entire wrap)时。类似地,颜色322,例如其包括照明数据,可以被存储在深度图314中,或者通过照片,预设部分,和/或整个产品102存储在单独的对应照片图(photograph map)中。
举例来说,深度图314可以存储在深度图数据316中。深度图数据316可以存储在单个二进制大对象(blob)或对象中或者存储为相关存储的数据集。深度图数据316可包括位置318,例如,对应于产品102的表面上的一个或多个点的笛卡尔坐标、极坐标或者一个或多个点的其他相关联的坐标。深度图数据316还可包括形貌(或者说地形,即topography)320,其可以包括用于表面形状和/或颜色322的两个或更多个位置的分组。深度图数据316还可以包括颜色322,颜色322可以包括每次拍摄时的颜色值,例如对应位置处的RGB值,和/或照明数据,例如每次拍摄时的亮度、对比度、色调,和/或与光圈值(即F-stop)、感光度(即ISO)、曝光相对应的相机数据,和光圈。这些数据可用于相对于相邻图片进行调整,以均匀地/同一地提供产品102的三维效果。在一些实施例中,深度图数据316可包括阵列或阵列的阵列,其相关地存储位置318、地形320和/或颜色322的指针(即pointers)。以这种方式,深度图数据316可以用于为用户交互图像集重新创建三维效果,以模拟产品102的摄影套图(即photographic wrap)和/或的摄影质量模型(photographic quality model)的实时旋转。
因此,可以在相机108上计算深度图数据316。在可选的实施例中,可以在单独的计算机和/或服务器上进行深度图314计算。此外,每张图片可以被发送到单独的计算机和/或服务器,以处理成模型或相关联的数据(或者说,关系数据)以用于产品102的模型。因此,方法200的一个或多个步骤中的数据存储可以实现在相机108的存储器,单独的计算机(如相机用户的),和/或服务器(如被用于向购买者提供产品102的模型的)上。
图4示出了根据本发明原理的计算机400的框图。计算机400可以实现在相机108、服务器和/或外部计算设备上。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,流程图和/或框图的每个框(或者说块)以及流程图和/或框图中的框的组合可以由计算机程序指令来实现。例如,图4示出了根据本发明原理的计算机400的框图。这些计算机程序指令可以被提供给计算机400的处理器402,计算机可以包括通用计算机、专用计算机或其他用于生产机器的可编程数据处理装置(即programmable data processing apparatus to produce a machine),使得经由计算机400或其他可编程数据处理装置的处理器402执行的指令创建用于实现在流程图和/或框图块或多个块中指定的功能/动作的方法。
这些计算机程序指令还可以存储在计算机可读介质420中,计算机可读介质420可以指导/指示计算机400、其他可编程数据处理装置或其他设备以特定方式运行,使得存储在计算机可读介质420中的指令产生包括实现流程图和/或框图块中指定的功能/动作的指令的产品(即article of manufacture)。此外,计算机400中的指令可以通过现有的操作系统来实施和实现,例如Windows、Linux、Apple iOS、OSX、Unix。
计算机程序指令还可以被加载到计算机400、微控制器、其他可编程数据处理装置或其他装置上,以使得计算机400、其他可编程装置或其他装置执行一系列操作步骤,以产生计算机400实施进程,以使得在计算机400或其他可编程装置上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的过程。
计算机400可以包括对称多处理器(SMP)系统或包括连接到存储器总线404的多个处理器402的其他配置。举例来说,存储器总线404、系统总线414和/或组件总线414可以包括控制总线、数据总线和/或地址总线中的一个或多个。或者,可以采用单个处理器402。连接到存储器总线404的还可以是存储器控制器/内存缓存406,其可以提供到本地存储器408的接口。I/O桥(或者说输入/输出桥,即I/O bridge)410可以连接到存储器总线404,并且可以提供到I/O总线桥(即I/O bus bridge)410并随后到达系统总线412的接口。系统总线412可以包括通信系统,该通信系统可以在计算机内部或者计算机之间的组件之间传输数据,例如,通过一个或多个组件总线414,其包括所有相关的硬件组件和软件,以及包括用于数据传输所需的通信协议。I/O总线桥410可用于支持组件总线414上的一条或多条总线和相应设备,例如总线桥、输入输出设备(I/O设备),例如鼠标、键盘、监视器、存储器、网络适配器。因此,网络适配器可以耦合到系统以使数据处理系统能够通过介入的专用或公共网络耦合到其他数据处理系统或远程打印机或存储设备。
与I/O总线桥410连接的还可以是诸如图形适配器416、存储器418和其上包含计算机可用程序代码的计算机可用存储介质420之类的设备。计算机可用程序代码可以被执行,如由一个或多个处理器402以实现本发明的任何方面,例如,以实现在本申请的附图中所示出的任何方法、过程和/或系统组件中的任何方面。此外,计算机可用程序代码可以在本地存储器408或其他合适的存储介质中实现。存储器418可以存储可以用于实现先前描述的特征的资源。例如,存储器418可以存储计算机指令,所述计算机指令在被执行时实现本文所公开的任何方法或动作。
计算机400可以包括处理单元(CPU)402、本地存储器408、外围设备和接口以及通用输入/输出(I/O)接口。计算机400还可以包括本地存储器418。本地存储器418可以用于存储用于复杂计算的变量。本地存储器408可以经由存储器接口与CPU402连接。存储器接口可允许将计算值、变量、常量或任何其他重要电子信号存储到物理本地存储器408上。存储器接口可包括一个或多个直接存储器存取控制器(即direct memory access controllers)。当然,本地存储器408的部分或全部可以被委托给计算机可用存储介质420,其中与程序的操作相关的数据被存储。计算机可用存储介质420还可以被组织成有用的数据结构,例如栈或堆。外围设备和接口以及通用I/O接口可以连接到外部输入或输出设备。外部输入或输出设备的示例包括能够发送或接收电子信号的任何电子设备,例如键盘、鼠标、打印机、扫描仪、数字传感器、模拟传感器、以太网、模数转换器(即analog to digital converters)、模数转换器(也即ADC)、通用异步收发器(也即UART)、通用串行总线(即USB)等。计算机可用存储介质420、本地存储器408、外围设备和接口以及通用I/O接口可以被包含在CPU402的电路板上。在另一些实施例中,这些部件中的任何部件都可以在CPU402的外部。
计算机400可以被配置为用于获取照片、地形、位置数据等,以根据本发明的原理生成摄影三维模型。例如,计算机400能够通过输入接口接收模型生成数据并通过输出接口发送建模数据。计算机400还可以对模型生成数据执行操作并修改以生成三维模型和建模数据。
图5示出了根据本发明原理的相机108、计算机400和服务器504的电子连接。例如,相机108、计算机400和服务器504可以通过例如互联网502连接。互联网502可以包括联网计算机集群,且计算机通过服务器、路由器和/或交换机(例如通过互联网服务提供商),通过互联网协议地址从计算机将流量路由(即route traffic)到服务器。因此,计算机可以通过与路由器有线和/或无线连接,和/或通过一个或多个其他计算机的连接与本地网络直接连接,直线连接的方式包括:交叉超五类电缆(即crossover Cat5e cable),蓝牙或其他已知的本地连接。
相机108可以连接到互联网502以进一步与服务器504电子通信。例如,相机108可以向服务器504发送照片,飞行时间数据和/或处理后的深度图数据316,或来自方法200中任何步骤的任何信息。然而,相机108可以使用机载处理器和存储器来执行任何这样的步骤。在一些实施例中,服务器504可以执行从相机108发送到服务器504的原始或压缩照片数据的处理。实施例还包括相机用户的介入计算机(即intervening computer),其在所有方面类似于计算机400,使得来自方法200的一个或多个步骤和/或图3中的数据结构的处理可以在相机用户的计算机上生成和/或实现。然后,该计算机可以向服务器504发送一个或多个数据。
在一些实施例中,相机108、计算机400和/或服务器504可以根据计算模型,其包括视图、数据模型和控制器中的一个或多个,以更新对视图和/或数据模型的改变。以这种方式,相机108、计算机400和/或服务器504可以包括用户界面,所述用户界面用于接收输入事件以根据相应事件改变数据模型和/或视图。此外,相机108、计算机400和/或服务器504可以接收网络输入事件以根据对应的事件来改变数据模型和/或视图。
计算机400可以进一步地连接到服务器504,例如,通过互联网502的方式。以这种方式,计算机400可以充当买方的计算机,用于通过互联网协议从服务器504查询网页。在一些实施例中,服务器504可以在所有方面与计算机400相似。服务器可以接收对相应网页的互联网协议查询,并且可以通过互联网来提供网页。
示例性的网页包括用于接收对应于产品102的全景旋转的多个图片,将图片处理成产品数据模型(如深度图数据316,和/或360度覆盖视图),然后将处理后的数据和/或视图返回至计算机400以供下载的网页。
网页还包括对应于购物网站的网页,网站可包括产品102的描绘(或者说描述,图示)。然而,服务器504可以提供深度图数据316,一部分深度图数据,和/或360度覆盖视图和/或360度覆盖视图的一部分到计算机400,而不是产品的独立图片。计算机400可以根据视图数据模型在屏幕上显示所述描绘。计算机400然后可以通过诸如鼠标或键盘之类的外围设备接收相应的用户输入。所述输入可以作为输入事件从计算机400传输到服务器504,以进一步从服务器504加载与产品102相关的附加视觉数据,如下面将进一步描述的。附加网页可以呈现购物车和结账系统,使得产品可以被放置在购物车中并购买用于运输。
图6示出了根据本发明原理的动态加载和呈现三维产品描绘的方法的示例性流程图。在一些实施例中,可以通过从所有视图中触摸(或者说接触)和/或查看产品来增加购买产品(例如产品102)时的用户体验。在典型的电子商务交易中,买家只能看到一些预定视图中的少量图片。然而,本发明的实施例可以使得购买者在购买之前可检查和审查逼真的三维模型。因此,本发明的实施例包括显示产品102的模型的方法600。
在步骤602中,可以提供画布,例如,通过在所有方面与计算机400相似的服务器所提供的网页中(提供画布)。例如,HTML5可以用于嵌入画布区域、视频区域、插件区域(例如,adobe、闪光灯(即flash)等),这些区域可以接收用户输入,例如单击并拖动和/或按键。用户输入可以由计算机400直接接收,然后作为输入事件传送到服务器504。用户输入可以由服务器504接收,并且服务器504可以呈现产品102与用户输入所选择的对应相机位置相关的下一个对应视图。所述位置可以通过坐标和/或串行(即series)来跟踪,使得每个位置可以根据可能的用户输入事件被映射到另一个相邻位置。
在步骤604中,默认视图包括可以在加载画布时激活的初始位置、视角和缩放级别。因此,产品102的初始图片可以根据从服务器504接收到的初始产品显示数据经由计算机400上的画布呈现给购买者。画布区域能够接收用户输入,例如关于产品102的旋转和/或改变缩放级别。在一些实施例中,接收鼠标滚轮推进(mouse-wheel in)可以通过加载与更近的缩放级别轨道相关联的模型和/或移动(或者说转换)产品102的模型的缩放级别,来使得所显示的缩放级别变得更近。可以无缝地改变视图以模拟缩放,使得观看者可以在每个缩放级别和/或缩放级别之间的任何点处查看产品的整体360度视图,或全球形且平滑可缩放的视图。反过来,接收鼠标滚轮推出(mouse-wheel out)可以通过加载与更远的缩放级别轨道相关联的模型来进一步改变缩放级别。例如,加载缩放级别轨道可以包括加载产品102的整组照片,加载一组最近邻近照片,加载单个照片,和/或加载整个产品模型。
在步骤606中,实施例中的单个照片或一组最近的邻近照片还可以包括在后台异步运行的附加邻近部分和/或照片。该数据可以由计算机400从服务器504接收并且保存在计算机400的数据模型中,使得可以由用户输入事件所选择的下一个视觉产品数据来更新计算机400的视图,而无需干预从服务器504的下载。然后,可以从服务器504下载最近的邻近数据并存储在计算机400的后台中。以这种方式,可以在所显示的照片已经呈现给买家的同时异步加载照片,以使得照片的加载对于买家来说是无缝(进行)的。在一些实施例中,在步骤608中,画布可以从用户处接收定向输入事件,例如定向箭头按键和/或定向图标点击。当接收到诸如上、下、左和/或右之类的定向用户输入事件时,可以计算新的位置。可以重新绘制画布以呈现新定位的图片和/或模型,并且可以重复步骤606以异步加载下一个可能的位置。在一些实施例中,在步骤610中,两个位置之间的转变可以包括显示一系列图片,以显示产品从所述位置到对应于所述输入的所述下一个位置的动态运动(或者说动画运动)。
在步骤612中,计算机400可以接收诸如鼠标滚轮推进、鼠标滚轮推出、控制+点击并拖动事件(即Ctrl+click-and-drag event)和/或图标点击输入事件之类的缩放事件,并且可以进一步发送到服务器504。然后,可以在步骤614中改变数据模型中的缩放级别,以改变视图中的产品102的描绘。在该事件发生时,对应于新选择的缩放轨道和位置的下一个图片可以被加载并显示。此外,在步骤616中,可以在后台异步加载最近邻近图片和/或部分,以避免在沿相应轨道缩放级别选择下一个位置时的滞后。
在一些实施例中,视觉产品数据,如360度视图图片及其部分,深度图数据316和/或其部分(如,产品视觉数据),可以存储在与服务器504相类似的分布式服务器。以这种方式,可以从最快的源下载产品视觉数据,和/或从多个源下载部分产品视觉数据,以在与此类服务器的连接缓慢和/或节流的情况下加速下载。以这种方式,当购买产品102时,购买者可以在浏览器中体验产品102的类三维模型的无缝建模和旋转。
图7示出了根据本发明原理的组合图1的产品102的两个或更多个视图的方法700的示例性流程图。图7的方法可以在诸如服务器504之类的服务器上实现,以便生成三维视图和/或摄影模型。在步骤702中,服务器504可以通过互联网连接接收,来自不同角度的产品102的两张或多张照片,例如从缩放轨道级别的两个或更多个位置拍摄的照片,例如可从图1的结构获得的照片。在一些实施例中,计算机400可以将这两个或更多个照片发送到服务器504。
在步骤704中,可以通过围绕相应缩放轨道级别的位置来组织两张或多张照片。举例来说,可以根据对应的缩放级别轨道的相机108位置,通过计算机400和/或相机108将位置提供给服务器504。以这种方式,服务器504可以关联(或者说联系)所接收到的产品照片的位置以对最近的邻近照片进行分类。
在步骤706中,可以通过组合来自相邻位置的两个相应照片来生成组合产品图像。举例来说,许多照片包含与相机在图片上“看到”的位置相关联的颜色数据矩阵。所述矩阵可以与视角和相机位置相关,例如通过三角(或者说三角函数)和/或通过飞行时间数据,以关联组合多个图片。此外,可以根据位置将多个图片关联起来,以将多个角度缝合在一起,以创建对象的连续环绕(即continuous wrap),包括高达360度的三维环绕。以这种方式,可以为产品102创建这样的环绕。
本发明的照片还可包括与矩阵位置(即matrix position)相关联的表面数据、飞行时间数据和/或距离数据。生成组合产品视图还可以包括选择两个相应照片的重叠位置,其中一个或多个相似重叠像素的计数(或者说数量,count)可以被最大化,其中相似重叠像素由颜色值、位置和飞行时间中的一项或多项来确定;在组合产品图像中保留一个或多个相似的重叠像素;以及将一个或多个不重叠的像素附加到相应的像素位置以生成组合产品图像,以表示来自两张相应照片的相应角度的组合视图。
在步骤708中,当相应的邻近照片尚未在组合产品图像中呈现时,组合产品图像还可以与一个或多个相应的邻近照片组合。可以重复该过程,直到产品102的所有接收到的照片都呈现在组合产品图像中。
在一些实施例中,计算机400可以从服务器504下载组合产品图像,例如以单个图像文件形式或者以多个相应文件的形式,其可在计算机400上组合以用于查看/浏览组合产图像。实施例还包括在应用程序、网络应用程序、桌面应用程序和/或网页中将产品图像组合为三维产品图像。
图8示出了从对象的周围的各个角度的单独、离散的图片照片拼接所得的球状物(即globe)以及根据第一用户输入的球状物的水平旋转。这样的用户输入,即用户输入1,可以包括点击与水平旋转相对应的按钮或滚动鼠标滚轮,以在水平方向上旋转球状物内描绘的模型。举例来说,从用户查看器的查看位点(或者说视点)来看球状物以图像1为中心(即IMG1),且包含有图像1的球状物可以由在对应的缩放轨道上围绕对象的所有图片组成。在水平滚动时,图像1之后可以是在查看器中居中的图像2(即IMG2),在本示例中,其可以在极坐标中表示为theta-2(即θ-2),且theta-2小于theta-1(即θ-1)。同样地,进一步旋转后,图像可能会进入所述系列中的图像6(即IMG6)或以上(upon further rotation,the imagesmay proceed to IMG6 in the series or beyond)。举例来说,中间图像可以显示在开始图像和结束图像之间,使得平滑滚动可以显示干净利落的动画。虚线还可以描绘用于对象的模型的无缝渲染的邻近照片或组合照片并排连接的位置。例如,a-l部分可以被标记,其中“c”、“g”和“k”都是用于说明邻近照片或照片的组合内相同描绘的重叠。
图9示出了图8的球状物及其根据第二用户输入的垂直旋转。这样的用户输入,即用户输入2,可以包括点击与垂直旋转相对应的按钮或滚动鼠标滚轮以在垂直方向上旋转球状物内所描绘的模型。举例来说,包含图像1的球状物可以由对象周围的所有图片形成,且从用户查看器的视点来看球状物以图像1为中心形成缩放轨道。在垂直滚动时,图像1之后可以是在查看器中居中的图像2,图像2在本示例中可以用极坐标表示为(即phi-2),且小于/>(即phi-1)。类似地,进一步旋转后,图像可能会进入所述系列中的图像6或以上。举例来说,中间图像可以显示在开始图像和结束图像之间,使得平滑滚动可以显示干净利落的动画。虚线还可以描绘用于对象的模型的无缝渲染的邻近照片或组合照片所并排连接的位置。例如,a-l部分可以被标记,其中“d”、“g”、“j”都可以用于以说明邻近照片或照片的组合内相同描绘的重叠部分。
图10示出了图9的球状物以及根据第三用户输入对其进行缩放。这样的用户输入,即用户输入3,可以包括点击放大按钮或滚动鼠标滚轮来放大。举例来说,包含图像1的球状物可以由对应缩放轨道上的对象周围的所有图片形成。放大后,图像1可以被图像2所替换,图像2可以在极坐标中表示为半径r-2,半径r-2大于半径r-1。类似地,在进一步缩放时,图像1可以被图像3(即IMG3)替换,其半径r-3大于r-2。以这种方式,后续球状物的描绘可以更大并且描绘对象的放大视图。此外,在单个输入中,缩放可以从图像1进行到图像3,中间位置可以平滑缩放以显示干净利落的动画。因此,单独的描绘连续地(in series)显示,以根据相应的极坐标在球状物下方描绘图像1到图像3的缩放。虚线还可以描绘用于对象的模型的无缝渲染的邻近照片或组合照片并排连接的位置。
图11示出了图8所示球状物以及根据球状物上的照片拼接所形成的离散线画面(或者说镜头、画,也即frame),以使得可以在不同角度上查看对象。举例来说,描绘1-6示出了物体从垂直中心稍上方的位置旋转,如从转台观察到的那样。在图11和其余图中,将使用汽车作为示例对象。图7-12显示了在对象垂直中心稍下方的类似旋转。球状物周围的对象的描绘是从相机的视口或视点来描绘的。当从球体的所有角度拍摄对象时,可以显示相应的球状物以用于照片拼接和对象模型的编译。
图12a-12c示出了通过照片拼接构造图8的球状物的方法。图12a描绘了图8的球状物,其表示当拍摄球状物内的对象的照片时相机的视点。图12b描绘了从不同角度在虚线处拼接在一起的照片。虚线不一定是直的,但可以遵循对象的描绘的轮廓。当一张或多张图片相对应时,可以使用结果验证区域并将其拼接至对应于球状物的结果描绘。图12c描绘了被用于从不同角度的描绘的拼接得到的球状物的照片或照片的组合的球状物的视觉表示。
图13a-13c通过照片拼接示出了对象的部分以及对应视图的形成。图13a描绘了通过照片拼接编译的被拍摄对象的顶部。单独描绘的方块示出的截面/部分取自于,例如第一照片或照片的第一组合、第二照片或照片的第二组合等。虚线描绘了相应照片或相应照片的组合之间的照片拼接的位置。这些虚线不一定是直的,如图所示。在一些实施例中,这些线可以遵循所描绘的对象的轮廓,尽管它们可以遵循对象的部分。类似地,图13b描绘了物体的照片拼接侧面。图13c描绘了照片拼接对象的前面。
图14a-14c通过照片拼接示出了对象的额外部分以及相应视图的形成。图14a描绘了通过照片拼接所编译的被摄物体的底部。单独描绘的方块示出了部分,其取自于,例如第一照片或组合的第一照片、第二照片或照片的第二组合等。虚线描绘了相应照片或相应照片的组合之间的照片拼接的位置。这些虚线不一定是直的,如图所示。在一些实施例中,这些线可以遵循所描绘的对象的轮廓,尽管它们可以遵循对象的部分。类似地,图14b描绘了物体的照片拼接侧面。图14c描绘了照片拼接对象的背面。
图15示出了通过将单张照片拼接到图8的球状物中而形成的可旋转模型。在一些实施例中,3d模型可以存储在存储器中或磁盘上,使得所述模型是通过从不同角度的各种图片进行照片拼接而形成的。当通过两张或更多图片验证表面时,可以锁定来自不同照片的相似性。此外,可以从各种图片中检测并存储表面深度。照片拼接的最终结果可以包括可以绕X、Y或Z轴旋转和/或缩放的3D模型。此外,单独的部分,如保险杠,可以根据用户的选择被居中以用于进行缩放和旋转,而非对象的中心。
图16示出了当根据用户输入旋转图15的照片拼接模型时,从查看器中可以被查看到的对象的一系列描绘的图库视图。在这一系列描绘中,模型从用户的视角水平向右旋转。该运动可以基于发出水平旋转信号的用户输入,例如按下右箭头键或点击右箭头。其他运动也是可能的,例如向左水平旋转。当从查看器中查看时,垂直旋转和缩放还可以被分解为一系列平滑滚动描绘,使得用户可以感知3D模型并且可以具有与模型完全交互的“触觉(也即tactile)”体验。示例性查看器包括网页、应用程序内的视图,或者计算机或计算设备中的任何视图。
本发明的实施例可以包括对产品进行公布和建模的方法,包括用相机在第一位置和第一距离处拍摄产品的第一图片(或第一照片);使用相机在第一距离和第二位置拍摄产品的第二图片;根据相应的(或者说,各自的)图片的重叠部分来组合图片;并提供组合图片的可交互模型。相机围绕产品从第一位置旋转到第二位置,并且可以定位成使得图片之间的重叠为大约80%或更大。在一些实施例中,相机可以放置在灯箱内部并可围绕产品旋转。可以通过图像配准、校准和混合过程来组合所得图片(或者说结果图片)。所得到的产品模型可以通过互联网并通过视图(例如监视器)从服务器呈现给用户。以这种方式,用户可以与产品模型进行交互。例如,产品模型可以根据第一用户输入,诸如点击和拖动事件,绕第一轴旋转。
进一步的实施例可以包括在第三位置和第二距离处拍摄产品的第一照片;在第二距离和第四位置处拍摄产品的第二照片;根据第二距离处相应的图片的重叠部分来组合图片;并在网站上提供第二距离处的组合图片的可交互模型。以这种方式,可以根据第二用户输入,诸如鼠标滚轮事件,来缩放产品模型和/或切换缩放级别。
在一些实施例中,组合两张照片可包括选择两张相应的照片的重叠位置,其中一个或多个相似重叠像素的计数被最大化,在组合的产品图像中保留一个或多个相似重叠像素,以及将一个或多个不重叠的像素附加(或者说追加)到相应的像素位置以生成组合的产品图像。例如,相似重叠像素的最大化可以由颜色值、位置和飞行时间中的一项或多项来确定。进一步地,在一些实施例中,可以最大化关键点以定位两个邻近图片的重叠以将图片组合成产品模型。
本发明的实施例可以包括一种系统,所述系统包括位于灯箱内的产品、位于灯箱内的相机,所述相机被配置为用于围绕产品绕轨道运行,处理器,且处理器被配置为用于组合由相机拍摄的两个或多个图片。在一些实施例中,轨道杆被配置为用于支撑相机,轨道杆被配置为用于从被配置为支撑产品的平台延伸到相机。轨道杆可以通过手动曲柄和/或电机移动。实施例包括电机,且电机可以根据轨道杆的速度和长度并在用户输入的指导下通过处理器来控制。电机可被配置为用于驱动轨道杆绕平台的轴线旋转。处理器还可以被配置为用于将从轨道上拍摄的两个或更多个邻近图片组合成产品模型。例如,可以根据颜色值、位置和飞行时间中的一项或多项来组合两个以上邻近图片。产品模型可以被生成并存储在磁盘或存储器上,例如服务器的磁盘或存储器上。服务器还可以通过互联网将产品模型发送到用户设备以供查看和交互。
除非另外具体说明,否则应当理解,使用术语“处理”、“计算”、“确定”、“接收”、“发送(或者说,传输,传送)”等的公开内容指的是数据处理系统或电子设备,其通过设备存储器或控制器中的数据操控或者转换为存储在系统存储器或寄存器内的其他数据。
一个或多个实施例可以在计算机软件固件、硬件、数字电子电路和计算机程序产品中实现,其可以是编码在计算机可读介质上的计算机指令的一个或多个模块,用于由数据处理系统执行或控制数据处理系统的操作/运行。计算机可读介质可以是机器可读存储基板、闪存、混合类型存储器、存储设备、机器可读存储设备、随机存取存储器(“RAM”)、只读存储器(“ROM”)、例如,诸如硬盘驱动器或软盘之类的磁性介质、诸如只读光盘存储器(即CD-ROM)或硬盘录像机(即DVR)之类的光学介质、或者它们的组合。计算机可读介质可以驻留在单个计算机程序产品中或之内,例如CD、硬盘驱动器或计算机系统,或者可以驻留在系统或网络中的不同计算机程序产品内。计算机可读介质可以存储可由处理器执行的软件程序并且可以包括操作系统、应用程序和相关程序代码。机器可读非暂时性介质存储可执行程序指令,当执行程序指令时,将使得数据处理系统执行本文描述的方法。当适用时,本文描述的各个步骤的顺序可以改变、组合成复合步骤、或分成子步骤以提供本文描述的特征。
诸如程序、软件、软件应用程序、代码或脚本之类的计算机程序可以用任何计算机编程语言来编写,包括常规技术、面向对象技术、解释型或编译型语言,并且可以是模块、组件或功能。计算机程序可以在一个或多个处理器或计算机系统中执行。
尽管已经参考具体实施例讨论了本发明,但是显而易见并且应该理解的是,可以以其他方式体现该概念以实现所讨论的优点。上述优选实施例主要被描述为用于自动生成照片级真实感产品模型的系统和方法。在这点上,呈现系统和方法的前述描述是出于说明和描述的目的。应当理解,在一个或多个实施例中可以设想计算设备的其他组合。
此外,该描述并不旨在将本发明限制于本文所公开的形式。因此,符合相关领域的以下教导、技术和知识的变体和修改都在本发明的范围内。本文描述的实施例还旨在解释已知模式以实践本公开的发明,并使本领域的其他技术人员能够在等同或替代实施例中以及通过特定一个或多个应用或本发明的一个或多个用途中认为必要的各种修改来应用本发明。

Claims (20)

1.一种对产品进行建模的方法,其特征在于,包括:使用相机在第一位置和第一距离处拍摄产品的第一图片;使用相机在第一距离和第二位置处拍摄产品的第二图片;根据相应图片的重叠部分来组合图片;并提供组合图片的可交互模型。
2.根据权利要求1所述的方法,其特征在于,所述相机围绕所述产品从所述第一位置旋转到所述第二位置。
3.根据权利要求1所述的方法,其特征在于,所述相机被放置在灯箱内。
4.根据权利要求1所述的方法,其特征在于,组合所述图片还包括:图像配准、校正和混合。
5.根据权利要求1所述的方法,其特征在于,所述第一图片和所述第二图片约有80%或更大的重叠。
6.根据权利要求12所述的方法,其特征在于,还包括:通过处理器接收第一用户输入;以及通过处理器根据实时第一用户输入绕第一轴旋转模型。
7.根据权利要求12所述的方法,其特征在于,还包括:在第三位置和第二距离处拍摄产品的第一图片;在第二距离和第四位置处拍摄产品的第二图片;根据第二距离处各个图片的重叠部分来组合图片;并在网站上提供第二距离处的组合图片的可交互模型。
8.根据权利要求16所述的方法,其特征在于,还包括:由处理器接收第二用户输入;以及由处理器根据第二用户输入通过屏幕显示不同的缩放级别模型。
9.根据权利要求1所述的方法,其特征在于,组合两张图片包括:选择两张相应图片的重叠位置,其中一个或多个相似重叠像素的计数被最大化;以及在组合产品图像中保留一个或多个相似重叠像素;将一个或多个不重叠的像素附加到相应的像素位置以生成组合产品图像。
10.根据权利要求9所述的方法,其特征在于,相似重叠像素的最大化由颜色值、位置和飞行时间中的一项或多项所确定。
11.一种系统,其特征在于,包括:位于灯箱内的产品;位于灯箱内的相机,所述相机被配置为用于绕产品的轨道运行;处理器,且所述处理器被配置为用于组合由相机拍摄的两个或多个图片。
12.根据权利要求11所述的系统,其特征在于,还包括:被配置为用于支撑所述相机的轨道杆,所述轨道杆被配置为用于从被配置为支撑所述产品的平台延伸到所述相机。
13.根据权利要求12所述的系统,其特征在于,还包括:电机,其被配置为用于驱动所述轨道杆绕所述平台的轴线旋转。
14.根据权利要求13所述的系统,其特征在于,还包括被配置为用于控制所述轨道杆的旋转速率的处理器。
15.根据权利要求13所述的系统,其特征在于,所述处理器被配置为用于控制所述轨道杆的长度。
16.根据权利要求14所述的系统,其特征在于,所述处理器被配置为根据用户输入来控制旋转速率。
17.根据权利要求15所述的系统,其特征在于,所述处理器被配置为根据用户输入来控制所述轨道杆的长度。
18.根据权利要求11所述的系统,其特征在于,还包括处理器,且所述处理器被配置为用于将从轨道处拍摄的两个或更多个邻近图片组合成产品模型。
19.根据权利要求18所述的系统,其特征在于,所述处理器还被配置为根据颜色值、位置和飞行时间中的一项或多项来组合两个以上的邻近图片。
20.根据权利要求18所述的系统,其特征在于,还包括:服务器,所述服务器被配置为用于向用户提供所述产品模型。
CN202280010569.9A 2021-01-29 2022-01-28 系列照片的三维建模 Pending CN116724331A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163143506P 2021-01-29 2021-01-29
US63/143,506 2021-01-29
PCT/US2022/014265 WO2022165145A1 (en) 2021-01-29 2022-01-28 Three-dimensional modelling from photographs in series

Publications (1)

Publication Number Publication Date
CN116724331A true CN116724331A (zh) 2023-09-08

Family

ID=82612631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280010569.9A Pending CN116724331A (zh) 2021-01-29 2022-01-28 系列照片的三维建模

Country Status (5)

Country Link
US (1) US20220245890A1 (zh)
EP (1) EP4285313A1 (zh)
CN (1) CN116724331A (zh)
AU (1) AU2022214917A1 (zh)
WO (1) WO2022165145A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220155117A (ko) * 2021-05-14 2022-11-22 삼성전자주식회사 영상을 표시하는 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434265B1 (en) * 1998-09-25 2002-08-13 Apple Computers, Inc. Aligning rectilinear images in 3D through projective registration and calibration
EP2890125B1 (en) * 2013-12-24 2021-10-13 Sony Depthsensing Solutions A time-of-flight camera system
JP2016103789A (ja) * 2014-11-28 2016-06-02 株式会社Pfu 撮像画像データ公開システム
CN111492374A (zh) * 2017-10-24 2020-08-04 耐克创新有限合伙公司 图像识别系统
US9983464B1 (en) * 2017-11-01 2018-05-29 Korea Institute Of Geoscience And Mineral Resources Device for photographing trench vertical section

Also Published As

Publication number Publication date
US20220245890A1 (en) 2022-08-04
EP4285313A1 (en) 2023-12-06
AU2022214917A1 (en) 2023-07-27
WO2022165145A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
Newcombe et al. Live dense reconstruction with a single moving camera
Sequeira et al. Automated reconstruction of 3D models from real environments
CN109314753B (zh) 使用光流生成中间视图的方法和计算机可读存储介质
El-Hakim et al. A multi-sensor approach to creating accurate virtual environments
US10388025B2 (en) Interactive image based 3D panogragh
CN100485720C (zh) 一种基于序列静态图像的360°环视全景生成方法
Scharstein View synthesis using stereo vision
CN111737518B (zh) 基于三维场景模型的图像展示方法、装置及电子设备
US20170032560A1 (en) Robust attribute transfer for character animation
Kuschk Large scale urban reconstruction from remote sensing imagery
Pagani et al. Dense 3D Point Cloud Generation from Multiple High-resolution Spherical Images.
Geyer et al. Omnidirectional video
CN113838116B (zh) 确定目标视图的方法、装置、电子设备及存储介质
CN114511447A (zh) 图像处理方法、装置、设备及计算机存储介质
CN116724331A (zh) 系列照片的三维建模
da Silveira et al. Omnidirectional visual computing: Foundations, challenges, and applications
JP6719596B2 (ja) 画像生成装置、及び画像表示制御装置
Tsai et al. Polygon‐based texture mapping for cyber city 3D building models
Kumara et al. Real-time 3D human objects rendering based on multiple camera details
Kang et al. Virtual navigation of complex scenes using clusters of cylindrical panoramic images
Lee Wand: 360∘ video projection mapping using a 360∘ camera
WO2022133569A1 (en) Methods and system for reconstructing textured meshes from point cloud data
Kang Geometrically valid pixel reprojection methods for novel view synthesis
Guarnaccia et al. An explorable immersive panorama
JPH09237346A (ja) 部分立体モデルの合成方法及び完全立体モデルの作成方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination