caffe图像分类时,训练的模型准确率很高,而单张图片测试时准确率很低

在使用Caffe进行图像分类时,发现训练模型的准确率很高,但在对单张图片进行测试时,识别准确率极低。经过排查,问题出在GPU的使用和图片读取格式上。如果训练时使用了GPU,测试时也需使用GPU;另外,加载图片时,caffe.io.load_image()读取的是RGB格式且范围在0~1,而cv2.imread()则直接读取BGR格式且范围在0~255。需要注意正确的通道转换和缩放操作,避免混淆两种读图方式导致的错误。
摘要由CSDN通过智能技术生成

做了好长的时间的图像分类,用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.
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值