我试图用EMNIST数据训练resnet50模型,这是一个包含300k个字母和数字图像的数据集。Resnet50需要三维图像作为它的输入,而不是灰度,所以我试图将所有灰度图像转换为RGB,但它并不像我想要的那样工作。当我用pyplot.imshow公司,RGB图像与灰度图像有很大的不同,因为这些命令实际上只是复制粘贴同一个灰度矩阵的三维图像。在
我尝试过的3个命令如下:
> resizedImageRGB = cv2.cvtColor(resizedImage,cv2.COLOR_GRAY2RGB)
> resizedImageRGB = np.repeat(resizedImage[:,:,np.newaxis],3,-1) arr =
> np.expand_dims(resizedImage, axis=2) resizedImageRGB =
> np.concatenate((arr,arr,arr), axis=2)
其中一个字母的灰度和RGB图像分别给出:
从灰度到RGB近似在数学上是很困难的。考虑从RGB到灰度Y的公式之一:
现在你可以想象一下,往另一个方向,尝试从Y得到R,G,B值,好吧。。需要太多信息(1等式3未知)。人们实际上是用神经网络来做这件事的。。在
相反,对你来说,正确的方法是反过来做。 也就是说,如果您只能访问灰度数据(或单通道数据),您应该修改您的网络,使其接受正确的输入。在
从你的问题中我不确定你使用的是什么库或确切的代码,但总的来说,这应该不会太难。在
通常,您在网上找到的代码具有为您创建这些网络的函数,并提供正确的输入参数。在
然后您通常只需传递自己的输入:
^{pr2}$希望这有帮助。在
相关问题 更多 >
编程相关推荐