Closed pastine closed 7 months ago
Estuve jugando con AutoKeras durante el 04/11. Autokeras sirve principalmente para encontrar arquitecturas de clasificadores de imágenes, no así para generar redes neuronales para detectar objetos.
Si queremos convertir este dataset en un dataset para construir clasificadores de imágenes, se puede seguir esta guia.
Para poder usar el modelo con los metodos de cv2.dnn
, hay que fijarse como exportarlo:
(no es algo que tengamos que hacer si o si, pero se puede reutilizar la misma interfaz y dejar el código mas prolijo: https://docs.opencv.org/3.4/d6/d0f/group__dnn.html#ga3b34fe7a29494a6a4295c169a7d32422)
Finalmente fuí por usar una lib que se llama ultralytics (+ Comet ML) que dispone un modelo YOLOv8 (1 y 2) para poder re-entrenar con transfer learning.
Las primeras pruebas dieron resultados bastante malos:
Pero quedan varias cosas para probar. Habría que cambiar el modelo inicial de nano a small o medium y probar esas dos variantes extra.
Además luego de eso podemos hacer hyperparameter tuning para mejorar los parámetros del modelo y podemos probar k-folds para aumentar el set de datos.
Además, podemos directamente buscar otros set de datos de billboards que tengan más imágenes.
Me gustó esta explicación de mAP y de YOLO en general: https://pyimagesearch.com/2022/05/02/mean-average-precision-map-using-the-coco-evaluator/
Ultralytics recomienda tener más de 1500 imagenes, y tambien se puede tener un 10% que sean imagenes sin objetos detectados: https://docs.ultralytics.com/yolov5/tutorials/tips_for_best_training_results/?h=best