Use a Visão do OCI para extrair dados de imagens e documentos digitalizados
O Oracle Cloud Infrastructure (OCI) Vision é um dos diversos serviços de IA disponíveis no Oracle Cloud Infrastructure.
A Visão de OCI oferece a você o poder de aplicar machine learning e inteligência artificial sem precisar de experiência em ciência de dados. Ele tem modelos pré-treinados que permitem que você conduza rapidamente o OCR, a classificação de imagens e a detecção de objetos, a classificação de documentos, a detecção de anomalias e muito mais.
Você pode ajustar os modelos pré-treinados com dados personalizados usando o aprendizado de transferência. Você pode usar conjuntos de dados rotulados existentes para o ajuste ou, se seus dados ainda não tiverem sido rotulados, você poderá usar o serviço Oracle Data Labeling para facilitar a tarefa.
Arquitetura
Esta arquitetura demonstra a relação entre os vários componentes em um sistema típico que tem a Visão do OCI em seu núcleo.
Neste sistema, um usuário final faz upload de uma fotografia ou de uma imagem de um documento de negócios usando um aplicativo Web. O aplicativo armazena o arquivo no Object Storage. O Oracle Events detecta o novo arquivo e aciona uma função sem servidor que gera uma chamada de API REST para o serviço Vision. A visão recupera o arquivo do Object Storage e analisa a imagem. Os resultados são armazenados em um banco de dados no qual os aplicativos podem usá-los.
O diagrama a seguir ilustra essa arquitetura de referência.

Descrição da ilustração architecture-ai-vision.png
arquitetura-ai-vision-oracle.zip
A arquitetura tem os seguintes componentes:
- Região
Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou mesmo continentes).
- Domínios de disponibilidade
Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna de domínios de disponibilidade. Portanto, uma falha em um domínio de disponibilidade provavelmente não afetará os outros domínios de disponibilidade na região.
- Domínios de falha
Domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de alimentação dentro de um domínio de falha.
- Rede virtual na nuvem (VCN) e sub-redes
Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs permitem controle total sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você poderá alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter como escopo uma região ou um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não são sobrepostos com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Compartimento
Os compartimentos são partições lógicas entre regiões dentro de uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.
- Balanceador de Carga
O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.
O balanceador de carga fornece acesso a diferentes aplicativos.
- Lista de Segurança
Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que devem ser permitidos dentro e fora da sub-rede.
- Armazenamento de Objetos
O armazenamento de objetos fornece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados analíticos e conteúdo avançado, como imagens e vídeos. Você pode armazenar com segurança e recuperar dados diretamente da internet ou de dentro da plataforma de nuvem. Você pode dimensionar o armazenamento sem afetar qualquer degradação no desempenho ou na confiabilidade do serviço. Use o armazenamento padrão para armazenamento "dinâmico" necessário para acessar rapidamente, imediatamente e com frequência. Use o armazenamento de arquivos compactados para o armazenamento "frio" que você mantém por longos períodos de tempo e raramente ou raramente acessa.
- FastConnect
O Oracle Cloud Infrastructure FastConnect fornece uma maneira fácil de criar uma conexão privada dedicada entre o seu data center e o Oracle Cloud Infrastructure. O Serviço FastConnect fornece opções de maior largura de banda e uma experiência de rede mais confiável quando comparado com conexões baseadas na Internet.
- Visão do Oracle Infrastructure Cloud
A Visão do OCI é usada para extrair informações de PDFs e imagens. A visão suporta OCR, compreensão de documentos, classificação de tabelas, detecção de objetos e classificação de imagens
- Aplicativo
O aplicativo nesta arquitetura permite que os usuários façam upload de imagens e usem os metadados das imagens para uma melhor pesquisa e contexto.
Recomendações
Os requisitos podem diferir da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.
- VCN
Quando você cria uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.
Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretende configurar conexões privadas.
Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.
Ao projetar as sub-redes, considere seu fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou função específica à mesma sub-rede, que pode servir como limite de segurança.
Use sub-redes regionais.
- Segurança
Use o Oracle Cloud Guard para monitorar e manter a segurança dos seus recursos no Oracle Cloud Infrastructure de forma proativa. O Cloud Guard usa receitas de detector que você pode definir para examinar seus recursos quanto a pontos fracos na segurança e para monitorar operadores e usuários em busca de atividades arriscadas. Quando qualquer atividade de configuração incorreta ou insegura é detectada, o Cloud Guard recomenda ações corretivas e auxilia na realização dessas ações, com base nas receitas do respondedor que você pode definir.
Para recursos que exigem segurança máxima, a Oracle recomenda que você use zonas de segurança. Uma zona de segurança é um compartimento associado a uma receita definida pela Oracle de políticas de segurança que se baseiam nas melhores práticas. Por exemplo, os recursos em uma zona de segurança não podem ser acessados pela internet pública e devem ser criptografados usando chaves gerenciadas pelo cliente. Ao criar e atualizar recursos em uma zona de segurança, o Oracle Cloud Infrastructure valida as operações de acordo com as políticas na receita de zona de segurança e nega operações que violam qualquer uma das políticas.
- Cloud Guard
Clone e personalize as receitas padrão fornecidas pela Oracle para criar detector personalizado e receitas de respondedor. Essas receitas permitem especificar que tipo de violações de segurança geram um aviso e quais ações podem ser executadas nelas. Por exemplo, talvez você queira detectar buckets do Object Storage que tenham visibilidade definida como pública.
Aplique o Cloud Guard no nível da tenancy para abranger o escopo mais amplo e reduzir o custo administrativo de manutenção de várias configurações.
Você também pode usar o recurso Lista Gerenciada para aplicar determinadas configurações aos detectores.
- Zonas de Segurança
Clone e personalize as receitas padrão fornecidas pela Oracle para criar detector personalizado e receitas de respondedor. Essas receitas permitem especificar que tipo de violações de segurança geram um aviso e quais ações podem ser executadas nelas. Por exemplo, talvez você queira detectar buckets do Object Storage que tenham visibilidade definida como pública.
Aplique o Cloud Guard no nível da tenancy para abranger o escopo mais amplo e reduzir o custo administrativo de manutenção de várias configurações.
Você também pode usar o recurso Lista Gerenciada para aplicar determinadas configurações aos detectores.
- Largura de Banda do Balanceador de Carga
Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma flexível personalizada na qual você defina um intervalo de largura de banda e deixe que o serviço dimensione automaticamente a largura de banda com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a forma a qualquer momento após criar o balanceador de carga.
- Oracle Functions
Essa arquitetura usa uma função para chamar a API REST da Visão do OCI com uma imagem específica e, em seguida, armazenar os metadados retornados pela Visão. A função pode ser criada com o SDK Java ou Python.
- Eventos
Nesta arquitetura, o serviço Oracle Cloud Infrastructure Events é configurado para ouvir as alterações na criação do Object Storage. O serviço é chamado depois que o upload do objeto é feito no Object Storage e chama a função para processamento.
Considerações
Considere os pontos a seguir ao implantar essa arquitetura.
- Desempenho
Por motivos de desempenho e escalabilidade, estamos usando Funções para chamar a API REST Vision. Uma solução alternativa é usar a API REST Vision diretamente do aplicativo. Se você fizer isso, considere que as chamadas da API REST sejam executadas como jobs em segundo plano.
- Acesso
O OCI Vision suporta acesso por meio da Console do OCI, do cliente SDK Java e Python e da CLI do OCI. Ao testar, é recomendável usar a ferramenta CLI ou a Console.
- Disponibilidade
Neste exemplo, o banco de dados não está altamente disponível. Para aplicativos essenciais, considere a execução do MySQL Database Service no modo HA com 3 réplicas.
- Integração
Ao verificar documentos comerciais como recebimentos e formulários de aplicativos no formato PDF, considere o uso do Oracle Integration Cloud para extrair PDFs de sistemas como e-mail e, em seguida, chamar a Vision AI e, por fim, enviar o conteúdo ao sistema de destino como sistemas ERP ou CRM.