Photo Categories embeded in image file

Started by blackbear, November 19, 2010, 09:27:42 PM

Previous topic - Next topic

blackbear

I am looking into the options for tagging my photo collection (1000's of photos).  I would like embed categories (people, event, location, etc) with corresponding tags in each image file.  I know of some programs (using exiftool as a backend) that support something close to this; however, they don't store the categories in the image instead they use an index file which link the tags to the categories.  I am wondering if there are any standards that currently support what I am after.  I am also wondering if EXIF, IPTC or XMP have support for this.  I know I can write my own software to support this; however, I would prefer to use a standard if one exists.

I have already tried: exiftool -People="John Smith, James Smith, Anna Jones" image.jpg and that works.

Any help / thoughts would be appreciated.  Thanks!

Phil Harvey

For the categories you mentioned (people, event, location), the XMP IPTCCore and IPTCExt schemas seem to fit well.  You should look at these tags the newer IPTC specification (referenced from the ExifTool XMP tag name documentation).  If possible, it is always best to go with an accepted standard, and IPTC4XMP is a good one to use.

Also, it may help to read FAQ number 17 to become familiar with writing list-type tags.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blackbear

Thanks for the pointers.  Do you know if there are any linux GUIs that support them?

Phil Harvey

Quote from: blackbear on November 20, 2010, 07:50:52 PM
Do you know if there are any linux GUIs that support them?

I'm not sure, but I think I heard that ImageMagick now has XMP support.  I don't know any other Linux GUI's.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Storhaug

Quote from: blackbear on November 19, 2010, 09:27:42 PM
I have already tried: exiftool -People="John Smith, James Smith, Anna Jones" image.jpg and that works.

I also started to document the names of the people in photos. I am using:

exiftool -XMP-iptcExt:PersonInImage="John Smith" -XMP-iptcExt:PersonInImage="James Smith" -XMP-iptcExt:PersonInImage="Anna Jones" image.jpg

I have no idea, whether -XMP-iptcExt:PersonInImage is a better choice than -People or not.

Any opinions are welcome.

Phil Harvey

Quote from: Storhaug on November 23, 2010, 04:53:42 PM
I have no idea, whether -XMP-iptcExt:PersonInImage is a better choice than -People or not.

The People tag is a proprietary iView Media Pro tag.  The PersonInImage tag is part of the new IPTC specification.  Definitely use the latter.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blackbear

Is the ModelAge tag meant to correspond with the PersonInImage tag?  For instance: if I add Bob, Larry and Tony to the PersonInImage and then add 3, 7, 2 to the ModelAge will that suggest that Bob is 3, Larry is 7 and Tony is 2?

Thank you for the helpful responses thus far.

Phil Harvey

The IPTC4XMP specification states:

"Age of the human model(s) at the time this image was taken in a model released image. The user should be aware of any legal implications of providing ages for young models. Ages below 18 years should not be included."

Don't shoot me, I'm just the messenger.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blackbear

So if the PersonInImage are Tony, Tom and Tim where Tony is 35, Tom is 8 and Tim is 29, How do I exclude Tom while appropriately setting the ages for Tony and Tim using the ModelAge tag?

BogdanH

Hi,

I assume, that this (as most of IPTCext) values are ment for agencies. And if so, then IPTC should be more precise when describing (recommending) usage of those tags.
In my opinion, tag ModelAge (and other "Model" tags) should be "sub-tag" of PersonInImage. In this case, ModelAge, ModelReleaseID, etc., would belong only to single (root) PersonInImage.

As it is now, one can carefully specify i.e.:
PersonInImage: Tony,Tom,Tim
and corresponding ages:
ModelAge:35,0,29 -where zero means "under 18"(?)

The problem is, that editing those tags can ruin sequence -actually, nobody (except writer) knows which data belongs to each PersonInImage. For now, I'll pass on further comments about IPTC specs  :)

Greetings,
Bogdan