Werkzeug zum automatischen Verwischen von Personen in Fotos

5865
O. R. Mapper

Ich bin auf der Suche nach einer Möglichkeit, Menschen auf Fotos leicht unkenntlich zu machen. Wenn ich Fotos (meistens Städte und Landschaften) in mein Online-Album stecke, mache ich zunächst alle erkennbaren Personen unkenntlich, da ich der Meinung bin, es sei eine grundlegende Frage der Höflichkeit, keine Fotos von Fremden zu veröffentlichen.

Im Grunde möchte ich also mehr oder weniger das tun, was Google mit StreetView-Bildern macht. Derzeit mache ich dies manuell für jedes Foto, indem ich Ellipsenauswahl um alle Flächen in Gimp zeichnete und dann einen Unschärfefilter für die Auswahl verwende.

Gibt es ein Werkzeug, mit dem ich diese Unschärfe mit einem einzigen Klick mehr oder weniger verwischen kann? Idealerweise, indem Sie mir im ersten Schritt alle erkannten Gesichter zeigen und dann diejenigen abwählen, von denen ich nicht verschwimmen möchte?

(Das Verschwimmen anderer persönlicher Daten, wie z. B. Autokennzeichen) wäre auch schön, aber mein Hauptziel besteht darin, ein solches Werkzeug zum Verschwimmen von Gesichtern zu finden, da Menschen häufig auf Fotos erscheinen, während die Gesamtzahl der lesbaren Kennzeichen minimal ist . Außerdem bin ich für Werkzeuge suchen, verschwimmen die Gesichter aus. Pixelation ein Rückfall sein kann, aber es mit dem Rest des Bildes nicht so schön wie Unschärfe zu integrieren.)

Ich habe schon lange nach solchen Tools gesucht, aber alles, was ich finde, scheint in eine von drei Kategorien zu gehören:

  • Es ist für die Ausführung auf Smartphones und nicht auf Desktop-Computern wie dieser App vorgesehen .
  • Es ist für Videos gedacht, die durch ähnliche Fragen wie dieses oder dieses oder diesen Artikel angezeigt werden .
  • Es ist webbasiert. Daher müssen alle Fotos zur Verarbeitung auf den Server einer anderen Person hochgeladen werden. Während der Bearbeitung der Fotos ist eine Internetverbindung erforderlich, z. B. mit diesem Dienst oder diesem Editor .

Ich suche ausschließlich nach Software, die unter Windows und / oder Ubuntu läuft, ohne dass eine Internetverbindung erforderlich ist (dh keine Cloud-Tools, bei denen ich alle Fotos zur Bearbeitung hochladen muss). Ein kostenloses Tool wäre schön, aber ein bezahltes Tool ist immer noch besser als gar kein Tool.

10

4 Antworten auf die Frage

4
tardis

Wenn Sie mit "einigen Baugruppen benötigten" Lösungen zufrieden sind, versuchen Sie "facedetect" (die einfach OpenCV verwendet) und ImageMagick. Es gibt ein Beispiel auf der folgenden Seite:

http://www.thregr.org/~wavexx/hacks/facedetect/#blurring-faces-within-an-image

Ein paar Anmerkungen zum Beispiel:

  • Es verwendet die Pixelierung, aber Sie können die "-scale" -Operatoren leicht durch eine "- -Unur 0x100" ersetzen.
  • Jedes Gesicht wird im Beispiel unabhängig voneinander verarbeitet. Genau das, was Sie benötigen: Sie können mit "display -crop GEOMETRY" das Gesicht vor dem Unschärfevorgang anzeigen. Mit "Zenity" oder einem Shell-Scripting ist es relativ einfach zu fragen, ob mit der Unschärfe fortgefahren werden soll oder nicht.

Keine Gesichtserkennungssoftware ist jedoch zu 100% genau. Sie erhalten sowohl falsche als auch falsche Ergebnisse. Insbesondere ist das Standard-OpenCV-Profil ohne zusätzliche Schulungen definitiv nicht das Beste auf dem Markt. Falsche Positive lassen sich mit der von Ihnen beschriebenen Methode leicht umgehen, aber bei Misses handelt es sich um eine andere Geschichte. Wenn Sie alle Fotos manuell überprüfen müssen, sparen Sie möglicherweise nicht viel Zeit. Ich denke, es hängt von Ihren Genauigkeitsanforderungen ab.

Um die überlagerte Erkennung anzuzeigen, verwenden Sie die Markierung "-o" für ein Beispiel Ihrer Bilder und prüfen Sie, ob die Erkennungsrate für Ihre Anforderungen angemessen ist.

2
harrymc

I have found for The GIMP the Face Detection Plugin from 2010 (no guarantee that it still works) :

image

Otherwise, you might have to roll out your own software. In this case see the following links :

face detection software
Microsoft Research Face SDK Beta
Intel Perceptual Computing SDK

Of special mention is OpenCV. See Detect face then autocrop pictures for an example using python.

Leider konnte ich das Plugin nicht zum Kompilieren bringen. Ich habe eine Reihe von Paketen installiert, die über die in diesem Artikel angegebenen Pakete hinausgingen, und ich habe den Aufruf von `cvHaarDetectObjects 'so aktualisiert, dass er mit der aktuellen (nicht abwärtskompatiblen?) API mit einem zusätzlichen Parameter übereinstimmt `. O. R. Mapper vor 11 Jahren 1
[lrint] (http://man7.org/linux/man-pages/man3/lrint.3.html) führt "Runden auf die nächste Ganzzahl" aus und wird als "Long Int lrint (double x)" definiert. Sollte einfach zu codieren sein. harrymc vor 11 Jahren 0
Ich akzeptiere diese Antwort vorerst, da sie die nützlichste ist und vielversprechend erscheint. Leider gibt mir das Kopfgeld-System von SU nicht die erforderliche Zeit, um die verschiedenen Vorschläge ausreichend zu testen, um deren mögliche Nützlichkeit festzustellen, bevor das Kopfgeld ausläuft ... * und * haben einen Job ;-) Mit anderen Worten, vielen Dank, auch wenn ich es könnte Füge später noch einige Bemerkungen hinzu. O. R. Mapper vor 11 Jahren 0
Hmm. Wenn ich eine Definition für "lrint" hinzufüge, beschwert sich der Compiler über widersprüchliche Definitionen für "lrint", und wenn ich keine hinzufügen, beschwert er sich, dass "lrint" eine undefinierte Referenz ist. O. R. Mapper vor 11 Jahren 0
Suchen Sie die betreffende Definition und stützen Sie Ihren Funktionsheader darauf. harrymc vor 11 Jahren 0
Wenn die ursprüngliche Fehlermeldung besagt, dass "lrint" eine "undefinierte Referenz" ist, sollte dies bedeuten, dass es keine Definition gibt, oder? Seltsamerweise enthält die C-Quelldatei, aus der das Plugin besteht, überhaupt nicht den Text "lrint". Entsprechend der Compiler-Ausgabe befindet sich die undefinierte Referenz in der Funktion "cvRound" ... bedeutet das, dass in den OpenCV-API-Headern ein Fehler aufgetreten ist? O. R. Mapper vor 11 Jahren 0
Ok, ich könnte dieses letzte Problem lösen, indem ich mich an die Informationen aus [diesem Forumseintrag] (http://tech.groups.yahoo.com/group/OpenCV/message/85129) halte, die in aktuellen gcc-Versionen die Optionen und Flags müssen * nach * den Eingabe- und Ausgabedateien angegeben werden (was in dem mit dem Plugin-Quellcode gelieferten Makefile nicht der Fall war). Das Plugin wurde ordnungsgemäß installiert und erkennt * einige * Gesichter ... jetzt, wenn ich es könnte, generell alle Gesichter zu erkennen, und nicht viele zufällige Betonstücke, Gebäude und Gebüsch ... O. R. Mapper vor 11 Jahren 0
Es könnte einfacher sein, OpenCV zu verwenden. harrymc vor 11 Jahren 0
Dieses Plugin * basiert * bereits auf OpenCV. O. R. Mapper vor 11 Jahren 0
Haben Sie es mit der neuesten OpenCV verbunden? harrymc vor 11 Jahren 0
Hm. Ich habe keine bestimmte Version angegeben (oder das Makefile scheint keine bestimmte Version anzuzeigen, nur `opencv`). Ich habe vor dem Kompilieren den neuesten `libopencv-dev` installiert. O. R. Mapper vor 11 Jahren 0
Ich hoffe, Sie verwenden OpenCV Version 2. [Cascade Classifier] (http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html) könnte nützlich sein und möglicherweise etwas von der Version 1 [Gesichtserkennung mit OpenCV ] (http://opencv.willowgarage.com/wiki/FaceDetection). harrymc vor 11 Jahren 0
2
Otheus

Die aktuell beste Antwort scheint zu sein:

https://github.com/openalpr/openalpr

Leider ist dies nur eine Software- Bibliothek und nur zur Erkennung . Sie müssten dies in eine Software integrieren, die die Unschärfe bewirkt hat.

Ich habe ein ähnliches Bedürfnis, also versuche ich es vielleicht, aber meine Programmierkenntnisse sind etwas ... verrostet.

Google hatte das gleiche Problem. Sie haben ihre Recherche hier veröffentlicht, jedoch nicht ihren Code: http://static.googleusercontent.com/media/research.google.com/en//archive/papers/cbprivacy_iccv09.pdf

Hm, C ++ ist keine meiner Hauptsprachen, und ich habe momentan keine Zeit zum Experimentieren, aber ein wenig später (Wochen? Monate?) Kann ich darüber nachdenken, ob ich dies zum Üben ausprobieren möchte. Aus der Readme-Datei scheint es jedoch, dass dies nur für Nummernschilder gilt, nicht für Gesichter? O. R. Mapper vor 9 Jahren 0
0
Alex

If you are more into app development, you could try using the API from Cloudinary. Here's more info on that: http://cloudinary.com/blog/automatic_face_blurring_in_images_made_easy

I couldn't find either any software app which does that automatically. There might be some plugins for Photoshop or Gimp.

Es tut mir leid, ich hatte diesen Artikel in meiner Frage bereits als Beispiel dafür angegeben, wonach ich * nicht * suche. Ich möchte meine Fotos nicht auf einen Webservice hochladen, da die Übertragung sehr lange dauert und wer weiß, was mit den Fotos auf den Servern dieses Unternehmens geschieht. Wenn es nichts Eigenständiges gibt, werde ich weiter nach einem Gimp-Plugin suchen. O. R. Mapper vor 11 Jahren 0
@ ORMapper: Entschuldigung, ich muss das überspringen. Lassen Sie uns wissen, wenn Sie eine App finden. Alex vor 11 Jahren 0