Implementing ASIFT in Android - opencv

I am new to both openCV and Android. I have to detect objects in my project. So, I have decided to use ASIFT for the same. However, the code they have given here is very lengthy. It contains lots of C file. It also doesn't have openCV support.
Some search on the SO itself suggested that it is easier to connect the ASIFT code to the openCV library, but I can't figure out how to do that. Can anyone help me by giving some link or by telling the steps that I should use to add ASIFT to my openCv library, which I can further utilize in making my Android application?
Also, I would like to know whether using Android NDK along with JNI to make calls to the C files or using Android SDK along with binary package for my android project(Object Detection) would be a suitable option for me?

Finally , I solved my problem by using the source code given at the website of ASIFT developers. I compacted all the source files together to make my own library using make. I then called the required function from the library using JNI.
It worked for me, but the execution is taking approximate 2 mins on an Android device. Anyone having some idea about ways to reduce the running time ?

They used very simple and slow brute force matching (just for proving of concept). You can use FLANN library and it will help a lot. http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html

Related

Device handling in Nim

I am looking for a library that could capture streams of images from webcam or USB camera, and then converting image data into multidimensional matrices, in order to do some mathematical operation on them; afterward saving the result as a png file.
I am stuck in the first step. It seems there is only opencv to capture images from camera, which uses highgui.dll for the job. Unfortunately after installing opencv using nimble install opencv, and running a simple code
import opencv/imgproc
import opencv/highgui
import opencv/core
var capture = captureFromCam(CAP_ANY)
the error could not load: (lib|)opencv_highgui(249|231|)(d|).dll arises. Opencv cannot find the library to import necessary functions from it. So far I could not find any way to overcome this issue. In standard libraries of Nim, there are two libraries serial and winim that if I am not wrong, are handling device ports. I could not find a simple way to use them. The question is, what is the proper library for handling devices and how to use them in a simple manner?
For the rest of the job (manipulating image data) I think pixie is a good library to use. It would be good to know, if there is better library, in simplicity and performance.
As Christoph said, the nim package seems years out of date. However if you download Version 249 and put the right dlls into your directory or link them through your nimble file, your code will run.
For your code you would need to copy from opencv\build\x64\vc12\bin files opencv_core249.dll, opencv_highgui249.dll and opencv_imgproc249.dll
You might want to instead just write a quick wrapper for the functions you need from a newer version yourself since you probably only need a few functions. You can look at the nim-opencv library for how to wrap functions.
Or you could use a different application to capture the footage and nim to process it.

How to apply IBM CPLEX to my iOS projects?

I am new to iOS development!
And I'm working on a project that deals with shift scheduling problems.
I was reading online paper and they mentioned that they used CPLEX to solve their linear programming problems.
So I'm wondering if there's anything that I have to know to run my scheduling constraints on CPLEX but get the results on Swift codes (XCode)?
what you could try also is to use CPLEX in the cloud which would be called from IOS.
You can find an example at https://developer.ibm.com/docloud/blog/2016/03/17/docloud-and-bluemix-demo/
You can try that example on your smartphone and then have a look at how to.
regards
CPLEX offers some libraries written in C, C++.
Xcode allow the use of this kind of librairies so I think you'll be able to work with inside your Swift project.
Hope this helps !

Weka library for iOS

can you please tell me if there is a weka (machine learning algorithm) for iOS ?
and if yes then provide me with a download link to download it.
iOS Agreement says:
"3.3.2 — An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s)."
So you cannot lanch a java interpreter to use WEKA libraries.
BUT... Google released a "Java to iOS Objective C translator" a few days ago. And WEKA is an "Open Source" project. So, maybe, you could try to download WEKA's (java) code and translate it from java to Objective-C in order to run WEKA's algorithms in iOS.
If you get it, please, let me know ;-)
Weka is written in Java. This means the likelihood of it being adapted to iOS is quite small.

Intel AVCSR - (Lip reading to augment Voice Recognition)

I am interested in using a library that supports lip reading to augment audio/voice recognition. I found out that Intel's AVCSR (which was bundled with OpenCV library) would be an interesting option to consider. Would there be any other libraries that can be used to achieve the same (lip reading to augment voice recognition)?
Also I have not been able to locate a source to download this library from. I already tried the OpenCV package from SourceForge (http://sourceforge.net/projects/opencvlibrary/) but it does not seem to have the AVCSR packages/files. Could someone who has already worked with something similar point me to the place where I can find these source files (either within OpenCV or elsewhere)?
Thank you.

Getting text from image on ios (image processing)

I am thinking of making an application that requires extracting TEXT from an image. I haven't done any thing similar and I don't want to implement the whole stuff on my own. Is there any known library or open source code (supported for ios, objective-C) which can help me in extracting the text from the image. A basic source code will also do (I will try to modify it as per my need).
Kindly let me know if some one has any idea on this.
Thanks,
Vikram
One of the main open source libraries used to do OCR on iOS is a google-sponsored open source project called tesseract.
Here is some info on compiling tesseract for use in iOS apps:
tesseract
The same guy has a nice sample project on github demonstrating how a simple client might use the compiled library:
Pocket-OCR

Resources