6D目标检测工程落地需求的小算力算法,本文具有借鉴意义,但对于特征点少的目标不太好用。
摘要
在多个实际应用中,经常会遇到确定图像中出现的物体姿态的问题。处理这一挑战的最有效策略是按照基于模型的范式进行,这涉及构建物体的3D模型,然后通过检测到的特征,将这些模型与新图像进行拟合来确定物体姿态。本文提出了一种基于模型的方法,用于从自然点特征中估计已知物体的全姿态。该方法采用了投影成像模型,并结合了可靠的自动机制用于姿态初始化和收敛。此外,该方法可以扩展到多摄像头系统,而无需进行多视图匹配,并且依赖稀疏结构从运动技术进行离线的物体模型构建。实验结果证明了其准确性和鲁棒性。
1 introduce
准确定位图像中的物体是应用于机器人操作、跟踪、增强现实、实体接口等领域的视觉系统的主要要求。此类系统应在动态和未知的环境中可靠运行,即使物体的外观因视角、光照或遮挡的变化而发生变化,也能提供准确的物体位置和姿态估计。物体姿态估计通常在基于模型的匹配和识别的背景下进行【11】,对此有大量文献可供参考。根据这一范式,首先组装一组几何物体模型及其相关特征。在识别过程中,从图像中提取的特征与存储在模型中的特征进行匹配,并利用它们之间的映射来确定相应物体的姿态。
本文提出了一个用于估计刚性物体全姿态(即六自由度)的系统。该系统包括离线阶段和在线阶段。在离线阶段,构建一个编码物体3D几何形状和局部外观的模型库;在在线阶段,进行匹配和姿态估计。存储的模型包括来自物体表面的稀疏3D点集及其图像投影的SIFT描述符【13】。在在线操作中,从图像中提取特征及其SIFT描述符,并与模型中的特征进行匹配,以建立假定的对应关系。由于SIFT的特异性,这些对应关系的数量通常为图像中存在特定模型物体提供了强有力的证据。通过使用匹配模型点的3D坐标来估计物体姿态,从而验证对应关系是否在几何配置中一致来测试这些假设。
所提出的方法无论物体相对于相机的相对姿态如何都适用,具有对遮挡和错误匹配的鲁棒性,并且能在保持很少状态信息的情况下轻松恢复失败。它对物体的假设较少,假设物体是刚性和有纹理的但可以任意复杂。此外,它采用完全投影成像公式,具有可靠的姿态初始化和收敛机制,可以扩展到多个摄像头而无需进行多视图匹配,并依赖于自动结构从运动(SfM)技术来构建离线模型。相关的现有工作在第2节中回顾,所提出方法的组成部分在第3-5节中详细描述,来自真实和合成数据集的实验结果在第6节中展示。
2 Related Work
早期的基于模型的匹配方法使用强度边缘作为特征。例如,Lowe【11】依赖于感知组织来分组特征并减少匹配时的搜索空间大小,然后通过自上而下的空间对应对齐模型与图像并估计其姿态。这项工作仅限于使用直线段,并采用近似平行性作为其分组提示。由于在透视下这种性质无法保持,因此该方法仅限于透视变形较小的仿射几何图像。后来,该方法被扩展为处理具有任意曲面和表示关节或表面变形的内部参数的物体【12】。
之后,图像块的协变检测器和描述符的发展【14】被采用来构建局部表示。因此,Vacchetti等人【18】结合几何模型和基于特征的匹配,对一组参考关键帧进行匹配,以在3D中跟踪刚性物体。Rothganger等人【15】使用仿射不变的局部描述符捕捉物体表面块的外观,并使用多视图几何约束来表示它们的空间关系。通过强制光度和几何一致性进行匹配,实现了物体识别和姿态估计。这种方法假设仿射投影模型并带来了高计算成本。Gordon和Lowe【3】描述了一个基于SIFT特征的系统,用于在新图像中识别学习到的模型并解决其姿态。该系统旨在增强现实应用中使用,它估计相机相对于其环境中大部分静止物体的姿态,而不是相反。因此,它强调减少抖动和漂移,并且只能处理与被跟踪场景对应的单一模型。Collet等人【1】提出的系统基于自然特征,能够估计机器人工作空间中物体的姿态,这项工作与本文最相关。我们的工作与【1】的不同之处在于,我们的工作在估计姿态之前不需要对模型与真实世界进行对齐,采用更准确的姿态初始化,对特征点定位错误更具弹性,能够容忍姿态估计中的局部极小值,并且可以轻松扩展到多个摄像头。
3 Models and Features
物体模型是所提出方法的关键组成部分。为了获得一个完整的、视角无关的物体模型,需要使用来自多个视点的图像对物体进行建模。因此,每个物体都需要单独拍摄多个图像,并使用手持相机绕其周围拍摄,然后使用获取的图像来估计帧间相机运动,并通过结构光技术(SfM)【17】恢复相应的3D点云。物体模型由这点云中的一组3D点组成,每个点都伴随着一个SIFT图像描述符,用于捕捉该点附近的局部表面外观。每个3D点在被看到的每张图像中都具有一个SIFT描述符。我们选择在图像中最正面且离相机足够近的那个描述符作为其最具代表性的描述符。这需要了解表面法线,通过收集点的3D邻居并对其进行平面拟合来获得法线。这一过程还识别出孤立的3D点,这些点会被从最终模型中过滤掉。
在姿态估计过程中,在图像中检测到SIFT关键点,然后将其与物体模型中的关键点进行匹配。SIFT的鲁棒性使得能够可靠地识别在图像和模型之间经历了较大仿射变形的特征。建立的对应关系用于将特征位置的2D图像位置与物体表面对应点的3D坐标相关联。我们最初评估的点匹配程序使用了SIFT描述符距离的标准比率测试,具体如下。通过在模型中的描述符中找到每个图像描述符的两个最近邻点来确定匹配关系,只有当最近邻点的距离小于第二近邻点的距离的固定阈值时,才接受匹配。可以通过调整这个阈值来宽松地建立更多匹配,或保守地选择最可靠的匹配。实验观察到,比率测试产生了大量错误匹配。基于比率测试的【10】中的F2P策略也进行了测试,发现其在匹配质量方面是一个可行的选择,因此被采用为我们的匹配技术。
SIFT描述符的距离传统上用欧几里得(L2)范数来量化。SIFT描述符是梯度方向的加权直方图。因此,无论匹配标准如何,通过用直方图范数(如卡方(χ2)距离)替代L2,可以提高匹配效果。尽管发现其他计算更复杂的距离(如二次卡方族或环状地球移动者距离)能产生更好的匹配结果,但最终采用了χ2距离,因为它在性能和计算成本之间提供了最佳的权衡。
4 姿态估计
姿态估计涉及在给定相机内参数和一组已知3D点及其图像投影之间的n个对应点的情况下,确定相机的位置和方向。这个问题也称为Perspective-n-Point(PnP)问题,由于其在各种领域的广泛应用,受到了广泛关注。PnP通常使用非迭代方法解决,这些方法涉及小型、固定大小的3D-2D对应点集。例如,三元组的基本情况(P3P)最早在[4]中研究,而其他解决方案后来在[2,8]中提出。P3P被认为最多允许四个不同的解决方案,但在实际操作中通常只有两个。因此,实践中使用第四个点来进行消歧。PnP的最小解决方案在鲁棒估计框架中尤为重要,因为每个随机样本的基数直接关系到需要抽取的样本总数,以便找到具有可接受置信度的解决方案。另一方面,由于无法结合超过最小数量的对应点,最小解决方案忽略了数据中存在的大量冗余,因此精度较低。这通过非线性细化得到补救,如下所述。
4.1 单目鲁棒姿态估计与非线性细化
本节详细描述了我们在单个图像中进行姿态估计的方法。从一组2D-3D点对应开始,首先计算初步姿态估计,然后进行迭代细化。这通过将P3P求解器嵌入RANSAC [2]框架中来实现,RANSAC使用MSAC重新下降成本函数进行假设评分。应用于姿态估计问题,RANSAC重复抽取随机的四元组点,使用P3P求解器的一个三元组和第四个点进行验证以获得姿态估计。保留得分最高的姿态假设作为RANSAC的结果,并用于将对应点分类为内点和外点。通过最小化所有内点的重投影误差,使用RANSAC计算的姿态接下来进行细化,以考虑到超过三个对应点。由于涉及非线性目标函数,该最小化通过Levenberg-Marquardt(L-M)算法迭代进行,如下所述。
用K表示3×3的内参数校准矩阵,n个对应的3D-2D点表示为Mi和mi,用RANSAC计算的姿态通过使用它作为起点来最小化累积图像重投影误差
其中t和R(r)分别是所求的平移和旋转矩阵,参数化使用Rodrigues旋转向量r,K · [R(r) | t] · Mi是齐次点Mi在图像上的预测投影,d(x, y)表示重投影误差,即由向量x和y表示的图像点之间的欧几里得距离。L-M所需的雅可比矩阵通过符号微分提供。
通过使用M估计器可以使(1)中的最小化更加抗噪,这些噪声由定位错误的图像点引起。前者将残差的平方误差替换为对称的鲁棒成本函数ρ(),它的增长速度比平方增长慢,并/或对残差误差过大的点进行降权。为了确保ρ()在零处具有唯一的最小值,通常选择它为凸函数。然而,非凸成本函数在抑制大误差影响方面更有效,但不能保证最小值的唯一性。一个有效的策略是以凸成本函数开始过程,迭代直到收敛,然后应用一些非凸成本函数的迭代,以消除大误差的影响。无论所选成本函数的具体形式如何,必须强调M估计对由于定位错误引起的离群点具有鲁棒性,但对错误匹配(即应由其他技术如RANSAC在M估计之前过滤掉的重大错误)没有鲁棒性。在我们的工作中,M估计应用于姿态细化分为两个阶段。第一阶段采用Fair凸成本函数,第二阶段采用Tukey双重加权来抑制离群点。
4.2 姿态细化的全局优化
(1)中的目标函数问题在于它是多模态的。因此,从距离真实最小值相对较远的位置开始的非线性细化,可能陷入局部最小值而不是收敛到真实姿态。为了解决多重最小值问题,我们研究了将全局优化方法应用于姿态估计的情况。处理全局优化问题的一种流行策略是采用多启动程序,通过在多个不同点开始的局部优化算法来探索可行区域。更具体地说,多启动算法从可行区域中选择有限的样本起点。在每个这些点启动的局部搜索产生一组局部最优点,最好的那个被声明为可行区域内的全局最优点。多启动算法可以选择各种局部搜索算法。由于局部搜索是相对昂贵的操作,多启动方法寻求最小化执行的局部搜索次数。通过将位于同一局部最优点吸引区内的样本点进行聚类来实现这一目标。因此,对同一聚类内的所有点只需进行一次局部搜索,从而为多启动方案节省大量计算成本。在各种可用的聚类方法中,多层单链接(MLSL)算法【7】是最好的之一,包含有效的机制来确定何时链接样本点以及何时终止。SobolOpt【9】是MLSL的一种高效变体,它借助Sobol序列选择起点,这些序列是伪随机的低差异序列,保证样本的良好空间分布。在这项工作中,我们将SobolOpt应用于姿态细化,使用L-M算法作为其局部搜索方法。结果,使得姿态估计能够逃离局部最小值,并收敛到正确的姿态,而这一点通过简单的L-M算法是无法实现的。
4.3 双目姿态细化
如4.1节所述,使用单个相机进行姿态估计。为了以较少的额外开销提高精度,可以使用第二个视点,并通过结合两幅图像中的重投影误差来扩展估计到双目情况。更具体地说,假设有两个校准好的相机,每幅图像都按照4.1节中的方法进行单目姿态估计。一个相机(例如右)的物体姿态可以通过外部立体校准参数与另一个相机(即左)的物体姿态关联起来。事实上,如果物体在左相机中的姿态由R和t定义,其在右相机中的姿态等于RsR和Rst + ts,其中Rs和ts对应于右相机相对于左相机的姿态。假设刚性立体装置,Rs和ts保持不变,并可以通过外部校准离线估计。双目重投影误差包括两个加法项,每个图像一个。用KL和KR分别表示左图像和右图像的内参数,对于左图像中n个对应的2D-3D点和右图像中的m个点,双目重投影误差定义为
其中t和R(r)是所求的平移和旋转,KL · [R(r) | t] · Mi是左图像中齐次点Mi的投影,KR · [RsR(r) | Rst + ts] · Mj是右图像中齐次点Mj的投影,mL_i和mR_j分别是左图像和右图像中对应于Mi和Mj的2D点。需要注意的是(2)避免了通过三角测量重建点的误差问题,并且不限制两个视图的基线,也不需要稀疏特征或3D点匹配。同样地,最小化的是重投影误差的M估计,而不是其平方欧几里得范数。最小化(2)只使用两个单目估计的内点,并可以从左相机计算的单目姿态开始。由于假设已经非常接近真实最小值,因此不必应用4.2节的全局优化方案。然而,这种初始化并没有对图像进行对称处理,因为它更重视左图像。因此,如果左摄像头的姿态有误,双目优化也有可能收敛到次优解。为了解决这个问题,扩展了优化方案,使用右图像作为参考,并结合两个摄像头的图像进行姿态优化,假设从左摄像头到右摄像头的变换是恒定的。然后,选择整体双目重投影误差较小的姿态作为最准确的姿态。
5. 对象检测与识别
假设我们有一组对应于已知对象的模型和一个高度校准的双目摄像系统。从每张图像中独立提取SIFT特征及其对应的描述符。为了提高效率,可以选择只在图像的某些感兴趣区域(ROI)内进行特征检测。这些区域是为了引导系统关注对象可能出现的位置,不需要非常准确,也不需要与图像中实际包含的对象一一对应。在本研究中,ROI由基于颜色的前景提取过程确定【20】。然后将SIFT描述符与模型的描述符进行匹配,以建立假定的对应关系。对于每个产生足够多此类对应关系的模型,都会形成一个关于该对象在图像中存在的假设。利用匹配模型点的3D坐标来估计对象的姿态,并验证模型是否能够以足够的置信度解释观察到的特征排列,从而对这些假设进行测试。置信度通过考虑支持假设的姿态估计内点的比例(cp)和数量(cn)来量化,认为当cp > 90%且cn > 40时,对象存在于图像中。这个过程的一个副产品是对每个检测到的对象的姿态估计。
对图像中的所有假设进行评估可以识别出其中的所有对象。由于彼此独立,每个假设的评估在我们的实现中与其他假设并行运行,使用不同的CPU核心。将上述过程应用于每张图像,会生成两个集合SL和SR,分别包含在每个图像中发现的对象。为了提高准确性,系统会尝试对SL和SR交集中对象使用双摄像头进行姿态估计,使用第4.3节的方法。对于只在一张图像中发现的剩余对象,则使用它们的单目姿态。
6 实验
略