8

I wonder what Mathematics is behind handwriting and symbol recognition.

I was using Detexify just now and it struck me that a distinction could be made between $\varsigma$ (a variant of the Greek letter sigma), $\zeta$ (the Greek letter zeta), and $\xi$ (the Greek letter xi).

I was thinking that it'd be some combination of Topology, Graph Theory, and Knot Theory.

How do such recognition things like Detexify work, mathematically speaking?

A detailed answer would be great.

Shaun
  • 47,747
  • 1
    I don't know about detexify in particular, but often image recognition is done by convolutional neural networks. – Jair Taylor Apr 21 '17 at 21:17
  • Character recognition is done through wavelet transforms. I have seen many small engineering examples of this and none of them used any machine learning techniques at all, just pure signal processing and some if-else statements – Fraïssé Apr 21 '17 at 21:27
  • 1
    I know that support vector machines (SVMs) are used sometimes for handwritten character recognition (https://en.wikipedia.org/wiki/Support_vector_machine). In general, this falls under a combination of (1) a classification problem which is something (a topic in machine learning and data mining) and (2) image processing (which are sometimes used to "pre-process" the image so that suitable data-mining/machine-learning techniques can be applied to them. – benguin Apr 21 '17 at 21:30

2 Answers2

10

Detexify's implementation is explained here: https://gist.github.com/kirel/149896 Briefly, it is a $k$-nearest neighbors classifier with hand-tuned features. Nothing fancy, no topology:

The features I use (at the time of writing) are number of strokes, point density and directional features.

Chris Culter
  • 27,415
2

You might explore MyScript Math:

MathScript