Detección de Objetos con TensorFlow
(fuente: AMP Tech).
INTRODUCCION
En este tutorial veras como hacer un detector de objetos usando el API de detección de objetos de TensorFlow. Explicado paso a paso.
EXPLICACIÓN PASO A PASO
1. Descargar el código completo utilizado en este tutorial visitando el siguiente link en GitHub. Seguir lo indicado en el video:
2. Ir a la pagina web de LabelImg y descargar la ultima versión del software ya sea para Linux o Windows. Este software servirá para el etiquetado. Seguir lo indicado en el video:
3. Una vez etiquetado las imágenes como se explico en el vídeo anterior, se procede luego a separar las imágenes en dos carpetas, una llamada img_entrenamiento que tendrá aproximadamente el 80% de imágenes con sus respectivos archivos xml generados, luego el 20% restante en la carpeta llamada img_test. Seguir lo indicado en el video:
4. Preparada las imágenes etiquetadas para el entrenamiento, se procede luego a descargar un modelo de detección de objetos pre entrenado, puede ser cualquier modelo que este pre entrenado para detectar cualquier clase de objetos. En este tutorial usaremos un modelo de TensorFlow detection model zoo, y practicaremos un aprendizaje por transferencia. El modelo que escojamos es el faster_rcnn_resnet101_coco. Seguir lo indicado en el video:
5. Desde samples/configs descargamos faster_rcnn_resnet101_coco.config que es el archivo de configuración para el aprendizaje. Creamos una carpeta por ejemplo llamada modelo y copiamos allí los modelos y archivo de configuración indicados en el siguiente video:
REQUERIMIENTOS
Para poder llevar a cabo este tutorial en tu totalidad es importante tener lo siguiente en nuestra computadora.
Estos son los pasos que seguiremos en este tutorial, no te preocupes si algo no queda claro, más adelante lo veremos a detalle.
PREPARACIÓN DE LA DATA
Preparar nuestros datos para entrenamiento, es decir marcar en un set de entrenamiento las coordenadas donde están los objetos que querremos que detecte. Usaremos un programa que nos ayuda a hacer esto de manera fácil y nos da un archivo XML con la información que requerimos.
Convertir los datos de XML a TFRecord. TFrecord es el formato de imagen que necesita nuestro algoritmo para poder entrenarse.
ENTRENAMIENTO
INTRODUCCION
En este tutorial veras como hacer un detector de objetos usando el API de detección de objetos de TensorFlow. Explicado paso a paso.
Para empezar es importante saber la distinción entre un clasificador de objetos y un detector de objetos.
Clasificación de imagen: Algoritmo el cual se encarga de clasificar TODA una imagen dentro de una categoría. Por ejemplo, le damos una foto de un auto y solo nos menciona que el objeto predominante en la foto es un auto.
Detección de objetos: Algoritmo el cual se encarga de detectar varios elementos dentro de una imagen y clasificarlos. Por ejemplo, le damos una imagen que contiene una parada de tránsito y nos identifica que en la imagen hay un semáforo, autos, señales de tránsito, árboles etc.
La lógica de cómo funciona este algoritmo no está en el alcance de este tutorial, aquí nos enfocaremos en entrenar un algoritmo para detectar los objetos que queramos dentro de una imagen.
EXPLICACIÓN PASO A PASO
1. Descargar el código completo utilizado en este tutorial visitando el siguiente link en GitHub. Seguir lo indicado en el video:
2. Ir a la pagina web de LabelImg y descargar la ultima versión del software ya sea para Linux o Windows. Este software servirá para el etiquetado. Seguir lo indicado en el video:
3. Una vez etiquetado las imágenes como se explico en el vídeo anterior, se procede luego a separar las imágenes en dos carpetas, una llamada img_entrenamiento que tendrá aproximadamente el 80% de imágenes con sus respectivos archivos xml generados, luego el 20% restante en la carpeta llamada img_test. Seguir lo indicado en el video:
4. Preparada las imágenes etiquetadas para el entrenamiento, se procede luego a descargar un modelo de detección de objetos pre entrenado, puede ser cualquier modelo que este pre entrenado para detectar cualquier clase de objetos. En este tutorial usaremos un modelo de TensorFlow detection model zoo, y practicaremos un aprendizaje por transferencia. El modelo que escojamos es el faster_rcnn_resnet101_coco. Seguir lo indicado en el video:
5. Desde samples/configs descargamos faster_rcnn_resnet101_coco.config que es el archivo de configuración para el aprendizaje. Creamos una carpeta por ejemplo llamada modelo y copiamos allí los modelos y archivo de configuración indicados en el siguiente video:
REQUERIMIENTOS
Para poder llevar a cabo este tutorial en tu totalidad es importante tener lo siguiente en nuestra computadora.
- Python 3.6
- Tensorflow
- Numpy
- Pandas
- Matplotlib
- Tarjeta de gráficos (Recomendada para poder hacer un entrenamiento de manera rápida, aunque es posible hacerlo sin GPU, puede llegar a tardar horas o días sin una tarjeta de gráficos NVIDIA)
Estos son los pasos que seguiremos en este tutorial, no te preocupes si algo no queda claro, más adelante lo veremos a detalle.
PREPARACIÓN DE LA DATA
Preparar nuestros datos para entrenamiento, es decir marcar en un set de entrenamiento las coordenadas donde están los objetos que querremos que detecte. Usaremos un programa que nos ayuda a hacer esto de manera fácil y nos da un archivo XML con la información que requerimos.
Convertir los datos de XML a TFRecord. TFrecord es el formato de imagen que necesita nuestro algoritmo para poder entrenarse.
ENTRENAMIENTO
- Elegir el modelo que entrenaremos.
- Preparar los archivos para entrenamiento
- Configuración de modelo
- Etiquetas de entrenamiento
- Gráfica computacional del modelo
- Entrenar el modelo
Comentarios
Publicar un comentario