encoding.pickle-Datensatz zusammenführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
joernius
User
Beiträge: 31
Registriert: Donnerstag 11. Juni 2020, 13:47
Wohnort: Dresden
Kontaktdaten:

Hallo, liebe Gemeinde,

ich bin nur ein User und kein Programmierer, aber ich möchte eine Frage loswerden, welche wohl hier am wahrscheinlichsten beantwortet werden kann.

Nach der Beschreibung https://www.pyimagesearch.com/2018/06/1 ... -learning/
habe ich die Gesichtserkennung mit OpenCV und dlib nachgebaut ... und es funktioniert :D

Bein trainieren der Gesichter wird eine Datei "encodings.pickle"generiert:

Code: Alles auswählen

python encode_faces.py --dataset dataset_bild-vorlagen --encodings encodings.pickle
Diese wird dann logischerweise bei der Erkennung herangezogen:

Code: Alles auswählen

python recognize_faces_image.py --encodings encodings.pickle --image examples_neu/cara-gross.jpg &
Ich habe eine Erkennung von über 100 Berühmtheiten auf 3.000 Bildern aus der Filmszene angeschubst, dabei kam nach 15 Stunden eine encodings.pickle in eineigen MB-Größe heraus.

Welchen Befehl muss ich absetzen, möchte ich diese Datei mit einer weiteren encodings.pickle erweitern, also 2 encodings.pickle zusammen-mergen?
Ein cat encodings1.pickle encodings2.pickle > encodings.pickle war fehlgeschlagen... :( Ist halt ein Binary.

Alternativ, kann ich 'python recognize_faces' irgendwie zweimal das Argument '- -encodings encodings.pickle' mit zwei verschiedenen Datensätzen mitgeben?
Einfach so hintereinander geht nicht, es wird nur die letzte Datei ausgewertet.

Vielen Dank im Voraus
Grüße Jörn
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Ich kenne das Script nicht. Das Script selbst sorgt natürlich dafür, wie Kommdozeilenargumente ausgewertet und verwendet werden.
Und ich weiß auch nicht, wie das Script Daten speichert. Die Endung .pickle deutet darauf hin, dass Daten per "pickle" gespeichert werden. Damit lassen sich Datenstrukturen in eine persistente Form überführen. Macht man aber eigentlich selten, weil sich Strukturen im Programm nicht ändern dürfen, damit sich das wider laden lässt.
Wenn du pickle in der Python-Dokumentation suchst, erfährst du, wie du damit Daten lädst und speicherst.
Der nächste Schritt für dich wäre dann zu verstehen wie dort Daten abgelegt sind und diese ggf. um neue Daten zu erweitern.
Aber das funktioniert natürlich nur, wenn tatsächlich mit via pickle gespeichert wird. Weiß man halt ohne Code nicht.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kenne den Kurs, und darum auch, was Adrian da macht. Du solltest das zusammenfuehren koennen. BZW jemand hier. Aber dazu braucht es die pickles, damit man sich mal die Struktur vor Augen fuehren kann. Dazu erstmal alles zu installieren, zu trainieren, etc ist ein bisschen viel des guten.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Ich denke der Quelltext reicht, das sieht sehr trivial aus: Ein Wörterbuch mit zwei Listen als Werte in denen ”parallel” jeweils Daten zum Gesicht und der dazugehörige Name geführt werden.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Normalerweise muss man sich immer anmelden fuer den Quelltext, und da habe ich auch gerade keine grosse Lust zu. Aber ich gebe dir recht, schwierig wird es nicht sein :)
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Ich musste eine E-Mail-Adresse angeben und bekam dann die Links zum Quelltext (+Daten = 340MB) zugeschickt. 🙂
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Eben. Und dann ist dem TE ja noch nicht geholfen. Wenn er uns die pickles gibt, geht’s doch schneller :)
Benutzeravatar
joernius
User
Beiträge: 31
Registriert: Donnerstag 11. Juni 2020, 13:47
Wohnort: Dresden
Kontaktdaten:

Danke für Euren Einsatz. Diese Pickle-Datei liegt als Binary vor. Sicherlich geht das mittels Python zu decodieren, zu erweitern und wieder zu erstellen.
Ich hätte gedacht, es geht auch ganz simple mit einem Parameter :(

Die Datei bekommt man unkompliziert und kostenlos, nachdem man eine Mailadresse hinterlassen hat. Diese ist deshalb so groß, weil auch eine Video-Datei beiliegt.

Ich habe hier 3 verschiedene Pickles abgelegt, diese sind 7 Tage verfügbar: https://fil.email/0G5Iahwu

PS
Sry für die späte Antwort, ich hatte keine Benachrichtigung erhalten..
Antworten