一、YOLO的算法流程

1.设定类别数,设定图片划分为多少个网格,每个网格预测出来几个边框。原文是20个类别,并将图片划分为7*7网格,每个网格预测出2个边框。

2.将图片缩放到448*448,然后输入到CNN网络(卷积、池化、两个全连接),然后输出的就是7*7*30的tensor(20个对象分类的概率、2个bounding box的位置(2*4=8)、2个bounding box的置信度),通过处理输出box_confidence  box_xy  box_wh  box_class_probs。即在图片上可得到边界框7*7*2=98.

3.设定阈值过滤边框。

  • 第一步 计算所有box中每个类别的得分:box_confidence * box_class_probs
  • 第二步 找到每个box所有类别中的最高分,并记录其索引(也就知道了类别)
  • 第三步 根据阈值过滤并创建掩码 : filtering_mask = (box_class_scores >= threshold)
  • 第四步 使用掩码只输出阈值过滤后的score,box, classes

4.进行非极大值抑制(NMS).

  • 选择得分值最高的边界框添加到输出列表中,将其从边界框列表中删除
  • 计算得分值最高的边界框与其他候选框的IOU
  • 删除IOU大于设定的阈值IOU的边界框
  • 重复上诉过程,直至边界框列表为空。

5.将最后输出列表里的边界框显示在图片,并显示分数和所属类别。

二、yolo中边界框的坐标计算

每个边界框的中心点坐标均为相对于其对应的cell左上点坐标的偏移,此时即保证每个边界框的中心点均落在其对应的cell中。其计算公式如下:

上式中:

  • 即为预测的边界框bounding box在feature map中的中心点坐标和长宽;
  • 即为网络学习的相对于先验框(prior,anchor)的offsets;
  • 是各个cell的左上点坐标; 即为先验框(prior,anchor)相对于特征图的长和宽

参考链接

https://www.jianshu.com/p/cad68ca85e27

https://www.jianshu.com/p/d452b5615850

https://blog.csdn.net/yzy__zju/article/details/98039103

YOLO理解及边界框计算相关推荐

  1. layer output 激活函数_深入理解YOLO v3实现细节 - 第3篇 构建v3的Loss_layer

    深入理解YOLO v3实现细节系列文章,是本人根据自己对YOLO v3原理的理解,结合开源项目tensorflow-yolov3,写的学习笔记.如有不正确的地方,请大佬们指出,谢谢! 目录 第1篇 数 ...

  2. 目标检测 | YOLO系列超全讲解v1,v2,v3

    前言 一.YOLOv1 1. 网络结构 2. 实现方法 3. 损失函数 4. 缺点 二.YOLOv2 1. 网络结构 2. 改进方法 3. YOLO9000 4. 网络训练细节 三.YOLOv3 1. ...

  3. 计算机视觉——YOLO(v1,v2,v3)

    计算机视觉--YOLO(v1,v2,v3) 1.YOLO V1 1.1论文思想 1.2.YOLO V1 网络结构 1.3.YOLO V1 损失函数 1.4.YOLO V1 存在的问题 2.YOLO V ...

  4. YOLO 超详细入门(含开源代码)——网络结构、细节、目标损失函数、优点

    文章目录 前言 背景 一.YOLO的核心原理预览 二.网络结构 为什么每个网格有固定的B个Bounding Boes?(即B=2) 三.网络细节 3.1 网络单元(grid) 3.1.1 作用 3.1 ...

  5. KL 损失的边界框回归

    原文:https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247496513&idx=2&sn=6fb827b5482 ...

  6. 为什么vs会输出一个框作为结果_检测与分类专辑 | 对精准目标检测的含不确定性的边界框回归...

    摘要 大型目标检测数据集(如MS-COCO) 试着尽可能地将边界框框的非常清晰,但是在标记边框时会存在歧义.在本文中,提出了一种新的边界框回归损失学习边界框的移动及位置方差,此方法在不增加计算量的基础 ...

  7. CVPR 2019 | 旷视研究院提出新型损失函数:改善边界框模糊问题

    全球计算机视觉三大顶会之一 CVPR 2019 (IEEE Conference on Computer Visionand Pattern Recognition)将于 6 月 16-20 在美国洛 ...

  8. 3D集合图元:最小边界框/包围盒(boundingbox)

    对于2D边界框的应用时比较广泛地,它为一个简单匹配建立了很小的计算规则,3D模型的boundingbox则比较困难,计算代价较大.对于PCL库的使用则降低了计算难度,三维数值化降低了建模过程,可以使用 ...

  9. [react] 说说你对Error Boundaries的理解

    [react] 说说你对Error Boundaries的理解 错误边界是React16新推出的一种错误处理的方式,在v16之前,React的抛错会导致页面显示的错误,v16修改这种方式成了组件如果产 ...

最新文章

  1. php 断点续传,php支持断点续传的文件下载类(附源码)
  2. MySQL优化—磁盘事宜
  3. linux 用户与用户发邮件,Linux自动向指定用户发送邮件
  4. 730版本去掉恼人的提示信息
  5. conda配置清华镜像
  6. oracle11g nid,Oracle工具之nid命令的使用
  7. python公式_Python读取excel文件中带公式的值的实现
  8. wireshark最新版本for Ubuntu18.04(六)
  9. ConcurrentModificationException---异常剖析
  10. cad插入块_多重插入块加密CAD图纸怎么分解
  11. 微pe怎么装linux系统,微PE工具箱增加安装Linux系统菜单
  12. 四川省内二本计算机公立好的大学排名,盘点四川省最好的几所二本大学
  13. charles 批量重复请求/重复发包工具
  14. 在计算机网络拓扑结构中目前最常用的是,常用的计算机网络拓扑结构.docx
  15. 使用Mac下的sequel Pro数据库错误MySQL said: Authentication plugin 'caching_sha2_password'
  16. sprintf函数详细解释
  17. 计算机在职研究生科目,计算机在职研究生考试科目都有哪些?考试难吗
  18. Windows服务器怎么连接?远程连接服务器命令
  19. CIO40: IT男之日常工作(点线面体)
  20. RK3288下添加PCF8563 RTC支持

热门文章

  1. 低成本搭建一台家庭存储服务器:前篇
  2. UNIX网络编程卷一 学习笔记 第二十一章 多播
  3. 断电,maven报:only whitespace content allowed before start tag and not \u0 ,,你妹
  4. DIC技术应用│基坑开挖对邻近地铁隧道结构的影响研究
  5. 实验二kNN算法之1NN分类
  6. 干货 | 外贸业务员必备的实用网站
  7. java 耦合度_耦合度如何降低耦合度
  8. es6中reduce的用法_25个你不得不知道的数组reduce高级用法
  9. STM32F407 读保护,写保护,解锁过程【芯片已设置读保护,无法读取更多信息】...
  10. 软件测试自学好还是报培训班比较好?