bart-ai / bart

blocking ads in real time (and real life)
https://bart.fly.dev/
MIT License
0 stars 0 forks source link

CNN2 -> Armar una red convolucional de detección de objetos #8

Closed pastine closed 7 months ago

pastine commented 1 year ago

Evaluar las arquitecturas de redes convolucionales como VGGNet o MobileNet. Armar una red convolucional que detecta carteles publicitarios.

pastine commented 1 year 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.

FdelMazo commented 12 months ago

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)

pastine commented 12 months ago

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:

image

image image

(mAP: 1, 2 y 3, iou)

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.

FdelMazo commented 10 months ago

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/

FdelMazo commented 8 months ago

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