1. O documento discute inteligência artificial e seu uso no Raspberry Pi, abordando conceitos como aprendizado de máquina, deep learning e visão computacional.
2. É apresentado o palestrante Dr. Eduardo Pereira e seu trabalho com inteligência artificial, aprendizado profundo e visão computacional.
3. As principais seções do documento incluem introdução à inteligência artificial, OpenCV e Raspberry Pi, e streaming de vídeo e robótica com Flask.
Algoritmo e Estrutura de dados em C - Aula 06 - 2019
Inteligência Artificial com Flask e Raspberry Pi
1. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial com Flask e Raspberry Pi
Dr. Eduardo S. Pereira.
http:
//eduardopereira.upcursosetreinamentosonline.com/
21 de agosto de 2018
Dr. E. S. Pereira 1
2. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
1 Sobre o Palestrante
2 Introduc¸ ˜ao
3 Inteligˆencia Artificial
Agindo de Forma Humana
Pensando como Humana
Pensando Racionalmente
Agir Racionalmente
4 Opencv e Raspberry pi
5 Video Streaming e Rob´otica com Flask
Opencv e Flask
Controlando Servo Motores.
Dr. E. S. Pereira 2
3. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Sobre o Palestrante
Sobre o Palestrante
Graduado em F´ısica - UFSJ (2005)
Mestrado em Astrof´ısica - INPE (2008)
Doutorado em Astrof´ısica - INPE (2012)
P´os-doutorado em Cosmologia - INPE (2015)
P´os-doutorado em Astrof´ısica Computacional USP (2017)
Professor em Ciˆencia da Computac¸ ˜ao - Anhanguera (2016-)
Autor do Livro: Trilhas Python - Programac¸ ˜ao Multiparadigma
e Desenvolvimento Web com Flask.
Dr. E. S. Pereira 3
4. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Sobre o Palestrante
https:
//www.casadocodigo.com.br/products/livro-trilhas-python
Dr. E. S. Pereira 4
5. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Introduc¸ ˜ao
Introduc¸ ˜ao
O que vocˆe saber´a ao final dessa palestra
1- Ter noc¸ ˜oes sobre Inteligˆencia Artificial e suas sub´areas.
2- Usar o opencv e o Flask no Raspberry pi.
Dr. E. S. Pereira 5
6. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Introduc¸ ˜ao
Introduc¸ ˜ao
O que vocˆe saber´a ao final dessa palestra
1- Ter noc¸ ˜oes sobre Inteligˆencia Artificial e suas sub´areas.
2- Usar o opencv e o Flask no Raspberry pi.
Dr. E. S. Pereira 6
7. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Inteligˆencia Artificial
Dr. E. S. Pereira 7
8. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Inteligˆencia Artificial - Aprendizagem de M´aquina
Dr. E. S. Pereira 8
9. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Inteligˆencia Artificial - Aprendizado Profundo
Dr. E. S. Pereira 9
10. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Inteligˆencia Artificial - Vis˜ao Computacional
Dr. E. S. Pereira 10
11. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Pensar como Humano
Pensar Racionalmente
Agir como humano
Agir Racionalmente
Dr. E. S. Pereira 11
12. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Pensar como Humano
Pensar Racionalmente
Agir como humano
Agir Racionalmente
Dr. E. S. Pereira 12
13. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Pensar como Humano
Pensar Racionalmente
Agir como humano
Agir Racionalmente
Dr. E. S. Pereira 13
14. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Pensar como Humano
Pensar Racionalmente
Agir como humano
Agir Racionalmente
Dr. E. S. Pereira 14
15. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Foco humano: Processo emp´ırico, envolvendo hip´oteses e
experimentos.
Foco na Raz˜ao: Matem´atica e Engenharia.
Dr. E. S. Pereira 15
16. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Inteligˆencia Artificial
Quatro Grandes Vis˜oes
Foco humano: Processo emp´ırico, envolvendo hip´oteses e
experimentos.
Foco na Raz˜ao: Matem´atica e Engenharia.
Dr. E. S. Pereira 16
17. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agindo de Forma Humana
Teste de Turing
Proposto por Turing em 1950.
Tem como objetivo verificar se uma m´aquina ´e capaz de dar
respostas como um humano.
Basicamente uma pessoa faz perguntas por escrito ao
computador.
Se o entrevistador n˜ao for capaz de reconhecer se quem deu
a resposta ´e uma m´aquina ou uma pessoa, o programa
passa no teste.
Dr. E. S. Pereira 17
18. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Teste de Turing
Teste de Turing
Dr. E. S. Pereira 18
19. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agindo de Forma Humana
Teste de Turing - Requisitos
Processamento de Linguagem Natural
Representac¸ ˜ao de Conhecimento
Racioc´ınio automatizado
Aprendizagem de M´aquina
Dr. E. S. Pereira 19
20. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agindo de Forma Humana
Teste de Turing Total
Requer a manipulac¸ ˜ao e observac¸ ˜ao de objetos, exigindo:
Vis˜ao computacional
Rob´otica
Dr. E. S. Pereira 20
21. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando como Humana
Pensando como Humana
Primeiramente, precisamos determinar como um humano
pensa.
Podemos usar:
I- Introspecc¸ ˜ao: Captando os pr´oprios pensamentos a medida
que s˜ao criados
II- Experimentos psicol´ogicos: Observando o comportamento
dos outros;
III- Imagens Cerebrais: Observando o c´erebro em ac¸ ˜ao.
Dr. E. S. Pereira 21
22. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando como Humana
Pensando como Humana
Primeiramente, precisamos determinar como um humano
pensa.
Podemos usar:
I- Introspecc¸ ˜ao: Captando os pr´oprios pensamentos a medida
que s˜ao criados
II- Experimentos psicol´ogicos: Observando o comportamento
dos outros;
III- Imagens Cerebrais: Observando o c´erebro em ac¸ ˜ao.
Dr. E. S. Pereira 22
23. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando como Humana
Pensando como Humana
Primeiramente, precisamos determinar como um humano
pensa.
Podemos usar:
I- Introspecc¸ ˜ao: Captando os pr´oprios pensamentos a medida
que s˜ao criados
II- Experimentos psicol´ogicos: Observando o comportamento
dos outros;
III- Imagens Cerebrais: Observando o c´erebro em ac¸ ˜ao.
Dr. E. S. Pereira 23
24. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando como Humana
Pensando como Humana
Primeiramente, precisamos determinar como um humano
pensa.
Podemos usar:
I- Introspecc¸ ˜ao: Captando os pr´oprios pensamentos a medida
que s˜ao criados
II- Experimentos psicol´ogicos: Observando o comportamento
dos outros;
III- Imagens Cerebrais: Observando o c´erebro em ac¸ ˜ao.
Dr. E. S. Pereira 24
25. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando como Humana
Pensando como Humana
Primeiramente, precisamos determinar como um humano
pensa.
Podemos usar:
I- Introspecc¸ ˜ao: Captando os pr´oprios pensamentos a medida
que s˜ao criados
II- Experimentos psicol´ogicos: Observando o comportamento
dos outros;
III- Imagens Cerebrais: Observando o c´erebro em ac¸ ˜ao.
Dr. E. S. Pereira 25
26. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando Racionalmente
Pensando Racionalmente
Dr. E. S. Pereira 26
27. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando Racionalmente
Pensando Racionalmente
Uso da l´ogica para criar sistemas inteligentes
Usar a tradic¸ ˜ao logicista para criar sistemas inteligentes.
Dr. E. S. Pereira 27
28. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Pensando Racionalmente
Pensando Racionalmente
Uso da l´ogica para criar sistemas inteligentes
Usar a tradic¸ ˜ao logicista para criar sistemas inteligentes.
Dr. E. S. Pereira 28
29. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Dr. E. S. Pereira 29
30. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente, do latim agere, que quer dizer fazer, ou algo que age.
Deve operar sob controle autˆonomo;
Perceber seu ambiente, persistir por um per´ıodo de tempo
prolongado;
Adaptar-se a mudanc¸as;
Ser capaz de criar e perseguir metas.
Dr. E. S. Pereira 30
31. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente, do latim agere, que quer dizer fazer, ou algo que age.
Deve operar sob controle autˆonomo;
Perceber seu ambiente, persistir por um per´ıodo de tempo
prolongado;
Adaptar-se a mudanc¸as;
Ser capaz de criar e perseguir metas.
Dr. E. S. Pereira 31
32. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente, do latim agere, que quer dizer fazer, ou algo que age.
Deve operar sob controle autˆonomo;
Perceber seu ambiente, persistir por um per´ıodo de tempo
prolongado;
Adaptar-se a mudanc¸as;
Ser capaz de criar e perseguir metas.
Dr. E. S. Pereira 32
33. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente, do latim agere, que quer dizer fazer, ou algo que age.
Deve operar sob controle autˆonomo;
Perceber seu ambiente, persistir por um per´ıodo de tempo
prolongado;
Adaptar-se a mudanc¸as;
Ser capaz de criar e perseguir metas.
Dr. E. S. Pereira 33
34. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente, do latim agere, que quer dizer fazer, ou algo que age.
Deve operar sob controle autˆonomo;
Perceber seu ambiente, persistir por um per´ıodo de tempo
prolongado;
Adaptar-se a mudanc¸as;
Ser capaz de criar e perseguir metas.
Dr. E. S. Pereira 34
35. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Agindo de Forma
Humana
Pensando como
Humana
Pensando
Racionalmente
Agir Racionalmente
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Agir Racionalmente
Agir Racionalmente
Agente racional: Aquele que age para alcanc¸ar o melhor
resultado ou, quando existe incerteza, o melhor resultado
esperado.
Dr. E. S. Pereira 35
36. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Opencv
Originalmente desenvolvida pela Intel, em 2000.
Biblioteca livre para o desenvolvimento de aplicativos na ´area
de vis˜ao computacional.
Dr. E. S. Pereira 36
37. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Opencv
Originalmente desenvolvida pela Intel, em 2000.
Biblioteca livre para o desenvolvimento de aplicativos na ´area
de vis˜ao computacional.
Dr. E. S. Pereira 37
38. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Opencv
Dr. E. S. Pereira 38
39. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Raspberry pi
Computador do tamanho de um cart˜ao de cr´edito
desenvolvido no Reino Unido
Fundac¸ ˜ao Raspberry Pi.
Promover o ensino de Ciˆencia da Computac¸ ˜ao b´asica em
escolas.
Dr. E. S. Pereira 39
40. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Raspberry pi
Computador do tamanho de um cart˜ao de cr´edito
desenvolvido no Reino Unido
Fundac¸ ˜ao Raspberry Pi.
Promover o ensino de Ciˆencia da Computac¸ ˜ao b´asica em
escolas.
Dr. E. S. Pereira 40
41. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Raspberry pi
Computador do tamanho de um cart˜ao de cr´edito
desenvolvido no Reino Unido
Fundac¸ ˜ao Raspberry Pi.
Promover o ensino de Ciˆencia da Computac¸ ˜ao b´asica em
escolas.
Dr. E. S. Pereira 41
42. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Raspberry pi
Raspberry pi
Dr. E. S. Pereira 42
43. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
from flask import Flask , url_for , render_template
from flask import request , Response
import cv2
from facedetection import facedetection
from camserver import piwebcam
app = Flask(__name__ , static_url_path = "", static_folder = "static" )
app.secret_key = ’xxxxxxxx’
Dr. E. S. Pereira 43
44. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 44
45. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 45
46. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 46
47. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 47
48. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 48
49. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
Encapsular as funcionalidades da cˆamera numa classe.
Acessar de forma ´unica, sem ficar criando novas instancias.
Facilitar o processo de tratamento e detecc¸ ˜ao de objetos.
Temos:
1 Classe PiWebCam - Roda numa thread pr´opria
2 Objeto Singleton piwebcam no m´odulo camserver.py
3 Func¸ ˜ao facedetection.
Dr. E. S. Pereira 49
50. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
import cv2
from threading import Thread
class PiWebcam(Thread):
’ ’ ’
Capture webcam images using Python−Opencv .
The webcam can run as thread .
’ ’ ’
def __init__(self , width=None , height=None ,
window_name="webcam", show_window=False):
Thread.__init__(self)
self._cam = cv2.VideoCapture (0)
if (self._cam.isOpened() == False):
print("Unable to read camera feed")
.
.
.
def run(self):
while True:
self._ret , self._image = self._cam.read()
if self._image is not None:
self._raw_image = self._image.copy()
else:
self._raw_image = None
self._draw_rects()
self._draw_countors()
.
.
.
if self._stopCam is True:
break
def is_running(self):
return not self._stopCam
def start_stop(self):
self._stopCam = True if self._stopCam is False else False
def get_image(self):
return self._raw_image
def get_gray(self):
if self._image is not None:
return cv2.cvtColor(self._raw_image , cv2.COLOR_BGR2GRAY)
Dr. E. S. Pereira 50
51. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera - camserver.py
from piwebcam import PiWebcam
import cv2
piwebcam = PiWebcam(show_window=False)
Acessando a Cˆamera - facedetection.py
import cv2
def facedetection(gray , facemodel="./static/models/
haarcascade_frontalface_default.xml"):
face_c = cv2.CascadeClassifier(facemodel)
retcs = face_c.detectMultiScale(gray , scaleFactor=1.3,
minNeighbors=10, minSize=(75, 75))
return retcs
Dr. E. S. Pereira 51
52. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
def gen():
while True:
frame = piwebcam.get_image()
if frame is not None:
faces = facedetection(piwebcam.get_gray())
faces = ((x, y, w, h, (255, 0, 0), 2) for (x, y, w, h) in faces)
for (x, y, w, h, rgb , linewidth) in faces:
cv2.rectangle(frame , (x, y), (x + w, y + h),
rgb , linewidth)
frame = cv2.imencode(’.jpg’,frame)[1]. tostring()
else:
frame = b’’
yield (b’--framern’ +
b’Contetn -Type:image/jpegrnrn’ +
frame + b’rn’)
Dr. E. S. Pereira 52
53. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
@app.route(’/video_feed’)
def video_feed():
return Response(gen(),
mimetype=’multipart/x-mixed -replace; boundary=frame’)
@app.route("/")
def home():
return render_template("home.html")
if __name__ == "__main__":
piwebcam.setDaemon(True)
piwebcam.start()
app.run(debug=True , host="0.0.0.0", port=8080)
Dr. E. S. Pereira 53
54. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera
from flask import Flask , url_for , render_template
from flask import request , Response
import cv2
from facedetection import facedetection
from camserver import piwebcam
app = Flask(__name__ , static_url_path = "", static_folder = "static" )
app.secret_key = ’xxxxxxxx’
def gen():
while True:
frame = piwebcam.get_image()
if frame is not None:
faces = facedetection(piwebcam.get_gray())
faces = ((x, y, w, h, (255, 0, 0), 2) for (x, y, w, h) in faces)
for (x, y, w, h, rgb , linewidth) in faces:
cv2.rectangle(frame , (x, y), (x + w, y + h),
rgb , linewidth)
frame = cv2.imencode(’.jpg’,frame)[1]. tostring()
else:
frame = b’’
yield (b’--framern’ +
b’Contetn -Type:image/jpegrnrn’ +
frame + b’rn’)
@app.route(’/video_feed’)
def video_feed():
return Response(gen(),
mimetype=’multipart/x-mixed -replace; boundary=frame’)
@app.route("/")
def home():
return render_template("home.html")
if __name__ == "__main__":
piwebcam.setDaemon(True)
piwebcam.start()
app.run(debug=True , host="0.0.0.0", port=8080)
Dr. E. S. Pereira 54
55. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Acessando a Cˆamera - Template Home
{% extends "layout.html" %}
{% block content %}
<div class="row">
<div class="col s12 center -align">
<img src="{{url_for(’video_feed ’)}}" />
</div >
</div >
{% endblock %}
Dr. E. S. Pereira 55
56. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Opencv - Video Streaming
Opencv - Video Streaming
Dr. E. S. Pereira 56
57. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores.
Encapsular as funcionalidades de controle de servo numa
classe.
Dr. E. S. Pereira 57
58. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores com pigpio
import pigpio
class Servo(object):
def __init__(self , servo):
self.servo = servo
self.MIN_PWD = 500
self.MAX_PWD = 2500
self.pi = pigpio.pi()
def _angles(self , angle):
a = (self.MAX_PWD - self.MIN_PWD) / 180.0
y = a * angle + self.MIN_PWD
return int(y)
def move_angle(self , angle):
pw = self._angles(angle)
self.pi.set_servo_pulsewidth(self.servo , pw)
def stop(self):
self.pi.stop()
Dr. E. S. Pereira 58
59. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores com pigpio
from flask import Flask , url_for , render_template
from flask import request , Response
import cv2
from facedetection import facedetection
from camserver import piwebcam
from servo import Servo
app = Flask(__name__ , static_url_path = "", static_folder = "static" )
app.secret_key = ’xxxxxxxx’
servobase = Servo(27)
servoaltura = Servo(17)
@app.route("/arm", methods=["GET"])
def move_arm():
angup = None
anglebase = None
if "anglebase" in request.args:
try:
anglebase = int(request.args["anglebase"])
servobase.move_angle(anglebase)
except:
servobase.stop()
if "angup" in request.args:
try:
angup = int(request.args["angup"])
servoaltura.move_angle(angup)
except:
servoaltura.stop()
return ""
Dr. E. S. Pereira 59
60. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores com pigpio
from flask import Flask , url_for , render_template
from flask import request , Response
import cv2
from facedetection import facedetection
from camserver import piwebcam
from servo import Servo
app = Flask(__name__ , static_url_path = "", static_folder = "static" )
app.secret_key = ’xxxxxxxx’
servobase = Servo(27)
servoaltura = Servo(17)
@app.route("/arm", methods=["GET"])
def move_arm():
angup = None
anglebase = None
if "anglebase" in request.args:
try:
anglebase = int(request.args["anglebase"])
servobase.move_angle(anglebase)
except:
servobase.stop()
if "angup" in request.args:
try:
angup = int(request.args["angup"])
servoaltura.move_angle(angup)
except:
servoaltura.stop()
return ""
def gen():
while True:
frame = piwebcam.get_image()
if frame is not None:
faces = facedetection(piwebcam.get_gray())
faces = ((x, y, w, h, (255, 0, 0), 2) for (x, y, w, h) in faces)
for (x, y, w, h, rgb , linewidth) in faces:
cv2.rectangle(frame , (x, y), (x + w, y + h),
rgb , linewidth)
frame = cv2.imencode(’.jpg’,frame)[1]. tostring()
else:
frame = b’’
yield (b’--framern’ +
b’Contetn -Type:image/jpegrnrn’ +
frame + b’rn’)
@app.route(’/video_feed’)
def video_feed():
return Response(gen(),
mimetype=’multipart/x-mixed -replace; boundary=frame’)
@app.route("/")
def home():
return render_template("home.html")
if __name__ == "__main__":
piwebcam.setDaemon(True)
piwebcam.start()
app.run(debug=True , host="0.0.0.0", port=8080)
Dr. E. S. Pereira 60
61. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Acessando a Cˆamera - Template Home
{% extends "layout.html" %}
{% block content %}
<script >
var angbase = 90;
var angup = 90;
function movebase(){
if(angbase >= 180){
angbase = 180;
}
if(angbase <= 0){
angbase = 0;
}
if(angup >= 180){
angup = 180;
}
if(angup <= 0 ){
angup = 0;
}
$.getJSON("{{url_for(’move_arm ’)}}",
{anglebase: angbase , angup:angup},
function(data){});
return false;
}
function base_left(){
angbase = angbase - 10;
movebase();
}
function base_right(){
angbase = angbase + 10;
movebase();
}
function arm_up(){
angup = angup - 5;
movebase();
}
function arm_down(){
angup = angup + 5;
movebase();
}
</script >
Dr. E. S. Pereira 61
62. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Acessando a Cˆamera - Template Home
<div class="row">
<div class="col s12 center -align">
<img class="responsive -img" src="{{url_for(’video_feed ’)}}"
/>
</div >
</div >
<div class="row">
<div class="col s12 center -align">
<button type = "submit" onclick="arm_up()">
<img class="responsive -img" src="{{ url_for(’static
’, filename = ’images/Sprites/flatDark/
flatDark25.png ’) }}" width=100, height=100 />
</button >
</div >
<div class="col s6 center -align">
<button type = "submit" onclick="base_left()">
<img class="responsive -img" src="{{ url_for(’static
’, filename = ’images/Sprites/flatDark/
flatDark23.png ’) }}" width=100, height=100 />
</button >
</div >
<div class="col s6 center -align">
<button type = "submit" onclick="base_right()">
<img class="responsive -img" src="{{ url_for(’static
’, filename = ’images/Sprites/flatDark/
flatDark24.png ’) }}" width=100, height=100 />
</button >
</div >
<div class="col s12 center -align" onclick="arm_down()">
<button type = "submit" >
<img class="responsive -img" src="{{ url_for(’static
’, filename = ’images/Sprites/flatDark/
flatDark26.png ’) }}" width=100, height=100 />
</button >
</div >
</div >
{% endblock %}
Dr. E. S. Pereira 62
63. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores.
Dr. E. S. Pereira 63
64. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores.
Dr. E. S. Pereira 64
65. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
Controlando Servo Motores.
Controlando Servo Motores.
Dr. E. S. Pereira 65
66. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
C´odigo Fonte
C´odigo Fonte
https://github.com/duducosmos/flaskconf2018
Dr. E. S. Pereira 66
67. I.A. Flask e
Rasp. Pi
Dr. E. S.
Pereira
Sum´ario
Sobre o
Palestrante
Introduc¸ ˜ao
Inteligˆencia
Artificial
Opencv e
Raspberry pi
Video
Streaming e
Rob´otica com
Flask
Opencv e Flask
Controlando Servo
Motores.
FIM
MUITO OBRIGADO.
https:
//www.casadocodigo.com.br/products/livro-trilhas-python
Dr. E. S. Pereira 67