首先,使用的是mxnet框架,检测框架是faster rcnn,使用网络是resnet和vgg,项目地址是github mxnet apache里面的\incubator-mxnet-master\incubator-mxnet-master\example\rcnn\,这个项目已经在7月中旬的时候被官方修改了,这里讨论的情况是旧的项目代码。我首先使用自己的数据集,格式是Pascal Voc格式,将trainvol和图片进行替换,然后使用resnet101网络进行训练,训练的过程正常,正确率和loss都很正常,但是使用修改过的demo文件测试单张图片时出现异常,(demo文件本来是测试vgg网络的,我这里将里面的vgg改成了resnet了),异常如下图所示,
检测图片的结果是框框出现漂移,不准,只有一个或两个准的,根据训练的loss来看这是不正常的,不可能这么差的效果。
但是使用test代码进行测试时结果正常,正确率在0.8左右,但是demo测试依然不行,后来使用resnet50进行训练,结果同样不正常。但是在使用demo测试vgg16网络的时候,正常,检测准确度和训练时一样。
经过对test代码和demo代码进行一点一点调试分析,最后查到原因,这个是配置文件network.resnet.PIXEL_MEANS = np.array([0, 0, 0])中PIXEL_MEANS设置不同的原因,resnet在测试的时候使用的这个值是3个0,而vgg在测试的