Classificação de imagens de bases de dados com inteligência artificial, utilizando o Altova MapForce
Um dos exemplos mais comuns de inteligência artificial no nosso dia a dia é o reconhecimento facial. O reconhecimento facial é o processo de identificar ou verificar a identidade de uma pessoa com base nas características do seu rosto. É utilizado em diversas aplicações, como desbloquear os nossos telemóveis com o FaceID, identificar os nossos amigos em plataformas de redes sociais como o Facebook, e fazer o check-in em aeroportos ou hotéis com scanners biométricos. O reconhecimento facial pode tornar as nossas vidas mais convenientes e seguras, mas também pode levantar algumas preocupações em relação à privacidade e à ética. Por exemplo, como podemos garantir que os nossos dados faciais não são utilizados de forma inadequada ou roubados por hackers ou agentes maliciosos? Como podemos impedir que o reconhecimento facial seja utilizado para vigilância ou discriminação? Como podemos garantir que o reconhecimento facial é preciso e justo, e que não contém quaisquer preconceitos ou erros?
O parágrafo acima foi gerado pelo ChatGPT em resposta ao meu pedido para descrever os benefícios e os riscos da inteligência artificial, incluindo um exemplo da vida real. É interessante que o ChatGPT tenha escolhido o FaceID como exemplo, já que o FaceID é apenas uma variação da análise de imagens, e a classificação de imagens baseada em inteligência artificial oferece o potencial de automatizar muitas tarefas do mundo real.
Um caso de utilização comum é um catálogo de produtos, onde uma empresa gerencia informações de produtos fornecidas por diversos fabricantes. Um produto inserido nessa base de dados pode ter um nome que não inclui necessariamente uma descrição precisa do item. Por exemplo, "wellington" é uma bota, "fedora" é um chapéu, "mongoose" é uma bicicleta e "yellow watermelon shiny needlefish" é uma isca de pesca. Podemos utilizar a classificação de imagens baseada em inteligência artificial para.. Microsoft Azure: API de Visão Computacional Para resolver este problema, o serviço de Visão Computacional recebe dados de imagem ou uma URL como entrada e retorna informações sobre o conteúdo. Um dos serviços gera etiquetas de classificação de imagens com base num conjunto de dados de treino que contém objetos reconhecíveis, seres vivos, paisagens e ações, com os quais o Azure AI foi treinado. Estas etiquetas permitem-nos categorizar os produtos na base de dados de forma adequada e podem até corresponder aos termos de pesquisa que um utilizador pode fornecer para encontrar produtos no catálogo.

Podemos criar um mapeamento de dados baseado em inteligência artificial utilizando o Altova MapForce para enviar imagens de produtos para a inteligência artificial de visão computacional, através da sua API de serviços web. O Altova MapForce é uma ferramenta gráfica de mapeamento de dados, premiada, para conversão e integração de dados de qualquer tipo. A API de visão computacional utiliza inteligência artificial para analisar cada imagem e retornar uma lista de etiquetas. O MapForce suporta serviços web diretamente no mapeamento, e a funcionalidade de processamento de resultados intermediários ou de mapeamento de dados encadeado permite inserir as etiquetas de volta num campo específico na base de dados para cada produto.
Esta ferramenta de mapeamento de dados, baseada em inteligência artificial, pode automatizar a geração e a inserção de etiquetas geradas por IA para catálogos de produtos, de forma totalmente escalável. As etiquetas fornecidas pela IA são acompanhadas de um índice de confiança, o que facilita a definição de um limite no mapeamento para utilizar apenas as etiquetas com um nível de confiança suficientemente elevado.
Começámos com uma pequena base de dados de exemplos de produtos comuns para atividades de lazer ao ar livre e utilizamos o Altova DatabaseSpy para adicionar um campo à tabela de produtos para etiquetas de inteligência artificial. O DatabaseSpy conecta-se a todas as principais bases de dados, facilitando a edição de SQL, o design da estrutura da base de dados, a edição de conteúdo e a conversão de bases de dados, a uma fração do custo das soluções específicas para uma única base de dados. Aqui está uma janela de resultados de uma consulta do DatabaseSpy, que mostra o conteúdo da base de dados e o novo campo vazio.

E, aqui, numa ordem aleatória, estão versões em miniatura das imagens de exemplo dos produtos:

Utilizámos também o DatabaseSpy para validar uma consulta SQL simples, que tinha como objetivo obter apenas o identificador (que é a chave primária da tabela) e o nome do ficheiro da imagem correspondente.

A consulta SQL é a primeira entrada para o mapeamento de dados baseado em IA do MapForce, e compreende três componentes principais: o resultado da consulta, a solicitação para a API de Análise de Imagens da Azure, e um script SQL para inserir as respostas da API de volta na base de dados.

Vamos analisar a solicitação à API de inteligência artificial com mais detalhes:
Resultado de uma consulta SQL como fonte de entrada para mapeamento de dados

A consulta "Select" gera uma tabela de dados, essencialmente uma lista de números de identificação e os nomes de ficheiros de imagem correspondentes. No entanto, a API só aceita pedidos para uma imagem de cada vez. Ao associar o identificador (ID) proveniente da consulta ao elemento "envelope" no topo do componente da API, geramos uma nova chamada à API para cada ID retornado, percorrendo assim cada imagem da lista. A outra ligação proveniente do ID, que sai da imagem no canto superior direito, será utilizada mais tarde para criar um script de atualização SQL.
O designer da tabela de base de dados optou por referenciar as imagens dos produtos através de nomes de ficheiro, em vez de incluir as imagens binárias como objetos BLOB na base de dados. A API de análise de imagens de inteligência artificial pode receber tanto dados de imagem "brutos" como uma URL para uma imagem acessível publicamente, pelo que podemos simplesmente fornecer a URL da imagem à API na nossa solicitação. A função "concat" mostrada acima adiciona o caminho para construir cada URL completa.
Executar a solicitação do serviço web de inteligência artificial
A parte central do mapeamento de dados baseado em inteligência artificial mostra a função do serviço web que chama a API de análise de imagens por inteligência artificial e que processa posteriormente os resultados obtidos:

Note a representação gráfica em forma de envelope, com a etiqueta "Corpo", tanto no lado da Requisição como no lado da Resposta da função do serviço web. A API exige um objeto JSON como corpo da Requisição e especifica que a Resposta será um documento JSON. Os botões azuis e vermelhos, localizados ao lado das representações gráficas do "Corpo", abrem uma janela de diálogo que permite definir a estrutura da Requisição e da Resposta.

A resposta da API de inteligência artificial precisa de processamento adicional. As etiquetas são devolvidas como listas de objetos JSON, e cada etiqueta é acompanhada por um número que representa o nível de confiança da precisão, expresso em percentagem. Abaixo, apresentamos um exemplo. Este é o resultado da IA no formato JSON original para a imagem do guarda-chuva:

A função de filtragem principal seleciona as respostas que contenham etiquetas com um nível de confiança de 88% ou superior. Em seguida, a função de junção de strings combina as etiquetas numa sequência separada por vírgulas. Note que a etiqueta "chuva" apresentada acima tem um nível de confiança de 42%.
E aqui está a cadeia de caracteres que queremos aplicar ao produto principal na base de dados, depois de extrairmos apenas as etiquetas que desejamos:

Gerar uma instrução SQL de atualização a partir das respostas da inteligência artificial
A parte direita do sistema de mapeamento de dados baseado em inteligência artificial recebe cada resultado processado, correlaciona esse resultado com o índice de identificação correto na base de dados e associa a sequência de etiquetas ao campo "ai-tags" na tabela "cat-products" da base de dados.

Análise dos resultados do mapeamento de dados baseado em inteligência artificial
O botão "Visualizar resultado" abaixo do painel principal do MapForce permite-nos ver um exemplo do resultado: ele executa todo o processo de mapeamento de dados, começando pela consulta Select original, realiza as requisições da API, processa os resultados da inteligência artificial e, finalmente, cria instruções SQL de atualização, gerando um script SQL de atualização completo

Podemos usar a opção "Executar Script SQL" no menu principal do MapForce para executar o script e aplicar as atualizações da base de dados de forma interativa. Ou, agora, podemos implementar este mapeamento numa instância do MapForce Server na nossa rede, onde pode ser executado de forma automatizada como parte de um fluxo de trabalho para a importação de novos produtos para o catálogo. Com o FlowForce Server, poderíamos definir alguns gatilhos que processam automaticamente os dados recebidos, validam-nos, e depois realizam a marcação de imagens baseada em inteligência artificial, e, por fim, inserem os dados na base de dados de produção.
As nossas solicitações à API de Visão Computacional dos Serviços Cognitivos da Microsoft Azure utilizaram o modelo de visão pré-treinado padrão da Microsoft para este exemplo. Um modelo de visão personalizado seria capaz de refinar os resultados da identificação de elementos para aplicações específicas, mas isso está fora do âmbito deste artigo.
Clique aqui para obter mais informações sobre as funcionalidades de mapeamento e conversão de dados disponíveis no MapForce, ou clique aqui para descarregar uma versão de avaliação gratuita e totalmente funcional durante 30 dias, que inclui arquivos de ajuda, tutoriais e muitos exemplos de mapeamento de dados.