Adaptive Neural Network Image Filter Algorithm

    imageIt is possible to use neural networks for image transformation. The main advantage of neural networks is their automatic learning ability. In this case, it is proposed to train an adaptive filter based on the neural network to use a pair of images in which the original image is a sample, and the second is modified from the sample by some existing filter or transformation. An adaptive filter needs to restore this conversion when the filter size is much smaller than the size of the original image.

    To do this, use a window of dx size to dy and 3 color channels (the size of the adaptive filter window is much smaller than the image size). As a result, the neural network uses dxdy ∙ 3 input signals for input neurons. The network can be supplemented with hidden layers from the number of neurons associated with the color transformation of the filter. At the output of the neuron, it is proposed to use 3 neurons, the output signals of which are assigned to three colors ( rgb - red, green, blue) in the central pixel of the window from the output image. The signal of the color channel of a pixel is a linear transformation in the range of values ​​[- 0.5 ; 0.5]. Whereas, the antisymmetric sigmoid function with the interval of values ​​[- 1 ; 1 ]. For boundary image pixels, when the window goes beyond the images, the input values ​​of the neurons of the network corresponding to these pixels are set to 0. The neural network is trained on the windows for all pixels of the output image using the back propagation error method.

    The work has been implemented program adaptive filter and neural network in Java with a graphical user interface.

    As a result of experiments, such a filter showed a fairly satisfactory result and the ability to learn various color non-structural transformations.

    Also implementedWeb application with prepared, trained adaptive brown to white filter: svlab Web FotoBW .

    A similar created Android application can be downloaded here: svlab Android FotoBW .
    To upload a new image, click the button “Select a file” (the image file must be in the .jpg format).

    Next, you need to wait for the image on the server to be processed and returned to the application.

    Also popular now: