Neste documento compartilho minha pesquisa, no qual a prova de conceito consiste em detectar colisões de veículos, chamar AUTOMATICAMENTE A POLÍCIA e AMBULÂNCIA e com o OCR de placa avisar OS FAMILIARES.
Este documento é baseado nos testes laboratoriais dos estudos como Global Innovator Intel, onde disponibilizo no vídeo a seguir, o excelente resultado referente ao uso da Inteligência Artificial com apenas as CPU, sem a obrigatoriedade das poderosas GPU com a tecnologia OpenVINO da Intel. Ressalto que podemos utilizar as GPU de computadores modestos como também as novas VPUs.
Hoje é muito comum sistema de IA deep learning com inferência matemática para visão computacional utilizando técnicas de redes neurais convolucionais. Mas também é muito comum estes sistemas trabalharem com as poderosas GPUs.
Neste artigo conheceremos o OpenVino, uma tecnologia da Intel que permite processar reconhecimento de objeto com 100 fps em processadores i5.
Introdução ao OpenVino
OpenVino é a tecnologia da Intel que permite processar Inteligência Artificial no segmento de Visão Computacional com o diferencial de permitir processar todo o reconhecimento com CPU.
Entretanto podemos utilizar muito além da CPU, e sim orquestrar VPU, FPGA e GPU simultaneamente. Ou seja, processar o módulo facefind na CPU, calculo de estimativa de sexo na VPU e estimativa de idade CPU por exemplo.
Resumindo a solução é baseado em cálculos convolucionais e permite utiliza a inferência de deep learning com CPU, GPU, VPU e FPGA com um único SDK. Um ponto interessante são os desempenho do processamento que esta diretamente relacionada com a otimização para os processadores Intel (SSSE4_1, SSSE4_2, AVX, AVX2 e outros)
Outro ponto excepcional, é a possibilidade da tecnologia OpenVino permitir o uso dos frameworks populares de deep learning, como por exemplo o TensorFlow, Caffe, Torch e outros. O modelos são convertidos para a tecnologia OpenVino e tudo funciona de maneira mágica e eficiente.
O real diferencial é a possibilidade de mudar o projeto de hardware durante o desenvolvimento sem sofre enormes traumas.
Requisitos e dependências:
A seguir alguns requisitos para você não sofrer durante a instalação e/ou uso da tecnologia.
Hardware (equipamento mínimos)
• 6th-8th Generation Intel® Core™
• Intel® Xeon® v5 family
• Intel® Xeon® v6 family
• Intel® Pentium® processor N4200/5, N3350/5, N3450/5 with Intel® HD Graphics
• Intel® Movidius™ Neural Compute Stick
• Intel® Neural Compute Stick 2
• Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
Sistema Operacional compatíveis:
• Ubuntu* 16.04 long-term support (LTS), 64-bit
• CentOS* 7.4 or higher, 64-bit
• Yocto Project* Poky Jethro* v2.0.3, 64-bit (for target only)
Dependências:
• OpenCV 3.4 ou superior
• GCC 3.4 ou superior
• Cmaker 2.8 ou superior
• Python 3.5 ou superior
Como instalar o OpenVino Toolkit no Linux
Primeiramente entre no link de download do OpenVino. Perceba que é necessário fazer um simples cadastro e depois o download. Por padrão, os downloads realizados pelo navegador serão salvos na pasta download.
Agora, para baixar, acesse a página de download do OpenVino. Faça o download da última versão.
Após o download entre na pasta e descompacte o arquivo recém obtido com o comando tar. Perceba que no momento da escrita deste tutorial, a versão mais recente é a 2018.5.455.tgz.
Observe se a versão também é a mesma que você baixou, havendo diferença, por favor altere de acordo com o arquivo baixado:
Após a descompactação, entre na pasta recém-criada e execute o script de checagem e instalação de dependências conforme o exemplo a seguir:
Agora efetuaremos a execução do script que iniciará a interface gráfica de instalação:
Ao executar, teremos a primeira janela de dialogo conforme o exemplo abaixo, então aceite o termo clicando em I ACCEPT THE TERM e clique no botão next.
Agora que em uma das opções, se você aceita ou não o envio de informações e clique no botão NEXT.
Agora nesta janela receberemos algumas informações sobre os requisitos das bibliotecas openCV. Clique em NEXT para continuar.
Agora veremos na janela o resumo da instalação, ou seja, todos os componentes que serão instalados, então clique novamente em NEXT para iniciar a instalação.
No término da instalação, se tudo estiver funcionando corretamente, veremos a janela a seguir. Para terminar clique no botão FINISH.
Configurando e testando o OpenVino.
Agora configuraremos as variáveis ambientais para o desenvolvimento com a tecnologia OpenVino.
Você verá algo como: [setupvars.sh] OpenVINO environment initialized
Nesta etapa determinaremos quais frameworks o Otimizador do OpenVino será compatível. Os comandos a seguir será para todos os disponíveis ( Caffe, TensorFlow, MXNet, Kaldi, e ONNX):
Agora testaremos com um script o reconhecimento e processamento do OpenVino:
Se tudo funcionar corretamente PARABÉNS, o script submetera a imagem car. png, onde o carro será identificado com 83% de similaridade.
Agora testaremos um exemplo visual para identificar o veículo, cor e leitura da respectiva placa:
Você verá algo como:
[ INFO ] /opt/intel/computer_vision_sdk/deployment_tools/demo/car_1.bmp
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Loading plugin CPU
API version ………… 1.5
Build ……………… lnx_20181004
Description ……. MKLDNNPlugin
[ INFO ] Loading network files for VehicleDetection
[ INFO ] Batch size is forced to 1
[ INFO ] Checking Vehicle Detection inputs
[ INFO ] Checking Vehicle Detection outputs
[ INFO ] Loading Vehicle Detection model to the CPU plugin
[ INFO ] Loading network files for VehicleAttribs
[ INFO ] Batch size is forced to 1 for Vehicle Attribs
[ INFO ] Checking VehicleAttribs inputs
[ INFO ] Checking Vehicle Attribs outputs
[ INFO ] Loading Vehicle Attribs model to the CPU plugin
[ INFO ] Loading network files for Licence Plate Recognition (LPR)
[ INFO ] Batch size is forced to 1 for LPR Network
[ INFO ] Checking LPR Network inputs
[ INFO ] Checking LPR Network outputs
[ INFO ] Loading LPR model to the CPU plugin
[ INFO ] Start inference
Avarage inference time: 14.9847 ms (66.7346 fps)
Total execution time: 25057.7
[ INFO ] Execution successful
###################################################
Demo completed successfully.
Pronto, Acredito que este documento é mais que incentivador, pois transmite a simplicidade e potencial da ferramente OpenVINO. Agradecimento em especial para Jomar Silva, Bob Duffy, Wendy Boswell, Kim Karalekas e Karl Fezer por todo apoio no programa Intel Innovator.
Dúvidas Sugestões em: [email protected]