目标检测(任务概述、机器学习时代的方法、深度学习时代的目标检测模型)

文章目录

    • 目标检测任务概述
    • 机器学习时代的目标检测方法
    • 深度学习时代的目标检测模型
      • 基于提议的目标检测模型
        • R-CNN 模型
        • Fast RCNN 模型
        • Faster RCNN 模型
        • SSD 模型
        • YOLO 模型
      • 基于分割的目标检测模型
        • FCN 模型
        • U-Net 模型

目标检测任务概述

  • 目标检测任务的概念:尝试从一张输入图像中找出感兴趣的物体所在的区域。
  • 感兴趣物体所在的区域:一般通过RoI(Region of Interest)进行表示,往往是一个包含有感兴趣的物体的水平的矩形,有时候也会是倾斜的矩形或一个表示物体轮廓线的任意几何形状。
  • 目标检测和OCR的关系:目标检测是一种常见的图像处理任务,是OCR任务的基础。
  • 目标检测技术的发展:在21世纪初,研究者们提出了很多基于机器学习的目标检测算法;十多年后,深度学习将目标检测引领向了一个新时代。
  • 目标检测方法的分类:根据发现感兴趣区域的方式和区域框的几何形状,可以分为两大类:
    • 基于提议的方法:该类方法会首先提出很多的可能包含有感兴趣物体的矩形框,并最终从这些矩形框中选择置信度高的那些作为输出结果。
    • 基于分割的方法:该类方法首先从一张输入图像中将各个物体分割开,然后从这些物体中选择属于感兴趣的类别的物体。

机器学习时代的目标检测方法

  • 主要时间:在2012年深度学习开始繁荣之前,目标检测领域由机器学习方法统治着。

  • 核心思想:根据输入图像提出多个候选区域,从这些候选区域中根据特征匹配找出被认为能够很好地容纳感兴趣的物体的那些。

  • 主要阶段:可以划分为五个阶段。

    • 提议阶段(Proposal):为后续的阶段生成多个候选区域。在机器学习时代,往往是通过不同尺寸的滑动窗口的方式生成数以万计的候选区域。
    • 特征抽取阶段(Feature-extraction):从每一个候选区域中抽取出图像的关键特征。在机器学习时代,往往使用人工设计的图像特征,比较知名的包括SIFT算法和HOG算法。
    • 判定阶段(Judgement):基于每一个候选区域的图像特征向量判定该区域中是否包含一个感兴趣的物体。大多数的机器学习方法会对于每一个感兴趣的类别训练一个SVM分类器,训练过程中使用的损失函数是Hinge损失函数(一个著名的算法是DPM,该算法赢得了2007年到2009年的PASCAL VOC目标检测挑战赛冠军)。另外,在该阶段还会给每一个候选框根据其对感兴趣物体的容纳情况生成置信度,这些置信度在后续的抑制阶段会被使用。
    • 调整阶段(Adjustment):调整候选区域的位置和尺寸。该阶段也是在DPM算法中首次提出的,使用边界框回归(BBR)来调整候选区域的位置和尺寸,帮助候选区域能够更好地容纳我们感兴趣的物体。BBR算法中,通过候选区域与和它最近的真实的边界框的交并比来量化候选区域的质量,
    • 抑制阶段(Suppression):移除高度重合的候选区域。使用的算法是非极大值抑制算法(NMS)。该方法首先设置一个交并比阈值,然后找出所有交并比超过该阈值的候选区域对,从中删除置信度较低的候选区域。该算法持续执行到无法继续移除候选区域为止,最终保留下来的候选区域就是最终的输出结果。
  • 存在的主要限制

    • 候选区域过多:传统的机器学习方法往往会在提议阶段生成非常多的候选区域,这些候选区域之间存在严重的重叠,在概念上和计算上都为下游的分析带来了很大的困难。
    • 图像特征提取不充分:基于人工设计的图像特征不能很好地捕捉输入图像中的关键信息。

深度学习时代的目标检测模型

基于提议的目标检测模型

R-CNN 模型

该模型于2014年提出。

  • 模型特色

    • 选择性搜索算法
      • 改进措施:R-CNN在生成候选区域的阶段,取消了原始的滑动窗口策略,而是采用一种新的选择性搜索算法。
      • 基本原理:选择性搜索算法通过在不同尺度和颜色空间中寻找相似的区域,并将它们合并成更大的区域(如果合并结果不是矩形则进行填充),以此来生成可能包含物体的候选区域。
      • 算法效果:最终,选择性搜索算法可以得到2000个左右的候选区域,相较于滑动窗口算法生成的候选区域少得多,方便后续的各种分析处理。
    • 预训练的卷积神经网络
      • 改进措施:在图像特征抽取阶段,R-CNN使用一个在ImageNet上预训练好的卷积神经网络(AlexNet)来对每一个候选区域进行图像特征抽取,而取消了人工设计的图像特征。
  • 算法结果

    • 精确度提升:相较于之前的基于机器学习的精确度最高的方法,该方法的精确度提高了超过30%。
    • 计算消耗降低:相较于之前的基于机器学习的方法,由于生成的候选区域更少,因此该算法的计算消耗也大大降低。
  • 存在的问题

    • 图像特征向量计算非并行:对于上一个步骤生成的大约2000个候选区域,R-CNN采用分开计算的方法,对于每一个候选区域计算其图像特征向量。
    • 各个阶段之间没有关联性:R-CNN中需要训练的三部分模型(也就是用于提取图像特征的卷积神经网络、用于进行判定的SVM和用于进行候选区域调整的模型BBR)是分开独立进行的,而没有作为一个整体进行统一训练。
    • SVM分类器存在的问题:对于不同的感兴趣物体类别需要独立训练多个SVM并分开使用,因此需要大量的训练开销。
    • 损失函数不够合理:在分类阶段,SVM只会输出每个候选框的二分类结果,而损失了该分类的详细信息,这些信息本可以通过设计合适的损失函数来进行利用。
Fast RCNN 模型

该模型于2015年提出。

  • 模型特色
    • 空间金字塔池化网络
      • 改进措施: Fast RCNN中使用何恺明提出的空间金字塔池化网络(SSPN)来代替R-CNN中的AlexNet。
      • 空间金字塔池化网络原理:即在原始的CNN网络中添加RoI池化层。通过该网络,可以同时计算提议阶段生成多个候选区域的图像特征向量,而不是像R-CNN中需要单独地对每一个候选区域计算图像特征向量,大大提高了计算速度。
    • 用神经网络取代SVM
      • 改进措施: 使用一个带有几层全连接层的神经网络进行分类,而取代了R-CNN中的多个并行SVM分类器。
      • 改进优点:神经网络避免了需要同时平行地训练多个SVM分类器,提升了训练的统一性,降低了训练难度;另外,神经网络的输出结果是分类概率而不是二分类的结果,因此能够更好地利用训练过程中的信息。
    • 设计联合的损失函数
      • 改进措施:将判断候选区域属于哪个类别的分类损失(交叉熵损失函数)和调整候选区域的位置和大小的边界框回归损失(平滑L1损失函数)合并为一个多任务损失函数。这种方式提高了训练的效率。
  • 算法效果
    • 显著的训练加速:相较于原始的R-CNN方法,该方法的训练加速了接近150倍。
    • 略微提高的精确度:相较于R-CNN,该方法进行目标检测的精确度略有提高。
  • 存在的限制
    • 提出候选区域的算法仍然不够高效:Fast RCNN仍然采用选择搜索算法来找出候选区域,但是这种方法仍然有进一步改进从而提升效率的空间。
Faster RCNN 模型

该模型由何恺明在2015年提出。

  • 模型特色
    • 区域提议网络(RPN):在该模型中,使用区域提议网络来取代选择性搜索算法。它是一个深度学习网络,可以在特征图上滑动一个小的卷积核(通常称为“锚点”或“anchor”),并为每个锚点预测一个边界框和这个边界框包含物体的概率。RPN会根据这些预测生成候选区域,这些候选区域是网络通过学习得到的,能够更加准确地定位到可能的物体位置。
  • 模型效果:相较于Fast RCNN,该模型通过区域提议网络,可以快超过10倍。
SSD 模型

该模型于2016年提出。

  • 模型特色
    • 统一中间步骤:SSD模型将目标检测任务中图像特征抽取、分类和调整三个步骤合并,直接对于生成的候选区域,使用端到端的卷积神经网络,生成预测类别向量和调整后的位置。
    • 损失函数:SSD模型中采用L2损失函数多类logistic损失函数的叠加作为模型的损失函数。
    • 优化后的区域提议网络:该模型对RPN进行了优化,在多个尺度的特征图上进行高效的目标检测,从而提升目标检测的精确度。
  • 模型效果:由于更多的阶段合并,使得SSD相较于Faster RCNN训练起来更加简单,比Faster RCNN还要快3到5倍,并且由于改进后的RPN算法,模型在精确度上也得到了提升。
YOLO 模型

该模型于2016年提出。

  • 模型特色
    • 直接生成候选区域:YOLO将输入图像直接通过7×7的网格划分为49个候选区域。
    • 使用CNN进行并行计算:使用一个卷积神经网络同时处理49个候选区域,输出这些候选区域的边界框坐标和分类概率。
  • 模型效果:相较于Faster RCNN,该模型可以加速三倍,但是目标检测精确率略有下降。

后续的目标检测模型还有 YOLO V2YOLO V3RetinaNetDSSDCascade RetinaNet等。上述的这些模型都是基于提议的目标检测模型的经典代表,下面将介绍基于分割的目标检测模型。

基于分割的目标检测模型

  • 使用场景:主要用于检测方向非水平以及边界不规则的物体,作为基于提议的目标检测方法的补充。
  • 基本原理:将输入图像分割为多个子部分,每一个子部分要么是一个物体,要么是背景,然后再判断每一个子部分哪一个才是需要检测的物体。该类方法实际上把目标检测问题变为了一个图像分割问题。
  • 机器学习时代的图像分割模型:可以分为基于聚类的模型、基于阈值的模型和基于边缘检测的模型等。
    • 基于聚类的模型:将输入图像中的像素进行聚类,聚类的同一个簇中的像素可能在颜色、纹理等特征上类似,因此一个簇被视为一个分割结果。
    • 基于阈值的模型:为每一个像素的多个特征设置阈值,相当于对一个特征空间进行了划分,将每一个像素的特征值投入该特征空间中,根据其所处的特征子空间来确定其类型。
    • 基于边缘检测的模型:通过检测位于表示物体边缘的像素来分割不同的区域。
FCN 模型
  • 提出时间:该模型于2015年提出。
  • 核心思想:将图像分割问题视为一个对图像中每一个像素的分类的问题。
  • 基本架构:编码器解码器架构。通过一个卷积神经网络编码器对输入图像进行编码,将得到的特征图通过反卷积神经网络解码器进行解码(实际上就是一个上采样过程)。最后输出一个特征图,特征图中对于每一个像素,都有一个概率向量,表示该像素属于各个类别的概率。该模型使用Softmax损失函数进行训练。
U-Net 模型
  • 提出时间:该模型于2015年提出,本身是用来分割生物医疗图像的。
  • 模型架构:该模型和FCN类似,但是其增加了一个U形的结构,其中包含多个编码器路径和解码器路径。另外,U-Net在上采样的过程中还使用了跳跃连接,将编码器路径中的高分辨率特征图直接与解码器路径中的相应特征图拼接起来,从而保留更多的信息。

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

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

相关文章

xLua详解

目录 环境准备xLua导入 C#调用LuaLua解析器Lua文件加载重定向Lua解析管理器全局变量的获取全局函数的获取List和Dictionary映射table类映射table接口映射tableLuaTable映射table Lua调用C#准备工作Lua使用C#类Lua调用C#枚举Lua使用C# 数组 List 字典数组List字典 Lua使用C#扩展…

解决NetworkManager覆盖/etc/resolv.conf的问题

发布时间:2024.4.27 问题 /etc/resolv.conf是Linux下DNS的配置文件。 但是NetworkManager会用覆盖它,导致我们每次都要重新配置。 解决办法 这是官方推荐的做法。或者你可以用resolveconf工具。 $ nm-connection-editor会调起一个界面,…

Python_AI库 matplotlib扩展知识

Python_AI库 matplotlib扩展知识 在数据分析和处理的领域里,可视化是一种不可或缺的手段。通过图形化的展示,我们可以更直观地理解数据的分布、趋势和关系。而matplotlib,作为Python中最为流行的数据可视化库之一,以其强大的功能…

【C++】简易二叉搜索树

目录 一、概念: 二、代码实现: 大致结构: 1、遍历: 2、insert 3、find 4、erase 三、总结: 一、概念: 二叉搜索树又称为二叉排序树,是一种具有特殊性质的二叉树,对于每一个节…

在虚拟环境中找到Qt Designer

Pyqt5中找到Qt Designer 安装Pyqt5和Qt Designer: pip install pyqt5-tools 假设Python的虚拟环境名为:d2l ,虚拟环境在d2l文件夹中 D:\Software\d2l\Lib\site-packages\qt5_applications\Qt\bin 双击Qt designer启动 Pyside2中找到Qt Designer d2l是虚拟环境…

上位机图像处理和嵌入式模块部署(树莓派4b下使用sqlite3)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 嵌入式设备下面,有的时候也要对数据进行处理和保存。如果处理的数据不是很多,一般用json就可以。但是数据如果量比较大&…

rust前端web开发框架yew使用

构建完整基于 rust 的 web 应用,使用yew框架 trunk 构建、打包、发布 wasm web 应用 安装后会作为一个系统命令,默认有两个特性开启 rustls - 客户端与服务端通信的 tls 库update_check - 用于应用启动时启动更新检查,应用有更新时提示用户更新。nati…

Linux——终端

一、终端 1、终端是什么 终端最初是指终端设备(Terminal),它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中,终端通常是一台带有键盘和显示器的电脑,用户通过它输入命令,计算机在执行命…

SpringBoot引入Layui样式总是出现404

一般出现Layui样式文件如css,js404的错误 解决方案 (1)首先将其中的静态资源下载resources/static中 (2)在启动类中重写方法 package com.gq.booksystem;import org.mybatis.spring.annotation.MapperScan; import …

centOS 7.9操作

名称日期版本作者centOS7.9操作2024.4.271.0lll 实验题目: 创建一个用户。 在创建的用户中再创建一个2024的目录。 在2024的下在创建一个 1---10的目录,再创建一个a--z.txt的文件。 在创建一个2024bak的目录。 再将当前用户的所有文件备份到2024ba…

【算法学习】线段树基础版

一 线段树 1.概念 线段树可以理解为一个二叉树,如果是利用线段树求区间的和,那么每个结点的权值维护的是结点所维护区间的和,再将该区间一分为二,分别交由左右儿子维护。 拿区间1 - 4的和来举例子, 根结点维护的是区…

JavaEE——Spring Boot入门

目录 📚 JavaEE——Spring Boot入门 🔧 1. 新建Spring Boot项目 🛠 2. 添加pom依赖 📝 3. 添加application.yml文件 📂 4. 创建Dao层 🔧 5. 创建Service层 🖥️ 6. 创建Controller层及HT…

使用ClassFinal实现springboot项目jar包加密

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

docker容器技术篇:集群管理实战mesos+zookeeper+marathon(二)

docker集群管理实战mesoszookeepermarathon(二) 一 实验环境 操作系统:centos7.9 二 基础环境配置以及安装mesos 安装过程请点击下面的链接查看: 容器集群管理实战mesoszookeepermarathon(一) 三 安装…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 4月27日,星期六

每天一分钟,知晓天下事! 2024年4月27日 星期六 农历三月十九 1、 教育部:深入实施学生欺凌防治专项行动,对所有中小学校开展起底式大排查。 2、 商务部等七部门联合印发《汽车以旧换新补贴实施细则》,购车最高补贴1万…

【VBA】获取指定目录下的Excel文件,并合并所有excel中的内容。

1.新建一个excel表格。并创建两个Sheet,名字分别命名为FileList 和 All information。 2.按ALTF11进入 VBA编程模块,插入模块。 3.将如下 第五部分代码复制到模块中。 点击运行即可,然后就能提取指定目录下的所有excel文件信息并合并到一起…

连接oracle时出现ORA-12541:TNS:无监听程序的错误

遇到个问题,有一台windows serve 的服务器,这台服务器(只部署了oracle)忽然监听出问题了,提示 一、问题检查步骤: 1.winR--->cmd--->输入 lsnrctl status 查看监听的状态 如果监听器未运行&#…

【01】JAVASE-Java基础入门【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

移远通信再推系列高性能卫星、5G、GNSS及三合一组合天线

4月23日,全球领先的物联网整体解决方案供应商移远通信正式宣布,再次推出多款高性能天线产品,以进一步满足物联网市场对高品质天线产品的需求。 其中包括卫星天线YETN001L1A、三合一组合天线YEMA300QXA和YEMN302Q1A,外部5G天线YECN…

windows环境下搭建Sqli-Labs靶场

目录 靶场介绍: 一,PHPstudy下载,安装 二,SQLI-LABS靶场上传 靶场介绍: SQLi-LABS 是一款SQL注入的靶场环境,共有75关,是网安入门、进阶必打的一款靶场; 下面的测试场景都支持GE…