SlideShare uma empresa Scribd logo
1 de 26
OpenCV para soluções de
Visão Computacional
Outubro, 2016
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
2
Visão Computacional
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.
4
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
5
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
6
Visão Computacional
7
Visão Computacional
8
Visão Computacional
9
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
10
OpenCV
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
12
Visão Computacional
13
Visão Computacional
Exemplo 1 – Aquisição da imagem
14
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 15
Visão Computacional
Aplicação de Filtros
Máscara Filtro Gaussiano Exemplo do bitmap de uma imagem
1/16
16
1 2 1
2 4 2
1 2 1
0 0 150 150 150
0 0 150 150 150
0 0 150 150 150
0 0 150 150 150
0 0 150 150 150
Visão Computacional
Aplicação de Filtros
Exemplo do bitmap de uma imagem
1ª Interação = (1*0 + 2*0 + 1*150 + 2*0 + 4*0 + 2*150 + 1*0 + 2*0 + 1*150)16 = 38
2ª Interação = (1*0 + 2*150 + 1*150 + 2*0 + 4*150 + 2*150 + 1*0 + 2*150 + 1*150) = 94
3ª Interação = (1*150 + 2*150 + 1*150 + 2*150 + 4*150 + 2*150 + 1*150 + 2*150 + 1*150) = 150
...
17
Visão Computacional
Aplicação de Filtros
A imagem resultante ficará:
18
0 0 150 150 150
0 38 94 150 150
0 38 94 150 150
0 38 94 150 150
0 0 150 150 150
Visão Computacional
Exemplo 2 – Filtros
Fontes: http://docs.opencv.org/3.0-beta/modules/imgproc/doc/filtering.html
http://monografias.poli.ufrj.br/monografias/monopoli10001999.pdf 19
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 20
Visão Computacional
Extrações de características
• Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap6.pdf 21
Visão Computacional
Exemplo 3 – Segmentação e extração de características
22
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
23
Visão Computacional
Exemplo 4 – Reconhecimento facial com Haar Cascade
24
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
25
Obrigado ;)
Guilherme Spadaccia Leme
guilhermesleme@gmail.com

Mais conteúdo relacionado

Semelhante a OpenCV Visão Computacional

Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipHeber Gutenberg
 
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Paulo Correia
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
Apresentação robótica móvel
Apresentação robótica móvel Apresentação robótica móvel
Apresentação robótica móvel Humberto Zanetti
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenhariabruno2003sp
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-cjlconrado
 
Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Diogenes Freitas
 
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Diogenes Freitas
 
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIALENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIALActiveEon
 
Azure IoT Edge executando ML no NVIDIA Jetson Nano
Azure IoT Edge executando ML no NVIDIA Jetson NanoAzure IoT Edge executando ML no NVIDIA Jetson Nano
Azure IoT Edge executando ML no NVIDIA Jetson NanoWalter Coan
 
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...Pedro Castilho
 
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningAplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningWalter Coan
 
Sistemas Computacionais-SC-2ºano
Sistemas Computacionais-SC-2ºanoSistemas Computacionais-SC-2ºano
Sistemas Computacionais-SC-2ºanoCTDI Grupo5
 
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Christopher Cerqueira
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Alvaro Viebrantz
 
Aula 03 plataformas, ambientes e configuracoes
Aula 03   plataformas, ambientes e configuracoesAula 03   plataformas, ambientes e configuracoes
Aula 03 plataformas, ambientes e configuracoesFábio Costa
 

Semelhante a OpenCV Visão Computacional (20)

Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV Unip
 
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
Mapas conceituais podem preencher a lacuna semântica entre as necessidades do...
 
Internet de Todas as Coisas (IoE)
Internet de Todas as Coisas (IoE)Internet de Todas as Coisas (IoE)
Internet de Todas as Coisas (IoE)
 
Dismistificando deep learning v2.1
Dismistificando deep learning v2.1Dismistificando deep learning v2.1
Dismistificando deep learning v2.1
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Apresentação robótica móvel
Apresentação robótica móvel Apresentação robótica móvel
Apresentação robótica móvel
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
 
Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...
 
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
 
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIALENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
ENGENHARIA DE COMPUTAÇÃO E INTELIGÊNCIA ARTIFICIAL
 
Azure IoT Edge executando ML no NVIDIA Jetson Nano
Azure IoT Edge executando ML no NVIDIA Jetson NanoAzure IoT Edge executando ML no NVIDIA Jetson Nano
Azure IoT Edge executando ML no NVIDIA Jetson Nano
 
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...
Codecon - Fundamentos da Arquitetura de Software: Estruturando Sistemas Sem P...
 
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine LearningAplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
Aplicações do Azure IoT Edge: ambiente industrial e em Machine Learning
 
Sistemas Computacionais-SC-2ºano
Sistemas Computacionais-SC-2ºanoSistemas Computacionais-SC-2ºano
Sistemas Computacionais-SC-2ºano
 
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
 
Detecção de faces em vídeos
Detecção de faces em vídeosDetecção de faces em vídeos
Detecção de faces em vídeos
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Aula 03 plataformas, ambientes e configuracoes
Aula 03   plataformas, ambientes e configuracoesAula 03   plataformas, ambientes e configuracoes
Aula 03 plataformas, ambientes e configuracoes
 

OpenCV Visão Computacional

  • 1. 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 2
  • 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. 4
  • 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 5
  • 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 6
  • 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 10
  • 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 12
  • 14. Visão Computacional Exemplo 1 – Aquisição da imagem 14
  • 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 15
  • 16. Visão Computacional Aplicação de Filtros Máscara Filtro Gaussiano Exemplo do bitmap de uma imagem 1/16 16 1 2 1 2 4 2 1 2 1 0 0 150 150 150 0 0 150 150 150 0 0 150 150 150 0 0 150 150 150 0 0 150 150 150
  • 17. Visão Computacional Aplicação de Filtros Exemplo do bitmap de uma imagem 1ª Interação = (1*0 + 2*0 + 1*150 + 2*0 + 4*0 + 2*150 + 1*0 + 2*0 + 1*150)16 = 38 2ª Interação = (1*0 + 2*150 + 1*150 + 2*0 + 4*150 + 2*150 + 1*0 + 2*150 + 1*150) = 94 3ª Interação = (1*150 + 2*150 + 1*150 + 2*150 + 4*150 + 2*150 + 1*150 + 2*150 + 1*150) = 150 ... 17
  • 18. Visão Computacional Aplicação de Filtros A imagem resultante ficará: 18 0 0 150 150 150 0 38 94 150 150 0 38 94 150 150 0 38 94 150 150 0 0 150 150 150
  • 19. Visão Computacional Exemplo 2 – Filtros Fontes: http://docs.opencv.org/3.0-beta/modules/imgproc/doc/filtering.html http://monografias.poli.ufrj.br/monografias/monopoli10001999.pdf 19
  • 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 20
  • 21. Visão Computacional Extrações de características • Fonte: http://computacaografica.ic.uff.br/transparenciasvol2cap6.pdf 21
  • 22. Visão Computacional Exemplo 3 – Segmentação e extração de características 22
  • 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 23
  • 24. Visão Computacional Exemplo 4 – Reconhecimento facial com Haar Cascade 24
  • 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 25
  • 26. Obrigado ;) Guilherme Spadaccia Leme guilhermesleme@gmail.com

Notas do Editor

  1. Como aproximar o comportamento de um computador ao comportamento humano? Surgiu a partir da necessidade de extrair informações de imagens de forma automática Extração de características Área em evolução Representa grande dificuldade devido ao número de informação contido em uma imagem IA e Deep Learning
  2. Como aproximar o comportamento de um computador ao comportamento humano? Surgiu a partir da necessidade de extrair informações de imagens de forma automática Extração de características Área em evolução Representa grande dificuldade devido ao número de informação contido em uma imagem IA e Deep Learning
  3. Tratar imagens é algo muito difícil e exige um conhecimento matemático avançado. Como criar um sistema desses de forma fácil?