<p>It is not exactly clear to me what you want to accomplish with your application but I assume that you are trying to output a font from a database of fonts that matches a users handwriting the most.</p>

<p>In Machine Learning this would be a classification problem. The <strong>number of classes</strong> will by equal to the <strong>number of different fonts</strong> in your database. </p>

<p>You could solve this with the help of a <a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" rel="nofollow">Convolutional neural network</a> which are widely used for image and video recognition related tasks. If you've never implemented a CNN before I would suggest that you look up this resources to learn about <code>Torch</code> which is a easy-to-start-with toolkit to implement CNN's. (Of course there are more Frameworks such as: <code>Tensor Flow</code>, <code>Caffe</code>, <code>Lasagne</code>, ...)</p>

<ul>
<li><a href="http://torch.ch" rel="nofollow">Torch Homepage</a></li>
<li><a href="https://github.com/soumith/cvpr2015/blob/master/Deep%20Learning%20with%20Torch.ipynb" rel="nofollow">Deep learning with Torch: 60 minutes blitz</a></li>
<li><a href="https://github.com/torch/torch7/wiki/Cheatsheet" rel="nofollow">Torch Cheatsheet</a></li>
</ul>

<p>The main obstacle you will face is that Neural Networks need thousands of images <code>(&gt;100.000)</code> to properly train them and to achieve satisfying results. Furthermore you do not only need the images but also a correct label for each image. Will say, you would need a training image such as a handwritten character and the corresponding font it matches the most out of your database as its label. </p>

<p>I would suggest that you read about so called <a href="http://cs231n.github.io/transfer-learning/" rel="nofollow">transfer learning</a> which can give you an initial boost as you do not need to set up a CNN model completely by yourself. In addition people have <code>pre-trained</code> such a model for a related task so that you safe extra time as you would not need to train it for many hours on a <a href="https://en.wikipedia.org/wiki/Graphics_processing_unit" rel="nofollow">GPU</a>. (see <a href="https://en.wikipedia.org/wiki/CUDA" rel="nofollow">CUDA</a>)</p>

<p>A great resource to start with is the paper: <a href="https://arxiv.org/pdf/1411.1792v1.pdf" rel="nofollow">How transferable are features in deep neural networks?</a>, which could be helpful for the stated reasons.</p>

<p>To get tons of training and testing data you can look up the following open datasets that provide all types of <strong>characters</strong> that can be helpful for your task:</p>

<ul>
<li><a href="http://archive.ics.uci.edu/ml/datasets/Artificial+Characters" rel="nofollow">Artificial Characters Data Set</a></li>
<li><a href="http://archive.ics.uci.edu/ml/datasets/UJI+Pen+Characters" rel="nofollow">UJI Pen Characters Data Set</a></li>
<li><a href="http://www.ee.surrey.ac.uk/CVSSP/demos/chars74k/" rel="nofollow">The Chars74K dataset</a></li>
<li><a href="http://tc11.cvc.uab.es/datasets/type/" rel="nofollow">Hand written - Datasets</a></li>
<li><a href="https://lvdmaaten.github.io/publications/papers/TR%20New_Dataset_2009.pdf" rel="nofollow">A New Benchmark Dataset for Handwritten Character Recognition</a></li>
</ul>

<p>For access to a lot of fonts and maybe even the possibility to create further datasets on your own you can have a look at <a href="https://fonts.google.com" rel="nofollow">Google Fonts</a>.</p>
Font Recognition From free Hand drawing
<p>I have been working on an application that involves font recognition based on a users free hand drawing characters in Android Canvas.</p>

<p>In this application the user is asked to enter some predefined characters in a predefined order <code>(A,a,B,c)</code>. Based on this, is there any way to show the very similar font which matches the user's hand writing. </p>

<p>I have researched on this topic found some papers &amp; articles but most of them are recognizing font from a captured image. In that case they are having a lot of problems by segmenting paragraphs, individual letters and so on. But in my scenario I know what letter the user is drawing.</p>

<p>I have some knowledge in OpenCV and Machine Learning. Need help on how to proceed with this problem.</p>