Escolar Documentos
Profissional Documentos
Cultura Documentos
João Pessoa - PB
2019
ii
João Pessoa - PB
2019
Catalogação na publicação
Seção de Catalogação e Classificação
UFPB/BC
iv
João Pessoa - PB
2019
v
Agradecimentos
Agradeço primeiramente a meus pais, por sempre reconhecerem meu esforço, pelo apoio
nos momentos difı́ceis e por me ensinarem o valor da integridade e da dedicação.
À minha querida Jaqueline, pelo carinho e zelo, pelos momentos de intensa alegria
nessa jornada tortuosa e, principalmente, por me fazer crescer ainda mais como pessoa e
sempre me incentivar a mostrar o melhor que eu tenho a oferecer.
Aos amigos de longa data, que tiveram mais fé em mim do que eu jamais tive, e que
sempre me fizeram encontrar meu rumo quando me sentia perdido.
Aos novos amigos, que fiz durante este curso, com os quais compartilhei suor e noites
mal dormidas, compartilhei risadas e bons momentos, mas acima de tudo compartilhei
aprendizado tanto como pessoa quanto como profissional.
Aos professores que tiveram papel crucial na minha formação. Em especial, aos pro-
fessores José Maurı́cio, Rafael e Fabrı́cio, pela prestatividade em ajudar, pelo aprendizado
que se estendeu além da sala de aula, pelos inúmeros aconselhamentos e, principalmente,
por acreditarem no meu potencial e abrirem as portas para inúmeras oportunidades de
crescimento como engenheiro e cientista.
vii
Stephen King
viii
Resumo
Abstract
With the ever increasing tendency of incorporating technology into environments and ac-
tivities of the everyday human life, it is discussed more and more which methods are suited
for integration between devices and for a better interaction among man and machine. As
such, the role of the Wireless Sensor Networks is of great importance to automated sys-
tems as a mean to collect and/or process data on a non-invasive manner. Networks related
to monitoring environments through systems of video and image capturing have already
begun to be implemented in several countries, with applications that range from analy-
sing consumer profiles to applying automated fines to lawbreakers. Recent studies have
shown interest from both the academy and the outside community to integrate wireless
surveillance network currently available with the new long range transmission technology,
such as LoRa. As a way of exploring this topic, in this work it was developed a prototype
system of intelligence monitoring as a basis to a future implementation of a LoRa-based
wireless monitoring sensor network. The system developed consists of a processing hub,
and data receiving interface and a single sensor node. The operation of this system hap-
pens autonomously and it is initiated through the detection of human presence, by the
sensor node, capturing an image of the individuals present at each detection. The data is
transmited through LoRa devices indirectly to the central hub, serialized upon arriving at
the receptor interface. Methods of Facial Detection and Recognition are employed at the
central hub, through the usage of Artificial Neural Networks and the Python programming
language. Many tests were conducted to both adjust the system and verify its efficacy.
The results obtained were satisfatory, indicating the viability of a future expantion to a
fully fledged multi-nodal sensor network.
Lista de Figuras
2.1 Interesse ao Longo do Tempo para o termo “LoRa” . . . . . . . . . . . . . 20
2.2 Camadas de Operação do LoRa . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Processo de Espalhamento de Sinal . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Estrutura de Pacotes LoRa . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Topologia de Rede LoRaWAN . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Estrutura de Mensagem de Uplink . . . . . . . . . . . . . . . . . . . . . . . 25
2.7 Estrutura de Mensagem de Downlink . . . . . . . . . . . . . . . . . . . . . 25
2.8 Janelamento de espaços para recepção na Classe A . . . . . . . . . . . . . 26
2.9 Estrutura de uma Recepção sincronizada por Sinal . . . . . . . . . . . . . 26
2.10 Janelamento de espaços para recepção na Classe C . . . . . . . . . . . . . 27
3.1 Espectro Visı́vel da Luz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Analogia Elétrica do Detector Piroelétrico Irradiado . . . . . . . . . . . . . 29
3.3 Circuito de Condicionamento para o Cristal Piroelétrico . . . . . . . . . . . 30
3.4 Encapsulamento Metálico de um Sensor PIR . . . . . . . . . . . . . . . . . 30
3.5 Lentes de Fresnel em um Circuito Piroelétrico . . . . . . . . . . . . . . . . 31
4.1 Diferenças entre uma Câmera de Haleto de Prata e uma Câmera Digital . 34
4.2 Estrutura Tı́pica de uma Câmera Digital . . . . . . . . . . . . . . . . . . . 35
4.3 Leitura de Pixels em Rolling Shutter . . . . . . . . . . . . . . . . . . . . . 37
4.4 Relação entre a percepção de cores e a reflexão de radiação de luz visı́vel . 38
4.5 Estrutura do Olho Humano . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6 Distribuição de Células Fotorreceptoras na Retina Humana . . . . . . . . . 40
4.7 Faixas de absorção de luz visı́vel para os três tipos de cones . . . . . . . . . 40
4.8 Representação Abstrata do Espaço de Cores RGB . . . . . . . . . . . . . . 41
4.9 Representação Abstrata do Espaço de Cores CMYK . . . . . . . . . . . . . 41
4.10 Representação Abstrata dos Espaços de Cores HSL e HSV . . . . . . . . . 42
4.11 Plano de Crominâncias do Espaço de Cores YIQ para Y = 0,5 . . . . . . . 42
4.12 Plano de Crominâncias de outro Espaço de Cores Y’CbCr para Y = 0,5 . . 43
4.13 Reprodução de uma Imagem Real (à esquerda) e sua Luminância (à direita) 44
4.14 O arranjo de um Filtro Bayer sobre os pixels de um sensor . . . . . . . . . 44
4.15 Topologias de CFAs alternativas ao Filtro de Bayer . . . . . . . . . . . . . 45
4.16 O arranjo de fotodiodos e seus nı́veis de absorção no Foveon X3 . . . . . . 45
4.17 Exemplo de Imagem a ser Comprimida . . . . . . . . . . . . . . . . . . . . 47
4.18 Nı́vel de Cinza obtido na linha 100 da Figura 4.17 . . . . . . . . . . . . . . 47
4.19 Matriz de Componentes de Frequência Cossenoidais . . . . . . . . . . . . . 50
4.20 Ordem de serialização da matriz quantizada Buv . . . . . . . . . . . . . . . 51
4.21 Diagrama de Blocos de um sistema SCCB a 3 Fios . . . . . . . . . . . . . 53
4.22 Diagrama de Blocos de um sistema SCCB a 2 Fios . . . . . . . . . . . . . 53
4.23 Diagrama de uma Transmissão de Dados SCCB a 3 Fios . . . . . . . . . . 54
4.24 Ciclos de Transmissão no SCCB . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1 Estrutura básica de uma RNA com 1 camada oculta . . . . . . . . . . . . 57
5.2 Exemplo de aplicação em Python do módulo Face Recognition . . . . . . . 59
6.1 Diagrama de Elementos do Sensor Embarcado Proposto. . . . . . . . . . . 60
6.2 Módulo Sensor de Imagem OV7670. . . . . . . . . . . . . . . . . . . . . . . 61
6.3 Formatos de Imagem compatı́veis com OV7670. . . . . . . . . . . . . . . . 61
6.4 Novo Diagrama de Elementos do Sensor Embarcado. . . . . . . . . . . . . 62
6.5 Módulo de Cartão de Memória MicroSD. . . . . . . . . . . . . . . . . . . . 62
xi
Lista de Tabelas
6.1 Tabela de Instruções do módulo E32-TTL-100 . . . . . . . . . . . . . . . . 66
6.2 Parâmetros de Configuração para o módulo E32-TTL-100 . . . . . . . . . . 66
7.1 Baud Rate x Taxa de Transmissão de Dados para Lenna.jpg em 50px . . . 75
7.2 R obtido na conversão para Escala de Cinza - Lenna.jpg . . . . . . . . . . 79
7.3 R obtido na conversão para Escala de Cinza - Elfheim.jpg . . . . . . . . . . 80
7.4 Tabela de Alcances e Tempos de Resposta Obtidos . . . . . . . . . . . . . 83
7.5 Distâncias obtidas comparando pares de rostos similares. . . . . . . . . . . 85
B.1 Tabela de Custos Estimados - Sensor Embarcado . . . . . . . . . . . . . . 106
B.2 Tabela de Custos Estimados - Receptor de Dados . . . . . . . . . . . . . . 106
B.3 Requisitos Mı́nimos e Recomendados - Unidade de Processamento . . . . . 106
xiii
Siglas
Sumário
1 Introdução 17
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1.1 Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1.2 Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 LoRa 20
2.1 Camada Fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Camada de Rede (LoRaWAN) . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1 Classe A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Classe B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 Classe C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5 Reconhecimento Facial 55
5.1 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2 Dlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Linguagem Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.1 Módulo face recognition para Python . . . . . . . . . . . . . . . . . 59
6 Descrição do Sistema 60
6.1 Sensor Embarcado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.1.1 Sensor de Imagem (Câmera) . . . . . . . . . . . . . . . . . . . . . . 60
6.1.2 Armazenamento Externo . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1.3 Unidade Microcontrolada . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.4 Transceptor LoRa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.1.5 Sensor de Presença . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 Receptor de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.3 Unidade de Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.3.1 Algoritmo de Leitura Serial de Dados . . . . . . . . . . . . . . . . . 69
6.3.2 Algoritmo de Reconstrução de Imagem . . . . . . . . . . . . . . . . 71
6.3.3 Algoritmo de Reconhecimento Facial . . . . . . . . . . . . . . . . . 71
xvi
7 Resultados Experimentais 73
7.1 Otimização de Transmissão variando Baud Rate e Taxa de Transmissão de
Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.1.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.1.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.2 Otimização de Transmissão por escolha de Padrão de Cores . . . . . . . . . 77
7.2.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.2.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.3 Análise de Alcance e Interferência de Sinal em Ambiente Urbano . . . . . . 81
7.3.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.4 Otimização do Reconhecimento por Ajuste na Tolerância do Face Matching 84
7.4.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.4.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.5 Análise da Identificação de Rostos Conhecidos . . . . . . . . . . . . . . . . 86
7.5.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.5.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.6 Análise da Verificação de Rostos Desconhecidos . . . . . . . . . . . . . . . 89
7.6.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.6.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.7 Validação do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.7.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.7.2 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 92
8 Considerações Finais 93
8.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1 Introdução
Quando Kevin Ashton cunhou o termo Internet das Coisas (IoT, Internet of Things)
em 1999, durante uma apresentação comercial para a Procter & Gamble (P&G), era mais
uma forma de chamar a atenção dos acionistas para sua proposta de modernizar a linha
de produção da P&G utilizando a Internet (na época, em grande ascensão) em conjunto
com a tecnologia de sua área de pesquisa, os Identificadores por Radiofrequência (RFID,
Radiofrequency Identifiers). Sua ideia era eliminar, ao limite do que era tecnologicamente
possı́vel, as falhas, perdas e atrasos pertinentes ao ambiente de produção industrial, cau-
sados pela dependência de intermediários humanos para a troca de informações entre
dispositivos. Em sua visão, esses problemas só deixariam de existir quando as máquinas
pudessem interagir entre si e tomar decisões otimizadas sem precisar da interferência hu-
mana. Para ele, a integração entre a Internet e os RFIDs era a variável restante para
solucionar esta equação (Ashton 2009).
Atualmente, 20 anos depois daquela apresentação, Ashton tornou-se referência no
empreendedorismo de tecnologia e ainda hoje alavanca o desenvolvimento de soluções
de RFID que sejam integráveis ao mundo altamente interligado em que vivemos. Sua
expressão, “Internet das Coisas”, um arranjo de três palavras que tanto chamou a atenção
de acionistas, entusiastas e da mı́dia especializada da época, hoje carrega um significado
muito maior do que as próprias palavras. Algo que vai além do RFID e da Internet. É um
conceito que define a complexa e crescente integração dos elementos ao nosso redor em
uma malha inteligente, se adaptando para desempenhar melhor seus papéis e estando a par
das rápidas mudanças que ocorrem no mundo contemporâneo. Alguns estudiosos inclusive
preferem utilizar um novo termo, mais abrangente, a “Internet do Tudo” (Internet of
Everything), que engloba todas as relações entre dados, pessoas e a tecnologia (ou seja,
todas as “coisas”, por assim dizer) no mundo atual (Buyya e Dastjerdi 2016).
A metafisicidade do conceito de IoT, sendo uma área que integra pessoas com diferentes
formações e diferentes visões, acaba por tornar sua definição bastante fluida e pouco
intuitiva para o entendimento de um leigo. Porém, o cerne de toda essa subjetividade
conceitual é bastante sólido e simples: IoT é toda e qualquer tentativa de integração
pervasiva de tecnologia que permeia um ou mais aspectos do cotidiano (Atzori, Iera e
Morabito 2010).
As formas de integração são diversas, geralmente se recorrendo a tecnologias de comu-
nicação sem fio, como Wi-Fi, Bluetooth, ZigBee, GSM e o já mencionado RFID, já que
é muitas vezes menos complexo e menos custoso gerenciar canais de comunicação pelo ar
do que gerenciar redes de cabos e barramentos. Inúmeras são as aplicações existentes e
o potencial para o surgimento de novas aplicações é imenso, inviabilizando uma tenta-
tiva de classificação detalhada destas. A quantidade de dispositivos integrados em IoT
também é ampla, já sendo maior do que a população humana. Espera-se que, em 2020,
seja alcançada a marca dos 12 bilhões de dispositivos conectados (Vilarino 2017).
Traçando um paralelo com as classificações de redes sem fio por alcance, é possı́vel
mencionar três sub-áreas da IoT que possuem grande força no mercado atual: a WLAN
e as Smart Homes, a WMAN e as Smart Cities e a WPAN e os Smart Wearables.
Enquanto os conceitos de Smart Homes e Smart Wearables já possuem algumas
décadas de mercado, a ideia de Smart Cities (ou Cidades Inteligentes), apesar de ser tão
antiga quanto as demais, apenas prosperou nos últimos anos, tendo como principal causa o
surgimento de redes de informação cada vez mais complexas, essenciais em integrações de
larga escala, como no caso de sistemas metropolitanos. Com a crescente necessidade por
18
1.1 Motivação
Neste contexto, para que se desenvolvam soluções mais eficientes no futuro, é preciso
analisar as alternativas tecnológicas disponı́veis no momento.
A tecnologia LoRa tem tido bastante sucesso em outros tipos de RSSF, bem como
em aplicações ponto-a-ponto de sensoriamento remoto, com diversos estudos de caso que
comprovam sua aplicabilidade. No caso das RSISF, no entanto, existem poucos trabalhos
acadêmicos que apresentem resultados conclusivos.
Vê-se então a necessidade de contribuir com a área, investigando a aplicabilidade de
uma rede RSISF baseada em LoRa. Como desafio adicional, decidiu-se por implementar
esta rede do zero, utilizando componentes de baixo custo. Dessa forma, é preciso verificar,
além do funcionamento da rede, o funcionamento dos elementos da mesma, ou seja, o Nó
Sensor, o Gateway e a Central de Dados. Tendo isso em vista, é possı́vel desenvolver estes
três elementos antes da implementação da RSISF, ao imaginá-los como um sistema de
comunicação ponto-a-ponto, contendo um único Nó Sensor.
Busca-se, com isso, não apenas verificar a eficiência de RSISF baseados em LoRa, mas
também a viabilidade em implementar sistemas de processamento remoto de imagem com
dispositivos de baixo custo.
2 LoRa
O Rádio de Longo Alcance (LoRa, Long Range Radio) foi desenvolvido em meados de
2008 pela empresa Cycleo, no pólo tecnológico de Grenoble, França. Desde sua criação,
sua relevância vem apenas aumentando. De acordo com estatı́sticas do Google (Figura
2.1), vê-se três picos de interesse no termo de acordo com o gráfico apresentado. O mais
recente, em Maio de 2019, época em que ocorreu a conferência IoT World 2019, sugere
que o LoRa tem sido cada vez mais utilizado em equipamentos e soluções para IoT.
Desde 2012, o LoRa tornou-se propriedade intelectual da empresa Semtech, uma das
fundadoras da LoRa Alliance, uma organização sem fins lucrativos dedicada ao desenvol-
vimento e difusão das redes LPWAN para IoT (Alliance 2019).
21
Segundo Augustin et al. (2016), pode-se definir um sistema LoRa como uma com-
posição de duas camadas de operação: sendo uma camada fı́sica, a Modulação LoRa, e
uma camada de rede, a LoRaWAN. Na Figura 2.2, exemplifica-se a divisão proposta, onde
os elementos na metade inferior representam a camada fı́sica e os elementos na metade
superior representam a camada de rede.
Em termos de uma analogia simplificada ao Modelo OSI, o que a LoRa Alliance define
em sua documentação como “‘Camada Fı́sica” engloba tanto as camadas fı́sica quanto de
enlace de dados do modelo OSI, enquanto que sua “Camada de Rede” engloba as cinco
demais camadas do modelo.
2SF
Tpreamb = (npreamb + 4, 25) · Ts = (npreamb + 4, 25) · [s] (2.6)
BW
Em que npreamb é o comprimento simbólico (quantidade total de sı́mbolos) configurado
em RegPreambleMsb e RegPreambleLsb e Ts é o perı́odo de sı́mbolo, definido pelo fator
de espalhamento SF e pela largura de banda BW .
O tempo de mensagem pode ser encontrado de maneira similar através da fórmula:
2SF
Tmsg = nmsg · Ts = nmsg · [s] (2.7)
BW
Em que Ts é o perı́odo de sı́mbolo e nmsg é o comprimento simbólico da mensagem
espalhada espectralmente, calculado pela equação:
(
(8 + ∆), se ∆ > 0
nmsg = [simbolos] (2.8)
8, se ∆ 6 0
Em que ∆ é dado pelo resultado da função teto (ceil ) na seguinte relação:
(2 · P L − SF + 7 + 4 · CRC − 5 · IH) · (CR + 4)
∆= [simbolos] (2.9)
(SF − 2 · DE)
Segundo a Lora Alliance (2015), a camada da rede LoRaWAN categoriza seus End
Devices em três classes: A, B e C.
2.2.1 Classe A
A Classe A permite ao dispositivo utilizar comunicações bi-direcionais onde, após cada
transmissão uplink de um dispositivo, lhe são permitidos dois curtos intervalos de recepção
downlink. O uso de downlink é restrito apenas a estes intervalos. A operação na Classe A
é a que gera menor consumo e é indicada para dispositivos com aplicações que só requerem
curtas (ou nenhuma) comunicações de downlink com o servidor (Alliance 2017).
As mensagens de uplink são enviadas pelos End Devices até o Servidor de Rede e
podem ser repassadas por um ou mais Gateways. Estas mensagens são transmitidas no
modo explı́cito, que inclui um cabeçalho (PHDR) e seu CRC (PHDR CRC). O CRC de
16 bits da mensagem também é incluı́do. Na Figura 2.6, apresenta-se a estrutura básica
das mensagens de uplink :
As mensagens de downlink são enviadas pelo Servidor para um único End Device, sendo
repassada também por um único Gateway. Estas mensagens também são transmitidas
no modo explı́cito, mas o CRC de 16 bits da mensagem não é incluı́do. Apresenta-se, na
Figura 2.7, a estrutura básica das mensagens de downlink :
2.2.2 Classe B
A Classe B permite ao dispositivo utilizar comunicações bi-direcionais da mesma forma
que a Classe A, porém possui intervalos adicionais alocados para recepção downlink. Esta
classe de dispositivos recebe um sinal (Beacon) a cada vez que seus intervalos adicionais
se repetem. Este modo de operação é indicado para dispositivos que não se adequem nem
à Classe A e nem à Classe C.
A Estrutura de Mensagens de Uplink e Downlink na classe B é exatamente idêntica
à presente na Classe A, bem como os janelamentos de recepção que ocorrem a cada
transmissão uplink. O intervalo de recepção sincronizado através de um Sinal (Beacon)
tı́pico de dispositivos da Classe B é ilustrado na Figura 2.9.
2.2.3 Classe C
A Classe C permite ao dispositivo utilizar comunicações bi-direcionais com acesso
contı́nuo a uma janela de recepção downlink, de modo que os dispositivos podem receber
informações do servidor a qualquer instante. Este modo de operação é o que gera maior
consumo, porém também é o que oferece menor latência para comunicação Servidor-
Dispositivo.
Assim como no caso da Classe B, a Classe C possui as mesmas estruturas de mensagem
de Uplink e Downlink da Classe A. Por outro lado, as caracterı́sticas exclusivas da Classe
B não lhe são herdadas. Sua diferença reside na estrutura do janelamento de recepção,
como mostrado na Figura 2.10.
2 · h · c2 1 W
I= 5
· h·c [ 2 ] (3.1)
λ e λ·k·T − 1 m · sr · Hz
Nesta equação, I descreve a radiância de um determinado corpo, ou seja, a quantidade
de energia emitida por este corpo em um determinado comprimento de onda λ. A variável
k representa a constante de Boltzmann, de valor 1, 380649 · 10−23 J · K −1 , a variável h
representa a constante de Planck, de valor 6, 62607015 · 10−34 J · s e a variável c representa
a velocidade da luz no meio, sendo 2, 99792458 · 108 m · s−1 no vácuo.
Como três variáveis na Equação (3.1) são constantes, é possı́vel simplificá-la como:
C1 W
I= C2 [ ] (3.2)
λ5 · (e λ·T − 1) m2 · sr · Hz
Em que C1 é uma constante numérica de valor 3, 74 · 10−16 W · m e C2 é uma constante
numérica de valor 1, 47 · 10−2 K · m.
Objetos em altı́ssimas temperaturas tendem a emitir radiação com comprimentos de
onda entre 380nm e 780nm, compondo o denominado espectro de luz visı́vel (Figura 3.1)
e tornam-se incandescentes, emitindo um brilho colorido. O aumento de temperatura
29
O Corpo Humano é capaz de emitir radiação térmica dentro de uma faixa de com-
primentos de onda de 5µm a 15µm, nas regiões denominada de Espectros Infravermelho
Médio e Longo (Fraden 1999). Estas emissões, apesar de não detectáveis pelos olhos, são
utilizadas pelos sensores piroelétricos para detectar a presença humana.
A construção desses sensores é baseada na ligação simétrica entre dois cristais pi-
roelétricos. De acordo com Fraden (1999), este arranjo simétrico é feito de modo a ate-
nuar o efeito piezoelétrico causado pela dilatação térmica dos cristais. Além disso, este
arranjo gera um defasamento de 180 graus de modo que, quando irradiados pelo mesmo
feixe, ambos os cristais produzam tensões elétricas que se anulem. Desta forma, o sensor
detecta a radiação infravermelha de maneira diferencial.
O cristal piroelétrico tipicamente é utilizado acoplado a dois eletrodos em suas ex-
tremidades. Ao conjunto se dá a nomenclatura de Detector Piroelétrico. Tomando cada
eletrodo como um terminal elétrico, seu comportamento ao receber radiação pode ser
modelado como um capacitor em paralelo a uma fonte de tensão controlada por radiação
térmica, como mostrado na Figura 3.2.
Dessa forma, quando um dos cristais for irradiado, produzirá uma corrente elétrica
proporcional à energia da irradiação absorvida. O valor tı́pico de corrente para uma
irradiação proveniente do corpo humano é de 1pA, de modo que, para se obter uma
tensão de saı́da tı́pica de 5V , de acordo com a Primeira Lei de Ohm, seria necessário
acoplar um resistor R com impedância de valor:
V 5V
R= = = 5 · 1012 [Ω] (3.3)
I 1pA
Por conta desse valor elevado, o desacoplamento de impedâncias promovido pelo JFET
é de extrema importância, já que a equivalência de impedâncias no circuito pode diminuir
severamente o valor de R e, por consequência, a tensão de saı́da obtida do sensor.
Este circuito é usualmente encapsulado em metal, o que permite uma maior isolação
da radiação presente no ambiente. A única abertura no encapsulamento encontra-se
diretamente acima do par de cristais e é coberta por um filme plástico transparente à
faixa de Infravermelho Médio e Longo (Figura 3.4).
Este paralelo não é pura coincidência ou um mero capricho dos estudiosos da área:
O propósito em si da Visão Computacional está atrelado à subjetividade que permeia
o potencial de aprendizado e experiências que o Homem é capaz de aquirir através da
visão. São muitos os exemplos de coisas que a psiqué humana assume como “trivial” ou
“instintivo” e que, na realidade, exige um intenso raciocı́nio subconsciente e/ou depende
de muitas informações adquiridas através dos dispositivos sensoriais humanos (dos quais,
os “Cinco Sentidos” são os mais conhecidos, porém não os únicos).
Reproduzir estas noções supostamente triviais em dispositivos completamente basea-
dos em lógica binária certamente causou dores de cabeça em muitos. Para resolver este
dilema, apenas duas soluções são possı́veis: Ou os desenvolvedores, de alguma forma,
adquirem a capacidade de pensar de forma puramente lógica e traduzem o conhecimento
subjetivo a algo que possa ser escrito em código de máquina ou estes realizam o processo
inverso e dão às máquinas os recursos necessários para que estas tenham noções subjetivas
e a capacidade de tomar decisões por conta própria. Sendo evidente a maior factibilidade
da segunda opção em relação à primeira, ela vem sendo implementada como abordagem
nas diversas áreas que compõem a Inteligência Artificial.
Tendo este contexto em mente, é possı́vel compreender o motivo pelo qual muitos
autores definem o conceito de Visão Computacional como algo capaz de compreender
imagens, não apenas de processá-las. A compreensão vai além da manipulação dos dados
puramente como números, envolvendo a capacidade de descrição, reconhecimento ou jul-
gamento de determinadas caracterı́sticas ou contextos presentes em uma imagem (Ballard
e Brown 1982).
Prata e utilizar um composto de Ácido Gálico e Nitrato de Prata para obter imagens
mais nı́tidas, denominadas por ele de Calótipos (Litchfield 1903).
Em 1885, a primeira versão de filme fotográfico seria criada, pela Eastman Kodak
Co., composta de nitrocelulose revestida com gelatina rica em sais de prata. O Filme
de nitrocelulose, ao ser exposto à luz durante um determinado perı́odo, sofreria uma
reação quı́mica em sua cobertura gelatinosa baseada em prata que imprimiria na celulose
uma imagem baseada nas componentes de luminosidade complementares à da imagem
capturada, denominada de negativo. Através do negativo obtido, seria possı́vel reconstruir
a imagem capturada em um papel quimicamente tratado, através de um processo lento e
controlado denominado de revelação fotográfica, uma versão aprimorada do processo de
calotipação de Talbot.
Ao dispositivo que realizava a captura de fotografias, ou seja, o conjunto do filme fo-
tossensı́vel e do mecanismo que regulava a exposição do filme, deu-se o nome de Câmera
Fotográfica, também chamada de Câmera de Haleto de Prata ou, posteriormente, simples-
mente de Câmera Analógica. Este nome foi inspirado na Camera Obscura (Sala Escura),
termo em latim que refere-se a um dispositivo criado na Idade Média para estudos sobre
óptica e tornou-se novamente popular no século XVI, quando passou a ser utilizado como
ferramenta por pintores da época.
A nitrocelulose (ou filme de nitrato), no entanto, poderia causar riscos à saúde em
exposição prolongada, além de ser altamente inflamável e explosiva. Por conta disso,
foi eventualmente substituı́da, até deixar completamente de ser produzida em 1951. Seu
substituto, o Acetato de Celulose, foi utilizado até a década de 1980, onde deu lugar ao
filme de poliéster (boPET), utilizado até os dias de hoje. Apesar da mudança de material,
o princı́pio em todos os filmes fotográficos permaneceu o mesmo.
Em um sentido estritamente etimológico, as Câmeras de Haleto de Prata e seus an-
tecessores podem ser considerados Sensores de Imagem Analógicos. Porém, na prática,
quando se utiliza o termo Sensor de Imagem, quase sempre se refere aos dispositivos di-
gitais de captura de imagem. E, enquanto os termos Sensor de Imagem e Câmera podem
ser utilizados de modo intercambiável para os sensores de haleto de prata, o mesmo não é
possı́vel para as Câmaras Eletrônicas, onde o Sensor de Imagem e o Armazenamento da
Imagem são componentes distintos (Figura 4.1).
Figura 4.1: Diferenças entre uma Câmera de Haleto de Prata e uma Câmera Digital
A primeira câmera eletrônica foi registrada em 1972, pela Texas Instruments (Adcock
1977), mas foi na década de 1980 que a Kodak, que no século anterior havia difundido
a Câmera de Haleto de Prata, popularizou as Câmeras Digitais, baseadas em disposi-
tivos eletrônicos. Estas, lentamente dominariam o mercado ao longo das duas décadas
seguintes, até que finalmente as grandes empresas fabricantes de câmeras fotográficas
descontinuariam a produção das Câmeras baseadas em Filme.
A grande vantagem no armazenamento eletrônico é que permitia às câmera digitais
uma capacidade de armazenamento muito maior do que as câmeras de filme da época. A
Figura 4.2 mostra a estrutura tı́pica de uma câmera digital, em diagrama de blocos.
4.2.1 CCD
Os sensores de imagem nas câmeras digitais (e em seu finado parente, as câmeras de
vı́deo estático), os dispositivos que de fato realizavam a captura de imagem, eram inici-
almente todos baseados na tecnologia de Dispositivo de Carga Acoplada (CCD, Charge-
Coupled Device), desenvolvido pela AT&T (Boyle e Smith 1973).
De acordo com Nakamura et al. (2006), o princı́pio de funcionamento do CCD baseia-
se no conceito de utilizar a dopagem eletrônica de materiais semicondutores como forma de
armazenamento e a deriva eletrônica ocorrida em junções P-N como forma de transferência
de dados. A camada sensora do CCD é composta por uma matriz de fotodiodos (elementos
semicondutores sensı́veis à luz) e capacitores de deslocamento do tipo Óxiodo Metálico
Semicondutor (MOS, Metal Oxide Semiconductor ). Com a exposição dos fotodiodos à
radiação da luz visı́vel, estes produzem uma corrente elétrica, que acumula nos capacitores
acoplados a eles uma determinada quantidade de elétrons proporcional às intensidades
luminosas em que os fotodiodos foram submetidos. Esta determinada quantidade de
elétrons em cada capacitor forma o que é chamado de “Poço de Potencial Elétrico”. A
porção da imagem que o poço de potencial detecta é armazenada em um pixel.
Em cada linha de capacitores MOS, o conjunto de poços de potencial pode ser trans-
ferido aos capacitores adjacentes ao se aplicar tensões nas Portas de cada capacitor de
36
Q(t) t0
≈ [C] (4.2)
Q0 t0 + t
Em que Q(t) é a carga restante em um capacitor no tempo t, Q0 é sua carga inicial e
t0 é o instante de tempo inicial, definido por:
π · L3 · W · Cef f
t0 = [s] (4.3)
2 · µ · Q0
Em que L e W são o comprimento e largura do eletrodo do capacitor, respectivamente,
µ é a mobilidade elétrica e Cef f é a capacidade do óxido por unidade de área, também
referida como Cox .
A tensão necessária aplicada no eletrodo do capacitor para que este inicie a trans-
ferência de elétrons pode ser descrita pela fórmula:
Q0
∆V = V1 − V0 = [V ] (4.4)
L · W · Cef f
A eficiência na transferência de pacotes pode ser expressa pela razão:
Qt 1
η=( ) N · 100 [%] (4.5)
Qi
Em que Qi representa a carga inicialmente contida no primeiro capacitor e Qt repre-
senta a carga que foi transferida ao capacitor seguinte, com N sendo o número de estágios
necessários para realizar a transferência.
4.2.2 CMOS
No começo da década de 1990, surgiu uma tecnologia que se provaria uma confiável
alternativa ao CCD: o Sensor de Imagem baseado nos Semicondutores Complementar de
Óxido Metálico (CMOS, Complementary Metal Oxide Semiconductors). Estes sensores
também são conhecidos como Sensores de Pixels Ativos (APS, Active Pixel Sensors). Cada
pixel é capturado por um conjunto de um fotodiodo e um capacitor chaveado CMOS.
Sua construção apresentava três grandes vantagens em relação aos sensores de imagem
CCD. A primeira era o consumo reduzido, ao se utilizar elementos de alta impedância
(transistores complementares) no lugar de capacitores, reduzindo o consumo de corrente,
além de uma menor tensão de alimentação necessária (tipicamente 2,5 V ou 3,3V em
relação aos 8V ou 15V do CCD). A segunda era uma maior miniaturização, já que os
CMOS com mesma capacidade de armazenamento ocupavam um menor espaço. A terceira
era a capacidade de leitura de pixels individuais por comando. No entanto, os primeiros
modelos de sensores CMOS possuı́am um alto ruı́do no barramento de leitura e uma
considerável interferência de corrente escura no valor transferido do fotodiodo ao CMOS.
Estas desvantagens na qualidade da imagem fariam com que, inicialmente os sensores
37
CMOS fossem restritos ao uso em câmeras mais simples, como Webcams, Câmeras de
Celular e Toy Cameras (Nakamura et al. 2006).
Porém, muitas desvantagens dos sensores CMOS foram compensadas com o passar dos
anos, especialmente se utilizando de tecnologias inicialmente pensadas para CCDs. Atu-
almente, os sensores de imagem CMOS constituem a maioria dos dispositivos fotográficos,
sendo os CCD utilizados apenas em câmeras profissionais ou dispositivos que capturam
resoluções muito grandes (Nakamura et al. 2006).
Em sensores CMOS, a forma tı́pica de leitura é conhecida como Leitura X-Y, ou
Rolling Shutter. Com a capacidade de operar cada CMOS individualmente, cada pixel é
capturado e lido, elemento por elemento, linha por linha, como ilustrado pela Figura 4.3.
Toda a varredura dos sensores dura uma fração de segundo e este procedimento con-
some quantidades consideravelmente menores de energia em relação ao CCD, que deve
manter alimentada toda a matriz de capacitores a todo instante para poder capturar os
pixels da imagem. No entanto, apesar da relativa rapidez de toda a varredura da matriz
38
Figura 4.4: Relação entre a percepção de cores e a reflexão de radiação de luz visı́vel
num sentido literal. À nossa forma de interpretar o que vemos é dado o nome de Percepção
Visual Humana. E apesar de não se saber os detalhes que envolvem o processamento de
informações na visão, sabe-se a forma como essas imagens são adquiridas nos olhos.
O sistema visual humano apresenta muitas caracterı́sticas similares às câmeras digitais
modernas, o que abre espaço para diversas analogias entre os elementos de ambos os
sistemas. Os olhos atuam como os sensores de imagem, a córnea como lente, as pupilas
como obturadores e o cérebro como a Unidade Central de Processamento (CPU, Central
Processing Unit).
Uma outra analogia interessante é utilizar a estrutura ocular humana como base para
explicar o conceito de luzes RGB e a escolha desse modelo de espaço de cores como um
dos primeiros a ser utilizado em computadores. Na Figura 4.5 é mostrado um diagrama
da estrutura do olho humano.
As imagens capturadas pelo olho humano são refletidas através do Cristalino na parede
ocular conhecida como Retina, mais especificamente na região chamada Fóvea. Ao incidir
este reflexo sobre a Fóvea, células especializadas são capazes de converter a luz refletida
em estı́mulos bioelétricos que podem ser interpretados pelo cérebro humano. Esta é a
forma como o sistema visual humano interpreta o que chamamos de ”Visão”. E as células
responsáveis por este processo de conversão são denominadas Células Fotorreceptoras
(Bowmaker e Dartnall 1980).
Os Fotorreceptores podem ser agrupados em dois tipos principais: Os cones e os bas-
tonetes. Sendo os cones responsáveis por detectar as cores (crominância) e os bastonetes
responsáveis por detectar a intensidade luminosa (luminância) de uma imagem (Bowma-
ker e Dartnall 1980).
Os bastonetes são extremamente sensı́veis a variações de luminância, podendo identi-
ficar variações a nı́veis de fótons individuais. Já os cones são menos sensı́veis a variação
e precisam de um número maior de fótons para serem estimulados. Segundo Gonzalez e
Woods (2001), o olho humano contém em sua retina cerca de 120 milhões de bastonetes
e 6 a 7 milhões de cones, distribuı́dos na seguinte disposição (Figura 4.6):
40
Ainda segundo Gonzalez e Woods (2001), os cones podem ser divididos em três subti-
pos: os cones com forte resposta à frequência de luz vermelha, que correspondem a cerca
de 65% de todos os cones, os com forte resposta à frequência de luz verde, que corres-
pondem à cerca de 33% da quantia total e os com forte resposta à frequência de luz azul,
compondo 2% de todos os cones (e sendo, então, o mais sensı́vel dos três subtipos). Como
a faixa de absorção desses fotorreceptores, apesar de centrada especificamente nas cores
vermelho, verde e azul, possuem largas áreas de sensibilidade, é possı́vel ter a percepção
de diversas outras faixas de frequência através de uma resposta simulada, fruto da com-
binação dos três tipos de cones. Dessa forma, é possı́vel definir o espectro de luz visı́vel, do
ponto de vista da percepção visual humana, como uma gradiente de composições das cores
primárias: vermelho, verde e azul. Na Figura 4.7, são mostradas as faixas de frequência
luminosa em relação à intensidade de absorção para os três tipos de cones, representados
pelas iniciais de suas cores em inglês: Red (R), Green (G) e Blue (B).
Figura 4.7: Faixas de absorção de luz visı́vel para os três tipos de cones
Tomando como base a percepção relativa de cores da visão humana descrita anteri-
ormente, os primeiros sistemas de interface a cores utilizavam valores para as três cores
primárias de forma a compor toda uma variedade de cores observáveis. Esse conjunto,
conhecido como Modelo de Cores RGB (do inglês Red, Green and Blue), foi tomado como
base para criação de um dos primeiros Espaços de Cores.
Em sequência, temos mais dois espaços de cores similares. Estes, porém, são repre-
sentados por um espaço cilı́ndrico. São os espaços HSL e HSV, contendo uma variação
angular do espectro de Matizes ou Tons (Hues), que é a representação da variação pura
de cores, sem adição de branco ou preto, uma variação radial do espectro de Saturação
(Saturation), que representa o nı́vel de mescla da cor com o branco ou preto. A diferença
entre o HSL e o HSV está em seu terceiro parâmetro, na variação vertical. No HSV, o
terceiro parâmetro representa o espectro de Valor (Value), que indica a intensidade ou
opacidade da cor (quanto maior, mais forte a cor, quanto menor, mais fraca e escura).
Já no HSL, o terceiro parâmetro representa o espectro de Luminosidade (Lightness), que
indica o brilho da cor (cores bem definidas estão no meio da escala, cores muito escu-
ras estão na base da escala e cores muito claras estão no topo). Na Figura 4.10, são
demonstradas representações para ambos espaços de cores.
Figura 4.10: Representação Abstrata dos Espaços de Cores HSL e HSV
O próximo espaço de cores foi, por muito tempo, o padrão de cores utilizado para o
serviço de transmissão de televisão para o sistema NTSC. O espaço de cores YIQ foi um dos
primeiros espaços a realizar a separação entre luminância e crominância. Sua disposição é
dada por uma componente vertical Y, representando a informação de luminância (Luma)
e componentes horizontais para representação de planos de crominância (Chroma) pelas
componentes I e Q (termos herdados da modulação QAM, utilizada por emissoras de
televisão). Apresenta-se, na Figura 4.11, o plano de crominâncias do espaço de cores YIQ
para um valor de luminância de Y = 0,5.
Figura 4.11: Plano de Crominâncias do Espaço de Cores YIQ para Y = 0,5
O último espaço a ser mencionado é o Y’CbCr. Na realidade, este ultimo é uma classe
de espaços de cores, da qual o YIQ também faz parte. As componentes horizontais Cb e Cr
representam a Crominância com tendência para azul e a Crominância com tendência para
vermelho, respectivamente. A luminância continua sendo representada pelo parâmetro Y.
Mantendo o mesmo valor de luminância de Y = 0,5 mostrado no YIQ, tem-se outro plano
de crominâncias para este segundo modelo de espaço de cores Y’CbCr, como mostrado
na Figura 4.12.
Figura 4.12: Plano de Crominâncias de outro Espaço de Cores Y’CbCr para Y = 0,5
Em PDI, um dos espaços de cores mais utilizados é o Y’CbCr. Por separar as com-
ponentes de luminância e crominância, é possı́vel utilizar inúmeras técnicas para mani-
pulação de imagem com diversos propósitos, desde tratamento de fotografias até com-
pressão de arquivos (Haran e Pound 2015b).
Figura 4.13: Reprodução de uma Imagem Real (à esquerda) e sua Luminância (à direita)
Como descrito, o filtro realiza a captura intercalada dos componentes a cada ciclo de
2x2 pixels e, durante a etapa de processamento, realiza a interpolação de cada pixel com
base nos valores armazenados nos pixels adjacentes. Para um pixel verde, ele calcula seu
valor de azul com base na média dos valores de pixels azuis adjacentes e seu valor de
vermelho com base na média dos valores dos pixels vermelhos adjacentes, os pixels azuis
e vermelhos então calculam os valores de verde e da cor remanescente com base na média
dos respectivos valores originais e interpolados dos pixels verdes adjacentes.
45
Outras alternativas ao filtro Bayer foram propostas ao longo dos anos. Na Figura 4.15
são apresentadas algumas das topologias de CFA existentes:
Além dos CFA, houveram empresas que decidiram integrar diretamente a captura de
cores com os sensores de imagem. Como ocorreu com o sensor de imagem Foveon X3, cu-
jos pixels são compostos de três camadas de fotodiodos, ajustadas para absorver espectro
azul, espectro verde e espectro vermelho em diferentes profundidades. Apesar da difi-
culdade de implementação deste sistema, em relação aos filtros CFA, a grande vantagem
era a possibilidade de se obter valores RGB reais, ao invés de valores aproximados por
interpolações. Na Figura 4.16 é mostrada uma vista de corte da estrutura semicondutora
utilizada nestes sensores de imagem.
é o conteúdo obtido dos dados através de interpretação. Um exemplo para ilustrar essa
diferenciação pode ser o caracter ‘A’, cuja informação é a própria letra do alfabeto, mas
que pode ser armazenado na forma de dados através de um valor binário de 7 bits pelo
padrão ASCII, ou através de um valor binário de 32 bits pelo padrão UTF-8.
É possı́vel relacionar numericamente a razão entre o tamanho de uma informação e a
quantidade de dados utilizada para armazenar tal informação, na grandeza adimensional
conhecida como densidade de informação n, definida através da equação (4.6):
Ik
nk = (4.6)
Bk
Em que Ik representa a quantidade de informação contida no conjunto de dados k
(expressa abstratamente em unidades de informação) e Bk representa a quantidade de
dados presente no conjunto k (expressa geralmente em bits ou bytes).
Tendo dois conjuntos com quantidade de dados (B) distintas e mesma quantidade de
informação (I), denotados por n1 e n2 , podemos definir entre estas duas densidades uma
relação denominada Razão de Compressão:
n1
CR = (4.7)
n2
O propósito de quantizar relações na compressão de dados é poder mensurar o que é
chamado de Redundância de Dados, que pode ser definido matematicamente como o nı́vel
de relevância dos dados contidos em um conjunto para a interpretação de determinada
informação nele contida, expressa pela Redundância Relativa de Dados RD :
1
RD = 1 − (4.8)
CR
Onde o caso ideal é encontrado quando n2 = n1 , resultando em CR = 1 e RD = 0,
não havendo, então, dados redundantes. Casos indesejáveis são n2 << n1 ou n2 >> n1 .
Um caso tı́pico é uma razão de compressão de 10:1, ou seja CR = 10, que resulta em uma
redundância de 90% (RD = 0, 9) nos dados do primeiro conjunto em relação ao segundo
(Gonzalez e Woods 2001).
Gonzalez e Woods (2001) explica a importância do estudo da redundância de dados
em PDI, por conta de uma caracterı́stica tı́pica em imagens: Apesar de cada pixel ar-
mazenar um valor independente de intensidade, frequentemente os valores armazenados
possuem correlação com os valores de pixels adjacentes, não sendo incomum a existência
de sequências de vários pixels representando exatamente o mesmo valor em uma imagem.
Este é um tipo de redundância de dados denominada Redundância Espacial e é uma
das primeiras redundâncias a serem melhoradas quando se deseja comprimir arquivos de
imagens.
Uma técnica simples para reduzir a redundância espacial é a denominada Codificação
Run-Length (RLE, Run-Length Encoding). Esta técnica pode ser utilizada em qualquer
tipo de conjunto de dados e é particularmente eficiente para imagens, justamente por
reduzir o número de dados utilizados para representar uma sequência de valores repetidos.
O procedimento para representar uma imagem parte do array bidimensional de pixels.
Um processo de leitura iterativo é realizado, linha por linha, construindo uma sequência
numérica de pares ordenados na forma:
rn = (vn , cn )N
n=1 (4.9)
47
Sabendo-se que, pela binarização, todos os valores de tons de cinza acima do limiar
são representador por 1 e todos os valores abaixo são representados por 0, o trecho de
codificação run-length que representa a linha 100 deve ser, então:
r = [(1, 63), (0, 87), (1, 37), (0, 5), (1, 4), (0, 556), (1, 62), (0, 210)] (4.11)
O conjunto da linha 100 pode ser representado então, por 8 pares ordenados. Neste
exemplo, cmax = largura = 1024. Por ser uma imagem binarizada, tem-se que vmax = 2.
Logo, aplicando os valores na equação (4.10), temos:
o torna desfavorável para aplicações com muito contraste (como em logotipos, caracteres
de texto e imagens vetorizadas) ou em imagens que precisam manter detalhes muito finos
(como em imagens astronômicas ou microscópicas).
O processo de compressão JPEG pode ser resumido em 8 etapas, descritas abaixo:
Y 0 0, 299 0, 587 0, 114 R
Cb = 128 + −0, 168736 −0, 331264 0, 5 · G
(4.15)
Cr 128 0, 5 −0, 418688 −0, 081312 B
Com a imagem convertida ao espaço Y’CbCr, é possı́vel alterar a proporção de seus
valores de crominância em relação aos valores de luminância. Dada a baixa sensibilidade
do olho à crominância, pequenas variações são imperceptı́veis a olho nu. Com isso, ambos
os valores de crominância (Cb e Cr) são sub-amostrados, geralmente numa proporção de
2:1, calculando o valor médio entre pixels a cada quadro de 2x2 e armazenando este valor
como um único pixel. A partir apenas dessa subamostragem, é possı́vel obter uma razão
de compressão CR = 2, reduzindo em 50% a quantidade pixels utilizados para representar
a imagem sem mudanças perceptı́veis (Haran e Pound 2019a).
A imagem é então dividida em subseções de 8x8 pixels. Cada seção passa individual-
mente por uma transformação utilizando DCT através de uma máscara de também 8x8
componentes de frequência cossenoidais (Figura 4.19). Cada elemento da matriz de pixels
é comparado com todos os componentes de frequência e são gerados pesos para cada com-
paração, que são somados e armazenados em uma nova matriz, na posição correspondente
ao pixel comparado (Haran e Pound 2019b).
50
Segundo Mahoney (2010), a equação que define o processo iterativo realizado da DCT
pode ser visto abaixo:
7 X
7
X π 1 π 1
Suv = α(u) · α(v) Sxy · cos[ · (x + ) · u] · cos[ · (x + ) · v] (4.16)
x=0 y=0
8 2 8 2
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
Q=
18
(4.18)
22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
Os coeficientes quantizados Buv são definidos através da relação:
Suv
Buv = (4.19)
Quv
O Passo seguinte é linearizar a matriz de coeficientes em um único string, utilizando
um padrão de zigue-zague, a Codificação de Entropia, como mostrado na Figura 4.20.
−12, −3, −6, 2, 2, −1, 0, 0, 0, −2, −4, 1, 1, 0, 0, 0,
bn u·v
n=0 = −3, 1, 5, −1, −1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (4.21)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
(
(−12, 1), (−3, 1), (−6, 1), (2, 2), (−1, 1), (0, 3), (−2, 1), (−4, 1),
b= (4.22)
(1, 1), (0, 3), (−3, 1), (1, 1), (5, 1), (−1, 2), (0, 3), (1, 1), (0, 31)
4.6 SCCB
O Barramento Serial de Controle de Câmera (SCCB, Serial Camera Control Bus), é
uma interface de conexão de dispositivos desenvolvida pela OmniVision Technologies para
realizar a comunicação de seus Sensores de Imagem com dispositivos externos (OmniVision
2002).
Sua estrutura baseada em mestre-escravo podendo realizar comunicação full duplex, de
modo similar ao protocolo I 2 C e possui duas formas de implementação, sendo a primeira
denominada SCCB a 3 Fios (3-Wire SCCB) e a segunda denominada SCCB a 2 Fios
(2-Wire SCCB).
No SCCB a 3 Fios (Figura 4.21), o barramento contém os pinos SIO C, SIO D e
SCCB E e permite uma configuração de Único Mestre e Múltiplos Escravos. O pino
SIO C é alimentado pelo mestre com um sinal de relógio (clock ), o pino SIO D é tri-
state, bidirecional e transfere dados do mestre para o escravo e vice-versa. Por fim, o
pino SCCB E contém um sinal de controle unidirecional que indica o intervalo no qual
uma transmissão está sendo realizada, onde o inı́cio de transmissão é indicado por uma
borda de descida e o fim de transmissão por uma borda de subida, com o barramento
desocupado indicado por nı́vel lógico 1.
53
Aos pacotes de 9 bits, dá-se o nome de Fase. Existem três ciclos de transmissão na
operação do SCCB, sendo eles:
5 Reconhecimento Facial
O Reconhecimento Facial é uma das várias técnicas de biometria existentes na atuali-
dade. Apesar de sua chance de falseabilidade ser maior do que sistemas como detecção de
ı́ris ou de impressão digital, o reconhecimento facial tem crescido bastante em interesse
nos últimos anos por ser uma técnica não invasiva de coleta e verificação de dados.
Atualmente, existem três correntes de desenvolvimento para algoritmos de reconheci-
mento facial:
2. As conexões entre neurônios, conhecidas como pesos sinápticos, são utilizadas para
armazenar o conhecimento adquirido.
A arquitetura das RNA tipicamente segue a estrutura de camadas, onde uma camada
inicial define os parâmetros de entradas e as camadas intermediárias, denominadas cama-
das ocultas, são compostas por arranjos de neurônios e sinapses. Por fim, a rede contém
uma última camada contendo um ou mais neurônios de saı́da. Na Figura 5.1 mostra-se
um exemplo de Rede Neural de alimentação positiva com uma única camada oculta e dois
neurônios de saı́da.
Figura 5.1: Estrutura básica de uma RNA com 1 camada oculta
5.2 Dlib
Dlib é um pacote de ferramentas (toolkit) independente e de código aberto, criado
em 2002 e desenvolvido a partir da linguagem C++, integrando recursos que promovem
soluções para as mais diversas aplicações (King 2017a).
Dentre as áreas abordadas por este toolkit, temos Aprendizado de Máquina, Com-
pressão de Dados, Interface de Redes, Paralelismo, Processamento de Imagem, Métodos
Numéricos, além de diversas aplicações menores em temas variados (King 2017a).
Para este projeto em especı́fico, foi utilizada a ferramenta de reconhecimento facial
disponibilizada no toolkit. O reconhecimento facial no Dlib possui desempenho equiparável
ao de sistemas de reconhecimento facial já bem estabelecidos, como o clássico sistema
baseado na biblioteca OpenCV utilizando o método Haar Cascade apresentado em Viola
e Jones (2004).
58
Estas diferenças são proporcionadas pelo método utilizado, denominado Deep Metric
Learning (King 2017b). Antes de 2017, o sistema de reconhecimento facial do Dlib se
baseava na técnica de HOG, que utiliza um conjunto de campos vetoriais treinados para
detectar bordas e, com isso, encontrar rostos indiretamente através de suas silhuetas
(King 2014a). Este sistema baseado em HOG também apresentava muitas das vantagens
encontradas no sistema baseado em DML. Mas com o surgimento de técnicas mais eficazes
de reconhecimento facial envolvendo Deep Learning e RNA nos últimos anos, como as
apresentadas pelo sistema OpenCV-DNN (sucessor do OpenCV-Haar), também o Dlib
precisou ser atualizado, para se adequar novamente ao estado da arte.
Yahoo, utilizam massivamente o python para desenvolvimento web (Borges 2010). Em-
presas de animação, como Industrial Light & Magic, Pixar e Disney, utilizam a lingua-
gem no processo de criação de filmes de animação 3D (Lutz 2009). Desenvolvedoras de
eletrônicos, como Hewlett & Packard, Qualcomm e IBM utilizam o python em suas rotinas
de teste de hardware (Srinath 2017).
6 Descrição do Sistema
O sistema desenvolvido para este projeto pode ser descrito pelos seguintes estágios:
• Sensor Embarcado;
• Receptor de Dados;
• Unidade de Processamento.
Através do valor lógico imposto em M0 e M1, é possı́vel definir, por software ou por
hardware, o Modo de Operação do dispositivo, havendo quatro opções disponı́veis:
• O Modo de Transmissão Normal (00), em que o módulo pode utilizar todos os seus
recursos tanto como transmissor como receptor;
• O Modo Inativo (11), em que o dispositivo não atua como transmissor ou receptor,
recebendo apenas dados para configuração de parâmetros.
No Instrução Descrição
1 C0 + <PARÂMETROS> Configura e Salva os Parâmetros Enviados
2 C1 C1 C1 Lê os Parâmetros Salvos no Módulo
3 C2 + <PARÂMETROS> Configura os Parâmetros Enviados (Sem Salvar)
4 C3 C3 C3 Lê os dados de versão do módulo
5 C4 C4 C4 Reinicia o Módulo
FONTE: O Autor (2019)
Os parâmetros utilizados para configurar o módulo são definidos nos 5 bytes inseridos
após C0 ou C2, nas instruções 1 ou 3, respectivamente. São eles ADDH, ADDL, SPED,
CHAN e OPTION. Seus possı́veis valores estão descritos em detalhe na documentação
do módulo.
O módulo foi configurado de modo a obter um melhor desempenho na transferência
de arquivos relativamente longos, como é o caso de imagens com boa resolução. A Tabela
6.2 exibe os valores definidos para cada parâmetro de configuração do módulo.
e seja compatı́vel com o módulo E32, entretanto, pode ser utilizado como Receptor de
Dados.
O algoritmo executado pelo microcontrolador do Receptor também é, em sua totali-
dade, transparente aos dados, como mostra a Figura 6.12.
7 Resultados Experimentais
Nesta seção são apresentados os resultados obtidos a partir de algumas análises realiza-
das no sistema proposto, algumas com o objetivo de otimizar as caracterı́sticas do sistema
e outras com objetivo de verificar a sua eficiência ao processar as imagens recebidas.
Pode-se, então, dividir os testes aqui apresentados em duas categorias:
• Otimização do Sistema:
• Verificação do Sistema:
7.1.1 Metodologia
Este teste consistiu em uma transmissão controlada de um pacote de dados conhecido.
O sistema seguiu seu fluxo de processos até a reconstrução da imagem, com o algoritmo
de reconhecimento facial não sendo utilizado neste teste. A imagem utilizada pode ser
observada na Figura 7.2.
75
Tabela 7.1: Baud Rate x Taxa de Transmissão de Dados para Lenna.jpg em 50px
conseguiu concluir a transmissão de imagem. Não se identificou uma causa definitiva para
este comportamento.
Também é possı́vel observar que, a partir de 4800 baud, a variação no baud rate não
produz influências perceptı́veis no tempo de resposta. Abaixo disso, verifica-se que o
baud rate é lento demais para não interferir na transmissão e acaba por inserir um atraso
adicional.
Em seguida, além de analisar se a quantidade de bytes foi enviada, avaliou-se a qua-
lidade dos bytes enviados, ou seja, se a imagem reconstruı́da através da recepção possui
alguma falha ou corrupção. Os resultados de cada comparação podem ser observados na
Figura 7.3.
7.2.1 Metodologia
Um novo conjunto de transmissões foi efetuado, com pacotes conhecidos. Dessa vez, as
configurações de velocidade foram mantidas em 9600 baud e 9,6kbps e variou-se a imagem
a ser transmitida. Foram utilizadas duas imagens de teste: A primeira, Lenna.jpg (Figura
7.5), possui originalmente resolução de 512x512 pixels. A segunda, Elfheim.jpg (Figura
7.6), possui originalmente 4230x2292 pixels.
78
Destas imagens, foram extraı́das 5 versões cada, com dimensões diferentes. As re-
soluções utilizadas para Lenna.jpg foram 480x480, 360x360, 240x240, 144x144 e 50x50.
As resoluções utilizadas para Elfheim.jpg foram 1328x720, 885x480, 663x360, 442x240 e
265x144.
Para cada resolução de cada imagem, obteve-se uma cópia em escala de cinza. O
procedimento para obtenção destas cópias se deu através de um algoritmo de conversão
de espaço de cores. Carregando cada imagem como um vetor de matrizes RGB, pode-se
realizar a conversão entre espaços de cores, de RGB para Y’CbCr, utilizando apenas uma
transformação matricial. Do vetor de matrizes resultante da conversão, foi possı́vel obter
uma reprodução em tons de cinza da imagem original ao se extrair o conteúdo da Matriz
Y’ (matriz de luminância) e reconstruı́-lo como imagem no mesmo formato que a original.
79
Na Figura 7.8, são mostradas as diferenças entre as imagens coloridas (barras à es-
querda) e as imagens em escala de cinza (barras à direita) do arquivo Elfheim.jpg em
relação a: (a) o tamanho de arquivo e (b) o tempo de recebimento.
Observando os valores apresentados nas tabelas 7.2 e 7.3, é possı́vel observar que o
efeito da redução pode mudar de arquivo para arquivo, provavelmente correlacionado
com a qualidade de compressão do mesmo. De qualquer forma, todos os casos observados
apresentaram uma redução de mais de 53% tanto em tamanho quanto em tempo de re-
cepção. A única exceção a este comportamento é o arquivo Lenna.jpg em resolução 50x50.
Acredita-se que a menor redução percentual no tempo de recepção esteja relacionada com
uma componente constante de tempo em cada transmissão, que se torna mais evidente
no envio de arquivos menores.
Este teste mostra, então, que é possı́vel economizar, ao menos, metade do tempo de
uma transmissão ao se utilizar dispositivos que capturem imagens em escala de cinza pura
(apenas a componente de luminância da imagem) ou utilizando configurações de captura
81
para tons de cinza em dispositivos com mais de um formato de captura disponı́vel (como
no caso do OV7670).
7.3.1 Metodologia
O procedimento envolvido neste teste é semelhante aos dois descritos anteriormente.
Desta vez, uma transmissão controlada, a uma velocidade de 9, 6kbps e 9600 baud, de
uma única imagem em escala de cinza foi realizada. A imagem utilizada pode ser vista
na Figura 7.9.
perfaziam uma rota que ia do Centro de Tecnologia até o Centro de Comunicação, Tu-
rismo e Artes (CCTA), com uma distância máxima de 713 metros (Em T15). Entretanto,
durante a realização do teste, o sinal foi perdido antes da distância máxima estipulada ser
alcançada, de modo que a rota foi ligeiramente alterada. Os pontos que se localizavam no
CCTA (T11 a T15) foram substituı́dos pelos pontos NT11 a NT15, localizados no Centro
de Educação (CE), Centro de Ciências Jurı́dicas (CCJ) e Centro de Tecnologia.
O teste consistiu em levar o transmissor para os pontos de rota marcados e transmitir a
imagem lenna240g.jpg. Para isso, o transmissor foi programado de modo a ignorar o sinal
transmitido pelo sensor PIR e apenas transmitir a imagem uma única vez, um segundo
após ter sido ligado.
O transmissor foi transportado junto a uma bateria externa para alimentação. Para ter
um inı́cio de transmissão controlado, a alimentação do transmissor foi conectada apenas
no momento em que este era posicionado em um ponto de rota.
Os valores obtidos em cada ponto de rota podem ser observados na Tabela 7.4.
83
Ainda observando a Tabela 7.4, nota-se que houve pouca variação no tempo de re-
cepção em relação à distância. Houve, no entanto, uma considerável variação relacionada
ao ambiente em que a transmissão foi realizada. As transmissões realizadas em campo
aberto e em visada direta do receptor (T03, T06 e NT13) obtiveram os menores tempos
de recepção. Em seguida, foram as regiões com prédios obstruindo parcialmente a visada
direta do receptor (T02 e T05). Em terceiro lugar, têm-se os pontos em que a visada
direta era obstruı́da por muita vegetação (T01 e NT13). Por último, ainda observam-se
os pontos transmitidos no interior de prédios, sem visada direta (T04 e T07), que não
foram capazes de alcançar o receptor, apesar da distância relativamente curta.
Apesar de nenhum valor ser dado na documentação como referência para comparação,
o alcance obtido parece estar razoável dadas as limitações do módulo. E, apesar de
se encontrar muito abaixo de seu alcance máximo nominal, o alcance obtido ainda é
significativamente superior aos alcances nominais de alguns dos principais dispositivos não
LPWAN (como Wi-Fi e Bluetooth). Adicionalmente, deve-se considerar que o módulo
utilizado (E32) possui versões com consumo de potência maior, que podem ampliar o
alcance efetivo, caso surja a necessidade.
7.4.1 Metodologia
Para avaliar a sensibilidade do reconhecimento facial a rostos de pessoas semelhantes,
um conjunto de rostos semelhantes de 8 pares de indivı́duos famosos foi selecionado. A
Figura no Apêndice A apresenta o conjunto de rostos utilizados.
Os 8 pares foram separados em duas pastas, em que a primeira conteria os rostos
conhecidos e a segunda conteria os rostos desconhecidos. Como o teste remete exclusiva-
mente às caracterı́sticas da API de reconhecimento facial, o teste foi realizado através de
linha de comando, já que produziria os mesmos resultados em um algoritmo python.
O objetivo deste teste foi definir uma tolerância máxima para o nı́vel de proximidade
entre os rostos, que garanta uma redução quase total no número de falsos positivos e
múltiplos verdadeiros.
Os valores exatos de proximidade entre cada um dos 16 rostos foi inserido na Tabela
7.5. Os valores indicados por > 0, 6 representam valor booleano de FALSO para a com-
paração (o valor exato não é retornado pelo sistema). Já os valores em vermelho indicam
os valores que são falsos positivos.
Observa-se o menor valor (maior proximidade) entre o ator americano Jeffrey Dean
Morgan e o ator espanhol Javier Bardem, com cerca de 0,524. Percebe-se então que,
mesmo em indivı́duos relativamente similares, a tendência é que o reconhecimento facial
indique valores de proximidade acima de 0,5. Portanto, é razoável definir uma nova
tolerância de valor 0,5 para evitar a confusão de rostos similares. O ajuste deste novo
valor produz os efeitos desejados, como mostrado na Figura 7.13, uma vez que a API não
mais reconhece os indivı́duos do grupo 2 como sendo os indivı́duos do grupo 1.
7.5.1 Metodologia
Os testes foram realizados utilizando um banco de dados hipotético, contendo quatro
rostos, inseridos individualmente a cada execução do algoritmo. Os rostos utilizados
podem ser observados na Figura 7.14.
ser realizados, no entanto, antes de se estabelecer conclusões precisas sobre o alcance total
da API em relação a variações nas faces encontradas em imagens.
Na segunda etapa do teste, obteve-se a identificação de três dos cinco rostos (Figura
7.18), indicando que a escala de incerteza está por volta de 30x30.
Com isso, selecionou-se um novo rosto, com melhor enquadramento, exibido na Figura
7.19, com resoluções de: (a) 31x31 pixels (b) 30x30 pixels e (c) 29x29 pixels.
A execução do algoritmo para estas três imagens, como mostrado na Figura 7.20,
resultou em uma identificação bem sucedida para as primeiras duas resoluções, mas em
nenhuma identificação de rosto na terceira, o que leva a crer que a resolução mı́nima para
identificação de rostos provavelmente é de 30x30 pixels.
7.6.1 Metodologia
Utilizou-se a mesma versão de testes do algoritmo de reconhecimento facial utilizada
no teste anterior. Como imagem de teste, foi utilizada uma foto oficial dos lı́deres polı́ticos
membros do G7.
7.7.1 Metodologia
Desta vez, a execução do sistema foi realizada integralmente, não se omitindo nenhuma
etapa. A velocidade permaneceu em 9,6kbps a 9600 baud e a tolerância do reconhecimento
facial se manteve em 0,5, como havia sido definido previamente.
91
Foram utilizadas três imagens de teste para esta validação. A primeira, já utilizada
em outros testes, foi a lenna240g.jpg (Figura 7.24), aqui denominada de L240G.JPG.
A primeira imagem foi escolhida por já ter sido utilizada em várias outras instâncias
da etapa de avaliação, então decidiu-se por manter este padrão. A segunda e terceira
imagens, por outro lado, foram escolhidas por representarem dois casos distintos. Na
segunda, todos os indivı́duos estão próximos da câmera e seus rostos são conhecidos. Na
terceira, os indivı́duos não estão próximos da câmera e um dos rostos é desconhecido.
A ativação de cada transmissão é realizada pelo sensor de presença, emulando a si-
tuação em que este aciona o comando de uma captura de imagem pela câmera, como
descrito no fluxo de processo do Sensor Embarcado.
92
Por fim, é executada a transmissão da terceira imagem. Sendo o maior dos três arqui-
vos, é o que apresenta maior tempo de recepção, como mostrado na Figura 7.28. Aqui,
também observa-se que o algoritmo identificou a quantidade total de rostos na imagem e
corretamente apontou que um deles era desconhecido, entrando na rotina extraordinária.
Abrindo a pasta security, foi possı́vel observar o arquivo criado na última execução do
sistema, contendo o rosto desconhecido na imagem recebida (VO GQVGA.JPG).
8 Considerações Finais
Inspirado pelo rápido crescimento na área, este trabalho foi criado com propósito de
verificar o desempenho de Sistemas de Imageamento Remoto de baixo custo e sua aplica-
94
bilidade como RSISF. Tendo em vista os resultados favoráveis nas avaliações realizadas no
sistema desenvolvido, é possı́vel inferir que este trabalho, apesar de não cumprir ipsis lit-
teris tudo o que foi inicialmente proposto, demonstrou um desempenho muito satisfatório,
tanto em termos de uma abordagem para verificação da viabilidade do uso da tecnologia
LoRa em RSISF, quanto como um sistema de monitoramento com seus méritos próprios.
De fato, os resultados confirmam a hipótese inicial levantada no texto a respeito de tal
sistema.
Em relação aos objetivos do trabalho, foi possı́vel implementar exatamente como pro-
postos os estágios de recepção e processamento de dados. O dispositivo embarcado, no
entanto, precisou sofrer adaptações por conta de dificuldades associadas à leitura do sensor
de imagem utilizado. O sensor CMOS de modelo OV7670 sem buffer de saı́da integrado
se mostrou incapaz de capturar imagens estáticas de maneira coerente, estando limitado
apenas a certos tipos de live streaming. As dificuldades encontradas, no entanto, são re-
lativas à incompatibilidade especı́fica do OV7670 com o sistema, tendo sido verificado na
literatura que outras arquiteturas de sensor de imagem, ou mesmo um modelo de OV7670
com buffer, poderiam ter sido implementadas com sucesso no sistema.
Em relação ao acionamento por sensor de presença, foram encontradas restrições
quanto ao alcance e a frequência de detecção do sensor, que limitaram sua atuação.
Entretanto, verificou-se na literatura que estes nı́veis de restrição estão dentro dos limites
toleráveis da tecnologia utilizada. Quanto à modulação LoRa, mesmo que o dispositivo
utilizado não tenha atingido todas as expectativas iniciais, talvez demasiadamente oti-
mistas, obteve-se um canal de comunicação bastante consistente e estável, ideal para o
contexto desta aplicação, envolvendo o tráfego de múltiplos pacotes em sequência. Com
isso, também foi possı́vel comprovar a eficácia da modulação LoRa para aplicações com
sistemas de imageamento remoto.
Inúmeros experimentos foram realizados, como inicialmente previsto e não somente
todos produziram resultados, como foram todos resultados favoráveis. Entretanto, dada
a relativa baixa complexidade de alguns dos experimentos, nem todos puderam apresen-
tar diagnósticos assertivos e objetivos, como se inicialmente desejava. Dentre todas as
questões levantadas, apenas duas não puderam ser respondidas de forma definitiva: O
motivo pelo qual a transmissão LoRa com velocidade de 19, 2kbps nunca tinha sucesso e
a real proporção numérica entre falhas por alcance e falhas por interferência e oclusão de
sinal dentre as obtidas nas transmissões de teste. Acredita-se, no entanto, que ambas as
questões podem ser futuramente respondidas após a realização de estudos mais elaborados
envolvendo o sistema.
A abordagem metodológica para este projeto foi a de pesquisa e implementação de
recursos de software prontamente disponı́veis para uso e componentes de baixo custo e
fácil acesso como recursos de hardware. A abordagem foi escolhida tendo em mente a
popularização da chamada “Cultura Maker”, onde a população leiga tem se interessado
cada vez mais em utilizar tecnologia para suas próprias aplicações domésticas.
Apesar de terem sido estudadas as teorias necessárias para se desenvolver algoritmos
utilizando recursos de software por conta própria, preferiu-se utilizar ferramentas que
já se encontravam bem estabelecidas na comunidade de desenvolvedores pois acredita-
se que a inclusão de um treinamento de redes neurais exclusivo ao projeto, apesar de
interessante, demandaria tempo e esforço que poderiam ser melhor investidos melhorando
o sistema como um todo e, ainda por cima, obteriam-se resultados inferiores aos que de
fato foram obtidos. Em relação ao hardware, também se pensou na reprodutibilidade do
sistema, ao se utilizar dispositivos conhecidos e de baixo custo, de modo que pessoas com
95
Bibliográficas.
Apesar da implementação do sistema proposto ter sido concluı́da com sucesso, há
bastante espaço para expansão e aprimoramento do sistema em trabalhos futuros e há
o interesse no seguimento da pesquisa através da implementação de uma rede multi-nós
de monitoramento. Alguns dos tópicos propostos para dar continuidade a este trabalho
serão listados na seção a seguir.
Referências
[1] Piensa 3D. ¿OV7670 sin FIFO para ARDUINO vale la pena? — Opinión. url:
https://www.youtube.com/watch?v=mtE7ppmfrxA (acesso em 04/06/2019).
[2] K. Acuna. 37 pairs of celebrities who look nearly identical. Insider. 2017. url:
https://www.insider.com/celebrities-who-look-alike-2017-1 (acesso em
29/08/2019).
[3] W. A. Adcock. Electronic Photography System. United States Patent. Texas Ins-
truments, Inc. Dallas, TX, nov. de 1977. url: https://patentimages.storage.
googleapis.com/42/c5/65/f8f4d850406b62/US4057830.pdf.
[4] V. M. Aiea. Interfacing Catalex Micro SD Card Module with Arduino. url: https:
/ / vishnumaiea . in / projects / hardware / interfacing - catalex - micro - sd -
card-module (acesso em 06/07/2019).
[5] LoRa Alliance. About LoRa Alliance. url: https://lora-alliance.org/about-
lora-alliance (acesso em 04/09/2019).
[6] LoRa Alliance. White Paper. LoRaWANT M 1.1 Specification. 2017.
[7] Anatel. Atribuição de Faixas de Frequência no Brasil (2014). url: https://www.
anatel.gov.br/Portal/verificaDocumentos/documento.asp?numeroPublicacao=
314474&assuntoPublicacao=null&caminhoRel=null&filtro=1&documentoPath=
314474.pdf (acesso em 30/08/2019).
[8] M. Andrew. How a Pixel Gets its Color - Bayer Sensor - Digital Image. url:
https://www.youtube.com/watch?v=2-stCNB8jT8 (acesso em 06/09/2019).
[9] ArduCam. CMOS OV7670 Camera Module 1/6-Inch 0.3-Megapixel Module Da-
tasheet. 2015. url: https://www.openhacks.com/uploadsproductos/ov7670_
cmos_camera_module_revc_ds.pdf (acesso em 29/05/2019).
[10] Arducam. ArduCAM ESP8266 UNO MINI Camera Demo Tutorial 2018. url:
https://www.youtube.com/watch?v=n1dDGNpbxGM (acesso em 20/05/2019).
[11] K. Ashton. That ’Internet of Things’ Thing. 2009. url: https://www.rfidjournal.
com/articles/pdf?4986 (acesso em 11/08/2019).
[12] L. Atzori, A. Iera e G. Morabito. “The internet of things: a survey”. Em: Computer
Networks, Elsevier. (2010).
[13] A. Augustin et al. “A Study of LoRa: Long Range & Low Power Networks for the
Internet of Things”. Em: Sensors (2016).
[14] John B. OV 7670 Colour Camera and how I got it working with MikroC Pro for
Pic32. url: https : / / www . youtube . com / watch ? v = gp0FxbEmRSw (acesso em
20/05/2019).
[15] John B. OV 7670 Colour Camera and how I got it working with MikroC Pro for
Pic32. url: https : / / www . youtube . com / watch ? v = gp0FxbEmRSw (acesso em
20/05/2019).
[16] D. H. Ballard e C. M. Brown. Computer Vision. 1ª ed. Prentice Hall, 1982. isbn:
0131653164.
[17] B. E. Bayer. Color Imaging Array. United States Patent. Eastman Kodak Com-
pany. Rochester, NY, mar. de 1975. url: https : / / patentimages . storage .
googleapis.com/89/c6/87/c4fb7fbb6d0a0d/US3971065.pdf.
98
[37] E32-433T20DC User Manual. Datasheet: SX1278 433MHz 100mW DIP Wireless
Module. 1ª ed. Publicação Eletrônica. ChengDu Ebyte Electronics Technology.
2017.
[38] ElecFreaks. How to Use OV7670 Camera Module With Arduino? url: https :
//www.instructables.com/id/How- to- use- OV7670- Camera- Module- with-
Arduino/ (acesso em 29/05/2019).
[39] T. Elshabrawy e J. Robert. “Closed-Form Approximation of LoRa Modulation
BER Performance”. Em: IEEE Communication Letters (set. de 2018).
[40] Info Escola. Espectro Eletromagnético. url: https : / / www . infoescola . com /
fisica/espectro-eletromagnetico/ (acesso em 04/04/2019).
[41] Arduino Forum. OV7670 with both arduino uno and now mega. url: https://
forum.arduino.cc/index.php?topic=159557.0 (acesso em 18/06/2019).
[42] J. Fraden. The measurement, instrumentation, and sensors handbook. 1ª ed. CRC
Press LLC, 1999. isbn: 978-0-8493-8347-2.
[43] F. D. Garcia. Explorando o módulo OV7670-FIFO: Interface SCCB. 2018. url:
https://www.embarcados.com.br/modulo- ov7670- fifo- interface- sccb/
(acesso em 29/05/2019).
[44] A. Geitgey. The world’s simplest facial recognition api for Python and the com-
mand line. Documentation. Release 1.2.3. 2017. url: https : / / buildmedia .
readthedocs.org/media/pdf/face-recognition/latest/face-recognition.
pdf (acesso em 10/08/2019).
[45] A. Geitgey. The world’s simplest facial recognition api for Python and the com-
mand line. url: https://github.com/ageitgey/face_recognition (acesso em
08/08/2019).
[46] R. C. Gonzalez e R. E. Woods. Digital Image Processing. 2ª ed. Upper Saddle
River, NJ: Prentice Hall, 2001. isbn: 0201180758.
[47] Google. Google Earth. url: https : / / earth . google . com / web/ (acesso em
01/09/2019).
[48] V. Gupta. Face Detection – OpenCV, Dlib and Deep Learning ( C++ / Python
). url: https://www.learnopencv.com/face-detection-opencv-dlib-and-
deep-learning-c-python/ (acesso em 08/09/2019).
[49] B. J. Haran e M. P. Pound. Capturing Digital Images (The Bayer Filter). Compu-
terphile. 2015. url: https://www.youtube.com/watch?v=LWxu4rkZBLw (acesso
em 06/09/2019).
[50] B. J. Haran e M. P. Pound. Colourspaces (JPEG Pt0). Computerphile. 2015. url:
https://www.youtube.com/watch?v=LFXN9PiOGtY (acesso em 06/09/2019).
[51] B. J. Haran e M. P. Pound. Digital Images. Computerphile. 2015. url: https:
//www.youtube.com/watch?v=06OHflWNCOE (acesso em 06/09/2019).
[52] B. J. Haran e M. P. Pound. JPEG ’files’ & Colour (JPEG Pt1). Computerphile.
url: https://www.youtube.com/watch?v=n_uNPbdenRs (acesso em 06/09/2019).
[53] B. J. Haran e M. P. Pound. JPEG DCT, Discrete Cosine Transform (JPEG Pt2).
Computerphile. url: https://www.youtube.com/watch?v=Q2aEzeMDHMA (acesso
em 06/09/2019).
100
[71] Adafruit Explore & Learn. How PIRs Work. url: https://learn.adafruit.com/
pir-passive-infrared-proximity-motion-sensor/how-pirs-work (acesso em
05/04/2019).
[72] C. Liechti. PySerial Documentation. 2015. url: https : / / pythonhosted . org /
pyserial/ (acesso em 13/07/2019).
[73] R. B. Litchfield. Tom Wedgwood. An Account of his life, his discovery and his
friendship with Samuel Taylor Coleridge, including the letters of Coleridge to the
Wedgwoods and An Examination of Accounts of Alleged earlier photographic dis-
coveries. London: Duckworth e Co., 1903.
[74] indo logic. Menggunakan kamera modul OV7670 dengan Arduino part 1-3. url:
https://www.youtube.com/watch?v=y2myh6Mptt0 (acesso em 04/06/2019).
[75] F. Lundh. Python Imaging Library. 2011. url: http://www.pythonware.com/
products/pil/ (acesso em 31/08/2019).
[76] M. Lutz. Learning Python. Powerful Object-Oriented Programming. 4ª ed. Sebas-
topol, CA: O’Reilly Media, 2009.
[77] I. Luuk. Arduino Image Capture. url: https://www.github.com/indrekluuk/
ArduinoImageCapture/tree/master/ (acesso em 19/06/2019).
[78] I. Luuk. Arduino OV7670 live image over USB to PC. url: https : / / www .
youtube.com/watch?v=4w0ILM_6Ew4 (acesso em 30/05/2019).
[79] I. Luuk. Arduino OV7670 live image to screen. url: https://www.youtube.com/
watch?v=Dp3RMb0e1eA (acesso em 20/05/2019).
[80] I. Luuk. LiveOV7670. url: https : / / github . com / indrekluuk / LiveOV7670
(acesso em 19/06/2019).
[81] I. Luuk. LiveOV7670 project now supports Arduino Mega. url: https:// www.
youtube.com/watch?v=8SNrivo5VDA (acesso em 05/06/2019).
[82] I. Luuk. Update: Arduino OV7670 live image over USB to PC. url: https://
www.youtube.com/watch?v=4w0ILM_6Ew4 (acesso em 30/05/2019).
[83] M. Mahoney. Data Compression Explained. url: http://mattmahoney.net/dc/
dce.html#Section_6 (acesso em 11/09/2019).
[84] R. Martins. Camera OV7670 + Arduino UNO + Programa + Software - portu-
guese. url: https : / / www . youtube . com / watch ? v = R6RoGqV17Vw (acesso em
30/05/2019).
[85] University of Massachussetts. Labeled Faces in the Wild. url: http://vis-www.
cs.umass.edu/lfw/ (acesso em 08/09/2019).
[86] E. L. de Medeiros. Desenvolvimento de um Sistema de Aquisição de Dados em Rede
Hı́brida de Comunicação de uma Planta Hidráulica focado em LoRa. Monografia
(Graduação). Publicação Eletrônica. João Pessoa, 2018.
[87] K. Mekki et al. “A comparative study of LPWAN technologies for large-scale IoT
deployment”. Em: ICT Express 5 (2019). url: https://www.sciencedirect.
com/science/article/pii/S2405959517302953.
[88] K. Miura e C. S. Carlson. Residents of Elfhelm. Colorido Digitalmente. url: http:
/ / www . lithrael . com / ig / albums / userpics / 10001 / ForestFINALFLAT . jpg
(acesso em 13/08/2019).
102
[89] J. Nakamura et al. Image Sensors and Signal Processing for Digital Still Cameras.
4ª ed. Boca Raton, FL: CRC Press LLC, 2006.
[90] Klima Naturali. Olho Humano - Estrutura. 2011. url: http://www.klimanaturali.
org / 2011 / 03 / olho - humano - estrutura - do - olho - humano . html (acesso em
13/09/2019).
[91] OmniVision. Serial Camera Control Bus Functional Specification. Application Note.
2ª ed. Mar. de 2002.
[92] M. Pandit. How to Use OV7670 Camera Module with Arduino. url: https :
/ / circuitdigest . com / microcontroller - projects / how - to - use - ov7670 -
camera-module-with-arduino (acesso em 05/06/2019).
[93] M. Patel, J. Shangkuan e C. Thomas. What’s new with the Internet of Things?
McKinsey Global Institute. Mai. de 2017. url: https : / / www . mckinsey . com /
industries/semiconductors/our-insights/whats-new-with-the-internet-
of-things (acesso em 01/09/2019).
[94] C. Petrov. Internet of Things Statistics 2019 [The Rise Of IoT]. url: https :
//techjury.net/stats-about/internet-of-things-statistics/ (acesso em
01/09/2019).
[95] C. Pham. “Low cost wireless image sensor networks for visual surveillance and in-
trusion detection applications”. Em: IEEE ICNSC (2015). url: https://ieeexplore.
ieee.org/document/7116066.
[96] C. Pham. “Low cost, Low-Power and Long-range Image Sensor for Visual Surveil-
lance”. Em: SmartObjects (2016). url: http : / / cpham . perso . univ - pau . fr /
Paper/SmartObjects16.pdf.
[97] Microcontrollers Projects. Pixy Cam to with Arduino. url: https://www.youtube.
com/watch?v=DV4YK_Kk5IY (acesso em 20/05/2019).
[98] W. Rambo. CARTÃO SD COM ARDUINO DE UM JEITO MUITO SIMPLES.
url: https://www.youtube.com/watch?v=uj5eSph5KuM (acesso em 07/07/2019).
[99] M. Rensen. The Bartlane System (Coded System). 2004. url: http://www.hffax.
de/history/html/bartlane.html (acesso em 09/09/2019).
[100] RoboCore. Sensor de Presença PIR - HC-SR501. url: https://www.robocore.
net/loja/sensores/sensor-de-presenca-pir-hc-sr501 (acesso em 31/08/2019).
[101] J. A. Roper. This Video Isn’t Real. Vsauce. url: https://www.youtube.com/
watch?v=dh63v6bXEsA (acesso em 06/09/2019).
[102] A. Rosebrock. An interview with Davis King, creator of the dlib toolkit. PyImage-
Search. Mar. de 2017. url: https://www.pyimagesearch.com/2017/03/13/an-
interview - with - davis - king - creator - of - the - dlib - toolkit/ (acesso em
08/09/2019).
[103] RuthJ180. Arduino Spy Camera. url: https : / / www . youtube . com / watch ? v =
zfDc6CXoL-Y (acesso em 20/05/2019).
[104] J. Santa et al. “LPWAN-Based Vehicular Monitoring Platform with a Generic IP
Network Interface”. Em: Sensors (2019). url: https://www.mdpi.com/1424-
8220/19/2/264.
103
[105] E. F. dos Santos. Tirando fotos com Arduino Mega e OV7670 com chip AL422.
url: http : / / mrportman . blogspot . com / 2018 / 04 / tirando - fotos - com -
arduino-mega-e-ov7670.html (acesso em 19/06/2019).
[106] N. Schiller. Stock: A Cottage Garden Staple. 2017. url: https://gardenerspath.
com/plants/flowers/stock-cottage-garden-staple/ (acesso em 06/09/2019).
[107] M. Schoeffler. How to read and write SD cards with the Arduino Uno — UATS
A&S 6. url: https : / / www . youtube . com / watch ? v = 8MvRRNYxy9c (acesso em
07/07/2019).
[108] Global Sources. Attractive PIR Sensor, PIR Motion Sensor, Infrared Sensor, Re-
placement for Nicera RE200B. url: https://www.globalsources.com/si/AS/
Eagle-Power/6008821063503/pdtl/Attractive-PIR-Sensor/1129250277.htm
(acesso em 03/04/2019).
[109] K. R. Srinath. “Python – The Fastest Growing Programming Language”. Em:
(dez. de 2017).
[110] SurtrTech. Test of OV7670 (Without FIFO) + Arduino - Taking snaps and store
on PC. url: https : / / www . youtube . com / watch ? v = PYW2WA5Igrc (acesso em
05/06/2019).
[111] SX1276/77/78/79 - 137MHz to 1020MHz Low Power Long Range Transceiver.
Datasheet: SX1276/77/78. 1ª ed. Publicação Eletrônica. Semtech. Ago. de 2016.
[112] SX1278 Wireless Module. Datasheet: E32 Series. 1ª ed. Publicação Eletrônica.
ChengDu Ebyte Electronics Technology. 2017.
[113] EME Technologies. How to Interface Camera Module with Arduino — OV7670.
url: https://www.youtube.com/watch?v=ZqAvvLM-9BI (acesso em 30/05/2019).
[114] JYL tectronic. Captura de imagén ARDUINO-CAMARA OV7670 SIN FIFO. url:
https://www.youtube.com/watch?v=o2bgw2YfogA (acesso em 05/06/2019).
[115] A. Thomsen. Módulo câmera VGA OV7670. 2013. url: https://www.filipeflop.
com/blog/modulo-camera-vga-ov7670/ (acesso em 29/05/2019).
[116] B. Traversy. Examples for Python Face Recognition library. url: https://github.
com/bradtraversy/face_recognition_examples (acesso em 08/08/2019).
[117] Google Trends. LoRa. Interesse ao longo do tempo. url: https://trends.google.
com/trends/explore?date=2008- 01- 01%202019- 09- 04&q=LoRa (acesso em
04/09/2019).
[118] L. Vangelista. “Frequency Shift Chirp Modulation: The LoRa Modulation”. Em:
IEEE Signal Processing Letters (dez. de 2017).
[119] J. Vilarino. Internet das Coisas: Um Desenho do Futuro. Proof. 2017. url: https:
//www.proof.com.br/blog/internet-das-coisas/ (acesso em 08/08/2019).
[120] P. Viola e M. Jones. “Rapid Object Detection using a Boosted Cascade of Simple
Features”. Em: Conference on Computer Vision and Pattern Recognition (2001).
url: http://www.merl.com/publications/docs/TR2004-043.pdf (acesso em
13/09/2019).
[121] P. Viola e M. Jones. “Robust Real-time Object Detection”. Em: Second Interna-
tional Workshop on Statistical and Computational Theories of Vision - Modeling,
Learning, Computing and Sampling (jul. de 2001).
104
[122] A. Whitney. These Celebrity Look-Alikes Will Blow Your Mind. Popsugar Cele-
brity. Jan. de 2018. url: https://www.popsugar.com/celebrity/Celebrity-
Lookalikes-Celebrities-Look-Same-34357837 (acesso em 29/08/2019).
[123] Wikipedia. Bayer filter. url: https://en.wikipedia.org/wiki/Bayer_filter
(acesso em 13/09/2019).
[124] Wikipedia. CMYK Color Model. url: https://en.wikipedia.org/wiki/CMYK_
color_model (acesso em 13/09/2019).
[125] Wikipedia. CYGM filter. url: https://en.wikipedia.org/wiki/CYGM_filter
(acesso em 13/09/2019).
[126] Wikipedia. Discrete cosine transform. url: https://en.wikipedia.org/wiki/
Discrete_cosine_transform#Multidimensional_DCTs (acesso em 12/09/2019).
[127] Wikipedia. Foveon X3 sensor. url: https://en.wikipedia.org/wiki/Foveon_
X3_sensor (acesso em 13/09/2019).
[128] Wikipedia. HSL and HSV. url: https://en.wikipedia.org/wiki/HSL_and_HSV
(acesso em 13/09/2019).
[129] Wikipedia. JPEG. url: https : / / en . wikipedia . org / wiki / JPEG (acesso em
12/09/2019).
[130] Wikipedia. Lenna. url: https://en.wikipedia.org/wiki/Lenna (acesso em
29/05/2019).
[131] Wikipedia. RGB Color Model. url: https : / / en . wikipedia . org / wiki / RGB _
color_model (acesso em 13/09/2019).
[132] Wikipedia. YIQ. url: https : / / en . wikipedia . org / wiki / YIQ (acesso em
13/09/2019).
[133] DroneBot Workshop. Pixy2 Camera - Image Recognition for Arduino & Rasp-
berry Pi. url: https://www.youtube.com/watch?v=391dXDjqzXA (acesso em
20/05/2019).
[134] RF Wireless World. What is Infrared Pyroelectric Detector-Function,operation.
url: https://www.rfwireless-world.com/Terminology/What-is-Infrared-
Pyroelectric-Detector.html (acesso em 05/04/2019).
[135] Arduino Sinhala with Yasas. OV7670 Camera Module with Arduino. url: https:
//www.youtube.com/watch?v=um3Uil0PrLI (acesso em 04/06/2019).
[136] A. et al. Zanella. “Internet of Things for Smart Cities”. Em: IEEE Internet of
Things Journal 1 (fev. de 2014).
[137] Q. Zeng. Arduino JPEG camera demo. url: https://www.youtube.com/watch?
v=KApA-AJUjc0 (acesso em 29/05/2019).
[138] W. Zhai. “Design of NarrowBand-IoT Oriented Wireless Sensor Network in Urban
Smart Parking”. Em: iJOE (2017). url: https://online-journals.org/index.
php/i-joe/article/view/7886.
[139] P. Zwartmans. Arduino processing webcam. url: https : / / www . youtube . com /
watch?v=XClQQqWMIr0 (acesso em 20/05/2019).
105
(a) Javier Bardem x Jeffrey Dean Morgan (b) Jeff Bridges x Kurt Russel
(c) Jessica Chastain x Bryce D. Howard (d) Zooey Deschanel x Katy Perry
(e) Will Ferrell x Chad Smith (f) Tom Hardy x Logan Marshall-Green
(g) Heath Ledger x Joseph Gordon-Levitt (h) Zachary Quinto x Eli Roth
FONTE: Insider (2017) e Popsugar Celebrity (2018)
106
B Tabelas de Custos
A Unidade de Processamento não possui tabela de custos, já que é composta apenas
por elementos de software. Entretanto, é possı́vel mencionar os requisitos mı́nimos e reco-
mendados para utilização do algoritmo, com base nos requisitos necessários dos recursos
de software dos quais este se utiliza.