Algorithm used for image classification in Create ML - xcode

I have checked everywhere but can't find a specific answer. I wanted to know what algorithm is used for image classification in the Create ML developer tool in Xcode.

Related

Algorithm to detect doors and windows in an image

I'm working on an educational project where I need to detect objects, mainly doors and windows. I have tried to find specific algorithms to do this.
This is the first step in a project to detect all objects and let a user choose the object he wants. Then in the next step the system will define edges of the object accurately.
I want to detect objects by their color variety with background or with overlapping objects. I need an algorithm to start with. I started learning color spaces and I chose hvs color space. I read many papers and I know how they work, but I'm still confused and don't know what algorithm will really help.
You can use any segmentation algorithm.
You will need to find features from images to use in segmentation, a good approach for feature selection is by using any deep learning technique, i would recommend try CNN, you will find a builtin library "matconvnet" "http://www.vlfeat.org/matconvnet/" for implementing CNN in MATLAB.
you can also find few already build models for segmentation using CNN here http://www.vlfeat.org/matconvnet/pretrained/

Logo recognition with a huge dataset

First of all, thanks for reading my question. I'm beginner in computer vision.
I read a lot but I didn't find any solution.
I have an image and I want to detect logo/logos on it.
Also, I have a whole of images with different logos, all image containing a logo on it and nothing more.
Can you help me with any idea of how to detect logo/logos on an image when I have a whole (thousands) of training sets (known logos set)?
It can be done by using the SURF or SIFT feature detection algorithm for few known logos, by matching the given image with all of the others but I have a huge dataset, and I can't match with all other images.
To try all images in the dataset takes toooooo much time :)
Can be useful any SDK? (it can be even for mobile phones or for desktop also).
Or can I use some multiple algorithms for it?
I found an interesting paper about this question with a SIGMA algorithm, but I can't find any description for these algorithms (http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5495345).
I think to detect the features on the images is OK (SIFT, maybe SURF).
But I think the problem is with the big number of known images/logos.
I think it should be stored in a special way.
Ex. made a tree somehow from the thousand of known logos, or to separate them in groups.
Is it possible to do this task?
I appreciate any help.
The thousands of training sets is useful only to test your algorithm, it will not help to analyze a new image.
I made a bit of pattern recognition in the past, I would start this way: look for sharp edges (sharp color transitions too). So an edge filter and statistical analysis about features all located in the same corner. The result of the algorithm will be a number that you will use with your training set.
Since you are doing original reserch be prepared for a long work. If a SDK with a function "ImageHasLogo()" exists yet, you will find it on Google.

Recognition of numbers in images(Matlab)

I am learning image processing and i am trying to start my first project, that is Simple number recognition in an image.
So far i have applied thresholding to the image. Now i would like to know some algorithms by which my system can recognize the number in the image. Preferably the algorithm must be simple and it doesn't have to robust as i am would be generating the image in paint using the same font.
I have looked at the similar questions here on SO and they all point out to using libraries. Remember guys i am trying to learn so please don't point out some libraries.
Are the numbers printed or hand-written?
The Computer Vision System Toolbox includes a function called ocr, which will recognize both, letters and numbers.
If you are looking for hand-written digit recognition, please take a look at this example.

How is google search by image implemented?

I can just drag and drop any image in google and get results. :)
How is it implimented ? What is the idea behind the algorithm ?
Is that image data converted to anything for search or..... no idea ..
Surprisingly, we can also use Google to answer this question!
What is the algorithm used by Google Search by Image
It is definitely not confirmed, but I'm sure Google uses many of these techniques/ a blend of them when identifying images
I think that google images uses a 3 combined algorithm
detect image's deformation (by rotation, scale, illumination,...)
detect by the colors
detect by the visual similarity
and a fourth algorithm that is a secret by google (to ranking for example) ;)
(see here -> http://www.quora.com/Algorithms/What-is-the-algorithm-used-by-Google-Search-by-Image-1 )
Update 2016
My original answer was on 2012 - in the meanwhile other studies and research have taken more and more importance and I learn some new stuff. ;-)
In my opinion the mains "philosophies" about image detections are three:
machine learning algorithms
deep learning (a machine learning algorithm)
(pattern recognition)
Today, I think that pattern recognition has lost its importance: machine learning is in my opinion the right way to work for searching by image.
With machine learning you can even search for similarly match (for example faces - that obviously are not equals between them). The difficult is how you will to teach correctly your machine. Different approach can be taken.
Deep learning is simply a machine learning algorithm. It goes deeper using differents layers to match a possible image, some example of layers could be:
pixel-vector (color, intensity,..)
shapes
edges
...
Image search is an exciting field. Google Reverse Image Search uses a combination of Image processing techniques such as Scale Invariant Feature Transforms and Principle Component Analysis based Scale Invariant Feature Transform. Beyond the prowess of deep learning techniques and image processing algorithms, Google has an advantage in the deployment of large scale big data processing algorithms at scale. Google also creates really efficient indexes of images using advanced hashing techniques. It is interesting to see how Google is creating space-efficient data structures for images that are used subsequently in the image search algorithms.
Fundamentals of Reverse Image Search
In the entirety, Google Image Search is efficient not only because of image processing algorithms. It is also re-using and re-purposing the parametric search techniques of Google Text Search Engine.
Factors in Google Image Search Algorithm

How to segment an image efficiently?

i search a solution to segment a image in different parts (Especial a saliency map (see image)).
I knew about some Solutions like Graph-Based segmentation by Pedro F. Felzenszwalb, but for large images my implementation is very slow.
Is there some other solution?
Greetings,
Destiny
Destiny,
What is the specific goal of this segmentation? Are you just trying to create separate regions in a still image? Are you looking for objects, and segmenting the image to find ROIs for later work?
The more specific you can be about your segmentation goals, the more specifically you can tailor your code. Binarizing your image through thresholding, or separating it into smaller chunks via feature detection, could significantly speed up your code.
The only other general image segmentation algorithm I can think of that is implemented in the OpenCV libraries is the water shed algorithm. You can find it in the docs, or look up Laganiere's OpenCV 2 Computer Vision Application Programming Cookbook, which contains an excellent tutorial on both of these algorithms.

Resources