gpt4 book ai didi

java - MNIST 的缩减图像

转载 作者:搜寻专家 更新时间:2023-11-01 08:22:00 26 4
gpt4 key购买 nike

我正在尝试解决 Android 设备上的 MNIST 分类问题。我已经有一个经过训练的模型,现在我希望能够识别照片上的单个数字。

拍完照片后,我会进行一些预处理,然后再将图像传递给模型。这是原始图像的示例: enter image description here

之后我只将它变成黑白的,所以它开始看起来像这样: enter image description here

请不要注意尺寸的变化 - 这是我制作屏幕截图的方式引入的,在应用程序中两个图像仍然具有相同的尺寸。

将其转换为黑白颜色后,我提取数字的 Blob ,将其缩小到 20*20(根据纵横比),然后添加填充以使其适合 MNIST 28*28 大小。最终结果如下:

enter image description here

请注意,我放大了图像以显示问题。问题如下:缩小后,很多有用的信息都丢失了。有时数字的整个边缘都消失了。有什么办法可以避免吗?也许我可以在缩小比例之前以某种方式使白线变粗?

附言我使用 Catalano 框架进行图像处理。

编辑 从答案中应用建议的过滤器后,我得到了: enter image description here

最佳答案

我不确定你提到的框架,但有一件事在这里可以提供帮助,那就是在进行 MNIST 样式归一化之前,对原始图像使用一些形态学操作。也就是说,可以按如下方式进行侵 eclipse (我正在用 python 记录方法,您使用的框架中应该有类似物,因为操作非常标准)。

import numpy as np
import cv2

xx = cv2.imread('6.jpg') # your original image of 6
kernel = np.ones((20,20), np.uint8)
erosion = cv2.erode(xx, kernel, iterations = 2)

cv2.imwrite('6A.jpg',erosion) # this will be used as a replacement for the original image

这将产生类似于 this 的东西.然后,如果你对新图像进行二值化(比如灰度阈值为 150),然后调整大小然后填充,你应该得到类似于 this one 的结果。 , 更稳健。

另请注意,在输入任何分类器之前,您需要在最后阶段(相对于其质心)将图像集中。

最终结果,按照MNIST的标准是这样的 (物理尺寸 28x28)。

关于java - MNIST 的缩减图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50100046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com