基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)

news2024/11/15 7:05:33

物体检测的应用已经深入到我们的日常生活中,包括安全、自动车辆系统等。对象检测模型输入视觉效果(图像或视频),并在每个相应对象周围输出带有标记的版本。这说起来容易做起来难,因为目标检测模型需要考虑复杂的算法和数据集,这些算法和数据集在我们说话的时候就已经被完善和开发了。

以下是我们今天要介绍的内容,为您全面介绍目标检测:

Introduction to object detection with deep learning

  • 1、目标检测基础
      • 什么是目标检测
      • 对象检测与其他任务
  • 2、深度学习vs机器学习
      • 什么是深度学习的目标检测?
  • 3、方法与算法
      • R-CNN, Fast R-CNN, Faster R-CNN
      • YOLO
  • 4、用例和应用程序
      • 监视、安全和交通
      • 汽车
      • 医疗
      • 零售
  • 5、关键的外卖

1、目标检测基础

在深入研究对象检测应用程序、用例和基本对象检测方法之前,对对象检测本身有一个明确的理解是至关重要的。该术语通常与图像分类、对象识别、分割等技术交替使用。然而,必须承认,上面提到的许多任务都是单独的任务,通常属于目标检测。将它们彼此等同使用是不准确的,因为它们都涉及同样重要的任务。
在这里插入图片描述

什么是目标检测

目标检测是一种深刻的计算机视觉技术,专注于识别和标记图像、视频甚至实时镜头中的对象。为了在新数据中执行这一过程,目标检测模型使用剩余的带注释的视觉图像进行训练。它变得像输入视觉效果和接收完全标记的输出视觉效果一样简单。稍后我们将更深入地讨论目标检测模型。一个关键组件是对象检测边界框,它识别带有清晰四边形标记的对象的边缘-通常是正方形或矩形。它们都伴随着对象的标签,无论是人、车还是狗来描述目标对象。边界框可以重叠以显示给定镜头中的多个对象,只要模型对其标记的项目有先验知识。

对象检测与其他任务

让我们单独分解其他计算机视觉任务,以便更好地理解每个任务:

  • 图像分类(Image classification) :这是对图像中项目类别的预测。例如,当您在Google上执行反向图像搜索时,您可能会收到一条提示“可能包含’ x ‘,其中’ x '是该技术检测到的图像的主要对象。图像分类可以显示图像中存在一个特定的对象,但它涉及一个主要对象,并且不提供对象在视觉中的位置。
  • 分割(Segmentation):也称为语义分割,它是将具有可比属性的像素分组在一起的任务,而不是用边界框来识别对象。
  • 目标定位(Object localization ):与目标检测的区别非常微妙但很明显。对象定位旨在识别图像中一个或多个对象的位置,而对象检测则识别所有对象及其边界,而不太关注位置。

2、深度学习vs机器学习

现在你已经掌握了我们对对象检测的基本介绍,现在是时候看看对象检测的两个主要模型:深度学习和机器学习。数据分析师通常认为深度学习方法是相对先进的方法,因为它被认为更直观,不需要太多的人为干预。最终,这两种方法都会产生准确的结果,但这次我们将专注于用深度学习进行对象检测。
在这里插入图片描述

什么是深度学习的目标检测?

将深度学习的目标检测与其他方法区分开来的是卷积神经网络(CNN)的使用。神经网络模仿了人类大脑的复杂神经结构。它们主要由输入层、隐藏内层和输出层组成。这些神经网络的学习可以是有监督的、半监督的和无监督的,指的是有多少训练数据被注释了,如果有的话(无监督)。由于cnn能够在较少的人工工程的情况下自动学习,因此用于对象检测的深度神经网络产生了迄今为止最快和最准确的单个和多个对象检测结果。有一个关于深度学习和cnn的世界需要解开,但今天我们只关注关于目标检测算法和模型的关键点。

3、方法与算法

如果没有专门为处理该任务而设计的模型,对象检测是不可能的。这些目标检测模型是用成千上万的视觉内容来训练的,以便在以后的自动基础上优化检测精度。通过随时可用的数据集(如COCO(上下文中的公共对象))的帮助,可以有效地训练和精炼模型,从而帮助您在扩展注释管道方面领先一步。

让我们仔细看看几种最突出的目标检测算法和方法。

R-CNN, Fast R-CNN, Faster R-CNN

第一个很大程度上成功的方法家族是R-CNN(基于区域的卷积神经网络),该方法于2014年提出。它超越了之前的方法,只从图像中提取了2000个区域,这被称为区域建议,而不是之前的大量区域。R-CNN的流程图如下:选择输入图像,从中提取2000个区域建议。接下来,将从每个单独的区域中提取特征,然后将其分类为已知的类之一。R-CNN的主要缺点在于,虽然提取了2000个地区的提案,但过程很长。这就是为新的和改进的快速R-CNN铺平了道路。

不仅具有大量区域的目标检测过程非常耗时,而且具有如此多区域的CNN训练也非常耗时。Fast R-CNN通过将图像输入到预训练的CNN中以生成卷积特征映射,从而大大减少了处理时间,消除了将图像分解为2000个区域建议的过程。相反,区域建议可以很容易地从特征映射中识别出来,将它们发送到RoI池层,后者从给定的区域中提取特征。然后,前一层的输出由一个完全连接的层处理,其中模型分为两个输出:一个用于通过softmax层进行类预测,另一个用于通过线性输出进行边界框预测。

从R-CNN到快速R-CNN的跳跃有多重要?CNN的训练时间从84小时下降到9小时。此外,测试时间从50秒下降到2.5秒

后来又推出了第三款,也是更加升级的型号,被称为Faster R-CNN。该架构类似于Fast R-CNN,但有一些值得注意的调整。更快的R-CNN不使用选择性搜索,这是基于相似区域的分层分组。区域提案网络将取而代之,以便以创纪录的速度确定区域提案。它将2.5秒的测试速度从快速R-CNN降低到无与伦比的0.2秒,使其成为其前身中最快的,并且是实时目标检测的最佳选择。

YOLO

如果我们说有一个比R-CNN更快的卷积神经网络呢?嗯,有!2015年,一个神经网络家族被提出,缩写为YOLO,参考了著名的短语“你只活一次”。这依赖于一个简单的事实,即网络在输出最终图像之前只“看一眼”或通过网络一次。这允许对象检测与实时镜头,这是相当可取的监视相关的应用。由于其特殊的速度,检测到的物体的准确性低于前面提到的模型,但它仍然成功地成为其他模型中的顶级竞争者。
在这里插入图片描述

4、用例和应用程序

深度学习的目标检测在我们的日常生活中非常普遍,正如我们已经看到的一些例子。它在现代世界的重要性远远超过许多人最初的设想。

监视、安全和交通

撇开数据标签不谈,视频和实时镜头中的目标检测是最先进监控的基石。计算机视觉旨在不断超越预期,创新盗窃检测、交通违规、可疑的人类活动等。所有这些过程正逐渐得到比以往任何时候都更有效的监测。

汽车

对于自动驾驶来说,物体检测是必须的,以便汽车在下一刻决定是否加速、刹车或转弯。这就需要物体检测来识别一系列事物,比如汽车、行人、交通信号、道路标志、自行车、摩托车等等。

医疗

目标检测在医学领域,特别是放射学领域呈现出完美的发展。虽然这项技术不会完全取代放射科医生和其他专家对专业知识的需求,但它将大大减少每天分析数百到数千次超声波扫描,甚至x射线、核磁共振成像和CT扫描的时间。

零售

不需要人工库存检查的智能库存管理,无收银员购物体验,以及更多的零售商在他们的商店中实施对象检测计算机视觉。

5、关键的外卖

目标检测是图像分类和对象定位相结合的地方,用于解释和标记从图像到实时镜头的各种视觉效果。在过去的十年中,使用深度学习的目标检测模型在处理时间和速度上显著降低,如果没有cnn,这是不可行的。我们可以清楚地看到,从智能手机的安全功能到下一代智能汽车所依赖的基础,物体检测的应用非常普遍。毕竟,目标检测模型每天都在进化、成长和创新,以变得更加准确,并解决现代世界中更多的实时问题。

我们希望通过深度学习对目标检测的基本介绍将作为进一步建立的基础。

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

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

相关文章

基于spss的多元统计分析 之 主成分分析(5/8)

实验目的: 1.掌握主成分分析的基本思想; 2.熟悉掌握SPSS软件进行主成分分析的基本操作; 3.利用实验指导的实例数据,上机熟悉主成分分析方法. 实验内容: 下表是我国2005年…

【C++篇】OOP中部分:继承和派生

友情链接:C/C系列系统学习目录 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的…

2023年05月份青少年软件编程Python等级考试试卷六级真题(含答案)

2023-05 Python六级真题 分数:100 题数:38 测试时长:60min 一、单选题(共25题,共50分) 1. 明明每天坚持背英语单词,他建立了英语单词错题本文件“mistakes.txt”,将每天记错的单词增加到该文件中&#x…

ROS:launch文件演示

目录 前言一、添加launch文件夹二、新建launch文件三、编辑launch内容四、 执行文件 前言 一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘…

【数据分享】1929-2022年全球站点的逐日降雪深度数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…

感应电动机起动动态计算(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

#家庭网络配置(华为路由与交换机)

#家庭网络配置 #三层交换机配置 #打开HDCP功能 #进入系统视图 <Huawei>system-view #关闭系统提示信息 [Huawei]undo info-center enable #打开DHCP 使能 [Huawei]dhcp enable #创建vlan 10 vlan 20 vlan 2 [Huawei]vlan batch 2 10 20 #进入 vlan 并配置ip 与 dhcp […

【机器学习】十大算法之一 “神经网络”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

使用Postman模拟文件上传和下载

介绍 Postman是一款强大的HTTP请求模拟工具&#xff0c;它可以帮我们在没有前端界面的情况下模拟发送HTTP请求&#xff0c;非常适合API开发和测试。在本篇文章中&#xff0c;我将向你展示如何使用Postman进行文件的上传和下载。 文件上传 启动Postman&#xff0c;点击“新建请…

Linux的基础操作

0.前言 您好&#xff0c;这里是limou3434的一篇关于Linux基础操作的博文。感兴趣的话&#xff0c;可以看看我的其他博文系列。本次我给您带来的是Linux下的几个基础命令&#xff0c;学会这些命令您就可以开始在Linux管理和操作一些文件了。 注意&#xff1a;本次演示环境是在…

【HTML】常用标签

文章目录 1.标题字标签h1-h62.段落标签p3.换行标签br4.格式化标签5.图片标签6.超链接标签a7.表格标签单元格合并行合并列合并 8.无序列表9.有序列表10.自定义列表11.表单标签11.1 form标签11.2 表单控件11.2.1 input标签11.2.2 label标签11.2.3 select标签11.2.4 textarea标签 …

2023年为什么你需要学习GPU?

2023年为什么你需要学习GPU&#xff1f;掌握这一绝对重要的技能&#xff0c;开启你的未来之旅&#xff01; 亲爱的朋友们&#xff0c;时光飞逝&#xff0c;2023年已经悄然而至。在这个充满机遇和挑战的数字时代&#xff0c;学习GPU成为了你无法忽视的重要任务。为什么呢&#x…

《大话设计模式》笔记

1. 简单工厂模式 1.1 面向对象的好处 考虑通过封装、继承、多态把程序的耦合度降低&#xff0c;使用设计模式使得程序更加的灵活&#xff0c;容易修改&#xff0c;并且易于复用。 1.2 复制 Vs 复用 有人说初级程序员的工作就是 CtrlC 和 CtrlV&#xff0c;这其实是非常不好…

通过僵尸扫描判断目标主机端口开放状态

环境准备 使用scapy工具发包 攻击主机IP: 192.168.133.66 僵尸主机IP: 192.168.133.67 &#xff0c;僵尸主机不主动与任何机器通信&#xff0c;且满足IP数据包ID自增** 注&#xff1a;用nmap 判断主机是否满足僵尸主机条件&#xff0c;一般早期的windwos XP系统IP数据包ID…

MySQL优化--主从同步,分库分表

目录 MySQL主从同步原理 MySQL主从复制的核心就是二进制日志 面试回答 分库分表 分库分表的时机 分库分表的策略 垂直分库 垂直分表 水平分库 水平分表 分库分表的策略 分库之后的问题 面试回答 MySQL主从同步原理 如果项目上线了&#xff0c;通常情况下&#xf…

【Python开发】FastAPI 11:构建多文件应用

以往的文件都是将对外接口写在一个文件里边&#xff0c;而作为应用来说&#xff0c;接口是不可避免分散到多个文件中的&#xff0c;比如某文件负责注册登录模块&#xff0c;某文件负责内管模块&#xff0c;某文件负责业务模块等。FastAPI 也提供了APIRouter 这一工具来进行灵活…

kafka消息队列的初步探索

消息队列的作用就是提高运行速度&#xff0c;防止线程堵塞。 kafka的作用 异步 通过在消息队列发送消息的方式&#xff0c;将对应的业务作为监听者&#xff0c;此时我们只需要考虑发送消息的时间即可&#xff0c;大大提高了运行的速度。 解耦 如果使用原来的直接调用对应业务的…

【libdatachannel】pycharm运行streamer的信令服务及streamer与js客户端联调

启动py服务器 ssl必须额外指定 # Usage: ./server.py [[host:]port] [SSL certificate file]文档给出了服务的启动命令&#xff1a; python3 -m http.server --bind 127.0.0.1 8080 直接运行&#xff1a; python的信令服务 #!/usr/bin/env python # # Python signaling server…

需求分析引言:架构漫谈(二)非功能性需求

上一篇文章&#xff0c;简要介绍了架构的概念和架构设计流程&#xff0c;并简单介绍了需求分析的内容&#xff0c; 并在最后指出&#xff1a;需求分析的产出物&#xff0c;要包括非功能性需求&#xff0c;常见的非功能性需求如下&#xff1a; 完成任务的速度结果的精度操作的安…

MySQL实战解析底层---为什么表数据删掉一半,表文件大小不变

目录 前言 参数innodb_file_per_table 数据删除流程 重建表 Online 和 inplace 前言 数据库占用空间太大&#xff0c;我把一个最大的表删掉了一半的数据&#xff0c;怎么表文件的大小还是没变&#xff1f;这与数据库表的空间回收有关这里还是针对MySQL中应用最广泛的InnoD…