我正在创建一个神经网络,使用 Neuroph 训练识别图像中的数字。我想通过提供输入原始图像的不同变体来使我的神经网络变得更好。 以“70.jpg”为例,我想提供 70 的模糊图像、70 的不清楚图像等并训练神经网络。 我正在使用Neuroph以及有什么建议可以实现我的要求吗?
最佳答案
如果您只是想更改已有的图像,我建议您使用 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 值更改相同的量来为图像提供恒定的滤镜,或者通过在图像中移动时增加该值来创建渐变。
疯狂 - 有很多方法可以实现这一点,因为您可以完全控制图像(每一行像素都可以移动以创建倾斜的图像!)。因此,只需添加一些变化即可确保您的 DNN 能够捕获任何变化。
希望有帮助。
关于java - 使用 Neuroph 神经网络进行图像识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925560/