XIAMENUNIVERSITY机器人视觉伺服定位控制与目标抓取2017.5内容机器人抓取及其研究现状机器人抓取位姿判别基于视觉伺服的机器人定位控制机器人视觉反馈控制在工业上的应用总结机器人抓取面临着挑战随着机器人技术的发展,机器人越来越多的融入到人的生活和工作环境中,代替人类完成各种作业,这必然要求机器人承担对比工业生产更加复杂的操作务,比如机器人端茶倒水,递送物品,自动拣握工具等等。智机器人代表了机器人发展的尖端技术,在日常生活、医疗、航天等领域具有广泛的用。一方面,我们希望机器人具备一定自主性学习和自协调能力,且能够通过学习掌握在新环境下操作的技能。另一面,机器人对物体抓取操作是其自主作业当中经常面临的一个问题,目前传统工业机器人定式的操作方式,限制了机器人抓取的自主性。机器人抓取操作一机器人抓取VS人的抓取对人而言,手不仅能够根据不同形状和不同尺寸的物体采取不同的抓取姿态(如图所示),而且人手抓取过程中,手的位置和方向能根据环境不断地自主调整。这反映出人抓取过程的自主性与协调性。然而,对于机器人,则是不同,因为目前绝大多数机器人的操作行为是在定式(标定)工作环境中进行的。改变传统定式的工作方式,攻克机器人灵巧自主抓取问题是当今机器人研究领域的一个难点和热点。人抓取的特性:灵活自主一般来说,抓取需要解决的两个基本问题:抓哪里,Where?怎么去抓,How?一机器人抓取VS人的抓取解析抓取法解析法使用动力学评价准则(如:force-closure)来估算抓取的稳定性,然后寻求合适抓取方案,使得这个评价准则达到最优。该方法属于传统的抓取方法,在2000年前占主导地位。抓取生成最优抓取判定抓取准则机器人系统评价系统任务约束手模型目标模型动力学接触点抓取矢量执行结果力闭合预选抓取点该方法的前提要求:1)精确的机械手动力学模型、目标物理模型;2)机械手相对与目标物的位势信息。二机器人抓取研究现状首先通过观察学习人的抓取,根据任务约束、然后学习系统产生一种最佳的抓取模式,该方法的核心思想是基于模仿与学习理论。抓取模式数据库抓取生成与判定机器人系统评价系统场景/约束条件目标分割抓取学习/人工示范执行结果抓取矢量特征特征经验学习抓取法该方法的前提要求:1)完整的目标几何模型(2/3D)信息;2)机器人视觉系统严格标定,已知机械臂动力学模型。二机器人抓取研究现状实例13D几何匹配抓取实例23D位势估计抓取抓取类型一:3D目标抓取1、一种基于局部随机采样一致性鲁棒几何描述的3D匹配与位势估计抓取方法,该方法在噪声、遮挡环境测试中取得良好抓取效果。2、综合双目和单目视觉信息、以及物体表面与几何模型实现深度提取、目标区域分割,以及位势估计,该抓取系统在遮挡、光照变化的室内环境中实现了机器人抓取操作缺点:依赖于物体的3D信息,3D计算复杂。二机器人抓取研究现状机器人单抓取点学习抓取类型二:2D位置学习抓取直接从2D图像平面学习获取抓取位置,该方法首先采用人工标记抓取点的合成图像,提取分类图像特征向量,应用机器学习方法来训练抓点。该方法实施步骤:给定视觉场景学习模型得出抓取点计算抓取参数机器人动力学运动规划。机器人多抓取点学习二机器人抓取研究现状机器人模仿抓取人机交互抓取抓取类型三:高级人工智能学习抓取模仿抓取:通过观察人抓取目标的姿态,识别出人的抓取方式,进而映射到机器人抓取系统中。交互抓取:把人的操作嵌入到机器人的控制循环中,对机器人进行交互训练,使得机器人自动产生抓取动作,最终把人的抓取技能传授给机器人。二机器人抓取研究现状综上抓取方法可知:1)解析建模抓取法需要对目标进行2D/3D建模,在复杂环境下建模精度难以保证。2)经验学习抓取法通过学习或模仿人的抓取,在一定程度上克服了解析抓取法建模的固有缺陷。但是,现有学习算法在稀疏样本学习中,算法的学习能力有限,机器人缺乏对新物体抓取的能力。3)基于解析法和经验法的机器人抓取过程中,手臂的协调与定位都是需要预先标定,而后求取机器人的逆动力学进行控制的。标定除了带来复杂的计算外,同时也限制了机器人应用的拓广。二机器人抓取研究现状三基于多模特征深度学习的机器人抓取判别深度学习2006年多伦多大学Hinton等人在Science杂志上提出,该学习算法避免了特征抽取过程中了人为的干预,同时深度学习解决了传统多层神经网络学习过程局部收敛和过适性问题,深受业内的广泛关注,如括谷歌、百度在内的众多机构成立专门的部门致力于该学习算法的研究。目前深度学习已经成功用于图像检索,语音识别,自然语言处理等领域,而该算法在机器人视觉领域的应用还处在刚刚起步阶段。深度学习网络深度学习简介(插入)人脑视觉机理神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。深度学习简介(插入)关于特征【通过传感器(例如CMOS)获得数据,然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。】深度学习简介(插入)特征表示的粒度学习算法在一个什么粒度上的特征表示,才有能发挥作用?素级特征结构性深度学习简介(插入)初级(浅层)特征表示像素级的特征表示方法没有作用,那怎样的表示才有用呢?复杂图形,往往由一些基本结构组成,比如正交的edges。深度学习简介(插入)结构性特征表示小块的图形可以由基本edge构成,更结构化,更复杂,具有概念性的图形如何表示呢?更高层次的特征表示深度学习简介(插入)需要有多少个特征我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢?深度学习简介(插入)DeepLearning的基本思想假设有一个系统S,它有n层(S1,…Sn),输入是I,输出是O,形象地表示为:I=S1=S2=…..=Sn=O如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失。DeepLearning:需要自动地学习特征,假设有一堆输入I(如一堆图像或文本),假设设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…,Sn。对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。深度学习简介(插入)Deeplearning训练过程非监督数据上建立多层神经网络的一个有效方法:1)首先逐层构建单层神经元,这样每次都是训练一个单层网络。2)当所有层训练完后,使用wake-sleep算法进行调优。【使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致】Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分:1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。【“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”】2)sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。【“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”】深度学习简介(插入)Deeplearning训练过程deeplearning训练过程具体如下:1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是featurelearning过程);在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数。2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果。深度学习简介(插入)DeepLearning的常用模型或者方法AutoEncoder自动编码器【自动编码器就是一种尽可能复现输入信号的神经网络】1)给定无标签数据,用非监督学习学习特征:因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。深度学习简介(插入)DeepLearning的常用模型或者方法2)通过编码器产生特征,然后训练下一层。这样逐层训练:将第一层输出的code当成第二层的输入信号,同样最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。其他层就同样的方法炮制就行。AutoEncoder自动编码器【自动编码器就是一种尽可能复现输入信号的神经网络】深度学习简介(插入)DeepLearning的常用模型或者方法3)有监督微调:到这里,这个AutoEncoder还不能用来分类数据,可以在AutoEncoder的最顶的编码层添加一个分类器,然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。也就是说,这时候,我们需要将最后层的特征code输入到最后的分类器,通过有标签样本,通过监督学习进行微调,这也分两种,一个是只调整分类器(黑色部分);另一种:通过有标签样本,微调整个系统。AutoEncoder自动编码器【自动编码器就是一种尽可能复现输入信号的神经网络】深度学习简介(插入)DeepLearning的常用模型或者方法SparseAutoEncoder稀疏自动编码器:DenoisingAutoEncoders降噪自动编码器:深度学习简介(插入)DeepLearning的常用模型或者方法将一个信号表示为一组基的线性组合,而且要求只需要较少的几个基就可以将信号表示出来。稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。目标函数:Min|I–O|+u*(|a1|+|a2|+…+|an|)O=a1*Φ1+a2*Φ2+….+an*Φn,Φi是基,ai是系数,I表示输入,O表示输出。SparseCoding稀疏编码深度学习简介(插入)DeepLearning的常用模型或者方法比如在图像的FeatureExtraction的最底层要做EdgeDetector的生成,那么这里的工作就是从NaturalImages中randomly选取一些小patch,通过这些patch生成能够描述他们的“基”,也就是右边的8*8=64个basis组成的basis,然后给定一个testpatch,我们可以按照上面的式子通过basis的线性组合得到,而sparsematrix就是a,下图中的a中有64个维度,其中非零项只有3个,故称“sparse”。SparseCoding稀疏编码深度学习简介(插入)DeepLearning的常用模型或者方法Sparsecoding分为两个部分:1)Training阶段:给定一系列的样本图片[x1,x2,…],我们需要学习得到一组基[Φ1,Φ2,…],也就是字典。训练过程就是一个重复迭代的过程,交替更改a和Φ使得下面这个目标函数最小。SparseCoding稀疏编码深度学习简介(插入)DeepLearning的常用模型或者方法2)Coding阶段:给定一个新的图片x,由上面得到的字典,通过解一个LASSO问题得到稀疏向量a。这个稀疏向量就是这个输入向量x的一个稀疏表达了。SparseCoding稀疏编码深度学习简