KR100563875B1 - 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드판독 프로그램을 기록한 기록매체, 휴대형 단말기 및디지털 카메라 - Google Patents

2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드판독 프로그램을 기록한 기록매체, 휴대형 단말기 및디지털 카메라 Download PDF

Info

Publication number
KR100563875B1
KR100563875B1 KR1020030048587A KR20030048587A KR100563875B1 KR 100563875 B1 KR100563875 B1 KR 100563875B1 KR 1020030048587 A KR1020030048587 A KR 1020030048587A KR 20030048587 A KR20030048587 A KR 20030048587A KR 100563875 B1 KR100563875 B1 KR 100563875B1
Authority
KR
South Korea
Prior art keywords
pattern
dimensional code
finder
input image
data cell
Prior art date
Application number
KR1020030048587A
Other languages
English (en)
Other versions
KR20040010219A (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 샤프 가부시키가이샤
Publication of KR20040010219A publication Critical patent/KR20040010219A/ko
Application granted granted Critical
Publication of KR100563875B1 publication Critical patent/KR100563875B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

2차원 데이터를 포함하는 데이터 셀(이하, DC라 칭함)을 갖는 2차원 코드, 파인더 패턴(이하, FP라 칭함) 및 얼라인먼트 패턴(이하, AP라 칭함)의 위치 결정이 입력되면, FP의 위치는 수평, 수직 및 경사 방향의 3방향에서의 패턴으로부터의 근접도를 평가함으로써 검출된다. AP의 위치는, 입력 화상 부분의 회전 정정 후에 탬플리트 매칭을 수행함으로써 검출된다. 2차원 코드의 버전은 FP의 폭 및 위치로부터 셀의 수를 계산함으로써 결정된다. FP 및 AP의 위치에 기초하여 DC의 위치를 그들의 좌표 위치로 변환하기 위한 좌표 변환식이 결정되고 DC가 절단된다. 절단된 DC의 어레이는 2차원 코드 판독을 위하여 디코딩된다.
2차원 코드 판독, 좌표 위치, 파인더 패턴, 얼라인먼트 패턴

Description

2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드 판독 프로그램을 기록한 기록매체, 휴대형 단말기 및 디지털 카메라{TWO-DIMENSIONAL CODE READING APPARATUS, TWO-DIMENSIONAL CODE READING PROCESS, RECORDING MEDIUM CONTAINING TWO-DIMENSIONAL CODE READING PROGRAM THEREIN, PORTABLE TERMINAL AND DIGITAL CAMERA}
도 1은 QR 코드의 구성의 일예를 도시하는 개략적인 도면.
도 2는 QR 코드의 데이터 셀의 중심 좌표를 계산하는 종래 기술을 설명하는 개략적인 도면.
도 3은 본 발명의 일실시예에 따라 2차원 코드 판독 장치의 구성의 일예를 도시하는 블록도.
도 4는 본 발명의 다른 실시예에 따라 2차원 코드 판독 장치의 구성의 일예를 도시하는 블록도.
도 5는 본 발명의 2차원 판독 장치에서 동작 흐름의 일예를 도시하는 흐름도.
도 6은 파인더 패턴의 위치를 검출하는 것과 관련된 동작 흐름의 일예를 도시하는 흐름도.
도 7은 후보 파인더 패턴의 중심 좌표 위치 검출과 평가값 기록에 관련된 동 작 흐름의 일예를 도시하는 흐름도.
도 8a, 8b, 8c, 및 8d는 파인더 패턴 위치 및 2차원 코드의 배향 간의 관계를 도시하는 개략적인 도면.
도 9는 검출된 후보 파인더 패턴의 중심 좌표 위치와 폭을 설명하는 개략적인 도면.
도 10은 검출된 파인더 패턴의 후보가 기록되는 평가값 테이블의 일예를 도시하는 도면.
도 11은 도 10에 도시한 평가값 테이블에 기록되는 파인더 패턴 후보의 배열 및 통합 결과를 보여주는 평가값 테이블의 일예를 도시하는 도면.
도 12는 파인더 패턴 후보의 중심 좌표 위치들이 서로 근사한 조건의 일예를 도시하는 개략적인 도면.
도 13은 x 및 y 좌표가 참조 파인더 패턴(F0)의 중심 둘레를 시계방향으로 45°회전한 제1 내지 제4 사분면이 각각 영역 0 내지 3으로 된 경우를 도시하는 영역 분할된 도면.
도 14는 도 8a, 8b, 8c, 8d에 도시한 2차원 코드 방향과 도 13에 도시한 4개영역과의 조합 관계를 도시하는 도면.
도 15는 도 8a, 8b, 8c, 8d에 도시한 각 2차원 코드 방향과 파인더 패턴(F1, F2)의 중심 좌표 위치가 속하는 영역과의 관계를 도시하는 도면.
도 16은 얼라인먼트 패턴의 위치 검출을 수행하는 처리 흐름의 일예를 도시하는 흐름도.
도 17은 수평 또는 수직 방향에서 2차원 코드의 회전 각의 일예를 도시하는 개략적인 도면.
도 18은 2차원 코드에서 얼라인먼트 패턴의 검색 참조 포인트 위치의 일예를 도시하는 도면.
도 19a 및 19b는 파인더 패턴의 에지를 추적하는 일예를 도시하는 개략적인 도면.
도 20은 얼라인먼트 패턴(P)의 검색 범위를 결정하는 일예를 설명하는 개략적인 도면.
도 21은 데이터 셀 절단 처리와 관련된 흐름의 일예를 도시하는 흐름도.
도 22는 데이터 셀이 밝은지 어두운지(즉, 화이트 및 블랙) 여부를 식별하기 위한 밝은 임계값 및 어두운 임계값을 결정하는 방법을 설명하는 개략적인 도면.
도 23은 4개의 참조 포인트에서 셀 위치와 2차원 코드의 형태와의 관계를 도시하는 개략적인 도면.
도 24는 4개의 인접하는 화소의 화소값을 이용하는 선형 보간의 일예를 도시하는 개략적인 도면.
본 발명은 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드 판독 프로그램을 기록한 기록매체, 휴대형 단말기 및 디지털 카메라에 관한 것으로, 특 히, 예를 들면, 카메라를 내장한 휴대형 단말기가 2차원 코드를 용이하게 판독할 수 있도록 하는 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드 판독 프로그램을 기록한 기록매체에 관한 것이다.
최근, 내장형 카메라를 구비한 휴대 전화가 주목을 받고 있다. 2차원 코드로 기록된 정보가, 그러한 휴대 전화에 내장된 카메라에 의해 2차원 코드의 화상을 촬상함으로써 판독되면, 일반적인 휴대 전화가 낮은 처리 능력을 갖고 있기 때문에, 처리 능력을 감안하여 비교적 낮은 처리 능력을 갖는 기법으로 2차원 코드를 판독할 수 있도록 할 필요가 있다.
2차원 코드의 예로서, JISX510(및 ISO/IEC 18004)에 기술된 QR 코드(Quick Response Code)라는 2차원 코드가 있다. 도 1은 QR 코드의 예시적인 구성을 개략적으로 도시한 도면이다. 도 1에 도시한 바와 같이, 2차원 QR 코드는 사각 형상으로 구성되어 QR 코드의 위치를 검출할 수 있다. 서로 다른 비율을 갖는 사각형의 제1 특정 패턴(파인더 패턴(F))이 2차원 코드의 3개의 코너 각각에 배치되어 있다. 횡방향 및 수직 방향으로 교대로 배열된 블랙 및 화이트 셀을 갖는 참조 패턴(타이밍 패턴 T)은 3개의 파인더 패턴(F) 사이에 배치된다. 타이밍 패턴 T은 2차원 코드의 각 데이터 셀의 위치 계수이다. 제2 특정 패턴(얼라인먼트 패턴(P))는 2차원 코드 상에 배치되어, 2차원 코드가 비스듬히 변형된 형태로 형상화된 경우이어도, 2차원 코드의 데이터 셀의 위치 얼라인먼트를 수행할 수 있도록 한다.
QR 코드의 내부 영역은 m개의 사각 영역(이하, "셀"이라고 칭한다)으로 분할된다. 밝은(화이트) 및 어두운(블랙) 셀인 이진 데이터가 각 셀에 기록될 수 있다. 파인더 패턴은, 각각의 길이가 7개의 셀에 대응하는 복수의 측면을 갖는 블랙 사각형, 각각의 길이가 5개의 셀에 대응하는 복수의 측면을 갖는 화이트 사각형, 및 각각의 길이가, 방사상 형태로 외측으로 향하는 방향으로 동심원 형상으로 중첩된 3개의 셀에 대응하는 복수의 측면을 갖는 블랙 사각형을 포함하는 그림이다.
그렇게 형성된 QR 코드의 화상은 이미지 센서에 의해 판독되어 2차원 코드 판독 장치에 입력된다. 2차원 코드 판독 장치에 입력된 화상은 2치로 변환되거나, 밝은(화이트) 값 및 어두운(블랙) 값과 같은 2개 값 중 어느 하나를 갖는 이진 화상으로 변환된다.
이진 화상이 전술한 크기를 갖는 파인더 패턴(F)의 중심 근처에서 횡방향 또는 수직방향으로 선형적으로 스캔될 때, 파인더 패턴(F)에서의 블랙:화이트:블랙:화이트:블랙의 외관상의 비율이 1:1:3:1:1이도록, 2차원 코드가 구성된다. 그러한 비율을 갖는 패턴의 외관상의 비율을 이용하면, 이미지 센서로부터 입력되어 이진 데이터로 변환된 이진 화상으로부터 파인더 패턴(F)의 위치를 검출할 수 있다.
타이밍 패턴 T의 대향 단부에 위치하는 파인더 패턴(F)이 검출되면, 블랙 및 화이트 셀이 1:1의 비율로 파인더 패턴(F)의 단부에서 교대로 보이는 위치를 검출함으로써, 타이밍 패턴 T을 검출할 수 있다.
QR 코드의 화상이 경사지게 촬상되면, 촬상 방향에 의존하는 촬상 화상의 왜곡이, QR 코드에 대하여 수직 방향으로 촬상된 화상에 비교하여 발생한다. 왜곡된 화상에 대한 QR 코드의 셀 위치를 정확하게 결정할 수 있도록 하기 위하여, 제2 특정 패턴을 포함하는 얼라인먼트 패턴(P)이, 2차원 코드에서, 파인더 패턴(F)과 관 련하여 파인더 패턴(F)의 위치와는 다른, 소정의 위치에 배치된다.
2차원 코드는, 배치될 것으로 예상되는 얼라인먼트 패턴(P)의 좌표가 3개의 파인더 패턴(F)의 중심 좌표로부터 계산될 수 있도록 구성된다. 그 계산 결과에 기초하여 이진 화상을 연속적으로 상세히 검사하여 얼라인먼트 패턴(P)에 특정된 제2 패턴의 특징과 매칭되는 형상을 갖는 부분 패턴을 추출함으로써, 얼라인먼트 패턴(P)의 위치를 검출할 수 있다.
데이터가 기록된 각 데이터 셀의 중심 위치의 좌표는, 파인더 패턴(F), 타이밍 패턴(T) 및 얼라인먼트 패턴(P)의 각 위치가 검출되는 각 좌표로부터 계산될 수 있다. 도 2를 참조하여, 종래의 데이터 절단 방식의 예에 대하여 설명한다.
도 2는 QR 코드에서의 데이터 셀의 중심 좌표를 계산하는 종래기술을 개략적으로 도시한 모식도이다. 도 2에서, 파인더 패턴(F)의 중심은 Fa, Fb 및 Fc로 나타내고, 얼라인먼트 패턴(P)의 중심은 Pd로 나타낸다. 우선, 점 Fa와 점 Fb를 연결하는 직선 S1과, 점 Fa와 점 Fc를 연결하는 직선 S4가 결정된다.
직선 S1상에서, 점 Fb가 수평방향(횡방향) 및 좌측 방향(즉, 점 Fa에 향하는 방향)으로 3개의 셀만큼 이동한 점 Fb'가 결정된다. 그 다음, 직선 S1상에서, 점 Fc가 수직방향 및 상측 방향(즉, 점 Fa에 향하는 방향)으로 3개의 셀만큼 이동한 점 Fc'가 결정된다.
이동점 Fb'와 얼라인먼트 패턴(P)의 중심점 Pd를 연결하는 직선 S3가 결정되고, 이동점 Fc'와 얼라인먼트 패턴(P)의 중심점 Pd를 연결하는 직선 S2가 결정된다.
도 2에서 마크 E로 지정된 위치에서의 각 셀의 중심 좌표는, 수평방향(횡방향)으로 배치된 파인더 패턴(F)의 중심점 Fa 및 Fb과 그들 사이에 배치된 타이밍 패턴(T)으로부터 알 수 있다.
또한, 수평 참조 라인이며, 마크 E로 표시된 각 셀의 중심을 통과하는 직선(예를 들면, 도 2에 나타낸 점선 Hs)의 경사는 직선 S4 및 S3의 경사로부터 결정되어, 마크 E로 표시된 각 셀의 중심을 통과하는 수평 참조 라인이 결정될 수 있다.
마찬가지로, 수직 참조 라인 Vs가 또한 결정될 수 있다. 이렇게 하여 결정된 수평 참조 라인 Hs이 수직 참조 라인 Vs과 교차하는 위치가, 각 데이터 셀의 중심 좌표로서 계산될 수 있다.
블랙 및 화이트 셀의 외관 빈도가, 그렇게 계산된 각 셀의 중심 좌표로부터 데이터 셀의 주변을 향하여 순차적으로 체크되고, 셀에서의 화이트 화소의 수와 블랙 화소의 수가 비교되어, 보다 많은 화소가 관심 대상의 데이터 셀의 데이터 값으로서 결정된다.
2차원 코드인 QR 코드의 위치가 식별되면, 파인더 패턴(F)을 검출하기 위하여, 셀의 블랙:화이트:블랙:화이트:블랙 패턴의 비율이 1:1:3:1:1인지 여부를 결정할 필요가 있다. 그러나, 2차원 코드(QR 코드)가 회전되거나 경사진 화상이 촬상되면, 파인더 패턴(F)을 검출하기 위한 상기 비율은, 외관 빈도가 수평 및 수직 방향으로만 결정하는 데에 의도되는 경우에도, 1:1:3:1:1의 비율과 정확하게 매칭되지 않을 수 있다. 검출된 비율이, 실제의 파인더 패턴(F)이 존재하는 위치 이외의 곳에서 상기 1:1:3:1:1의 비율과 매칭되는 경우가 생길 수도 있다. 파인더 패턴(F)의 위치가 부정확하게 검출될 수도 있다.
타이밍 패턴(T)이 검출되어 데이터 셀의 위치를 결정하기 위하여 이용되는 경우, 블랙 및 화이트 셀이 2차원 코드(QR 코드)의 3개의 코너에 위치한 파인더 패턴(F) 사이에서 교대로 보이는 타이밍 패턴(T)을 검출하는 데에 확장된 기간이 요구된다는 문제가 있다. 이 문제는, 2차원 코드(QR 코드)의 버전이 새로운 것일 수록(2차원 코드를 형성하는 화소의 수가 많을 수록) 더욱 심각해진다.
파인더 패턴(F)의 좌표로부터 얼라인먼트 패턴(P)이 존재할 것으로 예상되는 예상 좌표를 계산하고, 주변을 상세히 검사함으로써, 얼라인먼트 패턴(P)이 검출된다. 예상 좌표는 촬상 화상의 왜곡으로 인해 실제의 얼라인먼트 패턴(P)이 존재하는 좌표로부터 크게 벗어날 수 있기 때문에, 실제의 얼라인먼트 패턴(P)이 존재하는 정확한 위치를 검출하는 조사에 상당한 시간이 요구되어 진다.
2차원 코드(QR 코드)의 얼라인먼트 패턴(P)의 정확한 조사가 이진 처리된 이진 화상에 대하여 행해진다. 화이트 셀의 크러싱(crushing) 및 블랙 셀의 칩핑(chipping)이 이진 데이터로의 변환에 의해 생기는 에러로 인해 발생할 수도 있다. 이 문제는, 얼라인먼트 패턴(P)이 그러한 크러싱 또는 칩핑의 영향에 의해 부정확하게 검출되는 경우에 발생할 수도 있다.
임의의 범위에서 숫적으로 많은 셀을 갖는 2차원 코드(QR 코드)가, 복수의 얼라인먼트 패턴(P)이 배치되는 방식으로 형성될 수 있고, 데이터 셀은, 촬상한 화상이 약간 왜곡될지라도, 복수의 얼라인먼트 패턴(P) 중의 어느것을 검출함으로써 2차원 코드로부터 안정적으로 절단될 수 있다(즉, 각 데이터 셀의 데이터 값이 결정될 수 있다). 이 경우, 복수의 얼라인먼트 패턴(P)의 위치를 검출할 필요가 있어, 그러한 처리를 완료하는데에 확장된 기간이 소요된다.
셀의 치수, 즉 셀 크기에 기초하여 특정 범위내에서 블랙 및 화이트 화소의 수를 체크함으로써 데이터 셀의 데이터 값이 결정되기 때문에(즉, 데이터 셀이 절단되기 때문에), 데이터 셀의 데이터 값을 결정하는 데에 확장된 기간을 필요로 할 뿐만 아니라, 화이트 화소의 크러싱 및 블랙 화소의 칩핑이 이진 처리(이진화)에서의 에러로 인해 생길 수 있어, 데이터 셀의 데이터 값은 에러로 될 가능성이 있다.
2차원 코드(QR 코드)의 버전이 파인더 패턴(F) 간의 거리로부터 셀의 수를 계산함으로써 결정될 때, 입력 화상의 왜곡으로 인해 에러가 생길 수 있다. 따라서, 코드의 정확한 버전이 결정되지 않게 되면, 2차원 코드를 판독할 수 없게 된다.
본 발명의 목적은, 복수의 방향(예를 들어, 3개 방향, 즉, 수평, 수직, 및 경사 방향)에서 2차원 코드를 기록한 입력 화상의 스캐닝 결과에 기초하여 복수의 위치를 검출하고, 검출된 파인더 패턴과 파인더 패턴에 특정한 제1 패턴 사이의 근사 정도를 나타내는 평가값 및 검출된 파인더 패턴 폭과 소정의 파인더 패턴 폭의 차이의 허용가능한 값을 이용하는 파인더 패턴의 특징에 기초하여 검출을 수행함으로써 파인더 패턴 위치를 명확하게 식별하는 것이다.
따라서, 파인더 패턴을 검출할 때, 파인더 패턴에 특정한 제1 패턴의 비율, 예를 들어, 셀의 블랙:화이트:블랙:화이트:블랙 패턴의 평가값은 1:1:3:1:1 비율에 근사한다. 파인더 패턴의 검출 정확도는 입력 화상의 전체에 대한 평가값을 비교함으로써 향상될 수 있다. 따라서, 본 발명에 의해 비교적 낮은 해상도와 노이즈를 갖는 입력 화상에서도 파인더 패턴을 검출할 수 있다.
대안으로서, 검출될 패턴이 파인더 패턴에 특정한 제1 패턴에 근사하는지 여부를 결정하기 위한 파인더 패턴 스캐닝을, 수평, 수직, 및 경사 방향인 3개 방향으로 수행한다. 본 발명은 2차원 코드가 입력 화상에서 회전되어 있더라도 각 방향에서의 패턴 비율에 대한 평가값을 이용함으로써 파인더 패턴의 검출 정확도를 향상시키는 것이다.
본 발명의 다른 목적은, 파인더 패턴의 외부 윤곽선을 스캐닝함으로써 얻어지는 입력 화상에서의 파인더 패턴의 외부 윤곽선 경사 및 파인더 패턴의 중심 좌표로부터 검출되는 2차원 코드의 각 변의 경사로부터 얼라인먼트 패턴의 검색 범위가 특정화되는 것을 참조하여 검색 참조 포인트를 결정하는 단계, 이진 처리에 앞서 입력 화상으로부터 떨어져 있는, 결정된 검색 참조 포인트에 대하여 소정의 위치에 있으며, 검색 범위내의 화상 일부를 절단하는 단계, 상기 절단된 화상 일부와 상기 얼라인먼트 패턴에 특정한 제2 패턴 특징에 매칭하는 템플리트 사이의 템플리트 매칭을 수행함으로써 상기 화상 일부로부터 얼라인먼트 패턴을 추출하여 상기 얼라인먼트 패턴의 위치를 명확하게 검출하는 단계, 및 2차원 데이터가 각 회전되어 있다면 그 회전각에 따라 검출된 위치에 회전 정정을 적용하는 단계를 포함하는 프로세스를 수행함으로써 얼라인먼트 패턴 위치를 명확하게 검출하는 것이다.
따라서, 파인더 패턴의 외부 윤곽선에 의해 그 일부가 형성되는 2차원 코드의 한 변의 경사는, 스캐닝에 의해 파인더 패턴의 외부 윤곽선 경사를 검출함으로써 결정된다. 얼라인먼트 패턴의 예상 좌표는, 2차원 코드의 상기 변과 평행하고 상기 파인더 패턴의 중심을 통과하는 직선 교차점을 결정함으로써 결정된다. 본 발명은, 검출된 얼라인먼트 패턴과 이진 처리에 앞서 입력 화상을 이용하여 얼라인먼트 패턴 특징에 매칭하는 템플리트 사이의 템플리트 매칭을 수행함으로써 얼라인먼트 패턴을 높은 정확도로 검출하는 것이다. 2차원 코드가 왜곡되어 존재하더라도, 얼라인먼트 패턴이 존재할 수 있는 검색 범위를 정확하게 결정할 수 있다. 본 발명에 의해, 종래 기술에서 행하는 얼라인먼트 패턴을 검색하기 위한 입력 화상을 검사하는데 필요한 처리 양을 감소시킬 수 있고, 그 결과 얼라인먼트 패턴의 위치를 검출하는데 필요한 전체 처리 양을 줄일 수 있다.
또한, 본 발명의 목적은, 변환 계수가 적용되는 좌표 변환식을 이용하여 입력 화상에서 각 데이터 셀의 중심 위치를 중심 좌표로 변환하는 단계 - 여기서, 상기 변환 계수는 검출된 파인더 패턴 위치 및 얼라인먼트 패턴 위치에 기초하여 또한 결정된 버전에 의해 결정되는 2차원 코드의 셀 수에 기초하여 계산됨 -, 각 데이터 셀에 대응하는 상기 입력 화상에서 좌표내에 위치하는 화소값으로부터 얻어지는 밀도, 또는 각 데이터 셀의 값을 식별하기 위해 사전 결정되는 밝은 임계값과 어두운 임계값과 상기 좌표에 인접하는 주변 화소값의 보간에 의해 얻어지는 밀도를 비교하는 단계를 포함하는 프로세스에 의해 데이터 셀을 절단하는 것이며, 이에 의해 각 데이터 셀의 데이터값을 결정하여 데이터 셀을 적절히 절단하게 된다. 부 적절한 데이터 셀 절단으로 인해 상기 2차원 코드 판독이 실패하면, 버전 결정 단계에서 결정된 버전이 1씩 변경되고, 데이터 셀 절단 처리를 다시 반복하여, 잘못된 결정으로 인한 2차원 코드 판독을 방지한다.
상기한 바와 같은 본 발명에는, 종래 기술과 달리 2차원 코드에서 타이밍 패턴이 제공되지 않아도 되기에, 타이밍 패턴을 검출할 필요가 없다. 데이터 셀의 중심 위치는 3개의 파인더 패턴과 1개의 얼라인먼트 패턴의 좌표 쌍과 같은 4개의 좌표 쌍으로부터 결정된다. 데이터 셀의 데이터값은 결정된 셀 위치에서 입력 화상의 밀도에 의해 결정될 수 있기 때문에, 타이밍 패턴 검출 처리에 필요한 시간 간격이 감소되어 데이터 셀의 데이터값을 결정하는데 필요한 시간 간격이 감소된다. 따라서, 전체 데이터 셀 절단 처리 양을 현저히 감소시킬 수 있다.
상기한 바와 같은 본 발명은, 데이터 셀의 중심에 대응하는 위치에서 입력 화상 내에 화소가 존재하지 않더라도 셀 중심에 인접하는 화소값을 보간함으로써 셀 중심에 위치하는 화소값을 추정한다. 데이터 셀 값은, 데이터 셀이 배치된 2차원 코드 내의 특정 위치에 있는 복수의 화소값에 따라 미리 결정된 블랙 및 화이트 임계값과 화소 추정값을 비교함으로써 결정된다. 데이터 셀 절단을 수행하지 못하여 2차원 코드 판독이 실패하더라도, 파인더 패턴의 폭과 파인더 패턴 사이의 간격에 기초하여 결정되는 버전은 1씩 변경된다(예를 들어, 1씩 증가한다). 잘못 결정되는 버전으로 인한 영향을 줄이도록 2차원 코드 판독 및 데이터 셀 절단 처리를 다시 반복한다.
본 발명의 목적은, 그 위에 이진 데이터를 기록하는 데이터 셀을 수평 및 수 직 방향과 같이 2차원 형태로 얼라인먼트함으로써, 입력 화상으로부터 2차원 코드를 판독하는 2차원 코드 판독 장치로서, 상기 2차원 코드는, 각각이 제1 특정 패턴을 갖는 복수의 파인더 패턴과, 상기 2차원 코드 내의 상기 파인더 패턴의 위치와는 다른 사전 결정된 위치에 배치되는 얼라인먼트 패턴을 가지며, 상기 파인더 패턴의 각각은, 상기 입력 화상 내에서 상기 2차원 코드의 위치를 식별하기 위한 상기 2차원 코드 내에서 복수의 사전 결정된 위치에 배치되며, 상기 얼라인먼트 패턴은 상기 파인더 패턴에 특정된 상기 제1 패턴과는 다른 제2 패턴을 갖고, 상기 입력 화상으로부터 상기 사전 결정된 복수의 위치에 배치되는 상기 복수의 파인더 패턴의 상기 위치를 검출하는 처리가, 복수의 방향에서의 상기 입력 화상의 스캐닝 결과에 기초하여 행해지며, 상기 얼라인먼트 패턴의 위치를 검출하기 위한 처리가, 상기 검출된 파인더 패턴에 기초하여 행해지고, 상기 2차원 코드를 구성하는 복수의 셀을 규정하는 상기 2차원 코드의 버전을 결정하는 처리가, 상기 검출된 파인더 패턴에 기초하여 행해지며, 상기 2차원 코드를 구성하는 각 데이터 셀의 데이터 값을 규정하는 상기 데이터 셀을 절단하기 위한 처리가, 상기 검출된 파인더 패턴 및 상기 검출된 얼라인먼트 패턴의 상기 위치, 및 상기 버전 결정 처리에 의해 결정된 상기 버전에 기초하여 행해지고, 상기 2차원 코드의 정보를 식별하기 위한 디코딩 처리가, 상기 데이터 셀 절단 처리에 의해 결정된 데이터 셀의 상기 데이터 값으로부터 사전 결정된 규칙에 따라 행해지는 것을 특징으로 하는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 제1 블랙 및 화이트 특정 패턴을 포함하는 상기 파 인더 패턴에 근사한 패턴을 갖는 상기 파인더 패턴의 복수의 후보가, 후보 파인더 패턴으로서 상기 입력 화상으로부터 추출되고, 수평, 수직 및 경사 방향의 3방향에서 각 후보 파인더 패턴을 가로지르는 스캐닝 라인을 따르는 상기 블랙 및 화이트 패턴의 구성비가, 상기 추출된 복수의 후보 파인더 패턴의 각각에 대하여 검출되며, 각 방향에서의 상기 블랙 및 화이트 패턴의 상기 검출된 구성비가, 상기 파인더 패턴으로서 사전 결정된 블랙 및 화이트 패턴을 포함하는 상기 제1 특정 패턴의 구성비와 비교되어, 상기 후보 패턴과 상기 제1 패턴 간의 근사도를 나타내는 추정값을 계산하고, 사전 결정된 수의 상기 후보 파인더 패턴이, 상기 추정값으로 나타내는 근접도가 보다 높은 후보 파인더 패턴으로부터 그 순서대로 상기 추출된 복수의 후보 파인더 패턴 중에서 선택되어, 상기 사전 결정된 수의 선택된 파인더 패턴의 각 위치가 검출되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명은, 상기 추출된 복수의 후보 파인더 패턴의 수평, 수직 및 경사방향 중의 어느 하나에서, 상기 후보 파인더 패턴과 상기 파인더 패턴에 특정된 상기 제1 패턴 간의 근사도를 나타내는 상기 추정값이, 사전 결정된 임계값을 초과하는 값으로 계산되어, 상기 후보 파인더 패턴이 상기 제1 패턴에 근사하지 않은 경우, 상기 후보 파인더 패턴은 상기 파인더 패턴의 후보들로부터 배제되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 임계값이, 상기 2차원 코드의 유형 및 어플리케이션, 및/또는 상기 입력 화상의 화질에 따라, 사용자에 의해 원하는 값으로 임시로 사전에 설정가능한 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 근접도로 중첩된 위치에 배치된 상기 후보 파인더 패턴이 추출되면, 상기 중첩 위치에 있는 상기 후보 파인더 패턴이 통합되고, 그 통합화 이전의 각 후보 파인더 패턴의 상기 추정값이 합산됨으로써, 그 합산값이 상기 통합된 후보 파인더 패턴의 상기 추정값으로서 표현되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 수평, 수직 및 경사방향 중의 어느 하나에서, 상기 추출된 후보 파인더 패턴의 크기를 나타내는 폭과 상기 파인더 패턴의 크기를 나타내는 사전 결정된 특정 폭의 차이가, 사전 결정된 허용값을 초과하면, 상기 후보 파인더 패턴은 상기 파인더 패턴의 상기 후보들로부터 배제되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 허용값이, 상기 2차원 코드의 유형 및 어플리케이션, 및/또는 상기 입력 화상의 화질에 따라, 사용자에 의해 원하는 값으로 임시로 사전에 설정가능한 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 수평, 수직 및 경사방향의 3개의 방향에서 상기 파인더 패턴의 상기 폭의 평균값이, 상기 검출된 파인더 패턴의 크기를 나타내는 상기 폭으로서 이용되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드를 구성하는 상기 셀의 치수를 나타내는 상기 셀 크기가, 상기 검출된 파인더 패턴의 크기를 나타내는 상기 폭에 기초하여 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 상기 버전이, 상기 검출된 복수의 파 인더 패턴 간의 공간과 상기 파인더 패턴의 크기를 나타내는 상기 폭으로부터 구해지는 상기 셀의 치수를 나타내는 상기 셀 크기에 기초하여, 상기 2차원 코드를 구성하는 셀의 수를 계산함으로써 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 상기 버전과 상기 버전에 의해서 결정되는 상기 2차원 코드 폭을 구성하는 등록 셀의 수의 대응 관계를 나타내는 버전 등록 테이블을 포함하고, 상기 버전 등록 테이블이 상기 계산된 셀 수에 기초하여 추출됨으로써, 상기 등록된 셀의 수는 매칭되거나 근사한 값을 갖고, 상기 등록된 셀 수에 대응하는 상기 버전은 상기 2차원 코드 및 그 버전을 각각 구성하는 셀의 수로서 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되었는지의 결정이, 상기 검출된 복수의 파인더 패턴(F)의 각 죄표에 기초하여 행해지며, 회전된 것으로 결정되면, 상기 2차원 코드의 회전각이 계산되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 입력 화상에서의 상기 2차원 코드의 각 측의 경사의 존재를, 상기 입력 화상에서의 상기 파인더 패턴의 경사의 존재를 검출함으로써 검출되고, 검색 참조 포인트를 참조하여, 상기 입력 화상에서의 상기 얼라인먼트 패턴을 추출하기 위한 검색 범위가 지정되고, 상기 검색 참조 포인트는 각 측의 경사와 상기 파인더 패턴의 중심 좌표로부터 결정되며, 상기 결정된 검색 참조 포인트로부터 사전 결정된 위치에 위치하는 상기 검색 범위에서의 부분 화상이, 상기 입 력 화상으로부터 절단되고, 상기 얼라인먼트 패턴의 위치가, 상기 부분 화상으로부터 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴을 추출함으로써 검출되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 파인더 패턴의 경사 존재가, 그 위에 상기 파인더 패턴이 위치하는, 상기 2차원 코드의 상기 측 부분을 형성하고, 상기 파인더 패턴의 상기 화소를 스캐닝함으로써 상기 파인더 패턴의 외부 윤곽을 형성하는, 상기 화소의 좌표중에서 적어도 2개의 화소의 좌표를 검출함으로써 검출되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 상기 측 부분을 형성하고 상기 2차원 코드의 상기 측과 평행한 상기 파인더 패턴의 상기 중심 좌표를 통과하는 직선과, 상기 2차원 코드내에서 상기 파인더 패턴에 대각선으로 대향하고, 상기 2차원 코드의 다른 측 부분을 형성하며, 상기 다른 측과 평행한, 다른 파인더 패턴의 중심 좌표를 통과하는 직선 간의 교차점이, 상기 검색 참조 포인트로서 결정되며, 이를 참조하여 상기 얼라인먼트 패턴을 추출하기 위한 상기 검색 범위가 지정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 검색 범위가, 상기 얼라인먼트 패턴의 중심 위치가 상기 검색 참조 포인트로부터 사전 결정된 거리만큼 떨어져 있는 것으로 추정되는 추정 중심 좌표로부터 적어도 2개의 셀 크기의 마진을 가진 상태에서, 상기 얼라인먼트 패턴에 특정된 상기 제2 패턴을 포함할 정도로 넓은 영역인 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 검색 범위는, 상기 얼라인먼트 패턴의 중심 위치가 상기 검색 참조 포인트로부터 사전 결정된 거리만큼 떨어져 있는 것으로 추정되는 추정 중심 좌표로부터 적어도 2개의 셀 크기의 마진을 가진 상태에서, 상기 얼라인먼트 패턴에 특정된 상기 제2 패턴을 포함할 정도로 넓은 영역인 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 얼라인먼트 패턴에 특정된 상기 제2 패턴의 각 화소의 특징을 매칭시키는 탬플리트가 제공되어 있고, 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴이, 상기 탬플리트와 상기 부분 화상 간의 탬플리트 매칭을 1화소분 시프트하면서 수행함으로써 상기 부분 화상으로부터 추출되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되는 경우, 상기 2차원 코드의 상기 방향이 회전되는 각도에 기초하여, 상기 검색 참조 포인트의 좌표를 회전 정정에 적용함으로써 특정되는 상기 검색 범위) 내의 부분 화상이 상기 입력 화상으로부터 절단되고, 상기 회전 각도에 기초하여 상기 부분 화상을 절단하기 위하여 상기 회전 정정을 적용한 후, 상기 얼라인먼트 패턴의 위치가, 상기 얼라인먼트 패턴을 추출하기 위하여 상기 회전 정정된 부분 화상을 1화소분 시프트하면서 상기 탬플리트 매칭을 수행함으로써 검출되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 탬플리트 매칭을 위해 처리될 상기 부분 화상이, 이진 처리 이전의 조건하에 있는 상기 입력 화상으로부터 절단되는 부분 화상인 2차 원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 탬플리트 매칭에 대한 처리가 수행될 때, 상기 탬플리트의 각 화소의 화소값과 상기 부분 화상의 각 대응화소의 화소값 간의 차분의 절대값이, 상기 부분 화상을 1화소분 순차적으로 시프트하면서 계산됨으로써, 절대값의 합이 최소로 되는 상기 부분 화상 내의 위치가 상기 얼라인먼트 패턴의 좌표로서 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 판단하는 처리가 수행될 때, 상기 데이터 셀의 위치 식별 처리에 의해 검출되는 상기 파인더 패턴 및 상기 얼라인먼트 패턴의 중심의 상기 셀 위치와, 상기 식별된 버전에 의해 결정되는 상기 2차원 코드의 상기 셀 수에 기초하여, 상기 2차원 코드의 각 데이터 셀의 상기 중심 위치를 상기 입력 화상에서의 좌표로 변환하기 위한 좌표 변환식의 변환 계수가 계산되며, 각 데이터 셀의 상기 중심 위치는, 상기 좌표 변환식을 이용함으로써 상기 입력 화상의 좌표로 변환되고, 상기 좌표 변환식에는, 각 데이터 셀의 상기 중심 위치에 대응하는 상기 좌표를 식별하기 위하여 상기 계산된 변환 계수가 적용되고, 각 데이터 셀의 데이터 값이, 각 데이터 셀의 절단을 수행하기 위한 상기 위치 식별 처리에 의해 식별되는 상기 좌표 위치의 밀도에 기초하여 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 결정하는 처리가 수행될 때, 상기 위치 식별 처 리에 의해 식별되는 상기 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 밀도는, 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재할 경우, 상기 좌표에 존재하는 상기 화소의 화소 값으로부터 구해지는 밀도이고, 또한 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재하지 않은 경우, 상기 좌표에 인접하는 주변 화소에의 화소 값의 보간에 의해서 구해지는 밀도이며, 각 데이터 셀의 상기 데이터 값은, 각 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 상기 밀도와, 각 데이터 셀의 상기 데이터 값을 식별하기 위한 밝은 임계값 및 어두운 임계값과 비교함으로써 결정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 각 데이터 셀의 상기 데이터 값을 식별하기 위한 상기 밝은 임계값 및 어두운 임계값이, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상에서의 상기 화소의 화소값에 기초하여 설정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 밝은 임계값 및 어두운 임계값은, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상에서의 모든 화소의 화소값의 최소값과 최대값의 중간값으로서 설정되는 2차원 코드 판독 장치를 제공하는 것이다.
본 발명의 목적은, 상기 데이터 셀의 절단이 부적절하게 수행되어 상기 2차원 코드의 판독이 실패한 경우, 상기 데이터 셀의 절단 처리가, 상기 버전 결정 처리에 의해 결정된 1 버전분 변경된 후, 다시 반복되는 2차원 코드 판독 장치를 제 공하는 것이다.
본 발명의 목적은, 카메라를 내장한 휴대형 단말기로서, 상기한 바와 같은 2차원 코드 판독 장치를 포함하는 휴대형 단말기를 제공하는 것이다.
본 발명의 목적은, 상기한 바와 같은 2차원 코드 판독 장치를 포함하는 디지털 카메라를 제공하는 것이다.
본 발명의 목적은, 그 위에 이진 데이터를 기록하는 데이터 셀을 수평 및 수직 방향과 같이 2차원 형태로 얼라인먼트함으로써, 입력 화상으로부터 2차원 코드를 판독하는 2차원 코드 판독 방법으로서, 상기 2차원 코드는, 각각이 제1 특정 패턴을 갖는 복수의 파인더 패턴과, 상기 2차원 코드 내의 상기 파인더 패턴의 위치와는 다른 사전 결정된 위치에 배치되는 얼라인먼트 패턴을 가지며, 상기 파인더 패턴의 각각은, 상기 입력 화상 내에서 상기 2차원 코드의 위치를 식별하기 위한 상기 2차원 코드 내에서 복수의 사전 결정된 위치에 배치되며, 상기 얼라인먼트 패턴은 상기 파인더 패턴에 특정된 상기 제1 패턴과는 다른 제2 패턴을 갖고, 상기 입력 화상으로부터 상기 사전 결정된 복수의 위치에 배치되는 상기 복수의 파인더 패턴의 상기 위치를 검출하는 처리가, 복수의 방향에서의 상기 입력 화상의 스캐닝 결과에 기초하여 행해지며, 상기 얼라인먼트 패턴의 위치를 검출하기 위한 처리가, 상기 검출된 파인더 패턴에 기초하여 행해지고, 상기 2차원 코드를 구성하는 복수의 셀을 규정하는 상기 2차원 코드의 버전을 결정하는 처리가, 상기 검출된 파인더 패턴에 기초하여 행해지며, 상기 2차원 코드를 구성하는 각 데이터 셀의 데이터 값을 규정하는 상기 데이터 셀을 절단하기 위한 처리가, 상기 검출된 파인더 패턴 및 상기 검출된 얼라인먼트 패턴의 상기 위치, 및 상기 버전 결정 처리에 의해 결정된 상기 버전에 기초하여 행해지고, 상기 2차원 코드의 정보를 식별하기 위한 디코딩 처리가, 상기 데이터 셀 절단 처리에 의해 결정된 데이터 셀의 상기 데이터 값으로부터 사전 결정된 규칙에 따라 행해지는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 제1 블랙 및 화이트 특정 패턴을 포함하는 상기 파인더 패턴에 근사한 패턴을 갖는 상기 파인더 패턴의 복수의 후보가, 후보 파인더 패턴으로서 상기 입력 화상으로부터 추출되고, 수평, 수직 및 경사 방향의 3방향에서 각 후보 파인더 패턴을 가로지르는 스캐닝 라인을 따르는 상기 블랙 및 화이트 패턴의 구성비가, 상기 추출된 복수의 후보 파인더 패턴의 각각에 대하여 검출되며, 각 방향에서의 상기 블랙 및 화이트 패턴의 상기 검출된 구성비가, 상기 파인더 패턴으로서 사전 결정된 블랙 및 화이트 패턴을 포함하는 상기 제1 특정 패턴의 구성비와 비교되어, 상기 후보 패턴과 상기 제1 패턴 간의 근사도를 나타내는 추정값을 계산하고, 사전 결정된 수의 상기 후보 파인더 패턴이, 상기 추정값으로 나타내는 근접도가 보다 높은 후보 파인더 패턴으로부터 그 순서대로 상기 추출된 복수의 후보 파인더 패턴 중에서 선택되어, 상기 사전 결정된 수의 선택된 파인더 패턴의 각 위치가 검출되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 상기 버전이, 상기 검출된 복수의 파인더 패턴 간의 공간과 상기 파인더 패턴의 크기를 나타내는 상기 폭으로부터 구해지는 상기 셀의 치수를 나타내는 상기 셀 크기에 기초하여, 상기 2차원 코드를 구성하는 셀의 수를 계산함으로써 결정되는 2차원 코드 판독 방법을 제공하는 것이 다.
본 발명의 목적은, 상기 입력 화상에서의 상기 2차원 코드의 각 측의 경사의 존재를, 상기 입력 화상에서의 상기 파인더 패턴의 경사의 존재를 검출함으로써 검출되고, 검색 참조 포인트를 참조하여, 상기 입력 화상에서의 상기 얼라인먼트 패턴을 추출하기 위한 검색 범위가 지정되고, 상기 검색 참조 포인트는 각 측의 경사와 상기 파인더 패턴의 증심 좌표로부터 결정되며, 상기 결정된 검색 참조 포인트로부터 사전 결정된 위치에 위치하는 상기 검색 범위에서의 부분 화상이, 상기 입력 화상으로부터 절단되고, 상기 얼라인먼트 패턴의 위치가, 상기 부분 화상으로부터 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴을 추출함으로써 검출되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 얼라인먼트 패턴에 특정된 상기 제2 패턴의 각 화소의 특징을 매칭시키는 탬플리트가 제공되어 있고, 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴이, 상기 탬플리트와 상기 부분 화상 간의 탬플리트 매칭을 1화소분 시프트하면서 수행함으로써 상기 부분 화상으로부터 추출되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되는 경우, 상기 2차원 코드의 상기 방향이 회전되는 각도에 기초하여, 상기 검색 참조 포인트의 좌표를 회전 정정에 적용함으로써 특정되는 상기 검색 범위 내의 부분 화상이 상기 입력 화상으로부터 절단되고, 상기 회전 각도에 기초하여 상기 부분 화상을 절단하기 위하여 상기 회전 정정을 적용한 후, 상기 얼라인먼트 패턴의 위치가, 상기 얼라인먼트 패턴을 검색하기 위하여 상기 회전 정정된 부분 화상을 1화소분 시프트하면서 상기 탬플리트 매칭을 수행함으로써 검출되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 탬플리트 매칭을 위해 처리될 상기 부분 화상이, 이진 처리 이전의 조건하에 있는 상기 입력 화상으로부터 절단되는 부분 화상인 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 판단하는 처리가 수행될 때, 상기 데이터 셀의 위치를 식별하는 단계에서 검출되는 상기 파인더 패턴 및 상기 얼라인먼트 패턴의 중심의 상기 셀 위치와, 상기 식별된 버전에 의해 결정되는 상기 2차원 코드의 상기 셀 수에 기초하여, 상기 2차원 코드의 각 데이터 셀의 상기 중심 위치를 상기 입력 화상에서의 좌표로 변환하기 위한 좌표 변환식의 변환 계수가 계산되며, 각 데이터 셀의 상기 중심 위치는, 상기 좌표 변환식을 이용함으로써 상기 입력 화상의 좌표로 변환되고, 상기 좌표 변환식에는, 각 데이터 셀의 상기 중심 위치에 대응하는 상기 좌표를 식별하기 위하여 상기 계산된 변환 계수가 적용되고, 각 데이터 셀의 데이터 값이, 각 데이터 셀의 절단을 수행하기 위한 상기 위치 식별 처리에 의해 식별되는 상기 좌표 위치의 밀도에 기초하여 결정되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 결정하는 처리가 수행될 때, 상기 위치 식별 처 리에 의해 식별되는 상기 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 밀도는, 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재할 경우, 상기 좌표에 존재하는 상기 화소의 화소 값으로부터 구해지는 밀도이고, 또한 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재하지 않은 경우, 상기 좌표에 인접하는 주변 화소에의 화소 값의 보간에 의해서 구해지는 밀도이며, 각 데이터 셀의 상기 데이터 값은, 각 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 상기 밀도와, 각 데이터 셀의 상기 데이터 값을 식별하기 위한 밝은 임계값 및 어두운 임계값과 비교함으로써 결정되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 각 데이터 셀의 상기 데이터 값을 식별하기 위한 상기 밝은 임계값 및 어두운 임계값이, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상의 상기 화소의 화소값에 기초하여 설정되는 2차원 코드 판독 방법을 제공하는 것이다.
본 발명의 목적은, 상기한 바와 같은 2차원 코드를 판독하는 처리를 컴퓨터에 실행시킬 수 있는 프로그램 코드로 기술된 2차원 코드 판독용 프로그램을 제공하는 것이다
본 발명의 목적은, 컴퓨터에 의해 판독가능하고, 상기한 바와 같은 2차원 코드 코드 판독 프로그램이 기록된 기록 매체를 제공하는 것이다.
따라서, 본 발명에 의해, 파인더 패턴을 검출할 때, 파인더 패턴에 특정한 제1 패턴의 비율, 예를 들어, 셀의 블랙:화이트:블랙:화이트:블랙 패턴의 평가값은 1:1:3:1:1 비율에 근사한다. 파인더 패턴의 검출 정확도는 입력 화상의 전체에 대한 평가값을 비교함으로써 향상될 수 있다. 따라서, 본 발명에 의해 비교적 낮은 해상도와 노이즈를 갖는 입력 화상에서도 파인더 패턴을 검출할 수 있다.
대안으로서, 검출될 패턴이 파인더 패턴에 특정한 제1 패턴에 근사하는지 여부를 결정하기 위한 파인더 패턴 스캐닝을, 수평, 수직, 및 경사 방향인 3개 방향으로 수행한다. 본 발명은 2차원 코드가 입력 화상에서 회전되어 있더라도 각 방향에서의 패턴 비율에 대한 평가값을 이용함으로써 파인더 패턴의 검출 정확도를 향상시키는 것이다.
따라서, 파인더 패턴의 외부 윤곽선에 의해 그 일부가 형성되는 2차원 코드의 한 변의 경사는, 스캐닝에 의해 파인더 패턴의 외부 윤곽선 경사를 검출함으로써 결정된다. 얼라인먼트 패턴의 예상 좌표는, 2차원 코드의 상기 변과 평행하고 상기 파인더 패턴의 중심을 통과하는 직선 교차점을 결정함으로써 결정된다. 본 발명은, 검출된 얼라인먼트 패턴과 이진 처리에 앞서 입력 화상을 이용하여 얼라인먼트 패턴 특징에 매칭하는 템플리트 사이의 템플리트 매칭을 수행함으로써 얼라인먼트 패턴을 높은 정확도로 검출하는 것이다. 2차원 코드가 왜곡되어 존재하더라도, 얼라인먼트 패턴이 존재할 수 있는 검색 범위를 정확하게 결정할 수 있다. 본 발명에 의해, 종래 기술에서 행하는 얼라인먼트 패턴을 검색하기 위한 입력 화상을 검사하는데 필요한 처리 양을 감소시킬 수 있고, 그 결과 얼라인먼트 패턴의 위치를 검출하는데 필요한 전체 처리 양을 줄일 수 있다.
본 발명에 의해, 종래 기술과 달리 2차원 코드에서 타이밍 패턴이 제공되지 않아도 되기에, 타이밍 패턴을 검출할 필요가 없다. 데이터 셀의 중심 위치는 3개의 파인더 패턴과 1개의 얼라인먼트 패턴의 좌표 쌍과 같은 4개의 좌표 쌍으로부터 결정된다. 데이터 셀의 데이터값은 결정된 셀 위치에서 입력 화상의 밀도에 의해 결정될 수 있기 때문에, 타이밍 패턴 검출 처리에 필요한 시간 간격이 감소되며 데이터 셀의 데이터값을 결정하는데 필요한 시간 간격이 감소된다. 따라서, 전체 데이터 셀 절단 처리 양을 현저히 감소시킬 수 있다.
데이터 셀의 중심에 대응하는 위치에서 입력 화상 내에 화소가 존재하지 않더라도 셀 중심에 인접하는 화소값을 보간함으로써 셀 중심에 위치하는 화소값을 추정한다. 데이터 셀 값은, 데이터 셀이 배치된 2차원 코드 내의 특정 위치에 있는 복수의 화소값에 따라 미리 결정된 블랙 및 화이트 임계값과 화소 추정값을 비교함으로써 결정된다. 데이터 셀 절단을 수행하지 못하여 2차원 코드 판독이 실패하더라도, 파인더 패턴의 폭과 파인더 패턴 사이의 간격에 기초하여 결정되는 버전은 1씩 변경된다(예를 들어, 1씩 증가한다). 잘못 결정되는 버전으로 인한 영향을 줄이도록 2차원 코드 판독 및 데이터 셀 절단 처리를 다시 반복한다.
<실시예>
본 발명의 2차원 코드 판독 장치를 도면을 참조하여 설명한다.
먼저, 본 발명의 2차원 코드 판독 장치의 실시예를 도면을 참조하여 설명한다.
도 3은 본 발명의 일실시예에 따른 2차원 코드 판독 장치의 구성의 일예를 도시하는 블록도이다. 도 3에서, 참조 부호 10은, 메모리(12)와 CPU(13)를 갖는 제어부(11), 화상 정보(2차원 코드) 등을 표시하는 디스플레이부(14), 오디오 신호를 출력하는 스피커(15), 음성 신호를 입력하는 마이크로폰(16), 키 조작 정보를 입력하는 키 입력부(17), 화상 정보(2차원 코드)를 캡쳐하는 카메라(화상 촬상부; 18), 전자기파를 송수신하는 안테나(19), 및 원격 통신용 송수신을 제어하는 무선부(20)를 포함하는 2차원 코드 판독 장치를 의미한다. 2차원 코드 판독 장치(10)의 기능을 갖는 카메라를 구비한 휴대 전화(이하, 카메라를 장착한 무선 전화(10)라 함)의 내부 구성의 일예가 본 실시예에서 설명된다.
카메라(18)로부터 입력되는 화상 데이터(입력 화상; 12b)와 2차원 코드 판독 장치(10)의 기능을 수행하는 2차원 코드 판독 프로그램(12a)은 제어부(11)의 메모리(12)에 저장된다. 본 발명의 2차원 코드 판독 프로세스를 수행할 때, CPU(13)는 그 프로그램에 따라 카메라(18)로부터 입력되는 2차원 코드 화상(화상 데이터(12b)) 처리를 수행하기 위한 2차원 코드 판독 프로그램(12a)을 적절히 판독한다.
본 발명의 카메라 장착된 무선 전화(10)는 카메라(18)에 의해 촬상된 2차원 코드 화상 또는 판독 결과를 무선부(20)로부터 네트워크 등을 통해 다른 카메라가 내장된 무선 전화에 전송할 수 있고, 그 다른 카메라 내장 무선 전화로부터 네트워크 등을 통해 2차원 코드 화상 또는 판독 결과를 수신할 수 있다. 대안으로서, 2차원 코드 판독 프로그램(12a)을 서버(도시하지 않음) 등에 저장하여 2차원 코드 판독 프로세스가 서버 내에서 수행되어도 된다. 이 경우, 서버는 2차원 코드 화상 을 카메라 내장 무선 전화 또는 퍼스널 컴퓨터 등으로부터 네트워크를 통해 수신하고, 그 수신한 2차원 코드 화상에 대하여 2차원 코드 판독 처리를 수행한 후 판독 결과를 되돌려준다.
도 4는 본 발명의 다른 실시예에 따른 2차원 코드 판독 장치의 구성의 일예를 도시하는 블록도이다. 도 4에서, 참조 부호 30은, 메모리(32)와 CPU(33)를 갖는 제어부(31), 화상 정보(2차원 코드) 등을 표시하는 디스플레이부(34), 조작 정보를 입력하는 입력부(35), 및 화상 정보(2차원 코드)를 캡쳐하는 카메라(화상 촬상부; 36)를 포함하는 2차원 코드 판독 장치를 의미한다. 2차원 코드 판독 장치(30)의 기능을 갖는 카메라를 구비한 휴대 전화의 내부 구성의 일예가 본 실시예에서 설명된다.
2차원 코드 판독 장치(30)의 기능을 수행하는 2차원 코드 판독 프로그램(32a) 및 카메라(36)로부터 입력되는 화상 데이터(입력 화상; 32b)는 제어부(31)의 메모리(32)에 저장된다. 본 발명의 2차원 코드 판독 프로세스를 수행시, CPU(33)는 프로그램에 따라 카메라(36)로부터 입력되는 2차원 코드 화상 처리를 수행하는 2차원 코드 판독 프로그램을 적절히 판독한다.
본 발명의 2차원 코드 판독 장치의 동작 흐름의 일 예가 도 5의 흐름도에 도시되어 있다. 다음의 실시예 설명에 있어서, 2차원 코드로서 QR 코드가 사용되는 경우를 참조하여 본 발명을 설명한다. 그러나, 본 발명은 이러한 QR 코드에 한정되지 않는다. 본 발명은, 이진 데이터가 기록되며 입력 화상에서의 2차원 코드 위치를 결정하는 파인더 패턴과 그 입력 화상이 경사진 방향에서 촬상되어 왜곡되더라도 2차원 코드의 데이터 셀 위치를 정확하게 검출할 수 있게 하는 얼라인먼트 패턴을 포함하는 2차원 (즉, 수직 및 측면) 데이터 셀을 배열함으로써 2차원 코드가 다양한 정보 항목을 나타낸다면 임의의 경우에 적용가능하다.
상기한 바와 같이, QR 코드의 경우, 파인더 패턴은 2차원 코드(QR 코드)의 3개 코너에서 소정의 (복수 개의) 위치에 배치되고, 각 파인더 패턴은 특정 제1 패턴(블랙:화이트:블랙:화이트:블랙 = 1:1:3:1:1 비율의 7 x 7 셀 정사각형 패턴)을 포함한다. 얼라인먼트 패턴은 파인더 패턴이 배치되는 코너와 다른 소정의 위치(파인더 패턴이 배치되지 않은 코너로부터 안쪽으로 7셀 만큼 떨어져 있는 위치)에 배치되며, 특정 제2 패턴(블랙:화이트:블랙:화이트:블랙 = 1:1:1:1:1 비율의 5 x 5 셀 정사각형 패턴)을 포함한다.
2종류의 특정 위치 지정 패턴, 즉, 3개의 파인더 패턴 및 1개의 얼라인먼트 패턴을 포함하는 2차원 코드는, 소정의 규칙에 따라 m x m 측면 및 수직 2차원 어레이에 배치되는 데이터 셀 각각 상에 블랙 또는 화이트의 이진 데이터를 기록하도록 구성되어, 2차원 코드가 다양한 정보 항목을 표시할 수 있게 된다.
2종류의 특정 위치 지정 패턴에 더하여, 종래의 QR 코드는 상기한 바와 같이 각 데이터 셀의 위치를 유도하는 타이밍 패턴을 포함한다. 본 발명에서는, 데이터 셀의 위치를 결정하는 경우에라도 타이밍 패턴을 포함할 필요가 없다. 2차원 코드는 상기한 2종류의 특정 패턴만 포함하면 되는 것이다.
즉, 2차원 코드가 회전하거나 경사지더라도 3개의 파인더 패턴 및 1개의 얼 라인먼트 패턴을 이용함으로써 각 데이터 셀의 위치를 정확하게 검출할 수 있다. 검출된 셀 위치에서의 데이터 셀 상에 기록된 데이터값(이진 데이터)을 판독하여 이를 소정의 규칙에 따라 디코딩하기 위한 비트 어레이로 변환함으로써 2차원 코드에 기록된 정보(데이터 콘텐츠)를 결정할 수 있다.
도 5의 흐름도에 도시한 바와 같이, 화상으로서 2차원 코드를 기록하는 기록 시트는 2차원 판독 장치 상에 배치되어, 이미지 센서에 의해 2차원 코드를 판독한다.
이미지 센서에 의해 판독되는 입력 화상은, 이진 처리에 의해 화이트(밝은) 및 블랙(어두운) 이진 화상을 포함하는 입력 화상으로 변환된다. 변환된 이진 화상을 스캐닝함으로써, 블랙:화이트:블랙:화이트:블랙 = 1:1:3:1:1 인 비율의 특정 제1 패턴을 포함하는 파인더 패턴 위치를 이진 화상으로부터 검출한다(단계 S001). 파인더 패턴 위치를 검출함으로써 입력 화상에서의 2차원 코드 위치가 식별된다. 파인더 패턴 위치를 검출하는 동작을 이하 상세히 설명한다.
파인더 패턴 검출이 실패하면(단계 S002에서 "아니오"), 2차원 코드 판독 실패에 따라 처리가 완료되어, 인식될 수 없다(단계 S007).
2차원 코드의 3개 코너에 배치된 3개 파인더 패턴 모두를 검출한다면(단계 S002에서 "예"), 3개 파인더 패턴의 좌표를 결정한다. 하나의 셀의 치수를 나타내는 셀 크기는 파인더 패턴 크기를 나타내는 파인더 패턴 폭으로부터 결정된다. 2차원 코드 배향은 3개 파인더 패턴의 좌표로부터 결정된다.
이후, 얼라인먼트 패턴이 존재할 것으로 예상되는 예상 좌표(즉, 검색 참조 포인트)를 계산하고 예상 좌표(검색 참조 포인트)에 의해 특정화된 검색 범위 내의 셀을 검사(즉, 템플리트 매칭을 수행함)함으로써 얼라인먼트 패턴 위치를 검출한다(단계 S003). 2차원 코드가 (정사각형을 포함하는) 직사각형인지 여부를 결정할 수 있게 하는 얼라인먼트 패턴 좌표는 기울어진 형태로서 결정된다. 얼라인먼트 패턴 위치를 검출하는 동작을 이하에서 상세히 설명한다.
2차원 코드 버전을 결정한다(단계 S004). 즉, 2차원 코드의 셀의 치수를 나타내는 셀 크기는 파인더 패턴 크기를 나타내는 파인더 패턴 폭으로부터 계산되어, 2차원 코드 내의 셀 개수를 결정하는 버전 결정을 수행한다. 버전 결정의 동작을 이하에서 상세히 설명한다.
데이터 셀 절단을 수행한다(단계 S005). 2차원 코드를 입력 화상의 상대 좌표 위치로 변환하는 변환 계수는, 파인더 패턴의 3개 쌍 좌표 및 얼라인먼트 패턴의 좌표 및 결정된 버전을 포함하는 참조가 되는 4개 좌표로부터 유도되는 2차원 코드의 구성에 따라 결정된다. 각 데이터 셀의 중심 위치에 대응하는 입력 화상의 좌표는, 결정된 변환 계수가 적용되는 좌표 변환식에 의해 식별된다. 각 데이터 셀의 데이터값(이진값의 데이터)은, 각 데이터 셀을 절단하기 위한 식별된 좌표 위치의 입력 화상 밀도를 결정함으로써 결정된다. 즉, 각 셀 범위 내에 배치되는 블랙 및 화이트 화소의 수를 축적하는 종래의 기술을 이용하지 않는다. 각 데이터 셀의 데이터값, 즉, 각 비트값을 결정한다. 데이터 셀을 절단하는 동작을 이하에서 상세히 설명한다.
2차원 코드에서의 데이터 셀 배열을 따르는 비트 어레이(비트 배열)는 소정 의 규칙에 따라 디코딩된다(단계 S006). 비트 어레이에 대하여 에러 정정을 행하고, 에러 정정을 받는 비트 어레이, 즉 데이터 배열은 이 데이터 배열을 캐릭터 어레이 등으로 변환하는 소정의 규칙에 따라 디코딩된다.
캐릭터 어레이로의 변환, 즉, 디코딩 처리가 성공적으로 행해지면, 캐릭터 어레이 등을 확실히 얻게 되고(단계 S008에서 "예"), 2차원 코드 판독 처리를 완료한다. 즉, 2차원 코드 인식이 성공적이라는 것이다(단계 S009).
에러 정정에 의해 비트 에러가 정정될 수 없다면, 또는 데이터 셀 배열, 즉, 비트 어레이가 소정의 규칙에 따라 캐릭터 어레이 등으로 변환될 수 없고(단계 S008에서 "아니오"), 디코딩 결정이 실패하게 된다. 현재의 실패가 처음이라면(단계 S010에서 "아니오"), 2차원 코드를 구성하는 셀 수는 버전을 1씩 변경함으로써 변경된다. 예를 들어, 2차원 코드를 구성하는 셀 수는 버전을 1씩 증가시킴으로써 증가하고, 프로세스는 단계 S005로 복귀되어 데이터 셀 절단 및 디코딩 처리를 반복하게 된다.
즉, 단계 S004에서의 버전 결정 실패가 버전을 변경함으로써 정정되어, 그 버전은 준비된 2차원 코드의 상대 버전으로 정정될 수 있다.
디코딩시 제2 실패가 발생한 것으로 결정되면(단계 S010에서 "예"), 2차원 코드 판독이 실패하게 되며, 즉, 2차원 코드 인식을 실패하게 된다(단계 S012).
다음으로, 도 5의 단계 S001에서 파인더 패턴의 위치를 검출하는 동작을 상세히 설명한다. 파인더 패턴 위치 검출에 관련된 동작 흐름의 일예를 도 6의 흐름도로서 도시한다.
도 6에 도시한 바와 같이, 파인더 패턴의 후보 좌표의 우선 검출 및 평가값 계산을 수행한다(단계 S101). 즉, 이진값을 포함하는 입력 화상, 즉, 화이트 및 블랙 화소는 순차적으로 스캐닝되어, 화이트 및 블랙 화소의 런 랭스(run length)를 수평, 수직, 및 경사 방향의 3개 방향에서 결정한다. 블랙 및 화이트 화소의 결정된 런 랭스를 상기한 파인더 패턴(특정 제1 패턴)의 특징에 따라 평가한다. 파인더 패턴이 존재하는 것으로 가정되는 복수의 후보 파인더 패턴의 중심 좌표, 즉, 후보 중심 좌표, 및 각 후보 중심 좌표에서의 후보 파인더 패턴이 파인더 패턴 특징에 닮은 방식을 나타내는 평가값을 미리 준비된 평가 공식에 따라 계산하고 기록한다.
이 때, 폭, 즉, 각 후보 중심 좌표에서의 후보 파인더 패턴의 크기도 기록한다. 기록되는 후보 파인더 패턴의 폭 또는 크기는 수평, 수직, 경사 방향과 같은 3개 방향에서 평균화되는 것이지만, 본 발명은 이러한 폭에 제한되지 않는다. 예를 들어, 최소 폭을 기록하여도 되고, 또는 가장 근사하는 2개 폭의 평균 폭이어도 된다. 이러한 후보 중심 좌표 위치의 검출 및 평가값 계산을 이하에서 상세히 설명한다.
다음으로, 결정된 후보 중심 좌표 위치, 후보 파인더 패턴값 및 후보 파인더 패턴 폭이 분석된다. 마지막으로, 입력 화상에서의 3개 파인더 패턴 및 이들의 중심 좌표 위치가 각각 결정된다(단계 S102).
이 분석이 실패하여 3개의 파인더 패턴의 중심 좌표 위치가 결정되지 않으면(단계 S103에서 "아니오"), 파인더 패턴의 검출이 실패한 것으로서 처리가 종료된다(단계 S108).
이 분석이 성공적이어서 3개의 파인더 패턴의 중심 좌표 위치를 결정하게 되면, 3개의 파인더 패턴의 결정된 폭의 평균값이 계산되어 데이터 셀 치수가 파인더 패턴 폭의 평균값으로부터 각각 계산된다(단계 S104).
다음으로, 입력 화상에서의 2차원 코드의 배향을 3개의 파인더 패턴의 결정된 중심 좌표 위치로부터 결정한다(단계 S105). 여기에서, 3차원 코드의 배향은 2차원 코드, 예를 들어 QR 코드의 상측(즉, 파인더 패턴 F0 및 F1이 측상에 배치됨)이 도 8a, 8b, 8c 및 8d에 도시된 바와 같이 입력 화상에 위치되는 것을 나타낸다. 도 8a, 8b, 8c 및 8d는 2차원 코드의 배향과 파인더 패턴의 위치간의 관계를 나타내는 개략도이다. 도 8a에 도시된 바와 같이, 파인더 패턴 F1 및 F2가 참조 파인더 패턴 F0의 우측 및 하측에 위치하고 2 차원 코드의 상측은 입력 화상의 상측에 위치하는 경우에 "방향 O"으로 배향이 결정된다. 2차원 코드가 90, 180 및 270도로 시계방향으로 각회전하는 경우(즉 2차원 코드의 상측이 각각 입력 화상의 우측, 하측 및 좌측에 위치함), "방향 1"(도 8b), "방향 2"(도 8c) 및 "방향 3"(도 8d) 으로 동작이 결정된다.
또한, 3개의 파인더 패턴의 중심 좌표의 위치 관계가 사전 결정된 조건을 만족하는지 여부에 대한 결정이 이루어진다(단계 S106). 사전 결정된 조건을 만족하지 않는다면(단계 S106에서의 "아니오"), 파인더 패턴의 검출 실패로 처리가 종료된다(단계 S108). 즉, 도 5의 단계 S002에서 파인더 패턴의 검출이 실패하여 처리가 종료되는 단계 S007로 진행하는 것으로 결정된다.
한편, 위치 관계가 사전 결정된 조건을 만족한다면(단계 S106에서의 "예"), 파인더 패턴의 검출이 성공적이고 2차원 코드의 배향 결정이 또한 성공적이라면 처리가 종료되는(단계 S107) 것으로 결정된다.
도 6의 단계 S101에서 각 후보 파인더 패턴의 후보 중심 좌표 위치 및 구해진 값의 기록을 검출하기 위한 동작이 상세히 설명된다. 후보 파인더 패턴의 후보 중심 좌표 및 구해진 값의 기록을 검출하는 데 관계하는 동작 흐름의 예는 도 7의 흐름도에 나타낸다.
이미지 센서에 의해 블랙 및 화이트 화소로 판독된 입력 화상의 이진화를 도 7에 도시한 바와 같이 수행한다(단계 S201). 이진화의 임계값은, 예를 들어 입력 화상 전체를 스캐닝함으로써 얻어진 화소 값에서의 최대값과 최소값 사이의 중간값일 수 있다. 임계값으로 이런 중간값을 사용하는 기술은 작은 처리량을 요구하여 고속 처리에 적합하다.
다음으로, 수평 스캐닝이 이진 화상의 선두 지점으로부터 순차적으로 수행되어, 수평 스캐닝 라인내의 모든 블랙 화이트 화소의 런 랭스가 기록된다(단계 S202). 즉, 수평 스캐닝 방향으로 런(run)하는 블랙 화이트의 개시 지점이 기록되고, 블랙 런의 개시 지점과 다음 화이트 런 사이의 길이는 블랙 런 랭스로 계산된다. 마찬가지로, 화이트 런의 개시 지점과 다음 블랙 런 사이의 길이는 화이트 런 랭스로 계산된다.
파인더 패턴의 후보를 검출하기 위해, 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비가 파인더 패턴에 특정화된 제1 패턴의 비인 1:1:3:1:1과 유사한지 여부는 사전 결정된 임계값에 의해 이루어진다(단계 S203). 1:1:3:1:1의 비와 유사한 경우(단계 S204에서의 "예"), 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비와 1:1:3:1:1의 비 사이의 에러에 해당하는 값을 결정한다(단계 S205). 모든 런의 비를 구하여 계산하는 방법이 이하에서 설명된다.
또한, 검출된 후보 파인더 패턴 런의 좌표의 중심은 수평축(즉, x 축)의 원점으로 기록되고, 후보 파인더 패턴 런의 길이는 수평 폭 wh로 기록된다. 즉, 도 9에 도시된 바와 같이, 수평 스캐닝 방향으로 검출된 후보 파인더 패턴의 대향하는 종단에서 블랙 화소의 폭이 wh로 기록되고, 후보 파인더 패턴의 대향하는 종단에서 블랙 화소 사이의 중심 위치, 즉 후보 중심 좌표 위치는 수평축의 원점으로 기록된다. 도 9는 검출된 후보 파인더 패턴의 후보 중심 좌표 위치 및 폭을 설명하는 개략도이다.
연속해서, 수직 방향으로의 후보 파인더 패턴의 런은 수평축의 원점, 즉 수평으로 검출된 후보 파인더 패턴 런의 중심 좌표 위치로부터 수직 방향으로 스캐닝함으로써 체크된다(단계 S206).
다음으로, 단계 S202 및 S203과 마찬가지로, 수직 스캐닝 라인을 따라 화이트 블랙 화소의 런 랭스가 검출된다. 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비가 파인더 패턴에 특정화된 제1 패턴의 비인 1:1:3:1:1과 유사한지 여부는 사전 결정된 임계값을 사용함으로써 이루어진다(단계 S207). 1:1:3:1:1의 비와 유사한 경우(단계 S208에서의 "예"), 단계 S205와 마찬가지로 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비와 1:1:3:1:1의 비 사이의 에러에 해당하는 값을 결정한다(단계 S209).
도 9에 도시된 바와 같이, 검출된 후보 파인더 패턴 런의 좌표 위치의 중심은 세로좌표(즉, y좌표)의 원점으로 기록되며 후보 파인더 패턴의 런 랭스는 수직 폭 Wv로 기록된다.
연속해서, 후보 파인더 패턴의 런은 가로축의 원점에서 세로축의 원점, 즉 수평 스캐닝 라인에 대해 45°경사진 방향으로 세로축과 가로축 사이의 교점(수평 및 수직 방향으로 검출된 런 중심)으로부터의 스캐닝을 수행함으로써 체크된다(단계 S210).
다음으로, 단계 S202 및 S203과 마찬가지로, 경사 스캐닝 라인을 따라 화이트 블랙 화소의 런 랭스가 검출되어 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비가 파인더 패턴에 특정화된 제1 패턴의 비인 1:1:3:1:1과 근사한지 여부는 사전 결정된 임계값을 사용함으로써 이루어진다(단계 S211). 1:1:3:1:1의 비와 유사한 경우(단계 S212에서의 "예"), 단계 S205와 마찬가지로 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비와 1:1:3:1:1의 비 사이의 에러에 해당하는 값을 결정한다(단계 S213).
도 9에 도시된 바와 같이, 검출된 후보 파인더 패턴 런의 좌표 위치 중심은 경사좌표(즉, x, y좌표)의 원점으로 기록되며 후보 파인더 패턴의 런 랭스는 경사 폭 Wo로 기록된다.
수평, 수직 및 경사 방향에서의 3개 조건중 하나라도 만족되지 않는다면, 즉 비가 사전 결정된 임계값을 초과하여 단계 S204, S208 또는 S212 중의 임의의 단계에서 1:1:3:1:1의 비에 근사하지 않은 것으로 평가되면(단계 S204에서의 "아니오", 단계 S208에서의 "아니오" 또는 단계 S212에서의 "아니오"), 후보 파인더 패턴의 좌표 중심은, 어떤 파인더 패턴도 존재하지 않는, 좌표 중심이 아니라고 결정된다. 관계된 후보 파인더 패턴은 파인더 패턴의 후보로부터 제거되고 다음 수평축 위치에서 파인더 패턴의 블랙 화이트 런에 관련된 평가를 수행하기 위한 단계 S216으로 진행한다.
수평, 수직 및 경사 방향에서의 3개의 조건 모두가 만족된다면, 단계 S215까지 진행한 후, 수평, 수직 및 경사 방향에서의 3개의 조건을 만족하는 후보 파인더 패턴의 좌표 중심은 후보 파인더 패턴의 후보 중심 좌표로 기록된다. 이때, 관심있는 후보 파인더 패턴의 수평폭 Wh, 수직폭 Wv 및 경사폭 Wo의 평균은 후보 파인더 패턴의 폭으로 기록된다(단계 S214). 본 발명은 상기한 후보 파인더 패턴의 폭의 설정에 제한되지 않는다.
또한, 수평, 수직 및 경사 방향에서의 런 랭스 값(검출된 패턴과 파인더 패턴에 특정된 제1 패턴과의 에러값, 즉 검출 패턴과 파인더 패턴에 특정된 제1 패턴과의 근사 정도를 나타내는 값)의 합은 후보 파인더 패턴의 좌표에서의 평가값으로서 기록된다(단계 S215).
연속하여, 단계 S202에서 결정된 수평 스캔 라인을 따라 모든 블랙 화이트 런의 파인더 패턴의 평가가 완료되지 않았다면(단계 S216에서의 "아니오"), 단계 S203으로 복귀되어, 평가되지 않고 남아있는 수평 런을 평가하도록 상기한 평가와 유사한 평가를 반복한다. 스캐닝 라인을 따라 모든 블랙 화이트 런의 파인더 패턴 평가가 완료되었다면(단계 S216에서의 "예"), 또는 모든 수평 스캐닝 라인을 따른 스캐닝이 아직 이루어지지 않았다면(단계 S217에서의 "아니오"), 다음 수평 스캐닝 라인의 스캐닝을 위해 단계 S202로 복귀되어, 다음 스캐닝 라인 상의 블랙 화이트 런의 파인더 패턴 평가가 상술한 바와 같이 반복된다.
모든 수평 스캐닝 라인의 스캐닝이 이루어졌다면(단계 S217에서의 "예"), 처리는 종료된다.
도 7에서의 단계 S204에 도시된 바와 같이, 입력 화상의 스캐닝 결과에 기초하여 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비와 파인더 패턴에 특정화된 제1 패턴의 비인 1:1:3:1:1 사이의 비교값을 구하는 방법 및 이들 간의 에러에 해당하는 계산값(이들 간의 근사 정도를 대표함)을 구하는 방법인 단계 S205(단계 S209 및 S213)가 설명된다.
우선, 파인더 패턴의 후보로 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 길이는 R0, R1, R2, R3 및 R4로 나타낸다.
파인더 패턴의 후보가 실제 타겟 파인더 패턴이라면, 런 랭스의 합은 7개의 셀이 되어야만 한다.
따라서, 하나의 셀에 해당하는 런 랭스 a 및 b는 하기의 2개의 수학식을 사 용함으로써 계산된 셀 각각에 의해 계산된다.
Figure 112003025934011-pat00001
Figure 112003025934011-pat00002
연속하여, 에러 d는 하기의 수학식 (3)을 이용하여 계산된다. 즉, 후보 파인더 스캐닝 패턴과 파인더 패턴에 특정된 제1 패턴 사이의 에러 d는 수학식으로 표현된다. 반대로, 에러 d가 작아질수록 후보 파인더 패턴과 제1 패턴 사이의 근사 정도는 점점 커진다.
Figure 112003025934011-pat00003
에러 d가 수학식 (3)을 사용하여 계산되는 경우에 하기의 수학식 (4)로 표현된 평가식이 성립된다면, 계산된 블랙 런:화이트 런:블랙 런:화이트 런:블랙 런의 비가 파인더 패턴에 특정된 제1 패턴의 비인 1:1:3:1:1에 근사하는 것을 고려하여 파인더 패턴의 후보 평가는 통과된다.
Figure 112003025934011-pat00004
본 명세서에서 사용되는 용어 "Thresh"는, 후보 파인더 패턴이 파인더 패턴에 특정된 제1 패턴에 근사하는지 여부를 식별하기 위한 임계값이다. 에러 d가 Thresh 값을 초과한다면, 관련된 후보 파인더 패턴이 파인더 패턴에 특정된 제1 패턴과 상이하다고 결정하여, 그 파인더 패턴의 후보를 제외한다. Thresh의 값은 2차원 코드의 타입 및 어플리케이션 및/또는 입력 화상의 품질에 따라 사용자에 의해 원하는 값으로 사전 설정된 상수일 수 있다.
파인더 패턴의 후보로서 평가가 통과된다면, 근사 정도를 나타내는 에러에 해당하는 평가값 e은 하기의 수학식 (5)를 사용하여 계산되어 기록된다.
Figure 112003025934011-pat00005
더 큰 평가값 e는 후보 파인더 패턴이 파인더 패턴에 더 근사적이라는 것을 의미한다.
평가 수학식 (1) 내지 (5)는 단지 본 발명의 예일 뿐이다. 본 발명은 이들 수학식에 제한되지 않는다. 후보 파인더 패턴과 파인더 패턴에 특정된 제1 패턴 사이의 에러 또는 근사 정도를 평가하는 것이 가능하다면, 2차원 코드의 형태와 어플리케이션 및/또는 입력 화상의 품질에 기초하여 미리 결정된 임의의 원하는 평가식이 사용될 수 있다.
런 랭스 R0, R1, R2, R3 및 R4의 개별적인 에러 정도의 평가는 상기 수학식 (1) 내지 (5)에서 생략되었지만, 런 랭스 R0, R1, R2, R3 및 R4의 개별적인 에러 정도를 평가하는 평가식은 더욱 정확한 평가를 요구하는 어플리케이션 환경에서 사용될 수 있다. 또한 후보 파인더 패턴의 폭과 파인더 패턴의 폭으로 사전 결정된 폭 사이의 차가 사전 결정된 공차 내인지를 평가한다. 사전 결정된 공차를 초과하는 것으로 평가되면, 관련된 후보 파인더 패턴은 파인더 패턴에 특정된 크기와는 다른 크기를 가지므로 후보 파인더 패턴으로부터 제외될 수 있다. 임계값 Thresh와 마찬가지로, 본 명세서에서 사용된 용어 "공차"는 2차원 코드의 타입과 어플리케이션 및/또는 입력 화상의 품질에 따라 사용자에 의해 임의의 값으로 미리 결정될 수 있는 상수이다.
도 6에서 도시된 파인더 패턴의 좌표를 결정하기 위한 처리가 설명된다. 즉, 입력 화상에서 3개의 파인더 패턴의 좌표 중심이 설명된다.
후보 파인더 패턴의 좌표 중심, 입력 이진 화상에서 후보 파인더 패턴인 후보 파인더 패턴의 평가값 및 그 폭이, 예를 들어 도 10에 도시된 평가값 테이블에 기록된다. 도 10은 도 6에서의 단계 S101에서 검출된 파인더 패턴 중의 후보, 즉 후보 파인더 패턴이 기록된 평가값 테이블의 예를 보여주는 구성도이다.
도 10에 도시된 바와 같이, 평가값 테이블에 기록된 후보 파인더 패턴 중의 동일한 중심 좌표 위치를 갖는 파인더 패턴의 후보 정보가 통합되어 유사한 중심 좌표 위치를 갖는 후보 정보가 통합된다.
파인더 패턴의 후보 간의 중심 좌표 위치에서 근사를 결정하기 위한 근사 결정 조건의 예시적인 조건은 하기와 같다.
즉, 후보 i가 후보 j에 근사하고, 파인더 패턴의 후보 i의 좌표는 (xi, yi)로 표현되고, 그 폭은 wi로, 후보 j의 좌표는 (xj, yj)로 되고 그 폭은 wj 로 표현되고, 하기의 2개의 조건을 만족한다.
조건 1: 폭 wi 과 wj 사이의 차는 2개의 폭 wi 과 wj의 평균의 1/4 보다 더 작다. 즉, 하기의 수학식 (6)이 성립된다.
Figure 112003025934011-pat00006
조건 2: 폭 wi 과 wj중의 더 큰 것이 w로 표현되면, 하기의 수학식 (7) 및 (8)이 성립된다.
Figure 112003025934011-pat00007
Figure 112003025934011-pat00008
여기서, 상술한 바와 같이, 폭 wi 과 wj는 각각 수평, 수직 및 경사 방향의 3 방향으로 계산된 후보 i 및 j의 폭의 평균값이다.
도 12를 참조하여 근사 결정 조건이 설명된다. 도 12는 파인더 패턴 후보의 중심 좌표 위치가 서로 근사하는 예시적인 조건을 보여주는 개략도이다. 상술한 근사 결정 조건의 수학식 (7) 및 (8)은, 2개의 파인더 패턴 후보의 중심좌표가 도 12에 도시된 바와 같이 다른 하나의 파인더 패턴의 중심부의 패턴을 나타내는 3 ×3셀의 블랙 정사각형내에 위치한다는 사실과 같다는 것을 의미한다. 크기를 평가하는 수학식 (6)은, 파인더 패턴 후보의 폭은 후보 파인더 패턴이 9/8 인수보다 작은 거의 동일한 크기, 즉 12%를 갖는 수학식 (7) 및 (8)에 의해 한정되는 근사 결정 조건을 만족하는 것을 나타낸다. 이는 후보 파인더 패턴이 동일한 후보 파인더 패턴이 검출될 때 통합되도록 한다. 반대로, 파인더 패턴의 크기가 수학식 (7) 및 (8)에 도시된 근사 결정 조건을 만족하는 경우라도 아주 크게 상이하다면, 상이한 파인더 패턴으로 통합되는 파인더 패턴의 후보로부터 후보 파인더 패턴이 생략되는 것을 나타낸다.
근사 결정 조건, 즉 수학식 (7) 및 (8)을 만족하는 파인더 패턴의 후보는 파인더 패턴의 하나의 후보로 통합된다. 이런 통합이 유지되는 경우, 중심 좌표 위치의 평균값 및 통합된 파인더 패턴의 좌표 폭이 사용되고 평가값의 합이 사용된다.
근사 결정 조건을 만족하는 통합된 파인더 패턴의 후보가 도 10에 도시된 바와 같은 평가값 테이블 상에 기록되고, 즉 수학식 (6), (7) 및 (8)이 도 11에 도시된 통합 결과를 얻게 된다. 도 11은 도 10에 도시된 평가값 테이블 상에 기록된 파인더 패턴의 후보에 대한 통합 결과의 평가값 테이블의 예를 나타내는 구성도이다.
도 11에 도시된 바와 같이, "0" 및 "1"로 나타낸 축은 통합되고 "0"으로 나타낸 축은 새롭게 기록된다. 중심 좌표 위치의 평균값 및 이들의 폭은 사전 설정되고 평가값의 합도 사전 설정된다. "2" 및 "3"로 나타낸 좌표는 통합되고 "2"로 나타낸 좌표로 새롭게 기록된다. 중심 좌표 위치의 평균값 및 이들의 폭은 사전 설정되고 평가값의 합도 사전 설정된다. "5" 및 "6"로 나타낸 축은 통합되고 "5" 로 나타낸 축으로 새롭게 기록된다. 중심 좌표 위치의 평균값 및 이들의 폭은 사전 설정되고 평가값의 합도 사전 설정된다. "7" 및 "8"로 나타낸 축은 통합되고 "7"로 나타낸 축으로 새롭게 기록된다. 중심 좌표 위치의 평균값 및 이들의 폭은 사전 설정되고 평가값의 합도 사전 설정된다.
후보 "4"는 조건 1을 만족하지 않기 때문에, 즉 후보 "2" 및 "3"과 같이 동일한 중심 좌표 위치를 갖더라도, 수학식 (6)이 근사 결정 조건인 파인더 패턴의 좌표 크기를 평가하므로, 좌표 2 및 3 어떤 것도 통합되지 않고, 도 11의 평가값 상에 남겨진다.
상술한 바와 같이, 재배치를 위해 통합된 최종 평가값은 순차적으로 검색되어 근사 정도를 나타내는 제일 위의 3개의 평가값(2차원 코드의 파인더 패턴을 위해 필요한 개수에 해당)을 갖는 3개의 좌표의 파인더 패턴이 선택되고 3개의 파인더 패턴으로 결정된다. 예를 들어 도 11에 도시된 평가값 테이블의 경우에서, 큰 평가값을 갖는 후보 "0", "5" 및 "7"로 기록된 파인더 패턴의 후보는 2차원 코드의 3개의 파인더 패턴으로 결정되어, 3 좌표 (52, 215), (172.5, 88) 및 (175, 212)은 파인더 패턴의 중심 좌표 위치로 결정된다.
3개 또는 그 이상의 파인더 패턴(2차원 코드의 파인더 패턴을 위해 필요한 개수에 해당)이, 통합되고 재배치된 평가값 테이블을 제공하지 못한다면, 파인더 패턴의 검출은 실패한다.
수학식 (6)을 사용하여 평가된 파인더 패턴의 후보 크기의 근사 정도를 상술하였지만, 본 발명은 여기에 제한되지 않는다. 2차원 코드의 타입과 어플리케이션 및/또는 입력 화상의 품질에 따라 원하는 임의의 조건으로 사용자에 의해 사전 설정되도록 더 정확한 근사 정도 또는 반대로 완화시키는 것이 가능하다.
수학식 (7) 및 (8)을 사용하여 평가된 파인더 패턴 후보의 중심 좌표 위치의 근사 정도를 상술하였지만, 본 발명은 여기에 제한되지 않는다. 2차원 코드의 타입과 어플리케이션 및/또는 입력 화상의 품질에 따라 원하는 임의의 조건으로 사용자에 의해 사전 설정되는 것이 가능하다. 수학식 (7) 및 (8)의 조건이 완화되는 경우에 패턴이 서로 중첩되는 위치에서 파인더 패턴의 후보를 검출한다면, 파인더 패턴의 후보는 통합되는 것으로 간주할 수 있다.
도 6의 단계 S104에서 셀 크기를 결정하기 위한 처리를 설명한다.
3개의 파인더 패턴이 상술한 처리에 의해 결정된 경우에, 2 차원 코드를 구성하는 셀 치수를 한정하는 셀 크기는 3개의 결정된 파인더 패턴의 폭에 기초하여 결정된다. 예를 들어, 3개의 파인더 패턴의 평균 폭은 계산된 셀 크기로부터의 파인더 패턴의 폭으로 결정된다. 파인더 패턴이 7개 셀의 폭을 갖도록 구성되기 때문에, 2차원 코드로 구성된 셀 크기는 셀의 개수, 즉 7로 나누어서 계산되고, 파인더 패턴의 폭은 각 파인더 패턴의 폭의 평균을 구함으로써 결정된다.
예를 들어, 도 11에 도시된 평가값 테이블의 경우에, 파인더 패턴의 폭은 다음과 같이 각 파인더 패턴의 폭의 평균으로 나타낸다.
(34+31.5+32)/3=32.5
셀 크기는 32.5/7=4.6으로 계산된다.
3개의 파인더 패턴 폭의 평균에 기초하여 계산된 셀 크기를 설명하였지만, 본 발명은 이 경우에만 한정되지 않는다. 예를 들어, 2차원 코드의 타입 및 어플리케이션 모드에 따라 왜곡된 2차원 코드에 엄격히 대처하기 위하여, 각각의 3개의 파인더에 대해 현저하게 서로 다른 폭이 검출되면, 각 파인더 패턴의 주변 셀과는 상이한 셀 크기가 계산되어 인가될 수 있다.
도 6의 단계 S105에서의 2차원 코드의 배향을 결정하는 처리가 상세히 설명된다.
참조 파인더 패턴 F0(즉, 직사각형(정사각형을 포함)의 2차원 코드의 3개의 코너에 배치된 3개의 파인더 패턴의 중심 라인과 연결함으로써 형성된 우측 삼각의 우측 각에 있는 파인더 패턴(도 8a, 8b, 8c 및 8d 참조))이 설명된다.
상술한 처리에 따라 결정된 3개의 파인더 패턴의 중심 좌표 위치에서 정점을 갖는 삼각형이 고려된다.
연속하여, 삼각을 형성하는 각 변의 길이 또는 사각형의 각 변의 길이가 결정되어 최대 길이를 갖는 변이 결정된다. 최대 길이를 갖는 각 변 상에 포함되지 않는 정점은 참조 파인더 패턴 F0의 중심 좌표로 이루어진다. 2차원 코드, 즉 파인더 패턴이 왜곡된 방식으로 입력된 화상과 유사한 입력 화상에서 직사각형(정사각형을 포함)으로 표시되지 않는다 하더라도, 이런 처리에 따라 참조 파인더 패턴 F0를 결정함으로써 참조 파인더 패턴 F0의 중심 좌표가 결정될 수 있다.
예를 들어, 도 11에 도시된 평가값 테이블의 경우에서, 좌표 "7"의 파인더 패턴은 참조 파인더 패턴과 관련된다.
좌표 (xi, yi)와 좌표 (xj, yj)가 알려진 경우에 좌표 (xi , yi)와 좌표 (xj, yj)를 연결하는 라인의 길이를 "1"로 나타낸다면, 일반적으로 하기의 관계가 성립한다. 따라서, 상술한 삼각형의 각 변의 길이 또는 사각형의 각 변의 길이가 3개의 파인더 패턴의 중심 좌표 사이의 차의 제곱을 더함으로써 결정될 수 있다.
Figure 112003025934011-pat00009
여기에서는, 참조 파인더 패턴 F0를 제외한 2개의 파인더 패턴의 위치 관계를 결정하는 처리가 설명된다. 참조 파인더 패턴 F0를 제외한 파인더 패턴 F1 및 F2의 위치 관계는 도 8a, 8b, 8c 및 8d에 도시된 바와 같이 한정된다.
도 13에 도시된 바와 같이 참조 파인더 패턴 F0가 중심을 중심으로 4개의 영역으로 분할되는 경우에 다른 두개의 파인더 패턴 F1 및 F2의 중심 영역 어디에 속하는 지를 결정하는 처리가 설명된다. 도 13은 첫번째 내지 네번째 사분면이 각각 0 내지 3으로 표현되고 시계 방향으로 45°회전된 참조 파인더 패턴의 중심에서 원점을 갖는 가로축 및 세로축에서 위치된 예를 도시한 개략적인 영역 분할도이다.
참조 파인더 패턴 F0의 좌표가 (xF0, yF0)로 표현되고 체크될 파인더 패턴 F1 및 F2의 좌표가 (x, y)로 표현되는 경우에, 체크될 파인더 패턴 F1 및 F2의 영역은 하기의 조건을 기초로 결정된다.
영역 0에 속할시의 조건
Figure 112003025934011-pat00010
영역 1에 속할시의 조건
Figure 112003025934011-pat00011
영역 2에 속할시의 조건
Figure 112003025934011-pat00012
영역 3에 속할시의 조건
Figure 112003025934011-pat00013
참조 파인더 패턴 F0를 제외한 2개의 파인더 패턴 F1 및 F2의 중심좌표에 대한 영역은 만족되는 수학식 (10) 내지 (13) 중의 어느 하나에 기초하여 결정될 수 있다. 즉, 2차원 코드의 배향(즉, 2차원 코드가 회전되면서 입력되는지 여부를 나타내는 2차원 코드의 배향)은 상술한 검출된 3개의 파인더 패턴 F0, F1 및 F2의 중심의 좌표 위치에 기초하여 결정될 수 있다.
도 14는 도 8a, 8b, 8c 및 8d에 도시된 2차원 코드의 방향(배향)과 도 13에 도시된 4개의 영역의 조합 사이의 관계를 도시한 관계도이다. 즉, 도 14에 도시된 테이블에 따라 참조 파인더 패턴 F0를 제외한 2개의 파인더 패턴 F1 및 F2의 중심 의 좌표 위치에 속하는 2개의 영역의 조합에 기초하여 2차원 코드의 방향이 결정된다. 어떤 방향도 정의되지 않은(즉, "-"로 표시된) 조건 박스와 관계되고 2개의 파인더 패턴 F1 및 F2의 중심의 좌표 위치에 속하는 영역의 조합이 무효 조합으로 결정되어, 2차원 코드의 방향 결정은 실패한다.
예를 들어, 도 8a에 도시된 바와 같이, 2차원 코드의 방향 0인 경우에, 참조 패턴 F0의 우측상에(즉, 도 13의 영역 0) 있는 파인더 패턴이 F1이고, 참조 패턴 F0의 아래에(즉, 도 13의 영역 1) 있는 파인더 패턴이 F2이다. 2개의 파인더 패턴 F1 및 F2가 영역 0 및 1의 조합인 영역에 있는 경우에, 2차원 코드의 방향은 도 8a에 도시된 방향 0으로 결정될 수 있다. 그러나, 도 14의 박스에 "-"로 표시한 영역 0 및 2에 위치된 파인더 패턴 F1 및 F2의 조합이 검출된다면, 2차원 코드의 방향이 식별될 수 없어서 2차원 코드의 판독은 종료되는 것으로 결정한다.
2차원 코드의 방향과 파인더 패턴 F1 및 F2의 중심 좌표에서의 영역 사이의 관계가 도 15에 도시되어 있다. 도 15는 도 8a, 8b, 8c 및 8d에 도시된 2차원 코드의 방향과 파인더 패턴 F1 및 F2의 중심의 좌표 위치가 있는 영역 사이의 관계를 나타내는 관계도이다. 도 15에 도시된 바와 같이, 2차원 코드의 방향 0인 경우에, 파인더 패턴 F1 및 F2의 중심의 좌표 위치는 각각 영역 0 및 1에 위치한다.
본 실시예에서, 2차원 코드가 경사지지 않은 경우에 2 차원 코드의 방향 결 정이 파인더 패턴 F1 및 F2의 중심 좌표 위치가 있는 영역 및 2차원 코드의 방향의 관계에 기초하여 이루어진다. 상술한 바와 같이, 본 발명은 이 경우로만 제한되지 않는다. 유사한 방법을 사용함으로써, 2차원 코드가 경사진 경우에도, 2차원 코드 의 방향이 파인더 패턴 F1, F2 및 F3의 중심 좌표 위치에 기초하여 회전되는지 여부가 결정될 수 있다.
여기에서, 도 5의 단계 S003에서 얼라인먼트 패턴의 위치를 검출하는 처리가 상세히 설명된다.
얼라인먼트 패턴의 위치 검출을 수행하기 위한 처리 흐름의 예가 도 16의 흐름도에서 도시된다.
2차원 코드의 회전각이 검출된다(단계 S301). 상술한 처리에 의해 결정된 파인더 패턴 F1, F2 및 F3의 중심 좌표 위치 F0C, F1C 및 F2C를 사용하여 2차원 코드가 얼마나 회전하는 지를 검출한다.
회전각은 2차원 코드의 방향(배향)과 영역 사이의 관계가 도 15에 도시된 바와 같이 결정된 경우에, 도 17에 도시된 바와 같이, 파인더 패턴 F1이 2차원 코드의 참조 파인더 패턴 F0를 중심으로 시계 방향으로 수평 또는 수직 방향으로 회전하는 회전각 R로 정의된다. 도 17에 도시된 예에서, 2차원 코드의 파인더 패턴 F1의 중심 좌표 위치가 방향 0에서 도 15의 영역 0에 위치된 경우에 회전각 R이 0°이면, 참조 패턴 F0 및 파인더 패턴 F1이 수평 위치에 위치되어서, 2차원 코드는 도 8a에 도시된 바와 같이 방향 0처럼 각회전하지 않는다.
도 17은 수평 또는 수직 방향으로부터 2차원 코드의 회전각의 예를 도시하는 개략도이다. 도 15에 도시된 방향 0인 경우에 2차원 코드의 파인더 패턴 F1의 중심 좌표 위치는 영역 0에 위치된 것으로 나타내었다. 이 경우에, 회전각 R은 파인더 패턴 F1의 중심 좌표 위치가 수평으로 파인더 패턴 F0에 대해 좌측 방향으로 회전 하는 각이다. 2차원 코드의 파인더 패턴 F1의 중심 좌표 위치가 도 15의 영역 1, 2또는 3에 있다면, 파인더 패턴 F1의 중심 좌표 위치는 수직 아래 방향, 수평 우측 방향 또는 수직 위 방향으로 회전각 R만큼 회전하는 것을 나타낸다.
회전각 R에 대해, 시계 방향 및 반시계 방향 회전은 각각 플러스 및 마이너스 값으로 표현된다. 5도 해상도에서의 2차원 코드의 회전각 R의 검출은 ±45°범위에서 수행된다(즉, 2차원 코드의 방향 0, 1, 2 및 3에 각각 해당하는 도 13의 영역 0, 1, 2 및 3의 범위).
해상도 5°를 갖는 회전각 Ri 라디안(라디안=360°×(Ri/2π))에 대한 10tanR1을 갖는 예비적인 테이블이 있고, 여기에서 Ri=(π/36)×i(i=0, 1, 2..., 9)이다.
2차원 코드의 입력 화상에서 검출된 파인더 패턴 F1, F2 및 F3의 중심 좌표 위치 F0C, F1C, F2C가 각각 (xF0, yF0), (xF1, yF1) 및 (xF2 , yF2)로 표현된다면, 2차원 코드가 경사지지 않는 경우에 tan R(2차원 코드의 회전각)은 하기와 같이 표현된다.
방향 0인 경우
Figure 112003025934011-pat00014
방향 1인 경우
Figure 112003025934011-pat00015
방향 2인 경우
Figure 112003025934011-pat00016
방향 3인 경우
Figure 112003025934011-pat00017
tan R은 파인더 패턴 F1, F2 및 F3의 중심 좌표 위치 F0C, F1C, F2C 및 2차원 코드의 방향으로부터 수학식 (14) 내지 (17) 중 임의의 것을 사용함으로써 결정될 수 있다. 회전각 R은 결정된 tan R과 사전 결정된 테이블 상의 tan Ri의 값을 비교함으로써 결정될 수 있다.
연속하여, 도 16의 흐름도와 같이 검색 참조 포인트는 조사된 2차원 코드의 경사에 해당하는 얼라인먼트 패턴을 검색하는 검색 범위 상에서 결정된다.
3개의 파인더 패턴 F1, F2 및 F3의 중심은 도 18에 도시된 바와 같이 F0C, F1C 및 F2C로 각각 표현된다. 2차원 코드의 정점은 A, B 및 C로 각각 표현된다. 3개의 파인더 패턴 F1, F2 및 F3는 3개의 정점 A, B 및 C에 각각 배치된다. 도 18은 2차원 코드에서 얼라인먼트 패턴을 검색하는 검색 참조 포인트의 위치의 예를 도시하는 개략도이다.
얼라인먼트 패턴 P을 검색하는 검색 참조 포인트는 도 18의 H로 표현된다. 검색 참조 포인트 H는 파인더 패턴 F1의 중심 F1C를 통과하고 변 BD에 평행한 라인 S1과 파인더 패턴 F2의 중심 F2C를 통과하고 변 CD에 평행한 라인 S2이 만나는 교점이다.
검색 참조 포인트 H를 결정하기 위하여, 변 BD, 즉 라인 BD의 경사 및 변 CD, 즉 라인 CD의 경사를 결정할 필요가 있다. 라인 BD 및 CD의 경사는 라인 BD 및 CD와 접촉하도록 배치된 파인더 패턴의 에지를 추적함으로써 계산될 수 있다. 도 19a 및 19b는 파인더 패턴의 에지 추적의 예를 도시하는 개략도이다.
도 19a 및 19b에 도시된 바와 같이, 라인 BD의 일부를 형성하면서 2차원 코드의 하나의 변인 라인 BD와 접촉하는 파인더 패턴 C1의 외부 윤곽선 상의 화소 우치를 검출하기 위하여, 파인더 패턴 F1C의 대향 종단에서의 지점 a 및 b는 수직 방향으로 파인더 패턴 F1의 중심 F1으로부터 스캐닝을 수행함으로써 결정된다. 지점 a는 스캐닝이 파인더 패턴 F1의 중심 F1으로부터 수직 위쪽 방향으로 수행되는 경우 연속적인 블랙 화소를 따른 제2 런의 최종 지점이고, 지점 b는 수직 아래쪽 방향으로 연속적인 블랙 화소를 따른 제2 런의 최종 지점이다.
연속적으로, 스캐닝은 수직 라인인 세그먼트 라인 ab 상의 각 지점으로부터 수평한 우측 방향으로 연속적으로 수행된다. 파인더 패턴 F1의 우측 종단에 위치하고 연속적인 블랙 화소의 런이 종료되는 대향하는 상부 종단과 하부 종단에서의 블랙 화소의 지점, 및 파인더 패턴 F1의 우측 종단에 위치하고 연속적인 블랙 화소의 런이 종료되는 최우측 종단에서의 블랙 화소의 지점은, 세그먼트 라인 ab 상의 각 지점에서 추적된다.
이러한 에지 추적에 의해, 지점 a에 대응하는 상부 종단에서의 블랙 화소의 추적 종료 지점 c 및 지점 b에 대응하는 하부 종단에서의 블랙 화소의 추적 종료 지점 e이 기록을 위해 검출될 수 있다. 연속 블랙 화소에 대한 런이 종료되며 세그먼트 라인 ab 상의 각 점에서 스캐닝을 수행할 때 파인더 패턴 F1의 우측 종단에 위치한, 최우측 종단인 추적 최종점 d의 좌표점이 기록된다.
2차원 코드가 시계 방향, 즉 플러스 방향으로 회전한다면, 세그먼트 라인 de의 경사는 라인 BD의 경사가 된다. 반시계 방향, 즉 마이너스 방향으로 회전한다면, 세그먼트 라인 cd의 경사는 라인 BD의 경사가 된다.
도 19a 및 19b는 2차원 코드가 시계 방향, 즉 플러스 방향 및 반시계 방향, 즉 마이너스 방향으로 회전하는 경우를 각각 도시한다. 반시계 방향, 즉 마이너스 방향으로 회전하면, 도 19b에 도시된 바와 같이, 추적 개시 지점 b는 트래킹 종료 지점 e와 매치된다.
2차원 코드가 시계 방향, 즉 플러스 방향으로 회전하면, 파인더 패턴 F1의 외부 윤곽선에 의해 형성되며 그 일부인 라인 BD의 경사는 각각 추적 개시 및 종료 지점 d 및 e의 좌표 지점에 의해 제한되는 파인더 패턴 F1의 외부 윤곽선의 경사로부터 결정될 수 있다. 한편, 2차원 코드가 반시계 방향, 즉 마이너스 방향으로 회전하면, 파인더 패턴 F1의 외부 윤곽선에 의해 형성되며 그 일부인 라인 BD의 경사는 각각 추적 개시 및 종료 지점 c 및 d의 좌표 지점에 의해 제한되는 파인더 패턴 F1의 외부 윤곽선의 경사로부터 결정될 수 있다.
즉, 변 BD 또는 라인 BD의 경사는 파인더 패턴 F1이 있는 2차원 코드의 변 BD의 일부를 구성하는 파인더 패턴 F1의 외부 윤곽선을 형성하는 화소 중의 적어도 2개의 화소의 좌표 위치를 검출함으로써 결정될 수 있다.
마찬가지로, 파인더 패턴 F2가 있는 변 CD 또는 라인 CD의 경사도 결정될 수 있다.
2개의 라인 BD 또는 CD의 경사가 도 18에 도시된 바와 같이 계산된다면, 파인더 패턴 F1의 중심 F1C를 통과하고 라인 BD와 평행한 직선 S1과, 파인더 패턴 F2의 중심 F2C를 통과하고 라인 CD와 평행한 직선 S2의 교점이 계산되어 결정될 수 있다. 이런 방식으로, 검색된 얼라인먼트 패턴 P를 참조하여, 직선 S1 및 S2의 교점은 검색 참조 포인트 H로 결정될 수 있다.
도 18의 얼라인먼트 패턴을 검색하는 검색 참조 포인트 H를 계산하는 처리의 예가 파인더 패턴 F1이 영역 0에 있고 파인더 패턴 F2가 영역 1에, 즉 2차원 코드가 방향 0으로 배향되는 경우를 참조하여 설명하였다. 또한, 2차원 코드가 방향 0을 제외한 방향으로 배향되는 경우에, 2차원 코드의 변 경사는 동일한 처리에 의해 검출될 수 있다. 이 경우에, 파인더 패턴의 종단에 위치한 연속적인 블랙 화소의 런의 추적 종료 지점 c, e 및 d는 2차원 코드의 변의 일부를 구성하는 파인더 패턴에 대한 검출을 위해 추적되어, 파인더 패턴의 외부 윤곽선의 경사가 결정된다. 방향 0인 경우도 마찬가지로, 얼라인먼트 패턴 P에 대한 검색 참조 포인트 H는 2차원 코드가 두 방향으로 회전하는 사실에 관계없이 결정된다.
얼라인먼트 패턴 P의 검색 범위는 도 16의 흐름도에 도시된 바와 같이 결정 된다(단계 S303). 얼라인먼트 패턴 P의 검색 범위의 예가 도 20을 참조로 설명된다. 도 20은 얼라인먼트 패턴 P의 검색 범위가 결정된 경우를 설명하는 개략도이다.
도 20에서, 얼라인먼트 패턴을 검색하는 검색 참조 포인트 H의 좌표는 (xH, yH)로 표현되고 셀 크기는 cs로 표현된다.
2차원 코드가 회전하지 않는다면, 생길 것으로 기대된 얼라인먼트 패턴 P의 중심에서 예상되는 중심 좌표 위치 PP는 사전 결정된 거리 만큼 검색 참조 포인트 H로부터 떨어져 있다. 예를 들어, 예상되는 중심 좌표 위치 PP는 3개의 셀 크기 거리, 즉 (xH-3cs, yH-3cs)만큼 검색 참조 포인트으로부터 안쪽에 위치한다. 이러한 방식으로, 예상되는 중심 좌표 위치 PP 주위의 얼라인먼트 패턴 P(5×5 셀 크기)를 충분하게 커버하는 방식으로 얼라인먼트 패턴 P의 검색 범위 PR이 사전 결정된다. 예를 들어, 수평 및 수직 양 방향으로 적어도 2개 셀의 마진을 갖는 폭 (5+2n)×cs(n은 정수)의 직각 범위는 검색 범위 PR로 사전 설정된다.
즉, 검색 범위 PR이 사전 결정되어, 얼라인먼트 패턴 P의 중심이 존재할 것으로 예상되며 검색 참조 포인트 H로부터 떨어져 있는 것으로 소정의 거리(예를 들어, 3개의 셀 크기의 거리)만큼 결정되는 위치에서 그 예상되는 중심 좌표 위치 PP로부터 적어도 2셀 크기의 마진으로 얼라인먼트 패턴 P를 충분히 커버한다.
도 17에 도시된 바와 같이, 2차원 코드가 회전각 R만큼 회전한다면, 2차원 코드의 회전이 검색 참조 포인트 H에 대해 정정된 정정 검색 참조 포인트 H'는 하 기의 수학식 (18)에 의해 계산된다.
Figure 112003025934011-pat00018
여기에서, (xF0, yF0)는 파인더 패턴 F0의 좌표 중심을 표시한다.
회전각 R이 정정된 정정 검색 참조 포인트 H'를 사용하여 얼라인먼트 패턴 P의 정정 예상 중심좌표 PP'는 다음과 같이 표현된다.
(xH'-3cs, yH'-3cs)
따라서, 회전에 관계되는 얼라인먼트 패턴 P의 정정 검색 범위 PR'은, 검색 범위 PR이 정정 예상 중심 좌표 PP' 주위를 회전각 R 만큼 회전하는 영역이다.
얼라인먼트 패턴 P를 충분히 커버하는 범위(5×5 셀 크기), 예를 들면, 폭 (5+2n)×cs(n은 정수)을 갖는 직사각형 내의 범위는 정정 검색 범위 PR'로 사전 설정된다.
정정 검색 범위 PR'내에서 정정된 회전 화소 좌표가 (x', y')로 표현된다면, 회전 정정 전의 입력 화상의 좌표(x, y)는 좌표 (x', y')에 해당하고, 정정된 회전은 수학식 (19)에 의해 결정될 수 있다. 이는 얼라인먼트 패턴 P의 검색 범위 PR내에서만 회전된 부분 화상을 형성하도록 한다.
Figure 112003025934011-pat00019
여기서, (xF0, yF0)는 파인더 패턴 F0의 중심 F0C의 좌표를 의미한다.
원 화상에서의 검색 범위내의 부분 화상은 회전이 검출되지 않으면 원 화상으로부터 절단된다. 정정된 회전의 정정 검색 범위 PR'내의 부분 화상은 회전이 검출된다면 절단된다. 얼라인먼트 패턴 P에 특정된 제2 패턴(파인더 패턴에 특정된 제1 패턴과는 상이한 패턴으로 예비 결정된 특정 제2 패턴)과 매칭하는 패턴은 절단될 임의의 부분 화상으로부터 검색된다.
얼라인먼트 패턴 P을 추출하는 처리를 본 발명에서 수행하는 경우, 얼라인먼트 패턴 P에 특정된 제2 패턴의 특징에 매칭하는 탬플리트를 사용하여 매칭된 탬플리트는 부분 화상을 절단하기 위해 실행된다. 이진화 처리되지 않은 입력 화상(원 화상 신호)은 탬플리트 매칭용 입력 화상으로서 사용된다. 입력 화상의 품질이 좋지 않은 경우처럼 이진화 처리로 인해 화이트 화소의 크러싱 또는 블랙 화소의 칩핑이 발생하더라도, 이진화 처리되지 않은 입력 화상을 사용함으로써 얼라인먼트 패턴 P를 정확하게 검출할 수 있다.
탬플리트 매칭용 탬플리트는 검색될 5×5 셀 얼라인먼트 패턴에 매칭하는 형상을 갖고 셀 크기에 기초하여 곱셈 크기를 갖는다. 이진화에 앞서 입력 화상(원 화상 신호)이 밝은 것(화이트)부터 어두운 것(블랙)까지의 변화에 따라 0 내지 255 의 범위내에서 다양한 레벨 값이라 가정한다면, 0 및 255는 탬플리트의 블랙 및 화이트 화소에 각각 할당된다.
탬플리트 매칭을 쉽게 수행하기 위해, 2차원 코드가 상기한 대로 회전한다면 회전 정정 후의 정정 검색 범위 PR'내의 부분 화상이 사용된다.
탬플리트를 형상하는 모든 화소의 화소 값과 탬플리트에 해당하는 부분 화상에서의 화소값 간의 차의 절대값의 합으로 수행된 탬플리트 매칭은, 검색 범위 PR 또는 PR'로부터 절단된 부분 화상 내의 하나의 화소만큼 순차적으로 이동함으로써 계산된다(도 16의 단계 S304).
검색 범위 PR 또는 PR'로부터 절단된 부분 화상 내의 모든 화소를 통해 하나의 화소만큼 순차적으로 이동하여 얻어진 차의 절대값의 합이 최소가 되는 탬플리트의 중심 좌표는 얼라인먼트 패턴 P 또는 P'의 중심 PC 또는 PC'의 좌표로 결정된다(회전에 관계없이 얼라인먼트 패턴 P 또는 P'의 중심 PC 또는 PC')(단계 S305).
회전 정정을 수행하였다면, 수학식 19에 따라 회전 정정에 앞서 입력 화상에서 얼라인먼트 패턴 P의 중심 PC의 좌표는 얼라인먼트 패턴 P'의 중심 PC'의 좌표로 결정된 회전 화상을 더 회전시킴으로써 계산된다. 입력 화상의 2차원 코드가 회전 또는 경사지더라도, 또는 화상 품질이 좋지 않더라도, 얼라인먼트 패턴 P의 중심 C의 좌표 위치는 검출된 파인더 패턴 F0, F1 및 F2의 좌표 위치에 기초하여 플러스로 검출될 수 있다.
여기에서, 도 5의 단계 S004에서 수행된 버전의 결정을 상세히 설명한다.
직사각형(정사각형을 포함)인 2차원 코드의 3개의 코너에 배치된 동일한 형 상을 갖는 파인더 패턴 F0, F1 및 F2에 대해, 2차원 코드의 한 변을 형성하는 파인더 패턴 F0 및 F1의 중심 F0C과 F1C 간의 거리, 및 2차원 코드의 한 변을 형성하는 파인더 패턴 F0 및 F2의 중심 F0C과 F2C 간의 거리는, 이들의 좌표 위치에 기초하여 얻어진다. 파인더 패턴 간의 2개의 계산된 거리의 평균이 결정된다.
이후에, 파인더 패턴 사이의 거리 평균을 설명했던 도 6의 단계 S104에서 도시된 처리에 의해 계산된 셀 크기로 나눔으로써 계산된 몫을 얻음으로써 2차원 코드의 셀 개수가 계산된다. 따라서, 2차원 코드의 셀 개수를 정의하는 2차원 코드의 버전을 결정하는 것이 가능하다. 버전의 잘못된 결정으로 인한 2차원 코드의 판독 실패를 막기 위하여, 본 발명은 2차원 코드의 버전과 버전에 의해 결정된 등록된 셀 개수 사이의 관계(2차원 코드의 셀 개수 또는 버전에 해당하는 파인더 패턴 간)를 나타내는 버전 등록 테이블을 제공한다.
계산된 몫(셀 개수)에 가장 근사하거나 또는 매칭하는 등록된 셀 개수는 버전 등록 테이블을 검색하여 번전 등록 테이블 상에 사전에 등록된 등록 셀의 개수로부터 선택되어, 등록된 셀의 선택 개수에 해당하는 버전이 입력 화상에서 2차원 코드의 버전으로 결정된다. 버전 등록 테이블 상의 버전 번호는 2차원 코드의 셀 개수의 순서를 설명하여, 2차원 코드의 셀 갯수는 버전 번호가 증가하면 같이 증가한다.
여기에서, 도 5의 단계 S005에서 수행된 데이터 셀을 절단하는 것을 설명한다. 데이터 셀을 절단하는 처리와 관련된 예를 도 21의 흐름도를 참조하여 설명한다.
각 데이터 셀의 데이터 값이 밝은지(화이트) 또는 어두운지(블랙)를 구별하는 밝은 임계값 및 어두운 임계값이 결정된다(단계 S401).
데이터 셀이 밝은 또는 어두운(화이트 또는 블랙)인 지를 식별하는 밝은 임계값 및 어두운 임계값을 구별하는 방법이 도 22를 참조하여 설명된다. 2차원 코드의 3개의 코너에 배치된 파인더 패턴 F0, F1 및 F2 중에 대각 위치에 있는 파인더 패턴 F1 및 F2의 중심 F1C 및 F2C를 연결하는 세그먼트 라인인 대각선 J 상의 입력 화상의 모든 화소는 대각선 J 상의 모든 화소의 화소값을 비교하여 스캐닝되어, 화소값의 최대 및 최소값이 결정된다.
이후, 대각선 상의 화소값의 최대 및 최소값의 중간값(평균값)을, 데이터 셀이 밝은지 어두운지 여부를 판별하기 위한 밝은 임계값 및 어두운 임계값으로서 결정한다. 대각선(J) 상의 모든 화소의 화소값을 이용하여 밝고 임계값과 어두운 임계값을 설정하는 대신에, 대각선(J) 상의 모든 데이터 셀의 중심 위치에 대응하는 입력 화상의 좌표 위치에서의 밀도의 최대값과 최소값 사이의 중간값을 임계값으로서 사전 결정하여도 된다.
후속하여, 데이터 셀 내의 각 셀의 중심 위치를 입력 화상의 좌표 위치로 변환하는 좌표 변환식에서의 변환 계수를 계산한다(단계 S402).
2차원 코드의 각 데이터 셀의 중심 위치를 나타내는 좌표 위치가 (u, v)로 표시되는 경우, 2차원 코드의 각 데이터 셀의 중심 위치를 입력 화상의 좌표 위치(X, Y)로 변환하는 좌표 변환식은 다음과 같이 수학식(20) 및 수학식(21)로 표현된다.
Figure 112003025934011-pat00020
Figure 112003025934011-pat00021
4개의 결정된 참조 포인트의 좌표 위치, 즉, 파인더 패턴(F0, F1, F2) 및 얼라인먼트 패턴(P)의 중심 위치를 수학식(20)과 수학식(21)으로 나타내는 셀의 중심 위치의 좌표 위치를 입력함으로써 변환 계수 bij(여기서, ij = 00, 01, 02, 10, 11, 12, 21, 22)를 계산한다.
상기한 바와 같이, 2차원 코드를 구성하는 셀 m x m의 수는 단계 S004에서 결정된 버전 번호로부터 결정되어 있다. 2차원 코드의 셀이 입력 화상에서 m x m으로 구성되면, 파인더 패턴(F0, F1, F2)과 얼라인먼트 패턴(P)의 중심(F0C, F1C, F2C, PC)을 나타내는 좌표 위치(u,v)는, 도 23에 도시한 바와 같이 각각 (3, 3), (m-4, 3), (3, m-4), (m-7, m-7)로 표현되며 여기서 2차원 코드의 좌상측 코너를 셀 좌표의 원점으로 한다. 도 23은 2차원 코드 형상과 4개 참조 포인트의 셀 위치와의 관계를 나타내는 개략적인 도면이다.
입력 화상에서 파인더 패턴(F0, F1, F2)의 중심 좌표 위치(xF0, yF0), (xF1, yF1), (xF2, yF2)에 대응하는 각 셀 중심 위치를 나타내는 좌표 위치(u, v) 및 입력 화상에서 얼라인먼트 패턴(P)의 중심(PC) 좌표 위치(xP, yP)가 수학식(20) 및 수학 식(21)으로 표현된다면, 다음과 같은 관계를 얻게 된다.
Figure 112003025934011-pat00022
Figure 112003025934011-pat00023
Figure 112003025934011-pat00024
Figure 112003025934011-pat00025
Figure 112003025934011-pat00026
Figure 112003025934011-pat00027
Figure 112003025934011-pat00028
Figure 112003025934011-pat00029
수학식 (22) 내지 (29)로 표현된 8개의 연립 방정식을 풀어, 각 데이터 셀의 중심 위치를 입력 화상의 좌표 위치로 변환하기 위한 8개의 변환 계수 bij(ij = 00, 01, 02, 10, 11, 12, 21, 22)를 결정할 수 있다.
후속하여, 좌표 변환식, 즉, 도 21의 흐름도에서 변환 계수 bij가 계산되는 수학식(20)과 수학식(21)을 이용하여 2차원 코드의 각 데이터 셀의 중심 위치를 입력 화상에서의 좌표 위치로 변환한다(단계 S403).
단계 S403에서 변환된 각 데이터 셀의 중심 위치에 대응하는 입력 화상의 좌표 위치가 입력 화상에서의 화소 위치에 매칭되면, 매칭된 화소의 화소값을 데이터 셀의 데이터값을 결정하기 위한 밀도로서 임의의 프로세스 없이 이용할 수 있다. 각 데이터 셀의 중심 위치에 대응하는 입력 화상의 좌표 위치는, 입력 화상의 화소 사이에 위치할 수 있기 때문에, 데이터 셀의 데이터값은, 데이터 셀의 데이터값을 결정하는 밀도에 대하여 정정을 수행(단계S404)함으로써 결정된다(단계 S405).
관심 대상인 좌표 위치에 인접하는 주변의 4개 화소의 화소값의 선형 보간에 의해 밀도 정정을 수행할 수 있다.
4개의 인접하는 화소의 화소값을 이용하는 선형 보간의 일예를 나타내는 도 24를 참조하여 선형 보간 방법을 설명한다.
셀 위치에 대응하는 좌표(i+α, j+β)에서 화소 Q(i+α, j+β)의 화소값은 다음의 수학식 30으로 표현되며, 여기서 i, j는 입력 화상에서의 화소 위치에 대응하는 정수이고, α, β는 화소값(Q(i, j))을 갖는 화소(i, j), 화소값(Q(i+1, j))을 갖는 화소(i+1, j), 화소값(Q(i, j+1))을 갖는 화소(i, j+1), 및 화소값(Q(i+1, j+1))을 갖는 화소(i+1, j+1)에 의해 둘러싸인 영역에 각 데이터 셀의 중심 위치가 존재하는 위치를 나타내는 상대값이며, 화소(i, j)로부터 떨어져 있는 위치를 나타내는 값의 범위는 0< α<1, 0< β<1 이다.
각 데이터 셀의 중심 위치에 대응하는 입력 화상의 좌표 위치가 입력 화상의 화소 사이에 있으면, 아래와 같은 수학식 30을 이용하는 선형 보간을 수행함으로써 데이터 셀의 데이터값을 결정하기 위한 밀도를 얻을 수 있다.
Figure 112003025934011-pat00030
데이터 셀의 중심 위치에 대응하는 입력 화상 내에 화소가 존재하면, 대응하는 화소의 화소값은 상기한 바와 같이 데이터 셀의 데이터값을 결정하기 위한 밀도로 된다. 데이터 셀의 중심 위치에 대응하는 입력 화상에서의 화소가 존재하지 않으면, 수학식(30)을 이용하는 밀도 정정에 의해 결정되는 밀도는 도 21의 단계 S401에서 결정되는 밝고 임계값과 어두운 임계값과의 비교를 위해 사용된다. 2차원 코드의 각 데이터 셀의 데이터값이 밝은(화이트) 또는 어두운(블랙)지 여부를 결정할 수 있어, 데이터 셀을 절단할 수 있다.
데이터 셀의 크기에 대응하는 입력 화상에서의 모든 화소의 화소값이 블랙 및 화이트 화소의 개수 합산을 위해 추출되어 데이터 셀의 데이터값을 결정하는 종래 기술처럼 많은 처리 용량을 필요로 하는 프로세스를 수행할 필요 없이, 상기한 프로세스를 반복함으로써 2차원 코드내의 모든 데이터 셀을 빠르게 절단할 수 있다.
본 발명에 따라, 종래 기술과는 다르게 타이밍 패턴이 제공되지 않으며, 좌표 변환식에 따라 파인더 패턴(F0, F1, F2) 및 얼라인먼트 패턴(P)과 같은 4개의 참조 포인트를 사용함으로써 각 데이터 셀의 위치를 쉽고도 빠르게 식별할 수 있다. 식별된 위치에서의 데이터 셀의 데이터값은, 모든 데이터 셀을 명확하게 절단하는 중심 위치에 대응하는 좌표 위치 밀도를 이용함으로써 빠르게 결정될 수 있다. 이후, 모든 절단된 데이터 셀의 데이터값 어레이, 즉, 비트 어레이는, 소정의 규칙에 따른 디코딩에 의해 캐릭터 어레이 등과 같은 정보로 변환되어, 종래 기술의 처리 용량과 비교할 때 훨씬 적은 처리 용량으로 2차원 코드 판독을 완료할 수 있다. 따라서, 본 발명의 2차원 코드 판독 방법을, 처리 용량이 크기 않으면서 카메라가 내장된 휴대용 무선 전화와 같은 지능형 단말 장치에 적용할 수 있다.
2차원 코드 판독 단계를 수행하기 위한 2차원 코드 판독 프로세스를 참조하여 본 발명의 실시예를 설명하였지만, 본 발명은 2차원 코드 판독 프로세스 단계를 수행하기 위한 2차원 코드 판독 장치, 2차원 코드 판독 장치가 내장된 디지털 카메라, 또는 카메라를 구비한 휴대용 단말 장치의 형태이어도 된다. 대안으로서, 본 발명은 상기한 프로세스를 컴퓨터에 의해 수행할 수 있는 프로그램 코드로 표현되는 2차원 코드 판독 프로그램, 및 2차원 코드 판독 프로그램과 데이터를 기록하는 기록 매체의 형태이어도 된다. 또한, 본 발명은 2차원 코드 판독 프로그램 또는 데이터를 송수신하는 통신 네트워크와 같은 통신 매체의 형태이어도 된다.
본 발명의 2차원 코드 판독 프로세스를 수행하는 데이터 또는 프로그램이 저장되어 있는 기록 매체의 일실시예를 설명한다. 기록 매체로는 CD-ROM(-R/-RW), 광자기 디스크, DVD-ROM, FD, 플래시 메모리, 메모리 카드, 메모리 스틱 및 다양한 ROM 및 RAM 등이 있다. 본 프로세스 수행은, 본 발명의 상기한 다양한 실시예의 2차원 코드 판독 프로세스를 컴퓨터가 수행하게 하는 프로그램을 배포용 기록 매체 상에 기록함으로써 쉽게 행해진다. 상기한 기록 매체를 프로그램을 판독하는 컴퓨터 등과 같은 정보 처리 장치 상에 장착함으로써, 정보 처리 장치가 포함하는 기록 매체 상에 프로그램을 저장하여 필요시 판독함으로써 본 발명의 2차원 코드 판독 프로세스를 수행할 수 있다.
본 발명에 의해 입력 화상으로부터 높은 정확도로 2차원 코드의 파인더 패턴 및 얼라인먼트 패턴을 검출할 수 있으며, 이 패턴의 해상도 및 품질은 양호하지 않으며 노이즈를 포함한다. 입력 화상에서 2차원 코드가 수평 방향으로부터 회전되더라도 2차원 코드에서 파인더 패턴의 검출시, 경사진 방향 뿐만 아니라 수평 및 수직 방향에서 2차원 코드의 블랙 및 화이트 셀의 런을 평가함으로써 파인더 패턴을 정확하게 검출할 수 있다. 2차원 코드가 회전된다는 것이 파인더 패턴의 좌표 위치에 기초하여 결정되면 회전 정정을 수행함으로써 얼라인먼트 패턴을 추출하기 때문에, 2차원 코드가 회전되어 있더라도 얼라인먼트 패턴을 명확하게 검출할 수 있다.
2차원 코드의 데이터 셀을 절단하는 것이, 2차원 코드의 3개의 파인더 패턴과 1개의 얼라인먼트 패턴과 같은 4개 참조 포인트의 위치만을 검출함으로써 가능하기 때문에, 종래 기술과 비교할 때 타이밍 패턴을 검출하는 처리를 생략할 수 있 으며, 판독 동작 전체에 필요한 처리 용량을 줄일 수 있다.
얼라인먼트 패턴이 존재할 수 있는 검색 범위는, 2차원 코드가 (정사각형 형태를 포함하는) 직각 형태로부터 왜곡되더라도 파인더 패턴의 좌표 위치로부터 2차원 코드의 경사를 결정함으로써 정확하게 결정될 수 있다. 검색 범위가 정확하게 식별될 수 없는 종래 기술과는 달리, 얼라인먼트 패턴의 위치를 정확하게 검사하는데 필요한 처리 용량을 현저히 줄일 수 있고, 그 결과 2차원 코드 전체 판독을 위해 필요한 처리 용량을 줄일 수 있다.
2차원 코드 버전과 셀 수 사이의 상관을 나타내는 버전 등록 테이블을 제공하기 때문에, 입력 화상에서의 2차원 코드로부터 검출되는 파인더 패턴에 기초하여 결정된 버전이 에러를 갖더라도, 버전 등록 테이블에 기초하여 결정된 버전을 1씩 변경한 후 판독 동작을 다시 수행할 수 있다. 버전 에러로 인한 2차원 코드 판독 실패를 최소한으로 억제할 수 있다.
따라서, 본 발명의 2차원 코드 판독 방법을, 카메라가 내장되고 비교적 적은 처리 용량을 갖는 휴대 전화와 같은 지능형 단말 장치에 적용함으로써 높은 정확도로 2차원 코드를 빠르게 판독할 수 있다.

Claims (38)

  1. 그 위에 이진 데이터를 기록하는 데이터 셀을 2차원 형태로 배열함으로써, 입력 화상으로부터 2차원 코드를 판독하는 2차원 코드 판독 장치로서,
    상기 2차원 코드는, 각각이 제1 특정 패턴을 갖는 복수의 파인더 패턴(F)과,상기 2차원 코드 내의 상기 파인더 패턴(F)의 위치와는 다른 사전 결정된 위치에 배치되는 얼라인먼트 패턴(P)을 가지며, 상기 파인더 패턴(F)의 각각은, 상기 입력 화상 내에서 상기 2차원 코드의 위치를 식별하기 위한 상기 2차원 코드 내에서 복수의 사전 결정된 위치에 배치되며, 상기 얼라인먼트 패턴(P)은 상기 파인더 패턴들(F)에 특정된 상기 제1 패턴과는 다른 제2 패턴을 갖고,
    상기 입력 화상으로부터 상기 사전 결정된 복수의 위치에 배치되는 상기 복수의 파인더 패턴(F)의 상기 위치를 검출하는 처리가, 복수의 방향에서의 상기 입력 화상의 스캐닝 결과에 기초하여 행해지며,
    상기 얼라인먼트 패턴(P)의 위치를 검출하기 위한 처리가, 상기 검출된 파인더 패턴(F)에 기초하여 행해지고,
    상기 2차원 코드를 구성하는 셀들의 수를 정의하는 상기 2차원 코드의 버전을 결정하는 처리가, 상기 검출된 파인더 패턴(F)에 기초하여 행해지며,
    상기 2차원 코드를 구성하는 각 데이터 셀의 데이터 값을 규정하는 상기 데이터 셀을 절단하기 위한 처리가, 상기 검출된 파인더 패턴(F) 및 상기 검출된 얼라인먼트 패턴(P)의 상기 위치, 및 상기 버전 결정 처리에 의해 결정된 상기 버전에 기초하여 행해지고,
    상기 2차원 코드의 정보를 식별하기 위한 디코딩 처리가, 상기 데이터 셀 절단 처리에 의해 결정된 데이터 셀의 상기 데이터 값으로부터 사전 결정된 규칙에 따라 행해지는 것을 특징으로 하는 2차원 코드 판독 장치.
  2. 제1항에 있어서,
    상기 제1 블랙 및 화이트 특정 패턴을 포함하는 상기 파인더 패턴(F)에 근사한 패턴을 갖는 상기 파인더 패턴(F)의 복수의 후보가, 후보 파인더 패턴으로서 상기 입력 화상으로부터 추출되고,
    3 방향에서 각 후보 파인더 패턴을 가로지르는 스캐닝 라인을 따르는 상기 블랙 및 화이트 패턴의 구성비가, 상기 추출된 복수의 후보 파인더 패턴의 각각에 대하여 검출되며,
    각 방향에서의 상기 블랙 및 화이트 패턴의 상기 검출된 구성비가, 상기 파인더 패턴(F)으로서 사전 결정된 블랙 및 화이트 패턴을 포함하는 상기 제1 특정 패턴의 구성비와 비교되어, 상기 후보 패턴과 상기 제1 패턴 간의 근사도를 나타내는 추정값을 계산하고,
    사전 결정된 수의 상기 후보 파인더 패턴이, 상기 추정값으로 나타내는 근접도가 보다 높은 후보 파인더 패턴으로부터 그 순서대로 상기 추출된 복수의 후보 파인더 패턴 중에서 선택되어, 상기 사전 결정된 수의 선택된 파인더 패턴(F)의 각 위치가 검출되는 것을 특징으로 하는 2차원 코드 판독 장치.
  3. 제2항에 있어서,
    상기 추출된 복수의 후보 파인더 패턴의 수평, 수직 및 경사방향 중의 어느 하나에서, 상기 후보 파인더 패턴과 상기 파인더 패턴(F)에 특정된 상기 제1 패턴 간의 근사도를 나타내는 상기 추정값이, 사전 결정된 임계값을 초과하는 값으로 계산되어, 상기 후보 파인더 패턴이 상기 제1 패턴에 근사하지 않은 경우, 상기 후보 파인더 패턴은 상기 파인더 패턴(F)의 후보들로부터 배제되는 것을 특징으로 하는 2차원 코드 판독 장치.
  4. 제3항에 있어서,
    상기 임계값은, 상기 2차원 코드의 유형 및 어플리케이션, 및/또는 상기 입력 화상의 화질에 따라, 사용자에 의해 원하는 값으로 임시로 사전에 설정가능한 것을 특징으로 하는 2차원 코드 판독 장치.
  5. 제2항 내지 제4항 중의 어느 한 항에 있어서,
    상기 추출된 후보 파인더 패턴들이 중첩되면, 상기 중첩된 후보 파인더 패턴들이 통합되고, 통합 이전의 각 후보 파인더 패턴의 상기 추정값이 합산됨으로써, 그 합이 통합된 후보 파인더 패턴들의 추정값으로서 표현되는 것을 특징으로 하는 2차원 코드 판독 장치.
  6. 제2항 내지 제4항 중의 어느 한 항에 있어서,
    수평, 수직 및 경사방향 중의 어느 하나에서, 상기 추출된 후보 파인더 패턴의 크기를 나타내는 폭과 상기 파인더 패턴(F)의 크기를 나타내는 사전 결정된 특정 폭의 차이가, 사전 결정된 허용값을 초과하면, 상기 후보 파인더 패턴은 상기 파인더 패턴(F)의 상기 후보들로부터 배제되는 것을 특징으로 하는 2차원 코드 판독 장치.
  7. 제6항에 있어서,
    상기 허용값은, 상기 2차원 코드의 유형 및 어플리케이션, 및/또는 상기 입력 화상의 화질에 따라, 사용자에 의해 원하는 값으로 임시로 사전에 설정가능한 것을 특징으로 하는 2차원 코드 판독 장치.
  8. 제2항 내지 제4항 중의 어느 한 항에 있어서,
    수평, 수직 및 경사방향의 3개의 방향에서 상기 파인더 패턴(F)의 상기 폭의 평균값은, 상기 검출된 파인더 패턴(F)의 크기를 나타내는 상기 폭으로서 이용되는 것을 특징으로 하는 2차원 코드 판독 장치.
  9. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 2차원 코드를 구성하는 상기 셀의 치수를 나타내는 상기 셀 크기는, 상 기 검출된 파인더 패턴(F)의 크기를 나타내는 상기 폭에 기초하여 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  10. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 2차원 코드의 상기 버전은, 상기 검출된 복수의 파인더 패턴(F) 간의 공간과 상기 파인더 패턴(F)의 크기를 나타내는 상기 폭으로부터 구해지는 상기 셀의 치수를 나타내는 상기 셀 크기에 기초하여, 상기 2차원 코드를 구성하는 셀의 수를 계산함으로써 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  11. 제10항에 있어서,
    상기 장치는, 상기 2차원 코드의 상기 버전과 상기 버전에 의해서 결정되는 상기 2차원 코드 폭을 구성하는 등록 셀의 수의 대응 관계를 나타내는 버전 등록 테이블을 포함하고, 상기 버전 등록 테이블이 상기 계산된 셀 수에 기초하여 추출됨으로써, 상기 등록된 셀의 수는 매칭되거나 근사한 값을 갖고, 상기 등록된 셀 수에 대응하는 상기 버전은 상기 2차원 코드 및 상기 2차원 코드의 버전을 각각 구성하는 셀의 수로서 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  12. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되었는지의 결정이, 상기 검출된 복수의 파인더 패턴(F)의 각 좌표에 기초하여 행해지며, 상기 2차원 코드의 방향이 회전되었다면, 상기 2차원 코드의 회전각이 계산되는 것을 특징으로 하는 2차원 코드 판독 장치.
  13. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 입력 화상에서의 상기 2차원 코드의 각 측의 경사의 존재를, 상기 입력 화상에서의 상기 파인더 패턴(F)의 경사의 존재를 검출함으로써 검출되고,
    검색 참조 포인트(H)를 참조하여, 상기 입력 화상에서의 상기 얼라인먼트 패턴(P)을 검색하기 위한 검색 범위(PR)가 지정되고, 상기 검색 참조 포인트(H)는 각 측의 경사와 상기 파인더 패턴(F)의 중심 좌표로부터 결정되며,
    상기 결정된 검색 참조 포인트(H)로부터 사전 결정된 위치에 위치하는 상기 검색 범위(PR)에서의 부분 화상이, 상기 입력 화상으로부터 절단되고,
    상기 얼라인먼트 패턴(P)의 위치가, 상기 부분 화상으로부터 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴(P)을 추출함으로써 검출되는 것을 특징으로 하는 2차원 코드 판독 장치.
  14. 제13항에 있어서,
    상기 파인더 패턴(F)의 경사 존재는, 그 위에 상기 파인더 패턴(F)이 위치하는, 상기 2차원 코드의 상기 측 부분을 형성하고, 상기 파인더 패턴(F)의 상기 화소를 스캐닝함으로써 상기 파인더 패턴(F)의 외부 윤곽을 형성하는, 상기 화소의 좌표중에서 적어도 2개의 화소의 좌표를 검출함으로써 검출되는 것을 특징으로 하 는 2차원 코드 판독 장치.
  15. 제13항에 있어서,
    상기 2차원 코드의 상기 측 부분을 형성하고 상기 2차원 코드의 상기 측과 평행한 상기 파인더 패턴(F)의 상기 중심 좌표를 통과하는 직선과, 상기 2차원 코드내에서 상기 파인더 패턴(F)에 대각선으로 대향하고, 상기 2차원 코드의 다른 측 부분을 형성하며, 상기 다른 측과 평행한, 다른 파인더 패턴(F)의 중심 좌표를 통과하는 직선 간의 교차점이, 상기 검색 참조 포인트(H)로서 결정되며, 이를 참조하여 상기 얼라인먼트 패턴(P)을 검색하기 위한 상기 검색 범위(PR)가 지정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  16. 제13항에 있어서,
    상기 검색 범위(PR)는, 상기 얼라인먼트 패턴(P)의 중심 위치가 상기 검색 참조 포인트(H)로부터 사전 결정된 거리만큼 떨어져 있는 것으로 추정되는 추정 중심 좌표로부터 적어도 2개의 셀 크기의 마진을 가진 상태에서, 상기 얼라인먼트 패턴(P)에 특정된 상기 제2 패턴을 포함할 정도로 넓은 영역인 것을 특징으로 하는 2차원 코드 판독 장치.
  17. 제13항에 있어서,
    상기 얼라인먼트 패턴(P)에 특정된 상기 제2 패턴의 각 화소의 특징을 매칭 시키는 탬플리트가 제공되어 있고, 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴(P)이, 상기 탬플리트와 상기 부분 화상 간의 탬플리트 매칭을 1화소분 시프트하면서 수행함으로써 상기 부분 화상으로부터 추출되는 것을 특징으로 하는 2차원 코드 판독 장치.
  18. 제17항에 있어서,
    상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되는 경우, 상기 2차원 코드의 상기 방향이 회전되는 각도에 기초하여, 상기 검색 참조 포인트(H)의 좌표를 회전 정정에 적용함으로써 특정되는 상기 검색 범위(PR) 내의 부분 화상이 상기 입력 화상으로부터 절단되고, 상기 회전 각도에 기초하여 상기 부분 화상을 절단하기 위하여 상기 회전 정정을 적용한 후, 상기 얼라인먼트 패턴(P)의 위치가, 상기 얼라인먼트 패턴(P)을 추출하기 위하여 상기 회전 정정된 부분 화상을 1화소분 시프트하면서 상기 탬플리트 매칭을 수행함으로써 검출되는 것을 특징으로 하는 2차원 코드 판독 장치.
  19. 제17항에 있어서,
    상기 탬플리트 매칭을 위해 처리될 상기 부분 화상은, 이진 처리 이전의 조건하에 있는 상기 입력 화상으로부터 절단되는 부분 화상인 것을 특징으로 하는 2차원 코드 판독 장치.
  20. 제19항에 있어서,
    상기 탬플리트 매칭에 대한 처리가 수행될 때, 상기 탬플리트의 각 화소의 화소값과 상기 부분 화상의 각 대응화소의 화소값 간의 차분의 절대값이, 상기 부분 화상을 1화소분 순차적으로 시프트하면서 계산됨으로써, 절대값의 합이 최소로 되는 상기 부분 화상 내의 위치가 상기 얼라인먼트 패턴(P)의 좌표로서 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  21. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 판단하는 처리가 수행될 때, 상기 데이터 셀의 위치 식별 처리에 의해 검출되는 상기 파인더 패턴(F) 및 상기 얼라인먼트 패턴(P)의 중심의 상기 셀 위치와, 상기 식별된 버전에 의해 결정되는 상기 2차원 코드의 상기 셀 수에 기초하여, 상기 2차원 코드의 각 데이터 셀의 상기 중심 위치를 상기 입력 화상에서의 좌표로 변환하기 위한 좌표 변환식의 변환 계수가 계산되며,
    각 데이터 셀의 상기 중심 위치는, 상기 좌표 변환식을 이용함으로써 상기 입력 화상의 좌표로 변환되고, 상기 좌표 변환식에는, 각 데이터 셀의 상기 중심 위치에 대응하는 상기 좌표를 식별하기 위하여 상기 계산된 변환 계수가 적용되고,
    각 데이터 셀의 데이터 값이, 각 데이터 셀의 절단을 수행하기 위한 상기 위치 식별 처리에 의해 식별되는 상기 좌표 위치의 밀도에 기초하여 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  22. 제21항에 있어서,
    상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 결정하는 처리가 수행될 때, 상기 위치 식별 처리에 의해 식별되는 상기 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 밀도는, 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재할 경우, 상기 좌표에 존재하는 상기 화소의 화소 값으로부터 구해지는 밀도이고, 또한 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재하지 않은 경우, 상기 좌표에 인접하는 주변 화소에의 화소 값의 보간에 의해서 구해지는 밀도이며,
    각 데이터 셀의 상기 데이터 값은, 각 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 상기 밀도와, 각 데이터 셀위 상기 데이터 값을 식별하기 위한 밝은 임계값 및 어두운 임계값과 비교함으로써 결정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  23. 제22항에 있어서,
    각 데이터 셀의 상기 데이터 값을 식별하기 위한 상기 밝은 임계값 및 어두운 임계값은, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상에서의 상기 화소의 화소값에 기초하여 설정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  24. 제23항에 있어서,
    상기 밝은 임계값 및 어두운 임계값은, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상에서의 모든 화소의 화소값의 최소값과 최대값의 중간값으로서 설정되는 것을 특징으로 하는 2차원 코드 판독 장치.
  25. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 데이터 셀의 절단이 부적절하게 수행되어 상기 2차원 코드의 판독이 실패한 경우, 상기 데이터 셀의 절단 처리가, 상기 버전 결정 처리에 의해 결정된 1 버전분 변경된 후, 다시 반복되는 것을 특징으로 하는 2차원 코드 판독 장치.
  26. 카메라를 내장한 휴대형 단말기로서, 제1항 내지 제4항 중의 어느 한 항에 기재된 2차원 코드 판독 장치를 포함하는 것을 특징으로 하는 휴대형 단말기.
  27. 제1항 내지 제4항 중의 어느 한 항에 기재된 2차원 코드 판독 장치를 포함하는 디지털 카메라.
  28. 그 위에 이진 데이터를 기록하는 데이터 셀을 2차원 형태로 배열함으로써, 입력 화상으로부터 2차원 코드를 판독하는 2차원 코드 판독 방법으로서,
    상기 2차원 코드는, 각각이 제1 특정 패턴을 갖는 복수의 파인더 패턴(F)과,상기 2차원 코드 내의 상기 파인더 패턴(F)의 위치와는 다른 사전 결정된 위치에 배치되는 얼라인먼트 패턴(P)을 가지며, 상기 파인더 패턴(F)의 각각은, 상기 입력 화상 내에서 상기 2차원 코드의 위치를 식별하기 위한 상기 2차원 코드 내에서 복수의 사전 결정된 위치에 배치되며, 상기 얼라인먼트 패턴(P)은 상기 파인더 패턴(F)에 특정된 상기 제1 패턴과는 다른 제2 패턴을 갖고,
    상기 입력 화상으로부터 상기 사전 결정된 복수의 위치에 배치되는 상기 복수의 파인더 패턴(F)의 상기 위치를 검출하는 처리가, 복수의 방향에서의 상기 입력 화상의 스캐닝 결과에 기초하여 행해지며,
    상기 얼라인먼트 패턴(P)의 위치를 검출하기 위한 처리가, 상기 검출된 파인더 패턴(F)에 기초하여 행해지고,
    상기 2차원 코드를 구성하는 셀들의 수를 정의하는 상기 2차원 코드의 버전을 결정하는 처리가, 상기 검출된 파인더 패턴(F)에 기초하여 행해지며,
    상기 2차원 코드를 구성하는 각 데이터 셀의 데이터 값을 규정하는 상기 데이터 셀을 절단하기 위한 처리가, 상기 검출된 파인더 패턴(F) 및 상기 검출된 얼라인먼트 패턴(P)의 상기 위치, 및 상기 버전 결정 처리에 의해 결정된 상기 버전에 기초하여 행해지고,
    상기 2차원 코드의 정보를 식별하기 위한 디코딩 처리가, 상기 데이터 셀 절단 처리에 의해 결정된 데이터 셀의 상기 데이터 값으로부터 사전 결정된 규칙에 따라 행해지는 것을 특징으로 하는 2차원 코드 판독 방법.
  29. 제28항에 있어서,
    상기 제1 블랙 및 화이트 특정 패턴을 포함하는 상기 파인더 패턴(F)에 근사한 패턴을 갖는 상기 파인더 패턴(F)의 복수의 후보가, 후보 파인더 패턴으로서 상기 입력 화상으로부터 추출되고,
    3방향에서 각 후보 파인더 패턴을 가로지르는 스캐닝 라인을 따르는 상기 블랙 및 화이트 패턴의 구성비가, 상기 추출된 복수의 후보 파인더 패턴의 각각에 대하여 검출되며,
    각 방향에서의 상기 블랙 및 화이트 패턴의 상기 검출된 구성비가, 상기 파인더 패턴(F)으로서 사전 결정된 블랙 및 화이트 패턴을 포함하는 상기 제1 특정 패턴의 구성비와 비교되어, 상기 후보 패턴과 상기 제1 패턴 간의 근사도를 나타내는 추정값을 계산하고,
    사전 결정된 수의 상기 후보 파인더 패턴이, 상기 추정값으로 나타내는 근접도가 보다 높은 후보 파인더 패턴으로부터 그 순서대로 상기 추출된 복수의 후보 파인더 패턴 중에서 선택되어, 상기 사전 결정된 수의 선택된 파인더 패턴(F)의 각 위치가 검출되는 것을 특징으로 하는 2차원 코드 판독 방법.
  30. 제28항 또는 제29항에 있어서,
    상기 2차원 코드의 상기 버전은, 상기 검출된 복수의 파인더 패턴(F) 간의 공간과 상기 파인더 패턴(F)의 크기를 나타내는 상기 폭으로부터 구해지는 상기 셀의 치수를 나타내는 상기 셀 크기에 기초하여, 상기 2차원 코드를 구성하는 셀의 수를 계산함으로써 결정되는 것을 특징으로 하는 2차원 코드 판독 방법.
  31. 제28항 또는 제29항에 있어서,
    상기 입력 화상에서의 상기 2차원 코드의 각 측의 경사의 존재를, 상기 입력 화상에서의 상기 파인더 패턴의 경사의 존재를 검출함으로써 검출되고,
    검색 참조 포인트(H)를 참조하여, 상기 입력 화상에서의 상기 얼라인먼트 패턴(P)을 검색하기 위한 검색 범위(PR)가 지정되고, 상기 검색 참조 포인트(H)는 각 측의 경사와 상기 파인더 패턴(F)의 증심 좌표로부터 결정되며,
    상기 결정된 검색 참조 포인트(H)로부터 사전 결정된 위치에 위치하는 상기 검색 범위에서의 부분 화상이, 상기 입력 화상으로부터 절단되고,
    상기 얼라인먼트 패턴(P)의 위치가, 상기 부분 화상으로부터 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴(P)을 추출함으로써 검출되는 것을 특징으로 하는 2차원 코드 판독 방법.
  32. 제31항에 있어서,
    상기 얼라인먼트 패턴(P)에 특정된 상기 제2 패턴의 각 화소의 특징을 매칭시키는 탬플리트가 제공되어 있고, 상기 제2 패턴을 포함하는 상기 얼라인먼트 패턴(P)이, 상기 탬플리트와 상기 부분 화상 간의 탬플리트 매칭을 1화소분 시프트하면서 수행함으로써 상기 부분 화상으로부터 추출되는 것을 특징으로 하는 2차원 코드 판독 방법.
  33. 제32항에 있어서,
    상기 2차원 코드의 방향이 상기 입력 화상에서 각을 이루어 회전되는 경우, 상기 2차원 코드의 상기 방향이 회전되는 각도에 기초하여, 상기 검색 참조 포인트(H)의 좌표를 회전 정정에 적용함으로써 특정되는 상기 검색 범위(PR) 내의 부분 화상이 상기 입력 화상으로부터 절단되고, 상기 회전 각도에 기초하여 상기 부분 화상을 절단하기 위하여 상기 회전 정정을 적용한 후, 상기 얼라인먼트 패턴(P)의 위치가, 상기 얼라인먼트 패턴(P)을 추출하기 위하여 상기 회전 정정된 부분 화상을 1화소분 시프트하면서 상기 탬플리트 매칭을 수행함으로써 검출되는 것을 특징으로 하는 2차원 코드 판독 방법.
  34. 제32항 또는 제33항에 있어서,
    상기 탬플리트 매칭을 위해 처리될 상기 부분 화상은, 이진 처리 이전의 조건하에 있는 상기 입력 화상으로부터 절단되는 부분 화상인 것을 특징으로 하는 2차원 코드 판독 방법.
  35. 제28항 또는 제29항에 있어서,
    상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 판단하는 처리가 수행될 때, 상기 데이터 셀의 위치를 식별하는 단계에서 검출되는 상기 파인더 패턴(F) 및 상기 얼라인먼트 패턴(P)의 중심의 상기 셀 위치와, 상기 식별된 버전에 의해 결정되는 상기 2차원 코드의 상기 셀 수에 기초하여, 상기 2차원 코드의 각 데이터 셀의 상기 중심 위치를 상기 입력 화상에서의 좌표로 변환하기 위한 좌표 변환식의 변환 계수가 계산되며,
    각 데이터 셀의 상기 중심 위치는, 상기 좌표 변환식을 이용함으로써 상기 입력 화상의 좌표로 변환되고, 상기 좌표 변환식에는, 각 데이터 셀의 상기 중심 위치에 대응하는 상기 좌표를 식별하기 위하여 상기 계산된 변환 계수가 적용되고,
    각 데이터 셀의 데이터 값이, 각 데이터 셀의 절단을 수행하기 위한 상기 위치 식별 처리에 의해 식별되는 상기 좌표 위치의 밀도에 기초하여 결정되는 것을 특징으로 하는 2차원 코드 판독 방법.
  36. 제35항에 있어서,
    상기 데이터 셀을 절단하여 상기 2차원 코드를 형성하는 각 데이터 셀의 상기 데이터 값을 결정하는 처리가 수행될 때, 상기 위치 식별 처리에 의해 식별되는 상기 데이터 셀의 상기 중심 위치에 대응하는 좌표에서의 상기 입력 화상의 밀도는, 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재할 경우, 상기 좌표에 존재하는 상기 화소의 화소 값으로부터 구해지는 밀도이고, 또한 임의의 화소가 상기 식별된 데이터 셀의 상기 중심 위치에 대응하는 상기 입력 화상에서의 상기 좌표에 존재하지 않은 경우, 상기 좌표에 인접하는 주변 화소에의 화소 값의 보간에 의해서 구해지는 밀도이며,
    각 데이터 셀의 상기 데이터 값은, 각 데이터 셀의 상기 중심 위치에 대응하 는 좌표에서의 상기 입력 화상의 상기 밀도와, 각 데이터 셀위 상기 데이터 값을 식별하기 위한 밝은 임계값 및 어두운 임계값과 비교함으로써 결정되는 것을 특징으로 하는 2차원 코드 판독 방법.
  37. 제36항에 있어서,
    각 데이터 셀의 상기 데이터 값을 식별하기 위한 상기 밝은 임계값 및 어두운 임계값은, 상기 2차원 코드의 대각선을 따라 위치하는 상기 입력 화상의 상기 화소의 화소값에 기초하여 설정되는 것을 특징으로 하는 2차원 코드 판독 방법.
  38. 제28항 또는 제29항에 기재된 상기 2차원 코드 판독 방법을 컴퓨터에 실행시킬 수 있는 프로그램이 기록된 기록 매체.
KR1020030048587A 2002-07-18 2003-07-16 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드판독 프로그램을 기록한 기록매체, 휴대형 단말기 및디지털 카메라 KR100563875B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002210302A JP4301775B2 (ja) 2002-07-18 2002-07-18 2次元コード読み取り装置,2次元コード読み取り方法,2次元コード読み取りプログラム及び該プログラムの記録媒体
JPJP-P-2002-00210302 2002-07-18

Publications (2)

Publication Number Publication Date
KR20040010219A KR20040010219A (ko) 2004-01-31
KR100563875B1 true KR100563875B1 (ko) 2006-03-28

Family

ID=29774664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030048587A KR100563875B1 (ko) 2002-07-18 2003-07-16 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드판독 프로그램을 기록한 기록매체, 휴대형 단말기 및디지털 카메라

Country Status (6)

Country Link
US (1) US6863218B2 (ko)
EP (1) EP1383074B1 (ko)
JP (1) JP4301775B2 (ko)
KR (1) KR100563875B1 (ko)
CN (1) CN100502444C (ko)
DE (1) DE60326520D1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075799B1 (ko) * 2009-11-26 2011-10-27 (주)아하 모바일 기술기반 인식코드 인식 방법
CN107490379A (zh) * 2017-08-28 2017-12-19 山东非凡智能科技有限公司 利用二维码地标定位agv工作点位置的方法及系统
CN108763996A (zh) * 2018-03-23 2018-11-06 南京航空航天大学 一种基于二维码的平面定位坐标与方向角测量方法
US10685201B2 (en) 2016-07-22 2020-06-16 Alibaba Group Holding Limited Method and system for recognizing location information in two-dimensional code

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3996520B2 (ja) * 2003-01-30 2007-10-24 株式会社デンソーウェーブ 二次元情報コードおよびその生成方法
WO2004095348A2 (en) * 2003-04-16 2004-11-04 Digimarc Corporation Three dimensional data storage
US7017816B2 (en) * 2003-09-30 2006-03-28 Hewlett-Packard Development Company, L.P. Extracting graphical bar codes from template-based documents
US7870504B1 (en) * 2003-10-01 2011-01-11 TestPlant Inc. Method for monitoring a graphical user interface on a second computer display from a first computer
CN100361504C (zh) * 2004-03-24 2008-01-09 无敌科技股份有限公司 一种数字影像定向系统及其方法
US7296747B2 (en) 2004-04-20 2007-11-20 Michael Rohs Visual code system for camera-equipped mobile devices and applications thereof
CN1947184A (zh) * 2004-04-21 2007-04-11 皇家飞利浦电子股份有限公司 用于并行读出二维编码光学存储介质的点对准
US7347373B2 (en) * 2004-07-08 2008-03-25 Scenera Technologies, Llc Method and system for utilizing a digital camera for retrieving and utilizing barcode information
CN100347714C (zh) * 2004-09-07 2007-11-07 佳能株式会社 用于定位二维条形码的方法和设备
JP4794847B2 (ja) * 2004-10-29 2011-10-19 キヤノン株式会社 2次元コードおよび情報処理方法
US7578436B1 (en) * 2004-11-08 2009-08-25 Pisafe, Inc. Method and apparatus for providing secure document distribution
US7434226B2 (en) * 2004-12-14 2008-10-07 Scenera Technologies, Llc Method and system for monitoring a workflow for an object
US7543748B2 (en) * 2005-02-16 2009-06-09 Pisafe, Inc. Method and system for creating and using redundant and high capacity barcodes
JP4764920B2 (ja) * 2005-04-13 2011-09-07 スキャンバイ,インク. カメラ内装式モバイルデバイスのビジュアルコードシステムおよびその応用例
EP1904952A2 (en) * 2005-05-23 2008-04-02 Nextcode Corporation Efficient finder patterns and methods for application to 2d machine vision problems
US7533818B2 (en) * 2005-06-28 2009-05-19 Direct Measurements Inc. Binary code symbol for non-linear strain measurement and apparatus and method for analyzing and measuring strain therewith
US7597262B2 (en) * 2005-07-13 2009-10-06 Nokia Corporation Two dimensional (2D) code and code size indication method
DE102005035208B4 (de) * 2005-07-27 2007-10-04 Siemens Ag Verfahren zur Lokalisierung von Bildelementen
KR100828539B1 (ko) * 2005-09-20 2008-05-13 후지제롯쿠스 가부시끼가이샤 이차원 코드의 검출 방법, 검출 장치, 및 검출 프로그램을기억한 기억 매체
JP2007090448A (ja) * 2005-09-27 2007-04-12 Honda Motor Co Ltd 二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット
WO2007075719A2 (en) * 2005-12-16 2007-07-05 Pisafe, Inc. Method and system for creating and using barcodes
JP4911340B2 (ja) 2006-02-10 2012-04-04 富士ゼロックス株式会社 二次元コード検出システムおよび二次元コード検出プログラム
JP4042065B1 (ja) * 2006-03-10 2008-02-06 健治 吉田 情報処理装置への入力処理システム
US7546950B2 (en) * 2006-03-28 2009-06-16 Seiko Epson Corporation Method and apparatus for locating and decoding a two-dimensional machine-readable symbol
US8150163B2 (en) 2006-04-12 2012-04-03 Scanbuy, Inc. System and method for recovering image detail from multiple image frames in real-time
US7478746B2 (en) * 2006-05-31 2009-01-20 Konica Minolta Systems Laboratory, Inc. Two-dimensional color barcode and method of generating and decoding the same
JP4890112B2 (ja) * 2006-06-13 2012-03-07 日立コンピュータ機器株式会社 画像処理装置及び画像処理方法
WO2008021387A2 (en) * 2006-08-17 2008-02-21 Gregory Hovis Multi-format, binary code symbol for non-linear strain measurement
US20080110991A1 (en) * 2006-11-15 2008-05-15 Bellsouth Intellectual Property Corporation Apparatus and methods for providing active functions using encoded two-dimensional arrays
KR101121439B1 (ko) * 2006-11-27 2012-03-15 엘지전자 주식회사 이미지 코드를 이용한 기능 실행 방법 및 그 단말기
JP5138210B2 (ja) * 2006-12-18 2013-02-06 シャープ株式会社 符号読み取り装置、符号読み取り装置の制御プログラム、符号読み取り装置の制御プログラムを記録した記録媒体
JP2008183778A (ja) * 2007-01-29 2008-08-14 Seiko Epson Corp 2次元コード印刷方法、そのプログラム及びインクジェットプリンタ
JP5082637B2 (ja) * 2007-07-10 2012-11-28 富士通株式会社 画像処理プログラム、画像処理方法及び画像処理装置
JP5111055B2 (ja) * 2007-10-26 2012-12-26 キヤノン株式会社 画像処理装置及び画像処理方法、コンピュータプログラム
CN101482933B (zh) * 2008-01-08 2010-09-01 纬创资通股份有限公司 用于高速识读码的辨识数据产生方法及其相关装置
US8366004B2 (en) * 2008-02-22 2013-02-05 Qualcomm Incorporated Barcode detection based on morphological operations
US8596541B2 (en) * 2008-02-22 2013-12-03 Qualcomm Incorporated Image capture device with integrated barcode scanning
JP5136302B2 (ja) 2008-03-27 2013-02-06 株式会社デンソーウェーブ 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法
JP4871918B2 (ja) * 2008-06-12 2012-02-08 日本電信電話株式会社 画像変換装置、画像変換方法、画像変換プログラム及び画像変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US20100084470A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Two-dimensional barcode localization for camera based devices
JP5541672B2 (ja) * 2009-02-10 2014-07-09 キヤノン株式会社 装置、方法、プログラム
JP5507134B2 (ja) * 2009-07-03 2014-05-28 株式会社富士通コンピュータテクノロジーズ 2次元コード読取方法、2次元コード認識方法及び2次元コード読取装置
TW201113815A (en) * 2009-10-09 2011-04-16 Primax Electronics Ltd QR code processing method and apparatus thereof
JP5604761B2 (ja) 2009-11-11 2014-10-15 健治 吉田 印刷媒体、情報処理方法、情報処理装置
JP5560887B2 (ja) * 2010-05-10 2014-07-30 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
EP2393036B1 (en) * 2010-06-01 2016-03-02 Fujian Newland Computer Co., Ltd. Barcode decoding chip
CN101908125B (zh) * 2010-06-01 2014-07-02 福建新大陆电脑股份有限公司 Qr码条码解码芯片及其解码方法
CN101882210B (zh) * 2010-06-01 2012-06-27 福建新大陆电脑股份有限公司 矩阵式二维条码解码芯片及其解码方法
CN102289647A (zh) * 2010-06-18 2011-12-21 富港电子(昆山)有限公司 Qr码识别系统及其识别方法
JP5447265B2 (ja) * 2010-07-30 2014-03-19 ソニー株式会社 マイクロビーズ自動識別方法
CN102376081A (zh) * 2010-08-25 2012-03-14 北京中科亚创科技有限责任公司 自动修正图像的方法及装置
CN102411701A (zh) * 2010-09-20 2012-04-11 航天信息股份有限公司 增值税专用发票的二维码阵列图像扫描识别方法及系统
AU2010257441B2 (en) * 2010-12-24 2012-09-20 Canon Kabushiki Kaisha Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode
CN102880882B (zh) * 2011-07-12 2016-07-06 国家电网公司 基于二维码的设备巡视管理装置
US8608074B2 (en) 2011-12-20 2013-12-17 Seiko Epson Corporation Method and apparatus for locating and decoding machine-readable symbols
RS54226B1 (en) 2012-01-31 2015-12-31 Quadra Graphic Doo PROCEDURE FOR MAKING A HYBRID VOUCHER
US10147214B2 (en) * 2012-06-06 2018-12-04 Sodyo Ltd. Display synchronization using colored anchors
MX346785B (es) 2012-06-06 2017-03-30 Sodyo Ltd Anclajes para la navegación basado en la localización y aplicaciones de realidad aumentada.
WO2014002000A1 (en) * 2012-06-25 2014-01-03 Tak Wai Lau Image acquisition apparatus and process
WO2014028561A2 (en) 2012-08-14 2014-02-20 Insular, Corp. Systems and methods for constructing temporary, re-locatable structures
US9382703B2 (en) 2012-08-14 2016-07-05 Premium Steel Building Systems, Inc. Systems and methods for constructing temporary, re-locatable structures
CN102779115A (zh) * 2012-08-17 2012-11-14 成都集客宝信息技术有限公司 一种信息处理方法、装置及系统
US10565483B2 (en) * 2012-08-31 2020-02-18 International Business Machines Corporation Two-dimensional barcode to avoid unintentional scanning
US9131076B2 (en) * 2013-02-05 2015-09-08 Kelvin Patrick LeBeaux System, method and computer program product for facilitating optical data transfer to a mobile device
US20140340423A1 (en) * 2013-03-15 2014-11-20 Nexref Technologies, Llc Marker-based augmented reality (AR) display with inventory management
US8936194B1 (en) * 2013-03-15 2015-01-20 Wunderlich-Malec Engineering, Inc. Methods and systems for using two-dimensional matrix codes associated with panel component and equipment information and quality control
CN106790495A (zh) * 2013-07-08 2017-05-31 玛链(上海)网络技术有限公司 一种通信系统及移动终端和后台服务器
GB201314642D0 (en) * 2013-08-15 2013-10-02 Summerfield Gideon Image Identification System and Method
CN104517089B (zh) * 2013-09-29 2017-09-26 北大方正集团有限公司 一种二维码解码系统及其方法
CN104517090B (zh) * 2013-09-29 2017-09-05 北大方正集团有限公司 一种qr码探测图形的检测方法及系统
JP5959550B2 (ja) * 2014-01-29 2016-08-02 京セラドキュメントソリューションズ株式会社 画像処理装置
USD757094S1 (en) * 2014-04-29 2016-05-24 Tencent Technology (Shenzhen) Company Limited Display screen portion with animated graphical user interface
CN104778491B (zh) * 2014-10-13 2017-11-07 刘整 用于信息处理的图像码及生成与解析其的装置与方法
CN104598904B (zh) * 2014-11-14 2019-04-02 腾讯科技(深圳)有限公司 一种图形码校正图形中心的定位方法和设备
EP3467700B1 (en) 2014-11-18 2022-05-04 Cognex Corporation Systems and methods for decoding two-dimensional matrix symbols
US10635958B2 (en) 2015-01-28 2020-04-28 Sodyo Ltd. Hybrid visual tagging using customized colored tiles
CN106033592A (zh) * 2015-03-11 2016-10-19 株式会社理光 原稿的复制件矫正方法、原稿提供装置、复制件矫正装置以及原稿的复制件矫正系统
CN106156674B (zh) * 2015-03-31 2019-03-08 联想(北京)有限公司 一种识别方法及电子设备
CN104951726B (zh) * 2015-06-25 2017-12-08 福建联迪商用设备有限公司 用于qr二维码位置探测的方法及装置
US9501681B1 (en) * 2015-07-14 2016-11-22 A9.Com, Inc. Decoding visual codes
WO2017017898A1 (ja) * 2015-07-28 2017-02-02 パナソニックIpマネジメント株式会社 移動方向決定方法および移動方向決定装置
USD768709S1 (en) * 2015-07-31 2016-10-11 Gen-Probe Incorporated Display screen or portion thereof with animated graphical user interface
CN105138943B (zh) * 2015-09-02 2017-10-24 福建联迪商用设备有限公司 Qr码位置探测图形破损时的解码方法及系统
CN105184208B (zh) * 2015-09-02 2017-10-31 福建联迪商用设备有限公司 一种二维码初步定位方法及系统
KR20180052615A (ko) * 2015-09-15 2018-05-18 다이니폰 인사츠 가부시키가이샤 정보 보존 장치 및 정보 판독 장치
US9430682B1 (en) * 2015-09-28 2016-08-30 King Saud University Pressure profile data coding system and method
JP6520659B2 (ja) * 2015-11-17 2019-05-29 富士通株式会社 シンボル検出装置、画像処理装置、及び、シンボル検出方法
JP2018001333A (ja) * 2016-06-30 2018-01-11 セイコーエプソン株式会社 校正ボード、ロボット、及び検出方法
MA39233B1 (fr) * 2016-07-27 2018-11-30 Univ Abdelmalek Essaadi Tetouan Procédé d'identification à distance du code qr au moyen d'une caméra.
CN106326801B (zh) * 2016-09-22 2019-02-05 华中科技大学 一种立体二维码的扫描方法
US10528855B2 (en) 2017-11-29 2020-01-07 Dell Products L.P. Generating parts with encoded geometry for passively representing information
US10303907B1 (en) 2017-11-29 2019-05-28 Dell Products L.P. Decoding parts with encoded geometry for retrieving passively represented information
WO2019116397A1 (en) * 2017-12-16 2019-06-20 Seshaasai Business Forms Pvt. Ltd System and method for enhancing the quality of a qr code image for better readability
US11222188B2 (en) * 2017-12-22 2022-01-11 Dell Products L.P. Using passively represented information to identify items within a multi-dimensional space
US10452884B2 (en) * 2017-12-22 2019-10-22 Dell Products L.P. Using passively represented information to identify items within a multi-dimensional space
KR102660603B1 (ko) 2018-07-11 2024-04-25 소디오 리미티드 모자이크 이미지 센서를 사용한 고해상도의 기계 판독 가능 태그의 검출
CN109060840B (zh) * 2018-08-10 2022-04-05 北京极智嘉科技股份有限公司 二维码的质量监测方法、装置、机器人、服务器和介质
CN110046528B (zh) * 2018-11-20 2022-10-28 维库(厦门)信息技术有限公司 一种点状DataMatrix二维码识别方法
EP3899793A4 (en) * 2018-12-20 2022-08-10 Hewlett-Packard Development Company, L.P. READABLE CURVED VISUAL MARKS
CN109740716B (zh) * 2018-12-30 2020-11-06 尤尼泰克(嘉兴)信息技术有限公司 一种快速准确识别的二维码绘制方法
US11386315B2 (en) 2019-01-07 2022-07-12 UNI2K Information Technology Co., Ltd. 2D barcode enabling quick and accurate code recognition and method for creating same
CN109934038B (zh) * 2019-03-18 2021-12-07 创新先进技术有限公司 二维码校正方法、装置及设备
CN110033065B (zh) 2019-03-18 2021-04-27 创新先进技术有限公司 窄条二维码、窄条二维码的生成、识别方法、装置及设备
JP7230652B2 (ja) 2019-04-05 2023-03-01 オムロン株式会社 シンボル評価装置、および評価方法
US10796121B1 (en) 2019-05-31 2020-10-06 Dell Products L.P. Decoding parts with encoded geometry for retrieving passively represented information
US10817693B1 (en) * 2019-07-10 2020-10-27 Datalogic Ip Tech S.R.L. System for decode of two-dimensional indicia
CN110399956A (zh) * 2019-07-31 2019-11-01 中国工商银行股份有限公司 用于识别二维码的方法、装置、电子设备以及介质
US11003881B2 (en) * 2019-09-11 2021-05-11 Datalogic Ip Tech S.R.L. System for multiple decode of captured images
US10832016B1 (en) 2019-09-27 2020-11-10 Dell Products L.P. Three dimensional encoded geometry fabrication operation
US11023794B2 (en) 2019-09-27 2021-06-01 Dell Products L.P. Encoded geometry fabrication operation
US11531826B2 (en) * 2019-11-01 2022-12-20 Zebra Technologies Corporation Systems and methods for user choice of barcode scanning range
US11562157B2 (en) * 2019-12-20 2023-01-24 Zebra Technologies Corporation System and method of selective auxiliary data capture
CN113378595B (zh) * 2020-03-10 2023-09-22 顺丰科技有限公司 二维码定位方法、装置、设备及存储介质
CN111667479A (zh) * 2020-06-10 2020-09-15 创新奇智(成都)科技有限公司 目标图像的图案核验方法及装置、电子设备、存储介质
DE102020130929A1 (de) * 2020-07-31 2022-02-03 Technische Universität Dortmund Verfahren und Vorrichtung zur Auswertung von Matrixcodes
CN112069852B (zh) * 2020-09-07 2023-12-12 凌云光技术股份有限公司 一种基于游程编码的低质量二维码信息提取方法及装置
JP7122017B2 (ja) * 2020-12-28 2022-08-19 株式会社APSAM Imaging 画像解析方法、推定装置、推定システム、制御プログラム、記録媒体
CN113664838B (zh) * 2021-10-21 2022-01-18 季华实验室 机器人定位放置控制方法、装置、电子设备及存储介质
CN114548136A (zh) * 2021-11-18 2022-05-27 福建星网天合智能科技有限公司 一种反光二维码图片的解析方法、装置、设备和介质
CN114239631B (zh) * 2021-11-19 2024-03-26 支付宝(杭州)信息技术有限公司 二维码识别方法、装置、存储介质及电子设备
CN113822092B (zh) * 2021-11-25 2022-03-15 北京紫光青藤微系统有限公司 用于定位位置探测图形的方法及装置、电子设备、介质
CN114386448A (zh) * 2021-12-28 2022-04-22 易唯思智能自动化装备无锡有限公司 一种轮胎dot码在线识别方法及在线识别系统
EP4332832B1 (de) * 2022-09-02 2024-06-26 Sick Ag Lokalisieren eines optischen codes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276315A (en) * 1992-05-14 1994-01-04 United Parcel Service Of America, Inc. Method and apparatus for processing low resolution images of degraded bar code symbols
JP2952170B2 (ja) * 1994-12-16 1999-09-20 オリンパス光学工業株式会社 情報再生システム
JP3668275B2 (ja) * 1995-03-15 2005-07-06 シャープ株式会社 デジタル情報記録方法、解読方法および解読装置
JP3627416B2 (ja) 1996-12-20 2005-03-09 株式会社デンソー 2次元コード読取装置および記憶媒体
US6685095B2 (en) * 1998-05-05 2004-02-03 Symagery Microsystems, Inc. Apparatus and method for decoding damaged optical codes
US6267296B1 (en) * 1998-05-12 2001-07-31 Denso Corporation Two-dimensional code and method of optically reading the same
EP0999519B1 (en) * 1998-11-06 2006-07-26 Datalogic S.P.A. Distortion correction method in optical code reading
JP2000222517A (ja) * 1998-11-27 2000-08-11 Denso Corp 2次元コ―ド読取方法、2次元コ―ド読取装置及び記録媒体
JP2996243B1 (ja) 1998-12-09 1999-12-27 株式会社デンソー 2次元コード読取方法、2次元コード読取装置及び記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075799B1 (ko) * 2009-11-26 2011-10-27 (주)아하 모바일 기술기반 인식코드 인식 방법
US10685201B2 (en) 2016-07-22 2020-06-16 Alibaba Group Holding Limited Method and system for recognizing location information in two-dimensional code
CN107490379A (zh) * 2017-08-28 2017-12-19 山东非凡智能科技有限公司 利用二维码地标定位agv工作点位置的方法及系统
CN107490379B (zh) * 2017-08-28 2020-11-27 山东非凡智能科技有限公司 利用二维码地标定位agv工作点位置的方法及系统
CN108763996A (zh) * 2018-03-23 2018-11-06 南京航空航天大学 一种基于二维码的平面定位坐标与方向角测量方法

Also Published As

Publication number Publication date
KR20040010219A (ko) 2004-01-31
JP4301775B2 (ja) 2009-07-22
CN100502444C (zh) 2009-06-17
CN1492661A (zh) 2004-04-28
DE60326520D1 (de) 2009-04-23
JP2004054530A (ja) 2004-02-19
EP1383074B1 (en) 2009-03-11
US20040020989A1 (en) 2004-02-05
US6863218B2 (en) 2005-03-08
EP1383074A1 (en) 2004-01-21

Similar Documents

Publication Publication Date Title
KR100563875B1 (ko) 2차원 코드 판독 장치, 2차원 코드 판독 방법, 2차원 코드판독 프로그램을 기록한 기록매체, 휴대형 단말기 및디지털 카메라
CN106485183B (zh) 一种二维码定位方法及系统
US7813553B2 (en) Image region detection method, recording medium, and device therefor
EP1619604B1 (en) Code type determining method and code boundary detecting method
US7562820B2 (en) Barcode recognition apparatus
WO2013044875A1 (zh) 线性条码识别方法和系统
JP5229050B2 (ja) 画像からの文書領域抽出装置、方法、及びプログラム
JP2005316755A (ja) 2次元矩形コードシンボル読み取り装置及び2次元矩形コードシンボル読み取り方法
US20140270420A1 (en) Finger biometric sensor providing coarse matching of ridge flow data using histograms and related methods
WO2005086074A1 (ja) 2次元コード領域抽出方法、2次元コード領域抽出装置、電子機器、2次元コード領域抽出プログラム及びそのプログラムを記録した記録媒体
CN110569845A (zh) 一种试卷图像的校正方法及相关装置
US20080149722A1 (en) Multiple barcode detection
CN111523331B (zh) 一种二维码识别方法及装置
JP6785546B2 (ja) 二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム
JP4163406B2 (ja) バーコード認識装置
CN114781417A (zh) 一种二维码识别方法、二维码识别装置及电子设备
WO2007052957A1 (en) Device and method of classifying an image
JP6952846B2 (ja) 二次元コード
KR100791704B1 (ko) 바코드 인식 장치
JP2006047252A (ja) 画像処理装置
JPH07141465A (ja) 文書画像の傾き検出方法
KR100791705B1 (ko) 바코드 인식 장치
JP5185072B2 (ja) 枠検出方法、枠検出装置及び枠検出プログラム
CN116188264A (zh) 基于视觉标记的点云拼接方法
CN116758352A (zh) 一种基于多模态的ai菜品识别方法、系统、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150306

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160311

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170310

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180309

Year of fee payment: 13