Saltar al contenido principal

Entrenando un Modelo Detector Personalizado

Con Roboflow, Google Colab y tu propio conjunto de datos, puedes entrenar rápidamente modelos detectores personalizados para Limelight.

Aquí tienes una visión general de los pasos que necesitarás seguir:

  • Recopilar y anotar imágenes de objetos de interés.
    • En este contexto, "anotación" es el proceso de dibujar cuadros delimitadores alrededor de los objetos de interés. Todo esto se puede hacer dentro de la interfaz web de Roboflow.
    • Alternativamente, puedes seleccionar un conjunto de datos público de Roboflow Universe
  • Exportar el conjunto de datos anotado como un .tfrecord, subirlo a Google Drive y usar nuestro Notebook de entrenamiento gratuito con Google Colab.
    • Google Colab te permite entrenar redes neuronales usando potentes GPUs en la nube de forma gratuita.

Tutorial:

1. El Conjunto de Datos

El Notebook de Entrenamiento de Limelight espera un conjunto de datos .tfrecord comprimido. Roboflow puede exportar archivos .tfrecord con un solo clic.

Puedes construir tu propio conjunto de datos con Roboflow, o explorar Roboflow Universe para conjuntos de datos pre-anotados.

Si optas por construir tu propio conjunto de datos, lee lo siguiente:

  • Debes maximizar la diversidad de tu conjunto de datos. La diversidad de tu conjunto de datos debe exceder la diversidad de lo que tu Limelight verá una vez implementado.

  • La calidad y precisión de tu conjunto de datos son de extrema importancia. Asegúrate de que tus cuadros delimitadores sean precisos y sigan una única convención. Por ejemplo, el cuadro delimitador de un objeto parcialmente oculto solo debe capturar la parte visible del objeto.

  • Usa letras minúsculas para las etiquetas de clase

  • Minimiza el número de etiquetas de clase.

  • Utiliza las aumentaciones de Roboflow, pero asegúrate de que tengan sentido. Si estás detectando pelotas rojas y azules, por ejemplo, asegúrate de no invertir o modificar fuertemente el tono en tu conjunto de datos aumentado.

Una vez que hayas etiquetado o encontrado un conjunto de datos, usa el botón "Download Dataset" de Roboflow para exportarlo como un Tensorflow TFRecord. Sube este archivo a tu Google Drive.

2. Entrenando el Modelo

Para entrenar tu detector personalizado, inicia una sesión de Google Colab con el Notebook de Entrenamiento de Detector de Limelight.

El Notebook no requiere ningún cambio de código. Sigue estos pasos para entrenar tu modelo:

Sección 1

  1. Expande la primera sección y haz clic en el botón de reproducción en la esquina superior izquierda de cada uno de los tres primeros bloques de código. El bloque de código final de "prueba" puede omitirse para ahorrar tiempo.

Sección 2

  1. Expande la segunda sección. Haz clic en el botón de reproducción del primer bloque para montar tu carpeta de Google Drive en el panel "Files" de tu sesión de Colab. Abre el panel de archivos haciendo clic en el botón de carpeta en el lado izquierdo de la pantalla.

  2. Una vez que tu Google Drive se monte, haz clic en el botón de actualizar en el panel "Files". Ejecuta el segundo bloque de código en esta sección para seleccionar tu archivo .tfrecord.zip ya subido en la carpeta gdrive. Encuentra el archivo y haz clic en el botón "select".

  3. Ejecuta los siguientes dos bloques de código para descomprimir y validar el TFRecord.

Sección 3

  1. Ejecuta todos los bloques de código en la sección 3 para prepararte para el entrenamiento

Sección 4

  1. Ejecuta todos los bloques de código en la sección 4 para comenzar el entrenamiento.

  2. Mientras el script de entrenamiento está en ejecución, puedes actualizar el panel de archivos y tensorboard para monitorear el progreso. Debería aparecer un nuevo punto de control en la carpeta "training_progress" cada 2000 pasos.

  3. Aunque el entrenamiento se detendrá automáticamente a los 40000 pasos, puedes detenerlo en cualquier momento con el botón de parada en el bloque de código final de esta sección. Siempre que haya puntos de control disponibles, puedes avanzar a la cuantización y compilación.

Secciones 5 - 7

  1. Ejecuta todos los bloques de código en la sección 5 para generar un archivo de etiquetas y convertir el modelo a un formato FlatBuffer compatible
  2. Ejecuta todos los bloques de código en la sección 6 para cuantizar el modelo para inferencia INT8 / 8 bits.
  3. Ejecuta todos los bloques de código en la sección 7 para preparar el modelo para Google Coral y Limelight. El bloque de código final tomará algo de tiempo y descargará el modelo entrenado como un archivo .zip.

Subir a Limelight

  1. Descomprime el archivo de tu sesión de Colab. Sube los archivos limelight_neural_detector_coral.tflite y labels.txt a tu Limelight.