I tag (and caption) my own pictures myself, locally, on my own machine, in a system of my own design... And then use various APIs (Flickr & Facebook) to use this data to curate my photos. Everything I upload is perfect the moment is uploaded; no repeating steps for each service. It's great!
So what's the problem?
It's still tedious going through each photo and identifying every person.
I want to build up a facial recognition database. Something that has some sort of command-line interface that I can build wrappers around. I want it to work offline, i.e. not rely on any 3rd party services.
I already have a file for each person which is a list of files that contain pictures of that person.
I simply want to feed these filelists into a facial recognition database, let it do it's work, and then, in the future, tell it, via command line, "process the pictures in this folder, and give me an export of your findings". Which I can then transform back into my proprietary format.
Are there any packages like this, that would be simple, and not require a lot of coding? I feel like a good facial recognition framework would already have a function to do what I described, but maybe I'm too optimistic.
QUESTIONS ASKED:
1) What is my stack?
Windows 7 x64.
(I use my own proprietary command line, TakeCommand, because I've been building a single command-line environment for myself since the 1980s. So everything I do is zany and singular.)
2) How do you store your information?
My picture tagger was (and still is) my mp3 playlist generator (don't ask -- it's 3800 lines of perl).
So it assembles "playlists" of photos per person.
So I have files like:
person-LASTNAME FIRSTNAME.lst
Such as:
person-Smith John.lst
person-Doe Jane.lst
person-Frank.lst [for somebody whose last name I never knew, for example]
Which simply contain a list of files of the fill path to each file, such as:
C:/WWWPICS/2000-2009/2009/2009_01_17_Kevin Nealon/20090117 - Kevin Nealon, Clint, Carolyn - 174-7493.jpg
C:/WWWPICS/2000-2009/2009/2009_01_17_Kevin Nealon/20090117 - Kevin Nealon - 174-7494.jpg
C:/WWWPICS/2000-2009/2009/2009_01_17_Kevin Nealon/20090117 - Kevin Nealon, Clint - 174-7495.jpg
C:/WWWPICS/2000-2009/2009/2009_01_17_Kevin Nealon/20090117 - Kevin Nealon, Carolyn - 174-7496.jpg
So ideally, for training, I may want to limit the result to those pictures which only have one person in them. Which would require me possibly creating a 2nd export of data that meets those conditions. But that is completely my problem and my problem alone, and completely doable and easy for me.
So really, I would just want to hand it, more or less, a hash table, where the key is a person's name, and a values are a list of all images that person is in (possibly with the additional requirement that only one person be in the picture). Something along the lines of:
Kevin Nealon:person-Nealon Kevin.lst
Doe Jane:person-Jane Doe.lst
Or I could simply write a wrapper to produce script to hand the individual files to the engine.
However the engine accepts it - as long as it's command line and something that can be completely automated, then it's something I could use. If this doesn't exist yet, somebody who isn't me should really build it ;)