04.卷积神经网络 W3.目标检测

文章目录

    • 1. 目标定位
    • 2. 特征点检测
    • 3. 目标检测
    • 4. 滑动窗口的卷积实现
    • 5. Bounding Box预测(YOLO)
    • 6. 交并比
    • 7. 非极大值抑制
    • 8. Anchor Boxes
    • 9. YOLO 算法
    • 10. 候选区域
    • 作业

参考:
吴恩达视频课
深度学习笔记

1. 目标定位

定位分类问题:

不仅要判断图片中是不是一辆汽车,还要标记出它的位置,用框圈起来

在这里插入图片描述
在这里插入图片描述

2. 特征点检测

Landmark 检测

3. 目标检测

基于滑动窗口的目标检测

  • 将目标剪切出来,训练卷积网络
  • 以一定大小的窗口扫描图片,将窗口内的图片输入卷积网络预测
  • 更改窗口大小,重复上面步骤

滑动窗口目标检测算法缺点

  • 计算成本,剪切出太多块,卷积网络要一个个地处理
  • 用的步幅很大,窗口个数少,可能会影响性能
  • 用小粒度或小步幅,窗口会特别多,这意味着超高的计算成本

4. 滑动窗口的卷积实现



整张图片进行卷积操作,一次得到所有预测值,如果足够幸运,神经网络便可以识别出目标的位置

在卷积层上应用滑动窗口算法,提高了整个算法的效率
不过这种算法仍然存在一个缺点,就是边界框的位置可能不够准确

5. Bounding Box预测(YOLO)

滑动窗口法中,离散的边界框可能没有一个能完美匹配汽车位置

一个能得到更精准边界框的算法是YOLO算法,YOLO(You only look once)意思是你只看一次,这是由Joseph Redmon,Santosh Divvala,Ross Girshick和Ali Farhadi提出的算法

YOLO
YOLO算法有一个好处,它是一个卷积实现,运行速度非常快,可以达到实时识别


边界框定义还有其他更有效的方法,可能效果要更好一点

6. 交并比

IoU

7. 非极大值抑制

算法可能对同一个对象做出多次检测。非极大值抑制确保算法对每个对象只检测一次

非极大值抑制,非最大值意味着你只输出概率最大的分类结果,抑制很接近,但不是最大的其他预测结果

如果你尝试同时检测三个对象,比如说行人、汽车、摩托,那么输出向量就会有三个额外的分量。
事实证明,正确的做法是独立进行三次非极大值抑制,对每个输出类别都做一次

8. Anchor Boxes

你想让一个格子检测出多个对象,就是使用 anchor box 这个概念


算法处理不好的情况:

  • 如果你有两个anchor box,但同一格子有三个对象
  • 两个对象都分配到一个格子中,且它们的anchor box形状也一样
    出现的概率比较小,对性能的影响应该不会很大

怎么选择 anchor box呢?

  • 一般手工指定anchor box形状,选择5到10个anchor box形状,覆盖多种不同的形状
  • k - 平均算法,可以将两类对象形状聚类,选择最具有代表性的一组 anchor box,这是自动选择anchor box的高级方法

9. YOLO 算法

  • 训练:
  • 预测:
  • 非极大值抑制:
    如果使用两个anchor box,那么9个格子中任何一个都会有两个预测的边界框,其中一个的概率很低。
    接下来你抛弃概率很低的预测。

    如果你希望检测(3种目标)行人,汽车和摩托车,那么你要做的是,对于每个类别单独运行非极大值抑制,运行三次来得到最终的预测结果。

10. 候选区域



候选区域是一个有趣的想法,但这个方法需要两步:

  • 首先得到候选区域
  • 然后再分类

相比之下,类似于YOLO(You only look once)这个算法,能够一步做完,老师觉得长远而言更有希望

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

作业

作业:自动驾驶 - 汽车检测


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P2P中的NAT穿越方案简介

文章链接: http://www.shipin.it/Index/videolist/id/68.html 转载于:https://www.cnblogs.com/lolita/p/3334029.html

Python面试必须要看的15个问题

问题1 到底什么是Python?你可以在回答中与其他技术进行对比(也鼓励这样做)。 答案 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他…

LeetCode 988. 从叶结点开始的最小字符串(DFS)

文章目录1. 题目2. 解题1. 题目 给定一颗根结点为 root 的二叉树,树中的每一个结点都有一个从 0 到 25 的值,分别代表字母 a 到 z:值 0 代表 a,值 1 代表 b,依此类推。 找出按字典序最小的字符串,该字符串…

Humble Numbers USCAO chapter 3.1

...目测我自己写坑定超时,就去NOCOW看了下,题解,官方是每个质数与已有的humble想乘取大于最大humble的最小数即是新的最大humble, 然后我就写了个个,开始嫌麻烦用set存,超时的飞起。然后全部改成数组,结果case 6还是超时,想了半天感觉和别人的题解也没啥差别,为什么运行时间差这…

LeetCode 636. 函数的独占时间(栈)

文章目录1. 题目2. 解题1. 题目 给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。 每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。 日志是具有以下格式的字符串:function_id…

网关详解

计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一…

Javascript复习题

Javascript复习题 一、选择题 1、写“Hello World”的正确javascript语法是? (A) A.document.write("Hello World") B. "Hello World" C.response.write("Hello World") D…

04.卷积神经网络 W3.目标检测(作业:自动驾驶 - 汽车检测)

文章目录1. 问题背景2. YOLO 模型2.1 模型细节2.2 分类阈值过滤2.3 非极大值抑制2.4 完成过滤3. 在照片上测试已预训练的YOLO模型3.1 定义类别、anchors、图片尺寸3.2 加载已预训练的模型3.3 模型输出转化为可用的边界框变量3.4 过滤边界框3.5 在图片上运行测试题:参…

Jquery特殊效果

1.jquery特殊效果 fadeIn() 淡入 $btn.click(function(){ $(#div1).fadeIn(1000,swing,function(){ alert(done!); }); }); fadeOut() 淡出 fadeToggle()切换淡入淡出 hide()隐藏元素 show() 显示元素 toggle() 切换元素的可见状态 slideDown() 向下展…

DB2表的重组

DB2在存储大数据的时候,遇到一个问题,将数据导入表中保存不了,最后是重组后才解决。 下面是从IBM官网上搜集的资料: 官网地址:http://publib.boulder.ibm.com/infocenter/db2e/v9r1/index.jsp?topic%2Fcom.ibm.db2e.d…

开发语言

开发语言 高级语言:Python、Java、PHP、C#、Go、Ruby、C…   代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行低级语言:C、汇编   代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器…

LeetCode 775. 全局倒置与局部倒置(归并排序/二分查找/一次遍历)

文章目录1. 题目2. 解题2.1 归并排序求逆序度2.2 二分查找2.3 一次遍历1. 题目 数组 A 是 [0, 1, ..., N - 1] 的一种排列&#xff0c;N 是数组 A 的长度。 全局倒置指的是 i,j 满足 0 < i < j < N 并且 A[i] > A[j] &#xff0c;局部倒置指的是 i 满足 0 < i…

Jquery事件、冒泡、委托与节点

1-jquery属性操作 1、html() 取出或设置html内容 // 取出html内容 var $htm $(#div1).html(); // 设置html内容 $(#div1).html(<span>添加文字</span>); 2、prop() 取出或设置某个属性的值 注&#xff1a;attr可以读取自定义属性 // 取出图片的地址 var $src $(#i…

使用 ServiceStack 构建跨平台 Web 服务

本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》&#xff0c;Windows Communication Foundation (WCF) 是一个相当优秀的服务框架&#xff0c;当我们讨论跨平台的服务的时候&#xff0c;虽然WCF对WebService的支持还行&#xff0c;在面对一些…

Hive基础(一)

一、Hive是什么 Hive是基于Hadoop的一个数据仓库工具(离线)&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。&#xff0c;它能接收用户输入的sql语句&#xff0c;然后把它翻译成mapreduce程序对HDFS上的数据进行查询、运算&#xff0c;…

LeetCode 926. 将字符串翻转到单调递增(动态规划)

文章目录1. 题目2. 解题1. 题目 如果一个由 0 和 1 组成的字符串&#xff0c;是以一些 0&#xff08;可能没有 0&#xff09;后面跟着一些 1&#xff08;也可能没有 1&#xff09;的形式组成的&#xff0c;那么该字符串是单调递增的。 我们给出一个由字符 0 和 1 组成的字符串…

利用Jqurey写一个输入内容增加并且可以删除,上下移动的标签

最终结果如下&#xff0c;输入内容增加标签并且可以删除&#xff0c;上下移动&#xff1a; 代码赏析&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>todolist</title><style type…

java的注释、关键字、标识符、变量常量、数据类型、运算符、流程控制等

java的注释、关键字、标识符、变量常量、 数据类型、运算符、流程控制等 1. java概述 1.1 java的技术体系 Java SE&#xff1a;是Java的标准版&#xff0c;提供了完整的java核心API。 Java EE&#xff1a;是Java的企业版&#xff0c;主要用于开发…

LeetCode 851. 喧闹和富有(拓扑排序)

文章目录1. 题目2. 解题1. 题目 在一组 N 个人&#xff08;编号为 0, 1, 2, ..., N-1&#xff09;中&#xff0c;每个人都有不同数目的钱&#xff0c;以及不同程度的安静&#xff08;quietness&#xff09;。 为了方便起见&#xff0c;我们将编号为 x 的人简称为 "perso…

Jquery练习题—实现分组添加功能

实现分组添加功能&#xff1a; <title>Insert title here</title> <script type"text/javascript" src"js/jquery-1.12.4.min.js"></script> <script type"text/javascript"> $(function(){ //需求1&#xff1a;…