检测系列--YOLO系列

开头语:RCNN系列,需要区域候选框,即便最后是多任务损失函数,但回归和分类各是一块是很明显的,而yolo要把分类问题转换成回归,这样的話就全是回归。

一.yolo v1

1,介绍,此时输入size要一致448*448

2,框架,googlenet作为主干网络,但注意经过了一些改进,并没有用到多通路做法

3,红色箭头是经改进的googlenet出来的,改进地方在于没有用googlenet多通路做法,而是1x1降维,3x3卷积提取,1x1升维

其中7x7是网格的划分,通道数30=(B*5+C),B是每个网格负责预测的目标个数,5是坐标+置信度,C是类别,每个bound box对应5个参数,B是用来确认是目标还是背景,与C的 每一类概率相乘来确认是哪一类,这里要注意的就是每个box共享一个分类的score.候选框筛选到7*7*B,大大减少了候选框,同时也减少与gt试错的机会.

4,一个格子只预测两个bounding box

5,x,y,w,h要归一化到1

这里的回归四个值主要是中心点x,y(注意相对于格点)和 长宽

图片宽为wi,高为hi,box中心点(相对于格点)为(x,y),宽高比例为(wb,hb),col,row代表格点的列数和行数,S代表划分的行列数,预测的box中心点(相对于大图)为(xc,yc)

先看预测阶段,在逆推回训练阶段就好理解了:

预测阶段:

box相对于格点的中心点为:(wi/S)*x,(hi/S)*y

格点相对于大图的坐标为col*(wi/S),row*(hi/S)

故box相对于大图的中心点为:xc= (wi/S)*x+col*(wi/S), yc = (hi/S)*y+row*(hi/S)

训练阶段,也就是要回归box相对于格点的偏移量也就是求x,y

故x =xc*(S/wi) - col,y =yc*(S/hi) - row,

回归宽高就好理解了,回归w= wb/wi,h = hb/hi.

6.目标×属于每一类的概率得到最大可能性是哪一类

7.loss函数

此时还是比较粗暴,全部采用l2 loss.

上面做法存在的问题是:

1.8维的定位Loss和20维的分类Loss同等重要是不合理的;

2.如果一个网络没有物体,那么loss就由没有物体占主导,会将网络的box置信度push到0,导致网络不稳定。

解决办法:

1.对8维的定位Loss给予更大的权重;

2.对没有物体的box的置信度loss给更小的权重;

为了解决不同大小box造成的偏移loss是一样的,将box的width和height取平方根代替原本的height和width。小box的横轴值较小,发生偏移时,反应到y轴上相比大box要大。

8,NMS踢掉剩余的框

9,yolo策略

10,yolo v1效果,因为用到全连接,丢失空间信息故容易产生定位错误

二.yolo v2

其也称为yolo9000.

1,加入bn。

2,取5个anchor boxes

3.每个box都有预测的坐标和类别

4.多尺度训练

每10个Batch,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是32,所以不同的尺寸大小也选择为32的倍数{320,352…..608},最小320*320,最大608*608,网络会自动改变尺寸,并继续训练的过程。

三.yolo v3

backbone采用去除全连接的darknet53,经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小

每个ResX包含1+2*x个卷积层,故包含1+(1+2*1)+(1+2*2)+(1+2*8)+(1+2*8)+(1+2*4)=52

1.anchor由yolov2的5个变为9个;

2.不再使用Softmax进行分类,对每一类使用二分类,分类损失也使用二值交叉熵;

3.采用FPN, 其中包含三个特征图尺度,分别下采样32x,16x,8x,每个特征图上设置三种大小的anchors,对应大、中、小,每一个尺度的特征图上可以得到 N × N × [3 ∗ (4 + 1 + 80)] 的结果,分别是N x N个 gird cell ,3种尺度的anchors,x、y、w、h、confidence、80类;

4.由yolov2的darknet-19升级为darknet-53.

四.yolov4

这篇文章写的很详细很全。

  • Backbone:CSPDarknet53
  • Neck:SPP,PAN
  • Head:YOLOv3

与yolov3差异:

1.CBM:采用的而是Mish激活函数,可看出分类上还是会涨点;

f(x) = xtanh(ς(x)),ς(x) = ln(1+e^x)

                

                                    mish                                                                                                ς(x)与relu


2.CSPX:由卷积和X个Res unit模块concate组成,其借鉴的是CSPNet的思想,主要是从网络结构设计的角度解决推理中计算量大的问题,采用CSP模块先将基础层的特征映射划分为两部分,然后通过跨阶段层次结构将它们合并,在减少了计算量的同时可以保证准确率,每个CSPX包括5+2*x个卷积层;
3.SPP:多尺度最大池化;
4.卷积层采用dropblock,类似cutout,只不过cutout作用于输入层数据,而dropblock作用于网络的每一个特征图,将某个局部区域删除丢弃,比dropout力度大;


5.采用PAN结构

其实就是在FPN输出在增加下采样。融合FPN的语义特征和特征金字塔的位置特征。


6.ciou loss

参考我之前写的这篇文章

参考:

https://zhuanlan.zhihu.com/p/136382095

https://zhuanlan.zhihu.com/p/143747206

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Verilog HDL语言实现ROM、RAM+有限状态机

利用MegaWizard实现创建RAM和ROM。(1)建立1个32单元8bit的RAM,并将0-31填入该RAM;(2)建立1个32单元8bit的ROM,建立.mif文件填入数据,并读出来显示。 (1)、RAM 功能代码: module sh…

重磅!亚马逊将在2019年全面弃用Oracle数据库

来源:AI 前线摘要:11 月 29 日,AI 前线获悉,亚马逊 AWS 首席执行官 Andy Jassy 在正在美国拉斯维加斯召开的 AWS re:Invent 2018 中表示:到 2019 年底,亚马逊将全面放弃使用 Oracle 数据库&…

数字图像处理实验6图像编码

一、实验目的 (1)了解图像编码的目的及意义,加深对图像编码的感性认识。 (2)熟练掌握哈夫曼编码的实现与应用。 (3)掌握行程长度编码的实现与应用,尤其是BMP和PCX文件的行程长度编…

机器人日行十万步却无需动力源!究竟如何完美的机械结构让你开始怀疑人身...

来源:机器人大讲堂摘要:上图这个机器人可不简单,它是世界纪录的保持者,目前最新的纪录是连续步行27小时,总长72公里(相当于十万步还要多)。而最最关键的是,它完全凭借自己完美的机械…

数字图像处理实验5图像复原

一、实验目的 (1)了解图像复原的目的及意义,加深对图像复原理论的认识。 (2)掌握维纳滤波复原基本原理。 (3)掌握约束最小二乘方复原方法。 (4)掌握盲解卷积复原方法…

MVVM模式的一个小例子

使用SilverLight、WPF也有很长时间了,但是知道Binding、Command的基本用法,对于原理性的东西,一直没有深究。如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个小例子,贴上代码,…

实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)

一.计算欧式距离 1,直接for循环 两个点集points1,points2,用dist来存储距离 points1np.array([[1,2],[3,4]]) points2 np.array([[5, 6],[7,8]]) dist np.zeros(shape[points1.shape[0],points2.shape[0]]) for i in range(points1.sha…

数字图像处理实验四图像频域增强

一、实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法。 (2)熟练掌握低通、高通、带通、同态滤波器的使用方法,明确不同性质的滤波器…

卡耐基梅隆大学专家谈核心技术市场化:「AI 周边相关机遇最大」

来源:ZDnet、机器之能编译 | 张玺摘要:技术市场化之难在哪?创业家最常犯什么错误?每位立志创业的朋友都应该研究下这篇对卡耐基梅隆 (CMU) 大学专家的采访。CMU 是全美技术转移最成功的机构之一,斥巨资帮助全校师生实现…

数字图像处理实验三图像增强

一、实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法。 (2)熟练掌握直方图均衡化和直方图规定化的计算过 程。 (3)熟…

matplotlib与seaborn的一些使用

1.plt.plot画线画点 a np.array([[1, 2], [3, 4]]) print(a[:, 0]) plt.plot(a[:, 0], a[:, 1]) plt.show() plt.plot(a[:, 0], a[:, 1], o,colorred) plt.show()#添加风格 plt.plot(x,y,colorred,linewidth1.0,linestyle--) #设置x轴范围 plt.xlim((-1,2)) # …

无人驾驶汽车想要“普渡众生”,还要经历15个磨难

来源:Forbes 、网易智能摘要:无人驾驶汽车的未来与电动平衡车的历史有什么关系吗?电动平衡车也曾被预言将彻底改变交通。史蒂夫•乔布斯曾经说,城市将围绕这一设备重新设计;约翰•杜尔说,它将比互联网更大…

SQL的各种使用方法

一、Select语句例子 使用子查询查询employees表中,属于某一部门员工的姓名、职位、工薪、部门编号的信息 提示: 1)、需要关联employees表、departments表 2)、已知的信息为部门名称,部门名称由用户自己给出 按照要求写出SQL语句。 答案及…

正常矩形计算IOU与与NMS,多边形计算IOU

一.计算IOU def intersect(box_a, box_b):max_xy np.minimum(box_a[:, 2:], box_b[2:])min_xy np.maximum(box_a[:, :2], box_b[:2])inter np.clip((max_xy - min_xy), a_min0, a_maxnp.inf)return inter[:, 0] * inter[:, 1]def jaccard_numpy(box_a, box_b):&…

产业互联网受瞩目:互联网主战场从To C转向To B | 企鹅经济学

来源:科技日报摘要:最近,要论在互联网圈最火的词,非“产业互联网”莫属。如今,言必提产业互联网,已成为互联网圈的一种风潮。互联网的“上半场”已接近尾声,“下半场”的序幕正被拉开&#xff0…

json的用法

json格式 JSON格式:http://www.json.org/ python和JSON的关系请参考:http://docs.python.org/library/json.html JSON建构有两种结构: 1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中&#…

数据库设计方法

一、延续训练题 假设你是一个小的录影带出租店的老板。你的出租店里面有3000部电影。每部电影都有DVD或VHS录像带号码。对于每部电影,需要知道它的标题和类别(如,喜剧,悬疑,剧情,动作,战争&…

谷歌首席科学家:搞研究的痛苦,搞工程的人不懂

来源:量子位作者:Vincent Vanhoucke谷歌首席科学家、谷歌大脑技术负责人Vincent Vanhoucke(万努克)最近发出的一篇“劝退文”,引发海外科研学者的热议。在这博客中,万努克直言以研究为业,固然令…

L1/L2/smooth_l1_loss/center_loss+Dice Loss+focal loss+各种IOU loss+kl散度

一.L1/L2/smooth_l1_loss/center_loss公式与代码 1.公式 L2公式: smooth_L1公式: 2.三种函数numpy代码实现 import numpy as np import matplotlib.pyplot as plt#y |x| def L1():x np.arange(-2, 2, 0.01)y abs(x)plt.figure()plt.plot(x, y, …

虚拟机中Linux安装Tools

1. 插入光盘后将文件拷贝到常用放置软件的目录 2. 解压文件 3. 然后进入解压后的文件夹里找到安装文件进行安装(注意使用root权限安装) 4. 安装时也是一个交互的过程 5. 完成安装 转载于:https://www.cnblogs.com/ywj2013/p/3578931.html