Acelere pesquisa reversa de imagens com GPU para extrair características

3 min de leitura
Patrocinado
Imagem de: Acelere pesquisa reversa de imagens com GPU para extrair características
Avatar do autor

Equipe TecMundo

Por: Krishna Chaitanya Balaga, Scott Dangelo e Sandhya Nayak.

Publicado em: 18 de maio de 2020.

Resumo

Nesse padrão de código, trabalhe por meio do processo de análise de um conjunto de dados de imagem utilizando uma rede convolucional pré-treinada (VGG16) e extraia vetores de representação numérica de características (feature vectors) para cada imagem através de um notebook do Jupyter.

Descrição

Os algoritmos de machine learning (aprendizado de máquina) fornecem muitas ferramentas úteis para a solução de problemas concretos. Uma das esferas na qual o machine learning teve grande sucesso é o reconhecimento de imagens. Por meio do uso do poder computacional para a identificação de imagens e comparação destas com outras, você pode utilizar máquinas para executar tarefas que, alguns anos atrás, poderiam ser realizadas apenas por humanos. Engenheiros e cientistas de dados que trabalham com reconhecimento de imagem podem encontrar alguns desafios que, por sua vez, possivelmente limitam o trabalho que pode ser feito com algoritmos de machine learning. A maior limitação é o tempo e o poder computacional necessários para criar as camadas de machine learning em uma rede neural profunda, necessárias para o reconhecimento de imagens. Embora grandes conjuntos de dados e algoritmos complexos possam ser executados em muitas configurações comuns de hardware, o tempo necessário para criar camadas neurais, treinar um modelo e extrair recursos pode ser proibitivamente alto. O uso de uma Unidade de Processamento Gráfico (GPU) para realizar uma grande quantidade de cálculos em paralelo revolucionou o mundo da computação gráfica, e a descoberta de que as mesmas GPUs também podem ser usadas para acelerar o desempenho de tarefas de machine learning produziu um efeito semelhante no mundo da inteligência artificial. Nesse padrão de código, demonstramos uma tarefa comum para recuperação de imagem por conteúdo (CBIR) e comparamos a execução na CPU com o desempenho superior obtido ao executá-la em uma GPU.

No padrão de código, te orientamos ao longo do processo de análise de um conjunto de dados de imagem utilizando uma rede neural convolucional pré-treinada (VGG16) e de extração de feature vectors para cada imagem utilizando um notebook do Jupyter. Esse é um processo computacionalmente caro que demora 300 vezes mais em uma CPU do que em uma GPU. Utilizaremos o ambiente de GPU no IBM® Watson™ Studio ou em sua máquina local para acelerar a extração de características. Feita a análise, demonstraremos a pesquisa reversa de imagens, um dos aplicativos populares da análise de imagens. Essa pesquisa é uma técnica de consulta em CBIR que envolve fornecer ao sistema CBIR uma imagem de amostra para servir de base em sua pesquisa. Em termos de recuperação de informações, a imagem de amostra é o que formula uma pesquisa. Normalmente, a pesquisa reversa de imagens é caracterizada por uma ausência de termos de pesquisa.

Com a conclusão desse padrão de código, você entende como:

  • Utilizar a aceleração da GPU no Watson Studio ou localmente para melhorar o desempenho da extração de características;

  • Fazer o download de um modelo VGG16 pré-treinado usando o Keras;

  • Executar a extração de características. Nesse ponto, removemos a última camada (ou seja, a camada de classificação softmax) para que nosso modelo de saída agora tenha apenas 12 camadas e a última camada seja f2 (Densa), uma camada totalmente conectada;

  • Obter feature vectors para todas as imagens e reduzi-las usando o PCA,

  • Utilizar a distância de cosseno entre os recursos do PCA para comparar a imagem da consulta com as 5 imagens mais próximas e retorná-las como miniaturas (thumbnails).

Fluxo

Extração de características
Extração de características

  • 1. O usuário interage com o Jupyter Notebook para importar e usar os módulos Python;

  • 2. 101_Object_Categories do caltech-101 são importadas para a pesquisa de imagens;

  • 3. O modelo Keras VGG16 é importado, com pesos pré-treinados no ImageNet;

  • 4. O usuário pode executar a extração de características usando a GPU para um melhor desempenho.

Instruções

Obtenha instruções detalhadas no arquivo readme. Essas etapas mostram como:

  • 1. Clonar o repositório;

  • 2. Criar um notebook no Watson Studio ou localmente;

  • 3. Executar o notebook.

...

Quer ler mais conteúdo especializado de programação? Conheça a IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

Você sabia que o TecMundo está no Facebook, Instagram, Telegram, TikTok, Twitter e no Whatsapp? Siga-nos por lá.