What, When, Where, Who, Why

Started by cthomas, November 25, 2016, 10:05:27 PM

Previous topic - Next topic

Stefanjan

Quote from: JohnZeman on June 18, 2021, 10:03:52 PM
Quote from: Stefanjan on June 18, 2021, 07:21:26 PM
I'd be really interested in viewing these attachments, but when I download them they are not valid files. I guess that's because this is an old post. Could you or someone else post these examples.

Stefanjan I'm the one who originally posted what you're looking for but like Mario said that was years ago.  And also like Mario said things are different now, I'm still generally using the basic 5 W concept however now I'm no longer using 5 regular categories to do this such as...

Who (People)
What (Things like animals, nature, machines, objects, etc.)
When (Chronological dates of the photos)
Where (Locations of the photos)
Why (Events such as birthdays, anniversaries, holidays, celebrations, etc.)

Now instead of using regular categories I'm using an expanded combination of hierarchal keywords (@Keyword Categories) and data-driven categories which gives me the same results.

The Who, What, Why are now hierarchal keywords (@Keyword Categories).

Since every image was taken on a specific date and time, and since every image was taken in some location, the When and Where are now data-driven categories, IMatch generates them from the metadata in my images.

For me the primary advantage of using hierarchal keywords and data-driven categories is that information is stored within the metadata of each image.  So if for some reason I were to lose my IMatch database it would mostly be recreated when I created a new IMatch database and imported my photos to it.

Screenshot of my @Keyword and data-driven categories attached.
John, hope you don't mind me asking you a couple of questions. I worked out how to create a data driven category using gps data but I'm struggling to understand how to create the other data driven categories. How for example did you create the 2010-2019 category? Also is your people category data driven from the face recognition (how do you do that?) . I have read the help several times but could do with a helping clue. Thanks Stefan

Mario

Quoteyour people category data driven from the face recognition (how do you do that?)

Easy.
Create a data-driven category based on one of the Persons. Variables, usually {File.Persons.FullName} or similar.

Note that there is rarely a need for person-based data-driven categories, unless you want to use formulas to combine persons with other categories. The People View usually offers all you need.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

JohnZeman

Quote from: Stefanjan on June 21, 2021, 08:06:14 PM
John, hope you don't mind me asking you a couple of questions. I worked out how to create a data driven category using gps data but I'm struggling to understand how to create the other data driven categories. How for example did you create the 2010-2019 category? Also is your people category data driven from the face recognition (how do you do that?) . I have read the help several times but could do with a helping clue. Thanks Stefan

No problem Stefanjan ask all the questions you want.

I've attached a zipfile of screenshots of my chronology data-driven category configuration.

The following explains what I'm doing in each of the 6 levels of that configuration.

In Level 1 configuration The Category Filter refers to a formula category that tells IMatch to only process files in the subfolders of D:\Mine\Photos\Years\.  The results are grouped by century (1800-1999 and 2000-2099).

Level 2 groups the photos returned by Level 1 by decades.

Level 3 groups the photos returned by Level 2 by year.

Level 4 groups the photos returned by Level 3 by Headline.

Level 5 groups the photos returned by Level 4 by month number (01-12) and long month name.

Level 6 groups the photos returned by Level 5 by short month name and day number.

In regards to the names of people I do not use a data-driven category for that, nor do I use face recognition.  95% of photos I take do not have people in so when I do need to categorize someone I use a hierarchal keyword (@Keyword Category) to record that name.

Stefanjan

Quote from: Mario on June 21, 2021, 08:37:17 PM
Quoteyour people category data driven from the face recognition (how do you do that?)

Easy.
Create a data-driven category based on one of the Persons. Variables, usually {File.Persons.FullName} or similar.

Note that there is rarely a need for person-based data-driven categories, unless you want to use formulas to combine persons with other categories. The People View usually offers all you need.
I've read through https://www.photools.com/help/imatch/#cat_formulas.htm but cannot work out to create a category using {File.Persons.FullName}
I just get an error, see screen attached

Stefanjan

Quote from: JohnZeman on June 21, 2021, 08:57:02 PM
Quote from: Stefanjan on June 21, 2021, 08:06:14 PM
John, hope you don't mind me asking you a couple of questions. I worked out how to create a data driven category using gps data but I'm struggling to understand how to create the other data driven categories. How for example did you create the 2010-2019 category? Also is your people category data driven from the face recognition (how do you do that?) . I have read the help several times but could do with a helping clue. Thanks Stefan

No problem Stefanjan ask all the questions you want.

I've attached a zipfile of screenshots of my chronology data-driven category configuration.

The following explains what I'm doing in each of the 6 levels of that configuration.

In Level 1 configuration The Category Filter refers to a formula category that tells IMatch to only process files in the subfolders of D:\Mine\Photos\Years\.  The results are grouped by century (1800-1999 and 2000-2099).

Level 2 groups the photos returned by Level 1 by decades.

Level 3 groups the photos returned by Level 2 by year.

Level 4 groups the photos returned by Level 3 by Headline.

Level 5 groups the photos returned by Level 4 by month number (01-12) and long month name.

Level 6 groups the photos returned by Level 5 by short month name and day number.

In regards to the names of people I do not use a data-driven category for that, nor do I use face recognition.  95% of photos I take do not have people in so when I do need to categorize someone I use a hierarchal keyword (@Keyword Category) to record that name.
Thanks John, that's a great help. So easy when you know how.

JohnZeman

#55
Quote from: Stefanjan on June 21, 2021, 11:30:58 PM
Quote from: Mario on June 21, 2021, 08:37:17 PM
Quoteyour people category data driven from the face recognition (how do you do that?)

Easy.
Create a data-driven category based on one of the Persons. Variables, usually {File.Persons.FullName} or similar.

Note that there is rarely a need for person-based data-driven categories, unless you want to use formulas to combine persons with other categories. The People View usually offers all you need.
I've read through https://www.photools.com/help/imatch/#cat_formulas.htm but cannot work out to create a category using {File.Persons.FullName}
I just get an error, see screen attached

If you're using a category filter to restrict the files sent to your data-driven category then you have to put quotes (") around your category formula items so they're like this.

"{File.Persons.FullName}"
(Edit: I don't think you can use variables in a category filter, but you can in data-driven categories.)

Otherwise in the data-driven formula configuration just base the category on a variable like this (see screenshot).


Stefanjan

Quote
Otherwise in the data-driven formula configuration just base the category on a variable like this (see screenshot).
Thanks John, I tried that but in the preview I get a list of the images with all the people in the image. See screenshot attached. This makes sense but is not what I was wanting. I was hoping for a list of names with the photos displayed which of course I see now is not the way this would work. When I save that category no files are returned, not sure why but probably irrelevant.

Reason for trying to construct a WHO category was to be able to Group images. And to set up categories using WHO, WHAT, WHEN, WHERE, WHY.

Maybe I abandon the idea of using WHO and stick with the people tab which I do like. The alternative is to create a keyword hierarchy for people which would have the advantage where I have people in multiple groups but I'll probably continue with People till I understand imatch a lot better.


Mario

Creating a WHO category based on a persons variable is easy. You just need to be careful and read what's in the corresponding help topic:

QuoteAll File.Persons.* variables may return zero to many values. If a file has no face data or none of the faces has a person assigned, the variables return nothing. If a file has two or more persons, the variables return the data as a list, separated with a semicolon: Peter;Paul;Mary. You can use the index function to access data of specific persons in that list.

See: Repeatable Values

This means if there is more than one person in the image, the variable returns multiple values, separated by ;
You need to consider that when setting up your data-driven category. I used this successfully, for example:

-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Stefanjan

Quote from: Mario on June 22, 2021, 10:41:44 AM
Creating a WHO category based on a persons variable is easy. You just need to be careful and read what's in the corresponding help topic:

QuoteAll File.Persons.* variables may return zero to many values. If a file has no face data or none of the faces has a person assigned, the variables return nothing. If a file has two or more persons, the variables return the data as a list, separated with a semicolon: Peter;Paul;Mary. You can use the index function to access data of specific persons in that list.

See: Repeatable Values

This means if there is more than one person in the image, the variable returns multiple values, separated by ;
You need to consider that when setting up your data-driven category. I used this successfully, for example:


Thanks Mario, that worked for a single level. But how about if I want to have multiple levels:

Level 1 {File.Persons.Group}
Level 2 {File.Persons.Label}

I need somehow to only have people appearing at level 2 if they are in the level 1 group. Currently I have everyone in the photo appearing in level 2 if one of the people is in level 1 group.

Mario

Please don't quote so much. The post you've quoted is just the post above yours. And especially don't quote huge images.

I see no problem adding a group level and below that a person level. Works well.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Stefanjan

Quote
Please don't quote so much. The post you've quoted is just the post above yours. And especially don't quote huge images.
Sorry, noted for future
Quote
I see no problem adding a group level and below that a person level. Works well.

But how do I filter Level 2 {File.Persons.Label} so I only get people who have Level 1 {File.Persons.Group} in their profile.
At the moment I get everyone who is in a photo with one person in the level 1 group.

For example if I have two groups Family and Friends. If I have a photo with Jim (Family) John (Friend) then I get:

Family
Jim
John
Friend
Jim
John

When I really want:

Family
Jim
Friend
John

Mario

This is how it works.
The category creates a list of unique values (person group) on the first level.
Below that, for each file, it checks each file belonging to that group and lists the persons in that file. The variable File.Persons.Label returns all persons in the file, it does not know that you only want persons from a specific group.
If you really need to create such a structure, I recommend you do a bit of research into variable functions, consider mixing the group variable and label variable on level 2, do some filtering or maybe substr or whatnot.
This can get complicated and time-consuming quickly, and I cannot do this for you.

I only ever work with persons in the People View, and telling what is what by the group color or by a quick filter for family or friends is super-easy and does not need elaborate data-driven category hierarchies.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Stefanjan

Quote from: Mario on June 22, 2021, 02:24:51 PM
If you really need to create such a structure, I recommend you do a bit of research into variable functions, consider mixing the group variable and label variable on level 2, do some filtering or maybe substr or whatnot.
This can get complicated and time-consuming quickly, and I cannot do this for you.
Thanks for confirming that this is complicated. I will persevere with the People tab and also experiment with using the person editor to assign person to keywords and or categories.