【发布时间】:2015-12-31 17:59:24
【问题描述】:
我正在创建一个神经网络,用于训练使用 Neuroph 识别图像中的数字。我想通过提供输入原始图像的不同变化来使我的神经网络更好。 以“70.jpg”为例,我想提供 70 的模糊图像、70 的模糊图像……等等,并训练神经网络。 我正在使用Neuroph 和任何建议来满足我的要求?
【问题讨论】:
标签: java neural-network artificial-intelligence image-recognition
我正在创建一个神经网络,用于训练使用 Neuroph 识别图像中的数字。我想通过提供输入原始图像的不同变化来使我的神经网络更好。 以“70.jpg”为例,我想提供 70 的模糊图像、70 的模糊图像……等等,并训练神经网络。 我正在使用Neuroph 和任何建议来满足我的要求?
【问题讨论】:
标签: java neural-network artificial-intelligence image-recognition
如果您只是想更改已有的图像,我建议您使用 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 能够捕捉任何变化。
希望对您有所帮助。
【讨论】: