<p>I’m now running one of my pet projects and it's required face recognition – detecting the area with face on the photo, if it exists with Raspberry pi, so I’ve done some analysis about that task</p>

<p>And I found <a href="https://arxiv.org/pdf/1506.02640.pdf" rel="nofollow">this</a> approach. The key idea is in avoiding scanning entire picture to help by scanning windows of different sizes like it was in OpenCV, but by dividing an entire photo into 49 (7x7) squares and train the model not only for detecting of presenting one of classes inside each square, but also for determining the location and size of detecting object</p>

<p>It’s only 49 runs of trained model, so I think it's possible to execute this in less than in a second even on non state-of-the-art smartphones. Anyway, it will be a trade-off between accuracy and performance
About the model </p>

<p>I will use <a href="https://arxiv.org/pdf/1409.1556.pdf" rel="nofollow">vgg</a> –like model, probably a bit simpler than even vgg11A.  </p>

<p>In my case ready dataset already <a href="http://www.robots.ox.ac.uk/~vgg/data/vgg_face" rel="nofollow">exists</a>. So I can train convolutional network with it</p>

<p>Why deep learning approach is better than 1-3 you mentioned? Because of its higher accuracy for such kind of tasks. It’s practically proven. You could check it in <a href="https://www.kaggle.com/" rel="nofollow">kaggle</a>. Majority of the top models for classification competitions are based on convolutional networks</p>

<p>The only disadvantage for you – probably it would be necessary create your own dataset to train the model</p>
Image Recognition Techniques for Identifying Logos (Brands)
<p>I started learning Image Recognition a few days back and I would like to do a project in which it need to identify different brand logos in Android.</p>

<p>For Ex: If I take a picture of Nike logo in an Android device then it needs to display "Nike".</p>

<ul>
<li>Low computational time would be the main criteria for me.</li>
</ul>

<p>For this, I have done some work and started learning OpenCV sample examples.</p>

<p>What would be the best Image Recognition that would be used for me.</p>

<p>1) I came to know from Template Matching that their applicability is limited mostly by the available computational power, as identification of big and complex templates can be time consuming. (and so I don't want to use it)</p>

<p>2) Feature Based detectors like SIFT/SURF/STAR (As per my knowledge this would be a better option for me)</p>

<p>3) How about Deep Learning and Pattern recognition concepts? (I was digging on this and don't know whether it would be an option for me). Can any of you let me know whether I can use this and why it would be an better choice for me when compared with 1 and 2.</p>

<p>4) Haar caascade classifiers (From one of the posts in SO, I came to know that by using Haar it doesn't work in Rotation and Scale invariant and so I haven't concentrated much on this). Does this been a better Option for me If I focus up on.</p>