CN109785389A - 一种基于哈希描述与迭代最近点的三维物体检测方法 - Google Patents
一种基于哈希描述与迭代最近点的三维物体检测方法 Download PDFInfo
- Publication number
- CN109785389A CN109785389A CN201910049505.XA CN201910049505A CN109785389A CN 109785389 A CN109785389 A CN 109785389A CN 201910049505 A CN201910049505 A CN 201910049505A CN 109785389 A CN109785389 A CN 109785389A
- Authority
- CN
- China
- Prior art keywords
- point
- scene
- formula
- hash
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于哈希描述及迭代最近点的三维物体检测方法,通过在三维信息中检测目标物体的位姿数据,可以让机器人等作业工具能完成更丰富的作业任务和进行更复制的作业操作,使得结构化生产向着非结构化转变,采用了哈希描述来对三位数据进行唯一解释,减少了对无效数据的匹配,加快了特征匹配速度。采用了点到切平面的迭代最近点方法,使得匹配更加可靠,精度更高。
Description
技术领域
本发明涉及机器视觉中的三维物体识别领域,尤其涉及一种基于哈希描述与迭代最近点的三维物体检测方法。
背景技术
通过机器视觉技术对作业场景进行感知的方法在快递分拣、目标测距、自动化装配等领域有着广泛的应用,特别是在二维图像中的识别与定位技术发展的非常成熟,能满足目前大部分的自动化生产作业需求。随着国家工业4.0的逐步推进,对制造产业自动化程度要求越来越高,基于二维图像的识别与定位技术就显得捉襟见肘。随着三维视觉传感器技术的成熟与价格的下降,越来越多的应用场景开始尝试使用三维视觉传感器来获取作业场景的三维信息,并根据三维信息来对场景中目标进行位置检测和姿态检测,即位姿识别。
现有技术对三维物体的位姿识别方法需要在三维数据中提取大量的特征信息和特征匹配,识别速度慢,定位精度很低,无法实现快速准确的三维目标位姿识别。
发明内容
本发明的目的在于提供一种基于哈希描述与迭代最近点的三维物体检测方法,具有降低三维目标特征搜索的时间复杂度、提高识别定位精度的优点。
本发明的上述目的是通过以下技术方案得以实现的:
一种基于哈希描述及迭代最近点的三维物体检测方法,包括深度相机和PC机,还包括以下步骤:
S1、深度相机采集需要检测的物体的场景数据;
S2、深度相机向场景发射红外射线,深度相机内的红外接收器将接收场景的近红外反射,生成场景的三维点数据,即场景中的每个反射点相对于深度相机坐标系的XYZ信息;
S3、深度相机将采集到的场景数据传到PC机进行保存,保存格式为PLY格式;
S4、利用S3获取的PLY格式的场景数据提取检测物体的目标模型M;
S5、PC机计算三维模型点云的每个点的协方差矩阵,求取协方差矩阵的特征向量,获取每个点的法向量;
S6、根据S5中的法向量生成目标模型M的点对特征;
S7、将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述;
S8、利用深度相机和PC机对场景S进行处理,获得场景S的哈希值,访问目标模型M的哈希描述,快速找到匹配的相似点对,将匹配结果转换为霍夫投票值;
S9、通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果;
S10、通过对迭代最近点算法对初检测结果进行二次矫正,得出精确的目标位姿检测结果。
进一步,所述步骤S4,将场景数据的坐标定义为深度传感器之上,每个数据的坐标值为(x,y,z),统计所有数据中z值的数量,去除出现最多的z值来剔除数据,进而获取待检测物体的目标模型M。
进一步,所述步骤S5,获取目标模型M中各三维数据点的法向量目标模型M={m0,m1,m2,...,mk-1,mk},各三维数据点的法向量可通过各点周围的相邻点来计算,为了计算点的法向量,首先需要获得该点与相邻点之间的协方差矩阵,假设要求取mi点的法向量协方差矩阵C的计算如式(1)所示,R表示以mi点为中心的球形空间的半径,距离值di(i∈{1,2,...,k})表示相邻点mj与中心点mi的欧式距离,通过式(1)计算mi点与半径R内所有点的协方差矩阵C:
通过协方差矩阵可以计算出mi点的法向量,对协方差矩阵C的进行特征值分解,可求得协方差矩阵C的特征值和特征向量,对于物体表面的点云数据,其在法线方向的空间分布变化最为微弱,因此中心点mi的法向量则为协方差矩阵C最小特征值所对应的特征向量,以此类推,获取所有点的法向量
进一步,所述步骤S6中,利用各点的法向量来计算点对特征,对于三维点云数据中的点pi与除该点以外的任意点pj,通过两点可以组成点对,利用两点间的法向量与欧式距离可以形成点对的点对特征,点对特征的计算方式如式(2)所示:
其中表示两点的连线方向,表示两点连线的欧氏距离,表示pi点的法相向量与两点连线方向的夹角,表示两点法向量之间的夹角,对于向量之间的夹角计算如公式(3)所示:
进一步,步骤S7中,将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述,定义点云集p中的任意点对(pi,pj)∈p,点对特征的表达式如式(2)所示,利用式(4)将点对特征转化为哈希值:
其中ddist表示采样步长,dangle表示采样角度,dangle=2π/Nangle,Nangle表示角度粒度,使用者可以根据实际结果调整Nangle,通常可将其设置为30。通过ddist、dangle来对点对特征进行离散化处理,使得相似特征能够转化为相同的特征值,对点对特征F离散化过后,点对特征F(p1,p2)discretized=F(f1,f2,f3,f4)的哈希值由(5)式获得:
Index=P1*f1+P2*f2+P3*f3+f4 (5)
公式(5)中的P1、P2、P3为3个不同的质数,这是为了使得转化后的哈希值唯一,统计所有点对的哈希值,将相同哈希值的点便可通过哈希表进行集中访问,所有哈希值组成哈希表,该哈希表称为点云数据的哈希描述。
进一步,步骤S8中,利用哈希描述生成霍夫投票值,定义目标模型M,场景的三维点云数据集为S,根据步骤S5生成目标模型点云数据集的哈希描述,通过将场景数据集S的点对转化为哈希值,访问目标模型M生成的哈希描述,进而实现快速的相似特征匹配,再将匹配结果转换为霍夫值,进行全局霍夫投票。
进一步,步骤S9,通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果,霍夫投票值(mr,α)中的mr直接由(mr,mi)获得,而角度α则由式(6)计算而来,定义世界坐标系W,式(6)中的和描述了将点sr和mr移动到世界单位坐标系原点所做的位移运动以及将两点的法向量与同世界单位坐标系的主轴x对齐所做的旋转变换:
对于具有相同哈希值的点对(mr,mi)∈M和(sr,si)∈S,首先将点sr与点mr的法向量旋转到与世界单位坐标系W的主轴x平行且方向一致,然后移动两点的位置与世界单位坐标系的原点重合,这时点对(mr,mi)只需绕着世界单位坐标系的x轴旋转α角度即可与点对(sr,si)重合,通过世界单位坐标系计算出与之后,根据式(6)就可以解出角度α,场景点sr的霍夫投票值(mr,α)求解完毕;
接下来通过投票选举最优霍夫投票值,建立了n×m的全局霍夫投票累加器来收集各个霍夫投票值的票数,二维累加器的行元素为模型点云中所筛选出的各参考点行数n等于参考点的个数,累加器的列数m则与角度粒度Nangle有关,当Nangle=30时投票累加器的列数为30;
场景参考点sr会与其他的场景点si组成点对,每一组场景点对都可能寻找到若干相似的模型点对(mr,mi),这些点对表示了(sr,si)可能在目标模型M中存在的位置,计算场景点对(sr,si)与相似点对(mr,mi)之间的角度α,就可获得场景点sr的多个霍夫投票值(mr,α),对应投票累加器中位置加一,当前场景参考点与其他场景点组成的点对都完成霍夫投票值的计算后,投票累加器中的峰值将作为当前场景点的最优霍夫投票值,将最优霍夫投票结果带入式(7),即可以获得目标模型M与场景S之间的初位姿检测结果RigidTrans:
进一步,步骤S10,使用迭代最近点算法对初检测结果进行二次修正,初检测结果已经反应了目标模型M与场景S之间的位姿关系,由于初检测结果正好满足相关点姿态相近的条件,可以对迭代最近点算法进行线性化处理,使得迭代最近点算法在保障精度的同时拥有更快的速度;
采用点到切平面的迭代最近点算法来对初检测结果进行二次修正,对于点到切平面的迭代最近点算法,误差函数的优化目标为模型点到对应场景点的切平面的均方误差达到最小;
误差函数如公式(8)所示:
式(8)中mi=(mix,miy,miz,Tim),Tim表示模型点集中的某点,而si=(six,siy,siz,Tis),Tis表示mi在目标点云中的对应点,ni=(nix,niy,niz,0)则是点si的法向量;
M为4x4的旋转变换矩阵,由式(8)可见,当目标模型M按照变换矩阵M运动之后,移动后的模型点mi在与场景点si做差,得到一个描述位移差的向量,这个向量再与点si的法向量做点积,点积的结果可用来估计一个点到另一个点切平面的远近,当所有模型点mi按照M矩阵进行移动过后,使得式(8)的累计和达到最小,此时的M就为Mopt;
由于模型点集与场景点集的姿态相似,可以采用点到切平面的迭代最近点算法来将非线性问题朝着线性问题进行逼近,从而使得迭代最近点算法的数学形式更加简单,算法运行速度更加快捷;
对于描述位移和旋转的变换矩阵M,其由旋转部分R(α,β,γ)与位移部分T(tx,ty,tz)组成,如式(9)所示:
M=T(tx,ty,tz)·R(α,β,γ) (9)
其中:
式(11)中的各值为:
r11=cosγcosβ,
r12=-sinγcosα+cosγsinβsinα,
r13=sinγsinα+cosγsinβcosα,
r21=sinγcosβ,
r22=cosγcosα+sinγsinβsinα,
r23=-cosγsinα+sinγsinβcosα,
r31=-sinβ
r32=cosβsinα
r33=cosβcosα
Rx(α),Ry(β),Rz(γ)分别表示绕着x,y,z轴的旋转,利用三角函数的等价相似性可知,如果模型点集与场景点集的姿态相似,我们可以将R部分中的三角函数进行等价代换,此时M中的旋转部分R可写为式(12)的形式:
因此,变换矩阵M可以表示为:
此时,式(8)也可转化为:
其中:
对于N组相关的点对,通过式(15)可获得N组线性方程组,这些方程组可写为为Ax-b的形式,其中:
求解Mopt的问题就转化为了求解Xopt的问题,这是一个标准的线性优化问题:
通过SVD分解来完成式(18)的求解,对A进行SVD分解可得到A=UΣVT,从而计算A的伪逆A+=VΣ+UT,那么式(18)的线性最小二乘解为:
xopt=A+·b (19)
三维物体空间位姿初估计的二次校正完成,Xopt即为三维物体空间位姿的最终识别结果。
综上所述,本发明具有以下有益效果:
1)是采用了哈希描述进行查表比较,速度很快;
2)利用了哈希描述和点到切平面的迭代最近点方法各自的优点,弥补了二者的缺点,使得本来比较慢的点到切平面方法通过线性化实现了算法加速。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的测量场景三维数据并提取目标点云模型示意图;
图2为本发明实施例的三维点云的点对特征的示意图;
图3为本发明实施例的点对特征生成哈希描述的流程图;
图4为本发明实施例的世界单位坐标系W的示意图;
图5为本发明实施例的取最优局霍夫投票值的流程图;
图6为本发明实施例的点到切平面的迭代最近点算法的模型图;
图7为本发明实施例的示例的待检测物体;
图8为本发明实施例的示例通过哈希描述进行粗略定位之后的效果图;
图9是本发明实施例的示例经过迭代最近点修正后的效果图。
具体实施方式
在下面的详细描述中,提出了许多具体细节,以便于对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好地理解。
下面将结合附图,对本发明实施例的技术方案进行描述。
实施例:
一种基于哈希描述及迭代最近点的三维物体检测方法,包括深度相机和PC机,还包括以下步骤:
S1、深度相机采集需要检测的物体的场景数据;
S2、深度相机向场景发射红外射线,深度相机内的红外接收器将接收场景的近红外反射,生成场景的三维点数据,即场景中的每个反射点相对于深度相机坐标系的XYZ信息;
S3、深度相机将采集到的场景数据传到PC机进行保存,保存格式为PLY格式;
S4、利用S3获取的PLY格式的场景数据提取检测物体的目标模型M;
S5、PC机计算三维模型点云的每个点的协方差矩阵,求取协方差矩阵的特征向量,获取每个点的法向量;
S6、根据S5中的法向量生成目标模型M的点对特征;
S7、将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述;
S8、利用深度相机和PC机对场景S进行处理,获得场景S的哈希值,访问目标模型M的哈希描述,快速找到匹配的相似点对,将匹配结果转换为霍夫投票值;
S9、通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果;
S10、通过对迭代最近点算法对初检测结果进行二次矫正,得出精确的目标位姿检测结果。
其中,步骤S4中,将场景数据的坐标定义为深度传感器之上,如图1所示,每个数据的坐标值为(x,y,z),统计所有数据中z值的数量,去除出现最多的z值来剔除数据,进而获取待检测物体的目标模型M。
步骤S5,获取目标模型M中各三维数据点的法向量目标模型M={m0,m1,m2,...,mk-1,mk},各三维数据点的法向量可通过各点周围的相邻点来计算,为了计算点的法向量,首先需要获得该点与相邻点之间的协方差矩阵,假设要求取mi点的法向量协方差矩阵C的计算如式(1)所示,R表示以mi点为中心的球形空间的半径,距离值di(i∈{1,2,...,k})表示相邻点mj与中心点mi的欧式距离,通过式(1)计算mi点与半径R内所有点的协方差矩阵C:
通过协方差矩阵可以计算出mi点的法向量,对协方差矩阵C的进行特征值分解,可求得协方差矩阵C的特征值和特征向量,对于物体表面的点云数据,其在法线方向的空间分布变化最为微弱,因此中心点mi的法向量则为协方差矩阵C最小特征值所对应的特征向量,以此类推,获取所有点的法向量
如图2所示,步骤S6中,利用各点的法向量来计算点对特征,对于三维点云数据中的点pi与除该点以外的任意点pj,通过两点可以组成点对,利用两点间的法向量与欧式距离可以形成点对的点对特征,点对特征的计算方式如式(2)所示:
其中表示两点的连线方向,表示两点连线的欧氏距离,表示pi点的法相向量与两点连线方向的夹角,表示两点法向量之间的夹角,对于向量之间的夹角计算如公式(3)所示:
步骤S7中,将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述,定义点云集p中的任意点对(pi,pj)∈p,点对特征的表达式如式(2)所示,利用式(4)将点对特征转化为哈希值:
其中ddist表示采样步长,dangle表示采样角度,dangle=2π/Nangle,Nangle表示角度粒度,这个值是使用者自行设定的,Nangle越大,dangle就越小,也就是说对两个角度的区分度越大,这个值通常为30,若采样角度dangle为12°,就是说对于0°-12°这个区间内的角度,认为他们是相似的。使用者可以根据实际结果调整Nangle,通常可将其设置为30。通过ddist、dangle来对点对特征进行离散化处理,使得相似特征能够转化为相同的特征值,对点对特征F离散化过后,点对特征F(p1,p2)discretized=F(f1,f2,f3,f4)的哈希值由(5)式获得:
Index=P1*f1+P2*f2+P3*f3+f4 (5)
公式(5)中的P1、P2、P3为3个不同的质数,这是为了使得转化后的哈希值唯一,例如F(1,2,3,4)和F(4,3,2,1),统计所有点对的哈希值,将相同哈希值的点便可通过哈希表进行集中访问,所有哈希值组成哈希表,该哈希表称为点云数据的哈希描述,如图3所示。
步骤S8中,利用哈希描述生成霍夫投票值,定义目标模型M,场景的三维点云数据集为S,根据步骤S5生成目标模型点云数据集的哈希描述,通过将场景数据集S的点对转化为哈希值,访问目标模型M生成的哈希描述,进而实现快速的相似特征匹配,再将匹配结果转换为霍夫值,进行全局霍夫投票,匹配结果的霍夫值的定义方式如下:
随机的选取S中的部分数据点作为参考点,假定待检测的目标存在与场景之中,存在一个参考点sr∈S正好位于待检测的目标的表面。此时,模型点云数据集中应该存在一点mr∈M同sr∈S相对应。假定模型点云会随着mr点运动,随着mr点的法向量旋转。如果将mr点移动到sr的位置,同时让mr点与sr点的法向量重合,此时模型点云只需要绕着sr点的法向量旋转α度就可实现场景目标与点云模板的重合。在这样的思路下,通过将场景点sr和模型点mr的位置与法向量对齐,点云集M到场景S的位移旋转变换就可用M中的一点mr和角度α表示。此时,(mr,α)就称为场景参考点sr在点云集M中的霍夫投票值。
如果场景中一点sr正好位于目标物体的表面,并且该点与另一个目标物体表面上的另一个点si组成了点对。将点对(sr,si)转化为哈希值,索引目标模型M的哈希描述,将获得与(sr,si)相似点对(mr,mi),利用这些点对(mr,mi)就可以计算点sr的霍夫投票值。
步骤S9,通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果,霍夫投票值(mr,α)中的mr直接由(mr,mi)获得,而角度α则由式(6)计算而来,定义世界坐标系W,如图4所示,图(4)与式(6)中的和描述了将点sr和mr移动到世界单位坐标系原点所做的位移运动以及将两点的法向量与同世界单位坐标系的主轴x对齐所做的旋转变换:
对于具有相同哈希值的点对(mr,mi)∈M和(sr,si)∈S,首先将点sr与点mr的法向量旋转到与世界单位坐标系W的主轴x平行且方向一致,然后移动两点的位置与世界单位坐标系的原点重合,这时点对(mr,mi)只需绕着世界单位坐标系的x轴旋转α角度即可与点对(sr,si)重合,通过世界单位坐标系计算出与之后,根据式(6)就可以解出角度α,场景点sr的霍夫投票值(mr,α)求解完毕;
接下来通过投票选举最优霍夫投票值,如图5所示,建立了n×m的全局霍夫投票累加器来收集各个霍夫投票值的票数,二维累加器的行元素为模型点云中所筛选出的各参考点行数n等于参考点的个数,累加器的列数m则与角度粒度Nangle有关,当Nangle=30时投票累加器的列数为30;
场景参考点sr会与其他的场景点si组成点对,每一组场景点对都可能寻找到若干相似的模型点对(mr,mi),这些点对表示了(sr,si)可能在目标模型M中存在的位置,计算场景点对(sr,si)与相似点对(mr,mi)之间的角度α,就可获得场景点sr的多个霍夫投票值(mr,α),对应投票累加器中位置加一,当前场景参考点与其他场景点组成的点对都完成霍夫投票值的计算后,投票累加器中的峰值将作为当前场景点的最优霍夫投票值,将最优霍夫投票结果带入式(7),即可以获得目标模型M与场景S之间的初位姿检测结果RigidTrans:
步骤S10,使用迭代最近点算法对初检测结果进行二次修正,初检测结果已经反应了目标模型M与场景S之间的位姿关系,由于初检测结果正好满足相关点姿态相近的条件,可以对迭代最近点算法进行线性化处理,使得迭代最近点算法在保障精度的同时拥有更快的速度;
如图6所示,采用点到切平面的迭代最近点算法来对初检测结果进行二次修正,对于点到切平面的迭代最近点算法,误差函数的优化目标为模型点到对应场景点的切平面的均方误差达到最小;
误差函数如公式(8)所示:
式(8)中mi=(mix,miy,miz,Tim),Tim表示模型点集中的某点,而si=(six,siy,siz,Tis),Tis表示mi在目标点云中的对应点,ni=(nix,niy,niz,0)则是点si的法向量;
M为4x4的旋转变换矩阵,由式(8)可见,当目标模型M按照变换矩阵M运动之后,移动后的模型点mi在与场景点si做差,得到一个描述位移差的向量,这个向量再与点si的法向量做点积,点积的结果可用来估计一个点到另一个点切平面的远近,当所有模型点mi按照M矩阵进行移动过后,使得式(8)的累计和达到最小,此时的M就为Mopt;
由于模型点集与场景点集的姿态相似,可以采用点到切平面的迭代最近点算法来将非线性问题朝着线性问题进行逼近,从而使得迭代最近点算法的数学形式更加简单,算法运行速度更加快捷;
对于描述位移和旋转的变换矩阵M,其由旋转部分R(α,β,γ)与位移部分T(tx,ty,tz)组成,如式(9)所示:
M=T(tx,ty,tz)·R(α,β,γ) (9)
其中:
式(11)中的各值为:
r11=cosγcosβ,
r12=-sinγcosα+cosγsinβsinα,
r13=sinγsinα+cosγsinβcosα,
r21=sinγcosβ,
r22=cosγcosα+sinγsinβsinα,
r23=-cosγsinα+sinγsinβcosα,
r31=-sinβ
r32=cosβsinα
r33=cosβcosα
Rx(α),Ry(β),Rz(γ)分别表示绕着x,y,z轴的旋转,利用三角函数的等价相似性可知,如果模型点集与场景点集的姿态相似,我们可以将R部分中的三角函数进行等价代换,此时M中的旋转部分R可写为式(12)的形式:
因此,变换矩阵M可以表示为:
此时,式(8)也可转化为:
其中:
对于N组相关的点对,通过式(15)可获得N组线性方程组,这些方程组可写为为Ax-b的形式,其中:
求解Mopt的问题就转化为了求解Xopt的问题,这是一个标准的线性优化问题:
通过SVD分解来完成式(18)的求解,对A进行SVD分解可得到A=UΣVT,从而计算A的伪逆A+=VΣ+UT,那么式(19)的线性最小二乘解为:
xopt=A+·b (19)
三维物体空间位姿初估计的二次校正完成,Xopt即为三维物体空间位姿的最终识别结果。
三维物体空间位姿初估计的二次校正完成,Xopt即为三维物体空间位姿的最终识别结果。
定位精度高是因为算法采用了哈希描述这种方法,在算法还没有运行的时候,就形成了目标模型M的哈希表,在算法运行阶段,只需要计算场景的哈希特征,然后直接查目标模型M的哈希表就可以得到快速找到相似的特征,从而定位物体。
在实际中,如图7所示,为一个待测量的场景,通过哈希描述之后匹配的结果如图8所示,可以看到,有一定误差,这是因为在计算哈希描述中,使用ddist和Nangle进行了离散化处理,精度是有损失的,但是通过查哈希表的方式,能够实现快速的粗定位,也就是能够快速到达目标位置的周围,然后采用迭代最近点的方式进行二次修正,如图9所示,图9就是迭代最近点修正后的结果。同时,由于已知哈希描述方法能够像图8一样定位到目标的大致位置,所以可以采用点到切平面的迭代最近点算法,
特别说明的是,还有一种叫点到点的迭代最近点的方法,点到点的迭代最近点方法是最常用的,一般情况下点到点的迭代最近点方法要比点到切平面的迭代最近点方法要快,是因为在进行定位之前,我们往往会把目标模型M放置到场景中的某个位置,离要定位的位置有一定距离,点到点的迭代最近点方法相对于点到切平面的迭代最近点方法要少计算点的切平面这个步骤。
对于本专利,由于使用哈希描述,已经能够定位到目标位置附近,因此可以对点到切平面的迭代最近点方法中的非线性化部分进行线性化处理,可线性化处理可也是点到切平面的迭代最近点方法的一个独特的地方。相当于本专利整合了两个算法,使他们能够利用二者的优势,相互弥补劣势。
哈希描述的优势是定位速度较快,劣势是定位精度不高,因为其中的离散化过程会造成精度损失。
点到切平面的迭代最近点方法的优势是当初始位置如果接近真实位置的时候,如图8所示,可以将算法中的非线性部分进行线性化,劣势是如果初始位置距离真实位置较远,定位的速度会很慢。
可见,定位精度高体现在使用了迭代最近点的方式对哈希描述的定位结果进行二次校正。速度快体现在两点:
1)是采用了哈希描述进行查表比较,速度很快;
2)利用了哈希描述和点到切平面的迭代最近点方法结合了两种方法各自的优点,弥补了二者的缺点,使得本来比较慢的点到切平面方法通过线性化实现了算法加速。
以上实施例仅用以说明本发明的技术方案,而非对发明的保护范围进行限制。显然,所描述的实施例仅仅是本发明部分实施例,而不是全部实施例。基于这些实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明所要保护的范围。
尽管参照上述实施例对本发明进行了详细的说明,本领域普通技术人员依然可以在不冲突的情况下,不作出创造性劳动对本发明各实施例中的特征根据情况相互组合、增删或作其他调整,从而得到不同的、本质未脱离本发明的构思的其他技术方案,这些技术方案也同样属于本发明所要保护的范围。
Claims (8)
1.一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,包括深度相机和PC机,还包括以下步骤:
S1、深度相机采集需要检测的物体的场景数据;
S2、深度相机向场景发射红外射线,深度相机内的红外接收器将接收场景的近红外反射,生成场景的三维点数据,即场景中的每个反射点相对于深度相机坐标系的XYZ信息;
S3、深度相机将采集到的场景数据传到PC机进行保存,保存格式为PLY格式;
S4、利用S3获取的PLY格式的场景数据提取检测物体的目标模型M;
S5、PC机计算三维模型点云的每个点的协方差矩阵,求取协方差矩阵的特征向量,获取每个点的法向量;
S6、根据S5中的法向量生成目标模型M的点对特征;
S7、将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述;
S8、利用深度相机和PC机对场景S进行处理,获得场景S的哈希值,访问目标模型M的哈希描述,快速找到匹配的相似点对,将匹配结果转换为霍夫投票值;
S9、通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果;
S10、通过对迭代最近点算法对初检测结果进行二次矫正,得出精确的目标位姿检测结果。
2.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,所述步骤S4,将场景数据的坐标定义为深度传感器之上,每个数据的坐标值为(x,y,z),统计所有数据中z值的数量,去除出现最多的z值来剔除数据,进而获取待检测物体的目标模型M。
3.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,所述步骤S5,获取目标模型M中各三维数据点的法向量目标模型M={m0,m1,m2,...,mk-1,mk},各三维数据点的法向量可通过各点周围的相邻点来计算,为了计算点的法向量,首先需要获得该点与相邻点之间的协方差矩阵,假设要求取mi点的法向量协方差矩阵C的计算如式(1)所示,R表示以mi点为中心的球形空间的半径,距离值di(i∈{1,2,...,k})表示相邻点mj与中心点mi的欧式距离,通过式(1)计算mi点与半径R内所有点的协方差矩阵C:
通过协方差矩阵可以计算出mi点的法向量,对协方差矩阵C的进行特征值分解,可求得协方差矩阵C的特征值和特征向量,对于物体表面的点云数据,其在法线方向的空间分布变化最为微弱,因此中心点mi的法向量则为协方差矩阵C最小特征值所对应的特征向量,以此类推,获取所有点的法向量
4.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,所述步骤S6中,利用各点的法向量来计算点对特征,对于三维点云数据中的点pi与除该点以外的任意点pj,通过两点可以组成点对,利用两点间的法向量与欧式距离可以形成点对的点对特征,点对特征的计算方式如式(2)所示:
其中表示两点的连线方向,表示两点连线的欧氏距离,表示pi点的法相向量与两点连线方向的夹角,表示两点法向量之间的夹角,对于向量之间的夹角计算如公式(3)所示:
5.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,步骤S7中,将目标模型M的所有点对特征转换为哈希值,生成目标模型M的哈希描述,定义点云集p中的任意点对(pi,pj)∈p,点对特征的表达式如式(2)所示,利用式(4)将点对特征转化为哈希值:
其中ddist表示采样步长,dangle表示采样角度,dangle=2π/Nangle,Nangle表示角度粒度,使用者可以根据实际结果调整Nangle,通常可将其设置为30。通过ddist、dangle来对点对特征进行离散化处理,使得相似特征能够转化为相同的特征值,对点对特征F离散化过后,点对特征F(p1,p2)discretized=F(f1,f2,f3,f4)的哈希值由(5)式获得:
Index=P1*f1+P2*f2+P3*f3+f4 (5)
公式(5)中的P1、P2、P3为3个不同的质数,这是为了使得转化后的哈希值唯一,统计所有点对的哈希值,将相同哈希值的点便可通过哈希表进行集中访问,所有哈希值组成哈希表,该哈希表称为点云数据的哈希描述。
6.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,步骤S8中,利用哈希描述生成霍夫投票值,定义目标模型M,场景的三维点云数据集为S,根据步骤S5生成目标模型点云数据集的哈希描述,通过将场景数据集S的点对转化为哈希值,访问目标模型M生成的哈希描述,进而实现快速的相似特征匹配,再将匹配结果转换为霍夫值,进行全局霍夫投票。
7.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,步骤S9,通过全局霍夫投票累加器对霍夫值进行统计,得分最高的霍夫值作为场景S的最优霍夫值,通过最优霍夫值生成对目标模型M的初检测结果,霍夫投票值(mr,α)中的mr直接由(mr,mi)获得,而角度α则由式(6)计算而来,定义世界坐标系W,式(6)中的和描述了将点sr和mr移动到世界单位坐标系原点所做的位移运动以及将两点的法向量与同世界单位坐标系的主轴x对齐所做的旋转变换:
对于具有相同哈希值的点对(mr,mi)∈M和(sr,si)∈S,首先将点sr与点mr的法向量旋转到与世界单位坐标系W的主轴x平行且方向一致,然后移动两点的位置与世界单位坐标系的原点重合,这时点对(mr,mi)只需绕着世界单位坐标系的x轴旋转α角度即可与点对(sr,si)重合,通过世界单位坐标系计算出与之后,根据式(6)就可以解出角度α,场景点sr的霍夫投票值(mr,α)求解完毕;
接下来通过投票选举最优霍夫投票值,建立了n×m的全局霍夫投票累加器来收集各个霍夫投票值的票数,二维累加器的行元素为模型点云中所筛选出的各参考点行数n等于参考点的个数,累加器的列数m则与角度粒度Nangle有关,当Nangle=30时投票累加器的列数为30;
场景参考点sr会与其他的场景点si组成点对,每一组场景点对都可能寻找到若干相似的模型点对(mr,mi),这些点对表示了(sr,si)可能在目标模型M中存在的位置,计算场景点对(sr,si)与相似点对(mr,mi)之间的角度α,就可获得场景点sr的多个霍夫投票值(mr,α),对应投票累加器中位置加一,当前场景参考点与其他场景点组成的点对都完成霍夫投票值的计算后,投票累加器中的峰值将作为当前场景点的最优霍夫投票值,将最优霍夫投票结果带入式(7),即可以获得目标模型M与场景S之间的初位姿检测结果RigidTrans:
8.根据权利要求1所述的一种基于哈希描述及迭代最近点的三维物体检测方法,其特征在于,步骤S10,使用迭代最近点算法对初检测结果进行二次修正,初检测结果已经反应了目标模型M与场景S之间的位姿关系,由于初检测结果正好满足相关点姿态相近的条件,可以对迭代最近点算法进行线性化处理,使得迭代最近点算法在保障精度的同时拥有更快的速度;
采用点到切平面的迭代最近点算法来对初检测结果进行二次修正,对于点到切平面的迭代最近点算法,误差函数的优化目标为模型点到对应场景点的切平面的均方误差达到最小;
误差函数如公式(8)所示:
式(8)中mi=(mix,miy,miz,Tim),Tim表示模型点集中的某点,而si=(six,siy,siz,Tis),Tis表示mi在目标点云中的对应点,ni=(nix,niy,niz,0)则是点si的法向量;
M为4x4的旋转变换矩阵,由式(8)可见,当目标模型M按照变换矩阵M运动之后,移动后的模型点mi在与场景点si做差,得到一个描述位移差的向量,这个向量再与点si的法向量做点积,点积的结果可用来估计一个点到另一个点切平面的远近,当所有模型点mi按照M矩阵进行移动过后,使得式(8)的累计和达到最小,此时的M就为Mopt;
由于模型点集与场景点集的姿态相似,可以采用点到切平面的迭代最近点算法来将非线性问题朝着线性问题进行逼近,从而使得迭代最近点算法的数学形式更加简单,算法运行速度更加快捷;
对于描述位移和旋转的变换矩阵M,其由旋转部分R(α,β,γ)与位移部分T(tx,ty,tz)组成,如式(9)所示:
M=T(tx,ty,tz)·R(α,β,γ) (9)
其中:
式(11)中的各值为:
r11=cosγcosβ,
r12=-sinγcosα+cosγsinβsinα,
r13=sinγsinα+cosγsinβcosα,
r21=sinγcosβ,
r22=cosγcosα+sinγsinβsinα,
r23=-cosγsinα+sinγsinβcosα,
r31=-sinβ
r32=cosβsinα
r33=cosβcosα
Rx(α),Ry(β),Rz(γ)分别表示绕着x,y,z轴的旋转,利用三角函数的等价相似性可知,如果模型点集与场景点集的姿态相似,我们可以将R部分中的三角函数进行等价代换,此时M中的旋转部分R可写为式(12)的形式:
因此,变换矩阵M可以表示为:
此时,式(8)也可转化为:
其中:
对于N组相关的点对,通过式(15)可获得N组线性方程组,这些方程组可写为为Ax-b的形式,其中:
求解Mopt的问题就转化为了求解Xopt的问题,这是一个标准的线性优化问题:
通过SVD分解来完成式(18)的求解,对A进行SVD分解可得到A=UΣVT,从而计算A的伪逆A+=VΣ+UT,那么式(18)的线性最小二乘解为:
xopt=A+·b (19)
三维物体空间位姿初估计的二次校正完成,Xopt即为三维物体空间位姿的最终识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910049505.XA CN109785389A (zh) | 2019-01-18 | 2019-01-18 | 一种基于哈希描述与迭代最近点的三维物体检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910049505.XA CN109785389A (zh) | 2019-01-18 | 2019-01-18 | 一种基于哈希描述与迭代最近点的三维物体检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109785389A true CN109785389A (zh) | 2019-05-21 |
Family
ID=66500979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910049505.XA Pending CN109785389A (zh) | 2019-01-18 | 2019-01-18 | 一种基于哈希描述与迭代最近点的三维物体检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109785389A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348310A (zh) * | 2019-06-12 | 2019-10-18 | 西安工程大学 | 一种霍夫投票3d彩色点云识别方法 |
CN110456377A (zh) * | 2019-08-15 | 2019-11-15 | 中国人民解放军63921部队 | 一种基于三维激光雷达的卫星来袭异物检测方法和*** |
CN110889243A (zh) * | 2019-12-20 | 2020-03-17 | 南京航空航天大学 | 一种基于深度相机的飞机油箱三维重建方法与检测方法 |
CN110942515A (zh) * | 2019-11-26 | 2020-03-31 | 北京迈格威科技有限公司 | 基于点云的目标物体三维计算机建模方法和目标识别方法 |
CN112307971A (zh) * | 2020-10-30 | 2021-02-02 | 中科新松有限公司 | 基于三维点云数据的球体目标识别方法及识别装置 |
WO2022087916A1 (zh) * | 2020-10-28 | 2022-05-05 | 华为技术有限公司 | 定位方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729643A (zh) * | 2012-10-12 | 2014-04-16 | Mv科技软件有限责任公司 | 多模式场景中的三维对象的识别和姿势确定 |
CN104040590A (zh) * | 2011-12-19 | 2014-09-10 | 三菱电机株式会社 | 用于估计物体的姿态的方法 |
US20150010202A1 (en) * | 2013-07-03 | 2015-01-08 | Mitsubishi Electric Research Laboratories, Inc. | Method for Determining Object Poses Using Weighted Features |
-
2019
- 2019-01-18 CN CN201910049505.XA patent/CN109785389A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040590A (zh) * | 2011-12-19 | 2014-09-10 | 三菱电机株式会社 | 用于估计物体的姿态的方法 |
CN103729643A (zh) * | 2012-10-12 | 2014-04-16 | Mv科技软件有限责任公司 | 多模式场景中的三维对象的识别和姿势确定 |
US20150010202A1 (en) * | 2013-07-03 | 2015-01-08 | Mitsubishi Electric Research Laboratories, Inc. | Method for Determining Object Poses Using Weighted Features |
WO2015002114A1 (en) * | 2013-07-03 | 2015-01-08 | Mitsubishi Electric Corporation | Method and apparatus for determining pose of object in scene |
Non-Patent Citations (3)
Title |
---|
KOK-LIM LOW: "Linear Least-Squares Optimization for Point-to-Plane ICP Surface Registration", 《TECHNICAL REPORT TR04-004, UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL》 * |
张凯霖等: "复杂场景下基于C-SHOT特征的3D物体识别与位姿估计", 《计算机辅助设计与图形学学报》 * |
杨厚易: "基于视觉的工件定位与抓取", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348310A (zh) * | 2019-06-12 | 2019-10-18 | 西安工程大学 | 一种霍夫投票3d彩色点云识别方法 |
CN110456377A (zh) * | 2019-08-15 | 2019-11-15 | 中国人民解放军63921部队 | 一种基于三维激光雷达的卫星来袭异物检测方法和*** |
CN110456377B (zh) * | 2019-08-15 | 2021-07-30 | 中国人民解放军63921部队 | 一种基于三维激光雷达的卫星来袭异物检测方法和*** |
CN110942515A (zh) * | 2019-11-26 | 2020-03-31 | 北京迈格威科技有限公司 | 基于点云的目标物体三维计算机建模方法和目标识别方法 |
CN110889243A (zh) * | 2019-12-20 | 2020-03-17 | 南京航空航天大学 | 一种基于深度相机的飞机油箱三维重建方法与检测方法 |
CN110889243B (zh) * | 2019-12-20 | 2020-08-18 | 南京航空航天大学 | 一种基于深度相机的飞机油箱三维重建方法与检测方法 |
WO2022087916A1 (zh) * | 2020-10-28 | 2022-05-05 | 华为技术有限公司 | 定位方法、装置、电子设备和存储介质 |
CN112307971A (zh) * | 2020-10-30 | 2021-02-02 | 中科新松有限公司 | 基于三维点云数据的球体目标识别方法及识别装置 |
CN112307971B (zh) * | 2020-10-30 | 2024-04-09 | 中科新松有限公司 | 基于三维点云数据的球体目标识别方法及识别装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109785389A (zh) | 一种基于哈希描述与迭代最近点的三维物体检测方法 | |
CN110648361B (zh) | 一种三维目标物体的实时位姿估计方法及定位抓取*** | |
CN104636725B (zh) | 一种基于深度图像的手势识别方法与*** | |
JP5759161B2 (ja) | 物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システム | |
JP5627325B2 (ja) | 位置姿勢計測装置、位置姿勢計測方法、およびプログラム | |
US9467682B2 (en) | Information processing apparatus and method | |
CN105091744B (zh) | 一种基于视觉传感器和激光测距仪的位姿检测装置与方法 | |
CN102435188B (zh) | 一种用于室内环境的单目视觉/惯性全自主导航方法 | |
CN102472609A (zh) | 位置和姿势校准方法及设备 | |
JP2013217893A (ja) | モデル生成装置、位置姿勢推定装置、情報処理装置、モデル生成方法、位置姿勢推定方法、情報処理方法 | |
CN102236794A (zh) | 3d场景中3d对象的识别和姿态确定 | |
GB2512460A (en) | Position and orientation measuring apparatus, information processing apparatus and information processing method | |
CN108876852B (zh) | 一种基于3d视觉的在线实时物体识别定位方法 | |
Bu et al. | RF-3DScan: RFID-based 3D reconstruction on tagged packages | |
CN104121902A (zh) | 基于Xtion摄像机的室内机器人视觉里程计实现方法 | |
JPH08136220A (ja) | 物品の位置検出方法およびその装置 | |
CN109211132A (zh) | 一种无人机高精度摄影测量获取高大物体变形信息的方法 | |
US20180374237A1 (en) | Method, system and apparatus for determining a pose for an object | |
CN104050372A (zh) | 一种三维几何形状误差自动评定方法 | |
Nardari et al. | Place recognition in forests with urquhart tessellations | |
Liu et al. | 6D pose estimation of occlusion-free objects for robotic Bin-Picking using PPF-MEAM with 2D images (occlusion-free PPF-MEAM) | |
Di Franco et al. | Solving ambiguities in MDS relative localization | |
Kasaei et al. | An orthographic descriptor for 3D object learning and recognition | |
Hashimoto et al. | Current status and future trends on robot vision technology | |
JP5462662B2 (ja) | 位置姿勢計測装置、物体識別装置、位置姿勢計測方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |
|
RJ01 | Rejection of invention patent application after publication |