I've been thinking about working on an application. You take a picture of something at a yard sale and it compares it against an image database.
For example say you take a picture of a spoon, and compares the image taken against images in the database and throws back to the user the top 5 possible matches.
Is this possible with current Android?
If so point me in the right direction, for stuff I'd need.
Thanks,
abolbridge
Look forward to your guys feedback.
That is rather possible, but too much CPU consuming and therefore not possible on Android itself. You'd have to build a serverside application for that.
It is going to be hard though. Quite.
Take a look at Google Goggles for an idea. The image processing is entirely made on the server side.
Check out openCV, as it contains a lot of useful object recognition functions and can be used on android. However, this approach will push the limits of the phones CPU and more so, its memory when using higher resolution images. A server-side implementation may be more appropiate.
Related
I want my android app to recognise millions of images. So i want to know if openCv is a choice for this solution. I want an image to be compared against a huge ( millions ) of reference images and find if any matches . Is this can be achieved with efficiency when opencv is used
Depending upon the algorithm you're using the time varies.
Here's something about what you're asking. As Tushar stated it's better to do these computations on a server and return the results rather than on the client device. Although the code I'm going to post below showed tremendous speed on a Galaxy SIII.
Also, if you'd like some sample code, take a look here.
I'm thinking of doing an image processing app for android as my senior year project. The basic functionality I'd like is for the user to be able to take a photo from the camera and then try to match it to certain preexisting images in the database.
I'll be using it for distinct objects, not objects with varying characteristics like pen, car, etc. Rather objects like maybe the Eiffel tower. The app should be able to recognize an Eiffel tower based on the photo taken from the camera and comparing it to an already existing pic of the Eiffel tower.
Is this project feasible in a 6 month time frame or is it feasible at all?
What APIs does android provide to get this job done ?
Thank you
I suggest using a neural network, and than training it for the objects you want to recognize.
Also, you should try implement pattern recognition natively for better performance. Still, I'm not confident that it would work well in terms of recognition mistakes and fast execution. Also, you would need large training datasets for every object you want to recognize, pictures from different angles, taken during day and night, in different weather occasions... Recognition performance could be improved if you take into account gps location from which is picture taken (Eiffel tower surely is not visible from London). If you want to make this to work it would take a tremendous amount of effort.
I have done the same thing as a project in 3 months or so. There is not Andriod API. But you can build an application for it. In my project I send the snapshot image to a server to do that match, the server have a database for image build with "bag of words" model and using SIFT/SURF as feature extraction algorithms. The server will reply with information to the mobile client as need. There is a tutorial how to build the a similar thing here
I am developing a currency identification system for blind people. I need to check if the full currency note has been captured so I used square detection for that. It is currently working when the background is pure black or white, but not when the background is more advanced. What techniques can I use to solve this problem?
I am using OpenCV as my image processing framework. Can I use convolution? How?
need enhancement for square detection.
Result image of my code:
I am not sure whether rectangle detection is the best solution for what you want to do.
It will only work efficiently if the picture is taken right up from the money, and as you say will not be robust to cluttered backgrounds.
Is there a precise reason for not going to a direct pattern recognition system ?
I'd start with a picture of my currency and try to perform object recognition with it.
You will find loads of tutorials that can help you on the web, like for bottles or for bowls.
You might have a lot of possibilities, due to the number of currencies but you know it to be a finite number at least.
Say I have a set of say 100 stored images (say sports team logos, rather than very similar images like faces) in my android app. In a manner similar to google goggle's continuous mode, I would like to use the camera to decide which image is being focused on.
What is the best, most efficient way to accomplish this? Any open source libraries, sdks etc would be great.
Thanks.
If you would like serverside recognition you should check out kooaba's API. its free for small reference databases such as yours and the best in the field...
Www.kooaba.com
First, sorry abour my poor english.
I'm planning to build an augmented reality app for android mobile platform and the main feature is the ability of the user to take a shoot of a shop and the application recognize the shop that he is photographing. I Do not know if the best option would be to use an image recognition api as many existing, but I think it would be something more specific. Maybe own a bank of images would help.
My plan was to have a database of stores with their locations and use one of many tools for image recognition and search in my database to the same location. But I found that all search engines images (kooba, iqengines, etc.) are not free and not a little cheaper. So would a tool that could use a limited catalog, like shops images in a shopping mall for example and send photos of smartphones (both android or iphone).
Can someone help me get started?
I've been doing something similar for my dissertation at University. I developed an application which detected signposts, read the content on them, then personalised / prioritised it depending on the user's preferences (with mixed success).
As part of this I had to look into Image Recognition.
Two things you may want to look at are:
The Qualcomm QCAR SDK. This was a little bit too image specific for what I was after, but if you were to do it on a small range of shops it may work. This would require a collection of shop images to match against - I don't know how successful it would be.
What I implemented used JavaCV (a conversion of OpenCV), which also has an Android conversion. It seems to allow for image recognition a bit more generally than the previous option which is why I used it. It would require you to run your own training to create a classifier though (unless there is another way of doing image recognition within it). But there are a number of guides which can help with that.
I used it for recognising signposts with reasonable success off just some basic training, though did tend to recognise a number of false positives.
Within my application I then used location to match up with previous detections etc.
Hopefully these may get you started.