博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
目标检测算法——YOLOV1解析
阅读量:5862 次
发布时间:2019-06-19

本文共 1022 字,大约阅读时间需要 3 分钟。

前言

之前打算分析caffe源码的,但是由于工作较忙就耽误了。但是希望今后还是能坚持写博客,对知识进行总结梳理,锻炼自己的表达能力。

最近一段时间在研究yolo算法,发现这个算法非常的优美,并且作者更新到了第三版。通过对该算法的学习,可以学习到如何进行算法的优化与实现。但是正如吴恩达在深度学习课程里面所说的,yolo的论文非常的难读,作者写文章的时候着重在写模型的测试部分,而对于模型的训练讲解的非常的少。这让一开始阅读yolo的论文时,有种不知所以然的感觉。还好yolo的作者提供的源代码,使得不懂的地方可以通过阅读来进行加强理解。在这里非常佩服yolo的作者,不仅科研能力强,工程能力也非常的棒,居然自己用C语言撸了一个深度学习框架,佩服。是我学习的榜样!!

好了,废话不多说了,开始我们的正题吧。

算法原理

对于一个新的深度学习算法,我经常从输入输出着手。我们来看一下YOLO的输入出是什么?

首先yolo的输入是一张448x448大小的图片,然后经过网络之后输出为30个值。那么这30个值是什么呢?我们来进行一一的分析。

  1. 前面20个为物体的类别数。为什么是20呢?因为在论文中yolo是要检测20种物体,然后进行one-hot编码,所以维度就是20;
  2. 第21-22个为两个confidence。这个词我们有点陌生。中文叫做置性度,也就是物体框里面包含物体的可能性。
  3. 第23-30个为两组x,y,w,h值,即物体框的中心坐标及宽高,共8个值。

知道了网络的输出数据,我们就可以知道训练数据的标签长怎么样了。训练数据的标签必定也有:类别数、confidence和(xywh)组成。那图片的标签具体是怎么打的呢?我们接着分析。

  1. 首先yolo将一张图片分成SxS大小,在论文中为7x7,如下图所示

clipboard.png

在上面的图中,第一个网络由于没有我们要识别的物体,所以标签的类别数、confidence和xywh都为0,接着第二个网格也是如此。。。直到红色框的网格处,我们发现有一只狗,这是标签为狗的类别数,confidence为1,xywh为包含狗的物体框的中心坐标和宽高。那红色框的上面那个框的标签数据是什么呢?它也包含了狗啊。在yolo中只用物体框中心点所在的网格进行预测,因此红色框周围的网格的标签数据也全都是0。

经过这样计算,我们可以得到,一张图片最终的标签数为[20(类别)+2(confidence)+8(xywh)]xSxS

  1. 待续。。。。。

转载地址:http://wzgjx.baihongyu.com/

你可能感兴趣的文章
Python Web实时消息后台服务器推送技术---GoEasy
查看>>
runloop - CFRunLoopObserverRef
查看>>
某种业务场景下,将一个工作区的多个字段整理到一个内表中
查看>>
centos 7 安装 docker(详细)
查看>>
文件内容查找匹配指定字
查看>>
[BZOJ 4826][Hnoi2017]影魔(主席树)
查看>>
Maven常用插件简单配置
查看>>
easyui验证
查看>>
Git回滚代码到某个commit
查看>>
30秒倒计时
查看>>
git常用命令及用法小计
查看>>
虚拟化KVM之安装(二)
查看>>
真的需要ORM框架吗?
查看>>
Jenkins中集成jmeter-maven插件
查看>>
AIops 智能运维平台
查看>>
==与equal()的区别
查看>>
P2613 【模板】有理数取余
查看>>
AS3.0 效率优化
查看>>
互斥(mutex)
查看>>
雷林鹏分享:PHP Switch 语句
查看>>