我正在创建一个神经网络,该网络训练使用Neuroph识别图像中的数字。我想通过提供输入原始图像的不同变体来改善我的神经网络。以“ 70.jpg”为例,我想提供70的模糊图像,70等等的模糊图像,并训练神经网络。我正在使用Neuroph和任何建议来达到我的要求?
[如果您只是想更改已有的图像,我建议您使用java(我假设您正在使用它,因为它是Neuroph的构建对象)。您可以走几条不同的路线,但首先将图像加载到像素矩阵(Java - get pixel array from image)中。一旦将像素置于矩阵结构中,便可以应用两种不同的技术:
Blurring-将矩阵分割为4/9/16像素正方形的组。计算一组像素的平均RGB值,然后用平均值替换所有值。此过程将通过降低图像的有效分辨率来“模糊”图像(因为它会删除存储在每个像素中的信息)。
Here you would average every x with avg(x) (same for w/y/z).
[x1][x2][y1][y2]
[x3][x4][y3][y4]
[w1][w2][z1][z2]
[w3][w4][z3][z4]
Resulting in:
[x][x][y][y]
[x][x][y][y]
[w][w][z][z]
[w][w][z][z]
阴影-通过将每个像素的RGB值更改相同的量来为图像提供恒定的滤镜,或者通过在图像中移动时增加该值来创建渐变。
疯狂-有很多方法可以使用此功能,因为您可以完全控制图像(每行像素可以移动一个以创建歪斜的图像!)。因此,只需添加一些变体以确保您的DNN能够捕获任何变体。
希望有所帮助。
你好,兰兹,我有同样的问题。你找到了什么吗?