es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

KeyError en balloon.py para a[‘regiones’]

En el archivo balloon.py en las muestras de Detectron2, obtengo un KeyError de ‘regions’ cada vez que ejecuto el balloon.py en mi conjunto de datos personalizado. Supuse que algo estaba mal con el archivo json en la carpeta de entrenamiento, así que primero utilicé el último VIA 3 y luego VIA 2.0.0. Ambos jsons crean el mismo KeyError.

Comparé el json de VIA de entrenamiento del balloon con mi json de VIA de entrenamiento, y ahora tienen la misma estructura, así que estoy pensando que ya no es un problema de json. ¿Por qué Python no puede leer una cadena como una clave?

Aquí está balloon.py: https://github.com/matterport/Mask_RCNN/blob/master/samples/balloon/balloon.py

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para KeyError de ‘regions’ en balloon.py en un conjunto de datos personalizado

    Si te estás enfrentando a un KeyError de ‘regions’ cada vez que ejecutas el archivo balloon.py en tu conjunto de datos personalizado, podría haber varias razones para ello. A continuación, se enumeran algunas comprobaciones que puedes realizar para resolver este problema:

    1. Verifica si tu conjunto de datos personalizado tiene el mismo formato que el conjunto de datos balloon. Esto incluye verificar si las anotaciones están en formato de segmentación de instancias COCO y si las imágenes están en el formato correcto.
    2. Verifica si las regiones están correctamente definidas en tu archivo VIA JSON y si no hay errores de ortografía en los nombres de los campos. Puedes utilizar un validador de JSON en línea o un visualizador de JSON para asegurarte de que tu JSON es válido.

    3. Si tu archivo JSON es válido y no hay errores de sintaxis, intenta imprimir el contenido del archivo JSON para verificar si el campo ‘regions’ está presente. Esto se puede hacer utilizando el siguiente código Python:

    import json
    
    with open('ruta_al_archivo_json.json', 'r') as f:
        data = json.load(f)
    
    print(data)
    

    Si el campo ‘regions’ no está presente en el JSON, deberás agregarlo manualmente. Puedes consultar el JSON de balloon y agregar el campo ‘regions’ a tu conjunto de datos personalizado.

    1. Si el campo ‘regions’ está presente en el JSON, entonces el problema podría estar en la forma en que Detectron2 está leyendo el JSON. Puedes intentar convertir tu JSON al formato COCO y luego ejecutar balloon.py en tu conjunto de datos.
  2. Otra posible solución es modificar el archivo balloon.py para omitir las imágenes en las que el campo ‘regions’ no esté presente. Puedes hacer esto agregando el siguiente código al archivo balloon.py, justo antes de la línea 89:

  3. if 'regions' not in annotation:
        continue
    

    Al agregar este código, se omitirán y no se procesarán las imágenes en las que el campo ‘regions’ no esté presente.

    Espero que estas soluciones te ayuden a resolver el problema de KeyError de ‘regions’ en balloon.py en tu conjunto de datos personalizado. Si ninguna de estas soluciones funciona, puedes intentar publicar tu problema en el repositorio de GitHub de Detectron2 o buscar asesoramiento de un experto en Python o Detectron2.

Comments are closed.