an ocr system for numerals applied to energy meters

8
Abstract— This work describes a prototype of an OCR (Optical Character Recognition) system designed for reading digits of power measurement devices, using Artificial Neural Networks. The motivation for this work is the implementation of an alternative automatic measurement system to be used in a prepaid power system - SEPPRA. Prototype software using Computer Vision techniques and pattern recognition through Neural Networks is implemented in the C++/Windows platform. Considering this application, adaptive threshold methods are compared in order to choose the more appropriated algorithm of binarization. Several algorithms are implemented and evaluated under different conditions of zoom and camera focus. The system works satisfactorily and can be carried to other platforms, making possible its production in commercial scale. Keywords— OCR, Neural Networks, Computer Vision, adaptative thresholding. I. INTRODUÇÃO ISTEMAS de reconhecimento óptico de caracteres são sistemas capazes de identificar símbolos gráficos que compõem um alfabeto de alguma linguagem, simulando a capacidade humana de leitura. Estes sistemas partem da aquisição de uma imagem através de equipamento óptico ligado a um dispositivo de captura, normalmente uma câmera ou scanner, gerando uma imagem digital. Técnicas de Processamento Digital de Imagens, Visão Artificial e Reconhecimento de Padrões são aplicadas à imagem de forma a obter se um código (normalmente no mundo ocidental, código ASCII), representando cada caracter [1], [2]. Encontram-se na literatura diversos trabalhos descrevendo aplicações de sistemas de OCR - Optical Character Recognition ou Reconhecimento Óptico de Caracteres - nas mais variadas áreas. A seguir, é elaborada uma lista de algumas aplicações: compactação de dados [3]; reconhecimento automático de CEP [4]; leitura automática de formulários/documentos [5]; leitura de cheques bancários [6]; medição de instrumentos digitais [7]; interface homem- máquina [8]; reconhecimento automático de placas de automóveis e chassi [9], [10]. A. R. Alexandria, Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] P. C. Cortez, Universidade Federal do Ceará (UFC), Fortaleza, Ceará, Brasil, [email protected] J. H. S. Felix, Universidade da Integração Internacional da Lusofonia Afro- Brasileira (UNILAB), [email protected] A. M. Girão, Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] J. B. B. Frota, Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] J. A. Bessa, Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] Existem inúmeros sistemas comerciais, porém nenhum até o presente momento conseguiu taxa de reconhecimento próxima à alcançada por seres humanos, principalmente quando ocorre a presença de ruído, como o causado por iluminação não uniforme ou caracteres deteriorados no caso de documentos históricos. Porém, estes sistemas que apresentam como vantagem, a total insensibilidade à fadiga visual e, em sua maioria, velocidade de reconhecimento maior que a do ser humano [11], [12]. O Projeto SEPPRA (Sistema de Energia Pré-Paga via Rádio) tem como objetivo desenvolver um sistema composto de hardware e software capaz de efetuar controle de energia elétrica de consumidores finais. O sistema de energia pré-paga necessita de uma forma de medir energia no ponto de consumo. Duas alternativas são apresentadas, neste contexto: medidor eletrônico digital e OCR de algarismos do medidor convencional já instalado no ponto de consumo (forma considerada alternativa). O principal objetivo deste trabalho consiste no desenvolvimento de um protótipo de um OCR de algarismos de medidores de energia elétrica convencional. Este protótipo pode ser utilizado como base para medição alternativa de energia, através da leitura de algarismos de medidores convencionais de energia, fazendo parte de um sistema de fornecimento de energia pré-paga (SEPPRA), em que os medidores convencionais, já instalados, são aproveitados. Este trabalho está organizado em cinco seções. Na seção II é realizada uma revisão das técnicas básicas de Visão Artificial utilizadas neste trabalho. Na seção III é realizada uma revisão sobre Redes Neurais Artificiais (RNA) multicamadas, apresentando sua topologia e algoritmos de treinamento. Descreve-se na seção IV o protótipo do sistema de reconhecimento de algarismos do medidor, bem como os vários elementos do sistema e algoritmos empregados, além dos resultados experimentais obtidos. Na seção V, por fim, são apresentados os comentários finais e contribuições deste trabalho. II. SISTEMAS DE VISÃO ARTIFICIAL Um sistema de Visão Artificial é definido como um sistema computadorizado capaz de adquirir, processar e interpretar imagens correspondentes a cenas reais [2]. Em geral, um sistema de visão é dividido nas seguintes etapas: aquisição de imagens, pré-processamento, segmentação, extração de atributos e classificação. Para a aquisição de imagens, um dispositivo, adequadamente especificado para esta aplicação, deve ser utilizado, normalmente uma câmera de vídeo ou máquina fotográfica. Dispositivos com tecnologia CCD e CMOS são os mais utilizados atualmente. Em caso de saída analógica da An OCR System for Numerals Applied to Energy Meters A. R. Alexandria, P. C. Cortez, J. H. S. Felix, A. M. Girão, J. B. B. Frota and J. A. Bessa S IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014 957

Upload: jessyca

Post on 19-Feb-2017

212 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: An OCR System for Numerals Applied to Energy Meters

Abstract— This work describes a prototype of an OCR (Optical Character Recognition) system designed for reading digits of power measurement devices, using Artificial Neural Networks. The motivation for this work is the implementation of an alternative automatic measurement system to be used in a prepaid power system - SEPPRA. Prototype software using Computer Vision techniques and pattern recognition through Neural Networks is implemented in the C++/Windows platform. Considering this application, adaptive threshold methods are compared in order to choose the more appropriated algorithm of binarization. Several algorithms are implemented and evaluated under different conditions of zoom and camera focus. The system works satisfactorily and can be carried to other platforms, making possible its production in commercial scale. Keywords— OCR, Neural Networks, Computer Vision,

adaptative thresholding.

I. INTRODUÇÃO ISTEMAS de reconhecimento óptico de caracteres são sistemas capazes de identificar símbolos gráficos que

compõem um alfabeto de alguma linguagem, simulando a capacidade humana de leitura. Estes sistemas partem da aquisição de uma imagem através de equipamento óptico ligado a um dispositivo de captura, normalmente uma câmera ou scanner, gerando uma imagem digital. Técnicas de Processamento Digital de Imagens, Visão Artificial e Reconhecimento de Padrões são aplicadas à imagem de forma a obter se um código (normalmente no mundo ocidental, código ASCII), representando cada caracter [1], [2].

Encontram-se na literatura diversos trabalhos descrevendo aplicações de sistemas de OCR - Optical Character Recognition ou Reconhecimento Óptico de Caracteres - nas mais variadas áreas. A seguir, é elaborada uma lista de algumas aplicações: compactação de dados [3]; reconhecimento automático de CEP [4]; leitura automática de formulários/documentos [5]; leitura de cheques bancários [6]; medição de instrumentos digitais [7]; interface homem-máquina [8]; reconhecimento automático de placas de automóveis e chassi [9], [10].

A. R. Alexandria, Instituto Federal de Educação, Ciência e Tecnologia do

Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] P. C. Cortez, Universidade Federal do Ceará (UFC), Fortaleza, Ceará,

Brasil, [email protected] J. H. S. Felix, Universidade da Integração Internacional da Lusofonia Afro-

Brasileira (UNILAB), [email protected] A. M. Girão, Instituto Federal de Educação, Ciência e Tecnologia do Ceará

(IFCE), Fortaleza, Ceará, Brasil, [email protected] J. B. B. Frota, Instituto Federal de Educação, Ciência e Tecnologia do

Ceará (IFCE), Fortaleza, Ceará, Brasil, [email protected] J. A. Bessa, Instituto Federal de Educação, Ciência e Tecnologia do Ceará

(IFCE), Fortaleza, Ceará, Brasil, [email protected]

Existem inúmeros sistemas comerciais, porém nenhum até o presente momento conseguiu taxa de reconhecimento próxima à alcançada por seres humanos, principalmente quando ocorre a presença de ruído, como o causado por iluminação não uniforme ou caracteres deteriorados no caso de documentos históricos. Porém, estes sistemas que apresentam como vantagem, a total insensibilidade à fadiga visual e, em sua maioria, velocidade de reconhecimento maior que a do ser humano [11], [12].

O Projeto SEPPRA (Sistema de Energia Pré-Paga via Rádio) tem como objetivo desenvolver um sistema composto de hardware e software capaz de efetuar controle de energia elétrica de consumidores finais.

O sistema de energia pré-paga necessita de uma forma de medir energia no ponto de consumo. Duas alternativas são apresentadas, neste contexto: medidor eletrônico digital e OCR de algarismos do medidor convencional já instalado no ponto de consumo (forma considerada alternativa).

O principal objetivo deste trabalho consiste no desenvolvimento de um protótipo de um OCR de algarismos de medidores de energia elétrica convencional. Este protótipo pode ser utilizado como base para medição alternativa de energia, através da leitura de algarismos de medidores convencionais de energia, fazendo parte de um sistema de fornecimento de energia pré-paga (SEPPRA), em que os medidores convencionais, já instalados, são aproveitados.

Este trabalho está organizado em cinco seções. Na seção II é realizada uma revisão das técnicas básicas de Visão Artificial utilizadas neste trabalho. Na seção III é realizada uma revisão sobre Redes Neurais Artificiais (RNA) multicamadas, apresentando sua topologia e algoritmos de treinamento. Descreve-se na seção IV o protótipo do sistema de reconhecimento de algarismos do medidor, bem como os vários elementos do sistema e algoritmos empregados, além dos resultados experimentais obtidos. Na seção V, por fim, são apresentados os comentários finais e contribuições deste trabalho.

II. SISTEMAS DE VISÃO ARTIFICIAL Um sistema de Visão Artificial é definido como um sistema

computadorizado capaz de adquirir, processar e interpretar imagens correspondentes a cenas reais [2].

Em geral, um sistema de visão é dividido nas seguintes etapas: aquisição de imagens, pré-processamento, segmentação, extração de atributos e classificação.

Para a aquisição de imagens, um dispositivo, adequadamente especificado para esta aplicação, deve ser utilizado, normalmente uma câmera de vídeo ou máquina fotográfica. Dispositivos com tecnologia CCD e CMOS são os mais utilizados atualmente. Em caso de saída analógica da

An OCR System for Numerals Applied to Energy Meters

A. R. Alexandria, P. C. Cortez, J. H. S. Felix, A. M. Girão, J. B. B. Frota and J. A. Bessa

S

IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014 957

Page 2: An OCR System for Numerals Applied to Energy Meters

câmera de vídeo ou câmera fotográfica, a utilização de um conversor analógico/digital se faz necessária [13].

O pré-processamento normalmente envolve rotinas de restauração, realce ou somente a representação apropriada dos dados de entrada. Este processo é necessário para condicionar a imagem para o processo seguinte que é a segmentação [2].

Segmentação é o processo de separar as várias regiões que compõem uma imagem, de acordo com suas propriedades. A técnica de segmentação a ser utilizada varia com a aplicação do sistema. O processo de segmentação é de fundamental importância em qualquer sistema de Visão Artificial, de tal forma que o desempenho do sistema dependente do processo de segmentação [1], [2].

As feições ou atributos de regiões segmentadas são então obtidas no processo de extração de atributos. Estes atributos podem ser representados por símbolos de modo a facilitar a aplicação dos processos seguintes que são a classificação e a interpretação dos dados. Na classificação são normalmente utilizadas técnicas de Reconhecimento de Padrões, de Estatística ou de Inteligência Artificial. Por último, os dados obtidos são apresentados da forma mais conveniente para a aplicação, podendo ser na tela de um computador, relatórios, banco de dados ou outras formas de saída de dados [1], [2].

Algumas das aplicações principais de Visão Artificial são enumeradas a seguir: reconhecimento óptico de caracteres (OCR) [14], [15], [16], [17]; reconhecimento automático de impressões digitais [18]; controle de medidas de peças [19]; auxílio no diagnóstico de doenças em imagens médicas [20]; classificação de objetos por forma, tamanho, textura [21]; sistema de guia de atividades de robôs [22].

III. REDES NEURAIS ARTIFICIAIS Redes Neurais Artificiais (RNA) foram originalmente

concebidas com o intuito de modelar o sistema nervoso biológico para obterem-se soluções para problemas computacionais complexos, com nível compatível com os problemas que humanos resolvem no seu dia-a-dia [22].

A. Redes de múltiplas camadas As redes de múltiplas camadas resolvem problemas cujos

padrões não são separáveis linearmente. Estas redes consistem de uma camada de entrada (Xi), camadas intermediárias (camadas escondidas) (W) e uma camada de saída (Yi), conforme é descrito na Fig. 1.

Figura 1. Representação de uma rede de múltiplas camadas genéricas.

As redes possuem duas fases distintas: treinamento e execução. Para a fase de treinamento deste tipo de rede não se

pode utilizar a regra delta, visto que esta não permite a correção do erro nas camadas intermediária(s) e de entrada.

O algoritmo largamente utilizado para este fim é o backpropagation e seus variantes. A regra de aprendizado é denominada como “supervisionada”, pois, precisa-se conhecer o padrão correto para que ele seja realizado [24]. 1) Backpropagation padrão

O algoritmo backpropagation padrão é um dos mais importantes algoritmos utilizados para treinamento de RNAs [24], [23].

Este algoritmo possui algumas desvantagens: • dificuldade em contornar uma superfície de erro

mínimo local, aumentando o tempo do treinamento ou ainda, não permitindo a convergência do mesmo.

• na procura por um mínimo global, pode-se atingir uma superfície em que a derivada do erro vale quase zero e ali permanecer, aumentando o tempo de convergência.

Diversas variações do algoritmo backpropagation foram desenvolvidas para solucionar os problemas descritos anteriormente. Dentre estes, o backpropagation com momento possue melhor rendimento no que se refere aos problemas apresentados, de acordo com a natureza da aplicação da RNA em treinamento.

2) Backpropagation com momento

Nesta variação do algoritmo backpropagation [23] a

expressão utilizada para ∆ω é dada pela equação ∆ = ∙ ∙∙ ∆ 1 , (1)

em que = ∙ , é a taxa de momento(constante), é a saída obtida no neurônio e é a época. A taxa de momento funciona como uma taxa de “esquecimento” que atua no último valor de variação dos pesos e tende a melhorar o tempo de convergência do algoritmo [2].

IV. SISTEMA DE RECONHECIMENTO ÓPTICO DE ALGARISMOS PARA MEDIDORES CONVENCIONAIS

DE ENERGIA O sistema de reconhecimento de algarismos proposto neste

trabalho utiliza técnicas de Processamento de Imagens Digitais e de Visão Artificial para efetuar a leitura de algarismos de um medidor de energia elétrica convencional.

A. Descrição do sistema O sistema proposto é constituído por hardware e software.

O hardware é composto de: câmera, placa de aquisição de vídeo, medidor de energia convencional e iluminação a LED.

O software desenvolvido para, junto com o hardware compor o sistema, é constituído por processos típicos de um sistema de visão, tais como: componente de captura de vídeo para o C++ Builder Tvideocapture ou AVICAP (aquisição de vídeo), pré-processamento, segmentação, redimensionamento

958 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

Page 3: An OCR System for Numerals Applied to Energy Meters

dos algarismos, reconhecimento dos algarismos e saída de dados. O sistema completo é ilustrado na Fig. 2.

Seguindo o fluxo de informação que percorre o sistema, pode-se iniciar sua descrição pela câmera. A câmera é focalizada na direção dos algarismos do medidor de forma a enquadrá-los, e a iluminação, fornecida de forma indireta por LEDs, é difusa e monocromática (azul) e concebida de forma que seja uniforme sua iluminação ao longo dos algarismos, evitando o aparecimento de sombras que possam prejudicar o reconhecimento dos mesmos.

Figura 2. Diagrama do sistema implementado.

Em seguida, a placa de aquisição faz a digitalização do sinal oriundo da câmera que corresponde à imagem dos algarismos. Neste caso é utilizado um módulo que faz a interface entre a placa e o ambiente de programação denominado de Tvideocapture ou AV ICAP.

Uma vez obtida a imagem digital, esta é submetida à análise pelo sistema de reconhecimento de caracteres propriamente dito, que inicia pelo recorte dos algarismos. Nesta aplicação, cada algarismo possui um posicionamento fixo configurável, facilitando a segmentação, que é realizada através de algoritmos de limiar adaptativo e crescimento de regiões de modo que os algarismos são separados do restante da imagem.

Um redimensionamento é efetuado em cada algarismo segmentado para que todos apresentem a mesma resolução (6x8 pixels). Em seguida, cada algarismo é apresentado para a rede neural que realiza o reconhecimento dos algarismos. Os algarismos reconhecidos podem ser então, transferidos para o sistema de controle de energia pré-paga.

B. Sistema de Visão Artificial A interface principal do sistema implementado é mostrada

na Fig. 3. A configuração mínima necessária para o sistema funcionar é um Pentium de 100MHz e 32MBytes de RAM, Windows 98.

Sendo assim, todos os testes e resultados apresentados neste trabalho são obtidos executando-se em um computador PC, compatível com a configuração mínima, com processador Pentium IV de 2,4 GHertz e 512MBytes de RAM, rodando em plataforma Windows 98.

1) Aquisição da imagem

O sinal oriundo da câmera, portador da imagem dos

algarismos do medidor, ingressa em uma placa de aquisição de vídeo, modelo WinTV - GO578, fabricante Hauppauge!.

Para aquisição da imagem da câmera é utilizado um “componente” para o ambiente de programação C++ Builder

5.0 da Borland. Este componente chama-se TV ideoCapture e pode ser obtido através da internet [25]. Ao executar o procedimento de captura, uma imagem do medidor é adquirida para reconhecimento de seus algarismos.

Figura 3. Interface do protótipo do sistema de OCR de algarismos de medidor convencional de energia.

2) Recorte dos algarismos

Durante a montagem da câmera sobre o medidor, na configuração inicial do sistema, a posição de cada algarismo é indicada pelo retângulo que circunscreve cada algarismo. Estes pontos são selecionados utilizando-se o mouse. Após este momento, não é mais necessário, em condições normais, efetuar novo posicionamento destes pontos, tornando-os parâmetros de configuração do sistema.

As imagens obtidas após cada fase do sistema são apresentadas na Fig. 4. Iniciando-se pelo recorte dos algarismos que facilita a aplicação de algoritmos de binarização na imagem de cada algarismo e melhor iluminação para reconhecimento dos algarismos pelo sistema.

Isto contribui também para a diminuição do tempo de processamento, já que não será necessário localizar os pontos onde os algarismos estão localizados. As imagens de cada algarismo recortado possui resolução de 35x45 pixels.

3) Segmentação dos algarismos

A segmentação é realizada através da aplicação de um limiar na imagem do algarismo recortado e posterior aplicação de crescimento de regiões para rotular a região do algarismo, que será utilizada na etapa de reconhecimento. Para ter o algarismo reconhecido, a região que o contém, precisa ter no mínimo 20 pixels de largura e no máximo 35 pixels de altura. Quanto à largura, no mínimo 3 pixels e no máximo 25 pixels. Caso não exista região com estas características, o reconhecimento do algarismo não é realizado e vale o último algarismo reconhecido, ou seja, a última leitura do medidor. Esta abordagem resolve casos em que o medidor está em uma fase de transição entre um algarismo e o seguinte e que o reconhecimento se torna difícil.

RIPARDO DE ALEXANDRIA et al.: AN OCR SYSTEM 959

Page 4: An OCR System for Numerals Applied to Energy Meters

Figura 4. Imagens obtidas em cada fase do sistema.

Os algarismos segmentados através de técnica de limiar seguido de crescimento de regiões são mostrados na Fig. 4. Observa-se, ainda na Fig.4, que somente a região de maior área, correspondente ao algarismo, é separada após a aplicação do algoritmo de crescimento de regiões. Este último algoritmo poderia ter sido aplicado diretamente sobre a imagem em tons de cinza nesta etapa de segmentação, sem a necessidade de aplicação de limiar antes.

A aplicação de limiar antes é justificada pela necessidade de avaliar técnicas de limiar adaptativo (na seção IV.C) de forma a tornar o sistema imune a erros na escolha de ajustes de zoom e foco durante a instalação do sistema em medidores. A aplicação de limiar também facilita o emprego de outras operações como afinamento e aplicação de operadores morfológicos [26].

C. Avaliação de algoritmos de limiar adaptativo Um experimento é realizado com o objetivo de avaliar os

algoritmos de limiar adaptativo e verificar qual ou quais deles melhor se enquadram no sistema de OCR de algarismos de medidor. Os algoritmos utilizados são: limiar fixo [1], [2], limiarização adaptativa de Bernsen [27], limiarização de Fisher [28], método por entropia de Johannsen [29], algoritmo de estimativa de densidades normais [30], método por entropia de WuLu [31] e a binarização Niblack [32].

A câmera de vídeo do sistema é ajustada de forma que a melhor imagem seja obtida. Para isso, os devidos ajustes de foco, zoom e íris são efetuados. A íris é totalmente aberta, enquanto o zoom é ajustado de forma que um pixel apresente uma dimensão relativa a 0,3x0,3 mm.

O medidor possui 5 dígitos e como estão estes girando solidariamente, tem-se para cada dígito, 10 possibilidades. Para cada dígito, são geradas 3 imagens: uma com o algarismo bem ao centro da imagem; uma com o dígito mais acima desta primeira posição; já próximo à borda e a terceira com o algarismo mais abaixo da primeira posição, também próximo à borda inferior, conforme exemplificado na Fig. 5.

Isto totaliza 150 amostras, sendo que 50 outras amostras são obtidas considerando somente os algarismos em posição central na imagem. Porém, em condições de foco ligeiramente abaixo do ideal, conforme mostrado na Fig. 6(a), mais outras 50 amostras são geradas considerando-se o foco na condição

ideal e com o zoom maior em relação às imagens iniciais, de acordo com a Fig. 6(b). As últimas 50 amostras são adquiridas em situação de zoom menor em relação à situação inicial, conforme é apresentado na Fig. 6(c).

Figura 5. Três imagens geradas em posição: (a) abaixo, (b) central e (c) acima.

Figura 6. Variações no foco e zoom utilizadas na obtenção dos resultados: (a) fora de foco, (b) zoom maior e (c) zoom menor.

O procedimento adotado nos testes é o mesmo utilizado ao executar-se o sistema: 1) os algarismos são recortados; 2) os algarismos são binarizados utilizando, para isso, os algoritmos: WuLu; Bernsen com vizinhança 15x15 e 5x5; Fisher; Johannsen; Limiarização Fuzzy com estimativa de densidade normal e Niblack com vizinhança 15x15 e 5x5; 3) o algoritmo de crescimento de regiões é aplicado separando a região do algarismo; 4) o resultado desta segmentação é avaliado de duas formas: qualitativa e quantitativa.

Na avaliação do processo de segmentação na forma visual (qualitativa), a imagem é avaliada através de uma nota de 0 a 3 que lhe é atribuída: 0 - não segmentou; 1 - segmentou com deformações não aceitáveis; 2 - segmentou com deformações aceitáveis e 3 - segmentou bem. Para o resultado de cada algoritmo, as imagens resultantes são avaliadas, segundo os critérios anteriores, e acumuladas, de acordo com a equação R = nota k ,

(2)

em que R é o resultado da análise visual para um algoritmo, nota é a nota atribuída para a k -ésima imagem analisada e N é o número de imagens analisadas.

Na forma quantitativa de avaliação do processo de segmentação, cada imagem segmentada é comparada com a imagem original do algarismo através do módulo da diferença do nível de cinza entre estas duas imagens, pixel a pixel. A imagem original é uma imagem em 256 tons de cinza (0 a 255), enquanto que a imagem segmentada é uma imagem binária (0 e 255).

Os resultados R obtidos para cada imagem são computados com a seguinte expressão

R = |f x, y g x, y (3)

960 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

Page 5: An OCR System for Numerals Applied to Energy Meters

em que f x, y é a imagem do algarismo em tons de cinza, g x, y é a imagem obtida após a segmentação de f x, y , e N é o número de imagens analisadas.

1) Resultados obtidos

Nas Tabelas I, II, III e IV são apresentados os resultados obtidos. De acordo com a Tabela I, para as 150 imagens em condições boas de ajustes de foco e zoom, observam-se que os algoritmos de Bernsen com vizinhança de 15x15, Fisher e o algoritmo de WuLu, são os que apresentam os melhores resultados, para a análise qualitativa.

Para a análise quantitativa, os melhores resultados são apresentados pelos algoritmos de Johannsen e de WuLu. Conforme a Tabela II, para as 50 imagens em condições de foco alteradas, o algoritmo de Fisher é o que obtém melhor resultado na análise qualitativa. Com resultados próximos a este, estão os algoritmos de WuLu e de Bernsen 15x15.

Na análise quantitativa, o melhor resultado é o de WuLu, na sequência o de Johannsen e o de Fisher. Como é apresentado na Tabela III, para as 50 imagens em condições de zoom maior, os algoritmos que obtém resultados melhores na análise qualitativa são o WuLu, Fisher e Bernsen 15x15. Os três apresentam valores iguais. Com um valor próximo a destes três algoritmos está o algoritmo Fuzzy. Na análise quantitativa, por sua vez, a sequência do maior valor para o menor valor é: Johannsen, WuLu e Fisher.

Para as 50 imagens em condições de zoom menor (Tabela IV), o melhor resultado é do algoritmo de WuLu, seguido na sequência por Bernsen e Fisher, para análise qualitativa. Na análise quantitativa, WuLu obteve o primeiro lugar, seguido de Fisher e Johannsen, com valores iguais.

No geral, os algoritmos de Fisher, WuLu e Bernsen 15x15 estão praticamente empatados, na análise qualitativa. Por outro lado, na análise quantitativa o algoritmo de WuLu obtém os melhores resultado e em segundo lugar está o algoritmo de Johannsen.

Na Tabela V são apresentados os tempos de execução dos algoritmos. Para esta análise, 10 imagens, uma de cada algarismo de 0 a 9, são escolhidas aleatoriamente. Os algoritmos são executados, individualmente, 10 vezes e após é calculada a média das execuções. Conforme esta tabela, o algoritmo mais rápido é o de Fisher e o mais lento é o de Niblack 15x15.

Os tempos apresentados na Tabela V são obtidos em um microcomputador, compatível com a configuração mínima, com processador Pentium IV de 2,2 GHz, 512 MB de memória RAM, utilizando sistema operacional Windows 98SE. Com base nos resultados apresentados, o algoritmo de WuLu é selecionado para ser utilizado no sistema de OCR de algarismos de medidor de energia.

As situações de zoom e foco avaliadas simulam as variações que podem ocorrer quando da instalação do sistema em campo. Como o rendimento da segmentação não caiu bruscamente com as variações apresentadas, conclui-se que pequenas variações de foco e zoom são toleradas pela etapa de segmentação do sistema.

TABELA I. RESULTADOS DA AVALIAÇÃO DOS ALGORITMOS DE BINARIZAÇÃO PARA AS 150 IMAGENS BOAS.

Análise

Algoritmo Qualit. Aval. Quant. Avaliação

bernsen 448 1 146848 4

bernsen5 426 4 - -

fisher 448 1 139072 3

fuzzy dens 436 3 151153 5

johanssen 414 5 136249 1

niblack 393 6 158595 6

niblack5 299 7 - -

wulu 447 2 136653 2

TABELA II. RESULTADOS DA AVALIAÇÃO DOS ALGORITMOS DE

BINARIZAÇÃO PARA AS 50 IMAGENS COM FOCO RUIM.

Algoritmo Qualit. Avaliação Quant. Aval.

bernsen 148 3 147004 4

bernsen5 136 4 - -

fisher 150 1 139802 3

fuzzy dens 148 3 150398 5

johanssen 134 5 137773 2

niblack 130 6 165663 6

niblack5 121 7 - -

wulu 149 2 136544 1

TABELA III. RESULTADOS DA AVALIAÇÃO DOS ALGORITMOS DE

BINARIZAÇÃO PARA AS 50 IMAGENS COM ZOOM MAIOR.

Algoritmo Qualit. Aval. Quant. Aval.

bernsen 150 1 151867 4

bernsen5 140 3 - -

fisher 150 1 144730 3

fuzzy dens 149 2 154888 5

johanssen 140 3 141396 1

niblack 136 4 164062 6

niblack5 124 5 - -

wulu 150 1 143065 2

Além disso, pelos dados obtidos, pode-se concluir que há

uma tendência de quanto maior o zoom, melhor a resolução utilizada. Observa-se ainda, nos resultados obtidos, que todos os algoritmos analisados melhoram de rendimento nestas circunstâncias, o que é um resultado esperado.

RIPARDO DE ALEXANDRIA et al.: AN OCR SYSTEM 961

Page 6: An OCR System for Numerals Applied to Energy Meters

TABELA IV. RESULTADOS DA AVALIAÇÃO DOS ALGORITMOS DE BINARIZAÇÃO PARA AS 50 IMAGENS COM ZOOM MENOR.

Algoritmo Qualit. Aval. Quant. Aval.

bernsen 148 2 141420 4

bernsen5 145 4 - -

fisher 148 2 133270 2

fuzzy dens 140 5 145789 5

johanssen 146 3 134235 3

niblack 121 6 155416 6

niblack5 107 7 - -

wulu 149 1 131071 1

TABELA V. TEMPO DE EXECUÇÃO DOS ALGORITMOS AVALIADOS.

Algoritmo Tempo de Execução(s)

WuLu 0,600

Bernsen5 0,170

Bernsen15 1,040

Johanssen 0,660

Fisher 0,110

Fuzzy Densidade 0,270

Niblack15 20,330

Niblack5 2,580

Quanto às variações de foco, a melhoria no rendimento dos

algoritmos é consequência da atenuação dos ruídos da imagem em condições de pequeno desajuste de foco. Isto sugere a utilização de filtro passa-baixas como pré-processamento para o sistema de OCR de algarismos de medidor de energia.

A surpresa se encontra no baixo rendimento do algoritmo Niblack, em contraste com seu alto rendimento obtido no trabalho de Trier e Taxt [32]. Esta discrepância se deve ao fato de que Trier e Taxt aplicam o Niblack em imagens de resolução mais alta (512x512 pixels), enquanto que neste trabalho as imagens dos algarismos possuem resolução máxima de 35x45 pixels, o que dificulta a eficiência dos cálculos estatísticos empregados pelo algoritmo Niblack, principalmente em pixels próximos às bordas das imagens.

Outra discrepância observada é que os algoritmos de limiarização global apresentam desempenho compatível ou superior aos algoritmos de binarização local. Isto também se deve ao fato de que as imagens de entrada possuem pouca resolução e pelas suas dimensões, pouca variação dos níveis de cinza do fundo das imagens. Uma vantagem deste trabalho em relação ao trabalho de Trier e Taxt, é justamente a quantidade de imagens utilizadas na avaliação, 300 ao invés de 7 imagens utilizadas por Trier e Taxt.

D. Reconhecimento dos algarismos Neste trabalho, utiliza-se uma rede neural multicamadas

(MLP) para efetuar o reconhecimento de algarismos. Para que seja possível efetuar o treinamento da rede neural, um conjunto representativo de imagens dos algarismos é

adquirido. Este conjunto de imagens contempla os casos em que a segmentação é realizada com êxito, em que a imagem atinge uma altura mínima conforme mencionado na subseção IV.B.3, abrangendo, ainda, inclusive as situações em que os algarismos são deformados durante as “viradas” destes no mostrador do medidor, ou seja, transições entre um algarismo e o seguinte.

As imagens foram obtidas em condições de bom ajuste de foco e zoom. No total são adquiridas 275 imagens, segmentadas e redimensionadas para a resolução de 6x8.

Quanto ao treinamento, o algoritmo utilizado é o backpropagation com momento, apresentado na subseção III.A.2. A taxa de aprendizagem ( ) ministrada é de 0,9 e a taxa de momento ( ) de 0,1, com condição de parada por erro máximo absoluto de 0,01.

Quanto à topologia da RNA, são empregados 48 entradas e 10 neurônios na camada de saída. Os 48 neurônios usados na entrada são assim escolhidos pelo fato da resolução da imagem do algarismo redimensionado ser de 6x8 = 48 pixels. Cada um destes pixels representa uma entrada da RNA: as entradas de 0 a 5 recebem a primeira linha da imagem do algarismo, as entradas de 6 a 11 recebem a segunda linha e assim por diante.

Com relação à camada de saída, 10 neurônios são utilizados, já que se tem 10 saídas para a RNA, ou seja, uma saída para indicar o resultado do reconhecimento de cada algarismo de 0 a 9. Quanto à camada de neurônios intermediária, a determinação da quantidade de neurônios que deve ser utilizado é uma tarefa complexa [33], [34], levando quase sempre ao uso de heurísticas em sua definição.

Sabe-se que existe um número ótimo para esta quantidade de forma a minimizar erros durante sua fase de execução, porém, não é objetivo deste trabalho estabelecer uma topologia ótima para identificação de algarismos. Em [35] é apresentada a equação = , , (4)

em que é a quantidade de neurônios a ser utilizada na camada escondida, é a quantidade de nós na entrada e a quantidade de neurônios na saída da RNA. Esta equação pode ser utilizada para se determinar uma quantidade de neurônios adequada para a classificação em determinada aplicação.

No caso deste trabalho, a equação sugere o uso de uma topologia 48/32/10, ou seja, 48 entradas, 32 neurônios na camada intermediária e 10 saídas. Uma investigação é realizada de forma a determinar outras opções adequadas para a topologia da RNA utilizada para a implementação do classificador na fase de reconhecimento dos algarismos do sistema.

E. Metodologia utilizada para determinação da topologia da rede neural Para determinar a topologia mais adequada da RNA, várias

redes com topologias diferentes foram avaliadas aplicando-se o método de validação de modelo conhecido como validação cruzada [23], [36].

A validação cruzada consiste em tomar-se um conjunto de exemplos e separá-los aleatoriamente, para cada classe presente neste conjunto, em dois subconjuntos disjuntos: um utilizado para treinamento da RNA e o outro para teste deste

962 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

Page 7: An OCR System for Numerals Applied to Energy Meters

treinamento efetuado, visando à validação do modelo do classificador.

A quantidade de elementos destes conjuntos é expressa normalmente em percentual do total do conjunto de exemplos. Por exemplo: 10/90 significa que 10% do total de elementos do conjunto de exemplos são utilizados no treinamento e 90% no teste [37]. Neste trabalho dez variações de validação cruzada foram testadas: 10/90, 20/80, 30/70, 40/60, 50/50, 60/40, 70/30, 75/25, 80/20 e 90/10.

Quanto às topologias são testados modelos utilizando uma e duas camadas intermediárias. Para a opção de duas camadas intermediárias, é fixada a quantidade de 32 neurônios na primeira camada intermediária e varia-se a segunda camada em 2, 24 e 16 neurônios. Para uma camada intermediária, varia-se a quantidade de neurônios em 32, 24 e 16. Para cada topologia, o treinamento foi repetido por dez vezes.

As topologias em que se obtêm os melhores rendimentos médios são as com uma camada intermediária e com conjunto de treinamento 80/20. A melhor é a 48/32/10 com rendimento médio de 93,10. Este resultado está de acordo com o cálculo obtido pela equação (4). Em segundo e terceiro lugares, tem-se as topologias 48/24/10 e 48/16/10, com 92,07% e 91,03%, respectivamente.

O rendimento máximo obtido equivale a 94,83% e ocorre nas três topologias mencionadas anteriormente, o que sugere que o rendimento máximo pode ser obtido com estas três topologias.

Para estas três topologias campeãs, repete-se o seu treinamento por 100 vezes e escolhe-se o treinamento de melhor rendimento. Os resultados obtidos são apresentados na Tabela VI. Para a topologia 48/16/10 obteve-se um rendimento máximo de 94,44%. Para as topologias 48/24/10 e 48/32/10, obteve-se ambas 93,10%.

TABELA VI. RENDIMENTOS OBTIDOS PARA AS TOPOLOGIAS

CAMPEÃS.

Topologia Épocas Rendimento

48/32/10 1100 93,10%

48/24/10 1170 93,10%

48/16/10 1510 94,44%

O uso de 16 neurônios na camada intermediária, com uma

única camada, apresentam resultados satisfatórios para esta aplicação, sendo esta a topologia escolhida neste trabalho, pois apresenta menor quantidade de neurônios que as outras duas opções, permitindo economia de tempo de processamento e espaço em memória na implementação deste classificador, especialmente em versões embarcadas deste sistema.

Ainda como parte deste trabalho, uma classe de RNA é implementada em C++ e utilizada na implementação do OCR, na etapa de reconhecimento.

V. CONCLUSÃO Este trabalho descreve um protótipo de um sistema de Visão

Artificial para o reconhecimento de algarismos em medidores de energia elétrica convencionais. Este protótipo compreende todo o hardware (montado para este fim) e software do sistema de Visão Artificial, que faz parte de uma alternativa

para a leitura de medidores de energia elétrica na implantação do sistema de energia elétrica pré-paga via rádio (SEPPRA).

O sistema proposto é implementado utilizando-se de algoritmos tradicionais existentes de processamento digital de imagens, bem como de uma rede neural para realizar a função de classificador.

As principais contribuições deste trabalho podem ser vistas como: do ponto de vista tecnológico, a proposição do SEPPRA; e do ponto de vista científico, a avaliação dos algoritmos de binarização e a avaliação do classificador para esta aplicação, utilizando-se de testes com imagens reais e submetidas a variações de foco e zoom.

Outra contribuição deste trabalho está no desenvolvimento de tecnologia de medição de energia elétrica pré-paga, cuja principal vantagem está no aproveitamento de medidores de energia elétrica convencionais. O trabalho também pode ser útil para outros sistemas que necessitem de OCR de algarismos, entre outras aplicações. A partir deste, outros trabalhos futuros podem ser desenvolvidos tanto para melhorar o sistema proposto, como para utilizar a ideia em outras aplicações. Neste sentido, são propósitos para desenvolvimentos futuros: migrar para a plataforma Linux; embarcar o sistema de visão em DSP ou microcontroladores; integrar o sistema de reconhecimento de algarismo ao sistema SEPPRA.

REFERÊNCIAS [1] Pratt, W. K. (2007). Digital Image Processing, 4 edn, John Wiley

and Sons, Inc, Los Altos, CA. [2] Gonzalez, R. C. and Woods, R. (2008). Digital Image Processing,

3rd edn, Pearson Prentice Hall, New Jersey. [3] Berkhin, P. (2002). Survey of clustering data mining techniques,

Technical report, Accrue Software, San Jose, CA. [4] Knerr, S., Personnaz, L. and Dreyfus, G. (1992). Handwritten digit

recognition by neural networks with singlelayer training, IEEE Transactions on Neural Networks 3(6): 962–968.

[5] Mohanty, S., Dasbebartta, H. and Behera, T. (2009). An efficient bilingual optical character recognition (englishoriya) system for printed documents, Advances in Pattern Recognition, 2009. ICAPR ’09. Seventh International Conference on, pp. 398 –401.

[6] Oliveira, L. S., Sabourin, R., Bortolozzi, F. and Suen, C. Y. (2001). A modular system to recognize numerical amounts on brazilian bank cheques, Proceedings of the 6 International Conference on Document Analysis and Recognition, IEEE Computer Society, Seattle-USA, pp. 389–394.

[7] Ghugardare, R., Narote, S., Mukherji, P. and Kulkarni, P. (2009). Optical character recognition system for seven segment display images of measuring instruments, TENCON 2009 - 2009 IEEE Region 10 Conference, pp. 1 –6.

[8] Soares, J. M. (2004). Contribution a la communication gestuelle dans les environnements virtuels collaboratifs, PhD thesis, Institut National de Télécommunications, França.

[9] Qadri, M. and Asif, M. (2009). Automatic number plate recognition system for vehicle identification using optical character recognition, Education Technology and Computer, 2009. ICETC ’09. International Conference on, pp. 335 –338.

[10] Shah, P., Karamchandani, S., Nadkar, T., Gulechha, N., Koli, K. and Lad, K. (2009). Ocr-based chassis-number recognition using artificial neural networks, Vehicular Electronics and Safety (ICVES), 2009 IEEE International Conference on, pp. 31 –34.

[11] Mello, C. and Lins, R. (1999). A comparative study on ocr tools, Vision Interface 99 Conference pp. 224–232.

[12] de Alexandria, A. R. (2005). Sistema de reconhecimento óptico de algarismos para medidores convencionais de energia, Master’s thesis, Universidade Federal do Ceará, Fortaleza.

[13] Carneiro, C. A., Rodrigues, D. L. and Garcia, F. M. P. (2004). Plataforma de aquisição de sinais de vídeo com processamento digital de

RIPARDO DE ALEXANDRIA et al.: AN OCR SYSTEM 963

Page 8: An OCR System for Numerals Applied to Energy Meters

imagens em hardware, Anais do XV Congresso Brasileiro de Automática - CBA 2004.

[14] Sagar, B., Shobha, G. and Kumar, P. (2008). Complete kannada optical character recognition with syntactical analysis of the script, Computing, Communication and Networking, 2008. ICCCn 2008. International Conference on, pp. 1–4.

[15] Vamvakas, G., Gatos, B. and Perantonis, S. J. (2010). Handwritten character recognition through two-stage foreground sub-sampling, Pattern Recognition 43(8): 2807 – 2816.

[16] Desai, A. A. (2010). Gujarati handwritten numeral optical character reorganization through neural network, Pattern Recognition 43(7): 2582 – 2589.

[17] Chan, W., Sim, K. and Tso, C. (2011). Application of optical character recognition in thermal image processing, Infrared Physics and Technology 54(4): 353 – 366.

[18] Maltoni, D., D., M., Jain, A. K. and Prabhakar, S. (2003). Handbook of Fingerprint Recognition, Springer Profissional Computing, Nova York.

[19] Albuquerque, V. H., Alexandria, A. R., Cortez, P. C. and Tavares, J. a. M. (2009). Evaluation of multilayer perceptron and self-organizing map neural network topologies applied on microstructure segmentation from metallographic images, NDT & E International 42(7): 644– 651.

[20] Felix, J. H. S., Cortez, P. C. and Holanda, M. A. (2010). Sistema automático para quantificação e visualização da aeração pulmonar em imagens de tomografia computadorizada de tórax: Sistema de análise de imagens pulmonares - saip, Revista Brasileira de Engenharia Biomédica 26(3): 195–208.

[21] Mak, K. L., Peng, P. and Yiu, K. F. C. (2009). Fabric defect detection using morphological filters, Image Vision Comput. 27(10): 1585–1592.

[22] Siegwart, R. and Nourbakhsh, I. R. (2004). Introduction to Autonomous Mobile Robots, Bradford Book.

[23] Haykin, S. (1998). Neural Networks - A Comprehensive Foundation, 2 edn, Prentice Hall, USA.

[24] Plaut, D., Nowlan, S. and Hinton, G. (1986). Experiments on learning by backpropagation, Technical Report CMUCS- 86-126.

[25] Averchenkov, E. (2002). Tvideocapture - componente vcl para captura de video e bitmaps.

[26] Soille, P. (2004). Morphological Image Analysis: Principles and Applications, Springer-Verlag Nova York, Inc., Secaucus, NJ.

[27] Bernsen, J. (1986). Dynamic thresholding of gray-level images, Proc. Eighth International Conference on Pattern Recognition pp. 1251–1255.

[28] Cocquerez, J. P. and Phillip, S. (1995). Analyse d’images: filtrage et segmentation, Masson pp. 240–245.

[29] Johannsen, G. and Bille, J. (1982). A threshold selection method using information measures, pp. 140–143.

[30] Jawahar, C., Biswar, P. K. and Ray, K. (1997). Investigations on fuzzy thresholding based on fuzzy clustering, 30(10): 1605–1613.

[31] Wu, L., Ma, S. and Lu, H. (1998). An effective entropic thresholding for ultrasonic images, Fourteenth International Conference on Pattern Recognition pp. 1552–1554.

[32] Trier, O. D. and Taxt, T. (1995). Evaluation of binarization methods for document images, IEEE Transactions on Pattern Analysis and Machine Intelligence 17(3): 312–315.

[33] Murata, N., Yoshizawa, S. and Amari, S.-I. (1994). Determining the number of hidden units for an artificial neural network model, IEEE Transactions on Neural Networks 5(6): 865–872.

[34] Moody, J. (1994). Prediction risk and architecture selection for neural networks, in V. Cherkassky, J. H. Friedman and H. Wechsler (eds), From Statistics to Neural Networks: Theory and Pattern Recognition Applications, Springer, NATO ASI Series F.

[35] Yin, X.-C., Liu, C.-P. and Han, Z. (2005). Feature combination using boosting, Pattern Recognition Letters 25(14): 2195–2205.

[36] Webb, A. R. (2002). Statistical Pattern Recognition, 2a edn, Wiley, EUA.

[37] Uno, Y., Prasher, S., Lacroix, R., Goel, P., Karini, Y., Viau, A. and Patel, R. (2005). Artificial neural networks to predict corn yield from compact airbone spectrographic imager data, Computer and Electronics in Agriculture 47(2): 149 – 161.

Auzuir Ripardo de Alexandria é graduado em Engenharia Elétrica (1993) e em Ciências da Computação (1994) pela UFPB, é mestre (2005) e doutor (2011) em Engenharia de Teleinformática pela UFC. Atualmente é professor do IFCE. Atua nas linhas de pesquisa de Visão Computacional, Sistemas de Automação, Robótica Móvel, Processamento Digital de Imagens Médicas, Redes Neurais Artificiais e Automação Industrial.

Paulo César Cortez é graduado em Engenharia Elétrica pela UFC (1982), é mestre (1992) e doutor (1996) em Engenharia Elétrica pela UFPB. Atualmente é professor Associado I do Departamento de Engenharia de Teleinformática da UFC. Tem experiência na área de Engenharia Elétrica/Teleinformática, com ênfase em Visão Artificial, atuando principalmente nos seguintes temas: modelagem

poligonal de contornos 2d, detecção de contornos 2d, reconhecimento de padrões, segmentação de imagens digitais, processamento digital de sinais e imagens biomédicos e sistemas inteligentes de auxílio ao diagnóstico médico, visando aplicações em telemedicina.

John Hebert da Silva Felix é graduado em Automação Industrial pelo IFCE (2005), é mestre (2007) e doutor (2011) em Engenharia de Teleinformática pela UFC. Atualmente é Professor Adjunto I da Área de Tecnologias e Desenvolvimento Sustentável da Universidade da Integração Internacional da Lusofonia Afro-Brasileira (UNILAB). Atua nas linhas de pesquisa de Processamento Digital de Imagens

Médicas, Reconhecimento de Padrões e Desenvolvimento de Sistemas para Auxílio ao Diagnóstico Médico.

Anaxágoras Maia Girão é graduado em Engenharia Elétrica pela UFC (1992) e especialista em Arquitetura de Computadores com ênfase em Sistemas Tolerantes a Falhas. Atualmente é professor/pesquisador do IFCE, coordenando o Laboratório de Pesquisa Aplicada e Desenvolvimento em Automação (LAPADA). Tem larga experiência prática no desenvolvimento de Sistemas Embarcados (Hardware e Firmaware) destacando os seguintes casos de sucesso: SACI-I

(primeiro microssatélite brasileiro - INPE), Sistema de Fotomulta (FOTOSENSORES); CORE-IP - Sistema de Comutador Remoto para Iluminação Pública (FINEP); CORE-LDA - Sistema Remoto de Corte/Religação de residências (FINEP); Sistema de Automação de Blitz por reconhecimento de imagens (SECREL); UQV - Sistema Integrado de Painéis Inteligentes (SECREL); Sistema de rastreamento veicular (FINDNET); Sistema de Contagem de Fluxo de Passageiros em Transporte Coletivo por reconhecimento de imagens (ARCE); PORTÁCTIL - Tradutor Braille em Tempo Real (MEC).

João Batista Bezerra Frota é mestre em Redes de Computadores pela UECE (2010), especialista em Controle de Processos pelo CEFET-MG (1993) e graduado em Engenharia Elétrica pela UFC (1990). Professor do IFCE desde 1992. Tem experiência no desenvolvimento de sistemas embarcados atuando principalmente nas áreas de sistemas de automação para trânsito, painéis eletrônicos, sistemas de logística e

rastreamento veicular e sistemas embarcados de visão computacional.

964 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014