Gesichtserkennung

  • Meiner Ansicht nach schreibt Geosetter nichts in die Bilder. Das würde ich auch nicht für gut finden, wenn das Imabas machen würde.
    Geosetter liest einfach die Informationen aus den .picasa.ini Dateien und zeigt sie an.
    Imabas könnte diese Informationen optional auch einmalig bzw. beim Import lesen und in seine DB schreiben und auch nur anzeigen.
    Selbst die Verknüpfung mit Google-Kontakten (wie es Picasa macht) ist nicht notwendig, es reicht aus eine Person, die es noch nicht gibt, einfach bei sich mit Namen neu anzulegen.
    Gruß Heiko



    Geosetter liest und schreibt - gemäss Beschreibung - in die IPTC-Felder. Bei meinen 42'000 analogen Bildern habe ich vor, die Geo-Informationen "in die Bilder" zu schreiben, sobald alle digitalisiert sind und ich die Geo-Informationen erfasst habe. Da ich Optionen sinnvoll finde sollte das Schreiben in IPTC-Daten ein- oder ausschaltbar sein.
    So wie ich es als Laie verstehe sind die EXIF-Daten am Anfang der Bild-Datei, die IPTC-Daten am Schluss der Datei.

  • Ich meinte in Geosetter nicht die Geoinformationen, um die es ja hier nicht geht. Geoinformationen werden natürlich in die Bilder geschrieben. Dazu ist das Programm ja gemacht.
    Die Personen-Informationen aus der .picasa.ini werden aber nur angezeigt. Das würde ich mir auch verbieten, ohne mich zu fragen, Bilderdaten zu ändern.
    Das habe ich auch nochmal überprüft. Ist die .picasa.ini im Verzeichnis, zeigt Geosetter die Personen an. Im anderen Fall nicht.
    Wie man die .picasa.ini lesen kann, dazu habe ich dieses C# Projekt gefunden: https://code.google.com/p/picface/
    Leider habe ich keine Zeit, da selber was zu programmieren. :-(

  • So, ich habe mich jetzt doch daran gesetzt und mit Lazarus ein Programm geschrieben, dass mir die Gesichtserkennungsdaten von Picasa aufbereitet.
    Es entsteht eine CSV-Datei, die alle Gesichter mit Namen, Position im Bild, Bildname und relativen Pfad zum Ausgangspfad (Volume) von allen Bildern eines Verzeichnisbaumes enthält.


    Das sieht dann so aus:

    Code
    1. mdFacesPictureName,mdFacesContact,mdFacesX,mdFacesY,mdFacesW,mdFacesH,mdFacesPath,
    2. "IMG_0534.jpg","Anja Müller",0.46140230411231,0.17157244220645,0.22793926909285,0.36600289921416,"",
    3. "IMG_4390.JPG","Anja Müller",0.33240253299763,0.35625238422217,0.10649271381704,0.07186999313344,"",
    4. "IMG_4390.JPG","Heiko Müller",0.21898222323949,0.15938048371099,0.14860761425193,0.10051117723354,"",
    5. "IMG_0525.jpg","Lea Meyer",0.23437857633326,0.08169680323491,0.09558251316091,0.15318532082094,"",
    6. "IMG_0526.jpg","Lea Meyer",0.17370870527199,0.20016784924086,0.10754558632792,0.17238117036698,"",
    7. "DSCN0998.JPG","Heiko Müller",0.22504005493248,0.19241626611734,0.41557946135653,0.66434729533837,"Urlaub",
    8. "DSCN0997.JPG","Torsten Mustermann",0.12065308613718,0.53992523079271,0.1043869687953,0.1658045319295,"Urlaub",
    9. "DSCN0997.JPG","Heiko Müller",0.37001602197299,0.52429999237049,0.09808499275196,0.15654230563821,"Urlaub",

    Die Namen sind noch nicht getrennt in Name/Vorname. Das ist aber kein Problem.



    Das wäre also der erste Schritt.
    Nun zum nächsten, der aber noch nicht fertig ist...
    Ich denke, dass diese Datei so eingelesen werden kann, wie bei diesem 'Thema Import 'http://www.pamsf.info/showthread.php?p=9337#post9337


    Es müsste also für jede Zeile geschaut werden, ob für dieses Bild schon ein Eintrag mit diesem Namen existiert. Existiert er nicht, wird er gemacht. Existiert die Person noch nicht, wird sie angelegt (am besten unter einer neuen Personengruppe z.B. 'Picasa').


    Eine Frage an Kai: Könntest du dazu ein Code-Gerüst machen?
    Das ginge für Dich sicher am schnellsten. Ich habe für Imabas noch nicht gescriptet. Hinweise was in welches Objekt rein müsste, wäre auch schon hilfreich.


    Die Position des Gesichts im Bild lassen wir erstmal außen vor. Dazu fehlen sicher noch die entsprechenden Felder in der Imabas-DB. Die Darstellung auf dem Bild fehlt ja auch noch.
    Wenn Kai sich aber dazu durchringen könnte, würde ich das sehr begrüßen.


    Was haltet ihr davon?

  • Den 2. Schritt habe ich nun auch erledigt.
    Ich habe 2 Aktionsskripte geschrieben.
    Das erste hängt an den Personen und importiert mir alle Picasa Kontakte in die ausgewählte Personengruppe.


    Das zweite hängt an den Volumes und importiert mir obige zuvor erstellte CSV-Datei für das jeweilige Volume.


    Damit habe ich mir nun ca. 20000 von Picasa erkannte Gesichter von über 400 Personen nach Imabas reingezogen.:smile2:


    Bei Bedarf kann ich das dann jederzeit mit neuen Gesichtern wiederholen.


    Damit ist das Thema Gesichtserkennung für mich erledigt.
    Es sei denn, Kai implementiert noch die Gesichtspositionen im Bild in Imabas.


  • Wie man die .picasa.ini lesen kann, dazu habe ich dieses C# Projekt gefunden: https://code.google.com/p/picface/


    Ich habe mir dieses Programm mal installiert und mal auf ein Bilderverzeichnis mit Gesichtsinformationen von Picasa laufen lassen.


    Dieser Ansatz ist auch nicht uninteressant. Es schreibt die Personeninformationen von Picasa in den XMP-Bereich der Bilder (https://de.wikipedia.org/wiki/Extensible_Metadata_Platform).


    z.B. Geosetter liest auch diesen XMP-Bereich und zeigt ihn an. Zum Bearbeiten habe ich allerdings dort nichts gefunden.


    Wäre das nicht ein Ansatzpunkt für Imabas, diese XMP-Daten beim Import und Reorganisieren neben EXIF und IPTC optional zu lesen und in der DB abzulegen?

  • Hallo,

    Quote

    Den 2. Schritt habe ich nun auch erledigt.


    kann man das testen?


    MiRu

    Wissen ist Macht
    Nichts wissen macht nichts?!

    Edited once, last by MiRu ().

  • Ich war im Urlaub, deswegen ein paar Tage verspätet.


    Mir war klar, dass die Frage nach den Sourcen kommt und ich bin mir noch unschlüssig, ob ich das tun soll.


    Imabas ist ein kommerzielles Produkt und liegt in Verantwortung von Kai.
    Er hat mir unmissverständlich klar gemacht, dass er diesen Import nicht in seinem Produkt haben möchte.
    Auch hat er keinerlei Hilfestellung gegeben.


    Wie soll ich damit also umgehen?


    Der Schritt 1 ist nicht so weit im UI ausprogrammiert, dass ich das Programm sofort verteilen könnte. Da wäre also noch was zu tun für mich.


    Den Schritt 2 mit den beiden Scripten könnte ich hier sicher rein stellen. Aber ohne Schritt 1 funktionieren sie ja nunmal nicht.


    Gruß
    Heiko

  • Hallo Heiko,


    die reinen Sourcen würden den meisten wohl nicht helfen, denke da benötigen die wohl eine Exe-Datei. Stell Sie irgendwo ein, zur Not auch hier wenn du keine Alternative hast, und mach einen Thread mit den entsprechenden Links auf, kein Problem :-)


    Die Aktionen dazu kannst du ja auch hier veröffentlichen.


    Ich distanziere mich davon weil ich persönlich niemals Datenkrake Guggel auf meinen Rechner lassen würde. Und ein Produkt davon abhängig machen, das geht schon mal gar nicht.


    Hier im Forum unter Usernm könnt ihr allerdings gerne murksen und Imabas pimpen, da werde ich nichts gegen sagen :-)

  • Hallo,



    • ich habe mir Pi*** angeschaut - Gesichtserkennung nicht schlecht
    • die Scripte von Heiko sind aus den verständlichen Gründen (bisher?!) nicht so richtig nutzbar
    • irgendwie muss es doch aber gehen ...


    Folgenden Ansatz habe ich gefunden. Wenn auch alles händisch, doch trotzdem wesentlich schneller als jedes Bild einzeln zuzuweisen. Sicher nur für den privaten Gebrauch sinnvoll.



    Also:


    • Da Pi* bei meinem Gedanken in die Bilder schreibt, ersteinmal eine Kopie anlegen.
    • Mit Pi* nur Ordnerweise arbeiten, sonst verliert man die Übersicht. Also immer nur einen Ordner aktivieren
    • Dann Pi* drüber laufen lassen. Pi* ordnet sie auf der linken Seite den Personen zu
    • Eine Person anklicken, es werden alle Bilder mit dieser Person im Browser angezeigt (nur die Faces)
    • Auf der rechten Seite kann man jetzt Tags zuordnen. Alle Faces markieren, Tag vergeben "Name_Vorname" (Pi* speichert die Tags als Keywords unter IPTC Daten in den Bildern)
    • Das mit allen Personen machen, So Mehrfach-Personen-Zuweisungen möglich
    • Jetzt die Bilder in Imabas importieren. (die Tags sind in den Stichworten)
    • Eine Volltextsuche nach "Name_Vorname" bringt die Bilder in den Browser
    • Alle Markieren und der Person zuordnen
    • Mit allen Pesonen wiederholen


    Fertig: - Jetzt nur noch aufräumen:



    • Originale ins Importverzeichnis spielen
    • In der Datenbank IPTC-Daten reorganisieren


    Ja, Hmm, schön ist es nicht, elegant schon gar nicht - aber es geht
    Lieber wäre mir eine Variante die nicht in die Bilder schreibt - aber es funktioniert ohne zu programmieren.


    Vielleicht hat ja jemand zu diesem Workflow eine Idee der Automatisierung.
    (Aktion: Volumen|Bilder ohne Person => Stichwort auslesen => zuordnen, aber es sind meist mehrere Stichworte/Personen zugeordnet)


    MiRu

  • Hallo,


    nun muss ich mich auch mal einklinken...


    Ich habe die Gesichter & bounding boxes per "Microsoft Picture Gallery" den Bildern zugeordnet. Damit stehen sie nun als XMP Daten mit in den Bildern.


    Nur in Imabas bekomme ich sie erst mal so nicht, da ich dort keine XMP Daten einlesen kann :-(


    Any ideas? Ich kann per ExifTool die Daten von XMP nach IPTC kopieren und dann mit dem obigen Verfahren weitermachen. Aber es wäre natürlich auch cool, die bounding boxen verfügbar zu haben :nicken:

  • Richtig, sehe ich auch so. Schuster bleib bei Deinen Leisten... Das ist sicher 'ne andere Liga. Aber das importieren der XMP ist doch sicher machbar.


    MiRu

  • Hallo MiRu, warum siehts Du ein Problem wenn Pi* in die Bilder schreibt. Wenn man mal ein anderes Tool verwenden möchte ist man doch ggf. froh wenn die Daten im Bild drin sind und später neu importiert werden können.


  • Hallo teimue,


    gibt es dazu etwas neues? Ich wäre auch interessiert.


    Gruss
    Ralf


    I
    Der Schritt 1 ist nicht so weit im UI ausprogrammiert, dass ich das Programm sofort verteilen könnte. Da wäre also noch was zu tun für mich.


    Den Schritt 2 mit den beiden Scripten könnte ich hier sicher rein stellen. Aber ohne Schritt 1 funktionieren sie ja nunmal nicht.


    Gruß
    Heiko

  • So, nun hätte ich wieder mal Zeit, mich um diese Baustelle zu kümmern.


    Letzter Stand ist immer noch, dass ich Personen + Bounding Box dank MS Photo Gallery in den XMP Daten drin habe:


    RegionRectangle: 0.377604, 0.236328, 0.062500, 0.046875*0.591146, 0.301758, 0.053385, 0.039063
    RegionPersonDisplayName: Thomas Feuster*Vorname Nachname


    Und das würde ich nun gerne in die Imabas DB bringen. Folgende Möglichkeiten sehe ich:


    1) XMP nach IPTC kopieren (via ExifTool) und IPTC nach Imabas (via ???)


    Kai: Ich habe auf Anhieb nichts gesehen, um Personen aus IPTC beim Import zu übernehmen?


    2) Programm schreiben, dass die Daten aus XMP direkt in die Imabas DB schreibt (habe ja noch die Java API :-))


    Kai: Könnte/sollte man sowas als Aktion in Imabas schreiben? Welche Programmiersprache es letztendlich ist, ist mir eigentlich egal - aber in Eclipse kann ich vermutlich besser Debuggen...


    Gruß,