本文并不是详细介绍yolo工作原理以及改进发展的文章,只用做作者本人回想与提纲。

1.yolo是什么

  输入一张图片,输出图片中检测到的目标和位置(目标的边框)

yolo名字含义:you only look once

对于yolo这个神经网络:

(Assume  s*s栅格, n类可能对象, anchor box数量为B)

Input       448*448*3

Output     s*s*(5 * B +n)的tensor

2.CNN目标检测之yolo

在目标检测领域,DPM方法采用滑动窗口检测法将原图片切出一小块一小块,先选区再卷积提取特征,先整张图卷积提取特征再选区,然后投入神经网络进行图像分类操作处理。RCNN方法采用region proposal来生成整张图像中可能包含待检测对象的可能的bounding boxes然后用分类器评估这些boxes,再post processing来改善bounding box并消除重复的目标,最后基于整个场景中其他物体重新对boxes打分(这些环节都是分开训练)。其实都是把目标检测问题转化成了一个分类问题。2015年yolo论文公开,提出了一种新思路,将目标检测问题转化成了一个regression problem。Yolo 从输入的图像,仅仅经过一个神经网络直接得到bounding box和每个bounding box所属类别的概率。正因为整个过程下来只有一个神经网络,所以它可以进行端到端的优化。

Yolo优缺点:速度极快;在背景上预测出不存在物体的概率要低;能够学习抽象的特征,可用于艺术画像等。但定位偶尔出现错误。

3.Unified Detection

先分s*s个栅格;

每一个栅格预测B个bounding boxes以及每个bboxes的confidence score。

Confidence score =P(Object) * IOUtruth_pred

若bbox包含物体,则P(Object)=1,否则为0

每一个栅格预测n个条件类别概率P(Classi|Object)——在一个栅格包含一个Object的前提下它属于某个类的概率。为每一个栅格预测一组类概率。

在测试的非极大值抑制阶段,对于每个栅格:将每个bbox的置信度和类概率相乘,

class-specific confidence scores=Confidence * P(Classi|Object) = P(classi) * IOU,

结果既包含了类别信息又包含了对bbox值的准确度。然后设置一个阈值,把低分的滤掉,剩下的投给非极大值抑制,然后得到最终标定框。

4.模型训练

  首先预训练一个分类网络。在 ImageNet 1000-class competition dataset上预训练一个分类网络,这个网络是Figure3中的前20个卷机网络+average-pooling layer(平均池化层)+ fully connected layer(全连接层) (此时网络输入是224*224)。

  然后训练我们的检测网络。转换模型去执行检测任务,《Object detection networks on convolutional feature maps》提到说在预训练网络中增加卷积和全链接层可以改善性能。在作者的例子基础上添加4个卷积层和2个全链接层,随机初始化权重。检测要求细粒度的视觉信息,所以把网络输入把224*224变成448*448。

5.损失函数

CNN之yolo目标检测算法笔记的更多相关文章

  1. 目标检测算法YOLO算法介绍

    YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在图像上放一个网络,为了方便讲述,此处使用3x3网格,实际实现时会用更精细的网格(如19x19).基本思想是, ...

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

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

  3. 目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)

    目标检测解决的是计算机视觉任务的基本问题:即What objects are where?图像中有什么目标,在哪里?这意味着,我们不仅要用算法判断图片中是不是要检测的目标, 还要在图片中标记出它的位置 ...

  4. (六)目标检测算法之YOLO

    系列文章链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-CNN https://www.cnbl ...

  5. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  6. 基于深度学习的目标检测算法:SSD——常见的目标检测算法

    from:https://blog.csdn.net/u013989576/article/details/73439202 问题引入: 目前,常见的目标检测算法,如Faster R-CNN,存在着速 ...

  7. Python实现YOLO目标检测

    作者:R语言和Python学堂 链接:https://www.jianshu.com/p/35cfc959b37c 1. 什么是目标检测? YOLO目标检测的一个示例 啥是目标检测? 拿上图 (用YO ...

  8. 深度剖析目标检测算法YOLOV4

    深度剖析目标检测算法YOLOV4 目录 简述 yolo 的发展历程 介绍 yolov3 算法原理 介绍 yolov4 算法原理(相比于 yolov3,有哪些改进点) YOLOV4 源代码日志解读 yo ...

  9. 如何使用 pytorch 实现 SSD 目标检测算法

    前言 SSD 的全称是 Single Shot MultiBox Detector,它和 YOLO 一样,是 One-Stage 目标检测算法中的一种.由于是单阶段的算法,不需要产生所谓的候选区域,所 ...

随机推荐

  1. C# winform语音提示

    1.SpeechSynthesizer文字转音频 项目添加引用:System.Speech using(SpeechSynthesizer speech = new SpeechSynthesizer ...

  2. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(五)

    笔者作为一名有数年工作经验的Java程序员,仔细研读了这份手册,觉得其是一份不可多得的好材料.阿里巴巴在发布时所说,“阿里巴巴集团推出的<阿里巴巴Java开发手册(正式版)>是阿里巴巴近万 ...

  3. P2698 [USACO12MAR]花盆Flowerpot 单调队列

    https://www.luogu.org/problemnew/show/P2698 警示 用数组写双端队列的话,记得le = 1, ri = 0:le<=ri表示队列非空 题意 求一个最小的 ...

  4. codeforces 798 D. Mike and distribution(贪心+思维)

    题目链接:http://codeforces.com/contest/798/problem/D 题意:给出两串长度为n的数组a,b,然后要求长度小于等于n/2+1的p数组是的以p为下表a1-ap的和 ...

  5. essential C++中的一些疑问记录

    关于书中P87下列代码中,less<int>的使用,我目前的理解是 less<int> 是一个类型,& it 是对外部参数的引用.但是为何要加上引用,另外 调用该函数时 ...

  6. cesium中json,geojson,stk,影像切片等数据的加载

    cesium中json.topojson.geojson.stk,影像切片等数据的加载 一.geojson.topojson,json数据的加载 不管是哪种json,都可以通过GeoJsonDataS ...

  7. 单细胞转录组测序技术(scRNA-seq)及细胞分离技术分类汇总

    单细胞测序流程(http://learn.gencore.bio.nyu.edu) 在过去的十多年里,高通量测序技术被广泛应用于生物和医学的各种领域,极大促进了相关的研究和应用.其中转录组测序(RNA ...

  8. 使用Kubectl部署应用

    目录 使用Kubectl部署应用  Kubectl部署流程  部署一个简单的Demo网站  一旦运行了Kubernetes集群,就可以在其上部署容器化应用程序.因此在开始之前,我们需要先确保集群已经准 ...

  9. Nginx使用GeoIP模块来限制地区访问

    举例比如限制泰国地区的IP访问: 前提条件,安装了http geoip 或stream geoip模块的Nginx Plus或者开源nginx Maxmind的GeoLite Legacy数据库 1. ...

  10. C# 表达式树Lambda扩展(四)

    一.前言 本来计算这篇文章在后面需要运用的时候写的,但是既然写到表达式的扩展呢,就一起写完吧. 看到这个标题就有一种疑问,Lambda表达式本来就是表达式树,还需要怎么扩展?那就看看下面的内容,你就知 ...