Modèles d'analyse d'image préentraînés

Vision fournit des modèles d'IA préentraînés d'analyse d'images qui vous permettent de rechercher et de marquer des objets, du texte et des scènes entières dans des images.

Les modèles préentraînés vous permettent d'utiliser l'IA sans expérience en science des données. Fournissez une image au service Vision et récupérez des informations sur les objets, le texte, les scènes et les visages de l'image sans avoir à créer votre propre modèle.

Cas d'utilisation

Voici plusieurs cas d'utilisation pour les modèles d'analyse d'image préentraînés.

Gestion des ressources numériques
Marquez des images numériques de type média pour une meilleure indexation et récupération.
Surveillance des scènes
Détectez si les articles sont sur les étagères de vente au détail, si la végétation augmente dans l'image de surveillance d'une ligne électrique, ou si des camions sont disponibles à un lot pour la livraison ou l'expédition.
Détection de visage
  • Confidentialité : Masquez les identités en ajoutant un flou à l'image à l'aide des informations d'emplacement du visage retournées via la fonction de détection de visage.
  • Prérequis pour la biométrie : Utilisez le score de qualité faciale pour décider si un visage est clair et non obstrué.
  • Gestion des ressources numériques : Marquez des images avec des informations faciales pour une meilleure indexation et récupération.

Formats pris en charge

Vision prend en charge plusieurs formats d'analyse d'image.

Les images peuvent être chargées à partir du stockage local ou d'Oracle Cloud Infrastructure Object Storage. Les images peuvent être dans les formats suivants :
  • JPG
  • PNG

Modèles préentraînés

Vision comporte quatre types de modèle d'analyse d'image préentraîné.

Détection d'objet

La détection d'objet est utilisée pour rechercher et identifier des objets dans une image. Par exemple, si vous avez une image d'un salon, Vision y trouve les objets, tels qu'une chaise, un canapé et une télévision. Il fournit ensuite des zones englobantes pour chacun des objets et les identifie.

La vue fournit une note de confiance pour chaque objet identifié. La note de confiance est un nombre décimal. Les notes plus proches de 1 indiquent un niveau de confiance élevé dans la classification des objets, tandis que les notes inférieures indiquent un niveau de confiance inférieur. L'intervalle de la note de confiance pour chaque étiquette est compris entre 0 et 1.

Les fonctions prises en charge sont les suivantes :
  • Étiquettes
  • Note de confiance
  • Polygones liés aux objets
  • Demandes uniques
  • Demandes par lots
Exemple de détection d'objets

Exemple d'utilisation de la détection d'objet dans Vision.

Image d'entrée
Image d'entrée pour la détection d'objet Image d'une voiture conduisant sur une route, avec Oracle écrite dessus. D'un côté, il y a un bus, de l'autre un taxi.
Demande d'API :
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image": 
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
   "features": [ { "featureType": "OBJECT_DETECTION", "maxResults": 50 } ] } }
Sortie :
Image de sortie pour la détection d'objet La même image que l'entrée, mais maintenant avec des boîtes englobantes dessinées autour de tous les éléments d'intérêt.
Réponse d'API :
{ "imageObjects": 
 [ { "name": "Bus",
     "confidence": 0.98872757,
     "boundingPolygon": 
                       { "normalizedVertices": 
                                              [ { "x": 0.232, 
                                                  "y": 0.16114457831325302 },
                                                { "x": 0.407,
                                                  "y": 0.16114457831325302 }, 
                                                { "x": 0.407,
                                                  "y": 0.36596385542168675 },
                                                { "x": 0.232,
                                                  "y": 0.36596385542168675 } ]
                       } },
   }, ... }

Classification d'image

La classification d'images peut être utilisée pour identifier les caractéristiques et les objets basés sur une scène dans une image. Vous pouvez avoir une ou plusieurs classifications, selon le cas d'utilisation et le nombre d'articles dans une image. Par exemple, si vous avez une image d'une personne qui court, Vision identifie la personne, les vêtements et les chaussures.

Vision fournit une note de confiance pour chaque étiquette. La note de confiance est un nombre décimal. Les notes plus proches de 1 indiquent un niveau de confiance élevé dans l'étiquette, tandis que les notes inférieures indiquent un niveau de confiance inférieur. L'intervalle de la note de confiance pour chaque étiquette est compris entre 0 et 1.

Les fonctions prises en charge sont les suivantes :
  • Étiquettes
  • Note de confiance
  • Cours d'ontologie
  • Demandes uniques
  • Demandes par lots
Exemple de classification d'image

Exemple d'utilisation de la classification d'images dans Vision.

Image d'entrée
Image d'entrée pour la classification d'image Photo de pylônes électriques traversant une route.
Demande d'API :
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image":
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
             "features":
                        [ { "featureType": "IMAGE_CLASSIFICATION",
                            "maxResults": 5 } ]
 } 
}
Sortie :
Réponse d'API :
{ "labels":
           [ { "name": "Overhead power line",
               "confidence": 0.99315816 },
             { "name": "Transmission tower",
               "confidence": 0.9927904 },
             { "name": "Plant", "confidence": 0.9924676 },
             { "name": "Sky", "confidence": 0.9924451 },
             { "name": "Line", "confidence": 0.9912027 } ] ...

Détection de visage

Vision peut détecter et reconnaître des visages dans une image.

La détection de visages vous permet de transmettre une image ou un lot d'images à Vision pour détecter les éléments suivants à l'aide d'un modèle préentraîné :

  • L'existence de visages dans chaque image.
  • Emplacement des faces dans chaque image.
  • Faites face à des repères pour chaque visage.
  • Qualité visuelle de chaque visage.

Aucune expérience en science des données n'est requise pour utiliser ce modèle préentraîné.

Exemple de visage

Exemple de détection de visage dans Vision.

Image d'entrée
Image d'entrée pour la demande d'API Photo d'une moto à côté d'une voiture. de détection de visage :
{
  "compartmentId": "ocid1.compartment.oc1..aaaaaaaau3mwjanch4k54g45rizeqy52jcaxmiu4ii3kwy7hvn6pncs6yyba",
  "image": {
    "namespaceName": "axwlrwe7tbir",
    "bucketName": "demo_examples",
    "objectName": "FaceDetection/FaceDetection1.jpeg",
    "source": "OBJECT_STORAGE"
  },
  "features": [
    {
      "featureType": "FACE_DETECTION",
      "maxResults": 50,
      "shouldReturnLandmarks": true
    }
  ]
}
Sortie :
Image de sortie pour la détection de visage Les textes de l'image d'entrée sont entourés de zones englobantes.
Réponse d'API :
{
  "ontologyClasses": [],
  "detectedFaces": [
    {
      "confidence": 0.9838427,
      "boundingPolygon": {
        "normalizedVertices": [
          {
            "x": 0.48696465492248536,
            "y": 0.2889890061576746
          },
          {
            "x": 0.6339863777160645,
            "y": 0.2889890061576746
          },
          {
            "x": 0.6339863777160645,
            "y": 0.586297366400352
          },
          {
            "x": 0.48696465492248536,
            "y": 0.586297366400352
          }
        ]
      },
      "qualityScore": 0.9043028,
      "landmarks": [
        {
          "type": "LEFT_EYE",
          "x": 0.5203125,
          "y": 0.41114983
        },
        {
          "type": "RIGHT_EYE",
          "x": 0.590625,
          "y": 0.41231126
        },
        {
          "type": "NOSE_TIP",
          "x": 0.553125,
          "y": 0.4715447
        },
        {
          "type": "LEFT_EDGE_OF_MOUTH",
          "x": 0.5210937,
          "y": 0.5005807
        },
        {
          "type": "RIGHT_EDGE_OF_MOUTH",
          "x": 0.5914062,
          "y": 0.5017422
        }
      ]
    },
    {
      "confidence": 0.9775677,
      "boundingPolygon": {
        "normalizedVertices": [
          {
            "x": 0.7882407665252685,
            "y": 0.26365977075734065
          },
          {
            "x": 0.9403343200683594,
            "y": 0.26365977075734065
          },
          {
            "x": 0.9403343200683594,
            "y": 0.5528718281567582
          },
          {
            "x": 0.7882407665252685,
            "y": 0.5528718281567582
          }
        ]
      },
      "qualityScore": 0.786416,
      "landmarks": [
        {
          "type": "LEFT_EYE",
          "x": 0.81328124,
          "y": 0.37514517
        },
        {
          "type": "RIGHT_EYE",
          "x": 0.88125,
          "y": 0.39140534
        },
        {
          "type": "NOSE_TIP",
          "x": 0.8296875,
          "y": 0.44134727
        },
        {
          "type": "LEFT_EDGE_OF_MOUTH",
          "x": 0.8078125,
          "y": 0.46689895
        },
        {
          "type": "RIGHT_EDGE_OF_MOUTH",
          "x": 0.8726562,
          "y": 0.48083624
        }
      ]
    },
    {
      "confidence": 0.97464997,
      "boundingPolygon": {
        "normalizedVertices": [
          {
            "x": 0.038544440269470216,
            "y": 0.2764744597998784
          },
          {
            "x": 0.17794162034988403,
            "y": 0.2764744597998784
          },
          {
            "x": 0.17794162034988403,
            "y": 0.560027438173726
          },
          {
            "x": 0.038544440269470216,
            "y": 0.560027438173726
          }
        ]
      },
      "qualityScore": 0.8527186,
      "landmarks": [
        {
          "type": "LEFT_EYE",
          "x": 0.08984375,
          "y": 0.3809524
        },
        {
          "type": "RIGHT_EYE",
          "x": 0.15234375,
          "y": 0.39140534
        },
        {
          "type": "NOSE_TIP",
          "x": 0.12421875,
          "y": 0.44599304
        },
        {
          "type": "LEFT_EDGE_OF_MOUTH",
          "x": 0.07734375,
          "y": 0.46689895
        },
        {
          "type": "RIGHT_EDGE_OF_MOUTH",
          "x": 0.14375,
          "y": 0.47619048
        }
      ]
    },
    {
      "confidence": 0.96874785,
      "boundingPolygon": {
        "normalizedVertices": [
          {
            "x": 0.2698225736618042,
            "y": 0.24420403492713777
          },
          {
            "x": 0.38425185680389407,
            "y": 0.24420403492713777
          },
          {
            "x": 0.38425185680389407,
            "y": 0.4686152760575457
          },
          {
            "x": 0.2698225736618042,
            "y": 0.4686152760575457
          }
        ]
      },
      "qualityScore": 0.8934359,
      "landmarks": [
        {
          "type": "LEFT_EYE",
          "x": 0.29453126,
          "y": 0.3240418
        },
        {
          "type": "RIGHT_EYE",
          "x": 0.3484375,
          "y": 0.33681765
        },
        {
          "type": "NOSE_TIP",
          "x": 0.31328124,
          "y": 0.3821138
        },
        {
          "type": "LEFT_EDGE_OF_MOUTH",
          "x": 0.2890625,
          "y": 0.39372823
        },
        {
          "type": "RIGHT_EDGE_OF_MOUTH",
          "x": 0.3453125,
          "y": 0.40301976
        }
      ]
    },
    {
      "confidence": 0.95825064,
      "boundingPolygon": {
        "normalizedVertices": [
          {
            "x": 0.6876011371612549,
            "y": 0.10002164585942037
          },
          {
            "x": 0.8045546531677246,
            "y": 0.10002164585942037
          },
          {
            "x": 0.8045546531677246,
            "y": 0.3600864033804261
          },
          {
            "x": 0.6876011371612549,
            "y": 0.3600864033804261
          }
        ]
      },
      "qualityScore": 0.9237982,
      "landmarks": [
        {
          "type": "LEFT_EYE",
          "x": 0.7171875,
          "y": 0.19976771
        },
        {
          "type": "RIGHT_EYE",
          "x": 0.7703125,
          "y": 0.21254355
        },
        {
          "type": "NOSE_TIP",
          "x": 0.7367188,
          "y": 0.2601626
        },
        {
          "type": "LEFT_EDGE_OF_MOUTH",
          "x": 0.7085937,
          "y": 0.2752613
        },
        {
          "type": "RIGHT_EDGE_OF_MOUTH",
          "x": 0.76640624,
          "y": 0.2857143
        }
      ]
    }
  ],
  "faceDetectionModelVersion": "1.0.27",
  "errors": []
}

Reconnaissance optique de caractères

Vision peut détecter et reconnaître le texte dans un document.

La classification linguistique identifie la langue d'un document, puis OCR trace des zones englobantes autour du texte imprimé ou écrit à la main qu'il trouve dans une image et numérise le texte. Par exemple, si vous avez une image d'un signe d'arrêt, Vision recherche le texte dans cette image et extrait le texte STOP. Il fournit des zones englobantes pour le texte identifié.

Vision fournit une note de confiance pour chaque regroupement de texte. La note de confiance est un nombre décimal. Les notes plus proches de 1 indiquent un niveau de confiance élevé dans le texte extrait, tandis que les notes inférieures indiquent un niveau de confiance inférieur. L'intervalle de la note de confiance pour chaque étiquette est compris entre 0 et 1.

La détection de texte peut être utilisée avec des modèles d'intelligence artificielle de documents ou d'analyse d'images.

Le soutien de la ROC est limité à l'anglais. Si vous savez que le texte de vos images est en anglais, réglez la langue à Eng.

Les fonctions prises en charge sont les suivantes :
  • Extraction de mot
  • Extraction de ligne de texte
  • Note de confiance
  • Polygones de délimitation
  • Demande unique
  • Demande par lots
Exemple de registre OCR

Exemple d'utilisation du registre OCR dans Vision.

Image d'entrée
Image d'entrée pour la demande d'API ROC Photo d'une moto à côté d'une voiture. :
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image":
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
   "features":
              [ { "featureType": "TEXT_DETECTION" } ]
 }
}
Sortie :
Image de sortie pour ROC Les textes de l'image d'entrée sont entourés de zones englobantes.
Réponse d'API :
...
 { "text": "585-XRP",
   "confidence": 0.9905539,
   "boundingPolygon":
                     { "normalizedVertices":
                                            [ { "x": 0.466,
                                                "y": 0.7349397590361446 },
                                              { "x": 0.552,
                                                "y": 0.7319277108433735 },
                                              { "x": 0.553,
                                                "y": 0.7831325301204819 },
                                              { "x": 0.467,
                                                "y": 0.7876506024096386 } ]
                     }
 } 
...

Utilisation des modèles d'analyse d'image préentraînés

Vision fournit des modèles préentraînés permettant aux clients d'extraire des informations sur leurs images sans avoir besoin de spécialistes des données.

Vous devez disposer des éléments suivants avant d'utiliser un modèle préentraîné :

  • Un compte de location payante dans Oracle Cloud Infrastructure.

  • Connaissance du service Oracle Cloud Infrastructure Object Storage.

Vous pouvez appeler les modèles d'analyse d'images préentraînés en tant que demande par lots à l'aide des API Rest, de la trousse SDK ou de l'interface de ligne de commande. Vous pouvez appeler les modèles d'analyse d'images préentraînés en une seule demande à l'aide de la console, des API de restauration, de la trousse SDK ou de l'interface de ligne de commande.

Voir la section Limites pour plus d'informations sur ce qui est autorisé dans les demandes par lots.