yolov1学习有关心得

文章目录

  • 前言
  • 一、yolo是什么?
  • 二、yolov1如何运行
    • 1.基本概念
    • 2.网络结构
    • 3.预测阶段
    • 4.训练阶段
  • 总结


前言

        当前时代,人工智能正处于风口浪尖的阶段,而人工智能领域里的目标检测正是发展人工智能的关键一环。近些年来目标检测算法取得了显著的成就,yolo就是其中最典型的代表,它打破了常规目标检测算法的枷锁,使检测速度更加迅速,检测范围更加广泛。

一、yolo是什么?

        You Only Look Once:Unified, Real-Time Object Detection

你只需看一次“--统一实时的的目标检测框架

        YOLO算法使用深度神经网络进行对象的位置检测以及分类,主要的特点是速度够快,而且准确率也很高,采用直接预测目标对象的边界框的方法,将候选区和对象识别这两个阶段合二为一。

        之前的目标检测方法例如,DPM、R-CNN、Faster R-CNN等都是需要提取候选框,然后进行一次次的推断,需要进行复杂的上下游处理工作。      

        yolov1是将目标检测方法当作回归问题来解决,不再需要提取候选框,能够快速单方向的实现端到端的操作,捕捉全图上下文的信息。yolov1对大物体的识别效果更好,能够达到45帧每秒的速率,迁移泛化性高。但是对小物体的检测检测效果较差。

二、yolov1如何运行

1.基本概念

yolov1学习有关心得_第1张图片

a.将一幅图像分成s×s个网格,(如图就是7×7个网格),如果某个目标的中心落在这个网格内,那么这个网格就负责预测这个目标。

b.每个网格要预测B个bounding box,每个bounding box除了要预测位置外,还要附带预测一个confidence值。每个网格还要预测C个类别的分数。 (如图中,就是一个grid cell预测两个bounding box值,而且每个bounding box要预测4个位置参数,以及一个confidence值。)

2.网络结构

yolov1学习有关心得_第2张图片1.经过24层卷积层提取图像特征。  

2.得到两个全连接层回归得到7×7×30的特征矩阵。

PS:将7×7×1024的数据拉平,然后位移到一个有4096个神经元的全连接层中      再把4096维的向量位移到有1470个神经元的全连接层中。最后reshape 

yolov1学习有关心得_第3张图片

如图所示,一个grid cell预测两个bounding box值,而且每个bounding box要预测4个位置参数,以及一个confidence值。 其中还有20位是判断物体的条件概率。 

3.预测阶段

yolov1学习有关心得_第4张图片

1.每个grid cell预测两个bounding box,每个bounding box含有两个confidence值(置信度)然后由一个grid cell的置信度乘上20个grid cell类别的条件概率,就成为了全概率

2.置信度过滤: 将置信度为0的bounding box自动排列到最后,并过滤掉。

3.非极大值抑制: 将是某一类别的最大概率的bounding box拿出来,然后将所有的bounding box是该类别的概率与其比较。 如果两个bounding box的IOU大于某个阈值,认为两个bounding box重复识别了一个物体,将低置信度的bounding box滤除掉。 

4.训练阶段

yolov1学习有关心得_第5张图片


 1.标签ground truth框中心点落在哪个grid cell中,就应由哪个grid cell预测这个物体

2.每个grid cell预测B个bounding box

3.与ground truth框IOU最大的bounding box负责预测这个物体

4.每个grid cell只能检测一个物体

5.包含(不包含)ground truth的grid cell/bounding box按照损失函数分别处理。

 

总结

参照网上的知识,以及视频,大概了解了yolo的基本概念,以及网络结构。对目标检测有了一个大概的了解 ,通过对yolov1的学习,知道了目标检测在我们日常生活中的的应用是如此的广泛。接下来的任务就是争取将yolov1投入到实践中,争取跑通yolov1.

你可能感兴趣的:(python,神经网络)