5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 1/69
INTELIGÊNCIA ARTIFICIAL A SERVIÇO DA HUMANIDADE COMINTELIGÊNCIA ARTIFICIAL A SERVIÇO DA HUMANIDADE COM
CPU, GPU E VPUCPU, GPU E VPU
Autor:
cabelo@opensuse.org
Alessandro de Oliveira Faria
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 2/69
   TECNOLOGIA DESDE 1983   TECNOLOGIA DESDE 1983
Autodidata, Pesquisador e Inventor
CTO OITI TECHNOLOGIES
Embaixador openSUSE America Latina
Membro do Conselho OWASP SP
Engenheiro Linux openSUSE
Colaborador Mozillians
Global Innovator Intel
Contribuidor técnico o cial:
Viva o Linux
FOCA Linux
OWASP ZAP
OpenCV
Educatux
openSUSE
Mais de 90 palestras ministradas
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 3/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 4/69
    VISÃO COMPUTACIONAL    VISÃO COMPUTACIONAL
Demanda tempo real
Ruído
Ambiguidade
Custo Computacional
Evolução device
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 5/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 6/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 7/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 8/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 9/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 10/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 11/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 12/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 13/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 14/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 15/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 16/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 17/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 18/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 19/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 20/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 21/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 22/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 23/69
OCR E VERIFICAÇÃO DE PROCEDIMENTOSOCR E VERIFICAÇÃO DE PROCEDIMENTOS
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 24/69
CLASSIFICAÇÃO DE DOCUMENTOCLASSIFICAÇÃO DE DOCUMENTO
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 25/69
IDENTIFICAÇÃO DE REMÉDIOSIDENTIFICAÇÃO DE REMÉDIOS
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 26/69
OPENVINOOPENVINO
Capacidade de processar Inteligência Arti cial em
CPU com alto desempenho.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 27/69
OPENVINOOPENVINO
Capacidade de processar Inteligência Arti cial em
CPU com alto desempenho.
Requisito: Processador de 6a geração ou superior
(Yoga 260 U$ 850.00 )
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 28/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 29/69
PARA 2019 E 2020PARA 2019 E 2020
Celular e pen drive (Neural Compute Stick) compostos
de um processador denominado VPU, resolverá o
gargalo de conectividade e a dependência do
processamento em nuvem para soluções de IA.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 30/69
PARA 2019 E 2020PARA 2019 E 2020
Celular e pen drive (Neural Compute Stick) compostos
de um processador denominado VPU, resolverá o
gargalo de conectividade e a dependência do
processamento em nuvem para soluções de IA.
Resultado: Eliminação dos altos custos das máquinas
virtuais em cloud, como também aquisição das
poderosas GPUs.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 31/69
VPU BAIXO PREÇO E COM EFICIÊNCIA ENERGÉTICA.VPU BAIXO PREÇO E COM EFICIÊNCIA ENERGÉTICA.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 32/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 33/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 34/69
MICROSCÓPIO COM REALIDADE AUMENTADAMICROSCÓPIO COM REALIDADE AUMENTADA
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 35/69
IA, IOT E REALIDADE AUMENTADA COM DADOS VITAIS EM TEMPO REALIA, IOT E REALIDADE AUMENTADA COM DADOS VITAIS EM TEMPO REAL
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 36/69
EXEMPLO: DIAGNÓTICOS DE CÂNCER DE PELEEXEMPLO: DIAGNÓTICOS DE CÂNCER DE PELE
CÂMERA DE ENDOSCOPIA U$ 29.00CÂMERA DE ENDOSCOPIA U$ 29.00
COMPUTADOR RASPBERRY U$ 30.00COMPUTADOR RASPBERRY U$ 30.00
VPU MOVIDIUS U$ 73.00VPU MOVIDIUS U$ 73.00
TOTALTOTAL U$ 132.00U$ 132.00
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 37/69
CONSUMO: INSIGNIFICANTE 1W, FUNCIONA COMCONSUMO: INSIGNIFICANTE 1W, FUNCIONA COM
CARREGADOR DE CELULAR!CARREGADOR DE CELULAR!
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 38/69
VANTAGENSVANTAGENS
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 39/69
VANTAGENSVANTAGENS
Baixo custo: O custo do hardware é baixo como
também o seu consumo de energia.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 40/69
VANTAGENSVANTAGENS
Baixo custo: O custo do hardware é baixo como
também o seu consumo de energia.
Portátil: O equipamento pode efetuar diagnósticos em
locais de difícil acesso.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 41/69
VANTAGENSVANTAGENS
Baixo custo: O custo do hardware é baixo como
também o seu consumo de energia.
Portátil: O equipamento pode efetuar diagnósticos em
locais de difícil acesso.
Off-Line: Não necessita de conectividade para
processamento em nuvem.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 42/69
AMOSTRAGEM DE APRENDIZADOAMOSTRAGEM DE APRENDIZADO
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 43/69
RESULTADO FINALRESULTADO FINAL
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 44/69
LEIS GDPR,LGPD - OWASP SPLEIS GDPR,LGPD - OWASP SP
Todo setor de processamento de imagem deve se
preparar para a nova lei 13.709 sancionada dia 14 de
agosto de 2018, pois a multa chega a
40 MILHÕES40 MILHÕES
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 45/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 46/69
GPU NÃO É CPUGPU NÃO É CPU
A principal diferença, é a capacidade da CPU executar
qualquer processamento, entretanto o processamento
da CPU voltado aos grá co é lento.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 47/69
A GPU foi projetada inicialmente apenas para realizar o
processamento grá co. A GPU apresenta desempenho
incomparável em cálculos de ponto utuante.
A CPU concentra várias tarefas. Ele cuida de atividades
simples, como o carregamento dos aplicativos
(delegando ações para memória RAM, HD, chip de rede
e placa de vídeo), até as situações mais complexas e
também acesso a BIOS.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 48/69
CPU menos núcleos e clocks mais elevados, GPU
múltiplos núcleos e clocks menores (mas apresentam
desempenho incrível para cálculos de ponto utuante).
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 49/69
PROGRAMAÇÃO MULTINUCLEARPROGRAMAÇÃO MULTINUCLEAR
Programação multinuclear são alternativas às threads que proporcionam tempos de
inicialização e encerramento mais rápidos, melhor distribuição de carga, melhor
aproveitamento dos recursos disponíveis e um nível alto de abstração.
for (int i = 0; i < 10000; ++i)
a[i] = f(i) + g(i);
tbb::parallel_for( 0, 10000, [&](int i) { a[i] = f(i) + g(i); } )
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 50/69
IPP/MKLIPP/MKL
A biblioteca IPP (Primitivos de Performance Integrada)
dos processadores Intel apresenta grandes ganhos de
performance quando o problema proposto é
processamento de imagem. Utiliza instruções dos
processadores com AVX2 e SSE assim aumentando
muito o desempenho.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 51/69
Ja a biblioteca MKL,é uma excelente opção para
processamento de imagens pelo simples motivo, foi
criada para aplicações de alta performance
computacional (HPC), é ideal para utilização de rotina
matemáticas (Transformada de Fourier, Álgebra Linear,
Calculo com Vetores e Matriz).
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 52/69
PLATAFORMA INTELPLATAFORMA INTEL
SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2
PLATAFORMA POWER IBMPLATAFORMA POWER IBM
VSX
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 53/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 54/69
OPENCV 3.4.1 OU SUPERIOROPENCV 3.4.1 OU SUPERIOR
OpenCV é a principal biblioteca de código aberto para
a visão computacional, processamento de imagem e
aprendizagem de máquina, disponibiliza a aceleração
de calculo por GPU (util para em tempo real) e agora
um novo módulo de dnn (deep learning).
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 55/69
COMPILAÇÃOCOMPILAÇÃO
cmake -DCMAKE_BUILD_TYPE=Release 
-DENABLE_VSX=ON 
-DENABLE_SSE=0 
-DENABLE_SSE2=0
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 56/69
cmake -DCMAKE_BUILD_TYPE=Release 
-DWITH_IPP=ON 
-DWITH_TBB=ON 
-DWITH_CUDA=ON 
-DENABLE_FAST_MATH=ON 
-DCUDA_FAST_MATH=ON 
-DWITH_CUBLAS=ON 
-DENABLE_SSE=ON 
-DENABLE_SSE2=ON 
-DENABLE_SSE3=ON 
-DENABLE_SSSE3=ON 
-DENABLE_SSE41=ON 
-DENABLE_SSE42=ON 
-DENABLE_AVX=ON 
-DENABLE_AVX2=ON ;
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 57/69
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 58/69
O acelerado crescimento deve-se as GPU e a grande
massa de dados disponíveis na internet.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 59/69
Machine Learning: Utiliza algoritmos para a coleta de
dados, esta coleta deve ser efetuada por especialistas
em visão computacional (para con gurar os atributos
relevantes da imagem). Durante o reconhecimento
uma obstrução do objeto deriva em erros e diminuição
da assertividade.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 60/69
Deep Learning: Os algoritmos demandam muito menos
preocupação com a coleta, bastando apenas informar
os pixels (região o objeto, assim não exigindo
preocupação com a extração dos dados da imagem).
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 61/69
O aprendizado acontece, recortando a imagem em uma
pilha de pequenos pedaço, estes são enviados paras as
camadas das redes neurais. E por m o reconhecimento
é baseado no peso total dos atributos da imagem
obtido no processamento. Resultado é conseguir
reconhecer um objeto obstruido.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 62/69
REDES NEURAIS CONVOLUCIONAISREDES NEURAIS CONVOLUCIONAIS
Baseada na visão animal (córtex visual, ltro de Gabor),
então as redes neurais convolucionais trabalham com
os neurônios de entrada, nas sinapses obtemos os
pesos aplicando uma função com o kernel
convolucional, e então teremos os neurônios de saída
que poder servir como propagação reversa ou não.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 63/69
CARACTERÍTICASCARACTERÍTICAS
Extração, mapeamento das características,
Subamostragem.
Irrelevante a posição, localiza a característica local dos
pontos, robusto (rotação e obstrução).
Várias camadas de convolução, não linearidade
max(0,x) obter esparcidade.
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 64/69
YOLOYOLO
YOLO (You only look once) é uma nova técnica de
reconhecimento de objetos, e utiliza convolução para
obter uma excelente performance.
DARKNET OPEN SOURCE /NEURAL NETWORKS / CDARKNET OPEN SOURCE /NEURAL NETWORKS / C
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 65/69
COMPILAÇÃOCOMPILAÇÃO
$ git clone https://github.com/pjreddie/darknet
$ vi Makefile
GPU=1
CUDNN=1
OPENCV=1
OPENMP=1
$ make
gcc -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -DGPU
gcc -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -DGPU
$ darknet detector demo cfg/coco.data cfg/yolo.cfg cfg/yolo.weigh
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 66/69
APRENDIZADO YOLOAPRENDIZADO YOLO
dw = 1./size[0]
dh = 1./size[1]
w = box[1] - box[0]
h = box[3] - box[2]
x = (box[0] +(w/2.0)
y = (box[2] +(h/2.0)
x = x*dw
w = w*dw
y = y*dh
h = h*dh
/dados/image/train.txt
/dados/image/car1.jpg
/dados/label/car1.txt
0 0.482422 0.650000 0.280469 0.652778
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 67/69
YOLO E OPENCVYOLO E OPENCV
Efetuar o download da versão 3.4.0 ou superior :
Mais informações em: https://docs.opencv.org/master/da/d9d/tutorial_dnn_yolo.html
$ cd [PATH-SOURCE-OPENCV]/opencv/samples/dnn/
$ g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` 
yolo_object_detection.cpp -o yolo_object_detection
$ ./yolo_object_detection -source=[PATH-TO-VIDEO] 
-cfg=[PATH-TO-DARKNET]/cfg/yolo.cfg 
-model=[PATH-TO-DARKNET]/yolo.weights 
-class_names=[PATH-TO-DARKNET]/data/coco.names
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 68/69
RESULTADORESULTADO
5/3/2019 Visão computacional
palestras.assuntonerd.com.br/ia2019intel.html?print-pdf#/ 69/69
OBRIGADO!OBRIGADO!
Critícas e Sugestiões:
cabelo@opensuse.org
Blog: https://assuntonerd.com.br
“Colaborar atrai amigos, competir atrai inimigos”
Alessandro de Oliveira Faria
 

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade