Detecção de objeto em 6 linhas de código com Python

Original article was published on Deep Learning on Medium

Detecção de objeto em 6 linhas de código com Python

Meu primeiro contato com Object Detection foi por volta de 2017, eu precisava aprender detecção de objetos para um projeto e fui em busca de tutoriais na internet.

Meu objetivo era o mesmo desse artigo executar um modelo pré-treinado para detectar objetos nas imagens que eu gostaria. Para isso na época utilizei a API do TensoFlow 1.x que era necessário executar um script completo algo em torno de 100 , 150 linhas de código e agorá iremos precisar de apenas 6!

Para isso iremos usar a biblioteca GluonCV, recentemente andei pesquisando e vi a simplicidade que a ferramenta trás para a execução e desenvolvimento de algoritmos de visão computacional.

Vamos ao código

A imagem abaixo foi a que usei como teste.

Imagem teste

Na realidade, se não consideramos as 2 primeira linhas de importações das bibliotecas e a ultima que é apenas para visualizar as detecções, a parte que realiza o processamento são somente 3 linhas !

Resumindo, a 3 terceira linha carrega o modelo pré-treinado, a arquitetura que vamos utilizar é a SSD_Resnet50, a linha a seguir carrega a imagem de teste e realiza algumas transformações na imagem para que ela fique do modo que a rede SSD espera (isso tudo feito com uma linha de código!).

E na quinta linha é onde realmente é realizado a predição da imagem, retornando as classes, a acurácia e as caixas delimitadoras respectivamente.

Código para realizar a detecção de objeto
Saída de rede
Saída da rede no tamanho original

Você pode visualizar e executar o código no Google Colab neste link.

Como podemos ver o modelo detectou com bastante precisão tanto as caixas delimitadores de cada objeto tanto a classe que elas pertencem.

É importante lembrar que isso é um modelo pré-treinado, ou seja, ele foi treinado para detectar somente algumas classes, que no caso são: (‘aeroplane’, ‘bicycle’, ‘bird’, ‘boat’, ‘bottle’, ‘bus’, ‘car’, ‘cat’, ‘chair’, ‘cow’, ‘diningtable’, ‘dog’, ‘horse’, ‘motorbike’, ‘person’, ‘pottedplant’, ‘sheep’, ‘sofa’, ‘train’, ‘tvmonitor’).

Vamos fazer mais um teste

Imagem teste
Saída da rede
Saída da rede no tamanho original