导航:首页 > 源码编译 > 机器视觉的定位算法

机器视觉的定位算法

发布时间:2022-05-27 17:00:24

‘壹’ 机器视觉中检测零部件缺失采用哪些算法

如果你的产品是一样的,可以用模板匹配进行产品定位,在对固定区域做处理,比如说二值化、形态学处理把电容对应的特征找到,没找到就是缺失了。
需要打光效果配合,电容和电路板上其他的要能比较明显区分开,这样比较好处理。

‘贰’ 机器视觉定位是什么和机器视觉检测有什么不同

视觉定位类项目通常结合机器人学,轴组运动学控制,常常使用仿射变换,几何学,手眼标定等算法,在数学原理层面要熟悉常用的矩阵转换公式,几何平面学公式等。追求的是高精度定位效果,通常定位抓取精度在0.01mm。应用场景包括2D定位,3D无序定位抓取等。需要对自动化设备,机器人学等十分了解。机器视觉检测通常指的是目标检测和缺陷检测,在工业上,需要对CCD传感器得到的图像做图像处理找到某些缺陷,在算法层方面需要掌握Blob分析,预处理算法,边缘提取等,偏重于图像处理本身。在计算机视觉方向,视觉检测还有目标检测,通常用卷积神经网络实现对目标的检测和分类,比如说现在的人脸识别,自动驾驶等。综合以上,机器视觉定位更偏向于视觉算法和自动化结合,视觉检测更注重于图像算法本身。

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

机器人家上了解到,机器人领域的视觉(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 computer vision 60.2 (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 network 在彩色图像上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。

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

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

5. 与任务/运动规划结合
这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人操作物体提供信息,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模块相结合。

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

‘肆’ 机器视觉算法基本步骤

1、图像数据解码
2、图像特征提取
3、识别图像中目标

‘伍’ 计算机视觉中,目前有哪些成熟的匹配定位算法

计算机视觉既是工程领域,也是科学领域中的一个富有挑战性重要研究领域。计算机视觉是一门综合性的学科,它已经吸引了来自各个学科的研究者参加到对它的研究之中。其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等。视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分。由于它的重要性,一些先进国家,例如美国把对计算机视觉的研究列为对经济和科学有广泛影响的科学和工程中的重大基本问题,即所谓的重大挑战(grandchallenge)。计算机视觉的挑战是要为计算机和机器人开发具有与人类水平相当的视觉能力。机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。一个有能力的视觉系统应该把所有这些处理都紧密地集成在一起。[Neg91]作为一门学科,计算机视觉开始于60年代初,但在计算机视觉的基本研究中的许多重要进展是在80年代取得的。现在计算机视觉已成为一门不同于人工智能、图象处理、模式识别等相关领域的成熟学科。计算机视觉与人类视觉密切相关,对人类视觉有一个正确的认识将对计算机视觉的研究非常有益。为此我们将先介绍人类视觉。

‘陆’ 自动扫地机器人的定位方式有哪几种

扫地机器人一般有五种定位方式
1、扫地机器人基于信标的定位
信标定位原指在航海或航空中利用无线电基站发出的无线电波实现定位与导航的技术。对机器人室内定位而言是指,机器人通过各种传感器接收或观测环境中已知位置的信标,经过计算得出机器人与信标的相对位置,再代入已知的信标位置坐标,解出机器人的绝对坐标来实现定位。
2、扫地机器人环境地图模型匹配定位
是机器人通过自身的各种传感器探测周围环境,利用感知到的局部环境信息进行局部的地图构造,并与其内部事先存储的完整地图进行匹配。通过匹配关系获得自己在全局环境中的位置,从而确定自身的位置。该方法由于有严格的条件限制,只适于一些结构相对简单的环境。
3、扫地机器人基于视觉的定位
科学研究统计表明,人类从外界获得信息量约有75%来自视觉,视觉系统是机器人与人类感知环境最接近的探测方式。受益于模式识别、机器视觉的发展,基于视觉的机器人定位近年来成为研究热点。
4、扫地机器人地图匹配法定位
机器人通过自身的各种传感器探测周围环境,利用感知到的局部环境信息进行局部的地图构造,并与其内部事先存储的完整地图进行匹配。通过匹配关系获得自己在全局环境中的位置。该方法受环境布局影响大,只适于一些结构相对简单的环境。
5、扫地机器人图像匹配法定位
机器人通过事先移动获得环境中各特征点的图像信息,利用目标物体的几何形状模型,在目标上取3个以上的特征点和探测到的图像特征点进行匹配。属于指纹定位法的一种。
受元器件成本、性能及生产等因素的制约,航位推算法仍然是目前采用最广泛的定位方法,但通过算法优化,引入多种定位技术的混合定位,可以减小其累积误差带来的负面影响。

‘柒’ 机器视觉系统的定位精度如何计算

视野/像素=精度(分辨率)。30W相机分辨率640*480 正常这样算:用最长的边除去监控面积最长的边 即可,所以精度基本上是1mm,这个是理论值,如果你做测量或者表面划伤检测,肯定不准确,一个像素有可能无法凸显特征。

‘捌’ 简述机器视觉识别定位的原理与工作过程,采用算法包开发时调用哪些功能函数

只要定位到了问题,解决就不难。 我们看到由于阿里... 遗传算法需要注意的问题: 遗传算法在适应度函数选择...私有属性和方法

‘玖’ 机器视觉检测主要是什么原理

机器视觉的缺陷检测原理是基于对人眼检测的模拟,用简单的归纳思维来进行识别。正如生活中医生对病人进行诊断,就是一个典型的归纳分类的行为。从最古老的望闻问切,到现在的B超,CT等现代化设备仪器,没有哪一个医生能够单纯靠肉眼就能直接判断病情,只能观察病人表现出的症状和各种化验检测数据来推断病情,这个时候,医生所使用的就是一种归纳分类的思路,病人的单一症状的分类与复合症状的精确分类。
机器视觉缺陷检测系统采用C摄像设备将被检测的目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号,图像处理系统对这些信号进行各种运算来抽取目标的分类特征,如面积、数量、位置、长度,再根据预设的允许度和其他条件输出结果,包括尺寸、角度、个数、合格 / 不合格、有 / 无等,实现自动识别功能。
由于有了图像处理还有计算机等等自动化设备的帮忙,机器视觉其实是远远超过人类的极限的,所以它的优势也十分明显,包括高效率、高精度、高自动化,以及能够很好适应比较差的环境。所以在一些不适合人工作业的危险的工作环境,或者是我们人类视觉很难满足要求的场合,机器视觉是可以用来代替人工视觉的。在这种检测、测量、识别和定位等功能上,机器视觉更是能够更好地胜任。除了以上这些,它还能够提高生产效率以及自动化的程度,实现信息集成,所以在工业领域应用很广泛,是智能制造很重要的基础。

阅读全文

与机器视觉的定位算法相关的资料

热点内容
抖音python面试算法题 浏览:86
java单击事件 浏览:641
绝对尺寸编程法 浏览:265
服务器共享文件夹中病毒 浏览:35
哪个app会员看综艺最全 浏览:761
程序员朋友圈招聘 浏览:339
细细的小木棍怎么做解压玩具 浏览:36
不要惹程序员的视频 浏览:995
码高编程如何加盟 浏览:756
程序员好处有哪些 浏览:954
c语言编译后的程序 浏览:12
公交卡单片机 浏览:745
减压缩软件下载 浏览:300
51单片机复位电路有哪两种 浏览:924
et2008加密狗教程 浏览:965
安卓手机用什么录制高清视频 浏览:749
cadim命令如何应用 浏览:951
免费ntp时钟服务器地址 浏览:686
域名如何与云服务器绑定 浏览:808
linuxjava环境搭建教程 浏览:128