YOLO v3
yolo为you only look once.
是一个全卷积神经网络(FCN),它有75层卷积层,包含跳跃式传递和降采样,没有池化层,当stide=2时用做降采样。
yolo的输出是一个特征映射(feature map)
Yolo是将输入图像划分为sxs个格子,每个格子越策b个bounding box,每个bbx有5个系数。
s的取值为输出特征映射的最低维度,例如输入图像为416X416,则输出特征映射为13x13(具体算法为416,208,104,52,26,13,每次降采样相当于图像大小减小为原来的一半)

其中:cx,cy是网格左上角坐标,pw,ph表示bbx的size,bx,by,bw,bh是预测得到的bbx的中心坐标和size,tx,ty,tw,th是模型的预测输出。
预测框的大小判定:例如某目标的置信度为(0.3,0.8),而最小特征映射为13x13,则预测框的大小为(13*0.3,13*0.8)
yolo v3预测是从3个不同的尺度上预测的。
以416x416大小的图片为例,yolo v3将输出((52*52)+(26*26)+(13*13))*3=10647个bbx,如何从这么多的bbx预测出我们的目标,我们采用两步,1是阈值,忽略置信度小于阈值的框;2,非极大值抑制。
pytorh实现yolo
1.创建一个文件,命名为darknet.py, darknet是yolo基础框架的名称。这个文件中包含yolo的框架的代码。用一个名为util.py的文件对其进行补充,util.py文件中包含一些函数
2.配置文件,从网址https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg下载文件,保存到检测器文件中的cfg文件夹里。
配置文件里有卷积层和快捷层,快捷层是跳过连接。
YOLO中共有五种层:卷积层、快捷层、降采样层、Route(路线)、YOLO层、Net层
Route层的参数具有一个或两个值,当只有一个值时,它输出由该值索引的层的特征映射,比如该值为-4,则输出该层向后的第4层的特征映射。当该值有两个时,则输出其值的索引层的特征映射。比如当值为-1,64时,则输出为上一层和上64层的特征映射,并沿深度维度连接。

卷积层参数如上所示。

快捷层参数如上所示。

降采样层参数如上所示。

路线层如上所示。

YOLO层参数如上所示。

Net,cfg文件中的一种块,不是层,因为它只是描述一些输入和训练的参数的信息。在之前的YOLO中没使用,
iou计算:

iou相当于两个边界框重叠部分占两边界框总面积的比例,iou数值超过阈值,则除掉具有较低类置信度的边界框,保留具有较高类置信度的边界框。
调整图像大小还要保持纵横比的方法是填充左侧部分。
coco.name.txt文件中包含数据集中对象的名称。
pytorch的输入图像格式是批次-通道-高度-宽度,图片通道的顺序是RGB
原程序中共106层,
YOLO v3的更多相关文章
- YOLO系列:YOLO v3解析
本文好多内容转载自 https://blog.csdn.net/leviopku/article/details/82660381 yolo_v3 提供替换backbone.要想性能牛叉,backbo ...
- 深度学习笔记(十三)YOLO V3 (Tensorflow)
[代码剖析] 推荐阅读! SSD 学习笔记 之前看了一遍 YOLO V3 的论文,写的挺有意思的,尴尬的是,我这鱼的记忆,看完就忘了 于是只能借助于代码,再看一遍细节了. 源码目录总览 tens ...
- Yolo V3整体思路流程详解!
结合开源项目tensorflow-yolov3(https://link.zhihu.com/?target=https%3A//github.com/YunYang1994/tensorflow-y ...
- YOLO v3算法介绍
图片来自https://towardsdatascience.com/yolo-v3-object-detection-with-keras-461d2cfccef6 数据前处理 输入的图片维数:(4 ...
- 一文看懂YOLO v3
论文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf论文:YOLOv3: An Incremental Improvement YOLO系列的 ...
- YOLO V3 原理
基本思想V1: 将输入图像分成S*S个格子,每隔格子负责预测中心在此格子中的物体. 每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率. bbox ...
- Pytorch从0开始实现YOLO V3指南 part5——设计输入和输出的流程
本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch ...
- Pytorch从0开始实现YOLO V3指南 part1——理解YOLO的工作
本教程翻译自https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/ 视频展示:https://w ...
- yolo类检测算法解析——yolo v3
每当听到有人问“如何入门计算机视觉”这个问题时,其实我内心是拒绝的,为什么呢?因为我们说的计算机视觉的发展史可谓很长了,它的分支很多,而且理论那是错综复杂交相辉映,就好像数学一样,如何学习数学?这问题 ...
随机推荐
- Map the Debris 轨道周期
返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: avgAlt}. 至于轨道周期怎么求, ...
- vim命令:编辑模式和命令模式
vim:编辑模式 从一般模式进入编辑模式,只需你按一个键即可(i,I,a,A,o,O,r,R).当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样.从编辑模式回到一般模 ...
- MySQL-悲观锁和乐观锁
引言 悲观锁和乐观锁指的并不是一种锁,而是一种思想,一种并发控制的方法. 在事务并发执行的情景中,可能存在多个用户同时更新同一条数据的情况,这可能会产生冲突导致丢失更新或者脏读. 丢失更新是指一个事 ...
- JSON获取地址
JSON获取地址一: https://github.com/stleary/JSON-java JSON获取地址二: http://genson.io/ JSON获取地址一: https://code ...
- 什么是CAS机制?(转)
围绕下面四个点展开叙述: 一:什么是CAS机制? 二:Java当中CAS的底层实现 三:CAS的ABA问题和解决方法 四:java8对CAS的优化 一:什么是CAS机制? 我们先看一段代码: 启动两个 ...
- .Net上传图片的一些问题
1.IIS上传文件大小限制和上传时间限制 异常详细信息: System.Web.HttpException: 超过了最大请求长度 打开iis找到部署的网站的配置编辑器 2.设置上传时间限制 3.设置上 ...
- vue.js实战——.native修饰符
https://blog.csdn.net/qq_29468573/article/details/80771625 除了用v-on在组件上监听自定义事件外,也可以监听DOM事件,这时可以用.nati ...
- Vue中的状态管理器 - Vuex
我们知道vue是组件式开发的,当你的项目越来越大后,每个组件背后的数据也会变得越来越难以理顺, 这个时候你就可以考虑使用vuex了. 备注: 官方建议小项目不要使用,引入vuex会带来新的概念和模式, ...
- Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array 分类讨论连续递推dp
题意:给出一个 数列 和一个x 可以对数列一个连续的部分 每个数乘以x 问该序列可以达到的最大连续序列和是多少 思路: 不是所有区间题目都是线段树!!!!!! 这题其实是一个很简单的dp 使用的是分 ...
- JS在一个数组中查找某个用户输入的值,返回对应值所在索引值
方法有很多种 第一:直接循环,判断输出 第二:使用indexOf 正常来说,为了增加工作效率一般会选择indexOf,但是indexOf存在兼容性问题,因此最完善的写法如下 function inde ...