Difference between revisions of "Tristan-cs488-tasks"

From Earlham CS Department
Jump to navigation Jump to search
(surprising discovery)
(Final entry)
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
Set of discrete tasks for '''''Schrift''''' (the name of the proposed handwriting recognizer). <br/>
+
Set of discrete tasks for '''''Schrift''''' (the name of the proposed handwriting recognizer). These notes and more are are kept on paper. Strikethrough tasks are done or no longer necessary, hopefully dated entries will make it clear which. This page might get a little messy.
These notes and more are are kept on paper.  
+
 
 +
*'''11-26-12''': I tried an openCV example that makes and highlights bounding box and bounding polygon regions, it gave me this [[Media: Surprising.png | image]]. Suddenly I'm on the recognition step??
 +
*'''11-27-12''': The vector that the contours are in are stored in an unusual order, if I sort them by the rectangles bottom left coordinate, a count of lines could be established and I could get the letters into their correct order. Once in order I can detect spaces easily by looking at changes between characters in the x direction. line and word ''segmentation'' are basically kaput, instead I have line and word ''detection''.
 +
*'''12-2-12''': Messed around with line organization yesterday, didn't make much progress. Read about neural networks a lot too, I will focus on the paper more tonight and the coming days for the next draft.
 +
*'''12-8-12''': I'm finally segmenting lines. Now that the letters are in order, I am beginning work on the NN now, I found a small openCV ANN that takes the mean of two numbers, and have been playing around with that. I am uncertain the size of the neural network or how to structure the tests.
 +
*'''12-9-12''': I have a working neural network. However it does not give correct output. A ''lot'' of tweaking will need to be done, e.g. more input neurons (right now just 2, # of rows and # of cols of the letter), more training samples (not as many as there should be right now, but adding more clearly sets it closer textual nirvana).
 +
*'''12-10-12 7pm to 12-11-12 4am''': Characters are fully segmented and in their own box and spot in the array. Need to add space detection still, it won't be something the ANN recognizes, just a flag in the input which will be skipped over and a space written out. Added more input neurons but ANN still outputs goop, I am starting to think it just needs more training points. Notes are scattered everywhere, presentation is in <12 hours and paper due in 36 hours. ''Entries from here will mostly be for simply documenting the final dash of a CS Senior Capstone (hello future).''
 +
* '''12-11-12''': Building the presentation from slides of other presentations in the semester, organizing binaries for the demo. Organizing data in head about NN's and other algorithms. Made the slideshow, went over in my head several times. Implemented space detection between words. ''Post Presentation: '' Just paper writing now, updating figures to match some in the presentation. Including results and discussion section in paper.
 +
* '''12-12-12''': ''Final Entry'': Printed final draft, had Leif proof read it while I read his. Corrected and updated paper from his feedback and turned in paper ([http://cs.earlham.edu/~twright09/paper.pdf available here]). Project and associated files zipped up and put [http://cs.earlham.edu/~twright09/schrift.zip here]. The project is not accurate in recognizing handwriting and feels incomplete, it's the paper that matters and considering how much I've learned: it's good to be done for now.
  
 
* '''File structuring'''
 
* '''File structuring'''
** just doing it, will restructure later.
+
** <span style="text-decoration: line-through;">just doing it, will restructure later.</span>
 
*<span style="text-decoration: line-through;">Image importing
 
*<span style="text-decoration: line-through;">Image importing
 
**Read in jpg image</span>
 
**Read in jpg image</span>
 
* '''Text Scan'''
 
* '''Text Scan'''
 
**<span style="text-decoration: line-through;">OpenCV image import, test threshold filter</span>
 
**<span style="text-decoration: line-through;">OpenCV image import, test threshold filter</span>
 +
**<span style="text-decoration: line-through;">Detect holes so that a 'D' or an 'o' does not get recognized as two different characters.</span>
 
** Algorithm for figuring out correct threshold value. Take a mean of the page color and adjust for that value. Usually 110±10?
 
** Algorithm for figuring out correct threshold value. Take a mean of the page color and adjust for that value. Usually 110±10?
** Draw box around where dark is detected, extract that selection.  
+
** <span style="text-decoration: line-through;">Draw box around where dark is detected, extract that selection. </span>
  
* '''Line segmentation'''
+
*<span style="text-decoration: line-through;"> '''Line segmentation'''
 
** Decided it was not necessary to find beginning and end of line
 
** Decided it was not necessary to find beginning and end of line
 
** General Algorithm
 
** General Algorithm
Line 17: Line 26:
 
*** Stop when line of nothing
 
*** Stop when line of nothing
 
*** create selection between line1 and line2
 
*** create selection between line1 and line2
*** push to dynamic array as line[0]
+
*** push to dynamic array as line[0]</span>
 
+
*'''Word segmentation'''
* '''Word segmentation'''
+
** <span style="text-decoration: line-through;">Detect Spaces</span>
** Outline algorithm similar to line segmentation
+
* <span style="text-decoration: line-through;">'''Character segmentation'''
 
+
**openCV historgram test </span>
* '''Character segmentation'''
 
**openCV historgram test
 
 
 
11-26-12: I tried an openCV example that makes and highlights bounding box and bounding polygon regions, it gave me this [[Media: Surprising.png | image]]. Suddenly I'm on the recognition step??
 
  
 
* '''Character recognition'''
 
* '''Character recognition'''
** Figure out a basic neural network
+
** Better character recognition, tweak the NN a lot.
*** look atOpenCV neural network type
+
** <span style="text-decoration: line-through;">Figure out a basic neural network</span>
*** I've found some NN tutorials, the implementation of one is what's bothering me.
+
*** <span style="text-decoration: line-through;">look atOpenCV neural network type</span>
 +
*** <span style="text-decoration: line-through;">I've found some NN tutorials, the implementation of one is what's bothering me.</span>

Latest revision as of 17:37, 12 December 2012

Set of discrete tasks for Schrift (the name of the proposed handwriting recognizer). These notes and more are are kept on paper. Strikethrough tasks are done or no longer necessary, hopefully dated entries will make it clear which. This page might get a little messy.

  • 11-26-12: I tried an openCV example that makes and highlights bounding box and bounding polygon regions, it gave me this image. Suddenly I'm on the recognition step??
  • 11-27-12: The vector that the contours are in are stored in an unusual order, if I sort them by the rectangles bottom left coordinate, a count of lines could be established and I could get the letters into their correct order. Once in order I can detect spaces easily by looking at changes between characters in the x direction. line and word segmentation are basically kaput, instead I have line and word detection.
  • 12-2-12: Messed around with line organization yesterday, didn't make much progress. Read about neural networks a lot too, I will focus on the paper more tonight and the coming days for the next draft.
  • 12-8-12: I'm finally segmenting lines. Now that the letters are in order, I am beginning work on the NN now, I found a small openCV ANN that takes the mean of two numbers, and have been playing around with that. I am uncertain the size of the neural network or how to structure the tests.
  • 12-9-12: I have a working neural network. However it does not give correct output. A lot of tweaking will need to be done, e.g. more input neurons (right now just 2, # of rows and # of cols of the letter), more training samples (not as many as there should be right now, but adding more clearly sets it closer textual nirvana).
  • 12-10-12 7pm to 12-11-12 4am: Characters are fully segmented and in their own box and spot in the array. Need to add space detection still, it won't be something the ANN recognizes, just a flag in the input which will be skipped over and a space written out. Added more input neurons but ANN still outputs goop, I am starting to think it just needs more training points. Notes are scattered everywhere, presentation is in <12 hours and paper due in 36 hours. Entries from here will mostly be for simply documenting the final dash of a CS Senior Capstone (hello future).
  • 12-11-12: Building the presentation from slides of other presentations in the semester, organizing binaries for the demo. Organizing data in head about NN's and other algorithms. Made the slideshow, went over in my head several times. Implemented space detection between words. Post Presentation: Just paper writing now, updating figures to match some in the presentation. Including results and discussion section in paper.
  • 12-12-12: Final Entry: Printed final draft, had Leif proof read it while I read his. Corrected and updated paper from his feedback and turned in paper (available here). Project and associated files zipped up and put here. The project is not accurate in recognizing handwriting and feels incomplete, it's the paper that matters and considering how much I've learned: it's good to be done for now.
  • File structuring
    • just doing it, will restructure later.
  • Image importing
    • Read in jpg image
  • Text Scan
    • OpenCV image import, test threshold filter
    • Detect holes so that a 'D' or an 'o' does not get recognized as two different characters.
    • Algorithm for figuring out correct threshold value. Take a mean of the page color and adjust for that value. Usually 110±10?
    • Draw box around where dark is detected, extract that selection.
  • Line segmentation
    • Decided it was not necessary to find beginning and end of line
    • General Algorithm
      • Scan from top line by line
      • Stop when line of nothing
      • create selection between line1 and line2
      • push to dynamic array as line[0]
  • Word segmentation
    • Detect Spaces
  • Character segmentation
    • openCV historgram test
  • Character recognition
    • Better character recognition, tweak the NN a lot.
    • Figure out a basic neural network
      • look atOpenCV neural network type
      • I've found some NN tutorials, the implementation of one is what's bothering me.