卷积神经网络-目标探测

文章目录

    • 目标探测介绍
    • 任务
    • 思路
    • DPM
    • RCNN
    • 1)候选区域选择
    • 2)CNN特征提取
    • 3)分类与边界回归
    • R-CNN总结
    • 优点
    • 缺陷
    • FAST-RCNN
    • FASTER-RCNN
    • YOLO

目标探测介绍

在这里插入图片描述

任务

分类+获取坐标
目标探测
图片分割

思路

回归问题:利用神经网络进行目标识别,同样目标变为坐标值
在这里插入图片描述
该思路问题:在位置尝试识别,能够完成识别的地方就是目标位置在这里插入图片描述
如何找到侯选位置?
在这里插入图片描述
假如你想构建一个汽车检测算法,步骤是,首先创建一个标签训练集,也就是x和y表示适当剪切的汽车图片样本,这张图片(编号1)x是一个正样本,因为它是一辆汽车图片,这几张图片(编号2、3)也有汽车,但这两张(编号4、5)没有汽车。出于我们对这个训练集的期望,你一开始可以使用适当剪切的图片,就是整张图片x几乎都被汽车占据,你可以照张照片,然后剪切,剪掉汽车以外的部分,使汽车居于中间位置,并基本占据整张图片。有了这个标签训练集,你就可以开始训练卷积网络了,输入这些适当剪切过的图片(编号6),卷积网络输出y,0或1表示图片中有汽车或没有汽车。训练完这个卷积网络,就可以用它来实现滑动窗口目标检测,具体步骤如下。在这里插入图片描述

假设这是一张测试图片,首先选定一个特定大小的窗口,比如图片下方这个窗口,将这个红色小方块输入卷积神经网络,卷积网络开始进行预测,即判断红色方框内有没有汽车。在这里插入图片描述

滑动窗口目标检测算法接下来会继续处理第二个图像,即红色方框稍向右滑动之后的区域,并输入给卷积网络,因此输入给卷积网络的只有红色方框内的区域,再次运行卷积网络,然后处理第三个图像,依次重复操作,直到这个窗口滑过图像的每一个角落。

为了滑动得更快,我这里选用的步幅比较大,思路是以固定步幅移动窗口,遍历图像的每个区域,把这些剪切后的小图像输入卷积网络,对每个位置按0或1进行分类,这就是所谓的图像滑动窗口操作。在这里插入图片描述

重复上述操作,不过这次我们选择一个更大的窗口,截取更大的区域,并输入给卷积神经网络处理,你可以根据卷积网络对输入大小调整这个区域,然后输入给卷积网络,输出0或1。
在这里插入图片描述

再以某个固定步幅滑动窗口,重复以上操作,遍历整个图像,输出结果。

在这里插入图片描述

然后第三次重复操作,这次选用更大的窗口。

如果你这样做,不论汽车在图片的什么位置,总有一个窗口可以检测到它。

比如,将这个窗口(编号1)输入卷积网络,希望卷积网络对该输入区域的输出结果为1,说明网络检测到图上有辆车。

这种算法叫作滑动窗口目标检测,因为我们以某个步幅滑动这些方框窗口遍历整张图片,对这些方形区域进行分类,判断里面有没有汽车。

DPM

基本思想: 提取图像特征,制作出激励模版,在原
始图像滑动计算,得到激励效果图,根据激励分布确定
目标位置在这里插入图片描述

  1. 产生多个模版,整体模版以及不同局部模版
  2. 不同模版同输入图片“卷积”产生特征图
  3. 特征图组合形成融合特征
  4. 对融合特征进行传统分类,回归,得到目标位置在这里插入图片描述
  5. 优点:
  6. 方法直观简单
  7. 运算速度快
  8. 适应运动物体变形
    缺点:
  9. 性能一般
  10. 激励特征人为设计,工作量大
  11. 大幅度旋转无法适应,稳定性差

RCNN

神经网络分类思想: 对多个位置,不同尺寸,用卷积神经网络判断区域内图片是不是某物
候选位置(proposal)提出方法:EdgeBox
RCNN(Regions with CNN features)是将CNN方法应用到目标检测问题上的一个里程碑,由年轻有为的RBG大神提出,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。

    算法可以分为四步:

1)候选区域选择

    Region Proposal是一类传统的区域提取方法,可以看作不同宽高的滑动窗口,通过窗口滑动获得潜在的目标图像,关于Proposal大家可以看下SelectiveSearch,一般Candidate选项为2k个即可,这里不再详述;根据Proposal提取的目标图像进行归一化,作为CNN的标准输入。

2)CNN特征提取

    标准CNN过程,根据输入进行卷积/池化等操作,得到固定维度的输出;

3)分类与边界回归

    实际包含两个子步骤,一是对上一步的输出向量进行分类(需要根据特征训练分类器);二是通过边界回归(bounding-box regression) 得到精确的目标区域,由于实际目标会产生多个子区域,旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。

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

R-CNN总结

优点

  1. CNN用于目标探测,利用了CNN高效识别能力,大大提高性能
  2. 摆脱人为设计物品模版,方法具有通用性
  3. 分类+回归,有了找到精确位置的可能

缺陷

  1. 为了检测一个目标,所有候选区域计算,大量卷积运算,非常慢
  2. SVM训练与CNN断裂,有效信息不能用于优化模型,not end-to-end。
  3. 每一类单独训练,异常繁琐

FAST-RCNN

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

FASTER-RCNN

在这里插入图片描述

YOLO

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

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

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

相关文章

相机视场角和焦距_镜头小讲堂(一)镜头的焦距

在刚购买完相机的时候,我们久会考虑需要什么样的镜头来配合机身来使用。而市场上的镜头种类是在太多了,所以我们就要学习了解下镜头都有哪些种类,选择哪种镜头比较有优势。这也是学习摄影必备的基础知识。01 镜头的焦距焦距是镜头的重要指标&…

小程序开发过程注意事项

尽量避免使用 this.setData({});会让小程序页面会重新渲染,耗性能资源。 比如 ,clickShow: function(e) {this.setData({comment: ""});var comment e.currentTarget.dataset.comment && this.data.comment "" ? e.curre…

C语言指定初始化器解析及其应用

由于笔者能力有限,文中如果出现错误的地方,欢迎大家给我指出来,我将不胜感激,谢谢~#指定初始化器的概念C90 标准要求初始化程序中的元素以固定的顺序出现,与要初始化的数组或结构体中的元素顺序相同。但是在…

python self 序列_python中序列化对象

# 序列化对象p1import pickle # 内置库class People:def __init__(self, name, age):self.name nameself.age agedef sayhi(self):print("Hi, my name is {}, and Im {}".format(self.name, self.age))p1 People(name"Jack&qu…

递归神经网络

文章目录LSTM![在这里插入图片描述](https://img-blog.csdnimg.cn/20200609171449198.pngLSTM 4INPUTS 1outputs

程序媛计划——mysql连接表

#inner join等值连接/内连接 mysql> select * from info; ----------------------------- | name | phone | address | ----------------------------- | zhao | 13199999999 | Beijing | | qian | 1328888888 | Harbin | | sun | 13366666666 | Sha…

CNN+RNN

文章目录相同点不同点组合意义组合方式图片标注基本思路模型设计-数据准备视频行为识别视频行为识别图片问答相同点 传统神经网络的扩展 前向计算产生结果,反向计算模型更新 每层神经网络横向可以多个神经元共存,纵向可以多层神经网络链接 …

jsr 正则验证_Java数据校验(Bean Validation / JSR303)

#简介JSR303是JAVA EE6中的子规范。用于对Java Bean的字段值进行校验,确保输入进来的数据在语义上是正确的,使验证逻辑从业务代码中脱离出来。JSR303是运行时数据验证框架,验证之后验证的错误信息会马上返回。有两个版本JSR303(BeanValidatio…

css 透明度使用

设置元素整体透明度: div{opacity: 0.5; } 设置背景色透明度 div{background: rgba(0,0,0,0.5); } 转载于:https://www.cnblogs.com/chenglj/p/7498107.html

深入理解Linux内核链表

之前写过的链表文章,再结合这篇,我觉得是一道硬菜。Linux内核链表C语言,链表大家五一节日快乐,我知道劳动节大家都辛苦了,吃点硬菜好顶住饿肚子~#一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构&#x…

GAN

文章目录生成对抗网络(GAN)基础生成对抗网络 优点:缺点:生成对抗网络深度GANDCGAN结构细节特征研究DCGAN总结条件GAN模型结构INFOGANInfoGAN: 自动学习z中部分变量意义Wasserstein GANGAN存在问题原因WGAN特点改进方法:生成对抗网络(GAN)基础…

sql 查询统计最近7天,30天,1年的数据

统计最近7天每天的数据 第一个查询统计了最近7天内,每天创建的’WAIT_SEND’状态的订单数量。这是通过将当前日期向前推移6天(DATE_SUB(CURDATE(), INTERVAL 6 DAY))实现的。然后,它会按照创建日期对结果进行分组(GROU…

1200可以读取modbus tcp_S7-1200 作 MODBUS TCP服务器

S7-1200 Modbus TCP 通信指令块STEP 7 V13 SP1 软件版本中的Modbus TCP库指令目前最新的版本已升至V4.0,该版本的使用需要具备以下两个条件:1. 软件版本: STEP 7 V13 SP1及其以上2. 固件版本: S7-1200 CPU 的固件版本V4.1图1. Mod…

判断对象oStringObject是否为String

1.操作符 (1)typeof操作符 格式:resulttypeof variable 返回值: undefined 值未定义 boolean 布尔值 string 字符串 number 数值 object 对象、null function 函数 (2)instanceof操作符 格式:re…

Linux一定需要文件系统吗?

开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题! 一语破天机:“尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如…

迁移学习

文章目录为什么需要迁移学习模型Fine-‐tune![在这里插入图片描述](https://img-blog.csdnimg.cn/20200612000845217.png)保守训练层迁移Multitask Learning渐进式神经网络/Progressive Neural Networks域对抗零样本学习Self-‐taught learning为什么需要迁移学习 使用深度学习…

RNA-Seq分析软件HTSeq的安装

1.本人刚开始安装的时候,先下载相关的软件包,然后安装installtion中的方法安装, 运行的时候老是报错。根据错误提示安装解决方法。也参考了其他的笔友的一些建议, 发现特别麻烦,后来无意中发现有小伙伴用bioconda来安装…

怎么撤回操作_微信又更新,拍一拍能撤回了

微信拍一拍功能在 6 月份刚上线时,「微信之父」张小龙就发朋友圈表示,微信史上仅需一行代码的有趣功能终于来了,拍一拍,像蚂蚁一样打招呼。拍一拍功能将大家在现实世界的肢体交流带到了虚拟世界,相信大家都有儿时和三俩…

吹牛

起了一个不太雅观的标题,我很想给我们的会晤起一个响亮的名字,比如「三方会谈」或者「新一代5.4事件」,再或者牛逼点的,我们可以叫「西乡起义」。好吧,我摊牌了,这次吃饭就是三个屌丝和一个大佬的闲暇吹牛&…

迁移学习实战

文章目录预处理网络模型的构建网络的训练网络模型的验证预处理 from __future__ import absolute_import from __future__ import division from __future__ import print_functionimport tensorflow as tffrom tensorflow.python.ops import control_flow_opsdef apply_with_…