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