I need to detect objects in a scene (on an iPhone and Android). The environment is constrained in a way that should make the problem easier and more accurate:
- the environment is small and known… users are exploring a single room or small outdoor area that I can take pictures of ahead of time to “train” or constrain the algorithm
- the user’s location within the space is often limited… even when the space is large, the user might be confined to specific paths within the space
- the objects being detected are relatively static… they are part of the environment and don’t move
BUT, making the problem harder:
- I can’t modify the environment by placing markers on objects, so I need to recognize the objects themselves
- The objects are pretty similar looking, so we might have to use the surrounding scene as input, not just the individual items
For instance, imagine walking through a historic cemetery along a path (you’re not allowed to walk on the grass). When a user points their phone at a headstone, I’d like to be able to identify the headstone and estimate where the user is relative to the headstone (so I can estimate the user’s location on the path). Many of the headstones are pretty similar looking if you’re looking at just the headstone. Ahead of time I can walk that path and take multiple pictures of the objects from a variety of angles.
Is there an algorithm or library suited to this type of object detection problem?
This is something you might be looking for: http://3dar.us/
They have their own library where you can have something close to what you want (locations of objects, your location, the distance, etc.) Only caveat is that it’s only for iPhone right now? Good luck in your search!