Zum Inhalt

Recognize mit lokaler KI und AppAPI

Diese optionale Erweiterung ergänzt die normale Installation und Quick Install v2 nach der HTTPS-Einrichtung. Sie analysiert Bilder auf dem eigenen Server und speichert erkannte Inhalte als Schlagwörter. Ähnliche Gesichter werden gruppiert; eine automatische Zuordnung zu bekannten Namen erfolgt dadurch nicht.

Die Analyse verwendet vortrainierte Modelle. Ein eigener Trainingslauf oder ein Konto bei einem KI-Cloud-Dienst ist nicht erforderlich. Für Container und Modelle ist zunächst ein Internetdownload nötig. Die Verarbeitung findet anschließend auf der eigenen Infrastruktur statt.

Komponenten und Ressourcen

Komponente Aufgabe
Recognize (recognize) Dateien erfassen, Aufgaben verwalten und Ergebnisse speichern
Recognize Backend (recognize_backend) Lokale Analyse als AppAPI-Container
Memories (memories) Fotoansicht mit Schlagwörtern und Personengruppen

Für diese AppAPI-Variante gelten laut offizieller Dokumentation folgende Werte:

Voraussetzung Bedarf
Version Nextcloud ab 35, Recognize ab 13
Docker-Host x86-64 / linux/amd64
Arbeitsspeicher Mindestens etwa 8 GB ausschließlich für den Backend-Container
Speicherplatz Etwa 9 GB Container-Image und 3 GB Modelle; zusätzlich Platz für Updates und Bilder
CPU Betrieb ohne GPU möglich; mehrere leistungsfähige Kerne verkürzen die Verarbeitung
Optionale GPU NVIDIA; etwa 4–6 GB VRAM bei allen vier Erkennungsarten

Als Planungsreserve für Nextcloud und Backend auf demselben Testserver sind insgesamt 16 GB RAM sinnvoll. Dies ist eine Workshop-Empfehlung und keine offizielle Mindestanforderung. Für den ersten Test nur Bilder verarbeiten; Audio und Video bleiben deaktiviert.

Abgrenzung zur klassischen Variante

Recognize kann auch ohne AppAPI mit einem lokalen Node.js-Backend arbeiten. Diese Seite beschreibt ausdrücklich die Container-Variante. Bei älteren Nextcloud-Versionen nicht ungeprüft mit dieser Anleitung fortfahren.

Installation vorbereiten

  1. Nextcloud-Version als Root prüfen:

    sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ status
    
  2. Cron-Hintergrundjobs und HTTPS mit Zertifikatsvertrauen fertig einrichten.

  3. Auf dem Docker-Host Docker installieren und dessen Funktion prüfen. Bei einer LXC-Testumgebung muss die Plattform Docker unterstützen; alternativ einen geeigneten separaten Docker-Host verwenden.
  4. Namensauflösung und HTTPS-Zugriff zwischen Nextcloud und den Containern prüfen. Hosts-Einträge und Zertifikatsvertrauen des Arbeitsplatzes werden nicht automatisch in Container übernommen.

AppAPI aktivieren und Bereitstellungsdienst einrichten

Falls AppAPI im bisherigen Workshop deaktiviert wurde, wieder aktivieren:

sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ app:enable app_api

Docker allein reicht für ExApps nicht aus. Zuerst einen Bereitstellungsdienst nach der offiziellen AppAPI-Anleitung einrichten. Für neue Installationen wird dort HaRP empfohlen; die zugehörige Proxy-Konfiguration muss zur vorhandenen Apache-Installation passen.

Unter Administrationseinstellungen → AppAPI den Dienst registrieren, die Verbindung prüfen und als Standard festlegen. Danach im Drei-Punkte-Menü Test deploy ausführen. Dieser Test muss erfolgreich sein, bevor das große Recognize-Backend installiert wird.

Für den Einstieg CPU-Verarbeitung auswählen. GPU-Betrieb erfordert zusätzlich NVIDIA-Treiber und das NVIDIA Container Toolkit auf dem Docker-Host.

Recognize und Memories installieren

Die normalen Nextcloud-Apps installieren:

sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ app:install recognize
sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ app:install memories

Bereits installierte Apps bei Bedarf über die Appverwaltung aktivieren. Anschließend in der Appverwaltung nach Recognize Backend suchen und die ExApp recognize_backend über den eingerichteten Bereitstellungsdienst installieren. Der erste Download kann wegen der Größe längere Zeit dauern.

Bilderkennung konfigurieren

Unter Administrationseinstellungen → Recognize prüfen, ob die Klassifikation über Nextcloud TaskProcessing aktiviert ist. Diese Umschaltung erfolgt bei installiertem und aktiviertem Backend normalerweise automatisch.

Für die erste Übung:

  • Objekterkennung für Bilder aktivieren.
  • Gesichtserkennung bei Bedarf ergänzen.
  • Audio-, Video- und Wahrzeichenerkennung deaktiviert lassen.

Die Wahrzeichenerkennung benötigt weiterhin das klassische Node.js-Backend und gehört nicht zu diesem Test. recognize:download-models ist für die hier gezeigte Container-Bilderkennung nicht erforderlich. Die Modelle werden vom Backend beim ersten Einsatz heruntergeladen; dafür muss es huggingface.co über HTTPS erreichen.

Funktion mit wenigen Bildern prüfen

Eine kleine Bildsammlung über Nextcloud hochladen. Cron verarbeitet neue Dateien im Hintergrund. Die Warteschlangen und laufenden Aufgaben in den Recognize-Einstellungen beobachten. Der erste Auftrag dauert wegen der Modelldownloads und des Ladens der Modelle länger.

Für vorhandene Dateien lässt sich ein erneutes Erfassen anstoßen:

sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ recognize:recrawl

Dieser Befehl kann den gesamten vorhandenen Bestand in die Warteschlangen aufnehmen; bei einer großen Sammlung erst nach dem kleinen Funktionstest ausführen. Im AppAPI-Modus läuft die Analyse über Hintergrundjobs, nicht über recognize:classify.

Nach abgeschlossener Gesichtsanalyse die Gruppierung anstoßen:

sudo -u www-data php -d apc.enable_cli=1 /var/www/nextcloud/occ recognize:cluster-faces

Anschließend in Memories die Bereiche für Schlagwörter und Personen prüfen. Ergebnisse sind Vorschläge und können falsch oder unvollständig sein.

Probleme eingrenzen

Beobachtung Prüfung
Backend wird nicht angeboten Nextcloud-/Recognize-Version, aktiviertes AppAPI und Kompatibilität der ExApp prüfen.
Bereitstellung schlägt fehl Zuerst AppAPI-Testbereitstellung, freien Speicher und Containerarchitektur prüfen.
Aufgaben bleiben liegen Cron-Durchläufe, aktiviertes Backend und TaskProcessing-Einstellung prüfen.
Erster Auftrag hängt beim Download HTTPS-Zugriff des Containers auf die Modellquelle prüfen.
Hohe Auslastung Zunächst nur Bilder analysieren, große Bestände außerhalb der Übungszeit einplanen und RAM-Verbrauch beobachten.

Beim Wechsel vom klassischen Backend sind vorhandene Gesichtsdaten nicht kompatibel. Eine solche Migration vorab nach der offiziellen Dokumentation planen; die Gesichtsdaten nicht während eines einfachen Funktionstests zurücksetzen.

Die Installation wurde hier nicht auf einem laufenden Nextcloud-Server getestet. Versionsabhängige Vorgaben und aktuelle Ressourcenwerte stehen in der Recognize-Dokumentation.