Guard sequence matching against anchor jumps

Abierto
#739 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 6 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
fastapi, postgresql, python

Línea de trabajo

Start by reading issues #662 and #730, then locate the sequence matching logic and the test_best_matching_sequence cases mentioned here. Check how candidate selection handles box size ratios, intersections, and SEQUENCE_BBOX_TOLERANCE; calibrate any default against production data. Done means the regressions are covered and matches no longer jump to an aberrant box under the described conditions.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Follow-up to #662 and #730.

#730 attaches a bbox to the best-matching sequence instead of the first one. It does not address the third weakness of #662: once an aberrant bbox is attached, the sequence's anchor moves onto it and later boxes follow. Geometry alone also cannot settle some cases, two of which are pinned in test_best_matching_sequence:

  • a plume fading back to a small box, 0.05 from a same-sized neighbour, goes to the neighbour;
  • a large plume centred exactly on a new small box beats a same-sized neighbour shifted by 75 % of its width.

Proposal

Reject or demote a match when the new box does not look like the sequence's last real box:

  • Size ratio. If the new box area is more than N times the last box area (or less than 1/N), require a real intersection rather than tolerated edge contact. In the July case the giant box was ~1000x fire A's last box and matched it through a single edge.
  • No edge contact under competition. When several sequences are candidates, require a positive intersection. Keep SEQUENCE_BBOX_TOLERANCE for the single-candidate case only.

N should be calibrated on production data before choosing a default.

Out of scope: median-of-K inertia from #662, which changes the latest-bbox query and deserves its own discussion.

Lenguaje dominante
Python
Estrellas
30
Forks
15
Merge medio
7 d 16 h
PR fusionados (30 d)
16

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pyronear/pyro-api

Todos los issues de pyronear/pyro-api

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.