检测系列--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) = x・tanh(ς(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
检测系列--YOLO系列相关推荐
- 目标检测模型 YOLO系列
目标检测模型 YOLO系列 文章目录 目标检测模型 YOLO系列 YOLOv1 一.背景 二.YOLO模型 主要思想 模型结构 损失函数 三.优缺点 四.参考 YOLOv2与YOLO9000 YOLO ...
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现
检测器通常能够被分为两类,一类是two-stage检测器,最具代表的为faster R-CNN:另一类是one-stage检测器,包括YOLO,SSD等.一般来说,two-stage检测器具有高定位和 ...
- yolo v3制作自己的数据_小白也能弄懂的目标检测之YOLO系列 第一期
大家好,上期分享了电脑端几个免费无广告且实用的录屏软件,这期想给大家来讲解YOLO这个算法,从零基础学起,并最终学会YOLOV3的Pytorch实现,并学会自己制作数据集进行模型训练,然后用自己训练好 ...
- 【目标检测】YOLO系列——YOLOv1详解
本篇是关于目标检测算法YOLOv1的学习笔记.网上的博客大多是摘抄翻译论文中的重点内容加上自己的理解,或者是梳理论文的大致思路,在没看过原文的情况下可能总会有些看不懂的地方.所以强烈建议博客搭配原文食 ...
- 目标检测之yolo系列
YOLO v.s Faster R-CNN 1.统一网络:YOLO没有显示求取region proposal的过程.Faster R-CNN中尽管RPN与fast rcnn共享卷积层,但是在模型训练过 ...
- 【目标检测】YOLO系列Anchor标签分配、边框回归(坐标预测)方式、LOSS计算方式
1.YOLOv1 标签分配:GT的中心落在哪个grid,那个grid对应的两个bbox中与GT的IOU最大的bbox为正样本,其余为负样本,(由于是回归模型,不是分类模型,其解决类别不平衡的方式为各项 ...
- 物体检测之YOLO系列
业界对于目标检测的热度只增不减,但目前的框架也难于逾越RCNN系列.SSD.YOLO系列这三座大山,很多新的方法也是在此基础上做一些改进,所以有必要做一些整理,方便自己后续查看,这里先对YOLO系列做 ...
- 目标检测之yolo系列模型-yolov4/yolox
文章目录 一.yolov4较yolov3的优化点 1.1 网络结构层面 (1) CSPDarknet53(借用CSP结构) (2) SPP (3) PAN(借用PANet) 1.2 优化策略 (1) ...
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv2详解及复现
YOLO v2 Yolov2论文链接:YOLO9000: Better, Faster, Stronger yolov2的改进 从Yolov2论文的标题可以直观看到就是Better.Faster.St ...
最新文章
- EF6连接MySql,网上那些所谓解决方案提供者你们够了
- python游戏开发的五个案例分享
- 第六章 Web开发实战1——HTTP服务
- html5 数据验证,【译】表单数据校验
- Sprint计划列表
- Oracle数据库 invalid character问题解决
- upstream directive is not allowed here in
- SAP License:什么是SAP ECC?与WMS系统集成技术要点
- Android项目实战(三十一):异步下载apk文件并安装(非静默安装)
- html模板自动保存在哪个文件夹,wps的备份文件夹在哪里 wps崩溃自动保存文件在哪里...
- 在Mac环境下查看附近路由器的MAC地址
- Office 右键新建没有office选项怎么办
- 【GCC】warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
- 笔记 |《软件测试技术经典教程》第4章 黑盒测试技术
- 磨耳朵鼻祖Super Simple Songs下载之《Rain Rain Go Away》
- Python二级--奖学金评选2
- 离散随机变量和连续随机变量_随机变量深度崩溃课程
- Oracle 11g R2+RAC+ASM+redhat安装详解1
- mysqladmin命令用法
- Unity从零开始实现一个全息效果Shader
热门文章
- ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送
- LeetCode之最大正方形
- 珍爱生命,远离大厂政治斗争
- 全链路压测自动化实践 1
- Java多线程系列(三):Java线程池的使用方式,及核心运行原理
- 2020年工业互联网行业研究报告(国盛证券)
- 论文阅读课5-DocRED: A Large-Scale Document-Level Relation Extraction Dataset(大规模文档集关系提取数据集
- JavaWeb:XML总结
- p1470 Longest Prefix
- js中实现页面跳转(返回前一页、后一页)