Open source face recognition for your family photos

Do you like face recognition for your family pictures? Me, too. But I figured out, that I spend too much time with the administration, especially with migrating it from laptop to laptop. And since I have multiple computers, mixed Microsoft, Linux and Mac, I got tired of the silos. Initially, I used MacOS Aperture then Photos and and and …

Every time I have tagged the pictures properly, I got a new computer, my wife couldn’t access the photos on her laptop and was always complaining about that. So I decided to move all photos to my nextcloud server. I run Nextcloud on a Intel Nuc at home, using Linux (Openmediavault) and heavily Docker. I can access it from anywhere in the world, thanks to Duckdns.

Since no nextcloud docker image had the requirements installed I needed for the face recognition app in nextcloud, I decided to make a docker image by myself and published it on Docker Hub. Feel free to use it. I will maintain it try to enhance it step by step

https://hub.docker.com/r/iamklaus/nextcloud

17 comments on “Open source face recognition for your family photos”

  1. Antonio says:

    Hi IamKlaus,

    I am using your docker image with the face recognition since one week now and seems all good. Thank You for your hard work on getting this done. I still need to find the best settings but I am sure playing around with it I will be able to find one that works.

    However, I am just running into an issue and I wanted to double check with you. The NC UI is telling me that there is a new version 20.0.4 available. I am currently on version 20.0.3.

    So, when I try to update it through command line using php occ upgrade it says `Nextcloud is already latest version` which clearly I am not. I have also tried from the UI through the Open Updater button but I am getting a 404 Not Found error. So, at this moment in time I am not sure how can I update my NC.

    Would you have any idea? I would much appreciate your help.

    Also, are you planning to maintain the docker image in the future?

    Thank you again.

    Regards,

    Antonio

    1. iamklaus says:

      Hello Antonio,

      I will look into this. I can reproduce the update issue. Regards general updates: Yes, I will maintain this. Version 20.0.4 will be available as soon as the underlying nextcloud/apache:latest image is updated on 20.0.4. I checked this afternoon and it still was on 20.0.3.

      Cheers,
      Klaus

  2. iamklaus says:

    Hello Antonio,

    it’s fixed. Please remove the ENV variable “NEXTCLOUD_UPDATE” from your docker instance and pull the image again. Then you should see the updated version.

    Cheers,
    Klaus

    1. Antonio says:

      Hi Klaus,

      Thank you for coming back on this. I have a docker-compose with your NC image and I guess that this env variable is defined in your Dockerfile. Should I stop and pull all the images from the compose file and it will fix the problem? If I remove the env variable from the docker instance, I have a feeling that it will work but then, should I pull down and up the compose the env variable will be back. Or am I missing something?

      Cheers.

      Antonio

      1. iamklaus says:

        Hi Antonio,

        I have remove the ENV variable from my Dockerfile. So, removing it on your end and pulling the image again should update your nextcloud instance.

        Cheers,
        Klaus

      2. Antonio Viola says:

        Hi Klaus,

        I did follow the steps you mentioned but there is something misleading. If I go inside my docker instance and print the env variables from the command line I see
        NEXTCLOUD_VERSION=20.0.4

        However, when I log into the NC Web UI Admin -> Settings -> Overview I get notification saying a new version of NC is available and have the below info:
        Version
        Nextcloud 20.0.3
        A new version is available: Nextcloud 20.0.4

        Is there any reason why the version is not updated from the UI and as such not in sync causing the notification always to pop-up?

        Thank you in advance.

        Regards,

        Antonio

  3. Alex says:

    Tell me, is there an instruction on how to perform the same steps as you in order to raise your docker image nextcloud?
    At the same time, so that it is updated from the official repository and patched with my patches?

    1. iamklaus says:

      Hey there,

      I have analysed the underlaying nextcloud:apache dockerfile. There I have learn’t that you need to set NEXTCLOUD_UPDATE=1. Can you please try that?

      Regards,
      Klaus

  4. Feth says:

    Hi Klaus,

    Fantastic! Thank you very much for sharing the docker image. Do you know if it’s feasible to have an `arm64` docker image ? I’d like to deploy nextcloud with face recognition a raspi 4B (8GB RAM). I’m new at docker…I’d be happy to help with it as a small hobby project.

    Cheers,


    Feth

    1. Keeth says:

      I have been looking for a solution for that setup as well!

      1. Feth says:

        Hi Klaus,

        I managed to build a working Docker for my Raspi.

        However, I had hard time to properly configure it, that is selecting the FaceReco models to use…and various other configs. See `occ` commands here https://github.com/matiasdelellis/facerecognition.

        Do you have a recommendation on how to do it ?
        Moreover, I’d like to store the data on a different location, typically to a drive connected via USB 3. I’m having the Argon One M.2 setting (https://www.jeffgeerling.com/blog/2021/argon-one-m2-raspberry-pi-ssd-case-review).
        Do I have to change that in the Docker file or in CLI when starting the docker image ? Sorry if this is a basic `docker question`.

        Anyways, I went back to a basic manual installation to test that every thing works (pictures loaded from family smartphones). It worked pretty well, and the models were able to execute on a collection of over 1000 images in just a couple of hours on the Raspi.

        I went for MariaDB, and it was so satisfying to see all the FaceReco data written in the tables (including the descriptors) in the DB. Do you know if there’s documentation for the DB model. I would like to query specific photos, for example photos where the kids (son & daughter) are in…etc

        Happy holidays and cheers,


        Feth

  5. Oleg says:

    Hi Klaus! First of all thanks for your work, it’s awesome when someone shares his work!
    I have a question about migrating from official Nextcloud docker to your image. Can you please describe how that can be done without losing all the settings, users and etc? Of course it’s best to start from fresh, but it’s just too much things I’ve set up already, but I really need face recognition, and the tutorial to add it is just too long and quite hard for me to follow and understand. Thanks a bunch!

    1. iamklaus says:

      Hi Oleg,
      it is super easy. Which version are you using from nextcloud? FPM or apache? And: Are you using portainer to manage your docker instances?
      Regards,
      Klaus

      1. Sascha says:

        Hi Klaus,
        I’m using nextcloud with portainer on my OMV NAS. All is working fine.
        I use the Apache Image behind my Ngynx Proxy Manager. But when i try to use your Image, it doesnt work with my settings.
        Any tip?

      2. iamklaus says:

        Not really, to be honest.

        So, in general the Apache Image works in your local network, right?

        But it does not work behind your Nginx Reverse proxy? Did you check all the log files to get an idea where the problem might be?

  6. Lertyod says:

    Hello

    I’m new for portainer/docker. I have install as per instructions on https://hub.docker.com/_/nextcloud with Base version – apache and change to use this image (iamklaus/nextcloud). but cannot run and found error

    exec /entrypoint.sh: exec format error

    i don’t know how to fix this error, Could you help me to fix it?

    Raspberry Pi4
    OS: raspbian 64 bit

    Thanks,

    1. iamklaus says:

      Unfortunately this is an x64 container. I do not support ARM architectures, which includes Raspberry PI. I am also wondering if an RPI is capable to handle the AI face detection, that takes a lot of CPU/GPU power. A jetson nano would probably be the better solution for something like that.

Leave a Reply

Your email address will not be published.