home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: OtherApp / OtherApp.zip / mousepen.zip / README.DOC < prev   
Text File  |  1994-11-23  |  3KB  |  74 lines

  1.  
  2. This is a little program I wrote for a University Project.  It uses a
  3. backpropogation neural network to recognize characters. I have only
  4. trained the network with Numeric characters(0-9), but the other characters
  5. can be created using HRNNUI.EXE, and added to the NUM.H file. You will need
  6. GNU C/C++ to recompile BPNN.CPP if you make any changes to the training sets.
  7.  
  8. USING THE NEURAL NETWORK FOR CHARACTER RECOGNITION
  9. --------------------------------------------------
  10.  
  11. The file HRNNUI.EXE is a PM Program which lets the user input characters
  12. on an 8x8 grid, pressing the START button will use the grid as the input
  13. to the neural network. The LEFT Mouse Button to ENTERS a point on the GRID,
  14. and DOUBLE_CLICKING the LEFT Mouse Button to REMOVE a point from the GRID.
  15. When the START Button is pressed the output of the Neural Network is printed
  16. above the Grid i.e. Char ?. A single beep indicates that the character was
  17. recognized, a double beeb indicateds that the character wasn't recognized
  18. properly.
  19.  
  20.  
  21. To Start the PM Program type HRNNUI <Weight filename>
  22.  
  23. e.g to use the weight file that came with the archive type.
  24.  
  25. HRNNUI 1000a.wts
  26.  
  27.  
  28. The Grid can be written to a file by pressing the SAVE Button.
  29. The file INPUTS.DAT will then contain a 1-Dimensional Array on the GRID.
  30. This can be used to create characters for training the network.
  31.  
  32. TRAINING THE NETWORK
  33. --------------------
  34.  
  35. If you look at the training sets in the file NUM.H, you will see that the
  36. "input" arrary is just a array of 30, 64 character strings. Where a 1 is
  37. a ON pixel and a 0 if an off pixel.
  38.  
  39. The "correctout" array is the desired output of the particular input, it is
  40. also a 30-by-64 character string array.  Where the position of the 1 is the
  41. position of the output character in the string below.
  42.  
  43. "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  44.  
  45. e.g the desired output
  46.  
  47. "000000000010000000000000000000000000" is :-
  48.            ^
  49.            |
  50. "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  51.            ^
  52.            |
  53.            |_______
  54.                   |
  55. >  the character 'A'
  56.  
  57. If you need any more information send me some mail at the address below.
  58.  
  59. rha@snoopy.apana.org.au
  60.  
  61. You are free to use the source code in any of your programs, if you find
  62. it useful. I hope it encourages people to give OS/2 programming a Go!
  63.  
  64.  
  65. This is listing of the files that should be in the archive.
  66.  
  67. 1000A.WTS   -   Binary file which contains the Network weights.
  68. BPNN.CPP    -   Source file for Network Training.
  69. BPNN.EXE    -   Network Training executable, this was used to create 1000a.WTS
  70. HRNNUI.C    -   Source file for PM Interface.
  71. hrnnui.exe  -   Executable of PM Interface for Network
  72. NUM.H       -   Include file containing training sets, used with BPNN.CPP
  73.  
  74.