KR102419540B1 - 광학 코드의 모듈 크기의 결정 - Google Patents

광학 코드의 모듈 크기의 결정 Download PDF

Info

Publication number
KR102419540B1
KR102419540B1 KR1020200094519A KR20200094519A KR102419540B1 KR 102419540 B1 KR102419540 B1 KR 102419540B1 KR 1020200094519 A KR1020200094519 A KR 1020200094519A KR 20200094519 A KR20200094519 A KR 20200094519A KR 102419540 B1 KR102419540 B1 KR 102419540B1
Authority
KR
South Korea
Prior art keywords
module size
luminance distribution
code
determining
module
Prior art date
Application number
KR1020200094519A
Other languages
English (en)
Other versions
KR20210029086A (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 KR20210029086A publication Critical patent/KR20210029086A/ko
Application granted granted Critical
Publication of KR102419540B1 publication Critical patent/KR102419540B1/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/1439Methods for optical code recognition including a method step for retrieval 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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1098Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices the scanning arrangement having a modular construction
    • 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
    • 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
    • G06K2007/10504Data fields affixed to objects or articles

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Character Input (AREA)

Abstract

본 발명은 광학 코드(20)의 모듈 크기의 결정 방법에 관한 것으로, 상기 방법에서는 상기 코드(20)를 구비한 이미지 데이터가 기록되고, 상기 이미지 데이터로부터 휘도 분포, 특히 그레이 스케일 값 히스토그램(gray scale value histogram)이 결정된다. 이때 상기 모듈 크기는 상기 휘도 분포로부터 결정된다.

Description

광학 코드의 모듈 크기의 결정{DETERMINING THE MODULE SIZE OF AN OPTICAL CODE}
본 발명은 제1항 또는 제14항의 전제부에 따른 광학 코드의 모듈 크기의 결정 및 코드 판독기에 관한 것이다.
코드 판독기들은 슈퍼마켓 계산대, 자동 소포 식별, 우편물 분류, 항공 내 수하물 발송 및 다른 물류 적용예들에서 잘 알려져 있다. 코드 스캐너(code scanner)에서는 레이저 빔이 회전 거울 또는 다면 거울 바퀴에 의해 코드 위로 횡 방향으로 안내된다. 카메라 기반의 코드 판독기는 이미지 센서에 의해 그 위에 코드가 위치하는 물체들의 이미지들을 기록하고, 이미지 평가 소프트웨어(software)는 이와 같은 이미지들로부터 코드 정보를 추출한다. 카메라 기반의 코드 판독기들은, 매트릭스 코드(matrix code)와 같이 이차원으로도 구성되고 더 많은 정보를 제공하는, 일차원 바코드와 다른 코드 유형들도 문제없이 다룬다.
중요한 적용군에서는 코드를 지지하는 물체들이 코드 판독기를 스쳐 지나가도록 이송된다. 이 경우, 코드 스캐너는 각각 연속적으로 자신의 판독 영역 내로 안내된 코드들을 검출한다. 대안적으로 카메라 기반의 코드 판독기에서는 라인 스캔 카메라(line scan camera)가 코드 정보를 구비한 물체 이미지들을 연속적으로, 그리고 한 줄씩 상대 운동으로 판독 입력한다. 이차원 이미지 센서에 의해서는 규칙적으로, 기록 주파수 및 이송 속도에 따라서 어느 정도 겹치는 이미지 데이터가 기록된다. 물체들이 컨베이어 벨트(conveyor belt) 상에서 임의의 배향으로 배치될 수 있기 위해, 물체들을 여러 측면 또는 모든 측면들에서 기록할 목적으로 복수의 코드 판독기가 판독 터널에 제공되어 있는 경우가 많다.
광학 코드의 특성 변수는 모듈 크기이다. 모듈은 코드의 최소 단위이고, 코드 요소들 또는 부호들은 하나 또는 다수의 모듈로 구성되어 있다. 모듈 크기는 상기 모듈의 길이에 대한 척도이고 모듈당 픽셀(ppm)로 지시된다. 그에 따라 바코드의 경우, 한 개의 바(bar)의 폭은 모듈 크기에 상응하거나, 또는 상기 모듈 크기의 수배에 상응하고, 이는 이차원 코드에서 어둡거나 밝은 영역의 두 가지 차원에 대해 동일하게 적용된다. 큰 모듈 크기는 코드가 이미지 데이터 또는 그레이 스케일 값 프로파일(gray scale value profile)에서 높은 해상도로 검출되어 있다는 사실을 의미한다. 따라서, 모듈 크기가 작으면 작을수록, 특히 상기 모듈 크기가 2 또는 더 낮은 ppm의 범위에 도달하는 경우, 디코딩은 더 어려워진다.
디코더가 무엇보다 작은 모듈 크기들에서 이미 처음부터 우수한 사정(assessment)을 할 수 있는 경우가 바람직할 것이다. 이 경우, 낮은 해상도의 코드도 판독하기 위해, 말하자면 조치들이 취해진다. 하나의 예시는 소위 초해상도이다. 상기 초해상도는 복수의 낮은 해상도의 이미지를 하나의 더 높은 해상도의 이미지로 계산하는 방법들을 의미한다. 역으로 경우에 따라 본래 큰 모듈 크기에서 높은 해상도로 검출된 코드에 대해 복잡한 디코딩 방법이 생략될 수 있다.
그러나 실제로 종래의 방법에서는 모듈 크기를 성공적인 디코딩 과정 이후에 비로소 알게 된다. 이 경우, 코드가 어떤 부호들을 포함하는지 분명하고, 그에 따라 이미지 데이터에서 상기 코드의 전체 크기에 의해 모듈 크기도 높은 정확성으로 계산될 수 있다. 예를 들어 바코드의 경우, 부호들에 의해 시작 패턴과 정지 패턴 사이의 모듈들의 전체 개수가 결정되고, 픽셀들로 이루어진 코드의 길이는 이와 같은 전체 개수에 의해 나뉜다. 그에 따라 모듈 크기는 디코딩의 결과이고 디코딩의 수단은 아니다.
원칙적으로 모듈 크기는 기록된 그레이 스케일 값 프로파일의 2개의 에지 사이의 최소 간격과 다르지 않다. 이러한 에지들, 다시 말해 밝은 코드 요소와 어두운 코드 요소 사이의 전이부들은 상기 그레이 스케일 값 프로파일의 도함수의 극값들(extrema)에 의해 발견된다. 그러나 그 결과는 에지 위치들이 얼마나 정확하게 확인되는지에 따라 민감하게 의존한다. 이는 특히 매우 작은 모듈 크기들에서 어려운데, 그 이유는 상기 에지 위치들이 우선 단지 이산적(discrete)으로, 그리고 그에 따라 서브 픽셀(subpixel) 부정확하게 존재하기 때문이다. 그뿐 아니라 상기 에지 위치들은 잡음에 취약하다. 이미 근본적으로 단순히 에지에 기반한 방법은, 규칙적인 8 비트 또는 심지어 그보다 더 높은 비트의 본래의 그레이 스케일 값 정보를 단지 1 비트로 감소시키는 이진화(binarization) 방법이고, 이와 같은 정보 손실 또한 모듈 크기 결정의 정확성을 제한한다.
계속해서 코드 판독 분야에서는 이미지 데이터의 그레이 스케일 값 히스토그램(gray scale value histogram)을 생성하는 것이 잘 알려져 있다. 그러나 상기 그레이 스케일 값 히스토그램은 완전히 다른 목적들을 위해 사용되는데, 예를 들어 더 균일한 조명을 얻거나, 또는 모방하기 위해, 혹은 적합한 이진화 임계값을 검출하기 위해 사용된다.
따라서 본 발명의 과제는 모듈 크기의 결정을 위해 더 나은 방법을 제시하는 것이다.
이와 같은 과제는 제1항 또는 제14항에 따른 광학 코드의 모듈 크기의 결정 방법 및 코드 판독기에 의해 해결된다. 상기 광학 코드는 바코드일 수 있지만, 공지된 여러 기준에 따른 이차원 코드일 수도 있다. 상기 코드를 포함하고, 바람직하게 적어도 대략적으로 분할하며, 그리고 그에 따라 코드 영역에 대해 적합하게 절단되어 있는 이미지 데이터가 생성된다. 이미지 데이터는 일반적으로 카메라 기반의 코드 판독기의 이미지 센서에 의해 기록되지만, 본 출원서에서는 바코드 스캐너의 강도 프로파일(intensity profile)도 이미지 데이터의 개념에 포함된다. 상기 이미지 데이터로부터 강도 분포 또는 휘도 분포가 생성된다. 이것은 일반적으로 가능한 밝깃값들의 상대 빈도의 함수, 특히 이산적 형태로 그레이 스케일 값 히스토그램이다. 다시 말해, X-축 상에 가능한 휘도 또는 강도, 예컨대 8 비트의 경우, 흑색에 대해 0 내지 백색에 대해 255의 그레이 스케일 값들이 기재되고, Y-축 상에 해당하는 상대 빈도들이 기재됨으로써 상기 휘도 분포가 표현된다. 그레이 스케일 값 히스토그램의 경우, 그레이 스케일 값들은 소위 용기들(bins)이고, 상기 용기들 내에서 상응하는 밝깃값을 갖는 픽셀들의 개수가 셈된다.
본 발명은, 모듈 크기를 휘도 분포로부터 결정하는 발상에서 출발한다. 이는 코드의 간격들 또는 상기 코드에 있는 에지들 사이의 간격들이 측정되지 않는 간접적인 방식이다. 오히려, 특히 작은 모듈 크기들의 경우, 모듈 크기가 이미지 데이터에서 어떤 그레이 스케일 값들이 발생하는지에 영향을 미치거나, 또는 이와 같은 그레이 스케일 값들이 어떻게 분포되어 있는지에 영향을 미친다는 사실이 이용되고, 이러한 사실은 휘도 분포에서 분석된다. 모듈 크기의 결정은 비교적 대략적으로 이루어질 수 있고, 단지 상기 모듈 크기가 특정 부류에 속하는지 여부만을 검사할 수 있다. 그러나 바람직하게는 실제로 숫자로 나타낸 값이 도출된다.
본 발명의 장점은, 이미지 처리 사슬의 매우 초기의 단계들에서 이루어질 수 있고, 특히 성공적인 디코딩을 전제로 하지 않는, 모듈 크기의 간단하고 신속한 계산이 구현된다는 것이다. 이 경우, 서브 픽셀 범위 내에서도 높은 정확성이 달성되는데, 예를 들어 바코드에 대해 2.0 ppm 내지 0.6 ppm까지, 그리고 이차원 코드에 대해 2.5 ppm 내지 1.5 ppm에서 높은 정확성이 달성된다. 이것은 최근에 예를 들어 초해상도 방법을 사용하여 디코딩 가능한 ppm-범위들이다. 본 발명에 따른 방법은 또한 위치 정확한, 높은 정확도의 에지 검출을 전제로 하지 않고, 국부적인 이미지 정보뿐만 아니라 면적으로부터의 이미지 정보를 이용한다. 따라서 상기 방법은 국부적인 장애 또는 잡음에 대해서도 현저히 더 안정적이다.
모듈 크기는 바람직하게 가장 밝은 영역 및 가장 어두운 영역을 제외한 휘도 분포의 중간 영역으로부터 결정된다. 높은 해상도의 코드의 이미지 데이터에서 통상적인 기대는, 휘도 분포가 밝은 코드 영역에 대해 측면 피크 및 어두운 코드 영역에 대해 제2 측면 피크를 가짐으로써 이원 양상(bimodality)을 가질 것이라는 사실이다. 통상적으로 상기 이원 양상은, 이미지 데이터를 이진화하기 위해, 다시 말해 각각의 픽셀을 밝거나, 또는 어두운 것으로 분류하기 위해 이용된다. 이와 같은 실시 형태에서 휘도 분포는 가장 뚜렷한 밝은 픽셀 및 어두운 픽셀을 제외한 바로 전이부 영역으로 제한된다. 그에 따라 통상적으로는 무시되거나, 또는 밝거나 어두운 2개의 부류 중 하나의 부류에 할당되는 중간값들이 중요하다. 큰 모듈 크기를 갖는 높은 해상도로 기록된 코드의 경우, 이와 같은 전이부 영역이 거의 평평하다. 본 발명은 작은 모듈 크기들의 경우, 전이부 영역 내에서 어느 정도 해진(frayed) 추가의 피크가 형성되고, 상기 피크의 특성들로부터 모듈 크기가 재구성된다는 사실을 발견했다.
이미지 데이터에서 바람직하게 광학 코드의 에지들이 발견되고, 휘도 분포는 단지 에지들 주변에 있는 이미지 데이터를 통해 형성된다. 다시 말해, 원칙적으로는 마찬가지로 가능하지만, 상기 휘도 분포를 상기 코드의 이미지 데이터의 모든 픽셀들로부터 결정하는 대신에, 말하자면 에지들의 영역 내에서 특정 픽셀들의 선택이 이루어진다. 이를 위해, 에지들의 별도의 위치 정확한, 또는 심지어 서브 픽셀 정확한 위치 확인이 필요하지 않은데, 그 이유는 약간 더 큰 주변으로부터의 소수의 픽셀이 휘도 분포에 기여하는 경우에도, 모듈 크기의 결정에서 기껏해야 보통 수준의 오차가 야기되기 때문이다. 이와 같은 방식으로 예를 들어 도입부에서 언급된 것처럼, 상기 에지들은 그레이 스케일 값 프로파일의 도함수의 극값들로서 위치 확인될 수 있고, 그곳에 있는 픽셀들 및 특정 최대 간격을 갖는 픽셀들은 휘도 분포의 결정을 위해 사용될 수 있다. 휘도 분포를 에지들의 주변으로 제한함으로써, 이전 문단의 논의에 상응하게 본 발명에 따른 모듈 크기의 사정에 덜 기여하는 단순히 어둡거나 밝은 더 큰 영역들은 상기 휘도 분포에 포함되지 않는다. 에지들의 주변을 고려함으로써, 휘도 분포의 가장자리들에서 밝거나 어두운 것으로, 그리고 그 사이에 있는 그레이 스케일 값들의 주요 전이부 영역으로 구분하는 임계값들을 규정해야 할 필요가 없어진다.
휘도 분포는 바람직하게, 빈도가 잡음 임계값을 초과하는 활성 영역에 대해 적합하게 절단된다. 그럼으로써, 단지 잡음 효과들로 인해 상응하는 그레이 스케일 값들의 일정 빈도를 암시하고, 실제로 모듈 크기의 결정을 위해 전혀 중요하지 않은 정보를 포함하는 휘도 분포의 영역들은 제거된다. 특별히 다시 언급되어 있지 않더라도, 후속하는 기준들 및 평가들은 바람직하게 전체 휘도 분포가 아닌 상기 활성 영역과 관련이 있다.
모듈 크기는 바람직하게 휘도 분포의 폭, 적분 및/또는 최댓값으로부터 결정된다. 이와 같은 특징들에 의해, 바람직하게 밝은 곳과 어두운 곳 사이의 전이부 영역의 휘도 분포의 길이 및 형태가 간단하게 결정 및 처리될 변수들로 검출된다. 상기 폭은 휘도 분포 내에 존재하는 최소 그레이 스케일 값과 최대 그레이 스케일 값 사이의 차이에 상응한다. 휘도 분포의 적분 및 최댓값은 간단한 방식으로 상기 휘도 분포의 파형을 기술한다. 0과 미미하게 다른 빈도들이 결과를 왜곡하지 않기 위해, 바람직하게 폭 및 적분은 잡음 임계값 위에 있는 휘도 분포의 활성 영역으로부터 계산된다. 언급된 변수들로부터 모듈 크기의 사정이 이루어질 수 있다. 예를 들어, 적어도 작은 모듈 크기들에 대해 모듈 크기가 휘도 분포의 폭, 특히 상기 휘도 분포의 활성 영역의 폭에 선형 종속한다는 가정하에 이미 우수한 결과들이 달성된다. 이와 같은 접근 방식에서 모듈 크기를 결정하기 위해, 상기 폭에 단지 스케일링 인자(scaling factor)만을 곱하면 된다.
모듈 크기는 바람직하게 휘도 분포의 적분과 폭의 비율들(quotient)로부터 결정된다. 이는 특히 간단하게 계산될 수 있고, 동시에 모듈 크기의 계산을 위해 특히 적합한 기초로서 입증되었다.
상기 비율은, 바람직하게 스케일링 함수(scaling function)를 사용하여, 특히 모듈당 픽셀 단위에서 모듈 크기에 매핑된다. 상기 스케일링 함수는 한편으로 목표 단위 ppm으로 환산하기 위해 이용되고, 추가로 코드가 기록된 적용 조건들에 적응하기 위해 이용된다. 상기 스케일링 함수는 예를 들어 잘 알려져 있거나, 또는 디코딩 이후에 추후 결정된 모듈 크기를 갖는 이미 판독된 코드로부터 보정 또는 학습될 수 있다. 간단하게는 단 하나의 스케일링 인자만이 스케일링 함수로서 사용되는데, 그 이유는 대략 2.5 ppm까지의 특히 중요한 모듈 크기 범위 내에서는 상기 스케일링 인자가 우수한 결과들을 위해 충분하기 때문이다.
휘도 분포는 바람직하게 상기 휘도 분포의 중심 및 측면들에서 서로 다른 가중 인자들에 의해 리스케일링(rescaling)된다. 이를 위해 예를 들어 가중 함수에 각각 상기 휘도 분포를 곱하거나, 또는 수학적으로 대등한 리스케일링이 실시된다. 이미 여러 번 언급된 것처럼, 상기 휘도 분포의 측면 영역들은 코드의 평면 영역들 내에 있는 밝고 어두운 픽셀들에서 기인하는 반면, 모듈 크기는 오히려 그 사이에 있는 전이 영역 내에 있는 그레이 스케일 값들로부터 사정된다. 따라서, 상기 휘도 분포를 가중 인자들에 의해 인공적으로 적합하게 조정하고, 이와 같은 방식으로 특정 부분들에 더 높거나, 또는 더 낮은 가중치를 제공하는 것이 바람직할 수 있다. 휘도 분포의 적분이 결정되는 경우에 한해서, 상기 리스케일링은 바람직하게 그 이전에 이루어진다.
휘도 분포의 중심은 바람직하게 측면들에 대해 상대적으로 융기한다. 다시 말해 상기 휘도 분포는 측면에서 1보다 작은 가중치에 의해 리스케일링되고, 중심에서 1보다 큰 가중치에 의해 리스케일링된다. 그럼으로써 상기 휘도 분포의 중간 영역은 영향을 받는다. 휘도 분포가 이미 단지 에지들의 주변에 기초하는 경우, 밝고 어두운 표면 영역들을 무시하는 목표한 효과가 새로운 가중치에 의해 다시 한 번 보강된다.
휘도 분포는 바람직하게 왼쪽 측면, 중심 및 오른쪽 측면으로 삼등분되고, 상기 3개의 부분에 대해 각각 하나의 가중 인자가 리스케일링을 위해 사용된다. 이것은 상기 휘도 분포의 측면들을 그 중심과 다른 가중치로 산정하기 위한 특수하고 간단한 구현 방법이다. 바람직하게 균일한 삼등분이 이루어진다. 오른쪽과 왼쪽 측면의 가중 인자들은 바람직하게 서로 같다.
광학 코드는 바람직하게 모듈 크기의 결정 이후에 판독된다. 다시 말해 상기 모듈 크기의 결정은 코드를 판독하기 위한 이미지 처리 공정에서 초기의 단계이고, 디코딩의 결과들에 의존하지 않을 수 있다. 디코딩 이후의 모듈 크기의 결정을 위해서는 도입부에서 기술된 것처럼, 휘도 분포에 기초하지 않는 매우 정확한 종래의 대안 방법들도 이용될 것이다.
오히려 역으로 바람직하게 코드는, 모듈 크기에 기초하여 선택된, 그리고/또는 상기 모듈 크기에 의해 파라미터화된 디코딩 방법을 사용하여 판독된다. 다시 말해 상기 모듈 크기는 디코딩에서, 그리고 경우에 따라 이미 코드 영역들의 미세 분할을 위해 이용되는 파라미터(parameter)이다. 디코딩은 모듈 크기에 대한 사전 지식에 의해 지원되고, 간소화되며, 신속해지고, 개선되거나, 또는 적어도 비로소 가능해진다. 하나의 예시는 초해상도, 다시 말해 더 낮은 해상도의 이미지 데이터의 복수의 세트로부터 더 높은 해상도의 이미지 데이터를 생성하는 것이다. 모듈 크기는, 어떤 코드를 위해 초해상도가 사용되는지에 대한 암시일 수 있다. 또한, 모듈 크기는 초해상도 알고리즘을 위한 유용한 파라미터이다. 또 다른 하나의 예시는, 존재하는 디코딩 방법에 대해 모듈 크기가 지나치게 작기 때문에 디코딩이 전혀 불가능하다는 사실을 인지하는 것이다. 현재 바코드의 실제 한계는 0.6 ppm이다. 이 경우, 먼저 다양하고 복잡한 디코딩 방법들이 모듈 크기에 의해 실패하기 이전에, 코드를 직접 상기 모듈 크기에 의해 판독 불가능한 것으로 분류함으로써 노력들이 절감된다.
결정된 모듈 크기를 바람직하게 한계값과 비교하여, 모듈 크기가 한계값을 초과하는지 또는 미만인지에 따라 디코딩 방법 또는 디코딩 방법 모듈을 사용한다. 이는 말하자면, 모듈 크기의 수치가 사용되지 않고, 오히려 단지 스위치 유형에 따라 모듈 크기가 어떤 부류에 속하는지 비교되는, 바람직하게 작은 모듈 크기와 큰 모듈 크기의 부류들 중 어느 하나의 부류에 속하는지 비교되는 이전 문단에 상응하는 별도의 방식이다. 그 사이의 한계는 바람직하게 1 내지 3 ppm의 범위 내에 있고, 더 바람직하게 1.5 내지 2.5 ppm이다. 특히 적합한 한계값은 바코드에 대해 2 ppm이고, 이차원 코드에 대해 2.5 ppm이다. 예를 들어 작은 모듈 크기들에 대해 초해상도 알고리즘이 사용된다. 계속해서, 복수의 디코더가 코드 판독을 시도하는 것이 통상적이며, 개별적인 디코더들의 조합은 모듈 크기가 한계값을 초과하는지, 또는 초과하지 않는지 여부에 따라 완전히 또는 부분적으로 의존할 수 있다. 전체 디코딩 방법이 아니라, 오히려 한계값 위 또는 아래의 모듈 크기에 따라 다르게 파라미터화되거나, 혹은 적어도 부가되거나, 또는 부가되지 않는 단지 특정 모듈들만이 해당되는 것을 고려할 수 있다.
광학 코드를 판독하기 위한 본 발명에 따른 코드 판독기는 코드를 구비한 이미지 데이터를 기록하기 위한 이미지 센서를 포함한다. 이는 코드 스캐너의 광 수신기, 코드 라인(code line)을 검출하기 위한, 또는 이미지 라인들(image lines)의 조합에 의한 평면 코드 이미지(code image)를 검출하기 위한 라인 센서(line sensor) 혹은 매트릭스 센서(matrix sensor)일 수 있다. 그 이미지가 조합되는 복수의 카메라 헤드(camera head)도 고려할 수 있다. 직접 바코드 스캐너 또는 카메라 기반의 코드 판독기의 부분일 수 있거나, 혹은 제어 장치로서 상기 바코드 스캐너 또는 상기 카메라 기반의 코드 판독기에 접속될 수 있는 제어- 및 평가 유닛에서는 코드를 판독하기 위한 디코딩 방법이 구현된다. 디코딩의 범주에서, 바람직하게 실제 판독 공정 이전에 초기 단계로서 상기 제어- 및 평가 유닛은 본 발명에 따른 방법을 사용하여 설명된 변형예들 중 하나의 변형예로 모듈 크기를 결정한다.
모듈 크기의 결정을 담당하는 제어- 및 평가 유닛의 부분은 임베디드 시스템(embedded system)으로서 설계될 수 있다. 계속해서, 모듈 크기를 결정하기 위해, 직접 이미지 센서에 있는, 예를 들어 기록된 이미지를 매우 초기의 처리 단계로서 본 발명에 따른 방법을 사용하여 분석하는 카메라 헤드 내에 있는 필드 프로그램 가능 게이트 어레이(FPGA; field programmable gate array)를 고려할 수 있다. 상기 필드 프로그램 가능 게이트 어레이는 심지어, 카메라가 단 하나의 타일, 다시 말해 그 내부에 단 하나의 코드 조각만이 위치하는 판독 영역의 하나의 부분 영역만을 검출함으로써, 이와 같은 방식으로 전혀 판독될 수 없는 경우에도 이미 작동할 수 있다. 복수의 카메라 헤드의 타일들의 결합(스티칭) 또는 연속적으로 기록된 복수의 이미지의 결합 이후에 비로소 디코딩이 이루어지고, 이와 같은 시점에서 모듈 크기는 이미 오래전에 알려져 있고, 예를 들어 스티칭 공정에서도 이미 고려될 수 있다.
본 발명은 다음에서 또 다른 특징들 및 장점들과 관련해서도 예시적으로 실시 형태들에 의해, 그리고 첨부된 도면의 참고하에 더 상세하게 설명된다.
도 1은 그 위에서 판독될 코드를 구비한 물체들이 이송되는 컨베이어 벨트 위에 예시적으로 설치된 코드 판독기의 3차원 개략도이고;
도 2는 그레이 스케일 값 프로파일의 하나의 예시이며;
도 3은 에지들을 발견하기 위한 도 2에 따른 그레이 스케일 값 프로파일의 도함수의 도면이고;
도 4는 큰 모듈 크기를 갖는 코드의 그레이 스케일 값 히스토그램의 하나의 예시이며;
도 5는 작은 모듈 크기를 갖는 코드의 그레이 스케일 값 히스토그램의 하나의 예시이고;
도 6은 활성 영역의 적분 및 폭이 도시된, 잡음 임계값 위의 그레이 스케일 값 히스토그램의 활성 영역의 도면이며;
도 7은 그레이 스케일 값 히스토그램으로부터 모듈 크기를 결정하기 위한 예시적인 알고리즘의 순서 패턴이고; 그리고
도 8a 내지 도 8e는 서로 다른 모듈 크기들의 그레이 스케일 값 히스토그램의 예시적인 도면들이다.
도 1은 컨베이어 벨트(12) 위에 설치된 광전자 코드 판독기(10)를 바람직한 하나의 적용 상황에서 보여주고, 상기 컨베이어 벨트는 물체들(14)을 화살표(16)에 의해 지시된 것처럼, 상기 코드 판독기(10)의 검출 영역(18)을 통해 이송한다. 상기 물체들(14)은 자신의 외부면들에 코드 영역들(20)을 지지하고, 상기 코드 영역들은 상기 코드 판독기(10)에 의해 검출 및 평가된다. 이와 같은 코드 영역들(20)은 상기 코드 판독기(10)에 의해 단지, 상기 코드 영역들이 상부측에 고정되어 있거나, 또는 적어도 위에서 볼 수 있도록 고정되어 있는 경우에만 인식될 수 있다. 따라서 도 1의 도시 내용과 다르게, 예컨대 측면 또는 아래에 고정된 코드(22)를 판독하기 위해서는, 모든 방향들로부터 소위 전체 판독을 구현할 목적으로 서로 다른 방향들로부터 복수의 코드 판독기(10)가 설치될 수 있다. 판독 시스템으로 복수의 코드 판독기(10)를 배치하는 것은 실제로 대부분 판독 터널로서 이루어진다. 컨베이어 벨트에서 코드 판독기(10)의 이와 같은 고정식 적용예는 실제로 매우 일반적이다. 그러나 본 발명은 우선 코드 판독기(10) 자체 또는 상기 코드 판독기에서 구현된 코드의 디코딩 방법 혹은 더 구체적으로 상기 디코딩 방법의 사전 처리 단계와 관련이 있음으로써, 결과적으로 이와 같은 예시가 제한적으로 이해되어서는 안 된다.
상기 코드 판독기(10)는 이미지 센서(24)에 의해 이송된 물체들(14) 및 코드 영역들(20)의 이미지 데이터를 검출하고, 상기 이미지 데이터는 제어- 및 평가 유닛(26)에 의해 이미지 평가 및 디코딩 방법을 이용하여 추가 처리된다. 본 발명을 위해 구체적인 이미징 방법은 중요하지 않음으로써, 결과적으로 상기 코드 판독기(10)는 그 자체로 공지된 어떠한 원칙에 따라 구성될 수 있다. 예를 들어, 라인 형태의 이미지 센서 또는 스캔 방법에 의해 각각 단 하나의 라인만이 검출되고, 이때 상기 스캔 방법의 경우에 이미지 센서(24)로서 광다이오드와 같은 단순한 광 수신기가 충분하다. 직접 이미지 라인으로부터 코드를 판독하려는 시도가 이루어질 수 있거나, 또는 상기 제어- 및 평가 유닛(26)이 이송 운동 중에 검출된 라인들을 이미지 데이터로 결합한다. 매트릭스 형태의 이미지 센서에 의해서는 이미 하나의 기록물에서 더 큰 영역이 검출되고, 이 경우에도 이송 방향 및 상기 이송 방향에 대해 횡 방향으로도 기록물들의 결합이 가능하다. 상기 복수의 기록물은 연속적으로 기록되고, 그리고/또는 복수의 코드 판독기(10)에 의해 기록되며, 상기 코드 판독기들은 예를 들어 자신의 검출 영역들(18)에 의해 단지 공동으로만 상기 컨베이어 벨트(12)의 전체 폭을 덮고, 이때 각각의 코드 판독기(10)는 말하자면 전체 이미지의 단 하나의 타일만을 기록하고, 타일들은 이미지 처리 공정(스티칭)에 의해 결합된다. 개별적인 타일들 내부의 단지 단편적인 디코딩과 코드 조각들의 후속하는 결합도 고려할 수 있다.
상기 코드 판독기(10)의 주요 과제는 상기 코드 영역들(20)을 인식하고 상기 코드 영역들에 고정된 코드들을 판독하는 것이다. 부분 단계로서, 바람직하게 처리 사슬에서 가급적 초기에, 그리고 실제 코드 판독 공정 이전에 모듈 크기가 개별적인 코드(20)의 기록된 이미지의 그레이 스케일 값 히스토그램 또는 휘도 분포로부터 결정된다. 이는 계속해서 아래에서 도 2 내지 도 8에 의해 상세하게 설명된다.
인터페이스(28)를 통해 상기 코드 판독기(10)는 판독된 코드 또는 이미지 데이터와 같은 정보를 출력한다. 상기 제어- 및 평가 유닛(26)이 실제 코드 판독기(10) 내에, 다시 말해 도 1에 도시된 카메라 내에 배치되어 있지 않고, 오히려 자체 제어 장치로서 하나 또는 복수의 코드 판독기(10)에 접속되는 것도 고려할 수 있다. 이 경우에 상기 인터페이스(28)는 내부 제어- 및 평가 장치와 외부 제어- 및 평가 장치의 연결부로도 이용된다. 제어- 및 평가 기능은 실제로 임의로 내부 및 외부 모듈들에 분배될 수 있고, 이때 외부 모듈들은 네트워크 또는 클라우드를 통해 접속될 수도 있다. 이 모든 것은 본 출원서에서 더는 구분되지 않고, 상기 제어- 및 평가 유닛(26)은 구체적인 구현 방법과 관계없이 상기 코드 판독기(10)의 부분으로서 간주된다.
도 2는 코드(20)의 이미지 데이터의 하나의 예시를 상기 코드(20)를 통한 이미지 라인의 그레이 스케일 값 프로파일의 형태로 보여준다. 이러한 그레이 스케일 값 프로파일은 이미지 센서(24)에 의해 획득되는 초기 데이터를 형성한다. 그레이 스케일 값 프로파일의 상기 예시가 실제 제약은 아니다. 광학 코드는 두 가지 양상의 영역으로 구성되는데, 흑색과 백색으로 구성되는 경우가 많고, 때로는 구조물들 또는 볼록부들로 구성되지만, 어떤 경우든 코드 정보는 그레이 스케일 값 이미지에 의해 검출된다. 또한, 본 발명을 이해하기 위해서는 그레이 스케일 값 프로파일이 바코드 스캐너의 스캔으로서, 라인 형태의 이미지 센서의 이미지 라인으로서, 또는 코드(20)의 평면 이미지를 통과하는 선으로서 검출되는지는 중요하지 않다.
추가 설명은 바코드의 예시에서 이루어지지만, 본 발명에 따른 모듈 크기의 결정 방법은 이차원 코드에서도 매우 유사하게 작동한다. 바코드의 경우, 그레이 스케일 값 프로파일은 스트립들(strips)에 대해 지나치게 엄격하게 평행하게 기록되어서는 안 된다. 모듈 크기가 절대 길이 단위들로 결정되어야 하는 경우, 상기 그레이 스케일 값 프로파일이 어떤 각도로 코드를 통해 진행하는지도 알려져 있어야 한다. 그러나 디코딩을 위해 중요한 변수는, 말하자면 코드(20) 내에서 개별적인 경사 위치를 갖는, 마찬가지로 디코더가 포함하는 바로 그 이미지 데이터에서 각각의 모듈이 얼마나 많은 픽셀을 나타내는지(ppm, pixel per module)와 같다.
원칙적으로 목표한 모듈 크기는 도 2에 이미 나타나 있다. 높고 낮은 그레이 스케일 값들에서 개별적인 정체부들(plateaus)은 코드의 부호들에 상응함으로써, 결과적으로 정체부들의 폭들이 측정될 수 있고 모듈 크기는 최소 길이로서 조정될 수 있으며, 상기 폭들은 상기 최소 길이에 상응하게, 그리고 상기 최소 길이의 수배에 상응하게 재구성된다. 그러나 이는 전반적으로 지나치게 결함이 많은데, 특히 수많은 정체부들이 이러한 정체부들로서 인식되지 못하고, 더구나 자체 폭에서 신뢰할 만하게 측정되지 못하기 때문이다.
도 3은 도 2에 따른 그레이 스케일 값 프로파일의 도함수를 보여준다. 본 도면에는 코드의 에지들이 나타나 있는데, 다시 말해 극값들로서 밝은 코드 요소들과 어두운 코드 요소들, 그리고 어두운 코드 요소들과 밝은 코드 요소들 사이의 전이부들이 나타나 있다. 따라서, 이미 도입부에서 논의된 것처럼, 도 2에 있는 정체부들 대신에, 원칙적으로 이웃한 극값들 사이의 간격들이 모듈 크기의 결정을 위해 이용될 수 있다. 이 경우, 에지 위치들이 왜곡되어 있고, 잡음들 없이도 기껏해야 모듈 크기의 결정을 픽셀 정확성에 의해 구현하고, 서브 픽셀 정확한 결정은 구현하지 못한다는 사실이 문제가 된다. 그러나 단지 이와 같은 제약들에 의해서만 비교적 대략적으로 결정된 에지 위치들도 추가로 설명될 본 발명에 따른 모듈 크기의 결정 방법을 위해 유용할 수 있다.
본 발명에 따르면, 말하자면 모듈 크기는 그레이 스케일 값 프로파일들 또는 상기 그레이 스케일 값 프로파일들의 도함수들로부터 결정되지 않고, 오히려 그레이 스케일 값들의 히스토그램 또는 약간 더 보편적으로 휘도 분포를 통해 간접적인 접근 방식이 선택된다.
도 4는 2.58 ppm의 모듈 크기에 의해 높은 해상도로 기록된 바코드의 예시적인 그레이 스케일 값 히스토그램을 보여준다. 우측 상단에 있는 작은 삽입 이미지는 도해를 위해 상기 바코드의 실제 이미지 섹션을 보여준다. 가능한 그레이 스케일 값들, 이 경우에는 8 비트-이미지 데이터에 상응하게 0 내지 255의 그레이 스케일 값들이 용기들로서 X-축 상에 기재됨으로써, 상기 그레이 스케일 값 히스토그램이 생성된다. 코드의 고려된 이미지 데이터의 각각의 픽셀에 대해, 상기 픽셀의 그레이 스케일 값에 상응하는 용기가 1만큼 증가한다. 코드의 정적 구간들은 바람직하게 상기 그레이 스케일 값 히스토그램에서 고려되지 않는다. 마지막으로 기여하는 픽셀들의 전체 개수에 의해 나눔으로써 표준화가 이루어질 수 있고, 상기 표준화는 모든 용기들의 총합이 1이 되도록 한다. 상기 그레이 스케일 값 히스토그램은 휘도 분포가 이산화(discretization)된 것이고, 때문에 이와 같은 설명에서 휘도 분포의 일반적인 용어도 사용된다.
충분한 모듈 크기의 경우, 그레이 스케일 값 히스토그램은 어두운 코드 요소들 및 밝은 코드 요소들에 대해 각각 분명한 왼쪽 피크 및 오른쪽 피크, 그리고 그 사이의 평평한 영역을 가짐으로써 이원 양상을 갖는다.
도 5는 0.93 ppm의 모듈 크기에 의해 낮은 해상도로 기록된 바코드의 또 다른 하나의 예시적인 그레이 스케일 값 히스토그램을 보여준다. 재차 우측 상단에 있는 작은 삽입 이미지는 도해를 위해 상기 바코드의 실제 이미지 섹션을 보여주고, 상기 이미지 섹션에 의해 이러한 코드의 판독이 어떤 이유로 특히 주의가 필요한지 추정할 수 있다. 상기 그레이 스케일 값 히스토그램은 2 ppm 이상의 모듈 크기를 갖는 높은 해상도로 기록된 코드의 그레이 스케일 값 히스토그램과 현저히 구분된다. 모듈 크기가 감소할수록 이원 양상은 점점 더 사라진다. 지나치게 낮은 해상도의 번짐 현상에 의해 평균 그레이 스케일 값들에서 점점 더 강한 피크가 형성된다.
그에 따라 본 발명의 기본 발상이 설명된다: 특히 그레이 스케일 값 히스토그램으로서 획득되는 휘도 분포에 의해 모듈 크기를 추론할 수 있다. 이 경우, 모듈 크기가 크거나, 또는 작은지에 대한 질적 언급이 다뤄지고, 이때 그 사이의 한계는 2 ppm이지만, 그 외에 상기 모듈 크기에 대해 구체적인 값을 사정하는 것도 가능하다. 도 4 및 도 5는 재차 바코드들을 예시로서 보여준다. 모듈 크기가 본 발명에 따라 최종적으로 결정되는 지나치게 낮은 해상도에 의한 번짐 효과는 마찬가지로 이차원 코드에서도 발생함으로써, 결과적으로 바코드들의 상기 예시는 제한적으로 이해되어서는 안 된다.
도 4 및 도 5에 대해 설명된 것처럼, 평균 그레이 스케일 값들의 피크의 서로 다른 형태에서 작은 모듈 크기와 큰 모듈 크기의 차이가 나타난다. 다시 말해, 특별히 그레이 스케일 값 히스토그램의 전이부 영역 또는 중간 영역을 고려하는 경우, 모듈 크기들의 구별 가능성이 증가한다.
따라서, 상기 그레이 스케일 값 히스토그램이 처음부터 가급적 단지, 이와 같은 전이부 영역에 상응하는 픽셀들로부터 획득되는 경우가 특히 바람직하다. 이는 특히, 상기 그레이 스케일 값 히스토그램이 코드의 이미지의 모든 픽셀들로 구성되지 않고, 오히려 단지 에지들의 주변에 있는 픽셀들로 구성됨으로써 달성된다. 상기 에지들에서는 과소 표본화(undersampling) 또는 지나치게 낮은 해상도로 인한 번짐 효과가 특히 분명하게 측정될 수 있다.
도 3에 의해 이미, 에지 위치들이 어떻게 예를 들어 그레이 스케일 값 프로파일의 도함수로부터 사정되는지 설명되었다. 그레이 스케일 값 히스토그램은 이와 같은 에지 위치들 및 개별적인 픽셀 주변에 있는 픽셀들로부터 형성된다. 그레이 스케일 값 히스토그램을 에지들의 주변으로 제한할 목적으로, 상기 에지 위치들이 정확하게 단 하나의 픽셀 상에 있는지는 중요하지 않는데, 그 이유는 서브 픽셀 영역은 그레이 스케일 값 히스토그램에서 본래 고려되지 않기 때문이다. 잡음 효과들에 의한 경우에 따른 에지 위치 오차들도 허용되는데, 그 이유는 상기 잡음 효과들이 단지 가끔 하나의 픽셀이 잘못 포함되거나, 또는 배제되는 상황만을 야기하기 때문이다. 이는 어쨌든 여전히 모든 픽셀들을 구분없이 포함시키는 것보다 현저히 더 바람직하다.
이러한 에지와 관련한 그레이 스케일 값 히스토그램은 도 6에 도시되어 있다. 그러나 단지 에지들의 주변에 있는 픽셀들로만 이루어진 그레이 스케일 값 히스토그램을 고려하는 것이 특히 바람직하고, 모듈 크기의 결정의 특히 높은 정확성을 구현한다는 사실이 추가된다. 그럼에도 불구하고 모듈 크기는 또한, 코드 영역 또는 코드의 이미지의 전체 픽셀들을 고려하는 단순한 그레이 스케일 값 히스토그램들로부터 사정될 수 있다.
모듈 크기를 에지와 관련한 그레이 스케일 값 히스토그램, 또는 대안적으로 완전한 그레이 스케일 값 히스토그램으로부터 결정하기 위해, 그레이 스케일 값 히스토그램은 특성 변수들을 갖도록 기술된다. 개별적인 잡음 상황들이 평가를 왜곡하지 않기 위해, 바람직하게 단지 그레이 스케일 값 히스토그램의 활성 영역만을 고려한다. 상기 활성 영역에는 단지, 용기에 기여하는 픽셀들의 최소 개수 또는 최소 백분율로서 지시된 잡음 임계값을 초과하는 용기들만이 포함된다.
특성 변수로서 특히, 도 6에서 화살표에 의해 표시되는 폭이 적합한 것으로 입증되었다. 따라서 상기 폭은 그레이 스케일 값 히스토그램에 존재하는 최대 그레이 스케일 값과 최소 그레이 스케일 값의 차이이다. 모듈 크기의 결정을 위해 유용한 또 다른 특성 변수는, 용기들의 합산에 의해 획득될 수 있는 그레이 스케일 값 히스토그램의 적분 또는 면적이다. 표준화된 히스토그램의 면적은 당연히 1이고, 그 결과 상기 그레이 스케일 값 히스토그램이 표준화되어 있지 않거나, 또는 잡음 임계값에 의한 활성 영역의 결정 이전에 표준화되어 있는 경우, 혹은 아래에서 더 설명되는 것처럼 부분 영역들이 리스케일링되는 경우, 상기 적분은 단지 실제 비율만을 전달한다. 또 다른 고려 가능한 특성 변수들은 주요 최대치의 높이, 보조 최대치의 개수 또는 제1 보조 최대치의 높이에 대한 주요 최대치의 높이의 비율이다.
모듈 크기의 고려 가능한 구체적인 계산 법칙은, 적분과 폭의 비율들을 형성하고, 이와 같은 측정값을 스케일링 인자를 사용하여 ppm 단위에서 모듈 크기에 매핑하는 것이다. 상기 스케일링 인자는 예를 들어, 보정- 또는 학습 과정에서 코드가 판독되고, 상기 코드의 모듈 크기가 추후에 매우 정확하게 결정되며, 그런 다음 추후의 계산 법칙과 반대로 이제는 잘 알려진 모듈 크기가 적분과 폭의 비율들과 비교됨으로써 획득된다.
도 7은 그레이 스케일 값 히스토그램으로부터 모듈 크기를 결정하기 위한 예시적인 알고리즘의 순서 패턴을 보여준다. 이와 같은 알고리즘에는 소수의 매우 구체적인 단계가 제공되어 있는데, 상기 단계들은 바람직한 실시 형태로서 이해되고 그 밖의 설명의 일반성을 제한하지 않는다.
단계 S1에서는 입력 데이터가 획득되는데, 말하자면 코드의 이미지 데이터가 예를 들어 도 2에 설명된 것처럼, 하나 또는 다수의 그레이 스케일 값 프로파일의 형태로 획득된다.
단계 S2에서는 코드 내에 있는 에지 위치들이 결정된다. 이를 위해, 예를 들어 도 3에 설명된 것처럼, 그레이 스케일 값 프로파일들의 도함수가 이용된다. 단지 픽셀 정확하고, 서브 픽셀 부정확한 결정 및 잡음들로 인한 경우에 따른 위치 오차는 모듈 크기를 사정하기 위해 장애가 되지 않는다.
단계 S3에서는 용기들이 상응하게 가능한 그레이 스케일 값들을 제공하고, 개별적인 계수기들이 초기 상태 0으로 설정됨으로써, 그레이 스케일 값 히스토그램이 초기화된다.
단계 S4에서는 모든 에지 위치들 및 상기 에지 위치들의 근처에 있는 픽셀들, 예를 들어 선행하는 i 픽셀과 후속하는 j 픽셀의 그레이 스케일 값들이 결정된다.
단계 S5에서는 각각 단계 S4에서 결정된 그레이 스케일 값들에 해당하는 용기들이 1만큼 증가한다. 상기 단계 S4와 단계 S5는 단지 설명을 위해 분리되어 있고, 실제로는 오히려 전체 에지 위치들 및 에지 위치당 상기 에지 위치들 주변에 있는 픽셀들의 그레이 스케일 값이 연속적으로 결정되고, 즉시 각각의 관련된 픽셀에 대해 상기 픽셀의 상응하는 그레이 스케일 값들의 용기들이 증가한다. 단계 S2, S4 및 S5에 따른 에지에 기반한 그레이 스케일 값 히스토그램에 대해 대안적으로 단계 S1의 출력 데이터의 전체 픽셀을 통해서도 그레이 스케일 값 히스토그램이 형성될 수 있으며, 이 경우에는 모듈 크기의 사정이 더 부정확해진다.
단계 S6에서는 그레이 스케일 값 히스토그램이 표준화됨으로써, 결과적으로 모든 용기들의 총합이 1의 값을 취한다. 표준화 인자는 상기 그레이 스케일 값 히스토그램에 기여하는 픽셀들의 개수 또는 아직 표준화되지 않은 그레이 스케일 값 히스토그램의 총합에 상응한다. 표준화는 완전히 선택적이고, 그 대신에 단계 S10에서 제공될 스케일링 인자(F)를 통해 매핑될 수 있다.
단계 S7에서는 단지 잡음 임계값 위에서 최소 빈도를 갖는 용기들만이 고려됨으로써, 그레이 스케일 값 히스토그램이 소위 활성 영역으로 제한된다. 상기 잡음 임계값은 상수 또는 비율일 수 있는데, 예컨대 모든 빈도의 합계의 천분율일 수 있고, 이상치를 제거한다. 상기 활성 영역의 최대 용기와 최소 용기의 차이로서 폭(B)이 계산된다.
후속하는 단계 S8은 완전히 선택적이고, 모듈 크기의 결정을 위한 특정 특성들을 다시 한 번 보강하는 그레이 스케일 값 히스토그램의 전체적으로 선택적인 리스케일링의 하나의 예시이다. 이와 같은 구체적인 구현 방법에서 활성 영역은 동일한 크기의 3개의 부분 영역으로 분할된다. 왼쪽과 오른쪽 부분에 있는 용기들에 측면 가중치를 곱하고, 중간 부분에 있는 용기들에 중앙 가중치를 곱한다. 대안적으로 당연히 더 미세 분해된 가중 함수도 이용될 수 있다. 바람직하게 얼마나 구체적으로 형성되었든 간에 리스케일링은 측면 영역들의 상대적 감쇠 및 중앙 영역의 상대적 강조를 위해 이용된다. 그 이유는 도 5에 설명된 것처럼, 모듈 크기의 결정을 위해 그레이 스케일 값들의 중간 전이부 영역이 특히 중요하고, 상기 전이부 영역은 이와 같은 방식으로 다시 한 번 강조되기 때문이다.
단계 S9에서는 활성 영역의 용기들이 합산됨으로써, 결과적으로 상기 활성 영역의 면적(A) 또는 적분이 결정된다.
단계 S10에서는 면적(A)과 폭(B)의 비율이 형성된다. 이는 이미 모듈 크기의 목표한 사정과 같지만, 아직은 단위가 다르다. 따라서 그 대신에 모듈 크기가 F*A/B로 계산되는데, 다시 말해 그레이 스케일 값 히스토그램의 측정 변수들을 ppm 단위의 모듈 크기로 스케일링하는 스케일링 인자(F)가 더 제공된다. 상기 스케일링 인자(f)는 사전에 경험적으로 결정 또는 학습된다.
도 8a 내지 도 8e는 서로 다른 모듈 크기들에 대해, 도 6에 설명된 것처럼, 각각 에지들의 주변으로 제한된 그레이 스케일 값 히스토그램들의 예시들을 보여준다. 개별적인 실제 모듈 크기는 도 7에 설명된 방법을 사용하여 각각 작은 오차를 갖도록 재구성될 수 있었다. 구체적으로 도 8a에서 실제 모듈 크기는 0.8 ppm, 사정된 모듈 크기는 0.79 ppm이고, 도 8b에서 실제 모듈 크기는 1.0 ppm, 사정된 모듈 크기는 1.06 ppm이며, 도 8c에서 실제 모듈 크기는 1.2 ppm, 사정된 모듈 크기는 1.23 ppm이고, 도 8d에서 실제 모듈 크기는 1.4 ppm, 사정된 모듈 크기는 1.19 ppm이며, 그리고 도 8e에서 실제 모듈 크기는 1.5 ppm, 사정된 모듈 크기는 1.68 ppm이다.
코드의 실제 적용예로부터 기록된 700개 이상의 이미지를 구비한 데이터 레코드에서는 0.15의 사정된 모듈 크기의 평균 오차가 달성된다. 계산은 증가하는 모듈 크기들에 대해 부정확해진다. 그 주요 원인은 스케일링 인자(F)가 본래 증가하는 모듈 크기들에 대해, 예를 들어 2보다 큰 ppm에 대해 감쇠되어야 하는 스케일링 함수이기 때문이다. 원칙적으로 스케일링 함수는 스케일링 인자와 동일하게 경험적으로 검출 또는 학습된다. 그러나 이는 실제로 반드시 필요하지 않은데, 그 이유는 일정한 스케일링 인자(F)에 의해 우수한 사정이 가능한 작은 모듈 크기들이 훨씬 더 중요한 경우를 나타내고, 따라서 증가하는 모듈 크기들에서 사정 오차가 대부분 허용될 수 있기 때문이다.

Claims (14)

  1. 광학 코드(20)의 모듈 크기의 결정 방법으로서,
    상기 코드(20)의 이미지 데이터를 검출하는 단계;
    상기 이미지 데이터로부터 휘도(brightness) 분포를 결정하는 단계; 및
    상기 휘도 분포와 관련된 파라미터를 결정하고 그리고 상기 파라미터의 함수로서 상기 모듈 크기를 계산함으로써, 상기 휘도 분포로부터 상기 모듈 크기를 결정하는 단계
    를 포함하며,
    상기 파라미터는 상기 휘도 분포의 폭(B), 상기 휘도 분포의 적분(A), 상기 휘도 분포의 최대값, 상기 휘도 분포의 적분(A)과 상기 휘도 분포의 폭(B)의 비율(quotient), 및 이들의 조합으로 구성된 그룹으로부터 선택되는,
    광학 코드의 모듈 크기의 결정 방법.
  2. 제1항에 있어서,
    상기 모듈 크기는 상기 휘도 분포의 중앙 영역으로부터 결정되는,
    광학 코드의 모듈 크기의 결정 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 광학 코드(20)의 에지들이 상기 이미지 데이터에 위치하고, 상기 휘도 분포는 에지들 주변의 이미지 데이터 위에만 형성되는,
    광학 코드의 모듈 크기의 결정 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 휘도 분포를, 상기 휘도 분포가 노이즈 임계치를 초과하는 활성 영역으로 제한하는 단계를 더 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 휘도 분포는 그레이스케일 히스토그램(grayscale histogram)인,
    광학 코드의 모듈 크기의 결정 방법.
  6. 제1항에 있어서,
    상기 파라미터의 함수는, 스케일링 함수(F)로 상기 비율을 상기 모듈 크기에 매핑하는 것을 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  7. 제6항에 있어서,
    상기 비율을 상기 모듈 크기에 매핑하는 것은, 모듈당 픽셀 단위를 이용하여 상기 비율을 상기 모듈 크기에 매핑하는 것을 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 휘도 분포를 상기 휘도 분포의 중심 및 측면들에서 상이한 가중 인자들로 리스케일링(rescaling)하는 단계를 더 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  9. 제8항에 있어서,
    상기 휘도 분포의 중심은 상기 휘도 분포의 측면들에 비해 상대적으로 융기되어 있는,
    광학 코드의 모듈 크기의 결정 방법.
  10. 제1항 또는 제2항에 있어서,
    상기 휘도 분포를 상기 휘도 분포의 왼쪽 측면, 상기 휘도 분포의 중심, 및 상기 휘도 분포의 오른쪽 측면 각각에서 각자의 가중 인자로 리스케일링하는 단계를 더 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  11. 제1항 또는 제2항에 있어서,
    상기 모듈 크기를 결정하는 단계 이후에 상기 광학 코드(20)를 판독하는 단계를 더 포함하는,
    광학 코드의 모듈 크기의 결정 방법.
  12. 제11항에 있어서,
    상기 광학 코드(20)는, 상기 모듈 크기에 기초하여 선택된 그리고/또는 상기 모듈 크기에 의해 파라미터화된 디코딩 방법을 사용하여 판독되는,
    광학 코드의 모듈 크기의 결정 방법.
  13. 제1항 또는 제2항에 있어서,
    상기 모듈 크기가 한계값을 초과하는지 또는 상기 한계값 미만인지에 따라 디코딩 방법 또는 디코딩 방법의 구성요소를 사용하기 위해, 상기 결정된 모듈 크기를 상기 한계값과 비교하는 단계를 더 포함하고, 상기 한계값은 1 내지 3 모듈당 픽셀의 모듈 크기의 범위 내에 있는,
    광학 코드의 모듈 크기의 결정 방법.
  14. 광학 코드(20)를 판독하기 위한 코드 판독기(10)로서,
    상기 코드(20)를 갖는 이미지 데이터를 검출하기 위한 이미지 센서(24), 및 디코딩 방법으로 상기 코드(20)를 판독하도록 구성된 제어 및 평가 유닛(26)을 포함하고,
    상기 제어 및 평가 유닛(26)은, 제1항 또는 제2항에 따른 방법을 사용하여 상기 코드(20)의 모듈 크기를 결정하도록 구성된,
    광학 코드를 판독하기 위한 코드 판독기.
KR1020200094519A 2019-09-05 2020-07-29 광학 코드의 모듈 크기의 결정 KR102419540B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19195509.5 2019-09-05
EP19195509.5A EP3789906B1 (de) 2019-09-05 2019-09-05 Bestimmen der modulgrösse eines optischen codes

Publications (2)

Publication Number Publication Date
KR20210029086A KR20210029086A (ko) 2021-03-15
KR102419540B1 true KR102419540B1 (ko) 2022-07-08

Family

ID=67956451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200094519A KR102419540B1 (ko) 2019-09-05 2020-07-29 광학 코드의 모듈 크기의 결정

Country Status (6)

Country Link
US (1) US11182578B2 (ko)
EP (1) EP3789906B1 (ko)
JP (1) JP7062722B2 (ko)
KR (1) KR102419540B1 (ko)
CN (1) CN112446225B (ko)
DK (1) DK3789906T3 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4202758A1 (de) * 2021-12-21 2023-06-28 Sick Ag Codeleser und verfahren zum lesen eines optischen codes
DE102022000147A1 (de) * 2022-01-17 2022-03-24 Daimler Ag Elektrischer Energiespeicher für ein Kraftfahrzeug sowie Verfahren zum Herstellen eines solchen elektrischen Energiespeichers
EP4287066B1 (de) 2022-05-31 2024-05-15 Sick Ag Bestimmen der modulgrösse eines optischen codes
CN117574931B (zh) * 2024-01-15 2024-04-30 北京航空航天大学杭州创新研究院 基于3d结构的一维条形码信息生成方法和激光解码设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053609A (en) * 1988-05-05 1991-10-01 International Data Matrix, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US5378883A (en) * 1991-07-19 1995-01-03 Omniplanar Inc. Omnidirectional wide range hand held bar code reader
JP2995116B2 (ja) * 1991-10-31 1999-12-27 オリンパス光学工業株式会社 結像倍率認識装置及びそれを用いたバーコード読取装置
US5818023A (en) * 1996-03-05 1998-10-06 Metanetics Corporation Portable ID card verification apparatus
US7751629B2 (en) * 2004-11-05 2010-07-06 Colorzip Media, Inc. Method and apparatus for decoding mixed code
US7213761B2 (en) 2005-03-23 2007-05-08 Microscan Systems Incorporated Apparatus and process for two-stage decoding of high-density optical symbols
US8950673B2 (en) * 2007-08-30 2015-02-10 Symbol Technologies, Inc. Imaging system for reading target with multiple symbols
CN101908125B (zh) * 2010-06-01 2014-07-02 福建新大陆电脑股份有限公司 Qr码条码解码芯片及其解码方法
JP5601291B2 (ja) * 2011-08-22 2014-10-08 株式会社デンソーウェーブ 情報コード読み取り装置
KR101427715B1 (ko) * 2012-12-31 2014-08-07 아주대학교산학협력단 큐알 코드 인식 장치 및 방법
US10599902B2 (en) * 2014-10-09 2020-03-24 Cognex Corporation Methods and apparatus for decoding under-resolved symbols
US9785817B2 (en) * 2015-05-29 2017-10-10 Datalogic Usa, Inc. Region of interest location and selective image compression
EP3428834B1 (de) * 2017-07-12 2019-06-12 Sick AG Optoelektronischer codeleser und verfahren zum lesen von optischen codes
US10607047B2 (en) * 2017-12-06 2020-03-31 Cognex Corporation Local tone mapping for symbol reading
US11600018B2 (en) * 2019-10-25 2023-03-07 Cognex Corporation Boundary estimation systems and methods

Also Published As

Publication number Publication date
US11182578B2 (en) 2021-11-23
CN112446225B (zh) 2024-05-10
JP7062722B2 (ja) 2022-05-06
EP3789906A1 (de) 2021-03-10
DK3789906T3 (da) 2021-08-23
KR20210029086A (ko) 2021-03-15
CN112446225A (zh) 2021-03-05
JP2021039734A (ja) 2021-03-11
US20210073499A1 (en) 2021-03-11
EP3789906B1 (de) 2021-07-07

Similar Documents

Publication Publication Date Title
KR102419540B1 (ko) 광학 코드의 모듈 크기의 결정
US8139117B2 (en) Image quality analysis with test pattern
US5373147A (en) Apparatus and method for detecting line segment direction
CN109255271B (zh) 用于读取光码的光电代码阅读器和方法
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
EP0999519B1 (en) Distortion correction method in optical code reading
US7949187B2 (en) Character string recognition method and device
US10109045B2 (en) Defect inspection apparatus for inspecting sheet-like inspection object, computer-implemented method for inspecting sheet-like inspection object, and defect inspection system for inspecting sheet-like inspection object
US7050631B2 (en) Barcode detection system
US11170191B2 (en) Code reader and method for reading of optical codes
US9070033B2 (en) Stack barcode reader and stack barcode reading method
US8910866B2 (en) Code reader and method for the online verification of a code
US20120055991A1 (en) Apparatus and method for reading barcode
US9270892B2 (en) Optoelectronic device and method for brightness correction
KR20230125749A (ko) 코드를 포함하는 객체의 이미지에서 코드 이미지 구역들 찾기
US20110220721A1 (en) Method and apparatus for reading barcode information
US20230386068A1 (en) Determining the Module Size of an Optical Code
US20230196808A1 (en) Code reader and method of reading an optical code
US20230370724A1 (en) Recording and brightness adjustment of an image
Duchon et al. Reliability of barcode detection
CN116894937B (zh) 获取车轮定位仪参数的方法、系统及电子设备
JP5453594B2 (ja) シンボル情報読取装置及びシンボル情報読取方法
US20240028847A1 (en) Reading an optical code
CN117195925A (zh) 一维光学代码的读取
JPH0425986A (ja) 文字読取装置及び文字読取方法

Legal Events

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