top of page

Aprendizaje automático en la ciberseguridad.

Procesamiento de un conjunto de datos CAPTCHA

En esta receta, realizaremos la primera parte de la creación de un sistema para romper CAPTCHAs, en la que procesaremos un conjunto de datos de CAPTCHA para que sea adecuado para entrenar un modelo de aprendizaje automático.

 

La razón por la que no están representados todos los caracteres y dígitos es que los CAPTCHAs no contienen el dígito 1 ni la letra I, ya que los dos se confunden fácilmente. De manera similar con 0 y O. Dentro de cada carpeta, habrá una gran colección de instancias de la letra o dígito, recortadas y procesadas a partir de los CAPTCHAs iniciales.

 

Para obtener cada letra o dígito se han creado una serie de funciones que se explicarán a continuación:

    - get_CAPTCHA_label: Función para obtener la etiqueta de un CAPTCHA.

    - preprocess_CAPTCHA: Función para binarizar y convertir a escala de grises las imágenes CAPTCHA. Esto nos permite reducir la              computación, además de facilitar la determinación de dónde comienza un carácter y dónde termina el siguiente.

    - find_bounding_rectangles_of_contours: Función que toma los contornos del CAPTCHA y los utiliza para determinar los rectángulos        delimitadores de cada carácter. Una vez que se encuentra un rectángulo delimitador, es fácil recortar el carácter para aislarlo.

    - CAPTCHA_to_gray_scale_and_bounding_rectangles: funcion que combina las 2 ultimas funciones mencionadas.

    - bounding_rectangle_to_letter_image: función para recortar los caracteres.

    - crop_bounding_rectangles_and_save_to_file: Función que realizará el recorte de los CAPTCHA y guarda los caracteres aislados              resultantes, además de llevar un conteo de cuántos de cada carácter se han guardado.

Google colab:

bottom of page