CN116797625B - 一种单目三维工件位姿估计方法 - Google Patents

一种单目三维工件位姿估计方法 Download PDF

Info

Publication number
CN116797625B
CN116797625B CN202310890726.6A CN202310890726A CN116797625B CN 116797625 B CN116797625 B CN 116797625B CN 202310890726 A CN202310890726 A CN 202310890726A CN 116797625 B CN116797625 B CN 116797625B
Authority
CN
China
Prior art keywords
dimensional
matrix
node
pose
workpiece
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.)
Active
Application number
CN202310890726.6A
Other languages
English (en)
Other versions
CN116797625A (zh
Inventor
王振宇
叶中英
陈�胜
李金锞
杨奇
陆佳东
谷帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Imv Co ltd
Original Assignee
Wuxi Imv Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Imv Co ltd filed Critical Wuxi Imv Co ltd
Priority to CN202310890726.6A priority Critical patent/CN116797625B/zh
Publication of CN116797625A publication Critical patent/CN116797625A/zh
Application granted granted Critical
Publication of CN116797625B publication Critical patent/CN116797625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/207Analysis of motion for motion estimation over a hierarchy of resolutions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种单目三维工件位姿估计方法,所述方法包括:通过游戏引擎搭建工件位姿估计数据集,模拟实际应用中的各种环境条件,包括不同的背景、光照和视角;应用数据增强技术,包括添加噪声、改变光照条件、应用随机的几何变换,提升数据的多样性和模型的鲁棒性;搭建三维目标位姿估计网络,包括三维重建模块,三维目标检测模块,以及位姿估计模块,完成从单目图像的三维重建,到三维场景中工件的检测,再到检测出的工件的位姿估计;将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练。本发明能够仅利用单目相机实现可靠精准的工件三维位姿识别。

Description

一种单目三维工件位姿估计方法
技术领域
本发明涉及深度学习和三维计算机视觉领域,尤其涉及一种单目三维工件位姿估计方法。
背景技术
三维工件位姿估计是指通过对三维点云或二维图像进行处理,以获得工件在三维空间中的位置和姿态的任务。其输入可以是三维点云或二维图像,输出包括工件的位置和姿态信息。该任务通常用于工业自动化领域中的物体检测、跟踪和定位等任务,如机器人操作、自动化装配和品质检测等。三维工件位姿估计的准确性对于保障生产线的稳定性和效率至关重要,因此该任务在工业自动化领域中具有广泛的应用前景。
单目场景下的三维工件位姿估计具有硬件成本低、适用范围广、算法可扩展性强和便于集成和部署等优点。这使得单目相机系统成为了许多工业自动化和智能交通等领域的首选方案。然而,在单目场景下,三维工件位姿估计存在着困难之处。首先,在单目图像中缺乏深度信息,需要通过其他手段获取深度信息,例如使用结构光或者多视角图像。其次,单目相机只能提供单一视角的图像,需要处理物体在不同视角下的变化。此外,光照和阴影、物体形状和纹理等因素也会影响位姿估计的准确性,需要使用深度学习或者其他算法来处理这些问题。以此如何克服上述难点,实现高精度的可靠的单目场景下的三维工件位姿具有很大的研究价值和产业价值。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明公开了一种单目工件三维位姿估计方法。所述方法相比之前的单件三维位姿估计方法,能够有效应对单目图像中缺乏深度信息、单目相机只能提供单一视角的图像等难点。
本发明的目的是通过如下技术方案实现的,一种单目工件三维位姿估计方法,所述方法包括:
步骤1,通过游戏引擎搭建工件位姿估计数据集,模拟实际应用中的各种环境条件,包括不同的背景、光照和视角;
步骤2,应用数据增强技术,包括添加噪声、改变光照条件、应用随机的几何变换,提升数据的多样性和模型的鲁棒性;
步骤3,搭建三维目标位姿估计网络,包括三维重建模块,三维目标检测模块,以及位姿估计模块,完成从单目图像的三维重建,到三维场景中工件的检测,再到检测出的工件的位姿估计,
所述的三维目标检测模块,包括以下步骤:
步骤112,三维映射;对于深度图中的每个像素点(u,v),其对应的3D点(X,Y,Z)通过以下公式计算:
Z=D(u,v)
X=(u-cx)*Z/f
Y=(v-cy)*Z/f
其中,
(u,v)是像素点的坐标;
D(u,v)是深度图在(u,v)处的像素值,表示深度;
(cx,cy)是相机的光心,是图像的中心点;
f是相机的焦距;
(X,Y,Z)是3D点的坐标;
步骤113,构建图结构;3D点云中的每个点视为一个节点;每个节点的特征由对应的RGB值和3D坐标组成;这个过程表示为:
Vi=Node(Pi)
其中,Node表示将3D点转化为节点的操作,Pi表示3D点云中的第i个点,Vi表示第i个节点;
根据点之间的三维距离来确定边的存在;具体来说,为每个节点定义一个邻域,如果两个节点的距离小于某个阈值,那么就在这两个节点之间添加一条边;这个过程表示为:
Eij=Edge(Vi,Vj)
if||Pi-Pj||<t
其中,Edge表示添加边的操作,||Pi-Pj||表示第i个点和第j个点的三维距离,t表示阈值,Eij表示在第i个节点和第j个节点之间的边;
最后,将所有的节点和边组合起来,定义图结构;这个过程表示为:
G=Graph(V,E)
其中,Graph表示定义图的操作,V表示所有的节点,E表示所有的边,G表示图;
步骤114,图注意力网络;使用图注意力网络在图结构中进行信息聚合,具体表达式为:
aij=softmax(Wf[Vi;Vj]+bf)
Fi=σ(W[Vi;Ni]+b)
aij表示第i个节点和第j个节点之间的注意力权重,
f是一个可学习的函数,用于计算两个节点之间的相似度,Wf和bf是可优化的模型参数,
softmax是一个归一化函数,用于将相似度转化为权重,
Ni表示第i个节点的邻居特征的聚合,
N(i)表示第i个节点的邻居节点的集合,
Vj表示第j个节点,
∑表示对所有邻居节点进行求和;
步骤115,对图节点进行聚类,先构建相似度矩阵表示节点之间的相似性,设图G的节点集为N=1,2,...,n,节点i和节点j的相似度为sij,构建一个n×n的相似度矩阵S=[sij],其中sij通过以下公式计算:
sij=exp(-||hi-hj||2/(2σ2))
其中,hi和hj是节点i和j的特征,||·||表示欧氏距离,σ是一个超参数;
然后计算拉普拉斯矩阵,图G的度矩阵为D=diag(d1,d2,...,dn),其中di是节点i的度,拉普拉斯矩阵L通过以下公式计算:
L=D-S
接下来计算拉普拉斯矩阵的特征向量,拉普拉斯矩阵L的第k小的特征值对应的特征向量为vk,将v1,v2,...,vk拼接起来,得到一个n×k的矩阵V;
最后,使用K-means聚类算法对矩阵V的每一行,即每个节点,进行聚类,输出聚类结果即为三维目标;
步骤4,将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练。
所述的通过游戏引擎搭建工件位姿估计数据集,包括步骤101至103:
步骤101,创建虚拟环境和工件模型;使用Blender创建需要的3D模型,包括工件模型和环境模型,将创建的模型导入Unity环境,在Unity中配置相机并设置位置、旋转、视场、焦距参数,配置光照并设置光源的类型、颜色、强度参数;
步骤102,工件位姿生成和标注;在虚拟环境中,控制工件的位姿,并且获取工件的位姿,将位置和旋转转换为一个七元数(x,y,z,w,qx,qy,qz),其中(x,y,z)是位置,(w,qx,qy,qz)是四元数表示的旋转,将这个七元数保存为位姿标签;
步骤103,图像渲染和深度图获取;在Unity中,为每个相机渲染出图像和深度图,并保存在硬盘上。
所述的数据增强技术,单独或组合使用步骤104至107:
步骤104,添加噪声;设位姿P由一个平移向量t和一个旋转矩阵R组成,即P=[R|t],表达式为:
P'=[R'|t']
其中是均值为0,方差分别为的高斯分布。σt和σR是噪声的强度,根据实际需要进行调整。*是矩阵乘法,exp是矩阵指数函数,用于将旋转向量转换为旋转矩阵,P是增强后的位姿;
步骤105,随机旋转:给定一个角度范围θ,生成一个θ范围内的随机旋转角α,并将其应用到原始的旋转矩阵上,表达式为:
α=U(-θ,θ)
R′=R*rot(α)
P'=[R'|t]
其中U(-θ,θ)是在[-θ,θ]之间均匀分布的随机数,rot(α)是旋转矩阵,用于表示角度为α的旋转,P是增强后的位姿;
步骤106,随机平移;给定一个平移范围d,生成一个d范围内的随机平移向量Δt,并将其应用到原始的平移向量上,表达式为:
Δt=U(-d,d)
t′=t+Δt
P'=[R|t']
其中U(-d,d)是在[-d,d]之间均匀分布的随机向量,t是增强后的平移向量,P是增强后的位姿。
步骤107,改变光照条件;设光源L由一个位置向量l和一个颜色向量c组成,即L=[l|c],改变光照条件表达式为:
l′=l+U(-δll)
c′=c*U(1-δc,1+δc)
L'=[l'|c']
其中U(-δll)是在[-δll]之间均匀分布的随机向量,U(1-δc,1+δc)是在[1-δc,1+δc]范围内的均匀分布,δl和δc是位置和颜色的变化范围,根据实际需要进行调整。l和c是增强后的位置和颜色向量,L是增强后的光源。
所述的三维重建模块,包括步骤108至111:
步骤108,编码;编码器部分由多个卷积层和最大池化层组成。对于输入的2D图像I,通过卷积层和激活函数进行特征提取,然后通过最大池化层进行下采样,这个过程可以表示为:
Pi=MaxPool(Fi)
其中,Conv表示卷积操作,MaxPool表示最大池化操作,表示第i个卷积层的参数,Fi表示第i个卷积层的输出特征图,Pi表示第i个池化层的输出;
步骤109,解码,解码器部分由多个上采样层和卷积层组成。对于编码器的输出P,首先通过上采样层进行上采样,然后通过卷积层和激活函数进行特征提取。这个过程可以表示为:
Ui=UpSample(Pi)
其中,UpSample表示上采样操作,表示第i个卷积层的参数,Ui表示第i个上采样层的输出,F'i表示第i个卷积层的输出特征图。
步骤110,残差连接,在解码器部分,加入残差连接。这些连接将编码器的特征图Fi直接传递到解码器的对应层,然后将这些特征图与解码器的特征图F'i进行拼接,这个过程可以表示为:
Ci=Concat(Fi,F'i)
其中,Concat表示拼接操作,Ci表示拼接后的特征图;
步骤111,输出层,通过一个最后的卷积层将解码器的输出转化为深度图D:
D=Conv(Cn;θd)
其中,θd表示最后一个卷积层的参数。
所述的位姿估计模块,设目标工件的点云P为源点云,三维检测模块输出的点云M为目标点云,该模块包括步骤116至121:
步骤116,初始化;首先初始化旋转R和平移T,设置R为单位矩阵,T为零向量;
步骤117,计算源点云P和目标点云M的中心点,分别表示为pc和mc,公式如下:
pc=1/N*∑pi
mc=1/N*∑mi
其中,N表示点云中点的数量;
步骤118,计算去中心化的点云P'和M',公式如下:
P′=P-pc
M'=M-mc
步骤119,计算点云P'和M'的协方差矩阵C,公式如下:
C=1/N*P'T*M'
步骤120,使用标准的数值线性代数库,对协方差矩阵C进行奇异值分解,得到左奇异矩阵U、右奇异矩阵V和奇异值矩阵S,根据左奇异矩阵U和右奇异矩阵V,可以计算出旋转矩阵R和平移向量T,使得源点云P'能够最好地匹配目标点云M',公式如下:
R=V*UT
T=mc-R*pc
步骤121,更新源点云;使用计算出的旋转R和平移T来更新源点云P;设更新后的源点云为P',公式如下:
P'=R*P+T
最后,重复步骤117-121,直到达到最大迭代次数,或者旋转和平移的变化小于设定阈值。
所述的将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练,包括步骤122至125:
步骤122,对三维重建模块计算损失函数,公式如下:
Lcon=αLrec+βLsm
其中,Lrec表示重建误差损失,Lsm表示平滑性损失。α和β是两个超参数,用于平衡两个损失函数的权重;
重建误差损失可以通过计算深度图D与真实深度图Dgt之间的均方误差(MSE)来计算:
其中,N是深度图像素的数量,Di和Dgt,i分别表示深度图和真实深度图在像素位置i处的值;
平滑性损失可以通过计算深度图D中相邻像素之间的差异的平方和来计算:
其中,N是深度图像素的数量,Di和Di+1分别表示深度图在相邻像素位置i和i+1处的值,总损失函数L的目标是最小化重建误差和平滑性损失之和,以促进精确的三维重建,并确保深度图的平滑性质;
步骤123,对三维目标检测模块计算损失函数,对设聚类结果为C=C1,C2,...,Ck,其中Ci表示第i个类别,S=[sij]为相似度矩阵,n为节点数,pi为属于Ci的节点所占比例,即pi=|Ci|/n,则以信息熵作为损失函数中的一项,计算公式为:
同时,为了保证聚类结果的有效性和准确性,加入惩罚项,即最小化类别内部的方差以及最大化类别间的距离,以进一步优化聚类结果:
其中,Var(C)表示聚类结果中类别内部的方差,Dmin(C)表示聚类结果中最近邻类别之间的距离,α和β为超参数,用于平衡聚类结果的稳定性和有效性;
步骤124,计算多任务联合损失,公式如下:
L=Lcon+γLdet
其中,Lcon和Ldet分别是三维重建模块和三维目标检测模块的损失函数,γ是一个超参数,用于平衡两个任务的权重;
步骤125,使用Adam优化器对多任务联合损失进行优化,Adam优化器公式如下:
mt=β1mt-1+(1-β1)gt
其中,gt是梯度,θt是参数,α是学习率,β1和β2是衰减率,mt和vt是一阶和二阶矩估计量,∈是一个小常数,用于防止分母为零。使用Adam优化器可以有效地优化联合损失函数,并加快模型的收敛。
附图说明
图1示出了本发明实施例的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本实施例中,假设我们正在运行一个自动化汽车装配流水线。我们会使用单目相机对流水线的工件进行三维位姿估计,并使用机械臂对齐进行拾取和安装。
由此,一种单目工件三维位姿估计方法,所述方法包括:
步骤1,通过游戏引擎搭建工件位姿估计数据集,模拟实际应用中的各种环境条件,包括不同的背景、光照和视角;
步骤2,应用数据增强技术,包括添加噪声、改变光照条件、应用随机的几何变换,提升数据的多样性和模型的鲁棒性;
步骤3,搭建三维目标位姿估计网络,包括三维重建模块,三维目标检测模块,以及位姿估计模块,完成从单目图像的三维重建,到三维场景中工件的检测,再到检测出的工件的位姿估计,
所述的三维目标检测模块,包括以下步骤:
步骤112,三维映射;对于深度图中的每个像素点(u,v),其对应的3D点(X,Y,Z)通过以下公式计算:
Z=D(u,v)
X=(u-cx)*Z/f
Y=(v-cy)*Z/f
其中,
(u,v)是像素点的坐标;
D(u,v)是深度图在(u,v)处的像素值,表示深度;
(cx,cy)是相机的光心,是图像的中心点;
f是相机的焦距;
(X,Y,Z)是3D点的坐标;
步骤113,构建图结构;3D点云中的每个点视为一个节点;每个节点的特征由对应的RGB值和3D坐标组成;这个过程表示为:
Vi=Node(Pi)
其中,Node表示将3D点转化为节点的操作,Pi表示3D点云中的第i个点,Vi表示第i个节点;
根据点之间的三维距离来确定边的存在;具体来说,为每个节点定义一个邻域,如果两个节点的距离小于某个阈值,那么就在这两个节点之间添加一条边;这个过程表示为:
Eij=Edge(Vi,Vj)
if||Pi-Pj||<t
其中,Edge表示添加边的操作,||Pi-Pj||表示第i个点和第j个点的三维距离,t表示阈值,Eij表示在第i个节点和第j个节点之间的边;
最后,将所有的节点和边组合起来,定义图结构;这个过程表示为:
G=Graph(V,E)
其中,Graph表示定义图的操作,V表示所有的节点,E表示所有的边,G表示图;
步骤114,图注意力网络;使用图注意力网络在图结构中进行信息聚合,具体表达式为:
aij=softmax(Wf[Vi;Vj]+bf)
Fi=σ(W[Vi;Ni]+b)
aij表示第i个节点和第j个节点之间的注意力权重,
f是一个可学习的函数,用于计算两个节点之间的相似度,Wfbf是可优化的模型参数,
softmax是一个归一化函数,用于将相似度转化为权重,
Ni表示第i个节点的邻居特征的聚合,
N(i)表示第i个节点的邻居节点的集合,
Vj表示第j个节点,
∑表示对所有邻居节点进行求和;
步骤115,对图节点进行聚类,先构建相似度矩阵表示节点之间的相似性,设图G的节点集为N=1,2,...,n,节点i和节点j的相似度为sij,构建一个n×n的相似度矩阵S=[sij],其中sij通过以下公式计算:
sij=exp(-||hi-hj||2/(2σ2))
其中,hi和hj是节点i和j的特征,||·||表示欧氏距离,σ是一个超参数;
然后计算拉普拉斯矩阵,图G的度矩阵为D=diag(d1,d2,...,dn),其中di是节点i的度,拉普拉斯矩阵L通过以下公式计算:
L=D-S
接下来计算拉普拉斯矩阵的特征向量,拉普拉斯矩阵L的第k小的特征值对应的特征向量为vk,将v1,v2,...,vk拼接起来,得到一个n×k的矩阵V;
最后,使用K-means聚类算法对矩阵V的每一行,即每个节点,进行聚类,输出聚类结果即为三维目标;
步骤4,将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练。
所述的通过游戏引擎搭建工件位姿估计数据集,包括步骤101至103:
步骤101,创建虚拟环境和工件模型;使用Blender创建需要的3D模型,包括工件模型和环境模型,将创建的模型导入Unity环境,在Unity中配置相机并设置位置、旋转、视场、焦距参数,配置光照并设置光源的类型、颜色、强度参数;
步骤102,工件位姿生成和标注;在虚拟环境中,控制工件的位姿,并且获取工件的位姿,将位置和旋转转换为一个七元数(x,y,z,w,qx,qy,qz),其中(x,y,z)是位置,(w,qx,qy,qz)是四元数表示的旋转,将这个七元数保存为位姿标签;
步骤103,图像渲染和深度图获取;在Unity中,为每个相机渲染出图像和深度图,并保存在硬盘上。
所述的数据增强技术,单独或组合使用步骤104至107:
步骤104,添加噪声;设位姿P由一个平移向量t和一个旋转矩阵R组成,即P=[R|t],表达式为:
P'=[R'|t']
其中是均值为0,方差分别为的高斯分布。σt和σR是噪声的强度,根据实际需要进行调整。*是矩阵乘法,exp是矩阵指数函数,用于将旋转向量转换为旋转矩阵,P是增强后的位姿;
步骤105,随机旋转:给定一个角度范围θ,生成一个θ范围内的随机旋转角α,并将其应用到原始的旋转矩阵上,表达式为:
α=U(-θ,θ)
R′=R*rot(α)
P'=[R'|t]
其中U(-θ,θ)是在[-θ,θ]之间均匀分布的随机数,rot(α)是旋转矩阵,用于表示角度为α的旋转,P是增强后的位姿;
步骤106,随机平移;给定一个平移范围d,生成一个d范围内的随机平移向量Δt,并将其应用到原始的平移向量上,表达式为:
Δt=U(-d,d)
t′=t+Δt
P'=[R|t']
其中U(-d,d)是在[-d,d]之间均匀分布的随机向量,t是增强后的平移向量,P是增强后的位姿。
步骤107,改变光照条件;设我们的光源L由一个位置向量l和一个颜色向量c组成,即L=[l|c],改变光照条件表达式为:
l′=l+U(-δll)
c′=c*U(1-δc,1+δc)
L'=[l'|c']
其中U(-δll)是在[-δll]之间均匀分布的随机向量,U(1-δc,1+δc)是在[1-δc,1+δc]范围内的均匀分布,δl和δc是位置和颜色的变化范围,根据实际需要进行调整。l和c是增强后的位置和颜色向量,L是增强后的光源。
所述的三维重建模块,包括步骤108至111:
步骤108,编码;编码器部分由多个卷积层和最大池化层组成。对于输入的2D图像I,通过卷积层和激活函数进行特征提取,然后通过最大池化层进行下采样,这个过程可以表示为:
Pi=MaxPool(Fi)
其中,Conv表示卷积操作,MaxPool表示最大池化操作,表示第i个卷积层的参数,Fi表示第i个卷积层的输出特征图,Pi表示第i个池化层的输出;
步骤109,解码,解码器部分由多个上采样层和卷积层组成。对于编码器的输出P,我们首先通过上采样层进行上采样,然后通过卷积层和激活函数进行特征提取。这个过程可以表示为:
Ui=UpSample(Pi)
其中,UpSample表示上采样操作,表示第i个卷积层的参数,Ui表示第i个上采样层的输出,F'i表示第i个卷积层的输出特征图。
步骤110,残差连接,在解码器部分,我们还会加入残差连接。这些连接将编码器的特征图Fi直接传递到解码器的对应层,然后将这些特征图与解码器的特征图F'i进行拼接,这个过程可以表示为:
Ci=Concat(Fi,F'i)
其中,Concat表示拼接操作,Ci表示拼接后的特征图;
步骤111,输出层,通过一个最后的卷积层将解码器的输出转化为深度图D:
D=Conv(Cn;θd)
其中,θd表示最后一个卷积层的参数。
所述的位姿估计模块,设目标工件的点云P为源点云,三维检测模块输出的点云M为目标点云,该模块包括步骤116至121:
步骤116,初始化;首先初始化旋转R和平移T,设置R为单位矩阵,T为零向量;
步骤117,计算源点云P和目标点云M的中心点,分别表示为pc和mc,公式如下:
pc=1/N*∑pi
mc=1/N*∑mi
其中,N表示点云中点的数量;
步骤118,计算去中心化的点云P'和M',公式如下:
P′=P-pc
M'=M-mc
步骤119,计算点云P'和M'的协方差矩阵C,公式如下:
C=1/N*P'T*M'
步骤120,使用标准的数值线性代数库,对协方差矩阵C进行奇异值分解,得到左奇异矩阵U、右奇异矩阵V和奇异值矩阵S,根据左奇异矩阵U和右奇异矩阵V,计算出旋转矩阵R和平移向量T,使得源点云P'能够最好地匹配目标点云M',公式如下:
R=V*UT
T=mc-R*pc
步骤121,更新源点云;使用计算出的旋转R和平移T来更新源点云P;设更新后的源点云为P',公式如下:
P'=R*P+T
最后,重复步骤117-121,直到达到最大迭代次数,或者旋转和平移的变化小于设定阈值。
所述的将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练,包括步骤122至125:
步骤122,对三维重建模块计算损失函数,公式如下:
Lcon=αLrec+βLsm
其中,Lrec表示重建误差损失,Lsm表示平滑性损失。α和β是两个超参数,用于平衡两个损失函数的权重;
重建误差损失通过计算深度图D与真实深度图Dgt之间的均方误差(MSE)来计算:
其中,N是深度图像素的数量,Di和Dgt,i分别表示深度图和真实深度图在像素位置i处的值;
平滑性损失可以通过计算深度图D中相邻像素之间的差异的平方和来计算:
其中,N是深度图像素的数量,Di和Di+1分别表示深度图在相邻像素位置i和i+1处的值,总损失函数L的目标是最小化重建误差和平滑性损失之和,以促进精确的三维重建,并确保深度图的平滑性质;
步骤123,对三维目标检测模块计算损失函数,对设聚类结果为C=C1,C2,...,Ck,其中Ci表示第i个类别,S=[sij]为相似度矩阵,n为节点数,pi为属于Ci的节点所占比例,即pi=|Ci|/n,则以信息熵作为损失函数中的一项,计算公式为:
同时,为了保证聚类结果的有效性和准确性,加入惩罚项,即最小化类别内部的方差以及最大化类别间的距离,以进一步优化聚类结果:
其中,Var(C)表示聚类结果中类别内部的方差,Dmin(C)表示聚类结果中最近邻类别之间的距离,α和β为超参数,用于平衡聚类结果的稳定性和有效性;
步骤124,计算多任务联合损失,公式如下:
L=Lcon+γLdet
其中,Lcon和Ldet分别是三维重建模块和三维目标检测模块的损失函数,γ是一个超参数,用于平衡两个任务的权重;
步骤125,使用Adam优化器对多任务联合损失进行优化,Adam优化器公式如下:
mt=β1mt-1+(1-β1)gt
其中,gt是梯度,θt是参数,α是学习率,β1和β2是衰减率,mt和vt是一阶和二阶矩估计量,∈是一个小常数,用于防止分母为零。使用Adam优化器可以有效地优化联合损失函数,并加快模型的收敛。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (6)

1.一种单目工件三维位姿估计方法,其特征在于,所述方法包括:
步骤1,通过游戏引擎搭建工件位姿估计数据集,模拟实际应用中的各种环境条件,包括不同的背景、光照和视角;
步骤2,应用数据增强技术,包括添加噪声、改变光照条件、应用随机的几何变换,提升数据的多样性和模型的鲁棒性;
步骤3,搭建三维目标位姿估计网络,包括三维重建模块,三维目标检测模块,以及位姿估计模块,完成从单目图像的三维重建,到三维场景中工件的检测,再到检测出的工件的位姿估计;
所述的三维目标检测模块,包括以下步骤:
步骤112,三维映射;对于深度图中的每个像素点(u,v),其对应的3D点(X,Y,Z)通过以下公式计算:
Z=D(u,v)
X=(u-cx)*Z/f
Y=(v-cy)*Z/f
其中,
(u,v)是像素点的坐标;
D(u,v)是深度图在(u,v)处的像素值,表示深度;
(cx,cy)是相机的光心,是图像的中心点;
f是相机的焦距;
(X,Y,Z)是3D点的坐标;
步骤113,构建图结构;3D点云中的每个点视为一个节点;每个节点的特征由对应的RGB值和3D坐标组成;这个过程表示为:
Vi=Node(Pi)
其中,Node表示将3D点转化为节点的操作,Pi表示3D点云中的第i个点,Vi表示第i个节点;
根据点之间的三维距离来确定边的存在;具体来说,为每个节点定义一个邻域,如果两个节点的距离小于某个阈值,那么就在这两个节点之间添加一条边;这个过程表示为:
Eij=Edge(Vi,Vj)
if||Pi-Pj||<t
其中,Edge表示添加边的操作,||Pi-Pj||表示第i个点和第j个点的三维距离,t表示阈值,Eij表示在第i个节点和第j个节点之间的边;
最后,将所有的节点和边组合起来,定义图结构;这个过程表示为:
G=Graph(V,E)
其中,Graph表示定义图的操作,V表示所有的节点,E表示所有的边,G表示图;
步骤114,图注意力网络;使用图注意力网络在图结构中进行信息聚合,具体表达式为:
aij=softmax(Wf[Vi;Vj]+bf)
Fi=σ(W[Vi;Ni]+b)
aij表示第i个节点和第j个节点之间的注意力权重,
f是一个可学习的函数,用于计算两个节点之间的相似度,Wf和bf是可优化的模型参数,
softmax是一个归一化函数,用于将相似度转化为权重,
Ni表示第i个节点的邻居特征的聚合,
N(i)表示第i个节点的邻居节点的集合,
Vj表示第j个节点,
∑表示对所有邻居节点进行求和;
步骤115,对图节点进行聚类,先构建相似度矩阵表示节点之间的相似性,设图G的节点集为N=1,2,...,n,节点i和节点j的相似度为sij,构建一个n×n的相似度矩阵S=[sij],其中sij通过以下公式计算:
sij=exp(-||hi-hj||2/(2σ2))
其中,hi和hj是节点i和j的特征,||·||表示欧氏距离,σ是一个超参数;
然后计算拉普拉斯矩阵,图G的度矩阵为D=diag(d1,d2,...,dn),其中di是节点i的度,拉普拉斯矩阵L通过以下公式计算:
L=D-S
接下来计算拉普拉斯矩阵的特征向量,拉普拉斯矩阵L的第k小的特征值对应的特征向量为vk,将v1,v2,...,vk拼接起来,得到一个n×k的矩阵V;
最后,使用K-means聚类算法对矩阵V的每一行,即每个节点,进行聚类,输出聚类结果即为三维目标;
步骤4,将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练。
2.根据权利要求1所述的一种单目工件三维位姿估计方法,其特征在于,所述的通过游戏引擎搭建工件位姿估计数据集,包括以下步骤:
步骤101,创建虚拟环境和工件模型;使用Blender创建需要的3D模型,包括工件模型和环境模型,将创建的模型导入Unity环境,在Unity中配置相机并设置位置、旋转、视场、焦距参数,配置光照并设置光源的类型、颜色、强度参数;
步骤102,工件位姿生成和标注;在虚拟环境中,控制工件的位姿,并且获取工件的位姿,将位置和旋转转换为一个七元数(x,y,z,w,qx,qy,qz),其中(x,y,z)是位置,这三个值构成了一个三维矢量,表示从参考点到工件的位移,(w,qx,qy,qz)是四元数表示的旋转,w是实部,(qx,qy,qz)构成了虚部,旋转轴由(qx,qy,qz)确定,旋转角由w确定,将这个七元数保存为位姿标签;
步骤103,图像渲染和深度图获取;在Unity中,为每个相机渲染出图像和深度图,并保存在硬盘上。
3.根据权利要求1所述的一种单目工件三维位姿估计方法,其特征在于,所述的数据增强技术,单独或组合使用以下步骤:
步骤104,添加噪声;设位姿P由一个平移向量t和一个旋转矩阵R组成,即P=[R|t],表达式为:
P′=[R′|t′]
其中R′和t′表示增强后的旋转矩阵和平移向量,P′表示增强后的位姿,是均值为0,方差分别为的高斯分布;σt和σR是噪声的强度,根据实际需要进行调整,*是矩阵乘法,exp是矩阵指数函数,用于将旋转向量转换为旋转矩阵;
步骤105,随机旋转:给定一个角度范围θ,生成一个θ范围内的随机旋转角α,并将其应用到原始的旋转矩阵上,表达式为:
α=U(-θ,θ)
R′=R*rot(α)
P′=[R′|t]
其中R′表示增强后的旋转矩阵,P′表示增强后的位姿,U(-θ,θ)是在[-θ,θ]之间均匀分布的随机数,rot(α)是旋转矩阵,用于表示角度为α的旋转;
步骤106,随机平移;给定一个平移范围d,生成一个d范围内的随机平移向量Δt,并将其应用到原始的平移向量上,表达式为:
Δt=U(-d,d)
t′=t+Δt
P′=[R|t′]
其中U(-d,d)是在[-d,d]之间均匀分布的随机向量,t′是增强后的平移向量,P′是增强后的位姿;
步骤107,改变光照条件;设光源L由一个位置向量l和一个颜色向量c组成,即L=[1|c],改变光照条件表达式为:
l′=l+U(-δl,δl)
c′=c*U(1-δc,1+δc)
L′=[l′|c′]
其中U(-δl,δl)是在[-δl,δl]之间均匀分布的随机向量,U(1-δc,1+δc)是在[1-δc,1+δc]范围内的均匀分布,δl和δc是位置和颜色的变化范围,根据实际需要进行调整,l′和c′是增强后的位置和颜色向量,L′是增强后的光源。
4.根据权利要求1所述的一种单目工件三维位姿估计方法,其特征在于,所述的三维重建模块,包括以下步骤:
步骤108,编码;编码器部分由多个卷积层和最大池化层组成;对于输入的2D图像I,通过卷积层和激活函数进行特征提取,然后通过最大池化层进行下采样,这个过程表示为:
Pi=MaxPool(Fi)
其中,Conv表示卷积操作,MaxPool表示最大池化操作,表示第i个卷积层的参数,Fi表示第i个卷积层的输出特征图,Pi表示第i个池化层的输出;
步骤109,解码,解码器部分由多个上采样层和卷积层组成;对于编码器的输出P,首先通过上采样层进行上采样,然后通过卷积层和激活函数进行特征提取;这个过程表示为:
Ui=UpSample(Pi)
其中,UpSample表示上采样操作,表示第i个卷积层的参数,Ui表示第i个上采样层的输出,F′i表示第i个卷积层的输出特征图;
步骤110,残差连接,在解码器部分,加入残差连接;这些连接将编码器的特征图Fi直接传递到解码器的对应层,然后将这些特征图与解码器的特征图F′i进行拼接,这个过程表示为:
Ci=Concat(Fi,F′i)
其中,Concat表示拼接操作,Ci表示拼接后的特征图;
步骤111,输出层,通过一个最后的卷积层将解码器的输出Cn转化为深度图D:
D=Conv(Cn;θd)
其中,θd表示最后一个卷积层的参数。
5.根据权利要求1所述的一种单目工件三维位姿估计方法,其特征在于,所述的位姿估计模块,设目标工件的点云P为源点云,三维检测模块输出的点云M为目标点云,位姿估计包括以下步骤:
步骤116,初始化;首先初始化旋转R和平移T,设置R为单位矩阵,T为零向量;
步骤117,计算源点云P和目标点云M的中心点,分别表示为pc和mc,公式如下:
pc=1/N*∑pi
mc=1/N*∑mi
其中,N表示点云中点的数量,pi表示点云p第i个点的坐标,mi表示点云m第i个点的坐标;
步骤118,计算去中心化的点云P′和M′,公式如下:
P′=P-pc
M′=M-mc
其中,P′和M′表示去中心化的源点云和目标点云;
步骤119,计算点云P’和M′的协方差矩阵C,公式如下:
C=1/N*P′T*M′
步骤120,使用标准的数值线性代数库,对协方差矩阵C进行奇异值分解,得到左奇异矩阵U、右奇异矩阵V和奇异值矩阵S,根据左奇异矩阵U和右奇异矩阵V,计算出旋转矩阵R和平移向量T,使得源点云P′能够进一步匹配目标点云M′,公式如下:
R=V*UT
T=mc-R*pc
步骤121,更新源点云;使用计算出的旋转R和平移T来更新源点云P;设更新后的源点云为P′,公式如下:
P′=R*P+T
最后,重复步骤117-121,直到达到最大迭代次数,或者旋转和平移的变化小于设定阈值。
6.根据权利要求1所述的一种单目工件三维位姿估计方法,其特征在于,所述的将生成和增强后的图像及深度图数据输入到三维目标位姿估计网络中进行训练,包括以下步骤:
步骤122,对三维重建模块计算损失函数,公式如下:
Lcon=αLrec+βLsm
其中,Lrec表示重建误差损失,Lsm表示平滑性损失;α和β是两个超参数,用于平衡两个损失函数的权重;
重建误差损失通过计算深度图D与真实深度图Dgt之间的均方误差(MSE)来计算:
其中,N是深度图像素的数量,Di和Dgt,i分别表示深度图和真实深度图在像素位置i处的值;
平滑性损失通过计算深度图D中相邻像素之间的差异的平方和来计算:
其中,N是深度图像素的数量,Di和Di+1分别表示深度图在相邻像素位置i和i+1处的值,总损失函数L的目标是最小化重建误差和平滑性损失之和,以促进精确的三维重建,并确保深度图的平滑性质;
步骤123,对三维目标检测模块计算损失函数,对设聚类结果为C=C1,C2,...,Ck,其中Ci表示第i个类别,S=[sij]为相似度矩阵,n为节点数,pi为属于Ci的节点所占比例,即pi=|Ci|/n,则以信息熵作为损失函数中的一项,计算公式为:
同时,为了保证聚类结果的有效性和准确性,加入惩罚项,即最小化类别内部的方差以及最大化类别间的距离,以进一步优化聚类结果:
其中,Var(C)表示聚类结果中类别内部的方差,Dmin(C)表示聚类结果中最近邻类别之间的距离,α和β为超参数,用于平衡聚类结果的稳定性和有效性;
步骤124,计算多任务联合损失,公式如下:
L=Lcon+γLdet
其中,Lcon和Ldet分别是三维重建模块和三维目标检测模块的损失函数,γ是一个超参数,用于平衡两个任务的权重;
步骤125,使用Adam优化器对多任务联合损失进行优化,Adam优化器公式如下:
mt=β1mt-1+(1-β1)gt
其中,gt是梯度,θt是参数,α是学习率,β1和β2是衰减率,mt和vt是一阶和二阶矩估计量,∈是一个小常数,用于防止分母为零,使用Adam优化器有效地优化联合损失函数,并加快模型的收敛。
CN202310890726.6A 2023-07-20 2023-07-20 一种单目三维工件位姿估计方法 Active CN116797625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310890726.6A CN116797625B (zh) 2023-07-20 2023-07-20 一种单目三维工件位姿估计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310890726.6A CN116797625B (zh) 2023-07-20 2023-07-20 一种单目三维工件位姿估计方法

Publications (2)

Publication Number Publication Date
CN116797625A CN116797625A (zh) 2023-09-22
CN116797625B true CN116797625B (zh) 2024-04-19

Family

ID=88042178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310890726.6A Active CN116797625B (zh) 2023-07-20 2023-07-20 一种单目三维工件位姿估计方法

Country Status (1)

Country Link
CN (1) CN116797625B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108830150A (zh) * 2018-05-07 2018-11-16 山东师范大学 一种基于三维人体姿态估计方法及装置
CN109461180A (zh) * 2018-09-25 2019-03-12 北京理工大学 一种基于深度学习的三维场景重建方法
CN110222580A (zh) * 2019-05-09 2019-09-10 中国科学院软件研究所 一种基于三维点云的人手三维姿态估计方法和装置
CN111402310A (zh) * 2020-02-29 2020-07-10 同济大学 一种基于深度估计网络的单目图像深度估计方法及系统
CN112001958A (zh) * 2020-10-28 2020-11-27 浙江浙能技术研究院有限公司 基于有监督单目深度估计的虚拟点云三维目标检测方法
CN112365577A (zh) * 2020-11-09 2021-02-12 重庆邮电大学 一种基于卷积神经网络的机械零件增强现实跟踪注册方法
CN113766229A (zh) * 2021-09-30 2021-12-07 咪咕文化科技有限公司 一种编码方法、解码方法、装置、设备及可读存储介质
CN114004883A (zh) * 2021-09-30 2022-02-01 哈尔滨工业大学 一种冰壶球的视觉感知方法、装置、计算机设备和存储介质
CN114722551A (zh) * 2022-05-23 2022-07-08 北京航空航天大学 一种恶劣天气下空域网络容量预测方法
CN115239882A (zh) * 2022-07-20 2022-10-25 安徽理工大学环境友好材料与职业健康研究院(芜湖) 一种基于弱光图像增强的农作物三维重建方法
CN116258903A (zh) * 2023-03-09 2023-06-13 北京工业大学 基于层次化图卷积网络和空间注意力机制的三维点云数据分类方法
CN116309847A (zh) * 2023-04-28 2023-06-23 江苏大学 一种基于二维图像和三维点云结合的堆叠工件位姿估计方法
KR20230106057A (ko) * 2022-01-05 2023-07-12 국민대학교산학협력단 인공신경망을 이용한 6자유도 자세 추정 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210004962A1 (en) * 2019-07-02 2021-01-07 Qualcomm Incorporated Generating effects on images using disparity guided salient object detection

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108830150A (zh) * 2018-05-07 2018-11-16 山东师范大学 一种基于三维人体姿态估计方法及装置
CN109461180A (zh) * 2018-09-25 2019-03-12 北京理工大学 一种基于深度学习的三维场景重建方法
CN110222580A (zh) * 2019-05-09 2019-09-10 中国科学院软件研究所 一种基于三维点云的人手三维姿态估计方法和装置
CN111402310A (zh) * 2020-02-29 2020-07-10 同济大学 一种基于深度估计网络的单目图像深度估计方法及系统
CN112001958A (zh) * 2020-10-28 2020-11-27 浙江浙能技术研究院有限公司 基于有监督单目深度估计的虚拟点云三维目标检测方法
CN112365577A (zh) * 2020-11-09 2021-02-12 重庆邮电大学 一种基于卷积神经网络的机械零件增强现实跟踪注册方法
CN113766229A (zh) * 2021-09-30 2021-12-07 咪咕文化科技有限公司 一种编码方法、解码方法、装置、设备及可读存储介质
CN114004883A (zh) * 2021-09-30 2022-02-01 哈尔滨工业大学 一种冰壶球的视觉感知方法、装置、计算机设备和存储介质
KR20230106057A (ko) * 2022-01-05 2023-07-12 국민대학교산학협력단 인공신경망을 이용한 6자유도 자세 추정 방법 및 장치
CN114722551A (zh) * 2022-05-23 2022-07-08 北京航空航天大学 一种恶劣天气下空域网络容量预测方法
CN115239882A (zh) * 2022-07-20 2022-10-25 安徽理工大学环境友好材料与职业健康研究院(芜湖) 一种基于弱光图像增强的农作物三维重建方法
CN116258903A (zh) * 2023-03-09 2023-06-13 北京工业大学 基于层次化图卷积网络和空间注意力机制的三维点云数据分类方法
CN116309847A (zh) * 2023-04-28 2023-06-23 江苏大学 一种基于二维图像和三维点云结合的堆叠工件位姿估计方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Cluster-Based Point Cloud Coding with Normal Weighted Graph Fourier Transform;Yiqun Xu等;《2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)》;1753-1757 *
PoseNetwork: Pipeline for the Automated Generation of Synthetic Training Data and CNN for Object Detection, Segmentation, and Orientation Estimation;Alejandro Magaña等;《2020 25th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA)》;587-594 *
基于点云数据的3D目标检测技术研究;杨川;《中国优秀硕士学位论文全文数据库:信息科技辑》(第2022年第01期);I138-2506 *
基于视觉的移动机器人三维场景感知技术研究;陆鹏;《中国优秀硕士学位论文全文数据库:信息科技辑》(第2017年第03期);I138-4246 *

Also Published As

Publication number Publication date
CN116797625A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN112258618B (zh) 基于先验激光点云与深度图融合的语义建图与定位方法
CN108416840B (zh) 一种基于单目相机的三维场景稠密重建方法
CN111798475B (zh) 一种基于点云深度学习的室内环境3d语义地图构建方法
CN110009674B (zh) 基于无监督深度学习的单目图像景深实时计算方法
US20190220992A1 (en) Object pose estimating method and apparatus
CN109345588A (zh) 一种基于Tag的六自由度姿态估计方法
CN102722697B (zh) 一种无人飞行器视觉自主导引着陆的目标跟踪方法
CN112305554B (zh) 基于有向几何点和稀疏帧的激光里程计方法、系统、装置
CN116662600B (zh) 一种基于轻量结构化线地图的视觉定位方法
WO2023280274A1 (en) Geometric structure aided visual localization method and system
CN112686952A (zh) 一种图像光流计算系统、方法及应用
CN114549629A (zh) 水下单目视觉估计目标三维位姿的方法
Bhayani et al. Calibrated and partially calibrated semi-generalized homographies
Guan et al. Minimal solvers for relative pose estimation of multi-camera systems using affine correspondences
Lin et al. Se (3)-equivariant point cloud-based place recognition
CN115147576A (zh) 一种基于关键特征的水下机器人对接单目视觉导引方法
Bullinger et al. 3d vehicle trajectory reconstruction in monocular video data using environment structure constraints
CN113160315B (zh) 一种基于对偶二次曲面数学模型的语义环境地图表征方法
CN114155406A (zh) 一种基于区域级特征融合的位姿估计方法
CN116797625B (zh) 一种单目三维工件位姿估计方法
CN117152228A (zh) 基于通道自注意力机制的自监督图像深度估计方法
Bideau et al. The right spin: learning object motion from rotation-compensated flow fields
Guo et al. Efficient planar surface-based 3D mapping method for mobile robots using stereo vision
KR102319237B1 (ko) 핸드크래프트 비용 기반의 다중 뷰 스테레오 정합 방법
CN116416608A (zh) 一种基于关键点的单目三维实时检测算法

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A monocular 3D workpiece pose estimation method

Granted publication date: 20240419

Pledgee: Bank of Jiangsu Limited by Share Ltd. Wuxi branch

Pledgor: WUXI IMV CO.,LTD.

Registration number: Y2024980030533

PE01 Entry into force of the registration of the contract for pledge of patent right