具体实施方式
在以下详细描述中,仅借助于说明展示和描述了本发明的仅某些示范性实施例。如所属领域的技术人员将认识到,本发明可以许多不同形式体现且不应被理解为限于本文中所阐述的实施例。贯穿本说明书,相同的图式元件符号指定相同的元件。
本发明的实施例的方面是关于用于自动地生成用于媒体文档的元数据的系统和方法,所述媒体文档例如二维(2D)图像或三维(3D)模型。3D模型可由扫描器系统生成,扫描器系统具有深度摄像机,如下文更详细地描述。本发明的实施例的一些方面涉及将媒体文档供应到特征提取器以生成特征向量,且涉及将特征向量供应到分类器,所述分类器训练或配置成根据分类集合来对媒体文档进行分类。本发明的实施例的其它方面还涉及搜索(例如,存储于数据库中的)媒体文档集合以识别具有类似分类(例如,类似特征向量)的现有媒体文档。与这些具有类似分类的媒体文档相关联的元数据可随后用于生成用于所供应媒体文档的元数据。
图1是根据本发明的一个实施例的元数据的标记和类别的自动填充的实例。如图1中所展示,3D模型10用作为查询提供的媒体模型。在所展示的实例中,3D模型10并不具有任何相关联元数据。基于包含3D模型10的查询,本发明的一实施例识别在媒体文档集合(3D模型集合)中与查询中提供的3D模型10类似的条目12。所识别条目12中的每一个与包含类别14a和标记14b的元数据14相关联。举例来说,第一条目展示具有类别“汽车”和标记“吉普(Jeep)、蓝色、运动”的蓝色运动型多用途车辆的模型。第二条目展示具有类别“汽车”和标记“吉普、敞篷车、红色”的红色、敞篷、越野车辆的模型。第三条目展示具有类别“帽子”和标记“黑色和白色”的棒球帽的模型。第四条目展示具有类别“汽车”和标记“敞篷车”和“运动”的绿色、敞篷汽车的模型。通过合并在所识别条目12的至少一半中出现的元数据,可生成用于查询的所提供3D模型10的元数据16。
这种方法在由扫描器系统生成的3D模型的情况下可能特别适用,其中此类所生成3D模型可基本上不具有元数据,例如在用户使用3D扫描器系统俘获其(his/her)汽车的3D模型以便使出售汽车的广告(例如,线上拍卖网站上的产品列表)中包含所述汽车的3D模型的情况下。
这种方法进一步允许所述系统自动地分类和标记物体,即使捕获物体的图像或3D模型的用户并不知道所述物体是什么或所述物体称作什么。
扫描器系统
一般来说,扫描器系统包含硬件装置,所述硬件装置包含收集来自场景的数据的传感器,例如相机。扫描器系统可包含用于根据传感器收集的数据来生成场景的深度图像和/或三维(3D)模型的计算机处理器或其它处理硬件。
扫描器系统的传感器可以是例如包含以下的多种不同类型的相机中的一种:普通彩色相机;深度(或广角)相机;或深度相机与彩色相机的组合。后者通常称作RGB-D,其中RGB代表彩色图象且D代表深度图象(其中每一像素编码场景的深度(或距离)信息)。可通过包含几何或电子方法的不同方法获得深度图像。深度图像可表示为点云或可转换成点云。几何方法的实例包含被动或主动式立体相机系统和结构光相机系统。捕获深度图像的电子方法的实例包含飞行时间(TOF)或一般扫描或固定LIDAR相机。
取决于相机类型,不同算法可用于根据相机捕获的数据来生成深度图像。称作密集跟踪和实时映射(Dense Tracking and Mapping in Real Time;DTAM)的算法的类别使用所捕获图像中的颜色提示,而称作同时定位与地图构建(Simultaneous Localizationand Mapping;SLAM)的另一算法的类别使用深度(或深度与颜色的组合)数据,而另一算法类别基于迭代最近点(ICP)和其衍生算法。
如下文参照图2更详细地描述,至少一些深度相机系统允许用户在物体周围自由地移动相机以捕获物体的全部侧面。用于生成组合深度图像的基础算法可跟踪和/或推断相机相对于物体的位姿,以便使所捕获数据与所述物体对准或与所述物体的部分建构3D模型对准。用于扫描三维物体的系统和方法的一个实例描述于2017年6月22日在美国专利商标局提交的美国专利申请第15/630,715号中,所述申请的全部公开内容以引用的方式并入本文中。
在本发明的一些实施例中,深度图像或3D模型的建构通过扫描器自身在本地执行。在其它实施例中,处理动作藉由一或多个本地或远程服务器执行,所述本地或远程服务器可经由有线或无线连接(例如,以太网网络连接、USB连接、蜂窝数据连接、局域无线网络连接以及蓝牙连接)从扫描器接收数据。
作为更具体实例,扫描器可以是手持式3D扫描器。此类手持式3D扫描器可包含深度相机(计算由每一像素成像的表面元素的距离的相机)以及软件,所述软件可对齐同一表面的多个深度图像以产生可能较大表面或完整物体的3D表示。手持式3D扫描器的用户需要将其移动到物体周围的不同位置并使其定向,从而覆盖物体表面(例如,在由扫描器拍摄的至少一个深度图像中所见的表面)上的所有点。另外,重要的是每一表面贴片接收足够高密度的深度测量值(其中深度相机的每一像素提供一个此类深度测量值)。深度测量值的密度取决于相机检视表面贴片的距离,以及表面相对于深度相机的检视方向或光轴的角度或倾斜。
图2是根据本发明的一个实施例的作为立体深度相机系统的扫描系统的框图。
图2中所展示的扫描系统100包含第一相机102、第二相机104、投影源106(或照明源或主动式投影系统)以及主处理器108和存储器110,其中主处理器可以是例如图形处理单元(GPU)、较通用处理器(CPU)、适当配置的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。第一相机102和第二相机104可稳固地附接(例如)在框架上,使得其相对位置和定向大体上固定。第一相机102和第二相机104可一起称为“深度相机”。第一相机102和第二相机104包含相应图像传感器102a和104a,且还可包含相应图像信号处理器(ISP)102b和104b。各种组件可经由系统总线112彼此通信。扫描系统100可包含例如以下的额外组件:显示器114,其允许装置显示图像;网卡116,其与其它装置通信;惯性测量单元(IMU)118,例如陀螺仪,其检测扫描系统100的加速(例如,检测重力方向以确定定向以及检测移动以检测位置改变);以及持久性存储器120,例如NAND快闪存储器,其用于存储扫描系统100采集和处理的数据。IMU 118可属于通常在许多现代智能电话中所见的类型。图像捕获系统还可包含其它通信组件,例如通用串行总线(USB)接口控制器。
在一些实施例中,相机102和104的图像传感器102a和104a是RGB-IR图像传感器。能够检测可见光(例如,红-绿-蓝,或RGB)和不可见光(例如,红外或IR)信息的图像传感器可以是例如电耦合装置(CCD)或互补金属氧化物半导体(CMOS)传感器。一般来说,常规的RGB相机传感器包含以“拜耳(Bayer)布局”或“RGBG布局”布置的像素,所述布局是50%绿色、25%红色和25%蓝色。根据拜耳布局,在单独光电二极管前方(例如,光电二极管与相关联于相机的光学件之间)放置用于绿色、红色和蓝色波长中的每一个的带通滤波器(或“微型滤波器”)。一般来说,常规的RGB相机传感器还包含红外(IR)滤波器或IR截止滤波器(例如,形成为镜头的部分或整个图像传感器芯片上的涂层),其进一步阻断电磁光谱的IR部分中的信号。
RGB-IR传感器大体类似于常规RGB传感器,但可包含不同彩色滤波器。举例来说,在RGB-IR传感器中,将每组四个光电二极管中的绿色滤波器中的一个替换成IR带通滤波器(或微型滤波器),以产生25%绿色、25%红色、25%蓝色和25%红外的布局,其中红外像素掺和在可见光像素当中。另外,可省略RGB-IR传感器中的IR截止滤波器,IR截止滤波器可仅经由检测红光、绿光和蓝光的像素来定位,或IR滤波器可设计为传递可见光以及特定波长间隔(例如,840到860nm)下的光。能够捕获电磁光谱的多个部分或谱带或光谱带中的光(例如,红光、蓝光、绿光和红外光)的图像传感器在本文中将被称作“多信道”图像传感器。
在本发明的一些实施例中,图像传感器102a和104a是常规的可见光传感器。在本发明的一些实施例中,系统单独地包含一或多个可见光相机(例如,RGB相机)和一或多个不可见光相机(例如,红外相机,其中IR带通滤波器位于所有像素上方)。在本发明的其它实施例中,图像传感器102a和104a是红外(IR)光传感器。
一般来说,立体深度相机系统包含彼此间隔开且稳固地安装到例如硬质框架的共享结构的至少两个相机。相机在大体上相同的方向上定向(例如,相机的光轴可大体上平行)且具有重叠的视场。可使用例如互补金属氧化物半导体(CMOS)或电荷耦合装置(CCD)图像传感器来实施这些单独相机,其中光学系统(例如,包含一或多个镜头)配置成将光导引或聚集到图像传感器上。光学系统可例如基于光学系统是否实施“广角”镜头、“摄远”镜头还是其间的某物来确定相机的视场。
在以下论述中,深度相机系统的图像采集系统可称为具有至少两个相机,其可称为“主”相机和一或多个“从属”相机。一般来说,所估计深度或视差图系从主相机的视点计算,但相机中的任一个可用作主控相机。如本文中所使用,除非指出,否则例如主/从、左/右、上/下、第一/第二和CAM1/CAM2的术语可互换地使用。换句话说,相机中的任一个可以是主相机或从属相机,且左侧相机相对于其右侧的相机之考虑因素也可通过对称性适用于另一方向。另外,虽然下文呈现的考虑因素对于各种数目个相机可能是有效的,但为方便起见,将通常在包含两个相机的系统的上下文中描述所述考虑因素。举例来说,深度相机系统可包含三个相机。在此类系统中,相机中的两个可以是不可见光(红外)相机,且第三相机可以是可见光(例如,红/蓝/绿彩色相机)相机。所有三个相机可相对于彼此光学地进行记录(例如,校准)。包含三个相机的深度相机系统的一个实例描述于2016年5月5日在美国专利商标局提交的美国专利申请第15/147,879号“深度感知三目相机系统(Depth PerceptiveTrinocular Camera System)”中,所述申请的全部公开内容以引用的方式并入本文中。
为了检测由相机成像的场景中的特征的深度,深度相机系统确定特征在由相机捕获的图像中的每一个中的像素位置。两个图像中的特征之间的距离称为视差,其与物体的距离或深度反向相关。(这就是在某一时间当用人的眼睛检视物体时比较物体“移位”程度时的效果,移位的大小取决于物体离检视者的眼睛多远,其中较近物体产生较大移位而较远物体产生较小移位,且在远处的物体可能几乎不具有可检测的移位。)用于使用视差计算深度的技术例如描述于R.Szeliski.的“计算机视觉处理:算法和应用(Computer Vision:Algorithms and Applications)”,斯普林格出版社(Springer),2010,第467页及以下中。
主相机与从属相机之间的视差量值取决于深度相机系统的物理特性,例如相机的像素分辨率、相机之间的距离和相机的视场。因此,为了生成精确的深度测量值,基于这些物理特性来校准深度相机系统(或深度感知深度相机系统)。
在一些深度相机系统中,可将相机布置成使得相机的图像传感器的水平像素行大体上平行。图像校正技术可用于调节由于相机镜头的形状和相机定向的变化而产生的图像失真。
更详细地,相机校准信息可提供校正输入图像的信息,从而使得等效相机系统的核线与经校正图像的扫描线对准。在此情况下,场景中的3D点投影到主图像和从属图像中的相同扫描线索引上。使um和us分别为同一3D点p在主相机和从属等效相机中的图像的扫描线上的坐标,其中在每一相机中,这些坐标参考轴线系统,所述轴线系统以主点(光轴与焦平面的相交点)为中心且具有平行于经校正图像的扫描线的水平轴线。差us-um被称为视差且由d表示;其与3D点相对于经校正相机的正交距离(即,点到任一相机的光轴上的正交投影的长度)成反比。
立体显示算法利用视差的这种特性。这些算法通过匹配在左侧和右侧视图中检测到的点(或特征)来实现3D重建,这等效于估计视差。块匹配(BM)是常用的立体显示算法。在给定主相机图像中的像素的情况下,算法计算将这种像素与从属相机图像中的任一其它像素匹配的成本。这一成本函数被界定为环绕主图像中的像素与从属图像中的像素的小窗口内的图像内容之间的差异性。点处的最佳视差最后被估计为最小匹配成本的变量参数。这种程序通常称为胜者全得(Winner-Takes-All;WTA)。这些技术较详细地描述于(例如)R.Szeliski.的“计算机视觉处理:算法和应用”,斯普林格出版社,2010中。由于如BM的立体算法依赖于外观相似性,因此在从属图像中的多于一个像素具有相同的局部外观时,视差计算变得具有挑战性,这是由于所有这些像素可类似于主图像中的同一像素,从而带来模糊的视差估计。可能发生这种情况的典型情形是当观测具有恒定亮度的场景(例如平坦墙壁)时。
存在通过投影图案来提供额外照明的方法,所述图案设计成改进或优化可捕获较小3D细节的块匹配算法的性能,所述方法例如描述于2016年7月12日发布的美国专利第9,392,262号“用于使用多个多信道相机的3D重建的系统和方法(System and Method for 3DReconstruction Using Multiple Multi-Channel Cameras)”中的一个方法,所述专利的全部公开内容以引用的方式并入本文中。另一方法投影图案,所述图案仅仅用于向场景提供纹理且通过消除原本看起来相同的场景部分的模糊性来尤其改进纹理较少区域的深度估计。
根据本发明的实施例的投影源106可配置成朝向由相机102和104成像的场景发射可见光(例如,人类和/或其它动物可见的光谱内的光)或不可见光(例如,红外光)。换句话说,投影源可具有与相机102和104的光轴大体上平行的光轴,且可配置成沿相机102和104的视场方向发光。在一些实施例中,投影源106可包含多个分离照明器,其各自具有与一或多个其它照明器的一或多个光轴间隔开且与相机102和104的光轴间隔开的光轴。
不可见光投影源可更好地适于对象为人的情形(例如在视频会议系统中),这是因为不可见光将不会干扰对象的查看能力,而可见光投影源会不舒服地照射对象的眼睛或可通过将图案添加到场景而不当地影响体验。包含不可见光投影源的系统的实例描述于(例如)2015年6月30日在美国专利商标局提交的美国专利申请第14/788,078号“用于基于多重曝光设置的多信道成像的系统和方法(Systems and Methods for Multi-ChannelImaging Based on Multiple Exposure Settings)”中,所述申请的全部公开内容以引用的方式并入本文中。
主动式投影源也可分类为投影静态图案(例如,并不随时间推移改变的图案)和动态图案(例如,随时间推移改变的图案)。在这两种情况下,图案的一个方面是所投影图案的照明水平。这可以是相关的,因为其可影响深度相机系统的深度动态范围。举例来说,如果光学照明处于高水平,则可对远处物体且在明亮的环境光条件下进行深度测量(例如,以通过与距离的反平方成比例的因数克服光学照明在到物体的距离上的递减)。然而,高光学照明水平会导致近距场景部分的饱和。另一方面,低光学照明水平可允许测量近处物体,但无法测量远处物体。
在一些情况下,深度相机系统包含两个组件:可拆卸扫描组件和显示器组件。在一些实施例中,显示器组件是计算机系统,例如智能电话、平板电脑、个人数字助理或其它类似系统。使用可分离扫描和显示器组件的扫描系统更详细地描述于(例如)2016年12月16日在美国专利商标局提交的美国专利申请第15/382,210号“包含可从屏幕拆卸的扫描传感器的3D扫描设备(3D Scanning Apparatus Including Scanning Sensor Detachable fromScreen)”中,所述申请的全部公开内容以引用的方式并入。
尽管在本文中相对于立体深度相机系统来描述本发明的实施例,但本发明的实施例并不限于此,且也可与例如结构光飞行时间相机和LIDAR相机的其它深度相机系统一起使用。
取决于相机的选择,不同技术可用于生成3D模型。举例来说,密集跟踪与实时映射(DTAM)使用色彩提示来扫描,且同时定位与地图构建使用深度数据(或深度数据与色彩数据的组合)以生成3D模型。
图3从用户的角度说明根据本发明的一个实施例的用于使用包含与屏幕分离的扫描传感器(或相机)的3D扫描系统50来扫描固定位置处的物体20的系统和方法。确切地说,图3说明在八个不同时间点围绕物体20的八个不同物理位置处的单个扫描传感器模块100。扫描传感器模块100与扫描装置200之间的点线指示硬件的两个件之间的数据连接,其中扫描装置200可经由数据连接将命令发射到扫描传感器模块100,且扫描传感器模块100可将包含图像的数据发射到扫描装置200。
如图3中所见,用户22可单手(图3中描绘为右手)握持扫描传感器模块100(例如,相机),且可用另一只手(图3中描绘为左手)握持扫描装置200(例如,智能电话、平板电脑、个人数字助理或其它具有显示器的手持式装置)。如图3中所展示,用户可将扫描传感器从物体前方移动到物体后方而不改变扫描装置200的位置。在用户用扫描传感器扫描物体20时(如图3中所展示的组织框),扫描装置200显示由扫描传感器模块捕获的图像的视图202(例如,实时视图)或表示。如图3中所描绘,用户可具有物体20的更多自上而下的视图,但用户22可定位扫描传感器模块100以具有物体20的侧视图。图3中展示的扫描装置200上的视图202对应于在位置100v处由扫描传感器模块100捕获的侧视图图像。这可使得用户22能够通过操控扫描传感器模块100的位置来更容易地和舒适地扫描物体20而无须扭曲其身体来维持扫描装置200的显示器上的视图202的视线。因此,用户接收关于由扫描传感器捕获的数据的实时反馈,进而帮助确保物体的全部侧面(包含顶部)通过扫描传感器成像。
在无这种反馈的情况下,用户可不经意将扫描传感器定向在未能捕获物体的有用图像的方向上。举例来说,用户可能不经意捕获吊顶或地板的图像,或可能捕获背景的图像。另外,在相机和显示器稳固地固定到彼此的比较性成像系统中,相机的视场与成像系统的显示器的检视方向之间的固定关系可使得用户难以在扫描物体的全部侧面时维持屏幕的检视。
在所扫描物体的三维几何已由扫描系统获得并处理后,有可能执行一些精修以获得清晰三维模型。三维模型还可与纹理信息(例如,色彩信息)相关联。此类模型可表示为网格。形成纹理化模型比形成非纹理化模型更复杂,这部分地因为纹理化模型的查看者可能对逼真度具有较高期望且因为将纹理与网格的表面对准具有额外挑战。基于光度误差最小化和图形切割优化的各种技术可应用于纹理化模型的形成中,且在一些实施例中,此类技术可由服务器而不是扫描器自身执行。
图4A和4B是由扫描系统捕获的三维模型的实例。图4A是棕色鞋的纹理化模型,且可已由RGB-IR深度相机系统捕获。图4B是帆布袋的无纹理模型,且可已在无纹理的情况下捕获(例如,通过包含仅IR传感器和不可见光或RGB传感器的深度相机系统)。所生成模型可以标准格式存储,例如“ply”格式或“obj”格式,且可使用查看器软件显示在显示器装置上。在一些情况下,查看软件可基于网络(例如,通过网络浏览器进行),例如利用ThreeJS查看器的情况。
三维模型存储
根据本发明的实施例的一个方面,例如三维(3D)模型的现有媒体文档集合存储于数据库中。当生成用于所提供媒体文档(例如3D模型)的元数据时,在数据库中查询类似于所提供媒体文档的媒体文档,且因此传回类似条目。
数据库组织
根据本发明的实施例的一个方面,数据库存储组织成K个不同类别的N个条目(N个媒体文档)。条目数目(N)可以是大约数百万且类别数目(K)可以是大约数千或数万。K个类别可组织在分级树状结构中,其一部分展示在表1中:
表1
根据一个实施例,数据库中的每一条目与包含名称、一或多个类别、一或多个标记、文本描述以及视觉信息的元数据相关联。
名称字段是用于条目的媒体文档的特定名称。举例来说,当媒体文档是特定类型的汽车的3D模型时可指明所述汽车的全称(例如,连接成字符串的车型年份、品牌、型号和内饰)。
类别字段识别K个类别中与特定条目相关联的一或多个类别。确切地说,如果K个类别分级地组织成树状结构,那么如果条目属于一种类别,那么其还属于大于树中的特定类别的全部类别,直到树的根。举例来说,如表1中所展示的具有类别“浴巾”的条目将还属于其直接亲代类别“毛巾”以及更高级别类别“沐浴”和“婴幼儿”。
一或多个标记对应于与特定条目相关联的关键词(例如,非分级词语或短语)。这些关键词可包含例如产品颜色(例如,红色、白色和黄色)、图案(例如,格子、条纹和格纹)、材料(例如,棉、聚酯、混合物)、大小或其它描述词的描述,所述描述可不放入例如类别的分级结构中。
文本描述字段可以叙述形式描述模型,且可出于人可读性而书写,但也可用于条目的文本搜索。
媒体信息字段可对应于媒体文档自身(或更广泛地,与条目相关联的特定数字媒体文档,例如特定图像、特定3D模型、特定音频录音或特定视频)。
根据一些实施例,例如名称、类别和视觉信息的这些元数据字段中的一些是必选的,而例如标记和文本描述的其它元数据字段是任选的。任何给定条目的元数据字段中的一些或全部可通过用户手动地键入,或可自动地生成,如下文更详细地描述。
用于自动元数据填充的数据库搜索
本发明的实施例的一个方面涉及执行对以上描述的数据库的搜索以找到类似于给定输入媒体文档的条目,以便生成用于给定输入媒体文档的元数据。
在本公开的内容背景中,考虑用于查询和条目的以下命名法:条目是已存在于数据库中且元数据可用于其的媒体文档(例如,3D模型、图像、音频录音或视频)(或与媒体文档相关联),而查询是不存在于数据库中的媒体文档(例如,三维模型),且元数据字段中的一些或全部为所述媒体文档所需,从而通过组合来自条目的元数据的信息或数据库中已存在的模型来进行填充。待填充的元数据字段是查询的类别的情况可称作查询的媒体文档的分类。
用于查询图像的数据库的技术大体上属于两个不同形式:图像分类(为图像指派一或多个类别);以及图像检索(识别数据库中相对于查询图像的最类似图像条目)。一种常用图像数据库是ImageNet(参见例如,J.Deng,W.Dong,R.Socher,L.-J.Li,K.Li和L.Fei-Fei,ImageNet:大型分级图像数据库(ImageNet:A Large-Scale Hierarchical ImageDatabase.),IEEE计算机视觉和图案辨识(IEEE Computer Vision and PatternRecognition;CVPR),2009),其包含数百万图像和数千种不同类别。用于执行图像分类和检索的方法包含使用卷积神经网络(CNN)(参见例如,A.Krizhevsky,I.Sutskever,G.E.Hinton,“使用深度卷积神经网络对Imagenet进行分类(Imagenet classificationwith deep convolutional neural networks)”,神经信息处理系统发展(Advances inNeural Information Processing Systems),2012;Y.LeCun,B.Boser,J.S.Denker,D.Henderson,R.E.Howard,W.Hubbard,L.D.Jackel,“应用于手写zip码识别的反向传播(Backpropagation applied to handwritten zip code recognition)”,神经计算(Neural Computation),1989;以及C.Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.Erhan,V.Vanhoucke,A.Rabinovich,“深入探索卷积(Going deeper withconvolutions)”,CVPR,2015)和贝叶斯(Bayesian)分级模型(参见例如,L.Fei-Fei,P.Perona,“用于学习自然场景分类的贝叶斯分级模型(A Bayesian hierarchical modelfor learning natural scene categories)”,CVPR,2005)的技术。
另外,音频录音和视频的音频部分也可提供到卷积神经网络以通过形成音频的一或多个频谱图将音频录音转换成图像(例如,用于音频的每一信道的一个频谱图)来进行特征提取。
为方便起见但不限于此,可将CNN视为一种系统,其在输入图像的情况下执行一组操作,例如二维(2D)卷积、非线性映射、最大池化聚合,且连接以计算值或特征的向量(通常被称为特征向量)。确切地说,用于查询图像的所估计特征向量是大维数(例如,4096个值)的值向量(通常编码为浮点或定点数值)。特征向量可被视为输入图像的“标签”,且其具有同一类别中的物体的特征向量是在特征向量空间中接近的点的特性(例如,具有类似特征向量)。特征向量可随后由分类器(例如,SoftMax分类器)使用以获得对用于输入图像的元数据的一或多个类别的估计。如此,通过分类器计算的分类可用于识别哪一类别与给定图像相关联。
除了将特征向量提供到分类器以计算分类之外,特征向量也可用于图像检索。因为类似图像具有类似特征向量,因此如果其特征向量接近于特征向量空间中的查询图像的特征向量,其中“接近性”或类似性可相对于例如L1或L2度量的标准度量来计算,那么数据库中的条目类似于查询图像。在大维数的特征向量空间的情况下,特征向量可通过应用维数约简技术来变得计算上更易处理,所述技术例如主成分分析(Principal ComponentAnalysis;PCA)或线性判别分析(Linear Discriminant Analysis;LDA)。
以类似于二维图像的方式,三维模型(无论纹理化或无纹理)也可被视为在使用卷积神经网络和分类器的分类或检索的情况中。
如此,本发明的实施例的一个方面涉及使用来自查询的媒体文档的信息来搜索与类似媒体文档相关联的条目以获得元数据。确切地说,本发明的实施例的一个方面涉及对媒体文档进行编码以便使用卷积神经网络从媒体文档提取特征向量。提取的特征向量可随后提供到分类器以对媒体文档进行分类或还可用以在特征向量空间中搜索类似媒体文档。
图5是根据本发明的一个实施例的用于生成用于媒体文档的元数据的方法500的流程图。在图5中展示的方法可通过扫描器100的主处理器108执行、通过服务器(例如,扫描器100本地的计算机或“云端”的数据中心中的计算机)执行或其组合执行(其中一些操作可通过扫描器的主处理器108执行且其它操作通过服务器执行)。为方便起见,操作将被描述为通过“处理器”执行,但不限于处理器是否是主处理器108或服务器的处理器。
在操作510中,处理器计算其已接收的媒体文档的特征向量。在一些情况下,媒体文档可以是在扫描处理期间由扫描器100捕获的3D模型。在其它情况下,媒体文档可从第三方检索(例如,由不同扫描装置捕获的3D模型),可使用计算机辅助设计工具手动地生成,或可以是使用计算机辅助设计工具修改的扫描模型。
如上所述,在查询的媒体文档是2D图像且数据库的媒体文档也是2D图像的情况下,2D图像可直接地提供到训练后的(例如,在2D图像上进行训练的)CNN。在媒体文档是音频录音或媒体文档是包含音频部分的视频录像的情况下,处理器将音频转换成一或多个频谱图且将一或多个频谱图作为输入提供到训练后的(例如,在音频录音的频谱图上进行训练的)CNN。
在查询的媒体文档是3D模型且数据库存储2D图像集合的情况下,可从3D模型提取一或多个特征向量。举例来说,在一个实施例中,从多个视点再现3D模型以生成多个2D图像,且可将2D图像中的每一个提供到训练后的CNN以生成与3D模型相关联的(从2D视图提取的)多个特征向量。如此,3D模型可用于查询2D图像的数据库。图6A是说明根据本发明的一个实施例的用于在媒体文档是3D模型的情况下通过使3D模型体素化来计算特征向量的方法的流程图,且图6B直观地描绘CNN在使用体素化的3D模型上的应用。参考图6A和6B,在操作610中,处理器界定3D模型周围的限界框612,例如通过对3D模型应用旋转卡壳算法。
在操作630中,处理器使模型体素化以生成表示3D模型的体素集合。在一个实施例中,在体素化处理中,处理器将限界框划分成被称作体素的子单元。举例来说,限界框可以是在一侧上具有256个体素的立方体,总共2563=16,777,216个体素,但是本发明的实施例并不限于此,且可显著较大。每一体素可与表示3D模型的某一部分是否含于体素内的值相关联(例如,在二进制值的体素化中),或在另一情况下,每一体素可与表示由3D模型占据的体素的分率或百分比的值(例如,8位值)相关联(例如,整数值的或浮点体素化)。图6B描绘体素化的3D模型632。
根据本发明的一个实施例,操作630进一步包含对特征进行估计或执行主成分分析以在执行体素化前识别“优选视图”。在体素化前识别模型的一致优选视图增大大体上类似物体(或相同物体)的两个不同3D模型将从相同视角体素化(例如,沿大体上相同的坐标空间界定体素)的可能性,进而提供旋转不变性(例如,系统识别已旋转的物体模型的能力)。
在操作650中,处理器根据在操作630中生成的体素来生成特征向量。根据本发明的一个实施例,通过将体素提供到训练后的卷积神经网络652来计算特征向量654。因为体素表示可视为3D张量,因此体素可直接作为输入提供到CNN,其中CNN基于体素化3D模型而训练。图6B中展示的虚线块表示卷积操作。如图6B中所展示,特征向量654也可提供到分类器以生成体素化3D模型612的分类656。
根据本发明的另一个实施例,通过从多个方向或视点再现模型来编码关于3D模型的几何和纹理信息。图7A是说明根据本发明的一个实施例的用于在媒体文档是3D模型的情况下通过从不同视点或方向再现3D模型的多个视图来计算特征向量的方法的流程图,且图7B直观地描绘CNN在根据多个视图所再现的3D模型上的应用。
参考图7A和7B,在操作710中,处理器从多个角度再现3D模型以生成3D模型的多个二维(2D)视图712。类似特征估计或主成分分析技术还可应用于识别3D模型的“优选视图”,根据所述优选视图来生成3D模型的多个2D视图。在操作730中,处理器将2D视图中的每一个提供到卷积神经网络732以生成多个相应单视图特征向量(对应于2D视图中的单个视图的特征向量)。在一些实施例中,如图7B中所展示,存在针对每一视图的分离卷积神经网络。在其它实施例中,将视图中的每一个提供到相同卷积神经网络。在操作750中,视图池化层752聚合根据单独2D视图或图像计算的单视图特征向量。视图池化层752允许系统的额外灵活性,因为视图池化层752使得池化特征向量的长度独立于3D模型的视图数目。
在操作770中,处理器应用末级CNN 772以计算特征向量774。特征向量774还可提供到分类器以生成3D模型的视图的分类776。
在查询的媒体文档包含相同物体的一或多个2D图像且数据库是3D模型集合的情况下,可从2D图像提取一或多个特征向量以生成与3D模型集合的特征向量相比较的特征向量。在本发明的一个实施例中,2D图像用于使用(例如)立体算法来合成3D模型,所述立体算法例如块匹配,其在上文简要地经描述,且还更详细地描述于R.Szeliski.“计算机视觉处理:算法和应用”,施普林格,2010中。可随后以与查询的媒体文档是3D模型的情况下的方式大体类似的方式从合成的3D模型中提取特征向量,所述方式例如上文关于图6A、6B、7A和7B所描述的技术。
在操作530中,处理器在具有与针对输入媒体文档计算的特征向量类似的特征向量的数据库中搜索媒体文档。如上所述,特征向量的“接近性”或类似性可相对于多维距离度量而计算,所述多维距离度量例如L
p空间中的p标准(例如,对于两个向量x
1和x
2,x=(x
1,x
2),
举例来说,L
1对应于“出租汽车”空间或“曼哈顿(Manhattan)空间”中的距离,且L
2对应于欧几里德(Euclidian)空间中的距离。在一些实施例中,处理器确定当表示两者之间的距离的度量(或差)小于阈值时,两个特征向量(例如,查询模型的特征向量和数据库中的条目中的一个的模型的特征向量)类似。
在本发明的一个实施例中,通过比较查询的媒体文档的特征向量与数据库中的每一条目的特征向量来在数据库中识别类似媒体文档。根据本发明的另一个实施例,类似条目基于其特征向量的类似性而在数据库中分组在一起(或装仓)。最初的搜索可识别与查询的媒体文档类似的条目的一或多个仓,其中条目的所识别仓中的每一个的全部条目可以认为是类似于查询的媒体文档的特征向量。搜索可通过比较查询的媒体文档的特征向量与所识别仓中的每一个中的每一条目的每一特征向量而进一步细化。
在本发明的一个实施例中,其中查询的媒体文档是3D模型且条目的数据库含有3D模型集合,那么通过应用迭代最近点(ICP)技术来在数据库中识别类似3D模型。一般来说,迭代最近点试图对准(例如,对应于3D模型的)两个点云。ICP技术的一个副产物是一个点云的点与另一点云的点之间的距离的映射。如此,在一个实施例中,类似性度量对应于这些距离的统计,例如点云的点之间的平均距离。
在查询的媒体文档包含相同物体的一或多个2D图像且数据库是3D模型集合的一个实施例情况下,在操作510中提取的特征向量可以是用于一或多个2D图像中的每一个的分离特征向量,且可通过从多个不同视点再现3D模型中的每一个且将3D模型的分离再现视图中的每一个提供到卷积神经网络以生成各自对应于不同观点的一或多个特征向量来针对数据库中的3D模型中的每一个生成多个特征向量。从查询的2D图像提取的特征向量可随后(例如,使用以上描述的L1或L2量度)与3D模型的2D视图的特征向量进行比较以计算查询的2D图像与3D模型之间的类似性。
查询结果的一组检索条目也可对用户显示且通过用户手动地细化以便产生可用于推断元数据的更相关的一组检索物体。
根据本发明的实施例的一个方面,在查询包含部分填充的元数据的情况下,在操作530中搜索数据库中的类似条目还可包含搜索含有与查询的元数据的部分填充的字段类似的元数据的条目。类似条目的元数据可随后用于生成用于查询的元数据的未填充部分的元数据。
举例来说,查询可包含元数据<标题=“黑色BMW m3 2016”,类别=“汽车”,标记=“”,文本=“”>。在此类查询中,“标题”和“类别”条目已填充,且“标记”和“文本”条目未填充。未填充条目“标记”和“文本”以及可能更特定的类别可基于可用字段“标题”和“类别”而通过搜索数据库的类似条目来自动地生成。确切地说,可在数据库中检索类别“汽车”中的具有与查询的元数据中的标题类似的标题的条目。如果(例如)条目的标题含有查询的标题中的至少75%的词语,那么数据库的条目的标题可以认为是充分地类似。作为另一实例,莱文斯汀(Levenshtein)距离或其它距离度量(例如,编辑距离度量)可用来比较标题,其中具有低于阈值距离的距离的条目可以认为是类似的。
在操作550中,所识别类似条目的标记和文本元数据字段随后经过评估,且其内容经过合并以便自动地生成标记和文本字段以填充查询的元数据的未填充字段。在一个实施例中,标记可通过对所检索条目中的全部标记进行计数且仅保持出现至少两次的标记来获得,且文本可通过语义文本分析技术来获得。在一个实施例中,使用通过分类器针对特征向量计算的分类(例如,分别在图6B和7B中展示的分类656或分类776)来填充所生成元数据的类别字段。
举例来说,返回参看图1,所检索条目12和其相应类别和标记元数据展示于下表2中:
表2
所检索条目 |
类别 |
标记 |
1 |
汽车 |
吉普,蓝色,运动 |
2 |
汽车 |
吉普,敞篷车,红色 |
3 |
帽子 |
黑色和白色 |
4 |
汽车 |
敞篷车,运动 |
根据本发明的一些实施例,应用一种规则,其中将出现至少阈值次数的标记添加到所生成元数据。如表2中所见,标记“吉普”、“敞篷车”和“运动”都在结果的标记中出现两次,因此假设阈值是两次,那么将这三个标记添加到所生成元数据的标记。标记“蓝色”、“红色”和“黑色和白色”各自在结果中仅出现一次,且因此这些标记不添加到所生成元数据的标记。虽然标记“黑色和白色”的确准确地反映查询的3D模型的颜色,但没有足够结果包含这种标记,因为其将包含于所生成元数据中。
虽然本文中描述将在搜索结果中出现至少两次的元数据添加到所生成元数据的实例,但本发明的实施例并不限于此。举例来说,处理器可配置成检索多个结果(例如,十个最类似条目),且用于添加结果中出现的类别或标记的所述阈值可以是至少4个结果。在其它实施例中,用于添加类别或标记的所述阈值可设置为包含标记或类别的所述结果的最小百分比,例如至少50%。
根据本发明的一些实施例,所生成元数据的类别字段还可使用在查询结果中出现至少两次的类别或基于在大部分查询结果中出现的类别来填充。如表2中所展示,类别“汽车”在三个结果中出现,且类别“帽子”在一个结果中出现。如此,所生成元数据包含类别“汽车”但不包含类别“帽子”。
根据本发明的一些实施例,将查询的媒体文档的特征向量提供到分类器(例如,在数据库内的条目上训练的分类器)以生成一或多个分类(例如,分类656或分类776),而不是使用查询结果的类别来将类别指派到媒体文档。分类可表示为多个值,其中每一值表示媒体文档属于特定类别的置信度。举例来说,图1中展示的查询的分类可表达查询描绘汽车的高置信度,查询描绘帽子的低置信度,以及查询描绘狗的基本上零置信度。
在操作570中,处理器输出用于媒体文档的所生成元数据。这可包含例如在显示器装置上显示与媒体文档相关联的元数据。用户可随后检视自动生成的元数据,验证所生成元数据对结果合理(例如,类别、标记、名称和文本描述准确地反映媒体文档的性质),且在必要时编辑所生成元数据。
如上文所描述,在一些情况下,查询可以与部分元数据相关联。然而,通过基于查询的媒体文档的特征向量与数据库的条目的特征向量的类似性来识别其它元数据的过程,额外相关元数据可自动地生成。此外,查询的元数据中的误差还可基于自动生成的元数据而修正。
所生成元数据可随后与媒体文档结合而经保存以用于其它应用。
策略限制的搜索
本发明的实施例的一个方面涉及根据访问策略来约束数据库的搜索。举例来说,查询数据库的不同用户可基于策略而仅搜索其具有访问权的数据库的部分。举例来说,给定五个用户<a1,a2,a3,b1,b2>,其中用户<a1,a2,a3>属于群组A,且用户<b1,b2>属于群组B;且数据库由三组条目(或三组媒体文档)<dbA,dbB,dbC>构成,其中dbA对群组A的成员可见,dbB对群组B的成员可见,且dbC对群组A和B两者的成员可见,允许(准许)用户b1仅搜索dbB和dbC中的条目且不允许(拒绝)对dbA中的条目的访问(且因此不对dbA中的条目执行搜索)。如此,用户b1执行的搜索限于dbB和dbC中的条目。这些策略也可以不同方式应用于元数据的不同字段。举例来说,可允许用户b1在整个数据库中搜索以便填充标记和标题字段,但仅搜索dbB和dbC以便填充文本字段。这些策略的应用涵盖用于(例如)文本和视觉信息、分类信息、所有权信息的数字权限的和只适于成人的或不安全材料搜索限制的强制执行。
条目自动嵌入到数据库中
根据本发明的实施例的一个方面,查询的媒体文档和其自动生成的元数据形成用于作为新条目嵌入到数据库中的候选项,且因此变为可进一步用于进一步查询的元数据的搜索和生成的条目。
然而,即使通过将条目添加到数据库的用户来校验在搜索后的查询的自动填充的字段,这仍然可能不足以确保所提供元数据字段的质量对安全地用作数据库中的条目来说充分高。举例来说,元数据中的误差可能产生级联效应,其中若干不当标记条目可能导致额外条目经不当标记,进而进一步增加稍后查询将经不当标记的可能性。在这些条目用于训练分类器的情况下尤其如此。
因此,为了提高仅具有高质量元数据字段的特征的查询作为条目并入到数据库中的可能性,根据本发明的一个实施例,新条目经历查验时间和民主验证。在此类实施例中,暂时地将查询作为条目添加到数据库。如果这种暂时性条目用于填充来自不同用户的二次查询的丢失元数据且用户校验自动填充的元数据字段,那么这种条目被视为是有效的且添加到数据库中的普通条目的存储区。在另一实施例中,在媒体文档会出现在搜索结果中前,通过数据库的管理员来验证准备好添加到条目的存储区的所述媒体文档。
利用自动元数据生成进行模型捕获的实例
为清楚起见,下文参照图8来描述根据本发明的一个实施例的捕获三维(3D)模型和自动地生成用于模型的元数据的过程的非限制性实例。
图8是描绘根据本发明的一个实施例的捕获模型且自动地生成用于所述模型的元数据的过程的流程图。
为方便起见,以下实例假定3D扫描器的使用,例如在2017年6月22日在美国专利商标局提交的美国专利申请第15/630,715号中描述的类型的扫描系统,所述申请的全部公开内容以引用的方式并入本文中。此类3D扫描器能够获得三维物体的几何和纹理信息。
在操作810中,3D扫描器获得例如灯的特定物理三维物体的纹理的三维几何结构。用于计算所捕获原始资料(例如,二维图像)的3D几何结构和纹理以生成3D模型的计算的一部分可在3D扫描器上执行,而其余部分可在本地或远程服务器上执行。这种操作的输出是特定物体的纹理化三维模型(3D模型)(例如,灯的3D模型)。
在操作820中,使用所捕获3D模型来查询3D模型的数据库。举例来说,根据本发明的一个实施例,所捕获3D模型(例如,灯的所捕获模型)随后上传到本地或远程服务器,所述服务器相对于分类和标记为3D模型的数据库来执行对这种3D模型的搜索。为方便起见,假定数据库中的所有模型的全部元数据字段(例如,名称、类别、标记和文本描述)是填充的且没有查询模型的元数据字段是填充的。
可以在图5的操作510和530中展示的大体上相同的方式执行数据库的查询。在操作510中,使用训练后的卷积神经网络(CNN)来基于查询的3D模型计算(或提取)特征向量。(可预先计算已在此类数据库上训练的CNN的权重,且可使用相同CNN来预先计算用于数据库中的3D模型中的每一个的特征向量,且那些特征向量可存储于数据库内。)查询的3D模型的特征向量可因此用于分类和检索目的。
在操作830中,自动地生成用于查询的3D模型的元数据字段。如上所述,当将模型的特征向量提供到分类器时,分类可以是用于查询的3D模型的类别集合,且检索输出可以是具有与查询模型类似的3D模型(例如,具有类似特征向量)的条目集合。类似条目模型的这种集合可用于除类别以外的元数据字段的自动填充,所述类别例如名称、标记和文本描述。
在操作840中,用于提供作为查询的3D模型的所有自动生成的元数据字段已通过服务器进行填充,且将其显示给用户以供验证。在操作850中,用户可验证和修改服务器提出的元数据的自动生成值。在验证(且有可能编辑)元数据后,可在操作860中输出所得元数据,其中3D模型用于其它情形,例如包含三维模型的电子商务列表的形成,其中自动生成的元数据可用于自动地填充电子商务列表的各种部分。
电子商务应用中的媒体文档
如上所述,用于例如具有自动生成元数据的三维(3D)模型的媒体文档的元数据的自动生成的应用的一个实例是在电子商务应用中。确切地说,提供待出售的产品的3D模型可通过允许购物者在3D环境内虚拟地操纵产品进而提供对产品大小和形状的更深入了解来改良购物体验且使得购物者参与度增加。此外,待出售的产品的2D图像是常见的且消费者通常能预期。
除了关于产品的视觉信息(例如,图像和三维模型)之外,电子商务应用上的列表大体上包含大量相关数据,例如名称(或标题)、文本描述、标记(或关键词),且其在类别(通常称作种类)上进行组织。确切地说,在大的电子商务网站中,列表种类可大约是数千或更多种,且其可在编码子种类关系的树状结构中进行组织,其中每一列举产品可属于一或多个种类。
如此,当卖方希望列举用于出售的产品时,其必须填补用于待出售产品的这些元数据字段。一般来说,这是手动过程且可能需要较多时间和精力来采集产品列表页面所需要的信息以完成表单。确切地说,当根据移动平台(例如,智能电话)进行列表时,这种操作可变得极耗时和繁重。
如此,根据本发明的实施例的各方面的自动元数据生成允许使用所捕获媒体数据(例如,产品的相片或物体的3D扫描)来自动地填充电子商务网站的元数据字段。虽然上文关于二维图像和三维模型描述本发明的一些实施例,但本发明的实施例并不限于此,且还可应用于其他形式的媒体,例如视频(例如,特征向量可从视频提取而不是2D图像或3D模型,且所得特征向量可用于对图像中描绘的物体进行分类且识别类似物体的图像和/或视频以便从那些类似条目中自动地检索元数据)。
借助于列表的自我更新组织的数据库来获得各种元数据字段(标题、类别、标记、文本描述)的这种自动填充,这允许有效的分类和检索操作。
虽然已经关于某些示范性实施例来描述本发明,但应理解,本发明不限于所公开的实施例,而相反地,本发明旨在涵盖包含于所附权利要求的精神和范围内的各种修改和等效布置和其等效内容。