2. 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
30. 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.
47. 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.
49. 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); } )
50. 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.
51. 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).
54. 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).
59. 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.
61. 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.
62. 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.
63. 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.
66. 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
67. 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