Zeigt zu viel "Haut" - Erkennung in der software
Baue ich eine ASP.NET Website, wo die Benutzer können Fotos hochladen, von sich selbst. Es könnte Tausende von Fotos hochgeladen jeden Tag. Eine Sache, die mein boss hat gefragt, ein paar mal ist, wenn es irgendeinen Weg gibt, könnten wir erkennen, wenn eines der Fotos zeigen zu viel "Haut", und automatisch verschieben, Kennzeichnen Sie diese als "Nur für Erwachsene", bevor die Redaktion die endgültige Entscheidung.
- Kann ich nicht wirklich beantworten, aber ich möchte nur darauf hinweisen, dass diese automatische Melder sind wirklich gut zur Identifikation von kahlen Menschen als nackt.
- lol, es hat eine Verwendung für Sie, dass irgendwo!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre beste Wette ist, um deal mit der Bild in den HSV-Farbraum (siehe hier für die rgb - hsv-Umrechnung). Die Farbe der Haut ist ziemlich das gleiche, zwischen allen Rassen, die nur die Sättigung verändert es sich. Durch den Umgang mit dem Bild im HSV-Sie können einfach eine Suche für die Farbe der Haut.
Dies können Sie tun, indem Sie einfach zählen die Anzahl der pixel innerhalb einer Farbpalette, oder Sie könnten führen region wachsen um pixel zu berechnen, die Größe der Bereiche, in denen die Farbe.
Edit: für den Umgang mit körnige Bilder, die Sie möchten möglicherweise führen Sie eine median-filter auf zuerst das Bild und dann reduzieren Sie die Anzahl der Farben zu segmentieren das Bild zuerst, Sie zu spielen, um mit den Einstellungen, die auf einer großen Menge von pre-klassierten (erwachsen oder nicht) Bilder und sehen Sie, wie die Werte sich Verhalten, um ein zufriedenstellendes Niveau der Erkennung.
EDIT: Hier etwas code, das sollte eine einfache Zählung (nicht getestet, es ist eine schnelle mashup von code aus hier und rgb auf hsl hier)
Natürlich, diese Fehler für den ersten Benutzer, der Beiträge, die ein close-up eines Gesichts (oder der hand oder Fuß, oder ähnliches). Letztlich sind alle diese Formen der automatisierten Zensur schlägt fehl, bis es einen echten Paradigmen-Wechsel in der Art und Weise Computern zu tun Objekterkennung.
Ich sage nicht, dass Sie sollten nicht versuchen, es trotzdem; aber ich möchte auf diese Probleme. Erwarten Sie nicht perfekt (oder sogar gute) Lösung. Es existiert nicht.
Bezweifle ich, dass es keine off-the-shelf-software, die bestimmen können, wenn die user-uploads ein freches Bild. Ihre beste Wette ist, um Benutzern die Bilder Kennzeichnen, die als 'Nur für Erwachsene' mit einer Taste neben dem Bild. (Klarstellung: ich meine damit ein anderer Benutzer als derjenige, der Sie hochgeladen das Bild-ähnlich wie die Beiträge können markiert werden beleidigend hier auf StackOverflow.)
Überlegen Sie auch, diese überprüfung von einem Versuch zu tun, die gleiche Sache in einem eigenen Produkt: http://www.dansdata.com/pornsweeper.htm.
Link geklaut aus heutiger StackOverflow-podcast, natürlich :).
Können wir auch nicht schreiben Filter, die erkennen, schmutzige Worte genau in blog-posts, und Ihr Chef wird Fragen, für eine porno-Detektor? CLBUTTIC!
Ich würde sagen, deine Antwort liegt in crowdsourcing die Aufgabe. Dies fast immer funktioniert und neigt zu skalieren sehr gut.
Es muss nicht beinhalten, dass einige Benutzer in "admins" zu sein und kommen mit verschiedenen Berechtigungen - es kann so einfach sein wie damit eine "unangemessene" link neben jedem Bild und halten Sie dabei zählen.
Siehe die wegweisenden Papier "Finden Nackte Menschen" von Fleck/Forsyth veröffentlicht in ECCV. (Advanced).
http://www.cs.hmc.edu/~fleck/naked.html
Interessante Frage aus einem theoretischen /Algorithmische standppoint. Ein Ansatz für das problem wäre die flag-Bilder, die große hautfarbene Regionen (wie bereits von Trull).
Jedoch, die Menge an Haut die gezeigt wird, ist nicht ein Faktor für eine offesive Bild, es ist vielmehr die Lage der Haut gezeigt. Vielleicht kann man das mit der Gesichtserkennung (Suche nach algorithmen) um die Ergebnisse zu verfeinern -- festzustellen, wie groß die Haut Regionen sind relativ zu Gesicht, und wenn Sie gehören dem Gesicht (vielleicht, wie weit unten Sie sind).
Weiß ich entweder Flickr oder Picasa hat diese umgesetzt. Ich glaube, die routine aufgerufen wurde FleshFinder.
Einen Tipp auf die Architektur, dies zu tun:
Diese laufen als windows-service getrennt von der ASP.NET Pipeline, anstatt die Analyse von Bildern in Echtzeit, erstellen Sie eine Warteschlange von neuen Bildern, die hochgeladen werden, für die service-arbeiten durch.
Können Sie verwenden Sie die normalen System.Zeichnung Zeug, wenn Sie wollen, aber wenn Sie wirklich brauchen, um zu verarbeiten, eine Menge der Bilder, es wäre besser, verwenden native-code und ein high-performance-Grafik-Bibliothek und P/invoke die routine von Ihrem service.
Als Ressourcen zur Verfügung stehen, verarbeitet die Bilder in den hintergrund und die Flagge diejenigen, die verdächtig sind, für die Redaktion abgeben, sollten diese zu beschneiden nach unten die Anzahl der Bilder zu überprüfen, erheblich, während die nicht störend Leute, die Bilder hochladen von der Haut farbigen Häuser.
Ich würde Ansatz das problem aus statistischer Sicht. Eine Reihe von Bildern, die Sie als sicher, und ein paar, dass Sie nicht (das wird für einen unterhaltsamen Tag der Forschung), und sehen, was Sie gemeinsam haben. Analysieren Sie alle für Farbbereich und Sättigung, um zu sehen, wenn Sie können wählen, Eigenschaften, die alle der freche Fotos, und einige von den sicher haben.
Vielleicht die Porno-Atem-Test wäre hilfreich - wie berichtet-auf Slashdot.
Rigan Ap-apid präsentierte ein Papier auf WorldComp '08 über dieses problem Raum. Das Papier ist angeblich hier, aber der server war das timing für mich. Ich besuchte die Präsentation des Papiers, und er bedeckt vergleichbare Systeme und Ihre Wirksamkeit sowie seinen eigenen Ansatz. Sie könnten ihn direkt zu Kontaktieren.
Ich fürchte, ich kann nicht helfen, zeigen Sie in die richtige Richtung, aber ich erinnere mich an das Lesen über diesen Vorgang vor. Es war in dem Kontext der Menschen, die beschweren sich über baby-Bilder gefangen und markiert fälschlicherweise. Wenn nichts anderes, kann ich Ihnen die Hoffnung, dass Sie nichts erfinden das Rad ganz von selbst... Jemand anderes hat diesen Weg!
CrowdSifter von Dolores Labs könnte den trick tun für Sie. Ich lese Ihren blog die ganze Zeit, wie Sie scheinen zu lieben, Statistiken und crowdsourcing und wie, darüber zu sprechen. Verwenden Sie amazon ' s mechanical turk, die für eine Menge von Ihrer Verarbeitung und wissen, wie Sie die Ergebnisse verarbeiten, um die richtigen Antworten aus der Dinge. Sehen Sie sich Ihre blog-zumindest, um zu sehen, ein paar Coole statistische Experimente.
Wie oben erwähnt von Bill (und Craig, die die google-quote) statistische Methoden sehr effektiv sein können.
Zwei Ansätze, die Sie könnten wollen zu schauen sind:
Den MVA-Ansatz wäre, um eine "repräsentative Stichprobe" der akzeptable Bilder und inakzeptabel Bilder. Die X-Daten wäre ein array von bytes von jedem Bild, das Y würde zugewiesen werden, die Sie als 1 für nicht hinnehmbar, und eine 0 für akzeptabel. Erstellen Sie ein PLS-Modell unter Verwendung dieser Daten. Führen Sie neue Daten mit dem Modell und sehen, wie gut es prognostiziert die Y.
Anstatt diese binäre Ansatz, den Sie haben könnte, mehrere Y ' s (z.B. 0=akzeptabel, 1=Badeanzug/Unterwäsche, 2=pornographischen)
Zur Erstellung des Modells kann man sich open-source-software oder es gibt eine Reihe von kommerziellen Softwarepaketen zur Verfügung (obwohl Sie in der Regel nicht Billig)
Weil selbst die beste statistische Ansätze sind nicht perfekt, die Idee, auch einschließlich der Benutzer-feedback wäre wahrscheinlich ein gute Idee.
Glück (und schlimmsten Fall bekommen Sie, Zeit zu verbringen, das sammeln von naughty Bilder als eine anerkannte und bezahlte Tätigkeit!)