Neural network library for true-false based image recognition
<p>I'm in need of an artificial neural network library (preferably in python) for one (simple) task. I want to train it so that it can tell wether <strong><em>a thing</em></strong> is in an image. I would train it by feeding it lots of pictures and telling it wether it contains the thing I'm looking for or not:</p>

<p>These images contain <strong><em>this thing</em></strong>, return True <em>(or probability of it containing the thing)</em></p>

<p>These images do not contain <strong><em>this thing</em></strong>, return False <em>(or probability of it containing the thing)</em></p>

<p>Does such a library already exist? I'm fairly new to ANNs and image recognition; although I understand how they both work in principle I find it quite hard to find an adequate library for this task, and even research in this field has proven to be kind of a frustration - any advice towards the right direction is greatly appreciated.</p>

<p>There are several good Neural Network approaches in Python, including TensorFlow, Caffe, Lasagne, and <a href="https://scikit-neuralnetwork.readthedocs.io/en/latest/module_mlp.html#classifier" rel="nofollow">sknn</a> (Sci-kit Neural Network). sknn provides an easy, out of the box solution, although in my opinion it is more difficult to customize and can be slow on large datasets. </p>

<p>One thing to consider is whether you want to use a CNN (Convolutional Neural Network) or a standard ANN. With an ANN you will mostly likely have to "unroll" your images into a vector whereas with a CNN, it expects the image to be a cube (if in color, a square otherwise). </p>

<p>Here is a <a href="http://blog.christianperone.com/2015/08/convolutional-neural-networks-and-feature-extraction-with-python/" rel="nofollow">good resource</a> on CNNs in Python. </p>

<p>However, since you aren't really doing a multiclass image classification (for which CNNs are the current gold standard) and doing more of a single object recognition, you may consider a transformed image approach, such as one using the <a href="http://scikit-image.org/docs/dev/auto_examples/plot_hog.html" rel="nofollow">Histogram of Oriented Gradients (HOG)</a>. </p>

<p>In any case, the accuracy of a Neural Network approach, especially when using CNNs, is highly dependent on successful hyperparamter tuning. Unfortunately, there isn't yet any kind of general theory on what hyperparameter values (number and size of layers, learning rate, update rule, dropout percentage, batch size, etc.) are optimal in a given situation. So be prepared to have a nice Training, Validation, and Test set setup in order to fit a robust model. </p>

python python-3.x boolean neural-network image-recognition