is it possible to perform classification on an image as small as 4x4 image using deep learning? - machine-learning

I am new to deep learning. I was trying to understand the basics of image classification and followed some tutorials on MNIST data set classification. I saw various standard models used 224,224 as the image size. I got stuck at a point when it comes to image size which can be used for classification. Is it possible to use images as small as 4x4 to perform classification task in deep learning using ANN or other techniques? or is there any lower image dimensions limit which must be followed strictly? please guide me on this. Thanks in advance.

Related

How to apply MNIST trained NN on a big image

I have a Neural network (NN) in deeplearning4j trained with MNIST to recognise digits on an image. As MNIST set contains 28x28 pixel images, I am able to predict class of an 28x28 image using this NN.
I am trying to find out how to apply this NN on a picture of a handwritten page? How to convert text from that image to actual text (OCR)? Basically, What kind of preprocessing is needed and how to find out part of image where the text is? How to derive smaller pieces of that image to apply NN individually?
You may want to explore HTR using Tensorflow (Handwritten text recognition). There are some interesting implementations already available and used widely as baseline models for the same. One such can be found here.
The architecture above details out how to design such as system. You can modify this further to suit your requirements of course.
If you are working with a combination of data, or trying to understand preprocessing steps for such images, here is a link that could guide you.
The primary preprocessing step is to detect and crop words so that those are manageable by the underlying TensorFlow HTR or tesseract architecture.
You may want to look at cropyble, which packages the cropping and the word extraction in one go. You can use this specifically for just cropping the image to extract word sequences for other downstream tasks

how decorrelating image effect image classification?

How decorrelating image effect image classification?
In many website, they use whitening(decorrelating image) for image preprocessing.
What is the benefit?
In machine learning, decorrelation data can calculate easily?
Whitening can be seen as the process of removing the mean values, the correlation between pixel to keep only interesting data. That way, the ML algorithm only sees interesting data and can train faster and more efficiently.
Here are some useful links to understand why whitening can be useful :
Standford - PCA whitening
Statistical whitening
Exploring ZCA and color image whitening

Train TensorFlow to modify images

I am interested in the possibility of training a TensorFlow model to modify images, but I'm not quite sure where to get started. Almost all of the examples/tutorials dealing with images are for image classification, but I think I am looking for something a little different.
Image classification training data typically includes the images plus a corresponding set of classification labels, but I am thinking of a case of an image plus a "to-be" version of the image as the "label". Is this possible? Is it really just a classification problem in disguise?
Any help on where to get started would be appreciated. Also, the solution does not have to use TensorFlow, so any suggestions on alternate machine learning libraries would also be appreciated.
For example, lets say we want to train TensorFlow to draw circles around objects in a picture.
Example Inbound Image:
(source: pbrd.co)
Label/Expected Output:
(source: pbrd.co)
How could I accomplish that?
I can second that, its really hard to find information about Image modification with tensorflow :( But have a look here: https://affinelayer.com/pix2pix/
From my understanding, you do use a GAN, but insead of feeding the Input of the generator with random data during training, you use a sample Input.
Two popular ways (the ones that I know about) to make models generate/edit images are:
Deep Convolutional Generative Adversarial Networks
Back-Propagation through a pre-trained image classification model (in a similar manner to deep dream) but you can start from the final layer to feed back the wanted label and the gradient descent should be applied to the image only. This was explained in more details in the following course: CS231n (this lecture)
But I don't think they fit the circle around "3" example that you gave. I think object detection and instance segmentation would be more helpful. Detect the object you are looking for, extract its boundaries via segmentation and post-process it to make the circle that you wish for (or any other shape).
Reference for the images: Intro to Deep Learning for Computer Vision

Tensorflow for 1D input vector

I am a a beginner in machine learning and currently trying to learn about deep learning and convNets. I have been following the tutorials on tensorflow.org and have done the first two tutorials. But so far I have done examples of 2d input vectors (images).
My ultimate goal is to be able to train a CNN to be able recognise peaks in a spectra(which is 1d vector). Is there any tutorials/example code/suggestion as to how I should start approaching this problem?
There is no actual difference, simply your convolutional kernels will be rectangular instead of square, of size 1xK (as opposed to typical KxK). Besides that there is no much of the difference.

How to implement Image Classification and feature extraction using Matlab?

I'm currently performing a research that involves identification of food items using image classification techniques, I'm well versed in the theories and maths of SVM, yet I'm completely lost when it comes to implementing it using Matlab.
I would like some guiding steps to perform full image classification of food, I believe it will involve color, texture, shape and size features. I just wanted to know where should I start?
Thank you very much

Resources