9

I'm attempting to implement an easter egg in a mobile app I'm working on. These easter egg will be triggered when a logo is detected in the camera view. The logo I'm trying to detect is this one: Halifax logo.

I'm not quite sure what the best way to approach this is as I'm pretty new to computer vision. I'm currently finding horizontal edges using the Canny algorithm. I then find line segments using the probabilistic Hough transform. The output of this looks as follows (blue lines represent the line segments detected by the probabilistic Hough transform):

halifax logo post detection

The next step I was going to take would be to look for a group of around 24 lines (fitting within a nearly square rectangle), each line would have to be approximately the same length. I'd use these two signals to indicate the potential presence of the logo. I realise that this is probably a very naive approach and would welcome suggestions as to how to better detect this logo in a more reliable manner?

Thanks

dbotha
  • 1,501
  • 4
  • 20
  • 38

4 Answers4

5

You may want to go with SIFT using Rob Hess' SIFT Library. It's using OpenCV and also pretty fast. I guess that easier than your current way of approaching the logo detection :)

Try also looking for SURF, which claims to be faster & robuster than SIFT. This Feature Detection tutorial will help you.

dom
  • 11,894
  • 10
  • 51
  • 74
  • 3
    SIFT and SURF are both patented (although allow for no-cost non-commerical use) so you will need a patent license for any commercial use. – bleater Mar 29 '12 at 03:40
2

You may just want to use LogoGrab's technology. It's the best out there and offers all sorts of APIs (both mobile and HTTP). http://www.logograb.com/technologyteam/

0

I'm not quite sure if you would find such features in the logo to go with a SIFT/SURF approach. As an alternative you can try training a Haar-like feature classifier and use it for detecting the logo, just like opencv does for face detection.

dhanushka
  • 10,492
  • 2
  • 37
  • 47
0

You could also try the Tensorflow's object detection API here: https://github.com/tensorflow/models/tree/master/research/object_detection

The good thing about this API is that it contains State-of-the-art models in Object Detection & Classification. These models that tensorflow provide are free to train and some of them promise quite astonishing results. I have already trained a model for the company I am working on, that does quite amazing job in LOGO detection from Images & Video Streams. You can check more about my work here: https://github.com/kochlisGit/LogoLens

LazyAnalyst
  • 426
  • 3
  • 16