我正在尝试使用 MNIST 数据集来训练卷积神经网络来对用色盲图表书写的数字进行分类。正如一些人建议的那样,我尝试过调整亮度和对比度,以及转换为灰度,但所有这些结果都不一致,因为所有图表都非常不同。
我正在寻找有关我可以尝试的方法的一般想法。风格转移有意义吗?这是我希望能够分类的简单图表的示例:
我尝试了各种转换并得到了这样的结果。虽然对我这个轻度色盲的人来说,这些更容易看到,但它与 MNIST 相差无几。
TLDR:我没有色盲图表数据集。然而,MNIST 很容易获得。我正在尝试以某种方式使用 MNIST(可能在对其进行转换之后)使神经网络对我拥有的有限色盲图表进行分类。MNIST 和图表是不同的,我需要使它们相似,以便在经过修改的 MNIST 训练后的 NN 可以预测色盲图表。
编辑:
我尝试了这些建议并将各种 OpenCV 转换应用于图像。最后,一切都被调整大小并转换为灰度。我的准确率从 11%(在未处理的图像上)上升到新图像的 33%。
我的问题是找到一组通用的转换。我的转换适用于某些图像:
我该如何改进呢?以下是我所做的转换:
image = cv2.imread(imagePath)
image = imutils.resize(image, height=400)
contrasted_img = CONTRASTER.apply(image, 0, 60) #applies contrast
median = cv2.medianBlur(contrasted_img,15)
blur_median = cv2.GaussianBlur(median,(3,3),cv2.BORDER_DEFAULT)
clustered = CLUSTERER.apply(blur_median, 5) #k-means clustering with 5
gray = cv2.cvtColor(clustered, cv2.COLOR_BGR2GRAY) #RESULT
第二次编辑:
我使用书面建议并计算出该数字通常占据图像的 0.1 到 0.35 ish 之间。所以我增加了黑白的阈值,直到发生这种情况。这导致了这样的图像:
我的 NN 准确率高达 45%!另一个惊人的改进。但是,我最大的问题是数字比背景暗的图像:
这会导致不正确的阈值。我也有一些噪音问题,但这些问题不太常见,可以通过调整我的白色百分比和阈值来解决: