modelo peces_Bajo10 v6

news
code
analysis
Author

Edlin Guerra Castro

Published

June 24, 2025

Evaluación del modelo de detección de peces – Versión v6

A diferencia del v5 (mAP50 de 44.6%), que solo incluyó 2400 imágenes (40 especies), la v6 contó con un dataset de 4100 imágenes (2260 de las cámaras y 1840 de iNaturalist). Además, se aplicaron técnicas de preprocesamiento y aumentación (x3) a las imágenes Train, resultando en un modelo con 9472 imágenes.

Después de más de 130 epochs de entrenamiento (7 horas), nuestro modelo de detección de peces ha alcanzado una etapa de madurez que merece análisis y adecuación de estrategia de anotación. A continuación, se presenta un resumen visual y técnico de los resultados obtenidos, basado en dos gráficos clave: el desempeño general del modelo y la precisión por clase.

(a) Gráfico de entrenamiento
(b) Precisión promedio por especie
Figura 1

Desempeño general

En la Fig. 1 (a) se muestra la evolución de las métricas principales:

  • mAP@50 (línea morada): alcanzó un valor estable de aproximadamente 44%. Esta métrica indica qué tan bien el modelo predice cajas con al menos un 50% de intersección con las cajas reales (IoU). A partir del epoch 100, las mejoras se volvieron marginales (<1%), indicando un punto de saturación.
  • mAP@50:95 (línea lila clara): se estabilizó en torno a 33%, siendo una métrica más estricta, ya que evalúa el desempeño a través de umbrales de IoU desde 50% hasta 95%.

Interpretación: Aparentemente no hubo mejorías respecto a la versión 5 (mAP50 de 44.6%). Este resultado da la impresión de que el modelo no mejoró, pero no hay que dejarnos engañar por ese valor. El modelo muestra un rendimiento aceptable considerando el drástico aumento de especies en la versión 6 (incluyó 99 especies). Si se remueven especies con menos de 40 imágenes, el mAP50 es de 62%. Es decir, sí mejoró el modelo para las especies que nos interesan.

Análisis del desempeño del modelo por especie

En la figura Fig. 1 (b) se resume la métrica mAP@50 para cada clase (especie) en el dataset de Test. Se observa una variabilidad considerable entre especies:

Algunas especies con alta precisión (>70%):

  • Abudefduf saxatilis (72.6%)
  • Bodianus rufus (93.6%)
  • Holacanthus ciliaris (91.8%)
  • Mycteroperca interstitialis (77.8%)
  • Lachnolaimus maximus (75.6%)

Estas especies suelen presentar: Consistencia en las anotaciones, buena representación en el dataset de entrenamiento, imágenes con alta variabilidad de entorno.

Algunas especies con baja precisión (<25%):

  • Caranx ruber (21.6%)
  • Haemulon sciurus (22.6%)
  • Sparisoma viride (32%)
  • Sparisoma rubripinne (9.4%)
  • Scarus iseri (32%)

En estos casos, las bajas precisiones podrían deberse a: inconsistencia en anotaciones, alta similitud entre especies, número limitado de imágenes. Es muy importante hacer notar que muchas especies (casi 40) son secundarias en imágenes en iNaturalist. Por ello no hay suficientes para poder probar adecuadamente el modelo en esas especies. Otras especies tienen fases intermedias que dificultan la construcción de un modelo asociable a la misma especie.

Relación mAP50 con el núemro de imágenes

En la Fig. 2 se observa una relación variable del desempeño del modelo (mAP@50) por especie respecto el número de imágenes (a). Algunas especies como Abudefduf saxatilis y Anisotremus virginicus tienen más de 700 imágenes de entrenamiento y logran mAP@50 aceptables (60-70%), mientras que otras con un número similar de imágenes (como Lutjanus griseus) muestran mAP mucho menores. Esto indica que la cantidad por sí sola no garantiza buen desempeño. En contraste, muchas especies provenientes de iNaturalist, con solo ~100 imágenes, logran mAP50 superiores al 90%. Esto sugiere que la calidad y diversidad visual de las imágenes puede compensar la escasez de datos.

(a) Número de imágenes
(b) Tamaño del cuadro
Figura 2: Relación del mAP50 con número de imágenes y tamaño de cuadros

Relación mAP50 con el tamaño de las cajas/polígonos

Se identificó que las especies con cajas promedio pequeñas (como Caranx latus y Caranx ruber) tienden a tener mAP50 bajo (Fig. 2), lo cual es esperable, ya que los objetos pequeños son más difíciles de detectar correctamente en tareas de visión por computadora. Sin embargo, también existen especies con áreas muy grandes de bounding box y desempeño pobre, como Epinephelus morio y Sparisoma viride. Esto puede deberse a variabilidad extrema en el tamaño de las cajas dentro de la misma clase, oclusiones o peces segmentados por borden de imagen, o poca consistencia en el etiquetado (especialmente en imágenes de las cámaras SAMP).

Recomendación

  1. Aumentar variedad de imágenes en algunas especies. El modelo se beneficiará de incorporar imágenes donde las especies de interés no aparezcan en primer plano. Esto suele ocurrir en imágenes de iNaturalist.

  2. Detener las anotaciones a las imágenes del SAMP de agosto de 2024. La variabilidad ambiental quedó bien representada con 2260 imágenes de ese período, el modelo no aprende más de ellas. Pasar a etiquetar imágenes SAMP de septiembre de 2024.

  3. Modificar varias de las anotaciones dudosas a pez borroso , unindentifiable o Por identificar. Las métricas del modelo se podrían beneficiar de un refinamiento en las anotaciones, específicamente de pasar varias de sus anotaciones de especies borrososas o identificación cuestionable a pez borroso, unindentifiable o Por identificar.

  4. Usar la nueva clase Por identificar para especies no identificables. Actualmente estábamos usando unindentifiable tanto para especies borrososas como para especies de identificación desconocida. Los comentarios, por alguna razón que desconozco, dejaron de funcionar ya que Roboflow no está enviando las notificaciones al correo. Por esta razón no hemos podido atender todos los comentarios en que me etiquetaron a mi o a Ángela. La etiqueta Por identificar nos permitirá filtrar rápidamente todas las imágenes en que hayan peces por identificar y forzar rápidamente que no pasen a Test una vez sean identificados.

  5. Separar especies comunes por fases o etapas de desarrollo. Varias especies de peces tienen forma y patrón de coloración muy diferente en fases juveniles, intermedias y adultos. No será posible tener buenas métricas de predicción si las tres formas están identificadas con la misma clase. Por ello se deben separar y ser tratadas como clases distintas.

  6. Analizar la calidad de imágenes que fueron aleatoriamente asignadas al dataset Test. Debido a que son esas las imágenes con las que se harán las predicciones que definen las métricas de desempeño del modelo, no conviene que las imágenes allí incluídas tengan una pobre representación de las especies de interés. Por ejemplo, una rápida evaluación que hice de las imágenes de Ocyurus chrysurus me permitió detectar que las imágenes Test con esa especie (25), tenían pocos ejemplares, eran individuos muy borrosos, pequeños y en varios casos eran individuos de Caranx bartholomaei. No obstante, si al actual modelo le suministro imágenes claras con ejemplares de Ocyurus chrysurus los identifica sin problema. Es decir, el modelo predice bien si la imagen es de calidad razonable, pero genera métricas mediocres como artefacto del azar en las imágenes en Test .

Con base en las métricas actuales, las estrategias para las actuales especies se presentan acontinuación:

Table 1: Estrategia para las especies actualmente modeladas
No class n_boxes n_imagenes mAP50 estrategia
1 Caranx ruber 864 237 21 Distinguir fases, agrupar por género o aumentar con iNaturalist
2 Haemulon sciurus 414 132 27 Distinguir fases, agrupar por género o aumentar con iNaturalist
3 Epinephelus morio 171 108 29 Distinguir fases, agrupar por género o aumentar con iNaturalist
4 Sparisoma aurofrenatum 138 102 31 Distinguir fases, agrupar por género o aumentar con iNaturalist
5 Sparisoma viride 180 123 32 Distinguir fases, agrupar por género o aumentar con iNaturalist
6 Scarus iseri 201 138 32 Distinguir fases, agrupar por género o aumentar con iNaturalist
7 Caranx latus 3753 210 39 Distinguir fases, agrupar por género o aumentar con iNaturalist
8 Haemulon flavolineatum 228 114 43 Reforzar con iNaturalist
9 Nicholsina usta 174 117 43 Reforzar con iNaturalist
10 Scarus taeniopterus 174 111 44 Reforzar con iNaturalist
11 Sphyraena barracuda 162 108 47 Reforzar con iNaturalist
12 Scarus vetula 171 114 47 Reforzar con iNaturalist
13 Mycteroperca bonaci 195 105 48 Reforzar con iNaturalist
14 Lachnolaimus maximus 183 105 54 Reforzar con iNaturalist
15 Urobatis jamaicensis 144 108 54 Reforzar con iNaturalist
16 Lutjanus griseus 4623 510 54 Revisar calidad de anotaciones
17 Ocyurus chrysurus 762 246 55 Revisar calidad de anotaciones
18 Pomacanthus paru 177 105 56 Reforzar con iNaturalist
19 Diodon hystrix 183 108 57 Reforzar con iNaturalist
20 Acanthurus coeruleus 399 147 59 Reforzar con iNaturalist
21 Caranx bartholomaei 1278 159 60 Revisar cajas y contexto (posibles borrosos)
22 Haemulon plumierii 4911 837 62 Revisar cajas y contexto (posibles borrosos)
23 Rhomboplites aurorubens 1131 105 64 Aumentar variabilidad de imágenes
24 Haemulon flavolineatum juvenil 35550 852 65 Revisar cajas y contexto (posibles borrosos)
25 Chaetodon ocellatus 210 108 66 Aumentar variabilidad de imágenes
26 Acanthurus chirurgus 552 141 66 Aumentar variabilidad de imágenes
27 Epinephelus adscensionis 156 117 67 Aumentar variabilidad de imágenes
28 Anisotremus virginicus 1755 642 68 Revisar cajas y contexto (posibles borrosos)
29 Diodon holocanthus 579 117 69 Aumentar variabilidad de imágenes
30 Sparisoma chrysopterum 165 117 69 Aumentar variabilidad de imágenes
31 Abudefduf saxatilis 3468 705 72 Revisar cajas y contexto (posibles borrosos)
32 Ephinephelus itajara 249 105 75 Aumentar variabilidad de imágenes
33 Scarus coelestinus 252 126 76 Aumentar variabilidad de imágenes
34 Halichoeres bivittatus 138 111 78 Aumentar variabilidad de imágenes
35 Kyphosus vaigiensis 273 105 81 Sin intervención (desempeño alto)
36 Pomacanthus arcuatus 186 108 82 Sin intervención (desempeño alto)
37 Mycteroperca venenosa 186 105 83 Sin intervención (desempeño alto)
38 Mycteroperca interstitialis 171 117 85 Sin intervención (desempeño alto)
39 Ginglymostoma cirratum 252 120 85 Sin intervención (desempeño alto)
40 Chaetodon sedentarius 471 108 90 Sin intervención (desempeño alto)
41 Calamus bajonado 165 108 93 Sin intervención (desempeño alto)
42 Scarus guacamaia 216 111 99 Sin intervención (desempeño alto)
43 Lutjanus analis 156 105 100 Sin intervención (desempeño alto)
44 Chaetodon capistratus 180 111 100 Sin intervención (desempeño alto)