08/10/2023

Reconnaissance faciale dans Nextcloud

L’application Face Recognition de Nextcloud a besoin de l’extension PHP pdlib, elle-même basée sur la bibliothèque dlib. Les deux se compilent à la main.

Avant de commencer : un snapshot

La compilation installe pas mal de choses sur le serveur. Mon Nextcloud tourne dans un conteneur LXC sur un volume LVM, je fais donc un snapshot avant de commencer :

lvcreate -s -L 160G -n nextcloud_backup /dev/lxc/nextcloud

En cas de problème, on revient à l’état d’avant avec :

lvconvert --mergesnapshot /dev/lxc/nextcloud_backup

Dépendances

apt update && apt upgrade
apt install wget sudo git make cmake gcc g++

Compiler dlib

cd /root
git clone https://github.com/davisking/dlib.git
cd dlib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

Compiler l’extension PHP pdlib

cd /root
git clone https://github.com/goodspb/pdlib.git
cd pdlib
phpize
./configure --enable-debug
make
sudo make install

Activez l’extension puis redémarrez PHP-FPM :

echo 'extension="pdlib.so"' > /etc/php/8.2/mods-available/pdlib.ini
phpenmod pdlib
systemctl restart php8.2-fpm

Activer la reconnaissance faciale

Installez l’application Face Recognition depuis l’interface de Nextcloud, puis téléchargez le modèle et lancez l’analyse des photos :

sudo -u www-data php occ face:setup --model 1
sudo -u www-data php occ face:background_job