Pré-traitement et post-traitement

Remarque: A partir de Maximo® Visual Inspection 8.7, les modèles personnalisés ne sont pas pris en charge et les scripts personnalisés ne peuvent pas être téléchargés. Les modèles personnalisés sont toujours pris en charge dans Maximo Visual Inspection 8.6 et les versions antérieures. Les API REST prennent toujours en charge l'extraction des scripts personnalisés existants que vous avez téléchargés dans Maximo Visual Inspection 8.6 et les versions antérieures.

Vous pouvez transférer des personnalisations pour effectuer des opérations avant ou après chaque inférence sans intervention manuelle.

  • Canevas custom.py
  • Fichier requirements.txt facultatif
  • Déploiement d'un modèle avec le prétraitement, le post-traitement ou les deux
Remarque : Les modèles de détection d'action ne sont pas pris en charge.

Canevas custom.py

Utilisez le modèle custom.py pour générer un fichier Python nommé custom.py. Le fichier peut contenir des instructions de prétraitement, de post-traitement ou les deux. La version dépend du type de modèle :

  • Python 2 pour les modèles à haute résolution, optimisés pour les anomalies et personnalisés.
  • Python 3 pour des modèles R-CNN, GoogLeNet, SSD, YOLO v3, Tiny YOLO v3 et Detectron2 plus rapides.
Remarque : À partir de Maximo Visual Inspection 9.1 les modèles Single Shot Detector (SSD) ne sont plus pris en charge pour l'apprentissage des modèles. Cependant, vous pouvez continuer à importer et à déployer des modèles SSD dans Maximo Visual Inspection et Maximo Visual Inspection Edge.
Important : ce fichier doit être fourni dans un fichier .zip contenant le fichier custom.py dans le répertoire de niveau le plus élevé du fichier .zip.

Ce fichier .zip peut contenir d'autres fichiers, comme des fichiers Python supplémentaires, des scripts shell et des images. Si le script de personnalisation requiert des modules Python hormis les modules intégrés dans Python, vous pouvez créer un fichier requirements.txt contenant une liste de modules à installer à l'aide de pip. Le canevas contient les informations suivantes :

  • class CustomInference - La seule classe Python dans le fichier. Elle doit être intitulée CustomInference et contenir les appels "pre" et "post".
  • onPreProcessing - Si cette fonction est définie, elle doit se trouver dans CustomInference. Elle est appelée avant l'exécution d'une inférence sur l'image.
  • OnPostProcessing - Si cette fonction est définie, elle doit se trouver dans CustomInference. Elle est appelée après l'exécution d'une inférence sur l'image.
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

Fichier requirements.txt facultatif

L'exemple de fichier suivant montre le contenu d'un fichier requirements.txt :

sseclient==0.0.19
tflearn==0.3.2
keras==2.2.4

Déploiement d'un modèle qui utilise le pré-traitement, le post-traitement ou les deux

Pour déployer un modèle qui utilise un traitement supplémentaire, transférez le fichier .zip personnalisé, puis spécifiez-le dans le déploiement.

  1. Accédez à la page Artefacts personnalisés et importez le fichier .zip contenant custom.py. Pour le type d'artefact, sélectionnez Script d'inférence personnalisé.
  2. Accédez au modèle que vous souhaitez déployer, puis cliquez sur Déployer le modèle.
  3. Activez l'option Déploiement avancé.
  4. Pour Script d'inférence personnalisé, sélectionnez le script d'inférence que vous souhaitez utiliser, indiquez ce qui doit être fait avec les résultats de l'inférence, puis cliquez sur Déployer.
    Remarque :
    • Les résultats d'inférence peuvent être sauvegardés même si vous ne choisissez pas un script d'inférence personnalisé.
    • Les résultats d'inférence pour les vidéos ne sont pas sauvegardés.