Mobile Object Detection through Client-Server framework

asked 2016-03-03 05:24:58 -0600

huhu gravatar image

I have worked with cascade classifier for object detection from webcam using opencv and c++. Now I am implementing it on client-server framework where client take image or record video and send it over the server where it trains and do the rest automatically. And then app identify the object using trained classifier for this object.

In this cascade method, most of the things can be achieved on the server automatically except the automatic annotation to create positive.txt file format. Which then pass to opencv_createsamples utility to create a .vec file.

Also latent SVM can be used for object detection but learning methods are not available in opencv.

If this is not possible with opencv, then i think it is not possible to perform object detection automatically using this technique which follows client-server framework.

Anything else which can be considered for object detection/recognition?. maybe where we don't need to train classifier or do things manually?.

edit retag flag offensive close merge delete

Comments

that is why I am asking for other methods, which might be considered. SIFT, SURF are also not be considered because of copyrights. Blob detection?...

huhu gravatar imagehuhu ( 2016-03-03 05:49:22 -0600 )edit

If you are detecting complex a deformable objects (such as faces/persons) on complex environments, you really need a machine learning approach.

Client/server approach requires a trained model beforehand, so I don't understand why would you need to create a .vec file in real time.

I'd suggest you start by a basic opencv cascade model to test your framework. After that, you can start improving detection with more powerful algorithms.

Pedro Batista gravatar imagePedro Batista ( 2016-03-03 06:59:14 -0600 )edit

It does not matter how much it will take to train new objects on the server. If user detects any object which is not available on the server (in existed trained classifiers list) then it will run training algorithm.

Problem I am facing is automatic annotation of objects which is only possible to achieve manually.

Basic model can be tested with opencv android using existed xml files on mobile. But this is not what i am looking for. If it is not possible to train new objects which user sends to server from mobile app.

Any other possibility which can be achievable without any manual step for object detection?.

huhu gravatar imagehuhu ( 2016-03-03 07:12:10 -0600 )edit

So you want to be able to detect an object before having the model needed to detect it, in order to produce samples in order to create a model to detect that object? :P

I suggest you look at TLD tracker. It is a self-learning framework that starts learning an object at the same time it detects it. The thing is that the user needs to manually select which object to start tracking. If this is OK for you, then TLD tracker is the way to go. OpenCV has an implementation of it.

Pedro Batista gravatar imagePedro Batista ( 2016-03-03 07:54:32 -0600 )edit

thanks, I will read about it in detail.

huhu gravatar imagehuhu ( 2016-03-03 08:49:04 -0600 )edit