我正在创建一个神经网络,使用Neuroph训练识别图像中的数字。我想通过提供输入原始图像的不同变体来使我的神经网络更好。 作为一个例子“70.jpg”,我想提供70的模糊图像,70不清晰的图像等等,并训练神经网络。 我正在使用Neuroph以及任何建议来实现我的要求吗?
答案 0 :(得分:0)
如果您只是想改变您已经拥有的图像,我建议您使用java(我假设您正在使用它,因为它是Neuroph构建的)。您可以使用几种不同的路线,但首先将图像加载到像素矩阵(Java - get pixel array from image)中。在矩阵结构中有像素后,您可以应用几种不同的技术:
模糊 - 将矩阵分割成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值更改为相同的量,在图像上提供常量滤镜,或者在移动图像时通过增加值来创建渐变。
Go Crazy - 有很多方法可以解决这个问题,因为你可以完全控制图像(每行像素都可以移动一个以创建一个倾斜的图像!)。因此,只需添加一些变体即可确保您的DNN能够捕获任何差异。
希望有所帮助。