OpenCV redes neuronales y análisis de imágenes
Computer Vision es una de las ramas más de moda hoy en día el cual nos permite hacer interactuar el mundo real y el computacional y con eso lograr hacer entender a una computadora ( o red neuronal ) el mundo con el que interactúa.
Computer Vision
Es un subcampo del machine learning, este enseña a procesar/entender eventos a través de imágenes, básicamente nos permite hacer entender si es o no una vianesa… ( revisar sillicon valley ).
Los campos donde se utiliza computer vision es tan variado como objetos hay en el mundo, se intenta categorizar los distintos fenómenos en el mundo algunos ejemplos.
- Conducción automática de automóviles
- Líneas de vida en minería
- Face Recognition
- Variación de ríos
- 2 proyectos personales que pronto estarán en mercado ( si.. publicidad :p primera en el blog T_T me vendí al sistema)
OpenCV
Una de las más grandes bibliotecas de visión artificial el escenario perfecto para desplegar en nuestro querido jupyter notebook y ponerse de cabeza a jugar.
Los usos principales de esta librería es el manejo y edición de imágenes (un video se procesa por frames siendo un frame también una imagen) manejando una gran cantidad de opciones de edición nos permite hacer análisis de distintas imágenes y poder estandarizar estas, básicamente sirve de input para un modelo de machine learning/redes neuronales
Yolo
Al ingresar al mundo del computer vision nos toparemos continuamente con algunos frameworks para detección de objetos estos ya vendrán con cierto entrenamiento lo cual nos permitirá ahorrarnos cientos de miles de horas de procesamiento.
Las técnicas que utiliza para este pre-entrenamiento es la técnica de R-CNN y Fast R-CNN, utilizando las redes neuronales convolucionales como base y luego con un acercamiento para en análisis de regiones, este acercamiento lo dejo linkeado a su paper original.
Pd: Ahora en último detectron ha sido el nuevo acercamiento para el manejo de computer vision, pueden ver el proyecto aquí.
Aqui un video de esta implementación desde un dron
Ejemplo
En el ejemplo que podemos observar en el repositorio, podemos ver de manera funcional como utilizar las librerías de opencv, keras entre otras, posiblemente existan muchos mas post del desglose del código, por ahora… dejemos esto como una breve introducción.
Perros y Gatos
El ejemplo es un detector simple de imágenes de Perros/Gatos, los créditos de este código no son míos pero me parece un excelente ejemplo para todos.
Utilizando Keras para redes neuronales, opencv2 para el análisis de las imágenes, matplotlib para visualizar estas y una pequeña red neuronal con la utilización continua de funciones relu, tenemos nuestro no muy ejemplo donde analizamos de manera probabilística y categórica un par de pruebas, posiblemente si dedicamos más epochs el modelo sea capaz de mejorar eso se los dejo para practicar en google colab.
Y si… ese gato final de pruebas es mi gato.