PyTorch计算机视觉实战:目标检测、图像处理与深度学习_【印】V·基肖尔·阿耶德瓦拉;耶什万斯·雷迪_AZW3_MOBI_EPUB_PDF_电子书(无页码)_【印】V·基肖尔·阿耶德瓦拉;耶什万斯·雷迪
内容节选
CHAPTER 7第7章目标检测基础 迄今为止,我们在前面的章节中学习了如何实现图像分类。想象一下将计算机视觉应用于汽车自动驾驶的场景。我们不仅需要检测道路图像中是否包含车辆、人行道和行人等目标,还需要识别出这些目标的位置。我们将在本章和下一章中讨论能够在这种场景中派上用场的各种目标检测技术。 在本章和下一章中,我们将学习目标检测的实现技术。我们从基础知识开始,使用名为ybat的工具标记目标的边界框真值,使用selectivesearch方法提取区域建议,并使用IoU(Intersection over Union)和mAP(mean Average Precision)这两个指标定义边界框预测的准确度。在此之后,我们将学习两个基于区域建议的网络,即R-CNN和Fast R-CNN,首先理解二者的工作细节,然后分别在包含卡车和公交车的图像数据集上构建这两个网络。 7.1 目标检测简介 随着汽车自动驾驶、人脸自动检测、智能视频监控和人数自动统计等解决方案的兴起,对快速准确的目标检测系统的需求越来越巨大。这些系统不仅要对图像中的目标进行分类,还要在每个目标的周围绘制适当的边界框来确定每个目标的位置。这(绘制边界框和分类)使得目标检测比图像分类更加困难。 为了理解目标检测的输出结果,请看图7-1。 图7-1 在图7-1中,我们可以看到,典型的目标分类仅仅考虑图像中目标的类别,目标定位则在图像中目标的周围绘制一个边界框。此外,目标检测还需要在图像中每个目标的周围绘制边界框,并且需要识别出边界框内目标的类别。 在讨论目标检测的广泛应用场景之前,我们首先理解如何将它引入前一章中介绍过的目标分类任务当中。 想象在一个图像中包含多个目标的场景。现在需要预测图像中所包含目标的类别。例如,假设图像中同时包含猫和狗。你会如何对这些图像进行分类?在这种情况下,目标检测就派上用场了,它不仅可以预测目标的位置(边界框),还可以预测单个边界框中目标的类别。 目标检测的一些应用场景如下: ❍ 安全性:目标检测对于入侵者的识别很有用。 ❍ 自动驾驶汽车:目标检测有助于识别道路图像中的各种物体。 ❍ 图像搜索:目标检测可以帮助识别包含感兴趣的物体(或人)的图像。 ❍ 汽车:目标检测可以帮助识别汽车图像中的车牌。 在上述所有应用场景中,我们都使用目标检测技术在图像中出现的每个目标的周围分别绘制一个边界框。 在本章中,我们将学习如何预测图像中目标的类别,以及如何在目标的周围设置一个紧密的边界框,也就是完成目标定位任务。我们还将学习如何对图像中多个目标的类别进行检测,并且在每个目标的周围设置边界框,这也是目标检测任务。 目标检测模型的训练通常包括以下步骤: 1. 创建真值数据,数据中包含图像中每个目标的边界框和类别标签。 2. 构建扫描图像以识别可能包含目标区域(区域建议)的机制。在本章中,我们将学习使用一个名为选择性搜索的方法生成区域建议。在下一章中,我们将学习使用锚盒来识别包含目标的区域。 3. 使用IoU指标创建目标类别变量。 4. 创建目标边界框偏移量变量,对第二步中给出的区域建议位置进行修正。 5. 建立一个模型,用于预测目标的类别和区域建议相对于目标边界框的偏移量。 6. 使用mAP指标度量目标检测的准确度。 现在对目标检测模型的训练有了一个总体的介绍,下一节将学习如何为数据集创建边界框真值(这是构建目标检测模型的第一步)。 7.2 为训练图像样本创建真值 我们已经知道,目标检测的输出是使用边界框框出图像中感兴趣的目标。对于我们来说,要构建一个可以检测出图像中目标边界框的算法,就必须创建输入-输出组合,其中输入是图像,输出是图像中各个目标的类别和边界框。 注意,检测边界框时,需要检测的其实是边界框四个角的像素位置。 为了训练一个能够提供边界框信息的模型,我们需要图像,以及图像中所有目标的边界框坐标。在本节中,我们将学习一种创建训练数据集的方法,将图像作为输入,将目标的边界框和类别存储在XML文件中作为输出。我们将使用ybat工具来标注目标的边界框和类别。 下面来理解如何安装和使用ybat,在图像中目标的周围创建(标注)边界框。此外,在下一小节中,我们还将检查包含目标类别和边界框信息的XML文件。 安装图像标注工具 可以从GitHub链接https://github.com/drainingsun/ybat下载ybat-master.zip,并对其进行解压。解压后,将其保存在你选择的文件夹中。使用你选择的浏览器打开ybat.html,将看到一个空白页面。图7-2展示了文件夹样例以及如何打开ybat.html文件。 图7-2 在开始创建图像的边界框真值之前,首先指定所有可能的目标类别。我们想要跨图像进行标注,并将标注结果存储在classes.txt文件中,如图......
- 信息
- 第15章 计算机视觉与NLP
- 译者序
- 前言
- 第一部分 面向计算机视觉的深度学习基础知识
- 第1章 人工神经网络基础
- 第2章 PyTorch基础
- 第3章 使用PyTorch构建深度神经网络
- 第二部分 物体分类与目标检测
- 第4章 卷积神经网络
- 第5章 面向图像分类的迁移学习
- 第6章 图像分类的实战技术
- 第7章 目标检测基础
- 第8章 目标检测进阶
- 第9章 图像分割
- 第10章 目标检测与分割的应用
- 第三部分 图像处理
- 第11章 自编码器与图像处理
- 第12章 基于GAN的图像生成
- 第13章 高级GAN图像处理
- 第四部分 计算机视觉与其他技术
- 第14章 使用小样本进行模型训练
- 第15章 计算机视觉与NLP
- 第16章 计算机视觉与强化学习
- 第17章 模型的实际应用部署
- 第18章 使用OpenCV实用程序进行图像分析
- 附录 课后习题答案