Transcript
Page 1: Utilizando OpenCV para soluções em visão computacional

OpenCV para soluções de Visão Computacional

Outubro, 2016

Page 2: Utilizando OpenCV para soluções em visão computacional

2

Apresentação

• Formado em Ciência da Computação• SQA LGEletronics• Suporte TOTVS• Analista de Sistemas TOTVS

• Hoje: Inovação do Framework ADVPL• Pesquisas em: Visão Computacional, IA e IoT

Page 3: Utilizando OpenCV para soluções em visão computacional

Visão Computacional

Page 4: Utilizando OpenCV para soluções em visão computacional

4

Visão Computacional

Como surgiu a necessidade da visão computacional?

• Sempre buscamos aproximar os comportamentos do computador ao comportamento humano.

• Visão Computacional nasceu com o objetivo de extrair informações de imagens de forma automática.

• Representa grande dificuldade devido ao número de informações contido em uma imagem.

• Utiliza-se muito de recursos de inteligência artificial como deep learning.

Page 5: Utilizando OpenCV para soluções em visão computacional

5

Visão Computacional

Qual a definição de Visão Computacional?

• Visão Computacional é a disciplina que investiga as questões computacionais e algorítmicas associadas à aquisição, processamento e compreensão de imagens. (Trivedi e Rosenfeld, 1989)

• Fonte: http://fei.edu.br/~rbianchi/publications/bianchi-MsC.pdf

Page 6: Utilizando OpenCV para soluções em visão computacional

6

Visão Computacional

Usos da Visão Computacional:

• Segurança• Contagem de fluxo de pessoas• Mapeamento do público• Mapa de calor• Detecção de doenças• Biometria• Radares• Astronomia• Robótica• Carros autonomos

Page 7: Utilizando OpenCV para soluções em visão computacional

7

Visão Computacional

Page 8: Utilizando OpenCV para soluções em visão computacional

8

Visão Computacional

Page 9: Utilizando OpenCV para soluções em visão computacional

9

Visão Computacional

Page 10: Utilizando OpenCV para soluções em visão computacional

10

Visão Computacional

Sistema de visão computacional

• Aquisição da imagem• Pré-processamento• Extração de característica• Detecção e segmentação• Processamento de alto nível

Page 11: Utilizando OpenCV para soluções em visão computacional

OpenCV

Page 12: Utilizando OpenCV para soluções em visão computacional

12

Visão Computacional

OpenCV

• OpenCV (Open Source Computer Vision Library) é uma biblioteca de código livre para processamento de imagens e vídeos digitais.

• Foi originalmente desenvolvida pela Intel.• Possui mais de 2500 algoritmos otimizados.• Comunidade com mais de 47 mil pessoas.• Mais de 7 milhões de downloads.• Está submetida a licença BSD Intel.• É compatível com C++, C, Python, Java e Matlab.• Suportado por Windows, Linux, Mac OS e Android.

• Fonte: http://opencv.org/about.html

Page 13: Utilizando OpenCV para soluções em visão computacional

13

Visão Computacional

Page 14: Utilizando OpenCV para soluções em visão computacional

14

Visão Computacional

Exemplo 1 – Aquisição da imagem

Page 15: Utilizando OpenCV para soluções em visão computacional

15

Visão Computacional

Aplicação de Filtros

• Filtro passa-baixa• Diminuição do ruído• Suavização da imagem• Perda de detalhes

• Filtro passa-alta• Atenua detalhes da imagem• Aumenta o ruído

• Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap5.pdf

Page 16: Utilizando OpenCV para soluções em visão computacional

16

Visão Computacional

Aplicação de Filtros

Máscara Filtro Gaussiano Exemplo do bitmap de uma imagem

1/161 2 12 4 21 2 1

0 0 150 150 1500 0 150 150 1500 0 150 150 1500 0 150 150 1500 0 150 150 150

Page 17: Utilizando OpenCV para soluções em visão computacional

17

Visão Computacional

Aplicação de Filtros

Exemplo do bitmap de uma imagem1ª Interação = (1*0 + 2*0 + 1*150 + 2*0 + 4*0 + 2*150 + 1*0 + 2*0 + 1*150)16 = 382ª Interação = (1*0 + 2*150 + 1*150 + 2*0 + 4*150 + 2*150 + 1*0 + 2*150 + 1*150) = 943ª Interação = (1*150 + 2*150 + 1*150 + 2*150 + 4*150 + 2*150 + 1*150 + 2*150 + 1*150) = 150...

Page 18: Utilizando OpenCV para soluções em visão computacional

18

Visão Computacional

Aplicação de Filtros

A imagem resultante ficará:

0 0 150 150 1500 38 94 150 1500 38 94 150 1500 38 94 150 1500 0 150 150 150

Page 20: Utilizando OpenCV para soluções em visão computacional

20

Visão Computacional

Segmentação

Exitem diversas técnicas de segmentação, podendo ser:• Descontinuidade;• Similaridade;• Baseada em regiões;• Divisão e fusão de regiões;• MUITAS outras.

• Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap6.pdf

Page 21: Utilizando OpenCV para soluções em visão computacional

21

Visão Computacional

Extrações de características

• Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap6.pdf

Page 22: Utilizando OpenCV para soluções em visão computacional

22

Visão Computacional

Exemplo 3 – Segmentação e extração de características

Page 23: Utilizando OpenCV para soluções em visão computacional

23

Visão Computacional

Detecção

Uma forma eficiente de fazer detecções em imagens é utilizando algoritmos de Inteligência Artificial.Exitem algumas técnincas para se fazer isso usando OpenCV, uma delas é o Haar Cascade, entretanto, apesar de possuir bons resultados, não possui boa performance. Atualmente a melhor técnica de IA para se usar em reconhecimento de imagens é o Deep Learning.

• Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap6.pdf

Page 24: Utilizando OpenCV para soluções em visão computacional

24

Visão Computacional

Exemplo 4 – Reconhecimento facial com Haar Cascade

Page 25: Utilizando OpenCV para soluções em visão computacional

25

Visão Computacional

Exemplo 5 – OpenFace

• docker pull bamos/openface • docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash • cd /root/openface • ./demos/compare.py images/examples/{lennon*,clapton*} • ./demos/classifier.py infer models/openface/celeb-classifier.nn4.small2.v1.pkl

./images/examples/carell.jpg • ./demos/web/start-servers.sh• Docker IP: docker-machine ip default

Page 26: Utilizando OpenCV para soluções em visão computacional

Obrigado ;)

Guilherme Spadaccia [email protected]


Recommended