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

文章目录

    • 目标检测任务概述
    • 机器学习时代的目标检测方法
    • 深度学习时代的目标检测模型
      • 基于提议的目标检测模型
        • 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会调起一个界面,…

RabbitMQ通配符模式

RabbitMQ通配符模式 简介代码演示生产者消费者 简介 RabbitMQ是一个开源的消息中间件,在分布式系统中被广泛应用于消息的传递和处理。它支持多种工作模式,其中之一是通配符(TOPIC)模式。本文将对RabbitMQ的通配符模式进行详细的讲…

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),它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中,终端通常是一台带有键盘和显示器的电脑,用户通过它输入命令,计算机在执行命…

Swift中的单例

在Swift中实现单例模式可以通过使用静态常量或静态变量来实现。下面是一个示例: class Singleton {static let sharedInstance Singleton()private init() {// 这里是初始化代码}// 这里是其他实例方法和属性 }在上面的示例中,通过使用static let来创建…

SpringBoot引入Layui样式总是出现404

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

商城数据库(1-4)

1——商家认证项目表(wang_accreds) CREATE TABLE wang_accreds (accredId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,accredName varchar(50) NOT NULL COMMENT 名称,accredImg varchar(150) NOT NULL DEFAULT 0 COMMENT 图标,dataFlag tinyint…

centOS 7.9操作

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

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

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

开发管理导读

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、代码版本管理1、github代码版本管理2、gitlab代码版本管理3、SVN(Subversion)代码版本管理 二、代…

JavaEE——Spring Boot入门

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

【小浩算法cpp题解】合并两个有序链表(21)

目录 前言我的思路我的代码 前言 今天继续做链表相关的题目,考研期间练多了现在觉得这种题目真是简单。晚上如果有机会可以再做一个树的深度优先搜索。 我的思路 其实这道题的思路比较像排序中的二路归并,最核心的点是在归并的时候要防止断链,我的解决…

librosa 语音识别 学习笔记

目录 不错的功能介绍 librosa安装 语音识别 不错的功能介绍 librosa,一个很有趣的 Python 库! - 简书 音频转特征向量 GitHub - librosa/librosa: Python library for audio and music analysis librosa安装 2024.04.27 测试ok Win11系统 pip in…

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

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

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

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