使用 YOLO V2深度学习进行多类对象检测

简介: 使用 YOLO V2深度学习进行多类对象检测。

​一、前言
训练多类对象检测器。深度学习是一种强大的机器学习技术,可用于训练强大的多类对象检测器,例如 YOLO v2、YOLO v4、SSD 和 Faster R-CNN。此示例使用该函数训练 YOLO v2 多类室内对象检测器。经过训练的物体检测器能够检测和识别多个不同的室内物体。
二、使用预训练检测器执行对象检测
读取包含目标类对象的测试图像并将其显示。
1.png

下载并加载预训练的 YOLO v2 对象检测器。使用该函数检测图像中的对象及其标签。通过使用函数在图像上叠加检测到的边界框来可视化预测。
2.png

三、加载数据集
此示例使用由 Bishwo Adhikari 创建的室内物体检测数据集。该数据集由从室内场景中收集的 2213 个标记图像组成,包含 7 个类 - 灭火器、椅子、时钟、垃圾桶、屏幕和打印机。每个图像都包含上述类别的一个或多个标记实例。

下载数据集。图像被组织到不同序列的6个文件夹中。通过指定不同的文件夹路径来创建 。文件中提供了注释和数据集拆分。加载与训练、验证和测试拆分对应的注释和索引。请注意,拆分总共包含 2207 张图像,而不是 2213 张图像,因为 6 张图像没有与之关联的标签。将包含标签的图像的索引存储在 中。最后,将 和 .通过使用命令并指定预加载的索引,将组合数据存储拆分为训练数据存储、验证数据存储和测试数据存储。

四、分析数据
首先,使用数据集可视化数据集中的示例图像。
3.png

若要测量数据集中类标签的分布,请使用 按类标签计算对象数。按类可视化计数。
4.png

此数据集中的类是不平衡的。如果处理不当,这种不平衡可能会对学习过程有害,因为学习偏向于主导阶级。有多种技术用于处理此问题 - 对代表性不足的类进行过采样,修改损失函数和数据增强。您将在后面的部分中将数据增强应用于训练数据。

五、创建 Yolov2 对象检测网络
对于此示例,您将创建一个 YOLO v2 对象检测网络。YOLO v2 对象检测网络由两个子网组成。特征提取网络后跟检测网络。特征提取网络通常是预训练的CNN。此示例使用 ResNet-50 进行特征提取。

首先,指定网络输入大小和类数。选择网络输入大小时,请考虑网络本身所需的最小大小、训练图像的大小以及以所选大小处理数据所产生的计算成本。如果可行,请选择接近训练图像大小且大于网络所需输入大小的网络输入大小。但是,降低图像分辨率会使对象检测器更难检测到较小的对象。要在运行示例的准确性和计算成本之间保持平衡,请将网络输入大小指定为 [450 450 3]。

定义要检测的对象类数。择基础网络和要素提取图层。选择“activation_40_relu”作为要素提取图层,以将“activation_40_relu”后面的图层替换为检测子网。此特征提取层输出的要素图按系数 16 进行下采样。这种下采样量是空间分辨率和提取特征强度之间的良好权衡,因为网络下游提取的特征以空间分辨率为代价编码更强的图像特征。选择最优特征提取层需要实证分析。预处理训练数据以准备训练数据。预处理函数将调整图像和边界框的大小。此外,它还清理边界框以将其转换为有效形状。接下来,使用 estimateAnchorBox 根据训练数据中对象的大小估计两个锚框。选择最佳数量的锚框需要进行实证分析。

使用 yolov2Layers 函数创建 YOLO v2 对象检测网络。
六、数据增强
数据增强用于通过在训练过程中随机转换原始数据来提高网络准确性。通过使用数据增强,您可以向训练数据添加更多种类,而无需实际增加标记训练样本的数量。用于通过以下方式扩充训练数据

显示其中一个训练图像和框标签。
5.png

七、训练 YOLOv2 对象检测器
用于指定网络训练选项。

目录
相关文章
|
4天前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
27 5
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
214 62
使用Python实现深度学习模型:智能质量检测与控制
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
使用Python实现智能食品质量检测的深度学习模型
使用Python实现智能食品质量检测的深度学习模型
95 1
|
1月前
|
机器学习/深度学习 搜索推荐 安全
深度学习之社交网络中的社区检测
在社交网络分析中,社区检测是一项核心任务,旨在将网络中的节点(用户)划分为具有高内部连接密度且相对独立的子群。基于深度学习的社区检测方法,通过捕获复杂的网络结构信息和节点特征,在传统方法基础上实现了更准确、更具鲁棒性的社区划分。
61 7
|
19天前
|
机器学习/深度学习 传感器 算法
行人闯红灯检测:基于计算机视觉与深度学习的智能交通解决方案
随着智能交通系统的发展,传统的人工交通违法判断已难以满足需求。本文介绍了一种基于计算机视觉与深度学习的行人闯红灯自动检测系统,涵盖信号灯状态检测、行人检测与跟踪、行为分析及违规判定与报警四大模块,旨在提升交通管理效率与安全性。
|
2月前
|
机器学习/深度学习 运维 监控
深度学习之异常检测
基于深度学习的异常检测是一项重要的研究领域,主要用于识别数据中的异常样本或行为。异常检测广泛应用于多个领域,如网络安全、金融欺诈检测、工业设备预测性维护、医疗诊断等。
141 2
|
2月前
|
机器学习/深度学习 传感器 数据采集
深度学习之设备异常检测与预测性维护
基于深度学习的设备异常检测与预测性维护是一项利用深度学习技术分析设备运行数据,实时检测设备运行过程中的异常情况,并预测未来可能的故障,以便提前进行维护,防止意外停机和生产中断。
88 1
|
3月前
|
机器学习/深度学习 数据采集 网络安全
使用Python实现深度学习模型:智能网络安全威胁检测
使用Python实现深度学习模型:智能网络安全威胁检测
270 5
|
2月前
|
机器学习/深度学习 自然语言处理 监控
深度学习之声音事件检测
基于深度学习的声音事件检测(Sound Event Detection, SED)是指从音频数据中检测并识别出特定的声音事件(如玻璃破碎、狗叫声、警报声等)。这种技术被广泛应用于智能家居、城市监控、医疗监护等领域,随着深度学习的进步,其性能和准确性得到了显著提升。
97 0
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
深度学习之地形分类与变化检测
基于深度学习的地形分类与变化检测是遥感领域的一个关键应用,利用深度学习技术从卫星、无人机等地球观测平台获取的遥感数据中自动分析地表特征,并识别地形的变化。这一技术被广泛应用于城市规划、环境监测、灾害预警、土地利用变化分析等领域。
139 0