nextcloud / recognize

👁 👂 Smart media tagging for Nextcloud: recognizes faces, objects, landscapes, music genres
https://apps.nextcloud.com/apps/recognize
GNU Affero General Public License v3.0
532 stars 42 forks source link

Ability to create a new person in photos #603

Open racheljwood opened 1 year ago

racheljwood commented 1 year ago

Describe the feature you'd like to request

The software has recognised me but has also also included some else (PERSON Y) as being me. I want to mark the photos of PERSON Y and move them to a new person. I can't do this as PERSON Y has not been recognised on his own and I appear to be only able to move someone to en existing person.

Describe the solution you'd like

When you try and move the pictures to another person, as well as the list of people recognised it would be nice to have a "Create new person"

Describe alternatives you've considered

There isn't an obvious one

unnilennium commented 1 year ago

I have the opposite situation, it decided to add all photos of me in another member of familly with hundred of photo of both. Would be great to have a "split function", being the opposite of the existing merge with person.

phil-lipp commented 1 year ago

I second this. I have lots of clusters with a 50/50 Split for faces from two people.

With PR https://github.com/nextcloud/recognize/pull/753 from @pulsejet this could be possible. We have to see how the Memories or Photos implement the creation of new clusters.

marcelklehr commented 1 year ago

Would be great to have a "split function"

There is no split function because there's no way to do this automatically. If two people are in the same cluster, that's because the algorithm cannot tell them apart You can only select individual faces and assign them to a different cluster manually.

phil-lipp commented 1 year ago

There is no split function because there's no way to do this automatically. If two people are in the same cluster, that's because the algorithm cannot tell them apart You can only select individual faces and assign them to a different cluster manually.

I don't think an automatic splitting was implied. I could imagine it working this way:

  1. open a cluster
  2. see that there are 2 people within that cluster
  3. select all photos of person1 from the cluster
  4. click on the 3-dot-menu in the top right
  5. select the "move/split selected photos into new cluster"
  6. a new cluster is created and the selected photos are moved over

Would this work? And what is needed to achieve this?

marcelklehr commented 1 year ago

Would this work? And what is needed to achieve this?

This would work. The photos/memories apps would need to provide a UI for this. Recognize supports this as of today.

luxzg commented 1 year ago

Would this work? And what is needed to achieve this?

This would work. The photos/memories apps would need to provide a UI for this. Recognize supports this as of today.

Great news! Btw, can we manually trigger this somehow/somewhere, while we wait for implementation in the other apps?

luxzg commented 1 year ago

Would this work? And what is needed to achieve this?

This would work. The photos/memories apps would need to provide a UI for this. Recognize supports this as of today.

Sorry to bother, but seems that memories is waiting for this merged code to be released so they can provide the UI. Please see here:

https://github.com/pulsejet/memories/issues/117#issuecomment-1518058736

Can we expect release with this functionality soon?

Thank you!

marcelklehr commented 1 year ago

Can we expect release with this functionality soon?

Yes! Sorry, I've been occupied with other stuff :)

luxzg commented 1 year ago

I see this is still open, so just letting you know it's working in Memories and can be closed. Thanks everyone for helping with this functionality!

unnilennium commented 1 year ago

works for me on a NC 25 updated and current last available memories. select a picture then go to associate to another person you can see a + over a blank picture to add new person. add a name , et voila !

freeDom- commented 1 year ago

I see this is still open, so just letting you know it's working in Memories and can be closed. Thanks everyone for helping with this functionality!

This feature might be already avaialble in the Memories app, but unfortunately it is still missing in the Nextclopud Photos App.

marcelklehr commented 1 year ago

it is still missing in the Nextclopud Photos App.

Yes, it still needs to be implemented there, that's why this is still open :)

nekr0z commented 1 year ago

I'm not sure whether it's a part of this issue, or should be considered another issue altogether, but there's one usecase that's missing even from Memories.

Say you have a photo from a family dinner. Recognize thinks there's your face on the photo, but actually...

marcelklehr commented 1 year ago

Thanks @nekr0z for chiming in with your feedback :blue_heart:

Do you, in the last case, want to have a person without a name? Or do you want to remove the face without declaring it to be a non-face? Technically, it doesn't matter whether it's an actual face or not, you can simply remove a face without any repercussions. If you want to create a new person without a name, that's a bit of an edge case, but not covered indeed :/

nekr0z commented 1 year ago

Do you, in the last case, want to have a person without a name?

Yes, a person without a name seems to be what this case needs.

If your photo library is big, you'll end up having a lot of people without names, so they need to be first-class citizens :)

racheljwood commented 1 year ago

Hi,

I agree. I have many photos of a friend of a friend of an ex that is a person but i don't her name. I would maybe like to put her in a bucket until I remember her name. If the name comes i can create a new bucket, or pass the photo on to a hit man/divorce lawyer.

Many thanks

On 2 Sept 2023, 12:33, at 12:33, Evgeny Kuznetsov @.***> wrote:

Do you, in the last case, want to have a person without a name?

Yes, a person without a name seems to be what this case needs.

If your photo library is big, you'll end up having a lot of people without names, so they need to be first-class citizens :)

-- Reply to this email directly or view it on GitHub: https://github.com/nextcloud/recognize/issues/603#issuecomment-1703792779 You are receiving this because you authored the thread.

Message ID: @.***>

racheljwood commented 1 year ago

Personally, i put all my known unknown into one "person" called unknown.

Later i can shift through them and work out who they are or remove them from "unknown"

Maybe i work differently :-)

On 2 Sept 2023, 12:33, at 12:33, Evgeny Kuznetsov @.***> wrote:

Do you, in the last case, want to have a person without a name?

Yes, a person without a name seems to be what this case needs.

If your photo library is big, you'll end up having a lot of people without names, so they need to be first-class citizens :)

-- Reply to this email directly or view it on GitHub: https://github.com/nextcloud/recognize/issues/603#issuecomment-1703792779 You are receiving this because you authored the thread.

Message ID: @.***>

freeDom- commented 1 year ago

Personally, i put all my known unknown into one "person" called unknown. Later i can shift through them and work out who they are or remove them from "unknown" Maybe i work differently :-) On 2 Sept 2023, 12:33, at 12:33, Evgeny Kuznetsov @.> wrote: > Do you, in the last case, want to have a person without a name? Yes, a person without a name seems to be what this case needs. If your photo library is big, you'll end up having a lot of people without names, so they need to be first-class citizens :) -- Reply to this email directly or view it on GitHub: #603 (comment) You are receiving this because you authored the thread. Message ID: @.>

I think this is the way to go and it does not need another feature for this...

freeDom- commented 1 year ago

For everyone who is still using the Nextcloud Photos App I can warmly recommend to switch to the Memories App, which is not even way faster, but also better structured, supports all Features of the Photos App and Recognize works so much better with it. I had lots of trouble before categorizing all People - since I switched I realize that these errors I was receiving all the time do not have anything to do with the Recognize API, but were thrown because of Bugs in the Photos App, where these features are jsut implemented very poorly.

nekr0z commented 1 year ago

Personally, i put all my known unknown into one "person" called unknown.

I think this is the way to go and it does not need another feature for this...

Of course this isn't the way to go, for at least two reasons:

  1. You deliberately create a cluster that has faces that are genuinely different, effectively forcing the model to "believe" these faces belong to the same person. With enough different faces in that cluster, it will reduce the quality of further recognition.
  2. When you finally decide to "move" the person out of that cluster, you have to manually figure out which of the faces belong to this person. This is extra work that has a good chance of having been done by Recognize before you dumped this person into the cluster in the first place, but you deliberately removed the results of that work.
freeDom- commented 1 year ago

Personally, i put all my known unknown into one "person" called unknown.

I think this is the way to go and it does not need another feature for this...

Of course this isn't the way to go, for at least two reasons:

1. You deliberately create a cluster that has faces that are genuinely different, effectively forcing the model to "believe" these faces belong to the same person. With enough different faces in that cluster, it will reduce the quality of further recognition.

2. When you finally decide to "move" the person out of that cluster, you have to manually figure out which of the faces belong to this person. This is extra work that has a good chance of having been done by Recognize before you dumped this person into the cluster in the first place, but you deliberately removed the results of that work.
  1. Is not really a point, because a cluster with a lot of different faces will not be more likely to match a picture of you than the cluster which contains only pictures of you. The percentage will always be higher and thus it will be assigned to you and not to that mixed cluster. Maybe a person of which you only have few images will be put into that cluster, but chances are high that it should belong to that exact cluster anyways.
  2. If you want to have them seperated again then just delete the cluster and trigger a rescan.

But tbh I would consider this a niche problem. Yes, there could be another solution for this, but is it worth the effort? Probably not, because there are workarounds. Nevertheless I think you should open a seperate issue for this abd describe the desired solution. Then someone else can decide whether to implement it or not.

Personally I do not care about foreign people in my collection anyways. I just delete those people. If I want ro reconsider I can trigger a rescan at a later time..

ShapeShifter499 commented 9 months ago

Is this feature implemented on the Android Memories app? I might have to open a new issue, but I can't seem to create a "new person" entry. The plus sign to create a new person doesn't do anything for me.

freeDom- commented 9 months ago

Is this feature implemented on the Android Memories app? I might have to open a new issue, but I can't seem to create a "new person" entry. The plus sign to create a new person doesn't do anything for me.

I was talking about the nextcloud memories app: https://apps.nextcloud.com/apps/memories

I dont know of any android app and how it works.

pulsejet commented 9 months ago

Is this feature implemented on the Android Memories app? I might have to open a new issue, but I can't seem to create a "new person" entry. The plus sign to create a new person doesn't do anything for me.

Bug. https://github.com/pulsejet/memories/issues/934