Google Vision API

Continuando as postagens relacionadas a machine learning, agora vamos falar sobre a identificação de objetos em fotos. Para tal, vamos utilizar uma API do Google Cloud Plataform: a Cloud Vision API. Diferente do que acontece com o Microsoft Cognitive Services (MCS), onde temos APIs diferentes para cada tipo de objetivo, o Google agrupou tudo em uma única API, permitindo detectar faces (mas não identifica-los), descrever imagens e até mesmo dizer o local onde a foto foi tirada. Na postagem, vamos dar uma visão geral das principais funcionalidades da API.

Assim como acontece no MCS, para utilizar a API é necessário realizar um cadastro e obter uma chave de identificação. O próprio Google fornece um tutorial de como obter essa chave, que você pode encontrar nesse link. Uma desvantagem é que para obter a chave é necessário informar um cartão de crédito, mas não se preocupem, pois o uso dessa API é gratuito para pequenas quantidades de solicitações. Uma das vantagens desta API é que a foto não precisa estar hospedada em nenhum servidor para ser analisada, podendo ser enviada junto com o comando, e outra é que todas análises são solicitadas pelo mesmo comando, tendo que especificar somente qual tipo análise você quer através do parâmetro features. As opções são:

FACE_DETECTION: Para detectar face
LANDMARK_DETECTION: Para identificar estruturas naturais ou arquitetônicas populares
LOGO_DETECTION: Para identificar logos
LABEL_DETECTION: Para descrever elementos/objetos
TEXT_DETECTION: Para leitura de texto (OCR)
SAFE_SEARCH_DETECTION: Para avaliar o conteúdo da foto (adulto, editado, medicinal e violência)
IMAGE_PROPERTIES: Propriedades da imagem (como cor dominante)

Identificando pessoas em fotos

Dando sequência à postagem anterior, vamos falar um pouco agora sobre outra API do Microsoft Cognitive Services: a Face API. Esta API tem como finalidade detectar rotos em fotos e analisa-los, podendo descrever características do rosto (como gênero, idade estimada, se a pessoa está de óculos, ...), informar localização de elementos faciais (olhos, boca, nariz, ...) até identificar a pessoa, comparando com rostos previamente cadastrados. Nesta postagem vamos mostrar essas 3 funcionalidades, mas dando mais ênfase na identificação de rostos.

Antes de começar, é necessário solicitar acesso à API - basta entrar no MCS e clicar em Get started for free, selecionar a API Face - Preview e no final da página aceitar os termos de serviço e clicar em Subscribe (caso você queira rodar o código disponibilizado no final da postagem, aconselho fazer o registro antes da leitura, pois demora alguns minutos para efetivar). Você deve terminar em uma página parecida com isso:

Como exemplo, usarei fotos dos atores/personagens do último filme do Harry Potter (juro que pensei em algo mais recente, mas não achei muitas fotos do elenco de Stranger Things). A ideia é cadastrar os 3 principais personagens e tentar identifica-los em fotos com outros personagens. Para tal, temos que seguir as seguintes etapas (que serão explicadas com mais detalhes logo após a enumeração):
  1. Criar um grupo de pessoas
  2. Criar uma pessoa no grupo
  3. Associar uma face a pessoa (pode ser repetido diversas vezes para a mesma pessoa)
  4. Treinar para reconhecer os rostos das pessoas no grupo
  5. Identificar pessoas nas fotos 
Continue lendo para ver como podemos fazer esses passos no R!

Identificando emoções em fotos

Não é novidade para nós que trabalhamos com análise de dados que a área de Machine Learning (ou no bom português, aprendizado de máquina) está evoluindo rapidamente, mas o que muitos podem desconhecer é que este conhecimento está ao alcance de todos, e muitos de forma gratuita (mesmo que limitada). Nesta postagem vamos falar um pouco sobre o Microsoft Cognitive Services, mais especificamente sobre a Emotion API, uma API que permite a análise de emoções em fotos e vídeos - mas vamos focar, por ora, só em fotos.