Tool zum automatischen Verwischen von Personen in Fotos [geschlossen]


11

Ich suche nach einer Möglichkeit, Menschen auf Fotos leicht unkenntlich zu machen. Immer wenn ich Fotos (normalerweise von Städten und Landschaften) in mein Online-Album einfüge, mache ich zuerst alle erkennbaren Personen unkenntlich, da ich der Meinung bin, dass es eine grundlegende Höflichkeitssache ist, keine Fotos von Fremden zu veröffentlichen.

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

Gibt es ein Tool, mit dem ich diese Unschärfe mehr oder weniger mit einem Klick ausführen kann? Idealerweise, indem Sie mir im ersten Schritt alle erkannten Gesichter zeigen und dann diejenigen abwählen lassen, die ich nicht verwischen möchte?

(Es wäre auch schön, andere persönliche Details wie Autokennzeichen zu verwischen, aber mein Hauptziel ist es, ein solches Werkzeug zum Verwischen von Gesichtern zu finden, da Personen häufig auf Fotos erscheinen, während die Gesamtzahl der lesbaren Kennzeichen minimal ist Außerdem suche ich nach Werkzeugen, die die Gesichter verwischen . Pixelierung ist zwar ein Fallback, lässt sich aber nicht so gut in den Rest des Bildes integrieren wie Unschärfe.)

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

  • Es soll auf Smartphones und nicht auf Desktop-Computern wie dieser App ausgeführt werden .
  • Es ist für Videos gedacht, wie durch ähnliche Fragen wie diese oder diese oder diesen Artikel angezeigt .
  • 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 Software, die unter Windows und / oder Ubuntu ausgeführt wird, ohne dass eine Internetverbindung erforderlich ist (dh keine Cloud-Tools, bei denen ich alle Fotos zur Verarbeitung hochladen muss). Ein kostenloses Tool wäre schön, aber ein kostenpflichtiges Tool ist immer noch besser als gar kein Tool.

Antworten:


2

Ich habe für The GIMP das Face Detection Plugin von 2010 gefunden (keine Garantie, dass es noch funktioniert):

Bild

Andernfalls müssen Sie möglicherweise Ihre eigene Software bereitstellen. In diesem Fall siehe folgende Links:

Gesichtserkennungssoftware
Microsoft Research Gesichts-SDK Beta
Intel Perceptual Computing SDK

Besonders hervorzuheben ist OpenCV . Ein Beispiel mit Python finden Sie unter Erkennen von Gesichtern und automatischem Zuschneiden von Bildern .


1
Leider konnte ich das Plugin nicht zum Kompilieren bringen. Ich habe eine Reihe von Paketen installiert, die über die im Artikel angegebenen hinausgehen, und den Aufruf so aktualisiert cvHaarDetectObjects, dass er der aktuellen (nicht abwärtskompatiblen?) API mit einem zusätzlichen Parameter entspricht, aber gcc schlägt jetzt bei einem undefinierten Verweis auf fehl lrint.
ODER Mapper

lrint rundet auf die nächste Ganzzahl ab und ist definiert als "long int lrint (double x)". Sollte leicht zu codieren sein.
Harrymc

Ich werde diese Antwort vorerst akzeptieren, da sie die nützlichste ist und vielversprechend erscheint. Leider gibt mir das Kopfgeldsystem von SU nicht die nötige Zeit, um die verschiedenen Vorschläge ausreichend zu testen, um festzustellen , ob sie nützlich sind, bevor das Kopfgeld abläuft ... und einen Job zu haben ;-) Mit anderen Worten, vielen Dank, obwohl ich vielleicht einige hinzufügen möchte zusätzliche Bemerkungen später.
ODER Mapper

Hmm. Wenn ich eine Definition für hinzufüge lrint, beschwert sich der Compiler über widersprüchliche Definitionen, denn lrintwenn ich keine hinzufüge, beschwert er sich über lrinteine undefinierte Referenz.
ODER Mapper

Suchen Sie die betreffende Definition und stützen Sie Ihren Funktionsheader darauf.
Harrymc

5

Wenn Sie mit "einige Baugruppen erforderlich" -Lösungen zufrieden sind, versuchen Sie es mit "Facedetect" (das einfach OpenCV verwendet) und ImageMagick. Auf der folgenden Seite finden Sie ein Beispiel:

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

Ein paar Anmerkungen zum Beispiel:

  • Es verwendet Pixelierung, aber Sie können die "-scale" -Operatoren leicht durch eine einfache "-blur 0x100" ersetzen.
  • Jedes Gesicht wird im Beispiel unabhängig verarbeitet, genau das, was Sie benötigen: Sie können "display -crop GEOMETRY" verwenden, um das Gesicht vor dem Unschärfevorgang anzuzeigen. Bei "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 100% genau. Sie erhalten sowohl Fehlalarme als auch Fehlschläge. Insbesondere das Standard-OpenCV-Profil ist ohne zusätzliche Schulung definitiv nicht das beste auf dem Markt. False Positives können mit der von Ihnen beschriebenen Methode leicht umgangen werden, aber Misses sind 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 das Flag "-o" für ein Beispiel Ihrer Bilder und prüfen Sie, ob die Erkennungsrate für Ihre Anforderungen geeignet ist.


2

Die derzeit beste Antwort scheint zu sein:

https://github.com/openalpr/openalpr

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

Ich habe ein ähnliches Bedürfnis, also könnte ich es versuchen, aber meine Programmierkenntnisse sind ein bisschen ... verrostet.

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


Hm, C ++ ist keine meiner Kernsprachen, und ich habe derzeit keine Zeit zum Experimentieren, aber etwas später (Wochen? Monate?) Könnte ich darüber nachdenken, dies zum Üben zu versuchen. Aus der Readme-Datei geht jedoch hervor, dass dies nur für Nummernschilder gilt, nicht für Gesichter?
ODER Mapper

0

Wenn Sie sich mehr für die App-Entwicklung interessieren, können Sie versuchen, die API von Cloudinary zu verwenden. Hier finden Sie weitere Informationen dazu: http://cloudinary.com/blog/automatic_face_blurring_in_images_made_easy

Ich konnte auch keine Software-App finden, die das automatisch macht. Möglicherweise gibt es einige Plugins für Photoshop oder Gimp.


Es tut mir leid, ich hatte in meiner Frage bereits selbst auf diesen Artikel verlinkt, als Beispiel dafür, wonach ich nicht suche. Ich möchte meine Fotos nicht auf einen Webservice hochladen, da die Übertragung ewig dauert und wer weiß, was mit den Fotos einmal auf den Servern dieses Unternehmens passieren wird. Wenn es nichts Standalone gibt, werde ich weiter nach einem Gimp-Plugin suchen.
ODER Mapper

@ORMapper: Entschuldigung, das muss ich überspringen. Lassen Sie uns wissen, wenn Sie eine App finden.
Alex
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.