Baixe o app para aproveitar ainda mais
Prévia do material em texto
FACULDADE JK UNIDADE II GAMA SISTEMAS DE INFORMAÇÃO KÁSSIA SOUZA DO VALE KENNEDY LIMA DOURADO RONALDO BATISTA BARBOSA ESTUDO DE CASO EM MONITORAMENTO DE VEÍCULOS ROUBADOS Gama-DF 2016 KÁSSIA SOUZA DO VALE KENNEDY LIMA DOURADO RONALDO BATISTA BARBOSA ESTUDO DE CASO EM MONITORAMENTO DE VEÍCULOS ROUBADOS Trabalho de conclusão de curso presentado a Faculdade JK como requisito parcial para obtenção do grau de Bacharel em Sistemas de Informação; Orientadora: Deniz Helena Pereira Abreu Gama-DF 2016 FACULDADE JK GAMA – UNIDADE II Trabalho de Conclusão de Curso – TCC de autoria de Kássia Souza do Vale, Kennedy Lima Dourado, Ronaldo Batista Barbosa , intitulado: ESTUDO DE CASO EM MONITORAMENTO DE VEÍCULOS ROUBADOS, apresentado como requisito parcial para obtenção do grau de Bacharel em Sistemas de Informação, defendido e aprovado em 13/12/2016, pela banca examinadora constituída por: _______________________________________________________________ Prof ª. Deniz Helena Pereira Abreu Professora Orientadora _______________________________________________________________ Prof º. Leonardo Pereira de Castro Examinador _______________________________________________________________ Prof º. Willians Luiz Gomes Examinador RESUMO O Sistema de monitoramento de veículos roubados tem o objetivo de prevenir o furto e roubo de veículos. Mais o número vem aumentando e são poucas chances de recuperação no Distrito Federal. Assim propomos a ideia do uso de tecnologias existentes, em sistema de monitoramento, que seria um dispositivo móvel, que pode ser colocado em painéis de viaturas ou em suporte fixo como um tripé, para assim fazer o monitoramento e verificar qual a situação de cada um, através da identificação da placa de licenciamento, com o intuito de identificar veículos irregulares impossibilitando o tráfego dos mesmos. Assim, diminuindo o índice de roubos no DF. Citamos algumas técnicas como a binarização e erosão, que são técnicas para o processamento de segmentação de imagem, e uma das principais técnicas é o sistema OCR (Reconhecimento Ótico de Carácter). É um sistema eletrônico que permite a identificação automática de veículos através de caracteres de placas de uma forma confiável e segura. Com essas técnicas o sistema de monitoramento se torna mais eficiente sem a necessidade de digitação de placas de cada veículo, evitando perda de tempo e principalmente a atenção dos agentes de fiscalização. Palavras-chave: Veículos, Detecção, Monitoramento. ABSTRACT The Stolen Vehicle Tracking System aims to prevent theft and theft of vehicles. More information on increasing the chances of recovery in the Federal District. Thus we propose an idea of the use of existing technologies, in a monitoring system, which can be a mobile device, which can be placed in vehicle panels or on a fixed support such as a tripod, in order to monitor and verify a situation of each one , Through the identification of the license plate, in order to identify irregular vehicles, making it impossible to traffic them. Thus, reducing the rate of theft not DF. We cite some binarization and erosion techniques, which are techniques for processing image segmentation, and one of the main techniques for the Optical Character Recognition system. It is an electronic system that allows automatic identification of vehicles by means of plate devices in a reliable and safe way. With technical monitoring system techniques it is more efficient without a need to enter plates of each vehicle, avoiding wasted time and especially an attention to surveillance agents. Keywords: Vehicles, Detection, Monitoring LISTA DE FIGURAS Figura 01 - Treinamento do Classificador................................................................10 Figura 02 - Classificador de Placas “Tipo 1”............................................................11 Figura 03 - Binarização..............................................................................................12 Figura 04 - Processo de Erosão................................................................................13 Figura 05 - Coordenadas Limites..............................................................................15 Figura 06 - Modelo de Placa......................................................................................16 Figura 07 - A Arquitetura Java 2 Micro Edition (J2ME) ...........................................21 Figura 08 - Sistema de Banco de Dados. ............………………………...…….........28 Figura 09 - Tela Inicial do Equipamento...................................................................37 Figura 10 - Navegação e Monitoramento.................................................................38 Figura 11 - Localização.............................................................................................39 Figura 12 - Alerta.......................................................................................................39 Figura 13 - Pesquisar.................................................................................................40 Figura 14 - Comando de Voz.....................................................................................40 Figura 15 - Central de Informações...........................................................................41 Figura 16 - Histórico...................................................................................................41 Figura 17 - Mapeamento........................................................................................…42 LISTA DE TABELAS Tabela 01: Largura dos Caracteres ..........................................................................17 Tabela 02 – Acompanhamento Atual……….............................................................36 Tabela 03 – Demonstração Atual..............................................................................37 Tabela 04 – Acompanhamento Pós Sistema............................................................43 Tabela 05 – Demonstrativo Pós Sistema..................................................................43 LISTA DE SIGLAS API - Aplication Program Interface (Interface de Programação de Aplicações) CDC - Connected Devide Configuration (Configuração de Dispositivo Conectado) CLDC - Connected Limited Device Configuration (Configuração de Dispositivo Conectado Limitado) CONTRAN (Conselho Nacional de Trânsito) DCL - Data Control Language (Linguagem de Controle de Dados) DDL - Data Language (Linguagem de Definição de Dados) DML - Data Manipulation Language (Linguagem de Manipulação de Dados) DQL - Data Query Language (Linguagem de Consulta de Dados) JAR - Java Archive (Arquivo Java) JCP - Java Community Proccess JDBC - Java Database Connectivity (Conexão Banco de Dados Java) MVR Stolen Vehicle Monitor (Monitor de Veículos Roubados) OCR - Optical Character Recognition (Reconhecimento Ótico de Caracter) OHA - Open Handset Alliance (Abra a Aliança de Handset) SOM – Auto-Programmable System (Sistema Auto-Programavél) SOM – Self Organizing Maps (Mapa Auto Organizável) SUMÁRIO 1. INTRODUÇÃO.........................................................................................................5 2. OBJETIVOS.............................................................................................................6 2.1 OBJETIVO GERAL.........................................................................................6 2.2 OBJETIVOS ESPECÍFICOS...........................................................................6 3. JUSTIFICATIVA.......................................................................................................7 4. REFERENCIAL TEÓRICO.......................................................................................8 4.1 OCR - Reconhecimento Ótico de Caracter.................................................8 4.1.1 Tecnologia OCR............................................................................9 4.1.2 Construção do Detector de Placas de Veículos.......................... 9 4.1.3 Adaptação do Detector ao Domínio de Placas............................11 4.1.4 Binarização................................................................................. 11 4.1.5 Erosão.........................................................................................12 4.1.6 Segmentação dos Caracteres.....................................................14 4.1.7 Especificações do Contran..........................................................16 4.1.8 Segurança Física e do Ambiente................................................17 4.2 HARDWARE..............................................................................................18 4.2.1 MVR ............................................................................................18 4.2 2 Java..............................................................................................19 4.4.3 A Plataforma Java........................................................................19 4.4.4 Java Virtual Machine....................................................................20 4.2.5 Java 2 Micro Edition (J2ME) .......................................................20 4.2.6 Tecnologia J2ME.........................................................................22 4.2.7 Conexão de Internet.....................................................................22 4.2.8 Conexão WiFi...............................................................................23 4.2.9 GPS..............................................................................................23 4.2.10 Android.......................................................................................25 4.3 SISTEMAS DE BANCO DE DADOS.........................................................27 4.3.1 Banco de Dados MySQL..............................................................28 4.3.2 Conexão com Banco de Dados...................................................29 4.3.3 Manipulação de Banco de Dados................................................29 4.3.4 Linguagem SQL...........................................................................30 4.3.5 SQLite..........................................................................................31 4.3.6 Sinesp Cidadão............................................................................32 5. PROCEDIMENTOS METODOLÓGICOS.............................................................33 5.1 Descrição de Todo o Processo De Pesquisa............................................33 6. ESTUDO DE CASO...............................................................................................34 6.1 Definição de Estudo de Caso....................................................................34 6.2 Levantamento Estatístico..........................................................................36 6.3 Uso da Aplicação Demostrando a Funcionalidade....................................37 6.4 Objetivos do estudos de Caso...................................................................42 7. CONCLUSÃO.........................................................................................................44 8. REFERÊNCIAS BIBLIOGRÁFICAS.......................................................................45 5 1 - INTRODUÇÃO A tecnologia dos sistemas de monitoramento de veículos tem como finalidade observar os registros de atividade de um sistema ou de um equipamento, e verificar a situação de cada veículo. Os primeiros sistemas que foram lançados no Brasil, vieram com o objetivo de prevenir roubos, e também para recuperá-los. O objetivo desse estudo de caso é propor a aplicação de tecnologias existentes e unificá-las para fins de monitoramento de placas de veículos, visando diminuir o índice de furtos e roubos no Distrito Federal. E como esse índice vem só aumentando, torna o sistema de monitoramento de tamanha importância, pois a preocupação da população com a falta de segurança só cresce a cada dia. Assim, para a segurança de veículos o sistema de monitoramento se propõe ideal para que nos sintamos mais seguros. Funciona por meio de um equipamento móvel fixado no para-brisa de uma viatura, em tripés utilizados em blitz, barreiras policiais e instalados em hastes fixas de monitoramento de velocidade, conhecido popularmente como “Pardais”, que consegue identificar um veículo roubado em tempo real, e tem como objetivo, monitorar e identificar a situação dos veículos através de detecção de placas. 6 2 - OBJETIVOS 2.1 - OBJETIVO GERAL Propor a unificação de tecnogias existentes, distintas, para o uso em Sistemas de Monitoramento de Veículos Roubados; 2.2 - OBJETIVOS ESPECÍFICOS Conhecer sistemas de identificação de veículos; Levantamento de tecnologias de rastreamento de veículos; Estudar novas possiblidades de monitoramento; 7 3 - JUSTIFICATIVA É muito comum nos dias atuais, recebermos a notícia que um amigo, um parente, teve a desagradável experiência de ter seu veículo roubado ou furtado no Distrito Federal, ligeiramente compartilham essa notícia em suas redes sociais e pedem para que compartilhem esse post, com a esperança de logo encontrar seu bem. Porem, essa tem se tornado a grande dificuldade, a recuperação de veículos. A Secretaria de Segurança Pública e da Paz Social concedeu uma coletiva de imprensa sobre as estatísticas criminais, um comparativo do mês de outubro 2015 em relação a outubro de 2016. Segundo a secretaria de Segurança Pública do Distrito Federal, a maioria dos crimes tiveram baixa considerável, como por exemplo, os crimes violentos letais, de homicídio, de latrocínio, de lesão corporal seguida de morte, dos crimes contra o patrimônio, de roubo em comércio, de roubo a pedestre e de roubo em residência. As exceções foram em furto e roubos em veículos, que teve um aumento de 3,7% (854 em 2015 e 886 em 2016), em roubo de veículos, que aumentou em 21,5% (432 em 2015 e 525 em 2016). Os dados acima mostram o quão é precária a situação da segurança pública no Distrito Federal e região, tendo como necessidade a implantação de meios tecnológicos para suprir essa deficiência. 8 4 - REFERENCIAL TEÓRICO 4.1 - OCR Reconhecimento Ótico de Caracteres em inglês Optical Character Recognition. Sistemas OCR pode ser empregado para realizar o reconhecimento ou identificação de assinaturas em documentos, digitalização de livros antigos e, a motivação dessa pesquisa, identificação de veículos através da sua placa de licenciamento. Os sistemas OCR veiculares auxiliam a sociedade a coibir infraçõesde trânsito, controlar o acesso a rodovias ou a áreas restritas, identificar veículos roubados, rastreamento de veículos, identificação de vagas de estacionamento em (EspaçoReservado1)ambientes fechados, entre outras utilidades. Porém o foco é na identificação de veículos roubados. Anagnostopoulos 2007, evidenciou técnicas de processamento de imagem e aprendizagem de máquina que podem ser empregadas em sistemas OCR veiculares. Casey e Lecolinet, trazem em seus estudos métodos que transformam uma imagem de sequências de caracteres em imagens contendo um único símbolo. A etapa do sistema OCR encarregada de extrair caracteres isolados é conhecida como segmentação. Umas das combinações de técnicas contida seria capaz de recortar a placa da imagem contido em um veículo e individualizar os caracteres presentes na mesma. Em seguida, o reconhecimento do símbolo isolado poderia ser realizado por uma rede neural, exemplo, SOM é um mapa auto organizável (SOM) é um tipo de rede neural artificial que é treinada a partir da utilização de aprendizagem não supervisionada para produzir uma representação discretizada do espaço de entrada das amostras de treinamento, denominado mapa. Sistema eletrônico que permite a identificação de automática de veículos através dos caracteres da placa permite a identificação de forma confiável e segura de veículos com registro de roubos e outros tipos de ocorrências registradas no número da placa do mesmo. Através deste aplicativo o monitoramento de veículos no dia a dia se torna mais viável e eficiente sem a necessidade de digitação de placa do veículo evitando assim a perda de tempo e principalmente a atenção dos Agentes de Fiscalização, pois o mesmo possui a tecnologia OCR (Reconhecimento Ótico de Caracteres). 9 4.1.1 - Tecnologia OCR OCR é uma tecnologia que utiliza mecanismos de aquisição, tais como câmeras fotográficas, filmadoras e afins, para capturar imagens e posteriormente realizar processamentos nestas, para reconhecer caracteres alfanuméricos presentes. Essa tecnologia tenta se aproximar do sistema visual humano (SVH), porém ainda não é capaz de competir com a capacidade de leitura deste (MITHE et al., 2013). É conhecido que o cérebro humano processa suas informações visuais principalmente no campo da semântica, ou seja, no significado do que é visto, enquanto computadores processam os dados sobre as informações espaciais que carregam, não tendo muita sensibilidade para variações de cores e texturas, por exemplo (ZHANG, 2010). Por isso, atualmente, processos que envolvem visão computacional exigem uma capacidade de processamento relativamente grande para obterem resultados significativos. 4.1.2 - Construção do Detector de Placas de Veículos O detector de placas é construído a partir da implementação do detector de Viola-Jones disponível na biblioteca OpenCV. Para viabilizar o treinamento, as placas de veículos foram separadas em dois tipos: as placas cujo fundo é mais claro que os caracteres compõem o “tipo 1”, enquanto o “tipo 2” é formado pelas placas cujo fundo é mais escuro que os caracteres. “OpenCV - Biblioteca de funções utilizadas durante o processamento de imagem, com base em código aberto e lançado pela Intel. Esta biblioteca é multi-plataforma, ele pode ser usado no Mac OS X , o Windows e Linux . Os autores do foco no processamento de imagem em tempo real” 1 . Tal divisão é necessária devido à natureza das características usadas pelo classificador, pois os resultados da avaliação de uma mesma característica sobre placas de tipos diferentes tendem a ter sinais opostos. De fato, numa tentativa de treinar um classificador com ambos os tipos, o algoritmo parou de convergir ainda no quarto estágio, cujo classificador já usava mais de 15.000 características sem obter melhorias nas taxas de detecção e falso positivo. 1 Freund, Y. and Schapire, R. E. (1995) 10 Foram treinados, portanto dois classificadores em cascata, cada um responsável por um tipo de placa. Para o treino de cada classificador, foram usadas 10.000 imagens positivas, às quais foram aplicadas rotações aleatórias dentro das seguintes faixas: −15◦ a +15◦ no eixo x, −30◦ a +30◦ no eixo y e −5 ◦ a +5◦ no eixo z. A restrição a estes valores foi definida de forma a cobrir a faixa de ângulos comumente encontrada nas imagens observadas. As imagens usadas no treinamento do classificador foram redimensionadas para uma resolução de 46×18 pixels. De acordo com figura 01 a seguir. Figura 01 - Treinamento do Classificador A B Fonte: http://www.sbai2013.ufc.br O treinamento dos classificadores foi realizado com o auxílio de uma ferramenta que acompanha a biblioteca OpenCV. Seus parâmetros 1 foram configurados da seguinte forma: resolução base = 46×18; n◦ de exemplos positivos = 10.000; no de exemplos negativos = 10.000; taxa de detecção mínima por estágio = 0, 999; taxa de falso positivo máxima por estágio = 0, 5; no de estágios = 20; conjunto de características = estendido; no de características por classificador fraco = 2; variante de Boosting = Gentle AdaBoost; limiar de peso relativo dos exemplos = 0, 9; simetria vertical = não. Em ambos os treinamentos, as subimagens usadas como exemplos negativos em cada estágio foram extraídas de um mesmo conjunto contendo 5.000 imagens de cenas variadas. Os parâmetros de taxas e número de estágios foram escolhidos para alcançar no treinamento taxas de detecção final de 0, 98 (≈ 0, 99920) e falso positivo final de 9, 5× 10−7 (≈ 0, 5 20). O classificador de placas “tipo 1” resultante é constituído de 9 estágios e um total de 66 características (uma amostra destas é vista na Figura 01). 11 Já o classificador de placas “tipo 2” obtido contém 7 estágios e 46 características no total. 4.1.3 - Adaptação do Detector ao Domínio De Placas A abordagem mais óbvia para o uso de dois classificadores é simplesmente varrer a imagem duas vezes, um classificador de cada vez, e combinar os resultados, o que tende a duplicar o custo de detecção. A solução encontrada foi treinar um classificador auxiliar simples, cuja meta é diferenciar um tipo de placa do outro. O número de estágios foi limitado a apenas 1, visando a eficiência. O resultado desse treinamento foi um classificador composto de apenas uma característica. A Figura 02 Ilustra o funcionamento do classificador de placas final que combina os três classificadores treinados. Figura 02 - Classificador de Placas “Tipo 1” Fonte: http://www.sbai2013.ufc.br 4.1.4 - Binarização Segundo Hiss Monteiro (2002), para fazer a separação do fundo da região da placa dos elementos que desejamos analisar utilizamos a binarização ou limiarização (thresholding). A binarização é o método mais simples de segmentação de imagens. Resumidamente consiste em separar uma imagem, originalmente em tons de cinza para que tenha só pixels pretos e brancos. Essa decisão da nova cor que terá o pixel é realizada de acordo com o ponto de corte (threshold). Qualquer pixel com intensidade menor ou igual ao ponto de corte passa a ser preto. Se o pixel tiver intensidade maior que o ponto de corte passa a ter a cor branca. Como sabemos uma imagem digital pode ser escrita como uma função f (x, y), a resposta da binarização é a função g (x, y), dada por: R1 se f (x, y) ≤ T G (x, y) R2 se f (x, y) >T Onde R1 e R2 são os valores estipulados para os níveis de cinza da imagembinaria, no caso utiliza-se 0 (preto) e 255 (branco). Alguns autores se referem ao 12 método de binarização como um método para retirar o fundo (background) da imagem. Por exemplo na primeira imagem da Figura 03 observemos uma imagem os objetos de interesse em preto. O ponto de corte nesse caso deve ser escolhido com o cuidado para que não capture elementos que não façam parte dos objetos. O valor escolhido automaticamente para essa imagem é 101, como mostrado. Figura 03 - Binarização Fonte: http://www.sbai2013.ufc.br Exemplo de uma imagem inicial a ser analisada nesta etapa, seu histograma (bimodal) à direita com a linha vertical mostrando o ponto de corte usado para a separação entre o fundo e os objetos. Na imagem inferior a direita observa-se o resultado: a imagem bitonal. A escolha do ponto de corte T é fundamental. Uma ferramenta auxiliar na escolha deste ponto de corte é o histograma da imagem. A observação desse gráfico permite a localização do melhor valor de T para a imagem. Esta localização é tão mais fácil quanto mais bimodal for o histograma. Quando a imagem, por exemplo, for composta de objetos e fundo de cores distintas, mas uniformes, podemos estabelecer através de técnicas que ajudam a definir o ponto de corte através de um isolamento das regiões que representem o fundo e os objetos. Para imagens compostas por mais de um objeto de tons diferentes sob um fundo constante, pode-se utilizar técnica de binarização multi-nível (multilevel thresholding). No caso real de placas a iluminação não uniforme, impossibilita ter tons de fundo e objetos constantes, e não é possível estabelecer as regiões de tons precisas de cada objeto no histograma, de modo que se torna mais difícil encontrar o ponto de corte ideal. Como o trabalho precisava de métodos automáticos para a escolha e ajuste do ponto de corte, depois de diversos testes usando histogramas da imagem reais como referência comparada com conhecimentos prévios sobre parâmetros da imagem e pontos de corte ideais também conhecidos utilizou o método de Otsu para identificação automática do ponto de corte. 13 (i.j- 1) (i.j) (.j+ 1) (i+1 .j) (I- 1.j) 4.1.5 - Erosão Erosão foi é a técnica utilizada para resolver um problema que apareceu frequente nestas aplicações real. Imagine que durante a captura da placa os caracteres que desejamos reconhecer pareçam estar contato um com o outro de forma que pareça um único objeto, ou ligados a ruídos que modifiquem suas formas (como o mostrado pelas pequenas elipses marcadas na imagem superior esquerda da Figura 04). Nesse caso teríamos sérios problemas para reconhecê-los. Ficou evidente então a necessidade de desenvolver algum pré-processamento que seja capaz de separar objetos que possivelmente venham estar em contato entre si, devido ao um maior sombreamento, ou pelo movimento do carro. A solução adotada para esse tipo de problema foi à utilização de um recurso conhecido como erosão. Esse recurso faz com que uma imagem original sofra diminuição de tamanho sem que perca suas características geométricas que são de suma importância para o reconhecimento da mesma. Para o processo de erosão primeiramente escolhemos o elemento estruturante que vai ser utilizado para realizar a "erosão da imagem". A escolha do elemento que vai fazer a operação é muito importante pois esse elemento é que vai determinar o quanto a imagem vai reduzir de tamanho cada vez que é submetida ao processo. Outro fato relevante é a perda das características geométricas da imagem que pode ser causada por uma má escolha do elemento. No programa foi adotado um elemento simples, mas que depois de todos os testes se mostro capaz de garantir que a imagem original não perdesse suas características. A Figura 04 apresenta uma placa antes e depois do processo de erosão e o elemento que foi utilizado na operação. Figura 04 - Processo de Erosão Fonte: http://www.sbai2013.ufc.br Depois da escolha do elemento a ser utilizado devemos analisar a vizinhança de cada um dos pixels da imagem através do elemento. Fazemos essa análise da 14 seguinte forma: Colocamos o pixel a ser analisado na coordenada (i, j) e a partir daí analisamos os outros pixels do elemento. Se todos eles estiverem acesos (com o valor 1) o pixel que está sendo analisado continua aceso. Caso contrário o pixel é apagado (tem seu valor modificado para 0). Observando a Figura 04 notamos que os objetos foram realmente separados dos ruídos, mas sofreram uma apreciável mudança de tamanho, o que poderia acarretar num problema para a identificação do objeto. Na verdade, isso não acontece se utilizarmos o número de erosões suficiente apenas para identificar um determinado número de elementos posicionados entre limites superiores e inferiores que alinhamos objetos. Utiliza-se desta maneira a característica fundamental das placas brasileiras que é ter sempre 3 letras e 4 números, isso é 7 elementos. Outra característica importante observada durante a erosão das imagens foi o fato desse processamento “limpar” ruídos prévios na imagem para que não haja problemas com o reconhecimento das mesmas. Pequenos objetos que contenham até 5 pixeis são simplesmente apagados pelo processo de erosão. Esse recurso é importante para um bom funcionamento das etapas posteriores. 4.1.6 - Segmentação dos Caracteres A segmentação da imagem consiste num processo cujo objetivo é separar em imagens distintas todos os caracteres. Essa etapa permitirá a identificação em separado de cada letra ou número que compõem a placa. A identificação de pixels conectados faz parte de um pré-processamento para a segmentação das imagens. Para isso foi desenvolvido um algoritmo que basicamente verifica a vizinhança de cada pixel e a partir daí vai identificando quem faz parte, ou não, do mesmo objeto, isso é estar com a mesma cor que ele. O algoritmo analisa a partir de um pixel de coordenadas (i, j) sua vizinhança que são os pixels de coordenadas (i-1, j-1), (i-1, j), (i-1, j+1), (i, j-1), (i, j+1), (i+1, j-1), (i+1, j), (i+1, j+1). Desta forma o algoritmo vai verificando cada um dos pixels. Sabemos que a imagem após a binarização possui apenas pixels pretos e brancos, representando os objetos e o fundo. Os pixels brancos são representados pelo valor 1 e os pixels pretos são representados pelo valor 0. O algoritmo de contagem, primeiramente faz uma varredura, na figura 05, a procura de um pixel que represente a imagem 05, ou seja tenha o valor 0. Achado esse primeiro pixel o algoritmo troca o valor dele para 2 e faz uma verificação da 15 vizinhança conforme foi descrito anteriormente. Se durante essa verificação for encontrado algum outro pixel acesso esse pixel terá seu valor trocado para 3 e os que forem sendo encontrados terão o valor 4, 5, 6 e assim por diante. Quando terminar a verificação da vizinhança o algoritmo procura o pixel com o valor 3 e faz a verificação de sua vizinhança atribuindo aos pixels que forem encontrados valores subsequentes e assim o processo continua até que o algoritmo não encontre nenhum outro pixel subsequente para verificar a vizinhança, reconhecendo assim o fim de um objeto e iniciando uma varredura na busca de um pixel acesso e reiniciando todo o processo. Desta forma conseguimos com que seja contabilizado o número de objetos conectados, ao mesmo tempo em que se separa cada objeto. De acordo com figura 05 a seguir. Figura 05 - Coordenadas Limites Fonte: http://www.sbai2013.ufc.br O processode segmentação que foi desenvolvido utiliza a forma final com que o processamento de contagem disponibiliza a imagem para realizar a segmentação. Para aperfeiçoar o processo de segmentação um único algoritmo que faz a contagem e a segmentação das imagens. Esse processo foi nomeado como processo de contagem de elementos modificado. O algoritmo funciona da seguinte forma: Utilizamos o algoritmo original de contagem sendo que quando for terminada a identificação de um objeto para ser contabilizado, seja armazenado em alguma matriz o valor que foi atribuído ao último pixel desse objeto. Dessa forma conseguimos uma matriz que contenham todos os valores dos últimos pixels referentes a cada objeto. Então separamos as imagens através desses valores da seguinte forma. Finalmente conseguimos que os objetos sejam devidamente segmentados e separados e imagens distintas. Dessa forma conseguimos obter imagens em condições de serem submetidas à etapa de reconhecimento de caracteres. Cada sub imagem colorida mostrada na figura 05, vai ser submetida à última etapa do processamento, sendo composta apenas pelo objeto e pelo fundo. 16 130 mm: 13cm 63 mm 4.1.7 - Especificações do Contran Antes de discutirmos a aquisição das imagens e construção da base de dados, é interessante ter-se um conhecimento das normas e padrões utilizados nas placas de veículos automotores brasileiros. Por isso, abaixo, são descritas algumas dessas especificações estabelecidos pelo CONTRAN. O capítulo IX, Seção III, artigo 96 do Código de Trânsito Brasileiro (Lei № 9.503 de 23/09/97) trata da identificação dos veículos brasileiros. O artigo 115 diz: “O veículo será identificado externamente por meio de placas dianteira e traseira, sendo estas lacradas em sua estrutura, obedecidas as especificações e modelos estabelecidos pelo CONTRAN (Conselho Nacional de Trânsito) ”. O artigo 1º da resolução 045/98 do CONTRAN estabelece o Sistema de Placas de Identificação de Veículos. Este artigo estabelece que tanto a placa traseira, quanto a dianteira devem conter caracteres alfanuméricos individualizados, divididos em dois grupos. O primeiro deve ser composto por três caracteres, resultantes do arranjo com repetição de vinte e seis letras, tomadas três a três. Já o segundo, por quatro caracteres, resultantes do arranjo com repetição de dez algarismos, tomados quatro a quatro, conforme ilustra a figura 06. Além dos caracteres previstos neste artigo, ambas as placas devem conter, gravados em tarjetas removíveis a elas afixadas, a sigla da Unidade da Federação e o nome do Município de registro do veículo, exceção feita às placas de veículos oficiais. Figura 06 - Modelo de Placa 10 cm 400 mm: 40 cm 40 cm Fonte: http://www.denatran.gov.br/ Modelo de placa de veículos brasileiros, incluindo as dimensões de altura, largura e espaçamento dos caracteres, segundo as normas definidas pelo CONTRAN. O artigo 2º desta mesma resolução especifica as dimensões, cores e demais características das placas (veja a figura 06). As tolerâncias nas dimensões das 17 placas e caracteres alfanuméricos são fixadas em até 10%. Com isso, as dimensões da placa são fixadas em: (i) altura hp = 130 ± 13 mm; (ii) comprimento cp = 400 ± 40 m; (iii) altura dos caracteres h = 63 mm e (iv) largura l dos caracteres, a qual se encontra na tabela 01 a seguir. Tabela 01 - Largura dos Caractéres A B C D E F G H I J K L M N O P Q R S 54 44 44 43 40 40 45 45 10 36 49 40 54 47 45 44 51 46 46 T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 44 45 49 49 49 47 40 18 36 37 40 36 36 36 38 36 36 Agora, conhecendo as especificações necessárias para o projeto, bem como os valores dos tamanhos padrões, segundo o CONTRAN, já é possível fazer uma estimativa das alturas dos caracteres. 4.1.8 - Segurança Física e do Ambiente Áreas Seguras Objetivo: Prevenir o acesso físico não autorizado, danos e interferências com os recursos de processamento das informações e as informações da organização. Perímetro de Segurança Física Convém que perímetros de segurança sejam definidos e usados para proteger tanto as áreas que contenham as instalações de processamento da informação como as informações críticas ou sensíveis. Diretrizes para Implementação Convém que as seguintes diretrizes sejam consideradas e implementadas, onde apropriado, para os perímetros de segurança física: a) convém que os perímetros de segurança sejam claramente definidos e que a localização e a capacidade de resistência de cada perímetro dependam dos requisitos de segurança dos ativos existentes no interior do perímetro, e dos resultados da avaliação de riscos; b) convém que os perímetros de um edifício ou de um local que contenha as instalações de processamento da informação sejam fisicamente sólidos (ou seja, o perímetro não deve ter brechas nem pontos onde poderia ocorrer facilmente uma invasão); as paredes externas do local devem ser de construção robusta e todas as 18 portas externas sejam adequadamente protegidas contra acesso não autorizado por meio de mecanismos de controle, por exemplo, barras, alarmes, fechaduras etc.; as portas e janelas sejam trancadas quando estiverem sem monitoração, e que uma proteção externa para as janelas seja considerada, principalmente para as que estiverem situadas no andar térreo; c) convém que seja implantada uma área de recepção, ou um outro meio para controlar o acesso físico ao local ou ao edifício; o acesso aos locais ou edifícios deve ficar restrito somente ao pessoal autorizado; d) convém que sejam construídas barreiras físicas, onde aplicável, para impedir o acesso físico não autorizado e a contaminação do meio ambiente; e) convém que todas as portas corta-fogo do perímetro de segurança sejam providas de alarme, monitoradas e testadas juntamente com as paredes, para estabelecer o nível de resistência exigido, de acordo com normas regionais, nacionais e internacionais aceitáveis; elas devem funcionar de acordo com os códigos locais de prevenção de incêndios e prevenção de falhas; f) convém que sistemas adequados de detecção de intrusos, de acordo com normas regionais, nacionais e internacionais sejam instalados e testados em intervalos regulares, e cubram todas as portas externas e janelas acessíveis; as áreas não ocupadas sejam protegidas por alarmes o tempo todo; também seja dada proteção a outras áreas, por exemplo, salas de computadores ou salas de comunicações; g) convém que as instalações de processamento da informação gerenciadas pela organização fiquem fisicamente separadas daquelas que são gerenciadas por partes externas. 4.2 - HARDWARE 4.2.1 – MVR – Monitor de Veículos Roubados MVR (Monitor de Veículos Roubados) é um dispositivo móvel equipado com um pequeno ecrã (output) e um teclado querty em miniatura (input) e com sistema de GPS. Conta com Sistema Operacional Android, Processador Octa-Core Quad 1.5 GHz + Quad 1.0 GHz, 2GB de Memória, Tela de 5.2” com proteção Gorilla Glass 4, Memória Interna de 16GB, Câmera Frontal de 20 Megapixels, Conexão de 3 e 4G. Capaz de garantir máximo desempenho nas tomadas de informações em tempo real. 19 Este dispositivo também deve conter um suporte móvel (tripé), para uso do suporte de fixação em para-brisa do tipo ventosa, e suporte fixo para acoplamento em postes com detectores de velocidade, popularmenteconhecido como “Pardal”. 4.2.2 - Java ORACLE 2012 em 1991, um grupo de engenheiros da empresa Sun acreditava na tendência da junção dos dispositivos móveis pessoais e dos computadores caseiros. Com essa perspectiva em mente, esse grupo, denominado Green Team, liderado por James Gosling, trabalhou arduamente para criar o que, futuramente, iria revolucionar nosso mundo a linguagem de programação Java. Para demonstração de sua linguagem de programação e de seu potencial, o Green Team trabalhou num controle remoto portátil que tinha como alvo a comunicação com as televisões a cabo digitais, mas, naquela época, esse conceito de integração de dispositivos estava avançado demais para os equipamentos disponíveis. Percebendo a ascensão da internet, em 1995, o grupo anunciou que navegador de internet Netscape Navigator, passaria a incorporar a tecnologia Java. 33 6.1. A linguagem de programação Java Sendo aclamada como uma linguagem de programação versátil, o Java é a principal linguagem de programação usada nos aplicativos nativos do Android. Segundo ORACLE (2012), na linguagem de programação Java, todos os arquivos de código-fonte possuem a extensão “. Java” e têm seu conteúdo inalterado, podendo ser lidos e modificados pelo programador. Depois que o arquivo de código-fonte é salvo, é necessário compilá-lo, com o compilador Java (fornecido junto com as ferramentas para programação Java), em um arquivo “.class”. Esse arquivo compilado tem seu conteúdo convertido para bytecode, que não é um código que pode ser lido ou modificado pelo programador e sim a linguagem da Java Virtual Machine. Uma instância da JVM - Java Virtual Machine - na máquina do usuário lê o bytecode do arquivo “.class”. E executa a aplicação. Já que a JVM está disponível em vários sistemas operacionais, o mesmo arquivo bytecode “.class. ” Pode ser executado em outra máquina, sem necessidade de edição e recopilação. 4.2.3 - A Plataforma Java 20 A plataforma Java se diferencia, principalmente, das outras por ser uma plataforma somente de software, que pode ser executada sobre diferentes tipos de hardware. Como um ambiente independente de plataforma, a Java pode ser um pouco mais lenta do que código nativo. Porém, avanços na tecnologia do compilador e da JVM têm trazido o desempenho para perto que o código nativo é capaz, sem comprometer a portabilidade ORACLE 2012. A plataforma possui dois componentes: A Java Virtual Machine Java API 4.2.4 - Java Virtual Machine ORACLE 2012, a JVM é a peça fundamental da plataforma Java, é o que faz com que ela seja independente de hardware e de sistema operacional. Ela é um computador abstrato, virtual, que, como toda máquina física, real, possui conjuntos de instruções e manipula várias áreas da memória durante a execução. A JVM não conhece linguagem alguma, a não ser a linguagem bytecode dos arquivos “.class”. E apesar de ser bem restrita quanto a formas sintáticas e estruturais, se uma linguagem pode gerar uma aplicação no formato especificado pela JVM, então essa aplicação pode se utilizar das funções da mesma. 4.2.5 - Java 2 Micro Edition (J2ME) Java Platform, Micro Edition (Java ME) oferece um ambiente robusto e flexível para aplicativos executados em dispositivos móveis e integrados: celulares, set-top boxes, reprodutores de discos Blu-ray, dispositivos de mídia digital, módulos M2M, impressoras etc. A tecnologia Java ME foi originalmente criada para lidar com as restrições associadas à criação de aplicativos para pequenos dispositivos. Para essa finalidade, a Oracle definiu o básico para a tecnologia Java ME para acomodar esse ambiente limitado e possibilitar a criação de aplicativos Java executados em dispositivos pequenos com memória, vídeo e capacidade de processamento limitados. O Java Micro Edition é voltado para micro aplicações que rodam em microprocessadores como os de celulares e PDA’s. A plataforma é direcionada a uma vasta gama de dispositivos que vai desde Smart Cards até celulares e PDA’s. Consiste de um conjunto de especificações organizadas em camadas que abrangem 21 vários dispositivos e tecnologias. A arquitetura da plataforma J2ME é dividida em três camadas: Máquina Virtual, Configurações e Perfis, como na Figura 07. Figura 07 - Arquitetura Java 2 Micro Edition Fonte: http://www.devmedia.com.br/ A configuração é um conjunto de bibliotecas básicas disponíveis para o programador. Ela também define qual o nível de serviços e funcionalidades oferecidos pela máquina virtual. Uma configuração é definida para uma classe horizontal de dispositivos, ou seja, uma gama de dispositivos com diferentes aplicações, mas com características em comum. Por exemplo, dispositivos com comunicação wireless, abrangendo celulares, PDA’s, pagers, etc. No momento existem duas configurações definidas: O CLDC (Connected Limited Device Configuration), utilizado em dispositivos limitados como celulares, PDA’s, pagers, etc. e o CDC (Connected Devide Configuration), utilizado em dispositivos com maior capacidade (de memória e processamento) como Sistemas de Navegação de Carros, Televisores com Conexão à Internet, etc. O perfil define um conjunto de bibliotecas específicas para classes verticais de dispositivos. Ou seja, poderíamos ter um perfil para celulares, outro para PDA’s, etc. Um perfil é sempre especificado para uma determinada configuração, mas uma configuração pode dar suporte a vários perfis. Existem dois perfis definidos para o CLDC: o MIDP (Mobile Information Device Profile) e o IMP (Information Module Profile). O IMP é mais recente e é basicamente um subconjunto do MIDP e é utilizado em dispositivos com uma interface mais limitada. Optional Packages Mobile Media API, ID, API Profile MIDP Foundation Profile Configuration CLDC, CDC JVM 22 A máquina virtual fica diretamente acima do sistema operacional do dispositivo. É ela quem define quais as limitações dos programas que executarão no dispositivo. A máquina virtual correspondente ao CLDC é chamada KVM, desenhada especialmente para dispositivos pequenos e com recursos limitados. A KVM mantém os aspectos centrais da Máquina Virtual Java e tem tamanho reduzido a algumas centenas de kilobytes, inclusive o K de KVM vem de kilo, uma alusão ao tamanho da máquina virtual. 4.2.6 - Tecnologia J2ME É uma tecnologia que permite o desenvolvimento de aplicações Java para dispositivos com poder de processamento, vídeo e memória limitados. Possui uma coleção de APIs, Application Program Interface, definida pela comunidade JCP, Java Community Proccess, específicas para dispositivos compactos como Celulares, PDAs, Personal Digital Assistants, entre outros. A J2ME trata das necessidades especiais dos dispositivos para consumidor, das quais as edições J2SE, Java Standard Edition, e J2EE, Java Enterprise Edition, não abrangem (MUCHOW, 2004). “Standard Edition (J2SE): projetada para execução em máquinas simples de computadores pessoais e estações de trabalho “ 2 . A JCP especificou a J2ME em dois grupos, conforme as necessidades dos dispositivos, chamados de Configuração sendo denominados CDC, Connected Device Configuration, e CLDC, Connected Limited Device Configuration. O primeiro para dispositivos com maior capacidade computacional e normalmente fixos como um computador ligado à TV, por exemplo, o segundo para aqueles dispositivos com menor capacidade computacional e normalmente móveis. 4.2.7 - Conexão de Internet O funcionamento da internet Wi-Fi dentro dos veículos recebera um sinal deinternet via um modem 3G. Dentro do mesmo, um roteador garante a redistribuição do sinal para o dispositivo móvel, mediante senha e autenticação de acesso. Isso garante que o este mantenha a conexão o acesso em período integral e não permite 2 MUCHOW, 2004, p.2 23 que outros usuários acessem a rede de maneira a se aproveitar de eventuais brechas na rede. 4.2.8 – Conexão Wi-Fi É utilizada por produtos certificados que pertencem à classe de dispositivos de rede local sem fios (WLAN) baseados no padrão IEEE 802.11. Por causa do relacionamento íntimo com seu padrão de mesmo nome, o termo Wi-Fi é usado frequentemente como sinônimo para a tecnologia IEEE 802.11. O nome, para muitos, sugere que se deriva de uma abreviação de wireless fidelity, ou "fidelidade sem fio", mas não passa de uma brincadeira com o termo Hi-Fi, designado para qualificar aparelhos de som com áudio mais confiável, que é usado desde a década de 1950. O padrão Wi-Fi opera em faixas de frequências que não necessitam de licença para instalação e/ou operação. Este fato as torna atrativas. No entanto, para uso comercial no Brasil, é necessária o equipamento ser homologado pela Agência Nacional de Telecomunicações. As frequências são livres de licença, o usuário não paga nenhuma taxa, mas são permitidos apenas equipamentos que tenham sido analisados, avaliados e obtidos um o certificado de homologação, sendo que esses equipamentos recebem um selo de identificação da agência. 4.2.9 - GPS Os estudos iniciais para o desenvolvimento do Global Positioning System GPS, data de 1973. O propósito inicial da sua concepção foi contornar as limitações existentes no sistema TRANSIT (o primeiro sistema operacional para navegação baseado em sinais transmitidos por satélites) principalmente aquelas relativas à navegação. Devido à cobertura global proporcionada pela constelação GPS, a operacionalidade do sistema atende as 24 horas do dia, garantindo que, mesmo sob quaisquer condições meteorológicas, existem pelo menos quatro satélites acima do plano do horizonte do observador. Esta situação garante a condição geométrica mínima necessária à navegação em tempo real com o GPS. Cientistas e pesquisadores, em todo mundo, começaram a descobrir e a explorar as potencialidades do sistema, não só aquelas destinadas à navegação, mas também, em aplicações nas áreas da Geodésia, Geodinâmica e Cartografia, tais como: No estabelecimento de redes geodésicas; 24 nos levantamentos para fins de apoio fotogramétrico; no controle de deformações; na determinação altimetria; na agricultura de precisão; nos estudos relacionados à atmosfera e no âmbito marinho, etc. Observa-se também grande interesse nas aplicações em tempo real e na integração com outros setores que necessitam de coordenadas precisas. “O conceito de navegação utilizando sinais de rádio transmitidos por satélites artificiais começou com o lançamento do primeiro satélite, o SPUTNIK I (em 04 de outubro de 1957). ” 3 Desde o surgimento da era espacial, os cientistas vêm estudando a possibilidade da utilização de satélites artificiais colocados em órbita terrestre e de estações estabelecidas em terra com o intuito de posicionamento ou navegação. O primeiro sistema operacional para navegação baseado em sinais transmitidos por satélites foi o Navy Navigation Satellite System (NNSS), também conhecido como TRANSIT, que foi desenvolvido pelo Johns Hopkins Applied Physics Laboratory (APL). Nesse sistema, a navegação e/ou o posicionamento baseavam-se no efeito Doppler. Tomou-se operacional em 1964, para o uso militar e em 1967 para comunidade civil. Este sistema apresentava uma série de limitações dentre elas as baixas órbitas dos satélites (1.080km), fornecia as posições de navegação somente em duas dimensões (latitude e longitude), dentre outras. Em 1972, o Naval Research Laboratory (NRL), propôs o sistema de navegação com relógios mais precisos nos satélites e altitude orbital entre 900 e 1.500km, denominado Timation. A força aérea americana neste mesmo ano propôs um terceiro sistema, baseado na medição de distâncias através de códigos modulados nas ondas portadoras emitidas pelos satélites, denominado de System 621 B. O atual NAVSTAR-GPS (NAVigation System with Time And Ranging - Global Positioning System), surgiu no ano de 1973 resultando da unificação dos sistemas Timation e 621 B. Foi uma iniciativa visando o estabelecimento e o desenvolvimento de um novo sistema de navegação de abrangência global, proporcionando o posicionamento tridimensional de pontos da superfície terrestre através de sinais de rádio emitidos por satélites artificiais que a orbitam. O sistema vem sendo 3 ANDRADE, 1988, p. 1 25 administrado pelo Departamento de Defesa dos Estados Unidos da América - Departament of Defense (DoD). Um histórico do desenvolvimento do sistema é apresentado em PARKINSON et al., 1996. O GPS é um sistema baseado em uma constelação de 24 satélites artificiais, foi projetado para fornecer aos usuários a posição instantânea, bem como a velocidade de deslocamento de um ponto sobre a superfície da terra, independente das condições meteorológicas sendo possível observar-se simultaneamente, pelo menos 4 satélites acima do horizonte, 24 horas por dia. As principais características do sistema são: disponibilidade contínua dos dados de navegação; não necessita de Inter visibilidade entre as estações; possui cobertura global e regional; os satélites são distribuídos em 6 planos orbitais com 55° de inclinação em relação ao equador, com 4 satélites em cada plano; período orbital de 12 horas siderais, orbitando a uma altitude de 20.200km; as efemérides transmitidas pelos satélites GPS contêm os elementos orbitais keplerianos e seus fatores de perturbação; o sistema de referência é o World Geodetic System 1984 (WGS-84) e o sistema de separação do sinal é o Code Division Multiple Acess (CDMA). O sistema GPS pode ser dividido em três segmentos: Segmento Espacial: E definido pela constelação dos satélites. Tem como função, gerar e transmitir os sinais GPS (códigos, portadoras, mensagens de navegação e identificação dos satélites). Estes sinais são derivados da frequência fundamental foi de 10,23MHz, gerados a partir dos osciladores de Rubídio e Césio (altamente estáveis), a bordo dos satélites SEEBER, 1993, p. 211. 4.2.10 - Android GOOGLE INC. 2012, Android é uma plataforma para dispositivos móveis, criado para diminuir custos e melhorar a experiência do usuário nesses dispositivos. O Android começou com uma pequena empresa com o nome do próprio Android Inc., em Palo Alto, Califórnia, EUA, criada por quatro sócios, chamados Andy Rubin, Rich Miner, Nick Sears e Chris White. 26 “A Plataforma Android é hoje uma das mais usadas em dispositivos móveis, principalmente telefones celulares 4 ”. Somente em 2006 o Google tomou posse do projeto comprando a Android Inc. e assumindo a direção do desenvolvimento do sistema. No ano seguinte, em 2007, foi criada a Open Handset Alliance, liderada pela Google, como um grupo de empresas unidas, com o objetivo de concluir o desenvolvimento do Android, como um sistema móvel, e viabilizar a sua distribuição em massa, como um sistema móvel gratuito, com liberdade de desenvolvimento de aplicativos e liberdade de plataforma de hardware. A OHA - Open Handset Alliance - iniciou suas operações com 40 empresas. 25 atualmente, esse número está perto das 90 empresas. No mesmoano, foi liberada a versão Beta do SDK do Android. GOOGLE INC. (2012), aplicações podem ser livremente desenvolvidas para a plataforma Android, pois a mesma possui um SDK que fornece ao programador todas as APIs - Application Programming Interfaces - necessárias para a interação inicial com a plataforma. O SDK do Android permite, também, que o programador utilize um gerenciador de banco de dados SQlite e suporta gráficos 3D baseados nas especificações 1.0 da OpenGL ES - OpenGL for Embedded Systems. Dentre muitas características, o Android possui nativamente um framework de aplicações, uma máquina virtual Dalvik (Java) otimizada para dispositivos móveis, um navegador web baseado na engine de código aberto Webkit, suporte a arquivos de mídia de áudio e vídeo e um ambiente de desenvolvimento rico em ferramentas. GOOGLE INC. 2012, O Android foi idealizado desde o início para ser um sistema com código fonte opensource, facilitando a adequação a diversos dispositivos diferentes e personalização do conteúdo e, devido a essa facilidade, é comum encontrarmos aparelhos que possuem personalizações da operadora de telefonia ou do fabricante como forma de concorrência entre os mesmos. Pelo fato de ser baseado no Linux, ele também possui um repositório de aplicativos, onde todos os aplicativos públicos a serem instalados nos sistemas podem ser visualizados e adquiridos. 4 MUCHOW, 2004 p.34 27 Dentre as tecnologias que compõem o Android, pode-se destacar como principais o Java, a linguagem de programação usada no desenvolvimento de aplicações nativas para o Android, o SQLite, um sistema gerenciador de banco de dados leve e rápido, usado para armazenar dados das aplicações durante a execução e o GPS que permite a integração do serviço com as aplicações. A arquitetura do Android está divido em camadas, permitindo ao programador ou à empresa de desenvolvimento de dispositivos customizar 26 apenas a parte que lhe será necessária. Segundo (LEE, 2011) a arquitetura Android é dividida em 5 seções em quatro camadas principais Kernel Linux; Bibliotecas; Runtime do Android; Estrutura; Aplicativos. 4.3 - SISTEMAS DE BANCO DE DADOS Segundo Silberschatz, Korth, Sudarshan 2006, sistema de bancos de dados são projetados para gerir grandes volumes de informações. “O gerenciamento de informações implica a definição dos mecanismos para manipulação dessas informações 5 ”. Ainda segundo os autores, um sistema de banco de dados deve garantir a segurança das informações armazenadas contra eventuais problemas como o sistema, além de impedir tentativas de acesso não autorizadas. O banco de dados e um recurso que veio facilitar a busca de informações, eliminando os arquivos de papeis, integrando os dados de aplicações e fornecendo segurança. Com o objetivo de simplificar a criação e manutenção de um Banco de Dados surgiu os Sistemas Gerenciadores de Banco de Dados (SGBDs). Segundo [ Date 2000], os Sistemas de Banco de Dados têm a finalidade de gerenciar as informações de um banco de dados, que é um repositório para uma coleção ao de 5 Silberschatz, Korth, Sudarshan, 2006 28 arquivos de dados computadorizados. Sendo assim, e uma camada que fica entre o banco de dados e os usuários, ou outros softwares que interagem com o SGBD. Um SGBD fornece aos usuários operações para inserir, alterar, excluir, obter e atualizar dados em um sistema, assegurando a integridade dos dados. Sua utilização traz vantagens como: eficiência no acesso aos dados, redução do tempo de desenvolvimento de uma aplicação, acesso concorrente e rápido retorno, além da integridade e segurança dos dados. A (figura 08) apresenta os componentes de um sistema de banco de dados. Figura 08 - Sistema de Banco de Dados Fonte: https://www.ime.usp.br 4.3.1 – Banco de Dados MySQL MySQL é um SGBD (Sistema Gerenciador de Banco de Dados) relacional padrão SQL (Structured Query Language - Linguagem Estruturada para Consultas) robusto, rápido, multiusuário e multitarefa. O MySQL é marca registrada da ORACLE e seu servidor de banco de dados vem sendo distribuído sobre uma Licença Dupla, uma Open Source/GNU GPL e também por uma licença comercial. Por que usar o Banco de Dados MySQL? SISTEMA DE BANCO DE DADOS Usuários e Programadores Programas aplicativos / Consultas Software SGBD Software para acessar os dados Processador / Otimizador de Consultas Definição dos dados armazenados (meta dados) Dados armazenados 29 O servidor de banco de dados MySQL é extremamente rápido, confiável, e fácil de usar. Se isto é o que você está procurando, você deveria experimentá-lo. O Servidor MySQL também tem um conjunto de recursos muito práticos desenvolvidos com a cooperação de nossos usuários. O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito grandes de maneira muito mais rápida que as soluções existentes e tem sido usado em ambientes de produção de alta demanda por diversos anos de maneira bem-sucedida. Apesar de estar em constante desenvolvimento, o Servidor MySQL oferece hoje um rico e proveitoso conjunto de funções. A conectividade, velocidade, e segurança fazem com que o MySQL seja altamente adaptável para acessar bancos de dados na Internet. As características técnicas do MySQL O Programa de Banco de Dados MySQL é um sistema cliente/servidor que consiste de um servidor SQL multitarefa que suporta acessos diferentes, diversos programas clientes e bibliotecas, ferramentas administrativas e diversas interfaces de programação (API's). • Portabilidade. • Escrito em C e C++. • Testado com um amplo faixa de compiladores diferentes. • Funciona em diversas plataformas. • Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade. • Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que se pode facilmente usar múltiplas CPUs, se disponível. • Fornece mecanismos de armazenamento transacional e não transacional. 4.3.2 - Conexão com Banco de Dados Conectar-se a um banco de dados com Java é feito de maneira elegante. Para evitar que cada banco tenha a sua própria API e conjunto de classes e métodos, temos um único conjunto de interfaces muito bem definidas que devem ser implementadas. Esse conjunto de interfaces fica dentro do pacote java.sql e nos referíamos a ela como JDBC. “Usuários – Interface JDBC – Implementação JDBC – Banco de Dados” Para realizar uma conexão, é necessário carregar o driver que fará a comunicação com a fonte de dados e estabelecer a conexão em si. Ao executar o 30 programa será enviada uma mensagem na janela prompt, indicando o sucesso ou não da conexão. 4.3.3 - Manipulação de Banco de Dados A Linguagem Java possui classes que permitem a conexão com um bando de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Aplication Program Interface), que permite a comunicação de diversos bancos de dados SQL (Oracle, MySQL, produtos Microsoft, etc.…). Muitos desses bancos utilizam um padrão de comunicação chamado ODBC (Open Database Connectivity) que pode ser usado para criar uma fonte de dados entre o banco e o JDBC. O pacote JDBC fornece uma maneira bem simples de acessar tabelas em conjunto com o JDK e você não precisa fazer nenhuma instalação adicional para manipular banco de dados com Java.Para que seja possível realizar a manipulação de banco de dados em Java, é necessário que diversos procedimentos sejam realizados a fim de configurar o sistema. Os passos necessários para a manipulação de banco de dados por meio de uma aplicação são os seguintes: 1. A criação de banco de dados. 2. A configuração do sistema por meio da criação de uma fonte de dados entre o banco de dados criado e a Linguagem Java (fonte ODBC – JDBC). 3. A criação da aplicação Java propriamente dita. 4.3.4 - Linguagem SQL A SQL (Structured Query Language), conhecido também como linguagem de consulta estruturada, é uma linguagem padrão de pesquisa criada para se comunicar com banco de dados. Segundo BATTISTI (2006), esta linguagem foi desenvolvida para ser independente de hardware e software. Comenta que as instruções SQL são conduzidas com um único comando que contém uma descrição completa da informação exigida. Explica também que o maior benefício do método SQL é não haver a necessidade de se preocupar em como os dados são recuperados, mas somente com o conteúdo do conjunto de dados. 31 “Apesar de conhecida como uma “linguagem de consulta”, a SQL oferece também recursos para definir a estrutura dos dados, atualizar, incluir, excluir e alterar dados, especificar restrições de integridade e outros recursos mais 6 . Segundo LEE (2006), os comandos SQL são divididos conforme a seguir. DDL (Data Definition Language), linguagem de definição de dados: Permite ao usuário criar/apagar tabelas, índices e visões. Os principais comandos são create, drop e alter. DML (Data Manipulation Language), linguagem de manipulação de dados: Permite ao usuário inserir, alterar, apagar ou selecionar registros (dados) em uma tabela. Os principais comandos são insert, update, delete e select. DCL (Data Control Language), linguagem de controle de dados: Controla as permissões de acesso dos usuários do banco de dados para ver ou manipular informações. Os principais comandos são grant e revoke. DQL (Data Query Language), linguagem de recuperação de dados: É a parte da SQL mais utilizada, sendo baseada no comando select para elaborar consultas. Um dos comandos DML mais importante é a consulta (select), pois é responsável por recuperar os dados armazenados no banco de dados utilizado, ou não critérios de restrição e junção a outras tabelas. (LEE,2006). 4.3.5 - SQLite O Android traz embutido o SQLite, que é uma biblioteca que implementa um mecanismo de banco de dados, sem servidor e com código de domínio público (LECHETA, 2010). O SQLite dá suporte à maioria das funções da SQL92, a terceira revisão do padrão SQL. Armazena as informações em um arquivo único e o tamanho do seu código é pequeno; por isso, pode ser utilizado em uma ampla gama de aparelhos, que disponham de recursos limitados (SQLITE, 2014). Com a utilização desse banco de dados, o armazenamento, consulta e manutenção dos dados se torna mais rápido e prático em relação aos celulares de gerações tecnológicas anteriores que proviam o armazenamento em arquivos simples. O limite desse banco de dados será dado pelo tamanho da memória do 22 dispositivo, 6 SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 109 32 podendo chegar a terabytes de armazenamento, e oferece diversos recursos, dentre eles os principais são (SQLITE, 2014): Zero Configuration: projetado para que não necessite de um DBA, o próprio programador pode configurar e administrar. Atomic Transactions: transações consistentes, isoladas e duráveis mesmo depois de falhas de sistema e falhas de energia. Self-contained: sem dependências externas. Cross-plataforma: Unix (Linux, Mac OS-X, Android, iOS) e Windows (Win32, WinCE, WinRT) e também funciona em plataformas embarcadas como QNX, VxWorks, Symbian, Palm OS, Windows CE. Small code footprint: menos de 500KiB totalmente configurado ou muito menos com os opcionais omitidos. Limits: Suporta bancos de dados de terabytes e string e blobs de gigabytes. 4.3.6 - Sinesp Cidadão O aplicativo Sinesp Cidadão é um módulo do Sistema Nacional de Informações de Segurança Pública, Prisionais e sobre Drogas, o Sinesp (Lei 12.681/2012), o qual permite acesso direto pelo cidadão aos serviços da Secretaria Nacional de Segurança Pública do Ministério da Justiça. O Sinesp Cidadão Consulta Veículos permite ao cidadão consultar a situação de roubo ou furto de qualquer veículo do Brasil. As informações são consultadas diretamente no banco de dados do Departamento Nacional de Trânsito (DENATRAN), conforme parceria entre este órgão e o Ministério da Justiça. Após instalar o aplicativo, basta clicar no ícone "Veículos" e digitar a placa para saber a situação do veículo. Caso a resposta seja positiva para furto ou roubo, a informação "VEÍCULO ROUBADO" aparecerá destacada em vermelho na tela de seu smartphone. É possível verificar também se o veículo é clonado, caso as características do mesmo não correspondam às retornadas pelo aplicativo. 33 5 - PROCEDIMENTOS METODOLÓGICOS 5.1 DESCRIÇÃO DE TODO O PROCESSO DE PESQUISA Os pesquisadores que adotam a abordagem qualitativa opõem-se ao pressuposto que defende um modelo único de pesquisa para todas as ciências, já que as ciências sociais têm sua especificidade, o que pressupõe uma metodologia própria. Assim, os pesquisadores qualitativos recusam o modelo positivista aplicado ao estudo do caso em questão. ”A pesquisa qualitativa não se preocupa com representatividade numérica, mas, sim, com o aprofundamento da compreensão de um grupo social, de uma organização, etc. 7 ” Os pesquisadores que utilizam os métodos qualitativos buscam explicar o porquê das coisas, exprimindo o que convém ser feito, mas não quantificam os valores e as trocas simbólicas nem se submetem à prova de fatos, pois os dados analisados são não-métricos (suscitados e de interação) e se valem de diferentes abordagens. Segundo DESLAURIERS 1991, na pesquisa qualitativa, o cientista é ao mesmo tempo o sujeito e o objeto de suas pesquisas. O desenvolvimento da pesquisa é imprevisível. O conhecimento do pesquisador é parcial e limitado. O objetivo da amostra é de produzir informações aprofundadas e ilustrativas: seja ela pequena ou grande, o que importa é que ela seja capaz de produzir novas informações. A pesquisa realizada em sistemas de monitoramentos tem o objetivo de conhecer, entender o funcionamento de monitoramento existente, com o intuito de divulgar e acima de tudo viabilizar novos meios e novas tecnologias a serviço de autoridades competentes. 7 GOLDENBERG, 1997, p. 34 34 6 - ESTUDO DE CASO 6.1 – DEFINIÇÃO DO ESTUDO DE CASO A proposta deste trabalho é oferecer novas tecnologias para o sistema de monitoramento público do Distrito Federal e Região, visto que este não tem solucionado os problemas de roubos e furtos de veículos, e sabendo das dificuldades em se recuperar os mesmos, o uso da tecnologia em favor da polícia no combate a crimilidade. A partir de dados levantado junto a Secretaria de Segurança Pública do Distrito Federal, é possível ter uma noção dos problemas com a segurança e a dificuldade que as autoridades enfrentam no que se refere ao combate ao roubo e furtos de veículos. Como os sistemas de monitoramento se dá por ponto fixo pode se desviar facilmente, dificultando ainda mais o processo de apreensão de veículos, e voltados apenas para a registros de débitose multas de transito, e não se pode agir no momento que é gerado a informação referente ao veículo, isso se dá devido à falta de tecnologia de acesso rápido e eficiente. Não se pode ter um resultado da circulação de veículos com registro de rouba nas ruas, ou que estejam sendo utilizado para pratica de demais crimes. O objetivo principal deste é o estudo de um sistema que possa apresentar mais segurança e presteza nas informações de roubos de veículos. Como as autoridades já obtém um banco de dados rico em informações, nada mais justo que utilizar todas essas informações para se obter mais êxito nas operações do dia a dia em tempo real. A implantação de uma nova tecnologia que influencia diretamente no processo, consiste em melhorias ou mudanças dos equipamentos para gerar maior eficiência e qualidade. Sistema semelhante foi implantado no Estado de Pernambuco com uso de tecnologia de identificação de placas através de leitura OCR. A Operação Trânsito Seguro, do DETRAN-PE, dá início a um novo formato de blitz: a blitz eletrônica. Este novo tipo de fiscalização vem auxiliar a blitz tradicional, incorporando a ela a tecnologia de reconhecimento eletrônico de placas. O projeto contribui para detectar com mais rapidez veículos que apresentam irregularidades, a exemplo de suspeita de roubo e de clonagem, além de agilizar a abordagem dos condutores, colaborando para a fluidez do trânsito. O DETRAN-PE adquiriu duas centrais móveis de 35 fiscalização eletrônica, uma para atuar em Recife e Região Metropolitana (RMR) e a outra para atuar no Interior do estado. O sistema de fiscalização eletrônica está instalado em viaturas de médio porte, dotadas de câmeras com sistema de reconhecimento óptico de caracteres (OCR), além de notebook e radiotransmissores, por meio dos quais a equipe alocada nas centrais móveis de fiscalização pode se comunicar com agentes de trânsito situados posicionados em diferentes locais. O raio de ação das câmeras é de 100 metros e elas são capazes de capturar a imagem de 4 placas a cada segundo. A imagem captada pelas câmeras é automaticamente transmitida para o computador da central eletrônica de fiscalização. Os dados da placa são lidos e confrontados com o banco de dados do DETRAN. No mesmo momento, são fornecidas informações associadas ao registro do veículo, como por exemplo: Se o veículo está com o Licenciamento regularizado Se o veículo é suspeito de roubo ou de clonagem Se o veículo possui alguma restrição judicial ou mandado de busca e apreensão O sistema de fiscalização eletrônica mostra, para o agente de trânsito que estiver ao computador, o tipo de irregularidade do veículo por meio das cores verde e vermelha, aludindo às cores do semáforo e seus respectivos significados: Verde indicando a ausência de irregularidades Vermelho indicando que o veículo está irregular O agente de trânsito presente na central de fiscalização eletrônica repassa a informação para os agentes localizados na blitz de abordagem presencial. Com isso, o tempo de abordagem será consideravelmente reduzido, tendo em vista que, de posse da informação sobre a regularidade ou irregularidade do veículo, bastará ao agente verificar, na abordagem presencial, o porte dos documentos e o cometimento de alguma infração, a exemplo da alcoolemia. Outra vantagem é que a detecção prévia de irregularidades pela central de fiscalização eletrônica, permite que o agente que estiver realizando a blitz de abordagem possa emitir com maior celeridade a notificação de infração, além de, 36 prontamente, conforme a irregularidade detectada, recolher o veículo, levando-o ao depósito do DETRAN-PE. A central de fiscalização eletrônica é capaz de monitorar vias de mão única e dupla, cruzamentos, entroncamentos e bifurcações, capturando as imagens dos veículos com qualidade, realizando o reconhecimento de placas dianteiras ou traseiras, independentemente da luminosidade ambiente, permitindo assim operações diurnas e noturnas. 6.2 - Levantamento Estatístico Com os dados coletados foi possível gerar informações da quantidade de veículos com queixa de roubos e furtos de veículos em todo o Distrito Federal de acordo com a Secretaria de Segurança Pública. No gráfico abaixo é possível identificar esses prejuízos gerado a sociedade. E, ainda podemos chegar à conclusão de que um sistema de monitoramento em tempo real possa ser uma das soluções a ser tomada mediante a dados tão alarmante, o uso da tecnologia como meio de combate a crimilidade. A seguir, os dados estatísticos criminais referentes as 31 Regiões Administrativas, as Regiões Integradas de Segurança Pública e ao Distrito Federal demonstrado na seguinte tabela. Tabela 02 - Acompanhamento de Roubos GOVERNO DO DISTRITO FEDERAL – SECRETARIA DE ESTADO DE SEGURANÇA PÚBLICA E PAZ SOCIAL SUBSECRETARIA DE GESTÃO DA INFORMAÇÃO- GERENCIA DE PADRONIZAÇÃO E QUALIDADE DE DADOS BALANÇO CRIMINAL DO VIVA BRASÍLIA – NOSSO PACTO PELA VIDA RA I – BRASÍLIA COMPARATIVO MENSAL 2016 EIXOS INDICADORES NATUREZA TOTAL 2016 JAN FEV MAR ABR MAI JUN JUL 2 . C .C .P . - C R IM E S C O N T R A O P A T R IM Ô N IO ROUBO DE VEICULO 159 24 20 23 31 21 19 21 FURTO DE VEICULO 2608 340 241 323 529 483 378 314 1. TOTAL C.C.P 2767 364 261 346 560 504 397 335 LOCALIZAÇÃO DE VEICULO 251 28 37 45 42 41 34 32 2. TOTAL PRODUTIVIDADE POLICIAL/DÉFICIT 2516 336 224 301 518 463 363 303 Fonte: Banco Millenium - GEPAD/CCTD/SGI/SSPDF 37 0 100 200 300 400 500 600 364 261 346 560 504 397 335 28 37 45 42 41 34 32 336 224 301 518 463 363 303 VEICULOS ROUBADOS 1. TOTAL C.C.P LOCALIZAÇÃO DE VEICULO TOTAL Tabela 03 - Números de Roubos De acordo com levantamento acima citado, nota-se a grande dificuldade das autoridades em conseguir recuperar veículos com queixa de furto ou roubo, sem auxilio e segurança adequada, sistema que atue de forma rápida e precisa com segurança, sem a necessidade de exposição da profissional competente. 6.3 - Uso da Aplicação Demonstrando a Funcionalidade Figura 09 - Tela Inicial do Equipamento Tela principal do dispositivo, nela são exibidos os ícones de acesso a sub- menus para o acesso a todas as informações contidas no aparelho. Estão disponíveis os ícones de; Configuração do dispositivo; navegação GPS; Histórico de 38 Veículos Roubados; Modo monitoramento; Pesquisa; Alertas; Comando de voz; Central de informações contato com demais dispositivos e Mapeamento. Figura 10 - Navegação e Monitoramento Essa tela, certamente será a mais usada, ela será exibida todo o tempo durante o funcionamento da viatura, fazendo uma varredura em todos os veículos que cruzarem a frente da viatura de acordo o campo de visão do dispositivo instalado no painel da mesma. Nela está sendo exibido o alerta de um possível veículo roubado, nesse instante, o equipamento envia também um sinal sonoro, além do próprio dispositivo para as autoridades no interior da viatura, também para demais viaturas em um determinado perímetro, onde foi detectado aquele veículo suspeito, e para a central, onde são armazenadas todas essas informações de sinistros. Os botões a esquerda têm a seguinte função; retornar ao menu principal; Modo navegação; Volume; Informação.
Compartilhar