So I started exploring how to implement feature matching between two images using OpenCV. I hacked around for some time and turns out that a lot of people have implemented feature matching using OpenCV and it didn’t look that difficult.
I considered an alternative approach using Eigenvectors, which didn’t include the use of OpenCV. But I gave that up because I felt that it wouldn’t build a very robust image detection system.
But first, I sat about sketching the whole course of my project, listing out all the verticals involved in building an effective image detection system for Truly Madly.
1. Face Detection: Detecting a person’s face. It will help the system tell if the image a user is uploading is actually of a person, and is not a cartoon or something else. This feature will just test for a genuine face. It could be of a celebrity or some other person. This would be the first layer of the image detection system of Truly Madly.
I made significant progress on the facial detection analysis using OpenCV. I coded a rough python script to use the feature detector tests made avaliable by OpenCV. I studied the difference between the various types of detectors, namesly the SURF, SIFT and the ORB detector. I set out to use the SIFT facial feature detector in my code based on Truly Madly’s need. There were a few recurring errors though that I was encountering. Almost 2 days went in debugging them. I wasn’t able to get much support and attention from the mentors there on that.
Facial detection also included checking if the picture has multiple faces in it, and not approving it as a profile picture in that case.
2. Facial Recognition: This part of my project involved creating a database of images that we wished the Truly Madly system to flag as inappropriatte. Images like celebrity pictures and baby images would be put in that database, and any new image uploaded would be checked for a match against this set of images. I haven’t started coding for this vertical of the project, but had a fair bit of idea after reading tutorials.
P.S> I could also train a Machine Learning algorithm of the database of images; even thought of a neural network approach, but postponed that for later, when I would be done with the facial detection part.
3. Nudity Check: The last filter in the Truly Madly facial detection system would be a nudity check filter, which would flag and discard an image if it contained nudity.
I am not too sure on how to implement this thing. But I’m sure I’ll be able to figure something out as time progresses.
I am writing the facial detection script in Python right now, as it is short and easy to understand in Python. Truly Madly’s backend is in PHP, so I might have to port the whole code into PHP later. But I’m not concentrating on that right now.
Work is slow here. I wish I had more guidance from the seniors here. Life gets really hectic. And I don’t get that feeling that I’m getting to learn a lot. Also, my profile doesn’t really seem to be that of a Data Scientist.
I am a kind of a guy who needs some deadlines to stay motivated.