SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais de Eduardo S. Pereira

Probabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaProbabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaEduardo S. Pereira
 
Probabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotProbabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotEduardo S. Pereira
 
Primeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosPrimeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosEduardo S. Pereira
 
Aula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosAula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosEduardo S. Pereira
 
Linguagens Formais e Autômatos aula 04
Linguagens Formais e Autômatos aula 04Linguagens Formais e Autômatos aula 04
Linguagens Formais e Autômatos aula 04Eduardo S. Pereira
 
Inteligência Artificial - Aula 01
Inteligência Artificial - Aula 01Inteligência Artificial - Aula 01
Inteligência Artificial - Aula 01Eduardo S. Pereira
 
Primeira Lista de Exercícios de Inteligência Artificial
Primeira Lista de Exercícios de Inteligência ArtificialPrimeira Lista de Exercícios de Inteligência Artificial
Primeira Lista de Exercícios de Inteligência ArtificialEduardo S. Pereira
 
Linguagens Formais e Autômatos
Linguagens Formais e AutômatosLinguagens Formais e Autômatos
Linguagens Formais e AutômatosEduardo S. Pereira
 
Algoritmo e Estrutura de dados em C - Aula 06 - 2019
Algoritmo e Estrutura de dados em C - Aula 06 - 2019Algoritmo e Estrutura de dados em C - Aula 06 - 2019
Algoritmo e Estrutura de dados em C - Aula 06 - 2019Eduardo S. Pereira
 

Mais de Eduardo S. Pereira (20)

Probabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaProbabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de Frequência
 
Probabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotProbabilidade e Estatística Boxplot
Probabilidade e Estatística Boxplot
 
Aula 11 Modelagem de Dados
Aula 11 Modelagem de DadosAula 11 Modelagem de Dados
Aula 11 Modelagem de Dados
 
Aula 10 Modelagem de Dados
Aula 10 Modelagem de DadosAula 10 Modelagem de Dados
Aula 10 Modelagem de Dados
 
Aula 9 Modelagem de Dados
Aula 9 Modelagem de DadosAula 9 Modelagem de Dados
Aula 9 Modelagem de Dados
 
Aula 7 Modelagem de Dados
Aula 7 Modelagem de DadosAula 7 Modelagem de Dados
Aula 7 Modelagem de Dados
 
Aula 8 Modelagem de Dados
Aula 8 Modelagem de DadosAula 8 Modelagem de Dados
Aula 8 Modelagem de Dados
 
Primeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosPrimeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de Dados
 
Aula 06 Modelagem de Dados
Aula 06 Modelagem de DadosAula 06 Modelagem de Dados
Aula 06 Modelagem de Dados
 
Aula05
Aula05Aula05
Aula05
 
Aula04
Aula04Aula04
Aula04
 
Aula03
Aula03Aula03
Aula03
 
Aula02
Aula02Aula02
Aula02
 
Aula01
Aula01Aula01
Aula01
 
Aula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosAula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de Dados
 
Linguagens Formais e Autômatos aula 04
Linguagens Formais e Autômatos aula 04Linguagens Formais e Autômatos aula 04
Linguagens Formais e Autômatos aula 04
 
Inteligência Artificial - Aula 01
Inteligência Artificial - Aula 01Inteligência Artificial - Aula 01
Inteligência Artificial - Aula 01
 
Primeira Lista de Exercícios de Inteligência Artificial
Primeira Lista de Exercícios de Inteligência ArtificialPrimeira Lista de Exercícios de Inteligência Artificial
Primeira Lista de Exercícios de Inteligência Artificial
 
Linguagens Formais e Autômatos
Linguagens Formais e AutômatosLinguagens Formais e Autômatos
Linguagens Formais e Autômatos
 
Algoritmo e Estrutura de dados em C - Aula 06 - 2019
Algoritmo e Estrutura de dados em C - Aula 06 - 2019Algoritmo e Estrutura de dados em C - Aula 06 - 2019
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