BR102012033723A2 - Método para restauração de imagens de código de barras desfocados - Google Patents

Método para restauração de imagens de código de barras desfocados Download PDF

Info

Publication number
BR102012033723A2
BR102012033723A2 BRBR102012033723-1A BR102012033723A BR102012033723A2 BR 102012033723 A2 BR102012033723 A2 BR 102012033723A2 BR 102012033723 A BR102012033723 A BR 102012033723A BR 102012033723 A2 BR102012033723 A2 BR 102012033723A2
Authority
BR
Brazil
Prior art keywords
image
barcode
psf
decoding
camera
Prior art date
Application number
BRBR102012033723-1A
Other languages
English (en)
Other versions
BR102012033723A8 (pt
BR102012033723B1 (pt
Inventor
Eduardo Telmo Fonseca Santos
Eduardo Manuel De Freitas Jorge
Gustavo De Almeida Neves
Geovane Dos Santos Anunciação
Luciano Rebouças De Oliveira
Original Assignee
Samsung Eletrônica Da Amazônia Ltda
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Eletrônica Da Amazônia Ltda filed Critical Samsung Eletrônica Da Amazônia Ltda
Publication of BR102012033723A2 publication Critical patent/BR102012033723A2/pt
Publication of BR102012033723A8 publication Critical patent/BR102012033723A8/pt
Publication of BR102012033723B1 publication Critical patent/BR102012033723B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Telephone Function (AREA)

Abstract

“método para restauração de imagens de códigos de barras desfocados”. A presente invenção refere-se ao campo da interação humana com dispositivos móveis, mais especificamente a interação feita pelo reconhecimento automático de imagens de códigos de barras capturados pela câmera integrada em dispositivos portáteis, particularmente telefones móveis, smartphones, assistentes pessoais digitais(pda), câmeras digitais portáteis, entre outros.mais especificamente, refere-se a um método para efetuar a leitura de códigos de barras por meio de dispositivos portáteis com câmeras digitais. A presente invenção fornece um método para restaurar imagens de códigos de barras danificadas pelo efeito de desfocagem devido à falta de foco das imagens capturadas com câmeras de baixo custo com foco fixo.o método proposto trata a imagem de códigos de barras de forma a possibilitar a decodificação correta de seu conteúdo.

Description

ΏΕ· «Ϊ'Τ'&ΪΪΙΒ BiCÍÍíO ΓΐΈ* ΤΜ&Γ’Έ'ΚΡΚ ΓΉ? Ο Ο Τ'1· Τ Ο Cs C ΪΙ&ΐίΧΪ & «2 fÍÍ&lUi/U f Ü£ui i?uüSlíiUJKi4yi4v j.y*s.j A. iXL.:s. e .C.Í i., A> 1JSU Uvi/i.bvâ L-".íi> Di4£\í\fiQ
DESFOCADOS
Campo da Invenção [ 0 0 01 ] A p r e s e n t e i n v e n ç ã o e s t á r e 1 a c i o n a d a. ao campo da interação humana com. dispositivos portáteis, mais especificamente à interação feita através do reconhecimento automático de imagens de códigos de barras capturadas através da câmera integrada em dispositivos portáteis, em. particular, telefones celulares, smartphones, assistentes pessoais digitais ou PDAs (Personal Digital Assistants), câmera digitais portáteis, dentre outros. [0002] 0 presente pedido de patente refere-se a um método para efetuar a leitura de códigos de barras por meio de dispositivos portáteis equipados com câmeras digitais. A presente invenção apresenta um método capaz de restaurar imagens de códigos des barras prejudicadas pelo efeito de borramento devido à falta de foco das imagens capturadas com câmeras de baixo custo com foco fixo. O método proposto trata a imagem de códigos de barras de forma a possibilitar a. decodi.ficação correta de seu conteúdo.
Antecedentes da Invenção [0003] Atualmente, a tecnologia de código de barras faz parte de vários setores da área comercial, industrial e financeira. Podemos encontrar códigos de barras na identificação dos produtos de um supermercado, nos livros de uma biblioteca, nas máquinas de uma indústria, nos boletos bancários, nos equipamentos de uma organização, nos crachás dos funcionários de uma empresa, etc. [ 0 0 0 41 Em gera1, os códigos de barras or iginais representavam a informação através das larguras e dos espaços de barras paralelas dispostas na horizontal. Este tipo de código de barras possui apenas uma dimensão e é conhecido como código de barras unidimensional ou linear. Corno exemplo de códigos de barras lineares tem-se o EAN-13, o código 128, o código 39, entre outros. [0005] Mais recentemente surgiram os códigos de barras capazes de armazenar a informação na vertical e na horizontal, sendo denominados código de barras 2D ou bidimensionais. Eles podem armazenar uma grande quantidade de informação. Como exemplo podem ser citados o QR Cgde, o Data Ma trix, PDF 417, C ód i g o 49, entre outros. [0006] Para efetuar a leitura do código de barras, utiliza-se um equipamento baseado ern leitura ótica que é conhecido como escâner ou leitor de código de barras. [0007] 0 documento de patente norte-americano US20110068173Al intitulado: System And Method For Recogni zing Deformed Linear Baircod.es Frorn A Stream Of Varied-Focus Video Frame, publicado em 24 de março de 2011, propõe um sistema de reconhecimento de código de barras. Este sistema efetua, a leitura de vários quadros filmados pela câmera no modo de pré-visualização, sendo que pelo menos um destes quadros deve possuir um código de barras. 0 referido sistema do documento US20110063173Al tenta estimar o nível de desfocagem causado pela falta de foco nos quadros de vídeo, A partir deste processo, também se tenta estimar a identidade do código de barras. 0 método ensinado pelo documento US20110068173Ά1 localiza a região que possui o código de barras. Outra operação realizada pelo documento US20110068173Al é a criação de um modelo geométrico de código de barras com as deformidades encontradas do código de barras, que, por sua vez, é utilizado na restauração do código de barras. Estas deformidades podem ser provocadas pela curvatura das embalagens, o nível de inclinação da câmera, a luz do ambiente, entre outros fatores. Porém a patente citada não apresenta detalhes sobre a criação deste modelo geométrico. O documento US20110 06 8173Ά1 estima ainda o nível de desfocagem, em que se o nivel de desfocagem for alto, a probabilidade de sucesso na decodificação do código de barras deste quadro será baixa, e este, por sua vez, é descartado. Esta estimativa é feita através do cálculo das diferenças entre os quadros filmados e através desta, tenta-se obter o raio de desfocagem presente no código de barras, onde se este for menor que o limiar de des focagem pré-determinado, então, efetua-se a leitura do código de barras, 0 documento US20110068173A1 não apresenta um método capaz de restaurar a desfocagem presente na imagem do código de barras, apenas verifica-se se a imagem possui um foco ideal; caso contrário, descarta-se a mesma. Com isto, apenas os códigos de barras presentes nas imagens nítidas serão decodificados. [0008] 0 pedido de patente internacional W02 011011051Ά2, intitulado: Image-Based Barcode Reader, publicado em. 27 de janeiro de 2011, apresenta um método que realiza a decodificação de código de barras presentes em imagens a partir de modelos deforraáveis, onde a partir da parametrização destes tenta-se através da máxima semelhança obter os dígitos do código de barras, sem binarizar a imagem com o código de barras e utilizando toda a informação dos pixels em escala de cinza. Para que a decodificação seja realizada com sucesso, é necessário que a localização do código de barras seja razoavelmente precisa, onde a tolerância de localização é igual a duas vezes a largura da barra mais fina, em qualquer uma das extremidades. Como os tamanhos dos rótulos nos quais os códigos de barras são impressos não possuem um padrão, este método pode limitar a decodificação de códigos de barras a situações em que as larguras das barras não correspondam à tolerância de localização apresentada.. Desta forma, a solução apresentada pelo pedido de patente internacional W02 011011051Ά2 não é adaptativa no que tange à decodificação cie código de barras com geometrias variadas. Para realizar a decodificação do código de barras, o método proposto pelo referido pedido de patente WO2011011051A2 tenta obter os dígitos comparando os pixels da imagem do código de barras com modelos pré-determinados, onde estes são escalados e transladados para se assemelharem aos dígitos em análise. 0 dígito decodificado será aquele com a ma.ior verossimilhança. Este processo pode ser mais lento do que a utilização de filtragem, pois o processo de obter o digito corresponde com o modelo é computac.ionalm.ente custoso. [0009] 0 documento de patente US2Ü110007967Ά1, intitulado: Method and Arrangement for Retrieving Information Comprised In a Barcode, publicado em 13 de 'janeiro de 2 011 apresenta um método que retorna a informação composta em um código de barras. Este método analisa a primeira imagem para verificar se esta possui um código de barras, verificando a qualidade desta e a região onde o código de barras está localizado. Se a primeira imagem possuir um código cie barras, então, se adquire uma segunda imagem, onde a qualidade desta imagem é maior que a da primeira imagem e a segunda região com o código de barras sobrepõe pelo menos uma parte da primeira região, Em seguida, efetua-se a decodificação do código de barras a partir da segunda imagem, O referido documento US2011000796 7Al tenta localizar o código de barras em uma primeira imagem com baixa qualidade. Para localizar o código de barras, efetua-se uma pesquisa por regiões retangulares na imagem usando uma janela deslizante. A seguir, extraem-se, então, as assinaturas associadas ao código de barras e utiliza-se o método SVM {Support Vector Machine) para avaliar se aquela janela possui ou não um código de barras. Caso este seja encontrado, então, se obtém uma imagem com a alta qualidade. Esta é obtida usando técnicas de melhoramento da qualidade, tais como autofoco, flash, técnicas de iluminação entre outras. 0 referido documento US20110007967A1 não apresenta nenhum método para restaurar a imagem danificada e nem propõe um método adaptativo para obtenção da informação representada pelo código de barras. [0010] 0 documento de patente brasileiro PI0603273A, intitulado: "Sistema e Método que Utiliza um Software para Realizar a Decodificação de Códigos de Barras Diretamente em Aparelhos de Comunicação Móvel Equipados com Câmera Digitais", publicado em 15 de janeiro de 2008, descreve um método para decodificação de código de barras a partir de imagens capturadas por câmera digitais de aparelhos de comunicação móvel, Este envia o resultado da decodificação para um servidor através de uma conexão de rede, que por sua vez irá fornecer informações sobre o produto associado ao número representado pelo código de barras decodificado. Caso não haja uma conexão de rede, então é possível armazenar o resultado da decodificação para uma futura consulta, A decodificação é realizada em tempo real a partir da análise dos quadros interceptados no modo de pré-visuaiização, como também pode ser realizada através da captura cie uma imagem em alta resolução a partir do pressionamento cie botão. Após obter a imagem com. o código de barras, inicia-se, então, o processo de tratamento da imagem, reconhecimento e decodificação. O documento brasileiro PI 06 032 73A propõe métodos para binarizar a imagem, corrigir iluminação e remover ruídos, porém não apresenta detalhes sobre o funcionamento destes. Este documento não apresenta também uma solução para restauração de imagens desfocadas e não possui métodos adaptativos para conversão da, imagem nas informações representadas pelo código de barras, [0011] O documento norte-americano US 0 0 7 2 3 7 7 21B2, intitulado: Image Processing for Pattern Detection, publicado em 3 de julho de 2007 descreve um método que detecta padrões, tais como código de barras, em uma imagem. Este método localiza os pontos de inicio e fim dos padrões em uma região de uma imagem, tenta calcular a PSF {Função de espalhamento de ponto - Point Spread Function {PSF) que é o grau ao qual um sistema óptico borra {espalha) um ponto de luz. A PSF é a inversa da transformada de Fourier da função de transferência ótica no domínio da freqüência) a partir dos pontos de início e fim detectados, e restaura a região da imagem usando a PSF obtida. 0 método proposto no referido documento US 0 0 7 2 3 7 7 21B2 assume que a PSF é gaussiana, o que nem sempre é correto e que pode limitar a restauração do código de barras. Além disso, o método realiza focagem com PSFs 1D ao longo de linhas de varredura, porém a PSF para restaurar uma. imagem deveria ser 2D, o que limita o poder de recuperação da informação no código de barras. Outra limitação do método proposto está no uso de uma PSF com parâmetros determinados para a imagem, porém os parâmetros da PSF deveríam variar ao longo da imagem para realizar uma reconstrução mais próxima do ideal. [0012] O documento norte-americano US2006 020039Al, intitulado Camera-Based Barcode Recognltion, publicado em 14 de setembro de 2 0 06, apresenta um sistema para identificação de código de barras usando câmeras digitais. 0 referido documento U52006020039 Al utiliza métodos que diminui o ruído e aumenta o contraste entre as barras, porém não descreve com detalhes como estas operações são efetuadas. E previsto um método para localizar o código de barras em qualquer posição e orientação, porém, para isto, é necessário que o código de barras esteja enquadrado no centro da imagem. O método de localização apresentado pelo documento U S 2 0 0 6 0 2 0 0 3 9Al é ineficiente por possuir alto custo computacional e não conseguir identificar o código de b a r r a s em i. ra a gens deg r a oi a d a s . Para b i n arizar a i ra a g em, o documento US2006020039A1 utiliza métodos não adaptativos, fazendo com que a imagem capturada esteja em condições ideais cie iluminação para que a binarização seja eficiente. 0 referido documento também não propõe um método para r e s tauração de image ns de s f o cad a s. [0013] 0 documento norte-americano US20050011957A1, intitulado: System and Method for Decoding and Analyzing Barcodes Using a Mobile Device, publicado no dia 20 de janeiro de 2005, propõe um sistema e método para decodificação de código de barras. Este documento apresenta um sistema e método que tenta melhorar a imagem capturada por uma câmera integrada ao dispositivo móvel; em seguida tenta-se obter a informação representada pelo código de barras presente nesta imagem. As informações obtidas são enviadas para um servidor através de uma conexão sem. fio, onde se efetua uma consulta sobre o conteúdo correspondente ao número decodificado. Este conteúdo, por sua vez, é transmitido para o dispositivo móvel. 0 documento US2005001195 7A1 apresenta um diagrama de blocos que descreve um processo utilizado para corrigir e decodificar a imagem do código de barras, porém não detalha os procedimentos apresentados neste diagrama de blocos. 0 procedimento descrito no referido documento obtém os quadros filmados pela câmera integrada ao dispositivo móvel e partir destes realiza inúmeras tentativas de d e c o d ifica çã o c o m d i f e r e nt e s par âmet ro s, a t é que o códig o de barras seja decodificado com sucesso ou até que todos os parâmetros sejam utilizados. O documento US2005001195 7Al menciona métodos para remover distorções que danifiquem a imagem, do código de barras e, por sua vez, atrapalhem a decodificação deste. Estes métodos são usados para: correção de perspectiva; remoção de cisalhamento; correção de problemas associados à iluminação; ajuste de foco; entre outros. Porém não são apresentados detalhes sobre o funcionamento destes métodos, fazendo com que não seja possível efetuar uma avaliação dos mesmos. 0 documento US20050011957A1 não descreve a etapa para obtenção do limiar de corte entre branco e preto, que é utilizado no processo de conversão cios pixels para barras. Este documento não menciona nenhum método para localizar ou identif icar previamente o código de barras antes da decodificação, não detalha o processo de obtenção das barras e não apresenta um método para restauração de imagens desfocadas. [ 0 011 ] 0 art igo “Robust Recogn11íοη of 1-D Barcodes Using Caniera Phones" de Steffen Wachenfeld et ai., publicado em 2008 no IEEE, descreve um algoritmo para decodif icação de código de barras usando câmeras de celular. 0 algoritmo descrito pelo artigo citado neste parágrafo utiliza técnicas de processamento de imagens, tais como: transformadas de Hough; Wavelets para localizar os padrões cio código de barras e operações rnorfológicas . Porém este artigo não descreve nenhum método para restaurar imagens de código cie barras danificadas pelo efeito do desfocagem, apenas detalha os procedimentos utilizados na localização do código de barras, binarização da linha cie varredura e identificação dos dígitos representados por este. Por sua vez, os procedimentos citados mostraram-se ineficazes na decodificação de códigos de barras presentes em imagens danificadas, pois os procedimentos propostos não são adaptativos o suficiente, tornando a decodificação menos eficaz. [0015] O artigo "A Robust Method for Blind Deconvolut ion of Barcode Signals and Nonuniform Illumination Est imat ion", de L. Dumas et al . , 17th IEEE International Conference on Image Processing (ICIP), Setembro de 2010, Hong Kong, disponível através do link http;//www.math.uvsq.fr/-dumas/Proc8.pdf, propõe um método que restaura a imagem de código de barras, removendo o ruído e a desfocagem usando deconvolução cega. 0 método proposto pelo referido artigo tenta remover distorções causadas por iluminação não uniforme. Este método baseia-se em um algoritmo genético que combina otimização discreta e continua aplicada a dados afetados fortemente pela presença ruido e do efeito de desfocagem. O artigo descreve um método de deconvolução cega com base em algoritmo genético cuja solução alvo é uma imagem binária, ou seja, os parâmetros da PSF, iluminação e regularização são também estimados automaticamente de forma a minimizar uma função custo. Vale ressaltar que a incerteza na velocidade de convergência e o tempo de processamento de algoritmos genéticos podem limitar suas aplicações em dispositivos portáteis. [0016] 0 artigo “Deblurring and Restoration in Barcode Signal Processing", de Todd Wittman, publicado em 2004 no Siam Conference on Imagine Processing 2QG4, disponível através do link http://www.math.ucla.edu/-wittman/thes is/bars_poster.pdf, apresenta, uma técnica de remoção da desfocagem baseada na minimização da variação total para restaurar imagens de código de barras. A abordagem adotada também pode ser enquadrada como deconvolução cega, pois estima os parâmetros da PSF e do código de barras conjuntamente, A minimização de urna função de custo é realizada utilizando-se métodos clássicos de otimização, tais como Newton e "Descida mais íngreme", que embora mais eficientes do que algoritmos genéticos, sofrem das limitações de métodos locais e também implicam em um custo computacional que pode limitar sua aplicabilidade em dispositivos portáteis. Outra limitação do método é assumir que a PSF é uma. função Gaussiana 1D, o que nem sempre é verdadeiro. [0017] 0 artigo "Processamento Digital de Imagens de Códigos de Barras usando Telefones Celulares" de Tiago Henrique Tudisco dos Santos e Almir Olivette Artero, publicado em 2010 no VI Workshop de Visão Computacional, de julho de 2010, realizado em Presidente Prudente, São Paulo, propõe o uso de telefones móveis integrados com câmeras digitais para decodificação de código de barras ΕΑΝ-13. 0 referido artigo descreve um método para localizar e decodificar o código de barras. A partir do operador de Sobel para detecção de bordas é possível localizar o código de barras e a direção das bordas a partir dos gradientes calculados após a. execução deste. Este artigo não apresenta nenhum método para corrigir problemas relacionados à falta de foco, problemas associados à iluminação, presença de ruídos entre outros. A binari zação descrita neste artigo pode ser ineficaz, pois possui limiar fixo e com isto os resultados desta podem ser prejudicados sob diferentes condições de iluminação. [0018] O artigo ”Locatlng and Decodíng EAN-13 Barcodes from Images Captured by Digital Cameras" de Douglas Chai e Florian Hock, de 2006, propõe uma técnica baseada em visão para localizar e decodificar código de barras. O artigo citado neste parágrafo não apresenta nenhuma técnica para tratamento cie distorções na imagem, sendo que este enfatizou o procedimento para localização do código de barras. [0019] Os documentos supracitados apresentam métodos que realizam a decodificação de código de barras e restauram imagens danificadas devido à presença de ruído, problemas relacionados à distância focal, problemas associados à iluminação do ambiente, baixo contraste, distorções provocadas pela perspectiva, entre outros. Devido a estes problemas, torna-se complexo realizar a decodificação de código de barras a partir de imagens capturadas por câmeras de baixo custo, pois, por conta da qualidade inferior destas câmeras, as imagens capturadas facilmente apresentam os problemas citados. A maioria dos documentos acima citados consegue realizar a decodificação de código de barras sob determinadas circunstâncias. Porém, para que a decodificação seja realizada com sucesso, é necessário que a imagem com o código de barras esteja acima de ura limiar aceitável. Alguns dos referidos documentos mencionam a necessidade de efetuar um tratamento prévio sobre a imagem capturada para que a decodif icação seja realizada com sucesso. Porém estes trabalhos não detalhara os procedimentos necessários para restaurar a imagem, apenas acrescentam urna espécie de caixa preta indicando a necessidade de melhorar a qualidade da imagem capturada. Uma das soluções do estado da técnica é estimar o nível de desfocagem, onde a decodificação só será realizada se este for menor que um limiar pré—estabeiecido. [Ο020] Εm cοηt rapartida, a presente invenção apresenta detalhes técnicos de uma solução capaz de restaurar imagens danificadas pelo efeito da desfocagem e apresenta um método robusto para obtenção dos números representados pelo código de barras presentes na imagem capturada. [ 0021] As so1uções mat eria1iz a d as pe1a present e invenção tornam, possível a decodificação de código de barras presentes em imagens capturadas por câmeras de baixo custo e que possuam foco fixo. A presente invenção possui um procedimento de calibração da câmera que cria uma base de PSF's. Estas refletem justamente a incidência do efeito de desfocagem em um determinado ponto, a partir de uma determinada distância. As PSF's desta base de dados são utilizadas na operação de decorivolução que remove o efeito de desfocagem e restaura a imagem com o código de barras. A presente invenção possui métodos adaptat.ivos para obtenção das barras, de modo a prover maior robustez sob variadas condições adversas. A decodificação do código de barras rea1i z a um procedimen to de va1idação e c ombinação e n t r e diferentes resultados, o que, por sua vez, aumenta a probabilidade de acerto na obtenção dos números representados pelo código de barras.
Sumário da Invenção [ Ο 0 2 2] A ρresente invenção ut i1i z a técnica s de processamento de imagens e visão computacional para. extrair a sequência de números que está contida em uma imagem de código de barras. Estas técnicas possibilitara segmentar a imagem do código cie barras, remover o efeito de des focagem (blurring), fazer a binarização adaptativa da imagem, a conversão do código de barras em dígitos e efetuar a validação do mesmo. [0023] 0 método de de codificação cia presente invenção foi desenvolvido para ser executado era um dispositivo portátil, com o qual se faz a captura da imagem de um código de barras. No caso de dispositivos que possuem câmera sem autofoco, a imagem adquirida necessita passar por um. pré-proc.essarnento para remover o borramento devido à falta de foco, compensar o desgaste provocado por interferências externas e realizar correções a fim de melhorar a qualidade cies t a e efetuar a de codificação correta do código de barras e validação do mesmo. [0024] A presente invenção fornece a decodificação de códigos de barras, restaurando imagens desfocadas que tenham código de barras e decodificando os mesmos em tempo real por meio de dispositivos portáteis que possuam câmera digital de baixo custo. O sistema tenta obter a imagem focalizada ideal e realizar a. decodificação de código de b a rra s η o pad r ã o EAN-13, padrã o que é c omume nt e a t iIizad o para a identificação de produtos. [0025] Esta invenção tem como objetivo prover uma s οIuç ão de ba ix o c us t o, e f ic ie nt e e e ficaz, que per mit a a o s consumidores consultar preços dos produtos em qualquer 1ug a r que e s t e j am. [0026] A present e invenção pos s ibi1ita ainda ao usuário utilizar câmeras com. foco fixo para efetuar a leitura do código de barras. O usuário deve enquadrar o código de barras dentro dos limites de uma mira previamente p o s i c i o nada.
Breve Descrição das Figuras [0027] Os objetivos e as vantagens da presente invenção tornar-se-ão mais evidentes a partir da descrição detalhada a seguir de um exemplo cie concretização da invenção e desenhos anexos a titulo de exemplo não-1imitativo, em que: [0028] A figura IA apresenta um exemplo de uma foto desfocada. [0029] A f d. ei u r a 1B aprese n t. a u m exe mp 1 o de foto focada. [0030] A figura 1C apresenta um modelo genérico do dispositivo portátil no qual o método funcioná. [Ο Ο 31] A fiσura 2 i1us tra a int erface que ser á apresentada para o usuário, [0032] A figura 3 apresenta o código de barras borrado e o resultado da restauração deste. [0033] A figura 4 apresenta um pixel focalizado e o resultado deste após a convolução com a PSF. [0034] A figura 5 ilustra os pontos a serem usados na extração de das PSF's. [0035] A figura 6 apresenta o resultado da captura d o s p o n t o s p e I a c ârne r a a 1 v o . [0036] A figura 7 ilustra o enquadramento do código de barras na mira da câmera. [0037] A figura 8 é o diagrama de blocos do processo de extração das PSF's. [0038] A figura 9 apresenta como é o processo para captura da imagem de pontos pela câmera alvo. [0039] A figura 10 é o diagrama de blocos do processo de segmentação das PSF's após a captura desta pela cârnera alvo. [0040] A figura 11 ilustra o processo para segmentação das PSF's. [0041] A figura 12 é o diagrama de blocos do processo de restauração e decodif icação do código de barras. [ Ο Ο 4 2] A f i g u r a 13 i 1 us t r a o p r o c e s s o d e c o ri v o 1 uçã o no domínio da freqüência. [0043] A figura 14 apresenta a imagem de um código de barras após o espelhamento. [0044] A figura 15 ilustra a conversão da PSF para O TF . [0045] A figura 16 ilustra a conversão da imagem que está no domínio do espaço para o domínio cia freqüência, [0046] A figura 17 apresenta o processo o resultado do processo de restauração da imagem desfocada. [ 0 0 47] A f igura 18 apresenta o processo de decodificação do código de barras após a restauração da imagem, [0048] A figura 19 ilustra o processamento efetuado na fatia horizontal. [0049] A figura 20 apresenta o processo cie conversão dos pixels em barras, [0050] A figura 21 apresenta a estrutura do código d e b arr a s η o padrão EAN—13. [0051] A figura 22 descreve o processo cie tradução das para barras para número. [0052] A figura 23 ilustra o processo de obtenção do resultado final.
Descrição Detalhada da Invenção [ Ο Ο 5 3] Ο si st ema d a present e i nve n ç ã o é concretizado a. partir dos métodos desenvolvidos para restaurar imagens de códigos de barras prejudicadas pelo efeito de desfocagem, e, em seguida, tenta decodificá-los a partir de um dispositivo portátil equipado com. câmera digital de baixo custo. Com isto, é possível desenvolver um método capaz de efetuar a leitura de códigos de barras que utiliza imagens capturadas por uma câmera com foco fixo, cuja qualidade é prejudicada devido a uma possível d i s t â n c i a f o c a 1 i n c o r r e t a .
Problemas Resolvidos pela Invenção [0054] Apesar dos avanços tecnológicos, os dispositivos portáteis ainda possuem hardware com recursos relativamente limitados para executar algoritmos que efetuam cálculos avançados. Portanto, a presente invenção aplicou técnicas cie processamento com o objetivo cie diminuir o custo computacional, possibilitando uma redução no tempo de decodificação e minimizando o uso processador do dispositivo portátil, além cie economizar memória, otimizando assim o uso dos recursos aumentando a eficiência do processo descrito nesta invenção. Estas técnicas também proporcionaram um aumento na robustez do leitor de código de barras, pois foi possível aumentar a. quantidade cie quadros analisados para o mesmo espaço cie tempo. [0055] Em dispositivos portáteis com câmeras sem autofoco, determinadas imagens capturadas com a câmera podem não conseguir digitalizar com nitidez objetos pequenos, como é o caso de algumas fontes de letra, onde, à medida que a câmera se aproxima, elas permanecem desfocadas e ilegíveis. Algumas embalagens de produtos de prateleira possuem código de barras tão pequenos que quando a câmera está acima de uma certa distância, não é possível distinguir suas barras devido à quacntidade insuficiente de pixels, e quando a câmera está próxima demais o objeto pode ficar desfocado. Este problema é contornado com a utilização do processo de focagem descrito nesta patente, obtendo-se assim uma imagem com o foco corrigido pelo processamento de imagens. [0056] Para os casos em que a imagem capturada do código de barras não está em condições adequadas, podería ocorrer perda de parte de suas informações. Este tipo de problema pode ser causado pelas condições de iluminação do ambiente, que pode ocasionar borrões de luz, sombras excessivas, ba ixa nitidez, entre out r o s. Também s ão mu i t o comuns situações em que o código de barras já se encontra danificado devido a diversos fatores, dentre os quais se destacam: impressão de má qualidade; superfície envelhecida; recipiente ou embalagem estragada; dentre outros. Com o intuito de melhorar a eficácia da presente invenção, foram criados métodos que efetuam a correção dias possíveis danos supracitados. Estes métodos são baseados em técnicas de empilhamento, ou seja, calcula-se a média de diversas linhas adjacentes na imagem do código de barras, melhorando assim a relação sinal./ruído da imagem, [0057] Objetivando melhorar a eficácia do método da presente invenção para a leitura cie códigos cie barras, mesmo sob condições desfavoráveis, um conjunto de métodos são aplicados sobre a imagem. 0 código de barras é dividido em fatias verticais e cada uma destas é processada separadamente. Para obter os valores das barras, sub-regiões verticais são definidas e, por sua vez, calcula-se o limiar de preto e branco para cada sub-região. Um. conjunto de pesos que ajustam o limiar ao nível de iluminação presente na imagem são aplicados no limiar. Com isto, os efeitos causados pela baixa qualidade da imagem e/ou fatores externos são eliminados permitindo realizar a leitura do código de barras. [0058] A s e mb a 1 a g e n s d os pr o du tos pos s u e m ci i v e r s o s formatos. Por exemplo, imagens de embalagens com superfície curva distorcem o tamanho das barras, dificultando, assim, a decodificação do código de barras. Para resolver este problema, a presente invenção utiliza algoritmos eficientes e eficazes para estimar o tamanho das barras, considerando-se um limiar baseado nas características especificas das dimensões das barras utilizadas no ΕΆΝ-13. V a n t a g e n s Té c η 1 c a s / F u n c i o n a. i s d a I n v e n ç ã o [0059] Decodificação de códigos de barras desfocados: A utilização de métodos para efetuar a deconvolução da imagem borrada utilizando-se a PSF ou OTF possibilitam estimar uma imagem mais próxima do ideal para decodificação do código de barras. Deste modo, remove-se o efeito de desfocagem causado pelo espalhamento dos pixels da imagem cio código de barras, aumento a taxa de acerto do método. [0060] Versatilidade para adaptação em diferentes câmeras: Um banco de PSF’s pode ser estimado para cada tipo de câmera diferente, possibilitando assim que o mesmo processo de focagem possa ser utilizado com diferentes câmeras. Isto confere versatilidade ao método, uma vez que o mesmo pode ser utilizado sem grandes alterações em diferentes dispositivos portáteis. [0061] Possibilidade de utilização de dispositivos com câmeras de baixo custo: Ά correção da imagem possibilita a utilização de dispositivos com câmeras sem autoroco ou com outras limitações ópticas, pois a deconvolução utilizando PSF ou OTF visa minimizar o efeito de desfocagem causado pelo arranjo óptico/câmera. O processo descrito nesta patente atua como um algoritmo de processamento digital de sinais que simula os efeitos de lentes corretivas aplicadas à imagem capturada. Assim, obtém-se uma imagem mais adequada para a decodificação de códigos de barras, mesmo com algumas limitações na captura da imagem, possibilitando também assim a utilização de câmeras de baixo custo. [0062] Baixo custo computacional: Buscando aperfeiçoar o processo de leitura do código de barras, foram utilizadas práticas de programação que otimizam a execução das instruções computacionais, como por exemplo, usar ponto fixo ao invés de ponto flutuante, utilizar manipulação de bits para realizar algumas operações, usar o mínimo de instruções possíveis para varrer ou copiar os pixels de uma imagem, dentre outras. [0063] Leitura de código de barras eficiente e eficaz: A leitura é eficiente porque minimiza a utilização dos recursos computacionais, e é eficaz porque obtém sucesso na maioria das tentativas de leitura, sendo possível realizar a decodificação de código de barras com tamanhos diferentes, qualquer posicionamento, qualquer inclinação, alta perspectiva e em ambientes com diferentes iluminações. [0064] Processamento em tempo real: Não é preciso capturar uma foto para que seja realizada a decodificação. O sistema executa todo o procedimento em tempo real analisando os quadros obtidos no modo cie pré-vi suai iz ação. Com isto foi possível aumentar a robustez do algoritmo, visto que a cada instante um novo quadro é processado até que a leitura seja realizada com sucesso. Além disto, a depender da resolução suportada no modo de pré—visualização pela câmera do dispositivo portátil, é possível aumentar ainda mais a eficácia do leitor de código de barras. [0065] Eliminação de regiões inúteis: regiões fora dos limites encontrados são excluídas da leitura, evitando o processamento de regiões que não pertençam ao código de barras. Com isto melhorou-se a eficiência do leitor, visto que menos partes da imagem serão analisadas, diminuindo assim o tempo de processamento. A eficácia é acrescida, pois elementos que influenciam negativamente na definição dos limites de corte da região do código de barras são eliminados, fazendo que somente as barras, que são as informações relevantes, permanecem no processamento, e com isto aumentando a probabilidade de acerto na decodificação. [0066] Identificação do código de barras: Com o objetivo de fazer com que o decodifiçador não seja executado em imagens que não possuam código de barras, efetua-se uma pré-analise dentro dos limites do código de barras. Neste momento será verificado o nível de contraste, onde, para os casos nos quais este contraste é muito baixo, descarta-se imediatamente a imagem, fazendo com que o leitor não execute uma tentativa de decodificação que poderia ser mal sucedida, e com isto, evitando-se o desperdício de tempo computando algo que dificilmente seria decodificado, Isto aumenta a eficácia no sentido que, após descartar a imagem, o processo será reiniciado e, portanto, um novo quadro que pode ter uma qualidade melhor e maiores chances de decodificação será fornecido. [0067] Fatiamento horizontal do código de barras: o código de barras é fatiado horizontalmente e a leitura é executada em cada uma destas fatias individualmente. Com. isto, obteve-se uma melhor eficácia, pois o número de amostras foi aumentado, o que levou a um acréscimo no percentual de acerto. Caso não se obtenha sucesso na decodificação de uma fatia, outra é selecionada até que o código seja decodificado ou ar té que todas as fatias tenham sido selecionadas. O número de fatias é ajustado conforme a execução da. leitura, fazendo com que no decorrer do processo obtenham-se fatias de diversas posições e de tamanhos diferentes, aumentando assim a probabilidade de sucesso na decodificação. [0068] Método adaptativo de binarização: fase onde ocorre a definição das barras do código. Nesta etapa é necessário determinar um limiar de corte para separar o nível branco do nível preto na imagem do código de barras em tons de cinza. Para isto foram criados métodos que calculam o limiar de forma flexível e ajustável. Este limiar se ajusta, à. iluminação do ambiente. Isto acontece porque a. fatia a ser decodificada é dividida em regiões verticais, e para cada uma destas sub-regiões obtém-se um limiar conforme a intensidade dos seus pixels. Além disto, a este limiar são atribuídos pesos que adaptam o limiar à iluminação do ambiente. Estes pesos foram definidos através de testes exaustivos nos quais foi possível extrair o devido peso para cada tipo de iluminação. No decorrer do processo de leitura o número de fatias verticais é ajustado, computando novos limiares para preto e branco. [0069] Leitura de código de barras em superfícies não planas: As embalagens dos produtos possuem diversos formatos. Podem ser encontrados produtos com embalagens com superfícies arredondadas, ovais, ou até mesmo embalagens que são sacos plásticos maleáveis cuja superfície não tem uma forma específica. Visando aumentar a robustez do processo, criou-se um método adaptativo que possibilita a decodificação de códigos de barras em superfícies com diferentes formatos. Sabendo que a depender da superfície que a barra se encontra, as dimensões das barras podem aumentar ou diminuir conforme a perspectiva provocada pelo formato da embalagem, Por conta disto estima-se um tamanho de barra de referência para realizar a decodif icação em c a d a re g i ã o da imagem. [0070] Leitura de código de barras com perspectiva: visando aumentar a eficácia do leitor, foram desenvolvidas técnicas que possibilitam a decodificação de códigos de barras em perspectiva. Isto foi possível devido o fatlamento horizontal que seleciona fatias do código que se encontram na mesma perspectiva favorecendo a decodificação de códigos de barras com alta perspectiva. L 'J U l _L j MSLUQQ aUãptãI»XVü OOLSIlÇãO1 « com o objetivo de aumentar o nível de acerto da decodificação, criou-se um método adaptativo para converter os pixels nas barras. Este método tenta compensar problemas relacionados com o vazamento de pixels nas suas vizinhanças verificando a existência de barras que ficaram finas ou largas demais. [0072] Validação do resultado: com o objetivo de mostrar apenas valores corretos, a presente invenção possui métodos de validação que verificam as barras de guarda do código e o digito verificador. Logo após a definição das barras é verificado se as barras de guarda estão corretas. Após todos os dígitos terem sido decodificados, efetua-se a checagem do digito verificador. Caso a checagem esteia correta, o valor decodificado é retornado e o resultado é exibido. [0073] Utilização de dispositivo de ha.rdwa.re com alta mobilidade: a presente invenção pode ser executada em um dispositivo portátil pequeno e leve que pode ser carregado para diferentes lugares sem ocupar muito espaço. Com isto obteve-se um aparelho portátil e leve que efetua a leitura de código de barras em tempo real, provendo comodidade ao usuário, pois este não precisará se deslocar para, por exemplo, consultar preços de produtos. [0074] Desta forma, uma concretização preferida da presente invenção é obtida contando com métodos capazes de restaurar imagens desfocadas pelo efeito de desfocagem e realizar a decodificação de códigos de barras presentes em imagens degradadas, com execução em tempo real a partir de um sistema integrado de hardware e software. [0075] As figuras IA e 1B ilustram imagens de fotos desfocadas e focadas, respectivamente. [0076] 0 hardware necessário para materializar o sistema da presente invenção é um dispositivo portátil, onde as suas principais características são ilustradas na figura 1C. A CPU 110 (Unidade Central de Processamento) é responsável por executar as instruções necessárias pelo gerenciamento da câmera, além de fazer os cálculos computacionais para o processamento da imagem com o código de barras. A câmera 111 é responsável por capturar as imagens. O meio de armazenamento 112 serve para guardar i nf o rmações e d ado s, i n c1u s i ve os c ód i g o de c od i f1c ado s, produtos consultados, entre outros. O hardware também é composto por dispositivos de entrada de informação 113 e componentes de áudio 114, Através de algum componente de conectividade 115 é possível fazer a. comunicação entre a aplicação e uma base de dados remota que possui informações sobre os produtos. O meio de exibição 116 é utilizado para visualizar os quadros capturados pela câmera do dispositivo. [0077] O sistema da presente invenção inicia-se no instante em que o usuário aciona-o em um dispositivo portátil no qual se encontrava previamente instalado. [0078] A figura 2 apresenta o sistema em execução. Após a inicialização deste, a câmera digital será executada e o modo de pré-visuaiização será iniciado, exibindo os quadros filmados na tela de exibição 210 do dispositivo a uma determinada taxa cie exibição (ex. : 3 0 EPS) , A materialização descrita do sistema possui duas barras de estado, onde a superior 211 indica o estado do leitor do código de barras, e a inferior 212 apresenta os resultados parciais da decodificação. [ 0079] A presente invenção tem como principal meta inserir a funcionalidade de um leitor de código de barras unidimensional em um dispositivo portátil equipado com câmera digital com foco fixo. Por sua vez, tornando possível criar uma solução de baixo custo que seja capaz de executar as funções dos equipamentos leitores de código de barras, comumente encontrados e m est abe1ecimentos comerciais e que são utilizados pelos clientes para efetuar a consulta sobre o valor do produto. [00 8 0] Aso1ução apresentada pe1a presente invenção tem como princípio efetuar o processo de deconvolução para remover o efeito causado pela desfocagem, que deforma a imagem fazendo com que haja uma degradação na imagem original, [0081] A figura 3 apresenta o resultado da restauração da imagem de um código de barras. O código de barras afetado pelo efeito da desfocagem 310 apresenta-se desfocado, e suas barras não representam mais as informações originais. Após a deconvolução, o código de barras apresenta-se mais nítido 311 e uma boa parte da informação original é recuperada. [0082] A restauração da. imagem está intimamente ligada à PSF. A PSF faz com que os pixels de uma. imagem focalizada sejam espalhados na região vizinha, gerando o efeito de imagem desfocada, Este efeito é ilustrado pela figura 4 que mostra a representação de pixel 410 e o seu espalhamento após a convolução 411 com a PSF, [0083] Para tornar possível a restauração da imagem., é necessário primeiro estimar a PSF que provocou o espalhamento dos pixels e em seguida efetuar o processo inverso. Por isto, foi. desenvolvido um método capaz de extrair PSF's estáticas para serem utilizadas na deconvolução. 0 referido método baseia-se na captura de imagens com fundo preto e pontos brancos que representam os pixels 510. Então, se efetua a captura desta imagem com a câmera alvo. O resultado é ilustrado na figura 6, cujos pixels foram espalhados 610 devido à distância focal incorreta. Além disto, também se adicionou ruído 611 à imagem capturada. Este espalhamento 610 consiste na PSF, que deve ser segmentada para utilização no método da presente i nvenç ão. [0084] A PSF que provocou a desfocagem pode ser alterada conforme a distância da câmera ao objeto alvo. B u s c a n d o d i m i n u i r o n ú m e r o de PSF ' s a sere m u t i. 1 i z a d a s, criou-se uma mira 710 para enquadrar o código de barras, fazendo com que a câmera fique aproximadamente à mesma distância em relação ao código ao código de barras filmado ou fotografado, [0085] A figura 7 exemplifica como o código deve ser enquadrado na mira. [0086] Para restaurar a image m e e f et u a r a decodif icação, primeiro, é necessário efetuar a calibração da câmera para obtenção das PFS's. As etapas para efetuar a calibração são apresentadas na figura 8, A calibração consiste em um processo de capturar imagens ole pontos a partir de distâncias previamente fixadas, e, por sua vez, segmentar os pontos das imagens capturadas. [0087] Conforme mencionado anteriormente, para extrair as PSF's necessita-se primeiramente criar uma imagem 810 com fundo preto e pontos brancos representando os pixels. Antes de efetuar a captura das imagens, necessita-se primeiro estipular as distâncias 811 em. que o dispositivo portátil ficará das mesmas. Esta distância deve refletir o posicionamento no qual o usuário enquadra o código de barras na mira, pois ela é mensurada conforme a largura dos códigos de barras. Como os códigos de barras no padrão ΕΆΝ-13 não possuem um tamanho padrão, necessita-se então tirar fotos em diferentes distâncias. [0088] A figura 9 ilustra a captura dos pontos para dois tamanhos de códigos de barras diferentes, onde se posiciona a câmera 910 enquadrando uma imagem de pontos brancos 911 que foi redimensionada conforme o tamanho de um determinado código de barras. Para capturar esta imagem, é necessário então enquadrá-la na mira 912, simulando o usuário ao enquadrar o código de barras. Cria-se, então, outra imagem de pontos brancos 914 que é redimensionada conforme a largura, de outro código de barras. Por sua vez a câmera deve ser reposicionada 913 para enquadrar a imagem. Com isto, cria-se uma base cie PSF' s para. diferentes tamanhos de código de barras. [0089] A captura destas imagens deve ser efetuada a partir da câmera, alvo 812. Modelos de câmeras diferentes podem possuir distâncias focais distintas, tornando-se necessário obter a base de dados de PSF’s relativa à câmera em p a r t i c u .1 a r . [0090] Após a captura das imagens, é necessário segmentar as PFS's. Para isto, primeiro efetua-se a binarização da imagem, separando o fundo da imagem dos pixels brancos 1010. Então, efetua-se uma varredura sobre a imagem binarizada, buscando as áreas com altos níveis cie intensidade 1011. Em seguida, os pontos brancos, que agora se encontram espalhados nas suas vizinhanças, são recortados e separados em imagens individuais 1012, Esta imagem com a PSF é adicionada a uma base de dados inicial 1013 para uma análise posterior. [0091] A figura 11 apresenta o processo de extração d as PSF's, o nde a imagem capturad a 1110 é bi n arizada 1111 criando uma máscara das regiões com as prováveis posições das PSF's. Em seguida, copiam-se apenas os valores das PFSds 1112, excluindo o fundo da imagem. Depois, recorta-se cada umas das PSF ds 1113 presentes nas imagens para armazená-las separadamente em uma base inicial. Esta base inicial é analisada para selecionar as PSF's que melhor restauram as imagens 814. Esta verificação é feita através de um método que tenta decodificar vários códigos de barras desfocados aplicando as PSF's da base inicial para restaurar a imagem. As PSF's cujas decodificações forem realizadas com sucesso e cujos números decodificados forem exatamente iguais aos números codificados pelos códigos de barras serão selecionadas. [0092] D e a c o r d o c orn a pr e sen t e i n ve n ç ã o, a deconvolução executada para fazer a remoção da desfocagem é aplicada no domínio da freqüência. Por isto, para evitar processamento desnecessário, converte-se a PSF que está no domínio do espaço em OTF, utilizada para fazer convo Inação e deconvolução no domínio da freqüência. Então, primeiramente η ο r m a 1 i z a m-se as PSF ' s a pa r t i r ci e u m a a mp I i t u d e previamente estabelecida e efetua-se a conversão para. OTF. Este processo será. apresentado detalhadamente a seguir, [009.3] Após a cal i br ação da câmera e obtenção das respectivas OTF's para restauração da imagem, efetua-se o processo para leitura do código de barras propriamente dito . [0094] A figura 12 ilustra as etapas executadas no dispositivo portátil no momento em que se inicia a leitura do código de barras. [0 095] A. etapa '"captura a imagem com o código de barras" 1210 acontece em tempo real e é o momento no qual um quadro filmado pela. câmera é selecionado e enviado para decodificação. No sistema, que foi desenvolvido como uma das possíveis concretizações para a presente invenção, criou-se um botão que é utilizado para inicializar a captura dos quadros. Neste momento, o usuário deve enquadrar o código de barras na mira conforme apresentado na figura 2. A captura das imagens será executada até que o código de barras seja decodificado com sucesso, ou até que o tempo limite seja finalizado, [0096] Após a captura do quadro, inicia-se a etapa " r e s t a u r a i rrt a g e m " 1211 . Nes t a e t a pa, se 1 e c i o n a - s e u ma OTF na. base de ciados e efetua-se a deconvolução, Para descrever 0 processo de restauração da imagem, é preciso descrever matematicamente como acontece o espalhamento dos pixels e deduzi-lo inversamente até chegar aos resultados da p r esent e i nvençã o. [0097] O efeito de desfocagem pode ser modelado matematicamente como sendo uma convolução entre os pixels e a. PSF. Esta operação é apresentada com detalhes a seguir: b(x, y) = psf(x, y) * i(x, y) C1 > [0098] A equação (1) apresenta o modelo matemático que descreve como ocorre o espalhamento dos pixels, sendo que o símbolo é utilizado para definir a operação de convolução entre a psf(xfy) e i (x,y) no ponto (x,y) , onde 1 (x,y) é a imagem ideal. [0099] O resultado desta convolução será a imagem desfocada, representada por b (x,y) . Então, para remover o efeito cie desfocagem, é preciso efetuar o processo inverso, onde, a partir da imagem borrada, obtém—se a imagem original. [ 010 0 ] A e q u a ç ã o { 2 ) a p r e s e n t a c o m o s e r i a a restauração da imagem utilizando convolução, onde i (x,y) é a imagem ideal focalizada, psf ! (x,y) representa a PSF inversa e b (x,y) representa a imagem desfocada. Então, para remover o efeito de desfocagem a partir da operação de convoluçâo, faz-se necessário estimar a PSF inversa, sendo que através da aplicação desta pela convoluçâo com a imagem borrada, consegue-se remover o espalhamento apresentado nos pixels. [0101] Sabe-se que a convoluçâo entre duas funções no domínio do espaço torna-se o produto entre as transformadas destas duas funções no domínio da freqüência. Portanto, partindo desta propriedade, a deconvolução no domínio da f reqüência é dada pela divisão entre eus transformadas de duas funções. Ou seja, a divisão entre as transformadas da imagem desfocada e a PSF resultará na transformada de uma imagem ideal focalizada. [0102] A transformada da imagem no domínio da freqüência é obtida através de uma transformada discreta de Fourier. Por sua vez, aplica-se a transformada inversa de Fourier para retornar ao domínio do espaço, [010 3] A t r ans f o rmada discre t a d e F o u r i e r é d a d a pela equação (3) , onde u = (0, 1, 2, . . . , M-l) e v = (0,1, 2, . . . ,N-1) . [0104] A e q uaçã o f4) c o r re spo nde à transformad a inversa de Fourier, para x = (0, 1, 2, „ . . , M-l) e y = (0, 1, 2,...N—1), onde Δη = l/ΜΔχ e Δν = 1/ΝΔν. [0105] 0 método da presente invenção utiliza o algoritmo da transformada rápida de Fourier (FFT - Fast Fourier Transform) para calcular a. transformada discreta de Fourier, pois através deste é possível diminuir a complexidade de N2 para N log2 N operações e por sua vez reduzir o custo computacional incorrido no cálculo das t r a n sfor rn a d a s . [0106] As equações (5) a (8) apresentam um modelo matemático utilizado para causar o efeito de desfocagem a partir do domínio da freqüência. [ 010 7 j A e qu ação ( 5 ) ca1cu1a t r a ns fo rma ç ã o d a imagem do domínio do espaço (ou domínio espacial) para o domínio da freqüência, utilizando a transformada rápida de Fourier, representada pela FFT, onde i(x, y) representa a imagem ideal focalizada no domínio do espaço e I (u, v) é a respectiva imagem no domínio da freqüência. [0108] A equação (6) executa os mesmo cálculos da equação (5), onde psf(x,y) representa a função de espalhamento do ponto no domínio do espaço e PSF(u,v) representa a mesma no domínio da freqüência. [0109] A equação (7) adiciona o efeito de desfocagem multiplicando a PSF(u, v) por I(u, v). Por fim, transforma-se a imagem para o domínio do espaço novamente a partir do algoritmo de transformada rápida inversa de Fourier, conforme é apresentado na equação (8) através da F F T “A, r e t o r n a n do, p o r s u a v e z , a im a g e m d e s f o c a d a a o domínio do espaço b{x, y). [0110] O processo descrito no parágrafo anterior é ilustrado na figura 13. 0 código de barras 1310 e a PSF 1311 estão no domínio do espaço. Calculam-se então as suas transformadas de Fourier 1312, obtendo as imagens no domínio da freqüência. A magnitude dos espectros das transformadas do código de barras 1313 e da PSF 1314 com origem. deslocada para o centro são apresentadas e representam as imagens no domínio da freqüência. As transformadas são multiplicadas (operação de convolução no domínio da freqüência) 1315 e a transformada, inversa de Fourier 1317 é aplicada sobre o resultado, obtendo por sua vez a imagem desfocada no domínio do espaço 1318. [0111] A partir do entendimento destas informações, desenvolveu-se então um processo que executa um conjunto de operações, onde a partir da imagem desfocada tenta-se obter a imagem ideal focalizada. Estas operações baseiam-se na deconvolução da imagem no domínio da frequência, dividindo a. transformada cia imagem desfocada pela respectiva transformada, da função de espalhamento. [0112] A equa çã o (9) de s c r eve ma t ema t ic ame nt e a operação de deconvolução descrita no parágrafo anterior. [0113] Os métodos para o processamento de imagens a fim de obter a imagem focalizada ideal: [0114] Para diminuir a complexidade e aumentar a velocidade dos cálculos das transformadas, o algoritmo da transformada rápida de Fourier utilizado trabalha com vetores ou matrizes cujas dimensões são potência de 2. A equação (10) é utilizada, para obter as dimensões adequadas para o cálculo da transformada rápida de Fourier, onde col é a quantidade cie colunas, lin a quantidade de linhas da imagem e ceil é uma função utilizada para arredondar um valor para cima. Desta forma, a matriz utilizada no cálculo da transformada terá dimensões iguais a NxN, onde N é igual ao maior expoente de base 2 arredondado para cirna entre as potências do número de colunas e do número de linhas, [0115] Após obter as dimensões adequadas para o cálculo da transformada, cria-se uma matriz com estas dimensões e copiam-se os pixels da imagem para esta matriz, o que pode resultar em espaço excedente devido à diferença entre as dimensões. Em geral, se preenche o espaço excedente com zeros, porém para minimizar o efeito de bordas, muitas vezes causado na imagem pela transformada de Fourier, copia-se a imagem para o centro da nova matriz 1410 e efetua-se o espelhamento desta para cima 1411 e para baixo 1412, [0116] A figura 14 ilustra uma imagem de entrada para a transformada rápida de Fourier. [0117] A presente invenção possui uma base de PSF's que são extraídas para a câmera alvo. Para diminuir o processamento, as PSF's são armazenadas no domínio da freqüência no formato de uma OTF. Desta forma, é possível eliminar a etapa de conversão da PSF para, OTF no d i s p o s i t i v o p o r t á t i 1, d i m i n u i n d o, a s s i m, o c u s t o computacional durante a restauração da imagem. [0118] A figura 15 ilustra o processo de conversão de PSF para OTF. A PSF 1510 é copiada para uma nova imagem 1511 com dimensões adequadas 1512 para o cálculo da transformada. Em seguida, efetua-se o des1ocamento circu1ar 1513 com valor de deslocamento igual à metade da dimensão da PSF multiplicado por -1, reposicion ando os pixels da nova imagem conforme é apresentado em 1514. Na sequência, o algoritmo da transformada rápida de Fourier 1515 é executado, transformando a matriz cio domínio do espaço para dorninio da freqüência, onde o resultado será a OTF, cujo espectro é apresentado por 1516. Esta OTF é armazenada e embarcada no dispositivo portátil para ser utilizada na restauração da imagem durante a leitura do código de barras. [0119] O processo efetuado para calcular a transformada da imagem no domínio da freqüência é apresentado na figura 16. A imagem do código de barras 1610 é copiada para o centro de uma imagem com as dimensões adequadas para calcular a transformada 1611, então se efetua o espelhamento 1612 desta. Em. seguida, calcula-se a transformada. 1613 da nova imagem, cujo resultado do e s ρ e c tr o é apre s e n tad o por 1614. [0120] Nas equações de 11 a 13, o símbolo x representa a multiplicação aritmética convencional. Após obter a transformada da PSF e a transformada da imagem desfocada, efetua-se então a operação de deconvolução, que pode ser modelada matematicamente como sendo a equação (11), onde esta é dada corno a divisão entre a OTF (u, v) e B(u,v). Partindo das propriedades dos números complexos, multiplica-se o numerador e o denominador pelo conjugado da OTF(u,v) , conforme apresentado na equação (12) . A equação (13) altera o denominador para |OTF(u,v)\zr pois um número complexo multiplicado pelo seu conjugado é igual a sua norma ao quadrado. Na equação (11) pode ocorrer o problema da divisão por zero ou por números muitos pequenos. Para eliminar este problema, necessita-se determinar um número que após a divisão das transformadas não resulte em valores inconsistentes. O denominador da equação (13) é um número real, o que facilita as comparações efetuadas para obtenção de s t e núrner o . [0121] A equação (14) efetua o cálculo do número limite para. o denominador, que é representado por À. Este valor será o maior valor do numerador multiplicado pela raiz de ε, onde o valor de ε é um número pequeno que tende a zero, [0122] A representação matemática final para a operação de deconvolução utilizada pela. presente invenção para remoção do efeito de desf ocagem é dada pela equação (16), onde o denominador D {u, v) é obtido a partir da equação (15) . Esta equação retornará À, caso | OTF (u, v) Γ: o seja menor que X, senão retornara. | OTF (u, v) j . Através deste processo, evita-se divisão por zero ou por números muito pequenos. O resultado desta equação, representado por I(u,v) é a transformada da imagem restaurada, [0123] Após a deconvolução no domínio da frequência, converte-se a imagem ideal focalizada do domínio da freqüência de volta para o domínio do espaço, através do algoritmo da transformada rápida inversa de Fourier, obtendo, assim, a imagem ideal focalizada no domínio do espaço. [0124] A figura 17 apresenta o resultado da restauração da imagem. A imagem do código de barras 1710 é preparada para a operação de deconvolução 1710 no domínio da f reqüência. Esta operação tem corno resultado urna transformada da imagem sem o efeito de desfocagem. Em 1712, é exibido o espectro com. origem no centro da transformada resultante da operação de deconvolução. Através do algoritmo da transformada rápida inversa de Fourier 1713, converte-se a transformada resultante para o domínio do espaço, transformando-a na imagem focalizada 1714. Em seguida, recorta-se apenas a região do centro 1715 com o código de barras restaurado 1716. Este por sua vez é utilizado como parâmetro de entrada para. o algoritmo de d e c o d i f i ca çã o de c ód i go de barras. [0125] Após a restauração da imagem se inicia a etapa "Decodifica código de barras" 1212, que recebe a imagem do código de barras restaurada e tenta realizar a decodificação deste, Este processo é dividido em sub-etapas que realizam processamento dai imagem a fim de retornar os números representados pelo código de barras presente na imagem. Este processo é detalhado através do fluxograma apresentado pela figura 18 e é descrito a seguir. [ 012 6] Ο cόciigο de barr as 1810 presente na imageru restaurada é fatiado horizontalmente 1811 e cada uma destas fatias é processada individualmente, A quantidade de fatias horizontais é uma das entradas do leitor de código de barras, sendo que esta é adaptativa, ou seja, a depender da execução da leitura do código de barras o número de fatias horizontais pode ser alterado buscando aumentar a quantidade de dígitos decodificados. Cada fatia irá retornar um vetor com os dígitos decodificados, sendo que o tamanho deste vetor é a igual ao número de dígitos do código de barras no padrão EAN -1.3 . O fatiamento horizontal é ilustrado em 1812. [0127] A equação (17) calcula a altura da fatia horizontal, onde floor é uma função que arredonda para baixo. O tamanho da fatia é representado por Hs, que é um percentual, definido por β, cie Η, o qual representa a altura da imagem do código de barras. O número de fatias horizontais é calculado através da equação (18) representado por Ns. O deslocamento entre as linhas da imagem do código de barras, representado por ASf é calculado a partir da equação (19) [0128] 0 código de barras no padrão ΕΆΝ-13 possui apenas uma dimensão, ou seja, a informação está disposta em uma linha, portanto, necessita-se converter a fatia horizontal, que é uma matriz bidimensional, em um vetor, Este processo é feito através do empilhamento vertical 1813 que transforma uma matriz de duas dimensões em um vetor 1814, sendo que os valores do vetor correspondem à média ponderada das colunas da primeira matriz. [0129] 0 empilhamento vertical é calculado conforme é a p r esen t a d o pela e qu ação (20), c o ri v e r t e n d o a m a t r i z bidimensional representada por i (x, y) no vetor ;js (x) . Este vetor armazena as médias ponderadas das colunas entre o Z\s e Δ3 + HSf onde As representa o deslocamento vertical e Hs representa a quantidade de linhas das fatias horizontais. [0130] 0 processo seguinte é a binarização 1815 do v e t o r re s u11a nt e do empi1h ame nt o ve r t i c a1. E s t e pr ocess o irá converter os valores deste vetor, que estão entre a faixa de 0 a 2 55, em apenas dois valores, preto "0" e branco "1" 1816. Para isto, necessita-se definir um limiar que separa a faixa cie valores que correspondem preto dos valores que correspondem branco, Devido às condições adversas, como a presença de ruído na irnagem e os níveis de iluminação do ambiente externo, as faixas cie valores do vetor podem variar afetando o resultado da binarização. Por conta disto, se divide o vetor em regiões e calcula-se um limiar para coada uma destas regiões, 0 limiar é média ponderada da região multiplicada por um peso pertencente a um conjunto de pesos previamente definido. Estes pesos são utilizados para adaptar o limiar aos diferentes níveis cie iluminação. Se o valor do vetor for menor do que o limiar, então, se atribui preto "0"; caso contrário, se atribui branco " 1", resultando em outro vetor cujos valores estão entre 0 e 1. [ 0131 j Ν a s e qua ç õe s 21 a 2 4, é apresentad o o mé t o d o de binarização do vetor. A equação (21) representa o conjunto de pesos utilizados no cálculo dos limiares. Na equação (22) calcula-se o tamanho das regiões no qual o vetor será dividido, onde W representa o tamanho cio vetor, Rn a quantidade regiões a serem utilizadas e Wr corresponde ao tamanho das regiões. O valor de Rn é adaptativo e pode ser alterado para melhorar o resultado da decodificação. 0 limiar é calculado pela equação (23), onde xr representa o inicio da região rf w± representa um peso i no conjunto de pesos e lr representa o limiar calculado para região r. Por fim a equação (24) calcula o vetor binarizado, onde b(x) será branco "1" para us(x) maior ou igual ao lr ou preto "0" para p.s(x) menor que lr. [0132] O procedimento descrito no parágrafo anterior é detalhado pele. figura 19. A fatia horizontal 1910 é empilhada, verticalmente 1911 convertendo-a em um vetor. Em seguida, obtém-se o peso 1912 a ser aplicado no cálculo do limiar, divide-se o vetor em regiões 1913 e se calcula os limiares para a binarização 1914. Após isto, é possível identificar as barras do código e calcular os dígitos destes 1915. Os dígitos obtidos são armazenados 1916 para serem utilizados posteriormente. Este processo é repetido até que todos os pesos do conjunto de pesos sejam utilizados 1917. [0133] A etapa c o nve rt e pixels par a b arras 1817 recebe o vetor binarizado com as informações em pixels e converte este para um vetor com a representação do código de barras no padrão ΕΆΝ-13, que é formado por quatro níveis de barras diferentes: "fina"; "média: 2 barras finas"; "larga: 3 barras finas"; "muito larga: 4 barras finas". Com isto, criou-se um método que tenta estimar quantos pixels cada barra possui. Este método tenta encontrar a quantidade de pixels de uma barra fina e a partir desta definir o tamanho das outras barras. [0134] 0 vetor binarizado 2010 é convertido em dois vetores, um com os tamanhos das barras em pixels e um. segundo vetor contendo a cores das barras (preto "0" ou branco "1") 2011. Estes vetores são utilizados nos cálculos executados durante a conversão dos pixels para barras, Para obter os tamanhos corretos de cada barra necessita-se primeiro encontrar o início do código de barras. Sabe-se que o código de barras no padrão ΕΆΝ-13 inicia-se com 3 barras finas intercaladas entre preto e branco. Encontra-se o início do código de barras quando se acha uma barra preta "0", uma barra branca "1" e uma. barra preta "0", cuja maior diferença entre os tamanhos das barras seja menor que um limiar previamente estipulado. [0135] A figura 21 apresenta a estrutura de um código de barrais no padrão ΕΆΝ-13. Neste padrão, ais três primeiras barras 2110 são utilizadas para identificar o inicio do código de barrais e ais três últimas barras 2114 identificam o fim do código de barras. As cinco barras dos centros 2112 dividem o código de barras em dois grupos, onde o primeiro grupo 2111 representa os sete números iniciais do código cie barras, sendo que o primeiro dígito 2115 é definido através da paridade entre as barras do primeiro grupo. O segundo grupo 2113 representa os seis últimos dígitos do código de barras. Cada dígito do código de barras é representado por quatro barras. [0136] Assim, para efetuar a leitura do código de barras, primeiro se localizam as barras que representam o início cio código de barras. Este procedimento utiliza o vetor com os tamanhos das barras em pixels e o vetor com as cores das barras, ilustrados em 2011. Sabe-se que o inicio do código de barras no padrão ΕΆΝ-13 é representado por três barras finas com cores preta, branca e preta, respectivamente 2110. Portanto, criou-se um método adaptat. ivo que tenta localizar este padrão de barras a partir da maior diferença entre os tamanhos de três barras contínuas. Caso esta diferença seja. menor que o limiar, utilizadas para representar a menor distância entre os tamanhos das barras, e as cores das barras coincidirem com as cores das barras do padrão que representa o inicio, então, significa que o início do código de barras foi localizado. [0137] A equação (25) calcula a diferença entre as barras, onde v é o vetor com o tamanho das barras em pixels e x representa o deslocamento pelo vetor. Se o valor retornado por M(v,x) for menor que o limiar da menor diferença, então o primeiro grupo do código de barras começa na posição x + 3 do vetor v. Portanto, inicia-se a tradução das barras para os dígitos do código de barras a partir da posição x + 3 do vetor com o tamanho das barras em pixels e com o vetor contendo as cores das barras. [0138] Para efetuar a tradução dos dígitos, os vetores são percorridos de quatro em quatro barras até completar os seis dígitos do primeiro grupo 2110. Em seguida, são descartadas as cinco barras do centro 2112, e efetua-se a tradução dos seis últimos dígitos do segundo grupo 2113 . Na tradução dos primeiros dígitos, calculam-se também as paridades destes, que representam o primeiro digito do código de barras 2115. [0139] A figura 22 apresenta um exemplo de execução do processo de conversão das barras em dígitos. Em 2210, são apresentadas as barras que representam, o número quatro no segundo grupo. Neste processo, utiliza-se um vetor com o tamanho das barras em pixels 2211 e um segundo vetor para identificar as cores das barras. A partir destes, criou-se um método adaptativo que visa converter os pixels em apenas quatro níveis de barra: "1" para barra fina; "2" para barra média; "3" para barra larga; "4" para barra muito larga. [0140] Sabe-se que cada dígito do código de barras é represent ado por sete barras fin a s. Po rtan t o, o 1imi a r utilizado para definição das barras é o tamanho da barra fina 2212. 0 limiar ou tamanho da barra, fina é obtido através da soma do tamanho das barras em pixels dividido por sete 2213. [0141] Mesmo após o processo de restauração da imagem, é possível encontrar ruídos na imagem. Estes, por sua vez, afetara no resultado final da decodif icação do código cie barras. Para contornar este problema, o método que converte os pixels para barras tenta ajustar o limiar no momento da tradução. Este ajuste é feito através da aplicação ole um conjunto de pesos ao limiar 2214, gerando diferentes limiares 2215. [0142] A conversão dos pixels para barras é feita através da divisão entre o tamanho das barras em pixels pelos limiares obtidos após a aplicação cios pesos 2216. 0 resultado será uma matriz cujas linhas representam os resultados dos diferentes limiares e as colunas representam os tamanhos das barras 2217 . [0143] Devido à presença de ruído, podem existir casos em que o processo para obtenção dos tamanhos das barras é prejudicado, fazendo com que algumas barras tenham pixels a mais, e por sua vez, outras tenham pixels a menos. Ou seja, algumas barras ficarão muitas finas e outras extremamente largas. Para resolver este problema, desenvolveu-se um método que tenta restaurar o tamanho da barra. Este método tenta identificar as barras que ficaram muito finas, buscando os valores cujo resultado da divisão dos tamanhos das barras em pixels pelos limiares ficou menor que 0,5. Adiei ona-se então 0,5 na barra, que ficou muito fina e se subtrai 0,5 das barras vizinhas. Este processo é descrito em 2218 e um exemplo de seu resultado é aprese nt ad o e m 2 219. [0144] 0 procedimento seguinte é a conversão dos valores resultantes para números inteiros. Para isto se a r r e d o n d a m o s v a 1. o res 2 2 2 0, pe r m anecend o a p e n a s a p a r t e inteira 2221. [0145] Em seguida, convertem-se os valores obtidos nas barras, que são representados por uma combinação de 0's (barras brancas) e 1's (barras pretas). Esta combinação tem sete elementos, onde cada um destes representa uma barra fina. Obtém-se então uma lista destas combinações 2223 e em seguida efetua-se a decodificação 2224 das barras em. busca do número representado por estas. Em caso de sucesso, se obtém uma lista com os números decodificados. Caso um ou mais dígitos não sejam decodificados, se retorna um valor — 1 para cada um destes respectivamente 2225. [014 6] 0 res u11ado do pr o ce s s o de s c r i t ο ηo parágrafo anterior é uma lista com os prováveis números 2225 que podem ser representados pelas barras decodificadas. Então, a partir desta lista, tenta-se estimar o número com maior probabilidade de ser representado pelas barras decodificadas. Isto é feito calculando-se o digito dominante 2226, que é o número diferente de -1 com maior frequência na lista dos números decodificados, conforme apresentado em 2227. Com isto, conclui-se então a etapa de tradução dos dígitos do código d e b ar r a s 1819. [0147] O processo de binarização 1815, conversão dos pixels para barras 1817, e tradução dos dígitos do código de barras 1819 gera um vetor cora treze posições que contém os possíveis valores dos números representados pelo código de barras. Estas operações são executadas em cada uma das fatias horizontais, gerando por sua vez, um vetor de resultados para cada uma das fatias. Estes vetores são usados para construir um histograma de dígitos 1820, que é utilizado na obtenção dos números representados pelo código G0 Dclr £' 3. S * [0148] Através cio histograma de dígitos que é gerado a partir das decodifreações das fatias horizontais tenta-se chegar a um resultado ótimo. [0149] A figura 23 ilustra o processo de obtenção do histograma de dígito e geração do resultado final. [0150] Cada fatia horizontal do código 2310 é decodificada separadamente retornando uma sequência cie dígitos decodificados para cada fatia 2311. No caso cie faina na decodifreação de um dígito, atribui-se o valor -1 (menos um) na sua. posição. [0151] Para obtenção cio valor final calcula-se um histograma de dígitos 2312. A freqüência cios valores deste histograma é afetada pela quantidade de números retornados com sucesso durante a decodificação. [0152] O processo para obtenção do histograma de dígitos é apresentado nas equações 26 a 28. A equação (26) retorna 0 (zero) se o digito for igual -1 (menos um), caso contrário retorna 1 (um), onde u± representa um vetor com a sequência de digitos retornados na decodi.fi cação de uma fatia cujo índice é representado por í. A equação (27) calcula o incremento do histograma, onde este é igual ao número de elementos de u± diferentes de —1 (menos um) . A equação (28) incrementa um valor no histograma, representado por H, onde y é dígito a ser incremento e x é a posição deste dígito no código de barras. 0 histograma terá seu valor atualizado somente se o valor u,· na posição x for diferente de -1 (menos um). [015.3] Após calcular o histograma de dígitos, obtêm-se então os números representados pelo código de barras 1821, 2313, que serão aqueles com maior freqüência no histograma de dígitos. Este processo é apresentado pela equação (29), onde y representa os números do código de barras e x a posição deste. 0 resultado final da decodificação é representado na equação (29) por R, sendo armazenado em um vetor com 13 (treze) posições. [0154] 0 processo seguinte é a validação do resultado 1822, onde a partir deste analisa-se a sequência de números retornados na decodificação com o objetivo de verificar se esta é uma seqüência válida. Para isto, verifica-se primeiramente se todos os dígitos foram decodificados corretamente. Caso todos os números tenham sido decodificados com sucesso, então se calcula dígito verificador. Caso o digito verificador esteja correto, então a seqüência decodificada é válida. [0155] Em caso de erro, captura-se um novo quadro e se efetua o processo novamente até que o código de barras seja decodificado com sucesso ou até acabar o tempo limite de leitura. [0156] Quando a decodificação de um código de barras for realizada com sucesso, então se inicia etapa "exibe o resultado" 1213. Nesta etapa o código decodificado é apresentado na tela de exibição do dispositivo portátil. A p a rt i r deste res u11 ado, é po s s i ve1 e fe tua r pe s qui s as sobre os pontos de vendas que fornecem o produto identificado pelo código de barras decodificado, como também consultar o preço deste, [0157] Embora uma modalidade preferida da presente invenção seja mostrada e descrita, aqueles versados na técnica compreenderam que várias modificações podem ser feitas sem se afastar do escopo e do espirito da presente invenção, tal como definidos nas reivindicações anexas. [0158] É expressamente previsto ainda que todas as combinações dos elementos que desempenham a mesma função substancialmente da mesma forma, para alcançar os mesmos resultados, estão dentro do escopo da presente invenção.

Claims (20)

1 . Método para restauração de imagens de códigos de barras desfocados caracterizado pelo fato de que compreende as etapas de: - capturar a imagem com. o código de barras (1210) , em que um quadro filmado pela câmera é selecionado e enviado para de c o d i f i c a ç ã. o ; - após a captura do quadro, iniciar a etapa restaura imagem (1211), em que se seleciona uma OTF na base de dados e e f e t u a -- s e a d e c ο η v o 1 u ç ã o; - após a restauração da imagem, iniciar a. etapa de decodificação de código de barras (1212), que recebe a imagem do código de barras restaurada e tenta realizar a decodificação deste, sendo o referido processo dividido em. sub-etapas que realizam processamento da imagem a fim de retornar os números representados pelo código de barras presente na imagem; - quando a decodificação de um código de barras é realizada com sucesso, então, iniciar etapa "exibe o resultado" (1213).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que se baseia na captura de imagens com fundo preto e pontos brancos que representam os pixels {510), para, desse modo, efetuar a captura da referida imagem com a câmera alvo.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os pixels são espalhados {610) de vi d o à di stânc i a f o c a1 incorreta, o refer id o espalhamento (610) consistindo na PSF, que deve ser segmentada para utilização.
4. Método, de acordo com a reivindicação 1, cara c10ri zado pelo fato de que compreende ainda as seguintes etapas: - a imagem capturada (1110) é binari zada (1111) criando uma máscara das regiões com as prováveis posições d a s P o F 1 3 ] - em seguida, copiam-se apenas os valores das PFS's (1112), excluindo o fundo cia. imagem; - d epois, re c o r ta-s e c ad a umas d as P SF's (1113) presentes nas imagens para armazená-las separadamente em uma ba.se inicial, sendo a referida base inicial analisada para selecionar as PSF's que melhor restauram as imagens (814); - a referidai verificação sendo feita através de um método que tenta decodificar vários códigos de barras desfocados aplicando as PSF's da base inicial para restaurar a imagem; - em que as PSF's cujas decodificações são rea1izadas com sucesso e cujos números decodificados são exatamente iguais aos números codificados pelos códigos de barras s e I e c i o n a d a s .
5. Método, de acordo com. a. reivindicação 1, caracterizado pelo fato de que o tamanho das barras é estimado, considerando-se um limiar baseado nas características especificas das dimensões das barras utilizadas no EAN-13.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a deconvolução cia imagem borrada utilizando-se a PSF ou OTF possibilita estimar uma imagem mais próxima do ideal para de codificação do código de barras, removendo-se, assim, o efeito de desfocagem causado pelo espalhamento dos pixels da imagem do código de barras, aumento a taxa de acerto do método,
7. Método, de acordo com. a. reivindicação 1, ca i£í* 3 ct íã ίΐΓ 3™ o. Q. C pelo fato de que compreende um procedimento de calibração da câmera que cria uma base de PSF's, refletindo a incidência do efeito de desfocagem em. um. determinado ponto, a partir de uma determinada distância, sendo as PSF’s desta base de dados utilizadas na referida operação de deconvolução que remove o efeito de desfocagem e restaura a imagem com o código de barras.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende a extração de PSF's estáticas para serem utilizadas na referida d e c ο η v o 1 u ç ã o .
9. Método, de acordo com. a. reivindicação 1, caracterizado pelo fato de que um banco de PSF' s pode ser estimado para cada tipo de câmera diferente, possibilitando assim que o mesmo processo cie focagem possa ser utilizado com diferentes câmeras,
10. Método, de acordo com a reivindicação 1, rr jjC ^ 2* Cá. íÍQ pelo fato de que a correção da imagem possibilita a utilização de dispositivos com câmeras sem autofoco ou com outras limitações ópticas, a deconvolução u t i 1 i z a n do PSF o u O T F m ini miz ando o efei to de desfoc agem causado pelo arranjo óptico/câmera.
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que realiza processamento em tempo real, analisando os quadros obtidos no modo de pré-visualização.
12. Método, cie acordo com a reivindicação 1, caracterizado pelo fato cie que as regiões fora dos limites encontrados são excluídas da leitura, evitando o processamento de regiões que não pertençam ao código de barras.
13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o código de barras é fatiado horizontalmente e a leitura é executada em cada uma destas fatias individualmente.
14. Método, de acordo com. a. reivindicação 1, caracterizado pelo fato de que o número de fatias é ajustado conforme a execução da leitura, fazendo com que no decorrer do processo obtenham-se fatias de diversas posições e de tamanhos diferentes, aumentando assim a probabilidade de sucesso na decodificação.
15. Método, de acordo com. a. reivindicação 1, c<sl r* cL ot €* r ~2L· z a. dc^ pelo fato de que na definição das barras do código, é necessário determinar um limiar de corte para separar o nível branco do nível preto na imagem do código de barras em tons de cinza.
16. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o referido limiar se ajusta à iluminação do ambiente.
17. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida fatia a ser decodificada, é dividida em regiões verticais, e para cada uma destas sub-regiões obtém-se um limiar conforme a i n te n s id ade do s s e u s pixels.
18. Método, de acordo com a reivindicação 1, cnr act θίΓχζ ado pelo fato de que, após a definição das barras, é verificado se as barras de guarda estão corretas,
19. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que realiza a decodificação de código de barras presentes em imagens capturadas por câmeras de baixo custo e que possuem foco fixo.
20. Método, cie acordo com a reivindicação 1, caracterizado pelo fato de que é necessário obter a base de dados de PSF's relativa à câmera em particular em função de modelos de câmeras diferentes possuírem distâncias focais distintas.
BR102012033723-1A 2011-12-28 2012-12-28 método para restauração de imagens de códigos de barras desfocados BR102012033723B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/338,988 2011-12-28
US13/338,988 US8867857B2 (en) 2011-12-28 2011-12-28 Method for restoration of blurred barcode images

Publications (3)

Publication Number Publication Date
BR102012033723A2 true BR102012033723A2 (pt) 2015-05-12
BR102012033723A8 BR102012033723A8 (pt) 2018-06-05
BR102012033723B1 BR102012033723B1 (pt) 2020-12-01

Family

ID=48694849

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102012033723-1A BR102012033723B1 (pt) 2011-12-28 2012-12-28 método para restauração de imagens de códigos de barras desfocados

Country Status (2)

Country Link
US (1) US8867857B2 (pt)
BR (1) BR102012033723B1 (pt)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948513B2 (en) 2009-01-27 2015-02-03 Apple Inc. Blurring based content recognizer
US9098764B2 (en) * 2009-07-20 2015-08-04 The Regents Of The University Of California Image-based barcode reader
US8606032B2 (en) * 2009-12-23 2013-12-10 Sony Corporation Image processing method, device and program to process a moving image
US8905314B2 (en) 2010-09-30 2014-12-09 Apple Inc. Barcode recognition using data-driven classifier
CN102270292B (zh) * 2011-05-24 2015-09-09 惠州Tcl移动通信有限公司 移动终端及其解码方法
US9124797B2 (en) 2011-06-28 2015-09-01 Microsoft Technology Licensing, Llc Image enhancement via lens simulation
US9338354B2 (en) * 2011-10-03 2016-05-10 Nikon Corporation Motion blur estimation and restoration using light trails
US9137526B2 (en) * 2012-05-07 2015-09-15 Microsoft Technology Licensing, Llc Image enhancement via calibrated lens simulation
US20140231449A1 (en) * 2013-02-19 2014-08-21 Gojo Industries, Inc. Refill container labeling
US9418400B2 (en) * 2013-06-18 2016-08-16 Nvidia Corporation Method and system for rendering simulated depth-of-field visual effect
US10909845B2 (en) * 2013-07-01 2021-02-02 Conduent Business Services, Llc System and method for enhancing images and video frames
JP6318520B2 (ja) * 2013-09-27 2018-05-09 株式会社リコー 撮像装置、撮像システムおよび撮像方法
GB2542738B (en) 2014-07-18 2020-07-29 Hewlett Packard Development Co Frequency domain range determination for a periodic or quasi-periodic target
WO2016032524A1 (en) * 2014-08-29 2016-03-03 Hewlett-Packard Development Company, Lp Image processing
US10198648B1 (en) 2015-04-10 2019-02-05 Digimarc Corporation Decoding 1D-barcodes in digital capture systems
US10331928B2 (en) 2015-11-06 2019-06-25 International Business Machines Corporation Low-computation barcode detector for egocentric product recognition
US20170200247A1 (en) * 2016-01-08 2017-07-13 Confirm, Inc. Systems and methods for authentication of physical features on identification documents
TWI560620B (en) * 2016-01-20 2016-12-01 Qisda Corp Barcode decoding method
CN108536707A (zh) * 2017-03-03 2018-09-14 绍兴读图网络科技有限公司 图片信息安全处理方法及系统
US10185857B2 (en) 2017-06-14 2019-01-22 Canon Information And Imaging Solutions, Inc. Devices, systems, and methods for reading barcodes
KR102521408B1 (ko) * 2018-08-27 2023-04-14 삼성전자주식회사 인포그래픽을 제공하기 위한 전자 장치 및 그에 관한 방법
US11734531B2 (en) 2020-10-20 2023-08-22 Hand Held Products, Inc. Methods and systems of harvesting data for training machine learning (ML) model
CN113177890B (zh) * 2021-04-27 2023-04-18 深圳市慧鲤科技有限公司 图像处理方法及装置、电子设备和存储介质
CN114662519B (zh) * 2022-05-24 2022-09-27 武汉朗修科技有限公司 基于位置探测图形梯度和强度先验的qr码盲去模糊方法
CN116205806B (zh) * 2023-01-28 2023-09-19 荣耀终端有限公司 一种图像增强方法及电子设备
CN117237231B (zh) * 2023-11-10 2024-02-09 深圳市善之能科技有限公司 一种防止显示屏画面模糊的渐变调整方法及系统
CN117576617B (zh) * 2024-01-16 2024-04-16 杭州长河智信科技有限公司 一种基于不同环境自动调节的解码系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6152371A (en) * 1998-08-12 2000-11-28 Welch Allyn, Inc. Method and apparatus for decoding bar code symbols
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
JPWO2005069216A1 (ja) * 2004-01-15 2010-02-25 松下電器産業株式会社 光学的伝達関数の測定方法、画像復元方法、およびデジタル撮像装置
US7172124B2 (en) 2005-03-10 2007-02-06 Microsoft Corporation Camera-based barcode recognition
US7237721B2 (en) * 2005-05-24 2007-07-03 Nokia Corporation Image processing for pattern detection
BRPI0603273A (pt) 2006-05-10 2008-01-15 Inca Servicos De Tecnologia De sistema e método que utiliza um software para realizar a decodificação de códigos de barras diretamente em aparelhos de comunicação móvel equipados com cámeras digitais
WO2008020449A2 (en) * 2006-08-16 2008-02-21 Xceed Imaging Ltd. Method and system for imaging with a zoom
US8199246B2 (en) * 2007-05-30 2012-06-12 Fujifilm Corporation Image capturing apparatus, image capturing method, and computer readable media
US20090152358A1 (en) * 2007-12-14 2009-06-18 Epshteyn Alan J System and Method for a Barcode Reading Functionality Using an Image Capturing Device
EP2093697B1 (en) 2008-02-25 2017-08-23 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for retrieving information comprised in a barcode
CN102334128B (zh) * 2008-12-26 2015-03-25 数据逻辑扫描公司 用于成像的系统和方法
US8750637B2 (en) * 2009-03-30 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Barcode processing
US9098764B2 (en) 2009-07-20 2015-08-04 The Regents Of The University Of California Image-based barcode reader
US8851382B2 (en) 2009-09-24 2014-10-07 Ebay Inc. System and method for estimation and classification of barcodes using heuristic and statistical measures
KR101055853B1 (ko) * 2011-01-04 2011-08-09 (주)올라웍스 입력되는 바코드 영상을 디블러링하기 위한 방법, 단말 장치 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
US8867857B2 (en) 2014-10-21
BR102012033723A8 (pt) 2018-06-05
BR102012033723B1 (pt) 2020-12-01
US20130170765A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
BR102012033723A2 (pt) Método para restauração de imagens de código de barras desfocados
BRPI1100823B1 (pt) Sistema e método automático para rastreamento e decodificação de código de barras por meio de dispositivos portáteis equipados com câmeras digitais
KR102082301B1 (ko) 카메라로 촬영한 문서 영상을 스캔 문서 영상으로 변환하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
US10803275B2 (en) Deconvolution of digital images
JP5505007B2 (ja) 画像処理装置、画像処理方法及び画像処理用コンピュータプログラム
KR101836071B1 (ko) 정보를 인식하기 위한 방법 및 시스템
JP5566811B2 (ja) プリントアンドスキャン文書の画像評価のためのボケ除去および監視適応的スレッショルディング
CN110136069B (zh) 文本图像矫正方法、装置与电子设备
US8457403B2 (en) Method of detecting and correcting digital images of books in the book spine area
US20140247470A1 (en) Camera-based document imaging
US11017260B2 (en) Text region positioning method and device, and computer readable storage medium
US9286501B2 (en) Method and device for identifying a two-dimensional barcode
US20110044554A1 (en) Adaptive deblurring for camera-based document image processing
WO2019200802A1 (zh) 合同影像图片的识别方法、电子装置及可读存储介质
KR101731804B1 (ko) 차량 번호판 인식 장치 및 방법
KR101058726B1 (ko) 조명 성분을 제거하기 위한 이미지 보정 장치 및 방법
US8913836B1 (en) Method and system for correcting projective distortions using eigenpoints
BR112013011943B1 (pt) método para identificação de um código de barras bidimensional em dados de imagem digital do código de barras, meio legível por computador não transitório e aparato configurado para identificar um código de barras bidimensional em dados de imagem digital do código de barras
JP6542230B2 (ja) 投影ひずみを補正するための方法及びシステム
CN112997217A (zh) 从视频图像进行文档检测
Chethan et al. Graphics separation and skew correction for mobile captured documents and comparative analysis with existing methods
Prabhu et al. An approach for improved data matrix distortion correction using median filtered hough transform
Liyanage Efficient decoding of blurred, pitched, and scratched barcode images
Wasule et al. An effective approach to recover corrupted or mobile captured 2D barcode images with improved accuracy
Kao et al. Skew detection of document images using line structural information

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B03H Publication of an application: rectification [chapter 3.8 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 28/12/2012, OBSERVADAS AS CONDICOES LEGAIS.