于定时约束下进行三维数据获取和处理的系统和方法
相关申请案的交叉引用
本申请基于2018年5月4日于美国专利商标局提交的美国临时专利申请第62/666,942号的优先权,其发明名称为“于定时约束下进行三维数据获取和处理的系统和方法(SYSTEMS AND METHODS FOR THREE-DIMENSIONAL DATA ACQUISITION AND PROCESSINGUNDER TIMING CONSTRAINTS)”,其全部公开内容以引用方式并入本文。
技术领域
本发明实施例的各方面涉及对象的三维(3-D)扫描,包括获取对象的3-D数据,该3-D数据包括对象的3-D形状和表面纹理。
背景技术
三维(3-D)扫描系统可用于采集(capture)关于对象的3-D数据。常规的相机一次采集对象的单个二维(2-D)图像。相反地,三维相机系统可以采集关于对象的3-D数据,该3-D数据包括关于对象的3-D形状的信息。3-D数据可以表示为例如”点云(point cloud)”(例如表示对象的表面上的位置的三维坐标的收集(collection))和3-D网格模型(meshmodel)(例如排列在3-D空间中的多边形(例如三角形)的收集,其中多边形代表对象的表面)。3-D相机系统(也称为深度相机系统)和/或3-D扫描系统的示例包括立体相机系统和飞行时间(time-of-flight,ToF)相机。参见例如Hartley,Richard和Andrew Zisserman等人发表的“计算机视觉中的多视图几何(Multiple View Geometry In Computer Vision)”,Cambridge University Press,2003;R.Szeliski发表的“计算机视觉:算法和应用(Computer Vision:Algorithms and Applications)”,Springer,2010,第467页及以下;和P.Zanuttigh等人发表的“飞行时间和结构化光深度相机(Time-of-Flight andStructured Light Depth Camera)”,Springer,2015。
由三维扫描系统采集的3-D数据比对象的2-D图像传送更多关于对象的信息。3-D数据有时可被称为深度图或3-D模型(包括点云和3-D网格模型)。例如,虽然2-D图像通常仅提供对象的单个静态视图,但是用户通常可以操纵3-D数据的视图(例如,通过旋转,重新定位和缩放3-D视图或通过改变虚拟相机的位置),从而允许用户查看模型以更好地理解由3-D数据表示的对象的形状。类似地,用于自动分析被扫描对象的一些技术(诸如计算对象的大小和形状),在对象的3-D模型上更容易执行,而不是在对象的单独2-D图像上执行。
发明内容
本发明的实施例的各方面涉及用于获取关于对象的三维(3-D)数据的系统和方法,诸如对象的物理形状和表面纹理(例如,颜色)的3-D扫描,其可用于生成对象的3-D模型。
本发明的实施例的方面还涉及用于协调多个相机系统以采集对象的多个视图并且组合由不同相机系统采集的数据以构建对象的3-D模型的系统和方法。
根据本发明的一个实施例,一种用于获取对象的三维(3-D)模型的系统包括第一相机组,所述第一相机组包括:具有重叠视场的第一多个深度相机;第一处理器;以及存储指令的第一存储器,所述指令在由所述第一处理器执行时使得所述第一处理器:控制所述第一深度相机同时采集第一对象的第一部分的第一组图像;计算表示所述第一对象的第一部分的部分3-D模型;以及基于表示所述第一对象的第一部分的所述部分3-D模型来检测所述第一对象中的缺陷。
所述第一相机组可以进一步包括第一开始触发器,其被配置为当所述对象进入所述第一深度相机的重叠视场时检测所述对象的到达,并且其中所述第一处理器可以被配置为响应于从所述第一开始触发器接收到触发信号来控制所述第一相机组的第一深度相机以采集所述对象的图像。
所述第一相机组还可以包括第一停止触发器,其被配置为检测所述对象从所述第一深度相机的重叠视场的离开,并且所述第一处理器可以被配置为响应于从所述第一停止触发器接收到触发信号来控制所述第一相机组的第一深度相机以停止采集所述对象的图像。
所述第一相机组可以进一步包括第一准备触发器,其被配置为在所述对象进入所述第一深度相机的重叠视场之前检测所述对象的存在,并且其中所述第一处理器可以被配置为控制所述第一相机组的第一深度相机以响应于从所述第一准备触发接收到触发信号来准备采集所述对象的图像。
所述第一深度相机的重叠视场可以被引导到被配置为传送多个对象的传送器系统的一部分,并且所述传送器系统可以被配置为一次一个地传送所述对象以进入所述第一深度相机的重叠视场。
所述传送器系统可以以非均匀的速度移动,并且所述对象可以以多个不同速率到达所述第一相机组的重叠视场内,所述不同速率包括最大突发速率和相关联的最大突发时间,并且所述第一相机组的第一存储器可以包括缓冲器,所述缓冲器具有足以存储在所述相关联的最大突发时间期间到达最大突发速率的所述对象的图像的大小,所述大小至少是所述第一深度相机的分辨率和所述第一深度相机的帧速率的函数。
所述传送器系统可以以非均匀速度移动并且所述对象可以以多个不同速率到达第一相机组的重叠视场内,所述第一相机组的第一存储器可以包括被配置为存储由所述第一深度相机采集的图像的缓冲器,并且所述第一存储器可以进一步存储指令,该指令在由所述第一处理器执行时使得所述第一处理器:确定所述缓冲器的当前缓冲占用率(currentbuffer occupancy);确定所述当前缓冲占用率是否超过阈值;响应于确定所述当前缓冲占用率不超过所述阈值,将所述第一相机组的配置参数设置为标称采集质量;以及响应于确定所述当前缓冲占用率超过所述阈值:基于存储在所述第一存储器中的多个配置设置(configuration setting)、所述当前缓冲占用率和所述多个不同速率的当前速率来确定新质量水平;以及将所述第一相机组的配置参数设置为所述新质量水平。
所述系统可进一步包含第二相机群组,其包含:具有重叠视场的第二多个深度相机,所述第二深度相机与所述第一深度相机彼此隔开;第二处理器;以及存储指令的第二存储器,所述指令在由所述第二处理器执行时使得所述第二处理器:控制所述第二深度相机以同时采集所述第一对象的第二部分的第二组图像;计算表示所述第一对象的第二部分的部分3-D模型;以及基于表示所述第一对象的第二部分的所述部分3-D模型来检测所述第一对象中的缺陷。
该系统还可以包括协调服务器,其包括第三处理器和存储指令的第三存储器,该指令在由所述第三处理器执行时使得所述第三处理器:从所述第一相机组接收表示所述第一对象的第一部分的所述部分3-D模型;从第一相机组接收表示所述第一对象的第二部分的所述部分3-D模型;以及组合来自表示所述第一对象的第一部分的所述部分3-D模型和表示所述第一对象的第二部分的所述部分3-D模型的数据。
所述第三存储器可进一步存储:第一缓冲器,其经配置以存储来自所述第一相机群组的数据;第二缓冲器,其经配置以存储来自所述第二相机群组的数据;及指令,所述指令在由所述第三处理器执行时致使所述第三处理器:检测所述第一缓冲器及所述第二缓冲器两者何时存储对应于所述第一对象的数据;以及将来自所述第一相机组的表示所述第一对象的第一部分的数据与来自所述第二相机组的表示所述第一对象的第二部分的数据组合。
将来自所述第一相机组的表示所述第一对象的第一部分的数据与来自所述第二相机组的表示所述第一对象的第二部分的数据组合的指令,可以包括将表示所述第一对象的第一部分的所述部分3-D模型与表示所述第一对象的第二部分的所述部分3-D模型合并。
所述3-D模型可以是点云。
所述3-D模型可以是网格模型。
每个深度相机可以包括:具有第一光轴和第一视场的第一不可见光二维(2-D)相机;具有基本上平行于所述第一不可见光2-D相机的第一光轴的第二光轴并且具有与所述第一不可见光2-D相机的第一视场重叠的第二视场的第二不可见光2-D相机;具有基本上平行于所述第一不可见光2-D相机的第一光轴的第三光轴并且具有与所述第一不可见光2-D相机的第一视场重叠的第三视场的彩色2-D相机;以及投影源,其被配置以发射由所述第一不可见光2-D相机和所述第二不可见光2-D相机能检测的电磁频谱的一部分中的不可见光。
根据本发明的一个实施例,一种用于获取对象的三维(3-D)模型的方法,其包括:通过处理器控制包括具有重叠视场的第一多个深度相机的第一相机组,以同时采集第一对象的第一部分的第一组图像;通过处理器计算表示所述第一对象的第一部分的部分3-D模型;以及基于表示所述第一对象的第一部分的所述部分3-D模型来检测所述第一对象中的缺陷。
所述第一相机组可以进一步包括第一开始触发器,该第一开始触发器被配置为当所述对象进入所述第一深度相机的重叠视场时检测对象的到达,并且所述方法还可以包括响应于从所述第一开始触发器接收到的触发信号来控制所述第一相机组的第一深度相机以采集所述对象的图像。
所述第一相机组还可以包括第一停止触发器,其被配置为检测所述对象从所述第一深度相机的重叠视场的离开,并且所述方法还可以包括响应于从所述第一停止触发器接收到的触发信号来控制所述第一相机组的第一深度相机以停止采集所述对象的图像。
所述第一相机组可进一步包括第一准备触发器,其被配置为在所述对象进入所述第一深度相机的重叠视场之前检测所述对象的存在,并且所述方法可进一步包括响应于从所述第一准备触发器接收到的触发信号来控制所述第一相机组的第一深度相机以准备采集所述对象的图像。
所述第一深度相机的重叠视场可以被引导到被配置为传送多个对象的传送器系统的一部分,并且所述传送器系统可以被配置为一次一个地传送所述对象以进入第一深度相机的重叠视场。
所述传送器系统可以以非均匀速度移动,并且所述对象可以以多个不同速率到达所述第一相机组的重叠视场内,所述不同速率包括最大突发速率和相关联的最大突发时间,并且所述第一相机组可以包括存储器,所述存储器包括缓冲器,所述缓冲器具有足以存储在所述相关联的最大突发时间期间到达最大突发速率的所述对象的图像的大小,所述大小至少是所述第一深度相机的分辨率和所述第一深度相机的帧速率的函数。
所述传送器系统可以以非均匀速度移动并且所述对象可以以多个不同速率到达所述第一相机组的重叠视场内,所述第一相机组可以包括存储器,所述存储器包括被配置为存储由所述第一深度相机采集的图像的缓冲器,并且所述方法还可以包括:确定所述缓冲器的当前缓冲占用率;确定所述当前缓冲占用率是否超过阈值;响应于确定所述当前缓冲占用率不超过所述阈值,将所述第一相机组的配置参数设置为标称采集质量;以及响应于确定所述当前缓冲占用率超过所述阈值:基于存储在所述第一存储器中的多个配置设置、所述当前缓冲占用率和所述多个不同速率的当前速率来确定新的质量水平;将所述第一摄像头组的配置参数设置为所述新的质量等级。
该方法还可以包括:通过所述第二处理器控制包括具有重叠视场的第二多个深度相机的第二相机组,以同时采集所述第一对象的第二部分的第二组图像,所述第二深度相机与所述第一深度相机彼此隔开;通过所述第二处理器计算表示所述第一对象的第二部分的部分3-D模型;以及基于表示所述第一对象的第二部分的所述部分3-D模型来检测所述第一对象中的缺陷。
该方法还可以包括:通过协调服务器从所述第一相机组接收表示所述第一对象的第一部分的所述部分3-D模型;由所述协调服务器从所述第一相机组接收表示所述第一对象的第二部分的所述部分3-D模型;以及通过所述协调服务器,组合来自表示所述第一对象的第一部分的所述部分3-D模型和表示所述第一对象的第二部分的所述部分3-D模型的数据。
所述协调服务器可包括:第一缓冲器,其经配置以存储来自所述第一相机群组的数据;及第二缓冲器,其经配置以存储来自所述第二相机群组的数据,所述方法可进一步包含:通过所述协调服务器,检测所述第一缓冲器及所述第二缓冲器两者何时存储对应于所述第一对象的数据;以及通过所述协调服务器,将来自所述第一相机组的表示所述第一对象的第一部分的数据与来自所述第二相机组的表示所述第一对象的第二部分的数据组合。
将来自所述第一相机组的表示所述第一对象的第一部分的数据与来自所述第二相机组的表示所述第一对象的第二部分的数据组合,可以包括将表示所述第一对象的第一部分的所述部分3-D模型与表示所述第一对象的第二部分的所述部分3-D模型合并。
所述3-D模型可以是点云。
所述3-D模型可以是网格模型。
每个深度相机可以包括:具有第一光轴和第一视场的第一不可见光二维(2-D)相机;具有基本上平行于所述第一不可见光2-D相机的第一光轴的第二光轴并且具有与所述第一不可见光2-D相机的第一视场重叠的第二视场的第二不可见光2-D相机;具有基本上平行于所述第一不可见光2-D相机的第一光轴的第三光轴并且具有与所述第一不可见光2-D相机的第一视场重叠的第三视场的彩色2-D相机;以及投影源,其被配置以发射由所述第一不可见光2-D相机和所述第二不可见光2-D相机能检测的电磁频谱的一部分中的不可见光。
附图说明
当结合以下附图考虑时,通过参考以下详细描述,本公开的实施例的各方面将变得更加明显。在附图中,使用相似的附图标记于整个附图中来引用相似的特征和组件。附图不一定按比例绘制。
图1A是根据本发明的一个实施例的在传送带上行进的对象(描绘为手提包)的示意图,其中利用同时成像的多个(五个)相机。
图1B是根据本发明的一个实施例的在具有两个部分的传送带上行进的对象(描绘为手提包)的示意图,其中第一部分沿着第一方向移动对象,并且第二部分沿着与第一方向正交的第二方向移动对象。
图2A是根据本发明的一个实施例的相机组的示意图。
图2B是根据本发明的一个实施例的适于在相机组中使用的深度相机的示意图。
图3A是示出根据本发明的一个实施例的合成3-D模型的一些阶段的流程图。
图3B是示出用于降低以系统的当前吞吐量继续扫描对象的扫描过程的质量的方法的流程图。
图4A是根据本发明的一个实施例的与协调服务器进行通信的多个相机组的示意图。
图4B是根据本发明的一个实施例的由与协调服务器通信的多个相机组采集的数据的相关性的示意图。
图5是根据本发明一个实施例的具有三个触发器的相机组的示意图。
具体实施方式
在下面的详细描述中,仅通过说明的方式示出和描述了本发明的某些示例性实施例。如本领域技术人员将认识到的,本发明可以以许多不同的形式来体现,并且不应被解释为限于本文所阐述的实施例。
本发明的实施例的各方面涉及用于获取关于对象的三维(3-D)数据的系统和方法,诸如对象的物理形状和表面纹理(例如,颜色)的3-D扫描,其可用于生成所述对象的3-D模型。本发明的实施例的方面还涉及用于协调多个相机系统以采集对象的多个视图并且组合通过不同相机系统采集的数据以构建所述对象的3-D模型的系统和方法。所采集的3-D数据可用于对所述对象的视觉分析,诸如对所述对象进行分类和检测所述对象中的缺陷。
为了采集对象的完整视图,无论是使用二维相机系统还是三维相机系统,相机系统通常需要采集所述对象的所有外部可见表面。这通常可通过将相机保持在适当位置同时旋转所述相机前方的所述对象,围绕所述对象移动相机,或前述方式的组合来实现。参见,例如,美国专利第9,912,862号,2018年3月6日授权的“用于辅助3-D扫描的系统和方法(SYSTEM AND METHOD FOR ASSISTED 3D SCANNING)”,其全部公开内容以引用方式并入本文。在一些情况下,来自多个不同相机系统的视图可被组合以采集对象的足够视图。参见例如美国专利申请第15/866,217号,“用于缺陷检测的系统和方法(SYSTEMS AND METHODSFOR DEFECT DETECTION)”,于2018年1月9日向美国专利商标局提交,其全部公开内容以引用方式并入本文。用于从多个图像合成深度图像的技术已被公开于,例如,Hartley,Richard和Andrew Zisserman等人发表的“计算机视觉中的多视图几何(Multiple ViewGeometry In Computer Vision)”,Cambridge University Press,2003和R.Szeliski发表的“计算机视觉:算法和应用(Computer Vision:Algorithms and Applications)”,Springer,2010,第467页及以下。为了方便起见,采集对象的完整视图的讨论排除了采集该对象的底表面的详细讨论,该底表面通常被支撑该对象的表面所遮挡。然而,本发明的实施例不限于此,并且可以涵盖采集对象的底表面的扫描系统。
在一些环境中,物理约束和时间约束可限制可扫描对象的方式。例如,在工厂或其他制造过程的情况中,对象可以沿着传送器系统移动,其中所述对象(产品)由在工作站和/或自动化机械装置处工作的人修改或处理。现有的工作站和现有机械装置的布置可对于相机的放置施加物理约束,以在不干扰制造过程的情况下对所述对象进行无阻碍成像。此外,为了避免减慢现有过程,扫描系统可以在通过生产线的流速所强加的速率下采集所述对象的扫描。
为了方便起见,将在工厂中制造产品的情况中描述本发明的实施例。此外,在使用所述对象的经采集的3-D模型来检测所述对象中的缺陷的情况中,描述本发明的实施例的各方面。然而,本发明的实施例不限于此,也可以应用于其他情况中,并且用于执行其他类型的分析。这些情况可涉及类似的物理约束和时间约束,这些约束导致本发明的实施例可解决由这些约束引起的数据获取问题的情况。示例包括在食品加工厂扫描产品以对产品进行分类(例如,分配等级)以及在分配或运输中心扫描包裹(例如,对包裹进行识别和规定路线)。
图1A是根据本发明的一个实施例的在传送带12上行进的对象10(描绘为手提包)的示意图,其中利用多个(五个)深度相机100(标记为100a、100b、100c、100d和100e)同时进行对象10的成像。为了方便起见,深度相机100在本文中将被称为“相机”100。相机(标记为101a、101b、101c、101d和101e)的视场101被描绘为具有不同阴影的三角形,并且示出了通过相机100采集的对象10的不同视图(例如,表面)。为了便于描绘,视场被表示为三角形,在深度相机的一般情况下,这样的视场也可以近似地被表征为金字塔形状。相机100可以包括彩色和红外线(IR)成像单元,以采集对象的几何和纹理特性(例如,相机可以是立体深度相机,诸如于2016年5月5日向美国专利商标局提交的美国专利申请序号第15/147,879号,“深度感知三目相机系统(Depth Perceptive Trinocular Camera System)”,于2017年6月6日授权为美国专利号第9,674,504号中描述的相机)。每一个别深度相机100可包含经配置以将光聚焦到其相应的图像传感器上的至少两个图像传感器及对应光学系统。所述光学系统的光轴可以是基本上平行的,使得两个图像传感器采集“立体对”的图像,(例如,从稍微不同的视点拍摄的相同场景的两个图像,其中视点被基线距离分开)。每个相机可以包括一个或多个计算单元,诸如但不限于计算处理单元(CPU),图形处理单元(GPU),数字信号处理器(DSP),现场可编程门阵列(FPGA)和专用集成电路(ASIC)。下面将参考图2B更详细地描述深度相机100的一个示例。
相机100可以布置在传送带12的周围,使得它们在对象沿着传送带12移动时不阻碍对象10的移动。相机布置可以被生成而作为配置过程或优化过程的结果,其中考虑目标对象的模型以及传送带上的移动的模型,以便在所得到的3-D模型中获得至少最低水平的准确度和完整性。例如,考虑覆盖的示例可见例如在2018年1月9日向美国专利商标局提交的美国专利申请第15/866,217号,“用于缺陷检测的系统和方法(SYSTEMS AND METHODSFOR DEFECT DETECTION)”,其全部公开内容以引用方式并入本文。一些因素包括所得扫描的期望分辨率,需要检测的对象的最小表面特征的大小(例如,最小缺陷的大小),个体深度相机100的分辨率,相机的焦距,环境中可用的光以及对象的移动速度。
相机可以是静止的并且被配置为当对象10的至少一部分进入它们各自的视场(FOV)101时采集图像。相机100可以被布置成使得当对象10沿着传送带12移动时,组合的相机FOVs 101覆盖对象10的所有关键(例如,可见)表面,并且以适合于采集的3-D模型的目的的分辨率(例如,对在将提手附接到袋的缝合周围具有更多细节)。所采集的图像可用来合成对象10的3-D模型。
如上所述,在一些情况下,物理约束妨碍或防止可在单个位置处覆盖对象10的所有关键表面的相机系统(或相机组)的安装。例如,在生产线中,分配给人类雇员在对象10上工作的现有装置或空间可能占据传送带周围的大量空间,仅留下少数地方可用于放置相机。此外,这些剩余地方可能不允许相机完全包围对象,从而阻碍了基本上同时在一个位置(例如,在生产线中的一个点)采集对象的所有关键表面的能力。
为了方便起见,术语“关键表面”将用于指所述对象的感兴趣扫描的所有表面。更详细地,为了缺陷检测的目的,关键表面可包括易发生故障的对象的特定部分,诸如手提包的接缝,其中缝合的质量和织物的对准可能是特别感兴趣的,或者与拉链或提手的附接相关联的缝合。
因此,本发明的一些实施例涉及一种3-D数据获取系统,其中多个相机组沿着生产线彼此间隔开。每个相机组可以包括多个深度相机(例如,立体深度相机),并且每个组的深度相机可以被一起控制以基本上同时捕捉对象10的关键表面的一部分(例如,子集)的图像。在一些实施例中,相机组被布置成使得所有相机组的相机的组合视场基本上采集对象的所有关键表面。在一些实施例中,不同相机组的视场不重叠或彼此不重叠。
根据本发明的一个实施例,作为相机布置的一个示例,图1B是在具有两个部分的传送带12上行进的对象10(描绘为手提包)的示意图,其中传送带12的第一部分12a沿着第一方向(-y方向)移动对象10,并且传送带12的第二部分12b沿着与第一方向正交的第二方向(+x方向)移动对象10。当对象10随着传送带12的第一部分12a行进时,在第一位置处,第一相机100a从上方成像对象10的顶部(+z)表面,而第二相机100b对所述对象的+x侧成像。第一相机100a和第二相机100b可以构成第一相机组130ab。在传送带的第一部分12a上的第二位置,第二照相机组130cd的第三照相机100c和第四照相机100d对所述对象10的-x侧成像。
在这种布置中,由于这样做将需要沿着传送带的移动方向放置相机并且因此可能阻碍对象10的移动,所以可能难以对对象10的端部进行成像。因此,对象10可以转向(transition)(不旋转)到传送带12的第二部分12b,其中,在转向之后,对象10的-y侧现在相对于位在第三位置处的第三相机组130ef的相机100e和100f是可见的。在第四位置,第四相机组130gh的相机100g和100h对所述对象的+y侧成像。假设相机组130的相机100基本上是静止的,并且对象在不旋转的情况下沿着传送器系统移动,每个相机可以在对象通过时采集对象的多个图像。
因此,图1B示出了允许覆盖对象10的整个可见表面的相机组130的布置的示例。在本发明的一些实施例中,由不同相机组130的相机采集的数据被组合以合成对象的单个3-D模型(例如,整个对象10的全局模型(global model))。在一些实施例中,分别处理通过每个相机组130采集的数据(例如,生成几个单独的3-D模型),而不将所有采集的数据组合成单个“全局”3-D模型。
虽然图1B描绘了彼此相邻的相机组,但是在许多情况下,相机组可以通过诸如位于相机组之间的一个或多个工作站的显著距离分开。制造装置和/或人可以对位于每一个这些工作站中的对象执行任务。因此,不同的相机组可以在不同状态(例如,组件的不同阶段)采集产品的图像。在一些实施例中,相机组被布置成使得它们仅采集对象的部分,该对象的部分预期在特定位置处被完成或完备(对于特定制造阶段)。因此,沿着生产线的对象的流动可以是不均匀的。例如,在一些过程中,在恢复串行操作之前,可以串行接地处理物件(例如,一次一个),并且周期性地对物件进行批量操作(例如,多个物件可以分组在一起并且同时),从而潜在地导致对象的"脉冲"。作为另一示例,在一个工作站可能出现问题,该工作站可以在解决问题的同时临时保持多个对象,然后一次释放所有保持的对象,从而导致对象的偶然爆发。同样地,在一个工作站处的临时保持可以导致在生产线的下游工作站中的对象到达速率的相应下降。
因此,在通过较早的相机组对数据的采集和随后的相机组对数据的采集之间可以经过大量的时间,从而等待时间从所采集的数据合成对象的3-D模型。除了由一个相机组看到特定对象的时间与另一相机组看到相同对象之间的等待时间之外,生产线的吞吐量还可以意味着较早的相机组将在特定对象到达稍后的相机组之前采集许多附加的对象的数据。因此,由较早的相机组采集的数据可能需要被缓冲以便与同一对象的稍后采集的数据组合。
相机组
图2A是根据本发明的一个实施例的相机组130ijk的示意图。如图2A所示,三个相机CAM1,CAM2和CAM3(分别标记为100i,100j和100k)被配置为采集在传送器系统12上的对象10的不同部分的重叠图像。图像的采集可以由触发系统触发,该触发系统可以包括开始触发器28,其检测对象10何时进入相机100i,100j和100k的视场。触发系统的开始触发器28可以包括激光发射器,该激光发射器被配置为当激光信号被对象10的存在中断时向控制器24(例如,计算机或微控制器)发送触发信号。然后,控制器24可以控制相机100i,100j和100k开始采集对象的图像。在本发明的一些实施例中,相机组130ijk可以包括多个触发器(参见图15),诸如用于检测对象何时已经离开相机100i,100j和100k的视场的附加触发器(停止触发器),和/或用于检测对象10何时接近相机组130ijk的触发器(准备触发器),从而允许相机组130ijk在对象到达之前执行设置或初始化操作。相机100i,100j和100k可以通过诸如通用串行总线(universal serial bus,USB)的外围界面基座(peripheralinterface base)连接到控制器24。在一些其他实施例中,触发器可以直接从组中的一个或多个相机获取的成像信息获得,诸如通过以较低分辨率和/或通过利用接近传感器或附加照明源来处理采集的图像数据。
控制器24还可以连接到网络26(例如,以太网(Ethernet)802.3网络或无线LAN802.11网络)以与其他装置(诸如协调服务器计算机30和/或其他相机组130)通信。例如,由相机100i,100j和100k采集的数据可通过网络2626传送到协调服务器30。
本文描述的各种计算装置(包括控制器24和协调服务器30)可以包括与存储器(例如,动态存储器和/或持久存储器)耦合的一个或多个处理器(例如,中央处理单元,图形处理单元,现场可编程门阵列和专用集成电路),所述存储器存储指令,该指令配置计算装置以执行本文所述的特定的特殊功能。所述一个或多个处理器可以通过外围输入/输出装置,例如网络适配器和通用串行总线(USB)控制器,已与其他装置(诸如相机100)通信。
深度相机硬件
在本发明的一些实施例中,深度相机100(也称为距离相机(range camera))可包括具有重叠视场的至少两个标准二维相机。更详细地,这些二维(2-D)相机可各自包括数字图像传感器,诸如互补金属氧化物半导体(CMOS)图像传感器或电荷耦合装置(CCD)图像传感器和光学系统(例如,一个或多个透镜),所述光学系统被配置为将光聚焦到所述图像传感器上。2-D相机的光学系统的光轴可以基本上平行,使得两个相机对基本上相同的场景成像,尽管从稍微不同的视角来看。因此,由于视差,距相机较远的场景的部分将出现在由两个相机采集的图像中基本上相同的位置,而更靠近相机的场景的部分将出现在不同位置中。
使用几何校准的深度相机,可以相对于参考坐标系(例如,在深度相机处具有其原点的坐标系)识别对象的表面上的所有可见点的3-D位置。因此,由距离相机100采集的范围图像或深度图像可表示为3-D点的云,其可用于描述对象的表面的部分(以及深度相机的视场内的其它表面)。
图2是根据本发明的一个实施例的立体深度相机系统的框图。图2中所示的深度相机系统100包括第一相机102,第二相机104,投影源106(或照明源或有源投影系统),以及主机处理器108和存储器110,其中主机处理器可以是例如图形处理单元(GPU),更通用的处理器(CPU),适当配置的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。第一相机102和第二相机104可例如在框架上刚性附接,使得它们的相对位置和定向基本上固定。第一相机102和第二相机104可一起被称为“深度相机”。第一相机102和第二相机104包括相应的图像传感器102a和104a,并且还可以包括相应的图像信号处理器(ISP)102b和104b。各种组件可以通过系统总线112彼此通信。深度相机系统100可以包括附加组件,诸如与其他装置通信的网络适配器116,诸如陀螺仪的惯性测量单元(IMU)118以检测深度相机100的加速度(例如,检测重力方向以确认定向),以及持久存储器120,诸如用于存储由深度相机系统100收集和处理的数据的NAND闪存存储器。IMU118可以是许多现代智能电话中常见的类型。图像采集系统还可以包括其它通信组件,诸如通用串行总线(USB)界面控制器。在一些实施例中,深度相机系统100还包括显示装置122和一个或多个用户输入装置124(例如,显示装置122的触敏面板和/或一个或多个物理按钮或触发器)。
尽管图2中所示的框图描绘了深度相机100,其包括耦合到主机处理器108,存储器110,网络适配器116,IMU118和持久存储器120的两个相机102和104,但是本发明的实施例不限于此。例如,图6中所示的三个深度相机100(下文更详细地描述)可各自仅包括相机102和104,投影源106和通信组件(例如,USB连接或网络适配器116),并且处理由三个深度相机100的相机102和104捕捉的二维图像可以由使用其各自的通信组件或网络适配器116与深度相机100通信的共享处理器或共享处理器集合来执行。例如图2A的控制器24可用于处理从相机100i,100j和100k接收的2-D图像,以生成对应于由相机100i,100j和100k采集的视图的三个单独的深度图像。
在一些实施例中,相机102和104的图像传感器102a和104a是RGB-IR图像传感器。能够检测可见光(例如,红-绿-蓝或RGB)和不可见光(例如,红外光或IR)信息的图像传感器可以是例如电荷耦合装置(CCD)或互补金属氧化物半导体(CMOS)传感器。通常,传统的RGB相机传感器包括以"拜耳布局(Bayer layout)"或“RGBG布局”布置的像素,其是50%的绿光,25%的红光和25%的蓝光。根据拜耳布局,针对绿光、红光和蓝光波长中的每一者,将带通滤波器(或"微滤波器")放置在各个光电二极管的前面(例如,在光电二极管和与相机相关联的光学器件之间)。通常,常规RGB相机传感器还包括红外(IR)滤波器或IR截止滤波器(例如,形成作为透镜的一部分或者作为整个图像传感器芯片上的涂层),其进一步阻挡电磁频谱的IR部分中的信号。
RGB-IR传感器基本上类似于常规RGB传感器,但是可以包括不同的滤色器。例如,在RGB-IR传感器中,每组四个光电二极管中的绿光滤波器中的一个被IR带通滤波器(或微滤波器)替换,以产生25%绿光、25%红光、25%蓝光和25%红外光的布局,其中红外光像素混合于可见光像素之间。此外,RGB-IR传感器可以省略IR截止滤光器,IR截止滤光器可以仅位于检测红光,绿光和蓝光的像素上,或者IR滤光器可以被设计为通过可见光以及特定波长范围(例如,840-860nm)中的光。一种能够采集电磁频谱的多个部分或频带或光谱带中的光的图像传感器(例如,红光、蓝光、绿光和红外光)在本文中将被称为"多通道"图像传感器。
在本发明的一些实施例中,图像传感器102a和104a是常规可见光传感器(例如,RGB传感器)。在本发明的一些实施例中,系统包括一个或多个可见光相机(例如,RGB相机),并且单独地包括一个或多个不可见光相机(例如,红外光相机,其中IR带通滤波器位于所有像素上)。在本发明的其它实施例中,图像传感器102a和104a是红外(IR)光传感器。在本发明的一些实施例中,图像传感器102a和104a是红外光(IR)传感器。在一些实施例(诸如其中图像传感器102a和104a是IR传感器的那些实施例)中,深度相机100可包括第三相机105,其包括彩色图像传感器105a(例如,被配置成检测红光、绿光和蓝光波长的可见光的图像传感器,诸如以Bayer布局或RGBG布局安排的图像传感器)和图像信号处理器105b。
在其中深度相机100包括彩色图像传感器(例如,RGB传感器或RGB-IR传感器)的一些实施例中,由深度相机100收集的彩色图像数据可以补充由彩色相机150采集的彩色图像数据。此外,在其中深度相机100包括彩色图像传感器(例如,RGB传感器或RGB-IR传感器)的一些实施例中,可以从系统中省略彩色相机150。
一般而言,立体深度相机系统包括彼此间隔开并且刚性地安装到诸如刚性框架的共享结构的至少两个相机。相机在基本上相同的方向上定向(例如,相机的光轴可以是基本上平行的)并且具有重叠的视场。这些单独的相机可以使用例如互补金属氧化物半导体(CMOS)或电荷耦合装置(CCD)图像传感器来实现,其具有被配置为将光引导或聚焦到图像传感器上的光学系统(例如,包括一个或多个透镜)。光学系统可以例如基于光学系统是实现“广角”透镜、“远摄”透镜还是两者之间的某物来确定相机的视场。
在以下讨论中,深度相机系统的图像获取系统可被称为具有至少两个相机,其可被称为“主”相机和一个或多个“从”相机。一般而言,从主相机的视点计算出的估计的深度或视差图,但是任何相机都可以用作主相机。如本文所使用的,除非另有说明,否则诸如主/从,左/右,上/下和第一/第二之类的术语可互换地使用。换句话说,相机中的任何一个可以是主相机或从相机,并且对于位在左侧的照相机相对于其右侧的照相机的考虑,也可以通过对称而适用于其它方向。此外,虽然下面给出的考虑对于各种数量的相机可能是有效的,但是为了方便起见,它们通常将在包括两个相机的系统的情况中描述。例如,深度相机系统可以包括三个相机。在这样的系统中,两个相机可以是不可见光(红外光)相机,并且第三相机可以是可见光(例如,红光/蓝光/绿光彩色相机)相机。所有三个相机可以相对于彼此光学地配准(例如校准)。包括三个相机的深度相机系统的一个示例公开于2017年6月6日授权的美国专利第9,674,504号中描述,其全部公开内容以引用方式并入本文。这样的三相机系统还可以包括红外光照明器,该红外光照明器被配置为发射可由红外光相机(例如,840-860nm)检测的波长范围的光。
为了检测通过相机成像的场景中的特征的深度,深度相机系统确定由相机采集的每一个图像中的特征的像素位置。两个图像中的特征之间的距离被称为视差,其与对象的距离或深度成反比。(这是当比较当用一只眼睛一次观看对象时该对象“移位(shift)”多少的效果-移位的大小取决于对象离观看者的眼睛有多远,其中较近的对象产生较大移位且较远的对象产生较小移位且远处的对象可能具有很少到没有可检测的移位)。例如,R.Szeliski发表的“计算机视觉:算法和应用(Computer Vision:Algorithms andApplications)”,Springer,2010,第467页及以下。
主相机和从相机之间的视差量取决于深度相机系统的物理特性,诸如相机的像素分辨率,相机之间的距离和相机的视场。因此,为了生成精确的深度测量值,基于这些物理特性来校准深度相机(或深度感知深度相机系统)。
在一些深度相机系统中,相机可以被布置成使得相机的图像传感器的像素的水平行基本上平行。由于相机的透镜的形状和相机的定向的变化,可以使用图像校正技术来适应图像的失真。
更详细地,相机校准信息可以提供校正输入图像的信息,使得等效相机系统的核线(epipolar line)与校正图像的扫描线对准。在这种情况下,场景中的3-D点投影到主图像和从图像中的相同扫描线索引上。令um和us分别是主和从等效相机中的同一3-D点p的图像的扫描线上的坐标,其中在每个相机中,这些坐标是指以主点(光轴与焦平面的交点)为中心的轴系统,且水平轴平行于经校正的图像的扫描线。差异us-um被称为视差并且由d表示;它与3-D点相对于经校正的相机的正交距离(即,点的正交投影到任一相机的光轴上的长度)成反比。
立体算法利用了这种视差的特性。这些算法通过匹配在左视图和右视图中检测到的点(或特征)来实现3-D重建,这相当于估计视差。块匹配(block matching,BM)是通常使用的立体算法。给定主相机图像中的像素,算法计算代价(cost)以将该像素与从相机图像中的任何其他像素匹配。该代价函数被定义为围绕主图像中的像素的小窗口内的图像内容与从属图像中的像素之间的相异性。最后将点处的最优视差估计为最小匹配代价的自变量。这个过程通常称为赢者通吃(Winner-Take-All,WTA)。这些技术在例如R.Szeliski,“计算机视觉:算法和应用(Computer Vision:Algorithms and Applications)”,Springer,2010中有更详细的描述。由于像BM的立体算法依赖于外观相似性,所以如果从图像中的多于一个像素具有相同的局部外观,则视差计算变得具有挑战性,因为所有这些像素可能与主图像中的相同像素相似,从而导致模糊的视差估计。这种情况可能发生的典型情况是当以恒定亮度显现场景时,例如平坦的墙壁。
存在通过投射经设计以改进或优化块匹配算法的性能的图案来提供额外照明的方法,其可以采集小的3-D细节,诸如在2016年7月12日授权的美国专利第9,392,262号,“用于使用多个多通道相机的3-D重建的系统和方法(System and Method for 3-DReconstruction Using Multiple Multi-Channel Cameras)”中描述的细节,其全部公开内容以引用方式并入本文。另一种方法投射纯粹用于向场景提供纹理的模式,并且通过消除场景中否则看起来相同的部分的歧义来特别地改进无纹理区域的深度估计。
根据本发明的实施例的投影源106可以被配置为朝向通过相机102和104成像的场景发射可见光(例如,人类和/或其他动物可见的光谱内的光)或不可见光(例如,红外光)。换句话说,投影源可以具有基本上平行于相机102和104的光轴的光轴,并且可以被配置为在相机102和104的视场的方向上发射光,其中所发射的光在通过相机102和104可检测的电磁频谱的部分(例如,当相机102和104是不可见光或红外光相机时,投影源106投射电磁频谱的不可见光或红外光部分中的光)。两个照相机102和104以这种方式布置有投影源106的布置,有时被称为“主动立体”。在一些实施例中,投影源106可以包括多个单独的照明器,每个照明器具有与其他照明器(或多个照明器)的光轴(或多个光轴)间隔开的光轴,并且与相机102和104的光轴间隔开。
不可见光投射源可以更好地适合于其中主体是人(诸如在视频会议系统中)的情况,因为不可见的光不会干扰主体的视觉能力,而可见光投影源可以不舒适地照射到主体的眼睛中,或者可通过将图案添加到场景而不期望地影响体验。包括不可见光投影源的系统的示例描述于例如2016年12月6日授权的美国专利第9,516,295号,“基于多曝光设置的多通道成像的系统和方法(Systems and Methods for Multi-Channel Imaging Based onMultiple Exposure Settings)”,其全部公开内容以引用方式并入本文。
有源投影源还可以被分类为投影静态图案,例如,不随时间变化的图案,以及动态图案,例如随时间变化的图案。在两种情况下,图案的一个方面是投影图案的照明水平。因为它可以影响深度相机系统的深度动态范围,这可能是相关的。例如,如果光学照明处于高水平,则可以在明亮的环境光条件下对远处的对象进行深度测量(例如,以通过与距离的平方的倒数成比例的因子来克服光学照明在到对象的距离上的减小)。然而,高光学照明水平可能导致特写的场景部分的饱和。另一方面,低光学照明水平可以允许测量近的对象,而不是远的对象。
深度计算可能由于多个因素而在一些区域面积中失败,包括:用于计算深度(三角测量,具有或不具有主动照明器或飞行时间)的机制;场景的几何形状(诸如每个表面元素与相关联的视线之间的角度,或可能阻碍立体系统中的任一传感器的视图的部分遮挡的存在);以及表面的反射率特性表面的反射特性(例如存在镜面反射分量(specularcomponent),其可能阻碍立体匹配或使投影仪的光反射离开,或者非常低的反照率,其导致由表面反射的光不足)。对于深度计算失败或不可靠的深度图像的那些像素,仅彩色信息是可用的。
尽管本文中描述的本发明的实施例关于立体深度相机系统,但本发明的实施例不限于此,并且还可与其它深度相机系统(例如,飞行相机和LIDAR相机的结构化光时间)一起使用。
根据相机的选择,可以使用不同的技术来生成3-D模型。例如,实时密集跟踪和映射(Dense Tracking and Mapping in Real Time,DTAM)使用颜色提示来扫描,并且同时定位和映射(Simultaneous Localization and Mapping,SLAM)使用深度数据(或深度和颜色数据的组合)来生成3D模型。
通常,从通过相机采集的图像计算3-D模型的过程包括若干处理阶段。图3A是示出根据本发明的一个实施例的合成3-D模型的一些阶段的流程图。参考图3A,在操作310中,控制相机组130的相机100以采集对象10的图像(例如,通过深度相机100的个别2-D相机102、104和105采集的2-D图像)。在本发明的一些实施例中,与相机组130相关联的控制器24控制相机组的相机100以基本上同时采集图像(例如,根据使用触发系统28检测到对象10的存在,并且在一些实施例中,使用通过控制器24发送的同步信号来同步通过相机100采集单个帧)。
由每个深度相机100采集的数据在操作320中通过点云生成模块用于生成部分点云。例如,每个深度相机100可以包括至少一立体对的相机(例如,2-D相机102、104和105)。块匹配可用于匹配通过该立体对采集的图像对中的特征,且匹配块可用于计算视差图,所述视差图用于计算点云。在一些实施例中,每个深度相机100包括点云生成模块。例如,点云生成模块可以在存储在深度相机100的存储器110和/或持久存储器120中并且由深度相机100的主机处理器108执行的软件中实现,使得每个深度相机100计算其对应的2-D相机102、104和105所采集的对象的视图相对应的部分点云。
在一个实施例中,点云合并模块在操作330中合并单独的部分点云以生成整个对象10的合并点云。假定相机组130内的相机100相对于彼此的姿态是已知的(相机“被校准”),相机被同步(例如,被控制以基本上同时地采集图像),并且存在对通过相机采集的图像的精确时间戳,则将由单独的深度相机100采集的点云映射到一致的坐标系中的必要的刚性变换是已知且直接的。(在未校准系统的情况下,迭代最近点或ICP可以用于对齐点云。)
在一些实施例中,在操作340中,3-D网格模型生成模块从合并点云生成3-D网格模型。在一些实施例中,3-D模型是3-D网格模型。用于将点云转换成3-D网格模型的技术的示例包括Delaunay三角测量和用于使用三角形的边连接点云的相邻点的α-形状。在一些实施例中,MeshLab软件包用于将点云转换为3-D网格模型(参见,例如,P.Cignoni,M.Callieri,M.Corsini,M.Dellepiane,F.Ganovelli,G.Ranzuglia MeshLab:开放源网格处理工具第六届意大利欧文会议(an Open-Source Mesh Processing Tool Sixth EurographicsItalian Chapter Conference),第129-136页,2008。。在一些实施例中,省略操作340,并且合并点云被认为是生成的3-D模型。
在操作350中,可对合并点云执行缺陷检测,或者,如果执行操作340,则对所得3-D模型执行缺陷检测。在一些实施例中,可将所计算的3-D模型与对象的参考3-D模型进行比较。在一些实施例中,3-D模型还可以包括附加的反射率信息,诸如双向反射函数(BDRF)。关于缺陷检测的附加细节,参见例如2018年1月9日向美国专利商标局提交的美国专利申请第15/866217号,“用于缺陷检测的系统和方法(SYSTEMS AND METHODS FOR DEFECTDETECTION)”。技术的额外实例包含将所采集的3-D模型供应到经训练以检测缺陷的神经网络。这样的神经网络可以是例如包括一个或多个卷积层(convolutional layer)的深度神经网络。将采集的3-D模型提供给神经网络可以包括渲染(rendering)3-D模型的多个视图(例如,渲染2-D视图),并且池化从单独视图计算的特征向量(例如,使用最大池化)。
图3A中所示的每一操作可招致一定程度的处理时间或处理等待时间。例如,对于计算硬件,相机的数量和相机100的分辨率的一个组合,在操作310中利用深度相机采集对象的图像可以花费大约3秒并且在操作320中计算点云,在操作330中合并点云,并且在操作350中检测缺陷可以各自花费大约10秒。因此,使用这种系统检测单个对象中的缺陷的处理等待时间可以是大约三十三秒。此外,通过网络传送原始采集数据和计算的3-D模型和/或合并点云可能花费大约10秒。给出这些特定数字作为基于当前技术的代表性示例。
鉴于此三十三秒处理时间,并且假定操作由相机组130的控制器24本地执行,并且这些操作跨多核处理器的多个核被流水线化,则相机组130被限制为每分钟扫描略少于两个对象的吞吐量。(换言之,在系统的视场内的对象10的到达速率将需要小于每分钟两个对象)。
然而,如上所述,在许多制造设置中,生产线的传送器系统可以以不一致的速度移动,因为该线可以基于特定工作站处的问题、移位变化,工作人员休息等而减慢或停止,并且该线可以暂时加速以弥补丢失的时间和/或清除对象的缓冲。在相机组处的对象的平均到达速率以及到达速率的方差(variance)和最大值在数据采集和处理系统上施加定时约束。
虽然这些处理时间适用于图像采集分辨率的一个特定选择,但是相同的总体等待时间问题通常将适用于硬件的其它选择。可基于特定应用的定时约束(例如,特定生产线的平均到达速率)来选择硬件的特定组合。例如,采集时间可以基于相机的帧速率(例如,采集足够数量的对象的图像)和传送器系统的速度(例如,对象在相机的视场中的时间量)而改变,并且处理速度可以随着较不强大或更强大的计算机(例如,更快的处理器、更专用的处理器、多处理核等)以及随着更高或更低分辨率的相机而增加或减少。另外,可以使用流水线的不同组合和配置来适应更高的平均吞吐量。
为了处理对象的临时突发,根据本发明的一些实施例的相机组130的控制器24包括用于在高对象吞吐量的突发期间存储或排队数据的缓冲存储器。在一些实施例中,控制器24的缓冲存储器的大小可以基于制造线的最大突发速率(以及可以维持最大突发速率的突发时间的关联量)和通过相机采集并由控制器24生成的数据的大小(例如,点云的大小)来设置。这些缓冲存储器存储例如由深度相机100的2D相机采集的2D图像数据,同时根据图3A来分析与较早采集(例如,先前对象的图像)相关的计算(例如,以计算点云、合并点云、执行缺陷检测等)。在处理时间再次比对象之间的时间快之后,扫描系统可以通过处理在缓冲器中排队的数据来恢复。
在本发明的一些实施例中,当缓冲存储器不足以在突发期间存储所有收集的数据时,可以进行尽力尝试以保留至少一些数据。缓冲存储器可能不具有足够空间的情况包括以下情况:网络连接离线并且数据不能从控制器24传送;对象以比预期更高的速率到达;硬件故障(例如,存储模块)等。减少数据量(例如,降低输出的质量)的尽力方法可包括:降低相机的采集帧速率,压缩通过相机获取的图像(具有无损或有损压缩),降低点云的分辨率(例如,删除点)等。
不同形式的质量降级可导致扫描系统的最大吞吐量不同。例如,压缩图像可以减少传输时间,并因此增加吞吐量,但是由于与由控制器24执行压缩相关联的附加处理(例如,CPU)开销,最大吞吐量仍然可能受到限制。在另一方面,减小相机的采集帧速率可以减少总处理负载,但是降低采集速率太多可能导致无法采集一些对象(例如,在帧之间经过的对象)或者无法采集对象的一些表面(例如,如果在典型的采集模式中,相机在三个时间点采集对象的图像,其中相对于对象具有稍微不同的姿态,则来自所有三个姿态的数据将是可用的,而如果采集速率被降低到每个对象的单个时间点,则来自其他姿态的数据将不可用)。
另外,不同的特定应用对于扫描过程可能具有不同的质量要求。例如,检测对象的某些部分中的缺陷可能具有比检测其他低优先级部分中的缺陷更高的重要性(高优先级)。因此,在降低高优先级表面的图像的质量之前,可以降低对象的低优先级表面采集的图像的质量。
图3B是示出用于降低扫描过程的质量以在系统的当前吞吐量处继续扫描对象的方法360的流程图。为方便起见,本文中将使用术语"缓冲占用率"来指代在系统的缓冲器中存储的数据量("缓冲"),其中所述量可表示在例如多个字节,对象的扫描的数目,总缓冲器大小的百分比或分数等。在操作362中,控制器24确定当前缓冲占用率,并且在操作364中,控制器24(或协调服务器计算机30)确定缓冲器的缓冲占用率是否超过阈值水平。
例如,在将缓冲器占用率跟踪为对象的扫描次数的情况下,可以基于当前扫描被处理并从缓冲器中移除的速率以及新扫描被捕获并基于当前条件确定缓冲器可能很快溢出(例如,由于缓冲器已经达到满容量或满占用率,所以对缓冲器的写入将失败)的速率来确定阈值。作为特定的工作示例,如果缓冲器当前存储四个不同对象的扫描并且具有用于两个以上的空间,并且每个扫描花费30秒被处理,并且对象以每15秒到达一个对象的速率到达,则缓冲器可能在少于一分钟内溢出。在一些实施例中,从在线中较早(例如,“上游”)的相机组130处理对象的速率来估计到达速率。
作为另一实例,当将阈值设定为百分比时,可将阈值设定为总缓冲器大小的特定百分比,例如缓冲器大小的60%。在一些实施例中,根据线(生产线)中的对象的到达速率的设计方差来设置该阈值,诸如通过设置阈值以适应线的速率中的两个标准偏差。
响应于确定尚未超过阈值,在操作366中,控制器24返回到正常或标称采集质量,并且在操作362中返回检查缓冲器的当前缓冲占用率。
响应于确定已经超过阈值,在操作368中,控制器24确定采集和/或处理对象10的扫描的新质量水平,以便保持吞吐量。可以基于包括当前缓冲占用率,对象的当前到达速率和对象的估计的未来到达速率的因素来确定新的质量水平(例如,,基于在上游相机组130处测量的到达速率来估计)。例如,减小所采集的图像的分辨率减少了缓冲器中的每个扫描所消耗的空间量(从而允许更多的对象的扫描被缓冲),并且还由于需要被处理以生成部分点云的较少数据而减少了处理时间。
在本发明的一些实施例中,选择特定方式以降低扫描的质量水平由当前应用的特定需要来控制。例如,配置设置(例如,存储在存储器中或从配置文件加载的配置文件)可以指定从包括当前对象到达速率和当前缓冲占用率水平的输入参数到相机组的一组配置参数的映射。如上所述,配置参数控制通过相机组130采集的扫描的质量,并且可以包括诸如通过相机组130的深度相机100中的至少一些的个体2-D相机采集的2-D图像的分辨率,帧速率(例如,当对象在相机组130的视场内时,由每个深度相机100采集的图像帧的数量),点的数量和/或部分点云中的点的密度,是否从点云生成网格模型等。当基于由扫描系统的特定应用设置的质量要求或约束(例如,在缺陷检测系统中)配置系统时,可以指定质量降低的特定特性,相比于高成本或难以替换部件,降低的质量对于低成本和容易地可替换的对象部件可能更可接受,并且因此可以选择性地减少用于低成本和易于替换的组件的扫描的质量。
在操作370中,控制器24基于所确定的质量水平的配置设置(例如,设置各个深度相机100的采集分辨率或帧速率)重新配置相机组130,并且过程返回到操作362中继续监测缓冲占用率。
在本发明的一些实施例中,在一些情况下,控制器24通过在已经在缓冲器中的扫描中抽取(例如,减少数据量,诸如从部分点云删除点或从网格模型删除顶点)来解决或减轻高缓冲占用率情况。例如,在一些实施例中,控制器减小对应于存储在缓冲器中的先前采集的扫描的数据的分辨率,在一些实施例中,无损或有损压缩可应用于存储在缓冲器中的数据以减小大小。
在一些情况下,给定对象10沿着传送带到达照相机组的预期速率,网络连接将不提供足够的带宽来以足够高的速率发送所有数据。(例如,在一些制造环境中,一个对象可以每4到5秒通过相机组。在其他情况下,对象可以平均每分钟一次通过相机组。
在本发明的一些实施例中,相机组130的多个相机100相对于整个系统或每个相机组所共有的时钟而同步。在一些实施例中,使用利用F-sync的ad-hoc有线连接或类似协议、使用无线远程快门技术、利用宽带传输或使用诸如精确时间协议(PTP)之类的联网同步协议来执行这种同步。
在本发明的一些实施例中,协调服务器30控制与多个相机组130a通信。图4A是根据本发明的一个实施例的与协调服务器30通信的多个相机组130的示意图。如图4A所示,第一相机组130abc可以采集对象10的第一侧(例如,前侧)的图像,第二相机组130def可以采集第二侧(例如,,对象10的左侧)和第三相机组130ijk可以采集对象10的第三侧(例如,右侧)。在各种其他实施例中,附加相机组130可以用于采集对象的附加侧(例如,对象的背侧和顶侧)。
在本发明的一些实施例中,由单独的相机组130采集的数据在协调服务器30处被组合以生成对象的较大部分的3-D模型(例如,点云或网格模型),而不是由相机组130中的任何一个采集的数据。在一些实施例中,整个对象的完整的("全局")3-D模型在协调服务器30处合成。例如,每个相机组130可以向协调服务器30发送:3-D网格模型;计算的点云;和/或对象10的部分的原始采集的2-D图像。基于从相机组130接收的数据的类型或类型,协调服务器30可以组合从单独的部分3-D模型创建的3-D网格模型或3-D点云(例如,部分点云或部分网格模型)。在一个实施例中,“块组装(chunk assembly)”过程用于组合单独的部分3-D模型,其包括基于不同相机组130的相机100相对于对象10的已知姿态(如通过初始校准过程确定的,参见例如图1B,其中,由于相机组的布置,已知相机组130ab对对象10的+x和+z侧成像,已知相机组130cd对对象10的-x和+z/-x表面成像,并且相机组130ef和130gh对对象的+y和-y表面成像)获得部分3-D模型的粗略对准或配准,并且使用诸如迭代最近点的技术来细化对准或配准)。例如,于2017年6月22日向美国专利商标局提交的美国专利申请第15/630,715号,“用于扫描三维对象的系统和方法(SYSTEM AND METHODS FOR SCANNINGTHREE-DIMENSIONAL OBJECTS)”中描述了用于对准或配准表示单个对象的部分的单独的块或部分3-D模型的其他技术,该美国专利申请公布号是2017/0372527,其整个公开内容通过引用并入本文。
协调服务器30还可提供可直接连接到服务器或可提供给远程用户终端的用户界面(user interface)31。例如,用户界面31可以包括用于向用户显示信息的显示面板和用户输入控件,或者用户界面31可以为诸如膝上型计算机或移动电话或平板计算机的远程装置提供网络服务器(web server)以连接到网络服务器以检索,显示和在一些实施例中,修改或增强远程装置上的信息。在一些实施例中,用户界面31显示3-D模型或从由相机组130采集的点云生成的3-D模型。用户界面31还可以通过突出通过缺陷检测器(例如,操作350)在对象中检测到的缺陷来向用户报告缺陷。
本发明的实施例的方面涉及用于协调关于生产线上的对象的数据的采集、组合通过相机组采集的对应数据集以合成3-D模型的系统和方法。图4B是根据本发明的一个实施例的与协调服务器通信的多个相机组采集的数据的相关性的示意图。例如,如果手包10A,10B,10C,10D和10E沿着生产线移动,则由第一相机组130abc采集的手提包10A的图像应该与由第二组130def采集的手提包10A的图像相结合。与手提包10B相关的任何图像或其他数据不应被与例如手提包10A或手提包10C的图像或其他数据组合。
为了匹配由同一对象10的不同相机组130采集的块,在本发明的一些实施例中,假设生产线是以先进先出(FIFO)方式操作,其中所述对象在所述第一相机组与所述最后一个相机组之间保持相同顺序。例如,如果对象A、B和C通过第一相机组130abc,则假定对象将以与A、B和C相同的顺序通过第二相机组130def和第三相机组130ijk。因此,由第一相机组130abc采集的图像(例如,对象A)可以被存储(例如,缓冲)在系统中(例如,在第一相机组的控制器24中或在协调服务器30处),直到还从所有其它相关相机组(例如,指向此特定生产线的其它相机组)接收关于相同对象的额外数据,使得可组合所有数据。
参考图4B,在本发明的一个实施例中,协调服务器30包括对应于相应相机组130abc、130def和130ijk的缓冲器32abc、32def和32ijk。在图4B所示的状态下,对象10a、10B、10C、10D和10E沿着由指向右侧的方块箭头(block arrow)表示的生产线移动,并且相机组130abc处于扫描对象10E的过程中。相机组130abc先前扫描的对象10A、10B、10C和10D,并且因此对应于那些对象的数据被存储在缓冲器32abc中的四个对应位置中(在缓冲器32abc中具有一个空时隙(empty slot))。对象10D在相机组130abc和130def之间并且当前不被扫描。相机组130def是扫描对象10C以及先前扫描的对象10A和10B,并且因此通过相机组130def采集的对象10A和10B的对应数据被存储在协调服务器30的对应缓冲器32def中。对象10B在相机组130def和130ijk之间并且不被扫描。对象10A离开照相机组130ijk的视场,其已完成了其扫描并将对应于对象10A的数据存储在对应的缓冲器32ijk中。
由于通过第一摄像机组130abc扫描对象的时间与通过最后摄像机组(例如,第三摄像机组130ijk)扫描对象的时间之间的潜在的高等待时间,并且由于在该时段期间可以扫描的对象的数量,控制器24和/或协调服务器30可能需要相当大的存储空间来保存等待与稍后的扫描组合的数据。所需的存储空间的特定量可取决于例如图像分辨率,点云分辨率,制造线的吞吐量,在对象的第一扫描与同一对象的最后扫描之间的时间中需要存储的扫描的数量等。在一些情况下,行中上游或行中的停止或减速上游的大量对象的突发可能导致数据在对应于上游相机组的缓冲器中累积。因此,本发明的一些实施例涉及减小数据的大小(例如,通过无损或有损压缩,数据抽取(decimation)等)来避免缓冲器的溢出。
在图4B所示的示例中,协调服务器30仅仅聚集来自三个不同相机组130abc,130def和130ijk的数据。因为来自关于对象10a的所有三个相机组的数据现在被缓冲,所以对该组数据的进一步处理可以继续进行(如在存储与对象10a相关联的数据的三个缓冲器的部分周围的粗黑色矩形34所指示的),通过协调服务器的组数据处理器36。在本发明的一些实施例中,组数据处理器36生成组合的3-D模型(例如,3-D网格模型或3-D点云)。在一些实施例中,组数据处理器36生成在由单独的相机组130abc、130def和130ijk采集的三个单独的部分3-D模型中检测到的缺陷的累积报告,并且报告可以用于控制生产线的各方面(例如,控制致动器以将有缺陷的对象转移出生产流并且更新生产跟踪记录以注意缺陷对象)和/或报告可以经由用户界面显示给用户。
在本发明的一些实施例中,协调服务器30还可以对从相机组130接收的对象的个别“块”执行缺陷检测,或者还可以使用如上所述的组数据处理器36跨不同的相机组执行全局缺陷检测。例如,个别的相机组可能无法检测袋的不同侧面的个别图像中的缺陷,但是袋的组装的全局3-D模型可以显示假设由相同颜色材料制成的袋的不同部分实际上由不同的材料制成(例如,黑色皮革提手附接到棕色皮革袋)。因此,在一些实施例中,协调服务器30可以执行额外的缺陷检测。
在本发明的一些实施例中,检测到的缺陷(例如,如由各个相机组130检测到的或者如由协调服务器检测到的)通过用户界面32显示给用户(例如,生产线的人类管理器)。如上所述,用户界面可以出现在附接到协调服务器30的显示装置上,或者可以在诸如移动电话,平板计算机,膝上型计算机或台式计算机(desktop computer)的远程装置上。在一些情况下,运行在远程装置上的网络浏览器(web browser)被用于连接到用户界面32(例如,用户界面32可以是网络服务器(web server))。在一些情况下,在远程装置上执行的应用(或"app")通过应用编程界面(API)连接到用户界面32(例如,用户界面服务器),以获得关于由相机组130扫描的对象10的数据。
在本发明的各种实施例中,由相机组130扫描并且由缺陷检测算法(例如,在相机组130的控制器24上和/或在协调服务器30上运行)检测到的对象10中的缺陷被显示给用户。例如,在一些本发明的实施例中,表示对象10的3-D模型(例如,由相机组130采集的部分3-D模型或整个对象的完整3-D模型)可被显示给用户,其中被检测为有缺陷的部分被突出显示(例如,具有有色轮廓或具有透明阴影)。因此,本发明的实施例支持生产设备中的质量保证的努力。
在本发明的一些实施例中,协调服务器30控制传送器系统12(例如,控制门的传送器系统中的致动器),以将被检测为具有缺陷的对象10转向,使得可手动检查转向对象以确认缺陷的存在或从输出流移除有缺陷的产品。在一些实施例中,协调服务器30已存取传送器系统12的状态,以便动态地估计流水线状态。
诊断相机组采集系统的问题
本发明的一些方面涉及对相机100、相机组130和触发系统28内的故障的分析。图5是根据本发明的一个实施例的具有三个触发器的相机组的示意图。如图5所示,在本发明的一些实施例中,相机组130可以包括准备触发器28-准备,开始触发器28-开始和停止触发器28-停止。如先前所讨论的,准备触发器28-准备可以被配置为检测对象10何时正在接近相机组130ijk(例如,在对象10到达相机100的视场之前),从而允许相机组130ijk在对象10到达之前执行设置或初始化操作。开始触发器28-开始可以控制相机100开始采集数据,并且停止触发器28-停止可以控制相机100停止采集数据。在本发明的一些实施例中,开始触发器28-开始和停止触发器28-停止可用于识别特定对象何时进入和离开相机100的视场,例如如果对象在传送器系统12上足够紧密地间隔开,那么多个对象10出现在单个帧中。在一些实施例中,仅准备触发是物理系统并且开始和停止触发是虚拟触发器,其信号被计算为来自准备触发信号的等待时间,考虑输送机速度,被框架的对象的几何属性和相机的物理布置。
由触发器28提供的触发信号的定时提供关于相机组130的各个部分的故障的信息。例如,如果在特定时间段期间没有通过相机采集数据,但是在特定时间段开始时从开始触发器28-开始接收到触发信号,并且在特定时间段结束时从停止触发28-停止接收到触发信号,则可能的是相机100的一些方面已经故障(例如,连接到相机的USB端口的故障,相机上的软件崩溃,控制器24上已无图像的存储空间等)。另一方面,如果例如检测到开始触发器28-开始,但未检测到准备触发器28-准备,则这可以表示准备触发器28-准备本身的故障。
因此,本发明的实施例的一些方面涉及使用控制器24来收集关于相机组130的触发器28的激活的数据和由相机组130采集的数据的带时间戳的日志(timestamped log)。在一些实施例中,控制器24基于从触发器28和相机100接收的记录数据(logging data)自动检测和诊断相机组130中的故障。在一些实施例中,相机组自动生成故障通知并将其传输到协调服务器30,以通过用户接口31将故障通知给用户。
因此,本发明的实施例的方面涉及用于在定时约束下进行三维数据采集和处理的系统和方法。
虽然已经结合某些示例性实施例描述了本发明,但是应当理解,本发明不限于所公开的实施例,相反,本发明旨在覆盖各种实施例修改和等同布置包括在所附权利要求及其等效物的精神和范围内。