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
每当听到有人问“如何入门计算机视觉”这个问题时,其实我内心是拒绝的,为什么呢?因为我们说的计算机视觉的发展史可谓很长了,它的分支很多,而且理论那是错综复杂交相辉映,就好像数学一样,如何学习数学?这问题 ...
随机推荐
- Namespace讨论
我们需要讨论一个深层次的问题: 为什么不直接在 tape17162c5-00 和 tapd568ba1a-74 上配置 Gateway IP,而是引入一个 namespace,在 namespace ...
- Spring Boot 集成Swagger
Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...
- jmeter学习记录--09--命令行运行与生成报告
一. 使用命令行方式运行Jmeter 1.1 为什么 使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死. 所以正确的打开方式是在GUI模式下调 ...
- SpringCloud-Ribbon服务调用(三)
SpringCloud-Ribbon服务调用(三) https://www.cnblogs.com/qdhxhz/p/9568481.html 一.商品中心服务端 创建商品中心服务端:服务提供方(被调 ...
- Zookeeper+Kafka集群部署(转)
Zookeeper+Kafka集群部署 主机规划: 10.200.3.85 Kafka+ZooKeeper 10.200.3.86 Kafka+ZooKeeper 10.200.3.87 Kaf ...
- npm link & unlink
npm link & unlink https://dev.to/erinbush/npm-linking-and-unlinking-2h1g
- 鼠标拖动DOM
自己收藏,使用angualrjs的directive些的鼠标拖动DOM.... <!DOCTYPE html> <html lang="en"> <h ...
- js 实现数据结构 -- 字典
原文: 在Javascript 中学习数据结构与算法. 概念: 集合.字典.散列表都可以存储不重复的数据.字典和我们上面实现的集合很像. 当然,字典中的数据具有不重复的特性.js 中 Object 的 ...
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
https://blog.csdn.net/lanchunhui/article/details/61712830 https://www.cnblogs.com/silence-tommy/p/70 ...
- functools模块中partial的使用
一.简介 functools.partial(func,* args,**关键字) 返回一个新的部分对象,当被调用时,其行为类似于使用位置参数args 和关键字参数关键字调用的func.如果为调用提供 ...