3

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 ;)

4
  • Sounds interesting. What is your current stack like and how do you store your information? Give us more technical details and we might be able to hopefully help.
    – Mario Awad
    Commented Oct 5, 2015 at 20:24
  • blog.stevenedouard.com/…
    – Paul J
    Commented Oct 6, 2015 at 21:12
  • Ideally, I'm looking for something that doesn't require a 3rd party API or an internet connection or an internet. 3rd party API's mean unexpected days of downtime dealing with API changes, I'm so sick of Flickr and Facebook and Twitter having pulled that stuff on me, so ideally a permanent solution would rely on nothing else besides my own hardware. Yes. I'm a total snob. Sorry. :)
    – ClioCJS
    Commented Oct 6, 2015 at 21:19
  • openbiometrics.org
    – Paul J
    Commented Oct 6, 2015 at 21:40

1 Answer 1

3

Thank you for clarifying your stack. I'm always interested in home grown solutions like yours and I think I just found an excellent solution for your needs: OpenBR. Links:

http://openbiometrics.org/

https://github.com/biometrics/openbr

The project is open-source and looks alive and well from the stats on GitHub. You can download and compile a copy on your machine and have all the advantages you're looking for:

  • Command-line interface. Automation.
  • Works offline. No downtime.
  • Open source and well maintained. Free of charge. Contribute back. Updated versions in the future.

Hope this helps and good luck.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.