Preelaborazione e post - elaborazione

Nota: a partire da Maximo® Visual Inspection 8.7, i modelli personalizzati non sono supportati e non è possibile caricare script personalizzati. I modelli personalizzati sono ancora supportati in Maximo Visual Inspection 8.6 e versioni precedenti. Le API REST supportano ancora il recupero di qualsiasi script personalizzato esistente caricato in Maximo Visual Inspection 8.6 e versioni precedenti.

È 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
Nota: I modelli di rilevamento dell'azione non sono supportati.

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.
Nota: A partire da Maximo Visual Inspection 9.1 i modelli Single Shot Detector (SSD) non sono più supportati per l'addestramento dei modelli. Tuttavia, è possibile continuare a importare e distribuire i modelli SSD in Maximo Visual Inspection e Maximo Visual Inspection Edge.
Importante: Questo file deve essere confezionato in un file .zip che ha il file 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 CustomInference e 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.

  1. Vai alla pagina manufatti personalizzati e carica il file .zip che contiene custom.py. Per il tipo di artefatto, selezionare Script di inferenza personalizzato.
  2. Vai al modello che vuoi distribuire e clicca su Distribuisci modello.
  3. Alternare Distribuzione avanzata su.
  4. 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.