Tristan-cs488-tasks

From Earlham CS Department
Revision as of 17:37, 12 December 2012 by Twright09 (talk | contribs) (Final entry)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.