欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年人工智能YOLOV图像识别实验报告 .pdf

    • 资源ID:39746485       资源大小:5.38MB        全文页数:29页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年人工智能YOLOV图像识别实验报告 .pdf

    第一章前言部分1.1 课程项目背景与意义1.1.1 课程项目背景视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分。由于它的重要性,一些先进国家,例如美国把对计算机视觉的研究列为对经济和科学有广泛影响的科学和工程中的重大基本问题,即所谓的重大挑战。计算机视觉的挑战是要为计算机和机器人开发具有与人类水平相当的视觉能力。机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。一个有能力的视觉系统应该把所有这些处理都紧密地集成在一起。作为一门学科,计算机视觉开始于60 年代初,但在计算机视觉的基本研究中的许多重要进展是在80 年代取得的。计算机视觉与人类视觉密切相关,对人类视觉有一个正确的认识将对计算机视觉的研究非常有益。计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。这里所指的信息指 Shannon定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。科学技术的发展是推动人类社会进步的主要原因之一,未来社会进一步地朝着科技化、信息化、智能化的方向前进。在信息大爆炸的今天,充分利用这些信息将有助于社会的现代化建设,这其中图像信息是目前人们生活中最常见的信息。利用这些图像信息的一种重要方法就是图像目标定位识别技术。不管是视频监控领域还是虚拟现实技术等都对图像的识别有着极大的需求。一般的图像目标定位识别系统包括图像分割、目标关键特征提取、目标类别分类三个步骤。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习的概念由Hinton等人于2006年提出。基于深度置信网络提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外 Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。深度学习是机器学习中的一个新的研究领域,通过深度学习的方法构建深度网络来抽取特征是目前目标和行为识别中得到关注的研究方向,引起更多计算机视觉领域研究者对深度学习进行探索和讨论,并推动了目标和行为识别的研究,推动了深度学习及其在目标和行为识别中的新进展。基于这个发展趋势,我们小组选择了基于回归方法的深度学习目标识别算法YOLO 的研究。1.1.2 课程项目研究的意义众所周知,当前是信息时代,信息的获得、加工、处理以及应用都有了飞跃名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 29 页 -发展。人们认识世界的重要知识来源就是图像信息,在很多场合,图像所传送的信息比其他形式的信息更丰富、真切和具体。人眼与大脑的协作使得人们可以获取、处理以及理解视觉信息,人类利用视觉感知外界环境信息的效率很高。事实上,据一些国外学者所做的统计,人类所获得外界信息有80%左右是来自眼睛摄取的图像。由此可见,视觉作为人类获取外界信息的主要载体,计算机要实现智能化,就必须能够处理图像信息。尤其是近年来,以图形、图像、视频等大容量为特征的图像数据处理广泛应用于医学、交通、工业自动化等领域。深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为 0255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在图像中哪个区域。图像中的目标可能出现在任何位置,目标的形态可能存在各种各样的变化,图像的背景千差万别,这些因素导致目标检测并不是一个容易解决的任务。这次课程项目,正是基于视觉、深度学习、目标识别而进行的,是一个热度很高的话题。基于深度学习的目标识别研究具有重大的意义,深度学习的目标识别算法对于未来能够使用目标检测和图像识别的手段运用于物联网、智能设备、生物制药经济调控等多领域有很大的作用。1.2 国内外研究现状机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。机器能否像人类一样能具有学习能力呢?1959 年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了 3 年,这个程序战胜了美国一个保持8 年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题。深度学习最近几年发展速度十分快,因此同时也推动了目标识别技术的发展,技术的革新总是相互影响的。目标检测是图像处理和计算机视觉的一个重要分支,在理论和实践上都有重大意义。近年来,随着物联网的高速发展与智能终端的广泛普及,目标检测技术成了机器视觉领域的研究热点,被国内外学者广泛关注。目标检测的研究主要包括了基于视频图像的目标检测和基于静态图片的目标检测。本文主要讨论基于静态图片的目标检测算法,即在静态图片中检测并定位所设定种类的目标。基于静态图片的目标检测的难点主要在于图片中的目标会因光照、视角以及目标内部等变化而产生变化。针对以上的难点,国内外学者进行了很多尝试。目前提出的方法主要分为基于形状轮廓的目标检测算法和基于目标特征的检测方法。计算机视觉是指用计算机实现人的视觉功能,它的研究目标就是使计算机具有用过一幅或多幅图像认知周围环境的能力(包括对客观世界三维环境的感知、名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 29 页 -识别与理解)。运动目标检测作为计算机视觉技术的一个分支,就是对视场内的运动目标,如人或交通工具,进行实时的观测,并将其分类,然后分析他们的行为。目前,国际上许多高校和研究所,如麻省理工学学院、牛津大学等都专门设立了针对运动目标检测的研究组或者研究实验室。美英等国家已经研究了大量的相关项目。一些著名公司和研究机构,如IBM、Microsoft、麻省理工学院等近几年来投入了大量的人力物力来进行智能监控系统的研究,部分成果已经转化为产品投入了市场。目前在国内的研究机构中,中国科学院北京自动化研究所下属的模式识别国家重点实验室视觉监控研究处于领先地位。他们在交通场景视觉监控、人的运动视觉监控和行为模式识别方面进行了深入研究。另外他们也总结了英国雷丁大学VIEWS 的车辆交通监控原型系统的研究经验,在之前的理论研究的基础上,自行设 计 并 初 步 实 现 了 一 个 拥 有 完 全 自 主 知 识 产 权 的 交 通 监 控 原 型 系 统vstart(Visual surveillance star)。国内其他高校如上海交通大学、北京航空航天大学也对这方面进行了研究。尽管这样,目前在运动目标检测和视觉监控这方面仍然存在着许多不足:目前国内市场上所见到的大部分智能监控产品来源于国外,性能和可靠性不够,并且维护和安装问题需要外方全方位参加,给国家安全带来了巨大的隐患。目标之间互遮挡和人体自遮挡问题,尤其是在拥挤状态下,多人的检测更是难处理。1.3 本论文结构本文是基于回归方法的深度学习目标识别算法YOLO 的研究。第一章:前言。主要介绍课程项目背景与意义、国内外研究的现状,以及本论文的结构。第二章:使用工具介绍及安装。包括 CentOS系统、OpenCV 工具、CUDA 开发环境、环境的搭建。第三章:YOLO 算法简介。包括 YOLO 方法特点、核心思想和实现方法、以及YOLO的创新。第四章:训练数据采集与制作。包括训练数据的采集、训练数据的制作。第五章:训练配置、训练及测试训练效果。包括具体的训练配置、训练过程和测试训练效果。第六章:总结。包含对本次课程项目实践过程的感想与收获,以及对未来的展望。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 29 页 -第二章使用工具介绍及安装2.1 CentOS 系统CentOS(Community ENTerprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的 Red Hat Enterprise Linux 使用。两者的不同,在于CentOS并不包含封闭源代码软件。CentOS,我们有很多人叫它社区企业操作系统,不管怎么叫它,它都是 linux的一个发行版本。CentOS并不是全新的 linux发行版,在 RedHat家族中有企业版的产品,它是 Red Hat Enterprise Linux,CentOS是 RHEL 的克隆版本,RHEL是很多企业采用的linux发行版本,需要向RedHat付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。这个CentOS可以像 REHL一样的构筑linux系统环境,但不需要向RedHat 付任何的费用,同样也得不到任何有偿技术支持和升级服务。CentOS有很多特点:CentOS就是对 Red Hat AS进行改进后发布的,各种操作、使用和 RED HAT 没有区别;CentOS完全免费,不存在RED HAT AS4 需要序列号的问题;CentOS独有的 yum命令支持在线升级,可以即时更新系统,不像RED HAT 那样需要花钱购买支持服务;CentOS修正了许多 RED HAT AS 的 BUG。基于开源的特性,Linux 环境被很多技术人员和公司使用。Linux 以它的高效性和灵活性著称,Linux 模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix 特性,具有多任务、多用户的能力。我们这次的课程项目“基于深度学习的目标识别研究”也是在 Linux 环境下完成的,因此本次项目实现使用的是CentOS 7.0 系统。2.2 OpenCV工具OpenCV 的全称是:Open Source Computer Vision Library。OpenCV 是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和 Mac OS操作系统上。它轻量级而且高效,由一系列 C 函数和少量 C+类构成,同时提名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 29 页 -供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 致力于真实世界的实时应用,通过优化的C 代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的 IPP 高性能多媒体函数库得到更快的处理速度。OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库。无论是做科学研究,还是商业应用,OpenCV都是一个理想的工具库。因为,对于这两者,它完全是免费的。该库采用 C及 C+语言编写,该库的所有代码都经过优化,计算效率很高,因为,它更专注于设计成为一种用于实时系统的开源库。OpenCV采用 C语言进行优化,而且,在多核机器上面,其运行速度会更快。它的一个目标是提供友好的机器视觉接口函数,从而使得复杂的机器视觉产品可以加速面世。该库包含了横跨工业产品检测、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。同时,由于计算机视觉与机器学习密不可分,该库也包含了比较常用的一些机器学习算法。图像识别、机器视觉在安防领域有所应用。并且在航拍图片、街道图片中,也要依赖于机器视觉的摄像头标定、图像融合等技术。近年来,在入侵检测、特定目标跟踪、目标检测、人脸检测、人脸识别、人脸跟踪等领域,OpenCV的应用及其广泛,而这些,仅仅是其应用的冰山一角。一个典型的计算机视觉算法,应该包含以下一些步骤:(1)数据获取(对 OpenCV 来说,就是图片);(2)预处理;(3)特征提取;(4)特征选择;(5)分类器设计与训练;(6)分类判别;而 OpenCV 工具对这六个部分,分别提供了API。2.3 CUDA开发环境随着显卡的发展,GPU 越来越强大,而且 GPU 为显示图像做了优化。在计算名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 29 页 -上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia 推出 CUDA 运算平台,CUDA 即 Compute Unified Device Architecture,是 NVidia 利用 GPU 平台进行通用并行计算的一种架构,该架构使GPU 能够解决复杂的计算问题,它包含了 CUDA 指令集架构(ISA)以及 GPU 内部的并行计算引擎。开发人员可以利用 C语言、OpenCL、Fortran、c+等为 CUDA 架构编写程序。(1)CUDA 体系架构 CUDA体系架构由两部分组成,分别是流处理器阵列(SPA)和存储器系统。流处理阵列(SPA)的结构又分为两层:TPC(线程处理器群)和SM(流多处理器)。GPU 的巨大计算能力来自于SPA中的大量计算单元。存储器系统由几个部分组成:存储器控制器(MMC)、固定功能的光栅操作单元(ROP)以及二级纹理操作。(2)CUDA 执行模型将CPU 作为主机(Host),而 GPU 作为协处理器(Coprocessor)或者设备(Device),从而让 GPU 来运行一些能够被高度线程化的程序。在这个模型中,CPU 与 GPU 协同工作,CPU 负责进行逻辑性强的事务处理和串行计算,GPU 则专注于执行高度线程化的并行处理任务。一个完整的 CUDA 程序是由一系列的设备端kernel 函数并行步骤和主机端的串行处理步骤共同组成的。CUDA执行模型如下图:Grid(网格)运行在 SPA上;Block(线程块)运行在SM上;Thread(线程)运行在 SP上。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 29 页 -Kernel 不是一个完整的程序,而只是其中的一个关键并行计算步骤。Kernel 以一个网格(Grid)的形式执行,每个网格由若干个线程块(block)组成,每一个线程块又由若干个线程(thread)组成。在 CUDA 的架构下,一个程序分为两个部份:Host 端和 Device 端。Host 端是指在 CPU 上执行的部份,而 Device 端则是在显示芯片(GPU)上执行的部份。Device 端的程序又称为 kernel。通常 Host 端程序会将数据准备好后,复制到显卡的内存中,再由显示芯片执行 Device 端程序,完成后再由 Host 端程序将结果从显卡的内存中取回。由于 CPU 存取显卡内存时只能透过 PCI Express 接口,因此速度较慢,因此不能经常进行这类动作,以免降低效率。由于显示芯片大量并行计算的特性,它处理一些问题的方式和一般 CPU 是不同的。主要的特点包括:(1)内存存取 latency(等待时间)的问题:CPU 通常使用 cache 来减少存取主内存的次数,以避免内存 latency 影响到执行效率。显示芯片则多半没有名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 29 页 -cache(或很小),而利用并行化执行的方式来隐藏内存的 latency(即当第一个 thread 需要等待内存读取结果时,则开始执行第二个thread,依此类推)。(2)分支指令的问题:CPU 通常利用分支预测等方式来减少分支指令造成的流水线。显示芯片则多半使用类似处理内存 latency 的方式。不过,通常显示芯片处理分支的效率会比较差。因此,最适合利用 CUDA 处理的问题,是可以大量并行化的问题,才能有效隐藏内存的 latency,并有效利用显示芯片上的大量执行单元。使用 CUDA 时,同时有上千个 thread 在执行是很正常的。因此,如果不能大量并行化的问题,使用 CUDA 就没办法达到最好的效率了。在这个过程中,CPU 担任的工作为控制GPU 执行,调度分配任务,并能做一些简单的计算,而大量需要并行计算的工作都交给GPU 实现。另外需 要注 意的 是,由于 CPU 存取显 存 时只能 通过PCI-Express 接口,速度较慢,因此不能经常进行,以免降低效率。通常可以在程序开始时将数据复制进GPU显存,然后在 GPU内进行计算,直到获得需要的数据,再将其复制到系统内存中。2.4 环境的搭建一、项目源代码下载与安装1.使用 git把项目源代码下载到本地git clone https:/ 2.进入项目目录,编译cd darknet make 二、项目目录结构编译完成后,项目主要文件如下:darknet 项目目录cfg 配置文件存放目录data 数据存放目录名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 29 页 -examples C语言测试用例include darknet头文件python Python测试用例scripts 训练中用到的辅助脚本src 项目源代码darknet 编译后产生的 darknet 可执行文件config.php 模块配置文件common.php 模块函数文件三、测试对象识别1.下载官方提供的训练好的权重数据wget https:/ 2.测试识别对象:./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg 在上述命令中,detect 表示调用 darknet 的对象识别功能,cfg/yolo.cfg是配置文件,包含各层网络的参数、要识别的物体种类数等,yolo.weights是上一步下载的权重数据,data/dog.jpg是要进行对象识别的照片,照片内容如下图:名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 29 页 -执行命令:上图显示检测过程在0.35 秒内完成,这是安装完显卡驱动后运行的结果,在安装显卡驱动前,使用 CPU 进行图像检测,花费时间大约为 8 秒。命令执行完成后,将会把识别结果生成到predictions.jpg,打开图片如下图所示:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 29 页 -四、训练环境安装1.使用 YUM 安装 OpenCV sudo yum install opencv 2.安装显卡驱动及其开发工具包CUDA,安装 CUDA 必须要有一个 Nvidia 的显卡,本机的显卡是 GTX 860M。CUDA 下载网址为:https:/ 官方还提供了 CUDA 安装过程所需的 pdf 文档,仔细阅读并按照其步骤安装即可。此次安装使用 runfile安装。首先检测本机是否有Nvidia 显卡,执行以下命令:lspci|grep-i nvidia 有任何输出说明本机有Nvidia 显卡,本机输出结果如下:01:00.0 3D controller:NVIDIA Corporation GM107M GeForce GTX 860M(rev a2)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 29 页 -接下来查看系统内核版本:uname-m&cat/etc/*release 该命令会显示系统架构以及内核版本信息,本机主要的输出信息如下:x86_64 CentOS Linux release 7.3.1611(Core)确认编译器 gcc 已经安装,该命令会打印gcc 的版本,如果提示找不到命令则说明没有安装 gcc:gcc-version 安装 Kernel-header和 kernel-devel,这两个包的版本需要和本机的内核版本一致,安装命令如下:sudo yum install kernel-devel-$(uname-r)kernel-headers-$(uname-r)开始安装 cuda,本次实验使用的是runfile安装。Nouveau是一个开源的 3D驱动,安装 Nvidia 驱动之前需要先将其关闭。首先要把Nouveau加入黑名单,创建/etc/modprobe.d/blacklist-nouveau.conf 文件并写入以下内容:blacklist nouveau options nouveau modeset=0 重新生成内核 initramfs:sudo dracut-force 重新启动计算机,在进入登录界面时,不要登录,按下ALT+F2进入命令提示符模式,使用root用户登录,然后使用init 3 命令进入多用户模式开始安装Naidia 驱动。执行以下命令开始安装CUDA:./cuda_8.0.61_375.26_linux-run 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 29 页 -安装过程会提示是否安装CUDA 工具箱、CUDA 例子等,此次试验中选择安装。最后将 cuda 加入到环境变量中、重启,即完成安装。将cude 加入到环境变量:export PATH=/usr/local/cuda-8.0/bin$PATH:+:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH 3.安装完成 OpenCV 和 CUDA 后,需要修改 YOLO 的 Makefile 文件并重新编译。打开 Makefile文件,将 OPENCV=0 改为 OPENCV=1,将 GPU=0 改为 GPU=1,并执行make命令重新编译。第三章 YOLO 算法原理3.1 YOLO算法简介基于深度学习方法的一个特点就是实现端到端的检测。相对于其它目标检测与识别方法(比如Fast R-CNN)将目标识别任务分类目标区域预测和类别预测等多个流程,YOLO 将目标区域预测和目标类别预测整合于单个神经网络模型中,实现在准确率较高的情况下快速目标检测与识别,更加适合现场应用环境。YOLO为一种新的目标检测方法,该方法的特点是实现快速检测的同时还达到较高的准确率。作者将目标检测任务看作目标区域预测和类别预测的回归问题。该方法采用单个神经网络直接预测物品边界和类别概率,实现端到端的物品检测。同时,该方法检测速非常快,基础版可以达到45 帧/s的实时检测;FastYOLO可以达到 155 帧/s。与当前最好系统相比,YOLO 目标区域定位误差更大,但是背景预测的假阳性优于当前最好的方法。人类视觉系统快速且精准,只需看一眼即可识别图像中物品及其位置。传统目标检测系统采用deformable parts models(DPM)方法,通过滑动框方法提出目标区域,然后采用分类器来实现识别。近期的R-CNN类方法采用region proposal methods,首先生成潜在的bounding boxes,然后采用分类器识别这些 bounding boxes 区域。最后通过 post-processing来去除重复 bounding 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 29 页 -boxes 来进行优化。这类方法流程复杂,存在速度慢和训练困难的问题。而 YOLO 方法将目标检测问题转换为直接从图像中提取bounding boxes 和类别概率的单个回归问题,只需一眼即可检测目标类别和位置。3.2 YOLO方法特点YOLO 采用单个卷积神经网络来预测多个bounding boxes 和类别概率,如图所示:本方法相对于传统方法有如下优点:(1)速度非常快。YOLO 预测流程简单,速度很快。基础版在Titan X GPU上可以达到 45 帧/s;快速版可以达到 150 帧/s。因此,YOLO 可以实现实时检测。(2)YOLO采 用 全 图 信 息 来 进 行 预 测。与 滑 动 窗 口 方 法 和region proposal-based方法不同,YOLO 在训练和预测过程中可以利用全图信息。Fast R-CNN检测方法会错误的将背景中的斑块检测为目标,原因在于Fast R-CNN 在检测中无法看到全局图像。相对于Fast R-CNN,YOLO 背景预测错误率低一半。(3)YOLO 可以学习到目标的概括信息,具有一定普适性。采用自然图片训练 YOLO,采用艺术图像来预测。YOLO 比其它目标检测方法(DPM 和 R-CNN)准确率高很多。本方法有如下缺点:(1)YOLO对相互靠的很近的物体,还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。(2)对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱。(3)由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 29 页 -大小物体的处理上,还有待加强。3.3 YOLO的核心思想和实现方法1.YOLO的核心思想 YOLO 的核心思想就是利用整张图作为网络的输入,直接在输出层回归bounding box 的位置和 bounding box 所属的类别。2.YOLO的实现方法YOLO 的实现过程图解和方法如下:(1)将一幅图像分成SxS个网格(grid cell),如果某个目标的中心落在这个网格中,则这个网格就负责预测这个目标。(2)每个网格要预测B 个 bounding box,每个 bounding box除了要回归自身的位置之外,还要附带预测一个confidence值,这个 confidence 代表了所预测的 box 中含有目标的置信度和这个box 预测的有多准两重信息,其值是这样计算的:truth(r predIOUP 目标)(其中如果有目标落在一个grid cell里,第一项取 1,否则取 0。第二项是预测的 bounding box 和实际的 groundtruth之间的 IOU值)。(3)每个 bounding box 要预测(x,y,w,h)和 confidence共 5 个值,每个网格还要预测一个类别信息,记为C 类。则 SxS 个网格,每个网格要预测B 个bounding box,还要预测 C 个 categories。输出就是S x S x(5*B+C)的一个tensor。(注意:class信息是针对每个网格的,confidence信息是针对每个bounding box 的)。举例说明:在 PASCAL VOC 中,图像输入为448x448,取 S=7,B=2,一共有名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 29 页 -20 个类别(C=20)。则输出就是 7x7x30 的一个 tensor。整个网络结构如下图所示:(4)在测试的时候,每个网格预测的class信息和bounding box预测的confidence 信息相乘,就得到每个 bounding box 的 class-specific confidence score:truthpreditruthpredIOUclassIOUobjectobjectclassP)Pr()Pr()|(r等式 左 边 第一 项就 是每 个网 格 预 测的 类别信 息,第 二 三项 就是 每 个bounding box 预测的 confidence。这个乘积即 encode 了预测的 box 属于某一类的概率,也有该 box 准确度的信息。(5)得到每个 box 的 class-specific confidence score以后,设置阈值,滤掉得分低的 boxes,对保留的 boxes 进行 NMS 处理,就得到最终的检测结果。3.4 YOLO的实现细节1.预训练:使用 imageNet 预训练,网络结构是前 20 层网络加上一个平均池化层和一个全连接层。2.预测:由于预测需要更加精细的像素,所以把输入扩展成448*448,并且增加了四个卷积层和两个全连接层。在最后一层预测中,需要预测概率和bounding box,这里把 bounding box 的预测归一化成 0 到 1。名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 29 页 -3.激活函数:最后一层的激活函数使用线性激活函数,而其他层使用leaky ReLU 的激活函数:4.误差传播:误差的计算采用简单的平方和误差函数。但是,从网络结构可以知道,预测概率的维数比预测bounding box 的维数要高,而且,在图片中大多的格子是没有物体的,这会使得它们的confidence趋于 0。它们的贡献过大,会使得网络无法收敛。我们采用的一个办法就是加权,赋予不同的权值,对于预测bounding box的,而对于没有目标物体的格子的误差赋予权值。同时,对于大的 box 的小误差肯定要比小 box 的小误差影响更小,于是,采用对 w,h,x,y取平方根的做法,因为平方根函数的图像随着x 的增大会变得平缓。此外,一个网格可能会预测多个box,希望每个 box 负责专门的目标物体的预测。方法是,对于一个物体的truth box,看哪个 bounding box 的 IOU更大,就让它负责这个 box。公式为:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 29 页 -其中对应格子 i 如果有物体,那相应的bounding box j负责这个物体的预测。表示格子 i 中是否有物体。5.训练方法:使用随机梯度下降法,以及dropout 的方法。3.4 YOLO的创新YOLO将物体检测作为回归问题求解。基于一个单独的端到端网络,完成从原始图像的输入到物体位置和类别的输出。从网络设计上,YOLO 与 RCNN、Fast RCNN 及 Faster RCNN的区别如下:(1)YOLO 训练和检测均是在一个单独网络中进行。YOLO没有显示地求取region proposal的过程。而 RCNN/Fast RCNN 采用分离的模块(独立于网络之外的 selective search方法)求取候选框(可能会包含物体的矩形区域),训练过程因此也是分成多个模块进行。Faster RCNN 使用 RPN(region proposal network)卷积网络替代 RCNN/Fast RNN 的 selective search 模块,将 RPN 集成到 Fast RCNN 检测网络中,得到一个统一的检测网络。尽管RPN与 Fast RCNN共享卷积层,但是在模型训练过程中,需要反复训练 RPN 网络和 Fast RCNN 网络。(2)YOLO将物体检测作为一个回归问题进行求解,输入图像经过一次inference,便能得到图像中所有物体的位置和其所属类别及相应的置信概率。而 RCNN/Fast RCNN/Faster RCNNA 将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding box(回归问题)。名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 29 页 -第四章 训练数据采集与制作4.1 训练数据的采集准备需要训练的图片:本次实验训练的是水果的识别,种类一共5 种,分别是WaterMelon、StrawBerry、Orange、Pineapple、Apple,每种水果图片约30-40 张,总共有171张图片。图片全部从百度图片中下载,图片分辨率一般在400*300 像素左右。将图片按照按照 5位数字从 00000递增开始命名,并将其全部放到一个文件夹中。4.2 训练数据的制作1.下载并编译安装LabelImg,使用这个软件给171 张水果图片标记对象位置和名称。名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 29 页 -2.标记完成后,LabelImg 将会生成一个记录了对象名称和位置的xml 文件,每张图片对应一个 xml 文件,xml 文件内容如下。名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 29 页 -3.按照 VOC 数据集的格式创建一下文件夹结构。darknet 项目目录cfg 配置文件存放目录.src 项目源代码VOCdevkit VOC数据集目录VOC2017 数据标记年份Annitations 存放 xml 标记文件00000.xml xml标记文件00001.xml xml标记文件.00171.xml xml标记文件ImageSets 图片相关信息Main 文件位置信息train.txt 保存了全部图片位置的文件JPEGImages 需要训练的图片00000.jpg 水果图片00001.jpg 水果图片.00171.jpg 水果图片labels labels文件名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 29 页 -00000.txt labels文件00001.txt labels文件.00170.txt labels文件4.YOLO不能识别xml 文件,需要将其转化成其识别的格式。使用项目自带的voc_label.py脚本可以将xml 格式转换成YOLO所需的label文件。打开voc_label.py,修改数据集年份,要识别的对象种类名称,以及 xml 文件存放位置等信息。文件内容 如下图 所 示。该 脚本同时会生成上 面目录结构中的train.txt文件。修改完成后运行,将会生成上面目录结构所示的labels文件。生成 label文件后,打开其中一个,内容如下所示。其中第一项“0”代表的是水果的编号,“0”代表草莓,“1”代表西瓜等,后面4 项分别是标记的对象在图片中的位置的比例。名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 29 页 -第五章 训练配置、训练及测试训练效果5.1 训练配置第四 章 是 准备 训练 数据 的全 部 过 程,接下来 要 修改 配 置文 件。创 建cfg/myd.names 文件,该文件包含了5 种水果的名称,每行一个。顺序需与前面python 脚本中配置的一致,文件内容如下。strawberry watermelon apple orange pineapple创建 cfg/myd.data,该文件包含了要识别的对象的种类个数、train.txt文件位置,上述 myd.names文件位置,以及生成的训练权重文件位置。该文件内容如下:classes=5 train=/home/myd/new/darknet/VOCdevkit/VOC2017/ImageSets/Main/train.txt names=/home/myd/new/darknet/cfg/myd.names backup=backup_myd复制一份 cfg/yolo.cfg文件,命名为 yolo-myd.cfg,并编辑这个文件,主要修改文件末尾 region层中 classes为 5.即要识别的水果种类个数,修改region层上一层 convolution层,把其中的 filters值修改成 50,根据网上教程,计算公式为(classes+coords+1)*(NUM),此次试验中具体数据为 (5+4+1)*5=50。名师资料总结-精品资料欢迎下载-名师精心整理-第 23

    注意事项

    本文(2022年人工智能YOLOV图像识别实验报告 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开