I have serached the forum for Neural network processing but could not find any. I thought atleast the forum maintained by neuron2(name suggests it must have) may have some but am disappointed. I do not know how far neural network processing will be practical in video image processing, but I hope it will be. I therefore did some preliminary work and could get some results which I present here. My input for this is a greyscale image which I used in the thread "recoloring". I first did an edge detection with a plugin of mine and its output is below: A small window of 100X150 located in lower middle of this edge map is used for training. The window used is below: I iterated 1600 times for optimising layer weights using steepest descent method. Unlike my edge map which has values of either 0 or 255, the output of neural processing I found were in a range of 52 to 77 percent ( values of 132 to 196) but with a noticeable steep step across 66 to 67% (or around a value of 169). Output image (neural processing done on full frame) with 168 as threshold is below: Output image with 170 as threshold is below: While ideally a noise free image should be used for training my input is with noise. Possibly I should use a cartoon image for training. Or the part with balloons may have less noise. Other details: Input edge detection was with a 3X3 grid. Neural network input was also 3X3 grid. Hidden layer has 9 nodes and output layer 3 nodes. I would appreciate suggestions on any further work, input models etc; . My plugin is in initial stages and need to do some more work. Currently my function handles one plane only. So color can not be handled at this stage. The range of weights to be used for hidden and output layers as well as number of iterations can be specified but I would like to do some automation in this area. While the improvement with each iteration can be gauged with an error parameter, with Avisynth I can not get this value interactively.
Neural networks come into their own when there are actually instantiated units to permit massively parallel processing. Simulating that serially is pointless. The algorithms just implement known things like gradient descent, etc. There's nothing magical about a "neural network algorithm".
Perhaps it's worth trying some other edge marks for comparison? There's a whole bundle in a Photoshop plug-in here: The one I prefer for most purposes is Prewitt, which I made an YV12 AVISynth version of: Prewitt(bool thin = false) The brightness of output will correspond to the strength of an edge. It will all be relatively dark, so you might want to follow it up with a Levels call (with coring off). Have a look through and see what you think... .
What I am looking for is not an edge detection algorithm. There are many. I am exploring Neural networks and just took in edge detection as an excercise. There may be other applications which I want to explore. It may be wasteful of time, but I have some time with me. I want suggestions as to which other applications I can try.
--------------------------------------- 07 Japan Red 328cic ...sport/cold/prem, convience, black trim... 11 Omni Blue Element ...work, ski, camp... 13 Valencia Orange x1 2.8 ...nav/Msport/sat, convenience...
I would say that NN are good when it is difficult to set a right threshold, for example segmentation, scene-change-detection, deflicker... But in general for all those things for which there is no good algorithm available (for scene-change-detection there are some). I searched a littlebit though the net and searched for "image processing" "neural net". Most of the stuff ist scientific or a link to a book.
Thanks for the reference. I had a quick glimpse at VQ page. It certainly put me off with all those mathematical symbols. However I felt that the regions and codewords appeared to be close to what one gets in Watershed segmentation. That may have an application in compression. But right now I am concentrating on Neural Networks.
I have posted the plugin and its documentation. This is classic 3 layer categorisation implementation.I have tested it with an edge detection task and could get very encouraging and satisfying results. However as commented by Neuron above its application for video image processing/editing is difficult to imagine. I am now contemplating to expand the network to a regression type, provided I understand the literature on that aspect. I will appreciate very much any cooments, bugs or suggestions on this.