Analisando imagens com Computer Vision API da Microsoft

Murillo Grübler
aibrasil
Published in
5 min readMar 20, 2018

Seguindo a série de artigos sobre serviços cognitivos, esse artigo abordará outra ferramenta da Microsoft para análise de imagens, o Computer Vision API. Esse serviço pertence a um conjunto de ferramentas da Microsoft, chamada de Microsoft Cognitive Services, cujo objetivo é oferecer diversos serviços cognitivos para diferentes áreas como visão, fala, pesquisa, conhecimento e idiomas. O serviço Computer Vision API pertence ao campo de visão e tem o objetivo de recuperar informações das imagens, como seu formato, tamanho, cores, rostos e muito mais.

O serviço Computer Vision API, diferentemente do Custom Vision que foi explicado em outro artigo, não necessita de treinamento prévio, pois seu objetivo não é classificar as imagens, e sim extrair informações delas. Através dele é possível determinar em qual das 86 categorias, pré-definidas pela ferramenta, a imagem selecionada pertence. Abaixo é possível visualizar o gráfico contendo todas as categorias conhecidas pelo serviço cognitivo.

Gráfico contendo a hierarquia das categorias presentes na ferramenta.

Além de categorizar, o serviço cognitivo de análise visual é capaz de retornar uma coleção de tags que informam diversos objetos reconhecíveis, como seres vivos, cenários e ações. Tais tags ajudam a compor a descrição da imagem (caption) que é disponibilizada para o cliente também. Todas essas informações citadas anteriormente carregam um valor de confiança, para que o cliente decida se o resultado obtido está dentro do esperado. Na próxima imagem há um exemplo de reconhecimento com a categoria cuja imagem pertence, as tags e uma descrição da imagem.

Categoria, tags e a descrição da imagem de um carro obtidas através do serviço cognitivo.

O serviço descrito nesse artigo também detecta rostos humanos na imagem processada, listando a quantidade de pessoas encontradas, o gênero, a idade e as coordenadas X e Y de cada um na imagem, como metadados. Abaixo é possível visualizar um exemplo com diversas pessoas na imagem e o retorno em JSON da ferramenta.

Detectando rostos de humanos na imagem, classificando se é homem ou mulher e informando a possível idade.

O Computer Vision API também extrai diversas informações diferentes das já citadas. O serviço possui a capacidade de obter informações relacionadas a cores, retornando informações como a cor predominante na imagem em geral, no background e no Foreground. Outra feature do serviço disponibilizada para o cliente é a capacidade da ferramenta detectar se o conteúdo da imagem é sensível (possui conteúdo adulto ou racista) ou não, com uma taxa de confiança. E por fim, a ferramenta entrega metadados da imagem como largura, altura e o seu tipo (extensão).

Como utilizar o serviço Computer Vision API?

A integração com outras aplicações ocorre através do REST API disponibilizado pela ferramenta. O processo de requisição é semelhante ao serviço Custom Vision, sendo necessário inserir o tipo do conteúdo Content-Type : application/json (há outros tipos, além do JSON, que podem ser enviados) e o token do modelo Ocp-Apim-Subscription-Key : <SEU_TOKEN> no cabeçalho. Além das informações citadas anteriormente, é necessário também inserir no corpo da requisição a URL da imagem {"Url": "<imagem_url>"} . O diferencial na requisição do Computer Vision API para o outro serviço são os parâmetros inseridos na URL. Enquanto o Custom Vision gera a URL da requisição na plataforma online, visto no artigo anterior, o Computer Vision API oferece a possibilidade do usuário selecionar somente as características que ele deseja receber, além de detalhes como paisagens ou celebridades e o idioma da requisição. É importante salientar que até esse momento, as únicas línguas suportadas pela ferramenta são o inglês e o chinês. A seguir podemos visualizar um exemplo da URL:

https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze/visualFeatures=Categories,Description,Color,Faces,ImageType,Adult&details=Landmarks&language=en

A chave utilizada na requisição pode ser obtida de duas diferentes formas. A primeira é se cadastrando nesse site com uma conta Microsoft, obtendo uma assinatura trial de 30 dias que permite 20 requisições por minuto ou 5 mil requisições por mês. A segunda possibilidade é criando uma conta no Microsoft Azure, que permitirá, dentro muitas possibilidades, criar um novo recurso cognitivo de pesquisa visual, visualizado na imagem abaixo. Nas configurações do recurso, existe a possibilidade de selecionar a versão gratuita que permite as mesmas quantidades de requisições que a versão trial. Os demais planos podem ser encontrados nesse link.

Listagem de recursos oferecidos pelo Microsoft Azure.

Para este artigo, foi desenvolvido uma aplicação de exemplo que analisa a imagem e exibe na página web algumas informações técnicas como tags, descrição, cores, faces e metadados encontradas. A aplicação está disponibilizada nesse link e os fontes se encontram no GitHub.

Aplicação desenvolvida com o intuito de analisar o conteúdo de imagens.

Conclusão

O serviço Computer Vision API compõe o conjunto de ferramentas da Microsoft, chamado de Cognitive Services. O objetivo desse serviço é analisar imagens, detectando objetos, pessoas e ações. O serviço não necessita de treinamento prévio, bastando apenas assiná-lo. O serviço cognitivo possui qualidades como uma curva de aprendizado rápida, fácil integração com qualquer tipo de aplicação que suporte REST API e aperfeiçoamento contínuo das técnicas de cognição pela Microsoft.

Referências

--

--

Murillo Grübler
aibrasil

Software Engineer passionate about Data Science and Deep Learning