3
$\begingroup$

Was recommended to migrate this question from SO.

I am building an iOS app that, as a key feature, incorporates image matching. The problem is the images I need to recognize are small orienteering 10x10 plaques with simple large text on them. They can be quite reflective and will be outside(so the light conditions will be variable). Sample image http://i1274.photobucket.com/albums/y425/Chris_Mitchelmore/2_zpsce84d4f3.png

There will be up to 15 of these types of image in the pool and really all I need to detect is the text, in order to log where the user has been.

The problem I am facing is that with the image matching software I have tried, aurasma and slightly more successfully arlabs, they can't distinguish between them as they are primarily built to work with detailed images.

I need to accurately detect which plaque is being scanned and have considered using gps to refine the selection but the only reliable way I have found is to get the user to manually enter the text. One of the key attractions we have based the product around is being able to detect these images that are already in place and not have to set up any additional material.

Can anyone suggest a piece of software that would work(as is iOS friendly) or a method of detection that would be effective and interactive/pleasing for the user.

Sample environment: http://www.orienteeringcoach.com/wp-content/uploads/2012/08/startfinishscp.jpeg

The environment can change substantially, basically anywhere a plaque could be positioned they are; fences, walls, and posts in either wooded or open areas, but overwhelmingly outdoors.

$\endgroup$
4
  • $\begingroup$ Where is the plaque with the text in the second image? Can the users be instructed to focus on the plaque in their photographs? $\endgroup$
    – bjoernz
    Feb 6, 2013 at 10:29
  • $\begingroup$ The plaque is the red and white square. They can be an assortment of colors but overwhelmingly the grey with silver engravings and red/white with black engravings. The user can be directed to accurately focus in on the plaque. $\endgroup$ Feb 6, 2013 at 13:37
  • 1
    $\begingroup$ I'm not seeing any red and white square, maybe something orange and white. I also don't see any large text on them, as you mentioned in your question. Is that an actual image you will be working with ? $\endgroup$
    – mmgp
    Feb 6, 2013 at 21:21
  • $\begingroup$ Sorry I didn't make it clear. The second image is just a sample environment. The user will be outside and be able to position the device at the correct location, detection is not the problem. The first image is a close up of what they would be focussed on, the plaques vary in color but are made up of only 2 or 3 colors. $\endgroup$ Feb 7, 2013 at 14:58

1 Answer 1

0
$\begingroup$

I managed to find a solution that is working quite well. Im not fully optimized yet but I think its just tweaking filters, as ill explain later on.

Initially I tried to set up opencv but it was very time consuming and a steep learning curve but it did give me an idea. The key to my problem is really detecting the characters within the image and ignoring the background, which was basically just noise. OCR was designed exactly for this purpose.

I found the free library tesseract (https://github.com/ldiqual/tesseract-ios-lib) easy to use and with plenty of customizability. At first the results were very random but applying sharpening and monochromatic filter and a color invert worked well to clean up the text. Next a marked out a target area on the ui and used that to cut out the rectangle of image to process. The speed of processing is slow on large images and this cut it dramatically. The OCR filter allowed me to restrict allowable characters and as the plaques follow a standard configuration this narrowed down the accuracy.

So far its been successful with the grey background plaques but I havent found the correct filter for the red and white editions. My goal will be to add color detection and remove the need to feed in the data type.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.