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

时间:2015-10-03 17:45:34

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

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

1 个答案:

答案 0 :(得分:0)

如果您只是想改变您已经拥有的图像,我建议您使用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. Go Crazy - 有很多方法可以解决这个问题,因为你可以完全控制图像(每行像素都可以移动一个以创建一个倾斜的图像!)。因此,只需添加一些变体即可确保您的DNN能够捕获任何差异。

  4. 希望有所帮助。