用于以点云数据集合对对象进行分类的方法和***
相关申请的交叉引用
根据35 U.S.C.§119(e),本申请要求2016年11月29日提交的临时申请62/427,573的权益,其全部内容通过引用并入本文,如同完整地在本文陈述一般。
政府利益声明
本发明根据海军部准予的合同N00014-16-C-1026、在政府的支持下完成。政府对本发明享有某些权利。
背景技术
通常由助记符LIDAR述及的用于光检测和测距的光学距离检测用于从测高到成像再到碰撞避免的各种应用。与传统微波测距***诸如无线电波检测和测距(RADAR)相比,LIDAR以较小波束大小提供较精细的标度距离分辨率。光学距离检测可以通过几种不同的技术来完成,包括基于光学脉冲到目标的往返行进时间的直接测距,基于传输的啁啾光学信号和从目标散射的返回信号之间的频率差的啁啾检测,以及基于可与自然信号区分开来的一系列单频相位变化的相位编码检测。
为了实现可接受的距离准确度和检测灵敏度,直接长距离(long range,远程)LIDAR***使用脉冲重复率低且脉冲峰功率极高的短脉冲激光器。高脉冲功率可能引起光学部件快速退化。啁啾LIDAR***使用峰光学功率相对低的长光学脉冲。在该配置下,距离准确度取决于啁啾带宽而不是脉冲持续时间,因此仍然可以获得优异的距离准确度。
已经通过使用宽带射频(RF)电信号调制光学载波来实现有用的光学啁啾带宽。啁啾LIDAR的最新进展包括使用相同的经调制的光学载波作为参考信号,该参考信号与返回信号在光学检测器处组合以在结果电信号中产生与参考信号和返回光学信号之间的频率差成比例的相对低的拍频。检测器处的这种频率差的拍频检测称为外差检测。它具有本领域已知的若干优点,诸如使用现成且廉价可用的RF部件的优点。美国专利号7,742,152中描述的最近成果示出了一种新颖的较简单的光学部件布置,该布置使用从传输的光学信号分离的光学信号作为参考光学信号。该布置在该专利中称为零差检测。
也使用相位编码微波信号调制到光载波上的LIDAR检测。该技术依赖于将返回信号中的特定频率的一系列相位(或相位变化)与传输信号中的相关联。与相关峰值相关联的时延以介质中的光速度与距离相关。该技术的优点包括需要较少的部件,以及使用批量生产的针对相位编码微波和光通信开发的硬件部件。
这些LIDAR***返回的数据通常表示为点云。点云是某一坐标系中的一组数据点。在三维坐标系中,这些点通常由X、Y和Z坐标限定,通常意在表示对象的外表面。3D点云可以由3D扫描仪生成,诸如包括啁啾LIDAR和相位编码LIDAR的LIDAR***以及其他类型的扫描仪。
发明内容
本发明人意识到在一些情况和应用中对3D点云表示的对象进行自动分类在实时上是具有挑战性的,尤其是对于位于远距离处的对象。提供了用于这种自动对象分类的技术。
在第一组实施方式中,在处理器上实施的方法包括得到表示对象的外表面的3D点云。方法还包括:在3D点云上的一点处提取表面法线,以在该点处限定平移和旋转的不变坐标系,并且在坐标系中提取一个或多个特征变量的值,以限定3D点云中的一个或多个点。方法还包括:基于该一个或多个特征变量的值对3D点云中的该一个或多个点计算第一分类统计,以及基于该一个或多个特征变量的值对3D点云中该一个或多个点计算第二分类统计。方法还包括确定第一分类统计与和第一分类器的N个类别的集合对应的N个第一分类统计的集合中的第一分类统计之间的最接近匹配,以估计对象属于第一类别。方法还包括确定第二分类统计与和第二分类器的N个类别的集合对应的第二分类统计的集合中的第二分类统计之间的最接近匹配,以估计对象属于第二类别。如果第一类别与第二类别不对应,则基于3D点云与第三分类器的用于仅第一类别和第二类别的模型点云之间的最接近符合对3D点云中的该一个或多个点计算第三分类统计。基于从接收到3D点云起近乎实时的第三分类器的最接近符合,将对象分配给第一类别或第二类别。方法还包括基于对象被分配的一个类别操作装置。
在第一组的一些实施方式中,第一分类统计是旋转图像,第二分类统计是协方差矩阵,以及第三分类统计是迭代最近点(ICP)。
在第二组实施方式中,设备包括被配置成提供光学信号的激光源。设备包括被配置成接收信号并产生传输信号和参考信号的分离器。设备还包括被配置成将传输信号引导到设备外部并接收从被传输信号照射的任何对象反向散射的任何返回信号的光学耦合器。设备还包括设置成接收参考信号和返回信号的光学检测器。另外,设备还包括被配置成执行从光学检测器接收电信号的步骤的处理器。处理器还被配置成执行上述方法的一个或多个步骤。
在其他实施方式中,***或设备或计算机可读介质被配置成执行上述方法的一个或多个步骤。
根据下面的具体实施方式,仅示出多个特定实施方式和实现方式,很容易就可以明白其他方面、特征和优点,其中包括用于实践本发明所设想的最佳模式。其他实施方式也具有其他不同的特征和优点,在各显著方面将对其若干细节进行修改,但均未脱离本发明的精神和范围。相应地,附图和说明书本质上应视为说明性的而非限制性的。
附图说明
在附图的图中通过示例而非限制的方式示出实施方式,附图中相同的附图标记指涉类似的元件,附图中:
图1A是示出了根据实施方式的示例光学啁啾距离测量的一组图;
图1B是示出了根据实施方式的指示距离的、由去啁啾得到的拍频的示例测量的图;
图2是示出了根据实施方式的高分辨率LIDAR***的示例部件的框图;
图3A是示出了根据实施方式的外差啁啾LIDAR***的示例部件的框图;
图3B是示出了根据实施方式的零差啁啾LIDAR***的示例部件的框图;
图4示出了根据实施方式的对象的3D点云的示例;
图5A是示出了根据实施方式的用于点集的k-d树组成的示例的图;
图5B示出了根据实施方式的基于图5A的k-d树组成的k-d树的示例;
图6A示出了根据实施方式的对象的3D点云的示例;
图6B示出了根据实施方式的图6A的3D点云的区段;
图6C是示出了根据实施方式的用以在旋转和平移的不变坐标系内限定3D点云中的点的特征变量的示例的框图;
图6D是示出了根据实施方式的3D点云的点的数量与图6C的一系列特征变量的直方图的示例的旋转图像;
图6E是示出了根据实施方式的与相应多个类别相关联的多个集群和集群中心的示例的图;
图7是示出了根据实施方式的用于对3D点云限定的对象进行分类的示例方法的流程图;
图8A是示出了根据实施方式的图2的***的实验设置的顶视立体图的示例的图片;
图8B是示出了根据实施方式的用于图8A描绘的实验设置的对象的示例的框图;
图9A是根据实施方式的用于一组对象的一组点云;
图9B是示出了根据实施方式的用于获得图9A的该组点云的该组对象的示例的框图;
图10A是示出了根据实施方式的基于图4中的对象的3D点云的对象的遮挡模型的示例的框图;
图10B是示出了根据实施方式的对象的2D点云的示例的框图;
图10C至图10E是示出了根据实施方式的图10B的2D点云与图10A的每个遮挡模型之间的最佳符合的示例的框图;
图11是示出了可以在其上实施本发明的实施方式的计算机***的框图;以及
图12示出了在其上可以实施本发明的实施方式的芯片组。
具体实施方式
描述了用于以3D点云对对象进行分类的方法、设备、***和计算机可读介质。在下面的描述中,出于解释的目的,给出了许多具体细节,以对本发明有透彻的理解。然而,本领域技术人员将明白无需这些具体细节也可以实践本发明。在其他情况下,以框图形式示出熟知的结构和装置,以避免不必要地使本发明模糊不清。
虽然给出宽范围的数值范围和参数是近似值,但具体的非限制性实施例中给出的数值是尽可能精确的。然而,任何数值本身都包含一定误差,误差必定是因为在撰写本发明时在进行其相应测试测量时的标准偏差造成的。此外,除非上下文另外清楚说明,否则本文所给出的数值的意指精确度为最低有效数位。因此,1.1意指1.05至1.15的值。术语“约”用于表明以给定值为中心的较宽范围,除非上下文另外清楚说明,否则其默认最低有效数位左右的较宽范围,诸如“约1.1”意指1.0至1.2的范围。如果最低有效数位不明,则术语“约”意指因数2,如,“约X”意指从0.5X至2X的范围内的值,例如,约100意指从50至200的范围内的值。此外,本文公开的所有范围均应理解为涵盖其中包括的任何和所有子范围。例如,“小于10”的范围可以包括最小值为零至最大值为10之间(包含本数)的任何和所有子范围,即,最小值等于或大于零以及最大值等于或小于10的任何和所有子范围,如1至4。
下文中,本发明的一些实施方式在以由具有线性频率调制的光学信号的LIDAR***生成的3D点云对对象进行分类的背景下被描述。然而,这种3D点云不一定由以线性啁啾为特征的LIDAR***生成,而是可以由以幅度、频率或相位或某种组合调制传输信号的LIDAR***生成。在下述背景下描述实施方式,所述背景为:对由包括单个检测器或成对检测器上的单光束及其返回的***生成的3D点云内的对象进行分类,然后可以使用任何已知的扫描装置对其进行扫描,诸如线性步进或转动光学部件或者利用发射器和检测器或成对检测器的阵列。其他实施方式涉及对不是由任何特定***生成而是由与所示实施方式不同的***生成的3D点云中的对象进行分类。在其他实施方式中,可以用其他传感器生成3D点云,包括任何类型的3D扫描LIDAR***(如,)或任何“闪光”LIDAR***,诸如采用LIDAR或Geiger模式雪崩光电二极管(APD)阵列进行深度成像的***。这些***具有足够的向下距离和横向距离分辨率,用以收集合理数据来生成3D点云,以用于本文讨论的实施方式。
1.啁啾检测概述
图1A是示出了根据实施方式的示例光学啁啾距离测量的一组图110、120、130、140。横轴112对于所有四个图均是相同的,并且表示以类似毫秒(ms,1ms=10-3秒)的任意单位计的时间。图110表示用作传输光学信号的光束的功率。图110中的竖轴114表示以任意单位计的传输信号的功率。迹线116表示功率在有限的脉冲持续时间内是存在的,τ从时间0开始。图120表示传输信号的频率。竖轴124表示以任意单位计的传输频率。迹线126表示脉冲的频率在脉冲的持续时间τ内从f1增加到f2,因此具有带宽B=f2-f1。频率变化率为(f2-f1)/τ。
在图130描绘了返回信号,如同在图120中,该图具有表示时间的横轴112和表示频率的竖轴124。图120的啁啾126也在图130上绘制为虚线。第一返回信号由迹线136a给出,第一返回信号仅是强度减弱(未示出)并延迟Δt的传输参考信号。当在经过距离2R后从外部对象接收到返回信号时,其中R是到目标的距离,以延迟时间Δt开始的返回信号由2R/c给出,其中c是光在介质中的速度(大约每秒3x108米,m/s)。在这段时间内,频率所改变的量取决于距离,称为fR,并由频率变化率乘以延迟时间给出。这由公式1a给出。
fR=(f2-f1)/τ*2R/c=2BR/cτ (1a)
fR的值在称为去啁啾的时域混合操作中通过传输信号126和返回信号136a之间的频率差来测量。所以距离R由公式1b给出。
R=fRcτ/2B (1b)
当然,如果返回信号在完全传输脉冲之后到达,即,如果2R/c大于τ,则等式1a和1b无效。在这种情况下,参考信号被延迟已知或固定的量以确保返回信号与参考信号重叠。将参考信号的固定或已知延迟时间乘以光的速度c,给出附加距离,该附加距离被加到根据等式1b计算出的距离。虽然绝对距离可能由于光在介质中的速度的不确定性而有偏差,但这是几乎恒定的误差,并且基于频率差的相对距离仍然非常精确。
在一些情形下,由传输光束照射出的光点在不同的距离处遇到两个或更多个不同的散射体,诸如半透明对象的前面和后面,或者对象的处于距LIDAR不同距离处的更近和更远的部分,或被照射的光点内的两个单独的对象。在这样的情形下,还将接收第二强度减弱且延迟不同的信号,在图130上由迹线136b表示。这将具有不同的fR测量值,其使用公式1b给出不同的距离。在一些情形下,接收到多个返回信号。在一些情形下,传输光束遇到对象的多个部分,从对象的多个部分接收的多个返回信号用于确定到对象的多个部分中每个部分的相应距离。在这些情形下,到对象的多个部分中每个部分的相应距离用于生成对象的点云。本发明的一些实施方式用于根据所生成的点云对对象进行分类。
图140描绘了第一返回信号136a和参考啁啾126之间的差频率fR。如图1A中的所有其他对准的图,横轴112表示时间,并且竖轴134表示在更扩大的标度上的频率差。迹线146描绘了在传输啁啾期间测量的恒定频率fR,其表示由等式1b给出的特定距离。第二返回信号136b,如果存在的话,将在去啁啾期间产生不同的、较大的fR值(未示出);因此,使用公式1b得到较大的距离。
用于去啁啾的常用方法是将参考光学信号和返回的光学信号都引导到相同光学检测器。检测器的电输出由拍频主导,该拍频等于或以其他方式取决于会聚在检测器上的两个信号的频率及相位差。该电输出信号的傅里叶变换将在拍频处产生峰。该拍频在兆赫(MHz,1MHz=106赫兹=每秒106个周期)的射频(RF)范围内,而不是在太赫兹(THz,1THz=1012赫兹)的光学频率范围内。这样的信号易于由普通且廉价的RF部件处理,诸如在微处理器上运行的快速傅里叶变换(FFT)算法或专门构建的FFT或其他数字信号处理(DSP)集成电路。在其他实施方式中,返回信号与充当本地振荡器的连续波(CW)音(对比啁啾用作本地振荡器)混合。这得到本身是啁啾的被检测信号(或者任何波形被传输)。在这种情况下,被检测信号将在数字域中经历匹配滤波,如Kachelmyer 1990中所述。缺点是数字化器带宽要求通常较高。在其他方面保留了相干检测的积极方面。
图1B是示出了根据实施方式的指示距离的、由去啁啾产生的拍频的示例测量的图。横轴152表示以兆赫计的频率;并且竖轴表示相对于传输功率密度IT的返回信号功率密度IR,单位为分贝(dB,以dB计的功率=20log(IR/IT))。迹线156是光学检测器输出的电信号的傅立叶变换,诸如由FFT电路产生并且基于Adany等人2009年公布的数据。峰的水平位置给出利用公式1b指示距离的fR。另外,峰的其他特性可以用于描述返回信号。例如,峰处的功率值由迹线156的最大值表征,或者更通常地,由峰值(图1B中约为-31dB)和在峰的肩部处的本底噪声(图1B中约为-50dB)之间的差157(图1B中约为19dB)表征;并且,峰的宽度由半最大值(FWHM)处的频率宽度158(图1B中约0.08MHz)表征。如果存在多个可辨别的返回,则光学检测器的电输出的FFT中将存在多个峰,可能具有多个不同的功率水平和宽度。可以使用任何方法自动识别迹线中的峰,并通过位置、高度和宽度表征这些峰。例如,在一些实施方式中,使用了通过MATLAB——信号处理工具箱——进行的FFTW或峰检测,MATLAB可从马萨诸塞Natick的MATHWORKSTM的MATLABTM获得。还可以使用依赖于CUDA中的FFTW和可从加利福尼亚州圣克拉拉市的NVIDIATM获得的CUDATM中的定制峰检测的定制实现。已经在现场可编程门阵列(FPGA)上编程了定制实现。常用的算法是对距离简档进行阈值处理并运行质心算法、峰拟合算法(3点高斯拟合)或一些函数(如高斯函数)的峰的非线性拟合来更准确确定峰的位置。移动的对象可能引入多普勒频移,其会对计算得出的距离引起偏移。在一些实施方式中,使用多普勒补偿。可以使用任何已知的多普勒补偿方法和硬件。
在插算ti后,移动式LIDAR***使用不同脉冲以不同角度或者在不同平移位置进行新的单独测量,使得由等式1/(τ+ti)得出脉冲率(PR)。帧为距离的2维图像,其中,图像的每个像素指示到通过传输光束观察到的对象的不同部分的距离。对于来自传输信号的、每个均以1000个水平竖向角度乘1000个竖向角度进行汇集的帧,帧包括106个像素,帧率(FR)为脉冲率的10-6,如,为10-6/(τ+ti)。
2.距离检测硬件概述
为了描绘距离检测方法是如何实施的,描述了一些通用和专用硬件方法。图2是示出了根据实施方式的高分辨率LIDAR***的示例部件的框图。激光源212发出载波201,载波的振幅或频率或相位或一些组合在调制器214中经过调制,以产生带宽为B且持续时间为τ的脉冲。分离器216将啁啾分离为具有光束203的大部分能量的传输光束205以及能量小得多但足以与从目标(未示出)散射的返回光291产生良好的外差干扰或零差干扰的参考光束207。在一些实施方式中,在多个角度对传输光束进行扫描,以对在其路径中的任何对象建立简档(profile,描绘轮廓)。参考光束在参考路径220中充分延迟,以与散射光一起到达检测器阵列230。在一些实施方式中,分离器216在调制器214上游,参考光束207未经调制。在各实施方式中,从灵活性较低的方法到灵活性较高的方法,均通过下述方式使参考与散射或反射场一起到达:1)在现场放置反射镜,以将传输光束的部分反射回检测器阵列,使得路径长度匹配良好;2)利用光纤延迟以与路径长度紧密地匹配,并且利用检测器阵列附近的光学器件传播参考光束,如图2所表明的,无论是否进行路径长度调整来补偿针对特定距离的观察到或预期的相位差;或者3)利用频移装置(声光调制器)或本地振荡器波形调制的时间延迟进行单独的调制,以补偿路径长度失配;或一些组合。在一些实施方式中,目标足够近且脉冲持续时间足够长,使得返回足以在没有延迟的情况下与参考信号重叠。在各实施方式中,针对每个扫描光束,目标的多个部分向检测器阵列230散射回相应的返回光291信号,从而基于多个光束照射的目标的相应多个部分的多个距离和多个返回产生点云。
检测器阵列是单个检测器或者布置在大致垂直于来自目标的返回光束291的平面中的1D或2D检测器阵列。在脉冲持续时间τ期间,通过获取***240针对每个检测器多次记录接口模式的相位或幅度或一些组合。每脉冲持续时间的时间样本数量会影响向下距离程度。该数量通常是基于脉冲重复率和可用的摄像机帧率选择的实际考量。帧率是取样带宽,通常称为“数字转换器频率”。基本上,如果在具有Y距离宽度的分辨率区间的脉冲期间收集到X个检测器阵列帧,则可以观察到X*Y的距离程度。所获取的数据可用于处理***250,诸如下文参照图11描述的计算机***,或者下文参照图12描述的芯片集。在一些实施方式中,所获取的数据是基于目标的相应多个部分的多个距离的点云。对象分类统计模块270基于所获取的点云根据图7的方法700对光束205照射的对象进行分类。可以使用任何已知的设备或***实施激光源212、调制器214、分束器216、参考路径220、检测器阵列230或获取***240。未描绘扫描或漫射或聚焦于目标或聚焦经过光瞳面的光学耦合。如本文所用,光学耦合器是影响光在空间坐标内的传播以将光从一个部件引导至另一部件的任何部件,诸如真空、空气、玻璃、水晶、反射镜、透镜、光学循环器、分束器、相位板、偏光器和光纤等,单独的上述部件或其一些组合。
例如,在一些啁啾实施方式中,使用的激光器用向驱动激光器的电流施加的调制积极地线性化。还对提供调制的电光调制器进行了实验。***被配置成产生带宽为B且持续时间τ的啁啾,适用于期望的向下距离分辨率,如下文对各实施方式更详细的描述。例如,在一些示出的实施方式中,在进行的实验中,选择B的值约为90GHz以及τ的值约为200毫秒(ms,1ms=10-3秒)以在相对低的检测器阵列帧率的限制内作用。进行这些选择以观察到约30cm的合理的长距离窗口,其通常在对象的形状和对象的识别方面是重要的。该技术将适用于10MHz至5THz的啁啾带宽。然而,对于3D成像应用,典型的距离为约300MHz至约20GHz的啁啾带宽,约250纳秒(ns,ns=10-9秒)至约1毫秒(ms,1ms=10-3秒)的啁啾持续时间,距目标约0米至约20km的距离,目标处的光斑大小约3毫米(mm,1mm=10-3米)至约1米(m),目标处的深度分辨率约7.5mm至约0.5m。在一些实施方式中,目标具有最小距离,诸如400米(m)。要注意,在这些条件下可以使距离窗口延伸至若干千米,多普勒分辨率也会非常高(取决于啁啾的持续时间)。虽然出于说明的目的,图2中将过程、设备和数据结构描绘为处于特定布置的整体块,但在其他实施方式中,一个或多个过程或数据结构或其部分以不同方式布置,布置在相同或不同主机上,布置在一个或多个数据库中,或者被省略,或者在相同或不同主机上包括一个或多个不同的过程或数据结构。例如,分离器216和参考路径220包括零个或多个光学耦合器。
图3A是示出了根据实施方式的外差啁啾LIDAR***300a的示例部件的框图。根据美国专利号7,742,152中描述的***进行修改的该***300a使用电子去啁啾。虽然描绘了对象390以示出***300a的操作,但对象390不是***300a的部分。***300a包括激光器301、调制器310、作为扫描光学耦合器320的望远镜、平衡光电检测器330、处理电路340、产生带宽为B且持续时间为τ的FM啁啾的波形发生器350、功率分离器351、去啁啾混合器360和声光调制器370。在该***中,源激光器301输出波束被分束器302分为两部分;一部分被调制器310基于来自功率分配器351和运算放大器352a的FM啁啾进行调制,以产生波束305,该波束被馈送至望远镜。
波束的另一部分,波束307a,用于生成本地振荡器(LO),以进行相干检测。声学扬声器产生频率为fm的声学信号以驱动声光调制器(AOM)370使光学频率偏移fm成波束307b,其用作外差检测的中频(IF)。光学耦合器322将波束307b引导至平衡光电检测器330的一部分上。
光学耦合器322还将返回光学信号391引导至平衡光电检测器的另一部分。平衡光二极管330排斥直接检测部件。输出电信号在运算放大器344a中放大,IF信号通过带通滤波器341被选择并由恢复基带波形的肖特基二极管342检测。产生的电信号被引导通过低通滤波器343和运算放大器344b。
去啁啾混合器360将该检测信号与功率分离器351和运算放大器352b输出的原始啁啾波形进行比较,以产生具有拍频的电信号,拍频取决于RF参考波形和检测波形之间的频差。使用另一运算放大器344c和FFT过程345查找拍频。处理器346被编程为进行数据分析。相干检测***如300a相比于直接检测脉冲行进时间显著提高接收器的信噪比(SNR),但是大幅增加了***的复杂性。从运算放大器344a和去啁啾混合器360到处理器346的电部件构成信号处理部件340。
根据所示实施方式,光学耦合器320发出的光束射至一个或多个对象390,其中以限定的光束大小照射该一个或多个对象的被照射部分392。来自被照射部分的反向散射光返回通过望远镜,以由光学耦合器322引导至光学检测器上,诸如平衡光电检测器的一个光二极管上。在一些实施方式中,从光学耦合器320发出的光束射至对象的多个部分392,反向散射光391从对象的多个部分392中的每个部分返回,以确定到对象的多个部分中的每一个的相应距离。在这些实施方式中,对象的多个部分中的每一个的相应距离用于对一个或多个对象的点云增加点。经过LIDAR***从不同角度或不同位置进行多次测量后,显现出点云。处理器346包括对象分类统计模块380,如下文所述,用以基于点云根据图7的方法700对波束305照射的对象390进行分类。
图3B是示出了根据实施方式的零差啁啾LIDAR***300b的示例部件的框图。根据美国专利号7,742,152中描述的***进行修改的该***300b使用光子去啁啾并简化了RF部件。虽然描绘了对象390以示出***300b的操作,但对象390不是***300b的部分。***300b包括波形发生器350、激光器301、调制器310、调制器310下游的分离器302、用作扫描光学耦合器320的望远镜、平衡光电检测器330和处理电路360。
在该***中,光学信号和本地振荡器LO均由同一波形发生器350驱动并在运算放大器352中被放大。调制器310输出的波束被分束器302分为波束部分305和波束部分307c。具有大部分波束能量如90%或以上的波束部分305被传输通过光学耦合器320,以照射对象390的被照射部分392。在一些实施方式中,波束305照射对象390的多个部分392。在这些实施方式中,多个返回信号309被从对象390的多个部分392中的每个部分引导至光电检测器330,并确定到对象390的多个部分392中的每个部分的相应距离。波束部分307c在延迟装置308中被延迟期望的量,以产生参考信号307d。在一些实施方式中,没有延迟,并省略了延迟装置308。参考信号307d和来自望远镜或其他光学耦合器320的返回信号309通过光学耦合器322被引导至光电检测器330。
在平衡光二极管330内完成去啁啾过程,因此不需要进行去啁啾混合和相关的RF处理。由于LO携载的原始啁啾光学波形与其在所示光二极管的延迟版本一起跳动,因此通过在FFT部件345中对运算放大器344输出的光电流信号的频率分析可以直接得到目标距离。对于每次返回的所检测的目标距离,其为到被照射部分的距离,均作为点添加至一个或多个目标的点云。在一些实施方式中,目标的每个部分具有最小距离,诸如400米(m)。处理器362被编程为进行数据分析。处理器362包括对象分类统计模块380,如下所述,用以基于点云根据图7的方法700对用波束305照射的对象进行分类。从运算放大器344到处理器362的电部件构成信号处理部件360。考虑到散粒噪声是干扰检测的主要噪声,因此拍频的SNR相比于直接检测的SNR和***300a的SNR减小。
3.K-d树概述
k-d树(k维树的缩写)是用于将点组织在k维空间中的空间分割数据结构。K-d树对于若干应用都是有用的数据结构,诸如涉及多维搜索关键字的搜索(如,距离搜索和最近邻居搜索)。K-d树是特殊情况的二进制空间分割树。图5A是示出了根据实施方式的用于点集的k-d树组成500的示例的图。图5B示出了根据实施方式的基于图5A的k-d树组成500的k-d树550的示例。图5A至图5B的示例实施方式描绘了其中k=2(如,二维x-y空间)的k-d树。图5A至图5B的k-d树基于点集{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)}。图5A的图示出了点集中的每个点。横轴502是x轴,竖轴504是y轴。
k-d树550是具有多个节点552、554、556的二进制树,包括根节点552和叶节点556。每个非叶节点(如,节点552、554)可以视为隐式地生成将空间分为两个称为半空间的部分的分割超平面。该超平面左边的点由该节点的左子树表示,超平面右边的点由右子树表示。超平面方向按下述方式选择:树中的每个节点均与k维中的一个相关联,其中,超平面垂直于该维的轴线。在图5B的示例实施方式中,根节点552与x维相关联,从点集中选择在x维中具有中值的点552a(如(7,2))。基于x维(如,x=7)中的该中值在k-d树组成500中生成x分割平面506。从点集到该平面506左边的点由左子树553表示,从点集到该平面506右边的点由右子树555表示。
节点554与y维相关联。从x分割平面506一侧(左侧)的点(如,左子树553中的点)中选择在y维中具有中值的点554a。基于y维(如,y=4)中的该中值在k-d树组成500中生成y分割平面508。该y分割平面508一侧(底侧)的点在叶节点556中由点(2,3)表示,而该y分割平面508另一侧(顶侧)的点在右叶节点556中由点(4,7)表示。类似地,从右子树555中的点集选择在y维中具有中值的点554b(如,(9,6)),并基于y维(如,y=6)中的该中值在k-d树组成中生成y分割平面510。该y分割平面510左边的点在叶节点556中由点(8,1)表示,而该y分割平面的右边在点集中没有点。
在一些实施方式中,k-d树550可以用于进行最近邻居(NN)搜索,其目的是在集中找到距离给定输入点最近的点。在示例实施方式中,输入点512为(2,8)。利用树特性快速排除搜索空间的大部分可以高效地进行这种搜索。在一些实施方式中,在k-d树中搜索最近邻居从根节点552a开始。搜索沿着树550递归地向下,与***输入点的情况下的搜索方式相同(即,其向左或向右,取决于点小于还是大于分割维中的当前节点)。在根节点552a,输入点(2,8)小于分割维(如,x维)中节点552a处的点(7,2),因此搜索向左子树553移动。在节点554a,输入点(2,8)大于分割维(如,y维)中节点554a处的点(5,4),因此搜索向右移动并移动至左节点556处的点(4,7)。一旦搜索到达叶节点556点,搜索就将该节点存储为“最近邻居”。在该实施例中,搜索将(4,7)存储为输入点(2,8)的“最近邻居”。图5A示出了输入点512和对应于叶节点556处(4,7)的最近邻居514。有可以对K维数据集产生K-d树的软件。例如,Accord-framework.net就是提供C#语言k-d树最近邻居搜索算法的开放源软件平台。
4.点云概述
点云是某一坐标系中的一组数据点。在三维坐标系中,这些点通常由X、Y和Z坐标限定,并且通常意在表示对象的外表面。在其他实施方式中,点云中的每个点以不同的坐标系表示,诸如极坐标系,极坐标系利用距离和方位角以及距某个方便的原点的仰角定位每个点,诸如LIDAR扫描仪的定位。可以通过3D扫描仪创建点云。这些装置测量对象的表面上的大量点,并且通常输出点云作为数据文件。点云表示装置已测得的点的集合。图4示出了根据实施方式的对象诸如杯的3D点云400的示例。3D扫描仪测量杯表面的不同部分的点,包括例如对应于杯柄的部分402a和对应于杯缘的部分402b。在一些实施方式中,对象的3D点云由光学LIDAR***创建,诸如上文所述的图2和图3A、图3B的***200、300a、300b。在这些实施方式中,基于所计算的到对象的多个部分的相应距离得到图2中的对象(未示出)或图3A至图3B中的对象390的3D点云,包括对象表面上的多个点。如果对象对于扫描仪的光是不透明的,且对象和扫描仪是固定的,则仅观察到对象的一侧,点云称为被遮挡的。如果移动对象或扫描仪使对象的多个侧暴露于扫描仪(如,通过转动对象),则可以得到对象的表面的更完整的3D表示。
作为3D扫描过程的输出,点云用于许多目的,包括为制造零件创建3D CAD模型,计量/质量检查,以及大量视觉化、动画制作、渲染和批量定制化应用。虽然点云可以直接渲染和检查,但通常点云本身一般在大多数3D应用中无法直接使用,因此通常要通过通常称为表面重构的过程转换为多边形网格或三角网格模型、NURBS表面模型或CAD模型。有许多技术可以将点云转换为3D表面。一些方法如Delaunay三角剖分、alpha shapes和ballpivoting在点云的现有顶点上方构建三角网络,而其他方法将点云转换为体积距离场并通过移动立方体算法重构如此限定的隐式表面。
点云可以直接使用的一种应用是工业计量或使用工业计算机断层摄影进行的检查。制造零件的点云可以与CAD模型(或者甚至另一点云)对准,并进行比较,以用于检查差异。这些差异可以显示为彩色地图,彩色地图给出制造零件和CAD模型之间的偏差的视觉指示。还可以直接从点云提取几何尺寸和公差。
5.对象分类统计概述
对象分类力求根据原本未知对象的点云确定产生点云的对象可能属于的对象类别。各种方法使用已知对象的训练集,并对该类别表征点云的一个或多个特性。然后使用未知对象的点云得出该一个或多个特性的值。然后使用一些相似性度量将未知对象的特性的值与具有和未知对象的特性最相似的值的类别进行匹配。在下面的实施方式中,通过将对象的类别限制为感兴趣的离散数N个类别,如,N类车辆和路边结构物,或N类餐具,或N类动物,或N类手持武器,来让问题容易处理。然后,未知对象与N个类别中的一个足够相似,或者被拒绝为不感兴趣。
图6A示出了根据实施方式的对象的3D点云600的示例。在一些实施方式中,使用光学LIDAR***获得3D点云,诸如上文参照图2至图3B描述的***。在其他实施方式中,通过3D扫描仪得到3D点云,而不是通过这种光学***。图6B示出了根据实施方式的图6A的3D点云600的包括点601和点601周围的最近邻居点605的区段607。
图6A示出了表面法线602,该表面法线接近于点云的每个点处对象的表面的法线。点云600上每个点处的表面法线602是估计的。在一些实施方式中,使用Klasing于2009年公开的过程估计表面法线602。在一些实施方式中,通过初始确定点601周围的最近邻居点605来确定点601处的表面法线602。图6B出于简单起见标示了点605中的一些。如Klasing所述,最近邻居点605的(x,y,z)值用于构建3x3协方差矩阵C。在一个实施方式中,最少使用三个点605构建3x3协方差矩阵C并在3D中限定平面。在其他实施方式中,构建协方差矩阵C的点605的最低数量应在约10个点至约20个点的范围内,以切实应对***内的噪声,并得到有用的测量,而且实时或近实时地产生结果,如下文所限定的。然后计算矩阵C的特征值(λ1,λ2,λ3)和特征向量(e1,e2,e3)。这些特征值表示点605在由特征向量表示的三个方向中的每个方向上的方差的近似值。在一些实施方式中,与最小特征值相关联的特征向量用于估计点601处的表面法线602,因为该特征向量近似于点605的最小方差的方向,而另外两个特征向量限定具有最大方差的平面。在其他实施方式中,使用特征值可以估算点601处的对象表面的曲率,如下式:
每个点601处的表面法线602均可以使用Klasing公开的方法以外的任何方法估计。
图6C是示出了根据实施方式的在平移和旋转的不变坐标系内由3D点云的点605限定的特征变量的示例的框图650。平移和旋转的不变坐标系由点601处的表面法线602和与表面法线602正交并在点601处与对象表面656相切的平面655限定。在一些实施方式中,特征变量α由沿着平面655从点601到点605的距离662限定。在其他实施方式中,特征变量β由垂直于平面655从点601到点605的距离663限定;或者特征变量由一对距离α,β限定。在其他实施方式中,特征变量ρ是从点601到点605的直线距离,使用α和β由勾股定理得出。在其他实施方式中,特征变量θ是表面法线602与ρ之间测得的角度658。在其他实施方式中,特征变量是点605处的表面法线665,使用与用于确定表面法线602的方法类似的方法确定。在其他实施方式中,ψ是测得的表面法线665与β之间的角度664。在其他实施方式中,限定了其他特征变量,诸如在601和605之间具有连续平滑正切角的弧的长度。各实施方式中可以使用一个或多个特征变量的集合。3D点云中的一个或多个点中的每个点均具有与特征集中的一个或多个特征变量对应的一组值。
图6D是示出了根据实施方式的3D点云的点605的数量与图6C的特征变量中的两个特征变量的一系列值的直方图的示例的旋转图像680。横轴682指示特征变量α的值,以厘米(cm)计。竖轴684指示特征变量β的值,以厘米(cm)计。α-β空间被分为多个筐(bin,直条、组界、容器、单元、组距)686。出于简单起见,图6D描绘了一个筐686。在示例实施方式中,筐686具有1厘米(cm)x 1厘米(cm)的方形尺寸。对于每个筐686,直方图基于3D点云中具有在由该筐686限定的α-β范围内的值的点605的数量为该筐分配值。使用灰度级指示每个筐686的值,其中,每个筐686的值由低值(如,白色)到高值(如,黑色)表示。
在一些实施方式中,获得用于3D点云的一个区段的旋转图像680,诸如图6A所示的点云6A的在图6B所示的区段607。在示例实施方式中,该区段具有大约0.5米(m)的尺寸。在这些实施方式中,获得跨越点云600的对应多个区段的多个旋转图像680。在一些实施方式中,获得特征变量(如,α、β)的值,以限定点云600的每个区段中的每个点。在其他实施方式中,对每个区段中的仅一个或一些点云点确定特征变量(如,α、β)的值。在这些实施方式中,在区段之间,旋转图像680足够相似,使得每个区段都可辨识为属于同一类别,因为该对象生成的点云600。基于Johnson在1997年公开的方法获得点云600中任何点的旋转图像680。
在一些实施方式中,每个区段的旋转图像680用维数等于筐686数量的向量表示。在这些实施方式中,向量用[P1,P2,P3,P4...PB]表示,其中,Pn表示第n个筐686中点605的数量,而B是筐686的总数。在示例实施方式中,其中旋转图像680的α-β范围为40厘米(cm)乘40厘米(cm),并且其中筐686具有1cm x 1cm的尺寸,B为1600,产生1600维向量。在一些实施方式中,在用向量表示旋转图像680之前使用离散Parzen窗法平滑旋转图像680的直方图。在其他实施方式中,旋转图像680表示的向量经过归一化,排除可能因点密度改变而产生的变化。
在一些实施方式中,生成旋转图像680的对象基于固定数量(N)的类别约实时或近实时地分类。出于本说明书的目的,实时是基于用于捕获产生旋转图像680的3D点云的3D扫描仪(如,LIDAR)的帧率。帧率的倒数是3D扫描仪捕获3D点云的时间捕捉时段。在一个实施方式中,实时被限定为时间捕获时段内的一时段。在一个示例实施方式中,帧率在每秒2.5帧至10帧的范围内,对应于0.1-0.25秒(sec)的时间捕获时段。这类时间段对于在战术和避碰应用中识别对象是有利的。近实时为实时的约10倍以内,如,对于上述示例时间捕获时段为约2.5秒以内。
在各种角度和定向收集每个类别的对象的点云数据。从每个类别的对象的点云中提取特征变量(α,β)的值。由于每个点云的类别归属关系已知(如,盒、交通锥标等),因此特征变量的值被标记为类别已知。使用标准线性判别分析(LDA)对该组标记旋转图像进行训练,如Ye在2007年公开的一般。
在实施方式中,对旋转图像680向量进行降低维度步骤。在一个实施方式中,将旋转图像680向量的维数从筐686的总数减少至基于类别的总数(N)的降低维度。在示例实施方式中,旋转图像680向量的维数从筐686的总数1600减少至N-1。在一些实施方式中,使用用LDA训练标记的旋转图像期间获取的一组预定投射向量将旋转图像680向量的维数从筐686的总数1600投射至N-1。在一些实施方式中,一组预定的投射向量与针对N个类别的一组相应旋转图像相关联。如Ye在2007年公开的,在这种可管理的特征空间中,进行k-d树和NN(最近邻居)搜索,以将类别归属关系分配给具有用于生成新的旋转图像680的3D点云的任何未知对象。在一些实施方式中,其中获得跨越未知对象的点云600的多个区段607的多个旋转图像680,每个旋转图像680均投射至降低的维度(如,N-1),并进行NN搜索,以向每个区段旋转图像680分配类别归属关系。在一些实施方式中,实时或近实时地将旋转图像680投射至降低维度空间以及将类别归属关系分配给旋转图像680。在示例实施方式中,如果点云600的大部分(如,90%)区段旋转图像680都被分配了相同的类别,则对用于生成点云600的未知对象分配该相同类别。在其他实施方式中,使用学习技术将包含3D点云的所有旋转图像680的一个或多个子集识别为内部方差较小的相应子类别。在其他实施方式中,除了或者代替LDA,使用主成分分析对旋转图像680向量进行降低维度步骤。
在一些实施方式中,对点云600中的每个点605确定特征变量[α,β,θ,ρ,ψ]的值。然后将这些特征变量组合在数据矩阵F中:
其中,F是n x M矩阵,n是特征变量的数量,M是点云中点605的数量。在所示实施方式中,n=5指特征变量[α,β,θ,ρ,ψ]。然而,n不限于任何特定的数,可以小于5或大于5,或者可以包括与上述所列不同的特征变量。
然后确定矩阵的每行中每个特征变量[α,β,θ,ρ,ψ]对于M数量个点605的平均值。通过将每个特征变量的均值(如,)从与特征变量相关联的数据矩阵F的相应行中减掉,组合成零均值数据矩阵得到的零均值数据矩阵表示为:
零均值数据矩阵也是n x M矩阵,与数据矩阵F一样。然后基于零均值数据矩阵组合成协方差矩阵C,表示为:
其中,σn是根据对于在表示点云区段607中点605的行中的M个元素的特征变量平均值的第n个特征变量的方差。协方差矩阵C的对角元素表示单个特征变量的方差(如,σ1 2),而协方差矩阵C的非对角元素表示两个不同特征变量的协方差(如,σ1σ2)。协方差矩阵C是nx n矩阵,因为零均值数据矩阵是n x M矩阵,矩阵是M x n矩阵。在所示实施方式中,其中上述五个特征变量中的每个特征变量均用于组合协方差矩阵C,协方差矩阵是5x5矩阵。然而,协方差矩阵C可以是任何大小的n x n矩阵,其中,n小于或大于5,取决于用于分类目的的特征变量的数量。在一些实施方式中,使用每个点的特征变量基于Fehr在2012年公开的方法构建协方差矩阵C。
在一些实施方式中,基于固定数量(N)的类别,约实时或近实时地对生成用于组合协方差矩阵C的点云的对象进行分类,如上文所限定的。
对于与预定的固定数量(N)的类别中的每个类别相关联的大量点云,在训练期间组合相应大量的协方差矩阵C。这种大量的协方差矩阵C以与预定的固定数量(N)的类别相关联的预定的固定数量的集群布置,如Salehian在2013年公开的。每个集群的中心被选择用以代表该集群,并且与集群中心相关联的协方差矩阵C被选择用以代表与集群相关联的类别。在实施方式中,这通过将待与输入协方差矩阵相比的协方差矩阵的数量从初始的大量协方差矩阵缩减为等于类别的数量的缩减数量来压缩训练数据。图6E是分别示出了根据实施方式的多个集群676a、676b、676c、676d和对应集群中心678a、678b、678c、678d的图670。在该实施方式中,集群中心678a、678b、678c、678d各自与相应的对象类别相关联。出于简单起见,图6E以二维空间示出了与四个类别相关联的四个集群。然而,类别的固定数量(N)可以大于四个类别,诸如例如10或100,集群空间在典型实施方式中可以具有两个以上的维度。横轴672是第一参数,竖轴674是第二参数。图6E的二维空间表示其中出现集群的空间。
与每个集群中心678a、678b、678c、678d相关联的协方差矩阵C与协方差矩阵C的测试数据输入相比较。在一些实施方式中,计算输入协方差矩阵C与每个集群中心矩阵C之间的距离。在实施方式中,使用Jensen-Bregman LogDet散度运算计算矩阵之间的测地距离,如Salehian在2013年公开的。图6E描绘了与输入协方差矩阵C相关联的数据输入679。在一些实施方式中,进行k-d树NN搜索,以确定集群中心678a、678b、678c、678d中哪一个离数据输入679最近。在该实施方式中,集群中心678a离数据输入679最近,因此基于与集群676a相关联的类别对用于生成输入协方差矩阵C的对象进行分类。在一些实施方式中,约实时或近实时地进行数据输入679与每个集群中心之间的NN搜索。
在一些实施方式中,对点云中的每个点组合协方差矩阵C。在实施方式中,将这些协方差矩阵C的子集与和集群中心相关联的协方差矩阵进行比较,以对用于生成点云的对象进行分类。在另一实施方式中,如果这些协方差矩阵的子集的大部分都与一个对象类别相关联,则向对象分配该对象类别。在一个示例实施方式中,如果对点云的1000个点或1000个区段组合了1000个协方差矩阵,则将协方差矩阵的子集(如,50个)与和集群中心相关联的协方差矩阵进行比较。在该示例实施方式中,如果这些协方差矩阵的子集的大部分(如,30个)都与一个对象类别相关联,则按照该对象类别对对象进行分类。
图7是示出了根据实施方式的用于对由3D点云限定的对象进行分类的示例方法的流程图。虽然出于说明目的,图7中步骤示出为按特定顺序的整体步骤,但在其他实施方式中,一个或多个步骤或其部分按不同顺序进行,或者时间上有重叠,连续进行或并行进行,或者被省略,或者增加一个或多个附加步骤,或者以一些组合方式对方法进行改变。
在步骤701,获得表示对象的外表面的3D点云。在一些实施方式中,使用图2的***200或图3A和图3B的***300a、300b生成3D点云。在其他实施方式中,使用本领域普通技术人员知晓的任何3D扫描仪生成3D点云。在其他实施方式中,从外部***获得3D点云,或从与***相关联的外部源下载,或从本地或远程存储设备上的存储装置中获取。在一个实施方式中,根据图2的***或图3A和图3B的***中的位于最小距离诸如400米(m)的对象或目标获得3D点云。
在步骤702,在点云600上的点601处提取表面法线602。在一个实施方式中,使用Klasing在2009年公开的近似法、基于与指示邻居点605的最小方差的方向的最小特征值相关联的特征向量提取表面法线602。在其他实施方式中,使用另一方法提取表面法线602。在一个实施方式中,对点云600上的每个区段的至少一个点提取表面法线602。表面法线602在点601处、基于表面法线602和与表面法线602正交(并因此与对象表面相切)的平面655限定平移和旋转的不变坐标系。
在步骤704,在平移和旋转的不变坐标系中针对点云600的每个区段中的至少一个点605提取一个或多个特征变量的值。在示例实施方式中,对点云600的每个区段607中的每个点605提取特征变量的值。
在步骤705,基于在步骤704提取的特征变量对点云600中的至少一个点605计算第一分类统计。在一个实施方式中,第一分类统计是基于来自步骤704的一个或多个特征(α,β)的提取值的旋转图像680。在一个实施方式中,获得点云600的每个区段607的旋转图像680,并因此获得跨越点云600的多个区段607的多个旋转图像680。
在步骤707,基于在步骤704提取的特征变量的值对点云600的至少一个区段中的每个点605计算第二分类统计。在一个实施方式中,第二分类统计是等式5的协方差矩阵C。在一些实施方式中,对点云的每个区段中的每个点组合协方差矩阵C。
在步骤709,约实时或近实时地确定步骤705的第一分类统计与用于N个类别的集合的对应的第一分类统计的集合之间的最接近匹配。然后该最接近匹配用于估计生成点云600的对象属于第一类别。在一些实施方式中,第一分类统计可能不与N个类别中的任何类别匹配。例如,点云可能表示不感兴趣的对象,诸如在感兴趣对象是车辆和路边结构物的情况下,对象是餐桌布置。在这些实施方式中,在步骤709,估计生成点云的对象不属于N个类别中的任何类别。这意味着消极分类(如,对象不属于N个类别中的任何类别),消极分类在各种应用中都是有利的,特别是在涵盖感兴趣对象的N个类别已知的情况下。在一些实施方式中,有利的是知晓对象是否是“未知的”(如,不属于预限定的N个类别中的任何类别),使得如果被用户视为感兴趣的,则存储相关联的点云数据,供进一步分析和训练。在示例实施方式中,标签诸如“未知武器”用于更新点云的训练库,使得其经过进一步训练可以变成已知目标或类别。
在实施方式中,在步骤709,来自步骤705的旋转图像705用等于旋转图像680中的筐686的数量的向量表示。另外,在实施方式中,在步骤709,使用LDA训练与一组已知类别相关联的一组标记旋转图像。在一个实施方式中,使用LDA期间获取的投射向量约实时或近实时地对旋转图像680进行降低维度步骤,从高维(如,筐686的数量)降至低维(如,N-1)。在实施方式中,约实时或近实时地进行k-d树和NN搜索,以将对象分配为属于第一类别。在实施方式中,一组已知类别的数量(N)且因此一组第一分类统计的数量被限于最大阈值。在一个示例实施方式中,N小于或等于10。在另一示例实施方式中,N小于或等于100。在一个实施方式中,由于旋转图像680向量降低维度以及因此在降低维度空间中的k-d树NN搜索,约实时或近实时地进行步骤709。
在步骤711,约实时或近实时地确定步骤707的第二分类统计与用于N个类别的集合的第二分类统计的集合之间的最接近匹配。然后该最接近匹配用于估计生成点云600的对象属于第二类别。在一些实施方式中,第二分类统计可能不与N个类别中的任何类别匹配。例如,点云可能表示不感兴趣的对象,诸如在感兴趣对象是车辆和路边结构物的情况下,对象是餐桌布置。在这些实施方式中,在步骤711,估计生成点云的对象不属于N个类别中的任何类别。这意味着消极分类(如,对象不属于N个类别中的任何类别),消极分类在各种应用中都是有利的,特别是在涵盖感兴趣对象的N个类别已知的情况下。
在实施方式中,在步骤711,在数据捕获时段之前,组合大量协方差矩阵C,其与固定数量(N)的类别相关联。这种大量的协方差矩阵C基于固定数量(N)的类别以固定数量的集群布置,如Salehian在2013年公开的。每个集群的中心被选择用以代表每个集群,并且与集群中心相关联的协方差矩阵被选择用以代表每个类别。在实施方式中,在步骤711,约实时或近实时地计算来自测试数据输入的协方差矩阵C与和每个类别相关联的协方差矩阵之间的距离。在示例实施方式中,k-d树NN搜索用于约实时或近实时地确定协方差矩阵C的最近邻居。对象被分配给与最近集群中心相关联的第二类别。在实施方式中,一组已知类别的数量(N)且因此集群中心的数量被限于最大阈值。在一个示例实施方式中,N小于或等于10。在另一示例实施方式中,N小于或等于100。在一个实施方式中,由于协方差矩阵C减少为固定数量的集群以及因此基于该固定数量的集群的k-d树NN搜索,约实时或近实时地进行步骤711。
在步骤713,将来自步骤709的第一类别与来自步骤711的第二类别进行比较。如果第一类别与第二类别相同,则方法前进至步骤715,在该步骤,对象被分配给第一类别。如果第一类别与第二类别不同,则方法前进至步骤717。在其他实施方式中,如果步骤709估计对象不属于N个类别中的任何类别,并且如果步骤711估计对象不属于N个类别中的任何类别,则方法不向对象分配N个类别中的任何类别。在一个实施方式中,方法在显示器上输出对象不属于N个类别中的任何类别。在另一实施方式中,方法基于对象不属于N个类别中的任何类别来操作装置。
在一些实施方式中,其中步骤709或步骤711中的一个步骤得出对象不属于N个类别中的任何类别的结论,而步骤709或步骤711中的另一个步骤得出对象属于N个类别中的一个类别的结论,则步骤713得出步骤709和711中的分类不一致的结论,因此方法前进至步骤717。然而,在这些实施方式中,如下文所述,在步骤717,仅针对步骤709或步骤711中将对象识别为属于N个类别中的一个类别的那个步骤中的所识别的单个类别,在点云和模型点云之间进行最接近符合(fit,匹配)。
在步骤717,基于每个点云600与用于仅第一类别和第二类别的一个或多个预定遮挡或非遮挡模型点云之间的最接近符合,约实时或近实时地对该点云600计算第三分类统计。其他N-2类均不考虑。在一个实施方式中,由于最接近符合限于仅第一类别和第二类别的模型点云,所以约实时或近实时地进行步骤717。
这提供了下述优点,对于可能是最耗时间的分类器例如涉及最多计算的分类器该方法节省宝贵的时间。计算的数量与点云中点的数量乘以模型的数量相关,模型的数量是表面的数量的N倍,以限定N个类别中的每个。在一个实施方式中,第三分类统计是迭代最近点(ICP)分类统计,如Besl在1992公开的。步骤717用于约实时或近实时地确定哪个类别(如,第一类别或第二类别)更符合生成点云600的对象。在一些实施方式中,在步骤717,仅在点云600与针对第一和第二类别的预定模型点云之间进行最接近符合。
在一些实施方式中,在步骤717,获得第一和第二类别的模型点云。在一个实施方式中,获得的模型点云遮挡点云从每个角度都无法观察到的那些部分。图10A是示出了根据实施方式的对象的基于图4中的对象的3D点云400的遮挡模型1000的示例的框图。在该示例实施方式中,以杯的柄部的正视图获得遮挡模型1002a。杯在该角度无法观察到的那些部分(如,杯的远侧)不在遮挡模型1002a中。类似地,以杯靠近顶部的边缘部分的平面图获得遮挡模型1002b、1002c,该顶部的直径较大,柄存在且靠近杯的底部,底部的直径较小,且没有柄。杯那些部分(如,杯的背侧)在这些角度观察不到,不在遮挡模型1002b、1002c中。以类似的方式,使用第一和第二类别的3D点云得到第一和第二类别的遮挡模型点云。在一些实施方式中,使用对象的被随机转动然后转换为球面坐标的主点云生成遮挡模型点云。在该坐标系中,对所有占据的角面片(angle patch,角度片)选择距离最近的点。每个角面片均具有经验选择的程度(如,0.001度x.0.001度),其被转换回笛卡尔坐标,以构成可能遮挡的实例。如果步骤709和711中确定的两个不同类别中的一个是杯,且第二类别不同,如浅盘,则步骤717中将用到模型1000的这些子模型。
在一些实施方式中,在步骤717,在测试输入点云与和第一和第二类别相关联的模型点云之间进行最接近符合,以确定对象是应该分类为第一类别还是第二类别。图10B是示出了根据实施方式的对象的2D测试点云1010的示例的框图。2D点云1010是使用最接近符合与图10A的每个模型点云进行比较的测试输入点云。转动并平移2D点云,以最佳地符合该类别的每个模型。图10C至图10E是示出了根据实施方式的图10B的2D点云1010与图10A的每个遮挡模型1002a、1002b、1002c之间的最接近符合的示例的框图。在每个最接近符合中,相对地转动、平移和/或缩放测试输入点云(如,1010),使得在模型点云上的点与测试输入点云上的点之间得到最小距离,如Besl在1992年公开的。具有最小距离的符合指定为最接近符合。如果最接近符合太大,如,对于点云之间最接近点的最小比,测试输入点云中的点与模型点云中的点之间的均方距离在阈值均方距离以上,则认为对象不属于该类别。在示例实施方式中,如果对于点云之间高达90%的最接近点,测试输入点云中的点与模型点云中的点之间的均方距离在2cm2以上,则认为对象不属于该类别。
在图10C的示例实施方式中,模型点云1002a与模型点1010之间的最佳符合在点云之间产生相对大的平均距离(或均方根距离)。在图10D的示例实施方式中,模型点云1002b与模型点1010之间的最佳符合在点云之间产生较小的平均距离或均方根距离(相对于图10C)。在图10E的示例实施方式中,模型点云1002c与模型点1010之间的最佳符合在点云之间产生最小的平均或均方根距离。如果该距离小到可接受,则2D点云1010成功分类为杯。类似地,点云1010将与步骤711中确定的第二类别对象的模型比较,诸如具有若干遮挡子模型的浅盘。如果浅盘子模型的最佳符合具有较大的平均或均方根距离,则对象将分类为杯,而不是浅盘。
在一些实施方式中,其中步骤709或步骤711中的一个步骤得出对象不属于N个类别中的任何类别的结论,而步骤709或步骤711中的另一个步骤得出对象属于N个类别中的一个类别的结论,则仅在测试输入点云与和得出对象属于N个类别中的一个类别的结论的步骤709或步骤711相关联的单个类别的模型点云之间进行步骤717中的最接近符合。在这些实施方式中,如果最小平均或均方根距离小到可接受,则与和得出结论对象属于N个类别中的一个类别的结论的步骤709或步骤711相关联的单个类别相同的分类对对象进行分类。在这些实施方式中,如果最小平均或均方根距离小但不可接受,则不将对象分类为N个类别中的任何类别。
在步骤719,将对象分配给第一类别或第二类别,取决于哪个类别产生与步骤717中的输入点云的最接近符合。
在步骤721,在对象被分配类别后,基于所分配的对象类别操作装置。在一些实施方式中,这涉及在显示装置上展示指示所分配的类别或基于所分配类别的信息的图像。在一些实施方式中,这涉及向装置传送识别所分配的对象类别的数据。在其他实施方式中,这涉及沿到对象的轨线推进抛射体。在示例实施方式中,抛射体是导弹。在一些实施方式中,装置是受控车辆,并且基于对象对车辆进行控制,以避免与对象碰撞,或者对车辆进行控制,以避免不与对象碰撞。
6.示例实施方式
在这些示例实施方式中,LIDAR***使用上文所述的部件产生同时式上和向啁啾传输信号。该***可从Bozeman的BLACKMORE SENSORS AND ANALYTICS,INC.TM购得,如HRS-3D。
图8A是示出了根据实施方式的图2的***200或图3A或图3B的***300的实验设置的顶视立体图的示例的图片800。在实施方式中,在测试实验室804中使对象802与LIDAR***间隔距离806。在示例实施方式中,距离806在例如400米(m)至2000米(m)之间。图8B是示出了根据示例实施方式在图8A所示实验设置中使用的对象802的示例。这些对象802包括锥体802a、盒802b、管802c、***802d和盒802e,表示N=5个感兴趣对象类别。利用相似度度量和相关相似度阈值,与所有这些对象不同的点云不是感兴趣对象。下面的表1示出了其中使用图7的方法700对比实际对象类别(竖向列)与预测对象类别(水平行)的矩阵。一行的所有值的总和为100%。在示例实施方式中,方法700预测锥体的3D点云以100%的概率属于锥体类别;立方体的3D点云以100%的概率属于立方体类别;管的3D点云以96%的概率属于管类别,以4%的概率属于***类别;盒的3D点云以2%的概率属于立方体类别,以2%的概率属于管类别,以96%的概率属于盒类别;并预测***的3D点云以1%的概率属于锥体类别,以10%的概率属于管类别,以89%的概率属于***类别。
表1
图9A是根据实施方式的用于一组对象的一组点云900。图9B是示出了根据实施方式的用于获得图9A的该组点云900的该组对象902的示例的框图。对象902在形状和大小上比对象802更相似。例如,三个玩具枪902a、902c、902g看起来相似。对象902包括玩具枪902a(表2中的“Sledge”)、盒902b、玩具枪902c(表2中的“Mod”)、锥体902d、管902e、立方体902f和玩具枪902g(表2中的“Roto”)。
在一个实施方式中,对象902在实验设置中的定位与图8A所示的定位类似。下面的表2示出了其中使用图7的方法700对比实际对象类别(竖向列)与预测对象类别(水平行)的矩阵。每行中所有列的总和仍然为100%。在示例实施方式中,方法700预测锥体的3D点云以100%的概率属于锥体类别;立方体的3D点云以100%的概率属于立方体类别;管的3D点云以100%的概率属于管类别;mod玩具枪的3D点云以1%的概率属于立方体类别,以92%的概率属于mod类别,以6%的概率属于roto类别,以及以1%的概率属于sledge类别;roto玩具枪的3D点云以3%的概率属于管类别,以97%的概率属于roto类别;盒的3D点云以5%的概率属于管类别,以1%的概率属于mod类别,以93%的概率属于盒类别,以及以1%的概率属于sledge类别;sledge玩具枪的3D点云以3%的概率属于管类别,以10%的概率属于盒类别,以及以87%的概率属于sledge类别。
表2
基于表2的结果,方法700保持了强类别预测,尽管对象设置更有挑战性,在大小和形状上更类似。
7.计算硬件概述
图11是示出可以在其上实现本发明的实施方式的计算机***1100的框图。计算机***1100包括通信机制,诸如用于在计算机***1100的其他内部和外部部件之间传递信息的总线1110。信息表示为可测量现象的物理信号,典型地是电压,但在其他实施方式中包括诸如磁、电磁、压力、化学、分子原子和量子相互作用的现象。例如,北极和南极磁场或者零和非零电压表示二进制数字(比特)的两个状态(0、1)。其他现象可以表示较高基数的数字。测量前多个同时量子态的叠加表示量子比特(量子位)。一个或多个数字的序列构成用于表示字符的数字或代码的数字数据。在一些实施方式中,称为模拟数据的信息由特定范围内的可测量值的近似连续区表示。计算机***1100或其一部分构成用于执行本文描述的一个或多个方法的一个或多个步骤的装置。
二进制数字序列构成用于表示字符的数字或代码的数字数据。总线1110包括许多并行的信息导体,使得信息在耦接到总线1110的器件之间快速传递。用于处理信息的一个或多个处理器1102与总线1110耦接。处理器1102对信息执行一组操作。该组操作包括从总线1110引入信息以及将信息置于总线1110上。该组操作典型地还包括比较两个或更多个信息单元、移位信息单元的位置以及诸如通过加法或乘法组合两个或更多个信息单元。待由处理器1102执行的一系列操作构成计算机指令。
计算机***1100还包括耦接到总线1110的存储器1104。存储器1104,诸如随机存取存储器(RAM)或其他动态存储器件,存储包括计算机指令的信息。动态存储器允许计算机***1100改变存储在其中的信息。RAM允许存储在称为存储器地址的位置处的信息单元独立于相邻地址处的信息被存储和检索。存储器1104还被处理器1102用以在执行计算机指令期间存储临时值。计算机***1100还包括只读存储器(ROM)1106或耦接到总线1110的用于存储包括指令的而不被计算机***1100改变的静态信息的其他静态存储器件。还耦接到总线1110的是非易失性(永久性)存储器件1108,例如磁盘或光盘,用于存储即使在计算机***1100关闭或以其他方式断电时仍然存在的包括指令在内的信息。
包括指令在内的信息被从外部输入设备1112提供给总线1110以供处理器使用,该外部输入设备例如由人类用户操作的包含字母数字键的键盘或传感器。传感器检测其附近的状况并将那些检测变换成与用于表示计算机***1100中的信息的信号兼容的信号。耦接到总线1110的主要用于与人交互的其他外部器件包括用于呈现图像的显示器件1114,诸如阴极射线管(CRT)或液晶显示器(LCD),以及指向器件1116,诸如鼠标或轨迹球或光标方向键,用于控制在显示器1114上呈现的小光标图像的位置,并发出与在显示器1114上呈现的图形元素相关联的命令。
在所示实施方式中,专用硬件诸如专用集成电路(IC)1120耦接到总线1110。专用硬件被配置成出于特殊目的执行处理器1102执行不够快的操作。专用IC的示例包括用于为显示器1114生成图像的图形加速器卡、用于加密和解密通过网络发送的消息的密码编译板、语音识别以及特殊外部器件的接口,诸如重复执行以硬件更有效地实现的一些复杂操作序列的机械臂和医疗扫描装备。
计算机***1100还包括耦接到总线1110的通信接口1170的一个或多个实例。通信接口1170提供耦接到各种外部器件的双向通信,这些外部器件利用它们自己的处理器诸如打印机、扫描仪和外部磁盘操作。一般地,耦接利用网络链路1178,该网络链路连接到本地网络1180,具有其自己的处理器的各种外部器件连接到本地网络。例如,通信接口1170可以是个人计算机上的并行端口或串行端口或通用串行总线(USB)端口。在一些实施方式中,通信接口1170是提供与相应类型的电话线的信息通信连接的综合业务数字网(ISDN)卡或数字用户线(DSL)卡或电话调制解调器。在一些实施方式中,通信接口1170是将总线1110上的信号转换为用于通过同轴电缆的通信连接的信号或转换成用于通过光缆的通信连接的光学信号的电缆调制解调器。作为另一示例,通信接口1170可以是用以提供与兼容LAN诸如以太网的数据通信连接的局域网(LAN)卡。还可以实现无线链路。载波诸如声波和电磁波包括无线电、光学和红外波,在没有线或电缆的情况下行进通过空间。信号包括载波的幅度、频率、相位、极化或其他物理特性的人为变化。对于无线链路,通信接口1170发送和接收携带信息流诸如数字数据的电信号、声信号或电磁信号,包括红外和光学信号。
术语计算机可读介质在本文中用于指涉参与向处理器1102提供信息的任何介质,上述信息包括用于执行的指令。这样的介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如存储器件1108。易失性介质包括例如动态存储器1104。传输介质包括例如同轴电缆、铜线、光纤电缆和在没有线或电缆的情况下行进通过空间的波,诸如声波和电磁波,包括无线电波、光学波和红外波。术语计算机可读存储介质在本文中用于指代除了传输介质之外参与向处理器1102提供信息的任何介质。
常见形式的计算机可读介质包括例如软盘、柔性盘、硬盘、磁带或任何其他磁介质、光盘ROM(CD-ROM)、数字视频盘(DVD)或任何其他光学介质、穿孔卡、纸带或任何其他具有孔图案的物理介质、RAM、可编程ROM(PROM)、可擦除PROM(EPROM)、FLASH-EPROM或任何其他存储器芯片或者盒式磁带、载波或计算机可以读取的任何其他介质。术语非暂时性计算机可读存储介质在本文中用于指代除了载波和其他信号之外参与向处理器1102提供信息的任何介质。
在一个或多个有形介质中编码的逻辑包括计算机可读存储介质和专用硬件诸如ASIC 1120上的处理器指令中的一个或两个。
网络链路1178典型地通过一个或多个网络向使用或处理信息的其他器件提供信息通信。例如,网络链路1178可以提供通过本地网络1180到主机计算机1182或由因特网服务提供商(ISP)操作的装备1184的连接。ISP装备1184又通过现在通常称为因特网1190的网络的公共全球分组交换通信网络提供数据通信服务。称为服务器1192、连接到因特网的计算机响应于通过因特网接收的信息提供服务。例如,服务器1192提供用于在显示器1114处呈现的、表示视频数据的信息。
本发明涉及计算机***1100用于实现本文所述技术的用途。根据本发明的一个实施方式,由计算机***1100响应于执行包含在存储器1104中的一个或多个指令的一个或多个序列的处理器1102执行那些技术。这样的指令(也称为软件和程序代码)可以从诸如存储器件1108的另一计算机可读介质读入存储器1104。包含在存储器1104中的指令序列的执行使得处理器1102执行本文描述的方法步骤。在可替代实施方式中,可以使用硬件诸如专用集成电路1120来代替软件或与软件组合以实现本发明。因此,本发明的实施方式不限于硬件和软件的任何特定组合。
经由网络链路1178和其他网络传输通过通信接口1170的信号将信息携带到计算机***1100以及携带来自该计算机***的信息。计算机***1100可以通过网络链路1178和通信接口1170、通过网络1180、1190等发送和接收包括程序代码的信息。在使用因特网1190的示例中,服务器1192通过因特网1190、ISP装备1184、本地网络1180和通信接口1170发送由计算机1100发送的消息所请求的特定应用的程序代码。所接收的代码可以在其被接收时由处理器1102执行,或者可以存储在存储器件1108或其他非易失性存储器或者两者中以供稍后执行。以这种方式,计算机***1100可以获得载波上的信号形式的应用程序代码。
将一个或多个指令序列或数据或两者携带到处理器1102以供执行可能涉及各种形式的计算机可读介质。例如,远程计算机诸如主机1182的磁盘上可以最初携带指令和数据。远程计算机将指令和数据加载到其动态存储器中,并使用调制解调器通过电话线发送指令和数据。计算机***1100本地的调制解调器接收电话线上的指令和数据,并使用红外传输器将指令和数据转换成用作网络链路1178的红外载波上的信号。用作通信接口1170的红外检测器接收红外信号中携带的指令和数据,并将表示指令和数据的信息置于总线1110上。总线1110将信息携带到存储器1104,处理器1102从该存储器检索并使用与指令一起发送的一些数据来执行指令。在存储器1104中接收的指令和数据可以可选地在由处理器1102执行之前或之后存储在存储器件1108上。
图12示出了在其上可以实现本发明的实施方式的芯片组1200。芯片组1200被编程为执行本文描述的方法的一个或多个步骤,并且包括例如结合在一个或多个物理封装(例如,芯片)中的关于图11描述的处理器和存储器部件。通过示例,物理封装包括在结构组件(例如,基板)上的一个或多个材料、部件和/或线的布置,以提供一种或多种特性,诸如物理强度、大小保持和/或电气相互作用限制。预期在某些实施方式中,芯片组可以在单个芯片中实现。芯片组1200或其一部分构成用于执行本文所述方法的一个或多个步骤的装置。
在一个实施方式中,芯片组1200包括通信机制,诸如用于在芯片组1200的部件之间传递信息的总线1201。处理器1203具有到总线1201的连接以执行指令并处理存储在例如存储器1205中的信息。处理器1203可以包括一个或多个处理核,其中每个核被配置成独立地执行。多核处理器能够在单个物理封装中实现多处理。多核处理器的示例包括两个、四个、八个或更多个处理核。可替代地或另外地,处理器1203可以包括经由总线1201依次排列配置的一个或多个微处理器,以能够实现独立执行指令、流水线和多线程。处理器1203还可以附属有一个或多个专用部件,诸如一个或多个数字信号处理器(DSP)1207或一个或多个专用集成电路(ASIC)1209,以执行某些处理功能和任务。DSP 1207典型地被配置成独立于处理器1203实时处理现实世界信号(例如,声音)。类似地,ASIC 1209可以被配置成执行不易由通用处理器执行的专用功能。帮助执行本文描述的发明功能的其他专用部件包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出)、或一个或多个其他专用计算机芯片。
处理器1203和附属部件具有经由总线1201到存储器1205的连接。存储器1205包括用于存储可执行指令的动态存储器(例如,RAM、磁盘、可写光盘等)和静态存储器(例如,ROM、CD-ROM等),该可执行指令在被执行时执行本文描述的方法的一个或多个步骤。存储器1205还存储与执行本文描述的方法的一个或多个步骤相关联或由其生成的数据。
8.改动、扩展和修改
在前面的说明书中,已经参考本发明的具体实施方式描述了本发明。然而,明显的是,在不脱离本发明的较广泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性的而非限制性的。在整个说明书和权利要求书中,除非上下文另有要求,否则词“包括”及其变体,诸如“包括(comprises)”和“包括…的(comprising)”将被理解为暗示包括所陈述的项、元素或步骤或项、元素或步骤的组,但不排除任何其他项、元素或步骤或项、元素或步骤组。此外,不定冠词“一(a)”或“一个(an)”旨在表示由该物品修改的项、元素或步骤中的一个或多个。如本文所用,除非上下文另有说明,否则如果值在另一值的两倍(两倍或一半)内,则该值“约”为另一值。尽管给出了示例范围,但是除非上下文另有说明,否则任何包含的范围也意图在各种实施方式中。因此,在一些实施方式中,范围0到10包括范围1到4。
9.参考文献
Adany,P.,C.Allen,and R.Hui,“Chirped Lidar Using Simplified HomodyneDetection,”Jour.Lightwave Tech.,v.27(16),15 August,2009.
P.J.Besl and N.D.McKay,“Method for registration of 3-D shapes,”1992,vol.1611,pp.586-606.
D.Fehr,A.Cherian,R.Sivalingam,S.Nickolay,V.Moreallas,andN.Papanikolopoulos,“Compact Covariance descriptors in 3D point clouds forobject recognition,”presented at the Robotics and Automation(ICRA),2012IEEEInternational Conference,pp.1793-1798.
Hui,R.,C.Allen,and P.Adany,“Coherent detection scheme for FM Chirpedlaser RADAR,”US patent 7,742,152,22 June 2010.
Andrew Johnson,“Spin-Images:A Representation for 3-D SurfaceMatching,”doctoral dissertation,tech.report CMU-RI-TR-97-47,RoboticsInstitute,Carnegie Mellon University,August,1997.
Kachelmyer,A.L.,“Range-Doppler Imaging with a Laser Radar,”TheLincoln Laboratory Journal,v.3.(1),1990.
K.Klasing,D.Althoff,D.Wollher and M.Buss,“Comparison of SurfaceNormal Estimation Methods for Range Sensing Applications,”in Proceedings ofthe 2009 IEEE International Conference on Robotics and Automation,Piscataway,NJ,USA,2009,p.1977-1982.
H.Salehian,G.Cheng,B.C.Vemuri and J.Ho,“Recursive Estimation of theStein Center of SPD Matrices and Its Applications,”in 2013 IEEE InternationalConference on Computer Vision(ICCV),2013,pp.1793-1800.
J.Ye,“Least Squares Linear Discriminant Analysis,”Proceedings of the24th International Conference on Machine Learning,p.1087-1093.