具体实施方式
在以下详细描述中,仅借助于说明示出且描述了本发明的某些示例性实施例。如所属领域的技术人员将认识到,本发明可以许多不同形式体现且不应将其理解为限于本文中所阐述的实施例。贯穿本说明书,相似的附图标记表示相似元件。
本发明实施例的各方面涉及用于自动估计场景中对象的物理尺寸的系统和方法。本发明实施例的一些方面涉及物理对象的“非接触”测量,其中深度相机捕获对象的一个或多个深度图像,并且从一个或多个深度图像估计对象的尺寸(例如,长度、宽度、高度和体积)或其边界框。
对象尺寸标注是估计对象的3D空间范围的任务。本发明实施例的一个方面涉及计算给定对象的最小包围边界框(MEBB)的估计。为了方便起见,如本文所使用,术语MEBB将用于指紧密边界框。为了执行这种测量,可以使用包含一个或多个相机的采集系统。深度相机特别适合这种类型的任务,因为它们具有所采集3D几何结构的固有能力。2019年1月4日在美国专利商标局提交的第16/240,691号美国专利申请“体积大小设计的系统和方法(SYSTEMS AND METHODS FOR VOLUMETRIC SIZING)”和2018年1月5日在美国专利商标局提交的第62/613957号美国临时专利申请中描述了例如通过找到对象周围的紧密边界框使用采集系统进行体积框拟合的技术示例,所述申请的全部公开内容以引用的方式并入本文中。
虽然从对象的全3D模型计算对象的MEBB是相对简单明了的,但在许多情况下,对于对象仅能获得局部信息。(为了清楚起见,如本文使用的术语“3D模型”包括点云和3D网格。)例如,如果仅执行目标对象形状的正面采集,或者如果目标对象被场景中的其它对象遮挡,则只能采集对象的局部3D模型(例如,所采集的3D模型可能仅包含对象的一部分),因此难以估计对象的MEBB(例如,对象的局部3D模型的MEBB可能低估对象的实际体积)。因而,本发明实施例的各方面涉及用于估计3D模型缺失部分的内容以计算整个对象的估计体积的系统和方法。本发明实施例的一些方面涉及使用对象识别和分类技术来提高3D模型缺失部分的估计或预测形状的准确性。
图1A是根据本发明一个实施例的对象和系统的测量示意图。如图1A所示,深度相机系统100捕获目标对象10的图像,这里是一双鞋子中的一只鞋子。如图1A所示,目标鞋子10被另一对象12(在此情况下是另一只鞋子)部分遮挡。在本发明的一些实施例中,深度相机系统100可以包含用于显示深度相机系统100捕获的测量值的显示装置122。在本发明的其它实施例中,显示装置122可在物理上与深度相机系统100的相机分开,例如在单独报告或监测系统的情况下。如图1所示,显示装置122显示目标对象10的绘图122A周围的最小包围边界框(MEBB)122B的轮廓,以及目标对象的MEBB 122B的尺寸122C。
在一些情况下,系统100可以与对象10所在的电子秤或电子天平通信,并且对象10的测得质量或重量240也可以显示在系统100的显示器122上。在一些情况下,对象的重量或质量可能已经预先测量并存储在存储器中(例如,在数据库中),并且经过检索以显示在显示装置122上。
在本发明的一些实施例中,深度相机系统100能够采集颜色信息(例如,关于对象表面颜色或其表面“纹理”的信息)和几何结构信息(例如,关于对象大小和形状的信息),例如RGB-D(红、绿、蓝、和深度)相机。在本公开的提醒中,术语“RGB-D相机”用于指能够在不损失一般性的情况下采集颜色和几何结构信息的此类系统。
与普通相机一样,RGB-D相机借助于中央光学投影拍摄场景的“照片”。普通相机只能测量对象表面上任何可见点反射的光的颜色,但RGB-D相机还可以测量到表面上相同点的距离(“深度”)。通过测量在像素p处可见的表面点的深度,RGB-D相机能够计算这一点的全3D位置。这是因为像素p表征了到表面点的单一视线;沿视线的深度决定了所述视线与表面点相交的位置。通过像素p的视线可以从相机的固有参数计算得出,所述固有参数可以使用标准程序进行校准。
从单个快照(例如,从RGB-D相机相对于场景的特定姿势捕获的一组图像),RGB-D相机可以从由RGB-D相机的每个2D相机捕获的个别图像生成的视差图生成“深度图”(或“点云”)。深度图或深度图像包含从深度相机可见的场景表面点的一组3D位置(其可相对于相机的参考帧定义)。深度图中的每个像素可与如彩色相机为特定像素捕获的颜色(例如,由红色(R)、绿色(G)和蓝色(B)值的三元组表示)相关联。
在本发明的一些实施例中,扫描系统100在手持装置中实施。在本公开中,术语“手持装置”是指可以用一只或两只手舒适地握住和操作的装置,例如智能手机、平板电脑或在尺寸和形状上与带有附接显示器的便携式条形码扫描仪(或替代地,带有附接手柄和触发器的智能手机)类似的专用扫描仪。
在本发明的一些实施例中,扫描系统100被实施为固定装置,例如刚性安装到框架或其它支撑结构并被布置成在传送带上或在扫描站(例如称重位置)处对对象进行成像的一个或多个深度相机,并且,对由一个或多个深度相机捕获的图像的处理可以由通过通信网络(例如,局域网)连接到一个或多个深度相机的处理器和存储器执行。
如上所述,本发明实施例的各方面涉及计算环绕对象的边界框或最小边界框的尺寸的系统和方法。这可以被认为是可以用来包装对象的盒子,其中盒子的尺寸是通过深度相机系统100对对象的观察计算得出的。在最小边界框的情况下,框的尺寸将一些特定特性最小化,例如环绕整个对象的边界框的体积、面积或周长。
深度相机硬件
在本发明的一些实施例中,范围相机100,也称为“深度相机”,包含具有重叠视场的至少两个标准二维相机。更详细地,这些二维(2D)相机可以各自包含例如互补金属氧化物半导体(CMOS)图像传感器或电荷耦合装置(CCD)图像传感器的数字图像传感器,以及被配置成将光聚焦到图像传感器上的光学系统(例如,一个或多个镜头)。2D相机的光学系统的光轴可以大体平行,使得两个相机对大体相同的场景成像,尽管视角略微不同。因此,由于视差,场景中离相机较远的部分将出现在由两个相机捕获的图像中大体相同的位置,而场景中离相机较近的部分将出现在不同位置。
使用几何校准的深度相机,有可能识别对象表面上所有可见点相对于参考坐标系(例如,原点位于深度相机处的坐标系)的3D位置。因此,由范围相机100捕获的范围图像或深度图像可表示为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可以包含额外组件,例如用于与其它装置通信的网络适配器116、用于检测深度相机100的加速度(例如,检测重力方向以确定朝向)的陀螺仪等惯性测量单元(IMU)118,以及用于存储由深度相机系统100收集和处理的数据的NAND闪存等持久存储器120。IMU118可以是许多现代智能手机中常见的类型。图像捕获系统还可以包含其它通信组件,例如通用串行总线(USB)接口控制器。在一些实施例中,深度相机系统100进一步包含显示装置122和一个或多个用户输入装置124(例如,显示装置122的触摸屏和/或一个或多个物理按钮或触发器)。
尽管图2中所示的框图将深度相机100描绘为包含耦合到主机处理器108、存储器110、网络适配器116、IMU 118和持久存储器120的两个相机102和104,但本发明的实施例不限于此。例如,三个深度相机100可以各自仅包含相机102和104、投影源106和通信组件(例如,USB连接或网络适配器116),并且处理由三个深度相机100的相机102和104捕获的二维图像可以由使用其相应通信组件或网络适配器116与深度相机100通信的共享处理器或处理器的共享集合执行。
在一些实施例中,相机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)光传感器。在本发明的一些实施例中,图像传感器102a和104a是红外光(IR)传感器。在一些实施例(例如,其中图像传感器102a和104a是IR传感器的实施例)中,深度相机100可以包含第三相机105,所述第三相机包含彩色图像传感器105a(例如,被配置成检测红色、绿色和蓝色波长的可见光的图像传感器,例如以拜耳布局或RGBG布局布置的图像传感器)和图像信号处理器105b。
在深度相机100包含彩色图像传感器(例如,RGB传感器或RGB-IR传感器)的一些实施例中,由深度相机100收集的彩色图像数据可以补充由彩色相机150捕获的彩色图像数据。另外,在深度相机100包含彩色图像传感器(例如,RGB传感器或RGB-IR传感器)的一些实施例中,可以从系统中省略彩色相机150。
一般来说,立体显示深度相机系统包含彼此间隔开且稳固地安装到例如硬质框架的共享结构的至少两个相机。相机在大体相同的方向上朝向(例如,相机的光轴可大体平行)且具有重叠的视场。可使用例如互补金属氧化物半导体(CMOS)或电荷耦合装置(CCD)图像传感器实施这些个别相机,其中光学系统(例如,包含一个或多个镜头)被配置成将光引导或聚焦到图像传感器上。光学系统可例如基于光学系统是实施“广角”镜头、“摄远”镜头还是其间的某物而确定相机的视场。
在以下论述中,深度相机系统的图像采集系统可以被称为具有至少两个相机,其可以被称为“主控”相机和一个或多个“从属”相机。一般来说,从主控相机的视角计算所估计深度或视差图,但相机中的任一个都可用作主控相机。如本文中所使用,除非指出,否则例如主/从、左/右、上/下、第一/第二和CAM1/CAM2的术语可互换地使用。换句话说,相机中的任一个可为主控或从属相机,且相对于右侧相机考虑左侧相机也可通过对称性适用于其它方向。另外,虽然下文呈现的考量对于各种数目个相机可能是有效的,但为方便起见,将通常在包含两个相机的系统的上下文中描述所述考量。例如,深度相机系统可以包含三个相机。在此类系统中,相机中的两个可以是不可见光(红外)相机且第三相机可以是可见光相机(例如,红色/蓝色/绿色彩色相机)。所有三个相机可相对于彼此光学地进行记录(例如,校准)。2016年5月5日在美国专利商标局提交的第15/147,879号美国专利申请“深度感知三目相机系统(Depth Perceptive Trinocular Camera System)”中描述了包含三个相机的深度相机系统的一个示例,所述申请的全部公开内容以引用的方式并入本文中。此类三相机系统还可以包含红外照明器,其被配置成以红外相机可检测的波长间隔发射光(例如,840到860nm)。
为检测由相机成像的场景中的特征的深度,深度相机系统确定特征在由相机捕获的图像中的每一个中的像素位置。两个图像中的特征之间的距离被称为视差,其与对象的距离或深度成反比。(这就是在某一时间当用人的眼睛观察对象时比较对象“移位”程度时的效果,移位的大小取决于对象离观察者的眼睛多远,其中较近对象产生较大移位且较远对象产生较小移位,且在远处的对象可能几乎没有可检测的移位。)用于使用视差计算深度的技术例如描述于R.Szeliski.的“计算机视觉:算法和应用(Computer Vision:Algorithms and Applications)”,斯普林格出版社(Springer),2010,第467页及以下中。
主控与从属相机之间的视差量值取决于深度相机系统的物理特性,例如相机的像素分辨率、相机之间的距离和相机的视场。因此,为了产生精确的深度测量值,基于这些物理特性来校准深度相机系统(或深度感知深度相机系统)。
在一些深度相机系统中,可将相机布置成使得相机的图像传感器的水平像素行大体平行。可使用图像校正技术调节由于相机镜头的形状和相机朝向的变化而产生的图像失真。
更详细地,相机校准信息可提供校正输入图像的信息,从而使得等效相机系统的核线与经校正图像的扫描线对齐。在这种情况下,场景中的3D点投影到主控和从属图像中的相同扫描线索引上。设um和us分别是在主控相机和从属等效相机中同一3D点p的图像的扫描线上的坐标,其中在每一相机中,这些坐标参考以主点(光轴与焦平面的相交点)为中心且具有平行于校正图像的扫描线的水平轴的轴系统。差us-um被称为视差且由d表示;其与3D点相对于校正相机的正交距离(即,点到任一相机的光轴上的正交投影的长度)成反比。
立体显示算法利用了视差的这一特性。这些算法通过匹配在左侧和右侧视图中检测到的点(或特征)来实现3D重建,这等效于估计视差。块匹配(BM)是常用的立体显示算法。在给定主控相机图像中的像素的情况下,算法计算将此像素与从属相机图像中的任一其它像素匹配的成本。此成本函数被定义为环绕主控图像中的像素和从属图像中的像素的小窗口内的图像内容之间的差异性。点处的最佳视差最后被估计为最小匹配成本的引数。此程序通常被称为赢家通吃(WTA)。这些技术较详细地描述于例如R.Szeliski.的“计算机视觉:算法和应用(Computer Vision:Algorithms and Applications)”,斯普林格出版社(Springer),2010。由于如BM的立体算法依赖于外观相似性,因此在从属图像中的多于一个像素具有相同的局部外观时,视差计算变得具有挑战性,这是由于所有这些像素可能类似于主控图像中的同一像素,从而导致不明确的视差估计。可能发生这种情况的典型情形是当观测具有恒定亮度的场景(例如平坦墙壁)时。
存在通过投影图案来提供额外照明的方法,所述图案设计成改进或优化可捕获小3D细节的块匹配算法的性能,所述方法例如2016年7月12日发布的第9,392,262号美国专利“使用多个多通道相机进行3D重建的系统和方法(System and Method for 3-DReconstruction Using Multiple Multi-Channel Cameras)”中描述的方法,所述专利的全部公开内容以引用的方式并入本文中。另一方法投影图案,所述图案仅仅用于向场景提供纹理且通过消除原本看起来相同的场景部分的模糊性来尤其改进无纹理区域的深度估计。
根据本发明实施例的投影源106可被配置成朝向由相机102和104成像的场景发射可见光(例如,人类和/或其它动物可见的光谱内的光)或不可见光(例如,红外光)。换句话说,投影源可以具有大体平行于相机102和104的光轴的光轴,并且可以可配置成在相机102和104的视场方向上发射光。两个相机102和104以此方式布置有投影源106的布置有时被称为“有源立体”。在一些实施例中,投影源106可以包含多个单独的照明器,每个照明器具有与其它照明器(或多个照明器)的光轴(或多个轴)隔开并且与相机102和104的光轴隔开的光轴。
不可见光投影源可能更好地适于对象为人的情形(例如视讯会议系统中),这是因为不可见光将不会干扰对象的查看能力,而可见光投影源会不舒服地照射对象的眼睛或可通过将图案添加到场景而不当地影响体验。在例如2015年6月30日在美国专利商标局提交的第14/788,078号美国专利申请“基于多重曝光设置的多通道成像系统和方法(Systemsand Methods for Multi-Channel Imaging Based on Multiple Exposure Settings)”中描述了包含不可见光投影源的系统的示例,所述申请的全部公开内容以引用的方式并入本文中。
有源投影源还可分类为投影静态图案(例如,并不随时间推移改变的图案)和动态图案(例如,随时间推移改变的图案)。在这两种情况下,图案的一个方面是所投影图案的照明水平。这可能是相关的,因为其可影响深度相机系统的深度动态范围。例如,如果光学照明处于高水平,则可在明亮的环境光条件下对远处对象进行深度测量(例如,以与距离的反平方成比例的因数克服光学照明在到对象的距离上的衰减)。然而,高光学照明水平会导致近距场景部分的饱和。另一方面,低光学照明水平可允许测量近处对象,但无法测量远处对象。
由于多种因素,一些区域的深度计算可能会失败,这些因素包含:用于计算深度的机制(三角测量,具有或不具有有源照明器,或飞行时间);场景的几何结构(例如每个表面元素与相关联视线之间的角度,或存在可能妨碍立体系统中任一传感器观看的局部遮挡);以及表面的反射率特性(例如存在可能妨碍立体匹配或反射来自投影仪的光的镜面反射分量,或者导致表面反射的光不足的非常低的反照率)。对于深度计算失败或不可靠的深度图像的那些像素,可能只有颜色信息可用。
尽管在本文中相对于立体深度相机系统描述了本发明的实施例,但本发明的实施例并不限于此,且也可与例如结构光飞行时间相机和LIDAR相机的其它深度相机系统一起使用。
取决于相机的选择,可使用不同技术来生成3D模型。例如,实时密集跟踪与映射(DTAM)使用色彩提示来扫描,且同时定位与映射(SLAM)使用深度数据(或深度和颜色数据的组合)生成3D模型。
计算对象的最小包围边界框(MEBB)
在对象放在桌子上且没有被其它对象遮挡的简单情况下,可应用2019年1月4日在美国专利商标局提交的第16/240,691号美国专利申请“体积大小设计的系统和方法(SYSTEMS AND METHODS FOR VOLUMETRIC SIZING)”(上文以引用的方式并入)中描述的方法计算对象的体积。下文将对此技术的各方面进行总结。
本发明一些实施例的各方面假设待测量的对象或盒子位于地面上,并确定本身有一个面位于地面上(例如,有一个面平行于地面并与地面接触)的包围长方体(例如,矩形棱镜)的大小。在大多数实际情形下,这种假设并没有特别的局限性,因为一般来说,当盒子以其一个面而不是其一个边或一个角搁置时,它在物理上更稳定,并且其它对象可以具有一个或多个自然朝向,所述自然朝向在对象包装于盒子(例如,电视机和计算机显示器、液体的容器等)中时也将对应于对象的朝向。因此,在实践中遇到的大多数盒子和对象的朝向都是一个面抵靠地面,如果不是,可以操纵它们将一个面放在地面上。
为方便起见,对象所在的表面在本文中称为“地面”或“地平面”,但不限于特定环境中水平表面的特定实际高度。例如,本发明的实施例同样适用于对象或盒子位于升高的水平表面上的情况,例如桌子、升高的称重秤、卡车的车厢等。此外,本发明的实施例不要求地面或地平面完全水平(例如,垂直于重力方向),而是也可适用于地面或地平面相对于水平面略微倾斜的情况。
通过仅计算一侧位于地面上的包围框,本发明的实施例相对于比较技术大大加快了计算速度。这允许本发明的实施例提供对象尺寸的快速测量(例如,约几秒或更短,而不是分钟),从而在例如仓库或装运中心等动态工作条件中提供易用性。
另外,一些比较技术考虑3D数据(例如,计算出的点云)而不参考表面点的颜色。相比之下,本发明实施例的各方面涉及除了深度信息之外还使用颜色信息。在无法可靠计算对象的整个表面上的深度的情况下,颜色信息是有用的。
下面将针对两种不同的变型描述本发明实施例的各方面,所述变型在本文中称为“模块”,用于计算包围RGB-D相机所见的对象的框的尺寸。第一模块对一般对象操作(例如,在不作出关于对象的形状的假设的情况下)。第二模块专用于具有长方体(例如,框)形状的对象。这两个模块都返回位于地面上的紧密(如最小)框的参数(如长度、宽度和高度),所述紧密框包围由RGB-D相机成像的对象。
对象通常可以通过特定的表面颜色(例如,对象表面不同部分上的不同颜色)和几何结构(尽管它们可能在同一对象的不同实例之间发生变化,例如,基于材料中折叠的位置和深度,软手袋或帆布袋的表面形状会发生变化)来表征。这类信息可用于估计对象本身的大小和尺寸,如下文更详细地描述。
如上所述,可使用例如深度相机系统100的RGB-D相机等专用硬件获得对象的颜色和几何结构。根据一些实施例的RGB-D相机包含一个或多个彩色相机(例如,彩色相机105),其采集由一个或多个彩色相机和采集几何结构信息(例如,使用红外光)的一个或多个深度相机(例如,相机102和104)成像的场景的颜色信息。在一些实施例中,RGB-D相机包含一个或多个彩色相机和一个或多个红外(IR)相机,其与IR结构光照明器(例如,投影源106)耦合构成深度相机。存在两个红外相机和一个红外结构光照明器的情况称为有源立体。
彩色相机和深度相机可以同步并进行几何校准,从而允许其捕获由彩色图像和对应深度图构成的帧序列,这些帧序列可以几何对齐(例如,深度图的每个像素或位置可以与彩色图像的对应颜色相关,从而允许捕获场景的表面颜色)。深度图和与深度图大体同时捕获的彩色图像的组合可以称为数据“帧”。在这种情况下,具有深度图的彩色图像(或“深度图像”)可称为RGB-D帧,其包含颜色(RGB)和深度(D)信息,就好像这两个信息都是由具有单个快门和单个有利位置的单个相机采集的(即使个别相机102、104和105的物理位置略有不同)。
如上所述,深度相机系统100可以包含惯性测量单元(IMU)118,所述IMU包含在软件级或硬件级与RGB-D相机同步并且可以根据其相对空间位置选择性地与RGB-D相机校准的加速计(例如,三轴加速计)(例如,IMU 118可以刚性连接到相机102、104和105)。因此,IMU 118可以提供关于深度相机系统100的加速度和/或朝向的信息,从而提供关于深度相机系统100相对于捕获的深度帧的朝向的信息。例如,IMU 118可以用于识别捕获的深度帧中的哪个方向是“向下”(重力方向)。
如下文更详细讨论的,根据本发明实施例的各种操作可以使用一个或多个计算装置来执行,所述计算装置被配置成接收由深度相机系统100捕获的深度帧。在一些实施例中,所有操作都在单个计算装置中执行(例如,主机处理器108,以及深度相机系统100的存储器110)。在本发明的其它实施例中,来自深度相机系统的计算出的RGB-D帧由单独计算装置的处理器和存储器或物理耦合到深度相机系统的单独处理器和存储器进行分析。另外,可以使用例如通用中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)和/或专用集成电路(ASIC)等一个或多个通用或专用处理单元来实施各种操作,其可将数据存储在存储器(例如,动态存储器和/或静态存储器)中,并通过输入/输出(I/O)接口(例如,通用串行总线或USB,串行)和网络接口(例如,无线局域网,例如IEEE 802.11b/g/n/ac WiFi;有线局域网,例如IEEE 802.3以太网、3G/4G蜂窝连接和
)接收和/或传输数据以执行一组指令,以便根据本发明实施例执行体积框拟合。
在本发明的一些实施例中,其它传感器通过I/O或网络接口连接到计算装置。例如,电子秤可提供对象重量的测量,并且条形码解码系统可提供对象的标识符(例如,通用产品代码或UPC),以便允许从数据库或其它数据存储区检索关于对象的元数据。在一些实施例中,条形码解码系统可以使用由深度相机系统的彩色相机捕获的条形码的图像(例如,对出现在彩色图像的一部分中的条形码应用图像校正)。
如上所述,本发明实施例的一些方面涉及计算对象(例如,任意对象)的边界框。图3是根据本发明一个实施例的测量对象尺寸的方法的流程图。
在本发明的一些实施例中,过程从包含对象的场景的深度图开始,且继续进行以下操作:310从场景分割对象,330检测对象所在的地平面,350检测投影到地平面上的对象的矩形轮廓,370计算对象高于地平面的高度,以及390输出对象周围边界框的计算出的尺寸。可以使用如上所述的深度相机系统100(例如,RGB-D相机)捕获场景的深度图。如上所述,为了方便起见,本文将描述由深度相机系统100的主机处理器108执行的操作,但是本发明的实施例不限于此,并且在一些实施例中,可以由例如CPU、GPU、FPGA和/或ASIC等一个或多个其它计算装置执行各种操作,其中一个或多个其它计算装置可与深度相机系统100集成到同一物理装置中(例如,封装在同一外壳中和/或位于同一电路板上)和/或与深度相机系统100分开(例如,通过I/O接口和/或网络接口116中的一个或多个与深度相机系统通信)。
在操作310中,处理器108从场景分割对象。在一些实施例中,将对象与场景中的其它对象分离或“分割”(例如,与杂波12相对应的像素可在以下操作中忽略或从捕获的深度图中删除)。对象可位于地面(或水平表面)14上。
根据本发明的一些实施例,对应于对象10的3D模型部分(例如,RGB-D帧的像素或点云的点)通过选择点云的点(或3D模型的顶点)或距离深度相机系统视点最近的RGB-D帧的像素来识别(在一些实施例中,还可以根据点与图像中心的接近程度对此确定进行加权,以去除图像边缘附近的杂波)。这是基于这样的假设,即感兴趣的对象10通常是场景中最接近相机的对象(例如,在前景中)。在本发明的一些实施例中,可以在视图中显示标线250(或十字线),并将十字线下的像素选择为与感兴趣的对象10相对应的初始点。通过向用户提供用于指定视图的哪些特定部分与感兴趣的对象10相对应的视觉提示,而不是依赖于系统的启发,标线250可以提高系统的可用性。
一旦选择了感兴趣的对象10的初始点或像素,在本发明的一些实施例中,可以执行“泛光填充”操作以选择场景中可见的对象的剩余部分。这类似于2D图形中的泛光填充操作,其中可以选择初始像素,并且将颜色空间中阈值距离内的相邻像素(例如,类似颜色的像素)添加到所选像素集,并且所述过程迭代地添加满足条件的相邻像素,直到无法向选择添加更多像素。
更详细地说,在本发明的一个实施例中,3D泛光填充操作首先识别对象的初始点,然后添加足够接近以被视为“连续”并与3D空间中当前所选像素相邻的像素。例如,参考图1B,框的拐角可以被识别为对象的初始点,因为它最接近相机并且最接近图像的中心。离相机最近的框的拐角附近的点或像素将接近与框的拐角相对应的点(并被视为与所述点“连续”)。同样,沿着框的顶表面、正表面和侧表面的像素将被视为“连续”的,并且接近场景中的其相邻像素。另一方面,框10后方的杂波12的点的3D位置将与框的顶表面“不连续”,因为当从框10的顶表面过渡到杂波12的表面时,范围(例如,与深度相机系统100的距离)将有很大的变化。
图4A是描绘桌上一瓶洗衣剂的场景的深度图绘图。在深度图中,蓝色像素表示较长的距离,绿色和黄色像素表示中等距离,且红色像素描绘较短的距离。可基于呈红色的瓶子边缘与呈黄色和绿色的相邻像素(对应于桌子)之间的不连续性而从背景中分割图4A所示的瓶子。
在操作330中,处理器108检测场景的地平面。如上文所讨论,假设地平面是感兴趣的对象10位于地表面14上的场景的大体平面表面。
本文描述的方法的正确性取决于精确地平面的计算。在一些实施例中,使用例如随机样本一致性(RANSAC)的方法计算符合大多数观测(在这种情况下,由RGB-D相机测量的3D点)的模型(在这种情况下,平面模型)。在本发明的一些实施例中,计算地平面使用来自深度相机系统100的三轴加速计(或IMU 118)的数据,并使用深度相机系统100进行几何校准。当IMU 118保持在静态位置时,其产生三元组数字,表示重力向量的方向(与地平面正交)。这将自动确定地平面的朝向。然后,可以从捕获的3D深度图估计地平面的实际位置。例如,在一些实施例中,控制处理器以选择符合由IMU 118确定的地平面的预期朝向的离相机最近的平面,使得从深度相机系统100测量的所有3D点都位于此所选最近平面之上。
在本发明实施例的一些方面中,可以通过向下跟踪与对象对应的像素(例如,基于IMU 118检测到的“向下”方向)并识别处于相同高度的所有像素(例如,沿着与对象10底部周围像素上的点相对应的平面)在阈值内来检测与地平面相对应的场景的点或像素。
在一些情况下,传感器噪声可能导致检测到的地平面位置不可靠,其中噪声影响基于与扫描装置100的距离而增加。因此,在操作330中,通过检测靠近扫描装置的地平面部分并且向后延伸检测到的地平面的近部分而不是依赖于地平面较远部分的传感器数据来计算虚拟地平面。2019年1月4日在美国专利商标局提交的第16/240,691号美国专利申请“体积大小设计的系统和方法(SYSTEMS AND METHODS FOR VOLUMETRIC SIZING)”(上文以引用的方式并入)中更详细地描述了计算虚拟地平面的技术。
在操作350中,处理器检测地平面上对象的矩形轮廓。
图4B是图4A所示深度图的正交视图,其中地平面垂直于虚拟相机的光轴对齐。浅红色的大区域表示图4A中深度相机系统100可见的地平面部分。图4B的深红色部分对应于拍摄深度图时被瓶子遮挡的地平面部分。图4B中心附近的深度图的较亮颜色部分对应于瓶子(这些部分以黄色和蓝色描绘,因为此特定正交视图是从地平面的“下方”拍摄的),并且这些较亮颜色部分表示对象10的点在虚拟地平面上的投影。此过程相当于将深度图中与对象10相对应的所有点“粉碎”到地平面(例如,假设地平面在y坐标为零(0)时沿3D模型的x-z轴延伸,这相当于将对象10的所有点的y坐标设置为零(0))。
这会产生一组2D点,这些点是参照固定到地平面的框架定义的。投影一个面位于地面(因此平行于地平面)的盒子的点将生成矩形轨迹(同样,以其一个底部站立的任何右棱镜的投影将生成形状类似于其底部的轨迹)。如果盒子包围对象10,则形成其竖直投影点边界的矩形轨迹也应包含对象表面点的所有竖直投影。图4C根据本发明一个实施例以白色描绘了对象10的竖直投影点,以绿色描绘了对象10的实际(地面真实)位置,并且以黑色描绘了图像的其余部分,地平面上的红色矩形包含检测到的对象表面点的所有竖直投影,并且地平面上的黄色虚线矩形包含实际对象表面点的所有竖直投影。
在一些情况下,对象10和地平面14之外的场景中的其它表面(例如,来自杂波12的部分)可以被深度相机系统100看到,这些点可能在包围框的计算中被错误地考虑到。为了降低这些发生的风险,在一些实施例中,处理器计算在地平面上定义的图形的连接分量,其中包含对象表面在内的场景中表面的被测量3D点的竖直投影形成图形的顶点,且两个此类顶点在其距离小于阈值的情况下通过边缘连接。一旦计算出投影点的连接分量,例如,一些实施例在假设感兴趣的对象在图像中占据比其它可见表面更大部分的情况下保持最大的连接分量,从而提供用于从场景中的杂波12分割对象10的替代和/或额外技术(例如,除了在操作310中执行的分割之外)。
因此,可以通过确定包含对象表面点的所有竖直投影的地平面14上的矩形并将矩形竖直延伸到对象顶部来确定对象的包围框。在本发明的一些实施例中,包围框是符合特定应用要求的最小体积包围框或最小边界框,换句话说,是包围对象所有点的最小框,其中“最小”可指框的体积、面积或周长(例如,使面积最小化以减少包装材料的消耗量,对比使体积最小化以减少用于存储或运输对象的空间量)。
根据一个实施例,可通过在操作350中首先确定包围投影到虚拟地平面上的对象10的点的最小面积矩形来计算最小体积边界框。在一些实施例中,使用二维旋转卡尺法来计算线性时间内的最小面积矩形。处理器在操作370中将此框的高度确定为等于对象的任何表面点到虚拟地平面的最大距离。应注意,可以使用标准旋转卡尺法在与包围点数量成线性关系的时间内计算出最小面积矩形。通过查找地平面上的最小周长的包围矩形,也有可能计算(同样在线性时间内)最小表面包围框。因此,本发明实施例的各方面能够计算对象在关于点的数量的线性时间内的三维边界框;相较于上文所描述的比较技术的立方时间,因此也能够实现更快的响应(例如,三维边界框的实时或大体实时计算)。
因此,在操作350中计算包围对象10的框的尺寸,包含其距离最小面积矩形的长度和宽度,并在操作370中计算高度。在操作390中,处理器输出计算出的尺寸,如图所示,例如,如图1B和1C所示的尺寸230以及如图1B和1C所示覆盖在场景的彩色图像视图上的边界框的轮廓220。作为计算出的边界框的尺寸输出的另一示例,图4D是图4A深度图所示场景的彩色图像,其中根据本发明实施例计算的边界框覆盖在瓶子的视图上。
捕获场景中的对象的部分
虽然上文关于图3、4A、4B、4C和4D描述的方法很直接,但其不考虑目标对象信息缺失和部分遮挡的情况。如图4A、4B、4C和4D所示,深度图只能采集关于对象可见部分(例如瓶子前部)的信息,而没有关于对象后部的信息。因此,在生成的场景顶视图上拟合矩形时(见图4B和4C),当将拟合到检测到的对象表面点的红色矩形与拟合到对象实际表面点的较大黄色虚线矩形进行比较时,矩形可能无法实际拟合整个对象,如图4C所示。
虽然如上所述在由单深度(例如RGB-D)相机采集的单个对象的情况下存在此问题,但此问题对于同一场景中同时采集的多个对象的情况也适用,因为也可能存在相互遮挡,而不仅仅是目标对象背面的自遮挡。
本发明实施例的一些方面涉及通过从多个视点采集视觉信息来处理自遮挡问题,然而,这一操作可能会引入系统复杂性(例如,使用多个经过校准的相机)或可能引入过程复杂性(例如,单个深度相机会在不同时间从不同视点采集对象,例如通过扫描或平移深度相机,然后会聚合捕获的视觉信息)。
本发明实施例的一些方面涉及通过使用更高层级的信息外推尚未采集视觉信息的对象部分的几何结构分布来估计对象的尺寸。例如,在估计图4A、4B、4C和4D所示瓶子的尺寸的情况下,可使用机器学习对象分类技术将对象分类为瓶子,并且可以使用所存储的关于瓶子形状典型对称性的启发式规则来外推瓶子的未观察到的部分的形状(例如,通过复制局部形状、反转局部形状,以及基于已知的典型对称线对齐两个点云)。
图5是根据本发明一个实施例的用于计算场景中目标对象的紧密包围边界框尺寸的方法500的流程图。图6是根据本发明一个实施例的分析模块的框图,所述分析模块被配置成执行对场景中捕获的输入视觉信息的分析,并计算场景中目标对象的紧密包围边界框尺寸。在图6所示的实施例中,分析模块600远离扫描系统100,并且可以包含经由总线612连接到存储器610的主机处理器608。另外,网络适配器616可用于与扫描系统100通信。分析模块600可进一步包含用于存储例如数据库和对象元数据的信息且用于存储所执行分析结果日志的持久存储器(例如,闪存)。在本发明的一些实施例中,分析模块由扫描系统100的组件实施,例如扫描系统100的处理器108和存储器110。
如图5所示,在操作510,分析模块接收可以包含由扫描系统100捕获的场景的深度图的输入视觉信息,并检测场景中的一个或多个对象。对一个或多个对象的检测可以包含例如识别深度图中心附近的一个或多个对象(例如,在一些实施例中,扫描系统100可以为用户显示十字光标,以便更清楚地识别哪些目标对象将被标注尺寸)。对对象的检测还可以包含移除或舍弃背景像素(例如,指示距离扫描传感器超过阈值距离的深度或距离的深度图的部分)。另外,与对象所在的地平面相对应的像素也可以与检测到的对象分离。
在操作530,系统分离检测到的对象。在只有一个对象的情况下,分离过程很直接,因为对象已经被分离。类似地,在不存在对象遮挡的情况下,对象的分离也很直接,因为深度图的不同部分可以被视为属于对象的不同部分。在存在遮挡的情况下,可以应用用于分离对象的方法。例如,见图7A,其描绘了包含三个彼此不遮挡的对象的场景。图7B描绘用于图7A所示对象的计算出的紧密包围边界框。
图8A是其中多个对象正在生成或产生相互遮挡的所采集3D场景的示例。图8B是深度图的渲染,其中对象已经与背景分离,并且以像素颜色对扫描装置与对象之间的距离编码(例如,浅绿色表示靠近的像素,紫色表示中间距离的像素,且橙色表示较远的像素)。
如图8A所示,棕色靴子部分地遮挡了黄色靴子。因此,很难确定图8B所示的深度图的哪些部分对应于棕色靴子与黄色靴子。
如图8A和图8B所示,如果对象正在生成自遮挡,则在一些实施例中,应用场景分割技术来分离对象。在本发明的一些实施例中,应用基于视觉分组(例如,聚类)的基于经典外观的分割来执行分割(参见例如Duda,R.O.、Hart,P.E.和Stork,D.G.的(2012年)“图案分类(Pattern classification)”,约翰威立国际出版公司)。在一些实施例中,例如使用完全卷积网络(FCN)的语义分割用于执行分割(参见例如Long,J.、Shelhamer,E.和Darrell,T.的(2015年)“用于语义分割的完全卷积网络(Fully convolutional networks for semanticsegmentation)”,IEEE计算机视觉和图案辨识会议记录(第3431-3440页))。在本发明的一些实施例中,可以应用利用基于窗口的方法的对象检测(参见例如Redmon,J.、Divvala,S.、Girshick,R.和Farhadi,A的(2016年)“只需查看一次:统一、实时的对象检测(You onlylook once:Unified,real-time object detection)”,IEEE计算机视觉和图案辨识会议记录(第779-788页);和Liu,W.、Anguelov,D.、Erhan,D.、Szegedy,C.、Reed,S.、Fu,C.Y.和Berg,A.C的(2016年10月)“SSD:单激发多盒探测器(SSD:Single shot multiboxdetector)”,欧洲计算机视觉会议(第21-37页),斯普林格出版社,Cham)。在其它实施例中,应用例如关键点或轮廓检测和描述之类的经典计算机视觉技术以执行场景中的对象分离(参见例如:Lowe,D.G的(1999年)“从局部尺度不变特征的对象辨识(Object recognitionfrom local scale-invariant features)”,1999年IEEE第7届计算机视觉国际会议记录(第2卷,第1150-1157页),IEEE;Morar,A.、Moldoveanu,F.和
E.的(2012年8月)“基于无边缘活动轮廓的图像分割(Image segmentation based on active contourswithout edges)”,2012年IEEE第8届智能计算机通信与处理国际会议(第213-220页),IEEE;以及Johnson,A.E.和Hebert,M的(1999年)“在杂波3D场景中使用自旋图像进行有效对象辨识(Using spin images for efficient object recognition in cluttered 3Dscenes)”,IEEE图案分析和机器智能学报,(5),第433-449页)。图8C是由经过训练以执行输入图像的语义分割的完全卷积网络(FCN)输出的语义分割图的绘图,其中语义分割图包含一个或多个段,每个段识别与对象中的不同一个相对应的深度图的一部分。因此,语义分割图用于对深度图中与不同对象相对应的部分进行分离。
因此,分离操作530的结果是已被分离的对象的一个或多个局部3D模型(例如,彼此分离并且与场景深度图中的背景和杂波分离)。由于自遮挡(例如,没有对象背面的图像)和相互遮挡(例如,场景中的一个对象阻挡了场景中另一对象的部分的视图),模型是局部的。
在操作550中,分析模块外推每个局部3D模型的完整3D模型。如本文所使用,术语“完整3D模型”包含完全完整的3D模型以及不是完全完整的但比其所基于的局部3D模型更完整的3D模型(本文称为“较完整3D模型”)。“较完整3D模型”可以包含在对应完全完整的3D模型中不存在一个或多个间隙、撕裂和/或孔。由于在操作530中执行的分离操作,每个局部3D模型对应于不同对象。
图9是描述根据本发明一个实施例的用于从对象的局部3D模型外推完整3D模型的方法900的流程图。在一些实施例中,图9所示的方法900作为图5所示的操作550的一部分执行。
对象分类和识别
本发明实施例的一些方面涉及使用更高层级数据,特别是对象的分类和/或识别,以应用启发法或检索关于目标对象的其它存储信息的系统和方法。例如,制造的产品通常在这些产品的所有实例中物理上大体相同。例如,继续上述洗衣剂瓶的示例,与特定库存单位(SKU)相对应的所有此类洗衣剂瓶的尺寸大体相同。因此,如果可以将目标对象识别为特定已知SKU的实例,则可以将目标对象的尺寸外推为与SKU的其它实例相同。作为另一实例,铝饮料罐的标准尺寸很少,其中12盎司的种类最为普遍。因此,如果基于局部信息将目标对象识别为饮料罐,则可将所述对象外推为具有符合完整饮料罐的已知大小的特定形状和尺寸。
参考图9,在操作910中,分析模块尝试基于局部3D模型识别目标对象。如上所述,由扫描系统100捕获的局部3D模型包含关于扫描的目标对象10的颜色和几何结构信息。因此,在本发明的一些实施例中,分析模块包含条目数据库,数据库中的每个条目对应于特定的已知对象(例如,在数据库中注册的对象),其中每个条目可以包含编码为彩色图像和/或3D模型组合的所述条目的视觉信息,以及关于对象的元数据。
查询例如图像数据库等视觉信息数据库的问题是众所周知的。此问题通常采用两种不同的形式:图像分类(即,对图像分配一个或多个类别的问题);以及图像检索(即,识别数据库中关于查询图像的最相似图像条目的问题)。一个常见的图像数据库是ImageNet(参见例如Deng,J.、Dong,W.、Socher,R.、Li,L.J.、Li,K.和Fei-Fei,L.的(2009年6月)“ImageNet:大型分层图像数据库(Imagenet:A large-scale hierarchical imagedatabase)”,IEEE计算机视觉和图案辨识会议,2009年,CVPR 2009(第248-255页)IEEE),其包含数百万张图像和数千个不同的类别。执行这些图像分类和图像识别任务的一些方法包含卷积神经网络(CNN)技术(参见例如:Daras,P.和Axenopoulos,A.的(2010年)“支持多模式查询的3D形状检索框架(A3-D shape retrieval framework supporting multimodalqueries)”,国际计算机视觉期刊,89(2-3),第229-247页;Vranic,D.V.、Saupe,D.,和Richter,J.的(2001年)“3D对象检索工具:Karhunen-Loeve变换和球谐函数(Tools for 3-D-object retrieval:Karhunen-Loeve transform and spherical harmonics)”,2001年第四次IEEE多媒体信号处理研讨会(第293-298页),IEEE;以及Gao,Y.和Dai,Q.的(2014年)“基于视图的3D对象检索:挑战和方法(View-based 3-D object retrieval:challengesand approaches)”,IEEE多媒体,3(21),第52-57页)。
如本文所使用,卷积神经网络(CNN)可被视为这样的系统:在给定输入图像的情况下,其执行一组操作,例如2D卷积、非线性映射、最大池化聚合和连接,以计算值向量(通常称为特征向量或特征图),所述值向量然后由分类器(例如,SoftMax分类器)使用以获得输入图像的一个或多个类别元数据的估计。
卷积神经网络(CNN)能够提供非常精确的类别标签估计(估计正确率>90%),并已成为解决此类问题的标准技术。CNN系统的每个组件(或“层”)的特征在于需要在所谓的训练阶段估计的相关联参数集(或“权重”)。具体地,在训练阶段,向CNN提供具有相关联类别标签的大的训练图像集,并且调整每一层的参数或权重以便最大化对于此训练图像集的类别预测的准确性。这是非常昂贵的操作(通常需要在非常强大的图形处理单元或GPU上进行数小时的计算),因为用于训练的图像集通常在100万左右或更多,并且CNN中的参数的数量在100,000左右或更多。
出于图像检索目的,可将特征向量或特征图视为用于查找数据库中的特定项的“描述符”。具体地,查询图像的所估计特征向量是大维度(例如4,096个值)的值向量(通常编码为浮点或定点数值)。此特征向量可以被视为输入图像的“签名”或“描述符”,并且其具有同一类别中的对象的特征向量是特征向量空间(或“特征空间”)中接近的点的特性。因此,这些特征向量可用于检索目的:相对于例如L1或L2度量的标准度量,如果数据库中的条目的特征向量接近特征向量空间中查询图像的描述符,则数据库中的条目与查询图像相似。
鉴于特征向量空间的大维度,可以应用一些可选技术来例如基于主成分分析(PCA)或线性判别分析(LDA)执行一些降维。
在本发明的一些实施例中,局部3D模型用作输入查询而不是2D图像。使用带有3D模型的CNN作为输入的技术的开发不及对2D图像使用CNN。一个问题是以与CNN架构兼容的方式对3D模型的信息进行编码。
将CNN应用于3D模型的一种方法是对输入3D模型进行体素化。图10A是示出根据本发明一个实施例的用于在媒体文档是3D模型的情况下通过对3D模型进行体素化来计算特征向量的方法1000的流程图,且图10B直观地描绘使用体素化将CNN应用于3D模型的情况。参考图10A和10B,在操作1010中,处理器例如通过将旋转卡尺算法应用于3D模型来定义3D模型周围的边界框1012。2017年8月11日发布的第10,296,603号美国专利“自动生成媒体文档元数据的系统和方法(SYSTEMS AND METHODS FOR AUTOMATICALLY GENERATINGMETADATA FOR MEDIA DOCUMENTS)”中更详细地描述了将CNN应用于3D模型的系统和方法,所述专利的全部公开内容以引用的方式并入本文中。
在操作1030中,处理器对模型进行体素化以生成表示3D模型的一组体素。在一个实施例中,在体素化处理中,处理器将边界框划分为称为体素的子单元。例如,边界框可以是在一侧上具有256个体素的立方体,总共2563=16,777,216个体素,但是本发明的实施例并不限于此,并且可以大体更大。每个体素可与表示3D模型的某一部分是否含于体素内的值相关联(例如,在二进制值的体素化中),或在另一情况下,每个体素可与表示由3D模型占据的体素的分率或百分比的值(例如,8位值)相关联(例如,整数值的或浮点体素化)。图10B描绘了体素化3D模型1032。
根据本发明的一个实施例,操作1030进一步包含对特征进行估计或执行主成分分析以在执行体素化之前识别“优选视图”。在体素化前识别模型的一致优选视图增加了从相同透视图(例如,沿大体相同坐标空间定义体素)对大体类似对象(或相同对象)的两个不同3D模型进行体素化的可能性,从而提供旋转不变性(例如,系统识别已旋转对象模型的能力)。
在操作1050中,处理器根据操作1030中生成的体素生成特征向量。根据本发明的一个实施例,通过将体素提供给经过训练的卷积神经网络1052来计算特征向量1054。因为体素表示可以被视为3D张量,所以体素可以直接作为输入提供给CNN,其中CNN基于体素化3D模型进行训练。图10B所示的虚线立方体表示卷积操作。如图10B所示,还可以将特征向量1054提供给分类器以生成体素化3D模型1012的分类1056。在使用CNN获得描述符的实施例中,特征向量1054用作输入的局部3D模型的描述符。
对关于3D模型的几何结构和纹理信息进行编码的另一系列技术包括从多个方向进行渲染。
图11是根据本发明一个实施例的从查询对象的3D模型计算查询对象的描述符的方法的流程图。图12是根据本发明一个实施例的基于卷积神经网络的分类系统的框图。
在本发明的一些实施例中,通过计算对象的3D模型的描述符来执行对象识别,其中描述符是具有固定长度(例如,具有16或4,096的维度)的多维向量。用于计算3D模型描述符的技术基于多视图卷积神经网络(MV-CNN)或体积卷积神经网络(V-CNN)的正向评估。此类网络通常针对对象分类进行训练,并且在一些实施例中,网络倒数第二层的输出被用作描述符,如图13所示(下面更详细地描述)。
具体地,在图13所示的实施例中,描述符或特征向量是根据3D模型10的2D视图16计算得出,如操作1112中视图生成模块所呈现的。在操作1114中,将合成的2D视图提供给描述符生成器,以提取每个视图的描述符或特征向量。在操作1116中,组合每个视图的特征向量(例如,使用最大池化,其中计算“池化”特征向量,其中池化特征向量的每个位置是针对每个2D视图计算的输入特征向量的对应位置处的值中的最大值,如下文更详细地描述)以生成3D模型的描述符并基于所述描述符对对象进行分类。此特征向量可包含对象形状的突出和特征性方面,且用于后续分类或检索步骤。生成的描述符可以在操作1118中输出。
通常,将形状s分类为给定类别(也称为种类或标签)集C中的一个的任务与从数据库中检索与给定形状最相似(在特定度量下)的形状的任务不同。为方便起见,本文中将形状检索视为分类的特殊情况,其中数据库中的每个形状本身代表一个类别,并且形状s用数据库中最相似形状的标签进行分类。在图案辨识文献中,这种方法有时被称为最近相邻项分类。
文献中已知几种从基于视图的形状表示中进行检索和分类的技术。关于此类相关技术的调查参见例如Gao,Y.和Dai,Q.的(2014年)“基于视图的3D对象检索:挑战和方法(View-based 3-D object retrieval:challenges and approaches)”,IEEE多媒体,3(21),第52-57页。例如,一种方法(Furuya,T.和Ohbuchi,R.的(2009年7月)“使用视觉特征包进行3D模型检索的密集采样和快速编码(Dense sampling and fast encoding for 3-Dmodel retrieval using bag-of-visual features)”,ACM图像和视频检索国际会议记录(第26页),ACM中描述)将图像中对象辨识的经典方法“文字袋”的概念扩展到多视图对象辨识的情况。作为另一示例,卷积神经网络(CNN)可用于多视图对象分类(参见例如Su,H.、Maji,S.、Kalogerakis,E.和Learned-Miller,E的(2015年)“用于3D形状辨识的多视图卷积神经网络(Multi-view convolutional neural networks for 3-D shaperecognition)”,IEEE计算机视觉国际会议记录(第945-953页))。
根据本发明的一些实施例,卷积神经网络(CNN)用于处理合成的2D视图以生成对象的分类。图12是根据本发明的一个实施例的被实施为深度卷积神经网络(CNN)的描述符生成器的示意图。描述符生成器可以通过存储在分析模块600的存储器中的相应指令实施为分析模块600的组件。通常,深度CNN通过使输入图像数据(例如,合成的2D视图)通过层的级联来处理图像。这些层可以分组为多个级。图12中所示的深度卷积神经网络包含两个级,第一级CNN1由N层(或子过程)组成,且第二级CNN2由M层组成。在一个实施例中,第一级CNN1的N个层中的每一层包含一组线性卷积层,随后是点非线性层和非线性数据简化层。相比之下,第二级CNN2的M层中的每一层是完全连接层。第二级的输出p是类别分配概率分布。例如,如果训练整个CNN以将输入图像分配给k个不同类别中的一个,则第二级CNN2的输出是包含k个不同值的向量p,每个值表示输入图像应被分配对应类别的概率(或“置信度”)。
如上所述,本发明的实施例可以在合适的通用计算平台上实施,例如通用计算机处理器和专用计算机处理器。(分析模块可以包含此类合适的计算平台。)例如,图形处理单元(GPU)和其它向量处理器(例如,通用处理器的单指令多数据或SIMD指令集)通常非常适合执行神经网络的训练和操作。
在一些实施例中,基于训练数据训练神经网络,训练数据可以包含对象的一组3D模型及其对应标签(例如,对象的正确分类)。此训练数据的一部分可保留为交叉验证数据,以在训练过程中进一步调整参数,并且此训练数据的一部分也可保留为测试数据,以确认网络已恰当地经过训练。
神经网络的参数(例如,层间连接的权重)可用于使用标准过程来训练神经网络,例如反向传播和梯度下降(参见例如LeCun,Y.和Bengio,Y.的(1995年)“图像、语音和时间序列的卷积网络(Convolutional networks for images,speech,and time series)”,大脑理论和神经网络手册,3361(10),1995年)。另外,可以使用来自预先训练的通用图像分类神经网络的参数来初始化训练过程(参见例如Chatfield,K.、Simonyan,K.、Vedaldi,A.和Zisserman,A.的(2014年)“细节致胜:深入研究卷积网络(Return of the devil in thedetails:Delving deep into convolutional nets)”,arXiv预印本,arXiv:1405.3531)。
如图12所示,由第一级CNN1(卷积级)计算出并提供给第二级CNN2(完全连接级)的值在本文中称为描述符(或特征向量)f。特征向量或描述符可以是具有固定大小(例如,4,096个条目)的数据向量,其浓缩或总结输入图像的主要特性。因此,第一级CNN1可被称为特征提取级或特征提取器。
上文关于图12描述的分类器的架构可应用于基于对象的n个不同2D视图对3D对象的多视图形状表示进行分类。例如,第一级CNN1可独立地应用于用于表示3D形状的n个2D视图中的每一个,从而计算n个特征向量的集(2D视图中的每一个有一个特征向量)。在例如Su,H.、Maji,S.、Kalogerakis,E.和Learned-Miller,E的(2015年)“用于3D形状辨识的多视图卷积神经网络(Multi-view convolutional neural networks for 3-D shaperecognition)”,IEEE计算机视觉国际会议记录(第945-953页)中更详细地描述了此技术的各方面。在一些实施例中,使用例如最大池化(参见例如Boureau,Y.L.、Ponce,J.和LeCun,Y的(2010年)”视觉辨识中的特征池化理论分析(A theoretical analysis of featurepooling in visual recognition)”,第27界机器学习国际会议记录(ICML-10)(第111-118页))组合n个单独的特征向量。
图13和14是根据本发明一个实施例的最大池化的图示。如图13所示,将n个视图中的每个视图提供给描述符生成器的第一级CNN1以生成n个特征向量。在最大池化中,组合n个特征向量f以生成单个组合特征向量或描述符F,其中描述符F的第j个条目等于n个特征向量f中的第j个条目中的最大值。所得描述符F具有与n个特征向量f相同的长度(或秩),因此描述符F也可以作为输入提供给第二级CNN2以计算对象的分类。
在本发明的一些实施例中,选择虚拟相机的特定姿势,例如,选择要渲染的特定2D视图,导致描述符F具有大体旋转不变的特性。例如,考虑所有虚拟相机位于球体上的配置(例如,所有虚拟相机布置在与3D模型中心或地平面上的特定点p具有相同距离的姿势处,并且所有虚拟相机具有在3D模型的中心处或在地平面上的特定点p处相交的光轴)。具有类似特性的布置的另一个示例包含位于3D模型地平面上方相同高程、朝向3D模型(例如,具有与3D模型中心相交的光轴)且与3D模型具有相同距离的所有虚拟相机,在这种情况下,对象围绕延伸穿过3D模型中心的竖轴(例如,垂直于地平面)的任何旋转将产生基本相同的矢量或描述符F(假设相机放置在间距小的位置处)。
本发明的其它额外实施例使用3D模型的点云表示作为CNN的输入。参见例如Qi,C.R.、Su,H.、Mo,K.和Guibas,L.J的(2017年)“Pointnet:有关3D分类和分割的点集深入学习(Pointnet:Deep learning on point sets for 3d classification andsegmentation)”,IEEE计算机视觉和图案辨识会议记录(CVPR),1(2),4。
因此,在操作910处,分析模块尝试通过提取模型描述符(例如,使用上文描述的体素化和/或多视图技术)然后在数据库(或“库存”)中搜索所提取描述符的阈值距离内的数据库条目来从局部3D模型中识别对象。如果找到此类匹配条目,则认为识别过程成功。根据本发明的一些实施例,数据库的条目包含对象的相关联完整3D模型(例如,从所有角度捕获的对象模型)。因此,存储的对象的完整3D模型随后可在操作920处从数据库加载,并作为与作为输入提供的局部3D模型相对应的完整3D模型返回。在本发明的一些实施例中,可以将与每个条目相关联的对象的最小边界框的尺寸作为元数据的一部分存储在数据库中,而不是加载3D模型,因此可以直接从数据库加载尺寸。在本发明的一些实施例中,分析模块进一步将加载的完整模型与为查询而采集的视觉信息对齐,以获得关于视觉采集系统的查询的完整几何结构的估计。
操作910和920的识别方法通常在某些情况下最为成功,例如其中扫描的对象定义明确(例如,可能遇到的所有对象都在库存中)的生产线。因此,在本发明的一些实施例中,识别对象并从库存加载对应信息就足够了。
然而,在定义不明确的情况下,完全基于识别的方法可能不是有效的,例如,当许多扫描对象不在库存中且存在大量多样性的对象时,例如在物流领域(例如,包裹交付、装运和供应链管理),因为库存中没有可匹配的完整模型或尺寸,或者因为库存中匹配最接近的项给出了错误的结果(例如,错误的尺寸)。
如果操作910处的识别过程失败(例如,没有条目的描述符在从输入的局部3D模型提取的描述符的阈值距离内),则分析模块在操作930处尝试对局部3D模型进行分类。如上所述,可以通过将描述符提供给分类器层以计算类别标签来执行分类。然后,可以假设输入的局部3D模型对应于类别标签中的最高置信类别的实例。如果在操作930中分类成功,则在操作940中检索对应于匹配类别的启发式规则。然后在操作950中使用启发式规则来计算完整3D模型。
特定启发式规则对于各种不同类别的对象是特定的。例如,如上文所讨论,如果局部3D模型被分类为瓶子,则系统可假设完整3D模型具有一个或多个对称轴,根据其中一个对称轴对齐局部3D模型,然后基于所选对称轴复制局部3D模型(例如,应用旋转、平移和反射等适当的刚性变换)生成外推的完整3D模型。作为另一示例,启发法可以包含所述类别的对象的规范一般形状,然后根据局部3D模型的尺寸调整规范形状。例如,虽然可重复使用的咖啡过滤器在外观上可能不同,但大多数可重复使用的咖啡过滤器具有相同的一般形状,因此,以规范形状调整局部3D模型的大小将外推近似精确大小的模型,从而计算对象的最小(或紧密)包围边界框。
在本发明的一些实施例中,将局部3D模型提供给生成模型,所述生成模型被配置成根据局部3D模型外推完整3D模型。生成模型的一个示例(参见例如Goodfellow,I.、Bengio,Y.、Courville,A.和Bengio,Y.的(2016年)“深度学习(Deep learning)”(第1卷),剑桥:麻省理工学院出版社)是条件生成对抗网络(或条件GAN,参见例如Goodfellow,I.、Pouget-Abadie,J.、Mirza,M.、Xu,B.、Warde-Farley,D.、Ozair,S.、...和Bengio,Y的(2014年)“生成对抗网络(Generative adversarial nets)”,神经信息处理系统的进展(第2672-2680页)),其中将局部3D模型作为“条件”输入到条件GAN。更详细地,可以训练生成模型以基于所提供的已知对象的一部分视图生成所述对象的完整3D模型。以下文件中描述了实施生成模型的技术的示例:例如,Wu,Z.、Song,S.、Khosla,A.、Yu,F.、Zhang,L.、Tang,X.和Xiao,J.的(2015年)“3d shapenets:体积形状的深度表示(3d shapenets:A deeprepresentation for volumetric shapes)”,IEEE计算机视觉和图案辨识会议记录(第1912-1920页);以及Yang,B.、Rosa,S.、Markham,A.、Trigoni,N.和Wen,H.的(2018年)“从单个深度视图进行密集3D对象重建(Dense 3D Object Reconstruction from a SingleDepth View)”,IEEE图案分析和机器智能学报。
在本发明的一些实施例中,如果在操作930中局部3D模型的分类失败,则将局部3D模型提供给生成模型。在一些实施例中,省略分类,并将局部模型直接提供给生成模型以外推完整3D模型。
在本发明的一些实施例中,将计算出的最小包围边界框作为新条目存储在所提取描述符的库存中。在一些实施例中,仅当满足计算出的最小包围边界框中的阈值置信水平时,分析模块才将条目添加到库存。
因此,根据图9的流程图900所示技术的方法提供了根据局部3D模型外推完整3D模型的机制。
返回参考图5,在操作570处,计算或检索每个外推的完整3D模型的紧密包围边界框。如上所述,在本发明的一些实施例中,例如从库存中识别匹配对象的情况,可以省略计算紧密包围边界框的单独操作,因为紧密包围边界框的尺寸可能已经是已知的并存储在库存中。在操作590处,随后可以输出这些紧密包围边界框(以及其尺寸)以在用户界面(例如,显示装置122)上显示。
因此,本发明实施例的方面提供了基于待标注尺寸的对象的局部视觉信息进行对象尺寸标注的系统和方法。另外,本发明实施例的各方面允许通过应用技术以分离对象并单独计算每个对象的尺寸来将尺寸标注应用于同一帧中的多个对象,即使在对象的部分的视图受到自遮挡或相互遮挡的情况下也是如此。
虽然已经结合某些示例性实施例描述了本发明,但是应理解,本发明不限于所公开的实施例,而相反地,本发明希望涵盖包含于所附权利要求的精神和范围内的各种修改和等效布置以及其等效内容。