According to the project's ReadMe on Github, the way Kittydar works is that it first chops the image up into many "windows" to test for the presence of a cat head. Within each window a gradient is computed and a Histogram of Oriented Gradients or HOG is then used as the raw feature in a learning system.
The system is based on a neural network that has, according to the researcher Heather Arthur who created KittyDar, been pre-trained with thousands of photos of cat heads and their histograms, as well as thousands of non-cats. The neural network data is included in Kittydar in JSON format and is used to perform the classification.
You can try out KittyDar with test images or your own photos in this demo:
So far the method only works on "upright cats that are facing forward." For me the concept of an "upright cat " is an intriguing one.
Given the number of cat pictures that forms many Facebook posts, this is a product with a real market need out there.
If you want to add it to your own web page then simply download the code, add a canvas element to the page and use it to display the photo. Finally simply call:
var cats = kittydar.detectCats(canvas);
cats.length, "cats in this photo");
It also returns a bounding boxes for the detected cats in the returned array.
Arthur isn’t the only person working in this important area of research; she references a research paper titled “Cat Head Detection - How to Effectively Exploit Shape and Texture Features” by Weiwei Zhang, Jian Sun, and Xiaoou Tang of Microsoft Research Asia.
So it does seem that the cats instructed us to create the internet and the web and now we are being used to help complete the construction of the biggest social network ever - KittyBook - complete with autotagged photographs.