我已经在 tensorflow 中尝试了 SSD 和 YOLO 实现。现在我想为我自己的数据集重新训练其中的任何一个,比如交通信号。除了 pascal voc,我如何重新训练 ssd 的数据?有人可以帮忙吗?我正在使用 https://github.com/balancap/SSD-Tensorflow 的 tensorflow 实现

最佳答案

不特定于实现,对于 SSD,

  • 由于所有层都是卷积层,因此您需要更改在预测层中应用的过滤器数量,因为(根据第 4 页中的论文)输出是您要预测的类数量的函数:即,对于网络中的任何预测层,对于 m * n 特征图,我们期望 (c + 4)kmn 输出/预测用于分类和定位; c 是您尝试预测的类数,k 是该特征图中使用的 anchor /默认框的数量,mn 是特征图的 2 维。
  • 根据论文
  • 中给出的方程,您可能想要更改 anchor /默认框比例

    特定于 SSD-Tensorflow,
  • 您需要确保输入格式与 tf.contrib.slim 提供的接口(interface)匹配。目前 SSD-Tensorflow 仅支持 Pascal VOC 格式。我一直无法适应它以接受其他数据集。您可以查看 https://github.com/balancap/SDC-Vehicle-Detection/ 以获取示例 KITTI 接口(interface)。 SDC-Vehicle-Detection repo 与 SSD-Tensorflow 是同一作者,尽管部分代码库已经过时。
  • 关于tensorflow - 如何为我们自己的数据集重新训练 SSD 对象检测模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43493806/

    10-12 06:14