我使用DIGIT进行分类(我使用自适应梯度,随机梯度下降和Nesterov加速梯度测试GoogLeNet)。图像是彩色和256 * 256。训练结束后,我使用"测试单个图像"选项并测试一个图像。结果显示完美匹配并正确分类图像。然后我使用下载的模型在OpenCV 3.1(windows 64bit,visual studio 2013,Nvidia GPU)中应用基于" http://docs.opencv.org/trunk/d5/de7/tutorial_dnn_googlenet.html"。但是,我总是得到不同的阶级和错误的答案
编辑:
我尝试cvtColor(img, img, COLOR_BGR2RGB)
并且问题没有解决。我的结果还是错了。
我尝试了data transformations
,none
和image
之类的pixel
。也是不同的solver type
。
答案 0 :(得分:2)
如果OpenCV 3 vs 2导致此问题,我会感到惊讶。相反,我预计差异是由于数据预处理的差异造成的。
以下是如何对在DIGITS中训练过的Caffe模型进行数据预处理的示例: https://github.com/NVIDIA/DIGITS/blob/v4.0.0/examples/classification/example.py#L40-L85
另外请务必阅读这些"陷阱":https://github.com/NVIDIA/DIGITS/blob/v4.0.0/examples/classification/README.md#limitations
答案 1 :(得分:1)
OpenCV默认使用颜色通道现在非常罕见的BGR(蓝色,绿色,红色)排序。正常是RGB。
Why OpenCV Using BGR Colour Space Instead of RGB
这可以解释模型的糟糕表现。