文章目录

  • 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算法有一个好处,它是一个卷积实现,运行速度非常快,可以达到实时识别


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

6. 交并比

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阿明),一起加油、一起学习进步!

04.卷积神经网络 W3.目标检测相关推荐

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

    文章目录 1. 问题背景 2. YOLO 模型 2.1 模型细节 2.2 分类阈值过滤 2.3 非极大值抑制 2.4 完成过滤 3. 在照片上测试已预训练的YOLO模型 3.1 定义类别.anchor ...

  2. 熬了几个大夜,学完一套985博士总结的「卷积神经网络、目标检测、OpenCV」学习笔记(20G高清/PPT/代码)...

    AI 显然是最近几年非常火的一个新技术方向,从几年前大家认识到 AI 的能力,到现在产业里已经在普遍的探讨 AI 如何落地了. 我们可以预言未来在很多的领域,很多的行业,AI 都会在里边起到重要的作用 ...

  3. 基于深度卷积神经网络的目标检测研究综述

    基于深度卷积神经网络的目标检测研究综述 人工智能技术与咨询 来自<光学精密工程> ,作者范丽丽等 摘要:作为计算机视觉中的基本视觉识别问题,目标检测在过去的几十年中得到了广泛地研究.目标检 ...

  4. 基于卷积神经网络的目标检测算法

    基于卷积神经网络的目标检测算法 1 滑窗法 滑窗法的思路及其简单,首先需要已经训练好的一个分类器,然后把图片按照一定间隔和不同的大小分成一个个窗口,在这些窗口上执行分类器.如果得到较高的分数分类,就认 ...

  5. 卷积神经网络之目标检测总结

    概述 传统的目标检测任务主要通过人工提取特征模型建立,常用的特征包括:HOG.SIFT.Haar等,特征提取模型之后进行支持向量机或者Adaboost的分类任务,进而得到我们所关注的目标结果.由于特征 ...

  6. 基于卷积神经网络的目标检测模型的研究_黄咨_2014_上海交大

    一.传统检测模型和卷积神经网络对比 传统检测模型:采用人工特征提取方法获取目标的特征描述.然后输入到一个分类器中学习分类规则. 人工特征提取方法的缺点: (1)对设计者提出比较高的学术要求, (2)提 ...

  7. 卷积神经网络三:目标检测和yolo算法

    1 目标定位 对象检测,它是计算机视觉领域中一个新兴的应用方向,相比前两年,它的性能越来越好.在构建对象检测之前,我们先了解一下对象定位,首先我们看看它的定义. 图片分类任务我们已经熟悉了,就是算法遍 ...

  8. 深度卷积神经网络在目标检测中的进展

    作者:travelsea 链接:https://zhuanlan.zhihu.com/p/22045213 来源:知乎 近些年来,深度卷积神经网络(DCNN)在图像分类和识别上取得了很显著的提高.回顾 ...

  9. 毕设-python 卷积神经网络 机器视觉 目标检测 车牌识别 - opencv 深度学习 机器学习

    文章目录 前言 一 课题背景 二 效果演示 2.1 图片检测识别 2.2视频检测识别 三 车牌检测与识别 四 HyperLPR库 4.1 简介 4.2 特点 4.3 HyperLPR的检测流程 4.4 ...

最新文章

  1. array用法 numpy_关于Numpy Array的使用技巧整理
  2. 域控制器显示无法使用解决办法
  3. hdu 3812 Sea Sky 深搜+剪枝
  4. Unknown encoder ‘libx264‘的解决方法
  5. 使用火狐的restclient发送http接口post及get请求
  6. 合泰单片机c语言halt指令,holtek单片机图文全面详解
  7. webpack 3 零基础入门教程 #16 - 使用 ProvidePlugin 插件来处理像 jQuery 这样的第三方包...
  8. UE4 HTC VIVE手柄按键对应Montion Controller 蓝图的命令
  9. 利用Madmom识别和弦
  10. 子网掩码以及网络地址、主机地址、广播地址
  11. java小球挡板游戏_多线程的一个小球游戏,就是以前的那个Pong游戏
  12. php 发socket数据库,php socket连接数据库
  13. iphone4s和iphone5屏幕尺寸的兼容
  14. 学生管理系统的设计与实现
  15. How to solve the lossless offline problem of Spring Cloud Alibaba service instance in Kubernetes
  16. python的if语句怎么写-Python的if语句
  17. chrome的资源文件pak的解压和压缩
  18. AI圣经《深度学习》作者斩获2018年图灵奖,100 万奖励!...
  19. Aliyun短信服务集成
  20. 每日要闻汇总 要闻汇总12条 新闻早知道

热门文章

  1. charles 安装 ssl_最全面的解决Charles手机抓包的证书问题(步骤非常详细)
  2. cc压力测试_中小型网站如何防范CC攻击?
  3. 如何使用CppUnit进行单元测试
  4. 动态载入树 (ASP+数据库)
  5. window 快捷键使用 + idear 编辑器使用
  6. 软件架构阅读笔记(引)
  7. Spring源码解析(二)BeanDefinition的Resource定位
  8. OpenvSwitch实现kubernetes依赖的底层网络
  9. C#基于LibUsbDotNet实现USB通信(一)
  10. g++: command not found的解决