人工智能YOLOV2图像识别实验报告_第1页
人工智能YOLOV2图像识别实验报告_第2页
人工智能YOLOV2图像识别实验报告_第3页
人工智能YOLOV2图像识别实验报告_第4页
人工智能YOLOV2图像识别实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章前言局部课程工程背景与意义课程工程背景视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/例如美国把对计算机视觉的争论列为对经济和科学有广泛影响的科学和工程中严密地集成在一起。作为一门学科,计算机视觉开头于60年月初,但在计算机亲热相关,对人类视觉有一个正确的生疏将对计算机视觉的争论格外有益。Shannon的科学。科学技术的进展是推动人类社会进步的主要缘由之一,将来社会进一步地朝着科技化、信息化、智能化的方向前进。在信息大爆炸的今日,充分利用这些信息将有助于社会的现代化建设,这其中图像信息是目前人们生活中最常见的信息。识别系统包括图像分割、目标关键特征提取、目标类别分类三个步骤。Hinton2023Lecun目以提高训练性能。YOLO课程工程争论的意义众所周知,当前是信息时代,信息的获得、加工、处理以及应用都有了飞跃上,据一些国外学者所做的统计,人类所获得外界信息有80%左右是来自眼睛摄为特征的图像数据处理广泛应用于医学、交通、工业自动化等领域。〔例如〔例如,人脸识别或面部表情识别〕。深度学习的好处是用非监视式神经网络,它仿照人脑的机制来解释数据,例如图像,声音和文本。是一些值为0~255目标检测并不是一个简洁解决的任务。生物制药经济调控等多领域有很大的作用。国内外争论现状能否像人类一样能具有学习力量呢?1959年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习力量,它可以在不断的对弈中改善自己的棋艺。43时也推动了目标识别技术的进展,技术的革总是相互影响的。成了机器视觉领域的争论热点,被国内外学者广泛关注。目标检测的争论主要包括了基于视频图像的目标检测和基于静态图片的目标特征的检测方法。〔包括对客观世界三维环境的感知、IBM、Microsoft、麻省理工学院等近几品投入了市场。VIEWS的车辆交通监控原型系统的争论阅历,在之前的理论争论的根底上,自行设计并初步实现了一个拥有完全自主学问产权的交通监控原型系统star)。国内其他高校如上海交通大学、北京航空航天大学也对这方面进展了争论。间互遮挡和人体自遮挡问题,尤其是在拥挤状态下,多人的检测更是难处理。本论文构造本文是基于回归方法的深度学习目标识别算法YOLO的争论。的构造。CentOSOpenCVCUDA环境的搭建。第三章:YOLOYOLOYOLO的创。第四章:训练数据采集与制作。包括训练数据的采集、训练数据的制作。试训练效果。其次章使用工具介绍及安装CentOSEnterpriseLinux译而成。由于出自同样的源代码,因此有些要求高度稳定性的效劳器以CentOSRedHatEnterpriseLinuxCentOS包含封闭源代码软件。的一个发行版本。CentOSlinuxRedHat版的产品,它是RedHatEnterpriseLinux,CentOSRHELRHELRedHatCentOSREHL术支持和升级效劳。REDHAT;CentOSREDHATAS4CentOSyumREDHATCentOSREDHATASBUG。基于开源的特性,LinuxLinuxPCUnixLinuxCentOS7.0OpenCVOpenCV:OpenSourceComputerVisionLibrary。OpenCV基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、WindowsMacOSCC++的很多通用算法。CIntelIPP更快的处理速度。OpenCV是一个用于图像处理分析机器视觉方面的开源函数库无论是做它完全是免费的。该库承受C及C++语言编写,该库的全部代码都经过优化,计算效率很高由于它更专注于设计成为一种用于实时系统的开源库OpenCV承受器上面,其运行速度会更快。它的一个目标友好的机器视觉接口函数,从而使得简单的机器视觉产品可以加速面世。含了横跨工业产品检测、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。 同时,由于计算机视觉与机器学习密不行分该库也包含了比较常用的一些机器学习算法图像机器视觉在安防领域有所应用。并且在航拍图片、街道图片中,也要依靠视觉的摄像头标定、图像融合等技术。近年来,在入侵检测、特定目标跟踪目标检测人脸检测人脸识别人脸跟踪等领域的应用及其广泛,而这些,仅仅是其应用的冰山一角。(1)数据猎取〔OpenCV〕;(2)预处理;(6)分类判别;OpenCVAPI。CUDA随着显卡的进展,GPUGPUCPU。如此强大的芯片假设只是作为显卡就太铺张了,因此CUDAComputeUnifiedDeviceArchitecture,NVidiaGPUGPUCUDAGPUCOpenCLFortranc++CUDACUDACUDA〔SPA〕和存储器系统。流处理阵列线程处理器群〕和器〕。GPU的巨大计算力量来自于SPA中的大量计算单元。存储器系统由几个局部组成:存储器掌握器〔MMC〕、固定功能的光栅操作单元〔ROP〕以及二级纹理操作。CUDA将CPU〔Host,而GPU〔CoprocessorGPU,CPUGPUCUDAkernel串行处理步骤共同组成的。CUDA执行模型如以下图:Grid〔网格〕SPAThread〔线程〕SPKernel一个网格〔Grid〕的形式执行,每个网格由假设干个线程块〔block〕组成,每一个线程块又由假设干个线程〔thread〕组成。在CUDA的架构下,一个程序分为两个部份:Host端和Device端。Host端是指在CPU上执行的部份,而Device端则是在显示芯片〔GPU〕上执行的部份。Device端的程序又称为“kernel“。通常Host端程序会将数据预备好后,复制到显卡的内存中再由显示芯片执行Device端程序完成后再由Host端程序将结果从显卡的内存中取回。由于 CPU存取显卡内存时只能透过 PCIExpress接口,因此速度较慢,因此不能常常进展这类动作,以免降低效率。CPU是不同的。主要的特点包括:latency(等待时间)的问题:CPUcache来削减存取主内存的次数,以避开内存latency影响到执行效率。显示芯片则多半没有cache〔或很小〕,而利用并行化执行的方式来隐蔽内存的latency〔即当第一分支指令的问题:CPU通常利用分支推测等方式来削减分支指令造成的流latency的方式。不过,通常显示芯片处理分支的效率会比较差。CUDAlatency,并有效利用显示芯片上的大量执行单元。使用CUDA时,thread在执行是很正常的。因此,假设不能大量并行化的问题,GPU都交给GPU实现。另外需要留意的是,由于CPU存取显存时只能通过PCI-Express开头时将数据复制进GPUGPU再将其复制到系统内存中。环境的搭建一、工程源代码下载与安装使用git把工程源代码下载到本地gitclones://github/pjreddie/darknetgitclones://github/pjreddie/darknet进入工程名目,编译cddarknetcddarknetmake二、工程名目构造darknet├─cfgdarknet├─cfg├─data工程名目数据存放名目./darknetdetectcfg/yolo.cfgyolo.weightsdata/dog.jpg在上述命令中,detect./darknetdetectcfg/yolo.cfgyolo.weightsdata/dog.jpg在上述命令中,detect表示调用darknet的对象识别功能,cfg/yolo.cfg是配yolo.weights步下载的权重数据,data/dog.jpg图:├─examples├─include├─python├─scripts├─src├─darknet│ ├─config.php│ ├─common.phpC工程源代码模块配置文件模块函数文件三、测试对象识别下载官方供给的训练好的权重数据wgets://pjreddie/media/files/yolo.weightswgets://pjreddie/media/files/yolo.weights测试识别对象:执行命令:CPU8predictions.jpg,翻开图片如以下图所示:四、训练环境安装YUMOpenCVsudoyuminstallopencvsudoyuminstallopencvs://developer.nvidia/cuda-downloads安装显卡驱动及其开发工具包CUDACUDANvidiaGTX860M。CUDAs://developer.nvidia/cuda-downloadslspci|grep-invidia官方还供给了CUDApdfNvidialspci|grep-invidia有任何输出说明本机有Nvidia显卡,本机输出结果如下:01:00.03Dcontroller:NVIDIACorporationGM107M[GeForceGTX860M](reva2)01:00.03Dcontroller:NVIDIACorporationGM107M[GeForceGTX860M](reva2)接下来查看系统内核版本:unameuname-m&&cat/etc/*release该命令会显示系统架构以及内核版本信息,本机主要的输出信息如下:x86_64x86_64CentOSCentOSLinuxrelease7.3.1611(Core)gcc--versiongccgcc--versionsudoyuminstallsudoyuminstallkernel-devel-$(uname-r) kernel-headers-$(uname-r)blacklistnouveauoptionsnouveaumodeset=0runfileNouveau3Dblacklistnouveauoptionsnouveaumodeset=0initramfs:sudodracut--forcesudodracut--force./cuda_8.0.61_375.26_linux-run不要登录,按下ALT+F2进入命令提示符模式,使用root用户登录,然后使用 init3命令进入多用户模式开头安装Naidia驱动。执行以下命令开头安装CUDA:./cuda_8.0.61_375.26_linux-runexportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}CUDACUDAexportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}YOLOMakefileOPENCV=1GPU=0GPU=1,并执行make第三章YOLOYOLO与识别方法〔FastR-CNN〕将目标识别任务分类目标区域推测和类别推测实现在准确率较高的状况下快速目标检测与识别,更加适合现场应用环境。YOLO为一种的目标检测方法,该方法的特点是实现快速检测的同时还达45/s155/s。与当前最好系统相比,YOLO推测的假阳性优于当前最好的方法。人类视觉系统快速且精准,只需看一眼即可识别图像中物品及其位置。方法提出目标区域,然后承受分类器来实现识别。近期的R-CNN类方法承受识别这些boundingboxespost-processingboundingboxesboundingboxes类别概率的单个回归问题,只需一眼即可检测目标类别和位置。YOLOYOLOboundingboxes:本方法相对于传统方法有如下优点:速度格外快。YOLOTitanXGPU45150/sregionproposal-FastR-CNNFastR-CNNFastR-CNN,YOLO准确率高很多。本方法有如下缺点:YOLO由于一个网格中只推测了两个框,并且只属于一类。泛化力量偏弱。由于损失函数的问题,定位误差是影响检测效果的主要缘由。尤其是大小物体的处理上,还有待加强。YOLO的核心思想和实现方法1.YOLOYOLO的核心思想就是利用整张图作为网络的输入,直接在输出层回归boundingboxboundingbox2.YOLOYOLO格中,则这个网格就负责推测这个目标。box,boundingboxconfidenceconfidencebox的:Pr目标〕IOUtruth〔其中假设有目标落在一个gridcell1,pred0boundingboxgroundtruthIOU值〕。(x,y,w,h)confidence5格还要推测一个类别信息,记为CSxS个网格,每个网格要推测BboundingboxCcategoriesSxSx(5*B+C)tensor。〔留意:class信息是针对每个网格的,confidence信息是针对每个boundingbox〕。448x448,S=7,B=2,一共有(C=20)7x7x30tensor。整个网络构造如以下图所示:在测试的时候,每个网格推测的class信息和boundingbox推测的confidenceboundingboxclass-specificconfidencescore:Pr(class|object)Pr(object)IOUtruthPr(class)IOUtruthpred i pred等式左边第一项就是每个网格推测的类别信息,其次三项就是每个confidenceencodeboxboxconfidencescoreboxes,boxesNMSYOLO的实现细节1.预训练:20全连接层。2.推测:448*448,并且增加了四boundingbox,01。3.激活函数:leakyReLU函数:误差传播:0。它们的奉献过大,会使得网络无法收敛。boundingboxboxboxw,h,x,yx此外,一个网格可能会推测多个box,期望每个boxbox。公式为:其中其中iboundingboxj负责这个物体的推测。i使用随机梯度下降法,以及dropout的方法。YOLOYOLO将物体检测作为回归问题求解。基于一个单独的端到端网络,完成从YOLORCNN、FastRCNNFasterRCNNYOLOYOLOregionproposalRCNN/FastRCNN〔独立于网络之selectivesearch〕求取候选框〔可能会包含物体的矩形区域〕,训练过程因此也是分成多个模块进展。FasterRCNNRPN〔regionproposalnetwork〕卷积网络替代RCNN/FastRNNselectivesearchRPNFastRCNNRPNFastRCNNRPNFastRCNNYOLO将物体检测作为一个回归问题进展求解,输入图像经过一次inference,便能得到图像中全部物体的位置和其所属类别及相应的置信概率。RCNNA〔分类问题〕,boundingbox〔回归问题〕。第四章训练数据采集与制作训练数据的采集预备需要训练的图片:本次试验训练的是水果的识别,种类一共5种,分别是WaterMelon、张图片。图片全部从百度图片中下载,图片区分率一般在400*300像素左右。500000中。训练数据的制作171名称。xmlxml,xmldarknet├─cfg├─......├─srcdarknet├─cfg├─......├─src├─VOCdevkit工程名目配置文件存放名目│ ├─VOC2023工程源代码数据标记年份││├─Annitations xml│││ ├─00000.xml xml│││ ├─00001.xml xml│││ ├─......│││ ├─00171.xml xml││├─ImageSets 图片相关信息│││ ├─Main 文件位置信息│││ │├─train.txt 保存了全部图片位置的文件││├─JPEGImages 需要训练的图片│││ ├─00000.jpg 水果图片│││ ├─00001.jpg 水果图片│││ ├─......│││ ├─00171.jpg 水果图片││├─labels labels│││├─00000.txtlabels│││├─00001.txtlabels│││├─.....│││├─00170.txtlabelsYOLO不能识别xml文件,需要将其转化成其识别的格式。使用工程自带的voc_label.py脚本可以将xml格式转换成YOLO所需的label文件。翻开xml置等信息。文件内容如以下图所示。该脚本同时会生成上面名目构造中的labels0”代表的是代表西瓜等,后面4图片中的位置的比例。第五章训练配置、训练及测试训练效果训练配置strawberrywatermelonapple第四章是预备训练数据的全部过程,接下来要修改配置文件。创立5pythonstrawberrywatermelonappleorangeorangepineapplepineappleclasses=5train=/home/myd/new/darknet/VOCdevkit/VOC2023/ImageSets/Main/train.txtnames= /home/myd/new/darknet/cfg/sbackupclasses=5train=/home/myd/new/darknet/VOCdevkit/VOC2023/ImageSets/Main/train.txtnames= /home/myd/new/darknet/cfg/sbackup=backup_mydcfg/yolo.cfgyolo-myd.cfg,并编辑这个文件,主要修regionclasses5.region层上一层convolution层,把其中的filters值修改成50,依据网上教程,计(classes+coords+1)*(NUM)(5+4+1)*5=50。[myd@localhost[myd@localhostdarknet]$./darknetdetectortrain./cfg/myd.data./cfg/yolo-myd.cfgyolo-mydlayer filters size0conv 32 3x3/11max 2x2/2input416x416x416x416xoutput332->->416x416x 32208x208x32reorgrouteconvconv/226x 26x 64->13x 13x25627241024503x3/11x1/113x13x13x128013x1024-> 13x-> 13x13x102413x5031detectionLearningRate:0.01,Momentum:0.9,Decay:0.0005Resizing....执行以下命令开头训练:./darknet./darknetdetectortrain./cfg/myd.datacfg/yolo-myd.cfg执行命令后的输出如下:2conv643x3/1208x208x 32->208x208x 643max2x2/2208x208x 64->104x104x 644conv1283x3/1104x104x 64->104x104x1285conv641x1/1104x104x128->104x104x 646conv1283x3/1104x104x 64->104x104x1287max2x2/2104x104x128->52x 52x1288conv2563x3/152x 52x128->52x 52x2569conv1281x1/152x 52x256->52x 52x12810conv2563x3/152x 52x128->52x 52x25611max2x2/252x 52x256->26x 26x25612conv5123x3/126x 26x256->26x 26x51213conv2561x1/126x 26x512->26x 26x25614conv5123x3/126x 26x256->26x 26x51215conv2561x1/126x 26x512->26x 26x25616conv5123x3/126x 26x256->26x 26x51217max2x2/226x 26x512->13x 13x51218conv10243x3/113x13x512->13x13x102419conv5121x1/113x13x1024->13x13x51220conv10243x3/113x13x512->13x13x102421conv5121x1/113x13x1024->13x13x51222conv10243x3/113x13x512->13x13x102423conv10243x3/113x13x1024->13x13x102424conv10243x3/113x13x1024->13x13x102425route1626conv641x1/126x26x512->26x26x 64训练过程中会打印训练进度的信息,如下所示:Loaded:0.000000secondsRegionAvgIOU:0.160720,Class:0.231168,Obj:0.521430,NoObj:0.413074,AvgRecall:0.000000, count:2RegionAvgIOU:0.180606,Class:0.679878,Obj:0.386150,NoObj:0.408220,AvgRecall:0.000000, count:11:186.851959,186.851959avg,0.000000rate,0.950000seconds,2imagesLoaded:0.000000secondsRegionAvgIOU:0.254033,Class:0.317158,Obj:0.520234,NoObj:0.409462,AvgRecall:0.202300, count:5RegionAvgIOU:0.241384,Class:0.085939,Obj:0.527829,NoObj:0.407437,AvgRecall:0.000000, count:12:216.814362,189.848206avg,0.000000rate,0.550000seconds,4imagesLoaded:0.000000secondsRegionAvgIOU:0.226418,Class:0.028838,Obj:0.529031,NoObj:0.421976,AvgRecall:0.000000, count:2RegionAvgIOU:0.001094,Class:0.286836,Obj:0.057044,NoObj:0.412083,AvgRecall:0.000000, count:13:279.181519,198.781540avg,0.000000rate,0.550000seconds,6imagesLoaded:0.000000secondsRegionAvgIOU:0.161439,Class:0.111352,Obj:0.491796,NoObj:0.411375,AvgRecall:0.000000, count:5RegionAvgIOU:0.245507,Class:0.220506,Obj:0.330526,NoObj:0.407965,AvgRecall:0.000000, count:54:250.851227,203.988510avg,0.000000rate,0.580000seconds,8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论