神经网络与深度学习第五周课程总结

YOLO是一种用于目标检测的卷积神经网络模型,通过一次前向传递预测图像中目标的边界框和类别,实现高效实时检测。网络结构包括输入层、卷积层、Darknetbackbone、全连接层和输出层。YOLO的输出包含每个目标的类别概率、边界框坐标和置信度。非极大值抑制(NMS)用于去除重叠的预测框。语义分割是将图像分割为语义区域并为每个像素赋予标签,FCN是语义分割的重要模型,通过全卷积实现像素级预测。
摘要由CSDN通过智能技术生成

一、YOLO网络

YOLO(You Only Look Once)是一种用于目标检测的卷积神经网络模型。它的主要思想是将目标检测任务转化为一个回归问题,即在一次前向传递(forward pass)中预测图像中所有目标的边界框和类别。

YOLO 网络的特点是速度快,可以实现实时目标检测,同时也有较高的准确率。它通过将输入图像分成多个网格,然后每个网格预测包含一个目标的边界框,以及该目标的类别概率。

1.1 YOLO网络结构

YOLO(You Only Look Once)网络结构是一个深度卷积神经网络模型,通常由卷积层、池化层、全连接层等基本组件构成。YOLO 网络的主要结构如下:

  1. 输入层:接收图像作为输入,并将其调整为网络需要的大小。

  2. 卷积层:包括多个卷积和池化操作,用于提取输入图像的特征。

  3. Darknet19 / CSPDarknet53:特定于YOLO的Backbone,以提取更高级别的特征

  4. 全连接层:将卷积层提取的特征映射到类别概率和边界框回归预测。

  5. 输出层:生成目标检测的结果,包括每个边界框的位置坐标、类别概率和置信度分数等。

YOLO 网络使用单个前向传递(forward pass)处理整个图像,从而使其能够快速且准确地检测图像中的目标。在训练过程中,YOLO 网络使用标注边界框来训练预测框的位置和类别概率,并通过置信度分数来评估每个预测框的可信度。

1.2网络输入

YOLO(You Only Look Once)网络的输入是一张图像,通常被调整为固定的大小。输出是每个检测到的目标的类别概率、边界框坐标和置信度分数。

具体来说,YOLO 网络的输出通常是一个三维张量,形状为 (S, S, B x (5 + C)),其中:

  • S 是将输入图像分成的网格数,通常是一个固定的整数,例如 13 或 19。
  • B 是每个网格预测的边界框数。通常是 1 或 2。
  • C 是类别数,代表所有可能的目标类别。
  • 5 + C 表示每个边界框预测的信息数量,其中 5 表示边界框的中心点坐标、宽度、高度和置信度,C 表示每个边界框的类别概率。

因此,YOLO 网络的输出包括每个边界框的中心点坐标、宽度和高度,以及该边界框包含每个可能类别的概率。每个预测的边界框都有一个置信度分数,用于表示该边界框是否包含目标物体的置信度。

1.3 置信度

网络的置信度指的是每个预测框(bounding box)是否包含目标的可信度分数,也称为置信度分数(confidence score)。置信度分数是网络预测每个边界框中包含目标的概率。

YOLO 网络中的每个边界框预测包括五个值:边界框的中心坐标 x 和 y、边界框的宽度和高度、以及置信度分数。其中置信度分数表示该边界框包含目标的可信度程度,取值范围为 0 到 1。如果置信度分数越接近 1,表示网络越有把握认为该边界框包含目标物体。

在YOLO中,如果预测框与真实框的IoU(交并比)大于某个阈值(例如0.5),则称该预测框为正样本,否则称为负样本。网络在训练过程中,会根据正样本和负样本的损失值来优化预测结果,从而提高网络的准确性。

1.4 损失函数

网络使用的损失函数是基于每个预测框的坐标、类别和置信度信息的综合损失函数。具体而言,YOLO 的损失函数包括三个部分:

  1. 坐标损失(Localization Loss):该部分损失用于衡量预测框的位置和大小的误差。YOLO 使用均方误差(Mean Squared Error,MSE)作为坐标损失函数,计算每个预测框的中心点坐标和宽高的预测值与真实值之间的距离。

  2. 类别损失(Classification Loss):该部分损失用于衡量每个预测框的类别预测误差。YOLO 使用交叉熵损失函数计算每个预测框的类别概率预测值和真实标签之间的误差。

  3. 置信度损失(Confidence Loss):该部分损失用于衡量预测框是否包含目标的预测误差。YOLO 使用均方误差(Mean Squared Error,MSE)计算每个预测框的置信度分数的预测值与真实值之间的距离。

整体损失函数是三部分损失的加权和,其中坐标损失和类别损失权重相等,置信度损失的权重较小,通常设置为坐标损失和类别损失的一半。

YOLO 的损失函数可以写成如下形式:

整个置信函数可以表示为:

confidence = Pr(object) × IoU(pred, truth) (如果IoU大于阈值) confidence = 0 (如果IoU小于阈值,且是负样本) class_probability = Pr(class|object)

其中,Pr(object) 是正样本置信度,IoU(pred, truth) 表示预测框与真实框的 IoU 值,Pr(class|object) 是类别概率。YOLO 网络将这三个部分的置信度和类别概率组合起来,作为每个预测框的输出。

1.5.1NMS

NMS(Non-maximum Suppression,非极大值抑制)是一种目标检测中常用的算法,用于过滤重叠的预测框,并保留最佳的预测框。NMS 算法通常在目标检测的后处理阶段应用,可以帮助提高检测的准确率和效率。

具体而言,NMS 算法的主要步骤如下:

  1. 对所有预测框按照置信度分数进行排序,选择置信度分数最高的预测框作为初始候选框。

  2. 对于剩余的预测框,计算它们与已选择的候选框的 IoU(交并比),如果 IoU 大于某个阈值,则将该预测框视为重叠的预测框,并剔除掉。

  3. 从剩余的预测框中选择置信度分数最高的预测框作为新的候选框,并重复步骤 2,直到所有的预测框都被处理完毕。

  4. 重复步骤 1-3,直到所有的预测框都被处理完毕。

  5. 最终保留的预测框就是不重叠的、置信度最高的预测框。

需要注意的是,NMS 算法中的 IoU 阈值和置信度阈值可以根据实际情况进行调整。通常情况下,IoU 阈值在 0.5 左右,置信度阈值根据具体的应用场景进行调整。NMS 算法可以提高目标检测的准确率和效率,但是也会丢失一些小目标或者密集目标,需要根据实际情况进行权衡。

1.5.2数据集训练

  1. 下载数据集:首先需要从公共数据集中下载带有标注边界框的目标检测数据集。常用的数据集包括 COCO(Common Objects in Context)、PASCAL VOC(Visual Object Classes)和 KITTI 等。

  2. 数据集预处理:对下载的数据集进行预处理,包括读取图像和标注文件、调整图像大小、对图像进行归一化等操作。同时还需要将标注文件转换为模型训练需要的格式。

  3. 数据集划分:将数据集分为训练集、验证集和测试集,一般按照 8:1:1 或者 7:2:1 的比例划分。

  4. 训练模型:使用预处理后的数据集训练 YOLO 网络模型,采用优化算法(如随机梯度下降法)优化模型参数,并监测训练过程中的损失值和准确率等指标。

  5. 模型评估:在训练结束后,使用测试集对模型进行评估,计算模型的准确率、精确率、召回率、F1 值等指标。

  6. 模型优化:如果模型的表现不理想,可以通过调整模型参数、增加数据集、采用数据增强等方式来优化模型。

  7. 模型应用:使用训练好的模型对新的图像进行目标检测,将检测结果输出到图像上。

二、语义分割

语义分割(Semantic Segmentation)是计算机视觉领域中的一种图像分割技术,旨在将输入的图像划分为多个语义区域,并为每个像素赋予语义标签。

与传统的图像分割技术不同,语义分割不仅要将图像分割成不同的区域,而且还需要为每个像素分配一个语义标签,表示该像素所属的语义类别。因此,语义分割可以用于识别图像中的每个对象或物体的边界和位置,并在图像中精确地定位它们。

语义分割通常使用卷积神经网络(Convolutional Neural Network,CNN)进行实现,例如 U-Net、FCN(Fully Convolutional Network)和 Mask R-CNN 等。这些网络通过对图像进行卷积和池化等操作,从图像中提取出特征信息,并将其映射到每个像素上,从而实现语义分割。

语义分割可以应用于许多计算机视觉任务,例如自动驾驶、医学图像分析、图像分割和目标跟踪等。

2.1 语义分割发展史

  1. 2006 年,Shotton 等人提出了基于图割(Graph Cut)的语义分割方法,将图像分割问题转化为图论问题,取得了不错的效果。

  2. 2014 年,Long 等人提出了第一个端到端的全卷积神经网络(Fully Convolutional Network,FCN),将卷积神经网络应用于语义分割任务,实现了实时的语义分割。

  3. 2015 年,Ronnenberger 等人提出了 U-Net 网络,该网络可以将图像分割为精细的像素级别的区域,并在医学图像分析中得到广泛应用。

  4. 2015 年,Jegou 等人提出了一种基于卷积神经网络和池化操作的超分辨率分割方法,可以在减少计算量的情况下提高分割精度。

  5. 2017 年,He 等人提出了 Mask R-CNN 网络,将 Faster R-CNN 目标检测模型和 FCN 语义分割模型结合起来,实现了准确和高效的实例分割。

  6. 2018 年,Zhao 等人提出了一种基于特征金字塔网络(Feature Pyramid Network,FPN)和空间金字塔池化(Spatial Pyramid Pooling,SPP)的语义分割方法,大大提高了分割精度和效率。

随着深度学习技术的不断发展,语义分割方法也在不断地进步和完善,同时在医疗、自动驾驶、机器人等领域得到了广泛应用。

2.2 FCN

FCN(Fully Convolutional Network)是一种全卷积神经网络,是语义分割领域中的一种重要模型。FCN 最早由 Long 等人在 2014 年提出,用于解决图像语义分割问题。

与传统的卷积神经网络不同,FCN 可以处理任意尺寸的输入图像,因此被称为全卷积神经网络。FCN 的主要思想是将传统卷积神经网络中的全连接层替换为卷积层,从而将输入图像转换为相同大小的特征图。通过不断地下采样和上采样操作,FCN 可以将特征图恢复到原始输入图像的大小,并为每个像素预测一个类别标签,实现图像的语义分割。

具体来说,FCN 的主要架构包括:

  1. 卷积层:采用卷积操作提取图像的特征,提高模型的抽象能力。

  2. 池化层:通过下采样操作缩小特征图的尺寸,降低模型的计算量。

  3. 上采样层:通过反卷积或插值等操作将特征图的尺寸恢复到原始输入图像的大小。

  4. Skip Connection:为了保留低层次的特征信息,FCN 引入了跳跃连接(Skip Connection)机制,将低层次的特征图与高层次的特征图进行融合。

FCN 网络结构简单,可用于处理任意大小的图像,且在语义分割任务中取得了优秀的表现。FCN 也为后续的语义分割网络的发展提供了重要的启示和基础。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值