This program was written because of the new Google Picasa 3.5 face recognition feature. Due to the fact that Picasa 3.5 doesn't store the face recognition data inside JPEG pictures, this program fetches that data and stores it as XMP-MP meta tags inside the JPEG pictures.
The Picasa 3.5 face recognition feature stores the face data inside the Picasa database. As a consequence this data is lost when you give away your pics and this data cannot be shared with other users or with other Picasa instances running on different computers. Lukily Picasa stores the face recognition data (persons & faces) in quite simple text files so reading that data is not a big clue.
There is already a method available how to store face recognition data inside JPEG pictures. This method uses XMP tag system created by Adobe with the addition of Microsoft XMP namespace Microsoft Photo Region Schema and is used by Windows Live Photo Gallery.
Right at the start this program reads the Picasa text file holding the persons (contacs). Each person has assigned an unique person ID. For every file of for all files in a directory which is added to the list of files or directories the picasa.ini file is searched for face definition. If face definitions are found for a file, they are added as XMP tags. Optionally, the person names are also added as IPTC Keyword tags.
The actual tagging of the JPEG files is done using ExifTool - a great and widely accepted/trusted tagging program which is known for its good makernotes handling (to leave them intact).
Feature list for AvPicFaceXmpTagger:
I've created a forum for discussion about errors, enhancements and general issues for my programs.
Please check out the AnVoIt Software Forum
)
This program doesn't need any installation. It's just plain .NET executable and can be even run from USB stick or CD/DVD.
The Windows registry isn't used in any way. At program start the current directory is searched for the optional file AvPicFaceXmpTagger.ini which holds some program options. This file will be written/updated when the program terminates and if the current directory is writable.
Note about exiftool: The program comes with exiftool included in the executable. So you don't need to download exiftool yourself. But when you download and unpack exiftool you'll find an executable named “exiftool(-k).exe”. You need then to rename this file to “exiftool.exe”.
Usage: AvPicFaceXmpTagger.exe [-c <inifile>] [-r|-R] [ <file> [<file> …]]
| Option | Description |
|---|---|
| -c <inifile> | Load the specified options file <inifile> at startup. |
| -r | When scanning a directory for pic files, also scan all subdirectories too. |
| -R | Don't scan subdirectories. |
| <file> | One or more JPEG files. |
Choosing this menu item a directory selection dialog box will open. Choose a directory to be added to the Files/Directory selection list.
Choosing this menu item a file selection dialog box will open. Choose one or more JPEG file(s) to be added the Files/Directory selection list.
Terminate the program. If the current directory is writable, the .ini file holding the program option is written/updated prior exit.
Choosing this menu item the options dialog will open.
This program needs ExifTool for tagging the JPEG files. With this option you can specify where to find the exiftool executable.
* Search exiftool in search path * Use this path for exiftool:
As a default this program uses the standard path to the Picasa contacts file. But you can define another path if some reason this standard path is not correct.
This dialog box shows the change log for the different versions of this program.
Information about this program and copyright notice.
At the start of the program or whenever the path to the Picasa contacs file was changed in the program options dialog, the Piacasa contacs file is read in. If the contacts file cannot be found, read or if there any contacts defined, an error message is displayed here and tagging will not be possible at all.
In this tab the directories or files to be tagged are specified. Either use the File→Add Directory… or File→Add Files… menu items or just add files or directories by drag&drop from a explorer window.
The checkbox “Include subdirectories” controls if for directories also subdirectories are scanned for pictures with Picasa face definitions.
Just for your information and for curious people interested in statistics, the number of directories, files, persons and faces which belongs to the current selection is displayed.
The option “Create backup files” controls if exiftool is required to create a backup file of the JPEG picture before doing the tagging. As a default this option is turned off as it will create a lot of files in normal operation when turned on. So this option is here mainly for testing and evaluation purposes.
The “IPTC:Keyword tags” and the “XMP-DC:Subject tags” options controls what to do with IPTC Keyword and XMP Subject tags. Both tags are string list tags - they can hold an arbitrary number of strings as it's value.
The IPTC:Keyword is used by Picasa. The XMP-DC:Subject tag is used by Microsoft. Basically it's a good idea to add the people names as tags.
There are following possibilities:
The tagging process is started by pressing the START button. All directories given in the directory selection list are scanned for picasa.ini files and the corresponding picture files. All files in the selection list are searched in the picasa.ini file in order to find a face definition.
For each picture file with face definitions found the program creates/deletes the tags according to the options settings.
The tagging process can be cancelled by pressing the Cancel button.
The logging tab shows the exiftool command lines which were executed by the last tagging run. This output is mainly used for debugging and by curious people who wanna know how exiftool is called.
In this tab a simple list with all loaded Picasa contacts is shown. This list is currently just for information and of no real use.
This screenshot shows the main window of AvPicFaceXmpTagger.
In this list box you can define additional keywords to be added while tagging the pictures. The keywords are sorted alphabetically in the list. You can delete a keyword by selecting it and then pressing the <DEL> key. By pressing the “Clear” button, all list entries are deleted.
It is possible to save the keyword list to as text file (just a simple text file with one keyword on each line) with the “Save to file…” button. And of course a text file can be loaded into the keyword list withe the “Load from file…” button. When loading from file, all existing keywords are deleted.
This screenshot shows the options dialog for AvPicFaceXmpTagger.
This dialog box can be opened either by double-clicking on a filename in the file selection list or by selecting a filename and activating the “File Props…” button.
In the main view you can see the picture on the left side. On the right side some basic information fields are shown in the upper half. In the lower half you can see the defined faces and the defined keywords.
Whenever you move with your mouse on a defined face you'll see it's name below the face box.
Whenever you select a person, the picture will be dimmed and only the persons face remains bright. When no person is selected the whole picture will be shown normal again.
The XMP data is an XML structure. You can see here the complete XMP data structure as a tree. The XMP data can be exported to a text file by pressing the “Write XML file…” button.
You can see here all defined IPTC tags.
You can see here all defined EXIF tags.
You can see here all defined JPEG tags.
You can see here all defined tags (without the XMP data) as a tree. By pressing the “Write XML file…” button you can save the complete tag tree as an XML file. This XML file even contains the DTD.
| Show value of IPTC:Keywords and XMP:Subject tag | exiftool -s -iptc:keywords -xmp:subject file.jpg |
| Delete complete IPTC:Keywords tag | exiftool -iptc:keywords= file.jpg |
| Copy all IPTC:Keywords to XMP:Subject | exiftool "-xmp:subject<$iptc:keywords" file.jpg |
| Copy all XMP:Subject to IPTC:Keywords | exiftool "-iptc:keywords<$xmp:subject" file.jpg |
| Show all XMP tags | exiftool -b -s -xmp file.jpg |
| Copy EXIF GPS data to XMP GPS data | exiftool ”-xmp:all<gps:all” ”-xmp:gpslatitude<gpslatitude” ”-xmp:gpslongitude<gpslongitude” ”-gpsdatetime” file.jpg |
I don't wanna charge for this program. On the other side, creating and maintaining this program took and takes time and donations are welcome.
So if you use and like this software you might wanna consider a donation.