Search code examples
androidopencvaugmented-realityobject-recognition

3d object recognition for AR android app


I'm trying to develop an AR android application.
it should detect and recognize the object captured by the camera, I'm using OpenCV for this purpose, but I'm not very familiar with object recognition for mobile devices in the AR field.

I have two questions:

1- which algorithm is better (in the meaning of precision and speed) SIFT, SURF, FAST, ORB, or something else?

2- I wonder if the process of detecting and tracking would be something like this :
taking a camera frame, detect its key points, compute its descriptors then match it with each image(Mat of descriptors) available in the database to find which one it belongs to.
I feel that the mentioned steps will be computationally heavy and especially if they're repeated for each frame to keep tracking the object.

please provide me with some details about the algorithm and the steps that best fit my goal.
Thanks in advance


Solution

  • I know it is an old question but I feel it will be able to help others.

    There is this good tutorial which is using Android, OpenCV and OpenGL ES 3.0 to build a small AR app with Android studio using the NDK. It has good explainations and a Github repo to check the code.

    http://www.anandmuralidhar.com/blog/android/simple-ar/

    It uses ORB features to detect/match marker to spawn 3D object on the scene. About your second point, the tutorial can give you an idea of how the process can work.