Akismet hace un trabajo increíble en la detección de comentarios no deseados. Pero los comentarios no son la única forma de spam en estos días. ¿Qué pasa si quisiera algo como akismet para detectar automáticamente imágenes pornográficas en un sitio de redes sociales que permite a los usuarios cargar 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 ciencia espacial 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?
Respuestas:
Esto fue escrito en 2000, no estoy seguro de si el estado del arte en la detección de pornografía ha avanzado en absoluto, pero lo dudo.
http://www.dansdata.com/pornsweeper.htm
fuente
En realidad, esto es bastante fácil. Puede detectar tonos de piel mediante programación, y las imágenes pornográficas tienden a tener mucha piel. Esto creará falsos positivos, pero si esto es un problema, puede pasar las imágenes detectadas mediante la moderación real. Esto no solo reduce en gran medida el trabajo de los moderadores, sino que también te brinda mucho porno gratis. Es ganar-ganar.
Este código mide los tonos de piel en el centro de la imagen. He probado 20 imágenes "pornográficas" relativamente mansas y 20 imágenes completamente inocentes. Marca el 100% del "porno" y 4 de las 20 imágenes limpias. Esa es una tasa bastante alta de falsos positivos, pero el guión pretende ser bastante cauteloso y podría ajustarse aún más. Actúa en tonos de piel claros, oscuros y asiáticos.
Sus principales debilidades con los falsos positivos son los objetos marrones como la arena y la madera y, por supuesto, no conoce la diferencia entre la carne "traviesa" y la "agradable" (como las fotos en la cara).
La debilidad con los falsos negativos serían imágenes sin mucha carne expuesta (como bondage de cuero), piel pintada o tatuada, imágenes en blanco y negro, etc.
código fuente e imágenes de muestra
fuente
Prefiero permitir que los usuarios informen sobre malas imágenes. El desarrollo del reconocimiento de imágenes puede requerir demasiado esfuerzo y tiempo y no será tan preciso como los ojos humanos. Es mucho más barato subcontratar ese trabajo de moderación.
Eche un vistazo a: Amazon Mechanical Turk
" Amazon Mechanical Turk (MTurk) es uno de los paquetes de Amazon Web Services, un mercado de crowdsourcing que permite a los programas de computadora coordinar el uso de la inteligencia humana para realizar tareas que las computadoras no pueden hacer".
fuente
fuente
¡AUGE! Aquí está el documento técnico que contiene el algoritmo.
¿Alguien sabe dónde obtener el código fuente para una implementación de Java (o cualquier idioma)?
Eso sería genial.
Un algoritmo llamado WISE tiene una tasa de precisión del 98% pero una tasa de falsos positivos del 14%. Entonces, lo que debe hacer es dejar que los usuarios marquen el 2% de falsos negativos, idealmente con eliminación automática si un cierto número de usuarios lo marcan, y hacer que los moderadores vean el 14% de falsos positivos.
fuente
Nude.js basado en el documento técnico de Rigan Ap-apid de la Universidad De La Salle.
fuente
Existe un software que detecta la probabilidad de pornografía, pero esta no es una ciencia exacta, ya que las computadoras no pueden reconocer lo que realmente hay en las imágenes (las imágenes son solo un gran conjunto de valores en una cuadrícula sin significado). Simplemente puede enseñarle a la computadora qué es pornografía y qué no dando ejemplos. Esto tiene la desventaja de que solo reconocerá estas o imágenes similares.
Dada la naturaleza repetitiva de la pornografía, tiene buenas posibilidades si entrena el sistema con pocos falsos positivos. Por ejemplo, si entrena el sistema con personas desnudas, también puede marcar imágenes de una playa con personas "casi" desnudas como pornografía.
Un software similar es el software de Facebook que salió recientemente. Solo está especializado en rostros. El principio fundamental es el mismo.
Técnicamente, 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 es un detector simple o simplemente calcula la similitud de la imagen actual con un conjunto de imágenes pornográficas guardadas.
Por supuesto, esto no se limita a la pornografía, en realidad es más un caso de esquina. Creo que son más comunes los sistemas que intentan encontrar otras cosas en imágenes ;-)
fuente
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 lo comprobé, los chicos de IA estaban luchando por identificar el mismo coche en dos fotografías tomadas desde un ángulo ligeramente alterado. Eche un vistazo a cuánto tiempo les llevó obtener un OCR o un 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 millones de meses-hombre que se les presentan.
Dicho esto, ¿podría simplemente agregar una "ofensiva"? enlace junto al contenido generado por el usuario y haga que un mod compruebe las quejas entrantes
editar:
Olvidé algo: SI vas a implementar algún tipo de filtro, necesitarás uno confiable. Si su solución fuera 50% correcta, se bloquearán 2000 de 4000 usuarios con imágenes decentes. Espere un ultraje.
fuente
Un estudiante graduado de la Universidad Nacional Cheng Kung en Taiwán hizo una investigación sobre este tema en 2004. Pudo lograr una tasa de éxito del 89,79% en la detección de fotografías de desnudos descargadas de Internet. Aquí está el enlace a su tesis: El estudio sobre la detección de imágenes de personas desnudas basado en el color de la piel
Está en chino, por lo que es posible que necesite un traductor en caso de que no pueda leerlo.
fuente
respuesta corta: use un moderador;)
Respuesta larga: no creo que haya un proyecto para esta causa, ¿qué es el porno? Sólo piernas, desnudez total, enanos, etc. Es subjetivo.
fuente
Agregue un enlace ofensivo y almacene el md5 (u otro hash) de la imagen ofensiva para que pueda etiquetarse 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 ejecutándose como un servicio web? Gran parte de la pornografía 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 realmente podría marcar la diferencia.
fuente
Si realmente tienes tiempo y dinero:
Una forma de hacerlo es 1) Escribiendo un algoritmo de detección de imágenes para encontrar si un objeto es humano o no. Esto se puede hacer enmascarando 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 minería de datos como los algoritmos C4 o la optimización del enjambre de partículas para aprender a detectar patrones que coincidan con las imágenes pornográficas.
Esto requerirá que identifique cómo deben verse los contornos de un hombre / mujer desnudos de un cuerpo humano en formato digitalizado (esto se puede lograr de la misma manera que funcionan los algoritmos de reconocimiento de imágenes OCR).
¡Espero que te diviertas! :-)
fuente
Me parece que el principal obstáculo es definir una "imagen porno". Si puede definirlo fácilmente, probablemente podría escribir algo que funcione. Pero incluso los humanos no pueden ponerse de acuerdo sobre qué es la pornografía. ¿Cómo lo sabrá la aplicación? La moderación del usuario es probablemente su mejor opción.
fuente
He visto una aplicación de filtrado web que filtra imágenes pornográficas, lo siento, no recuerdo el nombre. Era bastante propenso a falsos positivos, sin embargo, la mayor parte del tiempo funcionaba.
Creo que el truco principal es detectar "demasiada piel en la imagen :)
fuente
La detección de imágenes pornográficas sigue siendo una tarea de IA definida que todavía es muy teórica.
Aproveche el poder colectivo y la inteligencia humana agregando un botón / enlace "Informar spam / abuso". O emplee a varios moderadores para hacer este trabajo.
PD: Realmente me sorprende la cantidad de personas que hacen preguntas asumiendo que el software y los algoritmos son todopoderosos sin siquiera pensar si se puede hacer lo que 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"?
PD # 2. También recuerdo que periódicamente sucede que alguna situación en la que la gente misma no puede decidir si una foto es porno o se lleva al tribunal arte. Incluso después de que el tribunal dictamine, es probable que la mitad de las personas considere que la decisión es incorrecta. La última situación estúpida de este tipo fue recientemente cuando una página de Wikipedia fue prohibida en el Reino Unido debido a la imagen de la portada de un CD que muestra algo de desnudez.
fuente
Se me ocurren dos opciones (aunque ninguna de ellas detecta pornografía mediante programación):
fuente
los API del servicio web BrightCloud es perfecta para esto. Es una API REST para realizar búsquedas de sitios web como esta. Contiene una base de datos de filtrado web muy grande y muy precisa y una de las categorías, Adultos, tiene más de 10 millones de sitios de pornografía identificados.
fuente
He oído hablar de herramientas que utilizan un algoritmo muy simple, pero bastante efectivo. 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, la imagen se considera de contenido erótico / pornográfico. Por supuesto, ese algoritmo dará resultados falsos positivos para fotografías de rostros de cerca y muchas otras cosas.
Dado que está escribiendo sobre redes sociales, habrá muchas fotos "normales" con una gran cantidad de color de piel, por lo que no debe usar este algoritmo para rechazar todas las imágenes con resultado positivo. Pero puede utilizarlo para proporcionar ayuda a los moderadores, por ejemplo, marcar estas imágenes con mayor prioridad,
fuente
Este parece prometedor. Básicamente, detectan la piel (con calibración mediante el reconocimiento de rostros) y determinan las "rutas de la piel" (es decir, miden la proporción de píxeles de piel frente a píxeles de piel de la cara / píxeles de piel). Esto tiene un rendimiento decente. http://www.prip.tuwien.ac.at/people/julian/skin-detection
fuente
Mire el nombre del archivo y cualquier atributo. No hay suficiente información para detectar ni siquiera 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 captar algunos simples antes de pasar el resto a un moderador para que los juzgue.
El otro truco útil es lo contrario, por supuesto, mantener una lista blanca de fuentes de imágenes 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 de forma vinculante.
fuente
- Magistrado de la Corte Suprema de los Estados Unidos Potter Stewart, 1964
fuente
Puede encontrar muchos documentos técnicos en la red que tratan este tema.
fuente
No es ciencia espacial. Ya no. Es muy similar al reconocimiento facial. Creo que la forma más sencilla de solucionarlo es mediante el aprendizaje automático. Y como se trata de imágenes, puedo apuntar hacia redes neuronales, porque parecen ser las preferidas para las imágenes. Necesitará datos de entrenamiento. Y puede encontrar toneladas de datos de entrenamiento en Internet, pero debe 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 una, y aquí es donde las cosas se vuelven divertidas.
Como dijo alguien anteriormente, no se puede hacer al 100%. Habrá casos en los que tales algoritmos fallarán. 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.
fuente
Este es un detector de desnudez. No lo he probado. Es el único OSS que pude encontrar.
https://code.google.com/p/nudetech
fuente
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 ese 1-5%) simplemente verificando los nombres de las imágenes en busca de palabras relacionadas con el sexo :).
@SO Troll: Muy cierto.
fuente