19.5.08

Prueba de imgSeek como clasificador pornográfico

Hace algún tiempo conté cómo se podía utilizar imgSeek para detectar imágenes pornográficas. La técnica es relativamente simple. Se aprovecha la capacidad de imgSeek para recuperar imágenes por su contenido (usando una técnica de representación basada en wavelets), para, dada una imagen objetivo, decidir si es pornográfica en función de las imágenes recuperadas sobre una colección de imágenes pornográficas y no pornográficas.

He realizado una pequeña prueba para evaluar la efectividad de esta idea, sobre una colección de imágenes pornográficas y no pornográficas descargadas de la Web. En total, he recolectado 3000 imágenes de cada tipo. De estas imágenes, he reservado 500 de cada tipo para evaluar la efectividad, y he usado las 5000 restantes como colección de imágenes a indexar con imgSeek. El proceso de indexación de las 5000 imágenes ha llevado en torno a 20 minutos en un PC con Linux Madriva 2008 virtualizado sobre MS Windows XP con VMWare Workstation, con un procesador a 1,8 Ghz y 1 Gb de memoria RAM.

He hecho pruebas recuperando, para cada imagen de prueba, un número de 5, 7, 9, ..., 21 imágenes similares con imgSeek, con el fin de determinar cual es el número óptimo. El tiempo total para cada grupo de 500 imágenes, dado uno de los números anteriores, es de unos 20 minutos, lo que implica que cada imagen se procesa y clasifica en sólo 2,4 segundos.

En la tabla siguiente muestro los resultados de esta prueba, separados por número de imágenes recuperadas para cada imagen de prueba, y por grupos pornográfico (P) y no pornográfico (NP). Sólo se exponen los valores para las 5 pruebas con mayor efectividad, y se muestran el número de imágenes correctamente clasificadas (Aciertos), el porcentaje cobre las 500 imágenes de cada grupo (%), y el porcentaje global para cada prueba con un número fijo de imágenes recuperadas (% total).

Si interpretamos como una probabilidad el número de imágenes pornográficas recuperadas para una dada, dividido por el total de imágenes recuperadas, la última fila muestra la probabilidad media de cada grupo de 500 imágenes según el número de imágenes recuperadas. Por ejemplo, el número 0,162 al final de la primera columna es la probabilidad media de ser pornográficas de las imágenes no pornográficas cuando usamos 11 imágenes en la recuperación.

Sobre los resultados que se han obtenido, se puede observar:

  • Que en general se obtienen buenos resultados con esta técnica, superiores casi siempre al 90% de efectividad.
  • Que el mejor resultado se obtiene con 11 imágenes recuperadas para cada imagen de prueba, alcanzando el 91,5% de aciertos sobre el total de 1000 imágenes pornográficas y no pornográficas.
  • Que ni la efectividad ni las probabilidades varían mucho entre cada prueba, de acuerdo con el número de imágenes usadas en la recuperación.

En general, se puede concluir que, simplemente usando un sistema de recuperación de imágenes ya disponible, se puede construir un clasificador de imágenes pornográficas razonablemente efectivo, aunque algo lento. Sobre la aceleración del proceso de clasificación, tengo algunas ideas, pero eso es tema para otro post (aunque los comentarios son bienvenidos).