Índice del contenido[Esconder][Espectáculo]
- ¿Qué es la clasificación de imágenes?
- ¿Cómo funciona la clasificación de imágenes?
Clasificación de imágenes usando Tensorflow & Keras en python+-
- 1. Requisitos de instalación
- 2. Importación de dependencias
- 3. Inicializar parámetros
- 4. Cargando el conjunto de datos
- 5. Creando el modelo
- 6. Entrenando al modelo
- Probando el modelo
- 7. Importación de las utilidades para la prueba
- 8. Hacer un directorio de python
- 9. Cargando datos de prueba y modelo
- 10. Evaluación y predicción
- 11. Resultados
- Conclusión
Es tranquilizador saber que hemos logrado imbuir a los robots de nuestras habilidades innatas para aprender con el ejemplo y percibir su entorno. El desafío fundamental es que aquellos que enseñan a las computadoras a "ver" como los humanos necesitarían mucho más tiempo y esfuerzo.
Sin embargo, cuando consideramos el valor práctico que esta habilidad brinda actualmente a las organizaciones y empresas, el esfuerzo vale la pena. En este artículo, aprenderá sobre la clasificación de imágenes, cómo funciona y su implementación práctica. Vamos a empezar.
¿Qué es la clasificación de imágenes?
El trabajo de introducir una imagen en un red neural y hacer que genere algún tipo de etiqueta para esa imagen se conoce como reconocimiento de imágenes. La etiqueta de salida de la red corresponderá a una clase predefinida.
Puede haber numerosas clases asignadas a la imagen, o simplemente una. Cuando hay una sola clase, se usa con frecuencia el término “reconocimiento”, mientras que cuando hay varias clases, se usa con frecuencia el término “clasificación”.
Detección de objetos es un subconjunto de clasificación de imágenes en el que se detectan instancias particulares de objetos que pertenecen a una clase determinada, como animales, vehículos o humanos.
¿Cómo funciona la clasificación de imágenes?
Una imagen en forma de píxeles es analizada por una computadora. Lo logra tratando la imagen como una colección de matrices, cuyo tamaño está determinado por la resolución de la imagen. Simplemente hablando, la clasificación de imágenes es el estudio de datos estadísticos utilizando algoritmos desde la perspectiva de una computadora.
La clasificación de imágenes se logra en el procesamiento de imágenes digitales al agrupar píxeles en grupos predeterminados o "clases". Los algoritmos dividen la imagen en una sucesión de características destacables, lo que reduce la carga para el clasificador final.
Estas cualidades informan al clasificador sobre el significado de la imagen y la clasificación potencial. Debido a que el resto de los procesos de clasificación de una imagen dependen de ella, el método de extracción de características es la fase más crítica.
El datos proporcionados al algoritmo también es crucial en la clasificación de imágenes, especialmente en la clasificación supervisada. En comparación con un conjunto de datos terrible con un desequilibrio de datos basado en la clase y una calidad de imagen y anotación baja, un conjunto de datos de clasificación bien optimizado funciona admirablemente.
Clasificación de imágenes usando Tensorflow & Keras en python
Usaremos el CIFAR-10 conjunto de datos (que incluye aeronaves, aviones, pájaros y otras 7 cosas).
1. Requisitos de instalación
El siguiente código instalará todos los requisitos previos.
2. Importación de dependencias
Cree un archivo train.py en Python. El siguiente código importará las dependencias de Tensorflow y Keras.
3. Inicializar parámetros
CIFAR-10 incluye solo 10 categorías de imágenes, por lo tanto, las clases numéricas simplemente se refieren a la cantidad de categorías para clasificar.
4. Cargando el conjunto de datos
La función usa el módulo Tensorflow Datasets para cargar el conjunto de datos, y establecemos con info en True para obtener información al respecto. Puede imprimirlo para ver qué campos y sus valores son, y usaremos la información para recuperar la cantidad de muestras en los conjuntos de entrenamiento y prueba.
5. Creando el modelo
Ahora construiremos tres capas, cada una de las cuales consta de dos ConvNet con una función de activación de agrupación máxima y ReLU, seguidas de un sistema de 1024 unidades completamente conectado. En comparación con ResNet50 o Xception, que son modelos de última generación, este podría ser un modelo comparativamente pequeño.
6. Entrenando al modelo
Usé Tensorboard para medir la precisión y la pérdida en cada época y brindarnos una hermosa visualización después de importar los datos y generar el modelo. Ejecute el siguiente código; dependiendo de su CPU/GPU, el entrenamiento tomará varios minutos.
Para usar tensorboard, simplemente escriba el siguiente comando en la terminal o en el símbolo del sistema en el directorio actual:
Verá que la pérdida de validación se está reduciendo y la precisión aumenta a alrededor del 81 %. ¡Eso es fantástico!
Probando el modelo
Cuando finaliza el entrenamiento, el modelo final y los pesos se guardan en la carpeta de resultados, lo que nos permite entrenar una vez y hacer predicciones cuando lo deseemos. Siga el código en un nuevo archivo python llamado test.py.
7. Importación de las utilidades para la prueba
8. Hacer un directorio de python
Cree un diccionario de Python que traduzca cada valor entero a la etiqueta adecuada del conjunto de datos:
9. Cargando datos de prueba y modelo
El siguiente código cargará los datos de prueba y el modelo.
10. Evaluación y predicción
El siguiente código evaluará y hará predicciones sobre las imágenes de la rana.
11. Resultados
El modelo predijo la rana con un 80.62 % de precisión.
Conclusión
Bien, hemos terminado con esta lección. Si bien el 80.62 % no es bueno para un poco de CNN, le recomiendo enfáticamente que modifique el modelo o busque ResNet50, Xception u otros modelos de vanguardia para obtener mejores resultados.
Ahora que ha creado su primera red de reconocimiento de imágenes en Keras, debe experimentar con el modelo para descubrir cómo los diferentes parámetros afectan su rendimiento.
Deje un comentario