pragone.com
desarrollo, comunidad y monetización
agrégalo a del.icio.us

Detección de Spam en imágenes

Aprovecho mientras tengo al SciLab entrenando una ANN (Artificial Neural Network) para contarles sobre las últimas investigaciones que estoy haciendo.

En Loquo, buena parte de mi labor se centra no solo en el desarrollo de producto, sino en la investigación e innovación en la plataforma.

El primer fruto que logramos fue la creación del sistema de detección de duplicados. Este sistema ha tenido un impacto muy positivo en el sitio, logrando mejorar la calidad del contenido y por lo tanto la experiencia del usuario.

Claro está, los spammers no se iban a quedar de brazos cruzados y, como era lógico, han evolucionado sus técnicas.

Primero, se fueron por la ruta de colocar texto oculto (cuyo color se parece mucho al color de fondo), así que sacamos un sistema que elimina el texto oculto (utilizando un cálculo que toma en consideración la percepción de los colores para el ojo humano). Luego, colocaron texto muy pequeño… y también lo eliminamos.

Ahora, simplemente colocan textos aleatorios de forma visible y colocan toda la información “de verdad” en imágenes.

Por supuesto, colocar esta información en las imágenes las hace prácticamente indetectables… ¿o no? ;)

Pues es en eso en lo que estoy trabajando ahora. En luchar contra el Spam en Imágenes.

Problemas para la detección de Spam en Imágenes

La detección de Spam en imágenes es particularmente retadora porque una imágen no es más que un conjunto de pixels, cada uno de un color. A diferencia del texto en el que cada palabra tiene un sentido particular, un pixel o linea no tiene ningún significado como tal.Además, las imágenes son información bidimensional, mientras que el texto es de una sola dimensión…

En fin, es un problema mucho más complicado, así que..

¿Cómo afrontar el problema de detección de Spam en Imágenes?

Como siempre, en problemas complejos, no hay una solución sencilla. El sistema que tengo en mente tiene dos módulos principales:

  • Análisis de la imagen: En este se busca extraer información de la imagen para tratar de reconocer si una imágen particular es Spam o no.
  • Detección de imágenes duplicadas: En este otro, lo que se busca es saber si una imagen se parece a otra que ya se encuentre en el sistema y que haya sido identificada como Spam.

Cada una de estas tareas es todo un reto pues consisten de procesamientos altamente complicados, con lo cual escalarlo a una plataforma con tantos visitantes como lo es Loquo (más de 5.5 millones de Usuarios únicos al mes) es un problema doblemente complicado.

Análisis de la Imagen

Este sistema consiste en la extracción de información a partir de una imágen.

Evidentemente, la información más “sencilla” de extraer son los textos que se encuentren embebidos en la imágen a través de uso de un software OCR (Optical Character Recognition).

Para esto se deben hacer dos pasos:

  1. Document Layout Analysis: Este primer paso consiste en identificar en una imagen las áreas que probablemente contienen texto.
  2. OCR: Luego, las áreas con alta probabilidad de contener texto son pasadas al software OCR para ver qué es capaz de reconocer.

Otra forma de analizar la imagen sería intentar extraer información sobre los objetos que componen la imagen. Este es un proceso aún más complicado, pero podría servir, para, por ejemplo, reconocer si en una imagen hay una pistola o algún otro elemento prohibido.

Detección de imágenes duplicadas

Este sistema busca identificar si una imagen dada se parece lo suficiente a alguna otra imagen de una base de datos.

Evidentemente la forma trivial es simplemente compara los hashes de los archivos (MD5 o SHA1). Pero esto sólo sirve para reconocer que se trata del mismo archivo. Basta cambiar un pixel en la imagen y este sistema sería inválido. Por esto, la forma correcta de atajar este problema es con “Near-Duplicate Image Detection”.

El sistema de Near-Duplicate Image Detection consiste en crear una especie de Hash a partir de la imagen, pero de tal forma que si dos imágenes se parecen, sus respectivos Hashes también se parezcan. (Esto se conoce como LSH: Locality Sensitive Hashing.

En próximos artículos comentaré un poco sobre los avances logrados en cada una de estas áreas.

4 comentarios »

    1. Lau

      Es realmente interesante ver los pasos que estás dando para encontrar un sistema que detecte el spam en imágenes… ¡realmente interesante!

      ;)

    2. Muy interesante, pero como bien comentas es muy complejo… es interesante observar como cada vez que se realiza una política anti-spam de forma correcta e innovadora , los spamers realizan una nueva técnica que dificulta esta nueva detección.

      Lo primero que se me vino a la cabeza cuando leí el titular del artículo fue: OCR, y como bien has dicho es la forma de poder analizar la imagen. Aunque sigo diciendo que aunque la teoría es “fácil”, ponerla en práctica no tanto, de modo que te deseo mucha suerte.

      Cualquier novedad referente a la detección de spam en las imágenes, te agradecería que la publicaras.

      Un saludo,
      Alejandro Arco

    3. Buenas me han envidado un estudio igual que este para el proyecto corto que tengo que desarrollar por ello me gustaría poder saber como va el tema y si podrías enseñarme el nivel de desarrollo del cual llevas investigando etc.

      Con lo que sea aunque solo sea para ponernos en contacto tienes mi mail registrado, me mandas un mail y comentamos.

      Un saludo, y gracias por todo.

RSS feed de los comentarios. TrackBack URL

deja un comentario

Del.icio.us

enlaces de interés