欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 人工智能 > 目标检测 >内容正文

目标检测

深度学习和目标检测系列教程 4-尊龙游戏旗舰厅官网

发布时间:2024/10/8 目标检测 0 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

@author:runsen

目标定位

图像分类或图像识别模型只是检测图像中对象的概率。与此相反,对象定位是指识别图像中对象的位置。对象定位算法将输出对象相对于图像的位置坐标。在计算机视觉中,定位图像中对象的最流行方法是借助边界框来表示其位置。


可以使用以下参数初始化边界框:

  • bx, by : 边界框中心的坐标
  • bw : 边界框的宽度 wrt 图像宽度
  • bh : 边界框的高度 wrt 图像高度

定义目标变量

多类图像分类问题的目标变量定义为:

其中,cic_ici是第iii类的概率。 例如,如果有四个类,则目标变量定义


我们可以扩展这种方法来定义目标变量进行目标定位。目标变量定义为

  • pcp_cpc = 对象(即四个类)出现在边界框中的概率/置信度。
  • bx,by,bh,bw = 边界框坐标。
  • cic_ici= 对象所属第iii类的概率

例如,四个类别是“卡车”、“汽车”、“自行车”、“行人”,它们的概率表示为c1,c2,c3,c4c1,c2,c3,c4c1,c2,c3,c4

损失函数

让目标变量y的值表示为y1,y2,…,y9y1,y2,…,y9y1y2y9


目标定位的损失函数定义为


在实践中,我们可以在预测类c1、c2、c3、c4c1、c2、c3、c4c1c2c3c4的情况下使用考虑softmax输出的log函数。而对于边界框坐标,我们可以使用平方误差,对于pcp_cpc(物体的置信度),我们可以使用logistic回归损失。

由于我们已经定义了目标变量和损失函数,我们现在可以使用神经网络对目标进行分类和定位。

物体检测

构建对象检测的一种方法是首先构建一个分类器,该分类器可以对对象的紧密裁剪图像进行分类。下图显示了此类模型的一个示例,其中模型在经过紧密裁剪的汽车图像数据集上进行训练,并且该模型预测图像是汽车的概率。

现在,我们可以使用这个模型来检测使用滑动窗口机制的汽车。在滑动窗口机制中,我们使用滑动窗口(类似于卷积网络中使用的滑动窗口)并在每张幻灯片中裁剪图像的一部分。裁剪的大小与滑动窗口的大小相同。然后将每个裁剪后的图像传递给一个 convnet 模型(类似于上图 中所示的模型),该模型反过来预测裁剪后的图像是汽车的概率。

在整个图像上运行滑动窗口后,调整滑动窗口的大小并再次在图像上运行。经过多次重复这个过程。由于之前裁剪了大量图像并通过 convnet 传递,因此这种方法在计算上既昂贵又耗时,使整个过程非常缓慢。滑动窗口的卷积实现有助于解决这个问题。

滑动窗口的卷积

在使用 convents 实现滑动窗口之前,分析如何将网络的全连接层转换为卷积层。

下面 显示了一个简单的卷积网络,具有两个完全连接的层,每个层的形状为 (400, )。

借助一维卷积层,可以将全连接层转换为卷积层。该层的宽度和高度等于 1,过滤器的数量等于全连接层的形状。

我们可以将全连接层转换为卷积层的概念应用到模型中,方法是将全连接层替换为一维卷积层。一维卷积层的滤波器数量等于全连接层的形状。此外,输出 softmax 层也是形状为 (1, 1, 4) 的卷积层,其中 4 是要预测的类数。 如下图 所示。

现在,扩展上述方法来实现滑动窗口的卷积版本。首先,考虑在以下表示中我们已经训练的 convnet(没有完全连接的层)。

让我们假设输入图像的大小为16 × 16 × 3。如果我们使用滑动窗口方法,那么我们会将该图像传递给上面的 convnet 四次,每次滑动窗口都会裁剪一部分大小为14 × 14 × 3的输入图像并将其通过卷积网络。但不是这样,我们将完整图像(形状为16 × 16 × 3)直接输入到经过训练的 convnet 中(见图 7)。这导致形状为2 × 2 × 4的输出矩阵. 输出矩阵中的每个单元格表示可能裁剪的结果和裁剪图像的分类值。

例如,下图中输出的左侧单元格(绿色单元格)表示第一个滑动窗口的结果。其他单元格表示剩余滑动窗口操作的结果。

滑动窗口的步幅由 max pool 层中使用的过滤器数量决定。在上面的示例中,max pool 层有两个过滤器,因此滑动窗口以 2 的步幅移动,从而产生四个可能的输出。使用这种技术的主要优点是滑动窗口同时运行和计算所有值。因此,这种技术非常快。尽管这种技术的一个弱点是边界框的位置不是很准确。

yolo

在使用卷积滑动窗口技术时解决预测准确边界框问题,效果最好的算法是yolo 算法。由 joseph redmon、santosh divvala、ross girshick 和 ali farhadi 于 2015 年开发。yolo 很受欢迎,因为它在实时运行的同时实现了高精度。之所以这样称呼该算法,是因为它只需要通过网络进行一次前向传播即可进行预测。

该算法将图像划分为网格,并对每个网格单元运行图像分类和定位算法。例如,我们有一个大小为256 × 256的输入图像。我们在图像上放置一个3 × 3 的网格。

接下来,我们在每个网格单元上应用图像分类和定位算法。对于每个网格单元,目标变量定义为

用卷积滑动窗口做一次。由于每个网格单元的目标变量的形状是1 × 9并且有 9 ( 3 × 3 ) 个网格单元,模型的最终输出将是:

yolo 算法的优点是速度非常快,并且可以预测更准确的边界框。此外,在实践中为了获得更准确的预测,我们使用更精细的网格,比如19 × 19,在这种情况下,目标输出的形状为19 × 19 × 9。

总结

以上是尊龙游戏旗舰厅官网为你收集整理的深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图