IBM Watson

Integração inicial entre CodeIgniter e Visual Recognition

Esse post tem como intuito apresentar os resultados da integração inicial entre o CodeIgniter com o Visual Recognition, um dos serviços do IBM Watson.

No dia 03 de Novembro fizemos em nossa fanpage uma live mostrando os primeiros resultados dessa integração, e atendendo a muitos pedidos, nos próximas linhas vamos falar um pouco sobre como a integração aconteceu e disponibilizar o link do código-fonte.

Se você não assistiu a live, aproveite o momento e assista a gravação clicando aqui.

O que é o Visual Recognition?

O Visual Recognition é um serviço da IBM que faz uso de algoritmos de aprendizado (deep learning) para identificar cenas, objetos e rostos em imagens.

Ele permite que você crie classificadores personalizados para o processo de identificação, conforme a sua necessidade.

Imagine você poder dizer para o usuário o conteúdo da imagem logo que ele enviá-la para a sua aplicação?!

Você pode aplicar os recursos do Visual Recognition em diversos tipos de aplicação, aproveitando o máximo possível da inteligência artificial dele, e ampliando essa inteligência de acordo com a necessidade da sua aplicação.

Como ter acesso à API do Visual Recognition?

Para ter acesso à API do Visual Recognition você precisa criar uma conta no IBM Bluemix.

Ao criar a conta você tem a possibilidade de testar por 30 dias gratuitamente, desde que se mantenha dentro dos limites de uso de cada serviço.

Após confirmar o cadastro você já terá acesso aos serviços e poderá iniciar o uso das APIs.

Integrando com o CodeIgniter

O processo de integração com o CodeIgniter não foi complexo, embora não exista um SDK oficial para PHP.

Como o Visual Recognition disponibiliza endpoints em sua API, o que permite a execução das requisições usando cURL, utilizamos a biblioteca Unirest PHP para facilitar o processo de construção das chamadas à API.

Criamos então uma biblioteca base para abstrair os recursos do Visual Recognition e poder então executar os primeiros testes.

A seguir você pode ver o código-fonte completo e comentado da versão 0.0.1 da biblioteca.

Veja que em ambos os métodos nós utilizamos Unirest\Request::get, que é um método da biblioteca Unirest PHP que foi utilizada. Essa biblioteca deve estar instalada para que a biblioteca base funcione.

Utilizando o Composer você pode executar o comando a seguir para instalar a biblioteca:

composer require mashape/unirest-php

 

Você também pode contribuir com novas implementações para a biblioteca. Para isso visite o repositório do projeto no GitHub, faça um fork e envie pull requests.

Repositório da biblioteca no GitHub

Com a biblioteca base criada, o restante do processo foi bastante simples, pois envolveu passos bastante comuns no desenvolvimento com CodeIgniter, como por exemplo:

  • Criação da view para seleção do tipo de verificação a ser feita na imagem e informação da URL da imagem
  • Criação das views para apresentar os resultados da verificação da imagem e os erros, caso existam
  • Criação do controlador para processar as informações enviadas e carregar as views

No controller criamos 4 métodos, 2 públicos e 2 privados:

  • Index: responsável por carregar a view com o formulário para definição dos parâmetros
  • Recognition: responsável por processar as informações enviadas através do formulário e chamar os métodos da biblioteca IBMWatsonVR para poder obter as informações da imagem
  • ClassifyFormat: responsável por aplicar a formatação na estrutura de dados retornada pela API (quando o tipo de processamento for a classificação da imagem), para que esses possam ser exibidos na view
  • DetectFacesFormat: responsável por aplicar a formatação na estrutura de dados retornada pela API (quando o tipo de processamento for a detecção de rosto), para que esses possam ser exibidos na view

Veja a seguir o código-fonte completo do controlador, comentado.

Achou interessante essa integração? Quer testar? Então faça o donwload do projeto completo no GiutHub através do botão no final do post.

Em breve vamos falar mais sobre o IBM Watson, o Visual Recognition e outros serviços, fique ligado.

Assista ao vídeo da live de apresentação dessa integração, realizada na nossa fanpage.

 

Download do código-fonte no github