Modelos de Análise de Imagem Pré-treinados

O Vision fornece modelos de IA de análise de imagem pré-treinados que permitem encontrar e marcar objetos, texto e cenas inteiras em imagens.

Modelos pré-treinados permitem que você use IA sem experiência em ciência de dados. Forneça uma imagem ao serviço Vision e obtenha informações de volta sobre os objetos, textos, cenas e quaisquer rostos na imagem sem precisar criar seu próprio modelo.

Casos de Uso

Aqui estão vários casos de uso para modelos de análise de imagem pré-treinados.

Gerenciamento de ativos digitais
Marque imagens semelhantes a mídias digitais para melhor indexação e recuperação.
Monitoramento de cenas
Detecte se os itens estão nas prateleiras de varejo, a vegetação está crescendo na imagem de vigilância de uma linha de energia ou se os caminhões estão disponíveis em muito para entrega ou remessa.
Detecção facial
  • Privacidade: Esconda identidades adicionando um borrão à imagem usando as informações de localização do rosto retornadas por meio do recurso de detecção de rosto.
  • Pré-requisito para Biometria: Use o escore de qualidade facial para decidir se um rosto é claro e desobstruído.
  • Gerenciamento de ativos digitais: marque imagens com informações faciais para melhor indexação e recuperação.

Formatos Suportados

O Vision suporta vários formatos de análise de imagem.

É possível fazer upload de imagens do armazenamento local ou do Oracle Cloud Infrastructure Object Storage. As imagens podem estar nos seguintes formatos:
  • JPG
  • PNG

Modelos Pré-treinados

O Vision tem quatro tipos de modelo de análise de imagem pré-treinado.

Detecção de Objeto

A detecção de objetos é usada para localizar e identificar objetos em uma imagem. Por exemplo, se você tiver uma imagem de uma sala de estar, o Vision encontrará os objetos lá, como uma cadeira, um sofá e uma TV. Em seguida, ele fornece caixas delimitadoras para cada um dos objetos e os identifica.

A visão fornece uma pontuação de confiança para cada objeto identificado. A pontuação de confiança é um número decimal. Pontuações mais próximas de 1 indicam maior confiança na classificação de objetos, enquanto pontuações mais baixas indicam menor pontuação de confiança. O intervalo da pontuação de confiança para cada rótulo é de 0 a 1.

Os recursos suportados são:
  • Rótulos
  • Pontuação de confiança
  • Polígonos delimitadores de objetos
  • Solicitações únicas
  • Solicitações em batch
Exemplo de Detecção de Objeto

Um exemplo de uso da Detecção de Objetos no Vision.

Imagem de entrada
Imagem de entrada para Detecção de Objetos Foto de um carro dirigindo em uma estrada, com a Oracle gravada nela. De um lado é um ônibus, do outro um táxi.
Solicitação de API:
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image": 
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
   "features": [ { "featureType": "OBJECT_DETECTION", "maxResults": 50 } ] } }
Saída:
Imagem de saída para Detecção de Objetos A mesma imagem que a entrada, mas agora com caixas delimitadoras desenhadas em torno de todos os itens de interesse.
Resposta da 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 } ]
                       } },
   }, ... }

Classificação da Imagem

A classificação de imagem pode ser usada para identificar recursos e objetos baseados em cena em uma imagem. Você pode ter uma ou várias classificações, dependendo do caso de uso e do número de itens em uma imagem. Por exemplo, se você tiver uma imagem de uma pessoa correndo, o Vision identificará a pessoa, a roupa e o calçado.

A visão fornece uma pontuação de confiança para cada rótulo. A pontuação de confiança é um número decimal. Pontuações mais próximas de 1 indicam maior confiança no rótulo, enquanto pontuações mais baixas indicam menor pontuação de confiança. O intervalo da pontuação de confiança para cada rótulo é de 0 a 1.

Os recursos suportados são:
  • Rótulos
  • Pontuação de confiança
  • Classes de Ontologia
  • Solicitações únicas
  • Solicitações em batch
Exemplo de Classificação da Imagem

Um exemplo de uso de Classificação de imagem no Vision.

Imagem de entrada
Imagem de entrada para Classificação de Imagem Foto de pilões de eletricidade atravessando uma estrada.
Solicitação de API:
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image":
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
             "features":
                        [ { "featureType": "IMAGE_CLASSIFICATION",
                            "maxResults": 5 } ]
 } 
}
Saída:
Resposta da 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 } ] ...

detecção facial

A visão pode detectar e reconhecer rostos em uma imagem.

A detecção de rosto permite que você passe uma imagem ou um lote de imagens para o Vision para detectar o seguinte usando um modelo pré-treinado:

  • A existência de rostos em cada imagem.
  • A localização das faces em cada imagem.
  • Encare pontos de referência para cada rosto.
  • Qualidade visual de cada face.

Nenhuma experiência em ciência de dados é necessária para usar esse modelo pré-treinado.

Exemplo de Face

Um exemplo de detecção de rosto em Vision.

Imagem de entrada
Imagem de entrada para solicitação de API Imagem de uma moto ao lado de um carro. de detecção de rosto:
{
  "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
    }
  ]
}
Saída:
Imagem de saída para detecção de rosto Os textos na imagem de entrada são cercados por caixas delimitadoras.
Resposta da 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": []
}

OCR (Optical Character Recognition)

O Vision pode detectar e reconhecer texto em um documento.

A classificação de idioma identifica o idioma de um documento, então o OCR desenha caixas delimitadoras em torno do texto impresso ou escrito à mão que encontra em uma imagem e digitaliza o texto. Por exemplo, se você tiver uma imagem de um sinal de interrupção, o Vision localizará o texto nessa imagem e extrairá o texto STOP. Ele fornece caixas delimitadoras para o texto identificado.

A Vision fornece uma pontuação de confiança para cada agrupamento de texto. A pontuação de confiança é um número decimal. Pontuações mais próximas de 1 indicam maior confiança no texto extraído, enquanto pontuações mais baixas indicam menor pontuação de confiança. O intervalo da pontuação de confiança para cada rótulo é de 0 a 1.

A Detecção de Texto pode ser usada com modelos de AI de Documento ou Análise de Imagem.

O suporte ao OCR é limitado ao inglês. Se você souber que o texto em suas imagens está em inglês, defina o idioma como Eng.

Os recursos suportados são:
  • Extração de palavra
  • Extração de linha de texto
  • Pontuação de confiança
  • Polígonos delimitadores
  • Solicitação única
  • Solicitação em batch
Exemplo de OCR

Um exemplo de uso do OCR no Vision.

Imagem de entrada
Imagem de entrada para Solicitação de API do OCR Imagem de uma moto ao lado de um carro.:
{ "analyzeImageDetails":
 { "compartmentId": "",
   "image":
           { "namespaceName": "",
             "bucketName": "",
             "objectName": "",
             "source": "OBJECT_STORAGE" },
   "features":
              [ { "featureType": "TEXT_DETECTION" } ]
 }
}
Saída:
Imagem de Saída para OCR Os textos na imagem de entrada são cercados por caixas delimitadoras.
Resposta da 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 } ]
                     }
 } 
...

Usando os Modelos de Análise de Imagem Pré-treinados

A Vision fornece modelos pré-treinados para que os clientes extraiam insights sobre suas imagens sem precisar de Cientistas de Dados.

Você precisa do seguinte antes de usar um modelo pré-treinado:

  • Uma conta de tenancy paga no Oracle Cloud Infrastructure.

  • Familiaridade com o Oracle Cloud Infrastructure Object Storage.

Você pode chamar os modelos de Análise de Imagem pré-treinados como uma solicitação em lote usando APIs Rest, SDK ou CLI. Você pode chamar os modelos de Análise de Imagem pré-treinados como uma única solicitação usando a Console, APIs Rest, SDK ou CLI.

Consulte a seção Limites para obter informações sobre o que é permitido em solicitações de batch.