KR20190007380A - 광전자 코드 판독기 및 광학 코드 판독 방법 - Google Patents

광전자 코드 판독기 및 광학 코드 판독 방법 Download PDF

Info

Publication number
KR20190007380A
KR20190007380A KR1020180077910A KR20180077910A KR20190007380A KR 20190007380 A KR20190007380 A KR 20190007380A KR 1020180077910 A KR1020180077910 A KR 1020180077910A KR 20180077910 A KR20180077910 A KR 20180077910A KR 20190007380 A KR20190007380 A KR 20190007380A
Authority
KR
South Korea
Prior art keywords
code
classifier
image data
read
information
Prior art date
Application number
KR1020180077910A
Other languages
English (en)
Other versions
KR102010494B1 (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 KR20190007380A publication Critical patent/KR20190007380A/ko
Application granted granted Critical
Publication of KR102010494B1 publication Critical patent/KR102010494B1/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/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/10861Methods 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 sensing of data fields affixed to objects or articles, e.g. coded labels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1482Methods for optical code recognition the method including quality enhancement steps using fuzzy logic or natural solvers, such as neural networks, genetic algorithms and simulated annealing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Automation & Control Theory (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Fuzzy Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)

Abstract

수신 광으로부터 이미지 데이터를 생성하기 위한 하나 이상의 수광 소자(24) 그리고 상기 이미지 테이터의 코드 영역(20)들에 코드 정보를 할당하는 분류기(30)가 구현되어 있는 평가 유닛(26)을 구비하는, 광전자 코드 판독기(10), 특히 바코드 판독기가 제시되어 있으며, 이 경우 상기 분류기(30)는 기계 학습을 위해 형성되어 있고, 기계 학습 방법들을 사용하지 않는 고전적 디코더(28)의 판독된 코드를 기반으로 감독 학습에 의해 트레이닝되어 있다.

Description

광전자 코드 판독기 및 광학 코드 판독 방법{OPTOELECTRONIC CODE READER AND METHOD FOR READING OPTICAL CODES}
본 발명은 청구항 1과 청구항 14의 전제부에 따른 광전자 코드 판독기 및 광학 코드 판독 방법에 관한 것이다.
코드 판독기들은 슈퍼마켓의 계산대, 자동 소포 식별, 우편물 분류, 공항의 수하물 처리 및 기타 물류 애플리케이션에서 알려져 있다. 코드 스캐너에서, 판독 빔은 회전 미러(rotating mirror) 또는 다면 미러 휠(polygon mirror wheel)에 의해 코드를 가로질러 안내된다. 카메라 기반 코드 판독기는 이미지 센서를 통해 코드가 있는 물체의 이미지들을 캡처하고, 이미지 처리 소프트웨어는 이러한 이미지들로부터 코드 정보를 추출한다. 카메라 기반 코드 판독기들은 1차원 바코드들 외에 다른 코드 유형(code type)들도 문제없이 처리할 수 있으며, 이때 상기 1차원 바코드들은 매트릭스 코드와 같이 2차원으로도 형성되고 더 많은 정보를 제공한다.
중요 애플리케이션 그룹에서, 코드가 있는 물체들은 코드 판독기를 지나 이송된다. 이 경우 코드 스캐너는 각각 그의 판독 영역으로 차례로 안내된 코드들을 검출한다. 대안적으로 카메라 기반 코드 판독기에서 라인 카메라(line camera)는 상대 이동 동안 코드 정보를 갖는 물체 이미지들을 연속적으로 한 라인씩 판독 입력한다. 2차원 이미지 센서에 의해서는 기록 주파수(recording frequency) 및 이송 속도에 따라 대체로 중첩되는 이미지 데이터가 규칙적으로 기록된다. 컨베이어 상에서 물체들이 임의의 방향으로 배치될 수 있도록 하기 위해 판독 터널(reading tunnel)에 다수의 코드 판독기가 제공되는 경우가 많으며, 이렇게 함으로써 다수의 또는 모든 면에서 물체들을 레코딩할 수 있다.
코드 판독기 또는 판독 터널의 경우, 높은 판독률은 가장 중요한 품질 기준 중 하나이다. 판독 오류는 새로운 수동 스캐닝 또는 재분류와 같은 복잡한 오류 제거 상황을 초래한다. 종래의 바코드 디코더는 이진화 기술에 의해 그레이 레벨 프로파일(gray level profile)로부터 생성되는 소위 에지 위치 어레이를 사용한다. 에지 위치의 결정과 이진화 방법은 각각 에지가 존재하는지 여부와 관계없이 이진화 분류에 상응하기 때문에 밀접하게 관련된다. 이러한 경우 실제 디코딩은 각각의 바코드 유형의 사양에 기초하여, 본질적으로 에지 위치 시퀀스에 상응하게 갭 대 막대의 비율을 참고로 1비트 벡터에서 이루어진다.
이는 흑백 이미지의 추출 또는 최초에 검출된 그레이 레벨 신호로부터의 이진화가 예를 들면 8비트 그레이 레벨에서 픽셀당 1비트씩의 정보의 상당한 손실과 결부되기 때문에, 이미지 처리 체인에서 중요한 포인트이다. 에지 위치들을 생성하면 항상 오류가 발생한다. 오류원에 대한 몇 가지 예는 픽셀 해상도, 매우 시끄럽거나 흐린 신호, 콘트라스트 부족 및 인쇄 오류와 관련하여 적은 막대 폭이다. 따라서 상기와 같은 오류의 심각도에 따라 코드를 더 이상 읽을 수 없는(NoRead) 결과와 함께 다수의 에지가 발견되지 않거나 부정확하게 위치 설정된다. 이러한 예는 바코드와 관련되지만 2차원 코드에서 유사한 문제가 발생한다.
EP 1 096 416 B1호는 다수의 연속 스캔으로부터 바코드를 재구성하는 방법을 개시한다. 이를 위해 단지 코드의 일부분을 포함하는 그레이 레벨 프로파일들이 전체 프로파일로 결합되어, 이후에 상기 전체 프로파일을 디코딩한다. 따라서 이러한 것은 후속해서 지금까지 전체 프로파일을 디코딩하는 문제와 같이 발생하기 때문에 전처리 단계와 관련된다.
EP 3 009 984 A1호에는 광학 코드용 검출 시스템이 공지되어 있으며, 상기 시스템에서는 이미지들의 시퀀스가 코드를 갖는 물체들의 이송 운동 중에 레코딩된다. 그러므로 다수의 레코딩을 통해 이미지 영역들을 추적할 수 있도록 2개의 연속 이미지 사이의 변위 벡터(displacement vector)가 결정된다. 그 결과 디코딩 자체가 변경되지 않는다.
바코드 판독을 위해서는 이미 뉴럴 네트워크(neural network)의 사용이 제안되었다. 예를 들어, US 8 905 314 B2호는 학습 뉴럴 네트워크로서 설계될 수 있는 분류기(classifier)에 의한 바코드 검출에 관한 것이다. 그러나 상기 분류기는 에지 위치들을 포함하는 특징 벡터(feature vector)를 사용한다. 이는 분류기의 입력 데이터가 이미 설명한 바와 같이 이진화 또는 에지 검출에 의한 정보 손실을 이미 경험했음을 의미한다. 또한, 분류기가 시뮬레이션된 특징 벡터에 기초하여 트레이닝된다. 따라서 실제 데이터에 대한 연결이 없다. 또한, 종래의 디코더들은 기계 학습 없이도 이미 높은 작업 능률에 도달했다. 이 때문에 US 8 905 314 B2호에서와 같이 공지된 이러한 접근법들은 기계 학습에 의한 판독 속도의 실질적인 향상을 위한 잠재성을 이용하지 않는다.
따라서 본 발명의 과제는 기계 학습을 통한 코드 판독을 향상시키는 것이다.
상기 과제는 청구항 1과 청구항 14에 따른 광전자 코드 판독기 및 광학 코드 판독 방법에 해결된다. 상기 코드 판독기는 수광 소자를 구비하며, 따라서 바람직하게는 그레이 레벨들을 갖는 이미지 데이터를 검출한다. 평가를 위하여, 기계 학습을 위해 형성된 분류기는 이미지 데이터들의 코드 영역들에 코드 정보를 할당한다. 상기 코드 영역들은 특히 전처리 과정에 의해 발견되며, 이러한 전처리 과정에서는 이미지 데이터가 예를 들면, 콘트라스트를 기반으로 분할된다.
한편, 본 발명은 고전적 디코더(classic decoder) 또는 이러한 디코더의 결과를 분류기에 사용하는 기본 아이디어로부터 출발한다. 분류기는 고전적 디코더의 판독된 코드를 기반으로 감독 학습(supervised learning)에 의해 트레이닝된다. 이와 관련하여, 고전적 디코더는 트레이닝 가능한 분류기와 달리 기계 학습 방법을 사용하지 않는 디코더를 의미한다. 따라서 "고전적"이라는 표현은 기계 학습의 반대일 수 있다. 이 경우 매개변수의 설정 및 조정이 고전적 디코더에서도 가능하며, 이 자체는 아직 학습이 아니다. 중요한 실용적 차이점들은 고전적 디코더가 이미 프로그래밍으로 작업할 준비가 되어 있고 경험 또는 트레이닝이 필요하지 않으며, 성능이 사용 초기부터 전체 실행시간 동안 거의 동일하다는 것이다. 이와 반대로 분류기의 성능은 어디까지나 프로그래밍된 구조에 의존할 뿐만 아니라 트레이닝 및 트레이닝 데이터의 품질과 관련하여 발생한다.
본 발명은 판독 속도가 클래식 디코드 및 코드 판독을 위한 종래의 기계 학습을 갖는 공지된 분류기보다 개선된다는 장점을 갖는다. 이는 낮은 해상도, 희미한 코드, 결함 및 잡음과 같은 간섭 효과에서도 작동한다. 분류기는 분할 막대(스플릿 바(split bar)), 초과압 또는 저압으로 인한 콘트라스트 문제, 희미한 코드 등과 같은 코드의 특정 판독 상황 및 응용 프로그램별 속성에 적합하게 적용할 수 있다. 이러한 적용은 최초 트레이닝 중에 그리고 판독 작동 중에도 온라인으로도 일어날 수 있다. 소위 고전적 디코더는 트레이닝 데이터를 라벨링하는 역할을 하기 때문에, 초기 트레이닝 또는 적용에 필요한 고품질 트레이닝 데이터가 매우 간단한 방식으로 생성될 수 있다.
코드 판독기는 바람직하게는 코드 스캐너로서 형성되어 있고, 판독 빔을 전송하기 위한 전송 광학기를 갖는 광 송신기 그리고 검출 영역에서 판독 빔을 주기적으로 편향시키기 위한 이동 가능한 편향 유닛을 구비한다. 이러한 스캐닝으로부터는 각각의 스캔 각도에 대해 반송 값이 산출되며, 그 결과 하나의 코드 스캐너도 이미지 데이터를 라인 단위로 효과적으로 검출한다. 대안적으로 코드 판독기는 카메라 기반이다. 많은 주요 애플리케이션에서, 코드 판독기 및 검출 영역은 핸드 헬드 장치가 검출 영역 위로 회동되거나 또는 코드 판독기가 운반된 물체 상의 코드를 판독하기 위한 컨베이어 벨트에 장착되는 경우 상대 이동 상태로 있다. 이러한 상대 이동으로 인해 물체와 코드 영역이 한 라인씩 연속적으로 검출되어 이미지 라인뿐만 아니라 2차원 이미지가 생성된다. 이것은 카메라 기반 코드 판독기에서 코드 스캐너와 라인 카메라에 동일하게 적용된다. 그러나 더 큰 이미지 섹션을 직접 기록하는 2차원 이미지 센서도 고려될 수 있다. 바코드를 판독하기 위해, 라인들은 스캐닝 방향 또는 카메라 라인에 상응할 수도 있는, 그러나 절대적으로 상응할 필요는 없는 이미지 데이터를 통해 그려진다. 이 라인들을 따라, 이미지 데이터는 디코딩될 그레이 레벨 프로파일을 제공한다.
고전적 디코더는 바람직하게는 흑백 이미지 정보를 처리하도록 형성되어 있다. 따라서 그레이 레벨 프로파일로부터 적절한 흑백 정보를 얻기 위한 고전적 디코더의 부분일 수도 있는 전처리가 제공되어 있다. 상기와 같은 고전적 디코더가 사용될 수 있으며, 도입부에서 설명한 문제에도 불구하고 이미 매우 높은 판독 속도를 달성한다.
고전적 디코더는 바람직하게는 이미지 데이터를 이진화하고 그리고/또는 이미지 데이터의 에지 위치를 결정하도록 형성되어 있다. 따라서 도입부에서 설명한 바와 같이, 그레이 레벨 프로파일들로부터 효과적으로 1비트 벡터가 검출되고, 따라서 이용 가능한 바 및 갭들의 시퀀스로부터, 고전적 디코더가 코드 콘텐츠(code content)를 검출한다.
분류기는 이미지 데이터의 그레이 레벨 정보들을 기반으로 코드 영역들에 코드 정보를 할당한다. 따라서 분류기는 바람직한 실시예에서의 고전적 디코더와 달리, 1 값 이진화 데이터를 사용하지 않고 그레이 레벨 프로파일을 사용하는 그레이 레벨 디코더이다. 이 경우 그레이 단계의 비트 깊이의 감소가 고려될 수 있지만, 이 경우 정보의 손실도 발생한다. 결과적으로 분류기는 단지 코드 결과 또는 라벨링을 제공하는 고전적 디코더에 대한 이진화된 데이터 또는 에지 위치가 아니라, 이 실시예에서는 그레이 레벨 프로파일에 의해서도 트레이닝된다. 따라서 분류기는 학습 데이터를 평가하는 고전적 디코더보다 더 많은 정보, 즉 그레이 레벨 정보를 사용한다. 이것은 본 발명에 따른 증가된 판독 속도에 대한 이유 중 한 가지이다: 분류기는 코드 또는 개별 문자를 디코딩할 때까지 그레이 레벨 프로파일의 전체 입력 정보를 사용하며, 그 결과 이진화 또는 에지 위치 결정의 알려진 문제점들이 더 이상 영향을 주지 않는다.
분류기는 바람직하게는 뉴럴 네트워크 또는 서포트 벡터 기계(support vector machine)를 구비한다. 이들은 기계 학습의 입증된 예로서, 많은 적합한 알고리즘 및 아키텍처를 사용할 수 있다. 랜덤 포레스트 트리(random forest trees)와 같은 기계 학습의 다른 방법도 고려될 수 있다.
분류기는 바람직하게는 코드 정보에 대한 코드 영역의 각각의 할당에 대한 신뢰도 척도를 결정한다. 지금까지는 코드를 읽지 못했을 때만 판독 오류(NoRead)로 간주되었다. 그 밖에 적어도 하나의 문자가 잘못된 값으로 읽혀졌을 가능성도 있다(Misread). 이러한 오류는 보정 방법 및 체크섬에 의해 어느 정도 검출되거나 심지어 제거될 수 있으며, 이러한 방법들은 기계 학습에 기초한 분류기를 가진 코드 판독기에서도 사용될 수 있다. 그러나 분류기가 이미 판독 오류 확률을 평가하는 경우에 유용하다. 이러한 경우 상기 판독 오류 확률은 예를 들어 Misread에 대한 요구 확률이 지정되고 신뢰도와 비교된다는 점에서 임계점을 통해 매개변수화될 수 있다.
평가 유닛은 바람직하게는 코드 영역들을 개별 코드 요소들로 분할하도록 형성되어 있으며, 이 경우 분류기는 각각 한 단계에 하나의 코드 요소만을 디코딩한다. 분류 작업은 대체로 시간 임계적이지 않은데, 그렇지 않은 경우에는 분류기의 다수 예시에서 코드 요소들을 병렬로 디코딩하는 것도 가능하다. 원칙적으로 분류기는 더 긴 시퀀스도 학습하여 구별할 수 있지만, 현저히 더 많은 등급을 분리하고 더욱 복잡한 과정을 거쳐 트레이닝되어야 한다. 따라서 한 번에 하나의 코드 요소에 대해서만 단계적으로 분류하는 것이 유리한다.
평가 유닛은 바람직하게는 고전적 디코더 및/또는 분류기의 방법에 의해 시작 문자 및/또는 정지 문자를 발견하고 그사이에 놓인 코드 영역을 개별 코드 요소들로 분할하도록 형성되어 있다. 일반적인 표준에서 개개의 코드 요소들은 길이가 같으므로, 코드 시작 및 코드 끝을 알고 있으면 영역이 그 사이에 마찬가지로 코드 유형에 따라 공지된 코드 요소 수로 분할될 수 있다. 시작 및 정지 문자의 발견은 고전적 디코더 및 분류기 모두에 의해 고려될 수 있으며, 이때 상기 분류기는 바람직하게는 그레이 레벨 프로파일의 양단부로부터 중간 방향으로 검색한다.
고전적 디코더 역시 바람직하게는 평가 유닛 내에 구현되어 있다. 대안적으로는 다른 장치에 의해 또는 외부에서 이미지 데이터를 기반으로 고전적 디코더의 판독 결과를 얻는 것을 생각할 수 있다. 코드 판독기의 작동을 위해서는 학습 단계를 거쳐 트레이닝된 분류기면 충분하다. 그럼에도 불구하고 다양한 이유로 고전적 디코더가 동일한 장치 내에서 분류기에 추가로 이용 가능한 경우 유용하다.
바람직하게 평가 유닛은 고전적 디코더 및 분류기로 코드 영역의 이미지 데이터를 코드 정보에 할당함으로써 코드를 판독하도록 형성되어 있다. 따라서 이는 코드를 두 가지 방법으로, 즉 병렬 또는 연속으로 판독하는 방법을 의미한다. 하나의 방법만 코드를 읽을 수 있는 경우에는 그 결과가 사용된다. 상이한 판독 결과가 있는 경우, 예를 들어 신뢰도 척도에 기초하여 분류기가 실제로 고전적 디코더와 일치하는지 여부를 결정할 수 있다. 또한, 상기와 같은 경우 처음부터 누가 확고한 순위를 차지하는지 결정하는 것도 가능하다. 두 방법 모두 부분 디코딩에서만 성공하면 부분 결과들이 결합될 수 있다.
분류기는 바람직하게 고전적 디코더에 의해 판독될 수 없는 코드를 판독하는 데에만 사용된다. 고전적 디코더를 사용하면, 거의 99%의 판독 속도가 달성될 수 있다. 분류기가 나머지 경우에만 사용되는 경우, 이미 달성된 디코더 품질은 손상되지 않는데, 이와 반대로 상기 디코더 품질은 분류기가 지금까지 판독할 수 없었던 코드를 판독할 수 있기 때문에 더욱 향상될 수 있다. 비록 1%의 낮은 오류율이긴 하지만, 이를 줄이면 상당한 경제적 장점이 주어진다. 덧붙여 고전적 디코더에 의해 이미 코드가 판독되는 수많은 판독 작업은 분류기의 검증 또는 추가 트레이닝에 사용될 수 있다. 그 결과 특히 작동 과정에서 코드 또는 이미지 레코딩의 품질이나 기타 속성을 변경하는 느린 드리프트(drift)에 적합한 적용이 이루어진다.
평가 유닛은 바람직하게 이미지 데이터를 통해 상이한 라인들에 대한 코드 정보들에 대한 코드 영역들의 할당을 반복하고, 이어서 특히 보팅 방법으로 부분 결과를 공통 코드 콘텐츠로 결합하도록 형성되어 있다. 바코드의 정보는 1차원으로만 코딩되지만, 상기 바코드가 상이한 판독 라인들이 배치될 수 있도록 가로 방향 확장을 가짐으로써 다수의 그레이 레벨 프로파일이 얻어질 수 있다. 이미지 에러들 및 이미지 변형예들에 따라, 상기와 같은 그레이 레벨 프로파일들은 상이한 부분 영역들의 디코딩을 허용할 수 있다. 신뢰도 척도는 특히, 신뢰할 수 없고 이에 따라 부정확한 부분 결과가 고려되지 않도록 각각의 판독에서 보팅 또는 개별 부분 기여의 가중 계수로 특히 유용한다.
평가 유닛은 바람직하게는, 코드 정보들이 상이한 시점들에 생성된 이미지 데이터 사이에서 추적되고, 이렇게 다중 레코딩 코드 영역들에서 각각의 코드 요소들에 코드 정보가 할당되며, 이어서 코드 정보들이 코드 콘텐츠에 결합되는, 이미지 중첩 코드 판독을 위해 형성되어 있다. 많은 경우 이미지 결함이 전체 높이에 걸쳐 있기 때문에 동일한 이미지에서 다수의 그레이 레벨 프로파일을 평가하는 것만으로는 충분하지 않다. 2차원 코드의 경우, 이미 전체 폭 또는 높이가 아닌 국부적으로만 연장되는 이미지 오류로 인해 문제가 발생한다. 판독 터널과 같은 많은 애플리케이션에서, 동일한 코드 영역은 상대 이동 중에 여러 번 검출된다. 이 경우 코드 영역들은 상대 이동을 기반으로 추적할 수 있다. 이러한 경우 코드 영역들은 상대 이동을 참조하여 추적될 수 있고(tracking), 전체 코드는 개별 사진의 부분 디코딩에서 이미지 중첩 방식으로 결합된다. 이를 위해서도 동일한 이미지 내에서 다수의 판독 라인에 대한 부분 디코딩에 상응하게 보팅 방법이 고려될 수 있다. 동일한 이미지 및 이미지 중첩 방식의 다수의 부분 판독 값의 합이 결합될 수도 있다.
본 발명에 따른 방법은 유사한 방식으로 개선될 수 있으며, 동시에 유사한 장점들을 나타낸다. 상기와 같은 바람직한 특징들은 독립 청구항들에 후속하는 종속항들에 예시적으로, 그러나 비제한적인 방식으로 기술되어 있다.
본 발명은 하기에서 또한, 추가 특징들 및 장점들과 관련하여 예시적인 실시 형태들 및 첨부된 도면을 참조하여 상세히 설명된다. 도면부에서:
도 1은 판독될 코드를 갖는 물체들이 이송되는 컨베이어 벨트 위에 장착된 코드 판독기의 예시적인 장착을 3차원 도면으로 개략적으로 도시하고;
도 2는 코드를 디코딩하기 위한 그레이 레벨 프로파일이 획득되는 다수의 스캐닝 라인을 갖는 코드의 이미지 데이터의 예를 도시하며;
도 3은 예시적인 그레이 레벨 프로파일을 도시하고;
도 4는 코드 요소들 또는 개별 문자들을 설명하기 위한 예시적인 바코드를 도시한 도면이며;
도 5는 기계 학습을 통해 분류기의 트레이닝 및 작동을 설명하기 위한 다수의 그레이 레벨 프로파일 및 상응하는 코드 콘텐츠를 표로 도시한 도면이고;
도 6은 보팅 방법으로 다수의 디코딩 시도 및 이러한 시도의 공통 평가를 표로 도시한 도면이며;
도 7은 도 6과 유사하게 다수의 디코딩 시도를 표로 도시한 도면이고(그러나 이 경우에는 동일한 이미지에서 다수의 판독 시도 대신에 다수의 이미지 전체에 걸쳐 판독이 수행됨); 그리고
도 8은 상이한 레코딩 상황으로 인해 이미지 에러가 변경되는 동일한 코드의 2개의 이미지를 갖는 예를 도시한 도면이다.
도 1은 컨베이어 벨트(12) 위에 장착된 광전자 코드 판독기(10)를 도시하며, 상기 컨베이어 벨트는 화살표(16)로 표시된 바와 같이, 물체(14)들을 상기 코드 판독기(10)의 검출 영역(18)을 통해 이송한다. 상기 물체(14)들은 그들의 외부 표면(10)들에 코드 영역(20)들을 가지며, 이들 코드 영역(20)은 코드 판독기(10)에 의해 검출되어 평가된다. 상기 코드 영역(20)들은 상부면에 배치되거나 적어도 위에서 볼 수 있도록 부착된 경우에만 코드 판독기(10)에 의해 검출될 수 있다. 따라서 도 1의 예시와 달리, 약간 측면에 또는 하부면에 부착된 코드(22)를 판독하기 위해 상이한 방향으로부터 다수의 코드 판독기(10)가 장착될 수 있으며, 이렇게 함으로써 모든 방향에서 소위 전방위 판독이 가능해진다. 다수의 코드 판독기(10)를 하나의 판독 시스템으로 배열하는 것은 실제로 대부분 판독 터널로서 이루어진다. 이와 같이 코드 판독기(10)는 실제로 컨베이어 벨트(12)에 고정식으로 적용되는 경우가 많다. 본 발명은 먼저 코드 판독기(10) 자체 그리고 이 코드 판독기의 디코딩 방법과 관련이 있으며, 그 결과 상기와 같은 예시로 제한되는 것으로 간주되어서는 안 된다.
코드 판독기(10)는 광 수신기(24)에 의해 이송된 물체(14)들 및 코드 영역(20)들의 이미지 데이터를 검출하고, 상기 코드 영역들은 평가 유닛(26)에 의해 이미지 평가 및 디코딩 방법을 이용하여 부가 처리된다. 본 발명은 특정 이미징 방법에 의존하지 않으며, 그 결과 코드 판독기(10)가 원래 알려진 임의의 원리에 따라 설계될 수 있다. 예를 들어, 라인형 이미지 센서 또는 스캐닝 방법에 의해 각각 단 하나의 라인만 검출되고, 평가 유닛은 이송 이동 과정에서 검출된 라인들을 이미지 데이터에 결합한다. 매트릭스형 이미지 센서에 의해서는 이미 사진에서 더 큰 영역이 검출될 수 있으며, 이 경우 마찬가지로 이송 방향뿐만 아니라 상기 이송 방향에 횡 방향으로도 사진들의 결합이 가능하다.
코드 판독기(10)의 주요 임무는 코드 영역(20)들을 식별하고, 그곳에 부착된 코드들을 판독하는 것이다. 이를 위해 평가 유닛(26)에는 고전적 디코더(28) 및 기계 학습의 원리에 따라 작동하는 분류기(30)가 구현되어 있다. 디코딩 방법은 계속해서 도 2 내지 도 8을 참조하여 하기에서 상세히 설명된다. 고전적 디코더(28)는 특히, 분류기(30)를 트레이닝시키는 데 사용되며, 그 결과 도 1과 달리 일부 실시 형태들에서 코드 판독기(10) 내에 고전적 디코더(28)가 없다. 그러나 바람직한 실시 형태들에서는 고전적 디코더(28)가 마찬가지로 작동 시에도 코드들을 판독하기 위해, 트레이닝, 특히 추가 트레이닝, 또는 검증을 단순화하기 위해 또는 코드 요소로의 분할과 같이 적어도 하위 임무들을 수행하기 위해 사용된다. 인터페이스(32)를 통해, 코드 판독기(10)는 판독된 코드 또는 이미지 데이터와 같은 정보를 출력한다. 고전적 디코더(28) 및/또는 분류기의 기능은 또한, 상기 인터페이스(32)를 이용하여 적어도 부분적으로 외부에, 예를 들면 네트워크 또는 클라우드에 연결하여 제공될 수 있다. 따라서 예를 들어, 복잡한 트레이닝은 외부에서 실시된다. 이러한 경우 분류기(30)는 학습 결과만, 예를 들면 뉴럴 네트워크의 가중 계수만 수신하며, 그리고 상기 분류기는 코드 판독에 사용될 수 있다.
도 2는 코드 판독기(10)에 의해 검출된 코드 영역(20)의 이미지 데이터의 예를 도시한다. 바코드 디코딩을 위해서는 이미, 이미지 라인이 코드 요소들에 평행하게 산출되지 않은 경우 하나의 이미지 라인이면 충분하다. 따라서 방향 설정이 적절한 경우 많은 판독 라인(34)이 사용될 수 있다. 이미지 데이터에 코드 영역(20)을 위치시키고 판독 라인(34)들의 적절한 방향 설정을 발견하기 위해 선행되는 분할 작업은 그 자체로 공지되어 있으며, 이 경우에 전제된다.
먼저 상기와 같은 판독 라인(34) 중 하나의 판독 라인으로 제한되는 것이 고려된다. 도 3은 판독 라인(34)을 따라서 상응하는 그레이 레벨 프로파일, 즉 강도 곡선 또는 이미지 라인을 도시한다. 디코딩은 코드 유형의 지정에 상응하게 상기 그레이 레벨 프로파일에 코드 콘텐츠를 할당하는 것이다. 이 경우 코드 유형들이 제공되고, 이러한 코드 유형들에서는 판독된 코드 정보가 예를 들면, 인터리브(interleaved) 2/5일 때와 같이 문자와 직접적으로 일치한다. 코드 128과 다른 경우들에서 코드 정보는 여전히 내부 디코더 모드(CodeC 표, Shift와 같은 모드 전환, 기능 문자 FNC)의 상태에 따라 그리고 이후 계속해서 변환되어야 하는 원시 형식(raw format)으로만 검색된다. 후속해서 상기와 같은 경우들은 더 이상 구별되지 않고, 단순화되어, 할당된 코드 정보가 이미 원하는 결과라고 가정된다.
분류기(30)는 고전적 디코더(28)에 비해 판독 속도를 증가시킬 목적으로 사용되어야 한다. 이를 위해 맨 먼저 분류기(30)는 트레이닝된다. 이러한 트레이닝은 온라인 트레이닝으로서 고전적 디코더(28)에 의한 판독 작동 동안, 특히 추가 적용을 위한 추가 트레이닝 형태로 고려될 수 있다. 이러한 경우 트레이닝된 분류기(30)에 의해서는 개선된 디코딩이 가능하다.
하기에서는 먼저 학습 또는 트레이닝 단계 그리고 후속해서 작동 또는 평가 단계가 바람직한 일 실시예를 사용하여 설명된다. 본 발명은 종속항들의 특징들을 갖는 바람직한 실시 형태로 다양한 변형이 가능하다.
학습 단계에서, 고전적 디코더(28)는 분류기(30)의 감독(supervisor) 또는 트레이너(trainer)로서 사용된다. 이를 위해 코드 판독기(10) 또는 대등한 장치에 의해 검출된 이미지 데이터로부터 많은 그레이 레벨 프로파일이 트레이닝 데이터로서 생성된다. 고전적 디코더(28)는 대다수의 경우에 상응하는 코드를 판독할 수 있으며, 그 결과 그레이 레벨 프로파일들의 의미가 알려져 있다. 고전적 디코더(28)의 판독 에러(NoRead)를 갖는 그레이 레벨 프로파일들은 바람직하게 이러한 학습 단계에서 폐기된다. 트레이닝 데이터는 코드 판독기(10)의 통상 작동과 동시에 생성될 수 있고, 또한 온라인으로 곧바로 연속적인 트레이닝에 사용될 수 있다. 그러나 작동과는 무관한 학습 단계 및 데이터베이스에 트레이닝 데이터를 수집하는 것도 가능하며, 이 경우 선택적으로 고전적 디코더(28)는 그의 판독 결과를 데이터베이스에 저장하거나, 또는 트레이닝 동안에 비로소 판독 결과를 생성한다. 원칙적으로 트레이닝 데이터의 이러한 라벨링, 즉 그레이 레벨 프로파일에 대한 올바른 코드 콘텐츠의 할당은 다른 방식으로도 이루어질 수 있지만, 고전적 디코더(28)에 의해 이미 간단하고 신뢰도 있는 가능성이 사용되며, 본 발명은 바람직하게 이 가능성을 이용한다.
에지 위치 어레이는 매우 통상적인 방식으로 고전적 디코더(28)에 의한 디코딩 범위 내에서 생성될 수 있으며, 이때 상기 에지 위치 어레이는 완전한 판독 결과가 주어질 때까지 문자 단위로 처리된다. 코드 콘텐츠, 에지 위치 어레이 및 코드 유형으로 인해 개별 코드 요소들이 있는 위치가 공지되어 있다. 도 4는 이러한 것을 코드 시작 부분에 개별 코드 요소들에 대한 몇몇 분리선이 있는 예제 코드를 도시한다. 그 아래에는 각각의 코드 요소의 디코딩된 문자가 있다. 이로부터 각각의 문자에 상응하는 그레이 레벨 프로파일의 세그먼트도 획득될 수 있다.
따라서 판독된 각각의 코드는 코드 길이(code length)에 상응하게 다수의 트레이닝 데이터 세트를 제공하며, 이 경우 각각의 트레이닝 데이터 세트는 그레이 레벨 프로파일의 세그먼트를 상기 세그먼트의 정확한 분류와 함께, 즉 의미 또는 코드 콘텐츠를 함께 포함한다. 실제로 그레이 레벨 프로파일의 세그먼트는 추후에 평가 단계에서 바의 폭, 판독 간격, 물체 높이, 콘트라스트 변화 및 유사한 효과와 같은 적용 매개변수와 무관하도록 학습 전에 계속 크기 및 콘트라스트와 관련하여 표준화되어야 한다.
도 5는 다시 한 번 표로 나타낸 개요를 도시한다. 표의 왼쪽 부분에서 각 행에는 그레이 레벨 프로파일 세그먼트가 있고, 반면에 오른쪽에는 관련된 코드 콘텐츠가 있다. 학습 단계에서, 이러한 관계식이 분류기(30)에서 트레이닝된다. 그레이 레벨 프로파일들의 세그먼트들은 입력(Features)이며, 코드 콘텐츠는 연관되고 알려진 라벨 또는 등급(target varibale)을 제공한다.
이 경우에는 예를 들면, 뉴럴 네트워크, 다중 클래스 서포트 벡터 기계, 랜덤 포레스트 트리 등의 기계 학습(machine learning)을 갖는 다중 클래스(multi-class) 분류기(30)의 다양한 알고리즘 또는 구현 고려된다. 구현 복잡성과 필요한 하드웨어 외에도, 선택 기준은 무엇보다도 품질, 즉 판독 속도의 실제 향상 그리고 평가 속도이다. 원칙적으로 상관기(correlator)도 고려될 수 있을 것이며, 이 경우 상기 상관기는 기계 학습을 사용하지 않고, 새로 판독된 그레이 레벨 프로파일의 세그먼트들을 알려진 콘텐츠의 저장된 세그먼트들과 직접적으로 상관시킨다. 상관 계수를 통해서는 또한, 디코딩된 문자의 정확성에 대한 신뢰도 레벨이 제공될 수 있다. 그러나 상기와 같은 억지 알고리즘(brute force algorithm)은 상당한 계산 복잡성이 요구되고, 오랜 실행 시간만으로 이미 열등하다. 또한, 상기와 같은 상관기는 알려지지 않은 새로운 기계 학습 상황들에 대한 적응력이 부족하다.
바람직하게는 판독될 바코드 유형의 문자 세트의 각각의 문자에 대해 충분한 개별 문자 결과를 갖는 트레이닝 단계 다음에 평가 단계, 즉 판독 작동이 이어질 수 있고, 상기 판독 작동에서는 분류기(30)가 실제로 디코딩 및 판독 속도 증가를 위해 사용된다. 분류기(30)가 사전 트레이닝되는 경우, 학습 단계가 생략된다. 이러한 생략은 예를 들어, 이미 트레이닝된 분류기(30)가 한 장치에서 곧바로 또는 네트워크/클라우드를 통해 다른 장치로 전송될 때 고려될 수 있다.
도 5의 도시는 상기와 같은 평가 단계 상황에도 적용된다. 차이점은, 표 왼쪽에 표시된 그레이 레벨 프로파일이 분류되지 않은 새로운 데이터를 나타낸다는 것이다. 그 결과 트레이닝과 대조적으로, 오른쪽에 도시된 코드 콘텐츠가 더 이상 알려지지 않고, 분류기(30)에 의해 추정되거나 예측된다. 트레이닝 데이터의 관계식은 분류기(30)의 모델에서, 예를 들어, 뉴럴 네트워크의 가중 계수 형태로 도시되어 있다.
고전적 디코더(28)는 평가 단계에서 반드시 필요한 것은 아니다. 그러나 바람직한 일 실시 형태에서는 디코딩이 주로 고전적 디코더(28)에 의해 계속 수행될 수 있다. 이러한 디코딩이 실패하는 경우에만, 분류기(30)는 코드를 가능한 한 계속 판독하기 위해 사용된다. 본 실시 형태에서 기계 학습 방법들을 이용한 분류는 확장으로서, 특히 고전적 디코더(28)의 판독 에러(NoRead) 시 재시도로서 사용된다. 이는, 고전적 디코더(28)의 이미 달성된 높은 판독 속도와 짧은 디코딩 시간이 위험 수준에 이르지 않는다는 장점을 갖는다.
또한, 상응하는 코드 유형의 시작 및 정지 문자 위치의 인식과 같은 하위 임무의 경우에도 계속해서 고전적 디코더(28)를 사용하는 것을 고려할 수 있다. 이러한 목적을 위해 고전적 디코더(28)는 상응하는 출력 기능을 제공해야 한다. 분류기(30)가 다른 모든 문자와 같이 상응하는 코드 콘텐츠를 갖는 그레이 레벨 프로파일인 시작 및 정지 문자를 자체적으로 찾을 수 있기 때문에 고전적 디코더(28)는 필수적으로 필요하지 않다. 이러한 경우 검색은 바람직하게는 양단부에서 시작하여 중간 방향으로 계속된다.
시작 문자와 정지 문자를 찾으면, 문자의 수는 특정 코드 유형 그리고 픽셀 단위의 시작 및 정지 문자의 크기를 기초로 추정된 다음 시작 및 정지 문자 사이에서 그레이 레벨 프로파일을 상응하는 그레이 레벨 프로파일 세그먼트 수로 분할한다. 그레이 레벨 프로파일의 개별 세그먼트들은 학습 단계에 유사하게 표준화된다. 따라서 도 5의 왼쪽 부분에 상응하게 그레이 레벨 프로파일들이 얻어지고, 분류기(30)가 상기 그레이 레벨 프로파일들에 오른쪽 부분에 도시된 코드 콘텐츠를 할당한다.
이상적인 경우 분류기(30)에 그레이 레벨 프로파일의 모든 세그먼트들을 디코딩하는 데 성공한다. 그러나 상기와 같은 이상적인 경우는 특히, 고전적 디코더(28)의 드문 판독 에러를 보상하여 특히 문제의 경우를 규칙적으로 처리하기 위해 분류기(30)만 사용되는 경우에 항상 주어지는 것은 아니다. 또한, 분류기(30)는 항상 분류 결과가 있지만 반드시 객관적으로 정확하지 않게 구현될 수 있다.
이를 위해 분류기(30)가 분류에 추가하여 신뢰도 척도(Score, Confidence-Level)를 제공하는 것이 바람직하다. 따라서 한편으로는 단일 그레이 레벨 프로파일로부터의 판독 결과가 충분히 신뢰할 만한지(판독 오류 없음) 평가할 수 있다.
도 2에 도시된 바와 같이, 바코드의 경우 하나의 가능한 판독 라인(34)만 주어지지 않는다. 이러한 중복은 판독 오류를 더욱 감소시키기 위해 사용될 수 있다. 이를 위해 디코딩은 각 하나의 판독 라인(34)의 그레이 레벨 프로파일에 의해 여러 번 수행된다. 이로부터 각 코드 요소에 대해 다수의 그레이 레벨 프로파일의 다수의 관련 세그먼트가 주어진다.
이러한 디코딩 결과는 예시적으로 도 6에 표로 도시되어 있다. 이러한 표는 보팅 매트릭스로도 언급된다. 여기에서 Pos1 ... PosN은 다양한 코드 요소를 나타낸다. 행들에는 각각 다른 판독 라인(34)을 따라 반복된 다양한 판독 시도가 Scan1 ... ScanJ로 도시되어 있다. 표의 개별 값들은 코드 콘텐츠/신뢰도 척도와 같은 형식을 갖는다. 예를 들어 Pos3의 Scan1에서 값 01은 0.94의 신뢰도로 디코딩되었다.
한편 각 열마다 다수결이 결정된다(Voting). 신뢰도 척도를 갖는 가중 계수가 고려될 수 있다. 공통적으로 결정된 코드 콘텐츠인 결과는 도 6의 맨 아래 행에 표시된다.
이 예에서 이미 신뢰도 < 0.5는 이미 신뢰할 수 없는 것으로 간주되는데, 다시 말해 잘못 할당되었거나 신뢰할 수 있는 것으로 분류될 수 없다. 열은 신뢰할 수 없는 할당으로만 구성될 수도 있다. 상기와 같은 열 위치들에서 분류기(30)는 특히, 적어도 필요한 신뢰도를 갖지 않는 다수의 판독 라인(34)으로도 코드를 판독할 수 없었다.
더욱 엄격한 기준에 따르면, 심지어 i회 이상 신뢰할 수 있게 분류되어야 한다. 즉, 하나의 열에 단 i회 신뢰도 ≥ 0.5가 입력된 경우, 전체 결과는 유효하지 않은 것으로 간주된다. 오류들 사이 비율은 i(다중 판독 또는 코드 신뢰도) 및 임계값 0.5를 통해서 조절될 수 있다(NoRead, Misread).
이미지 오류가 바코드의 전체 높이에 걸쳐 연장되면, 다수의 판독 라인(34)에 대한 판독 결과의 합이 더 이상 도움이 되지 않는다. 그렇더라도 코드는 가능한 한 계속 이미지 중첩 방식으로 판독될 수 있다. 도 7은 표 형식의 예를 보여준다. 표는 도 6에 상응하며, 차이점은 라인들이 더 이상 동일한 이미지 내의 상이한 판독 라인(34)들에 상응하지 않지만, 동일한 코드의 다른 이미지에서 각 하나의 개별 판독 라인(34)에 상응한다. 또한, 다수의 이미지에서 다수의 판독 라인(34)을 평가함으로써 두 가지가 조합될 수도 있다.
설명을 위해 도 8에는 상이한 레코딩 상황에서 동일한 코드의 2개의 이미지, 특히 동일한 코드가 두 경우 모두에서 검출되도록 서로 충분히 근접한 2개의 연속적인 이송 위치가 도시되어 있다. 반사로 인해 각각 코드 영역들이 나타나지 않는다. 그러나 관련된 이미지 영역들은 구별된다.
이미지에서 이미지로의 모션 벡터는 추적 알고리즘을 사용하여 결정될 수 있다. 그 결과 말하자면 그레이 레벨 프로파일들이 마찬가지로 이미지 전체에 걸쳐 정확하게 겹쳐질 수 있고, 따라서 다중 판독에 사용될 수 있다. 갭 또는 불충분한 신뢰도로 디코딩된 코드 문자가 반사 작용하는 호일 아래에서 코드를 검출할 때와 같이 빈번하게 나타나는 이동성 결함에 의해 유발되는 한, 코드는 여전히 소정의 프레임 수에 따라 가능한 한 계속 판독될 수 있다. 도 7의 예에서, 도움이 되는 모든 개별 판독 값은 불완전하지만 공통 코드는 보팅 방법 이후에 더 이상 갭을 포함하지 않는다. 따라서 모든 개별 이미지의 판독 에러(NoRead)가 계속 보상된다.
본 발명은 바코드를 예로 들어 설명되었다. 이 경우 때로는 특정 코드 유형이 도시되지만, 본 발명은 특정 코드 유형으로 제한되지 않는다. 2D 코드를 판독해야 하는 경우 라인 모양의 그레이 레벨 프로파일이 더 이상 전체 코드를 나타내지 않는 것과 같이 몇 가지 차이점이 있다. 그 대신 개별 코드 문자에 대한 그레이 레벨 정보들은 판독해야 할 2D 코드의 표준에 상응하게 다른 방식으로 분할되어야 한다. 그럼에도 불구하고 코드 문자에 상응하는 그레이 레벨 패턴이 주어진다. 따라서 본 발명은 2D 코드에도, 특히 PDF417과 같은 중첩 코드 유형에도 용이하게 적용될 수 있으며, 이 경우 분류기(30)는 상응하는 3개의 클러스터의 PDF417 코드 단어들을 분류한다.

Claims (15)

  1. 수신 광으로부터 이미지 데이터를 생성하기 위한 하나 이상의 수광 소자(light receiving element)(24) 그리고 상기 이미지 테이터의 코드 영역(20)들에 코드 정보를 할당하는 분류기(classifier)(30)가 구현되어 있는 평가 유닛(26)을 구비하는, 광전자 코드 판독기(10), 특히 바코드 판독기로서,
    상기 분류기(30)가 기계 학습을 위해 형성되어 있는, 코드 판독기(10)에 있어서,
    상기 분류기(30)가 기계 학습(machine learning) 방법들을 사용하지 않는 고전적 디코더(classic decoder)(28)의 판독된 코드를 기반으로 감독 학습(supervised learning)에 의해 트레이닝되는 것을 특징으로 하는,
    코드 판독기.
  2. 제1항에 있어서,
    상기 고전적 디코더(28)가 흑백 이미지 정보들을 처리하도록 형성된,
    코드 판독기.
  3. 제1항 또는 제2항에 있어서,
    상기 고전적 디코더(28)가 상기 이미지 데이터를 이진화하고, 그리고/또는 상기 이미지 데이터에서 에지 위치들을 결정하도록 형성된,
    코드 판독기.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 분류기(30)가 상기 이미지 데이터의 그레이 레벨 정보(gray level information)들을 기반으로 코드 영역들에 코드 정보를 할당하는,
    코드 판독기.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 분류기(30)가 뉴럴 네트워크(neural network) 또는 서포트 벡터 기계(support vector machine)를 구비하는,
    코드 판독기.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 분류기(30)가 또한, 코드 정보에 대한 코드 영역(20)의 각각의 할당의 신뢰도 척도를 결정하는,
    코드 판독기.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 평가 유닛(26)은 코드 영역(20)들을 개별 코드 요소들로 분할하도록 형성되어 있으며, 상기 분류기(30)는 각각 한 단계에 단 하나의 코드 요소를 디코딩하는,
    코드 판독기.
  8. 제7항에 있어서,
    상기 평가 유닛(26)이 상기 고전적 디코더(28) 및/또는 분류기(30)의 방법에 의해 시작 문자 및/또는 정지 문자를 발견하고, 그사이에 놓인 코드 영역(20)을 상기 개별 코드 요소들로 분할하는,
    코드 판독기.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 고전적 디코더(28)가 또한, 상기 평가 유닛(26) 내에 구현되어 있는,
    코드 판독기.
  10. 제9항에 있어서,
    상기 평가 유닛(26)은 상기 고전적 디코더(28) 및 분류기(30)에 의해 코드 영역(20)의 이미지 데이터를 코드 정보에 할당함으로써 코드를 판독하도록 형성된,
    코드 판독기.
  11. 제9항 또는 제10항에 있어서,
    상기 분류기(30)가 상기 고전적 디코더(28)에 의해 판독될 수 없는 코드를 판독하기 위해서만 사용되는,
    코드 판독기.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 평가 유닛(26)은 상기 이미지 데이터를 통해 상이한 라인(34)들의 코드 정보들에 대한 코드 영역(20)들의 할당을 반복하고, 이어서 부분 결과들을 특히 보팅 방법(voting method)으로, 공통 코드 콘텐츠로 결합하도록 형성된,
    코드 판독기.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 평가 유닛(26)이 이미지 중첩 코드 판독을 위해 형성되어 있으며, 상기 이미지 중첩 코드 판독에서 코드 영역(20)들은 상이한 시점들에서 생성된 이미지 데이터 사이에서 추적되고, 따라서 다중 레코딩된 코드 영역(20)들의 경우 각각 코드 요소들에 코드 정보가 할당되어 상기 코드 정보들이 코드 콘텐츠로 결합되는,
    코드 판독기.
  14. 이미지 데이터로부터 광학 코드, 특히 바코드를 판독하기 위한 방법으로서,
    기계 학습을 위해 형성된 분류기(30)에 의해 이미지 데이터의 코드 영역(20)들에 코드 정보가 할당되는, 광학 코드 판독 방법에 있어서,
    상기 코드들이 먼저 기계 학습 방법들을 사용하지 않는 고전적 디코더(28)에 의해 판독되고, 그리고 상기 분류기(30)가 상기 판독된 코드들을 기반으로 감독 학습에 의해 트레이닝되는 것을 특징으로 하는,
    광학 코드 판독 방법.
  15. 제14항에 있어서,
    상기 고전적 디코더(28)가 이진화된 이미지 데이터 또는 상기 이미지 데이터의 에지 검출을 기반으로 코드를 판독하고, 그리고 상기 분류기(30)가 상기 이미지 데이터의 그레이 레벨 정보들을 기반으로 코드 영역(20)들에 코드 정보를 할당하는,
    광학 코드 판독 방법.





KR1020180077910A 2017-07-12 2018-07-04 광전자 코드 판독기 및 광학 코드 판독 방법 KR102010494B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17180889.2A EP3428834B1 (de) 2017-07-12 2017-07-12 Optoelektronischer codeleser und verfahren zum lesen von optischen codes
EP17180889.2 2017-07-12

Publications (2)

Publication Number Publication Date
KR20190007380A true KR20190007380A (ko) 2019-01-22
KR102010494B1 KR102010494B1 (ko) 2019-08-13

Family

ID=59325193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180077910A KR102010494B1 (ko) 2017-07-12 2018-07-04 광전자 코드 판독기 및 광학 코드 판독 방법

Country Status (5)

Country Link
US (1) US11176454B2 (ko)
EP (1) EP3428834B1 (ko)
JP (1) JP6869208B2 (ko)
KR (1) KR102010494B1 (ko)
CN (1) CN109255271B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3081355B1 (fr) * 2018-05-24 2020-06-12 Solystic Procede de tri de bagages en aeroport avec videocodage optimise
EP3789906B1 (de) * 2019-09-05 2021-07-07 Sick Ag Bestimmen der modulgrösse eines optischen codes
EP3812953B1 (de) * 2019-10-22 2021-09-29 Sick Ag Codeleser und verfahren zum lesen von optischen codes
JP7058053B2 (ja) * 2020-01-31 2022-04-21 株式会社オプティム コンピュータシステム、情報コード読取方法及びプログラム
DE102020108910B3 (de) * 2020-03-31 2021-07-22 Sick Ag Austausch einer Kamera
EP3916633A1 (de) * 2020-05-25 2021-12-01 Sick Ag Kamera und verfahren zum verarbeiten von bilddaten
EP3916618B1 (en) * 2020-05-27 2023-06-28 Siemens Aktiengesellschaft A method of reading a tag located on an object using a model and an industrial device therefor
EP3926519B1 (de) * 2020-06-18 2024-05-29 Leuze electronic GmbH + Co. KG Optischer sensor und verfahren zur erfassung von codes
EP4030337B1 (de) * 2021-01-18 2024-03-13 Leuze electronic GmbH + Co. KG Optischer sensor und verfahren zur erfassung von codes
CN113962231B (zh) * 2021-10-13 2024-03-26 杭州胜铭纸业有限公司 包装箱信息码光学识别比对方法及系统
DE102021126906A1 (de) 2021-10-18 2023-04-20 Sick Ag Kamerabasierter Codeleser und Verfahren zum Lesen optischer Codes
EP4231195B1 (de) 2022-02-21 2024-07-10 Sick Ag Auffinden von codebildbereichen in einem bild eines codetragenden objekts
EP4290403A1 (de) * 2022-06-07 2023-12-13 Sick Ag Lesen eines eindimensionalen optischen codes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120019964A (ko) * 2010-08-27 2012-03-07 주식회사 모빌리언스 바코드 생성 알고리즘을 이용하는 휴대폰 결제 시스템 및 휴대폰 결제 방법
KR101293703B1 (ko) * 2011-11-28 2013-08-06 (주)이컴앤드시스템 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법
WO2015017796A2 (en) * 2013-08-02 2015-02-05 Digimarc Corporation Learning systems and methods

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119480A (ja) 1992-09-17 1994-04-28 Ncr Internatl Inc バーコード読取装置
JP2793453B2 (ja) 1992-10-26 1998-09-03 日本電気精器株式会社 ニューラル・ネットワークを用いたバーコード・シンボルの認識方法
ATE453899T1 (de) * 1999-10-26 2010-01-15 Datalogic Spa Verfahren zum wiederaufbau eines streifenkodes durch aufeinanderfolgende abtastungen
DE10137093A1 (de) * 2001-07-30 2003-02-13 Sick Ag Verfahren zum Erkennen eines Codes und Codeleser
US20130107938A9 (en) * 2003-05-28 2013-05-02 Chad Fogg Method And Apparatus For Scalable Video Decoder Using An Enhancement Stream
JP2008021009A (ja) 2006-07-11 2008-01-31 Fuji Xerox Co Ltd バーコード認識装置、方法及びプログラム
US7946491B2 (en) * 2006-08-03 2011-05-24 Nokia Corporation Method, apparatus, and computer program product for providing a camera barcode reader
JP5262869B2 (ja) * 2009-03-12 2013-08-14 株式会社リコー 画像処理システム、画像処理サーバ、mfp及び画像処理方法
US8851382B2 (en) * 2009-09-24 2014-10-07 Ebay Inc. System and method for estimation and classification of barcodes using heuristic and statistical measures
US8523075B2 (en) * 2010-09-30 2013-09-03 Apple Inc. Barcode recognition using data-driven classifier
US8905314B2 (en) 2010-09-30 2014-12-09 Apple Inc. Barcode recognition using data-driven classifier
US9230383B2 (en) * 2012-12-28 2016-01-05 Konica Minolta Laboratory U.S.A., Inc. Document image compression method and its application in document authentication
CN104268498B (zh) 2014-09-29 2017-09-19 杭州华为数字技术有限公司 一种二维码的识别方法及终端
EP3009984A1 (de) 2014-10-14 2016-04-20 Sick Ag Detektionssystem für optische Codes
US9361503B2 (en) * 2014-10-30 2016-06-07 Datalogic IP Tech Srl Systems, methods and articles for reading highly blurred machine-readable symbols
JP6114320B2 (ja) 2015-02-16 2017-04-12 株式会社ウェルキャット コード読取学習システム
CN105160339B (zh) 2015-08-06 2018-05-04 四川大学 一种二维码打印质量在线评估方法
CN113888761A (zh) * 2017-05-19 2022-01-04 谷歌有限责任公司 使用环境传感器数据的高效的图像分析
US11334731B2 (en) * 2018-04-24 2022-05-17 University of Pittsburgh—of the Commonwealth System of Higher Education System and method of decoding a barcode using machine learning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120019964A (ko) * 2010-08-27 2012-03-07 주식회사 모빌리언스 바코드 생성 알고리즘을 이용하는 휴대폰 결제 시스템 및 휴대폰 결제 방법
KR101293703B1 (ko) * 2011-11-28 2013-08-06 (주)이컴앤드시스템 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법
WO2015017796A2 (en) * 2013-08-02 2015-02-05 Digimarc Corporation Learning systems and methods

Also Published As

Publication number Publication date
CN109255271A (zh) 2019-01-22
EP3428834A1 (de) 2019-01-16
JP6869208B2 (ja) 2021-05-12
CN109255271B (zh) 2022-01-21
JP2019049967A (ja) 2019-03-28
US20190019086A1 (en) 2019-01-17
EP3428834B1 (de) 2019-06-12
US11176454B2 (en) 2021-11-16
KR102010494B1 (ko) 2019-08-13

Similar Documents

Publication Publication Date Title
KR102010494B1 (ko) 광전자 코드 판독기 및 광학 코드 판독 방법
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
EP0852520B1 (en) System and method for reading package information
US6585159B1 (en) Indicia sensor system for optical reader
US4748317A (en) Optical reader
CN1219273C (zh) 用于读取邮政编码的成像引擎和技术
US10540532B2 (en) System and method for detecting optical codes with damaged or incomplete finder patterns
US20140036069A1 (en) Camera system and method for detection of flow of objects
US7949187B2 (en) Character string recognition method and device
CN113727014A (zh) 用于处理图像数据的相机和方法
KR20100129133A (ko) 바코드 처리 장치 및 바코드 처리 방법
US11068678B2 (en) Optoelectronic sensor and method of a repeated optical detection of objects at different object distances
US20210097517A1 (en) Object of interest selection for neural network systems at point of sale
EP3654231B1 (en) Systems for pattern stitching and decoding using multiple captured images
JP5630689B2 (ja) 文字認識方法及び文字認識装置
US20240005115A1 (en) System and method to determine whether an image contains a specific barcode
US20230267293A1 (en) Locating code image zones in an image of a code bearing object
US20240028847A1 (en) Reading an optical code
US5866893A (en) Method and device for reading a bar code
JPH0721300A (ja) バーコード読取装置
CN117195925A (zh) 一维光学代码的读取
JPH09180086A (ja) 車両のナンバプレート認識装置
CN116306727A (zh) 用于读取光学代码的读码器和方法
JPH0950482A (ja) 帳票及び光学読取装置

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