一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

LIDAR图像处理的制作方法

2022-06-12 06:34:38 来源:中国专利 TAG:

lidar图像处理
1.相关申请的交叉引用
2.本技术要求2019年9月6日提交的题为“lidar图像处理”的美国临时申请62/897,122的优先权并且是其pct申请,其全部内容通过引用并入本文用于所有目的。


背景技术:

3.光检测和测距(lidar)系统用于对象检测和测距,例如,用于如汽车、卡车、船等交通工具。lidar系统还用于移动应用(例如,用于面部辨识)、家庭娱乐(例如,捕获用于视频游戏输入的手势捕获)和增强现实。lidar系统通过利用来自激光器的脉冲照射一个地景,且接着测量光子行进到对象且在反射之后返回的时间来测量与对象的距离,所述时间如lidar系统的接收器所测量。分析检测到的信号以检测背景光当中的反射信号脉冲的存在。可基于从脉冲的传输到对应反射脉冲的接收的飞行时间而确定与对象的距离。
4.可能难以在所有条件下提供达到几厘米的稳健距离准确性,特别是在lidar系统的经济成本下。提供关于整个周围环境,尤其是远处物体的广泛信息的可靠数据可能更加困难。获得对这种距离物体的预先了解对于车辆导航可能很重要。
5.另外,在如车辆导航等应用中,深度信息(例如,到环境中物体的距离)是非常有用的,但是不足以避让危险并安全地导航。还必须识别特定的物体,例如,交通信号、车道标记、可能与车辆的行驶路径相交的移动对象等。但是,3d点云的分析可能需要大量计算资源来为这些应用实时执行。


技术实现要素:

6.本公开提供了用于分析lidar数据的系统和方法。例如,可以以允许重建直线图像的特定方式获得lidar数据,可以在图像之间对该直线图像应用图像处理。例如,可以使用基于内核的图像处理技术。这样的处理技术可以使用相邻的lidar和/或相关的颜色像素来调整与lidar信号相关的各种值。lidar和颜色像素的这种图像处理可以由专用电路执行,该电路可以在同一集成电路上。
7.在一些实施例中,lidar像素可以彼此相关。例如,分类技术可以将lidar和/或相关联的颜色像素识别为对应于同一对象。分类可以由人工智能(ai)协处理器执行。图像处理技术和分类技术可以组合成单个系统。
8.下文详细描述了本公开的这些和其它实施例。例如,其它实施例针对与本文所描述的方法相关联的系统、设备和计算机可读介质。
9.可以参考以下详细描述和附图来更好地了解本公开实施例的性质和优点。
附图说明
10.图1a和1b示出根据本公开实施例的汽车光测距装置,在本文中也称为lidar系统。
11.图2示出用于实施各种实施例的示例性lidar装置的框图。
12.图3说明可以通过实施例改进的典型lidar系统的操作。
13.图4示出根据本公开实施例的用于光测距系统的光传输和检测过程的说明性实例。
14.图5示出根据本公开实施例的传感器阵列和相关联电子件的各个级。
15.图6示出根据本公开实施例的直方图。
16.图7示出根据本公开实施例的用于选定像素的多个脉冲串上的直方图的累积。
17.图8示出根据本公开实施例的用于将匹配滤波器应用于原始直方图的一系列位置。
18.图9示出了根据本公开实施例的已经分配了来自像素传感器的深度值的全景lidar图像。
19.图10示出了根据本发明实施例的传感器阵列的简化正视图。
20.图11a和11b是简化概念图,其示出了在使用传感器阵列的扫描系统中指向错误的可能性。
21.图12示出了根据本公开实施例的使用f tanθ大块光学模块的成像系统的实例。
22.图13示出了根据本公开实施例的被配置为识别直方图中的信号并形成深度值的直线阵列以周期性地生成lidar帧的控制器。
23.图14示出了根据本公开实施例的包括控制器和lidar图像处理器的光测距系统。
24.图15示出了根据本公开实施例的包括控制器和lidar ai协处理器的光测距系统。
25.图16示出了根据本公开实施例的包括控制器、lidar图像处理器和lidar ai协处理器的光测距系统。
26.图17是示出根据本公开实施例的使用安装在移动设备上的光测距系统来执行测距的方法的流程图。
27.图18是示出根据本公开实施例的使用安装在移动设备上的光测距系统来执行测距的方法的流程图。
28.图19是示出使用安装在移动设备上的光测距系统执行测距的方法的流程图。
29.图20是示出根据本公开实施例的用于校正彩色图像的方法的流程图。
30.图21示出了根据本发明实施例的可与系统和方法一起使用的示例性计算机系统的框图。
31.术语
32.术语“测距”特别是当在用于测量环境或帮助车辆操作的方法和装置的背景下使用时可指代确定从一个方位或位置到另一方位或位置的距离或距离向量。“光测距”可指代利用电磁波来执行测距方法或功能的一类测距方法。因此,“光测距装置”可指代用于执行光测距方法或功能的装置。“lidar”或“lidar”可指代通过以脉冲激光照射目标且其后以传感器测量反射脉冲来测量与目标的距离的一类光测距方法。因此,“lidar装置”或“lidar系统”可指代用于执行lidar方法或功能的一类光测距装置。“光测距系统”可指代包括至少一个光测距装置(例如,lidar装置)的系统。系统可进一步包括呈各种布置的一个或多个其它装置或组件。
[0033]“脉冲串”可指代一起传输的一个或多个脉冲。脉冲串的发射和检测可称为“激发”。激发可在“检测时间间隔”(或“检测间隔”)中发生。
[0034]“测量”可包含在n次激发中发射和检测到的n多个脉冲串,每一次激发持续检测时
间间隔。整个测量可在测量时间间隔(或仅“测量间隔”)中,其可等于测量的n个检测间隔或更长,例如当在检测间隔之间发生暂停时。
[0035]“光传感器”可以将光转换为电信号。光传感器可以包含多个“光检测器”,例如,单光子雪崩二极管(spad)。光传感器可对应于测距测量中的特定分辨率像素。
[0036]“直方图”可指代表示随时间的一连串值的任何数据结构,如在时间区间(time bin)上离散的值。直方图可具有指派给每一时间区间的值。举例来说,直方图可存储在一个或多个检测间隔中的每一个中的特定时间区间期间起动的光检测器的数目的计数器。作为另一实例,直方图可对应于模拟信号在不同时间的数字化。直方图可以包含信号(例如,脉冲)和噪声。因此,直方图可以视为作为光子时间序列或光子通量的信号和噪声的组合。原始/数字化直方图(或累积光子时间序列)可含有在存储器中数字化的信号和噪声而无需滤波。“滤波直方图”可指代在原始直方图通过滤波器之后的输出。
[0037]
发出的信号/脉冲可以指代不失真的“标称”、“理想”或“模板”脉冲或脉冲串。反射信号/脉冲可指代来自对象的反射激光脉冲且可能失真。数字化信号/脉冲(或原始信号)可指代来自如存储于存储器中的检测间隔的一个或多个脉冲串的检测的数字化结果,且因此可等效于直方图的一部分。检测到的信号/脉冲可指代存储器中检测到信号的方位。检测到的脉冲串可指代由匹配滤波器找到的实际脉冲串。预期信号曲线(profile)可指代由在反射信号中具有特定失真的特定发射信号引起的数字化信号的形状。
[0038]
lidar图像可以形成由lidar像素的直线网格组成的二维(2d)图像。行数和列数可以从一个图像复制到另一个图像,以便一组图像具有相同数量的lidar像素行和列。例如,lidar(深度)像素可以具有三个值:深度值、峰值(也称为信号值)和噪声值。可以将一系列lidar图像收集为一组可以一起回放和/或分析的帧。根据2d图像中像素的行列和深度值,可以为lidar像素定义三维位置。
具体实施方式
[0039]
本公开提供了用于分析lidar数据的系统和方法。例如,可以以允许重建直线图像的特定方式获得lidar数据,可以在图像之间对该直线图像应用图像处理。传感器id(可能带有光测距装置的位置信息)可以实现信号图像之间到lidar像素的一致映射。
[0040]
对于图像处理,可以对图像使用基于内核的图像处理技术。这种处理技术可以使用相邻的lidar和/或相关的颜色像素来调整与lidar信号相关的各种值,例如深度值、峰值和检测阈值,这些值可以用于检测反射脉冲。lidar和颜色像素的这种图像处理可以由专用电路执行,该电路可以在同一集成电路上。
[0041]
在一些实施例中,lidar像素可以彼此相关。例如,分类技术可以将lidar和/或相关联的颜色像素识别为对应于同一对象。分类可以由人工智能(ai)协处理器执行。图像处理技术和分类技术可以组合成单个系统。进一步的实例可以检测对象中的关键点,例如用于图像配准或速度的确定。
[0042]
i.说明性汽车lidar系统
[0043]
图1a和1b示出根据一些实施例的汽车光测距装置,在本文中也称为lidar系统。此处选择lidar系统的汽车应用仅是出于说明起见,且本文所描述的传感器可用于其它类型的交通工具中,例如船、飞机、火车等,以及其中3d深度图像有用的多种其它应用中,如医学
成像、移动电话、增强现实、大地测量、地球空间信息学、考古学、地形学、地质学、地貌学、地震学、林业、大气物理学、激光导引、机载激光条带测绘(alsm)和激光高度测量法。根据一些实施例,lidar系统,例如扫描lidar系统101和/或固态lidar系统103可安装在车辆105的车顶上,如图1a和1b中所示。
[0044]
图1a中示出的扫描lidar系统101可采用扫描架构,其中可在车辆105外部的外部场或场景内的一个或多个视场110附近扫描lidar光源107和/或检测器电路109的定向。在扫描架构的情况下,发射的光111可如所示在周围环境上扫描。举例来说,可扫描(例如,旋转)定位于lidar系统101中的一个或多个光源(如红外或近红外脉冲ir激光,图中未示)的输出光束,以照射车辆附近的场景。在一些实施例中,由旋转箭头115表示的扫描可由机械手段实施,例如通过将光发射器安装到旋转柱或平台。在一些实施例中,扫描可通过其它机械手段实施,如通过使用电流计。也可采用基于芯片的转向技术,例如通过使用采用一个或多个基于mems的反射器的微芯片,例如数字微镜(dmd)装置、数字光处理(dlp)装置和类似物。在一些实施例中,扫描可通过非机械手段实现,例如通过使用电子信号使一个或多个光学相控阵列转向。
[0045]
对于固定架构,如图1b中示出的固态lidar系统103,一个或多个固态lidar子系统(例如,103a和103b)可安装到车辆105。每一固态lidar单元可面对不同方向(在单元之间可能具有部分重叠和/或不重叠的视场)以便捕获比每一单元自身能够捕获的视场更大的复合视场。
[0046]
在扫描或固定架构中,在场景内的对象可反射从lidar光源发射的光脉冲的部分。一个或多个反射部分接着行进回到lidar系统,且可由检测器电路检测到。举例来说,反射部分117可由检测器电路109检测到。检测器电路可与发射器安置于同一外壳中。扫描系统和固定系统的方面不是相互排斥的,且因此可组合使用。举例来说,图1b中的个别lidar子系统103a和103b可采用可转向发射器,如光学相控阵列,或整个复合单元可通过机械手段旋转,进而扫描lidar系统前方的整个场景,例如从视场119到视场121。
[0047]
图2说明根据一些实施例的旋转lidar系统200的较详细的框图。更具体地说,图2任选地说明可采用旋转电路板上的旋转致动器的旋转lidar系统,其可从固定电路板接收功率和数据(以及传输)。
[0048]
lidar系统200可与用户接口215的一个或多个示例交互。用户接口215的不同示例可变化且可包含例如具有监视器、键盘、鼠标、cpu和存储器的计算机系统;汽车中的触摸屏;具有触摸屏的手持式装置;或任何其它适当的用户接口。用户接口215可以是lidar系统200安装于其上的对象本地的,但也可以是远程操作的系统。举例来说,去往/来自lidar系统200的命令和数据可通过蜂窝式网络(lte等)、个域网(蓝牙、zigbee等)、局域网(wifi、ir等)或如因特网的广域网来路由。
[0049]
硬件和软件的用户接口215可从装置向用户呈现lidar数据,但也可允许用户以一个或多个命令控制lidar系统200。实例命令可包含激活或去激活lidar系统、指定光检测器曝光水平、偏置、取样持续时间和其它操作参数(例如,发射脉冲模式和信号处理)、指定光发射器参数(如亮度)的命令。此外,命令可允许用户选择用于显示结果的方法。用户接口可显示lidar系统结果,所述结果可包含例如单帧快照图像、恒定更新的视频图像和/或一些或所有像素的其它光测量的显示。在一些实施例中,用户接口215可跟踪对象距车辆的距离
(接近度),且潜在地向驾驶员提供警示或提供此类跟踪信息以用于对驾驶员表现的分析。
[0050]
在一些实施例中,lidar系统可与车辆控制单元217通信,且可基于接收到的lidar数据而修改与车辆的控制相关联的一个或多个参数。举例来说,在完全自主车辆中,lidar系统可提供汽车周围环境的实时3d图像以辅助导航。在其它情况下,lidar系统可用作高级驾驶员辅助系统(adas)的部分或安全系统的部分,其例如可将3d图像数据提供到任何数目的不同系统,例如自适应巡航控制、自动停车、驾驶员嗜眠监视、盲点监视、碰撞避免系统等。当车辆控制单元217可通信地耦合到光测距装置210时,可向驾驶员提供警示或可跟踪对象的接近度的跟踪。
[0051]
图2中示出的lidar系统200包含光测距装置210。光测距装置210包含测距系统控制器250、光传输(tx)模块240和光感测(rx)模块230。可由光测距装置通过从光传输模块240传输一个或多个光脉冲249到光测距装置周围的视场中的对象而产生测距数据。所传输光的反射部分239接着在一些延迟时间之后由光感测模块230检测到。基于延迟时间,可确定与反射表面的距离。也可采用其它测距方法,例如连续波、多普勒和类似方法。
[0052]
tx模块240包含可以是一维或二维发射器阵列的发射器阵列242,以及tx光学系统244,它们当结合在一起时可形成微光学发射器通道阵列。发射器阵列242或个别发射器是激光源的实例。tx模块240进一步包含处理器245和存储器246。在一些实施例中,可使用脉冲编码技术,例如巴克码(barker code)和类似物。在此类情况下,存储器246可存储指示何时应当传输光的脉冲代码。在一个实施例中,脉冲代码存储为存储于存储器中的整数序列。
[0053]
rx模块230可包含传感器阵列236,其可以是例如一维或二维光传感器阵列。每一光传感器或光敏元件(也称为传感器)可包含光检测器的集合,例如,apd或类似物,或传感器可以是单光子检测器(例如,spad)。类似于tx模块240,rx模块230包含rx光学系统237。结合在一起的rx光学系统237和传感器阵列236可形成微光学接收器通道阵列。每一微光学接收器通道测量对应于周围体积的相异视场中的图像像素的光。例如,由于光感测模块230和光传输模块240的几何配置,传感器阵列236的每一传感器(例如,spad的集合)可对应于发射器阵列242的特定发射器。
[0054]
在一个实施例中,rx模块230的传感器阵列236制造为单个衬底上的单片装置的部分(使用例如cmos技术),其包含光子检测器阵列以及用于对来自阵列中的个别光子检测器(或检测器群组)的原始直方图进行信号处理的asic 231。作为信号处理的实例,对于每一光子检测器或光子检测器组,asic 231的存储器234(例如,sram)可累积在连续时间区间上检测到的光子的计数,且这些时间区间结合在一起可用于再创建反射光脉冲的时间序列(即,光子计数对时间)。所聚集光子计数的这一时间序列在本文中称作强度直方图(或仅直方图)。asic 231可实施匹配滤波器和峰值检测处理以及时识别返回信号。此外,asic 231可实现某些信号处理技术(例如,通过信号处理器238),例如多曲线匹配滤波,以帮助恢复较不易受到由于spad饱和和骤冷而发生的脉冲形状失真影响的光子时间序列。在一些实施例中,此类滤波的全部或部分可由可实施于fpga中的处理器258执行。在一些实例中,信号处理器238和存储器234可以被认为是测距电路的一部分。例如,信号处理器238可以对在测量期间检测光子的光检测器进行计数以形成直方图,该直方图可以用于检测对应于范围(深度)值的峰值。
[0055]
在一些实施例中,rx光学系统237也可以是与asic相同的单体结构的部分,具有用
于每一接收器通道层的单独衬底层。举例来说,光圈层、准直透镜层、滤光器层和光检测器层可在切割之前在晶片级下堆叠且接合。可通过在透明衬底的顶部上布置不透明衬底或通过用不透光膜涂布透明衬底来形成光圈层。在又其它实施例中,rx模块230的一个或多个组件可在单体结构的外部。举例来说,光圈层可实施为具有销孔的单独金属薄片。
[0056]
在一些实施例中,从asic输出的光子时间序列发送到测距系统控制器250以用于进一步处理,例如,数据可由测距系统控制器250的一个或多个编码器编码,且接着作为数据包发送到用户接口215。测距系统控制器250可以多个方式实现,包含例如通过使用如fpga等可编程逻辑装置作为asic或asic的部分、使用具有存储器254的处理器258以及上述的某一组合。测距系统控制器250可与固定基础控制器协作或独立于基础控制器而操作(经由预先编程的指令)以通过发送命令来控制光感测模块230,所述命令包含开始和停止光检测和调整光检测器参数。类似地,测距系统控制器250可通过发送命令或从基础控制器转送命令来控制光传输模块240,所述命令包含开始和停止发光控制以及可调整其它光发射器参数(例如,脉冲代码)的控制。在一些实施例中,测距系统控制器250具有一个或多个有线接口或连接器以用于与光感测模块230和光传输模块240交换数据。在其它实施例中,测距系统控制器250经由如光学通信链路的无线互连与光感测模块230和光传输模块240通信。
[0057]
电动机260可以是当例如tx模块240和或rx模块230的系统组件需要旋转时需要的任选组件。系统控制器250控制电动机260且可开始旋转、停止旋转和改变转速。
[0058]
光测距装置210还可以包括lidar图像处理器和ai协处理器。对于扫描系统,光测距装置210可以包括图像重建处理器,例如,其可以根据在给定周期(例如,360
°
旋转)上进行的测量来生成2d图像。这种图像重建处理器(例如,测距系统控制器250)可以缓存输入数据并根据映射表/函数将lidar像素分配给图像中的像素,从而重建图像。可以构建图像,因为lidar像素已经存在但被布置以形成图像,例如,从一个图像到另一个图像的分辨率一致的直线图像。其他处理器可以使用重建的图像来提供最终处理的图像或提供其他数据。这些处理器、测距系统控制器250、光感测模块230和光传输模块240可以在相同的或不同的集成电路上。
[0059]
ii.反射脉冲的检测
[0060]
光传感器可以多种方式布置以用于检测反射脉冲。举例来说,光传感器可布置成阵列,且每一光传感器可包含光检测器阵列(例如,spad)。下文还描述在检测间隔期间传输的脉冲(脉冲串)的不同模式。
[0061]
a.飞行时间测量和检测器
[0062]
图3说明可由一些实施例改进的典型lidar系统的操作。激光器产生短持续时间的光脉冲310。水平轴线表示时间,且竖直轴线表示功率。由半高全宽(fwhm)表征的实例激光脉冲持续时间是几纳秒,其中单个发射器的峰值功率是约几瓦。使用侧发射器激光器或光纤激光器的实施例可具有高得多的峰值功率,而具有小直径vcsel的实施例可具有几十毫瓦到数百毫瓦的峰值功率。
[0063]
脉冲的传输的开始时间315不需要与脉冲的前沿一致。如所展示,光脉冲310的前沿可在开始时间315之后。可能希望前沿在不同模式的脉冲在不同时间传输的情形中不同,例如,对于编码的脉冲。
[0064]
光学接收器系统可在开始激光器的同时,即在开始时间处开始检测接收到的光。
在其它实施例中,光学接收器系统可在稍后时间开始,所述稍后时间是在脉冲的开始时间之后的已知时间。光学接收器系统最初检测背景光330,且在一些时间之后检测激光脉冲反射320。光学接收器系统可将检测到的光强度与检测阈值进行比较以识别激光脉冲反射320。检测阈值可区分背景光330与对应于激光脉冲反射320的光。
[0065]
飞行时间340是发送脉冲与接收脉冲之间的时间差。可通过从激光脉冲反射320的接收时间(例如,也相对于开始时间所测量)减去脉冲的传输时间(例如,如相对于开始时间所测量)来测量所述时间差。与目标的距离可确定为飞行时间与光速的乘积的一半。来自激光装置的脉冲在不同时间从场景中的对象反射,且像素阵列检测辐射反射的脉冲。
[0066]
b.使用阵列激光器和光传感器阵列的对象检测
[0067]
图4示出根据一些实施例的用于光测距系统的光传输和检测过程的说明性实例。图4示出收集系统周围的体积或场景的三维距离数据的光测距系统(例如,固态或和/或扫描)。图4是突出显示发射器与传感器之间的关系的理想化附图,且因此其它组件未图示。
[0068]
光测距系统400包含光发射器阵列402和光传感器阵列404。光发射器阵列402包含光发射器阵列,例如vcsel阵列和类似物,如发射器403和发射器409。光传感器阵列404包含光传感器阵列,例如传感器413和415。光传感器可以是像素化光传感器,其针对每一像素采用离散光检测器的集合,如单光子雪崩二极管(spad)和类似物。然而,各种实施例可部署任何类型的光子传感器。
[0069]
每一发射器可从其相邻者稍微偏移,且可配置成将光脉冲传输到与其相邻发射器不同的视场中,进而照射仅与所述发射器相关联的相应视场。举例来说,发射器403将照射光束405(由一个或多个光脉冲形成)发射到圆形视场407(其大小为清楚起见而放大)中。同样,发射器409将照射光束406(也称为发射器通道)发射到圆形视场410中。虽然图4中未示出以避免复杂化,但每一发射器将对应照射光束发射到其对应的视场中从而引起照射的视场的2d阵列(在这一实例中,21个相异的视场)。
[0070]
由发射器照射的每一视场可被认为是产生自测距数据的对应3d图像中的像素或光斑。每一发射器通道可以是每一发射器相异的且与其它发射器通道不重叠,即,在发射器集合与不重叠的场或视角的集合之间存在一对一映射。因此,在图4的实例中,系统可对3d空间中的21个相异点进行取样。更密集的点取样可通过具有更密集的发射器阵列或通过扫描发射器光束随时间的角位置以使得一个发射器可对空间中的若干点进行取样来实现。如上文所描述,可通过旋转整个发射器/传感器组合件来实现扫描。
[0071]
每一传感器可从其相邻者稍微偏移,且类似于上文描述的发射器,每一传感器可看见传感器前方的场景的不同视场。此外,每一传感器的视场与相应发射器通道的视场大体上一致,例如,与其重叠且大小相同。
[0072]
在图4中,对应发射器-传感器通道之间的距离相对于与视场中的对象的距离已放大。实际上,与视场中的对象的距离比对应发射器-传感器通道之间的距离大得多,且因此从发射器到对象的光的路径大致平行于从对象回到传感器的反射光的路径(即,其几乎是“反射回来”)。因此,系统400的前方存在一个距离范围,其中个别传感器和发射器的视场是重叠的。
[0073]
因为发射器的视场与其相应传感器的视场重叠,所以每一传感器通道理想地可检测来源于其相应发射器通道的理想地不具有串扰的反射照射光束,即,不检测来自其它照
射光束的反射光。因此,每一光传感器可对应于相应光源。举例来说,发射器403将照射光束405发射到圆形视场407中,且照射光束中的一些从对象408反射。理想地,反射光束411仅由传感器413检测到。因此,发射器403和传感器413共享同一视场,例如视场407,且形成发射器-传感器对。同样,发射器409和传感器415形成发射器-传感器对,共享视场410。虽然发射器-传感器对在图4中示出为在其相应阵列中的相同相对方位,但取决于系统中使用的光学件的设计,任何发射器可与任何传感器配对。
[0074]
在测距测量期间,来自分布于lidar系统周围的体积周围的不同视场的反射光由各种传感器收集且处理,从而得到每一相应视场中的任何对象的距离信息。如上文所描述,可使用飞行时间技术,其中光发射器发射精确定时脉冲,且在一些经过的时间之后由相应传感器检测脉冲的反射。在发射与检测之间经过的时间以及已知光速接着用以计算与反射表面的距离。在一些实施例中,可由传感器获得额外信息以确定反射表面的除距离之外的其它属性。举例来说,脉冲的多普勒频移可由传感器测得且用以计算传感器与反射表面之间的相对速度。脉冲强度可用于估计目标反射率,且脉冲形状可用于确定目标是否是硬或漫射材料。
[0075]
在一些实施例中,lidar系统可由发射器和传感器通道的相对大2d阵列构成且操作为固态lidar,即,其可获得范围数据的帧而不需要扫描发射器和/或传感器的定向。在其它实施例中,发射器和传感器可扫描,例如围绕轴线旋转,以确保发射器和传感器的集合的视场对周围体积的完整360度区(或360度区的某个有用部分)进行取样。例如在某一预定义时间周期内从扫描系统收集的范围数据可接着后处理成一个或多个数据帧,所述数据帧可接着进一步处理成一个或多个深度图像或3d点云。深度图像和/或3d点云可进一步处理成地图图块以用于3d测绘和导航应用。
[0076]
c.每一光传感器中的多个光检测器
[0077]
图5示出根据本发明的实施例的传感器阵列和相关联电子件的各个级。阵列510示出各自对应于不同像素的光传感器515(也称为像素传感器)。阵列510可以是交错阵列。在这一特定实例中,阵列510是18x4光传感器。阵列510可用于实现高分辨率(例如,72x1024),因为实施方案适合于扫描。
[0078]
阵列520示出阵列510的一部分的放大图。如可看出,每一光传感器515由多个光检测器525构成。来自像素的光检测器的信号共同贡献于所述像素的测量。如图所示,阵列510中的光传感器515可以交错排列,形成交错排列的阵列。当阵列510以对应于一次一列的增量步长扫描(例如,通过运动,例如旋转,或使用移动镜)时,光传感器515提供行数乘以列数的垂直分辨率。交错的阵列允许光传感器包括比对于相同的垂直分辨率可能包括的更多的光检测器525。
[0079]
在一些实施例中,每一像素具有大量单光子雪崩二极管(spad)单元,这增加像素自身的动态范围。每一spad可具有用于偏置、骤冷和再充电的模拟前端电路。spad通常以高于击穿电压的偏置电压进行偏置。合适的电路感测雪崩电流的前沿,产生与雪崩积累同步的标准输出脉冲,通过将偏置向下降低到低于击穿电压而使雪崩骤冷,且将光二极管恢复到操作电平。
[0080]
spad可定位以便最大化其局部区域中的填充因数,或可使用微透镜阵列,这允许在像素级的高光学填充因数。因此,成像器像素可包含spad阵列以增加像素检测器的效率。
漫射器可用于扩散通过光圈的射线且由微透镜准直。罐漫射器用于以属于同一像素的所有spad接收一些辐射的方式扩散准直射线。
[0081]
图5进一步示出检测光子532的特定光检测器530(例如,spad)。响应于检测,光检测器530产生电荷载流子(电子或空穴)的雪崩电流534。阈值电路540通过将雪崩电流534与阈值进行比较来调节所述雪崩电流。当检测到光子且光检测器530正常工作时,雪崩电流534上升到高于比较器阈值,且阈值电路540产生指示spad电流雪崩的准确时间的时间上准确二进制信号545,这又是光子到达的准确测量。电流雪崩与光子到达的关联可以纳秒的分辨率发生,进而提供高时序分辨率。二进制信号545的上升沿可由像素计数器550锁存,该计数器可以是测距电路的一部分。
[0082]
二进制信号545、雪崩电流534和像素计数器550是可由包括一个或多个spad的光传感器提供的数据值的实例。数据值可从来自多个光检测器中的每一个的相应信号确定。可将相应信号中的每一个与阈值进行比较以确定对应光检测器是否被触发。雪崩电流534是模拟信号的实例,且因此相应信号可以是模拟信号。
[0083]
像素计数器550可使用二进制信号545对已经在受周期性信号560控制的特定时间区间(例如,1、2、3等纳秒的时间窗)期间由一个或多个光子触发的用于给定像素的光检测器的数目进行计数。像素计数器550可存储用于给定测量的多个时间区间中的每一个的计数器。用于每一时间区间的计数器的值可开始于零,且基于指示检测到光子的二进制信号545而递增。当像素的任何光检测器提供此类信号时,计数器可递增。
[0084]
周期性信号560可通过锁相回路(pll)或延迟锁定回路(dll)或产生时钟信号的任何其它方法产生。周期性信号560和像素计数器550的协调可充当时间-数字转换器(tdc),其是用于辨识事件且提供它们发生的时间的数字表示的装置。举例来说,tdc可输出每一检测到的光子或光学脉冲的到达时间。测量时间可以是两个事件(例如,开始时间和检测到的光子或光学脉冲)之间经过的时间而不是绝对时间。周期性信号560可以是在包括像素计数器550的一组存储器之间切换的相对快时钟。存储器中的每一寄存器可对应于一个直方图区间,且时钟可以取样间隔在它们之间切换。因此,当相应信号大于阈值时,指示触发的二进制值可发送到直方图电路。直方图电路可聚集跨越多个光检测器的二进制值以确定在特定时间区间期间触发的光检测器的数目。
[0085]
时间区间可相对于开始信号进行测量,例如在图3的开始时间315。因此,恰好在开始信号之后的时间区间的计数器可具有对应于背景信号的低值,所述背景信号例如背景光330。最后一个时间区间可对应于给定脉冲串的检测时间间隔(也称为激发)的结束,这在下一部分中进一步加以描述。周期性信号560自从开始时间起的循环数目可充当雪崩电流534的上升沿指示检测到的光子时的时戳。时戳对应于用于像素计数器550中的特定计数器的时间区间。此类操作不同于跟随光二极管(例如,对于雪崩二极管(apd))的简单模/数转换器(adc)。时间区间的计数器中的每一个可对应于直方图,这在下文更详细地描述。因此,虽然apd是具有有限增益的用于输入光学信号的线性放大器,但spad是提供在时间窗中发生的触发事件的是/否的二进制输出的触发器装置。
[0086]
d.脉冲串
[0087]
测距也可通过使用脉冲串实现,所述脉冲串被界定为含有一个或多个脉冲。在脉冲串内,脉冲的数目、脉冲的宽度以及脉冲之间的持续时间(统称为脉冲模式)可基于若干
因数而选择,所述因数中的一些包含:
[0088]
1-最大激光占空比-占空比是激光器接通的时间的分数。对于脉冲激光,这可通过如上文所解释的fwhm以及在给定周期期间发射的脉冲数目来确定。
[0089]
2-眼睛安全性限制-这是由装置在不伤害恰巧观看lidar系统的方向的旁观者的眼睛的情况下可发射的最大辐射量确定。
[0090]
3-功耗-这是发射器为了照射场景而消耗的功率。
[0091]
举例来说,脉冲串中的脉冲之间的间隔可以是约单位数或10位数纳秒。
[0092]
可在一个测量的时间跨度期间发射多个脉冲串。每一脉冲串可对应于不同时间间隔,例如在用于检测先前脉冲串的反射脉冲的时间限制到期之前不发射后续脉冲串。
[0093]
对于给定发射器或激光装置,脉冲串的发射之间的时间决定最大可检测范围。举例来说,如果脉冲串a在时间t0=0ns处发射,且脉冲串b在时间t1=1000ns处发射,那么不得将在t1之后检测到的反射脉冲串指派给脉冲串a,因为它们更可能是来自脉冲串b的反射。因此,脉冲串之间的时间和光速界定以下等式中给出的系统的范围上的最大界限。
[0094]rmax
=c
×
(t
1-t0)/2
[0095]
激发(脉冲串的发射和检测)之间的时间可以是约1μs以允许整个脉冲串有足够时间行进到大致150米远的遥远对象,且接着返回。
[0096]
iii.来自光检测器的直方图信号
[0097]
lidar系统的一个操作模式是时间相关单光子计数(tcspc),其是基于对周期性信号中的单个光子的计数。这一技术良好适用于低水平的周期性辐射,这在lidar系统中是合适的。这一时间相关计数可受图5的周期性信号560控制且可使用时间区间,如针对图5所论述。
[0098]
周期性信号的频率可指定时间分辨率,在所述时间分辨率内测量信号的数据值。举例来说,可在周期性信号的每周期针对每一光传感器获得一个测量值。在一些实施例中,测量值可以是在所述周期期间触发的光检测器的数目。周期性信号的时间周期对应于时间区间,其中每一周期是不同时间区间。
[0099]
图6示出根据本发明的实施例的直方图600。水平轴线对应于如相对于开始时间615所测量的时间区间。如上文所描述,开始时间615可对应于脉冲串的开始时间。可考虑脉冲串的第一脉冲的上升沿与脉冲串和检测时间间隔中的任一个或两个的开始时间之间的任何偏移,其中确定接收时间将用于飞行时间测量。竖直轴线对应于触发的spad的数目。在某些实施例中,竖直轴线可对应于跟随apd的adc的输出。举例来说,apd可展现传统的饱和效应,如恒定最大信号而不是spad的基于死时间(dead-time)的效应。一些效应可针对spad和apd两者发生,例如,极倾斜表面的脉冲拖尾可针对spad和apd两者发生。
[0100]
用于时间区间中的每一个的计数器对应于直方图600中的不同条。在早期时间区间的计数器是相对低的且对应于背景噪声630。在一些点处,检测到反射脉冲620。对应计数器大得多,且可高于在背景与检测到的脉冲之间区分的阈值。反射脉冲620(在数字化之后)示出为对应于四个时间区间,这可能由具有类似宽度的激光脉冲引起,例如当时间区间各自是1ns时的4ns脉冲。但如下文更详细地描述,时间区间的数目可例如基于激光脉冲的入射角中的特定对象的属性而变化。
[0101]
对应于反射脉冲620的时间区间的时间方位可用于例如相对于开始时间615确定
接收时间。如下文更详细地描述,匹配滤波器可用于识别脉冲模式,进而有效地增加信噪比,而且更准确地确定接收时间。在一些实施例中,确定接收时间的准确度可小于单个时间区间的时间分辨率。举例来说,对于1ns的时间区间,所述分辨率将对应于约15cm。然而,可能需要具有仅几厘米的准确度。
[0102]
因此,检测到的光子可导致直方图的特定时间区间基于其相对于例如由开始时间615指示的开始信号的到达时间而递增。开始信号可以是周期性的,使得在测量期间发送多个脉冲串。每一开始信号可同步到激光脉冲串,其中多个开始信号使得在多个检测间隔内传输多个脉冲串。因此,时间区间(例如,在开始信号之后从200到201ns)将针对每一检测间隔发生。直方图可累积计数,其中特定时间区间的计数对应于跨越多个激发全部在所述特定时间区间中发生的所测量的数据值的总和。当检测到的光子基于此类技术做直方图时,其导致返回信号的信噪比比单个脉冲串大了所作出激发次数的平方根。
[0103]
图7示出根据本发明的实施例的用于选定像素的多个脉冲串上的直方图的累积。图7示出三个检测到的脉冲串710、720和730。每一检测到的脉冲串对应于具有以相同时间量分隔的两个脉冲的相同模式的所传输脉冲串。因此,每一检测到的脉冲串具有相同脉冲模式,如由具有明显值的两个时间区间所示。用于其它时间区间的计数器为了便于说明而未图示,但其它时间区间可具有相对低的非零值。
[0104]
在第一检测到的脉冲串710中,用于时间区间712和714的计数器是相同的。这可由在两个时间区间期间检测到光子的光检测器的相同数目引起。或在其它实施例中,在两个时间区间期间检测到大致相同数目的光子。在其它实施例中,多于一个连续时间区间可具有连续非零值;但为便于说明,已经示出个别非零时间区间。
[0105]
时间区间712和714分别在开始时间715之后的458ns和478ns发生。用于其它检测到的脉冲串的所显示的计数器相对于其相应开始时间在相同时间区间发生。在这一实例中,开始时间715被识别为在时间0处发生,但实际时间是任意的。用于第一检测到的脉冲串的第一检测间隔可以是1μs。因此,从开始时间715测量的时间区间的数目可以是1,000。然后,这一第一检测间隔结束,可传输和检测新的脉冲串。不同时间区间的开始和结束可受时钟信号控制,所述时钟信号可以是充当时间-数字转换器(tdc)的部分电路,例如在图5中所描述。
[0106]
对于第二检测到的脉冲串720,开始时间725是在1μs,例如在此时可发射第二脉冲串。此类单独检测间隔可发生以使得在第一检测间隔的开始传输的任何脉冲将已经被检测到,且因此不会造成在第二时间间隔中检测到的脉冲的混淆。举例来说,如果激发之间不存在额外时间,那么电路可能混淆在200m处的回反射停止标志与在50m处的少得多反射的对象(假定约1us的激发周期)。用于脉冲串710和720的两个检测时间间隔可以是相同长度且与相应开始时间具有相同关系。时间区间722和724发生在与时间区间712和714相同的458ns和478ns的相对时间。因此,当累积步骤发生时,可添加对应计数器。举例来说,可一起添加在时间区间712和722处的计数器值。
[0107]
对于第三检测到的脉冲串730,开始时间735是在2μs,例如其中可发射第三脉冲串。时间区间732和734也相对于其相应开始时间735发生在458ns和478ns。即使所发射脉冲具有相同功率,在不同时间区间的计数器也可具有不同值,例如原因在于光脉冲离开对象的散射过程的随机性质。
[0108]
直方图740示出来自在时间区间742和744处的三个检测到的脉冲串的计数器的累积,所述时间区间也对应于458ns和478ns。直方图740可具有在相应检测间隔期间测量的较少数目的时间区间,例如原因在于丢弃在开始或结束时的时间区间,或具有小于阈值的值。在一些实施方案中,取决于脉冲串的模式,约10到30个时间区间可具有明显的值。
[0109]
举例来说,在测量期间发射以创建单个直方图的脉冲串的数目可以是约1到40个(例如,24),但还可高得多,例如50、100或500。一旦测量完成,就可复位用于直方图的计数器,且可发射脉冲串的集合以执行新的测量。在各种实施例中且取决于相应持续时间中的检测间隔的数目,可每25、50、100或500μs执行测量。在一些实施例中,测量间隔可重叠,例如,因此给定直方图对应于脉冲串的特定滑动窗口。在此类实例中,存储器可存在以用于存储多个直方图,每一直方图对应于不同时间窗。施加于检测到的脉冲的任何权重对于每一直方图可以是相同的,或此类权重可独立地受控制。
[0110]
iv.生成lidar(深度)图像
[0111]
深度图像(或lidar图像或帧)可以从对应于不同像素传感器的一组直方图生成,其可能在不同时间拍摄。例如,图5的交错的阵列510可用于为一次测量获得一组直方图;可以扫描阵列(例如,线性移动或旋转),然后可以进行一组新的测量。给定像素传感器的每个直方图可用于确定lidar图像中像素的深度值(例如,覆盖360
°
的像素的直线阵列)。
[0112]
为了确定lidar图像,可以将匹配滤波器应用于每个直方图以确定深度值。深度值(以及潜在的峰值/信号值和噪声值)可以分配给lidar图像的直线2d阵列中的特定像素。可以基于阵列中的位置和旋转的角位置进行分配。下面提供了生成lidar图像的更多细节。
[0113]
a.匹配滤波和峰值检测
[0114]
如上文所提及,匹配滤波器可用于确定检测到的脉冲的时间位置(接收时间)。接收时间可以随后用以确定脉冲的总飞行时间,这可以随后转换为距离。
[0115]
图8示出根据本公开实施例的用于将匹配滤波器应用于原始直方图的一系列位置。所述系列位置可以视为滑动位置,因为滤波器在原始直方图上滑动(移动)。原始直方图802描绘单个像素的检测到的脉冲周围的相对小时间窗。滤波器804对应于数字化脉冲的形状。直方图802和滤波器804都具有理想化形状以便于呈现。图8的左侧的系列绘图示出滤波器804相对于直方图802的不同位置。滤波器804在每一连续绘图中移位一个时间区间。
[0116]
产生于滤波器804对直方图802的应用的经滤波的输出在图8的右侧显示。条形图示出在每一位置在滤波器804与直方图802之间的重叠水平。经滤波的输出810对应于第一位置,其中滤波器804与直方图802之间的重叠是仅一个时间区间。经滤波的输出810的竖直轴线是重叠量的任意单位,例如,滤波器804和直方图802的对应值的乘法乘积的总和。经滤波的输出810的值在对应于滤波器804的中心的时间区间处示出。这可以当将检测脉冲的中心时完成。在其它实施例中,经滤波的输出的值可以在对应于滤波器的最左边区间的时间示出。这可以当将检测脉冲的上升沿时完成。中心和上升沿的值可以从另一个导出。例如当脉冲串中的脉冲是不同宽度时限定第一滤波器分接头的位置(基本上是上升沿)可以更容易。不同宽度可以由不同的发射宽度引起或由于检测到的强度不同而引起。
[0117]
经滤波的输出820对应于第二位置,其中重叠是两个时间区间,且因此所得值是经滤波的输出810中的两倍。示出的值显示不同时间区间,随后是经滤波的输出810,因为滤波器804已向右移位一个时间区间。经滤波的输出830对应于第三位置,其中重叠是三个时间
区间。经滤波的输出840对应于第四位置,其中重叠是四个时间区间。经滤波的输出850对应于安全位置,其中重叠是五个时间区间。容易看见,第五位置是最高的,对应于滤波器804与直方图802之间的完美重叠。
[0118]
最终经滤波的输出890示出在滤波器804与直方图802之间具有某个水平的重叠的9个位置中的每一个处的值。可以分析此经滤波的输出以识别对应于检测到的脉冲的接收时间的最大值。在各种实施方案中,此时间可以直接记录或修改(例如,识别前沿将在何处)作为飞行时间测量的部分。
[0119]
滤波输出890(也称为滤波直方图)中的最大值可以被识别为峰值895(也称为峰值或信号值)。峰值895的时间区间对应于接收脉冲的检测时间。在一些实施例中,可以使用插值滤波器来确定比时间区间的宽度更精细的分辨率。该检测到的时间可以对应于基于何时发射脉冲串的距离(深度值)。
[0120]
b.为深度图像分配深度值
[0121]
从直方图确定的深度值可以组织成lidar图像,例如完整的360度全景lidar图像。如上所述,lidar装置可以旋转,并在指定的角位置获得测量值。可以聚合不同角位置的深度值以提供lidar图像。深度值的聚合(分配)可以说明每个光传感器的特定位置以及何时(例如,角位置)获得导致深度值的测量值。
[0122]
图9示出了根据本公开实施例的已经分配了来自像素传感器的深度值的全景lidar图像903。来自像素传感器910a的深度值被分配给lidar图像903中的深度像素911(也称为lidar像素)。图9示出了用于lidar装置的两个角位置的一些像素传感器910的分配。角位置可以由旋转编码器产生。来自给定像素传感器在给定位置的测量值的分配可以使用映射(分配)表或函数,其可以是硬编码的或存在于内存中。下面提供了一个分配实例。
[0123]
顶部水平轴902描绘了扫描lidar装置的方位角(角位置)。如图所示,在0
°
和1
°
之间有七个角位置。交错的像素传感器向右移动一个角位置,该角位置对应于lidar图像中的一列。测量间隔可以跨越角位置的范围。
[0124]
为了简单起见,假设光感测模块(例如,图2的230)具有像素传感器的2
×
4交错阵列,每个像素传感器可以由多个光检测器组成。8个像素传感器的测量结果提供了与角位置数量相对应的8行和多列的图像。假设每度有7个角位置,水平分辨率将为2,520。其他像素传感器阵列和角位置的测量频率将分别提供其他垂直和水平分辨率。
[0125]
在所示实例中,分配如下。在角位置#1,交错阵列左上角的像素传感器被分配给左上角的深度像素。第二列的顶部像素分配给第二行第二列的像素(位置2:2)。移动到位置#2后,左上角像素传感器将移动到深度像素1:2,因为它位于顶部垂直位置,但现在位于第二列。
[0126]
一旦lidar装置位于最终位置(例如位置2,520),将分配2:1的深度像素,因为第二列中的顶部像素传感器将与lidar图像中的第一列对齐。
[0127]
如上所述,可以使用不同的映射(分配)。例如,数据可以以特定顺序从传感器阵列顺序流入,或者带有指示哪些数据对应于哪个像素传感器和在哪个位置的标识符。可以根据数据的真实空间关系(例如,由映射表定义的)将数据在内存缓存器中重新排列为直线图像,从而可以将图像作为图像有效地处理。因此,可以使用各种技术在存储器中重建从数据流源导出的lidar图像。
[0128]
可以对所得lidar图像的深度值进行过滤和处理,以提高准确性、纠正缺失信息或噪声数据等。深度像素的空间关系对应于指定位置的光传感器的空间关系。这些空间关系可用于处理lidar图像,例如,如何使用滤波器内核,以及由ai协处理器处理,这可以使用机器学习将一组深度像素分类为对应于同一对象。
[0129]
c.颜色和深度
[0130]
除了测量深度,实施例还可以测量环境光的颜色。这种颜色传感器可以在同一个传感器上。可以测量各种波长的环境光,包括可见光谱之内或之外的波长。在此,术语颜色应广义地解释为涵盖任何波长范围。也可以使用除颜色之外的光学性质的其他测量,例如偏振数据,例如近双折射、圆双折射(也称为旋光或旋光色散)、线性二色性和圆二色性。颜色只用作一个例子,颜色的描述也可以适用于光学性质的其他测量。
[0131]
图10示出了根据本发明实施例的传感器阵列1000的简化正视图。传感器阵列1000可以包括多个lidar传感器1002;该实例显示了十六个lidar传感器1002,但可以包括任意数量的lidar传感器202。在此实例中,lidar传感器1002以交错的方式布置;然而,这不是必需的,并且在一些实施例中,lidar传感器1002可以布置在单个列中(在此实例中,列平行于图10的左侧所示的z轴延伸)。
[0132]
在此实例中,每个lidar传感器1002与传感器阵列1000的“行”1004关联。(此处的术语“行”用于指示元件的线性或近似线性布置;图10中的行由虚线表示。)除了lidar传感器1002,传感器阵列1000的每行还包含一个或多个环境光传感器1006。在此实例中,环境光传感器1006r检测红光,环境光传感器1006g检测绿光,并且环境光传感器1006b检测蓝光;然而,可以使用任何数量和组合的环境光传感器。下文描述了另外的实例。每行可以包含用于生成多光谱像素的完整传感器集。如传感器阵列1000的传感器阵列在本文中被称为“基于行的”或“1d”传感器阵列。
[0133]
其他实例可以在2d阵列中具有一组完整的传感器,而不是在单行中。当lidar装置的移动方向不止一个时,可能会出现这种2d阵列。无论传感器布置如何,都可以在每个位置捕获不同类型的光学数据。此外,一些数据可能来自完全不同的传感器系统,该系统已针对主lidar传感器进行空间校准,因此可以将某个位置的测量数据映射到图像中的特定像素。因此,可以在不同时间将数据流式传输到图像缓存器中。图像处理可以等到缓存的图像完全重建,所有数据层都填充到图像区域中的所有像素的缓存器中,然后处理图像的该部分。
[0134]
lidar和环境光传感器可以以与图9中类似的方式分配。但是,环境光传感器可以分配给彩色图像,而lidar传感器可以分配给lidar图像。因此,可以基于传感器在同一行中或使用映射表对颜色像素与lidar像素进行相关。
[0135]
d.在lidar图像中形成可再现的像素直线网格
[0136]
如上所述,传感器阵列可用于生成像素的直线网格,即使当该阵列包括多列并且传感器阵列在各个位置之间移动以生成图像时也是如此。
[0137]
在一些实施例中,可以在角度扫描或旋转模式下使用上述类型的传感器阵列,使得传感器阵列的行中的不同传感器通道对视野中的特定区域进行连续成像(即,从中感测光子)。出于描述的目的,假设在扫描操作期间,传感器系统绕横向于行的轴线旋转,并且用作传感器系统的传感器通道旋转不同角度。(应当理解,在不移动传感器阵列的情况下也可以实现本文所述的扫描行为,例如,通过使用mems反射镜在不同的时间将来自物体空间不
同区域的光反射到阵列上。)还假设传感器阵列和大块光学模块在传感器系统中彼此保持固定关系,使得给定的传感器通道与体成像光学器件的光轴具有固定的空间关系,并穿过大块光学模块的相同部分“看见”,无论系统在空间中的定向如何。
[0138]
为了简化图像分析,通常令人期望的是,扫描传感器系统对物体空间进行均匀采样。在这种情况下,物体空间像素的网格被认为沿着扫描方向布置成行,并沿横向于扫描方向的方向布置成列。在扫描方向上,令人期望的是,当传感器阵列旋转时,同一行中的不同传感器通道(例如,图10的传感器阵列1002的相同行1004中的所有传感器通道)对相同的物体空间像素进行采样(在一些不同的时间)。如下所述,这可以部分地通过使采样间隔与传感器阵列的旋转相协调来实现。然而,同样重要的是,要避免由于不同传感器通道相对于大块光学模块的光轴位置不同而导致的指向错误。因此,在一些实施例中,与扫描传感器系统中的传感器阵列一起使用的大块光学模块被设计成在扫描方向和非扫描方向上均提供均匀的采样。
[0139]
图11a和11b是简化概念图,其示出了在使用传感器阵列的扫描系统中指向错误的可能性。
[0140]
图11a示出了具有均匀间隔的传感器通道1102a-1102d的传感器阵列1100的行,所述传感器通道可以对应于例如图10的传感器阵列1000的行1004中的传感器通道。每个传感器通道具有穿过大块光学器件1110的通道视野,如虚线所示。椭圆1104a-1104d所表示的均匀间隔的物体空间像素与传感器通道1102a-1102d的通道视野对准。
[0141]
图11b示出了旋转一定角度以使传感器通道1102a大致指向物体空间像素1104b之后的传感器阵列1100。传感器通道1102b指向物体空间像素1104c的左侧,并且传感器通道1102c大致指向物体空间像素1104d。
[0142]
从图11b中可以看出,存在指向错误。例如,传感器通道1102b的视野不指向物体空间像素1104c,而传感器通道1102c的视野未与物体空间像素1104d精确对准。本文中使用术语“像素内指向误差”来指代标称地指向相同物体空间像素的传感器通道之间的视野差异。(这些差异相对于物体空间像素在“像素内”。)在一些实施例中,令人期望的是,当收集多光谱像素数据时,控制像素内指向误差。
[0143]
除了像素内指向误差之外,传感器系统还可能具有“像素间指向误差”,这是指物体空间像素在行(扫描)方向或列(非扫描)方向上的不均匀间隔。在扫描传感器系统中,可以通过控制相对于传感器系统的旋转角度的快门间隔(例如,如下所述)并通过限制像素内指向误差或者通过对每个像素具有独立的快门控制以完全消除像素间的误差来实现扫描方向上像素间隔的均匀性。在非扫描方向上,令人期望的是,沿着列的物体空间像素均匀地间隔,并且物体空间中的列映射到图像空间中的列。在这方面,还应注意,一些传感器阵列(例如,传感器阵列1000)可以包含交错的传感器(例如,lidar传感器1002)的集合。在这种情况下,可以通过扫描阵列并控制快门间隔以创建列对准来对单列物体空间像素进行成像。例如,在传感器阵列1000的情况下,图像的一列可以具有十六个像素,即使十六个传感器通道1002不在传感器阵列1000的一列中对准,如上所述。在没有这种对齐或有一些对齐错误的实施方式中,lidar系统可以识别最接近的整数直线像素坐标以存储在图像缓存器中。在一些实例中,可以量化和保存指向误差,并用于以后的校正,例如,通过使用测量值(例如,深度、颜色等)和来自直线像素坐标的指向误差的插值或回归。
[0144]
在一些实施例中,通过提供具有焦距畸变轮廓的大块光学模块来实现期望的成像行为,其中,光线的位移与光线的入射角(θ)的切线变化成线性关系。具有这种焦距畸变轮廓的透镜(或透镜系统)通常被称为“f tanθ”透镜(表明图像平面上的位移距离是tanθ的线性函数)或“平场”透镜。对于小角度θ,f tanθ透镜具有以下属性:光线在图像平面(即,传感器阵列)上的位移与光线的入射角(θ)的变化成近似线性关系。在扫描方向上,这提供了减少像素内指向误差的期望行为。在非扫描方向上,这样可以提供均匀的物体空间采样,并且允许物体空间像素的列映射到图像空间像素的列(即使传感器以交错方式布置)。
[0145]
图12示出了根据本公开实施例的使用f tanθ大块光学模块的成像系统的实例。图像平面1202包含以均匀距离p(在被窝中也被称为“线性间距”)分开的一行传感器1204a-g。传感器1204a-g可以是例如上述任何多光谱传感器阵列中的传感器通道的一行(或一行的一部分),或者是从给定方向检测光子的其它传感器。大块光学模块1206定位在图像平面1202上方一定距离f处,其中f是大块光学模块1206的焦点。在此实例中,大块光学模块1206被表示为单个双凸透镜;然而,应当理解,可以使用其它透镜或多透镜系统。
[0146]
大块光学模块1206可以被设计成将来自视野(或物体空间)的光聚焦到图像平面1202上。例如,光线1220a-1220g指示传感器1204a-1204g的主光线。(应当理解,未示出穿过大块光学模块1206的光的实际路径。)
[0147]
大块光学模块1206具有f tanθ焦距畸变轮廓。(本领域技术人员将理解如何创建具有这种轮廓的大块光学模块,并且详细说明被省略。)结果,至少对于小角度,光线的入射角的均匀变化导致折射光线与图像平面相交的点移位均匀的距离,而与原始入射角无关。例如,对于光线1220a、1220b,入射角之差为α,并且光线1220a、1220b在图像平面处被线性间距p分开。光线1220b、1220c的入射角之差也为a,并且对应的折射光线1220b、1220c在图像平面处也被线性间距p分开。因此,如果图像平面1202和大块光学模块1206一起旋转一个角度α,则从点1230a发出的光线1220a将(近似)成为传感器1204b的主光线,而从点1230b发出的光线1220b将(近似)成为传感器1204c的主光线,依此类推。
[0148]
在图像平面处对应于线性间距p的旋转角度α在本文中被称为扫描系统的“角间距”,并且α的值是根据传感器间距p和大块光学模块的属性确定的。在扫描测距/成像系统中(大块光学模块提供角间距α,使得以角度α扫描系统会导致入射光线移位一个线性间距单位p),通过以一系列时间步长获取图像,行中的不同传感器通道可以对视野的相同部分进行成像,其中传感器阵列在每个时间步长处以角间距α旋转(或旋转较小的角度,使得α是扫描间距的整数倍)。
[0149]
e.用于生成直线lidar帧的控制器
[0150]
如上所述,即使当多个像素共享相同的大块光学元件并且当光感测模块旋转或通过其他方式扫描时,也可以生成直线lidar帧。因此,深度像素的图像可以从直方图生成并分配给直线阵列中的像素。因此,lidar像素的相对位置可以形成一种模式,从而可以应用图像处理技术。相比之下,lidar数据通常形成为独立的点云,当存储在帧缓存器中时,这些点云的结构不一致。
[0151]
图13示出了根据本公开实施例的被配置为识别直方图中的信号并形成深度值的直线阵列以周期性地生成lidar帧的控制器1350。控制器1350可以在与光感测模块(例如,图2的230)相同的集成电路或不同的集成电路上。在其他实例中,一个或多个组件可以驻留
在光感测模块上。在又一实例中,控制器1350的不同组件可以在不同的集成电路上。控制器1350可以执行与图2的测距系统控制器250相似或相同的功能。如下所述,控制器1350可以充当图像重建处理器。
[0152]
如上所述,光感测模块(例如,图2的230)可以生成在测量间隔期间跨多个发射检测到的光子计数的直方图。在测量期间,可为光感测模块的传感器阵列(例如,图5的510)中的每个传感器(例如,图5的515)生成直方图。每个传感器都可以分配一个特定的id。在电流测量结束后,可以将直方图发送到控制器1350。直方图可以串行发送(例如,首先发送传感器id 1的直方图,其次发送传感器id2的直方图,等等)或分批发送,例如全部并行发送。
[0153]
直方图可以作为包含传感器id的数据结构的一部分发送。在另一实例中,可以以指定的顺序发送直方图,使得直方图在数据流中的位置可以指示传感器id(例如,可以知道直方图长度n,以便数据的下一个时间区间(n 1)可以对应下一个传感器id)。当新图像的重建开始时,传感器id的分配然后可以返回一开始。因此,检测电路(例如,光感测模块的全部或部分)可以以指定的顺序提供深度值,并且图像重建电路可以基于指定的顺序为特定的深度值分配传感器id。
[0154]
直方图可以提供给匹配滤波器1310,该匹配滤波器可以应用滤波器来提供滤波后的直方图,如图8所示。可以使用各种匹配滤波器来提供各种滤波后的直方图,例如,以检测所检测到的脉冲的不同形状。滤波后的直方图可以提供给峰值检测器1320。在一些实例中,匹配滤波器1310和峰值检测器1320中的一些或全部可以是测距电路的一部分。
[0155]
峰值检测器1320可以分析滤波后的输出并确定对应于峰值的位置(例如,时间区间或更高分辨率)。然后可以使用这些范围(深度)值来形成图像,例如,用于lidar装置的当前扫描。第一图像显示为被填充。第一图像可以驻留在一个缓存器中。一旦缓存器被填充或至少缓存器的指定部分(例如,对应于协处理器的内核大小的像素子集),就可以将帧发送到一个或多个协处理器以进行进一步分析。帧缓存器可以是作为fifo运行的存储器组。因此,图像重建电路可以确定何时已经为第一lidar图像存储了第一lidar像素的指定子集,并将第一lidar像素的指定子集发送到基于内核的协处理器。
[0156]
峰值检测器1320还可以测量信号值和噪声值,有效地为lidar像素提供一些信噪比测量。信号值可以对应于直方图中峰值处的光子计数数量,噪声值可以对应于峰值区域之外的时间区间中的背景水平。在各种实施例中,工作波长(例如,发射光源的)的光量可以用于估计噪声,或者可以使用其他波长。因此,lidar像素可以包括范围(深度)值、信号值和噪声值。信号值对应于从场景中的对象反射的光量。噪声值对应于与lidar系统运行的波长相同的场景中环境光水平的测量值。
[0157]
在其他实施例中,匹配滤波器可以测量噪声并向峰值检测器提供一些信噪比测量,峰值检测器使用该信息来检测信号的范围。在一些情况下,峰值检测器可以确定信号不够强,并因此从图像中省略lidar像素,例如通过提供null值来存储在图像中。在其他情况下,这些值最初被存储,以便流水线的后续阶段可以确定是否向用户提供给定像素的特定深度值。
[0158]
还可以接收光发送模块的位置(例如,角位置),其中每个位置对应于使用光感测模块的传感阵列的不同测量。扫描(例如,旋转)由一组位置上的一系列测量组成。在各种实例中,位置可以在新测量开始时由控制器接收,可以从光感测模块接收,从不同模块(例如,
编码模块)接收,或者使用直方图,以及合适的这些选项的组合。
[0159]
对于给定的测量,多个像素传感器可以各自提供直方图。与直方图数据一起,像素传感器可以提供像素id,用于识别传感器电路上的特定传感器。像素id可用于确定图像中的哪个像素填充有从相应直方图确定的给定深度值。如本文所述,将数据分配给像素可以使用查找表,其中像素映射到直线帧缓存器中。可以使用图像重建电路1325来执行将数据分配给像素,该图像重建电路可以与峰值检测器1320分离或作为其一部分并且可以是测距电路的一部分。如上所述,检测电路可以将每个深度值的传感器id提供给图像重构电路。
[0160]
映射表1330可以指定哪些像素id对应于lidar图像中的哪些像素。映射表1330可以基于传感器id和光感测装置(模块)的当前位置识别图像中的对应像素以填充给定深度值。一旦光感测装置移动到新位置,控制器1350就可以为要提供的下一组直方图提供新的分配。例如,分配可以从映射表1330加载到峰值检测器。映射可以以与图9所示类似的方式执行。例如,映射表的每一行可以具有传感器id的列和指定lidar像素的另一列,例如2d坐标,其可以指定为x,y。
[0161]
如针对第一次扫描所示,匹配滤波器1310接收直方图,每个直方图对应于特定像素。可以使用像素id来确定像素,例如,指定阵列中的哪个传感器用于生成直方图的数字。在一些实施例中,控制器可以基于在来自光感测装置的数据流中接收直方图的顺序来分配像素id。例如,控制器1350可以跟踪新图像何时开始,例如基于旧图像缓存器已满或基于从光感测装置接收到的测量值,例如旋转编码器位置。第一个直方图将对应于像素id#1。根据光传感设备按指定顺序输出直方图,可以知道接下来的n-1个直方图的对应关系。
[0162]
对于传感器阵列具有64个传感器的实例,第二角位置将具有65-128的传感器id范围。对于类似于图9的映射,传感器id 65将是第一个(顶部)像素,但向右移动一列(如果逆时针旋转,则向左移动),如图所示。如果传感器阵列有四列16个传感器,则传感器id 17对应于第二列第二行中的像素,因为传感器阵列是交错的。取决于传感器阵列的形状,可以使用各种映射。
[0163]
在一些实施方式中,一旦第一图像完成(重建),它就可以被输出,如下面更详细的描述。控制器1350可以基于图像缓存器大小的了解和/或来自图像缓存器的指示它已满的信号来确定第一图像何时完成。在其他实施例中,控制器1350可以接收光感测装置已经进行旋转的信号,例如,基于由旋转编码器进行的测量。这样的测量可以发生在光感测装置、控制器1350或系统的其他组件上。在其他实施方式中,可以部分地输出第一图像。例如,当一个部分完成时,可以输出该部分,而深度值尚未分配给第一图像的其他部分。在这样的实施方式中,某些处理技术(例如,本地内核)可以开始处理第一图像,即使只有一部分在存储器中被完全重建。这种局部处理可以减少内存需求和延迟。然而,当系统等待整个图像完成时,可以使用处理技术(例如,某些机器学习模型)。在一些实例中,可以执行一些初始局部处理,然后可以在初始局部处理之后执行全图像处理。
[0164]
如图所示,对于第二次旋转,如同对于第一次旋转,类似的映射被应用到传感器id。在一些实施例中,可以使用两个缓存器,其中一个缓存器的图像被发送一次已满,并且控制立即用下一个图像填充另一个缓存器,从而不必在可以开始生成下一个图像之前完成第一个缓存器的传输。
[0165]
可以以类似的方式生成彩色图像,除了可以将像素值直接作为传感器值,而不是
使用数据值的直方图。对于图10的例子,可以生成三幅彩色图像,每幅图像的分辨率都与lidar图像相同。lidar和彩色图像可以一起或单独分析。
[0166]
控制器1350可以将缓存的lidar图像传递给协处理器(例如,lidar图像处理器或ai协处理器),该协处理器可以分析图像,可以发回改进的lidar图像(例如,滤波的)或表征数据,例如分类属于同一对象的某些lidar像素。协处理器可以被编程以执行各种功能,例如用于滤波和语义分类。改进后的lidar图像和特征数据可以发送给用户。下面描述了使用lidar图像处理器或ai协处理器的实例。
[0167]
因此,系统可以包括光测距装置(例如,图2中的210),其可以是在多个位置移动和执行测量的扫描装置,其中用于扫描的测量(例如,360
°
的旋转)可以组合以创建图像。光测距装置可以包括发射电路(例如图2的240)和检测电路(例如图2的230),发射电路可以包括发射光脉冲的多个光源,检测电路可以包括光传感器阵列,光传感器阵列检测反射光脉冲并输出随时间测量的信号。
[0168]
信号处理器(例如,图2的处理器238和/或匹配滤波器1310和峰值检测器1320)可以使用光传感器阵列从测量中确定深度值。图像重建电路(例如,1325)可以将传感器id分配给每个深度值以用于扫描光测距装置的扫描,并使用深度值构建lidar图像。例如,可以使用传感器id访问映射表1330以将深度值映射到lidar图像中的lidar像素,其中映射表基于对应的传感器id指定lidar像素。然后,在将lidar图像的lidar像素存储在局部图像缓存器中之后,可以将局部帧(图像的一部分)或完整帧(整个图像)的lidar像素发送到基于内核的协处理器,它可以在相同或不同的集成电路上。
[0169]
如下所述,基于内核的协处理器可以包括分类器电路,该分类器电路与光测距装置可通信地耦合并且被配置为接收由图像重建电路输出的lidar图像,分析lidar图像的lidar像素中的深度值,基于所述一组lidar像素的对应深度值对一组lidar像素进行相关,并基于该相关输出所述一组lidar像素的分类信息。
[0170]
在下面描述的另一个实例中,基于内核的协处理器可以包括深度成像电路,该深度成像电路与光测距装置可通信地耦合并且被配置为接收第一lidar像素并将一个或多个滤波器内核应用于第一lidar像素的子集以生成lidar像素的滤波后的图像。
[0171]
v.应用滤波器内核
[0172]
一旦生成lidar图像,控制器就可以将图像发送到图像信号处理器。由于lidar图像是直线的,因此可以使用各种图像处理技术。图像处理可以使用接近度标准(例如,空间位置、颜色、对比度等方面的相似性)来识别对其执行滤波的像素子集。相似度可以定义为两个值在彼此的阈值差内。当处理器对像素集合进行操作时,图像信号处理器可以是基于内核的处理器。
[0173]
图14示出了根据本公开实施例的包括控制器1450和lidar图像处理器1410的光测距系统1400。控制器1450可以对应于这里描述的其他控制器。光测距系统1400的各种组件可以在相同或不同的集成电路上。
[0174]
控制器1450将初始lidar图像1405(例如,图13中的图像#1和#1)发送到lidar图像处理器1410,也称为深度成像电路。如上所述,控制器1450可以缓存从传感器流出的直方图数据到确定的深度值,以创建初始lidar图像作为lidar图像流的帧。当光感测模块扫描不同位置时,lidar图像流可以提供给lidar图像处理器1410。如图所示,显示了两个lidar图
像以说明可以提供的lidar图像流。图像流可以按照生成的顺序,例如按照位置的顺序。在一些实施方式中,可以将位置作为与lidar图像一起提供的元数据的一部分来提供。
[0175]
因此,控制器1450(或其他测距电路)可以连接到光传感器阵列并被配置为使用光传感器阵列从测量中确定深度值,以形成包括lidar像素的网格的lidar图像(例如,在测量间隔期间形成环境的直线帧),并定期输出lidar图像。每个lidar图像可以在不同的测量间隔期间生成,并且包括lidar像素的行和列。
[0176]
在lidar图像处理器1410中,输入缓存器1412可以缓存初始lidar图像1405,然后一次发送一个或一次发送多个图像到滤波器内核1414,滤波器内核可以包括一个以上滤波器内核。由于帧的像素具有已知的空间关系(至少横向,即在2d图像中),实施例可以通过对一组lidar像素例如5x5子组(或其他大小的组)或完整帧中的所有lidar图像执行组函数来执行利用该已知空间关系的处理。例如,可以使用组的深度值的统计数据,而不仅仅是单个像素。统计值可以提高准确性、填补缺失数据、提供更大的分辨率等。可以使用各种内核,如下所述。可以应用多个内核,并且可以组合结果。
[0177]
滤波器内核1414可以向信号处理器1416提供滤波后的lidar图像,该信号处理器可以是可选的或者替代地具有在滤波器内核1414中执行的功能。过滤后的lidar图像可以包括新的深度值,以及对包括在lidar图像中的任何其他值的更新,例如新的信号和噪声值。信号处理器1416可以确定深度值是否具有足够的精度以报告给流水线中的后续阶段,或者基于新值进行第二次通过确定。在一些实施例中,信号处理器1416可以分析由应用于同一lidar图像的不同滤波器内核产生的多个滤波图像,并使用该组滤波图像来确定lidar像素的新(更新)值。例如,不同大小的网格的滤波器内核可以应用于相同的lidar图像。
[0178]
输出缓存器1418可以接收和缓存处理后的lidar图像,以作为处理后的lidar图像1407发送回控制器1450或其他设备。在一些实施方式中,信号处理器1416可以从输出缓存器1418中检索经处理的图像以供进一步分析,例如,当需要前一帧的经处理图像来处理下一帧的经滤波图像时。这种高速缓存也可以在信号处理器1416内部执行。然后可以将一个或多个处理后的图像传递到带有标志的输出缓存器,以标识它们已准备好输出。
[0179]
如上所述,可以与lidar图像同时获得彩色图像。初始彩色图像1425可以被发送到彩色图像处理器1430。输入缓存器1432可以缓存初始彩色图像1425,然后一次发送一个或一次发送多个图像到滤波器内核1434。由于帧的像素具有已知的空间关系(至少横向,即在2d图像中),实施例可以通过对一组颜色像素例如5x5子组(或其他大小的组)或完整帧中的所有lidar图像执行组函数来执行利用该已知空间关系的处理。可以使用各种内核,如下所述。可以应用多个内核,并且可以组合结果。
[0180]
信号处理器1436可以分析来自滤波器内核1434的滤波后的彩色图像。经滤波的彩色图像可以包括限定颜色像素的颜色(例如,红色、绿色和蓝色)的新(更新)值。信号处理器1436可以分析在同一初始彩色图像上使用各种滤波器内核生成的多个经滤波的图像。信号处理器1436可以包括使用相邻像素的值和/或同一像素的多个经滤波的颜色值来确定彩色图像的新颜色值的逻辑,例如,用于定义对象的边缘之目的。信号处理器1436可以针对一系列帧(例如,针对光感测模块的不同位置)分析经过滤图像的组
[0181]
在一些实施方式中,信号处理器1436和信号处理器1416可以交换关于对应像素的深度值和颜色值的信息,以便执行可以解释lidar和颜色像素的对应值以及相邻像素的组
合处理。这样的组合分析也可以使用ai协处理器。总线1460通常可以在lidar图像处理器1410和彩色图像处理器1430之间,特别是在信号处理器1416和信号处理器1436之间传递信息。lidar图像处理器1410和/或彩色图像处理器1430可以单独或共同为图像处理电路。
[0182]
输出缓存器1438可以接收和缓存处理后的lidar图像,以作为处理后的彩色图像1427发送回控制器1450或其他设备。在一些实施方式中,信号处理器1436可以从输出缓存器1438中检索经处理的图像以供进一步分析,例如,当需要前一帧的经处理图像来处理下一帧的经滤波图像时。这种高速缓存也可以在信号处理器1436内部执行。然后可以将一个或多个处理后的图像传递到带有标志的输出缓存器,以标识它们已准备好输出。
[0183]
后处理器1440可以分析处理后的lidar图像1407和/或处理后的彩色图像1427。后处理器1440可以执行lidar图像和彩色图像的任何组合分析,以及来自ai协处理器的任何分类,例如,ai协处理执行对应于同一对象的像素分类、逐像素语义分割、实例分割、边界框估计、深度插值等。
[0184]
a.lidar滤波和处理
[0185]
滤波器内核可以扫过lidar帧。作为实例,滤波器内核的应用可以提供对相邻范围像素的范围平滑和/或当前lidar像素的范围值的时间序列、边缘平滑或噪声减少(例如,使用统计学)。作为实例,范围平滑可以提供比以其他方式获得的更平滑的道路,这导致向用户提供更真实的深度图像。这样的滤波器可以包括使用距离数据、信号数据和其他无源成像通道(例如,颜色)的组合的双边滤波。边缘感知模糊滤波器可以平滑(模糊)在空间和深度值(或颜色值)上彼此相似的值,以便保留边缘,但平滑可以远离边缘(例如,深度不同的两个对象之间的边缘)。
[0186]
滤波器内核可以确定每个像素相对于中心像素的内核权重或“相同性”,从而为中心像素提供滤波值。滤波器内核可以根据到中心像素的距离对相邻像素的数据值进行加权。更远的值在空间上的相关性会更小。可以使用图像帧的直线阵列来识别相邻像素的位置。一个实例是高斯加权,例如,对距中心像素的横向(xy)距离进行加权的2d高斯。使用范围值,也可以在z方向上应用高斯权重。可以根据应用于中心像素的内核的加权和来确定像素的经滤波的值,并且可以使用累积(聚合)值(例如,范围、信号、噪声或颜色)来确定该值是否要保持(例如,高于阈值的足够置信度),并传递给用户或流水线中的下一个阶段。
[0187]
作为应用滤波器的结果,可以增加信号中的信噪比的强度,从而可以保持深度值。这种处理可以由信号处理器1416执行。例如,如果在xy平面中有两个相邻的像素,并且两个像素在相似距离处(例如,在距离阈值内或超过阈值的累积值内)都有峰值,则可以将峰值识别为真实顶峰。以这种方式,峰值检测可以使用基于相邻像素处的信号的可变(调整后的)阈值。可以更改(调整)阈值和/或基础数据。信号处理器可以进行这样的识别。峰值或检测阈值的调整可以基于子集的聚合信息。
[0188]
因此,在一些实施方式中,滤波器内核1414的一个或多个滤波器内核可以包括使用与给定像素相邻的其他lidar像素的信号来调整给定像素的信号的峰值或检测阈值的滤波器内核。作为进一步的实例,滤波器内核1414的一个或多个滤波器内核可以包括使用与给定像素相邻的其他lidar像素的信号来调整给定像素的深度值的滤波器内核。在各种实施方式中,用于将像素视为相邻像素(例如,在特定子集中)的标准可以使用横向位置、深度值和/或颜色值。
[0189]
b.颜色滤波和处理
[0190]
一个或多个滤波器内核可以扫过颜色帧。作为实例,滤波器内核的应用可以提供对相邻颜色像素的颜色平滑(或模糊)和/或当前颜色像素的颜色值的时间序列、边缘平滑或噪声减少(例如,使用统计学)。作为实例,颜色平滑可以为对象提供比以其他方式获得的更平滑或更均匀的颜色,这导致向用户提供更逼真的彩色图像。滤波器内核可以以与用于lidar图像的滤波器内核类似的方式,基于到中心像素的距离对相邻像素的数据值进行加权。
[0191]
滤波和/或处理可以校正具有杂散噪声的颜色值。例如,在检测到少量光子的弱光下,噪声会覆盖真实信号。可能是红色的对象(例如,阶梯标志)可能看起来有一些绿色像素。平均而言,像素是红色的,但并非所有像素实际上都显示为红色,因为信号太低以至于其中一些像素在环境中显示为绿色对象。但是,滤波可以累积来自相邻像素的值以增加红色贡献。
[0192]
该处理可以将周围像素识别为红色(例如,大部分周围像素),使得系统可以覆盖(丢弃)错误为绿色的像素并使用空间感知的累积的滤波器将一组像素识别为全红色。因此,颜色的调整可以使用所讨论的颜色像素或仅使用相邻像素,例如,以覆盖测量的颜色。因此,调整第一颜色像素可以包括确定与深度像素的子集相关的颜色像素的加权平均值。加权平均值可以包括或可以不包括第一颜色像素。可以基于其他深度值与第一深度值的差异来确定权重。
[0193]
c.lidar和颜色滤波和处理相结合
[0194]
如上所述,lidar图像处理器1410和彩色图像处理器1430可以相互传输信息,包括lidar和彩色图像的值,从而可以执行组合处理。例如,在一些实施方式中,任何彩色图像(例如,初始、滤波或处理的)中的颜色值可用于估计噪声,然后可将其用于确定深度值、深度值的准确度,和/或是否报告最终lidar图像中的深度值,例如,如提供给用户的。例如,当环境光水平较低时,仅测量光源波长中的噪声可能导致不准确,尤其是当背景光随时间不均匀时。可以使用颜色像素的强度代替或补充噪声测量。
[0195]
作为另一实例,环境数据可以具有比lidar数据更高的分辨率,例如,颜色像素可以具有更高的分辨率。这可能在颜色传感器位于不同传感器上时发生,例如,该传感器可能不旋转。pct公布wo 2018/213338提供了这样一个固定相机的实例,该申请通过引用的方式整体并入,该相机通过旋转lidar传感器触发,其中颜色像素和lidar像素对齐。可以确定颜色像素中颜色变化的趋势,例如,作为对颜色像素处的任何颜色值集合的内插或函数拟合。此函数可用于确定测量的lidar像素之间的深度值,从而将lidar数据上采样到更高的分辨率。
[0196]
因此,当检测电路包括检测环境光以产生颜色像素阵列的彩色传感器时,深度成像电路可以对一个或多个深度像素与每个颜色像素进行相关。滤波器内核1414的一个或多个滤波器内核可以包括滤波器内核,该滤波器内核使用与其他与给定颜色像素相邻的其他lidar像素相关的颜色像素来调整给定颜色像素的颜色值。其他lidar像素可以满足一个或多个接近度标准,其包括与给定颜色像素相关的第一深度值与其他lidar像素的其他深度值之间的差异。
[0197]
因此,可以基于相似的颜色或空间位置来调整深度(测距)值。
[0198]
vi.分类
[0199]
除了基于lidar和彩色图像更新深度和颜色值之外,实施例还可以使用机器学习模型和其他人工智能(ai)模型分析这些图像,以识别和分类对象。这样的分类信息可以以多种方式使用。例如,ai协处理器可以对一系列图像进行语义标注。一旦对象被分类并分配给特定的lidar和/或颜色像素,此类信息就可用于更新此类图像。当处理器在像素集合上运行时,ai协处理器(或分类电路)可以是基于内核的处理器。
[0200]
图15示出了根据本公开实施例的包括控制器1550和lidar ai协处理器1510的光测距系统1500。控制器1550可以对应于这里描述的其他控制器。光测距系统1500的各种组件可以在相同或不同的集成电路上。
[0201]
控制器1550将初始lidar图像1505(例如,图13中的图像#1和#2)发送到lidar ai协处理器1510。如上所述,控制器1550可以缓存从传感器流出的直方图数据到确定的深度值,以创建初始lidar图像作为lidar图像流的帧。当光感测模块扫描不同位置时,lidar图像流可以提供给lidar ai处理器1510。如图所示,显示了两个lidar图像以说明可以提供的lidar图像流。图像流可以按照生成的顺序,例如按照位置的顺序。在一些实施方式中,可以将位置作为与lidar图像一起提供的元数据的一部分来提供。
[0202]
在lidar ai协处理器1510中,输入缓存器1512可以缓存初始lidar图像1505,然后将该初始lidar图像一次发送一个或一次发送多个图像到分类器1514。由于帧的像素具有已知的空间关系(至少横向),实施例可以通过对一组lidar像素例如5x5子组(或其他大小的组)或完整帧中的所有lidar图像进行分析来执行利用该已知空间关系的处理。相对于单个像素,可以使用不同像素的一组深度值的性质。例如,可以使用组的深度值的统计来确定哪些像素对应于相同的对象,例如,具有彼此的阈值内的深度值的一组像素。对应于同一对象是对两个像素进行相关的一种方式。这种对组的分类可用于提高最终lidar图像深度值的准确性、填充缺失数据、提供更高的分辨率等。可使用各种分类模型,如下所述。可以应用多个分类模型,并且可以组合结果。
[0203]
分类器1514可以向信号处理器1516提供分类信息(例如,具有被识别为对应于相同对象的某些像素的分类的lidar图像),该信号处理器可以是可选的或者替代地具有在分类器1514中执行的功能。各种模型可用于分类器1514,包括卷积神经网络,其可包括可由滤波器内核(例如,图14的1414)执行的卷积内核。分类的彩色图像可以将每个lidar像素分配给对象(例如,使用id),以便可以通过分类的lidar图像的内容确定对应于同一对象的所有像素。因此,分类信息可以指示lidar图像的哪些lidar像素对应于同一对象。
[0204]
信号处理器1516可以基于被分配给同一对象的相邻像素来确定深度值是否具有足够的精度以报告给流水线中的稍后阶段。在一些实施例中,信号处理器1516可以分析由同一lidar图像的不同分类产生的多个分类图像,并使用这些分类确定lidar像素的新(更新)值。另外地或替代地,信号处理器1516可以使用对应于光感测模块的不同位置的多个分类图像。例如,使用各种模型的分类可以应用于相同的lidar图像,例如决策树和神经网络,或不同类型的此类模型,或对同一模型使用不同的参数,例如节点数或隐藏层。
[0205]
输出缓存器1518可以接收和缓存处理后的lidar图像,以作为处理后的lidar图像1507发送回控制器1550或其他设备。在一些实施方式中,信号处理器1516可以从输出缓存器1518中检索经处理的图像以供进一步分析,例如,当需要前一帧的经处理图像来处理下
一帧的经滤波图像时。这种高速缓存也可以在信号处理器1516内部执行。然后可以将一个或多个处理后的图像传递到带有标志的输出缓存器,以标识它们已准备好输出。
[0206]
因此,分类器电路(例如,lidar ai协处理器1510)可以与光测距装置可通信地耦合并且被配置为接收由测距电路输出的lidar图像,分析lidar图像的lidar像素中的深度值,基于所述一组lidar像素的对应深度值对一组lidar像素进行相关,并基于该相关输出所述一组lidar像素的分类信息。如本文所述,该组相关lidar像素可以包括第一lidar图像中的第一lidar像素,该第一lidar像素与第二lidar图像中的第二lidar像素相关,因为对应于环境中对象的相同点。
[0207]
如上所述,可以与lidar图像同时获得彩色图像。初始彩色图像1525可以发送到彩色ai协处理器1530。输入缓存器1532可以缓存初始彩色图像1525,然后一次发送一个或一次发送多个图像到分类器1534。由于帧的颜色像素具有已知的空间关系(至少横向),实施例可以通过对一组颜色像素例如5x5子组(或其他大小的组)或完整帧中的所有lidar图像执行组函数来执行利用该已知空间关系的处理,如关于lidar图像所述的。
[0208]
信号处理器1536可以分析来自分类器1534的分类彩色图像。分类的彩色图像可以将每个颜色像素分配给对象(例如,使用id),以便可以通过分类的彩色图像的内容确定对应于同一对象的所有像素。信号处理器1536可以分析在同一初始彩色图像上使用各种分类模型生成的多个分类图像。信号处理器1536可以包括使用相邻像素的分类和/或同一像素的多个分类来确定彩色图像的新颜色值的逻辑,例如,用于定义对象的边缘之目的。信号处理器1536可以针对一系列帧(例如,针对光感测模块的不同位置)分析经分类的图像的组
[0209]
在一些实施方式中,分类器1514和1534(和/或信号处理器1516和1536)可以交换关于对应像素的深度值和颜色值(以及它们的分类)的信息,以便执行在对图像进行分类或确定新值时可以解释lidar和颜色像素的对应值以及相邻像素的组合处理。例如,颜色和/或深度的相似性(例如,在相应阈值内)可以用作将像素分类为对应于相同对象的标准。这种组合分析还可以使用lidar和彩色图像处理器。总线1560通常可以在lidar ai协处理器1510和彩色ai协处理器1530之间,特别是在信号处理器1516和信号处理器1536之间传递信息。
[0210]
输出缓存器1538可以接收和缓存处理后的lidar图像,以作为处理后的彩色图像1527发送回控制器1550或其他设备。在一些实施方式中,信号处理器1536可以从输出缓存器1538中检索经处理的图像以供进一步分析,例如,当需要前一帧的经处理图像来处理下一帧的经滤波图像时。这种高速缓存也可以在信号处理器1536内部执行。然后可以将一个或多个处理后的图像传递到带有标志的输出缓存器,以标识它们已准备好输出。
[0211]
后处理器1540可以分析处理后的lidar图像1507和/或处理后的彩色图像1527。后处理器1540可以对分类的lidar图像和彩色图像执行任何组合分析。
[0212]
对象的像素分类可以在显示器上输出给用户。例如,边界框可以说明被识别为对应于同一对象的lidar像素。
[0213]
a.预先识别的遮盖物
[0214]
分类器1514和1534可以使用特定lidar系统可能遇到的对象类型的知识,例如安装在标准道路上行驶的客车上的对象。例如,对于安装在客车上的系统,道路将始终存在,其中道路可以被限制在环境的下半部分并且具有有限的宽度。作为另一实例,可以基于最
初感知的高度来限制相邻车辆的大小以用于分类,以便区分相邻的两辆车,同时仍然允许检测高度大得多的带有拖车的大型半卡车。
[0215]
在一些实施例中,用户可以为特定对象(例如道路)定义图像区域。例如,lidar装置可以安装在车辆的保险杠上,车辆制造商可以根据对数字高度的了解来指定可能对应于道路的特定环境部分。这样的用户输入可以通过在用户界面上绘图来提供,或者作为对象被限制到的矩形或其他形状的点的数字输入来提供。
[0216]
因此,lidar像素的检测标准可以根据该像素在lidar图像中的位置而变化。位于车辆前方和图像下半部分的lidar像素可能对应于道路。这样的像素可以被传感器检测到,传感器的视野向下倾斜,例如,向下倾斜指定的间距。因此,可以允许信号相对于噪声的较不严格的阈值,从而使得弱检测仍然能够为特定像素提供深度值。相比之下,图像不同部分中的lidar像素可能对峰值检测和深度值的确定有更严格的要求,以便以足够的精度确定要输出的深度值。
[0217]
b.lidar分类与处理
[0218]
分类器1514可以使用来自一个或多个lidar图像的深度值来确定哪些像素对应于同一对象。使用深度值可以提高分类器的准确度,因为同一对象上相邻点的深度值不会从一个像素到相邻像素(例如,直线网格上的相邻位置)发生剧烈变化。例如,与仅使用颜色值相比,使用相邻lidar像素的深度值可以提高将两个像素识别为来自同一对象的置信度。
[0219]
一旦一组lidar像素被识别为对应于同一对象,就可以仅为该组像素平滑深度值,例如,如lidar图像处理器1410所执行的那样,其可以从lidar ai协处理器1510接收分类信息.类似地,彩色图像处理器1430可以使同一对象的所有颜色像素具有相似的颜色,或者只是混合被识别为对应于该对象的像素的颜色。
[0220]
分类还可以告知深度值的确定,或者至少是深度值的置信度,这可以用于确定深度值是否包括在最终的lidar图像中。如果lidar像素被识别为来自与相邻像素相同的对象并且如果深度值相似,则可以包括像素的深度值,即使直方图中的光子计数相对较低,因此最初的置信度低。来自分类的增加的置信度足以确定深度值是准确的,特别是在应用滤波器内核之后,例如,以平滑对象的深度值。分类(例如,语义标记)的使用可以作为第二遍使用滤波器内核来完成,该滤波器内核根据由本文所述的内核函数(例如,高斯)定义的权重来累积信号值。该第二遍累积(例如,第一遍仅使用滤波器内核1414和信号处理器1416)可以使用比仅基于横向接近度使用的像素更多的像素的深度值,例如可以在第一遍中进行的。因此,可以使用空间信息和语义(分类)信息来执行累积。
[0221]
分类模型可以考虑预定类型的对象,例如具有多个组件的车辆,例如挡风玻璃、前灯、门、引擎盖等。每个组件可以具有相邻点之间的预期关系,其可以通知在滤波步骤中使用的内核函数或基于预期深度和/或颜色关系的分类信息(例如,挡风玻璃是与引擎盖不同的颜色,但是是同一车辆对象的一部分)。
[0222]
在一些实施例中,对象的类型可以用于确定例如由滤波器内核1414使用的滤波器内核的类型。例如,某些类型的对象可能应用了平滑内核,而其他类型的对象则没有。例如,可以通过平滑滤波器对分类为对应于道路的一组像素进行平滑处理。但是,识别为对应于树或其他粗糙表面的一组像素不会应用平滑滤波器。作为另一实例,停车标志可以基于3d位置(例如,道路上方的高度)和形状(八边形)来分类,如可以从lidar图像中的深度值确定
的。相关像素的范围值可以基于为平面的事实对象类型进行调整。不仅应用了哪些滤波器内核,还可以使用参数的特定值,例如,高斯内核的形状和高度可以取决于对象的类型。
[0223]
一种类型的对象可以具有特定的预期尺寸,这可以用于检测技术以确定是否有足够的置信度将深度值包含在最终的lidar图像中。例如,一条道路可以占据环境的有限部分。对于包含对应于道路预期位置的像素的深度值,可以允许低的置信度,这可以增加最终lidar图像的距离范围,而不会影响精度。因此,如果lidar像素对应于特定对象的预定义位置,则可以使用更宽松的标准(例如,峰值和/或噪声阈值),从而能够更积极地将像素包含在最终lidar图像中。
[0224]
c.颜色分类及处理
[0225]
上面描述了基于更高分辨率颜色数据的lidar数据的上采样。另外地或替代地,可以基于分类数据对lidar数据进行上采样。例如,特定类型的对象可能具有形状的已知参数,或至少具有形状的估计参数。例如,车辆类型可以根据颜色和/或lidar数据来确定,例如,基于对象的大致轮廓。然后,可以例如从数据库中识别车辆类型的形状。形状可以具有小的特定特征,例如门上的翅片或线。可以对lidar数据进行上采样以在最终的lidar图像中(例如,在三维(3d)视图中)显示这些特征。此外,任何丢失的lidar数据(例如,一些lidar像素可能由于噪声或低信号而丢失)可以基于对象的估计形状来填充。
[0226]
对象的形状(例如,根据一组颜色像素属于同一对象的分类确定)也可以用于识别lidar数据中的异常,例如,由于假透镜引起的,如可能在下雨期间发生的。可以基于分配给车辆的颜色像素的数量来估计车辆的一般距离。分配给车辆的少量颜色像素将指示车辆相对较远,例如,超过50m)。但是,如果相应lidar像素(即图像中相同位置的lidar像素)的距离值表明车辆相对较近,例如在10m以内,则可以在颜色数据或lidar数据中识别异常。如果条件是下雨(例如,由天气信息或湿度传感器确定),则lidar数据可被识别为异常。在这种情况下,可能不会注册相应的lidar数据,以免向用户显示无效数据,这可能导致驾驶员的突然反应,可能导致事故。
[0227]
d.组合滤波和分类
[0228]
如上所述,图15中的分类和图14中的滤波/处理可以组合使用。例如,分类信息可用于基于同一对象的其他lidar像素来填补缺失的lidar像素。
[0229]
图16示出了根据本公开实施例的包括控制器1650、lidar图像处理器1610和lidar ai协处理器1630的光测距系统1600。控制器1650可以对应于这里描述的其他控制器。光测距系统1600的各种组件可以在相同或不同的集成电路上。
[0230]
光测距系统1600可以以与光测距系统1400和1500类似的方式操作。控制器1650可以将初始lidar图像1605发送到lidar图像处理器1610,其可以以与lidar图像处理器1410类似的方式操作。控制器1650还可以将初始lidar图像1625发送到lidar ai协处理器1630,其可以以与lidar ai协处理器1510类似的方式操作。初始lidar图像1605可以与初始lidar图像1625相同。
[0231]
总线1670通常可以在lidar图像处理器1610和lidar ai协处理器1630之间传递信息,包括这些处理器内的各个组件之间。从一个处理器到另一个处理器的中间或最终结果的通信可用于完成处理以输出处理后的lidar图像1607或分类信息1627,其可包括其中识别出对应于相同对象的像素组的已分类图像。上面已经描述了使用处理后的lidar图像来
通知分类或使用已分类图像来通知lidar图像的处理(例如,更新或添加深度值)。
[0232]
类似的配置可用于颜色处理。例如,彩色图像处理器和彩色ai协处理器可以相互通信,也与lidar图像处理器1610和lidar ai协处理器1630通信。颜色处理器1660可以体现这种配置。
[0233]
后处理器1640可以分析处理后的lidar图像1607和/或分类信息1627。后处理器1640可以对分类的lidar图像和彩色图像执行任何组合分析。
[0234]
因此,具有分类器电路的系统还可以包括与光测距装置和分类器电路可通信地耦合的深度成像电路,该深度成像电路被配置为接收lidar像素的lidar图像,接收关于对应于同一对象的lidar像素组的分类信息,并基于分类信息将一个或多个滤波器内核应用于lidar帧的lidar像素的子集。
[0235]
vii.关键点(图像配准)
[0236]
在一些实施例中,分类(例如,通过分类器1514)可以包括识别图像中的关键点,以及识别一个帧中的某些关键点对应于一系列lidar图像的其他帧中的某些关键点。可以通过分析局部图像邻域中深度值(和/或颜色值)变化的幅度和方向来识别关键点,以检测深度/颜色值显示显著变化的高对比度角和边缘。
[0237]
关键点可用于映射或里程计问题,以确定车辆(例如,汽车或机器人)如何在3d空间中移动。使用来自lidar的两张图像,系统可以确定车辆相对于可能是静止的关键点如何改变位置。通过将两个关键点关联为对应于两个图像中对象上的相同点,可以在2d或3d中执行图像配准。关键点可以具有唯一的签名,例如建筑物的边缘。建筑物的边缘可以通过在边缘之前和之后沿新方向变化(或速率)的深度值来识别,这可以由一系列表现出类似变化的点来定义。
[0238]
因此,两个关键点与对象中同一点的相关性可以使用相邻深度(lidar)像素之间深度值的差异。与两个图像中的每一个中的一个或多个相邻像素的相似差异(例如,在阈值内)可以指示两个关键点针对相同对象上的相同点。
[0239]
作为另一实例,可以使用特定时间区间的峰值。例如,如果对象上的特定点相对于其邻近点在深度值方面具有独特的差异,则也可能存在独特的峰值模式。对于给定时间区间,该点处的信号将高于相邻像素处的信号,其中信号值的差异将取决于两点之间的深度差异。每个相邻像素的信号值的相似差异可以表明每个图像中的关键点相同。
[0240]
一旦两个关键点在两个图像之间关联以将它们识别为相同的关键点,就可以减去它们的3d位置(深度与网格中的横向位置相结合),以提供车辆与关键点的相对3d位置的变化。如果关键点是静止的,则当与两次测量的时间间隔相结合时,减去的值可用于确定速度。可以对图像之间的许多关键点执行这样的计算,以获得安装在车辆上的lidar系统的平均运动。
[0241]
因此,lidar ai协处理器(例如,1510或1610)可以分析多个lidar图像以识别lidar图像帧之间的相关关键点。lidar ai协处理器可以识别一帧中的关键点,缓存关键点对应的lidar像素(这可以通过存储整个lidar帧或仅存储某些像素,包括深度值和像素位置来完成),确定后续帧中的关键点,然后得出两组关键点之间的相关性。因此,可以在第一lidar图像之后获取第二lidar图像,其中在获取第二lidar图像的同时缓存第一lidar图像。
[0242]
分类信息1627可以包括关键点的相关性。例如,可以将单独帧(例如,连续帧)中的lidar像素束捆绑为关键点,其中后处理器1640可以使用这些捆绑的关键点来确定平均速度。流水线中的其他后续组件也可以执行计算以确定平均速度,例如,独立计算机的组件,例如图2的车辆控制单元217的组件。随时间变化的速度值可以一起用于确定里程计。与进一步分离的帧(例如,第一和第三帧)的连续帧的差异可用于确定速度。可以使用另外两对帧的lidar像素之间的多重差异来获得更高的精度。
[0243]
关键点也可用于可视化,例如,特定颜色可用于描绘与关键点相对应的lidar像素。还可以显示示出相对速度的箭头。与静止和其他移动对象相比,这样的描绘可以传达车辆的相对运动。
[0244]
在一些实施例中,关键点的分类可以与像素组的语义分类组合为对应于各个对象。这种不同类型的分类可以由分类器1514的单独分类引擎执行。
[0245]
作为实例,可以基于组合在一起作为同一移动对象的一部分是关键点的像素,将关键点分配给移动对象。分配给移动对象的关键点可用于确定移动对象的速度,其中这种速度可以相对于lidar系统,或者是绝对的。这种绝对速度可以首先通过确定lidar系统相对于一个或多个静止对象的速度来确定。然后,移动对象的关键点的变化可用于确定与lidar系统相比的相对速度。可以将lidar系统的速度和移动对象的相对速度相减,以确定移动对象相对于静止物体的绝对速度。可以为移动对象的所有像素分配相同的平均速度,该平均速度由分配给移动对象的关键点确定。
[0246]
可以使用各种技术来关联关键点。关键点的像素id(例如,在lidar图像的2d网格中的位置)可以是用于在后续帧中识别对象上的相同位置的起点。相对于周围lidar像素的相似深度值可以指示相同的边缘或角落反映在下一个lidar图像的新像素id中。这两个帧的这两个像素id可以被分组为关键点。可以使用机器学习技术,例如神经网络。相关性也可以使用颜色数据,因此从颜色像素到周围颜色像素的颜色的特征变化可以与相应lidar像素到周围lidar像素的深度结合使用。例如,两个像素可以被识别为红色(颜色接近度),在空间上靠得很近,并且相对于周围像素具有相似的对比度度量。
[0247]
在尝试相关之前,例如,在周围像素之间有足够的深度值变化,首先可以使用某些标准来跟踪lidar像素。还可能需要对像素的深度值具有高置信度。例如,一条道路可能没有足够的纹理作为关键点。
[0248]
因此,协处理器(例如,分类电路)可以从检测电路接收第一帧深度像素,并使用相邻深度像素之间的深度值差异和/或相邻深度像素之间的峰值差异识别第一帧深度像素中的第一组关键点。第一组关键点,其包括用于识别关键点的差异以及由深度像素的横向(2d)位置和对应的深度值形成的三维位置,可以存储在第一缓存器中。
[0249]
协处理器可以从检测电路接收第二帧深度像素,并使用相邻深度像素之间的深度值差异和/或相邻深度像素之间的峰值差异识别第二帧深度像素中的第二组关键点。然后可以使用差异和三维位置将第一组关键点中的一个或多个与第二组关键点中的一个或多个相关联。例如,如果图像是连续的,则深度值和横向位置应在阈值内。可以使用相关的关键点对之间的差异来计算关键点的速度。速度可以相对于lidar装置的速度。可以以多种方式输出速度,例如,通过识别具有高于阈值的速度的对象或通过在对象上方的图像中提供数字。
[0250]
viii.方法
[0251]
上面描述了各种技术,例如,用于重建lidar图像和图像分析(例如,调整与lidar图像和/或彩色图像相关联的值)。这样的技术可以使用上述系统。
[0252]
a.重建lidar图像
[0253]
图像的重建可以促进下游分析,例如,使用应用于与像素相关联的值的内核进行分类或图像分析。
[0254]
图17是示出根据本公开实施例的使用安装在移动设备上的光测距系统来执行测距的方法1700的流程图。移动设备可以是各种类型,例如汽车、农用设备、建筑设备等。
[0255]
在框1710,传输电路从测距系统的一个或多个光源传输脉冲。脉冲可以从一个或多个对象反射。传输电路可以包括上述各种电路,例如激光器。
[0256]
在方框1720,检测电路通过检测用于每个光传感器阵列的脉冲的光子来测量信号。检测电路可以包括上述各种电路,例如,每个光传感器是一组spad。
[0257]
在方框1730,传感器id被分配给每个信号。每个传感器id对应于光传感器阵列之一。传感器id可以通过各种方式在流水线中的各个点进行分配。例如,可以通过信号从检测电路接收传感器id,从而可以在此时分配传感器id。在另一实例中,基于检测电路提供信号的指定顺序来分配传感器id,如上所述。在又一实例中,通过将传感器id分配给第一深度值,将传感器id分配给每个信号。这种分配可以由图像重建电路(例如,图13的1325)来完成。因此,可以基于将第一深度值提供给图像重建电路的指定顺序来分配传感器id。
[0258]
在框1740,分析信号以确定第一深度值。可以如本文所述分析信号。
[0259]
在框1750,使用第一深度值构建第一lidar图像。可以如上所述使用映射表构建lidar图像。传感器id可用于将第一深度值映射到第一lidar图像(例如,直线图像)中的第一lidar像素。映射表可以根据对应的传感器id指定lidar像素。例如,映射表可以根据对应的传感器id和光测距系统在测量信号时的位置来指定lidar像素。该位置可以是光测距系统的角位置。传感器id和位置可以指定图像内的唯一像素,例如,如上文在图9中所描述的。
[0260]
在框1760,光测距系统的图像缓存器可以存储第一lidar图像的第一lidar像素。当图像缓存器驻留在与检测电路相同的集成电路上时,可以认为图像缓存器是本地的。
[0261]
在框1770,将第一lidar图像的局部帧或第一lidar图像的完整帧的第一lidar像素发送到光测距系统的基于内核的协处理器。如上所述,仅较亮图像的一部分(局部帧)在被发送之前可能需要具有值,例如,因为内核可以应用于该局部帧。因此,滤波器内核可以应用于第一lidar图像的一部分,其中滤波器内核是在第一lidar图像完全构建之前应用的。
[0262]
可以以类似的方式构建和分析其他lidar图像。例如,可以使用第二深度值构建第二lidar图像。第二lidar图像也可以存储在图像缓存器中,例如存储在与存储第一字母图像不同的存储器组中。可以基于对第一lidar图像和第二lidar图像的分析来调整第一lidar图像的一个或多个值,从而获得一个或多个调整值。这种调整的例子在图14和15中描述。一个或多个调整值可以包括第一lidar图像的颜色值,例如,其中颜色像素与lidar像素相关。
[0263]
b.调整峰值或检测阈值
[0264]
可以基于其他像素的值和与lidar像素的接近度来调整与lidar像素和lidar图像
相关联的各种值。例如,这样的值可以包括峰值或检测阈值。调整值可以基于滤波器内核,例如,如第v节所述。
[0265]
图18是示出根据本公开实施例的使用安装在移动设备上的光测距系统来执行测距的方法1800的流程图。
[0266]
在框1810,传输电路从测距系统的一个或多个光源传输脉冲。脉冲可以从一个或多个对象反射。传输电路可以包括上述各种电路,例如激光器。
[0267]
在方框1820,脉冲的光子由光测距系统的一个或多个光传感器检测,从而为深度(lidar)像素阵列中的每一个在多个时间点生成数据值。一个或多个光传感器可以包括光传感器阵列。本文提供了光传感器的实例,例如,每个光传感器是一组spad。多个时间点的数据值可以形成深度像素阵列的每个深度像素的直方图。直方图在特定时间区间的计数器可以对应于在所述特定时间区间内的一个或多个时间点的一个或多个数据值,如上所述。
[0268]
一个或多个光源中的第一光源和一个或多个光传感器中的第一光传感器可以移动,从而用于为深度像素阵列的至少两个深度像素提供数据值。图9中提供了这种操作的实例。
[0269]
在框1830,识别满足相对于深度像素阵列的第一深度像素的一个或多个接近度标准的深度像素子集。一个或多个接近度标准可以包括第一深度像素和另一深度像素之间的横向距离。一个或多个接近度标准可以进一步包括第一深度像素的第一初步深度值与另一深度像素的另一初步深度值之间的差。
[0270]
在框1840,来自深度像素子集的数据值的信息被聚合,从而获得聚合信息。作为实例,来自数据值的信息可以包括数据值或从数据值导出的数值。聚合可以包括确定来自对应时间区间的数据值的总和(例如,加权总和)。如上所述,聚合信息可用于确定给定像素的信号是否足够强,以便该值用于稍后阶段的分析。
[0271]
在框1850,使用聚合信息调整第一深度像素的数据值的第一峰值和/或检测阈值。
[0272]
在方框1860,将第一峰值与检测阈值进行比较。当第一峰值超过检测阈值时,可以将反射脉冲识别为来自环境中的物体。
[0273]
在框1870,基于超过检测阈值的第一峰值,确定第一峰值对应于移动设备周围环境中的对象。检测阈值可以是固定值或动态值。
[0274]
在框1880,基于与第一峰值相关联的第一时间,确定第一深度像素的第一深度值。可以如本文所述来确定这样的深度值。
[0275]
可以使用峰值和检测阈值来检测反射脉冲,并且可以通过多种方式进行调整。光子的背景水平可以在深度像素的子集中确定,并且数据值的峰值可以在深度像素的子集中确定。第一峰值可以用所述峰值调整,检测阈值可以用背景水平调整。
[0276]
在一些实例中,可以使用颜色传感器测量环境光以生成颜色像素阵列。一个或多个颜色像素可以与每个深度像素相关,例如,如本文所述。在这样的实例中,一个或多个接近度标准可以包括第一深度像素的一个或多个颜色像素相对于另一个深度像素的颜色相似性。
[0277]
c.调整深度值
[0278]
除了峰值或检测阈值之外,还可以调整深度值。调整值可以基于滤波器内核,例如,如第v节或第vi节中所述。
[0279]
图19是示出使用安装在移动设备上的光测距系统执行测距的方法1900的流程图。
[0280]
在框1910,传输电路从测距系统的一个或多个光源传输脉冲。脉冲可以从一个或多个对象反射。传输电路可以包括上述各种电路,例如激光器。框1910可以以与框1810和本文中的其他检测公开类似的方式执行。
[0281]
在方框1920,脉冲的光子可以由光测距系统的一个或多个光传感器检测,从而为深度像素阵列中的每一个在多个时间点生成数据值。框1920可以以与框1820和本文中的其他检测公开类似的方式执行。
[0282]
在框1930,为第一深度像素确定数据值的第一峰值。可以以各种方式确定峰值,例如如本文中所描述。例如,匹配滤波器可用于检测特定脉冲模式,并且匹配时间处的信号(例如,如在直方图中定义的)可用于确定第一峰值。
[0283]
在框1940,基于与第一峰值相关联的第一时间,为第一深度像素确定第一深度值。可以以各种方式确定第一深度值,例如,如本文所述。例如,可以使用插值方法来确定具有比时间区间宽度更大的分辨率的时间。
[0284]
在框1950,识别满足相对于深度像素阵列的第一深度像素的一个或多个接近度标准的深度像素子集。如本文所述,可以使用各种接近度标准。在各种实施方式中,此类相邻深度像素可用于细化与深度像素相关联的值或丢弃此类测量以说明效率和流水线的后期阶段。
[0285]
在框1960,为深度像素的子集确定数据值的相应峰值。可以以与第一深度值类似的方式确定各个峰值。
[0286]
在框1970,基于与相应峰值相关联的时间,确定深度像素子集的其他深度值。可以以与第一深度值类似的方式确定其他深度值。
[0287]
在框1980,基于其他深度值调整第一深度值。例如,可以将调整后的第一深度值确定为其他深度值中的第一个值的平均值。其他实例可以包括对应于相同对象的像素分类以及其他基于内核的技术的使用。
[0288]
此外,还可以进行分类。因此,方法1900可以包括将深度像素阵列的一部分分类为对应于同一对象。分类可以基于多种因素,例如相似的相邻lidar像素的相似颜色值或深度值(例如,在本地邻域中的阈值内)。一个或多个接近度标准可以包括被分类为对应于相同对象的深度像素的子集。
[0289]
可以识别一组深度像素阵列以对预定对象进行分类。例如,可以保留lidar图像的特定部分(例如,下部)用于检测路面。
[0290]
例如,使用颜色进行分类,可以使用颜色传感器测量环境光以生成颜色像素阵列。一个或多个颜色像素可以与每个深度像素相关。一个或多个颜色像素可用于将深度像素分类为对应于相同对象,例如基于颜色相似,其可使用比色法测量为距离,如本领域技术人员将理解的。
[0291]
颜色像素阵列可以具有比深度像素阵列更高的分辨率。在这样的实例中,该方法还可以包括为位于阵列的深度像素之间的虚拟深度像素生成附加深度值,从而增加测距分辨率。可以使用颜色像素生成附加深度值。上面提供了这种上采样的进一步细节。
[0292]
d.调整颜色像素
[0293]
除了深度值,还可以调整颜色值。调整值可以基于滤波器内核,例如,如第v节或第
vi节中所述。
[0294]
图20是示出根据本公开实施例的用于校正彩色图像的方法2000的流程图。
[0295]
在框2010,传输电路从测距系统的一个或多个光源传输脉冲。脉冲可以从一个或多个对象反射。框2010可以以与框1810和本文中的其他检测公开类似的方式执行。
[0296]
在方框2020,脉冲的光子可以由光测距系统的一个或多个光传感器检测,从而为深度像素阵列中的每一个在多个时间点生成数据值。框2020可以以与框1820和本文中的其他检测公开类似的方式执行。
[0297]
在方框2030,使用颜色传感器测量环境光以生成颜色像素阵列。颜色传感器可以在与光传感器相同或不同的集成电路上。例如,颜色传感器可以在单独的照相机中或在相同的传感器阵列中,例如,如图10所示。
[0298]
在框2040,一个或多个深度像素与每个颜色像素相关。深度像素可以如上文所述相关,例如,如针对图9或10所描述的。
[0299]
在框2050,对于第一颜色像素,为与第一颜色像素相关的第一深度像素确定数据值的第一峰值。峰值的确定可以如本文所述来执行,例如,如框1930所述。
[0300]
在框2060,基于与第一峰值相关联的第一时间,确定第一深度像素的第一深度值。可以如本文所述确定第一深度值,例如,如框1940所述。
[0301]
在框2070,为其他深度像素确定数据值的相应峰值。可以以与第一深度值类似的方式确定各个峰值。
[0302]
在框2080,基于与相应峰值相关联的时间来确定其他深度像素的其他深度值。可以以与第一深度值类似的方式确定各个峰值。
[0303]
在框2090,识别满足相对于深度像素阵列的第一深度像素的一个或多个接近度标准的深度像素子集。上面提供了一个或多个接近度标准的实例,例如,对于方法1800和1900以及在第v和vi节中提供的。一个或多个接近度标准可以包括第一深度值和其他深度值之一之间的差。作为另一实例,接近度标准可以是作为同一对象的一部分的深度像素子集的分类。
[0304]
在框2095,使用与深度像素的子集相关的颜色像素来调整第一颜色像素。调整第一颜色像素可以包括确定与深度像素的子集相关的颜色像素的加权平均值。加权平均值可以包括或可以不包括第一颜色像素。可以基于其他深度值与第一深度值的差异来确定权重。
[0305]
在一些实例中,调整第一颜色像素可以包括基于第一颜色像素和与深度像素的子集相关的颜色像素之间的差异来丢弃第一颜色像素。例如,如果其他颜色非常不同,则可以将第一颜色像素作为错误丢弃。在这种情况下,调整第一颜色像素可以包括确定与深度像素的子集相关的颜色像素的加权平均值,其中加权平均值不包括第一颜色。
[0306]
ix.计算机系统
[0307]
本文提及的任何计算机系统(例如,图2的用户界面215或车辆控制单元217)或lidar系统的组件可以利用任何合适数量的子系统。在图21中,在计算机系统10中示出了此类子系统的实例。在一些实施方式中,计算机系统包括单个计算机装置,其中子系统可以是计算机装置的部件。在其它实施方式中,计算机系统可以包括具有内部部件的多个计算机装置,每个计算机装置是子系统。计算机系统可包括台式计算机和膝上型计算机、平板电
脑、移动电话和其它移动设备。
[0308]
图21中示出的子系统通过系统总线75互连。示出了附加的子系统,例如打印机74、键盘78、一个或多个存储设备79、耦接到显示适配器82的监视器76(例如,显示屏,例如led)等。耦接到i/o控制器71的外围设备和输入/输出(i/o)设备可以通过任何数量的例如输入/输出(i/o)端口77(例如,usb、)等本领域已知的装置连接到计算机系统。例如,i/o端口77或外部接口81(例如以太网、wi-fi等)可以用于将计算机系统10连接到广域网(例如因特网)、鼠标输入设备、或扫描仪。通过系统总线75的互连允许中央处理器73与每个子系统通信并控制来自系统存储器72或一个或多个存储设备79(例如,固定盘,例如硬盘驱动器或光盘)的多个指令的执行,以及子系统之间信息的交换。系统存储器72和/或一个或多个存储设备79可以体现为计算机可读介质。另一个子系统是数据收集设备85,例如相机、麦克风、加速计等。本文提及的数据中的任何数据可以从一个部件输出到另一个部件并且可以输出到用户。
[0309]
计算机系统可以包括例如通过外部接口81、通过内部接口或经由可以从一个部件连接到另一个部件和移除的可移除存储设备连接在一起的多个相同的部件或子系统。在一些实施例中,计算机系统、子系统或设备可经由网络通信。在此类情况下,一个计算机可以视为客户端并且另一个计算机视为服务器,其中每一个计算机可以是同一个计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或部件。
[0310]
实施例的方面可使用硬件电路(例如,专用集成电路或现场可编程门阵列)和/或以模块化或集成方式使用具有大体上可编程处理器的计算机软件以控制逻辑的形式实施。如本文所使用,处理器可包含单核处理器、同一集成芯片上的多核处理器或单个电路板上或联网的多个处理单元,以及专用硬件。基于本公开和本文中所提供的教示,所属领域的一般技术人员将知道且理解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。
[0311]
本技术案中描述的任何软件组件或功能可实施为使用例如java、c、c 、c#、objective-c、swift的任何合适的计算机语言或如perl或python的脚本语言使用例如常规或面向对象的技术的由处理器执行的软件代码。软件代码可存储为计算机可读媒体上用于存储和/或传输的一连串指令或命令。合适的非暂时性计算机可读媒体可以包含随机存取存储器(ram)、只读存储器(rom)、如硬盘驱动器或软盘的磁性媒体、或如光盘(cd)或dvd(数字通用光盘)或蓝光光盘的光学媒体、闪存等。计算机可读媒体可以是此类存储或发射装置的任何组合。
[0312]
此类程序也可使用载波信号来编码和传输,所述载波信号适合于经由包括因特网的符合多种协议的有线、光学和/或无线网络来传输。因此,计算机可读媒体可使用以此类程序编码的数据信号产生。以程序代码编码的计算机可读媒体可与兼容装置一起封装或与其它装置分开地提供(例如,经由因特网下载)。任何此类计算机可读媒体可存在于单个计算机产品(例如硬盘驱动器、cd或整个计算机系统)上或内部,且可存在于系统或网络内的不同计算机产品上或内部。计算机系统可包含监视器、打印机,或用于向用户提供本文所提及的任何结果的其它合适的显示器。
[0313]
本文所描述的任何方法可完全或部分地用计算机系统执行,所述计算机系统包含可配置成执行所述步骤的一个或多个处理器。因此,实施例可涉及配置成执行本文所述的
任何方法的步骤的计算机系统,所述计算机系统可能具有执行相应步骤或相应步骤群组的不同组件。虽然呈现为编号的步骤,但本文的方法的步骤可同时或在不同时间或以不同次序执行。另外,这些步骤的各部分可以与来自其它方法的其它步骤的各部分一起使用。而且,步骤的全部或部分可以是任选的。另外,任何方法的步骤中的任一个可利用用于执行这些步骤的系统的模块、单元、电路或其它构件来执行。
[0314]
在不偏离本发明的实施例的精神和范围的情况下,特定实施例的特定细节可以任何合适方式组合。然而,本发明的其它实施例可针对与每一个别方面或这些个别方面的特定组合相关的特定实施例。
[0315]
出于说明和描述的目的,已经呈现了本公开的示例性实施方式的以上描述。以上描述并非旨在穷举本公开或将本公开限制于所描述的精确形式,并且根据上述教导,许多修改和变化是可能的。
[0316]
除非特别指出相反的情况,否则对“一个(种)/一(a/an)”或“所述(the)”的叙述旨在表示“一个或多个”。除非明确指示为相反情况,否则“或”的使用旨在表示“包含性的或”,而不是“排除性的或”。对“第一”部件的引用不一定要求提供第二部件。此外,除非明确说明,否则对“第一”或“第二”部件的引用并不将所引用的部件限制到特定位置。术语“基于”旨在表示“至少部分地基于”。
[0317]
本文所提及的所有专利、专利申请案、公开案和描述都出于所有目的以全文引用的方式并入。并非承认它们是现有技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献