
It 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 a 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 adaptive filter window is much smaller than the image size). As a result, the neural network uses
dx โ
dy โ 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 pixel images, when the window goes beyond the image, 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 by the method of back propagation of error.
The work was 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 implemented is a
Web application with a trained, trained adaptive
brown-to-white filter:
svlab Web FotoBW .
A similar created application for
Android can be downloaded here:
svlab Android FotoBW .
To upload a new image, you must click the button "Select a file" (the image file must be in .jpg format).
Next, you need to wait for the image on the server to be processed and returned to the application.