Nextcloud 27 Recognize App installieren
Heute schauen wir uns an, wie sich die Gesichts- und Objekterkennung über die Recognize App auf Nextcloud 27 installieren und einrichten lässt. Die Gesichter und Objekte Erkennung ermöglicht eine automatische Kategorisierung nach Gesichtern, Wahrzeichnen, Orten und ebenso Szenen.
Die Nextcloud Recognize App ist eine Erweiterung für die Nextcloud-Plattform, die Bilderkennungsfunktionen bietet. Mit dieser App könnt Ihr Eure Fotos und Bilder automatisch kategorisieren lassen, basierend auf den darauf abgebildeten Objekten, Personen oder Szenen. Das Hauptziel dieser App ist es, die Bildersuche und -organisation in Nextcloud zu verbessern. Hier sind einige Hauptmerkmale und Informationen zur Recognize App:
- Deep Learning und Bilderkennung: Die Recognize App verwendet Machine Learning-Modelle, um den Inhalt von Bildern zu erkennen. Die verwendeten Modelle können verschiedene Objekte, Tiere, Landschaften und sogar Gesichter erkennen.
- Integration mit Nextcloud: Einmal installiert und aktiviert, integriert sich die Recognize App nahtlos in die Nextcloud-Benutzeroberfläche. Ihr könnz dann Schlagwörter sehen, die automatisch zu ihren Bildern hinzugefügt wurden, basierend auf dem, was auf den Bildern erkannt wurde.
- Datenschutz: Ein Hauptvorteil der Verwendung von Nextcloud und Erweiterungen wie Recognize ist der Datenschutz. Im Gegensatz zu vielen Online-Diensten, die Bilderkennungsfunktionen anbieten, werden die Daten und Bilder in Nextcloud lokal auf Eurem Server gespeichert und verarbeitet, ohne dass sie an Dritte weitergegeben werden.
- Anpassung: Die Erkennung lässt sich auf eigenen Bedürfnisse anpassen da vollständig OpenSource
- Anforderungen: Für die effektive Nutzung der Recognize App müssen bestimmte technische Voraussetzungen erfüllt sein, insbesondere hinsichtlich der Server-Ressourcen, da Bilderkennung und Deep Learning rechenintensiv sind.
- Zukünftige Entwicklungen: Wie bei vielen Open-Source-Projekten, kann die Funktionalität und Effizienz der Recognize App im Laufe der Zeit durch Beiträge aus der Community verbessert werden.
Vorausetzungen
Ihr benötigt Zugriff auf Eure Nextcloud via Kommandozeile. Ausserdem sollte der Server ausreichend dimensioniert sein, vor allem wenn Ihr tausende Fotos auf Eurer Nextcloud gespeichert hat. Meine persönliche Nextcloud mit 4 CPU Kernen und 6GB Arbeitsspeicher benötigte ungefähr 2 Tage um die Fotos meiner Partnerin mit ca 7000 Fotos zu kategorsieren.
Euere CPU Sollte den nativen TensorFlow-Betrieb unterstützen, anonsten wird in Software gerechnet was die Berechnungszeit praktisch vervierfacht. Falls Ihr Nextcloud Baremetal, also direkt auf einem Rechner installiert habt, und die CPU nicht ältern als 4 Jahre ist, ist das kein Problem. Habt Ihr Nextcloud auf einer virtuellen Maschine installiert, musst der Virtualisierungshost AES unterstützen. Auf Einer Virtualsierungssoftware wie zum Beispiel Proxmox setzt in den CPU-Einstellungen der virtuallen Maschine entweder auf x86-64-v2-AES oder Host. Habt Ihr Proxmox in einem LXC-Container laufen, kümmert sich der Kernel von Proxmox direkt um die Verarbeitung und deshalb gelten die Features der CPU die Ihr installiert habt.
Ihr solltet über aussreichend Arbeitspeicher verfügen. 4GB sind das absolute minimum.
Installation der App
Installiert Euch die App Recognize von Nextcloud Apps auf Eurem Server. Die App findet Ihr Ihr in den Apps unter Organisation:
Die App wird leider noch nicht funktionieren da die Trainingsmodelle noch installiert werden müssen, dazu müssen wir uns auf dem Server einloggen auf dem Nextcloud installiert ist. Stellt eine Verbindung per SSH her.
Wir müssen zuerst das passende Repository hinzufügen, öffnet dazu die Repoliste mit:
sudo nano /etc/apt/sources.list.d/20-pdlib.list
und fügt folgendes am Ende der Datei hinzu:
deb [signed-by=/usr/share/keyrings/delellis-archive-keyring.gpg arch=amd64] https://repo.delellis.com.ar jammy jammy
Danach laden wir uns den Schlüssel dafür herunter mit:
wget -O- https://repo.delellis.com.ar/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/delellis-archive-keyring.gpg
Die Grundvorausetzungen sind getätigt. Kommen wir zur Installation, wir updaten dazu erstmal alle Repos mit:
sudo apt update
und installieren uns das passende php Modul:
sudo apt install php8.1-pdlib
Bite ersetzt 8.1 mit Eurer aktuell installierten php Version
Jetzt installieren wir die PD Libaries für die App und führen folgende Befehle nacheinander aus:
sudo apt-get install libx11-dev
sudo apt-get install libopenblas-dev liblapack-dev
sudo apt install cmake
sudo apt install php-dev
Danach installieren wir noch die shared library (Dlib):
sudo git clone https://github.com/davisking/dlib.git
cd dlib/dlib
sudo mkdir build
CD build
sudo cmake -DBUILD_SHARED_LIBS=ON ..
sudo make
sudo make install
Jetzt die eigentliche Installation:
sudo git clone https://github.com/goodspb/pdlib.git
cd pdlib
sudo phpize
sudo ./configure --enable-debug
sudo make
sudo make install
Das was auch schon mit der Installation!
Wir aktivieren die PD Libaries noch in dem Ihr in der Datei
sudo nano /etc/php/8.1/cli/php.ini
folgendes am Ende der Datei hinzufügt: (8.1 mit Eurer Version ersetzen)
[pdlib]
extension="pdlib.so"
Wir laden gleich noch die korrekten Modelle für die Erkennungssoftware herunter. Geht dazu in euren Nextcloud Ordner und führt folgenden Befehl aus:
sudo -u www-data php8.1 ./occ recognize:download-models
8.1 wieder mit Eurer Version ersetzen!
Einrichtung der Recognize App
Geht wieder auf Eures Nextcloud Dashboard, navigiert in die Verwaltungseinstellungen und öffnet links den Tap Erkennung. Ist die war die Installation erfolgreich müssen folgende 2 Checkmarks unter Status vorhanden sein:
Einstellungen der Recognize App
Ihr könnt weiter unten festlegen auf was die erkennung angewendet werden soll. Zur Verfügung stehen Gesichtserkennung, Objekt- und Wahrzeichenerkennung, und die Audio und Video Erkennung und Klassification. Bedenkt, dass die Objekterkerkennung wirklich massiv Rechenleistung benötigt und Eurer Nextcloud Rechner je nach Anzahl Foto, und je nach Austattung der Hardware mehrere Tage am Kategorisieren ist. Ihr könnt versuchen die Anzahl an Batches leicht zu erhöhen falls Ihr eine sehr moderne CPU (AMD x59xx oder 79xx Serie oder Intel i7 ab 11xxx) Euer eigen nennt. Empfehlungen werden von der App aber bereits festgelegt.
CPU Kerne
Ihr könnt festlegen wieviel CPU Kerne Recognize für die Kategorisierung benutzen darf. 0 bedeutet alle Kerne, limitiert die Anzahl der Kerne Falls Euer Server während der Kategorisierung langsam und träge reagiert.
Tensor Betrieb
Der Tensor Flow Betrieb ermöglicht die Berechnungen in Hardware AES. Dazu benötigt Ihr eine CPU welche AES untersützt, oder eine Virtualisierungssoftware wie Proxmox die diese Funktion anbietet. Ist das der Fall, wird im Dashboard angemerkt dass Tensor Flow aktiviert ist:
Weiter unten habt Ihr noch die GPU unterstützte Kategorisierung, in der Regel haben aber die wenigsten Nutzer eine kompatible Grafikkarte welche im Bereich von mehreren tausend Euro liegt.
Weitere Befehle im Server-Terminal
Ihr könnt mit weiteren Befehlen alle Klassifizierungen löschen, neustarten oder zurücksetzen. Ihr müsst dazu in euerem Nextcloud Ordner Befehle mit folgendem Syntax ausführen:
sudo -u www-data php8.1 ./occ BEFEHL
Schauen wir uns die Liste an
Um alle Modelle vor der Ausführung der Klassifizierungs-Aufgaben herunterzuladen, führt den folgenden Befehl im Server-Terminal aus:
occ recognize:download-models
Mit dem folgenden Befehl lässt sich eine vollständige Klassifizierung auslösen. (Die Klassifizierung wird in mehreren parallel laufenden Hintergrundjobs ausgeführt).
occ recognize:recrawl
Um einen vollständigen Klassifizierungslauf im Terminal auszuführen, führt folgendes aus (Die Klassifizierung wird in deinem Terminal nacheinander ausgeführt.).
occ recognize:classify
Bevor Ihr eine vollständige anfängliche Klassifizierung auf der Kommandozeile ausführst, solltet Ihr, um Probleme zu vermeiden, alle Hintergrundverarbeitungen stoppen, die bei der Installation als geplant erkannt wurden.
occ recognize:clear-background-jobs
Führt Folgendes aus, um einen Gesichter-Clustering-Lauf für jeden Benutzer im Terminal auszuführen (Das Clustering wird in deinem Terminal nacheinander ausgeführt.).
occ recognize:cluster-faces
Um alle Gesichtscluster zu entfernen, aber die Rohdaten der erkannten Gesichter beizubehalten, führt Folgendes im Terminal aus:
occ recognize:reset-face-clusters
Um alle erkannten Gesichter und Gesichtscluster zu entfernen, führt Folgendes im Terminal aus:
occ recognize:reset-faces
Mit dem folgenden Befehl könnt Ihr die Tags aller Dateien zurücksetzen, die zuvor von der App Recognize klassifiziert wurden:
occ recognize:reset-tags
Mit dem folgenden Befehl könnt Ihr alle Tags löschen, denen keine Dateien mehr zugeordnet sind:
occ recognize:cleanup-tags
Führt folgendes im Terminal aus, um Schlagwörter zu entfernen, die von der Reconize Version 2 für alle Dateien erstellt wurden:
occ recognize:remove-legacy-tags
Die Bedienung habt Ihr nun auch kennen gelernt. Die Resultate könnt Ihr nach einer weile in der Foto App von Nextcloud begutachten. Bitte beachtet dass die Erkennung nicht immer zu 100% korrekt ist. Es ist möglich, dass 1 Person als 2 Personen erkannt wird oder dass ein Gesicht garnicht klassifiziert werden kann. Korrigiert diese Fehler indem Ihr in der Foto App auf ein erkanntes Gesicht geht, und dies mit dem selben Gesicht, welches als ein anderes erkannt wurde, zusammenfügt.
Habt Ihr Fragen zum Artikel Nextcloud 27 Recognize App installieren ? Schreibt sie in die Kommentare!