Noções básicas da inteligência artificial e da Visão Personalizada
Agora que seu projeto está pronto, devemos fornecer uma visão geral do que estamos prestes a fazer. A IA (inteligência artificial) é exatamente isso: artificial. A IA é uma inteligência simulada que usa uma quantidade enorme de dados para dar suporte a ela.
Examinando especificamente a Detecção de Objetos da IA de Visão Personalizada, podemos dividir o processo em duas etapas:
- Você informa à IA onde, em uma imagem, está um objeto.
- Você fornece à IA uma imagem com o objeto e ela informa onde está o objeto.
Parece bem simples, mas como a IA sabe como fazer isso?
Reconhecimento de imagens: Cor
Embora esteja fora do escopo deste módulo nos aprofundarmos em como a IA é criada, podemos começar a entender como ela funciona. Os computadores dependem do que pode ser convertido em dados – mais especificamente, números. Imagine um computador que, quando recebe uma imagem, pode inspecionar cada pixel e informar qual cor está em cada local. Esse computador não seria "inteligente", mas teria a capacidade de informar a cor de cada pixel conforme os inspeciona.
Agora imagine que o computador é um pouco mais inteligente e pode identificar a cor primária que aparece em uma imagem. Já podemos começar a ensinar (denominado treinar na IA) o computador a identificar imagens. Por exemplo, se eu mostrasse ao computador esta imagem da Pulinho:
O computador provavelmente entenderia que as imagens com predominância da cor branca e amarela são imagens da Pulinho. Mas e se eu mostrasse para o computador esta imagem de Chang'e?
Essa imagem também tem muitas cores branca e amarela, portanto, o computador provavelmente acharia que é uma imagem da Pulinho também.
E se nós mostrássemos ao computador esta imagem da Pulinho ao lado do céu à noite?
Ela tem a cor branca, mas não tem amarelo, então o computador provavelmente acharia que não se trata de uma imagem de Pulinho.
Reconhecimento de imagens: Forma
Para considerar imagens de objetos diferentes com cores semelhantes ou imagens do mesmo objeto com cores diferentes, evoluímos algoritmos de IA para começar a reconhecer linhas e formas. Você pode começar a imaginar como isso era feito no início do desenvolvimento da IA. Uma linha ou forma pode ser descrita como uma mudança na cor.
Em vez de manter apenas o controle das cores agregadas em uma imagem, o computador começaria a levar em consideração também a posição de onde estão essas cores. Se as mesmas cores estiverem próximas umas das outras, elas provavelmente estarão criando uma linha ou forma.
Esse tipo de análise poderá ser útil, por exemplo, se começarmos a identificar fotos da lua. Agora, podemos dizer que a lua está em uma imagem se há um círculo branco, normalmente em uma tela de fundo azul ou preta, como esta:
E se mostrássemos para o computador esta imagem:
O computador provavelmente ainda a reconheceria porque há um círculo branco distinto em uma tela de fundo azul ou preta.
Mas o computador provavelmente não seria conseguiria reconhecê-la como uma imagem da lua:
Porque ela não é um círculo branco completo.
Reconhecimento de imagens: IA avançada
Como você pode ver, o desenvolvimento da IA, especificamente sobre o reconhecimento de imagens, começou simples e ficou mais complexo conforme mais as pessoas começaram a investir em maneiras de ajudar os computadores a descobrir o que estavam vendo. No mundo atual, e na IA que controla o recurso de Visão Personalizada do Azure, o reconhecimento de imagens leva em conta muito mais do que apenas cor ou forma. A IA foi treinada usando milhares e milhões de imagens. A IA pode detectar diferenças sutis entre gatos e cachorros, o que poderia parecer óbvio para um humano. Mas se um computador examinasse duas formas marrons de tamanho semelhante, quatro patas e com rabos e orelhas, você pode começar a ver que é impressionante que as características de um gato podem ser diferenciadas das características de um cachorro.
Treinamento em imagens específicas
Embora a IA avançada possa detectar inúmeros objetos comuns (cachorros versus gatos, carros versus bicicletas), o trabalho ainda precisará ser feito se você quiser treinar a IA para reconhecer um objeto específico, digamos um personagem específico de um filme específico como a Pulinho.
É aí que entra o serviço de Visão Personalizada. Esse serviço tem a IA em segundo plano que já tem algum conhecimento do mundo, mas não sabe nada sobre a Pulinho (ou seu animal de estimação). O que vamos fazer é fornecer muitas imagens de Pulinho e informar à IA que elas são a Pulinho. Cada imagem da Pulinho que fornecemos dá à IA mais dados de características que representam especificamente a Pulinho. Quanto mais imagens de Pulinho, de diferentes ângulos, iluminação e tamanhos, mais capacitada a IA se tornará em reconhecê-lo em uma imagem maior.
Isso é chamado de treinamento da IA.
Em seguida, testaremos nossa IA para ver se ela foi bem treinada. Fazemos isso alimentando-a com imagens que contêm a Pulinho que ela nunca tenha visto. É essencial que você faça teste com imagens que a IA não tenha usado no treinamento. Caso contrário, na verdade, você não está testando a capacidade dela de reconhecer a Pulinho. Você estará apenas reconhecendo a capacidade dela de se lembrar de que viu a mesma imagem.
Este é a etapa de previsão do nosso projeto, chamada de teste da IA.
Depois de confirmar se a previsão da IA é precisa o suficiente, você pode implantar sua IA para que outras pessoas possam usá-la para identificar objetos usando telefones ou computadores. Essa atividade está fora do escopo deste módulo, mas é algo que você deveria experimentar!
Observação
Lembre-se de quando criamos o projeto de Visão Personalizada no portal de Visão Personalizada e ele nos perguntou qual região queríamos para o treinamento e a previsão separadamente? Isso ocorre porque você pode estar treinando sua IA de sua casa em Seattle, Washington, por exemplo. Nesse caso, seria interessante usar recursos de nuvem próximos de você para que o processo seja rápido. Mas você pode estar implantando essa IA na casa da sua mãe, que mora em Londres, e quer que ela obtenha as previsões rapidamente. Nesse caso, seria interessante usar recursos de nuvem que estivessem mais próximos dela para previsões.