上期给大家展示了用VisDrone数据集训练pytorch版YOLOV3模型的效果,介绍了什么是目标检测、目标检测目前比较流行的检测算法和效果比较以及YOLO的进化史,这期我们来讲解YOLO最原始V1版本的算法原理以及其实现,话不多说马上开始。

YOLO检测系统

如图所示:当我们送一张图片给YOLO进行检测时,首先要将图片的大小调整位448*448,然后再在图像上运行单个卷积神经网络CNN,最后利用非最大值抑制算法对网络检测结果进行相关处理,设置阈值处理网络预测结果得到检测的目标,这个图像只经过一个单独的CNN模型就可以直接得到检测结果的过程又称为end-to-end(端到端)的目标检测。

YOLO具体实现

首先YOLO检测系统会将输入图像划分为S×S网格,也就是S×S个单元格,如果对象边界框的中心,也就是红色边界框的中心落入该网格单元,则该网格单元负责检测该对象,如图中红色的点就是对象狗的中心,就由这个点所处的绿色网格负责预测狗这一个目标,并得到这个狗目标的边界框以及种类。

怎么样用参数去表示上述的过程呢?为什么就可以知道这个中心点所对应的目标就是狗呢?

目标定位

上面对目标进行定位,那么如何进行目标分类呢?

目标分类

总结:

上述所讲解的所有过程如上图:也就是说我们的输入图片首先被分成S*S个网格,每个网格会预测B个边界框,这B个边界框来定位目标,预测的(x,y)实际上是由B个边界框中框住目标的那个边界框的中心,再判断该边界框的中心属于那一个网格,当网格定位好之后,再由该网格这个区域对目标进行分类。

YOLO模型架构

那么如何对这个模型最后的输出7*7*30的output进行解析,来获取我们想要的检测信息呢,即这张图片上有多少个目标,以及每个目标所对应的目标框的大小和位置信息呢?

以下面图中模型输出的7*7个网格中的其中一个网格,也就是用红色和绿色长条形进行标注的网格,大小为1*1*30为例进行讲解,其对应于输入图片中的红色网格:

最后:附上YOLOv1的原论文地址:https://arxiv.org/pdf/1506.02640.pdf,下载速度过慢的同学,后天回复关键字:YOLO,即可获取。

YOLO官网:https://pjreddie.com/darknet/yolo/

参考:https://zhuanlan.zhihu.com/p/32525231

这期给大家讲解了YOLOv1网络模型的架构,以及如何实现目标分类和定位,下期会给大家讲解YOLO模型是如何进行进行网络训练的,觉得还不错的话,请点赞、收藏、在看哦,你们的支持是我继续的动力,坚决不做白嫖党!

更多有关python、深度学习和计算机编程和电脑知识的精彩内容,可以关注微信公众号:码农的后花园

小白也能弄懂的目标检测YOLO系列之YOLOV1 - 第二期的更多相关文章

  1. 小白也能弄得懂的目标检测YOLO系列之YOLOv1网络训练

    上期给大家介绍了YOLO模型的检测系统和具体实现,YOLO是如何进行目标定位和目标分类的,这期主要给大家介绍YOLO是如何进行网络训练的,话不多说,马上开始! 前言: 输入图片首先被分成S*S个网格c ...

  2. 小白也能弄懂的目标检测之YOLO系列 - 第一期

    大家好,上期分享了电脑端几个免费无广告且实用的录屏软件,这期想给大家来讲解YOLO这个算法,从零基础学起,并最终学会YOLOV3的Pytorch实现,并学会自己制作数据集进行模型训练,然后用自己训练好 ...

  3. 第四节,目标检测---YOLO系列

    1.R-CNN回顾 适应全卷积化CNN结构,提出全卷积化设计 共享ResNet的所有卷积层 引入变换敏感性(Translation variance) 位置敏感分值图(Position-sensiti ...

  4. 目标检测YOLO进化史之yolov1

    yolov3在目标检测领域可以算得上是state-of-art级别的了,在实时性和准确性上都有很好的保证.yolo也不是一开始就达到了这么好的效果,本身也是经历了不断地演进的. yolov1 测试图片 ...

  5. 深度学习笔记之目标检测算法系列(包括RCNN、Fast RCNN、Faster RCNN和SSD)

    不多说,直接上干货! 本文一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码. •   RCNN RCN ...

  6. 小白也能弄懂的卷积神经网络(Convolutional Neural Networks )

    本系列主要是讲解卷积神经网络 - Convolutional Neural Networks 的系列知识,本系列主要帮助大家入门,我相信这是所有入门深度学习的初学者都必须学习的知识,这里会用更加直接和 ...

  7. [目标检测]YOLO原理

    1 YOLO 创新点: 端到端训练及推断 + 改革区域建议框式目标检测框架 + 实时目标检测 1.1 创新点 (1) 改革了区域建议框式检测框架: RCNN系列均需要生成建议框,在建议框上进行分类与回 ...

  8. 目标检测(五)YOLOv1—You Only Look Once:Unified,Real-Time Object Detection

    之前的目标检测算法大都采用proposals+classifier的做法(proposal提供位置信息,分类器提供类别信息),虽然精度很高,但是速度比较慢,也可能无法进行end-to-end训练.而该 ...

  9. 目标检测-yolo

    论文下载:http://arxiv.org/abs/1506.02640 代码下载:https://github.com/pjreddie/darknet 1.创新点 端到端训练及推断 + 改革区域建 ...

随机推荐

  1. Java基础—封装

    封装是面向对象的核心特征之一,它提供了一种信息隐藏技术.类的包装包含两层含义:一是将数据和对数据的操作组合起来构成类,类是一个不可分割的独立单位:二是类中既要提供与外部联系的接口,又要尽可能隐藏类的实 ...

  2. Catalina 默认使用zsh了,你可习惯

    zsh 成为默认 shell 淘汰掉我的旧MBP换新后,欢天喜地打开Terminal,感觉有点不对,提示符什么时候变成了 %. 查询了一些资料发现,原来在2019年WWDC期间,苹果推出了macOS ...

  3. C#LeetCode刷题之#459-重复的子字符串(Repeated Substring Pattern)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3945 访问. 给定一个非空的字符串,判断它是否可以由它的一个子串 ...

  4. 听说同学你搞不懂Java的LinkedHashMap,可笑

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...

  5. Android PopupWindow显示之后所在的Activity结束的时候出现短暂黑屏问题

    在当前Activity弹出PopuoWindow后,点击取消弹窗,然后结束当前Activity时会出现短暂黑屏现象.这是由于设置背景透明度时候造成的. //设置添加屏幕的背景透明度 public vo ...

  6. jvm之方法内联优化

    前言 在日常中工作中,我们时不时会代码进行一些优化,比如用新的算法,简化计算逻辑,减少计算量等.对于java程序来说,除了开发者本身对代码优化之外,还有一个"人"也在背后默默的优化 ...

  7. 极简 Node.js 入门 - 3.2 文件读取

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  8. C++ Templates (Part I 基本概念 The Basics)

    C++ 模板 (C++ Templates) 目录 C++ 模板 (C++ Templates) 第一部分 基本概念 (The Basics) 第一部分章节目录 参考资料 第一部分 基本概念 (The ...

  9. 【Flutter 实战】动画序列、共享动画、路由动画

    老孟导读:此篇文章是 Flutter 动画系列文章第四篇,本文介绍动画序列.共享动画.路由动画. 动画序列 Flutter中组合动画使用Interval,Interval继承自Curve,用法如下: ...

  10. 喵的Unity游戏开发之路 - 在球体上行走

    很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...