Vergleich der besten APIs zum Filtern obszöner Inhalte

Vollständiges Testen mehrerer APIs zum Filtern von Bildern verschiedener Kategorien wie Nacktheit, Pornografie und Dissektion.



Eine Person versteht sofort, dass ein bestimmtes Bild unangemessen ist, dh NSFW (Not Safe For Work). Aber für künstliche Intelligenz ist nicht alles so klar. Viele Unternehmen versuchen derzeit, effektive Tools zum automatischen Filtern solcher Inhalte zu entwickeln.

Ich wollte verstehen, wie der aktuelle Stand des Marktes ist. Vergleichen Sie die Wirksamkeit vorhandener Bildfilter-APIs in den folgenden Kategorien:

  • Völlige Nacktheit
  • Suggestive Nacktheit (dh Suggestive Nacktheit - ca. Per.)
  • Pornografie / Geschlechtsverkehr
  • Nachahmung / animierter Porno
  • Zerstückelung (Gore) / Gewalt

Tl; DR: Wenn Sie nur die beste API herausfinden möchten, können Sie sofort zum Vergleich am Ende des Artikels gehen.

Versuchsbedingungen


Datensatz . Zur Auswertung habe ich meinen NSFW-Datensatz mit einer gleichen Anzahl von Bildern in jeder NSFW-Unterkategorie gesammelt. Der Datensatz besteht aus 120 Bildern mit 20 positiven NSFW-Bildern für jede der fünf genannten Kategorien und 20 SFW-Bildern. Ich habe mich entschieden, das öffentlich verfügbare YACVID 180 nicht zu verwenden, da es hauptsächlich auf der Verwendung von Nacktheit als Maß für den NSFW-Inhalt basiert.

Das Sammeln von NSFW-Bildern ist mühsam, es ist eine sehr lange und völlig schmerzhafte Aufgabe, die die geringe Anzahl von Bildern erklärt.

Der Datensatz steht hier zum Download bereit . [Warnung: enthält expliziten Inhalt]

Hier ist eine Tabelle mit Rohergebnissen für jede API und jedes Bild im Datensatz.

Metriken


Jeder der Klassifikatoren wird nach allgemein anerkannten Metriken bewertet:

Wirklich positiv: TP


Wenn der Klassifikator etwas NSFW aufruft und es tatsächlich NSFW ist.

Richtig negativ: TN


Wenn der Klassifikator etwas SFW aufruft und es tatsächlich SFW ist.

Falsch positiv: FP


Wenn der Klassifikator etwas NSFW heißt und dies tatsächlich SFW ist.

Falsch Negativ: FN


Wenn der Klassifikator etwas SFW nennt, es aber tatsächlich NSFW war.



Genauigkeit


Kann das Modell vertrauenswürdig sein, wenn es eine Prognose erstellt?

Genauigkeit


Wenn das Modell sagt, dass das Bild NSFW ist, wie oft ist die richtige Prognose?

Rückruf


Wenn alle Proben NSFW sind, wie viel identifiziert es?

F1-Punktzahl


Es ist eine Mischung aus Fehler und Rückruf, oft ähnlich der Genauigkeit.



Die folgenden APIs für die Inhaltsmoderation wurden bewertet:


Leistung nach Kategorie


Zuerst habe ich jede API in allen NSFW-Kategorien bewertet.

Pornografie / Sex


Die APIs von Google und Sightengine sind hier wirklich gut. Sie waren die einzigen, die alle pornografischen Bilder richtig erkannten. Nanonets und Algorithmia liegen mit einer Punktzahl von 90% leicht zurück. Microsoft und Imagga haben die schlechteste Leistung in dieser Kategorie gezeigt.





Bilder, die leicht zu identifizieren sind, sind eindeutig pornografisch. Alle APIs haben die obigen Bilder korrekt erkannt. Die meisten von ihnen sagten NSFW mit sehr großem Vertrauen voraus.



Schwer zu identifizierende Bilder enthalten teilweise geschlossene oder verschwommene Objekte, was die Arbeit erschwert. Im schlimmsten Fall haben 11 von 12 Systemen einen Fehler mit dem Bild gemacht. Die Effektivität bei der Erkennung von Pornografie ist sehr unterschiedlich, abhängig von der Intensität des Pornos und der Sichtbarkeit des Inhalts.

Völlige Nacktheit


Die meisten APIs zeigten mit vielen Bildern in dieser Kategorie eine überraschend gute Leistung und zeigten eine Erkennungsrate von 100%. Selbst die APIs mit der niedrigsten Leistung (Clarifai und Algorithmia) zeigten 90%. Die Definition von Nacktheit war schon immer Gegenstand von Debatten. Wie aus den Ergebnissen hervorgeht, versagen Systeme normalerweise in zweifelhaften Fällen, wenn es wahrscheinlich ist, dass das Bild noch SFW ist.





In einfachen Bildern ist explizite Nacktheit deutlich sichtbar. Jeder wird sie ohne Frage NSFW nennen. Keine einzige API hat einen Fehler gemacht, und die durchschnittliche Punktzahl betrug 0,99.



Bei kontroversen Bildern waren die APIs falsch. Vielleicht liegt der Grund darin, dass jeder von ihnen Empfindlichkeitseinstellungen hat.

Suggestive Nacktheit


Google gewann erneut mit einer Erkennungsrate von 100%. Sightengine und Nanonets schnitten mit 95% bzw. 90% besser ab als andere. Automatisierte Systeme erkennen suggestive Nacktheit fast so leicht wie explizit. Sie machen einen Fehler in Bildern, die normalerweise wie SFW aussehen, mit nur wenigen Anzeichen von Nacktheit.





Auch hier wurde bei expliziten NSFW-Bildern keine API verwechselt.



In suggestiver Nacktheit gingen die APIs auseinander. Wie in bloßer Nacktheit hatten sie unterschiedliche Toleranzschwellen. Ich selbst bin mir nicht sicher, ob ich diese SFW-Bilder erkennen soll oder nicht.

Nachahmung / animierter Porno


Alle APIs zeigten hier eine außergewöhnlich gute Leistung und fanden 100% Beispiele für die Nachahmung von Pornos. Die einzige Ausnahme war Imagga, bei der ein Bild fehlte. Ich frage mich, warum die APIs bei dieser Aufgabe so gut funktionieren. Anscheinend ist es für Algorithmen einfacher, künstlich erzeugte Bilder zu identifizieren als für natürliche.





Alle APIs zeigten hervorragende Ergebnisse und hohe Vertrauensbewertungen.



Das einzige Bild, auf dem Imagga sich geirrt hat, kann als kein Porno interpretiert werden, wenn man es lange nicht betrachtet.

Präparation


Dies ist eine der schwierigsten Kategorien, da die durchschnittliche Erkennungseffizienz durch die API weniger als 50% betrug. Clarifai und Sightengine übertrafen die Konkurrenz, indem sie 100% der Bilder in dieser Kategorie korrekt erkannten.





Die APIs handhabten medizinische Bilder am besten, aber selbst 4 von 12 Systemen machten den Fehler auf dem leichtesten von ihnen.



Schwierige Bilder haben nichts gemeinsam. Die Leute werden diese Bilder jedoch sehr leicht als blutig bezeichnen. Dies bedeutet wahrscheinlich, dass der Grund für die geringe Effizienz der Mangel an verfügbaren Daten für das Training ist.

Sichere Bilder


Bilder, die nicht als NSFW identifiziert werden können, gelten als sicher. Die Datenerfassung an sich ist schwierig, da diese Bilder in der Nähe von NSFW liegen müssen, um die API zu verstehen. Man kann argumentieren, ob alle diese Bilder SFW sind oder nicht. Hier zeigten Sightengine und Google das schlechteste Ergebnis, was ihre hervorragende Leistung in anderen Kategorien erklärt. Sie nennen einfach alle zweifelhaften NSFW-Bilder. Auf der anderen Seite hat Imagga hier gute Arbeit geleistet, weil es nichts NSFW nennt. X-Moderator schnitt ebenfalls sehr gut ab.




Links zu Originalbildern: SFW15 , SFW12 , SFW6 , SFW4

Auf Bildern, die leicht zu identifizieren sind, werden nur kleine Hautflecken angezeigt, und Menschen können sie leicht als SFW identifizieren. Nur ein oder zwei Systeme haben sie falsch erkannt.


Links zu Originalbildern: SFW17 , SFW18 , SFW10 , SFW3

Alle schwer zu identifizierenden SFW-Bilder zeigen größere Bereiche der Haut oder des Anime (Systeme berücksichtigen in der Regel Anime-Pornografie). Die meisten APIs zählten großflächige Bilder als SFW. Die Frage ist, ist das SFW?

Allgemeiner Vergleich


Wenn wir die Wirksamkeit der API in allen NSFW-Kategorien sowie ihre Wirksamkeit bei der korrekten Erkennung von SFW betrachten, können wir den Schluss ziehen, dass das beste F1-Ergebnis und die beste durchschnittliche Genauigkeit des Nanonets-Systems: Es funktioniert in allen Kategorien stabil gut. Das Google-System zeigt in den NSFW-Kategorien ein außergewöhnlich gutes Ergebnis, markiert jedoch zu oft sichere Bilder als NSFW und erhielt daher eine Geldstrafe für die F1-Metrik.







Von Entwicklern


Ich habe die Top-5-Systeme auf Genauigkeit und F1-Punktzahl verglichen, um Unterschiede in ihrer Leistung zu bewerten. Je größer die Fläche des Blütenblattdiagramms ist, desto besser.

1. Nanonets


Das Nanonets-System belegte in keiner Kategorie den ersten Platz. Dies ist jedoch die ausgewogenste Lösung. Der schwächste Punkt, an dem Sie noch arbeiten können, ist die Erkennungsgenauigkeit von SFW. Er ist zu empfindlich gegenüber exponierten Bereichen des Körpers.



2. Google


Google ist das beste in den meisten NSFW-Kategorien, aber das schlechteste in der SFW-Erkennung. Ich möchte darauf hinweisen, dass ich das Beispiel zum Testen mit Google genommen habe, das heißt, sie sollte diese Bilder "kennen". Dies kann der Grund für eine wirklich gute Leistung in den meisten Kategorien sein.



3. Clarifai


Clarifai ist wirklich hervorragend darin, die Aufteilung zu bestimmen. Vor den meisten anderen APIs ist das System auch gut ausbalanciert und funktioniert in den meisten Kategorien gut. Aber es fehlt ihr an Genauigkeit bei der Identifizierung von suggestiver Nacktheit und Pornografie.



4. X-Moderator


X-Moderator ist eine weitere ausgewogene API. Neben der Dissektion identifiziert er die meisten anderen Arten von NSFW eindeutig. 100% ige Genauigkeit bei der Bestimmung von SFW, was dieses System von Wettbewerbern unterscheidet.



5. Sightengine


Wie Google zeigte das Sightengine-System ein nahezu perfektes Ergebnis bei der Identifizierung von NSFW. Sie erkannte jedoch kein einziges Bild der Präparation.



Preise


Ein weiteres Kriterium bei der Auswahl einer API ist der Preis. Die Preise aller Unternehmen werden unten verglichen. Die meisten APIs bieten eine kostenlose Testversion mit eingeschränkter Nutzung an. Yahoo ist die einzige vollständig kostenlose API, die jedoch eigenständig gehostet werden muss. Diese API ist in dieser Tabelle nicht enthalten.



Amazon, Microsoft, Nanonets und DeepAI bieten den niedrigsten Preis von 1.000 USD pro Monat für eine Million API-Aufrufe.

Was ist die beste API für die Moderation von Inhalten?


Die subjektive Natur des NSFW-Inhalts macht es schwierig, den Gewinner zu bestimmen.

Für soziale Medien eines allgemeinen Themas, das sich mehr auf die Verteilung von Inhalten konzentriert und einen ausgewogenen Klassifikator benötigt, würde ich die Nanonets-API mit der höchsten Bewertung von F1 für den Klassifikator bevorzugen.

Wenn sich die Anwendung an Kinder richtet, wäre ich sicher und würde die Google-API aufgrund ihrer beispielhaften Wirksamkeit in allen Kategorien von NSFW wählen, selbst wenn einige normale Inhalte verloren gehen.





Was ist NSFW wirklich?




Nachdem ich viel Zeit mit diesem Problem verbracht hatte, erkannte ich eine wichtige Sache: Tatsächlich ist die Definition von NSFW sehr vage. Jede Person hat ihre eigene Definition. Was als akzeptabel angesehen wird, hängt weitgehend davon ab, was Ihr Service bietet. Teilweise Nacktheit ist in einer Dating-Anwendung akzeptabel, jedoch nicht in einem Kinderbett. Und im Gegenteil in einem medizinischen Journal. Eine wirklich graue Fläche ist suggestive Nacktheit, wo es unmöglich ist, die richtige Antwort zu bekommen.

Source: https://habr.com/ru/post/de431628/


All Articles