KR20200050091A - 바코드를 판독하는 방법 및 전자 장치 - Google Patents

바코드를 판독하는 방법 및 전자 장치 Download PDF

Info

Publication number
KR20200050091A
KR20200050091A KR1020180132553A KR20180132553A KR20200050091A KR 20200050091 A KR20200050091 A KR 20200050091A KR 1020180132553 A KR1020180132553 A KR 1020180132553A KR 20180132553 A KR20180132553 A KR 20180132553A KR 20200050091 A KR20200050091 A KR 20200050091A
Authority
KR
South Korea
Prior art keywords
barcode
line
reading
image
distortion
Prior art date
Application number
KR1020180132553A
Other languages
English (en)
Other versions
KR102638707B1 (ko
Inventor
미크하일로 우스
겐나디 키스
유리 히링크
유리 로브이킨
신대규
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180132553A priority Critical patent/KR102638707B1/ko
Priority to PCT/KR2019/010469 priority patent/WO2020091206A1/ko
Priority to US17/287,052 priority patent/US20210365654A1/en
Priority to EP19879013.1A priority patent/EP3842989B1/en
Priority to CN201980071679.4A priority patent/CN112955896A/zh
Publication of KR20200050091A publication Critical patent/KR20200050091A/ko
Application granted granted Critical
Publication of KR102638707B1 publication Critical patent/KR102638707B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1465Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

바코드가 촬영된 영상을 획득하고, 영상에서, 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고, 적어도 하나의 라인에 인접한 영상 영역에서, 바코드가 왜곡된 정도에 관한 정보를 획득하고, 획득된 정보에 기초하여, 복수 개의 라인 중에서, 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고, 결정된 적어도 하나의 라인에 기초하여, 바코드를 판독하는, 전자 장치에서 바코드를 판독하는 방법이 제공된다.

Description

바코드를 판독하는 방법 및 전자 장치 {Method and Electronic device for reading a barcode}
본 개시는, 바코드를 판독하는 전자 장치 및 그 동작 방법에 관한 것이다.
바코드는 바와 공백의 조합에 의해 영문, 숫자 또는 특수 기호를 광학적으로 판독하기 쉽도록 부호화한 기호이다. 바코드 언어에 의해 정의된 규칙에 따라 문자 또는 숫자를 나타내는 바(bar)와 공백(space)이 배열됨으로써, 바코드가 구성될 수 있다.
바코드는 물품의 정보를 표시하는 라벨로써, 안정적으로 정보를 담고 이를 빠르게 읽을 수 있는 장점 때문에 현재까지도 광범위하게 사용되고 있다. 최근에는, 상품 또는 광고에 부착된 바코드를 통하여, 소비자가 해당 상품과 관련된 정보를 쉽게 얻을 수 있게 하는 다양한 서비스가 제공되고 있다. 소비자는 바코드 스캐너를 별도로 구비할 필요 없이 휴대 가능한 전자 장치를 이용하여 바코드를 촬영한 영상으로부터 바코드를 쉽게 판독함으로써 상품과 관련된 정보를 획득할 수 있다.
그러나, 영상이 촬영될 때의 주변 환경, 카메라 성능 등 다양한 원인으로 인해 왜곡이 발생되는 경우, 바코드가 촬영된 영상을 이용한 바코드의 판독 성능이 저하될 수 있다. 따라서, 영상에 존재하는 왜곡을 고려하여 바코드의 판독 성능을 향상시킬 수 있는 방법이 요구되고 있다.
본 개시가 해결하고자 하는 과제는 전술한 문제를 해결하기 위한 것으로서, 바코드가 촬영된 영상으로부터 바코드를 판독하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함하는 컴퓨터 프로그램 제품을 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 바코드가 촬영된 영상을 획득하는 단계; 상기 영상에서, 상기 바코드의 일부분을 커버하는 복수 개의 라인을 결정하는 단계; 상기 복수 개의 라인과 각각 인접한 영역에서, 상기 바코드가 왜곡된 정도에 관한 정보를 획득하는 단계; 상기 획득된 정보에 기초하여, 상기 복수 개의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는 단계; 및 상기 결정된 적어도 하나의 라인에 기초하여, 상기 바코드를 판독하는 단계를 포함하는 전자 장치에서 바코드를 판독하는 방법이 제공될 수 있다.
또한, 본 개시의 제2 측면은, 하나 이상의 인스트럭션을 저장하는 적어도 하나의 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 바코드가 촬영된 영상을 획득하고, 상기 영상에서, 상기 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고, 상기 복수 개의 라인과 각각 인접한 영역에서, 상기 바코드가 왜곡된 정도에 관한 정보를 획득하고, 상기 획득된 정보에 기초하여, 상기 적어도 하나의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고, 상기 결정된 적어도 하나의 라인에 기초하여, 상기 바코드를 판독하는, 전자 장치가 제공될 수 있다.
또한, 본 개시의 제3 측면은, 제1 측면의 방법을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품을 제공할 수 있다.
일 실시 예에 의하면, 다양한 종류의 왜곡을 고려하여, 바코드를 판독함으로써, 영상으로부터 바코드를 판독하는 성능을 향상시킬 수 있다.
도 1은 일 실시 예에 따라 전자 장치에서 바코드를 촬영하는 일 예를 나타낸 것이다.
도 2는 일 실시 예에 의한 바코드의 일부분을 커버하는 라인의 일 예를 도시한 것이다.
도 3은 일 실시 예에 의한 바코드가 촬영된 영상에 존재하는 왜곡의 일 예를 도시한 것이다.
도 4 및 도 5는 일 실시 예에 의한 전자 장치의 내부 구성을 설명하기 위한 블록도이다.
도 6은 일 실시 예에 의한 바코드를 판독하는 방법을 나타낸 순서도이다.
도 7은 일 실시 예에 의한 영상으로부터 바코드를 판독하는 방법을 나타낸 순서도이다.
도 8은 일 실시 예에 의한 바코드를 판독하는 방법을 활용하는 예시를 나타낸 것이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 일 실시 예에 따라 전자 장치에서 바코드를 촬영하는 일 예를 나타낸 것이다.
도 1을 참조하면, 전자 장치(1000)는 상품, 광고지, 웹페이지 등 다양한 종류의 물체 표면에 부착되거나 표시된 바코드를 촬영할 수 있다. 일 실시 예에 의한 전자 장치(1000)는 바코드가 촬영된 영상을 분석함으로써, 바코드를 판독할 수 있다. 예를 들면, 바코드의 심볼과 대응되는 문자 또는 숫자가 바코드의 판독 결과로 출력될 수 있다. 일 실시 예에 의하면, 사용자는, 바코드를 판독하기 위한 바코드 스캐너를 구비할 필요 없이, 카메라가 구비된 전자 장치(1000)로 바코드를 촬영함으로써, 바코드를 판독할 수 있다.
그러나, 카메라로 촬영된 영상에 포함된 바코드에는, 영상이 촬영될 때의 외부 조명, 카메라 성능 및 상태, 영상 촬영 과정에서 발생된 에러 등 다양한 원인으로 인해 발생된 다양한 종류의 왜곡이 존재할 수 있다. 예를 들면, 전자 장치(1000)가 움직이고 있는 상태에서 촬영된 영상, 바코드가 부착된 제품이 움직이고 있는 상태에서 촬영된 영상, 어두운 조명 환경에서 촬영된 영상 등은, 전자 장치(1000)가 바코드를 정확히 판독하기 어렵게 하는 왜곡을 포함할 수 있다.
바코드가 촬영된 영상에 왜곡이 존재하는 경우, 전자 장치(1000)가 영상으로부터 바코드를 판독하는 성능이 저하될 수 있다. 일 실시 예에 의한 전자 장치(1000)는 영상에 존재하는 다양한 종류의 왜곡을 고려하여, 바코드를 판독함으로써, 영상으로부터 바코드를 높은 성능으로 판독할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드에 대해 복수 개의 라인을 그려 바코드가 표시된 영역을 구분하고, 왜곡 정도가 낮은 영역을 이용하여 바코드를 판독함으로써, 영상으로부터 바코드를 높은 성능으로 판독할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는, 영상에서, 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고, 각 라인에 대한 바코드의 왜곡 정도(level)를 결정할 수 있다. 각 라인에 대한 바코드의 왜곡 정도는, 예를 들면, 각 라인에 인접한 일정한 범위의 영역에 존재하는 바코드 일부에 대한 왜곡의 정도에 기초하여 결정될 수 있다.
일 실시 예에 의한 바코드의 일부분을 커버하는 복수 개의 라인은, 바코드를 가로지르는(passing through) 라인들로 결정될 수 있다. 예를 들면, 상기 라인은, 바코드의 양쪽 끝 부분에 위치한 바를 포함한 바코드의 복수 개의 바들을 함께 커버하는 라인으로 결정될 수 있다.
일 실시 예에 의한 영상에서 바코드가 왜곡된 정도는 영상에서 전자 장치(1000)가 바코드를 정확하게 판독하기 어렵게 하는 왜곡의 정도를 의미할 수 있다. 예를 들면, 바코드가 왜곡된 정도는, 여러가지 왜곡의 원인에 의해 바코드 바(bar)와 공백(space)의 경계가 명확하지 않은 정도, 바코드의 원래의 형태에서 변형된 정도 등을 나타내는 값일 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는, 각 라인에 대한 바코드의 왜곡 정도에 기초하여, 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고, 결정된 적어도 하나의 라인을 이용하여 바코드를 판독할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드를 판독하기 위해 결정된 적어도 하나의 라인과 인접한 영상 영역에서, 바코드의 특성을 나타내는 적어도 하나의 파라미터를 획득함으로써, 바코드를 판독할 수 있다. 상기 파라미터의 획득은, 상술한 바코드의 왜곡된 정도를 획득하기 위해 이용되는 각 라인의 인접한 영역과 동일한 영역에서, 수행될 수 있다.
바코드의 특성을 나타내는 파라미터는, 바코드를 판독하기 위한 값으로, 예를 들면, 바코드 바 및 공백의 개수, 바코드 바 및 공백의 넓이 등, 바코드의 특징을 나타내는 다양한 종류의 값을 포함할 수 있다. 일 실시 예에 의한 전자 장치(1000)는 바코드의 특성을 나타내는 파라미터를 이용하여, 바코드에 포함된 심볼을 식별함으로써, 바코드 판독을 수행할 수 있다.
또한, 바코드의 특성을 나타내는 파라미터는, 템플릿 기반의 바코드 판독을 수행하는데 이용될 수 있는, 바 및 공백에 대한 강도 및 넓이, 영상의 흐릿한 정도(blurring kernel), 숫자의 위치 등을 나타내는 값을 포함할 수 있다. 일 실시 예에 의하면, 상술한 바코드의 특성을 나타내는 파라미터에 기초하여, 템플릿 기반의 바코드 판독이 수행될 수 있다. 상술한 바코드의 특성을 나타내는 파라미터는, 상술한 예에 한하지 않고, 바코드를 판독하기 위한, 다양한 종류의 값을 포함할 수 있다.
일 실시 예에 의한 전자 장치(1000)는, 각 라인에 대한 바코드의 왜곡 정도에 따라, 적어도 하나의 라인에 대한 가중치를 결정할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고, 결정된 각각의 라인에 대해, 바코드의 특성을 나타내는 파라미터 및 가중치를 결정할 수 있다. 가중치는, 각 라인에 대한 바코드의 왜곡 정도에 반비례하도록 결정될 수 있다. 전자 장치(1000)는, 결정된 가중치를 파라미터에 적용함으로써, 각 라인에 대한 왜곡 정도를 고려하여, 바코드를 판독할 수 있다.
일 실시 예에 따라 판독될 수 있는 바코드는, 선형의(linear) 바코드로, 예를 들면, EAN8, EAN13, UPC-A, UPC-E, Code 11, Code39, Code93, Code128, Automatic dependent surveillance - broadcast (ADS-B) 등 다양한 종류의 1D(dimension) 바코드일 수 있다. 그러나, 상술한 예에 한하지 않고, 일 실시 예에 따라 판독될 수 있는 바코드는, 적어도 하나 이상의 바코드를 가로지르는 라인을 이용하여 판독될 수 있는 다양한 종류의 바코드를 포함할 수 있다.
일 실시 예에 의한 전자 장치(1000)는 바코드가 촬영된 영상으로부터 바코드를 판독할 수 있는 장치일 수 있다. 예를 들면, 전자 장치(1000)는, 스마트 TV, 셋탑 박스, 휴대폰, 태블릿 PC, 디지털 카메라, 노트북 컴퓨터(laptop computer), 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 착용형 기기(wearable device) 등과 같은 다양한 장치로 구현될 수 있다. 일 실시 예에 의한 전자 장치(1000)는 상술한 예에 한하지 않고, 바코드가 촬영된 영상을 분석하여 바코드를 판독할 수 있는 다양한 종류의 전자 장치로 구현될 수 있다.
일 실시 예에 의한 전자 장치(1000)는 전자 장치(1000)에 구비된 카메라로 바코드를 촬영함으로써, 바코드가 촬영된 영상을 획득할 수 있다. 또한, 전자 장치(1000)는 외부 장치(미도시)로부터 바코드가 촬영된 영상을 수신하거나 전자 장치(1000)의 메모리에 저장된 바코드가 촬영된 영상을 로딩함으로써, 바코드가 촬영된 영상을 획득할 수 있다. 상술한 예에 한하지 않고, 전자 장치(1000)는 다양한 방법으로, 바코드가 촬영된 영상을 획득할 수 있다.
도 2는 일 실시 예에 의한 바코드의 일부분을 커버하는 라인의 일 예를 도시한 것이다.
도 2를 참조하면, 바코드가 촬영된 영상에서, 바코드가 표시된 영역(200)이 검출될 수 있고, 바코드가 표시된 영역(200)에서, 일 실시 예에 의한 바코드를 가로지르는 복수 개의 라인(210, 220, 230, 240)이 결정될 수 있다.
바코드의 일부분을 커버하는 복수 개의 라인은, 다양한 방향으로 바코드의 양끝 부분을 커버하는 복수 개의 라인으로 결정될 수 있다. 이에 한하지 않고 상기 라인은 바코드의 일부를 커버하는 다양한 방향의 라인으로 결정될 수 있다. 일 실시 예에 의하면, 상기 라인은 직선으로 결정될 수 있으나, 이에 한하지 않고, 바코드가 프린트된 표면의 굴곡에 의해 영상의 바코드가 곡선으로 표시된 경우, 라인은 곡선으로 결정될 수도 있다.
일 실시 예에 의한 전자 장치(1000)는, 적어도 하나의 라인(210, 220, 230, 240) 중 각 라인에 인접한 영상 영역의 바코드가 왜곡된 정도에 기초하여, 적어도 하나의 라인을 결정하고, 결정된 라인에 기초하여, 바코드를 판독할 수 있다.
일 실시 예에 의한 라인에 인접한 영역은, 상기 라인과, 상기 라인에 인접한 다른 라인 사이의 영역으로 결정될 수 있다. 예를 들면, 제1 라인(210)에 인접한 영역은, 제1 라인(210)과 제2 라인(220) 사이의 제1 영역(211)으로 결정될 수 있다. 마찬가지로, 제2 라인(220) 및 제3 라인(230)에 인접한 영역은 각각 제2 영역(221) 및 제3 영역(231)으로 결정될 수 있다. 또 다른 예로, 라인에 인접한 영역은, 각 라인을 기준으로 아래 방향, 위 방향 또는 아래위 방향의 n 픽셀 범위의 영역으로 결정될 수도 있다. 일 실시 예에 의한 라인에 인접한 영역은, 상술한 예에 한하지 않고 다양한 방법으로 결정될 수 있다.
제1 라인(210), 제2 라인(220), 제3 라인(340) 및 제4 라인(350)과 인접한 영역에는, 각각 서로 다른 수준의 조명에 의한 왜곡이 포함될 수 있다. 조명에 의한 왜곡뿐만 아니라, 제1 라인(210), 제2 라인(220), 제3 라인(340) 및 제4 라인(350)과 인접한 영역에는 다양한 종류의 왜곡이 포함될 수 있다.
각 라인에 대한 왜곡의 정도는, 각 라인에 인접한 영역에 포함된 바코드의 왜곡의 정도를 나타낼 수 있다. 전자 장치(1000)는 각 라인에 대한 왜곡의 정도(level)을 결정하고, 왜곡의 정도에 기초하여, 바코드를 판독하는데 이용할 적어도 하나의 라인을 결정할 수 있다. 예를 들면, 전자 장치(1000)는, 제1 라인(210), 제2 라인(220), 제3 라인(340) 및 제4 라인(350) 중 가장 낮은 수준의 조명에 의한 왜곡을 포함하는 제2 라인(220)을 이용하여 바코드를 판독할 수 있다.
따라서, 일 실시 예에 의한 전자 장치(1000)는 왜곡된 정도가 상대적으로 낮은 적어도 하나의 라인을 이용하여 바코드를 판독함에 따라, 보다 높은 성능으로, 영상으로부터 바코드를 판독할 수 있다.
도 3은 일 실시 예에 의한 바코드가 촬영된 영상에 존재하는 왜곡의 일 예를 도시한 것이다.
도 3의 310은, 블러링(blurring) 왜곡이 발생된 영상의 예시 도면이다. 블러링 왜곡이 발생된 경우, 영상에서 바코드를 구성하는 바와 공백이 제대로 분별되기 어려우므로, 전자 장치(1000)가 바코드를 정확히 판독하기 어려울 수 있다.
또한, 도 3의 320은, 낮은 영상 해상도로 인하여 왜곡이 발생된 영상의 예시 도면이다. 촬영된 영상의 해상도가 바코드를 판독하기에 너무 낮거나, 영상에서 바코드가 촬영된 영역의 크기가 너무 작은 경우, 전자 장치(1000)가 영상의 바코드를 판독하는데 있어, 바코드의 특성을 나타내는 정보를 정확하게 획득하기 어려울 수 있다.
또한, 도 3의 330은 조명으로 인해 왜곡이 발생된 영상의 예시 도면이다. 조명이 바코드 일부분에 편향되도록 비추어진 상태에서, 영상이 촬영된 경우, 전자 장치(1000)가 영상의 바코드를 판독하는데 있어, 바코드의 특성을 나타내는 정보를 정확하게 획득하기 어려울 수 있다.
또한, 도 3의 340은 바코드가 부착된 표면이 휘어짐(curved surface)으로 인하여 왜곡이 발생된 영상의 예시 도면이다. 바코드가 부착된 표면이 휘어져 있는 경우, 바코드가 촬영된 영상에서, 바코드의 원래 형태가 변형되어 표시됨에 따라, 전자 장치(1000)가 영상의 바코드를 판독하는데 있어, 바코드의 특성을 나타내는 정보를 정확하게 획득하기 어려울 수 있다.
도 3에 도시된 예 외에, 바코드가 촬영된 영상에는, 다양한 종류의 노이즈로 인한 왜곡도 존재할 수 있다. 예를 들면, 바코드가 촬영된 영상은 소정의 영상 처리 과정에서 발생된 아티팩트가 존재할 수 있다.
일 실시 예에 의하면, 전자 장치(1000)는 바코드 영상에서, 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고, 각각의 라인에 인접한 영역에 존재하는 왜곡의 정도를 고려하여, 바코드를 판독하기 위한 적어도 하나의 라인을 결정할 수 있다.
예를 들면, 전자 장치(1000)는 각각의 라인에 대한 왜곡 정도를 나타내는 왜곡 파라미터를 결정할 수 있다. 전자 장치(1000)는 각 라인에 대해, 블러링 왜곡에 대한 파라미터, 해상도 왜곡에 대한 파라미터, 조명 왜곡에 대한 파라미터 및 휘어진 표면에 의한 왜곡에 대한 파라미터 중 적어도 하나를 결정할 수 있다. 또한, 전자 장치(1000)는 결정된 적어도 하나의 왜곡 파라미터에 기초하여, 각 라인에 인접한 영역에서 바코드가 왜곡된 정도를 결정할 수 있다. 예를 들면, 적어도 하나의 왜곡 파라미터에 기초하여, 하나의 라인에 인접한 영역에서 바코드가 왜곡된 정도를 나타내는 하나의 값이 결정될 수 있다. 전자 장치(1000)는, 각 라인에 대한 왜곡의 정도에 기초하여, 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고, 결정된 적어도 하나의 라인에 기초하여 바코드를 판독할 수 있다.
예를 들면, 전자 장치(1000)는, 바코드를 판독하기 위하여 결정된 라인과 인접한 바코드의 영상 영역에서 바코드의 특징을 나타내는 파라미터를 구함으로써 바코드를 판독할 수 있다.
일 실시 예에 의한, 바코드가 촬영된 영상에 존재하는 왜곡은 상술한 왜곡에 한하지 않고, 다양한 종류의 왜곡을 포함할 수 있다.
도 4 및 도 5는 일 실시 예에 의한 전자 장치의 내부 구성을 설명하기 위한 블록도이다.
도 4를 참조하면, 전자 장치(1000)는, 프로세서(1300) 및 메모리(1700)를 포함할 수 있다. 일 실시 예에 의한 프로세서(1300)는 적어도 하나의 프로세서(1300)를 포함할 수 있다. 그러나, 도 4에 도시된 구성 요소 모두가 전자 장치(1000)의 필수 구성 요소인 것은 아니다. 도 4에 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 도 4에 도시된 구성 요소보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
예를 들면, 전자 장치(1000)는 도 3에 도시된 바와 같이, 일부 실시예에 따른 전자 장치(1000)는, 프로세서(1300) 및 메모리(1700) 이외에 사용자 입력부(1100), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 및 디스플레이(1210)를 더 포함할 수도 있다.
사용자 입력부(1100)는, 사용자가 전자 장치(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
일 실시 예에 의하면, 사용자 입력부(1100)는, 바코드 판독을 수행하기 위한 사용자 입력을 수신할 수 있다.
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.
디스플레이부(1210)는 전자 장치(1000)에서 처리되는 정보를 표시 출력한다. 일 실시 예에 의하면, 디스플레이부(1210)는 판독하고자 하는 바코드가 촬영된 영상을 표시하거나, 바코드가 판독된 결과를 출력할 수 있다.
한편, 디스플레이부(1210)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1210)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1210)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 전자 장치(1000)의 구현 형태에 따라 전자 장치(1000)는 디스플레이부(1210)를 2개 이상 포함할 수도 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1700)에 저장된 오디오 데이터를 출력한다. 일 실시 예에 의하면, 음향 출력부(1220)는 바코드가 판독된 결과를 출력할 수 있다.
진동 모터(1230)는 진동 신호를 출력할 수 있다. 또한, 진동 모터(1230)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다. 일 실시 예에 의하면, 진동 모터(1230)는 바코드가 판독된 결과를, 진동 신호를 출력할 수 있다.
프로세서(1300)는, 통상적으로 전자 장치(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1700)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1100), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 등을 전반적으로 제어할 수 있다. 전자 장치(1000)는 적어도 하나의 프로세서(1300)를 포함할 수 있다.
프로세서(1300)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(1700)로부터 프로세서(1300)에 제공되거나, 통신부(1500)를 통해 수신되어 프로세서(1300)로 제공될 수 있다. 예를 들면 프로세서(1300)는 메모리와 같은 기록 장치에 저장된 프로그램 코드에 따라 명령을 실행하도록 구성될 수 있다.
일 실시 예에 의한 프로세서(1300)는 바코드가 촬영된 영상에서, 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고, 각 라인에 인접한 영역에서 바코드가 왜곡된 정도를 결정할 수 있다. 또한, 프로세서(1300)는, 왜곡의 정도에 기초하여, 바코드를 판독하는데 이용할 적어도 하나의 라인을 결정하고, 결정된 라인에 기초하여, 바코드를 판독할 수 있다.
센싱부(1400)는, 전자 장치(1000)의 상태 또는 전자 장치(1000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1300)로 전달할 수 있다.
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(illuminance sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
통신부(1500)는, 전자 장치(1000)가 서버(2000) 또는 외부 장치(미도시)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(1510)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 전자 장치(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
일 실시 예에 의한, 통신부(1500)는 외부 장치와 바코드가 촬영된 영상을 송수신할 수 있다. 또한, 통신부(1500)는 외부 장치와 일 실시 예에 따라 바코드가 판독된 결과를 송수신할 수 있다.
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다. 카메라(1610)는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다. 일 실시 예에 의한 카메라(1610)는 바코드를 촬영하여 영상을 생성할 수 있다.
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 바코드를 판독하기 위한 명령을 포함하는 사용자의 음성을 수신할 수 있다.
메모리(1700)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되거나 전자 장치(1000)로부터 출력되는 데이터를 저장할 수도 있다.
일 실시 예에 의한 메모리(1700)는 바코드가 촬영된 영상을 저장할 수 있다.
메모리(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1710), 터치 스크린 모듈(1720), 알림 모듈(1730) 등으로 분류될 수 있다.
UI 모듈(1710)은, 애플리케이션 별로 전자 장치(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1300)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
터치스크린의 터치 또는 근접 터치를 감지하기 위해 터치스크린의 내부 또는 근처에 다양한 센서가 구비될 수 있다. 터치스크린의 터치를 감지하기 위한 센서의 일례로 촉각 센서가 있다. 촉각 센서는 사람이 느끼는 정도로 또는 그 이상으로 특정 물체의 접촉을 감지하는 센서를 말한다. 촉각 센서는 접촉면의 거칠기, 접촉 물체의 단단함, 접촉 지점의 온도 등의 다양한 정보를 감지할 수 있다.
사용자의 터치 제스처에는 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 드래그 앤드 드롭, 스와이프 등이 있을 수 있다.
알림 모듈(1730)은 전자 장치(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다.
도 6은 일 실시 예에 의한 바코드를 판독하는 방법을 나타낸 순서도이다.
도 6을 참조하면, 단계 610에서 전자 장치(1000)는 바코드가 촬영된 영상을 획득할 수 있다. 예를 들면, 전자 장치(1000)는, 전자 장치(1000)에 구비된 카메라(1610)를 이용하여 바코드를 촬영함으로써, 바코드가 촬영된 영상을 획득할 수 있다. 또 다른 예로, 전자 장치(1000)는, 외부 장치로부터 바코드가 촬영된 영상을 수신하거나, 메모리(1700)에 저장된 데이터로부터 바코드가 촬영된 영상을 획득할 수 있다.
또한, 일 실시 예에 의하면, 단계 610에서 동일한 바코드가 촬영된 복수 개의 영상이 획득될 수 있다. 예를 들면, 전자 장치(1000)는 소정의 시간 간격으로 동일한 바코드가 촬영된 복수 개의 영상이 획득될 수 있다.
단계 620에서, 전자 장치(1000)는 영상의 바코드에 대하여 복수 개의 라인을 결정할 수 있다. 예를 들면, 전자 장치(1000)는, 영상을 분석하여 바코드가 표시된 영역을 식별하고, 바코드가 표시된 영상 영역에서, 일정한 간격으로 바코드를 가로지르는 복수 개의 라인을 결정할 수 있다. 상술한 예에 한하지 않고 복수 개의 라인은 다양한 방향에서 바코드의 일부분을 커버하도록 결정될 수 있다.
단계 630에서, 전자 장치(1000)는 단계 620에서 결정된 각각의 라인에 대해 바코드가 왜곡된 정도에 관한 정보를 획득할 수 있다. 전자 장치(1000)는 각 라인에 인접한 영역에서, 영상을 분석함으로써, 바코드가 왜곡된 정도에 대한 정보를 획득할 수 있다.
왜곡된 정도에 관한 정보는 적어도 하나의 왜곡 파라미터에 기초하여 결정될 수 있다. 각각의 왜곡 파라미터는, 예를 들면, 블러링, 조명, 영상 해상도 및 휘어진 표면 중 적어도 하나에 의해 영상이 왜곡된 정도를 나타내는 값을 포함할 수 있다.
단계 640에서, 전자 장치(1000)는 단계 630에서 획득된 왜곡된 정도에 관한 정보에 기초하여, 바코드를 판독하기 위한 적어도 하나의 라인을 결정할 수 있다. 예를 들면, 전자 장치(1000)는 바코드의 왜곡된 정도가 낮은 순서에 기초하여 적어도 하나의 라인을 결정할 수 있다. 일 예로, 전자 장치(1000)는 왜곡된 정도가 가장 낮은 순서대로 적어도 하나의 라인을 결정할 수 있다.
단계 650에서, 전자 장치(1000)는 바코드를 판독하기 위한 적어도 하나의 라인을 이용하여 바코드를 판독할 수 있다. 예를 들면, 전자 장치(1000)는 라인과 인접한 영상 영역을 분석함으로써, 바코드를 판독할 수 있다. 일 실시 예에서 바코드를 판독하는데 이용되는 각 라인과 인접한 영상 영역은, 단계 630에서 왜곡된 정도를 획득하는데 이용되는 각 라인과 인접한 영상 영역과 동일한 영역일 수 있다.
도 7은 일 실시 예에 의한 영상으로부터 바코드를 판독하는 방법을 나타낸 순서도이다. 도 7에 도시된 방법에 의하면, 템플릿 기반의 디코딩 방법에 따라서, 영상으로부터 바코드를 판독할 수 있다.
도 7을 참조하면, 일 실시 예에 의한 영상으로부터 바코드를 판독하는 방법은 바코드의 위치를 결정하는 단계(710) 및 복수의 스캔 라인을 처리하는 단계(720)로 구성될 수 있다.
바코드의 위치를 결정하는 단계(710)에서, 전자 장치(1000)는, 바코드가 촬영된 영상에서, 바코드가 표시된 영상 영역을 식별하고, 식별된 영상 영역에서, 바코드를 판독하기 위한 바코드 후보를 검출할 수 있다.
바코드의 위치를 결정하는 단계(710)의 단계 711에서, 전자 장치(1000)는, 바코드가 촬영된 영상이 입력되면, 바코드를 판독하기 위한 영상 영역을 검출할 수 있다.
또한, 전자 장치(1000)는, 바코드가 촬영된 영상에 대하여, 바코드를 판독하기 위한 전처리를 수행할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드가 표시된 영상 영역을 크로핑(cropping)하고, 바코드 판독이 가능한 최소한의 해상도로 상기 영상을 다운 스케일링할 수 있다. 바코드가 촬영된 영상에 대하여 전처리 과정이 수행됨으로써, 바코드 판독 시의 연산량이 최소화될 수 있다. 상술한 예에 한하지 않고 상기의 전처리 과정은, 일 실시 예에 따라 바코드를 판독하는 과정을 최적화하기 위한 동작을 더 포함할 수 있다.
또한, 일 실시 예에 의하면, 동일한 바코드가 촬영된 복수 개의 영상에 대하여 바코드 판독이 수행될 수 있다. 예를 들면, 전자 장치(1000)는 소정의 시간 간격으로 동일한 바코드가 촬영된 복수 개의 영상으로부터 바코드 판독을 수행하기 위한 상술한 전처리 과정을 수행할 수 있다.
단계 712에서, 전자 장치(1000)는, 바코드가 표시된 영상 영역을 커버하는, 전방향(omnidirectional, ex. 30도, 45도, 90도 등)의 스캔 라인에서, 바코드 엣지를 검출할 수 있다. 바코드 엣지는 바코드를 구성하는 일부분을 의미할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드가 표시된 영상 영역에 대해, 다양한 방향 및 위치에서 스캔 라인을 그리고, 각각의 스캔 라인과 인접한 영역에 존재하는 바코드의 일부분을 바코드 엣지로 검출할 수 있다. 예를 들면, 두 개의 스캔 라인 사이에 존재하는 바코드의 일부분이 바코드 엣지로 검출될 수 있다.
단계 713에서, 전자 장치(1000)는, 두 개의 스캔 라인 및 바코드 엣지로 구성된 바코드 후보를 검출할 수 있다. 하나의 바코드 후보에 포함된 두 개의 스캔 라인은 서로 인접한 스캔 라인일 수 있다. 전자 장치(1000)는, 스캔 라인 및 바코드 엣지로 구성된 적어도 하나의 바코드 후보를 이용하여 바코드 판독을 수행할 수 있다.
복수의 라인 처리 단계(720)에서, 전자 장치(1000)는, 바코드 후보를 이용하여 바코드를 판독하기 위한 프로세스를 수행할 수 있다.
도 7에 도시된 예에서는, 각 스캔 라인에 대해, 바코드 엣지를 이용한 템플릿 기반의 디코딩(730)이 수행될 수 있다. 그러나, 도 7에 도시된 예에 한하지 않고, 바코드를 판독하기 위한 다양한 방법에 의하여 바코드를 판독하기 위한 프로세스가 수행될 수 있다.
복수의 라인 처리 단계(720)의 단계 721에서, 전자 장치(1000)는, 단계 710에서 획득된 바코드 후보 중 바코드 판독을 수행할 바코드 후보를 결정할 수 있다. 예를 들면, 전자 장치(1000)는, 바코드 후보 중, 바코드 엣지가 바코드의 가이드 패턴을 포함하지 않는 바코드 후보는, 바코드 판독을 수행할 바코드 후보에서 제외할 수 있다. 바코드의 가이드 패턴은, 바코드의 처음 또는 끝을 나타내는 심볼이다. 상술한 예에 한하지 않고, 단계 721에서, 전자 장치(1000)는, 바코드 후보 중 바코드 판독을 수행하기에 적합하지 않은 바코드 후보를 제외할 수 있다.
또한, 전자 장치(1000)는, 일 실시 예에 따라, 바코드의 왜곡 정도를 고려하여, 바코드를 판독하기 위한 바코드 후보를 결정할 수 있다. 예를 들면, 전자 장치(1000)는, 일 실시 예에 의한 복수 개의 라인은 상기 바코드 후보에 포함된 스캔 라인과 동일하게 결정할 수 있다. 또한, 전자 장치(1000)는 두 개의 스캔 라인 사이의 바코드 엣지에 존재하는 바코드의 왜곡 정도를 판단하고, 왜곡 정도에 기초하여 바코드를 판독하기 위한 바코드 후보를 결정할 수 있다.
단계 722 내지 단계 724에서, 전자 장치(1000)는 단계 721에서 결정된 적어도 하나의 바코드 후보 1 내지 N에 대하여 바코드를 판독하는 동작을 수행할 수 있다. 일 실시 예에 의하면, 도 7에 도시된 예와 같이, 템플릿 기반의 디코딩(Template based decoding, 730)이 각 라인에 대하여 수행될 수 있다.
템플릿 기반 디코딩 단계(730)에서, 전자 장치(1000)는, 바코드 엣지에서 템플릿 기반의 가이드 패턴을 검출(731)하여, 영상에 표시된 바코드의 방향 및 위치를 식별할 수 있다. 전자 장치(1000)는, 731 단계에서 검출된 템플릿 기반의 가이드 패턴에 기초하여, 바코드를 구성하는 바, 공백, 및 숫자의 위치를 식별할 수 있다.
또한, 단계 732에서, 전자 장치(1000)는, 바코드를 판독하기 위한 파라미터를 결정할 수 있다. 상기 바코드를 판독하기 위한 파라미터는, 바코드의 특성을 나타내는 정보를 포함할 수 있다. 전자 장치(1000)는, 바코드를 판독하기 위한 파라미터에 기초하여, 단계 733에서, 템플릿 기반의 디코딩을 수행할 수 있다.
단계 725에서, 전자 장치(1000)는, 바코드 후보 1 내지 N에 대하여 수행된 템플릿 기반의 디코딩에 대한 결과값으로부터, 바코드를 판독한 결과를 출력할 수 있다.
도 8은 일 실시 예에 의한 바코드를 판독하는 방법을 활용하는 예시를 나타낸 것이다.
도 8의 810을 참조하면, 일 실시 예에 의한 바코드를 판독하는 방법에 따라, 판독된 바코드의 정보에 기초하여, 전자 장치(1000)에 표시된 바코드 영상에 가상의 객체(811)를 겹쳐 표시할 수 있다. 예를 들면, 전자 장치(1000)는, 판독된 정보를 이용하여 가상의 객체(811)를 표시하기 위한 데이터를 획득할 수 있다. 810에 도시된 예에 의하면, 사용자가 전자 장치(1000)의 카메라를 이용하여, 바코드를 촬영하는 행위만으로, 바코드와 관련된 가상의 객체(811)를 쉽게 확인할 수 있다.
도 8의 820을 참조하면, 일 실시 예에 의한 바코드를 판독하는 방법에 따라, 웨어러블 글래스(821)에 구비된 카메라로 촬영된 영상으로부터 바코드가 판독될 수 있고, 사용자는 상기 바코드가 판독된 결과를 웨어러블 글래스(821)의 디스플레이를 통하여 쉽게 확인할 수 있다. 따라서, 일 실시 예에 의하면, 사용자는 바코드를 판독하기 위한 별도의 장비를 구비하지 않고도, 단지 바코드를 촬영한 영상으로부터 바코드를 판독할 수 있다.
도 8의 830을 참조하면, 사용자는 상점에 놓인 제품을 구매하기 전 전자 장치(1000)의 카메라를 이용하여, 제품에 부착된 바코드를 판독하여, 제품과 관련된 정보를 쉽게 획득할 수 있다. 사용자는, 전자 장치(1000)를 이용하여, 바코드를 촬영한 영상으로부터 바코드를 쉽게 판독함에 따라, 구매하고자 하는 제품의 정보를 쉽게 획득할 수 있다.
일 실시 예에 의하면, 다양한 종류의 왜곡을 고려하여, 바코드를 판독함으로써, 영상으로부터 바코드를 판독하는 성능을 향상시킬 수 있다.
일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (13)

  1. 전자 장치에서 바코드를 판독하는 방법에 있어서,
    상기 바코드가 촬영된 영상을 획득하는 단계;
    상기 영상에서, 상기 바코드의 일부분을 커버하는 복수 개의 라인을 결정하는 단계;
    상기 복수 개의 라인과 각각 인접한 영역에서, 상기 바코드가 왜곡된 정도에 관한 정보를 획득하는 단계;
    상기 획득된 정보에 기초하여, 상기 복수 개의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는 단계; 및
    상기 결정된 적어도 하나의 라인에 기초하여, 상기 바코드를 판독하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 왜곡된 정도에 관한 정보는
    조명에 의한 왜곡, 블러링(blurring)에 의한 왜곡, 영상 해상도에 의한 왜곡, 노이즈에 의한 왜곡 및 휘어진 표면(curved surface)에 의한 왜곡 중 적어도 하나의 왜곡에 의해, 상기 복수 개의 라인과 각각 인접한 영역에서 상기 바코드가 왜곡된 정도에 관한 정보를 포함하는, 방법.
  3. 제1항에 있어서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는 단계는,
    상기 복수 개의 라인 중에서, 상기 왜곡된 정도가 낮은 순서에 기초하여, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는 단계를 포함하는, 방법.
  4. 제1항에 있어서, 상기 영상을 획득하는 단계는, 상기 바코드가 촬영된 복수 개의 영상을 획득하는 단계를 포함하고,
    상기 복수 개의 영상에서 상기 바코드의 일부분을 커버하는 복수 개의 라인이 결정되고, 상기 결정된 복수 개의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인이 결정되는, 방법.
  5. 제1항에 있어서, 상기 바코드를 판독하는 단계는
    상기 획득된 정보에 기초하여, 상기 바코드를 판독하기 위해 결정된 적어도 하나의 라인과 각각 대응되는 적어도 하나의 가중치를 결정하는 단계;
    상기 바코드를 판독하기 위해 결정된 적어도 하나의 라인에 기초하여, 상기 바코드의 특성을 나타내는 적어도 하나의 파라미터를 결정하는 단계; 및
    상기 적어도 하나의 파라미터에 상기 적어도 하나의 가중치가 적용된 값을 이용하여, 상기 바코드를 판독하는 단계를 포함하는, 방법.
  6. 제6항에 있어서, 상기 가중치는
    상기 복수 개의 라인 중 상기 가중치와 대응되는 라인과 인접한 영역에서, 상기 바코드가 왜곡된 정도에 반비례하도록 결정되는, 방법.
  7. 바코드를 판독하는 전자 장치에 있어서,
    하나 이상의 인스트럭션을 저장하는 적어도 하나의 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 바코드가 촬영된 영상을 획득하고,
    상기 영상에서, 상기 바코드의 일부분을 커버하는 복수 개의 라인을 결정하고,
    상기 복수 개의 라인과 각각 인접한 영역에서, 상기 바코드가 왜곡된 정도에 관한 정보를 획득하고,
    상기 획득된 정보에 기초하여, 상기 적어도 하나의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하고,
    상기 결정된 적어도 하나의 라인에 기초하여, 상기 바코드를 판독하는, 장치.
  8. 제7항에 있어서, 상기 왜곡된 정도에 관한 정보는
    조명에 의한 왜곡, 블러링에 의한 왜곡, 영상 해상도에 의한 왜곡, 노이즈에 의한 왜곡 및 휘어진 표면에 의한 왜곡 중 적어도 하나의 왜곡에 의해, 상기 복수 개의 라인과 각각 인접한 영역에서 상기 바코드가 왜곡된 정도에 관한 정보를 포함하는, 장치.
  9. 제7항에 있어서, 상기 적어도 하나의 프로세서는
    상기 적어도 하나의 라인 중에서, 상기 왜곡된 정도가 낮은 순서에 기초하여, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는, 장치.
  10. 제7항에 있어서, 상기 적어도 하나의 프로세서는
    상기 바코드가 촬영된 복수 개의 영상을 획득하고,
    상기 복수 개의 영상에서 상기 바코드의 일부분을 커버하는 복수 개의 라인이 결정되고, 상기 결정된 복수 개의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인이 결정되는, 장치.
  11. 제7항에 있어서, 상기 적어도 하나의 프로세서는
    상기 획득된 정보에 기초하여, 상기 바코드를 판독하기 위해 결정된 적어도 하나의 라인과 각각 대응되는 적어도 하나의 가중치를 결정하고,
    상기 바코드를 판독하기 위해 결정된 적어도 하나의 라인에 기초하여, 상기 바코드의 특성을 나타내는 적어도 하나의 파라미터를 결정하고,
    상기 적어도 하나의 파라미터에 상기 적어도 하나의 가중치가 적용된 값을 이용하여, 상기 바코드를 판독하는, 장치.
  12. 제11항에 있어서, 상기 가중치는
    상기 복수 개의 라인 중 상기 가중치와 대응되는 라인과 인접한 영역에서, 상기 바코드가 왜곡된 정도에 반비례하도록 결정되는, 장치.
  13. 바코드가 촬영된 영상을 획득하는 동작;
    상기 영상에서, 상기 바코드의 일부분을 커버하는 복수 개의 라인을 결정하는 동작;
    상기 복수 개의 라인과 각각 인접한 영역에서, 상기 바코드가 왜곡된 정도에 관한 정보를 획득하는 동작;
    상기 획득된 정보에 기초하여, 상기 복수 개의 라인 중에서, 상기 바코드를 판독하기 위한 적어도 하나의 라인을 결정하는 동작; 및
    상기 결정된 적어도 하나의 라인에 기초하여, 상기 바코드를 판독하는 동작을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품.
KR1020180132553A 2018-10-31 2018-10-31 바코드를 판독하는 방법 및 전자 장치 KR102638707B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180132553A KR102638707B1 (ko) 2018-10-31 2018-10-31 바코드를 판독하는 방법 및 전자 장치
PCT/KR2019/010469 WO2020091206A1 (ko) 2018-10-31 2019-08-19 바코드를 판독하는 방법 및 전자 장치
US17/287,052 US20210365654A1 (en) 2018-10-31 2019-08-19 Method and electronic device for reading barcode
EP19879013.1A EP3842989B1 (en) 2018-10-31 2019-08-19 Method and electronic device for reading barcode
CN201980071679.4A CN112955896A (zh) 2018-10-31 2019-08-19 用于读取条形码的方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180132553A KR102638707B1 (ko) 2018-10-31 2018-10-31 바코드를 판독하는 방법 및 전자 장치

Publications (2)

Publication Number Publication Date
KR20200050091A true KR20200050091A (ko) 2020-05-11
KR102638707B1 KR102638707B1 (ko) 2024-02-21

Family

ID=70464155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180132553A KR102638707B1 (ko) 2018-10-31 2018-10-31 바코드를 판독하는 방법 및 전자 장치

Country Status (5)

Country Link
US (1) US20210365654A1 (ko)
EP (1) EP3842989B1 (ko)
KR (1) KR102638707B1 (ko)
CN (1) CN112955896A (ko)
WO (1) WO2020091206A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102263184B1 (ko) * 2020-12-14 2021-06-09 주식회사 대곤코퍼레이션 저 품질 바코드 판독시스템
KR102393764B1 (ko) * 2021-08-18 2022-05-06 주식회사 에너자이(ENERZAi) 바코드 이미지 식별 방법 및 그 장치
KR102476496B1 (ko) * 2022-04-12 2022-12-14 주식회사 인피닉 인공지능 기반의 바코드 복원을 통한 상품 식별 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2023022404A1 (ko) * 2021-08-18 2023-02-23 주식회사 에너자이 바코드 이미지 식별 방법 및 그 장치
WO2024043717A1 (ko) * 2022-08-26 2024-02-29 주식회사 에너자이 바코드 이미지에 관한 해상도 향상 모델 및 정렬 모델의 학습 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775786B2 (en) 2020-09-30 2023-10-03 United States Postal Service System and method for extracting a region of interest from a captured image of a mailpiece or parcel label
EP4256460A1 (en) * 2020-12-04 2023-10-11 United States Postal Service System and method for extracting a computer readable code from a captured image of a distribution item
US11562551B1 (en) 2022-04-14 2023-01-24 Scandit Ag Image analysis for decoding angled optical patterns

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060056457A (ko) * 2004-11-20 2006-05-24 삼성전자주식회사 바코드 판독 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2022269A1 (en) * 1990-01-05 1991-07-06 Theodosios Pavlidis Method of decoding bar code symbols from partial scans
US5969325A (en) * 1996-06-03 1999-10-19 Accu-Sort Systems, Inc. High speed image acquisition system and method of processing and decoding barcode symbol
JP2001043300A (ja) * 1999-07-29 2001-02-16 Nec Data Terminal Ltd バーコード読み取り装置及びその方法
US20010054646A1 (en) * 2000-05-24 2001-12-27 Nisca Corporation Apparatus and method for reading bar code printed card, and bar code recording media card
WO2004055713A1 (ja) * 2002-12-17 2004-07-01 Sharp Kabushiki Kaisha バーコード認識装置
US7780084B2 (en) * 2007-06-29 2010-08-24 Microsoft Corporation 2-D barcode recognition
CN102034072A (zh) * 2009-09-25 2011-04-27 神基科技股份有限公司 条形码图像辨识方法
CN101882205B (zh) * 2010-06-01 2012-03-14 福建新大陆电脑股份有限公司 一维条码图像扫描方法
JP5676183B2 (ja) * 2010-09-03 2015-02-25 日本電産サンキョー株式会社 バーコード読取装置およびバーコード読取方法
JP5530895B2 (ja) * 2010-10-18 2014-06-25 株式会社富士通コンピュータテクノロジーズ シンボルコード認識装置およびシンボルコード認識プログラム
US9224026B2 (en) * 2010-12-30 2015-12-29 Samsung Electrônica da Amazônia Ltda. Automatic system and method for tracking and decoding barcode by portable devices
KR101293703B1 (ko) * 2011-11-28 2013-08-06 (주)이컴앤드시스템 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법
JP5819925B2 (ja) * 2013-12-25 2015-11-24 ウイングアーク1st株式会社 コード読取装置およびコード読取用プログラム
CN105718839B (zh) * 2016-01-27 2018-01-30 苏州佳世达电通有限公司 条码解码方法以及条码解码装置
US9950345B2 (en) * 2016-09-15 2018-04-24 Lockheed Martin Corporation Systems and methods for shear and warp detection and correction
CN107766770A (zh) * 2017-10-31 2018-03-06 广东旭龙物联科技股份有限公司 一种ean13码解码方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060056457A (ko) * 2004-11-20 2006-05-24 삼성전자주식회사 바코드 판독 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102263184B1 (ko) * 2020-12-14 2021-06-09 주식회사 대곤코퍼레이션 저 품질 바코드 판독시스템
KR102393764B1 (ko) * 2021-08-18 2022-05-06 주식회사 에너자이(ENERZAi) 바코드 이미지 식별 방법 및 그 장치
WO2023022404A1 (ko) * 2021-08-18 2023-02-23 주식회사 에너자이 바코드 이미지 식별 방법 및 그 장치
KR102476496B1 (ko) * 2022-04-12 2022-12-14 주식회사 인피닉 인공지능 기반의 바코드 복원을 통한 상품 식별 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2024043717A1 (ko) * 2022-08-26 2024-02-29 주식회사 에너자이 바코드 이미지에 관한 해상도 향상 모델 및 정렬 모델의 학습 방법

Also Published As

Publication number Publication date
EP3842989B1 (en) 2023-06-28
CN112955896A (zh) 2021-06-11
KR102638707B1 (ko) 2024-02-21
EP3842989A1 (en) 2021-06-30
EP3842989A4 (en) 2021-10-13
US20210365654A1 (en) 2021-11-25
WO2020091206A1 (ko) 2020-05-07

Similar Documents

Publication Publication Date Title
KR102638707B1 (ko) 바코드를 판독하는 방법 및 전자 장치
US10559053B2 (en) Screen watermarking methods and arrangements
EP3493100B1 (en) Two-dimensional code identification method and device, and mobile terminal
US9165406B1 (en) Providing overlays based on text in a live camera view
EP1886246B1 (en) Visual code method for camera-equipped mobile devices
US9104261B2 (en) Method and apparatus for notification of input environment
US20160062612A1 (en) Information Access Technique
WO2016033495A2 (en) Methods and arrangements including data migration among computing platforms, e.g., through use of steganographic screen encoding
KR20160062566A (ko) 필기 문자를 보정하는 디바이스 및 방법
US10592580B2 (en) Web UI builder application
JP5186047B2 (ja) オブジェクト表示装置、オブジェクト表示方法、オブジェクト表示制御プログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US20160314560A1 (en) Image displaying method, apparatus, and device, and computer program product
US20160342307A1 (en) Method, electronic device, and non-transitory storage medium for adjusting icons
CN106599758A (zh) 一种画质处理方法及终端
US10304214B2 (en) Electronic device and operating method of the same
EP3335155B1 (en) Electronic device and operating method of the same
JP2014099176A (ja) 多数の復号可能な証印を読み込むように構成されるモバイル・コンピュータ
EP2423882A2 (en) Methods and apparatuses for enhancing wallpaper display
CN111754414B (zh) 一种图像处理方法、装置和用于图像处理的装置
US8704939B1 (en) Mobile device and method for controlling the same
US20160295039A1 (en) Mobile device and method for controlling the same
CN110796130A (zh) 用于文字识别的方法、装置及计算机存储介质
US20170177968A1 (en) Method for the optical detection of symbols
KR102086600B1 (ko) 상품 구매 정보 제공 장치 및 방법
WO2007113610A1 (en) A method and electronic device for decoding information stored in codes

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right