深度感测计算机视觉系统的制作方法

文档序号:24641450发布日期:2021-04-09 20:54阅读:74来源:国知局
深度感测计算机视觉系统的制作方法

相关申请的交叉引用

本申请要求于2018年8月30日提交的美国临时专利申请no.62/724,941的优先权和权益,并将其全部内容通过引用并入本申请。

本发明的领域通常涉及对人和机械设备交互或接近的工业环境进行监控,且尤其涉及用于在监控的工作空间中检测不安全状况的系统和方法。



背景技术:

工业机械设备通常对人类来说是有危险的。某些机械设备除非完全关闭,否则是危险的,而其他机械设备可能具有多种运行状态,其中有一些是危险的,有一些则不是。在某些情况下,危险程度可能取决于人相对于机械设备的位置或距离。因此,已经开发出许多“防护”方法来将人与机器分开,并防止机械设备对人造成伤害。一种非常简单和常见类型的防护为围绕机械设备的笼罩,其构造成使得打开笼罩的门会使电路将机械设备置于安全状态。如果将门放置在距离机械设备足够远,以确保在机械设备关闭前人无法接近,这确保了在机械设备运行时,人永远不会接近机械设备。当然,这阻止了人与机器之间的所有交互,并严重限制了工作空间的使用。

如果不仅人类而且机械设备(例如,机器人)也可以在工作空间内运动,则问题变得更加严重。两者都可能以快速且不整齐的方式改变位置和配置。典型的工业机器人是固定的,但仍具有强大的机械臂,这些机械臂可能会在可能的运动轨迹的较大“包络(envelope)”内造成伤害。另外,机器人通常安装在轨道或其他类型的外轴上,并且附加的机械设备通常包含于机器人的末端执行器中,这两方面都增大了机器人的有效总包络。

诸如光幕等传感器可以代替笼罩或其他物理屏障,提供替代方法防止人与机械设备接触。诸如二维(2d)光探测和测距(lidar)传感器等传感器能够提供更复杂的功能,例如允许工业机械设备或机器人在外部区域检测到入侵时减速或发出警告,并且仅当在内部区域检测到入侵时停止。此外,使用2dlidar的系统可以限定各种形状的多个区域。

由于危及人身安全,防护设备通常必须遵守有关功能安全的严格行业标准,例如iso13849、iec61508和iec62061。这些标准规定了硬件组件的最大故障率,并定义了必须遵守的严格的硬件和软件组件开发实践,以便使系统在工业环境中安全使用。

此类系统必须确保能够以非常高的可能性检测到危险情况和系统故障,并且系统通过将受控设备转换为安全状态来对此类事件做出响应。例如,检测区域入侵的系统可能偏向于显示入侵,即冒着错误肯定的风险,以避免错误否定的危险后果。

一类新的传感器显示了在机器防护中的巨大前景,它提供了三维(3d)深度信息。这种传感器的示例包括3d飞行时间相机、3dlidar和立体视觉相机。这些传感器具有以3d探测和定位进入工业机械设备周围区域的能力,其相对于2d系统具有多个优点。特别是对于复杂的工作单元,很难确定有效覆盖整个空间以进行监控的2d平面的组合;适当配置的3d传感器能够缓解此问题。

例如,当检测到侵入远远超过距离机器人的臂长距离(“保护间隔距离(protectiveseparationdistance)”或psd)时,防护工业机器人的所占面积的2dlidar系统将必须先发制人地停止机器人,因为如果侵入代表一个人的腿,该人的手臂可能会更接近且将无法被2dlidar系统检测到。对于无法检测到手臂或手的传感器,psd有一个额外的术语称为侵入距离,通常设置为850mm。相较之下,3d系统能够允许机器人继续运行,直到该人实际上将他或她的手臂伸向机器人为止。这样在机器的动作与人的动作之间提供了更紧密的互锁,避免过早或不必要的停机,促进了许多新的安全应用和工作单元设计,并节省了工厂车间的空间(这总是非常有价值的)。

3d感测的另一个应用涉及人类和机器共同协作才能最好地完成的任务。人和机器各有不同的优势和劣势。通常,机器可能更强力、更快、更精确,并且具有更高的可重复性。人具有机动性、灵巧性和远超甚至最先进的机器的能力的判断力。协作应用的一个示例是在汽车中安装仪表板——仪表板很重,人很难操纵,但是将其连接起来需要各种连接器和紧固件,这需要人的灵巧性。基于3d感测的防护系统可以让工业工程师设计出能够优化分配人和机器的子任务的流程,在保证安全的前提下,最好地利用他们的不同能力。

2d和3d感测系统可能共享基础技术。例如,rgb相机和立体视觉相机利用镜头和传感器组合(即相机)来捕获场景的图像,然后对其进行算法上的分析。基于相机的感测系统通常包括几个关键组件。光源照亮待检查或测量的对象。该光源可以是相机的一部分,如在主动感测系统中那样,或者独立于相机,例如照亮相机视场的灯,或者甚至环境光。镜头聚焦来自对象的反射光,并提供宽视场。图像传感器(通常为ccd或cmos阵列)将光转换为电信号。相机模块通常集成镜头、图像传感器和必要的电子器件,以提供电输入用于进一步分析。

来自相机模块的信号被馈送到图像采集系统,例如帧捕获器,该图像采集系统存储并进一步处理2d或3d图像信号。处理器运行图像分析软件,用于捕获的场景内的对象的识别、测量和定位。取决于系统的特定设计,处理器可以使用中央处理单元(cpu)、图形处理单元(gpu)、现场可编程门阵列(fpga)或任意数量的其他架构,可以部署在独立的计算机中或集成在相机模块中。

基于2d相机的方法非常适合使用已知的图像处理技术(例如边缘检测或模板匹配)检测缺陷或进行测量。2d感测用于非结构性环境中,并且,借助先进的图像处理算法,可以补偿变化的照明和阴影条件。但是,用于从2d图像得到3d信息的算法可能缺乏针对安全性至关重要的应用的鲁棒性和适用性,因为它们的故障模式难以表征。

尽管典型的图像提供对象或空间的2d信息,3d相机添加另一个维度并估计到场景中的对象和其他元素的距离。因此,3d感测可以提供对象或空间的3d轮廓,其本身可以用于创建周围环境的3d地图并相对于该地图定位对象。鲁棒的3d视觉克服了2d视觉的许多问题,因为深度测量可用于轻松地将前景与背景分离。这对于场景理解特别有用,其中第一步是将感兴趣的对象(前景)与图像的其他部分(背景)区分开。

广泛使用的基于3d相机的感测方法是立体视觉(stereoscopicvision或stereovision)。立体视觉通常使用两个间隔开的相机,其物理布置类似于人眼。给定空间中的点状对象,相机分离将导致在两个相机图像中对象位置的可测量差异。使用简单的针孔相机几何形状,在3d中对象的位置可以从每个相机中的图像计算出来。这种方法是直观的,但其实际实现常常没那么简单。例如,首先需要识别目标的特征,以便可以比较两个图像用于三角测量,但是特征识别涉及相对复杂的计算,并且可能消耗相当的处理能力。

此外,3d立体视觉高度依赖于背景照明环境,并且其有效性会由于阴影、遮挡、低对比度、照明变化或对象或传感器的意外移动而降低。因此,通常将使用两个以上的传感器来获取目标的周围视野,从而处理遮挡,或者提供冗余以补偿由衰减和不受控制的环境导致的错误。另一种常见的替代方法是使用结构化的光图案来增强系统检测特征的能力。

3d成像的另一种方法是利用激光器或其他有源光源和检测器。光源检测器系统类似于基于相机的系统,因为它还集成了镜头和图像传感器,并将光信号转换为电信号,但是没有捕获图像。取而代之的是,图像传感器测量紧聚焦的光束(通常是激光束)的位置和/或强度随时间的变化。所检测的光束的位置和/或强度的这种变化用于确定对象对准、通量、反射角、飞行时间或其他参数,以创建所观察的空间或对象的图像或地图。光源-检测器组合包括有源三角测量、结构化光、lidar和飞行时间传感器。

有源三角测量通过使用狭窄聚焦的光源主动照亮正在研究的对象,减轻了立体3d的环境限制。可以控制主动照明的波长,并且可以将传感器设计为忽略其他波长的光,从而减少环境光的干扰。此外,可以改变光源的位置,从而可以跨多个点并从多个角度扫描对象,以提供对象的完整3d图片。

3d结构化光是基于三角测量和有源光源的另一种方法。在这种方法中,将预先设计的光图案(例如平行线、网格或斑点)照射到目标上。观察到的反射图案将因目标的轮廓而失真,并且轮廓和到物体的距离可以通过分析失真来恢复。通常需要对编码的或相移的图案进行连续投影以提取单个深度帧,这导致较低的帧速率(framerate),这又意味着对象在投影序列期间必须保持相对静止以避免模糊。

与简单的有源三角测量相比,结构化光为目标增加“特征点”。由于特征点是预先确定的(即,在空间上编码的)并且非常易于识别,因此结构化光的方法使特征识别更加容易,且三角测量因此更、更可靠。这项技术将复杂性从接收器转移到了光源,需要更复杂的光源,但传感器更简单且计算强度更低。

扫描lidar通过用脉冲激光束照射对象或空间并使用传感器测量反射脉冲来测量与对象或空间的距离。通过以2d和3d扫描激光束,可以使用激光返回时间和波长的差异来对扫描的对象或空间进行2d或3d表示。lidar使用紫外线(uv)、可见光或近红外光,通常通过反向散射将其反射,以形成正在研究的空间或对象的图像或地图。

3d飞行时间(tof)相机的工作原理是使用调制光源照亮场景并观察反射光。测量照明和反射之间的相移并将其转换为距离。与lidar不同,不扫描光源;而是同时照亮整个场景,从而得到更高的帧速率。通常,照明来自在人眼不可见的近红外范围(约800-1500nm)中工作的固态激光器或led。响应于相同光谱的成像传感器接收光,并将光子能量转换为电流,然后转换为电荷,再转换为数字值。进入传感器的光具有由于环境光的分量和来自调制照明源的分量。距离(深度)信息仅嵌入在从调制照明反射的分量中。因此,高环境分量降低信噪比(snr)。

为了检测照明和反射之间的相移,3d飞行时间相机中的光源通过连续波源(通常为正弦波或方波)进行脉冲或调制。针对2d可寻址阵列中每个像素对距离进行测量,从而得到深度地图或3d点的集合。或者,深度地图可以在3d空间中被渲染为点或点云的集合。可以在数学上将3d点连接以形成网格,带纹理的表面可以映射至该网格上。

3d飞行时间相机已在工业环境中使用,但迄今为止,部署已倾向于涉及非安全至关重要的应用,例如装箱和码垛。由于现有的现成3d飞行时间相机未安全评级,因此不能用在对安全要求严格的应用中,例如机器防护或协作机器人应用。因此,需要使包括飞行时间相机在内的3d相机在要求高度安全性并且符合行业公认的安全标准的应用中可用的架构和技术。



技术实现要素:

本发明的实施例在工业安全应用中利用一个或多个3d相机(例如,飞行时间相机)。3d相机生成深度地图或点云,可以由外部硬件和软件使用来对工作单元中的对象进行分类并生成机械设备的控制信号。除了满足功能安全标准外,本发明的实施例还能够处理由3d成像提供的丰富的、复杂的数据,处理这些数据以生成用于工业机械设备的有效且可靠的控制输出。

因此,在第一方面,本发明涉及一种图像处理系统。在各种实施例中,所述系统包括第一和第二3d传感器,第一和第二3d传感器各自用于生成指示在传感器的视场内到对象的距离的逐像素(pixelwise)值的输出阵列,第一和第二3d传感器的视场沿分隔的光学路径重叠;至少一个处理器,用于将来自每个3d传感器的多个顺序获得的输出阵列组合为单个结果(即,组合)输出阵列;第一和第二深度计算引擎,其可由处理器执行,用于将分别来自第一和第二3d传感器的连续结果输出阵列处理为深度值的逐像素阵列;以及比较单元,其可由处理器执行,用于(i)检测基本上同时来自于第一和第二3d传感器的相应处理后的结果输出阵列之间的深度的逐像素差异,以及(ii)如果检测到的深度差异合计超过噪声度量(noisemetric),则生成报警信号。深度计算引擎以流水线方式运行,以便在完成对先前的组合输出阵列的处理之前开始处理新的组合输出阵列。

在一些实施例中,3d传感器为飞行时间(tof)传感器。第一和第二深度计算引擎和比较单元可以例如由现场可编程门阵列执行。

在各种实施例中,所述系统进一步包括至少一个温度传感器,且3d传感器对温度传感器做出响应,并据此修改它们各自的输出阵列。类似地,所述系统可以进一步包括至少一个湿度传感器,在这种情况下,3d传感器将对湿度传感器做出响应,并据此修改它们各自的输出阵列。

使用由3d传感器在无照明下捕获的暗帧可以将多个顺序获得的输出阵列组合为单个结果输出阵列。逐像素值的输出阵列还可以包括指示在传感器视场内到对象的估计距离的针对每个值的光学强度值,且深度计算引擎可以至少部分地基于相关的光学强度值来计算针对每个深度值的误差度量(errormetric)。误差度量可以进一步基于传感器噪声、暗帧数据和/或环境光或温度。在一些实施例中,每个深度计算引擎以流水线方式运行,由此,在执行多个计算处理步骤中的每个步骤之后,完成对最旧的组合输出阵列的处理并开始对最新的组合输出阵列的处理。

在一些实施例中,所述系统进一步包括计时器,用于存储系统的总累积运行时间。计时器配置为当超过预定的总累积运行时间时发出警报。所述系统可以包括电压监测器,电压监测器用于监测系统的所有电压轨(voltagerail),以及用于在检测到故障情况时中断系统电源。

在另一方面,本发明涉及一种图像处理系统,在各种实施例中,所述图像处理系统包括多个3d传感器,每个3d传感器用于(i)照亮传感器的视场,以及(ii)生成指示到照亮的视场内的对象的距离的逐像素值的输出阵列;以及校准单元,用于(i)顺序地使每个3d传感器生成输出阵列,而其他3d传感器照亮它们的视场,以及(ii)从生成的输出阵列创建干扰矩阵。对于每个3d传感器,干扰矩阵指示由与其同时活动的其他3d传感器的干扰程度。

所述系统可以进一步包括用于根据干扰矩阵使3d传感器运行的处理器。处理器可以在3d传感器之一的运行期间抑制一个或多个其他3d传感器的同时运行。在一个或多个其他3d传感器的同时运行期间,处理器可以校正由传感器之一获得的值。

在一些实施例中,所述系统进一步包括外部同步器,用于单独地使3d传感器运行而没有干扰。所述系统可以进一步包括用于存储系统的总累积运行时间的计时器。校准单元可以对总累积运行时间做出响应,并配置为基于其调整指示距离的逐像素值。

在各种实施例中,所述系统进一步包括至少一个温度传感器,且校准单元对温度传感器做出响应,并配置为基于其调整指示距离的逐像素值。类似地,所述系统可以进一步包括至少一个湿度传感器,在这种情况下,校准单元对湿度传感器做出响应,并配置为基于其调整指示距离的逐像素值。所述系统可以包括电压监测器,电压监测器用于监测系统的所有电压轨,以及用于在检测到故障情况时中断系统电源。

本发明的又另一方面涉及一种图像处理系统,在各种实施例中,所述图像处理系统包括至少一个3d传感器,用于生成逐像素值的输出阵列,所述值包括光强度值和指示到传感器视场内的对象的估计距离的值,处理器,和可由处理器执行的深度计算引擎,用于将来自至少一个3d传感器的连续组合输出阵列处理为深度值的逐像素阵列。每个深度值具有至少部分地基于相关的强度值的相关的误差度量。误差度量可以进一步基于传感器噪声、暗帧数据、环境光和/或温度。

在一些实施例中,所述系统进一步包括用于在安全包络内操作机器的控制器。安全包络具有至少部分地由传感器感测的像素的误差度量确定且对应于靠近机器的人的体积。所述系统可以包括电压监测器,电压监测器用于监测系统的所有电压轨,以及用于在检测到故障情况时中断系统电源。

在又另一方面,本发明涉及一种生成3d空间和其中的对象的数字表示并检测该表示中的异常的方法。在各种实施例中,所述方法包括以下步骤:将第一和第二3d传感器布置在空间中或附近;使每个传感器产生逐像素值的输出阵列,所述逐像素值指示到3d空间中以及在传感器视场内的对象的距离,第一和第二3d传感器的视场沿分隔的光学路径重叠;从每个3d传感器以计算方式将多个顺序获得的输出阵列组合为单个结果输出阵列;以流水线方式将分别来自第一和第二3d传感器的连续结果输出阵列以计算方式处理为深度值的逐像素阵列;检测基本上同时来自于第一和第二3d传感器的相应处理的结果输出阵列之间的深度的逐像素差异;以及如果检测到的深度差异合计超过噪声度量,则生成警报信号。

3d传感器可以是飞行时间(tof)传感器。在一些实施例中,所述方法还包括以下步骤:提供至少一个温度传感器,并响应于温度传感器的输出对输出阵列进行修改。类似地,在一些实施例中,所述方法进一步包括以下步骤:提供至少一个湿度传感器,并响应于湿度传感器的输出对输出阵列进行修改。

使用由3d传感器在无照明下捕获的暗帧可以将多个顺序获得的输出阵列平均或以其它方式组合为单个结果输出阵列。逐像素值的输出阵列还可以包括针对每个值的光学强度值,所述光学强度值指示到传感器视场内的对象的估计距离,并且误差度量可以至少部分基于相关的光学强度值。此外,误差度量可以进一步基于传感器噪声、暗帧数据、环境光和/或温度。

在一些实施例中,所述方法进一步包括以下步骤:存储系统的总累积运行时间,并且当超过预定的总累积运行时间时发出警报。执行可以是流水线式的,使得在执行多个计算处理步骤中的每个步骤之后,当最旧的组合输出阵列的处理完成时,最新的组合输出阵列的处理开始。

在又另一方面,本发明涉及一种校准用于3d深度感测的传感器阵列的方法。在各种实施例中,所述方法包括以下步骤:提供多个3d传感器,每个传感器用于(i)照亮传感器的视场,以及(ii)生成逐像素值的输出阵列,所述逐像素值指示到被照亮的视场内的对象的距离;顺序地使每个3d传感器生成输出阵列,而其他3d传感器照亮其视场;以及从所产生的输出阵列创建干扰矩阵,所述干扰矩阵表示,针对每个3d传感器,与其同时活动的其他3d传感器的干扰程度。

可以根据干扰矩阵对3d传感器进行操作,使得在3d传感器之一的运行期间,抑制一个或多个其他3d传感器的同时运行和/或对在一个或多个其他3d传感器同时运行期间由其中一个传感器获得的值进行校正。3d传感器可以在外部进行同步,以使其独立运行而没有干扰。

在各种实施例中,所述方法进一步包括以下步骤:存储系统的总累积运行时间,并基于此来调整逐像素值。所述方法可以进一步包括以下步骤:感测温度和/或湿度,并据此调整逐像素值。

本发明的又另一方面涉及一种生成3d空间和其中的对象的数字表示的方法。在各种实施例中,所述方法包括以下步骤:提供至少一个3d传感器,用于生成逐像素值的输出阵列,其中,所述值包括光强度值和指示到传感器视场内的对象的估计距离的值;以及将来自3d传感器的连续的组合输出阵列处理成深度值的逐像素阵列,每个深度值具有至少部分地基于相关的强度值的相关的误差度量。

误差度量可以进一步基于传感器噪声、暗帧数据、环境光和/或温度。在一些实施例中,所述方法进一步包括以下步骤:在安全包络内操作机器,所述安全包络的体积至少部分地由至少一个传感器感测的像素的误差度量确定且对应于接近机器的人。

通常,如本文所用,术语“基本上”是指±10%,在一些实施例中,为±5%。另外,说明书中提及的“一个示例”、“示例”、“一个实施例”或“一实施例”表示与描述该实例有关的特定特征、结构或特性包括在本技术的至少一个实例中。因此,本说明书中在各个地方出现的短语“在一个示例中”、“在示例中”、“一个实施例”或“实施例”不一定都指代相同的示例。此外,特定特征、结构、程序、步骤或特性可以以任何合适的方式组合在本技术的一个或多个示例中。本文提供的标题仅是为了方便,并不旨在限制或解释所要求保护的技术的范围或含义。

附图说明

在附图中,不同视图中相同的附图标记通常代表相同的部件。而且,附图不一定按比例绘制,而是通常将重点放在说明本发明的原理上。在下文描述中,参考以下附图描述本发明的各种实施例,其中:

图1示意性地示出了根据本发明实施例的相机架构。

图2示意性地示出了图1中示出的实施例的数据流。

具体实施方式

随后的讨论描述了涉及飞行时间相机的实施例,但是应当理解,本发明可以利用能够记录场景并通常以逐像素为基础向所记录的场景分配深度信息的任何形式的3d传感器。在功能上,3d相机生成深度地图或点云,可以由外部硬件和软件使用来对工作单元中的对象进行分类并生成机械设备的控制信号。

首先参考图1,示出了代表性的系统100,其可以配置为在单个外壳内的相机或多个单独的组件。系统100可以在单个外壳中实施为相机,所述系统100包括处理单元110和一对3d传感器115,其中一个(传感器115m)作为主传感器运行,另一个(传感器115s)作为从传感器。相机100(或者,在一些实施例中,传感器115中的每个)还包括光源(例如,vcsel激光源),合适的镜头和调谐至光源的滤光器。来自光源的反射和反向散射的光由镜头捕获并由传感器115记录。光源可以包括扩散器120,尽管是在低功率应用中,发光二极管(led)可以用于代替激光源和扩散器。

处理器110可以是或包括任何合适类型的计算硬件,例如微处理器,但在各种实施例中可以是微控制器、外围集成电路元件、csic(客户专用集成电路)、asic(专用集成电路)、逻辑电路、数字信号处理器、可编程逻辑设备,例如fpga(现场可编程门阵列)、pld(可编程逻辑设备)、pla(可编程逻辑阵列)、rfid处理器、图形处理单元(gpu)、智能芯片或任何其他能够实现本发明的过程的步骤的设备或设备的设置。

在所示的实施例中,处理器110操作fpga,并且可以有利地提供支持安全等级操作的特征,例如,安全分离设计流程以锁定设计的安全关键部分的位置和路线;时钟检查;单粒子翻转;用于跨越fpga边界的各种数据和通信路径的crc功能;以及针对各个子模块的安全等级功能的使用。在处理器的集成存储器中和/或在单独的主随机存取存储器(ram)125(通常为动态ram或dram)内的是指令,概念上示为一组模块,控制处理器110的运行及其与其他硬件组件的交互。这些指令可以以任何适当的编程语言进行编码,包括但不限于高级语言,例如c、c++、c#、java、python、ruby、scala和lua,并利用但不限于任何适当的框架和库,例如tensorflow、keras、pytorch或theano。另外,软件可以以针对驻留在目标设备上的微处理器的汇编语言和/或机器语言来实现。操作系统(未示出)指导执行低级基本系统功能,例如存储器分配、文件管理和大容量存储设备的运行。在更高水平,一对传统的深度计算引擎1301、1302接收原始3d传感器数据并分配深度值给所记录场景的每个像素。原始数据是指来自传感器的未校准数据(例如,每个像素12位)。

使用两个独立的镜头和3d传感器模块115创建两个单独的光学路径。冗余实现了如果相机模块115其中之一在运行期间发生故障能够立即检测。而且,通过不从每个镜头和传感器组合中拾取完全相同的图像,附加级别的处理可以由图像比较模块135执行,将来自一个光学路径的像素的响应投射到另一光学路径的对应像素中。(该投射可以例如在校准阶段确定。)通过此比较可以检测到的故障模式包括由于多次反射和传感器-传感器干扰而导致的错误检测。当两个传感器115基于相机的性能特征在建立的噪声度量内达成一致时,两个独立图像也可以用于减少噪声和/或提高分辨率。用于双通道成像的冗余感测确保在工业环境中对安全至关重要的操作所需的可靠性级别能够满足。

如果比较模块135计算的比较度量在允许范围内,则根据网络通信协议对合并的输出进行处理以进行输出。在所示的实施例中,输出由常规的低时延以太网通信层140提供。该输出可以由用于受控机械设备的安全等级的处理器系统利用,如例如在2019年2月27日提交的美国临时申请序列号62/811,070中所述,其全部公开内容通过引用并入本申请。

系统100可以包括一个或多个环境传感器145以测量诸如温度和湿度等条件。在一个实施例中,多个板上温度传感器145被设置在相机外壳上穿过传感器115的多个位置处,例如,在照明阵列的中心处,并在相机外壳内部(一个靠近主传感器,一个靠近从传感器),用于校准和校正3d感应模块,这是因为系统产生的热量和环境温度变化或漂移影响相机工作参数。例如,相机温度变化会影响相机的基线校准、准确性和操作参数。校准可以用于建立可维持性能的工作温度范围;传感器检测到超出这些范围的状况可能会导致关机,防止发生危险故障。温度校正参数可以在校准期间估计,然后在操作期间实时应用。在一个实施例中,系统100识别稳定的背景图像,并使用它来不断验证校准的正确性,并且温度校正后的图像随时间保持稳定。

在安全等级系统中使用深度传感器的一个基本问题是,来自每个像素的深度结果无法100%确定。到对象的实际距离可能与报告的深度不同。对于照明良好的对象,这种差异很小,可以忽略不计。但是,对于照明较差的对象,报告的深度和实际深度之间的误差可能会变得很显著,表现为对象的实际位置与表观位置之间的不匹配,并且此不匹配将基于每个像素随机化。像素级误差可能是由于例如原始数据饱和或裁剪(clipping),由不同调制频率计算出的无法解决的歧义距离,不同调制频率之间的大强度不匹配,由于低snr导致的高于特定阈值的预测测量误差,或过度的环境光水平。需要知道准确距离的安全等级系统无法承受此类误差。典型的飞行时间相机采用的方法是,如果收到的强度低于一定水平,将针对给定像素的数据归零。对于接收光强度中等或较低的像素,系统可以保守地忽略数据并完全忽略该像素,或者可以接受相机报告的深度结果——该结果可能偏离一段距离。

因此,输出中提供的深度数据可以包括,基于原始数据处理和统计模型,在每个像素的基础上的深度结果的预测测量误差范围。例如,通常飞行时间相机每个像素输出两个值:深度和光强度。强度可以用作数据置信度(即,误差的倒数)的粗略度量,因此,替代输出深度和强度,输出中提供的数据可以是深度和误差范围。范围误差也可以在每个像素的基础上,基于变量(例如,传感器噪声、暗帧数据(如下所述)以及环境因素(例如,环境光和温度))进行预测。

因此,该方法表示对如上所述的简单通过/失败标准的改进,忽略信噪比(snr)低于阈值的像素的所有深度数据。使用简单通过/失败方法,深度数据显示似乎存在零测量误差,因此,依赖于此数据完整性的安全至关重要的过程必须将snr阈值设置得足够高,以使实际测量误差没有系统级别的安全性影响。尽管测量误差增大,但具有中低snr的像素仍可能包含有用的深度信息,并且要么被完全忽略(在高snr阈值时),要么在错误假定零测量误差的情况下使用(在低snr阈值时)。在每个像素的基础上包括测量误差范围,可以使更高级别的安全性至关重要的过程能够利用snr级别从低到中的像素提供的信息,同时适当限制来自此类像素的深度结果。相对于简单通过/失败方法,这可以提高总体系统性能和正常运行时间,尽管应当注意,对于snr非常低的像素,通过/失败标准仍可以与该方法一起使用。

根据本发明的实施例,误差检测可以采取不同的形式,其共同目的是,在每个像素的基础上,防止将错误的深度结果传播到更高级别的安全性至关重要的过程,而无需简单地为最大允许误差(或等效的最低要求强度)设置阈值。例如,像素的深度可以报告为具有相应的像素错误代码的0。替代地,深度计算引擎130可以输出深度以及预期范围误差的报告,使下游安全等级系统能够确定误差是否足够低以允许使用像素。

例如,如美国专利第10,099,372号中所述,其全部公开内容通过引用并入本申请,机器人安全协议可以涉及调节机器人的最大速度(这意味着机器人本身或其任何附件的速度)与机器人上任一点与要避免的相关感测对象集合中的任何点之间的最小距离成比例。当最接近的对象距离某个阈值距离更远时,允许机器人以最大速度运行,在该阈值距离之外,无需担心碰撞,且如果对象在某个最小距离内,将机器人完全停止。可以将足够的余量添加到指定的距离,以解决相关对象或人以某个最大实际速度向机器人的移动。因此,在一种方法中,在机器人周围通过计算生成外部包络或3d区域。在此区域之外,例如,被检测人员的所有运动都被认为是安全的,因为在操作周期内,这些运动无法使人员充分靠近机器人以致构成危险。通过计算在第一区域内限定的、对第二3d区域内人的身体的任何部分的检测,都不阻止机器人继续全速运行。但是,如果检测到的人的任何部分超过第二区域的阈值,但仍在第二区域内的第三内部危险区域之外,则向机器人发出信号,使其以较慢的速度运行。如果检测到的人的任何部分越过最内侧的危险区域--或基于人类运动模型预测在下一个周期内会这样--机器人的运行就会停止。

在这种情况下,可以基于估计的深度误差来调整安全区域(或者可以扩大被认为由检测到的人占据的空间)。检测到的错误越大,安全区域的包络或假定由检测到的人占据的空间就越大。以此方式,机器人可以基于误差估计继续运行而不是关闭,因为太多像素不满足通过/失败标准。

因为场景的任何单个图像可能包含微光和噪声,所以在操作中,在帧触发之后,两个传感器115快速连续地获得场景的多个图像。然后将这些“子帧”平均或以其他方式组合来为每个传感器115生成单个最终帧。相对于帧触发的子帧参数和定时可以在系统级别进行编程,并可用于减少传感器之间的串扰。编程可以包括实现时间复用的子帧定时,以及载波的频率调制。

如图1所示,可以提供用于帧级别以及在某些情况下子帧触发的外部同步器150,以允许多个相机100以安全保证覆盖同一场景,允许对相机输出隔行扫描。帧级别和子帧触发可以使用时序复用来避免干扰。一个相机100可以被指定为主机,控制相机的整体定时以确保每次只有一个照明场景。该主机向各个相机提供触发信号,以指示它们何时应获取下一帧或子帧。

一些实施例利用暗帧(即,没有照明的情况下的场景的图像)用于实时校正环境噪声和传感器偏移。通常,使用多个子帧测量来消除噪声源的微差测量技术是有效的。但是,通过将暗子帧不仅用作环境水平的测量,而且还用作固有相机噪声的测量,可以减少所需的子帧数量,这增加了每个子帧可用的信号量。

如图2所示,当记录下一组子帧时,可以使用流水线架构来促进有效的子帧汇总和处理。架构200代表性地包括fpga210,一对主从飞行时间传感器215m、215s,以及多个外部ddr存储器组2171、2172以支持来自捕获的帧数据的子帧汇总。由于子帧由传感器215m、215s捕获,它们分别沿着数据路径2221、2222,以反映子帧捕获的速率和深度计算处理之间的差异的速率在ddr存储器组217中累积。

每个数据路径221可以具有多个ddr接口,具有纠错码(ecc)支持,以允许同时读取和写入存储器,但是两个数据路径221是独立的。每个深度计算流水线2301、2302以流水线方式工作,使得,在每个处理步骤之后,新的帧可以在较早的帧完成时开始,中间帧通过处理路径逐步推进。与校准有关的数据(例如,温度数据)可以从环境传感器145累积在ddr存储器组217中,并与同时的传感器数据一起传递到深度计算流水线230,以便在每个处理步骤中,深度计算是根据获取帧时占优势的环境条件来进行的。

如上所述,由传感器比较处理单元235对在每个时间步(timestep)之后从深度计算流水线中出现的具有深度信息的新图像进行比较,并作为以太网数据输出。图2示出,如果需要,以太网通信层240可以在fpga210外部实现。

在典型部署中,将多个3d飞行时间相机安装并固定在待测量或成像的工作空间或对象周围。初始校准步骤由每个3d飞行时间相机处的校准模块242(为方便起见,显示为系统200的一部分,但更典型地在外部实现,例如,作为独立组件)执行,以校正结构化噪声影响,包括温度和相机特有的光学畸变。还可以捕获其他元数据,例如子帧预期背景图像,其可以用于实时监测相机测量稳定性。每个相机100可以通过改变照明频率和照明水平(包括在没有照明的情况下由相机捕获的暗水平)来帧触发或子帧触发曝光。通过外部子帧外部同步器150,多个3d飞行时间相机可以以不同的频率和照明级别触发,以最大程度地减少干扰并降低工作单元中所有3d飞行时间相机的时延。通过具有控制相机总体定时的主机(以确保一次只有一个照明场景),可以减少所有相机之间的时延,并提高采集频率。

数据从每个传感器215通过fpga210中的数据接收路径流入相关的ddr217。数据以子帧级别存储在ddr217中。一旦深度计算引擎230识别出完整的子帧已经在相关联的ddr217中累积,则其开始从中提取数据。这些像素流过深度计算引擎230,并作为单频深度值存储回相关联的ddr217中。这些包含不明确的深度结果,需要稍后在流水线中通过比较来解决。因此,一旦用于计算第一单频结果所需的前三个子帧在ddr217中可用,则相关联的深度计算引擎将开始使用那三个子帧以逐像素为基础计算不明确的深度。在发生这种情况时,用于第二个单频结果的下三个子帧从传感器215加载到存储器中,并且当子帧队列为空时,它们接收先前加载的数据,因此不会在提取时浪费处理周期。一旦计算出第一单频结果并将其完全加载到存储器中,深度计算引擎将以类似的方式开始计算第二单频深度结果。同时,第三组子帧被加载到存储器中。

但是,与其在计算时将第二单频深度结果加载到存储器中,不如将其与第一单频深度结果一起以逐像素为基础进行处理,以产生明确的深度结果。然后将该结果作为中间值存储在存储器中,直到可以将其与从第三和第四单频深度结果获得的第二明确深度结果进一步比较为止。重复该过程,直到处理了所有相关子帧。最后,所有的中间结果都从ddr读取,并计算最终深度和强度值。

校准不仅可以针对特定于相机的性能差异进行调整,还可以在多相机配置中表征相机之间的干扰。在初始化期间,一次一台相机照亮场景,其他相机确定接收到多少信号。该过程有助于创建干扰矩阵,干扰矩阵可以存储在ddr217中,该干扰矩阵确定哪些相机可以同时照明。替代地,该方法也可以用于创建实时校正,类似于用于电子信号传输的串扰校正技术。特别是,多个相机的fpga112可以彼此协作(在例如自组织网络(adhocnetwork)中,或者一台相机指定为主机而其他相机作为从机运行),以顺序地使每个相机生成输出,同时其他相机照亮其视场,并且可以共享结果信息以建立和共享来自生成的输出的干扰矩阵。替代地,这些任务可以由操作所有相机的监督控制器来执行。

诸如温度、失真和其他元数据等相机参数在校准期间捕获,并存储在ddr217中;这些在实时重新校准和相机操作过程中使用。校准数据包含传感器的光学特性。如上所述,在计算深度和误差时,深度计算流水线利用这些数据以及流帧数据以及表征传感器的固定噪声特性的数据。相机特定的校准数据在制造阶段收集,并在相机启动时从非易失性prom2451、2452上传到ddr3存储。在运行时间期间,深度计算引擎230根据需要实时地从ddr3存储器访问校准数据。特别地,实时重新校准以常规方式针对操作期间诸如温度或照明水平等操作参数的漂移进行调整。健康和状态监测信息也可以在深度数据的每一帧之后发送,并且可以包括诸如温度、流水线错误码和实时重新校准所需的fpga处理时延裕量等元素。

可以包括操作计时器250(为方便起见,再次显示为内部组件,但可以在外部实现),以保持跟踪相机运行的时间,定期通过通信层240将该数据发送给用户。校准单元242也可以接收该信息以随着相机照明系统和其他组件的老化来调整操作参数。此外,一旦达到了vcsel的老化极限,计时器250就可以产生错误状态以警告用户需要维护。

上述特征解决了常规3d相机或传感系统的各种可能的故障模式,例如多次曝光或共模故障,使得能够在安全等级系统中运行。系统可以包括用于安全等级操作的附加特征。一个这样的特征是通过由电压监测器160对每个电压轨进行监测(参见图1),以便如果检测到故障情况,相机可以立即关闭。另一个是使用在3d飞行时间相机的不同元素与外部环境(包括外部同步器)之间用于数据传输的安全等级协议。从广义上讲,安全等级协议将包括一些错误检查,以确保不良数据不会通过系统传播。可以围绕通用协议(例如udp)创建安全等级协议,支持高带宽但不是固有地可靠的。这可以通过添加安全特征来实现,例如数据包枚举、crc错误检测和帧id标记。这些可确保当前深度帧是正确的深度帧,用于在帧数据从相机输出后进行进一步的下游处理。

以上描述了本发明的某些实施例。然而,明确指出,本发明不限于这些实施例;相反,对本文明确描述的内容的添加和修改也包括在本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1