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

Preview:

Citation preview

OpenCV para soluções de Visão Computacional

Outubro, 2016

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

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.

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

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

7

Visão Computacional

8

Visão Computacional

9

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

OpenCV

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

13

Visão Computacional

14

Visão Computacional

Exemplo 1 – Aquisição da imagem

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

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

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...

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

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

21

Visão Computacional

Extrações de características

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

22

Visão Computacional

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

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

24

Visão Computacional

Exemplo 4 – Reconhecimento facial com Haar Cascade

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

Obrigado ;)

Guilherme Spadaccia Lemeguilhermesleme@gmail.com

Recommended