TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computacional sem misterio
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 1/48
OPENCV: INTELIGÊNCIA ARTIFICIAL E VISÃO COMPUTACIONALOPENCV: INTELIGÊNCIA ARTIFICIAL E VISÃO COMPUTACIONAL
SEM MISTÉRIOSEM MISTÉRIO
Autor:
cabelo@opensuse.org
http://palestras.assuntonerd.com.br/opencv2019.html
Alessandro de Oliveira Faria
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 2/48
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 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 3/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 4/48
OPENCVOPENCV
Uma biblioteca desenvolvida para tornar a Visão
Computacional mais acessível.
Criada em Intel 1999 ~ 2000, seu código fonte foi
disponibilizado na licença BSD, e como resultado
atualmente é mantida por 47 mil colaboradores e
proporciona mais de 2500 algoritmos otimizados.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 5/48
OPENCVOPENCV
Encontra-se atualmente na versão 4.1.0 no qual
participo como desenvolvedor colaborador do projeto
e iniciei na versão 0.9.6 faz 15 anos.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 6/48
OPENCVOPENCV
Um dos principais pilares da biblioteca é
processamento e reconhecimento da imagens.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 7/48
OPENCVOPENCV
Não é otimizada somente para processadores Intel,
entrentanto nesta apresentação veremos muito
super cialmente como obter o melhor desempenho em
processadores Intel.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 8/48
DIRETIVAS DE COMPILAÇÃODIRETIVAS DE COMPILAÇÃO
cmake -DCMAKE_BUILD_TYPE=Release
-DWITH_IPP=ON
-DWITH_TBB=ON
-DENABLE_FAST_MATH=ON
-DINSTALL_PYTHON_EXAMPLES=ON
-DENABLE_SSE=ON
-DENABLE_SSE2=ON
-DCPU_DISPATCH=SSE3,SSE4_1,SSE4_2,AVX,FP16,AVX2 ..
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 9/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 10/48
ALGUNS FUNDAMENTOSALGUNS FUNDAMENTOS
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 11/48
VISÃO COMPUTACIONALVISÃO COMPUTACIONAL
NENHUM ALGORITMO É 100%NENHUM ALGORITMO É 100%
Ambiguidade matemática
A margem de erro é inversamente
proporcional a qualidade da imagem
submetida para processamento
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 12/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 13/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 14/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 15/48
O QUE É IMAGEMO QUE É IMAGEM
Imagem digital, é uma
matriz que re ete as cores
da imagem do mundo real
para o universo digital.
(convexidade/obturador).
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 16/48
RGBRGB
Cores primária onde a combinação dos seus valores
resultam em uma vasta gama de cores. Existe outros
espaço de cores...
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 17/48
PRÉ PROCESSAMENTO / PROCESSAMENTOPRÉ PROCESSAMENTO / PROCESSAMENTO
Pré processamento remoção de ruído e outros ltros.
Processamento é uma técnicas capaz de interpretar e
extrair informações da imagem.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 18/48
ESCALA DE CINZAESCALA DE CINZA
A escala de cinza, são valores em pixel que informa a
intensidade de luminância na imagem (entre preto e
branco).
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 19/48
HISTOGRAMAHISTOGRAMA
Geralmente utilizado para analise através de grá cos
de barras que fornece o nível de cinza dos pixels da
imagem.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 20/48
BINARIZAÇÃOBINARIZAÇÃO
Binarização da imagem é geralmente utilizado para
separar o fundo com uma regiao / objeto de interesse.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 21/48
FILTROSFILTROS
Muito utilizado na transformação da imagem pixel a
pixel, o resultado dependem dos pixels vizinhos.
Por exemplo ltro de suavização, utilizada para reduzir
ruido
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 22/48
MORFOLOGIA MATEMÁTICAMORFOLOGIA MATEMÁTICA
A Erosão é um exemplo muito utilizado para remover
impurezas da imagem
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 23/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 24/48
RECONHECIMENTO DE PADRÃORECONHECIMENTO DE PADRÃO
Necessário uma base de conhecimento dos objetos,
estas amostras são utilizada no processo de
aprendizado de máquina.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 25/48
Reconhecimento de padrão, objetos e outros é uma das
principais funções da área de visão computacional.
Existem muitas técnicas disponíveis na biblioteca
OpenCV, Template Matching, Feature Matching,
Machine Learning, Deep Learning...
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 26/48
RECONHECIMENTO DE PADRÃORECONHECIMENTO DE PADRÃO
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 27/48
Rastreamento consistem no reconhecimento do
padrão em uma sequencia de imagem. O rastreamento
esta diretamente relacionado ao movimento do objeto.
Filtro Kalman/ Filtro de Particula
Mean Shift/ Cam Shift e outros
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 28/48
RASTREAMENTO DE PIXELSRASTREAMENTO DE PIXELS
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 29/48
FLUXO OPTICOFLUXO OPTICO
Permite identi car/detectar o movimento espaças e
densas entre sequencias de quadros sem conhecer o
conteúdo.
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 30/48
FLUXO DE PIXELSFLUXO DE PIXELS
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 31/48
APLICABILIDADEAPLICABILIDADE
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 32/48
OCR E VERIFICAÇÃO DE PROCEDIMENTOSOCR E VERIFICAÇÃO DE PROCEDIMENTOS
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 33/48
CLASSIFICAÇÃO DE DOCUMENTOCLASSIFICAÇÃO DE DOCUMENTO
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 34/48
IDENTIFICAÇÃO DE REMÉDIOSIDENTIFICAÇÃO DE REMÉDIOS
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 35/48
CIDADE INTELIGENTECIDADE INTELIGENTE
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 36/48
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 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 37/48
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 38/48
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 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 39/48
RESULTADORESULTADO
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 40/48
SEM MISTÉRIOSEM MISTÉRIO
SABOR DE LINUX FAVORITOSABOR DE LINUX FAVORITO
OPENCV 3.3.1 OU SUPERIOROPENCV 3.3.1 OU SUPERIOR
COMPILADOR C/C++COMPILADOR C/C++
VONTADEVONTADE DE APRENDERDE APRENDER
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 41/48
CAPTURANDO FRAME (VIDEO OU DISCO)CAPTURANDO FRAME (VIDEO OU DISCO)
Mat frame;
VideoCapture cap;
// Parametro = indice do dispositivo de captura
cap.open(0);
cap >> frame;
Mat frame;
frame = imread("/tmp/image.jpg");
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 43/48
OBTENDO AS COORDENADASOBTENDO AS COORDENADAS
int centerX = (int)(data[0] * frame.cols);
int centerY = (int)(data[1] * frame.rows);
int width = (int)(data[2] * frame.cols);
int height = (int)(data[3] * frame.rows);
int left = centerX - width / 2;
int top = centerY - height / 2;
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 44/48
DESENHANDO OS DADOSDESENHANDO OS DADOS
rectangle(frame, Point(left, top),
Point(right, bottom),
Scalar(0, 255, 0),3);
putText(frame, label, Point(left, top),
FONT_HERSHEY_SIMPLEX, 0.5, Scalar());
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 45/48
SEM MI MI MISEM MI MI MI
$ git clone https://github.com/cabelo/my-opencv-examples
$ cd my-opencv-examples
$ wget https://pjreddie.com/media/files/yolov3.weights
$ g++ `pkg-config --cflags opencv --libs opencv`
yoloimg.cpp -o yoloimg
$ ./yoloimg --image=image-demo.jpg
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 46/48
RESULTADORESULTADO
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 47/48
INFERENCIA MATEMÁTICA AO VIVOINFERENCIA MATEMÁTICA AO VIVO
5/3/2019 OpenCV : Sem Mistério
https://palestras.assuntonerd.com.br/opencv2019.html?print-pdf#/ 48/48
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