IDENTIFICAÇÃO AUTOMÁTICA DE PLACA DE VEÍCULOS ATRAVÉS DE ... - SECITEC
IDENTIFICA??O AUTOM?TICA DE PLACA DE VE?CULOS ATRAV?S DE
PROCESSAMENTO DE IMAGEM E VIS?O COMPUTACIONAL
Leonardo Leite 1 Ricardo Antonello2
1
2
Instituto Federal Catarinense, Campus Luzerna/leonardo.leitesc@
Instituto Federal Catarinense, Campus Luzerna/ricardo.antonello@ifc.edu.br
Resumo: O uso da vis?o computacional abrange diversos campos da tecnologia como identifica??o de faces, objetos
animados e inanimados e a identifica??o de caracteres em uma imagem. Neste projeto, a utiliza??o desta te cnologia
visa a identifica??o de placas de ve¨ªculos, que podem ser utilizados para autorizar a entrada de ve¨ªculos em um
ambiente e registrar o hist¨®rico de presen?as daquele determinado ve¨ªculo. O principal objetivo deste projeto ¨¦
automatizar uma cancela para permitir a entrada e sa¨ªda de ve¨ªculos pr¨¦-cadastrados sem interven??o humana. O
projeto foi aplicado na guarita principal do Instituto Federal Catarinense, campus Luzerna. O sistema utilizado foi
composto por uma webcam com defini??o de 720p e um sistema computacional com processador Intel Core i5 com
sistema operacional Windows. Os c¨®digos foram desenvolvidos na linguagem Python com as bibliotecas OpenCV e
Tesseract. A taxa de sucesso na identifica??o foi de 93,54% em um conjunto de 10 ve¨ªculos cadastrados utilizando-se
50 tentativas de identifica??o. Como trabalhos futuros sugere -se a adapta??o para utiliza??o de um sistema
compacto como o Raspberry Pi.
Palavras-Chave: Vis?o Computacional, Identifica??o de ve¨ªculos, Reconhecimento de caracte res.
1. INTRODU??O
Com o vis¨ªvel crescimento da quantidade carros nas ¨¢reas urbanas realizar o processo de
leitura de placas e identifica??o de ve¨ªculos de maneira manual se tornou um processo caro e sujeito
a erros, al¨¦m disso, ¨¦ um trabalho insalubre um monitor de tr?nsito ficar posicionado em uma via
anotando a placa dos ve¨ªculos que circulam pelo local. Para tornar este processo mais r¨¢pido, barato
e confi¨¢vel este trabalho aplicou t¨¦cnicas vis?o computacional em um sistema composto por um
computador padr?o PC e uma webcam convencional.
A vis?o computacional, em conjunto com a programa??o em linguagem Python (LABAKI,
2017), est¨¢ sendo usada em diversos campos atualmente, como reconhecimento de pessoas, de
padr?es e tamb¨¦m no reconhecimento de caracteres. Um programa que ¨¦ capaz de ler placas de
ve¨ªculos pode ser utilizado para gerenciamento de estacionamentos, controlando a entrada e sa¨ªda
de ve¨ªculos, bem como para uso do Estado, multando indiv¨ªduos que infringem a lei.
O objetivo principal deste trabalho foi realizar a identifica??o e a leitura dos caracteres de
uma placa de ve¨ªculo em uma imagem e em tempo real utilizando uma c?mera com sensor RGB1.
Salienta-se tamb¨¦m que se utilizam componentes f¨ªsicos de f¨¢cil aquisi??o no mercado conforme
descritos e especificados no desenvolvimento deste trabalho, tornando este sistema barato e
acess¨ªvel.
1
RGB: Acr?nimo de Red/Green/Blue traduzido respectivamente para Vermelho, Verde e Azul. RGB ¨¦ o padr?o para
sensores c?meras coloridas utilizadas em c?meras de smartphones, webcams e c?meras de v¨ªdeo digitais em geral.
2. FUNDAMENTA??O TE?RICA
2.1 Linguagem Python
Python ¨¦ uma linguagem de c¨®digo aberto e de alto n¨ªvel, criada pelo holand¨ºs Guido Van
Rossum (PYTHON, 2017). Grandes empresas, como a NASA, Nokia e Disney, utilizam a
programa??o em Python em seus projetos, e em muitos casos, liberam tais c¨®digos para a
comunidade.
2.2 Biblioteca OpenCV
OpenCV ¨¦ uma biblioteca de c¨®digo aberto direcionada principalmente a vis?o
computacional. Ela possui algoritmos e fun??es especializadas para edi??o de imagens, permitindo
a leitura de caracteres, pessoas e objetos.
Ela foi desenvolvida inicialmente pela Intel Corporation, e tinha como objetivo tornar
acess¨ªvel o uso da vis?o computacional por diversos programadores atuando assim em diversas
¨¢reas, sendo estas educacionais, industriais ou at¨¦ mesmo comerciais (OPENCV, 2017).
2.3 Haar-cascade
O princ¨ªpio de funcionamento de um haar-cascade ¨¦ baseado no uso de centenas de padr?es
de imagens listados em um arquivo ¡°.xml¡± que, quando utilizado mais tarde, em conjunto com a
biblioteca OpenCV, ¨¦ capaz de identificar padr?es nas imagens e nos v¨ªdeos (REZAEI, 2017).
O processo de cria??o ¨¦ relativamente simples se realizado com softwares criados
especificamente para este fim. Um dos softwares que podem ser utilizados, destaca-se um que n?o
um nome especif¨ªco, que tem como criador Mahdi Rezaei (2017), que possui PHD em Ci¨ºncias da
Computa??o e atualmente ¨¦ professor na Universidade de Auckland, onde desenvolveu um artigo
onde cont¨¦m todas as etapas necess¨¢rias no desenvolvimento do haar-cascade.
2.4 Raspberry Pi
O Raspberry Pi pode ser considerado por muitos profissionais como um pequeno sistema,
que ¨¦ capaz de exercer o mesmo papel que um computador normal. Al¨¦m disso, possui entradas e
sa¨ªdas digitais e anal¨®gicas para diferentes necessidades (RASPBERRY PI, 2017).
Ele possui diferentes sistemas operacionais, sendo que qualquer pessoa tem acesso a tais
arquivos pelo site oficial da empresa. O principal, e mais utilizado ¨¦ o Debian, um sistema baseado
no Linux que funciona no Raspberry Pi.
Figura 01: Raspberry Pi em perspectiva
Fonte: Raspberry Pi (2017)
2.5 Biblioteca PyTesseract
O Tesseract-OCR ¨¦ uma biblioteca de c¨®digo aberto desenvolvida pela Google,
originalmente para a linguagem C++. O seu objetivo ¨¦ a leitura de textos e caracteres de uma
imagem. Ela ¨¦ capaz de transformar a imagem de um texto em arquivos edit¨¢veis de texto
(ROSEBROCK, 2017).
Gra?as a comunidade de programadores, essa biblioteca foi modificada, permitindo o
funcionamento da mesma em programa??o Python. Por tal motivo, o nome desta biblioteca para a
linguagem Python tornou-se ¡°PyTesseract¡±.
3. METODOLOGIA
Visando uma boa organiza??o das tarefas, o projeto foi separado em etapas, que podem ser
observadas abaixo:
¡ñ Estudo das placas: esta foi uma das principais fases do projeto, onde centrou-se no estudo
das placas. Notou-se que as placas possuem grande ru¨ªdo, principalmente aquelas que
possu¨ªam fundo refletivo. Foi nesta etapa que foi constatado que a fonte utilizada era a
chamada ¡°Mandatory¡±.
¡ñ Cria??o de um ¡°Haar-Cascade¡±: como n?o h¨¢ um haar-cascade para placas nacionais, deuse como necess¨¢rio a cria??o do primeiro Haar-Cascade, que tem como objetivo a
identifica??o das placas.
¡ñ Integra??o das placas com a vis?o computacional: essa etapa teve como o objetivo tirar os
ru¨ªdos das imagens provindas da c?mera, e deixar apenas as letras e os n¨²meros em
evid¨ºncia. Um exemplo desse processo pode ser visto nas imagens 4 e 5.
¡ñ Estudo da biblioteca PyTesseract: Cria??o de um dicion¨¢rio especialmente direcionado a
leitura das placas, j¨¢ que n?o h¨¢ nada na internet que atende as necessidades do projeto.
¡ñ Leitura da placa: a ¨²ltima etapa do projeto ¨¦ a integra??o da biblioteca do OpenCV, com a
biblioteca PyTesseract e seu dicion¨¢rio destinado para a detec??o de placas.
¡ñ Integr¨¢-lo a uma cancela: o objetivo final do projeto ¨¦ colocar o sistema de identifica??o de
placas na cancela da entrada do Instituto Federal Catarinense. Junto a essa etapa est¨¢ a
integra??o de som, tornando o sistema ¡°amig¨¢vel¡± ao usu¨¢rio. A ideia atual ¨¦ o sistema
emitir um som com a mensagem ¡°Bem vindo(a)¡± e o nome do usu¨¢rio ap¨®s a identifica??o.
Imagem 04: Placa sem filtro
Fonte: Os autores
3.1
Imagem 05: Placa com filtro
Fonte: Os autores
FILTROS DO OPENCV
Como j¨¢ comentado, as imagens de placas apresentam ru¨ªdos intensos, que para um
programa de identifica??o s?o extremamente prejudiciais ¨¤ leitura. Para uma corre??o utiliza -se a
fun??o ¡°Threshold¡±, que serve nesse caso como uma esp¨¦cie de filtro, intensificando o que ¨¦
importante na imagem.
Nesta etapa do c¨®digo tamb¨¦m ¨¦ realizado a parte do corte da placa, separando as duas
partes escritas da placa: os caracteres da cidade e os da identifica??o. Assim, o c¨®digo consegue ler
as informa??es separadamente, diminuindo as chances de erro na leitura.
O c¨®digo de filtragem, cortando o nome da cidade na placa, pode ser visto na tabela 01.
Tabela 01
def edic?o_placa(img2):
img = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
imgcorte_alt_alt = int(img.shape[0] * 0.33)
imgcorte_alt_baix = int(img.shape[0] * 0.87)
imgcorte_lad_dir = int(img.shape[1] * 0.07)
imgcorte_lad_esq = int(img.shape[1] * 0.97)
recorte = img_figura[imgcorte_alt_alt:imgcorte_alt_baix,
imgcorte_lad_dir:imgcorte_lad_esq]
suave = cv2.GaussianBlur(recorte, (3, 3), 10)
T = mahotas.thresholding.otsu(suave)
temp = recorte.copy()
temp[temp > T] = 255
temp[temp < 255] = 0
temp = cv2.bitwise_not(temp)
blur_mediana = cv2.medianBlur(temp, 13)
blur = cv2.blur(blur_mediana, (9, 21))/
cv2.imwrite("Placa filtrada.jpg", blur)
return blur
3.3 CRIA??O DO HAAR-CASCADE
Como j¨¢ comentado, h¨¢ a necessidade de cria??o de um Haar-Cascade destinado ¨¤s placas
nacionais de identifica??o de ve¨ªculos. As etapas deste processo podem ser observadas abaixo:
?
Coleta de imagens positivas: para a obten??o de placas positivas para a cria??o haarcascade, foi necess¨¢rio a constru??o de uma biblioteca com 200 imagens.
?
Imagens negativas: as imagens negativas n?o podem conter uma placa.
?
Cria??o do ¡°haar-cascade¡±: Necess¨¢rio para o padr?o de placas brasileiro.
Figura 06: Uma das etapas da cria??o do ¡°haar-cascade¡± para as placas de ve¨ªculos
Fonte: Os autores
3.4 CRIA??O DO DICION?RIO
As placas nacionais s?o escritas pela fonte Mandatory, como j¨¢ mencionado anteriormente.
Infelizmente n?o h¨¢ nenhum dicion¨¢rio do PyTesseract destinado ¨¤ leitura de tais caracteres. Para
isso utilizou-se programas externos ¨¤ biblioteca, criados pela comunidade. Os programas utilizados
foram:
3.4.1 JTESSBOXEDITOR
Este ¨¦ respons¨¢vel por salvar os algoritmos de cada caractere em um arquivo ¡°.TIFF¡±. A
primeira etapa deste processo ¨¦ colocar os caracteres em um arquivo ¡°.txt¡± para depois import¨¢-lo
para o programa. O programa abre esse arquivo, l¨º cada caractere e salva suas coordenadas para,
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- cÓmo registrar declarar la titularidad de un vehÍculo en el estado de
- titulación y matrícula del vehículo ncdot
- solicitud de certificado de tÍtulo mva home
- driver guide wa state licensing dol official site home
- reconhecimento de placas de carro para o controle de acesso a um
- alta de vehículos nuevos mx
- fiscalía general de la nación
- ubicacion de numero de motor y chasis
- licencia de conducir o identificacion matricula vehicular
- identificaÇÃo automÁtica de placa de veÍculos atravÉs de secitec