It’s my first weekend of Infant Care Leave, my four weeks of paid time off from Microsoft to bond with Amelia. Awesome! I’m not allowed to work, so I thought I might need a technical project to tinker with in my newfound free time (Amelia is sleeping a lot lately!). So, I’ve taken on managing the family’ digital photos.
I’ve taken some initial steps. I’ve moved both Wendy and my photo collections to a file share on our Windows Home Server, and added the path to each of our PC’s Libraries and as the default save location.
I also have done a good bit of work face tagging in Windows Live Photo Gallery. I’m finding it doesn’t seem to be getting better the more photos I tag, though. I have several hundred photos of Amelia and it still doesn’t recognize many of the new ones. I know this can be a tough problem to solve, but I don’t Microsoft has nailed the algorithm quite yet.
Picasa seems to be better at the facial recognition. Problem is, they store the face names and locations in a separate file on your hard drive. So if you copy the image files around or want to search for photos by a person’s name in Windows (which is pretty slick), Picasa won’t cut it.

Fig 1. Finding photos by person name in Windows 7 Search
Photo Gallery product saves the images in the People tag on the JPEG file properties. It also stores the location of the people tag in the image metadata (EXIF data). So, both sets of data get transferred with the image, and can be accessed without needing to run a particular program. Picasa’s tagging requires users to run Picasa.
Now I’m in a tricky spot- Picasa could lighten my load. Picasa recognizes that I’ve tagged images/people in Photo Gallery, but there’s no easy way to combine both methods. Also, inconsistencies in the size of the recognized face cause a lot of duplicate tags:

Fig 2. Example of Picasa recognizing Photo Gallery’s face tagging.
As is shown above, Picasa recognizes that I’ve tagged Amelia in Photo Gallery. It reads this from the file properties and the EXIF data.

Fig 3. Example of Picasa adding its own face tag suggestion for the same person (larger size), even though one already exists. (Amelia is not happy about this – hence the wrinkled forehead)
Since Picasa has a different face detection size (larger than Photo Gallery’s), it detects Amelia and asks me to confirm the match. If I do this, Picasa is happy to have Amelia tagged twice, and adds a second entry to its proprietary file:
[IMG_2074.JPG]
faces=rect64(82086ca0a3ffa91f),dfce816875f5612c;rect64(71793c20b19cc4ff),dfce816875f5612c
backuphash=42025
Fig 4. The actual .picasa.ini entry for the above images, after the duplicate tag.
As is shown, Amelia’s ID (highlighted in yellow) is saved twice. Note: There’s an XML file in local storage that lists the mappings for names and id numbers.
But it doesn’t update the file data. So you only see this second tag in Picasa (not Photo Gallery, Windows Search or elsewhere). Same with any other files you tag only in Picasa.
It looks like Microsoft is being the open standard (XMP) champion in this case. Deep within the image EXIF data (thanks to Jeffrey’s EXIF viewer) is an easy-to-consume region and display name:
<MPReg:Rectangle xmlns:MPReg="http://ns.microsoft.com/photo/1.2/t/Region#">0.460938, 0.401920, 0.078125, 0.111111</MPReg:Rectangle>
<MPReg:PersonDisplayName xmlns:MPReg="http://ns.microsoft.com/photo/1.2/t/Region#">Amelia Whitaker</MPReg:PersonDisplayName>
Fig 5. How Photo Gallery saves the face information (XMP format).
Hey, that’s my daughter’s name! Assuming the region is a percentage from top, left, right and bottom of the image in some form, I think I could write some code to read this …or, hey…write it…
What if … there were a program that would allow a user to tag the heck of of a collection using Picasa, and then synchronize the changes into the XMP format and file metadata. That’d be cool!
Here’s the part where I commit to writing said code in the next 4 weeks. Thankfully (for Wendy’s sake), it looks like I don’t need to do that. PicFace is an open source project that exports Picasa face tags to file and EXIF metadata - exactly what I want! Whew!
I haven’t tried it yet, but if I were to go to town with Picasa face tagging, even committing the duplicates, and ran PicFace, I wonder how it will reconcile that there are two tags for the person. I could write code to extend the tool that says if the same person is tagged completely inside another tag of that same person, delete the smaller one…
Well, now that that’s solved (in theory at least), other tasks in the family photo curating saga include eliminating bad (blurry, dark, unrecoverable) files, eliminating duplicates but retaining any meaningful file/directory names as tags, geotagging, and thinking about interesting visualizations using DeepZoom or PivotViewer.
Update 1/8/2012: I just noticed in Picasa 3.9, Google implemented XMP saving of face tags, but of course it doesn’t use the same schema as Microsoft’s. They also don’t add the people names to the file metadata to make it available to search. Nice of them to add the feature, but it doesn’t quite do what I want, so I may need to code something in PicFace to sync the two up.
