matiasdelellis / facerecognition

Nextcloud app that implement a basic facial recognition system.
GNU Affero General Public License v3.0
510 stars 46 forks source link

Manually Tagging Photos #168

Open GitsGitsGits opened 4 years ago

GitsGitsGits commented 4 years ago

Is there a current feature where you can tag photos manually?

Ex: Remove or add a person to an individual picture.

If i goto a picture's persons tab in files, the only option I see is to rename.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/82723724-manually-tagging-photos?utm_campaign=plugin&utm_content=tracker%2F74944432&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F74944432&utm_medium=issues&utm_source=github).
matiasdelellis commented 4 years ago

Hi @GitsGitsGits

Is there a current feature where you can tag photos manually?

Currently not, and I cannot ensure its implementation. Today we are focused on improving automatic grouping, and ensuring that it is reliable.

If you need to find faces that you think are important, you can try to expand the use of ram memory, which will improve the results.

In general, I have found missing faces, but then comparing with Google photos I concluded that it works similarly, and even I have better results. . and although it would be interesting, that's why It have a low priority..

stalker314314 commented 4 years ago

I would just to add to what Matias said - there are plans to do more manual stuff in future. If you look at functional spec ("User operations"), there could be possibility to work with faces (join clusters, add face to different cluster, remove some particular face from some particular cluster). You can think when adding face to differnet cluster, that image on which this face belongs to will also be "associated" with some person. But we don't have plans to manually do labeling (where you do rectangle on image manually and say "this is Joe"). Not sure if this is what you meant under "remove or add person to invidual picture"?

GitsGitsGits commented 4 years ago

@matiasdelellis No problem, thanks for your hard work. I actually had the same problem as issue #166 but was able to get it working after I followed your steps. Downgrading handbrake really helped. After that, it's been working great! Added benefit of needing to turn the ram allocation up for face rec, is that the files upload in webdav much quicker.

@stalker314314 That's pretty much what I was referring to along with the following; for instance if the program detects a face but allocations the face in a different group. Pictures A B C D are all one person, Pictures A B C are labeled Person 10. Picture D gets it's own group under Person 12. (Is there a way to switch Picture D from person 12 to person 10 without a full deletion and rescan?) Which I see you answered the question under clustering and the "North star" category on the link you provided covers the basic concept of it.

stalker314314 commented 4 years ago

What you described is under "layer 2". First layer (what are we doing now) is just get basic face detection and grouping by automation. Layer 2 are finer tweakings and operations under those groups. For example - merging two groups/persons (person 12 and person 10) would be that operation. Hiding group/person would be another one (because person is not relevant, or contain mixed faces...). Because of the nature of clustering algorithm we use (Chinese whispers), I think we need to keep these operations from user separated from clustering step (as clustering needs to be stable, to always give same groups as output). So, after clustering is done, we need to apply those additional directions we get from users (merge 10 and 12...). I think this means we need new DB table to represent these actions.

Layer 3 would be even more tweaking and operation on individual faces. Action like "move face 123 from person 10 to person 12", "remove face 124 from clustering". I think these operation can be applied only after Layer 1 (clustering) and Layer 2 (person actions) are applied, hence => new database tables.

I would say we are now focused on Layer 1. What you are describing is mostly Layer 2 (I think). We don't have (at least me:) any plans to attack Layer 2 at this point in time - getting it on app store is first priority. However, I would even think that this might not be that hard, if you want to try it out yourself (we can give some guidance along the way). Hope this helps.

GitsGitsGits commented 4 years ago

@stalker314314 Awesome, thanks for the reply. Pretty much what I figured, good call on the app store priority.

At this time I'm quite new into basic coding but once I learn more, I'd love to help contribute.

KptnKMan commented 2 years ago

I see this issue has been open ~1.5 years, since October 2019, and there seems to be no progress on it. I'd like to at me 2 cents to the mix here if it might mean anything to anyone.

My particular use case is that I'm building a family photo portal/website for sharing and tagging photos of and for my family, and I've been spending some months looking at different solutions to do this, one of them being this "FaceRecognition" implementation within NextCloud.

I've already mentioned in the issue #555 how much I like this project and how impressed I am by it, so I'll get to the observation that I've noticed. So far I've dived into more than a dozen separate solutions including many popular solutions such as Photoprism, Photonix, Damselfly, and this NexCloud FaceRecognition to name a few.. and I've noticed something very critically missing from ALL SELF-HOSTED SOLUTION in this space right now: MANUAL TAGGING, and the ability to add/remove faces.

I'm not sure how, but every solution that I've tested lacks the ability to add and remove faces from the library, only some have ability to auto-detect based on an algorithm or cloud API. It seems to me as a very odd omission, as I think this is one of the key factors that led to the succcess of facebook.com (Ie: the abilty to "tag others" in photos), and this seems to be something that is sorely missing. I can't speak for anyone else, but I THINK a lot of people (including myself) would happily go with a solution because I can spend hours tagging faces in photos and building up that library of metadata.

Aside from the wider appeal, it is also something that I personally looking for, as I don't mind tagging my own photos and assisting the face detection algorithm used within the application/platform. This seems to me as something very crucial to success, and especially as a lead over other solutions...

Because (at this time) no other self-hosted solution provides this functionality.

remz1337 commented 7 months ago

I second this request. It think its much easier to manually regroup the few duplicate clusters than to tweak the clustering algorithm to get perfect clusters

HerbertHorst commented 1 month ago

Also this would be very nice for when only the side profile or backhead of a friend is on the photo. It's understandable/correct that these are not automatically tagged because there is not much face to find. But it would be nice to manually tag that these people are in the picture.