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

Vision fournit des modèles d'IA d'analyse d'image préentraînés qui vous permettent de rechercher et de baliser 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 data science. Fournissez une image au service Vision et obtenez des informations sur les objets, le texte, les scènes et les faces de l'image sans avoir à créer votre propre modèle.

Cas d'emploi

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 de type média numérique pour une meilleure indexation et récupération.
Surveillance de la scène
Détectez si les articles sont sur les étagères de vente au détail, la végétation se développe dans l'image de surveillance d'une ligne électrique, ou si des camions sont disponibles sur 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 de localisation du visage renvoyées via la fonction de détection du 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 actifs numériques : étiquetez les 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 télé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 a quatre types de modèle d'analyse d'image préentraîné.

Détection d'objet

La détection d'objet permet de rechercher et d'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.

Vision fournit un score de confiance pour chaque objet identifié. Le score de confiance est un nombre décimal. Les scores plus proches de 1 indiquent une confiance plus élevée dans la classification des objets, tandis que les scores inférieurs indiquent un score de confiance inférieur. La plage du score de confiance pour chaque étiquette est comprise entre 0 et 1.

Les fonctionnalités prises en charge sont les suivantes :
  • Libellés
  • Score de fiabilité
  • Polygone limitant l'objet
  • Demandes uniques
  • Demandes en batch
Exemple de détection d'objet

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

Image
Image d'entrée pour la détection d'objet Image d'une voiture conduisant sur une route, avec Oracle écrit dessus. D'un côté se trouve 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'images

La classification d'image peut être utilisée pour identifier les objets et les fonctionnalités basés sur une scène dans une image. Vous pouvez avoir une ou plusieurs classifications, en fonction du cas d'emploi et du nombre d'éléments d'une image. Par exemple, si vous avez une image d'une personne en cours d'exécution, Vision identifie la personne, les vêtements et les chaussures.

Vision fournit un score de confiance pour chaque étiquette. Le score de confiance est un nombre décimal. Les scores plus proches de 1 indiquent une confiance plus élevée dans le libellé, tandis que les scores inférieurs indiquent un score de confiance inférieur. La plage du score de confiance pour chaque étiquette est comprise entre 0 et 1.

Les fonctionnalités prises en charge sont les suivantes :
  • Libellés
  • Score de fiabilité
  • Cours d'ontologie
  • Demandes uniques
  • Demandes en batch
Exemple de classification d'image

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

Image
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

La vision peut détecter et reconnaître les visages dans une image.

La détection de visage 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

Un exemple de détection du visage en vision.

Image
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 délimitées.
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 des caractères (OCR)

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

La classification des langues identifie la langue d'un document, puis OCR dessine 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 de signe d'arrêt, Vision trouve le texte dans cette image et extrait le texte STOP. Il fournit des zones englobantes pour le texte identifié.

Vision fournit un score de confiance pour chaque regroupement de texte. Le score de confiance est un nombre décimal. Les scores plus proches de 1 indiquent une confiance plus élevée dans le texte extrait, tandis que les scores inférieurs indiquent un score de confiance inférieur. La plage du score de confiance pour chaque étiquette est comprise entre 0 et 1.

La détection de texte peut être utilisée avec des modèles d'IA de document ou d'analyse d'image.

La prise en charge de l'OCR est limitée à l'anglais. Si vous savez que le texte de vos images est en anglais, définissez la langue sur Eng.

Les fonctionnalités prises en charge sont les suivantes :
  • Extraction de mots
  • Extraction de ligne de texte
  • Score de fiabilité
  • Polygones liés
  • Demande unique
  • Demande en batch
Exemple de registre OCR

Exemple d'utilisation de la reconnaissance optique de caractères dans Vision.

Image
Image d'entrée pour la demande d'API OCR 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 OCR Les textes de l'image d'entrée sont entourés de zones délimitées.
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 d'analystes de données.

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

  • Compte de location payant dans Oracle Cloud Infrastructure.

  • Bonne connaissance d'Oracle Cloud Infrastructure Object Storage.

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

Pour plus d'informations sur ce qui est autorisé dans les demandes par lots, reportez-vous à la section Limites.