Use a OCI Vision para automatizar o gerenciamento de inventário
O gerenciamento manual de inventário pode ser um processo demorado e trabalhoso. Os fabricantes muitas vezes lutam para manter um estoque atualizado de inventário e acompanhamento de sua localização, levando a perda de receita e capital subutilizado. O processo de contagem de estoque no local para grandes fábricas remotas ou instalações de depósito envolve etapas intensivas de tempo e recurso, restrições e é propenso a erros.
A OCI Vision pode ser usada para complementar os esforços manuais de gerenciamento de inventário usando drones (ou outros robôs) para observar, contar e reportar informações de forma confiável e rápida.
A OCI Vision é um dos diversos serviços de IA disponíveis no Oracle Cloud Infrastructure. A OCI Vision oferece a capacidade de aplicar aprendizado de máquina e inteligência artificial sem precisar de experiência em ciência de dados. A OCI Vision inclui modelos predefinidos disponíveis prontos para uso, o que permite que o reconhecimento de imagem e o reconhecimento de texto sejam incorporados em seus aplicativos, sem experiência anterior em aprendizado de máquina (ML). Esses modelos também podem ser usados para detectar anomalias visuais na manufatura, extrair texto de documentos para automatizar fluxos de trabalho de negócios.
Esta arquitetura de referência descreve a prova de conceito recentemente desenvolvida para o Oracle Industry Lab, onde o objetivo era usar os pipes empilhados como um exemplo de cenário de contagem de estoque automatizado, usando um drone programável e um modelo OCI Vision personalizado e treinado.
Arquitetura
O diagrama a seguir ilustra o fluxo lógico dessa arquitetura de referência.
Descrição da ilustração oci-vision-inventory-flow.png
A primeira etapa do processo de desenvolvimento foi rotular um conjunto de dados de imagens de pipes empilhados, usando o serviço OCI Data Labeling. Após a conclusão da rotulagem, um projeto do OCI Vision e um modelo personalizado do OCI Vision foram criados. O modelo personalizado da OCI Vision foi treinado usando o conjunto de dados rotulado de imagens de pipe empilhadas.
- Faça download das fotos dos drones na conexão por meio da API do Skydio Cloud
- Fazer upload das imagens no OCI Object Storage
- Conte os pipes
- Atualize a contagem de pipe no sistema do Oracle Cloud Enterprise Resource Planning usando a API do Oracle Fusion Cloud Inventory Management
O modelo OCI Vision criado é capaz de fornecer nativamente como saída, os metadados de cada objeto reconhecido (nesta arquitetura de referência: pipe). Os metadados de cada objeto contêm as coordenadas da caixa delimitadora que anexa o objeto e um valor de confiança. A contagem total não está presente na resposta nativa, portanto, é necessário incluí-la no código.
O OCI Events foi usado para automatizar os processos de gerenciamento de estoque. Quando as imagens são carregadas no Object Storage, o evento associado aciona o OCI Functions. Em seguida, a função chama diretamente a API do Oracle Fusion Cloud Inventory Management para atualizar a contagem de itens.
O diagrama a seguir mostra a arquitetura de referência de exemplo que pode ser mapeada para o diagrama de fluxo lógico acima.
Descrição da ilustração oci-vision-inventory-arch.png
A arquitetura tem os seguintes componentes:
- Visão do OCI
A OCI Vision é um serviço de IA para executar análise de imagem baseada em aprendizado profundo em escala. Com modelos predefinidos disponíveis prontos para uso, os desenvolvedores podem facilmente criar reconhecimento de imagem e reconhecimento de texto em seus aplicativos sem experiência em aprendizado de máquina (ML). Para casos de uso específicos do setor, os desenvolvedores podem treinar automaticamente modelos personalizados do Vision com seus próprios dados. Esses modelos podem ser usados para detectar anomalias visuais na manufatura, extrair texto de documentos para automatizar fluxos de trabalho de negócios e marcar itens em imagens para contar produtos ou remessas.
Além de obter acesso a modelos pré-treinados, os desenvolvedores podem criar modelos personalizados sem experiência em ciência de dados ou gerenciar a infraestrutura de modelos personalizados.
- Rotulagem de Dados do OCI
O serviço OCI Data Labeling é um serviço nativo do OCI que permite aos clientes criar e procurar conjuntos de dados, exibir registros de dados (texto, imagens) e aplicar labels para fins de criação de modelos de AI/ML. O serviço também fornece interfaces de usuário interativas projetadas para auxiliar no processo de rotulagem. Os desenvolvedores podem fazer upload de imagens brutas, adicionar rótulos e destacar áreas de imagens. Com a adição desses rótulos a imagens, os conjuntos de dados resultantes podem ser usados para treinar modelos personalizados de classificação e detecção de objetos.
Depois que os registros são rotulados, o conjunto de dados pode ser exportado como JSON delimitado por linha para uso no desenvolvimento de modelo de IA/ML. O OCI Data Labeling também pode ser acessado diretamente de outros serviços, como OCI Vision e OCI Language como parte de um workflow de treinamento de modelo personalizado. Os cientistas de dados que preferem criar e treinar seus próprios modelos de aprendizado profundo ou processamento de linguagem natural podem consumir o conjunto de dados rotulado por meio da OCI Data Science.
- Object Storage
O armazenamento de objetos fornece acesso rápido a grandes volumes 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 de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode escalar o armazenamento de forma integrada sem experimentar qualquer degradação no desempenho ou na confiabilidade do serviço. Use o armazenamento padrão para armazenamento "quente" que você precisa acessar de forma rápida, imediata e frequente. Use o armazenamento de arquivos compactados para armazenamento "frio" que você mantém por longos períodos de tempo e raramente acessa.
- Funções
O Oracle Functions é uma plataforma totalmente gerenciada, multitenant, altamente escalável, sob demanda, Functions-as-a-Service (FaaS). Ele é acionado pelo mecanismo de código aberto do Fn Project. As funções permitem que você implante seu código e o chame diretamente ou acione em resposta a eventos. O Oracle Functions usa contêineres Docker hospedados no Oracle Cloud Infrastructure Registry.
- Eventos
Os serviços do Oracle Cloud Infrastructure emitem eventos, que são mensagens estruturadas que descrevem as alterações em recursos. Os eventos são emitidos para operações CRUD (Create, Read, Update ou Delete), alterações do estado do ciclo de vida do recurso e eventos do sistema que afetam recursos da nuvem.
- Gateway de internet
O gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.
- Gateway NAT (Network address translation)
Um gateway NAT permite que recursos privados em uma VCN acessem hosts na internet, sem expor esses recursos a conexões provenientes da internet.
Recomendações
- Rede virtual na nuvem (VCN)
Ao criar 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 às sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.
Ao criar 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 às sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.
Selecione os blocos CIDR que não se sobrepõem a nenhuma outra rede (no Oracle Cloud Infrastructure, em seu data center local ou em 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 atribuição específica à mesma sub-rede, que pode servir como limite de segurança.
Use sub-redes regionais.
- Funções
Essa arquitetura usa uma função para chamar a API REST do OCI Vision com uma imagem específica e, em seguida, armazenar os metadados retornados pelo OCI Vision. A função pode ser criada usando o Java ou o Python SDK.
- Eventos
Nesta arquitetura, o serviço OCI Events está configurado para fazer listening das alterações na criação do serviço Object Storage. O serviço é chamado depois que o upload do objeto para o Object Storage é feito e chama a função para processamento.
- Object Storage
Quando as imagens são carregadas no Object Storage, o evento associado pode servir como um acionador para o item que conta o OCI Functions. Em seguida, a função pode chamar diretamente a API do Oracle Fusion Cloud Inventory Management para atualizar a contagem de itens. Nesse caso, a implementação pode ser feita de forma que os resultados detalhados (incluindo imagens com caixas delimitadoras adicionadas) sejam armazenados no Object Storage, para auditoria. O armazenamento de arquivos compactados pode ser usado nesse cenário como uma opção mais econômica.
Considerações
Considere os pontos a seguir ao implantar essa arquitetura.
- Interface do usuário
Na prova de conceito do Oracle Industry Lab, para fins de demonstração, um aplicativo web simples foi desenvolvido para exibir as caixas delimitadoras no topo das fotos de entrada, como uma etapa do processo. Se desejado, esse aplicativo Web pode ser criado e usado para que um operador valide manualmente a contagem de objetos examinando as caixas delimitadoras.
- Acesso
O OCI Vision suporta acesso por meio da Console do OCI, cliente SDK Java e Python e CLI do OCI. Ao testar, é recomendável usar a ferramenta CLI ou a Console.