java - 使用 Neuroph 神经网络进行图像识别?

标签 java neural-network artificial-intelligence image-recognition

我正在创建一个神经网络,使用 Neuroph 训练识别图像中的数字。我想通过提供输入原始图像的不同变体来使我的神经网络变得更好。 以“70.jpg”为例,我想提供 70 的模糊图像、70 的不清楚图像等并训练神经网络。 我正在使用Neuroph以及有什么建议可以实现我的要求吗?

最佳答案

如果您只是想更改已有的图像,我建议您使用 java(我假设您正在使用它,因为 Neuroph 就是用它构建的)。您可以采用几种不同的路线,但首先将图像加载到像素矩阵( Java - get pixel array from image )中。一旦你有了矩阵结构中的像素,你就可以应用几种不同的技术:

  1. 模糊 - 将矩阵分割成 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]
    
  2. 阴影 - 通过将每个像素的 RGB 值更改相同的量来为图像提供恒定的滤镜,或者通过在图像中移动时增加该值来创建渐变。

  3. 疯狂 - 有很多方法可以实现这一点,因为您可以完全控制图像(每一行像素都可以移动以创建倾斜的图像!)。因此,只需添加一些变化即可确保您的 DNN 能够捕获任何变化。

希望有帮助。

关于java - 使用 Neuroph 神经网络进行图像识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925560/

相关文章:

java - 我可以在多个 jvm 上访问修改后的属性吗?

java - 从 StackTraceElement 获取不带包的类名

python - Epoch 的步骤在 GPU 上花费的时间太长

python - 如何从语料库或查询中获取SentenceTransformer词汇?

java - 如何从 Mac 恢复 Eclipse 删除的 java 文件?

Java Android 互联网访问 : WIFI or 3G

python-2.7 - 有什么方法可以使用 pybrain 编写最终权重(在所有时期完成后)?

machine-learning - TensorFlow 中动态改变权重

神经元激活顺序算法

python - 逐字分割阿拉伯语单词python