做了好长的时间的图像分类,用caffe训练的模型正确率很高,但是用单张图片进行测试识别时,效果特别差,检测的出来的几乎都是同一类,查了一些资料,终于找到了解决办法。
原因1:如果训练用了GPU,那么测试的时候也要注意用GPU
原因2:注意测试图片的读取格式。
我就是错在了这里,参考的博客https://blog.csdn.net/u013841196/article/details/72799680
在图片进行通道转换时,常用的代码如下:
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2,0,1)) # 通道变换,例如从(530,800,3) 变成 (3,530,800)
transformer.set_mean('data', mu) #mu是像素的均值
transformer.set_raw_scale('data', 255) # rescale from [0, 1] to [0, 255]
transformer.set_channel_swap('data', (2, 1, 0)) # swap channels from RGB to BGR
(1)当用caffe.io.load_image方式读取图片时:
image = caffe.io.