边界框预测 (Bounding Box Predictions)

黎 浩然/ 19 9 月, 2023/ 机器学习/MACHINELEARNING, 目标检测/OBJECTDETECTION/ 0 comments

Bounding Box Predictions主要是用于目标检测中的边框预测。在卷积实现的滑动窗口检测算法中,虽然计算效率提高了,但仍然存在边框预测不准确的问题。 为使边框预测更加准确,可以使用YOLO(You Only Look Once)算法,由Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi等人提出的一种算法。YOLO算法的步骤如下:

  1. 将输入图像分割成网格
    • 将输入图像分成 n × n 网格(例如 3 × 3 或者 19 × 19,每个网格对应一个边框预测。
  2. 定义标签
    • 对于每个网格,定义一个标签 Y,其中 Y 是一个多维向量,包括:
      • PC:一个标识该网格中是否有目标的二值标识符;
      • BX, BY, BH, BW:用于指定边框的位置和大小的四个值;
      • C1, C2, C3:用于标识目标类别的值。
    • 每个网格的标签 Y 都是一个8维向量。
  3. 训练神经网络
    • 输入图像的大小为 100 × 100 × 3,通过卷积层和池化层等最终得到一个输出体积为3 × 3 × 8(对于 3 × 3 的网格)或者 19 × 19 × 8(对于 19 × 19 的网格)。
    • 使用反向传播算法训练神经网络,使其能够将输入图像映射到相应的输出体 。
  4. 测试
    • 在测试时,输入一张图像,运行前向传播,得到输出体积。
    • 对于输出体积中的每个网格,根据PC的值判断该网格中是否有目标,如果有,则根据 (BX, BY, BH, BW的值得到边框的位置和大小,根据C1, C2, C3 的值得到目标的类别。

YOLO算法的优势在于其卷积实现方式,能够在一次前向传播中同时进行多个网格的目标检测和边框预测,从而实现实时目标检测。边框的编码方式如下:

  • 将网格的左上角定义为(0, 0),右下角定义为 (1, 1)。
  • BX, BY的值介于(0, 1) 之间,表示边框中心点的位置。
  • BH, BW的值表示边框的高度和宽度。如果边框超出网格边界,那么BH, BW的值会大于1。

通过这种方式,YOLO 算法能够输出任意纵横比的边框,并能更加准确地预测边框的位置。

前面所提及的方法中一个网格只能检测一个对象(对象的边界框可以超出网格的范围)。

Share this Post

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

*
*