controle de acesso veicular utilizando reconhecimento de imagem

VEHICLE ACCESS CONTROL SYSTEM USING IMAGE RECOGNITION

REGISTRO DOI: 10.5281/zenodo.10014393


Hitchely Gomes Dias1
Mario Marcos Brito Horta2


1 Introdução

O controle de estacionamento nos mais diversos empreendimentos surgiram com a necessidade de gerenciar o intenso fluxo de entrada e saída de veículos, vinculando usuários, sejam funcionários ou visitantes, e permitindo o controle de vagas. A frota total de veículos da Região Metropolitana de Belo Horizonte foi a que mais cresceu nos últimos anos, sendo também a que mais cresceu em percentual de veículos entre os anos 2001-2012, apresentando crescimento maior do que a média nacional da região sudeste com 91,6%, sofrendo um aumento de 123,6% nesse período (RODRIGUES, 2013).

Contudo este crescente aumento de veículos acarreta uma grande diversidade de problemas tornando cada vez mais frequente a superlotação de estacionamentos públicos e privados, vias obstruídas e congestionamentos. Isso acaba tornando ineficiente o monitoramento de locais com grande fluxo de automóveis. Levando em conta o crescimento das cidades e o elevado número de pessoas que possuem automóveis, os estacionamentos são estratégicos e necessários (principalmente nos centros das grandes cidades).

Um dos problemas identificados em estacionamentos é a falta de controle de acesso e de vagas devido a falhas de monitoramento. Isso acaba provocando perda de faturamento, de clientes e até mesmo de credibilidade para os estabelecimentos. Outro problema identificado é a insegurança do usuário em guardar seu veículo em um estacionamento sem controle de acesso.

Devido às dificuldades que os setores de controle de acesso de veículos possuem em conseguir informações rápidas e precisas, faz-se necessária a aplicação de soluções automatizadas, através do reconhecimento de placas veiculares utilizando um sistema computacional capaz de capturar e identificar informações de um carro, garantindo um acesso mais rápido, seguro e eficaz.

Um exemplo claro desse elevado número de automóveis pode ser observado em estabelecimentos e instituições que dispõem de um grande anexo para estacionamento e um elevado número de automóveis para comportar, como é o caso do Centro Universitário de Belo Horizonte (UniBH) campus Estoril, que não possui um setor de controle de acesso eficiente, e no turno noturno, o estacionamento do UniBH não possui vagas suficientes devido ao excesso de veículos que têm acesso ao campus. Para sanar este problema a instituição desenvolveu um planejamento de rodízio de carros que leva em consideração a numeração impar ou par das placas dos veículos cadastrados.  Porém esse controle não é feito de forma automatizada, e não dá garantias de que somente alunos do UNIBH farão uso do estacionamento, devido ao fato de que apenas a numeração das placas é verificada.

O Objetivo desse trabalho é apresentar um sistema de identificação e controle de placas veiculares, tendo como principais finalidades: Controle de fluxo, fiscalização e identificação dos veículos, determinando assim se o veículo está autorizado a adentrar ao estacionamento do campus, prezando pela segurança e comodidade dos estudantes da instituição. Os objetivos específicos são desenvolver um código de programação, demonstrar as etapas do processamento da imagem, propor uma automação do sistema de controle do estacionamento que verifica se as placas capturadas possuem autorização para utilizar o estacionamento.

1.1 Reconhecimento de imagens voltada para automatização de processos

O sistema de controle de acesso e de monitoramento de veículos em instituições geralmente é feito de forma manual (devido ao seu custo reduzido), apesar de ser mais susceptível ao erro humano (GARCIA, 2013). Dessa forma, a automatização do sistema de controle de acesso a estacionamentos se mostra uma solução vantajosa, pois evita problema como o acesso não autorizado e além disso, disponibiliza em tempo real informações sobre quais usuários acessaram o estacionamento em determinado período permitindo, portanto, um controle mais rápido e eficaz.

O avanço tecnológico tem permitido o desenvolvimento de sistemas cada vez mais sofisticados e eficientes. A automatização de sistemas visa proporcionar maior segurança, conforto, agilidade e economia. O reconhecimento de imagem é uma maneira eficiente de se obter informações sobre os carros através do reconhecimento de placas. Neste aspecto, o reconhecimento de imagem apresenta uma infinidade de aplicações implementadas em indústrias, processos produtivos, controle de tráfego em rodovias, em pedágios, acessos aos estacionamentos, e em detecção e controle de veículos pelo departamento de trânsito (THOMÉ; GUINGO; RODRIGUES, 2002).

A prévia triagem dos veículos, identifica possíveis usuários com problemas, possibilidade de localização imediata daqueles com registro de roubo, bloqueios judiciais para apreensão do veículo, e ainda o controle remoto do sistema, estes são alguns dos benefícios gerado pela implementação desse sistema na portaria do estacionamento.

1.2 Trânsito Local e estacionamento da UNIBH

Incentivado pelo governo, o poder aquisitivo na última década cresceu consideravelmente, permitindo a um maior número de brasileiros terem o próprio carro, contribuindo assim para a ampliação das frotas municipais. Apesar da crise financeira que atingiu o país nos últimos anos acabar reduzindo a demanda de veículos, verificou-se significativa melhora desse mercado (produção e venda de veículos) a partir do ano 2017 (SODRÉ, 2019). Considerado o segundo bairro mais populosos da capital mineira e o mais populoso da região oeste (REZENDE, ÁLVARES, 2019), o Buritis, se destaca pela quantidade de automóveis advindos da populosa comunidade local transitando pelas poucas vias de entrada e saída disponíveis pelo bairro. A estagnação  no trânsito ocorre, principalmente, nos denominados “horários de pico”, que são períodos em que a maioria das pessoas estão se deslocando de casa ao trabalho e vice-versa.

Além disso, a instalação de duas grandes instituições de ensino superior, sendo uma delas o UniBH, agrava ainda mais o problema de tráfego de veículos na região, principalmente nos horários de entrada e saída dos alunos. É possível observar na Figura 1, o mapa detalhando a região do bairro Buritis em que se encontra o UniBH. Verifica-se a grande proximidade com o Centro Universitário Newton Paiva.

Figura 1 – Apresentação do trânsito local pelo mapa do bairro Buritis

Fonte – Elaborada pelo Autor, 2020.

Situado no bairro Buritis, o maior campus da UNI-BH oferece uma área de aproximadamente 133.000 m², comportando 15 mil alunos e 1500 colaboradores. É disponibilizado a seus alunos e funcionários um estacionamento com cerca de 1300 vagas, divididos entre carros, motos e vans. O estacionamento é divido em três áreas distintas representadas por cores como demostrado na Figura 2, sendo o estacionamento para os alunos representado pela cor vermelha, o de funcionários pela cor amarela e o de vans para transporte de alunos na cor azul.

Figura 2 –  Visão 3D do estacionamento UNIBH referente à unidade Estoril

Fonte – Elaborada pelo Autor, 2020.

A instituição detém um grande espaço físico, e devido ao aumento progressivo do número de alunos matriculados a cada semestre, o acesso às instalações da instituição vai ser ainda mais requisitado, gerando um progressivo aumento de veículos ao estacionamento de forma desordenada. Considerando que o campus não possui um controle de acesso eficiente e automatizado, sendo assim esse projeto apresenta uma alternativa para reverter esse problema diário de forma simplificada e eficiente.

1.3 Projetos desenvolvidos

Foram desenvolvidos outros projetos embasados em automação para estacionamentos utilizando detecção de placas de veículos, como o do autor GARCIA (2019), que desenvolveu um sistema para gerenciamento de estacionamentos utilizando radiofrequência RFID, identificação por radiofrequência é a transmissão da identidade de um objeto, ou entidade, a partir de uma etiqueta (microchip com uma antena) para um leitor por meio de ondas de radiofrequência. Uma tecnologia versátil que possibilita a transferência de dados sem necessidade de fios ou contato físico.

Já os autores GUINGO e THOMÉ (2002), seguiram a metodologia abordada por GUINGO (2002), que trata o problema de forma modular, onde o sistema de reconhecimento é constituído por seis etapas, e cada uma destas têm uma funcionalidade específica, que cobrem desde a tomada da imagem até o reconhecimento de cada um dos caracteres que compõe a placa. Técnicas de processamento de imagens e de inteligência computacional – redes neurais são intensivamente empregadas.

O dispositivo proposto nesse trabalho consiste em um sistema de autorização de acesso de automóveis ao estacionamento, através do reconhecimento dos caracteres alfanuméricos das placas dos automóveis. Primeiramente é capturada a imagem da placa do carro, que em seguida passa por um processamento digital com base em processos já elencados abaixo. Após a obtenção dos caracteres ocorre uma verificação no banco de dados. Se o automóvel estiver registrado, uma cancela/portão se abrirá permitindo sua passagem.

2 Metodologia

Durante o processo de pesquisa foi realizado um questionário com algumas considerações a respeito dos problemas do estacionamento do UniBH, como a satisfação dos usuários, a segurança, os principais problemas encontrados para utilização do estacionamento, e a viabilidade deste tipo de implementação. Em seguida foi apresentado uma técnica de localização de placas de veículos automotores através de imagens digitalizadas adquiridas em condições reais, um processo desenvolvido pela biblioteca OpenCV, juntamente com outros dispositivos aplicados a um sistema embarcado. Deste modo é apresentada uma descrição completa do modelo proposto, sendo que, primeiro, descreve-se o funcionamento básico do sistema e, em seguida tem se uma visão mais ampla e detalhada dos seus parâmetros e desempenho.

Para definição da metodologia de abordagem sobre o funcionamento do sistema de controle de acesso ao estacionamento, primeiramente é apresentada uma forma de definição de fluxo de atividades que conduzem o foco de observação do funcionamento desse sistema conforme o fluxograma descrito na Figura 3.

Nesse fluxograma há uma análise simplificada de como ocorre todos os passos para validação da entrada de carros ao estacionamento. Assim, o processo de análise descrito nesse fluxograma define as etapas de reconhecimento do veículo, validação junto ao programa desenvolvido e liberação ou não da entrada do veículo.

Figura 3 – Fluxograma do funcionamento básico do sistema.

Fonte – Elaborada pelo Autor, 2020.

2.1 Visão Computacional

A visão computacional tem como função se assemelhar ao máximo ao processo da visão humana, a fim de que um sistema automatizado possa reproduzir imagens de objetos visualizados, procurando emular a visão humana. Conforme Milano e Honorato (2010), a visão computacional é a ciência responsável pela visão de uma máquina, pela forma como um computador enxerga o meio à sua volta, extraindo informações significativas a partir de imagens capturadas por câmeras de vídeo, sensores, scanners, entre outros dispositivos.

Ao contrário do ser humano que processa as informações visualizadas através impulsos luminosos direcionados ao cérebro, o computador recebe enormes quantidades de números transmitidos por meio de uma câmera ou por um meio de armazenamento de informação, assim o seu sistema é capaz de extrair um conjunto de atributos que descrevam uma cena visualizada, reproduzindo em sua saída de dados uma descrição detalhada dos dados recebidos na entrada do sistema.

Visão computacional é o estudo da extração de informação de uma imagem; mais especificamente, é a construção de descrições explícitas e claras dos objetos em uma imagem. (BALLARD E BROWN, 1982).

Os autores MILANO E HONORATO (2010) também falam que a visão computacional fornece ao computador uma infinidade de informações precisas a partir de imagens e vídeos, de forma que o computador consiga executar tarefas inteligentes, simulando e aproximando-se da inteligência humana. Sendo assim um sistema com visão computacional é capaz de adquirir, processar e interpretar imagens, mais depende de vários processos para ter uma imagem visível, desde a obtenção da imagem à tomada de decisão. Um dos motivos que causa a deformação da imagem adquirida são ruídos e distorção, esses fatores são decorrentes de variações externas como iluminação, movimentos, reflexos, tempo de integração com o sensor e interação com outros aparelhos eletrônicos.

Figura 4 – Representação da Visão Computacional.

Fonte – Elaborada pelo Autor, 2020.

2.2 Processamento da Imagem

São técnicas voltadas para formas de processamentos de dados destinados a manipulação de uma imagem pelo computador, onde a entrada e a saída do processo serão imagens. 

Visão computacional difere do processamento de imagens porque, enquanto ele se trata apenas da transformação de imagens em outras imagens, ela trata explicitamente da obtenção e manipulação dos dados de uma imagem e do uso deles para diferentes propósitos. (RIOS, 2010).

Para o desenvolvimento do sistema proposto, foi levada em consideração uma série de procedimentos, de forma a garantir confiabilidade e eficácia ao projeto. Na Figura 5 é possível visualizar de forma simplificada as fases de funcionamento do mesmo (OLIVEIRA, 1999), sendo elas:

  • Aquisição de imagem

A aquisição da imagem será feita em tempo real, onde tem o objetivo de capturar imagem da parte frontal do veículo, a fim de se obter a placa do usuário do estacionamento. Para isso, é utilizado na programação uma biblioteca (OpenCV) para realizar essa captura, por meio de uma função chamada “cvCaptureFromCAM” que inicia a captura através da câmera.

  • Pré-Processamento

Após a captura da imagem é necessário que a imagem passe por um processamento, facilitando assim na detecção do objeto a ser reconhecido. Aplicou-se um filtro para redução e conversão de cores para que a imagem fosse reduzida ao padrão branco e preto, esse padrão melhora o processo de reconhecimento.

  • Segmentação

O processamento da imagem possibilita uma melhor detecção do objeto. Isso pode ser feito através de realce de bordas em conjunto com Thresholding (binarização) onde ocorre a seleção do limiar de separação, através disso o objeto se enquadra em padrões preestabelecidos, como por exemplo em uma forma retangular, entendendo assim ser a placa do veículo.

  • Extração de atributos

Todo o processamento de imagem e a segmentação é feito com o intuito de fornecer uma imagem que forneça uma boa leitura para a extração dos caracteres. É utilizado o Tesseract para extração de caracteres das imagens das placas capturadas, obtendo ao usuário a informação extraída em formato de texto.

  • Reconhecimento de padrões

Após a extração dos caracteres é então feito a verificação e comparação da placa extraída com os dados armazenados no sistema de placas registradas.

Figura 5 – Etapas do processo de funcionamento

Fonte – Elaborada pelo Autor, 2020.

2.3 OCR

O OCR é um acrônimo formado pela junção de Optical Character Recognition ou Reconhecimento Ótico de Caracteres é uma tecnologia capaz de extrair informações a partir de uma imagem qualquer sem a necessidade da intervenção humana. Um exemplo dessa aplicação são correios que utilizam tal recurso direcionando as correspondências através da leitura dos CEP de destino ou mesmo os radares que por meio da captura de uma foto por uma câmera de alta sensibilidade a placa de carro transitando irregularmente, utilizará o OCR para extrair os números e letras da imagem que foi recebida.

Parte essencial da arquitetura da programação aqui desenvolvida, pois é através dela que vai ser obtida a informação necessária das placas por meio do reconhecimento alfanumérico. Porém para que o OCR opere é necessário utilizar um método de entrada para o computador, seja por câmera, celular ou outro dispositivo de hardware que realize a captura da imagem à qual se deseja trabalhar. No projeto foi utilizado uma câmera fotográfica Webam pela sua disponibilidade no mercado, além de custo benefício e ser de fácil implementação.

2.4 Bibliotecas

Um recurso fundamental do desenvolvimento deste sistema são as bibliotecas, é por intermédio delas que temos comandos prontos, facilitando na realização de processos que teriam que ser programados separadamente para realização de processos, como filtragem, reconhecimento e contraste, tornando-as mecanismos insubstituíveis no desenvolvimento de programação.  

A biblioteca OpenCV desenvolvida pela Intel 2000, permite manipulação de dados de imagens, manipulação de matrizes e vetores, desenvolvimento de rotinas de álgebra linear, estruturas de dados dinâmicos, desenvolvimento de algoritmos de processamentos de imagens, análise de estrutural, etc. (BARBOZA, 2009).

São utilizadas em inúmeras aplicabilidades e constituídas de várias funções com o intuito de tornar o desenvolvimento de programas fácil, prático e totalmente funcional e compacta.

3     Resultados e Discussões

Como dito anteriormente, foi realizado um questionário de forma a verificar a necessidade da implementação de um sistema automatizado na portaria do estacionamento. Dentre as perguntas realizadas, foram consideradas aquelas que mais se adequavam a proposta do trabalho. Os resultados obtidos podem ser observados nos gráficos das Figuras 6 e 7 abaixo.

Figura 6 – Respostas sobre a automatização do acesso ao estacionamento

Fonte – Elaborada pelo Autor, 2020.

Figura 7 – Respostas em relação à segurança do sistema atual.

Fonte – Elaborada pelo Autor, 2020.

Foi observado através dos resultados do questionário que entre as pessoas que fazem uso do estacionamento, a maioria tem certas preocupações referentes ao estacionamento. Isso faz com que a aplicação de uma tecnologia mais segura e confiável se torne uma alternativa interessante para satisfazer as necessidades dos usuários. Pensando nisso foi feito um estudo dos processos para a eventual construção de um sistema que pudesse solucionar o problema em questão.

3.1 Fases de funcionamento do sistema

O desenvolvimento da programação foi realizado no Visual Studio um ambiente de desenvolvimento integrado da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens Visual Basic, C, C++, C# e J#.

Figura 8 – Respostas sobre a automatização do acesso ao estacionamento

Fonte – Elaborada pelo Autor, 2020.

Assim que os carros chegam na entrada do estacionamento é iniciado o funcionamento do sistema.

Para testar a funcionalidade da aplicação proposta, foi utilizado a imagem da placa de um veículo, como pode ser observado na Figura 9 a seguir.

Figura 9 – Captura de uma placa veicular pelo webcam

Fonte – Elaborada pelo Autor, 2020.

Foi realizado a captura em tempo real da imagem pelo webcam, e em seguida foram aplicados filtros para a remoção de ruídos, sombreamentos, dentre outros elementos que prejudiquem a resolução da imagem sejam retirados.

Figura 10 – Apresentação dos processos de filtragem.

Fonte – Elaborada pelo Autor, 2020.

Os filtros trabalham separadamente, mas para a obtenção do resultado final da imagem, os efeitos aplicados se somam restando apenas as informações mais relevantes, como vai ser representado no tópico de processamento.

Figura 11 – Apresentação dos processos de filtragem

Fonte – Elaborada pelo Autor, 2020.

Cada uma das telas representa um tratamento diferente e todos voltados para o melhoramento da imagem, para que nas próximas etapas o OCR possa realizar a extração da informação.

Depois que a imagem foi trabalhada, para que ela possa ser encaminhada outro diretório foi planejado em uma linha de programação, que carrega um determinado tipo de imagem em um programa que utiliza linguagem C++/C#.

Figura 12 – Apresentação da uma programação de armazenamento no diretório.

Fonte – Elaborado pelos autores, 2017.

O funcionamento do sistema pode ser resumido em três principais fases que é a Captura, Processamento e Extração de texto da imagem. Através dessas etapas será então descrita as atividades do processo.

3.1.1 Captura

Para o funcionamento do projeto é necessária que a captura da imagem seja feita em tempo real, para isso foi usado a seguinte função que vem inclusa na biblioteca OpenCV:

CvCapture*capture = NULL;
//capture = cvCaptureFromCAM ( -1 );

Foi obtido então a imagem da câmera, que nesse caso utilizou a webcam. Logo após foi verificado o seu funcionamento e em caso de não reconhecimento o sistema irá enviará uma mensagem de alerta ao usuário.

//Executa a função enquanto a condição for verdadeira (dispositivo de captura ativado)

    if( capture ){

        while( true ){

               frame = cvQueryFrame( capture );

               if( !frame ) break;

               if( !frame->imageSize==0 ){

                   startT=clock();

                   frameDeteccaoPlaca( frame );

                   endT=clock();

                   cout << (double) (endT-startT) << endl;}

//Executa a mensagem de alerta caso a condição seja falsa (dispositivo desativado)

               else{

                    cout << “Problema na webcam! Sem captura” << endl;

                    break;}

3.1.2    Processamento

Após obtido a captura da imagem foram aplicados filtros que visam uma melhoria da imagem para facilitar a extração dos caracteres. Pode ser observado na Figura 13, a imagem da placa sem a aplicação de nenhum filtro e na Figura 14, a imagem com a aplicação de um filtro cinza (serve para tirar as cores da imagem).

Figura 13 – Imagem original da placa.

Fonte – Elaborada pelo Autor, 2020.

Figura 14 – Aplicação filtro cinza (preto e branco)

Fonte – Elaborada pelos Autores, 2017.

CvtColor é uma função do OpenCv específica para converter imagens de um espaço de cores para outro.

cvCvtColor(frame, frame_gray, CV_BGR2GRAY);

Logo após aplicou-se um filtro para desfoque gaussiano removendo a maioria dos ruídos da imagem.

       cvSmooth(frame_gray, frame_gray, CV_GAUSSIAN, 3, 3);                      

Ao eliminar os ruídos tirou-se algumas distorções ou deformações da imagem:

Figura 15 – Aplicação filtro gaussiano

Fonte – Elaborada pelo Autor, 2020.

Em seguida foi aplicado dois filtros, o passa-alta (High-Pass) e o Canny. Onde o passa-alta usa o máximo de preto e branco, e o Canny trabalha as bordas para fazer o tratamento final como pode ser conferido na Figura 16.

Figura 16 – Aplicação dos filtros passa- alta e canny.

Fonte – Elaborada pelo Autor, 2020.

A aplicação desses filtros garante a imagem uma visão mais nítida.

       cvCanny(frame_gray, frame_canny, 0, 255, 3);                            

Por último foi criado um laço que remove os tons irrelevantes e depois realça a cor e a intensidade das letras, como pode ser visto na Figura 17.

Figura 17 – Aplicação filtro preto e branco.

Fonte – Elaborada pelo Autor, 2020.

3.1.3    Extração de texto da imagem

Após o processamento da imagem, foram aplicadas funções que possibilitam a separação dos caracteres caso eles estejam juntos de forma a interferir na leitura realizando também o processo de extração de texto da placa, e o processo de comparação de parâmetros de uma imagem como visto na Figura 18 e Figura 19. Estas etapas serão desenvolvidas através de funções que utilizam a biblioteca Tesseract como representado na Figura 23.

Figura 18– Parâmetros para comparação da imagem obtida

Fonte – Elaborada pelo Autor, 2020.

Figura 19 – Parâmetros para comparação da imagem obtida

Fonte – Elaborada pelo Autor, 2020.

A primeira parte desse processo é criar um laço e assimilar ao conjunto alfanumérico como demonstrado na Figura 20. Logo após é transformado para o formato HLS (Hue-Lightness-Saturation) ou tonalidade, brilho e saturação que a partir dos valores da imagem de entrada, basicamente vai alterar o contraste da imagem, aumentando assim as características para facilitar na detecção do objeto.

Figura 20 – Código para assimilação alfanumérico.

//Função que aciona o tesseract para criar o laço e assimilar ao conjunto alfanumérico
void tesseractOCR(IplImage *placa, int x, int y, int width, int height) {
       TessBaseAPI tess;
       tess.SetVariable(“tessedit_char_whitelist”, “ABCDEFGHIJKLMNOPRSTUVWXYZ1234567890”);
       tess.Init(NULL, “placa”);
       tess.SetImage((uchar*)placa->imageData, placa->width, placa->height, placa->nChannels, placa->widthStep);
       tess.SetRectangle(x, y, width, height);
       //tess.GetBoxText(0);
       tess.Recognize(0);
       //tess.TesseractRect
       const char* out = tess.GetUTF8Text();
       tess.End();
       cout << out << endl;
}

Fonte – Elaborada pelo Autor, 2020.

Linhas de código referente a função de transformação do para o formato HLS representado na Figura 21.

Figura 21 – Código para transformação formato HLS.

//Função que transforma a imagem para o formato HLS a partir dos valores da imagem de entrada
void trataImagemHLS(IplImage* frame) {
       IplImage* frame_HLS = cvCreateImage(cvSize(frame->width, frame->height), IPL_DEPTH_8U, 3);
       cvCvtColor(frame, frame_HLS, CV_BGR2HLS);
       unsigned int height = frame_HLS->height;
       unsigned int width = frame_HLS->width;
       unsigned int step = frame_HLS->widthStep;
       unsigned int channels = frame_HLS->nChannels;
       uchar *data = (uchar*)frame_HLS->imageData;

Fonte – Elaborada pelo Autor, 2020.

Em seguida foi feito uma varredura dos pixels Figura 22, e após isso move-se a imagem para comparar com as bases e finalmente depois da comparação foi feito o reconhecimento, e a extração de texto da imagem.

Figura 22 – Código para varredura de pixel.

//Função para varrer os pixels da imagem
       //Na função for externa trabalha-se a largura e na interna, a altura
       for (unsigned int i = 0; i < height; i++) {
             for (unsigned int j = 0; j < width; j++) {
                    float H = float(data[i*step + j * channels]);                  //Escala de 0:360
                    float L = float(data[i*step + j * channels + 1]);                //Escala de 0:100
                    float S = float(data[i*step + j * channels + 2]);                //Escala de 0:100
                    data[i*step + j * channels] = uchar(H);
                    data[i*step + j * channels + 1] = uchar(L);
                    data[i*step + j * channels + 2] = uchar(S);

       Fonte – Elaborada pelo Autor, 2020.

Uma dificuldade encontrada durante o desenvolvimento deste projeto foi realizar a junção do OpenCv que realiza toda a parte de tratamento e filmagem de imagem, a fim de que a biblioteca Tesseract possa retirar a informação em forma de texto da imagem recebida. Para obter o desenvolvimento dessas duas bibliotecas foi preciso trabalhar com uma plataforma de operação com mais duas linguagens de programação diferentes. Devido a isso não foi possível colocar os dois operando no mesmo canal.

Como uma forma de solucionar esse problema gerado durante sua implementação foi determinado que era necessária a criação de um diretório para onde será alocada a imagem após ter sido trabalhada pelo OpenCv que vai ser programado para realizar o mesmo processo toda vez que placa de um automóvel for capturada pela câmera, substituindo a antiga imagem pela nova recebida, realizando novamente todo o sistema de tratamento de imagem. Assim que a imagem for direcionada a esse diretório vinculado ao Tesseract, vai ocorrer a subscrição da imagem armazenada anteriormente pela atual, para que seja realizada a extração das informações a respeito do novo veículo, coma finalidade de realizar uma varredura no sistema de cadastramento para liberação da entrada.

Dependendo da resposta obtida será libertado o acesso ao estacionamento. Caso não conste será encaminhada a uma das opções apresentado no fluxograma da Figura 23.

Figura 23 Apresentação dos processos de filtragem

Fonte – Elaborada pelo Autor, 2020.

3.2         Prospecções e trabalhos futuros

Esta trabalho deixa reflexões sobre algumas questões que podem ser objetos de novas pesquisas: Ao interligar os dois sistemas deixou-se separados seu funcionamento devido a dificuldades relacionadas a programação, e conhecimentos mais específicos voltados a programação e área computacional.

A implementação do sistema proposto na portaria do UniBH, e sua comunicação com a cancela e com o próprio sistema de cadastramento de placa instituição, ao qual precisou-se de autorização para acessar, pois são dados dos alunos da instituição.

 Levantamento e análise de custos, englobando todo seu desenvolvimento, até a implementação final.

Desenvolvimento do protótipo de implementação, levando em consideração que são duas portarias.

Parte da programação direcionada ao diretório se utilizado uma a versão do sistema que utilizas as duas bibliotecas, porém com sistema operante separado, e desenvolvimento de um método de funcionamento com as duas partes integradas do mesmo sistema, sem necessidade de um diretório.

Uma possível melhora do tempo de processamento da foto e abertura da cancela. Que eventual vai ser analisada depois durante sua implementação.

Melhor desenvolvimento da programação que ficou bem robusta, e o desenvolvimento de um diretório que vai armazenar essas fotos para transmiti-las a outra parte do sistema. Até mesmo as técnicas de processamento de imagens que podem ser ampliadas, contendo ainda mais processos de filtragem e melhoramento de imagem.

A implementação de um aplicativo que faz todo um reconhecimento do estacionamento informando aos usuários todas as vagas disponíveis no local, e suas respectivas localidades. Este sistema vai ser composto de sensores de captação e monitoramento, uma vez que a segurança do campus é uma das prioridades.

4 . Conclusão

Com a realização desse estudo foi possível desenvolver uma tecnologia de identificação e processamento de imagens de placa de veículos para o controle de acesso ao estacionamento do Centro Universitário de Belo Horizonte (UniBH).

Foi possível averiguar por meio de pesquisa de opinião e análises realizadas que a automatização do controle de acesso do estacionamento trará grandes benefícios aos usuários, sendo o maior deles, o aumento da segurança.

No entanto, há muito a ser explorado e melhorado. Funções como identificação do número de vagas disponíveis no estacionamento e comunicação em rede de todas as portarias de acesso de todos os campus se mostram uma alternativa interessante do ponto de vista administrativo (por parte do UniBH).

Vale salientar que este trabalho conseguiu apresentar uma solução visando a automatização do controle de acesso do estacionamento, atingindo dessa forma os objetivos que foram estabelecidos. Variáveis como a falta de conhecimento mais profundo em linguagem de programação se mostraram um empecilho para o desenvolvimento pleno da aplicação, mas, que não afetou de forma significativa o resultado final. 

Referências

BALLARD, Dana; BROWN, Christopher. COMPUTER VISION. Livro 12 p.  Rochester, Nova York. 1982.

Disponível em: <http://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/LIB/bandbpref.pdf>.Acesso em: 26 nov. 2017.

BARBOZA, Daniel Ponciano. ESTUDO DA BIBLIOTECA OPENCV. Curso de Ciência da Computação e Eletrônica,  62 f. MONOGRAFIA. Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2009. Disponível em: <http://monografias.poli.ufrj.br/monografias/monopoli10001999.pdf>. Acesso em: 10 novembro  2017.

CABRAL, fabio Augusto; MACHADO, Victor Hugo Pereira. IDENTIFICADOR DE PLACA VEICULAR: alternativa para segurança em escolas. 2014. 52 f.- Curso de Pós-graduação em Tecnologia da Universidade Tecnológica Federal do Paraná Como, Pós Graduação, Universidade Tecnológica Federal do Paraná, Curitiba, 2014. Cap. 00. Disponível em:<http://repositorio.roca.utfpr.edu.br/jspui/bitstream/1/3632/1/CT_TECJAVMOV_II_2013_06.pdf>. Acesso em: 25 nov. 2017.

FERREIRA, Luismar Sebastião; SOARES, Luciano Pereira. RECONHECIMENTO AUTOMÁTICO DE PLACA VEICULAR. 2012. 32 f. TCC (Graduação) – Curso de Ciência da Computação, Puc- Rio de Janeiro, Rio de Janeiro, 2012. Disponível em: <file:///C:/Users/geova/Desktop/REFERÊNCIAS DO TCC/REconhecimentodeplacas_ref.pdf>. Acesso em: 10 out. 2017.

GARCIA, Karla Maria. SISTEMA DE CONTROLE DE ACESSO VEICULAR UTILIZANDO TECNOLOGIA RFID. 2013. 109 f. Pós-graduação em Tecnologia dA Universidade Tecnológica Federal de Santa Catarina, Florianópolis, 2013. Cap. 00. Disponível em: <http://www.professorpetry.com.br/Ensino/Defesas_Pos_Graduacao/Defesa%2038_Karla%20Maria%20Garcia_Sistema%20de%20Controle%20de%20Acesso%20Veicular%20Utilizando%20Tecnologia%20RFID.pdf>. Acesso em: 12 dez. 2017.

MILANO, Danilo; HONORATO, Luciano B. Visão Computacional. Unicamp, 2010. Disponível em: http://www.ft.unicamp.br/liag/wp/monografias/monografias/2010_IA_FT_UNICAMP_visaoComputacional.pdf. Acesso em: 20 nov. 2017.

NASCIMENTO, Jean Dias. DETECÇÃO E RECONHECIMENTO DE PLACA AUTOMOTIVA COM BAIXO CUSTO. 2012. 110 f. Tese (Doutorado) – Curso de Engenharia da Computação, Uniceb, Brasília, 2012. Disponível em: <UniCeb>. Acesso em: 12 dez. 2017

REZENDE, Marcos; ÁLVARES, Ricardo. BURITIS 60 ANOS DA MEMÓRIA PARA A HISTÓRIA. Belo Horizonte, Escola Americana de Belo Horizonte. 2013. Disponível em: <http://eabh.com.br/flipbook/eabh_livro_60anos.pdf>. Acesso em: 10 out. 2017.

RIOS, LUIZ. VISÃO COMPUTACIONAL. Departamento de Ciência da computação – Universidade Federal da Bahia. 8 f. Bahia. Disponível em:< http://homes.dcc.ufba.br/~luizromario/Apresenta%C3%A7%C3%A3o%20de%20IA/Artigo%20(final).pdf> Acesso em: 25 nov. 2017.

RODRIGUES, Juciano Martins. EVOLUÇÃO DA FROTA DE AUTOMÓVEIS E MOTOS NO BRASIL 2001-2012. Rio de Janeiro: INCT Observatório das Metrópoles, 2013. Disponível em: <http://www.observatoriodasmetropoles.net/download/auto_motos2013.pdf>. Acesso em: 30 set. 2017.

SODRÉ, Eduardo. Brasil tem retomada em venda de carros e recorde de exportações. Disponível em: <http://www1.folha.uol.com.br/mercado/2017/04/1873181-brasil-tem-retomada-de-venda-carros-e-recorde-de-exportacoes-no-trimestre.shtml>. Acesso em: 16 out. 2017.

THOMÉ, Antonio Carlos Gay; GUINGO, Bruno Clemente; RODRIGUES, Roberto José. RECONHECIMENTO AUTOMÁTICO DE PLACAS DE VEÍCULOS AUTOMOTORES ATRAVÉS DE REDES NEURAIS ARTIFICIAIS. Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2002. Disponível em: <http://www.nce.ufrj.br/labic/downloads/2CBComp_2002.pdf>. Acesso em: 25 out. 2017.


1Graduando em Engenharia Elétrica pelo Centro Universitário de Belo Horizonte UNIBH, 2020. hitchely@gmail.com
2Mestre em Engenharia Elétrica pela Pontifícia Universidade Católica de Minas Gerais PUC Minas, 2003. Professor do Centro Universitário de Belo Horizonte – UniBH. Belo Horizonte, MG.