用于机器人的多传感立体视觉的方法、系统和设备的制造方法_4

文档序号:8947345阅读:来源:国知局
并且允许调整校准而不需要重新生成全部的指令流(其为耗时的流程)。
[0109]如图9C所示的纠正模块524的实现方式使用双线性插值来对源图像进行采样,依靠缓存来改进存储器访问效率。一个多段的缓存964可以允许所有的四个输入像素(针对双线性插值所需)同时被读取。该设计是完全流水化的,并且能够支持接近I像素/周期的吞吐数据量。缓存标记查找与缓存数据读取之间的延迟线允许在数据被实际需要之前解决缓存遗漏。
[0110]在一些实施例中,延迟线可以是先进先出(FIFO)指令缓冲器960,其被设置于纠正模块524的前端954和后端958之间。前端954从指令解码器952接收像素坐标,为一给定的输出像素确定输入像素,然后检查纠正模块524的缓存标记956来确定那些输入像素是否已经在纠正模块的缓存964中。(缓存标记956跟踪当前在缓存961中的是什么,由此:1)前端954知道向DMA控制器962发送什么请求;2)DMA控制器962知道什么时候不再有未处理指令,该未处理指令参考特定的缓存表项,因此其可以安全的改写该表项;3)后端958知道DMA控制器962什么时候已经结束了向缓存964中调取新的表项。)如果那些输入像素不在纠正模块的缓存中,那么前端954将通过DMA总线590指令DMA控制器962来向主存储器514发出一个或多个读取请求以便调取缺失的像素。后端958使用该输入像素(它们中的四个用于双线性采样)来生成一个输出像素。由于主存储器可能比较慢(例如,其可能具有超过100周期的延迟),且不希望后端958失速(例如,因为所期望平均吞吐数据量可以接近I像素/周期以便保持通道平稳运行),因此期望对主存储器隐藏有关调取丢失像素的延迟。
[0111]在一些实施方式中,纠正是一个非常有序的处理,没有分支或象素间的依赖关系,因此隐藏存储延迟可以通过延迟从前端到后端的指令来实现。例如,指令可以用延迟线(FIFO缓冲器960)来延迟一段时间,该段时间可以等于或者大于最坏情况下的存储延迟,由此来确保在后端需要新数据之前已经完成存储器的读取。
[0112]处理器510还利用立体算法模块592实施适当的立体处理算法来将来自摄像机的经过预处理、纠正过的数据转换成立体图像。例如,处理器510可以利用开源核心实施立体块匹配(StereoBM)算法(详见,例如,http://danstrother.com/2011/06/10fpga-stereo-vis1n-core-released/,其全部内容通过引用方式并入本申请)。还可以实施半全局块匹配(SGBM)算法、半全局匹配(SGM)算法(详见,例如,http://www.dir.de/rm/en/PortalData/3/Resources/papers/modeler/cvpr05hh.pdf,其全部内容通过引用方式并入本申请),或者任何其它适当的立体算法。
[0113]在一些情况下,立体处理模块592可以被动态地重新配置成允许其处理不同分辨率的图像输入(如期望或必须的,处理由图9B所示的预处理流水线所生成的未缩放的或经缩放的图像)。较高分辨率的输入产生较多的3D点和更高的景深精确度,但是需要更多的处理。立体处理模块592还可以被动态地重新配置成搜索不同的视差范围(空间)。较大的视差搜索范围可以导致较大的景深范围,但是要求更多的处理。立体处理模块592可以独立地补偿调整过的图像宽度、图像高度、以及视差搜索范围。能够动态地调整图像分辨率和视差搜索范围允许立体处理模块592执行分辨率、范围、以及帧速率之间的实时平衡。需要提醒的是立体处理模块592自身不需要负责缩放图像数据,图像缩放可以在图9B所示的预处理流水线中进行。
[0114]动态重新配置搜索了的视差范围的能力允许处理器510调整3D景深被搜索了多少。(大一些的视差搜索范围导致能够可靠地感测更接近于摄像机的物体,代价是计算量的增加)。搜索的景深/视差量一般从无限远延伸回到传感器(O视差代表无限远,增加的视差表示逐渐靠近的点)。随着视差搜索范围的增加,搜索的景深空间的近端变得更接近传感器。
[0115]另外,处理器510可以包括输出格式化模块572,在通过以太网连接(EthernetMAC 560)传送之前,输出格式化模块572将标准通道格式转换成用户所要求的格式(例如,色彩空间、分辨率、字节格式)。处理器510还可以包括网络协议卸载模块570,其从中央处理单元(CPU) 542卸载网络包的产生。处理器510可以包括特征检测模块(附加的算法模块594),其利用Harris Corners算法或其它任何适当的算法在图像中检测“特征”(例如,相当独特且易于在多个帧中追踪的点)。并且它可以包括与特征检测模块相耦接的特征追踪模块,其接收被检测到的特征并试图在不同的帧之间对它们进行匹配。通过知道特征是如何在各帧之间移动的,能够估计出摄像机的动作。
[0116]正如那些本领域技术人员所知道的那样,固件可以设置并监测以FPGA逻辑中实现的图像处理通道。示例性的硬件可以在FPGA内的简单的软核CPU(XilinxMicroblaze) 542上运行。标准Xilinx提供的外围设备可以被用来建立系统的其它部分,包括:DRAM控制器564、AXI DMA总线、以太网MACs 560、以及低速输入/输出(I/O)驱动540,其耦接到辅助的I/O源(例如,I2C、RS232、等)。
[0117]传感器校准
[0118]校准误差的检测
[0119]可靠性的一个方面是能够检测系统误差并恰当地应对。现场传感器的系统误差源一一尤其是在包括摄像机的传感器中一一是校准漂移。冲击、震动以及热效应都可以影响内部部件的相对位置,从而导致(极有可能是不希望的)传感器的几何结构和成像参数的改变。为了补偿这些校准误差,系统可以如下述那样恢复一个或多个下列的一组参数:描述立体摄像机的投影几何结构和透镜畸变的参数;描述激光扫描仪相对于主轴的位置和方向的参数;描述主轴相对于立体摄像机的位置和方向的参数。
[0120]图像一致性评估:立体摄像机的投影几何结构和透镜畸变
[0121]在本发明的传感器单元中的摄像机可以被校准来建立所观察的物体的3D位置和被投影在左右图像中的2D位置之间的已知关系。当物体的投影位置与所期望的不一致时,其指示校准出现了问题。例如,当摄像机被正确地校准时,场景中的物体将出现在左右图像中的相同扫描线上。通过观察图像在左右图像中出现在不同的扫描线上,系统能够检测出校准漂移。类似地,当摄像机被正确地校准时,远距离的物体将出现在各个图像的相同的左-右位置上。随着物体向摄像机移近,它们将出现在两幅图像中的不断增加的不同左-右位置上。在左-右位置上的不同被称为立体视差。在校准准确性的一次检查中,用户可以被指示去用摄像机对准远距离的地方,那么远离O的视差将指示校准误差。如下文所述,由立体图像对测量得到的物体位置(以及物体位置上的不同)还可以与激光测距仪测量的物体位置相关联。
[0122]图10示出了校准立体摄像机的过程1000。在模块1002中,一个或多个静止的基准点被放置或识别在特定的环境里。一旦基准点就位,系统将被移动通过一系列的位置和方向,在模块1004中称为“姿态”,例如,使用一工业机械人的末端臂(end effector)。在各姿态中,得到的摄像机图像将被检查以便确定静止基准点的图像位置(模块1010)。各姿态和观察到的图像位置的组合对应于投影方程1008。
[0123]在立体校准过程1000中收集到的数据可以被用来估计未知的参数,包括在世界坐标系(world coordinates)中的基准点位置,摄像机相对于机器人的末端臂的位置和方向,摄像机投影几何结构,以及透镜畸变。在立体校准过程1000中已知的参数为基准点在图像中被观察得到的位置,以及机器人末端臂在世界坐标系中的位置和方向。未知的参数可以被恢复,通过集合多个这样的投影方程并求解最接近于匹配观察的未知参数一一例如,利用非线性最小二乘法或类似的优化。
[0124]激光器稳定性评价:激光扫描仪相对于主轴的位置和方向
[0125]如上所述并如图1A和8A-8D所示,本发明的一个示例性传感单元可以包括激光测距仪,其具有一激光器能够绕激光器主轴连续旋转。这意味着激光测距仪对场景的大多数部分测量两遍:一次是在激光束扫描过去时由激光束的左侧进行,而接着180度之后激光束的右侧通过时进行。如果激光器校准是正确的,这两组测量将会对齐。不对齐则意味着校准较差且可以被用于对传感器单元进行重新校准(修复)。
[0126]图11示出了 LIDAR校准过程1100,其采用非线性优化来恢复激光扫描仪相对于主轴的位置和方向。在这种情况下,系统在一固定场景中被保持静止,然后当主轴旋转时收集激光器数据。在主轴完整旋转一周期间,场景的大多数部分将被激光器观察两遍。为了明白这一点,考虑激光扫描场景中一特定物体的左侧。该扫描产生第一组激光距离和方位值1102。接着考虑将主轴向右旋转大约180度,由此激光器处理同一物体来产生第二组激光距离和方位值1112。每次激光器的观测都对应于一能够基于主轴角度(1104和1114)计算得到的3D点(1106和1116),以及激光扫描仪相对于主轴的位置和方向的估计。为了评估第一个180扫描(1102)和第二个180扫描(1112)的一致性,处理器定义了将本地平面拟合到第一观测的“校准误差”函数(步骤1108),然后计算第二次观测与适当的平面模型(1110)之间的距离(1118)来产生一致性测量结果(112)。该误差函数的值取决于校准参数,其可以通过使用非线性最小二乘法优化、模拟退火算法或类似方法来进行恢复,从而找到与观测的激光距离最为一致的值。
[0127]不同传感器之间的稳定性:主轴相对于立体摄像机的位置和方向
[0128]激光器和立体摄像机组件都能够生成场景的3D模型。如果通过良好的校准,之前的检查是前后一致的,那么这些模型能够被用来彼此对比以便核实传感器之间的几何关系是正确的。不幸的是,立体图像的测量误差投影到3D空间内,是以难以准确地进行这种对比的方式所进行的。这可以通过以下方式来解决,即,将激光模型(laser model)投影到图像中如同激光模型被摄像机观测那样,然后在图像空间对比结果。这种评价校准的方案可以使用自然场景或专门建立的校准目标来实现。
[0129]图12示出了相对于激光器主轴较准或记录(registering)立体传感器的过程。如果激光测距仪(LIDAR)和立体传感器已经被校准,例如,利用如图10和11所示的过程,那么激光器数据可以转换成3D激光点云1204,并且摄像机图像可以被用来在大量图像中的像素上计算立体视差图1202。处理器修整(1206)激光点云1204来匹配立体传感器的视场(FOV)。处理器利用LIDAR-到-立体转换参数1210将所得到的修整的点云1208转换到立体传感器坐标系统中,以生成模拟的LIDAR视差图1212。接下来,处理器将模拟的LIDR视差图1212与立体视差图1202进行比较来生成相似度测量结果1216,其被用于非线性地优化(1218) LIDAR-到-立体转换参数1210。
[0130]本领域技术人员可以理解,立体视差对应于摄像机图像中物体的3D位置。这些3D位置反映在来自激光器的3D点云1204中。通过将3D激光器的观测转换到立体摄像机的坐标系统中,能够建立预测的视差图像1212并且将其与来自立体摄像机的实际视差图像1202进行对比。该转换基于主轴相对于立体摄像机的位置和方向,并且处理器再次利用非线性优化以找到校准参数1208,其增加了预测的视差图像和观测的视差图像之间的相似度。
[0131]激光测距仪校准
[0132]本发明的传感器单元可以利用以下技术中的一个或两者并用来校准激光测距仪:
(I)已知几何结构的校准目标被由激光测量,然后这些已知目标的观测结果被用于反推激光器校准参数;以及(2)未知几何结构或未知位置的校准目标被由激光观测,然后调整校准参数来提高激光稳定性(见上)。
[0133]本发明的传感器单元可以支持几种类型的摄像机校准,包括传统方式,其利用已知物体或校准目标的记录测量结果,并检索与观测最为一致的校准参数组。例如,立体摄像机可以在一系列未知位置和/或方向上检测校准目标的位置。所得到的图像被用于确定校准参数和未知位置。这种方式可以行得通是因为校准目标的已知形状提供了信息,即使在其位置是未知的情况下。这种方式可以被扩展,通过利用激光测距仪测量校准目标的位置和几何结构并利用激光距离数据来验证由立体图像数据确定的位置和/或校准参数的准确性的方式。
[0134]本发明的传感器单元的精准内部定时能够使另一摄像机校准方案可行。当摄像机没有安装红外滤光片时,来自场景中物体的激光束的反射可能会在图像中呈现为光斑。这个光斑可以利用图像处理技术检测出来。它的位置提供激光测量的3D点和在左右图像中的一对2D位置之间的对应关系。激光的旋转提供这些对应关系的集合,其正是用于计算摄像机校准的输入数据。
[0135]前述方案的一般化为使用3D激光测量结果和2D图像位置的对应关系,但并不要求激光光斑在图像中可见。这将允许该技术即使在摄像机安装有红外滤光片的时候,或者在场景被照射得过亮以至看不到激光点时也能够工作。在这种情况下,当激光器捕捉大量3D点的时候摄像机和场景是静止不动的。如果激光反射对摄像机是可见的,那么通过检测在左右图像中的激光光斑,每个3D点可以被匹配到2D图像位置中。可替代的,通过利用假设的校准参数将3D点投影到摄像机图像中并且假设投影的2D位置是正确的,也可以
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1