机器人抓取时怎么定位的用什么感测器来检测

机器人抓取时怎么定位的用什么感测器来检测,第1张

机器人抓取时怎么定位的?用什么感测器来检测

机械手动作是靠伺服电机上的编码器反馈到工控机处理中心讯号与预设定引数比较、修正再输出给伺服电机执行精确定位的。也就是说靠预先程式设计决定的,不是靠感测器定位的。程式设计可解决机械手三维空间动作精确方向、速度、执行时间…………

依靠定位点以及零点位置,机器手定期修正累加误差,抓取最高阶的是应用影象技术,配合物料定位点。

一般是照相定位的。感测器是COMS或者CCD。

用预先程式设计及其执行中该伺服电机轴尾的编码器反馈讯号至计算中心精确修整偏差定位的。

机器人家上了解到,机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有一些不同:机器视觉的目的是给机器人提供 *** 作物体的资讯。所以,机器视觉的研究大概有这几块:

物体识别(Object Recognition):在影象中检测到物体型别等,这跟 CV 的研究有很大一部分交叉;

位姿估计(Pose Estimation):计算出物体在摄像机座标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里;

相机标定(Camera Calibration):因为上面做的只是计算了物体在相机座标系下的座标,我们还需要确定相机跟机器人的相对位置和姿态,这样才可以将物 姿转换到机器人位姿。

当然,我这里主要是在物体抓取领域的机器视觉;SLAM 等其他领域的就先不讲了。

由于视觉是机器人感知的一块很重要内容,所以研究也非常多了,我就我了解的一些,按照由简入繁的顺序介绍吧:

0 相机标定

这其实属于比较成熟的领域。由于我们所有物体识别都只是计算物体在相机座标系下的位姿,但是,机器人 *** 作物体需要知道物体在机器人座标系下的位姿。所以,我们先需要对相机的位姿进行标定。 内参标定就不说了,参照张正友的论文,或者各种标定工具箱; 外参标定的话,根据相机安装位置,有两种方式:

Eye to Hand:相机与机器人极座标系固连,不随机械臂运动而运动

Eye in Hand:相机固连在机械臂上,随机械臂运动而运动 两种方式的求解思路都类似,首先是眼在手外(Eye to Hand)

只需在机械臂末端固定一个棋盘格,在相机视野内运动几个姿态。由于相机可以计算出棋盘格相对于相机座标系的位姿 、机器人运动学正解可以计算出机器人底座到末端抓手之间的位姿变化 、而末端爪手与棋盘格的位姿相对固定不变。 这样,我们就可以得到一个座标系环

而对于眼在手上(Eye in Hand)的情况,也类似,在地上随便放一个棋盘格(与机器人基座固连),然后让机械臂带着相机走几个位姿,然后也可以形成一个 的座标环。

1 平面物体检测

这是目前工业流水线上最常见的场景。目前来看,这一领域对视觉的要求是:快速、精确、稳定。所以,一般是采用最简单的边缘提取+边缘匹配/形状匹配的方法;而且,为了提高稳定性、一般会通过主要打光源、采用反差大的背景等手段,减少系统变数。

目前,很多智慧相机(如 cognex)都直接内嵌了这些功能;而且,物体一般都是放置在一个平面上,相机只需计算物体的 三自由度位姿即可。 另外,这种应用场景一般都是用于处理一种特定工件,相当于只有位姿估计,而没有物体识别。 当然,工业上追求稳定性无可厚非,但是随着生产自动化的要求越来越高,以及服务类机器人的兴起。对更复杂物体的完整位姿 估计也就成了机器视觉的研究热点。

2 有纹理的物体

机器人视觉领域是最早开始研究有纹理的物体的,如饮料瓶、零食盒等表面带有丰富纹理的都属于这一类。 当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际机器人 *** 作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。

幸好有一位叫做 Lowe 的大神,提出了一个叫做 SIFT (Scale-invariant feature transform)的超强区域性特征点: Lowe, David G "Distinctive image features from scale-invariant keypoints"International journal of puter vision 602 (2004): 91-110 具体原理可以看上面这篇被引用 4万+ 的论文或各种部落格,简单地说,这个方法提取的特征点只跟物体表面的某部分纹理有关,与光照变化、尺度变化、仿射变换、整个物体无关。 因此,利用 SIFT 特征点,可以直接在相机影象中寻找到与资料库中相同的特征点,这样,就可以确定相机中的物体是什么东西(物体识别)。

对于不会变形的物体,特征点在物体座标系下的位置是固定的。所以,我们在获取若干点对之后,就可以直接求解出相机中物体与资料库中物体之间的单应性矩阵。 如果我们用深度相机(如Kinect)或者双目视觉方法,确定出每个特征点的 3D 位置。那么,直接求解这个 PnP 问题,就可以计算出物体在当前相机座标系下的位姿。

↑ 这里就放一个实验室之前毕业师兄的成果 当然,实际 *** 作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会变化)、利用贝叶斯方法加速匹配等。 而且,除了 SIFT 之外,后来又出了一大堆类似的特征点,如 SURF、ORB 等。

3 无纹理的物体

好了,有问题的物体容易解决,那么生活中或者工业里还有很多物体是没有纹理的:

我们最容易想到的就是:是否有一种特征点,可以描述物体形状,同时具有跟 SIFT 相似的不变性? 不幸的是,据我了解,目前没有这种特征点。 所以,之前一大类方法还是采用基于模板匹配的办法,但是,对匹配的特征进行了专门选择(不只是边缘等简单特征)。

简单而言,这篇论文同时利用了彩色影象的影象梯度和深度影象的表面法向作为特征,与资料库中的模板进行匹配。 由于资料库中的模板是从一个物体的多个视角拍摄后生成的,所以这样匹配得到的物 姿只能算是初步估计,并不精确。 但是,只要有了这个初步估计的物 姿,我们就可以直接采用 ICP 演算法(Iterative closest point)匹配物体模型与 3D 点云,从而得到物体在相机座标系下的精确位姿。

当然,这个演算法在具体实施过程中还是有很多细节的:如何建立模板、颜色梯度的表示等。另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。 针对部分遮挡的情况,我们实验室的张博士去年对 LineMod 进行了改进,但由于论文尚未发表,所以就先不过多涉及了。

4 深度学习

由于深度学习在计算机视觉领域得到了非常好的效果,我们做机器人的自然也会尝试把 DL 用到机器人的物体识别中。

首先,对于物体识别,这个就可以照搬 DL 的研究成果了,各种 CNN 拿过来用就好了。有没有将深度学习融入机器人领域的尝试?有哪些难点? - 知乎 这个回答中,我提到 2016 年的『亚马逊抓取大赛』中,很多队伍都采用了 DL 作为物体识别演算法。 然而, 在这个比赛中,虽然很多人采用 DL 进行物体识别,但在物 姿估计方面都还是使用比较简单、或者传统的演算法。似乎并未广泛采用 DL。 如 @周博磊 所说,一般是采用 semantic segmentation neork 在彩色影象上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。

当然,直接用神经网路做位姿估计的工作也是有的

它的方法大概是这样:对于一个物体,取很多小块 RGB-D 资料(只关心一个patch,用区域性特征可以应对遮挡);每小块有一个座标(相对于物体座标系);然后,首先用一个自编码器对资料进行降维;之后,用将降维后的特征用于训练Hough Forest。

5 与任务/运动规划结合

这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人 *** 作物体提供资讯,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模组相结合。

我们让机器人从冰箱中拿一瓶『雪碧』,但是这个 『雪碧』 被『美年达』挡住了。 我们人类的做法是这样的:先把 『美年达』 移开,再去取 『雪碧』 。 所以,对于机器人来说,它需要先通过视觉确定雪碧在『美年达』后面,同时,还需要确定『美年达』这个东西是可以移开的,而不是冰箱门之类固定不可拿开的物体。 当然,将视觉跟机器人结合后,会引出其他很多好玩的新东西。由于不是我自己的研究方向,所以也就不再班门弄斧了。

机器作定位由先由工程式设计决定空前、左右、位置定位精度由伺服电机同轴尾端编码传器反馈讯号经伺服电机驱卡至处理处理再输作自微量调整

机器人多工位动作及其执行中定位全部由人工编写 *** 作程式而决定的,此与感测器暂不搭界。若要根据生产工艺改进,则要重新编写程式,或在原程式中作修改调整。

机器人抓取定位是预先程式设计的,工控机输出带动伺服电机精确定位,包括伺服电机编码器反馈讯号经电机驱动卡直至工控机进一步调整。若用感测器检测定位误差极大,根本不可能细微修正定位精度。

机器人抓取目前最常用的是通过视觉定位,CCD/CMOS感测器拍摄当前视野内,找到MARK点,算出偏移的座标和角度,再通过网口或者串列埠将资料反馈到机器人,机器人作出相应修正

----------众合航迅科技有限公司 邓经理为您解答

机器人动作定位由先由人工程式设计决定它在空中前后、左右、上下位置的。定位精度由伺服电机同轴尾端编码感测器反馈讯号经此伺服电机驱动卡至处理中心处理后再输出作自动微小量调整

一梯度下降法以及Jacobian矩阵计算

在2010年的关于L-K和AAM的博客里提到,模板匹配公式的一阶泰勒展开ΔT=JΔp,J是用于梯度下降的Jacobian矩阵,是高维矢量函数值T=f(p)相对与参数矢量p变化时的增量(导数)。如果p是n维矢量,T是M维矢量,则J是一个[mn]的矩阵。J在(i,j)处的元素值是 (əTi/əpj)。

对模板匹配问题,假设矢量ΔT是图像Patch和模板的差,Δp是模板匹配每次迭代的参数增量,模板匹配过程就是根据ΔT求Δp的过程:

Δp =(JTJ)-1JTΔT

其中JTJ是高斯牛顿法中的海塞矩阵H = JTJ。因为H并不总是可逆,所以

Δp =(H+λI)-1JTΔT

关于λ的说明:(无约束)梯度下降法求函数最小化问题时,λ的增加,减弱了海塞矩阵H的影响,λ从0到正方向的递增过程对应了梯度下降法从牛顿法到最速下降法的切换。优化过程中根据目标函数的结果实时调整λ值的方法即是所谓Levenberg-Marquardt法。 λ的另外一个作用是可以限制回归结果ΔP的幅值,称为Ridge regression。

所以求解模板匹配方法要在每步迭代时计算当前位置的梯度矩阵J,也就是估计输入图像(或模版图像)在参数变化时对应的变化量。J的计算可以使用解析法和数值法:

1解析法:如果模板的几何变形可以用显式的公式来表达,比如Lucas-kanade(L-K)方法中图像Patch的变形可以用2个参数的位移,6个参数的仿射变换或8个参数透射变换Homography来表达。əTi/əpj可以用链式法则表示成图像的梯度和几何变化的内积的形式əTi/əpj=<əTi/əW,əW/əp>;再如AAM revisited文章介绍的face alignment方法,二维人脸特征点经过三角剖分形成多个三角面片,人脸这个非刚体变形模板可以用对应三角形的仿射变换来表达。

2数值法:如果是几何参数和模板的几何对应关系是非线性的,比如机器视觉的成像投影函数是非线性的,再如图像模板可能不是简单地用图像的灰度矢量来表示的,而是用高级的图像冗余特征如梯度、Gabor小波或者SIFT/HOG等表达,这些高维的表达方式非常不适合计算梯度。数值法求J是在对当前每个参数pj增加一个小的扰动量(Purterbation)Δpj,计算因此产生的增量ΔTi和Δpj的比值:ΔTi/Δpj。因为P的每个分量是单独计算的,假设pj彼此之间是相互独立的,则矩阵J的列之间的相关性应该比较小。

另外,仅仅是为了提高J的鲁棒性,也可以用数值法计算,比如在上述解析法光流中求J需要计算图像或模板的梯度,其中就有很多变化,常规的Sobel算子只能考虑3×3邻域,必然受图像噪声的影响,此时可以考虑使用多尺寸模板度卷积的均值。再如Tim Cootes 2001年最初发表的AAM方法,计算人脸图像相对于人脸形状参数变化的J时,就是使用多次扰动结果的均值进行计算。

可以使用梯度下降法求解的非线性最小二乘问题:

(1)L-K方法image registration和AAM人脸对齐:根据输入图像和模板(或子空间模型)的差,推出形状参数的变化。为了减少计算量,Jacobian矩阵J和海塞矩阵H不是在图像I上而是在模板T(对于AAM是人脸训练样本的平均Appearence A0处)上进行计算的。第k次迭代时,根据参数Pk-1把输入图像warp到模板T附近(对于AAM是利用刚性参数和PCA形状参数到输入图像上采样,填充模板图像位置的像素值),然后利用warp后的图像和模板的差计算得到Δpk 并更新形状参数Pk = Pk-1+Δpk(有时是矩阵乘法)。(就是所谓Inverse Composition?)。文章Lucas-kanade20 years on: A unifying framework就是最初把L-K方法和AAM统一到模板匹配的框架下的。

(2)根据已知3D物体的空间结构和对应的一个2D图像投影估计3D物体的姿态(OpenCV的solvePnP()):Pose矩阵[R|T]有6个自由度,该问题是有6个参数的梯度下降问题。误差函数优化的目标是使估计的投影点和实际的投影点之间的距离最小。一个典型的应用是根据Face Alignment的2D特征点估计3D人脸模型的姿态。

(3)机器视觉的光束平差(Bundle Adjustment):根据3D空间物体(通常是根据图像特征点匹配恢复出来的稀疏点云)的多张2D图像上的投影点P2d,同时计算每个摄像机的6自由度的Pose [R|T]、所有3D空间点的坐标P3d=(x,y,z)T,以及每个图像的摄像机内参K(以及非线性的畸变参数)。2D图像i上投影的匹配误差是3D重建的投影点和2D观察点之间的距离:D isti=|P2d-K[R|T]P3d|,所有图像上的匹配误差最小化minE = min sum(Disti)。Bundle Adjustment在张正友的相机标定方法中用于估计相机内参和畸变参数,标定棋盘上的点的空间位置和相机姿态作为副产品,也可以同时得到。通过已知内参的单目相机实时估计相机姿态[R|T]和三维点云坐标的算法叫做SfM或SLAM。如果摄像机是变焦的,原理上也能实时计算出相机内参,称为相机自标定。

(4)两个RGBD图像(带颜色的深度图)配准的变换矩阵[R|T](ICP算法):用于计算RGBD Odometry。可参考[4]。刚体配准需要6个参数,把一个深度图像形成的点云投影到另外一个深度图像(可视为模板)上进行配准。匹配的误差是两个RGBD的RGB及深度Z的差(也可以是3D点云坐标XYZ的距离)。另外,也有利用深度图像的TSDF体数据进行等值面配准的方法。

Matlab里有求解非线性最小二乘问题的函数X=lsqnomlin(myfun,X0,LB,UB,options),特别好用。只要定义好表达矢量差的函数myfun(),以及给定初值X0,设置options等参数(比如设置是否使用L-M算法等),程序会自动计算Jacobian求出最优解X。以CameraCalibration为例,myfun()中只要定义好所有3D-2D投影和检测到的2D点集的误差矢量,并且把所有待定参数,包括n个相机的K和pose、m个3D点坐标的初始值连接成参数矢量X0,送进优化函数,返回的优化结果X再解码成对应参数。实际上初始参数选择比较随意,甚至不需要太精确的线性解(张正友的文章中的31 Close-formsolution一节)步骤就能收敛到精确解。也有许多基于C++的开源库能很好地求解NLS问题,比如Eigen库中就有函数能够完成类似lsqnomlin()的功能。还有专门求解BA问题的开源库。

二 通过学习的方法计算下降矩阵D

其实就是待定系数法,或者看成拟合超平面的回归问题。直接求解下面式子中的D

Δp = D ΔT

在梯度下降过程的当前位置通过给p加一组扰动采样得到对应的ΔT样本。假设样本个数为m,参数P是np维,T是nt维的。则上式的矩阵维度是

[npm]=[npnt][ntm]

Δp和Δt的采样方法和上面提到的估计J的数值法类似,不同的是:样本采样除了希望相互独立外(高维空间中的采样:蒙特卡洛法?)。m的个数也可以远远大于参数p的维度np。D的计算:

D = ΔpΔTT(ΔTΔTT)-1

其中(ΔTΔTT)是[ntnt]维的矩阵,如果图像patch T的每个像素是由HOG或SIFT等特征表达的,比如图像Patch的size是3232,每个pixel位置的HOG特征是128维的,T就是nt=3232128=131072维矢量,这样实时计算(ΔTΔTT)的逆矩阵时的计算量很大。解决的方法:

(1)SVD法或PCA降维,比如在CVPR2013 SDM文章中使用PCA对样本进行降维,最终的特征矢量T是乘以一个降维矩阵的结果。

(2)梯度下降法迭代求解,D(t) = D(t-1) + η(-əE/əD),E是拟合残差,η是学习率。这是神经网络用于更新连接权重的常用方法,它的好处在于可以支持对D矩阵的on-line学习,即每次只使用少量(mini-batch)甚至单个的训练样本对D进行更新。相当于一个使用线性激活函数且只有一层的神经网,适合于内存受限的场合。

(3)参考“Online Learning of LinearPredictors for Real-Time Tracking”,把对[ntnt]维矩阵求逆的过程转化为对[npnp]矩阵求逆的过程(通常nt>>np)。具体见下图(其中模板Homography变形np=8):

原理:

成像模型的坐标系为:世界坐标系 --> 相机坐标系 --> 图像坐标系 --> 像素坐标系

先说从相机坐标系到图像坐标系的变换:

从针孔成像模型说起:

理想情况如上所示,但实际上成像芯片的中心通常不在光轴上。

原本的焦距是f,这里把f拆成2个不同的焦距,一个是x轴的焦距,一个是y轴的焦距

这种变换可以使用齐次坐标。

给q(x, y)增加了一个维度w,即为q(x, y, w)

下图所示,网上一些资料中也有这种形式:

x0、y0为在图像平面上的主点坐标,是Cx,Cy的另一种形式,

其中s为坐标轴倾斜参数,理想情况下为0,其他参数都是一样的。

—————————————————————————————————

我们已经得到了内参矩阵,能够从相机坐标系转换到图像坐标系上,

接下来说如何 得到外参矩阵,将其从世界坐标系转换到相机坐标系上

从世界坐标系转换到相机坐标系上属于刚体变换,即不会发生形变,也就是说只有 旋转 平移

再把偏移矩阵T加上即可,

偏移矩阵T为 [Tx, Ty, Tz]的转置,是X、Y、Z方向上的平移。

将旋转矩阵R和偏移矩阵T合起来即得外参矩阵即为:

——————————————————————————————————

图像坐标系和像素坐标系之间的转换:

像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。

图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点或者叫principal point。图像坐标系的单位为mm,属于物理单位,

而像素坐标系的单位是pixel,我们平常描述一个像素点都是几行几列。所以

这两者之间的转换如下:其中dx和dy表示每一列和每一行分别代表多少mm,即1pixel = dx mm

点(u,v)为像素坐标系上的点,对应的图像坐标系上的点为(x,y)

相机的内参和外参可以通过张正友标定获取。通过最终的转换关系来看,

一个三维世界中的坐标点,可以在图像中找到一个对应的像素点,

在知道摄像机高度的情况下,单目相机能够测距

/

以下为曾经的错误观点

但是反过来,通过图像中的一个点找到它在三维中对应的点就很困难,因为我们并不知道等式左边的Zc值。这个Zc可近似看做相机坐标系中相机到物体的距离。

在我看来,二维图像中的一个点,对应在三维空间中是一条线,因此如果不知道相机剧被测物体距离,是无法从二维图像上的点推导出三维空间中某个点的坐标的。

/

————————————————————————————————

透镜畸变

(写了这么多,写不动了,透镜畸变原理可以在《学习OpenCV》第11章找到相关内容,挺详细的)

你要先把你的current folder设置到你的文件夹,然后在运行calib_gui

还有张正友的和你现在用的不一样,模型什么的都不样。

你想弄明白这个工具箱。如果你英文不好,最快的办法就是找个中文的这个工具箱的介绍,结合着我给你的caltech的网站一起看。

caltech给的那个例子说的非常明白。

PS opencv的calibration是基于张正友的算法做的。你要是想做可以用那个。有现成的代码。去opencv英文官网上搜一下就有了。装好opencv在VS里复制一运行就可以弄了。精度没caltech的高,但是比它方便很多。如果要求高精确度,这两个哪个简单用都不行

相机标定相机标定的目的

获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。

相机标定的输入

标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上)。

相机标定的输出

摄像机的内参、外参系数。

拍摄的物体都处于三维世界坐标系中,而相机拍摄时镜头看到的是三维相机坐标系,成像时三维相机坐标系向二维图像坐标系转换。不同的镜头成像时的转换矩阵不同,同时可能引入失真,标定的作用是近似地估算出转换矩阵和失真系数。为了估算,需要知道若干点的三维世界坐标系中的坐标和二维图像坐标系中的坐标,也就是拍摄棋盘的意义。

相机成像

相机的成像原理:小孔成像

相机的内参相机的外参

在实际由于设计工艺问题、相机安装环境或物体摆放位置等影响,会照成成像与实际图像不一样的现象。

由于设计工艺照成的影响是无法改变的事实,所以这将是相机的内参;

由环境或安装方式照成的影响是可以改变的,这就是相机的外参。

张正友标定相机原理

1求得相机内参数:

用于标定的棋盘格是特制的,其角点坐标已知。标定棋盘格是三维场景中的一个平面∏,棋盘格在成像平面为π(知道了∏与π的对应点坐标之后,可求解两个平面1对应的单应矩阵H)。

根据相机成像模型,P为标定的棋盘坐标,p为其像素点坐标。则,通过对应的点坐标求解H后,可用于求K,R,T。

2设棋盘格所在平面为世界坐标系上XOY平面,则棋盘格上任一角点P世界坐标系为(X,Y,0)。

我是试图入门相机标定一年的菜鸟学生,没有什么实践经验,感觉我在坐井观天,说一下对这块的理解,不知道对不对

1,关于相机标定的论文,最经典的就是张正友标定,matlab和opencv用的都是这个原理。对于平常的相机拍摄的不同图像,有效果,而且结果稳定,需要至少3张图。

2,关于鱼眼相机标定的论文,opencv采用的是一篇06年的论文,我忘了名字,记得大概内容好像是类似张正友标定,只是畸变模型变了一点。

而matlab中鱼眼标定的toolbox采用的是一篇05年的论文,忘了名字,记得大概内容是类似自标定,也就是在计算外参的时候就考虑到了畸变。

3,同一个相机标定结果不一样的原因就太多了。可能角点检测的问题,比如标定板打印的细腻程度(是不是用LCD好一些,我不知道),相机的分辨率。可能是距离远近的问题,不同距离,相机光心可能不一样。可能是你标定板在图像中位置的区别,标定板偏转角度过大,拍摄图像的数量什么的

4,最重要的是,我理解的标定畸变本质其实是选一个比较适合的模型,再用多项式拟合一堆参数,最后优化使整体重投影误差极小。而真实相机他没有什么函数,我们不知道畸变和非畸变点之间是什么map关系,而且畸变点和非畸变点之间可能没什么可以用简单的多项式就可以完美拟合的简单map关系。这就导致,你看到的几个标定结果,随便畸变中心略不一样,焦距略不一样,但是最后重投影误差都差不多。因为说白了,即使畸变中心不一样点,都会通过拟合参数,让提取的角点和重投影的点尽量整好对上。可是平均重投影误差一样小,经常遇到畸变系数内参外参却相去甚远,哪个更好呢?

因为相机复杂的透镜结构并不是简单的多项式就可以表示map关系。所以你很难用一个简单的畸变模型就做到所有图像点map关系准确对上。我看到的结果,往往是图像中间区域重投影误差小,图像边缘区域重投影误差大,这是因为你上传图像中的角点本来就集中在中心区域。所以我觉得需要更多的测评标定结果好坏的算法。不受角点检测影响的测评方法会更好吧我觉得,毕竟角点检测的就不一定对。常见的测评方法就是重投影误差,inlier ratio,失败的概率,重建垂直面是否还垂直,重建平行的,重建直线balabala

5,其他的:标定板和自标定各有利弊,连续模型和离散模型各有利弊,generic 模型和non -parameter model不要搞混,前者其实是来一个相机模型就修改他的算法来包容新的相机模型。类似lensfun对很多镜头的去畸变其实是针对人眼视觉效果,不适合视觉重建

想到什么随手补充什么

以上只是我的理解和猜测,不一定对,欢迎大佬拨乱反正给予指导,欢迎同学们和有相机标定工作经验的大哥来和我讨论,一起学习

展开

以上就是关于机器人抓取时怎么定位的用什么感测器来检测全部的内容,包括:机器人抓取时怎么定位的用什么感测器来检测、非线性最小二乘法、单目相机标定___一、原理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9846577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存