版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页/共29页移动机器人运动目标检测与跟踪系统设计摘要随着时代与社会的发展,人工智能在社会的许多领域都得到了应用。本文研究机器人目标跟踪系统是基于机器人的学习能力,机器人使用头部摄像头实时检测视野中的目标,识别出目标角度信息并建立坐标,机器人利用角度信息计算并控制传动系统运动以实现目标追踪。在移动机器人视觉系统的研究中,目标检测、目标定位和目标跟踪是目前研究的热门问题,从机械“手眼”系统到移动机器人,目标检测、定位和跟踪都是研究目标识别和轨迹规划等机器智能问题所不可缺少的基础研究,目标检测、定位和跟踪能力的好坏直接影响着移动机器人智能的高低。随着机器视觉各项相关技术的不断发展以及智能机器的日益增多,运动目标检测与跟踪技术的应用范围也将更加广泛。关键词:移动机器人;目标跟踪;机器视觉;应用 目录 第一章绪论 11.1 研究背景 11.2 国内外研究现状 11.3 研究内容 21.4 研究方法 21.5 本章小结 2第二章Tyran机器人介绍 32.1 Tyran移动机器人系统结构 32.1.1 机器人系统概述 32.1.2 机器人系统架构概述 42.1.3 机器人参数 42.1.4 机器人架构说明 52.2 Tyran移动机器人深度摄像头介绍 62.3 深度摄像头D435 72.4 Tyran移动机器人开发平台EwayOS系统介绍 82.5 本章小结 8第三章Tyran移动机器人深度学习研究 93.1 Tyran移动机器人物体识别实验 93.1.1 实验概述 93.1.2 实验步骤 93.1.3 实验分析 123.2 人脸特征提取实验 123.2.1 实验概述 123.2.2 实验步骤 123.2.3 实验分析 153.3 人物身份确认实验 153.3.1 实验概述 153.2.1 实验步骤 163.3.1 实验分析 203.4 人脸角度识别与机器人人脸跟随实验 203.4.1 实验概述 203.4.2 实验步骤 213.4.3 实验分析 24第一章绪论由于视觉在人类感知中的地位非常重要,视频图像技术一直都是科学研究的热点所在。机器视觉可以代替人类的视觉从事目标检验、目标跟踪、机器人导航等方面的工作,在一些需要重复、迅速的从图像中获取精确信息的场合下,机器视觉与人类视觉相比较,具有更加敏锐的观察力和持续工作的能力[1]。研究背景我国的机器人研究开始于70年代末,与世界上其他发达国家相比起步比较晚,技术比较落后。即使在目前软硬件技术快速发展的条件下,机器视觉功能还处于初级水平[2],但其潜在的巨大应用价值已经在世界各国引起了高度重视,比如美国、德国、法国、日本等国家都投入了大量的人力物力开展研究,近年来在机器视觉的某些方面已经获得了突破性的进展,机器视觉在车辆安全技术和自动化技术等方面的应用中显示出其重要作用[3]。在移动机器人视觉系统的研究中,目标检测、目标定位和目标跟踪系统研究是目前的热门问题,从“手眼”机器人到移动机器人,目标检测、定位和跟踪都是研究目标识别和轨迹规划等机器智能问题所不可缺少的基础研究[4],目标检测、定位和跟踪的好坏直接影响着移动机器人智能的高低。随着机器视觉各项相关技术的不断发展以及智能机器的日益增多,运动目标检测与跟踪技术的应用范围也将更为广泛[5]。国内外研究现状国内在这方面的研究工作起步较晚,与国外相比还有不小的差距。1999年以后,国内一些大学如清华大学、北京理工大学、福州大学等都开展了固定摄像机对其视野范围内的运动目标的跟踪技术研究[6]。2001年,清华大学研发了适用于野外自然环境的视觉侦察系统,摄像机安装在只具有一个水平旋转自由度的车载云台上,云台方位数据及视频信号以无线通讯的方式传送给基地端的计算机。系统跟踪了一辆汽车,在像素384×288图像分辨率下达到12.5帧/s的处理速度[7]。2005年,中国科学院自动化研究所研发了一种基于图像的视觉伺服机器人系统。该系统具有5个自由度,包括一个3自由度的机器人和一个2自由度的手腕,手腕位于机器人末端,而摄像机安装在手腕的末端。该跟踪系统可以实时跟踪运动速度不大于0.3m/s的目标[8]。运动目标视觉跟踪系统作为视频实时监控系统的一个研究方向,目前研究的主要问题包括如下两个方面:平滑稳定的控制精度和动态实时的响应速度[9]。
1991年,在美国国防先进研究署(DARPA)的资助下,卡内基梅隆大学机器人研究所开始了机载视觉信息在无人机稳定和控制方面应用的研究。1996年,他们研制出的专门摄像机稳定系统可以进行视觉定位和多静止目标跟踪。该系统通过摄像机获取图像,用三块DSP芯片来计算目标物体的位置和运行速度,图像处理的结果和与之同步的无人机姿态数据再一并传输到第四块DSP芯片,最终将运算结果送到一个实时控制器去控制无人机的飞行方向和速度,从而完成了对移动机器人运动目标检测与跟踪系统研究目标物体的检测和跟踪[9]。
1996年,在瑞典国家工业技术发展委员会的支持下,Nordlund和Uhlin研究了安装在机器人头部的可移动摄像机对移动目标物的检测和跟踪[10]。
1997年,美国国防先进研究署(DARPA)实施了视频监视和监控技术(VSAM)计划。旨在发展用于城市和战场监视的自动视频理解技术[11]。内容包括通过静止和移动摄像机平台对运动目标进行实时检测和跟踪,在考虑地理空间位置的模型中对目标方位进行估计,主动摄像机控制和多摄像机协调跟踪等。研究内容本文主要研究的是基于Tyran移动机器人的目标跟踪系统研究,由北京一维弦科技有限公司所自主研发的机器人控制平台EwayOS系统,通过机器人的深度学习能力使其能够通过深度摄像头识别目标并感知周围环境信息反馈系统,由系统计算出达到目标处的最优路径,从而驱动电机以实现目标追踪[12]。初始将目标设定为一个二维码,后续可以有更深入的物体识别以及人脸识别,通过程序来实现路径追踪。研究方法(1)EwayOS软件学习,从模拟系统软件的安装,操作,与移动机器人的连接,程序的编写修改,导入等一系列操作熟悉至完全掌握EwayOS系统。(2)Tyran移动机器人学习,了解其各个部件结构,各个传感器的位置功能,移动机器人动作需要用到的部件及动作流程,熟练掌握机器人各种运动所需要的命令。(3)深入探索移动机器人的深度学习能力,将各种类型的目标信息录入并有效的提取目标的特征信息,完成目标信息的搭建与训练,并最终完成目标识别与追踪。本章小结本章介绍了目前国内外对于视觉机器人在一些方面的应用与发展,本文主要研究内容为实现机器人的目标跟踪,及叙述了实现机器人目标跟踪需要做的工作流程。第二章Tyran机器人介绍Tyran机器人是一款基于EwayOS操作系统控制的移动平台机器人,其拥有能够感知周围环境的深度摄像头、超声波、激光雷达传感器,可实现智能跟踪、人机交互等功能。Tyran移动机器人系统结构机器人系统概述Tyran是一款移动地面运动系统开发平台。使用者通过机器人算法可实现对移动平台的自主移动、智能避障、环境识别、智能跟踪、SLAM导航、人机交互等功能。图2-1机器人结构组成图2-2机器人结构组成机器人系统架构概述Tyran移动机器人平台采用系统式控制方式控制,由机载PC完成机器人的数据采集和算法处理,交由控制实现运动控制,标准配置的Tyran控制架构如下:图2-3机器人架构图机器人参数表2-1机器人参数内容规格/指标基本底盘尺寸590(D)×480(W)mm标准高度610mm自身重量21kg(仅Tyran)机身材料铝合金(阳极氧化黑色)电源模组锂电池组:DC25.2V,20Ah充电方式充电器外置通讯接口Ethernet、WIFI运动移动方式两轮差速驱动,2个从动轮驱动轮6.5寸轮毂电机,内置增量编码器越障能力10mm爬坡角度10°避障方式深度摄像头+超声波传感器+激光雷达(仅TyranPlus)移动速度标准:0.5m/s导航方式视觉+激光SLAM导航(仅Tyran)姿态感知标配六轴IMU视觉传感器RGB-D摄像机视域最远10米,水平180°及垂直90°视角可控调整。算法人脸识别、物体识别、maker识别控制器机器人控制器X86架构,inteli5CPU,NVIDAGTX960M运动控制器STM32嵌入式系统操作系统EwayOS国内自主知识产权智能机器人专用操作系统机器人架构说明Tyran采用模块化的结构,在需要的时候方便更换和添加其他模块。标准配置的机器人主要尺寸如下:图2-4机器人结构尺寸三视图Tyran移动机器人深度摄像头介绍图2-5机器人传感器模块组成相机:intelrealsense,提供RGB和深度两种数据;激光雷达:18m激光雷达;姿态传感器:IMU,提供偏转角、线加速度、角加速度等数据;超声波:前4后2,从左到右起始。深度摄像头D435英特尔实感深度摄像头D435是一款立体追踪解决方案,可为各种应用提供高质量深度。它的宽视场非常适合机器人或增强现实和虚拟现实等应用,在这些应用中,尽可能扩大场景视角至关重要。这款外形小巧的摄像头拍摄范围高达10米,可轻松集成到任何解决方案中,而且配置齐全,采用英特尔实感SDK2.0,并提供跨平台支持。D435延续了开发尖端视觉感知产品的承诺。它将英特尔模块和视觉处理器组合到一个小巧外形中,是开发和产品快速创建的理想解决方案。D435与高度可定制的软件相结合,提供了一个成本低、重量轻且功能强大的解决方案,支持能够理解周围环境并与之交互的新一代感知解决方案的开发。图2-6摄像头D435非常适合弱光和宽视场。它结合了宽视场和全局快门传感器,是机器人导航和物体识别等应用领域的首选解决方案。全局快门传感器提供极低的光敏感度,使机器人能够在关灯的情况下在空间中导航。它有简单集成的完整套件。深度摄像头D435属于英特尔实感D400系列摄像头,该产品系列采用了英特尔最新的深度感知硬件和软件,并将其封装到易于集成的产品中。英特尔实感D400系列摄像头非常适合希望将深度感知引入设备的开发人员、制造商和创新人士,它提供了简单的现成集成,并支持全新一代智能视觉安装设备。图2-7深度摄像头结构组成本防撞系统功能特点:1.车前防擦角,车后防碰撞;
2.六方位探测,双数字显示;
3.微电脑智能控制,精确数字显示障碍物距离;
4.不受环境影响;
5.抗电磁干扰,对原装电子系统无影响;
6.探头采用嵌入式安装,多颜色配置
感应器精致小巧,安装方便。机器人超声波雷达技术参数:
检测距离:
身后:0.3—2.0m
身前:0.3—1.2m
工作
电压:
dc12v(+-2v)
工作
电流:
20ma-200ma
功率:2w
探测声波频率:
40khz
探测角度:h>80度
v>70度
工作
温度:
-40-80℃
警示音量:>70DBTyran移动机器人开发平台EwayOS系统介绍EwayOS系统特点:1.运行高效,模块划分合理;
2.开发高效,大量前沿框架引入;
3.商业公司运维,完备的文档及专业售后技术支持;Ewayos系统和ros系统的区别:1.面向对象不同:Ros面向研究学者,面向开发者;EwayOS更面向教学、面向高校师生;2.易用性不同:Ros需要开发者去安装搭建Ros环境,花费大量时间;EwayOS只需安装run包,就能部署到不同的机器上;3.稳定性不足:Ros容易触发崩溃;EwayOS能长期稳定运行。本章小结本章分别从硬件和软件方面详细的介绍了Tyran机器人的结构组成和控制系统。机器人的核心硬件为它的传感器:超声波;激光雷达;姿态传感器和深度摄像头。其控制系统EwayOS系统相较于Ros系统操作更为简便,运行高效,稳定性强,更适用于教学、面向高校师生。第三章Tyran移动机器人深度学习研究机器人的深度学习能力是基于对目标模型的建立,特征的识别。需要从多个角度对目标的信息进行提取并建模,这样才能够在任意角度实现深度摄像头对目标的追踪。Tyran移动机器人物体识别实验实验概述本实验是利用Tyran实机进行实验,实验目的是本实验需要了解ALexNet等典型网络结构,掌握使用Caffe建立网络结构,并使用给定训练模型,对所给的猫的图像进行预测,预测得到猫的品种。本实验使用AlexNet网络结构训练得到的caffemodel,对待预测猫的图像进行种类预测,并得到预测标签,输出前五个置信度高的标签以及置信度。物体识别的基本流程与数字识别基本相同,只是训练集为猫的数据集,所以训练的caffemodel也是不一样的,其他的可以参考数字识别。实验步骤(1)建立文件本次实验工程名为Alex_ObjRecognition,包含头文件alex.h和定义文件alex.cpp和main.cpp,本实验着着重学习AlexNet网络结构在caffe深度学习工具的搭建过程,这个搭建文件在totxt中实现。(2)totxt编写AlexNet网络结构如下:表3-1AlexNet网络结构输入图像大小(大小227×227×3)卷积层1227×227×3卷积核大小11×11,数量48个,步长4卷积核大小11×11,数量48个,步长4激活函数(relu)激活函数(relu)池化(kernelsize=3,stride=2)池化(kernelsize=3,stride=2)标准化卷积层227×27×96卷积核大小5×5,数量128个,步长1卷积核大小5×5,数量128个,步长1激活函数(relu)激活函数(relu)池化(kernelsize=3,stride=2)池化(kernelsize=3,stride=2)标准化0卷积层313×13×256卷积核大小3×3,数量192个,步长1卷积核大小3×3,数量192个,步长1激活函数(relu)激活函数(relu)卷积层413×13×384卷积核大小3×3,数量192个,步长1卷积核大小3×3,数量192个,步长1激活函数(relu)激活函数(relu)卷积层513×13×384卷积核大小3×3,数量128个,步长1卷积核大小3×3,数量128个,步长1激活函数(relu)激活函数(relu)池化(kernelsize=3,stride=2)池化(kernelsize=3,stride=2)卷积层66×6×2562048个神经元2048个神经元dropoutdropout全连接74096×12048个神经元2048个神经元dropoutdropout全连接74096×11000个神经元第一层:输入层首先在第一层之前,规定网络的名称为AlexNet,此名称是自定义的,也可以改成别的名词。根据第一层的特点与属性,代码如下:参数dim:10为批处理图像个数,即一次处理多少张图像,这里设置为一次处理10张图像。3dim:227dim:227这三个参数含义为图像的属性,即图像为3通道的RGB图像,尺寸为227*227。第二层:卷积层现在将第二层的名字设置为“conv1”代表第一层卷积层,层的类型为zhiConvolution”即卷积层,此层的输入为输入层“data”,输出层为本层“conv1”,定义权重学习率为1,学习率衰减为1,偏执学习率为2,学习率衰减为0,然后是对卷积层参数的设置,首先是卷积核个数为96个,卷积核尺寸为11*11,步长为4个像素。第三层:激活函数层本层对卷积层“conv1”进行激活函数操作,使用的激活函数为ReLU,代码如下:经过激活函数运算后,进行LRN层的设置。第四层:LRN层本层其他参数设置方式与别的层差不多,需要注意的是lrn_param的设置,其中local_siz默认为5,如果是跨通道LRN,则表示求和的通道数;如果是在通道内LRN,则表示求和的正方形区域长度。代码如下:第五层:池化层在AlexNet网络出现之前,一般使用的池化方法为平均池化,在AlexNet中第一次使用了最大池化的方法,此方法对网络的性能进一步提升,所谓“最大池化”,顾名思义,在池化操作中,选择最大的。规定对2×2的区域内进行池化操作,下图中的彩色部分为所在2×2的区域中的最大值,最大池化结果如下:图3-1最大池化示意图到此就完成了使用caffe中的.prototxt完成网络的建立。实验分析机器人对于目标的识别是基于对于同一类的多个目标建立了一个相似的模型,对目标的特征一步一步的提取出来,对于目标的识别也是需要对各个特征进行一一对应的,才能够做到目标识别的准确性。图像识别系统包括预处理、分析和识别三部分组成,预处理包括图像分割、图像增强、图像还原、图像重建和图像细化等诸多内容,图像分析主要指从预处理得到的图像中提取特征,最后分类器根据提取的特征对图像进行匹配分类并识别。人脸特征提取实验实验概述在利用图像进行人脸特征提取时,人脸图像数据属于高维信息,其中多数数据是对人脸识别没有帮助的,这就要求在人脸识别中提取有效的数据信息,将无用信息剔除,因此在人脸识别过程中数据的处理是关键的,不可缺少的步骤,这个数据处理就是“降维”,就是将高维的人脸数据投影到低维空间中。效果良好的特征提取算法应达到两个目的:(1)应尽可能地用较少的特征值个数来表示原始数据信息,以降低计算的复杂度,便于最后的特征分类;(2)应尽量避免因特征提取而遗漏掉原始数据的信息,全面反映出数据的特征属性。实验步骤本实验可以使用给定的数据集完成特征提取与显示任务,数据集存放在data文件夹中,在工程中我们已经编写好了图像读取与可视化部分,这里我们只需重点学习PCA、Fisher与LBP特征提取的方法实现与结果输出形式,在工程FaceRecognition_Features中,main()函数部分实现了三种特征的提取。(1)PCA特征提取本实验PCA特征是使用OpenCV提供的接口完成的,在此过程中,我们输出“平均脸”与“特征脸”图像,以及最后降维得到的人脸数据。在main函数中,PCA代码部分主要对期望的PCA主元数量进行设定,用nNumComponents储存了主元的数量,本实验设置为5,并声明了Mat类型的iOutPcaMean用于存放PCA的平均脸数据,由于一个特征向量对应一个特征脸,主元数量为5,则有5个特征脸,这里定义容器veciOutFisherFea储存特征脸数据,完成相关的准备工作后,调用函数PCAFeature()完成特征提取,提取完成后可视化显示“平均脸”和一张“特征脸”,代码如下:(2)Fisher特征提取Fisher特征提取的原理在实验原理部分已经详细讲述过,Fisher的特征提取流程与PCA类似,其中的线性鉴别分析就是通过一个平面将特征空间分成两部分,对于本实验只有两个分类,最终得到一个特征向量即可,下面讲解如何实现Fisher的特征提取,在main()函数中,大体的流程与上面的PCA相似,不同之处就在LDA的主元数量设置上,具体会在代码实现中讲解。main()函数Fisher代码如下:(3)LBP特征提取LBP特征是通过领域像素与中心像素在数值上的关系,来计算中心像素的LBP值,本实验我们使用圆形领域形式计算LBP值,每个像素点的LBP值为一个八位的二进制数,通过遍历整个图像上的像素点,得到每个像素点的LBP值,这个矩阵便是实验中所说的LBP特征图像可视化。有了LBP特征图像,我们用统计直方图的方法便可得到LBP的特征向量,具体计算的过程,我们在接下来的代码讲解中会详细介绍。LBP人脸特征提取代码,在main函数中,首先按照我们要求的特征提取方式,规定采样圆的半径radius为1与采样点数neighbors为8,定义Mat类型的iLBPImg用于存放LBP统图12LBP特征像素点分布图LBP特征图像计直方图,定义容器veciOutLBPFea存放LBP特征图像,然后就是最核心的函数的调用——LBP特征提取LBPFeature(),此函数得到人脸LBP特征图像与直方图特征向量,main函数代码如下:到此就完成了人脸图像的特征提取,中间结果是“平均脸”与“特征脸”,并将每个人脸图像,用一个5维向量表示。实验分析人脸的特征识别是从12个角度降维在人脸数据中得到68个特征点坐标信息之后使用随机森林算法完成人脸模型的训练。完成特征提取后可视化展示为“平均脸”和一张“特征脸”,每个人脸图像用一个5维向量表示。人物身份确认实验实验概述基于人脸特征提取得到的特征数据,使用SVM分类算法与欧式距离法,分别实现主人身份确认与多人物身份确认两个实验任务:(1)基于SVM分类算法的主人身份确认,要求显示设定的主人姓名标签,其他人均识别为“Vistor”;(2)基于欧氏距离的多人物身份确认,要求可以实现多个人物身份,并标注其姓名。实验步骤(1)人物身份确认实验此实验要求只识别指定的“主人”身份,主人命名为“***”,其他的人均为访客“Vistor”,因此需要采集“主人”的人脸图像集,实验提供的程序包中,编译运行文件夹“data_collection”中的程序,便可通过摄像头完成图像数据集的采集。实验本质上是一个二分类问题,我们设定“主人”为正类,记为1,其他非“主人”为负类,记为-1,我们将这些数据集利用SVM进行训练,就可以得到识别是否为“主人”的分类器,在得到训练好的分类模型xml文件后,便可完成规定的实验任务,具体流程如下图:开始人脸训练集数据制作特征提取识别模型训练(SVM),得到xml模型文件开始人脸训练集数据制作特征提取识别模型训练(SVM),得到xml模型文件对待测图像数据进行预处理待测人脸图像特征提取利用识别模型对待测人脸进行预测,得到预测结果可视化输出对应项目:data_collootion对应项目:SYNTrain对应项目:Facorecognition_FaceUnlock人脸数据的采集,可以使用文件夹data_collection提供的程序,完成人脸数据的采集,正类人脸数据与负类人脸数据都要采集。有了训练集的数据,接下来就像进行SVM模型的训练,对应工程名称为SVMTrain。此工程主要分三大步,第一步是训练数据的读取,第二步是特征提取,第三步就是使用OpenCV的SVM接口训练分类模型,在三种特征中,基于LBP特征实现的人脸识别准确率最好,下面均以LBP特征为例。第一步:训练数据的读取主要进行一系列文件流操作,从指定路径读取训练集数据,将数据都保存在容器Inimages中,对应标签保存在容器Inlabels中,我们从数据集中对iImgZTFName文件中读取100张图像,由于此图像储存的是“主人”的数据,所以设置为正类,标签为“1”,iImgWHName储存的是负类数据,标签设为“-1”数据加载完会显示提示信息“DataLoaded!”将数据储存到指定容器内后,我们要对图像数据进行预处理,主要是减少计算量。对于人脸识别,我们只关心人脸区域的数据,其他非人脸区域的图像对人脸识别没有帮助,还会加大计算量,因此,要对训练集的图像进行预处理,最终将人脸区域的图像裁剪出来,在代码中,定义容器vecFaceRect储存人脸位置矩形框数据,容器vecInimages储存矩形框中的人脸数据,我们用人脸检测接口HaarFace()得到人脸矩形框位置,用函数CropFace()将矩形框中人脸裁剪出来,这样就完成了人脸数据的预处理,去掉了没用的图像数据,代码如下:接下来对预处理后的训练集人脸数据进行特征提取,具体的提取方法我们在上一个实验已经讲解过了,这里不再赘述,本实验以LBP特征提取为例,完成了特征提取后,我们就利图6采集的人脸原始图像用这些特征数据,进行模型的训练,调用接口SVMTrainModel()完成模型的训练,代码如下:上面的代码中,模型训练是在函数SVMTrainModel()中实现的,函数形式如下:其中,iTrainData是训练集的数据,iLabels为对应的标签,nIter为最大迭代次数,nFlags为选择的特征提取方法。将人脸数据,传入函数LBPPredict()中得到此人脸对应的标签,对于本实验就是判断是主人“***”还是访客“Visitor”,得到标签便可以完成实验效果的输出。函数LBPPredict()的实现过程,函数形式如下:其中iSrc为待预测的人脸图像,nFlag是识别模式标志位,当nFlag=0时,表示用欧式距离法进行识别,当nFlag=1时,表示用SVM法进行识别,本实验使用SVM法,所以nFlag=1,label为返回的此张人脸的标签。函数实现首先需要将输入的待预测人脸图像尺寸缩放到与训练SVM模型时训练图像尺寸相同,然后提取待检测人脸的LBP特征。将得到的LBP特征保存在iTestProjectionLBP中,然后调用SVMPredict()利用训练好的识别模型“lbp.xml”完成人脸的预测。到此就完成了主人身份确认的实验。(2)多人物身份确认实验基于欧氏距离的多人物身份确认,要求可以实现多个人物身份,并标注其姓名。在主人身份确认的实验中,我们使用SVM建立人脸识别模型,由于SVM是二分类算法,实现多分类任务比较困难,所以我们在“多人物身份确认”的实验中,采用欧氏距离法实现人脸的识别,这个方法思想极为简单,可以理解为身份特征比对,原理如下图所示:图3-3特征对比示意图经过人脸特征提取,每一个人脸都对应一个特征向量,假设维度为3,在训练集中我们知道每个人脸对应的名字,左侧为张三的数据集,右侧为王二的数据集,特征提取后就得到了一系列3维的,有标签的数据,如下图:[1,3,7]王二[10,32,71]张三图3-4人脸特征数据集对未知人脸进行特征提取,特征是为[a,b,c],计算[a,b,c]与哪个人脸特征向量欧式距离最近就认为未知人脸与此人脸是同类。代码方面,本实验对应的工程名称为其实现过程与“多人物身份确认份识别”实验类似,只是得到待测人脸分类标签的方法是“欧式距离”法,我们还是以LBP为例,在LBPPredict中,首先还是对待测人脸尺寸进行调整,并提取待测人脸的LBP特征,代码如下:得到了待测人脸的LBP特征后,接下来就是和人脸库中的人脸进行比对,找到欧式距离最小的人脸,将此标签作为待测人脸的标签。首先,我们定义dMindist用在储存当前最小的欧式距离值,初始化为2,然后与特征库中的每组特征计算欧式距离,这里欧式距离我们使用OpenCV接口函数norm()完成,将计算的欧式距离值存入dDist,然后不断将最小欧式距离值对应的人脸标签记录在label中,这样我们就完成了识别。实验分析在人脸特征提取的实验中,我们使用了PCA、Fisher与LBP三种方法,从人脸图像信息中提取特征数据,我们用PCA将人脸图像这种高维的数据,通过降维便可用一个m维向量表示一个人脸。在人脸识别模型建立的过程中,我们首先将要识别的人物A的照片作为训练集,并对训练集进行预处理并提取人脸特征,这样我们就得到人物A的特征数据集,对于实验“主人身份确认”我们使用SVM算法,利用特征数据集,训练人脸识别模型,得到模型后,对于待测人脸,将其按照同样的方法进行特征提取,并将此特征输入SVM建立好的模型,就得到了预测标签,这样就可以实现人脸识别与主人身份确认的实验任务。人脸角度识别与机器人人脸跟随实验实验概述本实验需要机器人识别视野中的人脸角度,并根据此角度信息,控制机器人运动到人脸的正面1米的位置。根据上面的任务我们将实验分两大部分:训练人脸角度识别器和机器人控制。第一部分需要利用摄像头,采集人脸图像,并使用随机森林算法对人脸图像数据集进行训练建立训练模型,此训练模型可以通过人脸图像计算人脸偏转角度,机器人利用此偏转角可以完成自主跟随人脸的运动,这个实验涉及到人脸图像采集、图像信息标注、数据训练以及控制机器人运动等方面的知识。实验步骤步骤1:人脸角度识别模型建立。这部分的工作主要是通过机器人头部的摄像头采集的人脸数据集,并使用seetaface工具对数据集进行角度标注,得到带角度标签的人脸训练集,利用此人脸数据集,使用随机森林算法,训练得到对应模型,此模型的功能主要是根据机器人摄像头看到的人脸图像,输出人脸相对机器人坐标系偏转的角度yaw,这个值是控制机器人走到人脸正面的重要参数,模型建立的流程图如下:人脸角度识别人脸角度识别模型建立人脸数据预处理人脸数据集收集使用随机森林算法完成模型训练使用工具完成人脸数据集角度标注使用随机森林算法完成模型训练使用工具完成人脸数据集角度标注结束开始结束开始图3-5人脸模型建立流程图步骤2:采集人脸数据集这一步主要是通过机器人头部摄像头采集人脸照片,本实验我们采用开源的人脸识别系统SeetaFace完成此工作。关于SeetaFace这里就不详细介绍了,网上有丰富的资料与教程供大家学习。采集人脸数据主要是程序FaceDataCollection完成,本程序作为一个工具,利用摄像头获得人脸数据,步骤如下:运行FaceDataCollection工程,会弹出如下对话框:输入被采集人姓名,此姓名作为储存采集图像的文件夹名称。姓名输入完成后按键盘上的回车,便可通过摄像头采集图片,按q可退出采集过程。注:在采集人脸数据时,摄像头前的实验人员需要转动头部,使得摄像头采集到角度范围尽可能大的人脸图像数据集。采集获得人脸数据集后,接下来需要对每张人脸图像进行角度标注。步骤3:人脸数据的标注。我们训练的模型是通过人脸图像,识别对应的人脸角度,这样就需要准备一批带人脸角度信息的数据集,上一步我们采集的人脸图像数据集是不带角度信息的,所以要根据采集的图像中人脸的旋转角度特征,进行角度标注。手工标注是一个繁重的体力劳动,所以本实验使用通过程序FaceDataTagging来完成图像角度的标注,这样照片集就带上了角度信息,此步标注使用的到了训练好的Caffe模型。步骤4:人脸角度识别模型建立在本实验中,比较重要的代码在FaceDataTrain中,即如何对FaceDataTagging角度标注后的人脸数据进行预处理(数据信息储存在文件“faceYaw.txt”中),并利用随机森林算法完成角度识别模型的训练。用人脸68个轮廓特征点坐标表示人脸,如下图:图3-6人脸轮廓特征点坐标图步骤5:人脸数据预处理我们知道人脸图像数据是一种高维的数据,在机器学习中,要想得到好的模型,必须将人脸数据进行预处理,转换成特征向量,在本实验中我们用68个人脸轮廓点坐标表示一张人脸的信息,有利于后面的模型训练,此功能是在函数DataPreprocessing()中完成的,数据处理的对象便是经过FaceDataTagging角度标注后的人脸数据“faceYaw.txt”。下图为函数DataPreprocessing()的流程图:保存特征保存特征数据定义尺度因子d与基准坐标,并计算新的68个特征值连续角度离散化为12个值文件操作结束获取68个特征点坐标信息结束获取68个特征点坐标信息开始图3-7函数运行流程图步骤6:人脸角度识别模型训练。经过上一步人脸数据预处理后,我们将人脸图像数据转换成一个134维的向量,这134个数据值为67个特征点的坐标信息。因为鼻尖31特征点在经过预处理后变成了0,所以我们可以去掉它,这样就是67个特征点。所有的训练数据保存在文件“faceData.txt”中,我们使用OpenCV中的ml库自带的随机森林算法接口,完成模型的训练,具体过程与前面的分类实验是一样的,这里不做终点讲解,模型训练完成后,我们就可以得到模型文件“FaceData.xml”,利用这个模型文件,我们就可以对摄像头采集的人脸进行角度预测了。步骤7:机器人人脸追踪功能要求机器人使用头部摄像头实时检测视野中人脸,并识别出人脸角度信息yaw;机器人利用角度信息yaw计算并控制轮子运动,使机器机器人运动到人脸对面,与之有1m的距离。步骤8:角度识别主要是通过机器人头部摄像头,采集视野中的图像,并检测图像中是否有人脸,如果检测到人脸,提取人脸框数据,并对人脸图像进行前面模型训练用到的图像数据预处理。得到134维特征向量,然后利用角度识别模型“FaceData.xml”识别出此人脸的角度yaw,以及人脸相对机器人坐标系的坐标值x,y,z,然后传到第二阶段运动控制,指导机器人完成下一步运动。步骤9:我们需要计算机器人在机器人坐标系中,需要在x轴方向上运动的距离、在y轴方向上运动的距离以及机器人需要偏转的角度。首先我们定义三个3×3的矩阵,分别为:表3-2机器人坐标定义矩阵名称功能matTargetInPerson运动终点在人脸坐标系下的位置matTargetInRobot人脸坐标系在机器人坐标系下的变换矩阵matTargetInRobot运动终点在机器人坐标系下的位姿注:在程序计算中我们将角度均转化为弧度进行计算在矩阵matTargetInRobot中,第一行第三列表示机器人需要机器人坐标系在x轴方向移动的距离;第二行第三列表示机器人需要机器人坐标系在y轴方向移动的距离;以及机器人需要偏转的角度,代码如下:然后将上面的信息下发机器人下位机,机器人就可以完成实验要求的运动任务了,代码如下:至此,机器人就完成目标追踪任务了。实验分析本实验通过Tyran实机进行实验,利用提供的脚本程序使用机器人头部摄像头采集人脸数据,并使用程序对采集的人脸数据集进行角度标注。得到有角度信息的人脸数据集后,在程序FaceDataTrain中,对人脸数据进行预处理,实时采集并利用人脸角度模型“FaceData.xml”识别机器人视野中人脸的角度信息ya
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年工程结构检测钢筋混凝土结构专项试题及答案
- 苏盐井神2023招聘笔试内部预测卷带答案
- 2020危化品易燃易爆泄漏应急处置培训教案 防爆炸防火灾
- 2026年森林消防安全测试题及答案
- 2025吉大机械复试笔试核心考题+答案解析(历年高频考点全覆盖)
- 2024亲子游乐场游客安全须知考核题及答案
- 2025行政岗文秘岗招聘笔试公共基础知识真题
- 江苏丹阳高级中学2025-2026学年度第二学期3月阶段检测高一语文试题(重点班)(含解析)
- 婚姻协议书要给孩子
- 生产免责协议书范文
- 国有企业资产管理流程与制度汇编
- LNG气化站设备保养手册
- 煤矸石铺地面施工方案
- 基础计算机考试实操题及答案
- 2025年五类人员选拔考试试题及答案
- 压力储罐设计计算书
- 2025年疾病预防控制中心招聘考试笔试试题(含答案)
- 医院培训课件:《医疗机构消防安全知识讲座》
- 咯血护理常规课件
- 慢性肾衰竭病人的护理试题及答案
- 设备制造质量安全保证体系及措施
评论
0/150
提交评论