BUG: Unreadable images interrupt the entire AI-tagging process
Los mantenedores suelen responder en 6 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- opencv, python
- Área
- backend, machine-learning
Línea de trabajo
Empieza con backend/app/models/ObjectClassifier.py y backend/app/utils/images.py; sigue cómo get_classes() maneja una imagen que OpenCV no puede cargar y cómo el bucle de etiquetado actualiza isTagged. Revisa las pruebas existentes para la clasificación de imágenes y el procesamiento por lotes. El trabajo estará hecho cuando se omitan las imágenes ilegibles sin detener el lote, mientras que las imágenes procesadas correctamente sin detecciones se marquen como etiquetadas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is there an existing issue for this?
- I have searched the existing issues
What happened?
Description
The AI-tagging process can terminate unexpectedly when PictoPy encounters an image that OpenCV cannot load or decode(corrupt or unsupported image).
In ObjectClassifier.get_classes() (backend/app/models/ObjectClassifier.py), cv2.imread() returns None when an image cannot be loaded. However, image_util_classify_and_face_detect_images() (backend/app/utils/images.py) directly calls len(classes) without checking for None, resulting in a TypeError that interrupts the entire tagging batch.
Expected Behaviour
- Unreadable images should be logged and skipped.
- Their isTagged status should remain False.
- Processing should continue with the remaining images.
- Successfully processed images with no detections should still be marked as tagged.
Actual behaviour
- Application retrieves multiple untagged images from the database.
- YOLO processes images sequentially.
- One image is corrupt or unreadable.
- get_classes() returns None.
- len(None) raises a TypeError.
- The entire tagging batch terminates.
- Remaining images are not processed during that run.
Why Does This Matter?
A single unreadable image can prevent an entire batch of otherwise valid images from receiving AI-generated tags. Handling such failures individually would improve the reliability and stability of PictoPy's AI-tagging pipeline.
Proposed Solution
Handle the None return value before accessing len(classes). Skip the unreadable image and continue processing the remaining images.
Record
- I agree to follow this project's Code of Conduct
- Lenguaje dominante
- Python
- Estrellas
- 313
- Forks
- 755
- Merge medio
- 6 d 36 min
- PR fusionados (30 d)
- 8
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de AOSSIE-Org/PictoPy
-
enhancement possible-duplicate
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
AOSSIE-Org/PictoPy#1715 · 2 comentarios ·
Los mantenedores suelen responder en 6 días
-
BUG: /folders/all-folders takes over a second when folders contain both images and videosPosiblemente ocupada @Saurabhyadav0 la tomó hace 1 día. Abiertobug enhancement possible-duplicate
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
AOSSIE-Org/PictoPy#1708 · 3 comentarios ·
Los mantenedores suelen responder en 6 días
-
Add unit tests for personUtils.tsPosiblemente ocupada @mystic-fae la tomó hoy. Abiertoenhancement
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
AOSSIE-Org/PictoPy#1707 · 3 comentarios ·
Los mantenedores suelen responder en 6 días
-
bug possible-duplicate
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
AOSSIE-Org/PictoPy#1700 · 3 comentarios ·
Los mantenedores suelen responder en 6 días
-
BUG: Share page returns HTTP 500 when the unlock cookie contains a non-ASCII characterQuizá libre de nuevo @swastiksharma45 la tomó hace 7 días y no hay ningún pull request abierto. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
AOSSIE-Org/PictoPy#1696 · 6 comentarios ·
Los mantenedores suelen responder en 6 días
Todos los issues de AOSSIE-Org/PictoPy
Issues similares
-
add entry to blockAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
StevenBlack/hosts#3299 ·
-
`garak --report` overwrites the input report when its name has no ".report"Posiblemente ocupada @0z5a la tomó hoy. Abiertoneeds-triage
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
plot_graph crashes when a mesh node has no m2m edgePosiblemente ocupada @tygvi la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
mllam/neural-lam#883 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
future-agi/future-agi#4092 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
transcript analytics: a text whose only protected spans the prose pass redacts is withheld wholeAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
WingedGuardian/GENesis-AGI#4641 ·
Los mantenedores suelen responder en 1 día