Zep*_*Lay 8 python-3.x tensorflow
我是 tensorflow 的新手。我使用 MNIST 的训练数据训练了数字预测模型。然后我使用我自己的图像测试模型。它无法预测实际结果。
问题是:
OpenCV
问题是如何将我自己的手写数字图像移动到 28x28 图像的中心。自己的图像可以是任何颜色,该图像可以更改黑白 MNIST 的图像
小智 5
from PIL import Image, ImageFilter
def imageprepare(argv):
"""
This function returns the pixel values.
The imput is a png file location.
"""
im = Image.open(argv).convert('L')
width = float(im.size[0])
height = float(im.size[1])
newImage = Image.new('L', (28, 28), (255)) # creates white canvas of 28x28 pixels
if width > height: # check which dimension is bigger
# Width is bigger. Width becomes 20 pixels.
nheight = int(round((20.0 / width * height), 0)) # resize height according to ratio width
if (nheight == 0): # rare case but minimum is 1 pixel
nheight = 1
# resize and sharpen
img = im.resize((20, nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
wtop = int(round(((28 - nheight) / 2), 0)) # calculate horizontal position
newImage.paste(img, (4, wtop)) # paste resized image on white canvas
else:
# Height is bigger. Heigth becomes 20 pixels.
nwidth = int(round((20.0 / height * width), 0)) # resize width according to ratio height
if (nwidth == 0): # rare case but minimum is 1 pixel
nwidth = 1
# resize and sharpen
img = im.resize((nwidth, 20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
wleft = int(round(((28 - nwidth) / 2), 0)) # caculate vertical pozition
newImage.paste(img, (wleft, 4)) # paste resized image on white canvas
# newImage.save("sample.png
tv = list(newImage.getdata()) # get pixel values
# normalize pixels to 0 and 1. 0 is pure white, 1 is pure black.
tva = [(255 - x) * 1.0 / 255.0 for x in tv]
print(tva)
return tva
x=imageprepare('./image.png')#file path here
print(len(x))# mnist IMAGES are 28x28=784 pixels
Run Code Online (Sandbox Code Playgroud)
我会使用像这样的 numpy 配方 - https://www.kaggle.com/c/digit-recognizer/forums/t/6366/normalization-and-centering-of-images-in-mnist
您可能可以将其重新映射到纯 TensorFlow 管道,但考虑到它的图像很小,我不确定是否有必要。
此外,如果您采用另一种方式,您将获得更好的准确性 - 不是标准化您的输入数据,而是通过对随机移动/重新缩放的 MNIST 数字的更大数据集进行训练,使您的网络在缺乏标准化的情况下具有鲁棒性。
归档时间: |
|
查看次数: |
10652 次 |
最近记录: |