我正在 INRIA Person 数据集上训练 Faster-RCNN(VGG-16 架构)。我接受了 180,000 个训练步骤的训练。但是当我评估网络时,它会用相同的图像给出不同的结果。以下是图片
我不确定为什么它会为同一组权重给出不同的结果。网络是在 caffe 中实现的。非常感谢您对问题的任何见解。
最近,我也准备了自己的数据集进行训练,得到了和你类似的结果。
以下是我的经验,与大家分享:
检查输入格式包括图像和你的边界框 csvfile 或 xml(总是放在 Annotation 文件上)是否所有边界框(x1,y1,x2,y2)都正确?
然后检查roidb/imdb加载python脚本(放在FasterRCNN/lib/datasets/pascal_roi.py,也许你的是inria.py),确保_load_xxx_annotation()通过打印bounding_box和文件名正确加载所有边界框。重要的是,如果您的脚本被复制并修改了 pascal_roi.py 或任何原型脚本,请检查它是否会将所有 roi 和图像信息保存到缓存文件中,如果是,您需要在更改任何配置文件时删除该缓存文件并重新-尝试。
最后,确保在网络训练时正确生成所有边界框(例如打印小批量变量以显示文件名和相应的 x1、y1、x2、y2 显示在 FasterRCNN/lib/roi_data_layer/layer.py)。如果 roi 生成器正确生成,则边界框与您手动选择的边界框不会有很大差异。
一些类似的问题也可能导致此问题。