|
文献综述(或调研报告) 近年来,随着计算机技术的发展,计算机视觉作为人工智能的一个重要研究领域,已经广泛应用于各行各业,其中基于视觉的机器人自主抓取也逐渐成为当前的一个研究热点。机器人对目标物体进行分类并抓取这一工作有实际应用价值,比如分拣任务。传统的分拣工作采用人工分拣方式,劳动强度大且工作重复枯燥。使用机器人代替人工,不仅可以将工人从繁复的劳动中解放出来,而且可以提高工作效率,降低劳动成本。分拣机器人应用的较为成功的要数垃圾分拣机器人,它可对不同种类、不同尺寸的垃圾分类,从众多垃圾中辨别出可回收部分将其归类,从而提高有效材料的回收率和利用率。
在深度学习算法广泛应用之前,工业界通常采用“人工设计特征 分类器”的思路对目标进行检测并分类,在这个过程中一般采用滑动窗口在图像上不断的滑动、缩放当前区域,然后再用分类器输出预测当前窗口的区域内是否存在目标,根据得分排序选择当前目标的最可能的类别。 最先将卷积神经网络和目标识别结合起来的应该是Ross B.Girshick,他在2014年提出了R-CNN算法,利用selective search 算法获得目标区域,通过神经网络提取特征,最终根据特征使用SVM(Support Vector Machine)进行分类,使目标检测效果取得了很大提升;之后,针对 R-CNN 单张图片检测速度过慢的问题, Kaiming He 又提出了SPP(Spatial Pyramid Pooling)网络,利用空间金字塔采样方法对卷积层特征进行提取,大大加快了目标检测的速度;2015年 Ross B.Girshick 在融合了R-CNN以及SPP-Net的设计思想之后提出了具有精简结构且拥有端到端训练能力的 Fast R-CNN以及Faster R-CNN,再次提高了目标检测的精确度以及节省了时间,但网络的计算仍然需要大量参数,处理过程还没有达到实时性的标准。
目标检测的主要任务是检测图像中包含的期望目标物,并且能够输出该目标物在图像中的边界框和标签。识别的场景通常是许多个目标堆放在一起,有时物体之间还会有阻挡和干扰,要求能够检测多个物体并将其区分开。
图2 深度学习目标检测模型 目标检测同时将识别和定位应用在图像检测任务上,更加关注图像的局部信息,其基本流程主要集中在三个步骤上(如图2所示):目标区域提取、特征表示和区域分类。首先利用算法对图像处理,提取出可能存在目标的定位框,即所谓候选区域。然后利用手动或自动的方式提取图像特征获得对应的特征向量。进而再采用各种分类器判断区域中是否存在目标及目标所属的具体类别。最后就是位置回归的方法得到和目标位置最匹配的定位框。
Ross B.Girshick 在近几年陆续提出并开源的R-CNN系列深度神经网络检测算法己经成为两段式深度学习目标检测算法的开山之作,它们分别为RCNN、Fast R-CNN、Faster R-CNN及最新的Mask R-CNN,这些模型循序渐进且不断优化提升的检测思想既具有理论价值又有工程实践意义。 R-CNN的处理流程是先用选择性搜索方法提取出可能包含目标的区域,再输入到CNN中提取特征,输出特征向量后使用SVM分类器进行识别,最后再做定位框的回归。而在Fast R-CNN中,目标定位框的回归和框分类2个任务合并成了一个多任务模型。Faster R-CNN其实是相当于由2个Fast R-CNN模型组成,一个用来输出定位框和类别信息,另一个被称作RPN(Region Proposal network),专门用CNN来辅助整个算法生成正负样本信息(区域框及框内是否有目标存在)。其结构如图3所示。通过2段式的训练-检测流程,将RPN网络的CNN特征提取部分和Faster R-CNN融合ROI (Region of Internet)到网络输出的部分结合,从而构成了一个基于卷积神经网络的端到端的目标检测模型。 |
|
图3 Faster R-CNN结构示意图 RPN网络:通过RPN网络可以自动生成区域正负样本信息用来训练,从而将定位框的训练样本生产和检测过程整合到了一个框架中。图4所示为RPN网络结构图。
图 4 RPN网络结构示意图 RPN模型主要是由两层神经元组成,第一层为卷积层,将 的卷积核视为滑动窗口在卷积特征图F上进行卷积运算并获得一个256维的特征向量。接着特征向量被分别送入2个全连接层中,即reg层和cls层,reg层用来预测候选区域的位置,cls层用来判断当前候选区域的位置,cls层用来判断当前候选区域是否为目标。图4中滑动窗口中的中心点对应到原图的相应位置后,可将此位置视为一个锚并在其上框出k个不同尺度、不同比例的锚框。滑动窗口在特征图F上滑动一遍后可生成一系列锚框,经过cls层和reg层的处理,即可得到每个锚框的目标的分和回归边界。
机器人视觉系统的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的位置、形状等几何信息,并由此重建和识别物体。空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程被称为摄像机标定。 由于摄像机可安放在环境中的任意位置,在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,该坐标系称为世界坐标系。它由、和轴组成。摄像机坐标系与世界坐标系之间的关系可以用旋转矩阵R与平移向量T来描述。空间中某一点P在世界坐标系与摄像机坐标系下的齐次坐标如果分别是 与 于是存在如下关系: 其中,为3times;3正交单位矩阵;为三维平移向量;;为4times;4矩阵。从世界坐标系到图像坐标系的完整变换可以按图5所示步骤进行 图5 坐标变换关系图
Socket(套接字)是TCP/IP协议的编程接口,即利用Socket提供的一组API就可以编程实现TCP/IP协议,面向连接的TCP通讯过程如下:
服务器端: (1)服务器首先启动,通过socket()建立一个套接字。 (2)调用bind()将该套接字和本地网络地址联系在一起。 (3)调用listen()监听连接请求。 (4)调用accept()来接受连接,无连接请求时,服务进程被阻塞。这时服务器处于无限循环状态。 (5)客户连接请求到来,服务进程被唤醒,生成一个新的字节流套接字,并返回一个与其关联的文件描述符,服务器创建新线程,用新套接字同客户进程的套接字建立连接,调用read()以及write()函数与客户双向通信。而先前的套接字继续用于监听网络上的服务请求。 图5 面向连接的TCP通信过程 (6)服务进程调用close()关闭监听套接字,中断连接,终止服务。 客户端: (1)调用socket()创建一个字节流套接字。 (2)调用connect()向服务器进程发起连接请求。 (3)调用read(),write()函数与服务器新线程进行双向通信。 (4)完成通信后,客户进程调用close()关闭套接字,中断连接。 参考文献:
[14] Chien-Ming Lin, Chi-Yi Tsai , Yu-Cheng Lai, Shin-An Li, and Ching-Chang Wong. Visual Object Recognition and Pose Estimation Based on a Deep Semantic Segmentation Network. IEEE SENSORS JOURNAL, VOL. 18, NO. 22, NOVEMBER 15, 2018. |
资料编号:[178988]
