skrashevich / double-take

Unified UI and API for processing and training images for facial recognition.
https://hub.docker.com/r/skrashevich/double-take
MIT License
527 stars 25 forks source link

[FEAT] Deepface #50

Closed townsmcp closed 1 year ago

townsmcp commented 1 year ago

Is your feature request related to a problem? Please describe. Any chance of integrating Deepface as a detector?

Requests on Jakowenko for the integration are: https://github.com/jakowenko/double-take/issues/196 https://github.com/jakowenko/double-take/issues/305

skrashevich commented 1 year ago

I have recently pondered upon this matter. Unfortunately, DeepFace operates on a different logic: it lacks the ability to learn and memorize faces as such, essentially it only has the capacity to assess the degree of similarity between two given photos. Therefore, maintaining a database of trained faces should be implemented on the side of double-take; i'm unsure if this aligns with the objective of this software. You can correct me if i'm mistaken in any way.

Maybe, you know of any software that implements an API over DeepFace, enabling it to operate on a classic train&match principle? In that case, integrating this detector would not looks as a problem.

townsmcp commented 1 year ago

Is anything here of any use? https://viso.ai/computer-vision/deepface/ Or here: https://towardsdatascience.com/using-deepface-for-face-recognition-5f8d1e43f2a6

skrashevich commented 1 year ago

Is anything here of any use?

Unfortunately, you have just confirmed what I said before. DeepFace is a framework, not a recognition service. I will think about opportunities for its implementation in this project.

townsmcp commented 1 year ago

Ah ok. Sorry, I didnt realise. Im about 2 weeks into all this stuff and still trying to learn - I have a Nest Hello at the moment as doorbell and yesterday I got a Unifi G4 doorbell but want to get all this working properly before I install the G4. For example, I have no idea what the differences on Double Take dashboard are between 'MQTT', 'Snapshot' and 'Latest' are meant to mean for an image; no idea which one is supposed to be the better image type and then which one('s) to try to stop coming into Double Take

skrashevich commented 1 year ago

'MQTT', 'Snapshot' and 'Latest'

"Snapshot" -- frame from frigate, saved then frigate detect an event (motion, for example) "Latest" -- frame from camera, on the moment then double-take trying to make an recognition (Usually, the difference between them is 1-2 seconds) "MQTT" -- The frame that the frigate transmitted with the event by MQTT protocol. It's usually equivalent to "snapshot", but depends on frigate settings

The current crazy zoo of methods is due to historical reasons. If u use double-take in conjunction with frigate, the "snapshot" method will be enough