使用 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 对象检测器
用于指定网络训练选项。

目录
相关文章
|
14天前
|
机器学习/深度学习 算法 计算机视觉
基于深度学习网络的USB摄像头实时视频采集与人脸检测matlab仿真
**摘要 (Markdown格式):** ```markdown - 📹 使用USB摄像头(Tttttttttttttt666)实时视频检测,展示基于YOLOv2在MATLAB2022a的实施效果: ``` Tttttttttttttt1111111111------------5555555555 ``` - 📺 程序核心利用MATLAB视频采集配置及工具箱(Dddddddddddddd),实现图像采集与人脸定位。 - 🧠 YOLOv2算法概览:通过S×S网格预测边界框(B个/网格),含坐标、类别概率和置信度,高效检测人脸。
|
12天前
|
机器学习/深度学习 自动驾驶 算法
深度学习之旋转包围盒检测
旋转包围盒检测是一种高级目标检测方法,旨在识别图像中目标的精确位置和方向。与传统的轴对齐矩形框(水平包围盒)不同,旋转包围盒(Rotated Bounding Box, RBB)允许检测框随目标旋转,从而更紧密地包围目标,尤其适用于长条形、倾斜或旋转的物体。深度学习在旋转包围盒检测中展现了强大的能力,通过训练神经网络模型,能够有效检测和回归旋转包围盒。
18 2
|
14天前
|
机器学习/深度学习 数据采集 自动驾驶
深度学习之点云包围盒检测
点云包围盒检测是一项关键任务,主要用于三维场景中物体的检测和定位。与传统的二维图像目标检测不同,点云数据包含了三维空间的信息,能够提供更加丰富的细节和准确的位置。基于深度学习的方法在点云包围盒检测中展现了强大的性能,通过训练神经网络,能够高效地从点云数据中提取特征并进行物体检测。
17 2
|
21天前
|
机器学习/深度学习 算法 固态存储
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
在MATLAB 2022a中,使用GoogLeNet对卫星遥感图像进行轮船检测,展示了高效的目标识别。GoogLeNet的Inception架构结合全局平均池化增强模型泛化性。核心代码将图像切块并分类,预测为轮船的部分被突出显示,体现了深度学习在复杂场景检测中的应用。
102 8
|
1月前
|
机器学习/深度学习 存储 编解码
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计(2)
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计
|
1月前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
|
1月前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
|
1月前
|
机器学习/深度学习 算法 安全
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
|
1月前
|
机器学习/深度学习 计算机视觉 Python
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(3)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
|
1月前
|
机器学习/深度学习 存储 算法
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(2)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数