Lightroom Gesichtserkennung erneut ausführen

Bislang gibt es meines Wissens keinen offiziellen Weg, Adobe Lightroom (LR) dazu zu bringen, die Gesichtserkennung erneut durchzuführen, weder komplett, noch für einzelne Ordner der Bibliothek. Sollten Sie eine größere Menge der markierten Bereiche gelöscht haben und sich nun wünschen, Sie hätten das nicht getan, dann könnte Sie die Möglichkeit interessieren. Das Folgende funktioniert bei mir.

Erstellen Sie zunächst eine Sicherheitskopie Ihres Katalogs.

Dann besorgen Sie sich den SQLite Browser (http://sqlitebrowser.org/). Den werden Sie brauchen, um den LR Katalog zu bearbeiten. Installieren Sie ihn, starten Sie ihn und öffnen Sie eine Datenbank. Verwenden Sie ihren LR Katalog als Datenbank. LR muss geschlossen sein, während Sie dies tun.

Sie sehen: der LR Katalog ist eine relationale Datenbank, er enthält eine Menge Tabellen. Wie diese zusammenspielen lässt sich mit etwas Übung erraten. Es gibt allerdings auch eine Menge, was Sie hier kaputt machen können. Wenn Sie das, was ich hier beschreibe, ausprobieren und es geht schief, kommen Sie nicht zu mir um sich zu beschweren. Das hier ist ganz klar nicht offiziell unterstützt, es gibt keine Garantie, alles Ihr eigenes Risiko.

Eine Tabelle wird Ihnen helfen, wenn Sie die Gesichtserkennung noch mal laufen lassen wollen: Adobe_libraryImageFaceProcessHistory. Sie beinhaltet informationen darüber, was mit den Bildern jeweils schon geschehen ist, den Status der Gesichtserkennung, sowohl, dass in einem Bereich ein Gesicht ist (detection) also auch welches (recognition). Dazu noch weiteres zu Indizierung und ob Sie das Bild nach der Erkennung noch mal angefasst haben, z. B. um einen Namen hinzuzufügen.

Ohne weitere Informationen ist die Tabelle ziemlich nutzlos. Sie enthält jedoch eine ID für jedes Bild, für das die Erkennung bereits gelaufen ist, die man verwenden kann, um aus anderen Tabellen relevante Informationen zuzuordnen. Das sieht dann als SQL-Abfrage so aus:

select Folder.pathFromRoot, File.baseName, File.extension, Hist.*
from  Adobe_libraryImageFaceProcessHistory AS Hist
inner join Adobe_images AS Img ON Hist.image = Img.id_local
inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local

Hier haben Sie auch bereits den Pfad zum Ordner des Bildes in der Abfrage. Den können Sie nutzen, um auf einen bestimmten Ordner einzuschränken. Sie können einen Platzhalter verwenden (‚%‘) um auch Unterordner mit auszuwählen:

select Hist.*
 from  Adobe_libraryImageFaceProcessHistory AS Hist
 inner join Adobe_images AS Img ON Hist.image = Img.id_local
 inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
 inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local
 where Folder.pathFromRoot LIKE 'Photos/2015/2015-04-25/%'

Mit dieser Einschränkung können sie nun auch selektiv die Daten des Erkennungsverlaufs löschen. Bevor Sie den nächsten Schritt machen, stellen Sie sicher, dass Sie wirklich die Sicherungskopie erstellt haben!

delete from Adobe_libraryImageFaceProcessHistory
 Where id_local in (
 select Hist.id_local
 from  Adobe_libraryImageFaceProcessHistory AS Hist
 inner join Adobe_images AS Img ON Hist.image = Img.id_local
 inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
 inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local
 where Folder.pathFromRoot LIKE 'Photos/2015/2015-04-25/')

Schließen Sie nun die Datenbank und starten Sie Lightroom. Navigieren Sie zu dem entsprechenden Ordner und schalten Sie auf die Personen-Ansicht um. Jetzt sollte die Erkennung erneut laufen.

Dieses Vorgehen löscht übrigens weder bereits erkannte Gesichtsbereiche noch Stichwortzuweisungen.

Lassen Sie mich mit einem Kommentar wissen, ob diese Methode bei Ihnen funktioniert hat.

6 Gedanken zu „Lightroom Gesichtserkennung erneut ausführen

  1. Hi Henkki,

    danke – das hat bei mir funktioniert. ABER: „Dieses Vorgehen löscht übrigens weder bereits erkannte Gesichtsbereiche noch Stichwortzuweisungen.“ stimmt nicht ganz: Nachdem ich Deine Anleitung umgesetzt habe, finde ich in einem Ordner tatsächlich noch die erkannten Gesichter mit den zugewiesenen Namen. Aufgrund des Datenbankeingriffes startet LR wie gewünscht erneut mit der Gesichtserkennung. Dabei tauchen aber nicht nur die vorher verworfenen Gesichter wieder auf, sondern die bereits erkannten werden im Zuge der Gesichterkennung nach und nach wieder „unbekannt“. D.h. wenn die erneute Gesichtserkennung abgeschlossen ist, müssen ALLE Gesichter wieder benamst werden.

    Ich benutze LR CC2015 5.1 auf dem Mac.

    bg, Heiko

    • OK, danke, Heiko, wichtige Info. Das war so nicht geplant, also muss ich noch mal drüber grübeln. Vielleicht geht es ja noch besser.
      Grüße
      Henkki

  2. Wenn man sich genau an deine Anleitung hält, dann funktioniert es auch.
    Es war im Nachhinein eigentlich ganz einfach.
    Grüße Jörg

  3. Danke, es hat nun endlich geklappt.
    Ich habe das erste Mal mit dem SQLite-Browser gearbeitet,
    und wusste noch nicht einmal wo man den entsprechenden Befehl ausführen kann.
    Es hat bei mir schon ein paar Std. gedauert, bis ich es hinbekommen hatte.
    Die letzte Klammer am Ende der letzten Eingabe hatte ich übersehen und bekam natürlich einen Syntax Error.
    OS Win 10 64bit
    Vielen Dank und Grüße Jörg

    • Hallo Jörg,

      tut mir leid, dass es dann doch so kompliziert war. Wenn ich die Zeit finde, überarbeite ich den Artikel noch mal, um es leichter zu machen. Ich schreibe so etwas immer erst mal als Erinnerung für mich, daher ist es nicht immer sofort für alle brauchbar.

      Grüße
      Henkki

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.