为对象检测指定神经网络输出布局

数据挖掘 深度学习 数据集 卷积神经网络
2022-02-27 13:08:15

我有一个关于输出检测的建模是否会影响神经网络能力的问题。就我而言,我想训练一个用于对象识别和分类的 CNN。作为输出,我想获得对象分类和它在图像中大致所在的边界框。所以我的想法是将输出建模为一系列向量:

c = 用于对象分类的向量的长度为 o(要分类的对象总数)
l = 带有 x、y、宽度、高度的边界框的向量

所以完整的序列看起来像:

输出 = (c + l) x N
其中 N 是我想检测的最大对象数

子序列的顺序是否(c + l)会影响训练的有效性?我是否必须指定一个顺序,例如序列按大小排序?

其次,我有另一个问题,对于特定的输出格式,我在向量 c 中得到范围从 0-1 的数字,但范围从 0 的数字 - 边界框向量 l 中图像的大小。如果激活设置为“relu”,这是否也会影响训练?将边界框向量归一化为图像宽度和高度或输入宽度和高度会更好吗?那么所有数字都有相同的范围吗?

在标记数据集时,我想到了这些问题?所以我不想浪费时间以错误的方式标记数据集:/

非常感谢您的帮助!

1个回答

我想说的是,您如何订购序列或规范化数据的重要性将远低于获得这些分类器/检测向量的特征(将这些特征附加到基础 CNN 网络)的重要性。

您的想法属于称为“Single Shot Detector”的方法(与区域提议/滑动窗口相反),我建议您查看SSD(Liu 等人)和YOLO(Redmon,Farhadi)模型——还有更多让它表现良好。