导航:首页 > 配服务器 > gpu云服务器搭建yolo

gpu云服务器搭建yolo

发布时间:2023-04-10 11:42:50

㈠ 本地显卡挂载到云服务器上去

将本地显卡挂载到云服务器扒袭上需要使用GPU虚拟化技术,这通常需要在云服务提供商的平台上进行设置和配置。以下是一些可能的步骤:

1. 选择支持GPU虚拟化的云服务器:首先要确保您选择了支持GPU虚拟化的云服务器,例如AWS EC2、Azure VM等。

2. 安装驱动程序:安装与您本地显卡相对应版本的驱动程序,并确保其能够正常工作。

3. 配置虚拟机:创建一个新的虚拟机实例,并启用GPU加速选项。根据不同平台和操作系统,具体配置方法会有所不同,请参考相关文档或联系云服务提供商获取帮助。

4. 测试并调整性能:完成以上步骤后,可以测试并调整性能春戚兄以达到最佳效果。如果遇到问题或无法仔迟解决,请咨询相关技术人员寻求帮助。

需要注意的是,在使用GPU加速时要注意资源分配和管理,以免影响其他任务或造成额外费用。

㈡ yolov4-masaic数据增强方法

yolov4-masaic数据增强方法

原文链接: Mosaic数据增强_Alex-CSDN博客_mosaic数据增强

原理:Mosaic数据增强方式简单来说就是把4张图片,通过随机缩放、随机裁减、随机排布的方式进行握态拼接。根据论文的说法,优点是丰富了检源档测物体的背景和小目标,并且在计算Batch Normalization的时候一次会计算四张图片的数据,使得mini-batch大小不需要很大,一个GPU就可以达到比较好的效果。

流程图:

优点:

    丰富数据集:随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好

    减少GPU:直接计算4张图片的数据,使得Mini-batch大小并不需要很大,一个GPU就可以达到雹皮乱比较好的效果

缺点:

    如果我们的数据集本身就有很多的小目标,那么Mosaic数据增强会导致本来较小的目标变得更小,导致模型的泛化能力变差

㈢ 没有显卡能用虚拟显卡吗

启用Docker虚拟机GPU,加速深度学习_AndyCheng_hgcc的博客

Docker虚拟机首先说一下Docker虚拟机。为什么需要虚拟机?不知道你是否有过这样的经历,在github上看到一个有趣的开源项目,把代码下载下来,按照项目上的说明编译运行,结果发现怎么也不能成功。

继续访问

linux怎么训练神经网络,神经网络训练在Linux虚拟机的速度快过...

checkbias:float64checkdata:float64==>floattype:float32Datasetisloaded...train60000andtest10000Epoch1:5542/10000,Cost(ontrain):1.9846122093061607,roundtime(s):20.16...

继续访问

深度学习训练吃显卡_深度学习为什么需要显卡计算?

先解释一点,深度学习为什么需要显卡计算?GPU是为大规模的并行运算而优化;GPU上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等);GPU往往拥有更大带宽的显存,因此在大吞吐量的应用中也会有很好的性能。这里有一个很有趣的解释视频,解释了GPU和CPU的计算区别。所以显卡选择最重要,因为准备基于CUDA计算(CUDA(ComputeUnifiedDevice...

继续访问

深度学习没有GPU怎么办?

方案内容缺点方案一厅戚买矿卡P106-100,闲鱼上不写运费的都是默认顺丰到付,我试了下,已经起纠纷了.矿卡损耗极大,买这个基本接盘,现在还在和卖家磨嘴皮子退货方案二尝试kagglenotebook训练中途把模型传到gitlfs,因为是大型文件,所以不能github,只能是gitlfsgit的机制是会记录历史数据,然后gitlfs...

继续访问

实验室一块GPU都没有怎么做深度学习?

链接:https://pan..com/s/1ncREw6Na9ycZptdxiVMApw

提取码:appk获得已有的Yolo3框架我使用的Yolo

继续访问

在Windows11平台上使用Hyper-V、WSL与虚拟机工具——调用NVIDIA-GPU进行深度学习训练

1、目的是出于在window上安装虚拟机穿透nvidia-gpu进行gpu调用加速。2、英伟达正式启用GPU虚拟机显卡直通功能:英伟达宣布,完全支持GeForceGPU直通技术,该技术允许虚拟机从主机上访问GPU。

继续访问

热门推荐虚拟机上不能使用CUDA

虚拟机的显卡是虚拟的,不能中拆使用CUDA(至少很难),搞了一天才晃过神来:

继续访问

无GPU咋做深度学习、AI?恒源云使用指南

搞深度学习没有GPU可咋办,老师不给买,colab又不稳定,难道自己配一台深度学习工作站吗?由于之前的矿潮和芯片荒,且不说买的显卡是否够用,现在显卡价格还处于高位,现在买一块显卡还是挺亏的!经过本人不断探索,终于找到了一家便宜、好用的GPU云服务器平台,恒源云(卖伏枣gpushare.com)。对于学生党,第一要位就是价格,各位看官看下图,3090只要3r/h,2080ti也只要2r/h,这个价格够公道了吧!平常跑跑模型用不了几个钱,而且新手或者学生的代金券领完也100多r,这合计40多小时的3090免费

继续访问

最新发布深度学习训练模型时,GPU显存不够怎么办?

作者丨游客26024@知乎(已授权)编辑丨极市平台来源丨https://www.hu.com/question/461811359/answer/2492822726题外话,我为什么要写这篇博客,就是因为我穷!没钱!租的服务器使用多GPU时一会钱就烧没了(gpu内存不用),急需要一种trick,来降低内存加速。回到正题,如果我们使用的数据集较大,且网络较深,则会造成训练较慢,此时我们要想加...

继续访问

gcp试用gpu_如何在GCP上创建启用GPU的VM来训练您的神经网络

gcp试用,.(s)...

继续访问

安装虚拟机之后怎么配置虚拟环境、深度学习、深度强化学习环境安装

一、配置虚拟机VMware安装包&Ubuntu的光盘映像文件:在下面链接中选择自己想要下载的Linux系统光盘映像文件和VMware安装包。下载链接:下载Ubuntu&VMware的网盘链接.VMware安装安装链接:VMware安装的CSDN链接.Ubuntu安装打开VMware,点击创建新的虚拟机选择典型(推荐),并进入下一步浏览我们下载的iso文件目录安装程序光盘映像文件输入自己的信息选择一个适合的磁盘,新建一个文件夹作为安装虚拟机的位置之后按照

继续访问

显卡给2个虚拟机_虚拟化下的显卡

5G时代的到来让PC/图形工作站有了更大的突破。不受带宽和网络的限制,图形计算以及重载应用的“云”需求将爆发式增长,图形云将成为未来的趋势。图形处理引擎——显卡所有电脑都有一个重要的硬件——显卡(GPU)。GPU是图形处理的核心部件,对图形处理起到加速作用。显卡采用立方环境的材质贴图、硬体T&L、顶点混合、凹凸的映射贴图和纹理压缩、双重纹理四像素256位的渲染引擎等重要技术,在...

继续访问

没有显卡怎么使用anaconda配置tensorflow深度学习环境

深度学习环境配置——windows下的tensorflow-cpu=2.2.0环境配置环境内容tensorflow-cpu:2.2.0无需装keras,tensorflow因为自带了。环境配置一、Anaconda安装Anaconda的安装主要是为了方便环境管理,可以同时在一个电脑上安装多种环境,不同环境放置不同框架:pytorch、tensorflow、keras可以在不同的环境下安装,只需要使用condacreate–n创建新环境即可。1、Anaconda的下载——————..

继续访问

实验室没有显卡怎么深度学习

最近显卡奇缺,遍历了网上各种平台薅GPU羊毛,这里给大家介绍以下这个平台的福利!!!先附上链接:恒源云_GPUSHARE-恒源智享云恒源智享云gpushare.com是一个专注AI行业的共享算力平台,旨在为用户提供高性比价的GPU云主机和存储服务,让用户拥有高效的云端编程和训练体验,不再担忧硬件迭代/环境搭建/数据存储等一系列问题。https://gpushare.com/auth/register?user=18*****7729&fromId=ce701711122&sou

继续访问

【深度学习CPU(番外篇)——虚拟内存】

㈣ YOLO(一) 算法的原理及演变

第一次接触到yolo这个算法是通过吴恩达的教学视频了解到的,当时其实也算是第一次接触到目标检测算法。这里我们主要介绍下YOLO(You Only Look Once)。现在已经进化到了V3版本了。它不同于Faster RCNN这个分支走的两部策略先进行前景识别在进行目标检测,它是直接一步到位进行目标检测。因此在识别的速度物掘上优于Faster RCNN(5 FPS), 而 YOLO_v1基础版在Titan X GPU上可以达到45帧/s; 快速版可以达到150帧/s。但是在准确率上YOLO是稍差与Faster RCNN这个在之后会详细介绍。顺便提下如果想了解Faster RCNN原理可以参考 Faster-RCNN的原理及演变 。

我们知道YOLO其实就是 You Only Look Once, 意思是只需要看一眼就知道位置及对象,个人觉得蛮形象的。他不需要Faster RCNN的RPN结构,他其实选取anchor是预订了候选框,将图片划分为7x7的网格,每个网格允许有2个不同的bounding box. 这样一开始我们就有7x7x2个候选框(bounding box), 大致粗略覆盖了图像的整个区域。他的思想就是Faster RCNN在第一阶段就算有了回归框,在第二阶段还是需要进行精调,那还不如就先生成大致回归框就ok了。

下面我们就来好好介绍一下这个模型。

一、模型结构

其实将这个模型简单话为:

那30又是如何形成的通道大小的呢?

a. 2个bounding box的位置(8个通道)
每个bounding box需要4个数值来表示其位置,(Center_x,Center_y,width,height),即(bounding box的中心点的x坐标,y坐标,bounding box的宽度,高度),2个bounding box共需要弯蚂亮8个数值来表示其位置。

b. 2个bounding box 置信度(2个通道)

c. 20分类概率(20个通道)
下面我们来说一下剩下20维度的分类通道。每一个通道代表一个类别的分类概率。因为YOLO支持识别20种不同的对象(人、鸟、猫、汽车、椅子等),所以这里有20个值表示该网格位置存在任一种对象的概率。 但是我们一组图片只能预测49个对象,可以理解为一个grid2个achor只能有一个预测准的对象(即计算IOU比例最大的那个anchor),所以7x7个对象

图中将自行车的位置放在bounding box1,但实际上是在训练过程中等网络输出以后,比较两个bounding box与自行车实际位置的IOU,自行车的位置(实际bounding box)放置在IOU比较大的那个bounding box(图中假设是bounding box1),且该bounding box的置信度设为1

二、 损失函数

总的来说,就是用网络输出与样本标签的各项内容的误差平埋宽方和作为一个样本的整体误差。
损失函数中的几个项是与输出的30维向量中的内容相对应的。

三、 YOLO v1 缺陷

注意:

细节:
YOLO的最后一层采用线性激活函数,其它层都是Leaky ReLU。训练中采用了drop out和数据增强(data augmentation)来防止过拟合。更多细节请参考原论文

在67 FPS,YOLOv2在PASCAL VOC 2007上获得76.8%的mAP。在40 FPS时,YOLOv2获得78.6%mAP,这比使用ResNet和SSD 更快的R-CNN更好。凭借如此优异的成绩,YOLOv2于2017年CVPR发布并获得超过1000次引用。YOLO有两个缺点:一个缺点在于定位不准确,另一个缺点在于和基于region proposal的方法相比召回率较低。因此YOLOv2主要是要在这两方面做提升。另外YOLOv2并不是通过加深或加宽网络达到效果提升,反而是简化了网络。

下面主要从两点来介绍下YOLO v2的提升之处。分别是Better以及Faster.

1、Darknet-19
在YOLO v1中,作者采用的训练网络是基于GooleNet,这里作者将GooleNet和VGG16做了简单的对比,GooleNet在计算复杂度上要优于VGG16(8.25 billion operation VS 30.69 billion operation),但是前者在ImageNet上的top-5准确率要稍低于后者(88% VS 90%)。而在YOLO v2中,作者采用了新的分类模型作为基础网络,那就是Darknet-19。Table6是最后的网络结构:Darknet-19只需要5.58 billion operation。这个网络包含19个卷积层和5个max pooling层,而在YOLO v1中采用的GooleNet,包含24个卷积层和2个全连接层,因此Darknet-19整体上卷积卷积操作比YOLO v1中用的GoogleNet要少,这是计算量减少的关键。最后用average pooling层代替全连接层进行预测。这个网络在ImageNet上取得了top-5的91.2%的准确率。

2、Training for Classification
这里的2和3部分在前面有提到,就是训练处理的小trick。这里的training for classification都是在ImageNet上进行预训练,主要分两步:1、从头开始训练Darknet-19,数据集是ImageNet,训练160个epoch,输入图像的大小是224 224,初始学习率为0.1。另外在训练的时候采用了标准的数据增加方式比如随机裁剪,旋转以及色度,亮度的调整等。2、再fine-tuning 网络,这时候采用448 448的输入,参数的除了epoch和learning rate改变外,其他都没变,这里learning rate改为0.001,并训练10个epoch。结果表明fine-tuning后的top-1准确率为76.5%,top-5准确率为93.3%,而如果按照原来的训练方式,Darknet-19的top-1准确率是72.9%,top-5准确率为91.2%。因此可以看出第1,2两步分别从网络结构和训练方式两方面入手提高了主网络的分类准确率。

3、Training for Detection
在前面第2步之后,就开始把网络移植到detection,并开始基于检测的数据再进行fine-tuning。首先把最后一个卷积层去掉,然后添加3个3 3的卷积层,每个卷积层有1024个filter,而且每个后面都连接一个1 1的卷积层,1 1卷积的filter个数根据需要检测的类来定。比如对于VOC数据,由于每个grid cell我们需要预测5个box,每个box有5个坐标值和20个类别值,所以每个grid cell有125个filter(与YOLOv1不同,在YOLOv1中每个grid cell有30个filter,还记得那个7 7 30的矩阵吗,而且在YOLOv1中,类别概率是由grid cell来预测的,也就是说一个grid cell对应的两个box的类别概率是一样的,但是在YOLOv2中,类别概率是属于box的,每个box对应一个类别概率,而不是由grid cell决定,因此这边每个box对应25个预测值(5个坐标加20个类别值),而在YOLOv1中一个grid cell的两个box的20个类别值是一样的)。另外作者还提到将最后一个3 3*512的卷积层和倒数第二个卷积层相连。最后作者在检测数据集上fine tune这个预训练模型160个epoch,学习率采用0.001,并且在第60和90epoch的时候将学习率除以10,weight decay采用0.0005。

这里yolo v3相对于yolo v2有三点:1. 利用多尺度特征进行对象检测 2. 调整基础网络结构

㈤ 【目标检测】YOLO论文详解(You Only Look Once: Unified, Real-Time Object Detection)

论文原文: https://arxiv.org/abs/1506.02640

YOLO(you only look once)是继RCNN、faster-RCNN之后,又一里程碑式的目标检测算法。yolo在保持不错的准确度的情况下,解决了当时基于深度学习的检测中的痛点---速度问题。下图是各目标检测系统的检测性能对比:

如果说faster-RCNN是真正实现了完全基于深度学习的端到端的检测,那么yolo则是更进一步,将 目标区域预测 目标类别判断 整合到单个神经网络模型中。各检测算法结构见下图:

每个网格要预测B个bounding box,每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值。这个confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息,其值是这样计算的:

其中如果有object落在一个grid cell里,第一项取1,否则取0。第二项是预测的bounding box和实际的groundtruth之间的IoU值。

每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。即SxS个网格,每个网格除了要预测B个bounding box外,还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。(注意:class信息是针对每个网格的,即一个网格只预测一组类别而不管里面有多少个bounding box,而confidence信息是针对每个bounding box的。)

举例说明: 在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。整个网络结构如下图所示:

在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score:

等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS(非极大值抑制non-maximum suppresssion)处理,就得到最终的检测结果。

1、每个grid因为预测两个bounding box有30维(30=2*5+20),这30维中,8维是回归box的坐标,2维是box的confidence,还有20维是类别。其中坐标的x,y用bounding box相对grid的offset归一化到0-1之间,w,h除以图像的width和height也归一化到0-1之间。

2、对不同大小的box预测中,相比于大box预测偏一点,小box预测偏一点肯定更不能被忍受的。而sum-square error loss中对同样的偏移loss是一样。为了缓和这个问题,作者用了一个比较取巧的办法,就是将box的width和height取平方根代替原本的height和width。这个参考下面的图很容易理解,小box的横轴值较小,发生偏移时,反应到y轴上相比大box要大。其实就是让算法对小box预测的偏移更加敏感。

3、一个网格预测多个box,希望的是每个box predictor专门负责预测某个object。具体做法就是看当前预测的box与ground truth box中哪个IoU大,就负责哪个。这种做法称作box predictor的specialization。

4、损失函数公式见下图:

在实现中,最主要的就是怎么设计损失函数,坐标(x,y,w,h),confidence,classification 让这个三个方面得到很好的平衡。简单的全部采用sum-squared error loss来做这件事会有以下不足:

解决方法:

只有当某个网格中有object的时候才对classification error进行惩罚。只有当某个box predictor对某个ground truth box负责的时候,才会对box的coordinate error进行惩罚,而对哪个ground truth box负责就看其预测值和ground truth box的IoU是不是在那个cell的所有box中最大。

作者采用ImageNet 1000-class 数据集来预训练卷积层。预训练阶段,采用网络中的前20卷积层,外加average-pooling层和全连接层。模型训练了一周,获得了top-5 accuracy为0.88(ImageNet2012 validation set),与GoogleNet模型准确率相当。

然后,将模型转换为检测模型。作者向预训练模型中加入了4个卷积层和两层全连接层,提高了模型输入分辨率(224×224->448×448)。顶层预测类别概率和bounding box协调值。bounding box的宽和高通过输入图像宽和高归一化到0-1区间。顶层采用linear activation,其它层使用 leaky rectified linear。

作者采用sum-squared error为目标函数来优化,增加bounding box loss权重,减少置信度权重,实验中,设定为lambda _{coord} =5 andlambda _{noobj}=0.5 。

作者在PASCAL VOC2007和PASCAL VOC2012数据集上进行了训练和测试。训练135轮,batch size为64,动量为0.9,学习速率延迟为0.0005。Learning schele为:第一轮,学习速率从0.001缓慢增加到0.01(因为如果初始为高学习速率,会导致模型发散);保持0.01速率到75轮;然后在后30轮中,下降到0.001;最后30轮,学习速率为0.0001。

作者还采用了dropout和 data augmentation来预防过拟合。dropout值为0.5;data augmentation包括:random scaling,translation,adjust exposure和saturation。

YOLO模型相对于之前的物体检测方法有多个优点:

1、 YOLO检测物体非常快

因为没有复杂的检测流程,只需要将图像输入到神经网络就可以得到检测结果,YOLO可以非常快的完成物体检测任务。标准版本的YOLO在Titan X 的 GPU 上能达到45 FPS。更快的Fast YOLO检测速度可以达到155 FPS。而且,YOLO的mAP是之前其他实时物体检测系统的两倍以上。

2、 YOLO可以很好的避免背景错误,产生false positives

不像其他物体检测系统使用了滑窗或region proposal,分类器只能得到图像的局部信息。YOLO在训练和测试时都能够看到一整张图像的信息,因此YOLO在检测物体时能很好的利用上下文信息,从而不容易在背景上预测出错误的物体信息。和Fast-R-CNN相比,YOLO的背景错误不到Fast-R-CNN的一半。

3、 YOLO可以学到物体的泛化特征

当YOLO在自然图像上做训练,在艺术作品上做测试时,YOLO表现的性能比DPM、R-CNN等之前的物体检测系统要好很多。因为YOLO可以学习到高度泛化的特征,从而迁移到其他领域。

尽管YOLO有这些优点,它也有一些缺点:

1、YOLO的物体检测精度低于其他state-of-the-art的物体检测系统。

2、YOLO容易产生物体的定位错误。

3、YOLO对小物体的检测效果不好(尤其是密集的小物体,因为一个栅格只能预测2个物体)。

㈥ yolo可以用amd显卡跑吗

可以。
yolo它对显早明卡的要求并不是特别高,现在用amd显卡是完陆伏告全可以支持厅配的。1、不只追求图形渲染性能,更注重于通用运算性能的提升,面向未来高运算显卡。<>br2、入门级、主流级的产品,性价比高。
3、支持AMDEyefinity宽屏等等。

㈦ 没有gpu如何运行深度神经网络

没有gpu用云服务器运行深度神经网络。深肢袜悉度学习可以理解为深度神经网络进行机械学习,这种情况必须得用GPU,还得好几块,同时还得搭历乎配好缺容量更大的内存,如果没有GPU,用云服务器跑深度学习也可以。

㈧ gpu云服务器试用

题主是否想询问“gpu云服务器怎么使用”?
1、选择一个合适游指掘的GPU云服务器提供商,如阿里云、腾讯云等。登录云服务器控制台,在控制台中创建一个GPU云服务器实例。需要选择合适的配置,包括CPU、GPU、内存、存储等。
2、在实例创建完成后,登录到服务器系统中,安装相应的GPU驱动和运行所需的软件和工具。
3、开始使用GPU云服务器进逗悄行计算、模型训练等任务。可以使用SSH连接到服务器,或通过远程桌面等方式进神核行操作。

㈨ 什么是GPU云服务器

GPU 云服务器(GPU Cloud Computing,简称 GPU)是基于 GPU 应用的计算服务,具有实时高速的并行计算和浮点计算能力,一般适用于 3D 图形应用程序、视频解码、深度学习、科学计算等应用场景。

通常,GPU云服务器厂商提供和标准云服务器租用一致的管理方式,可以有效解放用户的计算压力,提升产品的计算处理效率与竞争力。

gpu云服务器的适用场景

适用于深度学习训练和推理,图像识别、语音识别等;计算金融学、地震分析、分子建模、基因组学、计算流体动力学等;高清视频转码、安防视频监控、大型视频会议等;三维设计与渲染、影音动画制作、工程建模与仿真(CAD/CAE)、医学成像、游戏测试等等。

gpu云服务器的使用性能

GPU云主机突破了传统GPU,能发挥极致性能,具有高并行、高吞吐、低时延等特点,在科学计算表现中,性能比传统架构提高几十倍。用户无需预先采购、准备硬件资源,可一次性购买,免除硬件更新带来的额外费用,能有效降低基础设施建设投入。

以上是关于GPU 云服务器的相关介绍。

㈩ YOLO 目标检测实战项目‘原理篇’

在目标检测中,IoU 为预测框 (Prediction) 和真实框 (Ground truth) 的交并比。如下图所示,在关于小猫的目标检测中,紫线边框为预测框 (Prediction),红线边框为真实框 (Ground truth)。

在目标检测任务中,通常取 IoU≥0.5,认为召回。如果 IoU 阈值设置更高,召回率将会降低,但定位框则更加精确。

理想的情况,当然是预测框与真实框重叠越多越好,如果两者完全重叠,则交集与并集面积相同,此时 IoU 等于 1。

之前的目标检测方法需要先产生候选区再检测的方法虽然有相对较高的检测准确率,但运行速度较慢。

YOLO 将识别与定位合二为一,结构简便,检测速度快,更快的 Fast YOLO 可以达到 155FPS。

YOLO 网络借鉴了 GoogLeNet 分类网络结构,不同的是 YOLO 使用 1x1 卷积层和 3x3 卷积层替代 inception mole。如下图所示,整个检测网络包括 24 个卷积层和 2 个全连接层。其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值。

如上图所示,损失函数分为坐标预测(蓝色框)、含有物体的边界框的 confidence 预测(红色框)、不含有物体的边界框的 confidence 预测(黄色框)、分类预测(紫色框)四个部分。

由于不同大小的边界框对预测偏差的敏感度不同,小的边界框对预测偏差的敏感度更大。为了均衡不同尺寸边界框对预测偏差的敏感度的差异。作者巧妙的对边界框的 w,h 取均值再求 L2 loss. YOLO 中更重视坐标预测,赋予坐标损失更大的权重,记为 coord,在 pascal voc 训练中 coodd=5 ,classification error 部分的权重取 1。

某边界框的置信度定义为:某边界框的 confidence = 该边界框存在某类对象的概率 pr (object)* 该边界框与该对象的 ground truth 的 IOU 值 ,若该边界框存在某个对象 pr (object)=1 ,否则 pr (object)=0 。由于一幅图中大部分网格中是没有物体的,这些网格中的边界框的 confidence 置为 0,相比于有物体的网格,这些不包含物体的网格更多,对梯度更新的贡献更大,会导致网络不稳定。为了平衡上述问题,YOLO 损失函数中对没有物体的边界框的 confidence error 赋予较小的权重,记为 noobj,对有物体的边界框的 confidence error 赋予较大的权重。在 pascal VOC 训练中 noobj=0.5 ,有物体的边界框的 confidence error 的权重设为 1.

YOLOv1 虽然检测速度快,但在定位方面不够准确,并且召回率较低。为了提升定位准确度,改善召回率,YOLOv2 在 YOLOv1 的基础上提出了几种改进策略

YOLOv2 中在每个卷积层后加 Batch Normalization (BN) 层,去掉 dropout. BN 层可以起到一定的正则化效果,能提升模型收敛速度,防止模型过拟合。YOLOv2 通过使用 BN 层使得 mAP 提高了 2%。

目前的大部分检测模型都会使用主流分类网络(如 vgg、resnet)在 ImageNet 上的预训练模型作为特征提取器,而这些分类网络大部分都是以小于 256x256 的图片作为输入进行训练的,低分辨率会影响模型检测能力。YOLOv2 将输入图片的分辨率提升至 448x448,为了使网络适应新的分辨率,YOLOv2 先在 ImageNet 上以 448x448 的分辨率对网络进行 10 个 epoch 的微调,让网络适应高分辨率的输入。通过使用高分辨率的输入,YOLOv2 的 mAP 提升了约 4%。

YOLOv1 利用全连接层直接对边界框进行预测,导致丢失较多空间信息,定位不准。YOLOv2 去掉了 YOLOv1 中的全连接层,使用 Anchor Boxes 预测边界框,同时为了得到更高分辨率的特征图,YOLOv2 还去掉了一个池化层。由于图片中的物体都倾向于出现在图片的中心位置,若特征图恰好有一个中心位置,利用这个中心位置预测中心点落入该位置的物体,对这些物体的检测会更容易。所以总希望得到的特征图的宽高都为奇数。YOLOv2 通过缩减网络,使用 416x416 的输入,模型下采样的总步长为 32,最后得到 13x13 的特征图, 然后对 13x13 的特征图的每个 cell 预测 5 个 anchor boxes ,对每个 anchor box 预测边界框的位置信息、置信度和一套分类概率值。使用 anchor boxes 之后,YOLOv2 可以预测 13x13x5=845 个边界框,模型的召回率由原来的 81% 提升到 88%,mAP 由原来的 69.5% 降低到 69.2%. 召回率提升了 7%,准确率下降了 0.3%。

YOLOv2 采用 Darknet-19,其网络结构如下图所示,包括 19 个卷积层和 5 个 max pooling 层,主要采用 3x3 卷积和 1x1 卷积, 这里 1x1 卷积可以压缩特征图通道数以降低模型计算量和参数 ,每个卷积层后使用 BN 层 以加快模型收敛同时防止过拟合。最终采用 global avg pool 做预测。采用 YOLOv2,模型的 mAP 值没有显着提升,但计算量减少了。

在 Faster R-CNN 和 SSD 中,先验框都是手动设定的,带有一定的主观性。YOLOv2 采用 k-means 聚类算法对训练集中的边界框做了聚类分析,选用 boxes 之间的 IOU 值作为聚类指标。综合考虑模型复杂度和召回率,最终选择 5 个聚类中心,得到 5 个先验框,发现其中中扁长的框较少,而瘦高的框更多,更符合行人特征。通过对比实验,发现用聚类分析得到的先验框比手动选择的先验框有更高的平均 IOU 值,这使得模型更容易训练学习。

Faster R-CNN 使用 anchor boxes 预测边界框相对先验框的偏移量,由于没有对偏移量进行约束,每个位置预测的边界框可以落在图片任何位置,会导致模型不稳定,加长训练时间。YOLOv2 沿用 YOLOv1 的方法,根据所在网格单元的位置来预测坐标,则 Ground Truth 的值介于 0 到 1 之间。网络中将得到的网络预测结果再输入 sigmoid 函数中,让输出结果介于 0 到 1 之间。设一个网格相对于图片左上角的偏移量是 cx,cy。先验框的宽度和高度分别是 pw 和 ph,则预测的边界框相对于特征图的中心坐标 (bx,by) 和宽高 bw、bh 的计算公式如下图所示。

YOLOv2 结合 Dimention Clusters, 通过对边界框的位置预测进行约束,使模型更容易稳定训练,这种方式使得模型的 mAP 值提升了约 5%。

YOLOv2 借鉴 SSD 使用多尺度的特征图做检测,提出 pass through 层将高分辨率的特征图与低分辨率的特征图联系在一起,从而实现多尺度检测。YOLOv2 提取 Darknet-19 最后一个 max pool 层的输入,得到 26x26x512 的特征图。经过 1x1x64 的卷积以降低特征图的维度,得到 26x26x64 的特征图,然后经过 pass through 层的处理变成 13x13x256 的特征图(抽取原特征图每个 2x2 的局部区域组成新的 channel,即原特征图大小降低 4 倍,channel 增加 4 倍),再与 13x13x1024 大小的特征图连接,变成 13x13x1280 的特征图,最后在这些特征图上做预测。使用 Fine-Grained Features,YOLOv2 的性能提升了 1%.

YOLOv2 中使用的 Darknet-19 网络结构中只有卷积层和池化层,所以其对输入图片的大小没有限制。YOLOv2 采用多尺度输入的方式训练,在训练过程中每隔 10 个 batches , 重新随机选择输入图片的尺寸,由于 Darknet-19 下采样总步长为 32,输入图片的尺寸一般选择 32 的倍数 {320,352,…,608}。采用 Multi-Scale Training, 可以适应不同大小的图片输入,** 当采用低分辨率的图片输入时,mAP 值略有下降,但速度更快,当采用高分辨率的图片输入时,能得到较高 mAP 值,但速度有所下降。**

YOLOv2 借鉴了很多其它目标检测方法的一些技巧,如 Faster R-CNN 的 anchor boxes, SSD 中的多尺度检测。除此之外,YOLOv2 在网络设计上做了很多 tricks, 使它能在保证速度的同时提高检测准确率,Multi-Scale Training 更使得同一个模型适应不同大小的输入,从而可以在速度和精度上进行自由权衡。

YOLO v2 对 YOLO v1 的缺陷进行优化,大幅度高了检测的性能,但仍存在一定的问题, 如无法解决重叠问题的分类等

将 256x256 的图片分别输入以 Darknet-19,ResNet-101,ResNet-152 和 Darknet-53 为基础网络的分类模型中,实验得到的结果如下图所示。可以看到 Darknet-53 比 ResNet-101 的性能更好,而且速度是其 1.5 倍,Darknet-53 与 ResNet-152 性能相似但速度几乎是其 2 倍。注意到,Darknet-53 相比于其它网络结构实现了每秒最高的浮点计算量,说明其网络结构能更好的利用 GPU。

YOLOv3 借鉴了 FPN 的思想,从不同尺度提取特征。相比 YOLOv2,YOLOv3 提取最后 3 层特征图,不仅在每个特征图上分别独立做预测,同时通过将小特征图上采样到与大的特征图相同大小,然后与大的特征图拼接做进一步预测。用维度聚类的思想聚类出 9 种尺度的 anchor box,将 9 种尺度的 anchor box 均匀的分配给 3 种尺度的特征图 .

在实际应用场合中,一个物体有可能输入多个类别,单纯的单标签分类在实际场景中存在一定的限制。举例来说,一辆车它既可以属于 car(小汽车)类别,也可以属于 vehicle(交通工具),用单标签分类只能得到一个类别。因此在 YOLO v3 在网络结构中把原先的 softmax 层换成了逻辑回归层,从而实现把单标签分类改成多标签分类。用多个 logistic 分类器代替 softmax 并不会降低准确率,可以维持 YOLO 的检测精度不下降。

对于对象检测,不仅要考虑精度,还要考虑实时运行的性能,虽然现在算力大幅度上升,但是普通的设备跑起来还是有点吃力。提高精度和加快速率仍是目标检测的重大课题,道阻且长!

参考:

YOLOv1 参考

YOLOv2 参考

YOLOv3 参考

https://mp.weixin.qq.com/s/yccBloK5pOVxDIFkmoY7xg :非极大抑制

阅读全文

与gpu云服务器搭建yolo相关的资料

热点内容
单片机作业三 浏览:156
古代分数运算法则 浏览:149
电脑大文件夹查找方法 浏览:934
什么app可以买国外衣服 浏览:381
妈妈吃了命令药丸 浏览:710
男的进国企做程序员 浏览:992
程序员的数学线性代数 浏览:371
冰箱压缩机启动器盒怎么拆 浏览:441
雪崩pdf 浏览:950
桂林银行app如何查询积分和等级 浏览:283
app第三方接入都有什么 浏览:585
win7命令快捷键 浏览:541
安卓手机上的主键按不了了怎么办 浏览:938
前端小程序加密 浏览:889
python写xls 浏览:310
压缩干粮图片 浏览:838
怎么看网站被加密的视频 浏览:850
哪个app可以弄会动的照片模板 浏览:274
如何关闭电脑的时钟源服务器 浏览:904
adb命令设置主屏幕应用 浏览:990