使用深度学习进行对象检测的终极指南 [2022]
已发表: 2021-01-08目录
介绍
简单来说,对象检测是一种用于识别和检测图像或视频中存在的不同对象并标记它们以对这些对象进行分类的方法。 对象检测通常使用不同的算法来执行对象的这种识别和定位,这些算法利用深度学习来生成有意义的结果。
物体检测
对象检测技术有助于识别、检测和定位图像或视频中对象的多个视觉实例。 它提供了对整个对象的更好理解,而不仅仅是基本的对象分类。 此方法可用于计算唯一对象实例的数量并标记其精确位置以及标记。 随着时间的推移,这个过程的性能也有了显着提高,帮助我们处理实时用例。 总而言之,它回答了这个问题:“什么物体在哪里,有多少?”。
资源
什么是对象?
对象是可以在视觉上表示的元素。 物体的物理特性没有大范围的可变性。 物体必须是半刚性的才能被检测和区分。
物体检测的历史
在过去的 20 年中,物体检测的进展总体上经历了两个重要的发展时期,从 2000 年代初期开始:
1. 传统的物体检测——2000 年代初到 2014 年。

2. 基于深度学习的检测——2014 年后。
物体检测的技术演进始于 2000 年代初和当时的探测器。 他们遵循低级和中级愿景,遵循“按组件识别”的方法。 该方法使对象检测成为对象组件、形状和轮廓之间相似性的度量,考虑的特征是距离变换、形状上下文和无边等。事情进展不顺利,然后是机器检测方法开始进入画面来解决这个问题。
通过考虑具有“不同大小”和“不同纵横比”的对象来完成对象的多尺度检测。 这是早期阶段目标检测的主要技术挑战之一。 但是,2014年之后,随着技术进步的增加,这个问题得到了解决。 这将我们带到了目标检测的第二阶段,其中任务是使用深度学习完成的。
资源
概念
这个过程背后的主要概念是每个对象都会有它的特征。 这些功能可以帮助我们将对象与其他对象隔离开来。 对象检测方法使用这些特征对对象进行分类。 相同的概念用于面部检测、指纹检测等。
举个例子,如果我们有两辆车在路上,使用物体检测算法,我们可以对它们进行分类和标注。
来源:
定义
对象检测是在图像或视频中实时查找所有可能的真实对象实例的过程,例如图像或视频中的人脸、花朵、汽车等。 对象检测技术使用派生特征和学习算法来识别对象类别的所有出现。 对象检测的实际应用包括图像检索、安全和监控、高级驾驶员辅助系统(也称为 ADAS)等等。
阅读:十大深度学习技术
目标检测的一般描述
我们人类可以检测到我们面前的各种物体,我们也可以准确地识别它们。 对我们来说,不费吹灰之力就可以轻松计算和识别多个对象。 技术的最新发展导致大量数据可用于训练有效算法,使计算机执行相同的分类和检测任务。
与对象识别相关的术语有很多,例如计算机视觉、对象定位、对象分类等,作为初学者可能会让您不知所措,所以让我们逐步了解所有这些术语及其定义:
- 计算机视觉:这是一个人工智能领域,使我们能够训练计算机使用算法和模型来理解和解释图像和视频的视觉效果。
- 图像分类:它涉及使用人工智能对图像进行检测和标记。 这些图像使用用户给出的特征进行分类。
- 对象定位:它涉及检测给定视觉中的不同对象,并在它们周围绘制边界,主要是一个框,以对它们进行分类。
- 对象检测:它涉及这两个过程并对对象进行分类,然后为每个对象绘制边界并根据其特征对其进行标记。
所有这些特征构成了对象识别过程。
对象检测如何工作?
既然我们已经完成了对象检测并获得了关于它是什么的知识,现在是时候了解它是如何工作的,以及它是如何工作的。 我们可以有多种方法,但主要有两种方法——机器学习方法和深度学习方法。 这两种方法都能够学习和识别对象,但执行方式却大不相同。
另请阅读: TensorFlow 对象检测教程
目标检测方法
对象检测可以通过机器学习方法和深度学习方法来完成。 机器学习方法需要使用各种方法定义特征,然后使用支持向量机 (SVM) 等任何技术进行分类。 然而,深度学习方法可以在不明确定义进行分类的特征的情况下完成整个检测过程。 深度学习方法主要基于卷积神经网络 (CNN)。
机器学习方法
- 尺度不变特征变换 (SIFT)
- 定向梯度直方图 (HOG) 特征
- Viola-Jones 对象检测框架
深度学习方法
- 区域建议(R-CNN、 Fast R-CNN、Faster R-CNN)
- 你只看一次 (YOLO)
- 可变形卷积网络
- 用于对象检测的细化神经网络 (RefineDet)
- 视网膜网
我们将详细了解深度学习方法,但首先让我们了解什么是机器学习,什么是深度学习,以及它们之间的区别。
什么是机器学习?
机器学习是人工智能的应用,用于使计算机从提供给它的数据中学习,然后像人类一样自行做出决策。 它使计算机能够根据提供给它的数据和信息以及通过现实世界的交互和观察来学习和做出预测。 基本上,机器学习是使用算法分析数据,然后从中学习以根据给定数据进行预测和确定事物的过程。
机器学习算法可以自行做出决定,而无需为其明确编程。 这些算法根据给定的数据(称为“训练集”)制作数学模型,以进行预测。 在机器学习算法中,我们需要向系统提供特征,使其根据给定的特征进行学习,这个过程称为特征工程。
机器学习应用的日常示例是语音助手、垃圾邮件过滤、产品推荐等。
什么是深度学习?
深度学习,有时也称为深度结构化学习,是一类机器学习算法。 深度学习使用多层方法从提供给它的数据中提取高级特征。 它不需要手动提供特征进行分类,而是尝试将其数据转换为抽象表示。 它只是通过示例学习并将其用于将来的分类。 深度学习受到我们大脑中存在的人工神经网络 (ANN) 的影响。

大多数深度学习方法都是通过神经网络来实现的。 所有的深度学习模型都需要巨大的计算能力和大量的标记数据来直接从数据中学习特征。 深度学习的日常应用是新闻聚合或欺诈新闻检测、视觉识别、自然语言处理等。
资源
使用深度学习进行对象检测
既然我们非常了解对象检测和深度学习,我们应该知道如何使用深度学习执行对象检测。
这些是最常用的目标检测深度学习模型:
1. R-CNN模型族:代表Region-based Convolutional Neural Networks
- 卷积神经网络
- 快速 R-CNN
- 更快的 R-CNN
2. YOLO模型家族:代表You Look Only Once
- YOLOv1
- YOLOv2 和 YOLOv3
让我们一一查看并了解它们的工作原理。
对象检测过程涉及以下要遵循的步骤:
- 通过图像或视频将视觉作为输入。
- 将输入视觉划分为部分或区域。
- 单独拍摄每个部分,并将其作为单个图像处理
- 将这些图像传递到我们的卷积神经网络 (CNN) 中,以将它们分类为可能的类别。
- 分类后,我们可以结合所有图像生成原始输入图像,也可以与检测到的对象及其标签一起生成。
基于区域的卷积神经网络 (R-CNN) 系列
R-CNN Family 下有几个目标检测模型。 这些检测模型基于区域提议结构。 随着时间的推移,这些功能得到了很大的发展,提高了准确性和效率。
R-CNN下的不同模型有:
- 卷积神经网络
R-CNN 方法使用称为选择性搜索的过程从图像中找出对象。 该算法生成大量区域并共同处理它们。 如果这些区域集合包含任何对象,则检查它们是否具有对象。 这种方法的成功取决于对象分类的准确性。
- 快速 RCNN
Fast-RCNN 方法使用 R-CNN 的结构和 SPP-net(空间金字塔池)来使慢速 R-CNN 模型更快。 Fast-RCNN 使用 SPP-net 只计算一次整个图像的 CNN 表示。 然后它使用这个表示来计算 R-CNN 的选择性搜索方法生成的每个补丁的 CNN 表示。 Fast-RCNN 使流程从端到端进行训练。
Fast-RCNN 模型还包括边界框回归以及训练过程。 这使得定位和分类过程在一个过程中,使过程更快。
- Faster-RCNN
Faster-RCNN 方法甚至比 Fast-RCNN 更快。 Fast-RCNN 速度很快,但是选择性搜索的过程在 Faster-RCNN 中通过实现 RPN(区域提议网络)取代了这个过程。 RPN 通过实现一个小的卷积网络来加快选择过程,进而生成感兴趣的区域。 与 RPN 一起,此方法还使用 Anchor Boxes 来处理对象的多个纵横比和比例。 Faster-RCNN 是最准确和最有效的目标检测算法之一。
卷积神经网络 | 快速 RCNN | Faster-RCNN | |
每张图像的测试时间 | 50 秒 | 2 秒 | 0.2 秒 |
速度 | 1x | 25 倍 | 250 倍 |
你只看一次 (YOLO) 家庭
我们上面看到的 R-CNN 方法侧重于将视觉划分为多个部分,并侧重于包含对象的概率较高的部分,而 YOLO 框架则侧重于整个图像并预测边界框,然后计算其类别概率以标记框。 YOLO 框架家族是非常快速的对象检测器。
下面讨论 YOLO 的不同模型:
- YOLOv1
该模型也称为 YOLO 统一模型,因为该模型将对象检测和分类模型统一为一个单一的检测网络。 这是第一次尝试创建一个非常快速地检测实时对象的网络。 YOLO 只预测有限数量的边界框来实现这一目标。
- YOLOv2 和 v3
YOLOv2 和 YOLOv3 是 YOLOv1 框架的增强版本。 YOLOv2 也称为 YOLO9000。 YOLOv1 框架产生了几个定位错误,而 YOLOv2 通过专注于召回和定位来改进这一点。 YOLOv2 使用批量归一化、锚框、高分辨率分类器、细粒度特征、多级分类器和 Darknet19。 所有这些特性使 v2 比 v1 更好。 Darknet19 特征提取器包含 19 个卷积层、5 个最大池化层和一个用于对图像中存在的对象进行分类的 softmax 层。
YOLOv3 方法是最快、最准确的目标检测方法。 与 YOLOv2 使用的 softmax 方法相比,它使用逻辑分类器准确分类对象。 这使我们能够进行多标签分类。 YOLOv3 还使用了 Darknet53 作为特征提取器,它有 53 个卷积层,比 v2 使用的 Darknet19 多,这使得它更加准确。 它还使用小物体检测器来检测图像中存在的所有小物体,这是使用 v1.1 无法检测到的。
必读:当今构建自己的人工智能系统的分步方法
概括
我希望以上关于对象检测及其使用深度学习的实现的概述对您有所帮助,并使您了解对象检测的核心思想以及如何使用各种方法,特别是使用深度学习在现实世界中实现它。
对象检测可用于许多领域,以减少人力并提高各个领域的流程效率。 对象检测以及深度学习是未来将蓬勃发展并在众多领域中出现的领域。 这些领域有很大的空间,也有很多改进的机会。
upGrad 提供的课程
u pGrad开发了符合行业期望的全面的深度学习和机器学习在线培训计划。 upGrad 的培训模块和教育方法帮助学生快速学习并为任何作业做好准备。
upGrad 提供的主要教育课程适合入门和职业中期
1.机器学习与人工智能 PG 文凭:适合希望从零开始学习机器学习并将职业角色转变为机器学习工程师、数据科学家、人工智能架构师、业务分析师或产品分析师的在职专业人士。
2.机器学习与人工智能理学硕士:为期 18 个月的综合性项目,帮助个人获得该领域的硕士学位并获得该领域的知识,同时拥有大量项目的实践经验。

3. IIT Madras机器学习和云高级认证:是IIT Madras为机器学习和云技术领域提供的高级课程。
4.机器学习和深度学习的PG认证:本课程侧重于机器和深度学习。 通过本课程,学生可以申请机器学习工程师和数据科学家等职位。
5.机器学习和NLP的PG认证:是学习机器学习和自然语言处理的结构良好的课程。 学习者的工作机会是数据科学家和数据分析师。
考虑到机器学习的原理、方面和机器学习的主要组成部分以及工作机会,upGrad 开发了这些机器学习和深度学习程序的课程,以便从零开始培养技能。 从 upGrad 完成课程后,巨大的机器学习职业机会在不同的行业和不同的角色中等待着你。
底线
学生可以采取上述任何一种途径来建立他们在机器学习和深度学习方面的职业生涯。 upGrad 的就业支持帮助学生通过就业门户网站、招聘会和黑客马拉松上令人兴奋的就业机会以及安置支持来提高他们的就业前景。 随着需求和增长前景的增加,以及许多想在该领域谋生的人,深度学习的未来更加光明。 参加 upGrad 提供的任何这些课程以及更多课程,以深入了解等待您的机器学习职业机会。
物体检测中使用的深度学习算法有哪些?
对象检测是一项计算机视觉任务,指的是在图像中定位和识别多个对象的过程。 YOLO、SSD 和 R-CNN 等深度学习算法使用深度卷积神经网络检测图像上的对象,这是一种受视觉皮层启发的人工神经网络。 深度卷积神经网络是用于对象检测的最流行的一类深度学习算法。 深度卷积网络在大型数据集上进行训练。 这些网络可以比以前的方法更高效、更准确地检测物体。
哪种算法最适合对象检测?
物体检测的算法有很多,从简单的盒子到复杂的深度网络。 现在的行业标准是 YOLO,它是 You Only Look Once 的缩写。 YOLO 是一个简单且易于实现的神经网络,可以对物体进行分类,准确率相对较高。 简而言之,神经网络是一个由相互连接的层组成的系统,它模拟大脑中神经元的交流方式。 每一层都有自己的一组参数,这些参数根据提供的数据进行调整。 来自每一层的数据被馈送到下一层,依此类推,直到我们得到一个最终的预测作为输出。
您在物体识别中遇到过哪些困难?
在物体识别过程中,我们面临着许多困难。 困难之一是当对象是场景的图片时。 在这种情况下,我们需要知道过去相机的位置,我们应该估计运动物体的位置。 由于时间的变化,我们可能会得到完全不同的图像,无法匹配。 解决此问题的一种方法是借助运动估计。 另一种是用时差进行重新计算。