Comprender la visión computarizada

1

¿Por qué aprender computer vision?

2

¿Qué es la visión computarizada?

3

Tipos de visión computarizada

4

Introducción a object detection: clasificación + localización

5

Aprende a identificar problemas

Dimensionamiento de proyecto de visión computarizada

6

Cómo definir los tiempos de tu proyecto

7

Cómo costear tu proyecto

8

Cómo identificar los roles necesarios en el proyecto

9

Producto mínimo viable en computer vision

Obtención y procesamiento de los datos

10

Obtención de datos para tu proyecto

11

Limpieza de la base de datos

12

Distribución de datos en entrenamiento y testeo

13

Etiquetado de los datos de test

14

Etiquetado de los datos de train

15

Transforma tu base de datos a TFRecord

16

Transformar CSV a TFRecord

Entrena, testea y optimiza tus modelos

17

Librerías a importar durante fase de entrenamiento

18

Fase de entrenamiento del modelo

19

Balanceo de imágenes y data augmentation

20

Entrena, evalua y optimiza con TensorBoard

21

Validación de modelo en un entorno de ejecución

22

Re-entrenamiento del modelo para obtener mejores resultados

23

Seguimiento de centroides con OpenCV

24

Configuración de los centroides con OpenCV

25

Algoritmo de dirección y conteo con OpenCV

26

Crea un ciclo de entrenamiento de tu modelo: MLOps

Producto con visión computarizada en producción

27

Prepara tu entorno en Google Cloud Platform

28

Carga y preprocesamiento de modelos

29

Postprocesamiento de modelos

30

Despliega y consume tu modelo en producción

31

Bonus: aprende a apagar las máquinas de GCP para evitar sobrecostos

Siguientes pasos en inteligencia artificial

32

Siguientes pasos en inteligencia artificial

33

Comparte tu proyecto de detección de vehículos en carretera y certifícate

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Re-entrenamiento del modelo para obtener mejores resultados

22/33
Recursos

Aportes 10

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Reto aplicado a mi proyecto.

El mio no lo hizo tan mal

Reto Cumplido

aqui va el mio…muy bien hasta ahora
![](

Me funciono mal, siento que detecta bien, solo que la imagen se giro sola, que opinan?

Reto aplicado con el modelo 2.0, aplicado a nuevas imágenes:

El nuevo modelo no reconoce muy bien las motos, porque realmente en el nuevo dataset, las imágenes tenían muy pocas motos, por lo tanto, el número de muestras fue mucho menor.

El re-entrenamiento de un modelo para obtener mejores resultados es un proceso clave en la mejora de su rendimiento. A continuación te doy algunos enfoques comunes para mejorar el modelo mediante re-entrenamiento: \### 1. \*\*Recolección de Datos Adicionales\*\* \- \*\*Expande el conjunto de datos\*\*: Si el modelo no está alcanzando un buen rendimiento, es posible que no tenga suficiente diversidad en los datos de entrenamiento. Obtener más datos o incluir más ejemplos representativos de las clases puede mejorar el modelo. \- \*\*Aumento de datos\*\*: Si no puedes obtener más datos, puedes usar técnicas de aumento de datos, como la rotación o el cambio de escala en imágenes, o la sustitución de sinónimos en texto, para simular más datos. \### 2. \*\*Preprocesamiento de Datos\*\* \- \*\*Limpieza de datos\*\*: Eliminar o corregir datos incorrectos o faltantes puede mejorar significativamente los resultados. \- \*\*Normalización/Estandarización\*\*: Para muchos modelos, especialmente aquellos basados en redes neuronales, normalizar o estandarizar los datos puede hacer que el entrenamiento sea más estable y efectivo. \### 3. \*\*Ajuste de Hiperparámetros\*\* \- \*\*Búsqueda de hiperparámetros\*\*: Usar técnicas como la búsqueda en cuadrícula o la optimización bayesiana para encontrar los valores óptimos de hiperparámetros como la tasa de aprendizaje, el tamaño del batch, el número de capas, entre otros. \- \*\*Reducción de la tasa de aprendizaje\*\*: Si el modelo no mejora, a veces reducir la tasa de aprendizaje o usar un esquema de disminución de la tasa de aprendizaje puede ayudar a mejorar el rendimiento. \### 4. \*\*Cambiar la Arquitectura del Modelo\*\* \- \*\*Rediseñar el modelo\*\*: Cambiar la estructura del modelo, por ejemplo, añadiendo más capas o cambiando la función de activación, puede ser beneficioso para mejorar el rendimiento. \- \*\*Preentrenamiento y transferencia de aprendizaje\*\*: Si estás utilizando un modelo preentrenado, podrías intentar afinar aún más el modelo con tu conjunto de datos específico. \### 5. \*\*Técnicas de Regularización\*\* \- \*\*Dropout y L2 Regularization\*\*: Estos métodos ayudan a prevenir el sobreajuste y a mejorar la capacidad de generalización del modelo. \- \*\*Early Stopping\*\*: Detener el entrenamiento antes de que el modelo se sobreajuste a los datos de entrenamiento también es una técnica eficaz. \### 6. \*\*Evaluación y Ajuste Continuo\*\* \- \*\*Evaluar con datos de validación\*\*: Asegúrate de evaluar el modelo no solo en el conjunto de entrenamiento, sino también en un conjunto de validación para asegurarte de que el modelo está generalizando correctamente. \- \*\*Métricas de evaluación\*\*: Asegúrate de utilizar las métricas adecuadas para tu problema (precisión, recall, F1, AUC, etc.) y ajusta el modelo en función de estas métricas. \### 7. \*\*Entrenamiento Continuo (Online Learning)\*\* Si los datos siguen llegando con el tiempo (por ejemplo, en un sistema en producción), puedes entrenar el modelo continuamente con nuevos datos, en lugar de hacer un reentrenamiento completo cada vez. Cada uno de estos pasos puede llevar a una mejora incremental del modelo, pero el proceso de re-entrenamiento debe ser iterativo y ajustado según los resultados obtenidos en cada fase.

Aquí los resultados del entrenamiento con el nuevo dataset, aun se debe mejorar…

Un aporte referente a algo que me pasó en el script json-tfrecord… Los nombres de las imágenes en el nuevo dataset, contienen espacios y paréntesis, lo que hace que al generarse los JSON desde LinkedAI, los nombres cambien de la siguiente manera:

Donde hay espacios " ", convierte a signo +
Donde hay un (, convierte a %28
Y finalmente, donde hay ), convierte a %29

Por lo tanto, cuando se convierte el el JSON a CSV, los nombres también quedan con este nuevo formato de nombre (ejemplo: donde originalmente el nombre es 3 (4).png, el nuevo nombre es 3+%284%29.png). Por lo cual, cuando se ejecuta el script que genera el TFRecord, probablemente arroja un error así:

Lo que yo hice para solucionarlo, fue tomar los dos archivos CSV ya generados (train y test) con este formato, y modificarlos de esta manera:

import csv

with open('/content/test_labels.csv') as csv_file:
  with open('test_labels_fixed.csv', 'w') as out_file:
    for row in csv.reader(csv_file, delimiter=','):
      row[1] = row[1].replace("+"," ")
      row[1] = row[1].replace("%28","(")
      row[1] = row[1].replace("%29",")")
      csv.writer(out_file).writerow(row)

Espero que esto pueda servir de algo a quién también se le presente este error. Saludos.

Por el desbalanceo de clases, el modelo tal cual ha sido entrenado calcula coches casi con total probabilidad:

Para solucionarlo so suyo sería repetir el proceso añadiendo más imágenes de motos.