Interfaccia di input e output per l’algoritmo Rilevamento di oggetti - TensorFlow
Ciascuno dei modelli preaddestrati elencati nei modelli TensorFlow può essere ottimizzato per qualsiasi set di dati con un numero qualsiasi di classi di immagini. Fai attenzione a come formattare i dati di apprendimento per l'input nel modello Rilevamento degli oggetti - TensorFlow.
-
Formato di immissione dei dati di addestramento: i dati di addestramento devono essere una directory con una sottodirectory
imagese un fileannotations.json.
Di seguito è riportato un esempio di struttura di directory di input. La directory di input deve essere ospitata in un bucket Amazon S3 con un percorso simile al seguente: s3://. Tieni presente che il simbolo bucket_name/input_directory// finale è obbligatorio.
input_directory |--images |--abc.png |--def.png |--annotations.json
Il file annotations.json dovrebbe contenere informazioni sui riquadri di delimitazione e sulle relative etichette di classe sotto forma di dizionario "images" e chiavi "annotations". Il valore della chiave "images" deve essere un elenco di dizionari. Deve esserci un dizionario per ogni immagine con le seguenti informazioni: {"file_name": . Anche il valore della chiave image_name,
"height": height, "width":
width, "id":
image_id}"annotations" deve essere un elenco di dizionari. Deve esserci un dizionario per ogni riquadro di delimitazione con le seguenti informazioni: {"image_id": .image_id, "bbox": [xmin,
ymin, xmax, ymax], "category_id":
bbox_label}
Dopo l’addestramento, un file di mappatura delle etichette e un modello addestrato vengono salvati nel tuo bucket Amazon S3.
Addestramento incrementale
Puoi avviare l’addestramento di un nuovo modello con gli artefatti di un modello che hai sottoposto ad addestramento in precedenza con SageMaker AI. L'addestramento incrementale consente di risparmiare tempo quando vuoi sottoporre ad addestramento un nuovo modello con dati uguali o simili.
Nota
Puoi eseguire l’inizializzazione di un modello Rilevamento degli oggetti - TensorFlow di SageMaker AI solo con un altro modello Rilevamento degli oggetti - TensorFlow addestrato in SageMaker AI.
Puoi utilizzare qualsiasi set di dati per l'addestramento incrementale, purché il set di classi rimanga lo stesso. La fase di addestramento incrementale è simile alla fase di ottimizzazione, ma invece di iniziare con un modello preaddestrato, si inizia con un modello ottimizzato esistente. Per ulteriori informazioni su come utilizzare l’addestramento incrementale con Rilevamento degli oggetti - TensorFlow di SageMaker AI, consulta il notebook Introduzione a SageMaker TensorFlow - Rilevamento degli oggetti
Inferenza con l'algoritmo Rilevamento degli oggetti - TensorFlow
Puoi ospitare il modello ottimizzato che risulta dall’addestramento di Rilevamento degli oggetti TensorFlow per l'inferenza. Qualsiasi immagine di input per l'inferenza deve essere in formato .jpg, jpeg o .png ed essere di tipo di contenuto application/x-image. L'algoritmo Rilevamento degli oggetti - TensorFlow ridimensiona automaticamente le immagini di input.
L'esecuzione dell'inferenza produce riquadri di delimitazione, classi previste e punteggi di ogni previsione codificata in formato JSON. Il modello Rilevamento degli oggetti - TensorFlow elabora una singola immagine per richiesta e quindi emette solo una riga. Di seguito è riportato un esempio di risposta in formato JSON:
accept: application/json;verbose {"normalized_boxes":[[xmin1,xmax1,ymin1,ymax1],....], "classes":[classidx1,class_idx2,...], "scores":[score_1,score_2,...], "labels": [label1,label2, ...], "tensorflow_model_output":<original output of the model>}
Se accept è impostato su application/json, il modello esegue solo caselle, classi e punteggi normalizzati.