Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Detección de objetos - MXNet
El MXNet algoritmo Amazon SageMaker AI Object Detection detecta y clasifica los objetos en las imágenes mediante una única red neuronal profunda. Es un algoritmo de aprendizaje supervisado que toma como entrada e identifica todas las instancias de objetos dentro de la escena de una imagen. El objeto es categorizado en una de las clases en una colección especificada con una puntuación de confianza que pertenece a la clase. Su ubicación y escala en la imagen se indican con un cuadro delimitador rectangular. Utiliza el marco Single Shot Multibox Detector (SSD)
Temas
- Interfaz de entrada/salida para el algoritmo de detección de objetos
- EC2Recomendación de instancia para el algoritmo de detección de objetos
- Cuadernos de ejemplo de detección de objetos
- Cómo funciona la detección de objetos
- Hiperparámetros de detección de objetos
- Ajuste de un modelo de detección de objetos
- Formatos de solicitud de detección de objeto y respuesta
Interfaz de entrada/salida para el algoritmo de detección de objetos
El algoritmo de detección de objetos mediante SageMaker IA admite los tipos de contenido application/x-recordio
RecordIO () e imagen (image/png
image/jpeg
, yapplication/x-image
) para el entrenamiento en modo archivo, y admite RecordIO (application/x-recordio
) para el entrenamiento en modo vertical. Sin embargo también puede realizar la capacitación en modo de canalización mediante los archivos de imágenes (image/png
, image/jpeg
y application/x-image
), sin necesidad de crear archivos RecordIO, mediante el formato de manifiesto aumentado. El formato de entrada recomendado para los algoritmos de detección de objetos de Amazon SageMaker AI es Apache MXNet Recordioapplication/x-image
para la inferencia.
nota
Para mantener una mejor interoperabilidad con los marcos de aprendizaje profundo existentes, esto difiere de los formatos de datos protobuf que suelen utilizar otros algoritmos de IA de Amazon SageMaker .
Consulte Cuadernos de ejemplo de detección de objetos para más información sobre formatos de datos.
Capacitación con el formato RecordIO
Si utiliza el formato RecordIO para la capacitación, especifique los canales de capacitación y validación como valores para el parámetro InputDataConfig
de la solicitud CreateTrainingJob
. Especifique un archivo RecordIO (.rec) en el canal de capacitación y un archivo RecordIO en el canal de validación. Establezca el tipo de canal para ambos canales en application/x-recordio
. Un ejemplo de cómo generar un archivo RecordIO se encuentra en el bloc de notas de muestras de detección de objetos. También puedes usar las herramientas MXNetde GluonCV para generar
Capacitación con el formato de imagen
Si utiliza el formato de imagen para la capacitación, especifique los canales train
, validation
, train_annotation
y validation_annotation
como valores para el parámetro InputDataConfig
de la solicitud CreateTrainingJob
. Especifique los archivos de datos de imagen individuales (.jpg or .png) para los canales de capacitación y validación. Para los datos de anotación, puedes usar el formato. JSON Especifique los archivos .json correspondientes en los canales train_annotation
y validation_annotation
. Establezca el tipo de contenido para los cuatro canales en image/png
o image/jpeg
en función del tipo de imagen. También puede utilizar el tipo de contenido application/x-image
cuando su conjunto de datos contiene imágenes .jpg y .png. A continuación se muestra un ejemplo de un archivo .json.
{ "file": "your_image_directory/sample_image1.jpg", "image_size": [ { "width": 500, "height": 400, "depth": 3 } ], "annotations": [ { "class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128 }, { "class_id": 0, "left": 161, "top": 250, "width": 79, "height": 143 }, { "class_id": 1, "left": 101, "top": 185, "width": 42, "height": 130 } ], "categories": [ { "class_id": 0, "name": "dog" }, { "class_id": 1, "name": "cat" } ] }
Cada imagen necesita un archivo.json para comentarios y el archivo.json debe tener el mismo nombre que la imagen correspondiente. El nombre del archivo .json anterior debe ser "sample_image1.json". Existen cuatro propiedades en el archivo .json de comentarios. La propiedad "file" especifica la ruta relativa del archivo de imagen. Por ejemplo, si las imágenes de entrenamiento y los archivos.json correspondientes están almacenados en s3://your_bucket
/train/sample_image y s3://your_bucket
/train_annotation, especifica la ruta de los canales train y train_annotation como s3:///train y s3:///train_annotation, respectivamente. your_bucket
your_bucket
En el archivo .json, la ruta relativa para una imagen denominada sample_image1.jpg debe ser sample_image/sample_image1.jpg. La propiedad "image_size"
especifica las dimensiones de la imagen global. SageMaker El algoritmo de detección de objetos de IA actualmente solo admite imágenes de 3 canales. La propiedad "annotations"
especifica las categorías y cuadros delimitadores para los objetos dentro de la imagen. Cada objeto se comenta con un "class_id"
índice y con cuatro coordenadas del cuadro delimitador ("left"
, "top"
, "width"
, "height"
). Los "left"
valores (coordenada x) y "top"
(coordenada y) representan la esquina superior izquierda del cuadro delimitador. Los "width"
valores (coordenada x) y "height"
(coordenada y) representan las dimensiones del cuadro delimitador. El origen (0, 0) es la esquina superior izquierda de toda la imagen. Si tiene varios objetos dentro de una imagen, todos los comentarios deben incluirse en un solo archivo .json. La propiedad "categories"
almacena el mapeo entre el índice de clase y el nombre de clase. Los índices de clase se deben numerar sucesivamente y la numeración debe comenzar por 0. La propiedad "categories"
es opcional para el archivo .json de comentarios
Capacitación con formato de imagen de manifiesto aumentado
El formato de manifiesto aumentado le permite realizar la capacitación en modo de canalización mediante los archivos de imágenes sin necesidad de crear archivos RecordIO. Debe especificar los canales de capacitación y de validación como valores para el parámetro InputDataConfig
de la solicitud CreateTrainingJob
. Cuando utilice el formato, es necesario generar un archivo de manifiesto de S3 que contenga la lista de imágenes y sus comentarios correspondientes. El formato del archivo de manifiesto debe estar en formato de JSONlíneas'source-ref'
que apunta a la ubicación de S3 de la imagen. Los comentarios se proporcionan bajo el valor del parámetro "AttributeNames"
tal y como se especifica en la solicitud CreateTrainingJob
. También puede contener metadatos adicionales en la etiqueta de metadata
pero el algoritmo los omite. En el siguiente ejemplo, los "AttributeNames
se encuentran en la lista ["source-ref", "bounding-box"]
:
{"source-ref": "s3://your_bucket/image1.jpg", "bounding-box":{"image_size":[{ "width": 500, "height": 400, "depth":3}], "annotations":[{"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 80, "height": 50}]}, "bounding-box-metadata":{"class-map":{"0": "dog", "5": "horse"}, "type": "groundtruth/object-detection"}} {"source-ref": "s3://your_bucket/image2.jpg", "bounding-box":{"image_size":[{ "width": 400, "height": 300, "depth":3}], "annotations":[{"class_id": 1, "left": 100, "top": 120, "width": 43, "height": 78}]}, "bounding-box-metadata":{"class-map":{"1": "cat"}, "type": "groundtruth/object-detection"}}
El orden de los "AttributeNames"
en los archivos de entrada importa a la hora de capacitar el algoritmo de detección de objetos. Acepta datos canalizados en un orden específico, con image
primero, seguido de annotations
. Por lo tanto, en este ejemplo, los AttributeNames «» "source-ref"
aparecen primero, seguidos de"bounding-box"
. Cuando se utiliza la detección de objetos con manifiesto aumentado, el valor del parámetro RecordWrapperType
se debe establecer como "RecordIO"
.
Para obtener más información sobre archivos de manifiesto aumentado, consulte Archivos de manifiesto aumentados para trabajos de entrenamiento.
Entrenamiento incremental
También puedes iniciar el entrenamiento de un nuevo modelo con los artefactos de un modelo que hayas entrenado previamente con SageMaker IA. El entrenamiento incremental ahorra tiempo de entrenamiento cuando quieres entrenar un nuevo modelo con datos iguales o similares. SageMaker Los modelos de detección de objetos de IA solo se pueden combinar con otro modelo de detección de objetos integrado y entrenado en SageMaker IA.
Para utilizar un modelo capacitado previamente, en la solicitud CreateTrainingJob
, especifique el ChannelName
como el "modelo" en el parámetro InputDataConfig
. Establezca ContentType
para el canal de modelo en application/x-sagemaker-model
Los hiperparámetros de entrada del nuevo modelo y del modelo capacitado previamente cargado al canal de modelos tienen que tener la misma configuración para los parámetros de entrada base_network
y num_classes
. Estos parámetros definen la arquitectura de red. Para el archivo de modelo previamente entrenado, utilice los artefactos del modelo comprimidos (en formato.tar.gz) generados por la IA. SageMaker Puede usar los formatos RecordIO o de imagen para los datos de entrada.
Para obtener más información sobre la capacitación incremental e instrucciones sobre cómo usarla, consulte Utilice la formación incremental en Amazon SageMaker AI.
EC2Recomendación de instancia para el algoritmo de detección de objetos
El algoritmo de detección de objetos admite las familias de instancias P2, P3, G4dn y G5. GPU Recomendamos usar GPU instancias con más memoria para el entrenamiento con lotes de gran tamaño. Puedes ejecutar el algoritmo de detección de objetos en configuraciones de varios o GPU varios equipos para un entrenamiento distribuido.
Puede usar tanto instancias CPU (como C5 y M5) como GPU (como P3 y G4dn) para la inferencia.
Cuadernos de ejemplo de detección de objetos
Para ver un ejemplo de cuaderno que muestra cómo utilizar el algoritmo de detección de objetos SageMaker mediante IA para entrenar y alojar un modelo en el
Conjunto de datos de Caltech Birds (CUB200 2011)
Para obtener más información sobre el algoritmo Amazon SageMaker AI Object Detection, consulte las siguientes entradas de blog: