Sistema de Monitoramento Veicular e Sonolência em Motoristas

Transcrição

Sistema de Monitoramento Veicular e Sonolência em Motoristas
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
ANDERSON MACIONKI
WAGNER KESSLER STUMPF
Sistema de Monitoramento Veicular e Sonolência em Motoristas
Trabalho de Conclusão de Curso.
Prof.ª Maristela Regina Weinfurter Teixeira
Orientadora
Curitiba, dezembro de 2009.
UNIVERSIDADE POSITIVO
Reitor: Prof. Oriovisto Guimarães
Vice-Reitor: Prof. José Pio Martins
Pró-Reitor de Graduação: Prof. Renato Casagrande
Diretor do Núcleo de Ciências Exatas e Tecnológicas: Prof. Marcos José Tozzi
Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin
Agradecimentos
A Deus, por ter nos dado o direito de viver e uma família que sempre nos apoiou nos
momentos difíceis.
Aos nossos pais, por nos ter dado a vida e que com muito carinho e apoio, não
mediram esforços para que chegássemos e concluíssemos mais esta importante e grande
etapa de nossa vida.
A nossas mulheres, esposa e companheira, pela grande paciência, enorme carinho,
palavras de incentivo e compreensão em saber que muitas vezes sacrifícios haviam de
ser feitos para que pudéssemos concluir esta etapa, sempre ao nosso lado.
Ao professor Maurício Perretto, por toda sua dedicação e auxílio durante a
realização deste projeto.
A nossa professora orientadora Maristela Regina Weinfurter Teixeira, pela
inspiração no amadurecimento desta monografia.
Ao professor Alessandro Zimmer, pela sugestão da proposta deste projeto.
A todos os professores do curso de Engenharia da Computação, que foram tão
importantes na vida acadêmica, nos transmitindo conhecimentos que tornaram a
execução deste trabalho possível.
Aos amigos, pelo incentivo e apoio constantes.
A todas as pessoas que não foram aqui mencionadas, não por serem de menor
importância, mas apenas por culpa de nossa falta de memória, que tiveram participação
direta ou indireta na nossa formação.
SUMÁRIO
LISTA DE ABREVIATURAS E SIGLAS ................................................................. 6
LISTA DE FIGURAS ................................................................................................. 7
RESUMO ..................................................................................................................... 8
ABSTRACT ................................................................................................................. 9
1. INTRODUÇÃO ..................................................................................................... 10
2. FUNDAMENTAÇÃO TEÓRICA ........................................................................ 12
2.1 Software ............................................................................................................... 12
2.1.1 Introdução .......................................................................................................... 12
2.1.2 Processamento de Imagens ................................................................................. 12
2.1.3 Filtro de Média (Passa Baixa) ............................................................................. 13
2.1.4 SOBEL ............................................................................................................... 15
2.1.6 HOUGH ............................................................................................................. 17
2.1.8 PERCLOS na Natureza da Sonolência e sua Verificação .................................... 19
2.2 Hardware ............................................................................................................. 21
2.2.1 Sensores ............................................................................................................. 21
2.2.2 Termistores......................................................................................................... 21
2.2.3 Sensores de Pressão ............................................................................................ 21
2.2.4 Microcontrolador ................................................................................................ 25
3. ESPECIFICAÇÃO ................................................................................................ 27
3.1 Análise de Contexto ............................................................................................. 27
3.1.1 Descrição do objeto do desenvolvimento ............................................................ 27
3.1.2 Definição do sistema .......................................................................................... 27
3.1.3 Descrição das partes componentes e relacionamento ........................................... 28
3.1.4 Descrição da interface entre sistemas .................................................................. 28
3.1.5 Descrição de condições restritivas ...................................................................... 29
3.1.6 Descrição dos benefícios esperados .................................................................... 31
3.1.7 Descrição dos impactos esperados ...................................................................... 32
3.2. Análise Funcional ............................................................................................... 32
3.2.1 Funções de comunicação .................................................................................... 32
3.2.2 Funções de processamento de informação........................................................... 33
3.2.3 Funções de controle automático .......................................................................... 34
3.2.4 Funções de interface homem/máquina ................................................................ 34
3.2.5 Funções de aquisição de dados ........................................................................... 34
3.2.6 Funções de atuação ............................................................................................. 34
3.3 Análise de Requisitos ........................................................................................... 34
3.4 Análise de Alternativas........................................................................................ 36
4. IMPLEMENTAÇÃO ............................................................................................ 38
4.1 Descrição .............................................................................................................. 38
4.2 Descrição do Software ......................................................................................... 40
4.2.1 Ambiente de Desenvolvimento ........................................................................... 40
4.2.2 Interface do Software.......................................................................................... 40
4.2.3 Diagrama de Classes ........................................................................................... 42
4.2.4 Modelo Lógico ................................................................................................... 43
4.3 Especificações de Hardware................................................................................ 45
4.3.1 Sensor de temperatura......................................................................................... 45
4.3.2 Sensor de rotação da ventoinha do radiador. ....................................................... 46
4.3.3 Sensor MAP ....................................................................................................... 47
4.3.4 Sensor de Iluminação Veicular ........................................................................... 49
4.3.5 PIC ..................................................................................................................... 50
4.3.6 Modelo Lógico ................................................................................................... 50
5. VALIDAÇÃO E RESULTADOS ......................................................................... 54
6. CONCLUSÃO ....................................................................................................... 57
7. REFERÊNCIAS BIBLIOGRÁFICAS ................................................................. 59
ANEXO A – ARTIGO CIENTÍFICO .............................Erro! Indicador não definido.
ANEXO B – MANUAL DO USUÁRIO...........................Erro! Indicador não definido.
ANEXO C – DIAGRAMA ELÉTRICO ..........................Erro! Indicador não definido.
ANEXO D – LAYOUT DA PLACA DE CIRCUITO DE IMPRESSO ...............Erro!
Indicador não definido.
ANEXO E – CRONOGRAMA DO PROJETO ..............Erro! Indicador não definido.
ANEXO F – CUSTOS DO PROJETO ............................Erro! Indicador não definido.
LISTA DE ABREVIATURAS E SIGLAS
DNIT
Departamento Nacional de Infra-Estrutura de Transportes
LCD
Liquid Crystal Display
MAP
Manifold Air Pressure
AIPIRC/PIARC
Associação Mundial de Estradas
PIB
Produto Interno Bruto
PERCLOS
Percent of the time eyelids are Closed
PDI
Processamento Digital de Imagens
RGB
Red, Green, Blue
MP
Megapixel
PTC
Positive Temperature Coefficient
NTC
Negative Temperature Coefficient
PIC
Peripheral Interface Controller
TTL
Transistor-Transistor Logic
CMOS
Complementary metal-oxide-semiconductor
CPU
Central Processor Unit
PROM
Programmable Read Only Memory
RAM
Random Access Memory
I/O
Input/Output
UML
Unified Modeling Language
LISTA DE FIGURAS
Figura 1 – Aplicação do operador Sobel a uma imagem de um cilindro
Figura 2 – Cálculo dos segmentos de reta perpendiculares a borda
Figura 3 – Aplicação de Hough para detecção dos círculos com múltiplos raios
Figura 4 – Monitoramento da quantidade de Lapsos de PVT nos horários do dia
Figura 5 – Diagrama de um sistema para obtenção de vácuo
Figura 6 – Sistema para medir pressão relativa
Figura 7 – Detalhes de um sensor de pressão
Figura 8 – Circuito amplificador para sensores com recurso de calibração
Figura 9 – Gráfico para auxiliar a determinar erro de offset
Figura 10 – Módulo de monitoramento veicular
Figura 11 – Representação Gráfica do Projeto
Figura 12 – Diagrama de Arquitetura do Projeto
Figura 13 – Interface do software
Figura 14 – Diagrama de Classes do Software
Figura 15 – Fluxo de Dados do Software em Produção
Figura 16 – Fluxograma do Software
Figura 17 – Curva de Resposta do Sensor de Temperatura
Figura 18 – Esquemático 3D do sensor de temperatura
Figura 19 – Sensor MAP
Figura 20 – Visão Interna do Sensor MAP
Figura 21 – Curvas de Resposta do Sensor MAP
Figura 22 – Circuito de funcionamento das lâmpadas
Figura 23 – Fluxograma de Hardware
Figura 24 – Medições das Curvas de Resposta
15
18
19
20
22
23
23
24
25
26
38
39
41
42
43
44
46
46
47
48
49
50
51
56
RESUMO
Este projeto descreve a criação de uma solução que possibilita o aumento da
segurança de condutores de veículos, atuando na prevenção de acidentes rodoviários.
De acordo com estudos fornecidos pelo DNIT (Departamento Nacional de InfraEstrutura de Transportes), o fator humano corresponde a 96% dos casos de acidentes e o
fator de falhas veiculares corresponde também a 10% destes casos. Até o mês de
novembro de 2007, foram registrados 4.259 acidentes em que o motorista dormiu,
enquanto 38.499 por falta de atenção. As pessoas não são capazes de julgar se estão
com sonolência ou distraídos, por isso, a idéia central encontra-se na criação de uma
solução que possa sanar insuficiências verificadas no ambiente automotivo. Já existem
soluções que realizam o monitoramento de sonolência em motoristas, porém estes são
novos, expansivos e de pouca distribuição no mercado. Na maioria dos carros utiliza-se
um monitoramento dos sensores abordados pelo sistema, porém raramente a informação
é exibida de maneira clara para o entendimento humano leigo.
O sistema proposto então utiliza uma câmera interligada a um
microcomputador, posicionada frontalmente ao motorista para captar imagens de sua
face, que através do processamento digital, detecta seus olhos, verificando o percentual
de abertura em que os olhos estão abertos no decorrer do tempo. Caso o dispositivo
detecte sonolência ou distrações, alarmes são acionados procurando trazer o motorista a
um estado de alerta novamente. Para isto o microcomputador é ligado a um
microcontrolador, o qual é responsável por realizar alarmes de qualquer anomalia
ocorrida, bem como por exibir informações sobre o estado de alerta do motorista em um
display LCD. O display exibe a avaliação dos sensores veiculares básicos, tais como
ventoinha do radiador, MAP (sensor de pressão absoluta no coletor de admissão),
temperatura d’água do radiador e subsistema de iluminação.
Palavras-Chave: segurança veicular, sensores veiculares, detecção de sonolência.
ABSTRACT
This Project describes the creation of a solution that aims at an
improvement on vehicles and drivers safety, acting in a preventive manner. According
to studies provided by DNIT (National Department of Transports Infra-Structure), the
human agent is present in 96% of accidents cases, the vehicular agent is also present in
10% of these cases. On Brazilian roads, in the year of 2007 until the month of
November, 4,259 accidents have been registered because drivers were sleeping and
38,499 by lack of attention. The people are not capable to judge if they are suffering
from drowsiness or in a necessary awareness state, because of this, the theme is the
creation of a solution capable to fulfill verified insufficiencies on automotive
environment. Solutions that monitor the driver’s drowsiness already exist, however,
these are new, expensive and with low market distribution. Most cars already monitor
the sensors employed by the system. However, the information is rarely exhibited in a
way clear enough to the understanding of laymen.
The proposed system utilizes a camera connected to a microcomputer,
positioned at the driver’s front to capture images of his face and through digital
processing, detect his eyes and verify percentage of aperture through time. If the device
detects drowsiness or distractions, alarms will be activated, trying to bring the driver
back to an awareness state. For this, the microcomputer is linked to a microcontroller,
which is responsible to alarm any anomaly, to display information regarding the
driver’s awareness condition in a LCD display. The display shows the evaluation of
basic vehicular sensors, as radiator’s fan, MAP (manifold absolute pressure sensor),
radiator’s water temperature and lighting subsystem.
Keywords:
vehicular
safety,
vehicular
sensors,
drowsiness
detection.
1. INTRODUÇÃO
Segurança no trânsito é uma preocupação a nível mundial, porém de acordo com
informações da AIPCR/ PIARC/ Associação Mundial de Estradas (2002), 80% das
mortes nas rodovias mundiais são em países da África, Ásia, América Latina e Oriente
Médio, dos quais 40% concentram-se apenas na Ásia – Pacífico. As conseqüências anuais
são de 1 milhão de mortos, 50 milhões de feridos em 15 milhões de acidentes anuais com
vítimas. É também a terceira causa de mortes prematuras e corresponde a 10% do total de
mortes em países de terceiro mundo, ocupando 25% dos leitos disponíveis de todos os
hospitais.
O número estimado de acidentes no Brasil em 2004 foi de 94.166, gerando um
custo de mais de 4 bilhões de reais. O custo global gasto com acidentes de trânsito é
estimado em 70 bilhões de dólares, mais do que todas as fontes bilaterais e multilaterais
de ajuda para regiões emergentes, além de corresponder a 1,5% do PIB para países
emergentes.
Os anos de 1979 a 2005, a frota nacional aumentou de 10 milhões de veículos
para 42 milhões. Após os anos 80, os países emergentes não foram capazes de ampliar
nem tão pouco manter suas malhas rodoviárias. Diante deste cenário degradante, o
número de mortes em acidentes aumentou entre 1980 e 1995 em média: 40% na América
Latina, 70% na Ásia, 25% na África e 20% no Oriente Médio. Em 90% dos casos, os
vitimados são condutores ou passageiros, sendo que os profissionais de serviços de
transporte correspondem a 41% do total. (DNIT, 2005)
A engenharia de um modo geral tem contribuído no aumento da segurança no
trânsito ao criar sistemas que amenizam acidentes e as injúrias geradas pelos mesmos.
Estudos e pesquisas são aspectos importantes no trabalho de segurança, podendo ser
incorporados ao ambiente automotivo.
Como os indivíduos são incapazes de julgar suas condições de sonolência, visto
que grande parte dos acidentes de trânsito é causada por cochilo ou falta de atenção, o
projeto propõe o desenvolvimento de uma solução que seja capaz de proporcionar o
aumento da segurança dos veículos e seus condutores, ao detectar a sonolência no
motorista e atuar de forma preventiva.
Seguindo as novas tendências de critérios de usabilidade e acessibilidade, o
projeto trouxe para um formato mais simplificado a verificação de sensores essenciais
Página 10
para o correto funcionamento do veículo, como o MAP (sensor de pressão absoluta no
coletor de admissão), a medição da temperatura d’água no radiador, da ventoinha do
radiador e a da iluminação de faróis e lanternas, como prevenção de acidentes noturnos
pela falta de iluminação do veículo. A verificação desse sensoriamento é didaticamente
exibida para o motorista, para que não haja dúvida sobre quais ações o mesmo deverá
tomar.
Os resultados são apresentados como uma solução integrada de software e
hardware, configurável para distribuição e funcionamento em diversos veículos, dando
maior abrangência na área de segurança automotiva e dispositivos que atuem de forma
preventiva, conseqüentemente reduzindo o número de acidentes causados por falha
humana ou veicular.
Página 11
2. FUNDAMENTAÇÃO TEÓRICA
2.1 Software
2.1.1 Introdução
A fadiga de motoristas gera um risco significante no que se refere ao transporte
rodoviário, podendo ser causada por diversos fatores como falta de sono ou percurso
noturno. Na última década, sonolência e fadiga de motoristas foram temas de intenso
interesse e atividade pelo Departamento de Transportes Americano. Entre vários métodos
de detecção de sonolência verificados, PERCLOS se tornou o mais eficaz e confiável para
determinar
o
nível
de
alerta
de
um
motorista.
[FEDERAL
HIGHWAY
ADMINISTRATION, 1998]
Para se aplicar tal algoritmo, é necessário um processamento prévio da imagem,
que posteriormente é representada digitalmente, podendo por tanto ser processada
digitalmente.
Nesta etapa procedem-se à aquisição, pré-processamento e segmentação da
imagem adquirida pela câmera. Aplica-se então um filtro de média (passa-baixa) para
remoção de ruídos, outro filtro com utilização de gradiente para detecção de bordas
(Sobel) e finalmente a transformada de Hough para detecção de círculos. Cada nova
imagem de entrada passa por este pré-processamento para detecção dos círculos da íris,
possibilitando assim a verificação do percentual de abertura do olho através de
PERCLOS.
2.1.2 Processamento de Imagens
Breve conhecimento sobre o processamento digital de imagens é requisito base
para entendimento dos demais conhecimentos teóricos abordados no software do projeto.
O termo “Processamento Digital de Imagens (PDI)” se refere ao uso de algoritmos
computacionais que realizam processamento e operações com imagens digitais.
[CASTLEMAN K, 1996]
As imagens digitais são representações de imagens através de um conjunto
(discreto) de pixels, cada pixel com sua coordenada (x, y) na imagem, o conjunto total
determina sua resolução, como 1280 x 1024 (uma matriz de 1280 pixels no eixo X para
cada linha de pixels, num total de 1024 linhas) a quantidade total é a multiplicação de um
número pelo outro, neste caso aproximadamente 1.3 milhões de pixels em uma imagem,
Página 12
ou 1.3MP (Megapixel). Logo, quando se observa câmeras digitais de 3.2MP, 5.0MP, se
têm a quantidade total possível de pixels na imagem capturada. Um pixel (Picture
element) por sua vez é o menor item de informação das imagens, sendo que cada pixel
tem seus próprios atributos. Os atributos podem variar de acordo com o contexto de sua
utilização, como exibição na tela de um computador (que pode variar em gama de cores e
quantidade de bytes utilizados para representá-lo), impressão, sendo geralmente utilizado
como unidade de medida. No caso deste projeto, o que interessa de cada pixel são os
valores de intensidade RGB (Red, Green, Blue), cada nível de intensidade pode assumir
256 valores e formar juntos no pixel uma variação até 16 milhões de cores, este tipo de
pixel requer 24 bits (zeros ou uns), ou 3 bytes (conjunto de 8 bits) para ser representado,
um para cada cor. [CASTLEMAN K, 1996]
Após o processamento das imagens pelo algoritmo, os valores RGB de todos os
pixels serão convertidos para níveis de cinza, onde na realização desta conversão, retirase a média entre os 3 valores para cada pixel. Tendo-se assim, apenas 256 níveis de
intensidade na imagem, o que torna o processamento muito mais simples e barato em
termos de processamento computacional.
Imagens digitais e seu processamento, tão comumente usados hoje nas mais
variadas aplicações, tiveram seu início nos anos 60 nos Estados Unidos em diversos
laboratórios, com fins científicos e militares, com aplicações específicas para fins
médicos, espaciais, de reconhecimento, e aprimoramento de fotos. Atualmente, com
velozes computadores e processadores de sinais, o processamento digital de imagens
passou a ser o método mais utilizado para trabalhos com imagens, por ser o método mais
versátil e barato, sendo o processamento digital o único método tecnológico para
classificação, extração de propriedades, projeção, reconhecimento de padrões e análise de
sinais, aparecendo em quase todos os dispositivos tecnológicos atuais que trabalhem com
imagens. [CASTLEMAN K, 1996]
2.1.3 Filtro de Média (Passa Baixa)
Filtro utilizado para remoção de ruídos e imperfeições na imagem, procura
suavizar grandes variações na intensidade dos pixels, aplicado neste caso somente a
níveis de cinza, geralmente aplicado anteriormente a um processamento específico, como
a detecção de borda feita pelo operador Sobel. O operador Sobel é discutido no item
2.1.4.
Página 13
Matematicamente pode ser descrito através da seguinte fórmula:
ou
Onde “Y” é o novo valor de intensidade para o pixel “n”, o somatório compreende
os valores de intensidade “x” dos pixels envolvidos pela região de “n-k” até “n+k”. Para
retirar a média este novo e alto valor é dividido pelo número total de pixels abordados,
denotado neste caso pela letra “Z” ou matematicamente como “2k+1”. [CASTLEMAN
K, 1996]
Assim como o operador Sobel, o filtro de media é aplicado em termos espaciais. Este
substitui o valor de intensidade do pixel central da janela de pixels abordada.
Geralmente o cálculo é feito pixel a pixel, em todos os pixels da imagem, a janela
comumente aborda o pixel em questão e os oito pixels ao seu redor, este cálculo discreto
não deve ser feito com base nos novos valores obtidos para cada pixel, devendo ser
recursivo e cada novo valor deve ser obtido sempre com base nos valores da primeira
imagem. Sua intensidade e a área tratada podem alterar, dependendo do nível de
suavização que se desejar para cada imagem ou região. Após o cálculo do primeiro pixel,
a janela corre para o próximo e calcula o valor do mesmo com base nos valores iniciais e
assim por diante.
Quando se está trabalhando com a imagem, o processamento é realizado em cima
dos seus valores numéricos de intensidade, por isso a aplicação deste filtro é facilmente
visualizada matematicamente com matrizes, sendo feito o mesmo processo em PDI.
Valores não Filtrados
Média Filtrada
Aplicação de um filtro de média.
Página 14
O aditivo neste filtro para aplicações de processamento digital de imagens é a
adição de máscaras, as máscaras são matrizes que possuem o tamanho da janela
abordada, com o centro no pixel que está sendo tratado, o valor de intensidade de cada
pixel é multiplicado pelo valor referente na posição da máscara, é feito o somatório
normalmente, então a soma dos pesos da máscara é usado na divisão do somatório, para
que o valor de intensidade seja normalizado. [CASTLEMAN K, 1996]
2.1.4 SOBEL
O operador Sobel é usado no processamento digital de imagens para detecção de
bordas nas mesmas. Sendo um operador de diferenciação discreta, calcula, em cada
ponto, uma aproximação do gradiente da função de intensidade da imagem, fornece a
direção da maior variação de claro para escuro e quantiza a variação nesta direção. Para
tal processo, o operador convoluciona os pontos da imagem com um pequeno filtro de
inteiros na horizontal e vertical, o gradiente de uma função de duas variáveis (a função de
intensidade da imagem) é em cada ponto da imagem, um vetor de duas dimensões com
componentes fornecidas pelas derivativas nas direções horizontais e verticais. [YINGDONG, Q. et al, 2005]
Figura 1 - Aplicação do operador Sobel a uma imagem de um cilindro. [YINGDONG, Q. et al, 2005]
Formulação
O operador usa duas matrizes 3x3 que são convolucionadas com a imagem
original para calcular as aproximações das derivativas, uma para mudanças horizontais e
outra para mudanças verticais. Na formulação seguinte, “A” representa os pontos
abordados da imagem original, “Gx” e “Gy” serão os valores que em cada ponto conterão
as aproximações derivativas horizontais e verticais.
Página 15
Nota: A multiplicação nas matrizes denota a operação de convolução 2D.
A coordenada X é definida como crescente para a direita e a coordenada Y é
definida como crescente para baixo. A cada ponto da imagem, as aproximações do
gradiente resultante podem ser combinadas para fornecer a magnitude do gradiente
usando a seguinte fórmula. [YING-DONG, Q. et al, 2005]
Com esta informação também pode ser calculada a direção do gradiente:
Onde,
é zero para uma borda vertical mais escura no lado esquerdo.
Como a função de intensidade de uma imagem digital é conhecida somente em
pontos discretos, funções derivativas desta não podem ser definidas a não ser que seja
assumido que exista uma função de intensidade continua que foi amostrada nos pontos da
imagem. Com alguns pressupostos, a derivativa da função de intensidade continua pode
ser calculada como uma função de intensidade amostrada, no caso, a imagem digital.
Como conseqüência de sua definição, o operador Sobel pode ser implementado
com maneiras simples em software e hardware. Apenas oito pontos em volta do ponto
abordado são necessários para calcular o resultado correspondente e um único inteiro
aritmético é necessário para calcular a aproximação do vetor gradiente. Os dois filtros
discretos descritos acima podem então ser separados:
Página 16
As duas derivativas Gx e Gy podem então ser calculadas como:
2.1.6 HOUGH
A transformada de Hough é utilizada no processamento digital de imagens para
extrair propriedades geométricas das mesmas. A transformada clássica tinha como
objetivo a detecção de linhas, porém, esta foi ampliada e generalizada para identificar
posições e dimensões de outras formas, mais comumente círculos e elipses. [RHODY, H.,
2005]
Círculos são estruturas geométricas comuns de interesse nas aplicações de
computação gráfica. Portanto, é realizado o uso desta transformada para localizar tais
estruturas. Um círculo pode ser transformado em um grupo de três parâmetros,
representando seu centro e seu raio.
A idéia da transformada é que perpendiculares aos pontos de borda de um círculo
cruzam no centro do mesmo. Portanto, se linhas perpendiculares forem desenhadas a
todos os pontos de borda, deve-se obter a concentração destas no centro do círculo. Para
visualizar esta prática, é mostrada, no estudo teórico, o desenho de segmentos de reta no
espaço (a, b), sendo:
Onde, (minr e maxr) é o range dos possíveis raios do círculo que são levados em
consideração (pode ser customizado), A é a disposição (array) do espaço (a, b), E (i, j) é a
intensidade da borda, dada após a aplicação do filtro Sobel. [RHODY, H., 2005]
Página 17
Figura 2 - Cálculo dos segmentos de reta perpendiculares a borda. [RHODY, H.,
2005]
A transformada verifica os pontos onde os centros dos possíveis círculos devem
ser encontrados. Entretanto, os pontos podem ser difusos, particularmente se os círculos
são distorcidos em elipses, porém este não é o caso na detecção do olho humano.
Especificamente no projeto, a variação do raio deve ser muito pequena, pois a
câmera utilizada já processa o rastreamento da face e procura mantê-la centralizada e com
o mesmo tamanho na imagem (através de zoom automático). Isto reduz os recursos
computacionais utilizados pelo algoritmo.
Portanto, se desejar parametrizar apenas uma circunferência, descrevendo raio
como R e o centro como (a, b), as seguintes equações são utilizadas:
Se o ângulo
passar pelos 360 graus, os pontos (x, y) traçam o perímetro do
círculo. Quando a imagem contém muitos pontos, alguns são inclusos nos perímetros dos
possíveis círculos, então o trabalho do programa é encontrar os parâmetros (a, b e R) que
descrevam os círculos, como visto anteriormente. Esta busca por círculos com raios
desconhecidos pode ser conduzida utilizando acumulação em uma matriz tridimensional.
Página 18
Figura 3 - Aplicação de Hough para detecção dos círculos com múltiplos raios.
[RHODY, H., 2005]
2.1.8 PERCLOS na Natureza da Sonolência e sua Verificação
PERCLOS (Percent of the time eyelids are Closed) define o percentual de tempo
em que os olhos de um motorista estão fechados. O algoritmo aborda o percentual de
fechamento da pálpebra sobre a pupila no decorrer do tempo ao invés de um simples
piscar. Uma métrica para PERCLOS foi estabelecida em 1994 como a proporção de
tempo em um minuto em que as pálpebras do motorista estão pelo menos 80% fechadas.
[FEDERAL HIGHWAY ADMINISTRATION, 1998]
O projeto utiliza PERCLOS para realizar uma contagem de frames em que os
olhos estão fechados assim como abertos, onde verifica no decorrer de um tempo
estabelecido, seu percentual de fechamento. Esta verificação é realizada para cada
imagem tratada e através disso a média é obtida. Caso seja constatado que existe
fechamento e este esteja presente em pelo menos 20% das amostras no último minuto, se
constatada a sonolência do motorista.
Para
validar
PERCLOS,
a
FMCSA
(Federal
Motor
Carrier
Safety
Administration), uma divisão do governo americano a parte do Departamento de
Transporte Americano, realizou uma pesquisa utilizando uma metodologia com dois
experimentos, ambos abordando PERCLOS e outros métodos de detecção de sonolência.
[FEDERAL HIGHWAY ADMINISTRATION, 1998]
No primeiro experimento, os pesquisadores desempenharam o mesmo em um
ambiente fechado de laboratório. Quatorze homens adultos permaneceram acordados por
42 horas, enquanto trabalhavam numa bateria de testes computadorizados a cada duas
horas. Os testes incluíam uma tarefa de vigilância psicomotora (PVT) de 20 minutos
Página 19
requerendo que as cobaias mantivessem sua atenção e respondessem a uma luz
randômica em uma tela de computador, apertando um botão. Os lapsos na performance
da PVT (quando não se conseguia responder ao estímulo em menos de 500ms) foram
gravados a cada minuto e então totalizados para toda PVT. Estes lapsos foram utilizados
como critério de validação, pois o ato de dirigir é considerado uma tarefa que demanda
reações psicomotoras e vigilância psicomotora foi previamente validada como sendo
muito sensível a fadiga, os lapsos de PVT também serviram pra validar PERCLOS.
Figura 4 - Monitoramento da quantidade de Lapsos de PVT nos horários do dia.
[FEDERAL HIGHWAY ADMINISTRATION, 1998]
O método foi comparado com outras cinco tecnologias, duas com encefalograma
(EEG), dois monitorando o ato de piscar e uma monitorando o posicionamento da cabeça.
PERCLOS possuía três métricas, uma envolvendo o percentual de tempo em que as
pálpebras estavam pelo menos 70% fechadas (P70), outra em que as mesmas estavam
80% fechadas (P80) e a última delas tirava a média quadrática percentual da taxa de
fechamento dos olhos (EYEMEAS).
Os pesquisadores monitoraram os resultados de todos os métodos a cada duas
horas, junto com as PVTs, e realizaram um comparativo com os resultados dos lapsos,
para mostrar coerência entre os resultados, os resultados dos métodos deviam mostrar alta
correlação com o resultado das PVTs.
Página 20
O segundo experimento foi responsável pela avaliação destes resultados, e
pesquisas posteriores. PERCLOS foi o método com os melhores resultados, bem como
pelo fato de sua utilização na implementação sobre imagens digitais, o mesmo foi o
escolhido para ser implementado no projeto.
2.2 Hardware
No que tange aos possíveis problemas veiculares, há de se entender alguns
conceitos sobre estes dispositivos neste item. Para tanto, segue conceituação de alguns
destes importantes dispositivos para o desenvolvimento do projeto em questão.
2.2.1 Sensores
Sensores são dispositivos eletroeletrônicos que tem a propriedade de transformar
uma grandeza física que está relacionada a uma ou mais propriedades do material de que
é feito o sensor em sinal elétrico. Existem diversos tipos de sensores, destacando-se entre
eles
os
fotodiodos
(conversão
luminosa/elétrico),
os
microfones
(conversão
sonora/elétrico) e os termistores (conversão térmica/elétrico). [BRAGA, N., 1983]
2.2.2 Termistores
Termistores são dispositivos elétricos que têm a sua resistência elétrica alterada
termicamente, isto é, apresentam um valor de resistência elétrica para cada temperatura
absoluta. São muito usados para controlar e ou alterar a temperatura em dispositivos
eletro-eletrônicos, como alarmes, termômetros, "relógios", circuitos eletrônicos de
compensação térmica, dissipadores de calor, ar-condicionados, etc. Existem dois tipos
básicos de termistores: o termistor PTC (Positive Temperature Coefficient), que aumenta
drasticamente a sua resistência elétrica com o aumento da temperatura, e o termistor NTC
(Negative Temperature Coefficient), que diminui drasticamente a sua resistência elétrica
com o aumento da temperatura. O termistor não é polarizado eletricamente. [DAWES, C.,
1979]
2.2.3 Sensores de Pressão
Em sensores de pressão, nos casos mais comuns, a pressão é medida tendo por
referência a pressão atmosférica normal, que é a qual corresponde à atmosfera que nos
cerca. Essa pressão é denominada relativa. No entanto, em muitas aplicações é importante
que a pressão de um determinado ambiente seja medida em relação ao vácuo. Nesse caso,
Página 21
o que se tem é a medida absoluta da pressão. Tendo em vista que é impossível obter o
vácuo perfeito no ambiente, a calibração de qualquer tipo de equipamento ou sensor que
precise medir pressão absoluta, é um problema sério a ser considerado. Veja que os
equipamentos que “produzem” vácuo se baseiam na retirada do ar de um ambiente
através de um pistão, conforme mostra abaixo. [Saber Eletrônica, 2008]
Figura 5 - Diagrama de um sistema para obtenção de vácuo. [Saber
Eletrônica, 2008]
Supondo que a cada movimento do pistão, este retire ar em quantidade igual à do
ambiente a ser levado ao vácuo, há a redução da pressão à metade cada vez que isso
ocorrer. Assim, por mais que esvaziemos o ambiente, a pressão é sempre metade da
anterior e com isso nunca chegará à zero. Teremos uma progressão em que a pressão final
P, é em relação à pressão inicial Po dada por:
P = ½ x ½ x ½ x ............. ½ Po
Onde o número de fatores ½ corresponde ao número de vezes que o pistão se
movimenta.
Pode-se entender melhor como funciona um medidor de pressão absoluta se partir
do funcionamento de um medidor de pressão relativa. A pressão diferencial é medida em
relação a dois ambientes, conforme ilustra abaixo:
Página 22
Figura 6 - Sistema para medir pressão relativa. [Saber Eletrônica, 2008]
Essa pressão pode ser expressa em libras por polegada quadrada ou então em kg
por centímetro quadrado. Quando um dos ambientes é tomado como referência, então há
uma pressão relativa ao outro ambiente ou à atmosfera normal. No caso da pressão
absoluta, o ambiente tomado como referência é o vácuo. Esse tipo de medida é usado
normalmente em barômetros ou altímetros. Para essas medidas é preciso ter uma
referência fixa e não simplesmente o ar ambiente. Isso ocorre porque a pressão ambiente
muda constantemente. Assim sendo, definimos a pressão absoluta como aquela medida
em relação ao vácuo perfeito.
Na figura abaixo, pode ser visto um sensor de pressão visto em corte:
Figura 7 - Detalhes de um sensor de pressão. [Saber Eletrônica, 2008]
Conforme se pode observar, nesse sensor existe uma cavidade selada em que é
feito o vácuo. A pressão nessa cavidade serve de referência para o sensor. É claro que na
Página 23
prática, conforme explicado é impossível obter um vácuo perfeito. Assim, os fabricantes
desses sensores esmeram-se no sentido de obter uma pressão de referência que seja a
mais próxima possível de zero. [Saber Eletrônica, 2008]
A SensorTechnics , por exemplo, consegue um “vácuo” com apenas 0,0005 psia
ou 25 militorr, o que é um valor extremamente baixo que serve perfeitamente para as
aplicações comuns, eliminando também eventuais problemas que podem ocorrer quando
um gás vestigial que exista na cavidade muda de temperatura, conforme a lei de Boyle,
que diz que o volume de um gás é inversamente proporcional à sua pressão. [O Estado
Gasoso, UFSC]
No entanto, mesmo havendo uma referência fixa, os circuitos com que operam
esses sensores precisam de ajustes. Esses sensores operam na configuração em Ponte de
Wheatstone. Aplicando-se uma tensão em suas extremidades, a tensão na saída deve ser
ajustada para ser zero quando a pressão externa (medida) também for zero. Na realidade,
mesmo com a pressão nula, há uma tensão offset de saída que precisa ser compensada.
Isso é feito normalmente através do próprio circuito usado na medição, com base em
amplificadores operacionais. Assim, na figura abaixo se vê um circuito amplificador para
um sensor desse tipo que tem recursos de calibração.
Figura 8 - Circuito amplificador para sensores com recurso de calibração.
[Saber Eletrônica, 2008]
Página 24
Como na prática não é possível obter uma pressão nula para efeito de calibração,
utiliza-se de um artifício que melhor pode ser entendido com base no gráfico da figura
abaixo:
Figura 9 - Gráfico para auxiliar a determinar erro de offset. [Saber Eletrônica, 2008]
O que se faz é medir a pressão em dois pontos de valores conhecidos e, através de
um gráfico extrapolar o comportamento do sensor na faixa desejada. Esse gráfico pode
ajudar a determinar o erro de offset e fazer sua compensação. [Saber Eletrônica, 2008]
2.2.4 Microcontrolador
Os microcontroladores são chips inteligentes, que tem um processador, pinos de
entradas/saídas e memória. Através da programação dos microcontroladores pode-se
controlar suas saídas, tendo como referencia as entradas ou um programa interno.
O que diferencia os diversos tipos de microcontroladores são as quantidades de
memória interna (programa e dados), velocidade de processamento, quantidade de pinos
de entrada/saída (I/O), alimentação, periféricos, arquitetura e set de instruções. [SILVA
ZANCO, W.]
O PIC é um circuito integrado produzido pela Microchip Technology Inc. , que
pertence à categoria dos microcontroladores, ou seja, um componente integrado que em
um único dispositivo contem todos os circuitos necessários para realizar um completo
sistema digital programável. O PIC internamente dispõe de todos os dispositivos típicos
de um sistema microprocessado, ou seja:
Página 25
•
Uma CPU (Central Processor Unit ou Unidade de Processamento Central) e sua
finalidade é interpretar as instruções de programa;
•
Uma memória PROM (Programmable Read Only Memory ou Memória
Programável Somente para Leitura) na qual ira memorizar de maneira permanente
as instruções do programa;
•
Uma memória RAM (Random Access Memory ou Memória de Acesso Aleatório),
utilizada para memorizar as variáveis utilizadas pelo programa;
•
Uma serie de LINHAS de I/O (entrada e saída) para controlar dispositivos
externos ou receber pulsos de sensores, chaves, etc. ;
•
Uma serie de dispositivos auxiliares ao funcionamento, ou seja, gerador de clock,
bus, contador, etc.
A presença de todos estes dispositivos em um espaço extremamente pequeno,
permite uma ampla gama de trabalho e enorme vantagem em usar um sistema
microprocessado, onde em pouco tempo e com poucos componentes externos pode-se
fazer o que seria oneroso fazer com circuitos tradicionais. O PIC esta disponível em uma
ampla gama de modelos para melhor adaptar-se as exigências de projetos específicos,
diferenciando-se pelo numero de linha de I/O e pelo conteúdo do dispositivo.
Página 26
3. ESPECIFICAÇÃO
3.1 Análise de Contexto
3.1.1 Descrição do objeto do desenvolvimento
O objeto desenvolvido possui dois módulos autônomos, um no microcomputador,
que realiza a verificação de sonolência no motorista através de processamento gráfico
usando filtros e algoritmos de Hough e PERCLOS. O outro módulo é em um
microcontrolador, este realiza o monitoramento de partes importantes do carro e exibe as
informações em um painel LCD. A comunicação é feita entre os dois módulos para
realização de alertas.
Figura 10 – Módulo de monitoramento veicular.
3.1.2 Definição do sistema
O objetivo do sistema é criar uma solução que possa sanar insuficiências
verificadas no ambiente automotivo. Já existem soluções que realizam o monitoramento
de sonolência em motoristas, porém estes são novos, expansivos e de pouca distribuição
no mercado. Pode-se verificar que na maioria dos carros é realizado um monitoramento
dos sensores abordados pelo sistema, porém raramente a informação é exibida de maneira
clara o suficiente para o entendimento das pessoas não técnicas.
Embora seja um projeto acadêmico, este deve sanar tais insuficiências, podendo
ser facilmente integrado a um computador de bordo mais robusto de qualquer veículo,
Página 27
realizando a verificação do estado do motorista e exibindo de maneira mais clara o estado
de partes vitais do carro, de maneira a prover maior segurança para o tráfego geral.
3.1.3 Descrição das partes componentes e relacionamento
O sistema é autônomo, por sua vez, não há necessidade de integração com outros
sistemas, porém não há impeditivo para que este seja contemplado em um escopo maior
envolvendo segurança veicular.
Os principais elementos do sistema são:
Webcam: Realiza a captação da imagem do condutor do veículo e envia em modo
streaming para o microcomputador.
Microcomputador: Ao receber a imagem, realiza a aplicação de um algoritmo
para a detecção do olho do condutor e verificação do seu percentual de abertura, o tempo
de execução é contabilizado e uma nova imagem é processada da mesma forma. É
verificada a abertura média do olho por minuto, para efetiva verificação de sonolência.
Caso esta seja verificada, é enviado um alarme para o microcontrolador.
Sensoriamento Veicular: Contemplado por sensor de temperatura d’água do
radiador, MAP (Pressão absoluta e temperatura de entrada do ar no motor), rotação da
ventoinha do radiador. Este conjunto permite a fácil verificação do sistema necessário
para o correto e melhor funcionamento do motor em relação à tomada de ar e
refrigeração. Também é verificado o sistema de iluminação do veículo, contemplando
faróis e lanternas.
Microcontrolador: Processa todas as informações adquiridas através dos
sensores. Recebe do microcomputador, informações do estado do condutor. Realiza a
exibição destas no painel LCD. Qualquer situação anormal é alarmada.
Painel LCD: Interligado ao microcontrolador, exibe todas as informações
recebidas e processadas por este, de maneira que o condutor possua um fácil
entendimento das mesmas e como proceder, sem qualquer verificação adicional e
possivelmente não entendível no painel de instrumentos do veículo.
3.1.4 Descrição da interface entre sistemas
A comunicação entre a webcam e o computador é feito por porta USB. Embora a imagem
possa ser trafegada de diversas maneiras, como TWAIN ou WIA, foi verificado, dentre os
Página 28
modos possíveis de implementação, o mais performático e compatível para aquisição da
imagens foi a DLL avicap32.dll.
O microcontrolador recebe as informações dos sensores em suas portas
analógicas. As portas digitais são usadas para comunicação com o painel LCD, para
emissão de alarme sonoro e comunicação com o microcomputador. Esta é feita com
interfaceamento USB <-> Serial. O microcomputador envia as informações por uma porta
USB e através do kit de interfaceamento USB <-> Serial a venda na Universidade
Positivo. Já o microcontrolador recebe a informação em interface Serial.
3.1.5 Descrição de condições restritivas
3.1.5.1 Restrição de custos;
Não há restrição de custos imposta pela universidade, porém há a restrição de
recursos financeiros para o desenvolvimento do projeto.
3.1.5.2 Restrição de recursos;
Os recursos humanos são limitados ao trabalho dos dois alunos, sendo
aproximadamente 80 dias de possível trabalho por aluno. A restrição de recursos
financeiros é limitada pelo salário dos alunos, pois não há qualquer patrocínio ou
custeamento adicional para o desenvolvimento do projeto. A restrição de materiais se
aplica à disponibilidade de equipamentos dispostos na Universidade Positivo, ao uso dos
computadores pessoais dos alunos, da webcam, dos equipamentos, microcontrolador e
sensores a serem adquiridos.
3.1.5.3 Restrição de prazos de entregas;
02/03/09 - Entrega das propostas do TCC para avaliação do colegiado.
23/03/09 - Entrega das especificações técnicas do TCC aprovado.
13/04/09 - Entrega da etapa de projeto do TCC.
18/05/09 - Apresentação e defesa parcial.
15/06/09 - Apresentação da etapa da Implementação Parcial do TCC e do artigo
técnico.
24/08/09 - Qualificação do TCC com a apresentação do projeto implementado.
09/11/09 - Entrega da documentação.
Página 29
30/11/09 - Apresentação dos TCCs na Mostra dos Projetos.
02/12/09 - Defesa formal dos projetos, com apresentação oral para a banca
examinadora.
14/12/09 - Entrega da documentação.
3.1.5.4 Condições ambientais;
Não deve ocorrer muita vibração na webcam ou microcomputador para correta
aquisição da imagem e funcionamento do sistema. O microcontrolador e os dispositivos
eletrônicos que fazem parte do seu módulo operam em temperatura entre -40C e 80C, as
condições de temperatura são mais restritivas quanto ao microcomputador, possuindo
uma faixa de operação menor do que ao módulo do microcontrolador, porém não
especificada. A umidade para o microcomputador e microcontrolador, assim como seus
componentes, não deve ultrapassar a umidade relativa do ar no momento de
funcionamento.
Como o sistema não é blindado, espera-se que o seu funcionamento seja no
interior veicular. Existe a exceção dos sensores que possuem características próprias para
abordar tomada de ar do motor, temperatura d’água em um radiador, assim como a
ventoinha do mesmo. Estes suportam condições mais agressivas, porém limitadas ao
meio veicular, não devendo ser aplicados ao meio industrial ou similar.
3.1.5.5 Condições mecânicas;
Não há condições mecânicas restritivas que não sejam abordadas nas condições
ambientais.
3.1.5.6 Condições de energização;
Para apresentação, o microcomputador deve ter sua fonte energizada em
alimentação de corrente alternada de 50Hz ou 60Hz, com a tensão em um nível entre
100V e 240V. A webcam é energizada através da porta USB do computador. Uma
alimentação na saída veicular de 12V também é possível, porém não é utilizada para
desenvolvimento do projeto.
O microcontrolador é energizado com 5V em corrente contínua, a alimentação dos
sensores varia entre 5V e 12V em corrente contínua.
Página 30
3.1.5.7 Condições tecnológicas;
Os limites tecnológicos são aplicados ao tamanho da imagem a ser processada (até
1,3MP) capacidade de processamento do computador (Intel Core 2 Duo T8100 –
2.1GHz), a exibição de informações no painel LCD de duas linhas, a quantidade de portas
analógicas do microcontrolador.
3.1.5.8 Condições de interferência eletromagnética;
Não temos como mensurar ruídos eletromagnéticos impostos ao sistema, porém
esses não devem prejudicar o funcionamento do mesmo, visto os sensores veiculares
estarem preparados a este ambiente e aos demais módulos possuírem seu funcionamento
no interior do veículo.
3.1.5.9 Condições de interferência elétrica.
Visto a sensibilidade dos componentes, ao fato de possuírem fonte de alimentação
única de 12V com redução para 5V e ao sistema ser uma solução stand-alone, não deve
haver interferência elétrica, caso haja, um filtro deve ser confeccionado.
3.1.6 Descrição dos benefícios esperados
3.1.6.1 Benefícios econômicos;
As soluções presentes no mercado para detecção de sonolência em motoristas são
importadas e onerosas, verifica-se também, uma apresentação de sensoriamento em
computadores de bordo presente apenas em veículos de alto valor. O projeto prevê
fornecer uma alternativa que supra tais necessidades a um valor inferior ao do mercado.
3.1.6.2 Benefícios operacionais;
O que se verifica é que muitos usuários de veículos não sabem o que fazer ou o
que significa quando uma luz diferente se acende no painel de instrumentos, muitos
inclusive não sabem a que temperatura deve operar a água do radiador ou o quanto seria
muito quente no seu indicador para tomar alguma ação. Há uma maior facilidade de
condutores para verificar o estado de saúde de seu automóvel, pois os dados são
apresentados de maneira escrita no painel LCD.
Página 31
3.1.6.3 Benefícios estratégicos;
Aumentar a segurança na condução de veículos, tanto pela verificação de partes
fundamentais para o correto funcionamento do motor, iluminação do carro e estado de
sonolência do motorista.
3.1.7 Descrição dos impactos esperados
3.1.7.1 Impactos sociais;
Com o aumento na segurança veicular, o que se espera é uma redução no número
de acidentes que possam ser causados por mau funcionamento do veículo e seu sistema
de iluminação, assim como acidentes causados pela sonolência em condutores, fato que é
altamente verificado e principalmente em caminhoneiros.
3.2. Análise Funcional
3.2.1 Funções de comunicação
Por ser uma solução stand-alone, este sistema não necessita de comunicação com
outros, embora seja possível em um escopo maior.
A comunicação entre webcam e microcomputador, microcontrolador com display
e sensores, é intrínseca a cada módulo (microcomputador e microcontrolador). A
principal função de comunicação está entre os dois módulos, onde deve haver a sincronia
entre estes para envio dos dados pelo microcomputador e correto recebimento pelo
microcontrolador.
Esta comunicação é feita utilizando a porta USB do microcomputador e o
microcontrolador recebe as informações como em uma interface serial. Para isto é
utilizado um conversor USB <-> Serial. A comunicação serve para que o estado do
motorista seja comumente enviado ao microcontrolador, este pode ser apresentado no
display LCD caso o usuário deseje. A partir do recebimento desta informação o
microcontrolador pode executar funções de controle automático caso o motorista não
esteja presente na captura executada pelo microcomputador ou não esteja alerta.
Página 32
3.2.2 Funções de processamento de informação
Módulo do Microcomputador – A partir do recebimento da imagem do condutor,
inicia o processamento da mesma, nos seguintes passos:
01 – Conversão para níveis de cinza para desenvolvimento de um único
histograma.
02 – Suavização da imagem através do filtro passa-baixa para atenuar
imperfeições.
03 – Aplicação do operador Sobel para binarização da imagem a fim de detectar
as bordas da mesma.
04 – Tratamento e segmentação da imagem.
04 – Aplicação da transformada de Hough para círculos nos olhos.
05 – Cálculo da abertura dos olhos abertos, baseando-se no tamanho normal de
abertura das pálpebras e comparando com o tamanho atual.
06 – Cálculo de PERCLOS. Verifica a média de abertura dos olhos no último
minuto, caso esta esteja abaixo de 80%, pode-se averiguar a sonolência.
07 – Envio do estado atual para o microcontrolador.
Módulo do Microcontrolador – Recebe as informações dos sensores e
microcomputador, exibe as mesmas no display LCD e emite alarmes quando necessário,
como é um algoritmo que executa a coleta de informação dos sensores e
microcomputador, não há uma ordem definida de passos.
01 – A informação de cada sensor é um nível de tensão em uma porta analógica.
02 – Conversão AD para transformar o nível de tensão em uma informação como
Graus Celsius d’água, RPM da ventoinha do radiador, faróis em funcionamento,
temperatura e pressão do ar entrante no motor.
03 – A informação recebida pelo computador é em uma porta digital e já esta préprocessada.
04 – Exibição das informações no display LCD.
05 – Emissão de alarme caso necessário.
Página 33
3.2.3 Funções de controle automático
Caso seja detectada uma irregularidade em qualquer parte do sensoriamento ou no
estado do motorista, é emitido um alarme sonoro, a irregularidade é apresentada no
display LCD. Este controle independe do motorista ou qualquer configuração que o
mesmo possa realizar no microcontrolador. É verificado se o microcontrolador deve
tomar decisões mais críticas em caso de sonolência.
3.2.4 Funções de interface homem/máquina
No projeto acadêmico, a interface do programa no microcomputador esta
disponível para configuração e averiguação do processo. Porém em uma solução
comercial, esta seria transparente para o condutor, sendo um processo batch, que embora
rode no microcomputador, seria embarcado na solução automobilística.
O usuário dispõe de um botão para selecionar a informação que deseja exibir no
display LCD.
3.2.5 Funções de aquisição de dados
A aquisição da imagem pode ser feita via WIA, TWAIN, Directx ou até mesmo
desenvolvimento direto de software ou drivers para captura. O método utilizado no
projeto foi a DLL avicap32.
A aquisição dos valores de tensão dos sensores se dá nas portas analógicas do
microcontrolador. Este nível de tensão passa por um conversor AD e tabela para
averiguação de valores e processamento da informação.
3.2.6 Funções de atuação
Para garantir a segurança, não é permitido ao usuário atuar diretamente no
processo, a atuação é feita pelo microcontrolador como controle automático.
3.3 Análise de Requisitos
a) Funcionalidade: O sistema apresenta os resultados da análise do processamento das
imagens e verificação dos sensores no display de LCD, o microcomputador pode ou não
enviar a informação de sonolência detectada, o microcontrolador se encarrega de gerar o
alarme para o usuário em caso ser detectada sonolência. O sistema funciona em
condições ideais, ou seja, sem interferências eletromagnéticas, elétricas ou ambientais. O
Sistema é capaz de fazer o processamento de imagens com condições mínimas de
Página 34
iluminação do ambiente onde seja possível fazer a detecção dos olhos e medição de sua
abertura perfeitamente. O sistema é uma solução fechada e não permite que o usuário
acesse acidentalmente ou deliberadamente seu software, o hardware pode ser acessado
para ocasionais substituições, seu detalhamento é escrito no manual do usuário.
b) Confiabilidade: Em caso de falha na captura de alguns frames no módulo do
microcomputador, o sistema pode levar até um minuto para recuperar suas estatísticas e
precisão de resultado. O incorreto funcionamento de um sensor pode ser verificado em
comparação com seu valor ideal de funcionamento e sua curva de resposta, caso haja o
não funcionamento de um destes, é verificada a ausência de resposta, em ambos os casos,
sua verificação para manutenção e possível substituição é recomendada.
c) Usabilidade: A solução deve ser de fácil uso para qualquer usuário, o módulo do
microcomputador pode requerer alguma configuração na posição da webcam e/ou
software. O módulo do microcontrolador não exige configurações do usuário. Com a
disponibilidade e leitura do manual, a solução tem alta inteligibilidade, devendo ser de
simples
entendimento.
Após
configuração
do
software
e/ou
webcam
no
microcomputador, o usuário pode também fazer uso de um botão para selecionar no
microcontrolador a informação que desejar exibir no display LCD.
d) Eficiência: O tempo de resposta do microcomputador é suficiente para correto e
preciso processamento da taxa de PERCLOS, quanto mais frames processados em um
minuto, mais preciso é o resultado deste índice e melhor é a eficiência deste módulo. O
tempo de resposta do microcontrolador para os sensores está diretamente ligado ao tempo
de resposta de cada sensor. A solução como um todo funciona em tempo hábil para que
se evite um possível acidente ou dano permanente ao veículo. Como o número de
recursos utilizados definido, o desempenho é estável para estes, alterações no número de
sensores (caso haja disponibilidade de portas no microcontrolador) não deve alterar o
desempenho da solução.
e) Mantenibilidade: Neste projeto, existem quatro mudanças majoritárias que podem ser
realizadas, são estas, mudança de webcam, mudança de microcomputador, mudança de
sensores. Todas poderão requerer alguma alteração de software ou firmware nos
respectivos módulos.
- Mudança de Webcam: Caso se opte por webcam de igual resolução e
desempenho (frames por segundo) similar, com correta instalação dos drivers no
Página 35
ambiente, não se tem necessidade de alterações do software no microcomputador. Caso a
nova webcam sofra discrepância nos parâmetros ou desempenho, pode ser requerida
alteração em qualquer classe do software do microcomputador.
- Mudança de Microcomputador: Deve ser utilizado outro microcomputador com
Windows XP ou superior e com pelo menos duas portas USB (Webcam + comunicação
com o módulo microcontrolador). Se o computador possuir performance similar ou
superior, não é necessária qualquer alteração. Caso se note uma redução na performance e
resultados obtidos, mudanças no software serão requeridas.
- Mudança de Sensores: O projeto é portável para qualquer tipo de sensor,
entretanto, as interfaces de acoplamento dos sensores no microcontrolador deverão ter
seus dispositivos recalculados e possivelmente substituídos. A curva de resposta dos
sensores para conversão AD também deverão ser refeitas.
f) Portabilidade: O módulo do microcomputador é desenvolvido em C# e deve ser
portável para qualquer microcomputador utilizando Windows XP ou superior.
Inicialmente, a escolha por outra webcam que tenha seus drivers corretamente instalados
não deve impactar na capacidade de captura da imagem. Porém a performance pode ser
afetada dependendo da configuração de cada máquina, caso isto ocorra, uma revisão deve
ser efetuada.
O módulo do microcontrolador é desenvolvido em C para microcontroladores da família
DSPIC, o código deve servir para qualquer microcontrolador desta família que contenha a
mesma quantidade de portas analógicas e digitais. Caso se deseje utilizar outros sensores,
sua curva de resposta deve ser adaptada para conversão analógico/digital.
3.4 Análise de Alternativas
Alternativas no módulo do microcomputador:
Mudança de webcam: Possuindo a correta instalação dos drivers em sistemas
operacionais Windows XP ou superior, pode ser realizada uma mudança na webcam.
Deve-se procurar utilizar uma webcam de mesma resolução. Alterações de software
podem ser requeridas para correto funcionamento.
Mudança de microcomputador: Pode ser substituído por outro que possua ao
menos duas portas USB e utilize Windows XP ou superior, entretanto é recomendado o
uso de um computador com configuração e performance similar para que o desempenho
Página 36
do software não seja prejudicado. Caso se verifique que o software não esteja
correspondendo corretamente, alterações podem ser necessárias.
Alternativas no módulo do microcontrolador:
Mudança nos Sensores: Pode-se adaptar a solução para outros sensores, os
dispositivos que realizam a interface entre os sensores e o microcontrolador deverão ser
recalculados caso se deseje realizar mudança no modelo dos sensores. A curva de valores
para conversão AD também devem ser refeita.
Página 37
4. IMPLEMENTAÇÃO
A seguir é tratada a implementação do projeto, onde é descrito o princípio de
funcionamento do sistema como um todo, descrevendo alguns dos requisitos iniciais para
a completude do projeto, como por exemplo, as tecnologias envolvidas na captura das
imagens do motorista, processamento destas imagens para detecção de sonolência, leitura
de informações como temperatura do sistema de refrigeração do motor e sistema de
iluminação do veículo.
4.1 Descrição
O
projeto
desenvolvido
possui
dois
módulos
autônomos,
um
no
microcomputador, que realiza a verificação de sonolência no motorista através da captura
de imagens de uma webcam, processamento gráfico usando filtro passa baixa, aplicação
do operador Sobel, transformada de Hough e processamento de PERCLOS. O outro
módulo é em um microcontrolador, este realiza o monitoramento de partes importantes
do carro e exibirá as informações em um painel LCD. A comunicação é entre os dois
módulos para realização de alertas.
Painel LCD
Webcam
Microcontrolador
(Projeto de hardware)
Microcomputador
Desenvolvimento
em C para monitoramento
de sinais sensoriais,
disparo de alarmes e
envio de informações
para painel LCD.
Desenvolvimento de
aplicativo em linguagem
C# para captura através
da webcam, processamento
do estado do condutor e
envio das informações
para o microcontrolador.
Sensores Veiculares
Figura 11 - Representação Gráfica do Projeto.
Página 38
Figura 11 - Diagrama de Arquitetura do Projeto.
Página 39
4.2 Descrição do Software
4.2.1 Ambiente de Desenvolvimento
O software foi desenvolvido em linguagem C#, utilizando um código estruturado
em classes e camadas, buscando seguir a modelagem em UML para que se possa dar uma
posterior manutenção a cada bloco do projeto sem necessária alteração em todo o projeto.
Para este desenvolvimento foi utilizado o Visual Studio 2008 no sistema operacional
Windows Vista. Foi escolhida esta linguagem e ambiente pela facilidade de
desenvolvimento e quantidade de recursos disponibilizados para esta aplicação,
bibliotecas e classes do próprio Visual Studio mostraram suprir a demanda de
interfaceamento com a webcam e microcontrolador.
4.2.2 Interface do Software
O sistema final não possui interação constante com o usuário, embora haja uma
interface com o mesmo, nesta é realizada uma calibração da câmera e do software para o
condutor. A calibração da câmera consiste em exibir a imagem que a mesma está
captando, realizar seu ajuste de posição, foco, configuração para captura automática de
face. Após a configuração da câmera, deve-se calibrar o software, para a parametrização
de variáveis usadas pelo mesmo, verificando se a tolerância para captação de bordas no
operador Sobel é suficiente e adequada para o condutor, obtendo corretamente o contorno
dos olhos, sem exibir características faciais mais suaves que este contorno. Para isto o
software tem a tolerância configurável e exibe a imagem após o processamento do
operador Sobel. Finalizando a configuração de Sobel, deve-se validar a transformada de
Hough para obtenção dos círculos referentes às pupilas, inicialmente a mesma busca o
raio para detecção correta dos círculos, com este raio parametrizado, não deve haver
grande variação do mesmo quando estiver sendo realizado o processamento em produção.
Por fim, dever ser coletadas imagens do condutor com os olhos abertos e fechados, para
se finalizar a calibração de todas as variáveis, pois o sistema tem o percentual de frames
calculado com base na quantidade de pixels da pupila expostos e não cobertos pela
pálpebra. Com o fim da calibração, o software entra em modo de produção e não há mais
interação com o usuário. Situações anormais podem ser alarmadas por ambos os
módulos.
Página 40
Figura 13 – Interface do software.
Página 41
4.2.3 Diagrama de Classes
Form1
Form2
-timer1
-timer2
-picturebox1
-SerialPort : Serial
-formGraphics
-HoughCircleImage
-circleTransform : HoughCircleTransformation
-leftside : int
-rightside : int
-eyebrows : int
-contpixels : int
-posleftmatrix[] : int
-posrightmatrix[] : int
-alarm1 : float
-alarm2 : float
-boxwidth : int
-boxheight : int
-eyebrowsdist : int
-leftsidedist : int
-rightsidedist : int
-mode : int
-houghthreshold : int
+Process()
-facialMeasures()
-searchForEyes()
-DrawLine()
-DrawRectangle()
+SetConfig()
-timer1_Tick()
-timer2_Tick()
HoughCircleTransformation
-radiusToDetect : int
-houghshow : string
-houghthreshold : int
+houghmap[,] : short
-maxMapIntensity : short
+contSobelY[] : short
+contSobelX[] : short
-width : int
-height : int
-localPeakRadius : int
-minCircleIntensity : short
-circles
+MinCircleIntensity() : short
+LocakPeakRadius() : int
+MaxIntensity() : short
+HoughCircleTransformation()
+setRadius()
+setShow()
+CirclesCount() : int
+ProcessImage()
+ToBitmap() : <não especificado>
+GetMostIntensiveCircles[]() : HoughCircle
+GetCirclesByRelativeIntensity[]() : HoughCircle
+CollectCircles()
+DrawHoughCircle()
+SetHoughÑirclePoints()
+SetHoughPoint()
-pictureBox1
-startButton
-stopButton
-ApplyButton
-SetupButton
-comboBox
-WebcamCapture1 : WebcamCapture
-Pre_Process : PreProcess
-ProcessForm : Form2
-Setup : Form3
-startButton_Click()
-stopButton_Click()
-setupButton_Click()
-applyButton_Click()
-WebcamCapture1_ImageCaptured()
Serial
-SerialPort
+Serial()
+open()
+close()
+write()
+read()
PreProcess
-NewImage
+oldbytes[,] : float
+newbytes[,] : float
+Data
+threshold : int
+lowpasspoint : float
+PreProcess()
+GetImageData()
+LowPassFilter()
+SobelOperator()
+SetImageData()
+SetConfig()
Form3
WebcamCapture
+lowpass : float
+sobel : int
+hough : int
+boxwidth : int
+boxheight : int
+eyebrowsdist : int
+leftsidedist : int
+rightsidedist : int
+eyeradius : int
+eyealarm : int
+attention : int
+mode : string
+houghmap : string
-DefaultButton
-OpenButton
-SaveButton
-radioButton1
-radioButton2
-radioButton3
-radioButton4
-radioButton1_CheckedChanged()
-radioButton2_CheckedChanged()
-radioButton3_CheckedChanged()
-radioButton4_CheckedChanged()
-DefaultButton_Click()
-OpenButton_Click()
-SaveButton_Click()
+GetConfig()
-UserControl : int
-timer1 : int
-m_TimeToCapture : int
-m_Width : int
-m_Height : int
-mCapHwnd : int
-m_FrameNumber : ulong
-x : WebcamEventArgs
-tempObj
-bStopped : bool
+Start()
+Stop()
-timer1_Tick()
WebcamEventArgs
-m_Image
-m_FrameNumber
+WebcamEventArgs()
+WebcamImage() : <não especificado>
+FrameNumber() : ulong
HoughCircle
+X : int
+Y : int
+Radius : int
+Intensity : short
+RelativeIntensity : double
+HoughCircle()
+CompareTo() : int
Figura 14 - Diagrama de Classes do Software.
Página 42
4.2.4 Modelo Lógico
O modelo visa descrever a inserção do software no contexto geral do projeto,
utilizando um fluxo de dados e um fluxograma, mostra o funcionamento do sistema com
a aquisição das imagens geradas pela webcam, processamento pelo microcomputador e
envio de alarmes para o microcontrolador. As informações serão enviadas para o
microcontrolador utilizando protocolo RS-232 em uma porta serial.
Figura 15 - Fluxo de Dados do Software em Produção.
O fluxo de dados acima mostra o passo a passo realizado pelo software em
produção, o mesmo realiza a captura da imagem da webcam, aplica um filtro de média
(passa baixa) para remoção de ruídos na imagem capturada, já transformando a mesma de
Página 43
colorida para níveis de cinza. Nesta nova imagem é aplicado o operador Sobel para
detecção de bordas, a imagem é segmenta para aplicação da transformada de Hough e
com a mesma é feito a detecção dos círculos referentes aos olhos, com PERCLOS é
realizado a contagem dos pixels referentes à abertura dos olhos e verificado o percentual
de abertura dos olhos no decorrer do tempo, se contestado que o motorista está com os
olhos fechados por mais de 20% do tempo, para uma média estabelecida, é atestada a
sonolência do mesmo e um alarme é enviado ao microcontrolador. Este funcionamento é
demonstrado abaixo no fluxograma do software.
Figura 16 – Fluxograma do Software.
O fluxograma demonstrado acima, sendo este do software que irá realizar a
captura, o processamento de imagens e emissão de alarmes para o microcontrolador,
apresenta o funcionamento do algoritmo que deve receber a imagem da câmera, em
seguida é realizado o processamento da imagem, com aplicação do filtro Passa Baixa,
Operador Sobel, Transformada de Hough e cálculo de PERCLOS, caso PERCLOS
verifique a sonolência em médias estabelecidas, é enviado um alarme para o
Página 44
microcontrolador. No tempo estabelecido, o contador é zerado para estabelecer uma
nova média.
4.3 Especificações de Hardware
Este projeto contará com uma parte de hardware necessária para a aquisição dos
dados utilizados para o monitoramento veicular. O funcionamento principal baseia-se em
um processamento das entradas envolvidas, que são analisadas de forma a prever
problemas no bom funcionamento do veículo.
4.3.1 Sensor de temperatura
Foi utilizado um sensor de temperatura veicular da Bosch, modelo 0 281 002 170,
que suporta leituras de temperatura de -40ºC à 150ºC, suficientes para detectar problemas
de refrigeração do motor. Há diversas alternativas de sensores utilizados por diversos
fabricantes de motores que tem como fim a mesma funcionalidade.
O elemento do sensor de temperatura é um NTC (Negative Temperature
Coefficient), é um resistor compreendido de óxidos metais com um misto de cristais
oxidados. Esta mistura produz uma síntese de compressão adicionando agentes
catalisadores. Para aplicações automotivas, os NTCs são encapsulados por uma capa
protetora. Este sensor, se exposto a uma temperatura externa, perde sua resistência
drasticamente e com a tensão de entrada constante sua corrente sobe rapidamente. Foi
utilizado desta propriedade para a medição de temperatura da água do radiador do
veículo.
Este sensor esta interligado com o microcontrolador através das portas analógicas
do mesmo, o qual analisa a variação de tensão na saída do sensor, convertendo o valor
recebido para um sinal digital, conforme a curva de respostas do sensor (abaixo),
fornecido pelo fabricante.
Página 45
Figura 17 – Curva de Resposta do Sensor de Temperatura. [Bosch Motorsport, 2008]
O sensor de temperatura está localizado na carcaça termostática dos motores
veiculares, conforme figura abaixo. O mesmo modelo de sensor é utilizado também para
medir a temperatura do combustível que retorna para o tanque.
Figura 18 – Esquemático 3D do sensor de temperatura. [MWM International, 2008]
4.3.2 Sensor de rotação da ventoinha do radiador.
Sensor responsável para verificar se o sistema de refrigeração forçada do motor
está funcionando, informando a rotação da hélice do mesmo. Foi utilizado o pino que
Página 46
regula a rotação da hélice para determinar a rotação da mesma, o qual quando estiver em
baixa rotação esta com uma resistência elevada, diminuindo a mesma à medida que a
rotação aumenta. Foi levantado a curva de resposta da ventoinha, utilizando um
Tacômetro digital modelo MDT-2245 do fabricante Minipa disponível para uso de alunos
na Universidade Positivo.
Este pino esta interligado com o microcontrolador através das portas analógicas
do mesmo, o qual analisa a variação de tensão na saída do sensor, convertendo o valor
recebido para um sinal digital, conforme a curva de respostas que é levantado.
4.3.3 Sensor MAP
Este sensor é responsável pelas informações de pressão e temperatura do ar
admitido pelo motor. Foi utilizado um sensor da Bosch, modelo 0 261 230 099, que
suporta leituras de 0,1 bar a 1.15 bar, suficientes para suportar a variação de pressão da
admissão de ar de um motor não esportivo. Existem diversas alternativas de sensores
utilizados por diversos fabricantes de motores, que tem como fim a mesma finalidade.
Abaixo a figura ilustra um sensor MAP.
Figura 19 – Sensor MAP. [Bosch, 2002]
Página 47
O elemento piezoresistivo do sensor de pressão e o circuito eletrônico adequado
para amplificação de sinal e compensação de temperatura são montados em um chip de
silício. A leitura da pressão é feita na superfície do diafragma. Há um encapsulamento de
vácuo entre as laterais e a traseira da base de vidro, que é utilizado como referência.
Graças a um revestimento especial, tanto o sensor de pressão quanto ao sensor de
temperatura, não são sensíveis a gases e líquidos que estão presentes no coletor de
admissão do motor.
Figura 20 – Visão Interna do Sensor MAP. [Bosch, 2002]
A figura acima ilustra uma vista seccional do sensor, onde na célula do sensor há:
1. Uma proteção de gel
2. Diafragma
3. Chip do sensor
4. Conexão entre o sensor e o extrato de cerâmica
5. Extrato de cerâmica
6. Base de vidro
Na célula de pressão existe:
1. Pino de conexão
2. Capa de proteção
3. Chip do sensor
4. Extrato de cerâmica
Página 48
5. Encapsulamento do sensor de pressão
6. Bucha de vedação
7. Elemento NTC
Este sensor esta interligado com o microcontrolador através das portas analógicas
do mesmo, o qual analisa a variação de tensão na saída do sensor, convertendo o valor
recebido para um sinal digital, conforme a curva de respostas do sensor (abaixo),
fornecido pelo fabricante.
Figura 21 – Curvas de Resposta do Sensor MAP. [Bosch, 2002]
4.3.4 Sensor de Iluminação Veicular
Foi montado um circuito que informa o microcontrolador se o sistema de
iluminação do veículo está funcionando, se existe alguma lâmpada queimada. Este
circuito analisa a corrente drenada pelas lâmpadas e informa o microcontrolador quando a
mesma não estiver consumindo energia. A figura abaixo ilustra o circuito esquemático.
Página 49
Figura 22 – Circuito de funcionamento das lâmpadas.
O circuito acima é baseado no principio de funcionamento de um galvanômetro,
onde foi colocada uma resistência pequena chamada de “shunt”, que é suficientemente
pequena para não interferir na medida desejada. Assim a tensão em R1 varia conforme as
luzes do veículo são ligadas e com esta variação pode-se concluir que existe alguma
lâmpada queimada.
4.3.5 PIC
O microcontrolador utilizado é o modelo DSPIC30F4011 da microchip, que tem
portas analógicas suficientes para análise dos sensores descritos acima que são utilizados
neste projeto. Uma alternativa de microcontrolador seria o modelo PIC24H da microchip
que também oferece a mesma quantidade de portas analógicas necessárias. Este
microcontrolador recebe as informações dos sensores e do microcomputador, analisa as
mesmas e reporta estas informações ao motorista através de painel de LCD. Informações
críticas serão geradas alarmes chamando a atenção do condutor e passageiros.
4.3.6 Modelo Lógico
Nesta fase são apresentadas as técnicas que foram selecionadas para o
desenvolvimento do projeto de hardware. São descritos os conceitos e apresentados
esquemáticos dos circuitos que são necessários na fase de implementação. Descrevendo o
funcionamento do sistema de aquisição das informações geradas pelos sensores e pelo
microcomputador. As informações dos sensores são enviadas de forma analógica ao
microcontrolador e as informações do processamento das imagens feitas pelo
microcomputador são enviadas ao microcontrolador utilizando um protocolo RS-232.
Página 50
Inicio
Não
Selecionar a
opçao de
leitura
Sim
Imprimir a leitura de
temperatura do Motor no
Painel de LCD
Sim
Selecionar
Temperatura
do Motor
Leitura do sensor de
temperatura
Não
Leitura do sensor de
rotação da ventoinha do
radiador
Imprimir a leitura de rotaçao
da ventoinha do radiador no
Painel de LCD
Sim
Leitura do Sensor MAP
Selecionar
Rotaçao da
ventoinha do
radiador
Não
Imprimir a leitura do sensor
Mapi no Painel de LCD
Processamento dos
dados
Sim
Gerar alarme no Painel de
LCD.
Detectado
alguma
anomalia
Selecionar
Sensor MAP
Não
Sim
Sim
Não
Sistema de
Iluminação
Ligado
Não
Sim
Detectado
alguma
anomalia
Não
Figura 23 – Fluxograma de Hardware.
Página 51
O fluxograma acima demonstra o funcionamento do sistema que monitora os
sensores responsáveis por informar o bom funcionamento do veículo. Abaixo cada etapa
é detalhada:
Selecionar opção de leitura: o usuário do sistema pode selecionar uma opção de leitura
a qualquer momento. Enquanto o mesmo não ocorrer, o sistema considera como “não” a
opção de seleção, prosseguindo para a próxima tarefa. Se for selecionado, outra opção
aparece no display.
Selecionar Temperatura do Motor: esta opção aparece disponível somente se o usuário
selecionar a opção descrita como “Selecionar opção de leitura”. Esta opção fica
disponível até o momento em que esta seja selecionada, é gerado a impressão do valor da
leitura do sensor de temperatura.
Selecionar Rotação da Ventoinha do Radiador: esta opção aparece disponível somente
se o usuário selecionar a opção descrita como “Selecionar opção de leitura”. Esta opção
fica disponível até o momento em que esta seja selecionada, é gerado a impressão do
valor da rotação da ventoinha do radiador.
Selecionar Sensor MAP: esta opção aparece disponível somente se o usuário selecionar
a opção descrita como “Selecionar opção de leitura”. Esta opção fica disponível até o
momento em que esta seja selecionada, é gerado a impressão do valor da temperatura do
coletor da admissão e da pressão do mesmo.
Leitura do Sensor de Temperatura: esta opção aparece disponível somente se o usuário
selecionar a opção descrita como “Selecionar opção de leitura”. Esta opção fica
disponível até o momento em que esta seja selecionada, é gerado a impressão do valor da
temperatura do motor.
Leitura do Sensor de Rotação da Ventoinha do Radiador: esta função faz a leitura do
sensor de rotação da ventoinha do radiador no instante em que for executada. Esta função
é executada logo após a execução da função de leitura dos sensores. Estes dados ficam
armazenadas até a leitura do último sensor para que seja feito o processamento dos dados
para análise de possíveis problemas.
Leitura do Sensor MAP: esta função faz a leitura do sensor de pressão absoluta no
instante em que for executada. Esta função é executada logo após a execução da função
de leitura dos sensores. Estes dados ficam armazenadas até a leitura do último sensor para
que seja feito o processamento dos dados para análise de possíveis problemas.
Página 52
Processamento dos Dados: esta função faz o processamento dos dados coletados nas
leituras descritas acima, onde é feito uma classificação de cada dado coletado como
sendo normal e crítico, baseado nas necessidades existentes em cada item para o bom
funcionamento do veículo.
Sistema de Iluminação Ligado: esta função verifica se o sistema de iluminação esta
ligado. Se o sistema for detectado como ligado, verifica se as lâmpadas estão
funcionando, e classifica como sistema normal, crítico e faz a chamada para próxima
função. Caso o sistema seja detectado como desligado, o mesmo reinicia o processo de
leitura dos sensores, começando pela função leitura do sensor de temperatura.
Gerar alarme no Painel de LCD: esta função imprime na tela de LCD uma mensagem
classificada pelas funções anteriores como alarme de segurança ou crítica, informando o
que detectou como anomalia com a devida leitura do sensor. Esta mensagem fica
impressa até que o problema seja resolvido.
Página 53
5. VALIDAÇÃO E RESULTADOS
Os testes para a validação de software envolveram diversas etapas, primeiramente,
era necessário possuir uma forma de realizar a aquisição da imagem de forma confiável e
performática, diversas implementações foram testadas. A mais comum era o WIA, porém
não era compatível com a webcam utilizada. Outras tentativas foram testadas, sendo que
duas atenderam as expectativas, DirectX e a DLL avicap32. Ambas se mostraram
performáticas na captura dos frames e não geravam erros ou utilizavam muitos recursos
computacionais. A DLL foi escolhida pela sua simplicidade e alta compatibilidade, a fácil
manutenção do código da mesma foi primordial, pois o programa poderia ser
desenvolvido com ela sem grandes dificuldades quanto ao seu uso e desenvolvimento.
Com o método de captura validado, era necessária a implementação e refinamento
de um filtro-passa baixa e do operador Sobel para detecção de bordas em uma imagem.
Ambos os métodos foram desenvolvidos durante a disciplina de Computação Gráfica do
curso, porém demandou um alto trabalho para realizar o refinamento destes códigos, a
fim de que ficassem enxutos e performáticos. Notou-se uma grande necessidade de
processamento no operador Sobel, visto a convolução que o mesmo realiza para a
detecção de bordas. Após toda a otimização de código possível, observou-se que o
programa ainda não estava atendendo as expectativas de desempenho, sendo que ainda
era preciso realizar o desenvolvimento do Hough, que era sabido por também demandar
alto processamento. Foi escolhido então, por limitar e segmentar a região em que o
operador Sobel atuaria. Após esta segmentação, onde as medidas de largura e altura
tratadas eram pouco mais que metade das anteriores, um grande avanço foi notado sem
que o objetivo do projeto fosse prejudicado. O sujeito de fronte a webcam ainda poderia
se movimentar sem grandes problemas que a porção necessária da imagem para
tratamento e processamento se manteve praticamente inalterada.
Com o software implementado até a porção de pré-processamento, foi necessário
realizar a pesquisa e desenvolvimento da transformada de Hough, embora diversos
conteúdos tenham sido verificados, eles não eram suficientes para desenvolver um
algoritmo da forma que se desejava, para o Hough, foi utilizada a biblioteca de
desenvolvimento “AForge.NET”, apoiada pelo Google. Ela possuí as classes necessárias
para desenvolvimento de algoritmos utilizando-se da transformada de Hough, com tais
Página 54
classes em mãos, foi necessário realizar uma customização e otimização das mesmas para
que atendessem as necessidades do projeto.
Embora inicialmente o Hough e o Sobel se apresentassem bem lentos e
requerendo um alto processamento, através dos testes e otimizações foi possível reduzir a
demanda dos mesmos e deixar o software viável, onde este, para as especificações da
máquina, processava em geral de 3 a 5 frames por segundo.
Com todo o processamento gráfico implementado, ainda foi necessário realizar
um pós processamento, que nada mais era do que uma forma de avaliação de todos os
dados gráficos apresentados. Para este pós-processamento, testes começaram a ser feitos
e as informações avaliadas. Através da verificação de histogramas, configuração e
avaliação de limiares (thresholds), segmentação da imagem e reconhecimento dos
padrões, foi possível fazer com que o software atendesse as propostas iniciais.
Os primeiros testes realizados para validação do hardware foram feitos através de
simulações em um protótipo, onde foi elevada a temperatura da parte sensorial do sensor
de temperatura do motor e do sensor MAP, a fim de calibrar a curva de resposta do
mesmo com a do fabricante. Com isto foi simulado o que pode ser um problema de
superaquecimento de um motor veicular, gerando alarmes de temperatura. Para estes
testes foi utilizada uma resistência para provocar calor nos sensores. Não foram feitos
testes com temperaturas muito elevadas por segurança, devido ao fato de que o sensor
MAP verifica a temperatura do ar no coletor de admissão, e para isto, seria necessário
elevar muito a temperatura da resistência, para que a mesma superaquece-se as
tubulações de metal onde estava o sensor MAP.
Para testar o sensor de pressão, foi utilizada uma tubulação de metal, onde em
uma de suas extremidades havia um compressor de geladeira para sugar o ar, simulando
um coletor de admissão veicular, e a outra extremidade possuía um registro para regular o
vácuo feito. Para validar a curva de resposta do sensor fornecida pelo fabricante, foi
utilizado um vacuômetro para aferir as leituras feitas.
O sensor de rotação foi validado utilizando um tacômetro, o que nos deu uma
aproximação da curva de resposta. Não foi possível fazer uma leitura exata da rotação
devido às características do tacômetro, o qual foi acoplado manualmente na ventoinha, o
que impossibilita de se possuir uma leitura precisa devido a não haver um acoplamento
mecânico perfeito, sem variações de pressão da área de leitura do tacômetro com a
Página 55
ventoinha. Com esta aproximação das leituras foi o suficiente para validar a curva de
resposta do fabricante.
Para o sensor de lâmpada queimada foi feito leituras com as lâmpadas ligadas e
analisar o consumo de corrente pelo conjunto de duas lâmpadas. Sabendo o consumo de
corrente destas quando as mesmas estão ligadas, é possível identificar se uma delas esta
queimada quando este consumo diminui.
Com estes testes foi possível validar o funcionamento do sistema. Abaixo, seguem
as curvas de resposta que foram levantadas e validadas com base nas informações
fornecidas pelos fabricantes.
Temperatura
20ºC
25ºC
30ºC
35ºC
40ºC
45ºC
50ºC
55ºC
60ºC
65ºC
70ºC
75ºC
80ºC
Pressão
0,1 Bar
0,2 Bar
0,3 Bar
0,4 Bar
0,5 Bar
0,6 Bar
0,7 Bar
0,8 Bar
Sensor MAP Temperatura
Resistencia Resistencia Resistencia
1º Leitura
2º Leitura
3º Leitura
2511
2514
2513
2103
2103
2101
1701
1708
1703
1503
1504
1509
1104
1102
1102
952
954
952
853
857
855
698
692
694
577
587
567
484
487
475
432
427
435
389
387
377
330
325
333
Sensor MAP Pressão
Tesão 1º
Tensão 2º
Tensão 3º
Leitura
Leitura
Leitura
1,900
1,909
1,903
1,709
1,700
1,706
1,402
1,409
1,400
1,209
1,202
1,200
0,901
0,907
0,900
0,707
0,700
0,710
0,430
0,400
0,405
0,205
0,200
0,204
Média
Temperatura
2513
2102
1704
1505
1103
953
855
695
577
482
431
384
329
Média
20ºC
25ºC
30ºC
35ºC
40ºC
45ºC
50ºC
55ºC
60ºC
65ºC
70ºC
75ºC
80ºC
Rotaçao
1,904
1,705
1,404
1,204
0,903
0,706
0,412
0,203
2380
2300
2430
2500
2430
2590
2765
2900
3013
Sensor Temperatura
Resistencia Resistencia Resistencia
1º Leitura
2º Leitura
3º Leitura
2433
2430
2427
2108
2106
2101
1700
1702
1709
1490
1499
1497
1099
1097
1090
957
955
954
857
856
855
690
699
698
587
589
590
488
483
487
430
435
455
375
378
380
334
335
332
Sensor de Rotação
Tensão 1º Tensão 2º Tensão 3º
Leitura
Leitura
Leitura
3,67
3,66
3,6
3,86
3,88
3,87
4,03
4,09
4,08
4,25
4,21
4,2
4,32
4,36
4,27
4,45
4,47
4,5
4,65
4,7
4,77
4,87
4,89
4,91
4,95
4,97
4,99
Média
2430
2105
1704
1495
1095
955
856
696
589
486
440
378
334
Média
3,6433
3,8700
4,0667
4,2200
4,3167
4,4733
4,7067
4,8900
4,9700
Figura 24 – Medições das Curvas de Resposta.
Página 56
6. CONCLUSÃO
Embora a solução para detecção de sonolência ainda não esteja amadurecida a
ponto de se tornar um produto comercial, foi considerado um grande avanço poder ter
desenvolvido um protótipo da mesma como trabalho de conclusão de curso.
Comercialmente, se encontra apenas um produto disponível fazendo verificação de
sonolência em motoristas em tempo real, embora de forma mais avançada, utiliza o
mesmo tipo de processamento. Protótipos, também utilizando processamento digital de
imagens, já foram exibidos em feiras automobilísticas e podem ser de grande valia para
empresas de transporte e segurança no trânsito em geral.
Notoriamente, ainda são grandes as possibilidades de amadurecimento desta
solução, a primeira e mais evidente delas é a utilização de uma câmera com
infravermelho, onde problemas relacionados à mudança de luminosidade ambiente
seriam sanados. Outra porção que pode ser implementada é relacionada à parte de visão
computacional, com fluxo óptico, reconhecimento de padrões e distância, assim o
produto pode ser instalado em qualquer veículo e diversos problemas seriam sanados, o
que se verifica é uma solução para a mudança da distância do motorista para a câmera,
raio do olho e mudanças de cenários pelo fato da solução ser instalada em diversos
veículos e estes estarem em movimento por diversos lugares.
Este produto pode ainda ser embarcado, o processamento realizado por um DSP, o
que o torna portátil e passível de ser uma solução final, comercial e viável.
Apesar do ambiente limitado, pelo fato dos testes do hardware de monitoramento
veicular terem sido feitos em um protótipo e não em um automóvel verdadeiro, onde
pode se avaliar melhor situações como ruídos provocados pelo funcionamento do veículo,
pode-se concluir que projeto atende as expectativas inicialmente estabelecidas.
A utilização do DSPIC contribui muito para que seja possível fazer um hardware
mais enxuto e de menor custo, graças a este possuir dentro do mesmo componente
conversores analógico digital, portas de entrada e saída que podem ser utilizadas como
latch de dados, portas de comunicação, memória RAM, e outras que reduzem os custos de
novos circuitos, permitindo um hardware otimizado e pequeno.
A sugestão para melhorias em continuidade ao projeto de hardware seria o
monitoramento de mais dispositivos, como nível de combustível no tanque, nível de óleo
do motor, nível de água do radiador. Para alarmes ter um display maior, onde fosse
Página 57
possível disponibilizar mais informações simultaneamente. Para o alarme de sonolência
especificamente, a possibilidade de interagir com o sistema de injeção eletrônica do
veículo, fazendo com que o mesmo desabilite a aceleração do carro e diminua a injeção
de combustível no motor para que o veículo perca velocidade.
Como um todo, este projeto sendo uma primeira versão não se destina a execução
ainda em um ambiente de produção, porém, como trabalho de conclusão de curso,
apresenta a possibilidade de grandes melhorias na área de segurança veicular, onde carros
mais seguros podem ser feitos sem grande incremento de custo para as montadoras,
apenas um incremento na informação passada ao motorista. Também se nota que
produtos podem ser lançados para deixar o motorista mais alerta, assim como informá-lo
do seu estado atual e atuar diretamente no veículo.
Por fim, a proposta inicial acabou sendo apresentada em sua plenitude, não em um
formato comercial, mas validando todo o conhecimento acadêmico nela aplicado,
mostrando-se um trabalho completo com grande implementação de hardware e software.
Foi de grande valor ter realizado um trabalho ligado diretamente ao ambiente automotivo
e poder se verificar a imensa gama de possibilidades e melhorias que o mesmo apresenta.
O primeiro passo foi dado, basta apenas o interesse em continuar nas melhorias e
diferentes possibilidades de todas as idéias deste projeto para que haja a evolução de toda
a temática abordada.
Página 58
7. REFERÊNCIAS BIBLIOGRÁFICAS
[1] Apostila de Treinamento – MWM International, São Paulo, Outubro de 2008.
Disponível em <http://www.mwm-international.com.br/files/manual/6.pdf>
[2] Temperature Sensor NTC M12-H, Bosch Motorsport, Outubro de 2008. Disponível
em <http://www.bosch-motorsport.de/pdf/sensors/temperature/NTC_M12-H.pdf>
[3] DSPIC30F4011 Datasheet - Microchip Technology, 2005. Disponível em
<http://ww1.microchip.com/downloads/en/devicedoc/70135C.pdf>
[4] PIC24H Family Overview – Microchip Technologies, 2005. Disponível em
<http://ww1.microchip.com/downloads/en/DeviceDoc/70166A.pdf>
[5] STEFFENS, CESAR A. Funcionamento e uso de sensores. Universidade Federal do
Rio
Grande
do
Sul
–
Instituto
de
Física,
Porto
Alegre.
Disponível
em
<http://www.if.ufrgs.br/mpef/mef004/20061/Cesar/>
[6] Datasheet – Bosch Sensors, Robert Bosch GmbH, 2002.
[7] BRAGA, N.. Experiências e Brincadeiras com ELETRÔNICA - Volumes 2(1977),
3(1978), 4(1979), 6(1980),8(l981) e 12(l983). São Paulo: Editora Saber Ltda.
[8] Sensor de Pressão Absoluta no Coletor de Admissão – Injetronic Tecnologia
Automotiva, 2007. Disponível em <http://www.injetronic.com.br/>
[9] Sensores de absolutos de pressão – Saber Eletrônica, Janeiro de 2008. Disponível
em <http://www.sabereletronica.com.br/secoes/leitura/320>
[10] O Estado Gasoso. Universidade Federal de Santa Catarina - Departamento de
Química,
Florianópolis.
Disponível
em
<http://www.qmc.ufsc.br/quimica/pages/aulas/gas_page2.html>
[11] DAWES, C. Curso de Eletrotécnica, Volume I, corrente continua, 18º Edição Editora globo 1979
[12] Levantamento apontando causas de acidentes nas estradas, Polícia Rodoviária
Federal / Departamento Nacional de Infra-Estrutura de Transportes, Dezembro de 2007.
Disponível em <http://www.dnit.gov.br/noticias/prfdiv/>
[13] CHEQUER, J. Seminário Sobre Segurança nas Rodovias. Departamento
nacional de Infra-Estrutura de Transportes – Instituto de Pesquisas Rodoviárias.
Disponível em <http://www.vias-seguras.com/content/download/324/1621/file/
Medidas%20a%20serem%20tomadas%20IPR%202006.ppt>
[14] BARR, L.; HOWART, H.; POPKIN, S.; CARROLL, R..; A Review And
Evaluation Of Emerging Driver Fatigue Detection Measures and Technologies.
Página 59
National Transportation Systems Center, Cambridge. U.S. Department of Transportation,
Washington.
Disponível
em
<http://www.ecse.rpi.edu/~qji/Fatigue/fatigue_report_dot.pdf>
[15] BOROVICKA, J. Circle Detection Using Hough Transforms – Image Processing
and
Computer
March
Vision,
2003.
Disponível
em
<http://linux.fjfi.cvut.cz/~pinus/bristol/imageproc/hw1/report.pdf>
[16] FISHER, R.; PERKINS, S.; WALKER A. WOLFART E. Image Transforms –
Hough
2003.
Transform,
Disponível
em
<http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>
[17] CAMILO FERNANDES, D. Curso dsPIC – Processamento Digital de Sinais LabTools Mosaico Didatic Division.
[18] AMADEU SOUZA, V. Apostila de Programação em C para o dsPIC Fundamentos. Editora Ensino Profissional.
[19] SILVA ZANCO, W. Apostila de Microcontroladores PIC, Técnicas de Software
e Hardware para projetos de Circuitos Eletrônicos. Editora Érica.
[20] PEREIRA, F. Apostila de Microcontroladores, PIC Programação em C. Editora
Érica.
[21] GUIL N.; ZAPATA E. Lower order circle and ellipse Hough transform - Pattern
Recognition, Volume 30, Issue 10, October 1997, Pages 1729-1744.
[22] YING-DONG, Q; CHENG-SONG, C.; SAN-BEN C.; JIN-QUAN L. A fast
subpixel edge detection method using Sobel–Zernike moments operator - Image and
Vision Computing, Volume 23, Issue 1, January 2005, Pages 11-17
[23] CASTLEMAN K. Digital Image Processing. Prentice Hall, 1996.
[24] RHODY, H. Hough Circle Transform. Chester F. Carlson Center for Imaging
Science.
Rochester
Institute
of
Technology,
October
2005.
Disponível
em
<http://www.cis.rit.edu/class/simg782/lectures/lecture_10/lec782_05_10.pdf>
[25] PERCLOS: A Valid Psychophysiological Measure of Alertness As Assessed by
Psychomotor Vigilance, FEDERAL HIGHWAY ADMINISTRATION • OFFICE OF
MOTOR
CARRIERS,
Washington,
1998.
Disponível
em
<
http://www.fmcsa.dot.gov/documents/tb98-006.pdf>
Página 60

Documentos relacionados