tipo para paginas mejor imagenes google buscar buscadores buscador spam-prevention
código fuente e imágenes de muestra

spam prevention - para - ¿Cuál es la mejor manera de detectar imágenes pornográficas mediante programación?



imagenes de buscadores web (25)

Hoy no trataré más de definir los tipos de material que entiendo que están incluidos en esa breve descripción ["pornografía dura"]; y tal vez nunca podría tener éxito en hacerlo inteligiblemente. Pero lo sé cuando lo veo, y la imagen en movimiento involucrada en este caso no es eso.

- El juez de la Corte Suprema de los Estados Unidos, Potter Stewart, 1964

Akismet hace un trabajo increíble en la detección de comentarios de spam. Pero los comentarios no son la única forma de spam en estos días. ¿Qué sucede si quisiera que algo como akismet detecte automáticamente imágenes de pornografía en un sitio de redes sociales que les permita a los usuarios subir sus fotos, avatares, etc.?

Ya hay algunos motores de búsqueda basados ​​en imágenes, así como material de reconocimiento facial disponible, así que supongo que no sería una ciencia de cohetes y podría hacerse. Sin embargo, no tengo ni idea de cómo funcionan esas cosas y cómo debo hacerlo si quiero desarrollarlas desde cero.

¿Cómo debo empezar?

¿Hay algún proyecto de código abierto para esto?


¡AUGE! Aquí está el whitepaper contiene el algoritmo.

¿Alguien sabe dónde obtener el código fuente para una implementación en java (o en cualquier idioma)?

Eso sería rockero.

Un algoritmo llamado WISE tiene una tasa de precisión del 98% pero una tasa de falsos positivos del 14%. Entonces, lo que hace es dejar que los usuarios marquen los falsos negativos del 2%, idealmente con la eliminación automática si un cierto número de usuarios lo marcan, y hacer que los moderadores vean los falsos positivos del 14%.


Agregue un enlace ofensivo y almacene el md5 (u otro hash) de la imagen ofensiva para poder etiquetarlo automáticamente en el futuro.

¿Qué tan genial sería si alguien tuviera una gran base de datos pública de imagen md5 junto con etiquetas descriptivas que funcionaran como un servicio web? Gran parte del porno no es un trabajo original (en el sentido de que la persona que lo tiene ahora, probablemente no lo hizo) y las imágenes populares tienden a flotar en diferentes lugares, por lo que esto podría marcar la diferencia.



Este se ve prometedor. Básicamente, detectan la piel (con la calibración mediante el reconocimiento de las caras) y determinan las "trayectorias de la piel" (es decir, midiendo la proporción de píxeles de la piel en comparación con los píxeles de la piel de la cara / píxeles de la piel). Esto tiene un rendimiento decente. http://www.prip.tuwien.ac.at/people/julian/skin-detection


Esto se escribió en 2000, no estoy seguro de que el estado del arte en la detección de pornografía haya avanzado, pero lo dudo.

http://www.dansdata.com/pornsweeper.htm

El barredor de PORN parece tener cierta capacidad para distinguir imágenes de personas de imágenes de cosas que no son personas, siempre y cuando las imágenes sean en color. Es menos exitoso en distinguir las imágenes sucias de las personas limpias.

Con el valor predeterminado, sensibilidad media, si Recursos Humanos envía una imagen del nuevo capítulo en Cuentas, tiene un 50% de posibilidades de obtenerla. Si su hermana le envía una fotografía de su hijo de seis meses, es probable que sea detenido.

Es justo señalar errores divertidos, como llamar a la pornografía de Mona Lisa, si son representativos del comportamiento del software. Si los fabricantes admiten que su reconocedor de imagen algorítmica dejará caer la bola el 15% del tiempo, y luego se burlará de ella cuando hace exactamente eso es una tontería.

Pero PORNsweeper solo parece cumplir con las especificaciones establecidas en un departamento: la detección de pornografía real. Es medio decente en la detección de pornografía, pero es malo en detectar imágenes limpias. Y no me sorprendería si no se hicieran grandes avances en esta área en un futuro cercano.


Existe un software que detecta la probabilidad de pornografía, pero esto no es una ciencia exacta, ya que las computadoras no pueden reconocer lo que realmente está en las imágenes (las imágenes son solo un gran conjunto de valores en una cuadrícula sin significado). Simplemente puedes enseñar a la computadora lo que es porno y lo que no, dando ejemplos. Esto tiene la desventaja de que solo reconocerá estas imágenes u otras similares.

Dada la naturaleza repetitiva de la pornografía, es muy probable que entrene el sistema con pocos falsos positivos. Por ejemplo, si entrena el sistema con personas desnudas, puede marcar imágenes de una playa con personas "casi" desnudas como porno también.

Un software similar es el software de facebook que salió recientemente. Solo está especializado en caras. El principio principal es el mismo.

Técnicamente, se implementaría algún tipo de detector de características que utiliza un filtrado de bayes. El detector de características puede buscar características como el porcentaje de píxeles de color carne, si se trata de un simple detector o simplemente calcula la similitud de la imagen actual con un conjunto de imágenes pornográficas guardadas.

Esto, por supuesto, no se limita a la pornografía, en realidad es más un caso de esquina. Creo que más comunes son los sistemas que intentan encontrar otras cosas en imágenes ;-)


He oído hablar de herramientas que usaban algoritmos muy simples, pero bastante efectivos. El algoritmo calculó la cantidad relativa de píxeles con un valor de color cercano a algunos colores de "piel" predefinidos. Si esa cantidad es superior a algún valor predefinido, se considera que la imagen es de contenido erótico / pornográfico. Por supuesto, ese algoritmo dará resultados positivos falsos para fotos de primeros planos y muchas otras cosas.
Ya que estás escribiendo sobre redes sociales, habrá muchas fotos "normales" con una gran cantidad de color de piel, por lo que no debes usar este algoritmo para negar todas las imágenes con resultados positivos. Pero puede usarlo para proporcionar ayuda a los moderadores, por ejemplo, marcar estas imágenes con mayor prioridad, por lo que si el moderador desea consultar algunas imágenes nuevas para ver contenido pornográfico, puede comenzar a partir de estas imágenes.


He visto una aplicación de filtrado web que filtra imágenes porno, lo siento, no recuerdo el nombre. Era bastante propenso a los falsos positivos, sin embargo, la mayor parte del tiempo funcionaba.

Creo que el truco principal es detectar "demasiada piel en la imagen :)


La API del servicio web de BrightCloud es perfecta para esto. Es una API de REST para hacer búsquedas de sitios web como esta. Contiene una base de datos de filtrado web muy grande y precisa, y una de las categorías, Adulto, ¡tiene más de 10 millones de sitios pornográficos identificados!


La detección de imágenes de pornografía sigue siendo una tarea definitiva de IA que todavía es muy teórica.

Aproveche el poder colectivo y la inteligencia humana agregando un botón / enlace "Reportar spam / abuso". O emplear varios moderadores para hacer este trabajo.

PD Realmente sorprendido de cuánta gente hace preguntas asumiendo que el software y los algoritmos son tan poderosos sin siquiera pensar si se podría hacer lo que ellos quieren. ¿Son representantes de esa nueva generación de programadores que no entienden el hardware, la programación de bajo nivel y toda esa "magia detrás"?

PS # 2. También recuerdo que periódicamente ocurre una situación en la que las personas mismas no pueden decidir si una imagen es porno o si el arte es llevado a la corte. Incluso después de las reglas judiciales, es probable que la mitad de las personas consideren la decisión incorrecta. La última situación estúpida de este tipo fue bastante reciente cuando una página de Wikipedia fue prohibida en el Reino Unido debido a una imagen de portada de CD que presenta algo de desnudez.


La respuesta es realmente fácil: es bastante seguro decir que no será posible en las próximas dos décadas. Antes de eso probablemente obtendremos buenas herramientas de traducción. La última vez que revisé, los chicos de la IA estaban luchando para identificar el mismo auto en dos fotografías tomadas desde un ángulo ligeramente alterado. Eche un vistazo a cuánto tiempo les llevó obtener el OCR o el reconocimiento de voz lo suficientemente buenos juntos. Esos son problemas de reconocimiento que pueden beneficiarse enormemente de los diccionarios y aún están lejos de tener soluciones completamente confiables a pesar de los miles de millones de meses que se les presentan.

Dicho esto, simplemente puedes agregar una "ofensiva". enlace al lado del usuario generado y haga que un mod compruebe las quejas entrantes.

editar:

Olvidé algo: si va a implementar algún tipo de filtro, necesitará uno confiable. Si su solución es correcta en un 50%, se bloquearán 2000 de cada 4000 usuarios con imágenes decentes. Espera una indignación.


Me parece que el principal obstáculo es definir una "imagen porno". Si puedes definirlo fácilmente, probablemente puedas escribir algo que funcione. Pero incluso los humanos no pueden ponerse de acuerdo sobre qué es la pornografía. ¿Cómo sabrá la aplicación? La moderación del usuario es probablemente su mejor apuesta.


Mira el nombre del archivo y los atributos. No hay información suficiente para detectar incluso el 20% de las imágenes traviesas, pero una simple lista negra de palabras clave al menos detectaría imágenes con etiquetas descriptivas o metadatos. 20 minutos de codificación para una tasa de éxito del 20% no es un mal negocio, especialmente como una preselección que al menos puede capturar algunas simples antes de pasar el resto a un moderador para juzgar.

El otro truco útil es el opuesto, por supuesto, mantener una lista blanca de fuentes de imagen para permitir sin moderación o verificación. Si la mayoría de sus imágenes provienen de fuentes o cargadores seguros conocidos, puede aceptarlas a la perfección.


No es ciencia espacial. Ya no. Es muy similar al reconocimiento facial. Creo que la forma más fácil de lidiar con esto es usar el aprendizaje automático. Y como estamos tratando con imágenes, puedo apuntar hacia redes neuronales, porque parecen ser las preferidas para las imágenes. Necesitarás datos de entrenamiento. Y puede encontrar toneladas de datos de entrenamiento en Internet, pero tiene que recortar las imágenes a la parte específica que desea que detecte el algoritmo. Por supuesto, tendrá que dividir el problema en diferentes partes del cuerpo que desee detectar y crear datos de entrenamiento para cada uno, y aquí es donde las cosas se vuelven divertidas.

Como dijo alguien arriba, no se puede hacer al 100%. Habrá casos en que tales algoritmos fallan. La precisión real estará determinada por sus datos de entrenamiento, la estructura de sus redes neuronales y cómo elegirá agrupar los datos de entrenamiento (penes, vaginas, senos, etc., y combinaciones de los mismos). En cualquier caso, estoy muy seguro de que esto se puede lograr con alta precisión para imágenes pornográficas explícitas.


No hay forma de que puedas hacer esto al 100% (yo diría que tal vez el 1-5% sería plausible) con el conocimiento actual. Obtendría un resultado mucho mejor (que esos 1-5%) simplemente marcando los nombres de las imágenes para las palabras relacionadas con el sexo :).

@SO Troll: Muy cierto.


Preferiría permitir a los usuarios informar sobre malas imágenes. El desarrollo del reconocimiento de imágenes puede requerir mucho esfuerzo y tiempo y no será tan preciso como los ojos humanos. Es mucho más barato subcontratar ese trabajo de moderación.

Echa un vistazo a: Amazon Mechanical Turk

" Amazon Mechanical Turk (MTurk) es uno de los servicios de Amazon Web Services, un mercado de crowdsourcing que permite a los programas informáticos coordinar el uso de la inteligencia humana para realizar tareas que las computadoras no pueden hacer".


Puede encontrar muchos whitepapers en la red que tratan este tema.


Se me ocurren dos opciones (aunque ninguna de ellas está detectando pornografía programáticamente):

  1. Bloquee todas las imágenes cargadas hasta que uno de sus administradores las haya examinado. No hay razón para que esto lleve mucho tiempo: puede escribir un software que muestre 10 imágenes por segundo, casi como una película. Incluso a esta velocidad, es fácil para un ser humano detectar una imagen potencialmente pornográfica. Luego rebobinas en este software y miras más de cerca.
  2. Agregue la opción habitual "marcar esta imagen como inapropiada".

Si realmente tienes tiempo y dinero:

Una forma de hacerlo es 1) Escribiendo un algoritmo de detección de imágenes para determinar si un objeto es humano o no. Esto se puede hacer mediante el enmascaramiento de una imagen para recuperar sus "contornos" y ver si los contornos se ajustan a un contorno humano.

2) Los datos extraen muchas imágenes pornográficas y utilizan técnicas de extracción de datos como los algoritmos C4 o la optimización de enjambre de partículas para aprender a detectar patrones que coincidan con imágenes pornográficas.

Esto requerirá que identifique cómo deben ser los contornos de hombres / mujeres desnudos de un cuerpo humano en formato digitalizado (esto se puede lograr de la misma manera que funcionan los algoritmos de reconocimiento de imagen de OCR).

¡Espero que te diviertas! :-)


Un estudiante graduado de la Universidad Nacional Cheng Kung en Taiwán realizó una investigación sobre este tema en 2004. Pudo alcanzar una tasa de éxito del 89,79% en la detección de imágenes de desnudos descargadas de Internet. Aquí está el enlace a su tesis: El estudio sobre la detección de imágenes de personas desnudas según el color de la piel.
Está en chino, por lo tanto, es posible que necesite un traductor en caso de que no pueda leerlo.


respuesta corta: usar un moderador;)

Respuesta larga: no creo que haya un proyecto para esta causa, ¿qué es la pornografía? Sólo piernas, desnudos completos, enanos, etc. Es subjetivo.



Esto es realmente bastante fácil. Puedes detectar los tonos de piel programáticamente, y las imágenes pornográficas tienden a tener mucha piel. Esto creará falsos positivos, pero si se trata de un problema, puede pasar imágenes detectadas a través de la moderación real. Esto no solo reduce en gran medida el trabajo para los moderadores, sino que también te da mucha pornografía gratuita. Es ganar-ganar

#!python import os, glob from PIL import Image def get_skin_ratio(im): im = im.crop((int(im.size[0]*0.2), int(im.size[1]*0.2), im.size[0]-int(im.size[0]*0.2), im.size[1]-int(im.size[1]*0.2))) skin = sum([count for count, rgb in im.getcolors(im.size[0]*im.size[1]) if rgb[0]>60 and rgb[1]<(rgb[0]*0.85) and rgb[2]<(rgb[0]*0.7) and rgb[1]>(rgb[0]*0.4) and rgb[2]>(rgb[0]*0.2)]) return float(skin)/float(im.size[0]*im.size[1]) for image_dir in (''porn'',''clean''): for image_file in glob.glob(os.path.join(image_dir,"*.jpg")): skin_percent = get_skin_ratio(Image.open(image_file)) * 100 if skin_percent>30: print "PORN {0} has {1:.0f}% skin".format(image_file, skin_percent) else: print "CLEAN {0} has {1:.0f}% skin".format(image_file, skin_percent)

Este código mide los tonos de piel en el centro de la imagen. He probado en 20 imágenes "porno" relativamente dóciles y en 20 imágenes completamente inocentes. Marca el 100% de la "pornografía" y 4 de las 20 imágenes limpias. Esa es una tasa de falsos positivos bastante alta, pero el guión pretende ser bastante cauteloso y podría ajustarse aún más. Funciona en tonos de piel claros, oscuros y asiáticos.

Sus principales puntos débiles con falsos positivos son los objetos marrones como la arena y la madera y, por supuesto, no sabe la diferencia entre la carne "traviesa" y la "bonita" (como los disparos en la cara).

La debilidad con falsos negativos sería imágenes sin carne muy expuesta (como la esclavitud de cuero), piel pintada o tatuada, imágenes en blanco y negro, etc.

código fuente e imágenes de muestra