Preelaborazione e post - elaborazione
È possibile caricare personalizzazioni per effettuare operazioni prima e dopo ogni operazione di inferenza senza intervento manuale.
- Modello custom.py
- File requirements.txt facoltativo
- Distribuzione di un modello con pre - elaborazione, post - elaborazione o entrambi
Modello custom.py
Utilizza il template custom.py per generare un file Python denominato custom.py. Il file può contenere istruzioni per la preelaborazione, la post - elaborazione o entrambe. La versione dipende dal tipo di modello:
- Python 2 per Alta risoluzione, Anomaly ottimizzato e modelli personalizzati.
- Python 3 per modelli R-CNN, GoogLeNet, SSD, YOLO v3, Tiny YOLO v3 e Detectron2 più veloci.
custom.py nella directory di livello più alto del file .zip.Altri file, come ad esempio file extra Python , script shell e immagini possono esistere anche nel file .zip. Se lo script di personalizzazione richiede i moduli Python in parte da quei moduli integrati in Python, è possibile creare un file requirements.txt , che contiene un elenco di moduli da installare utilizzando pip. Il modello contiene le seguenti informazioni:
- class CustomInference - l'unica classe Python nel file. Deve essere denominato
CustomInferencee trattiene i callout "pre" e "post". - onPreProcessing - Se definita, questa funzione deve essere in
CustomInference. Questa funzione viene chiamata prima dell'inferenza viene eseguita sull'immagine. - onPostProcessing - Se definita, questa funzione deve essere in
CustomInference. Questa funzione viene chiamata dopo l'inferenza viene eseguita sull'immagine.
class CustomInference:
# Callout for inference pre-processing. Will be called before the
# actual inference on the “image”
#
# Input:
# image: Image represented as a NumPy array that inference is to be
# performed on.
#
# params: To be used for additional parameters. This will be
# a listof key/value pairs.
#
# Output:
# image: Return the image represented as a NumPy array that is to
# be used for inference. This array may been manipulated
# in this function, or it may be the same exact NumPy array.
#
def onPreProcessing(self, image, params):
return image
# Callout for the inference post-processing. Will be called
# after the image has been inferred.
#
# Input:
# Image: Image represented as a NumPy array that inference is to be
# performed on.
#
# results: JSON of the inference results. The JSON will be
# dependent on thetype of inference.
#
# params: To be used for additional parameters. This will
# be a list of key/value pairs
#
# Output:
# results: A json object that is a copy of the original
# inference results. However, if the callout
# intends to return additional information, that
# information can bereturnedin the json results
# under the key “user”.
#
def onPostProcessing(self, image, results, params):
return results
File requirements.txt facoltativo
Il seguente file di esempio mostra il contenuto di un file requirements.txt :
sseclient==0.0.19
tflearn==0.3.2
keras==2.2.4
Distribuzione di un modello che utilizza la preelaborazione, la post - elaborazione o entrambi
Per distribuire un modello che utilizza l'elaborazione extra, si carica il file .zip personalizzato, quindi specificarlo sulla distribuzione.
- Vai alla pagina manufatti personalizzati e carica il file .zip che contiene
custom.py. Per il tipo di artefatto, selezionare Script di inferenza personalizzato. - Vai al modello che vuoi distribuire e clicca su Distribuisci modello.
- Alternare Distribuzione avanzata su.
- Per script di inferenza personalizzata, selezionare lo script di inferenza che si desidera utilizzare, specificare cosa si desidera fare con i risultati dell'inferenza e fare clic su Distribuisci.Nota:
- I risultati dell'inferenza possono essere salvati anche se non si sceglie uno script di inferenza personalizzato.
- I risultati dell'inferenza per i video non vengono salvati.