KR102366643B1 - 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치 - Google Patents

심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치 Download PDF

Info

Publication number
KR102366643B1
KR102366643B1 KR1020217004889A KR20217004889A KR102366643B1 KR 102366643 B1 KR102366643 B1 KR 102366643B1 KR 1020217004889 A KR1020217004889 A KR 1020217004889A KR 20217004889 A KR20217004889 A KR 20217004889A KR 102366643 B1 KR102366643 B1 KR 102366643B1
Authority
KR
South Korea
Prior art keywords
symbol
decode
image
client computing
computing device
Prior art date
Application number
KR1020217004889A
Other languages
English (en)
Other versions
KR20210027491A (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 KR20210027491A publication Critical patent/KR20210027491A/ko
Application granted granted Critical
Publication of KR102366643B1 publication Critical patent/KR102366643B1/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
    • 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/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • 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/06018Record 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 one-dimensional coding
    • G06K19/06028Record 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 one-dimensional coding using 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/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/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • G06K7/10752Exposure time control
    • 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

Landscapes

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

Abstract

심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치는 알려진 크기 및 밀도의 심볼의 영상들을 캡처하기 위한 촬상 어셈블리를 포함한다. 각각의 영상, 또는 영상들의 세트는 클라이언트 컴퓨팅 디바이스의 촬상 어셈블리의 파라미터의 상이한 설정 또는 값을 사용하여 캡처된다. 각각의 영상, 또는 영상들의 세트는 디코드되고, 가장 빠른 디코드-시간은 파라미터들에 대한 디폴트 설정들/값들을 결정한다.

Description

심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치
다양한 소프트웨어 및 애플리케이션들은 스마트폰들, 태블릿들 등과 같은 클라이언트 컴퓨팅 디바이스들이 클라이언트 컴퓨팅 디바이스의 카메라를 사용하여 바코드들을 판독하게 허용한다. 그러나, 많은 컴퓨팅 디바이스들의 카메라를 위한 디폴트 파라미터 설정들이 사람의 눈에 의해 보여질 영상들을 캡처하기 위해 최적화된다. 이들 디폴트 파라미터 설정은 바코드들을 스캔하기 위해 자주 받아들여지지 않는다. 예를 들어, 스마트폰 카메라를 위한 디폴트 설정들은 영상에서 캡처된 바코드를 디코드할 때 느린 성능을 자주 야기하는데, 왜냐하면 영상은 바코드 디코딩을 위해 최적화되지 않기 때문이다. 파라미터 설정들이 바코드 스캐닝을 위해 수정되더라도, 바코드 스캐닝을 위한 최적한 파라미터 설정들은 보통 클라이언트 컴퓨팅 디바이스의 제조사 및/또는 모델에 따라, 클라이언트 컴퓨팅 디바이스마다 변경한다. 또한, 사람이 사람의 눈을 위한 영상을 캡처하기 위해 파라미터들을 자연적으로 최적화할 수 있지만, 사람들은 바코드 스캐닝 및 디코딩을 위한 파라미터들을 최적화하지 않는다.
따라서, 바코드들을 스캔하고 디코드하기 위한 파라미터 설정들을 최적화하기 위해 상이한 클라이언트 컴퓨팅 디바이스들을 캘리브레이트하는 디바이스들, 시스템들, 및 방법들이 필요하다.
아래의 상세한 설명과 함께, 유사한 참조 번호들이 각각의 도면들 전체에 걸쳐 동일하거나 기능적으로 유사한 요소들을 참조하는 첨부 도면들은 명세서 내에 포함되고 그 일부를 형성하고, 청구된 발명을 포함하는 개념들의 실시예들을 추가로 도시하고, 그들 실시예의 다양한 원리들 및 장점들을 설명하기 위해 제공된다.
도 1a는 실시예에 따른 통신 시스템의 블록도이다.
도 1b는 실시예에 따른 클라이언트 컴퓨팅 디바이스의 블록도이다.
도 2a-2d는 실시예에 따른 클라이언트 컴퓨팅 디바이스의 사용자에게 캘리브레이션을 위한 심볼을 스캔하라고 프롬프트하기 위한 클라이언트 컴퓨팅 디바이스의 디스플레이 화면들이다.
도 3은 실시예에 따른 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법의 플로우차트이다.
도 4는 또 하나의 실시예에 따른 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법의 플로우차트이다.
도 5는 또 다른 실시예에 따른 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법의 플로우차트이다.
도 6은 실시예에 따른 캘리브레이션 데이터 관리의 방법의 플로우차트이다.
통상의 기술자들은 도면들 내의 요소들은 간결성 및 명료성을 위해 도시되고 반드시 축척에 맞게 그려지지 않았다는 것을 알 것이다. 예를 들어, 도면들 내의 요소들 중 일부의 치수들은 본 발명의 실시예들의 이해를 개선시키는 데 도움을 주기 위해 다른 요소들에 비해 과장될 수 있다.
장치 및 방법 컴포넌트들은 도면들에서 통상적인 심볼들로 적절히 표시되었고, 본원의 설명의 혜택을 받는 본 기술 분야의 통상의 기술자들이 쉽게 이해되는 상세들로 본 개시내용을 불명확하게 하지 않도록 본 발명의 실시예의 이해와 관련된 그들 특정한 상세들만을 도시한다.
본 개시내용의 한 양태는 하우징, 하우징 내에 배치된 디스플레이, 하우징 내에 배치된 촬상 어셈블리, 및 촬상 어셈블리에 동작적으로 결합된 컨트롤러를 포함하는 클라이언트 컴퓨팅 디바이스를 제공한다. 촬상 어셈블리는 영상 센서를 포함하고, 복수의 파라미터를 사용하여 심볼의 영상들을 캡처하도록 구성된다. 컨트롤러는 복수의 파라미터 중 제1 파라미터의 제1 설정에서 영상 센서에 의해 캡처된 제1 영상 내의 제1 심볼을 디코드하고, 복수의 파라미터 중 제1 파라미터의 제2 설정에서 영상 센서에 의해 캡처된 제2 영상 내의 제1 심볼을 디코드하고, 제2 심볼을 디코드하기 위해 복수의 파라미터 중 제1 파라미터의 설정으로서, 1) 제1 영상 내의 제1 심볼의 디코드-시간, 및 2) 제2 영상 내의 제1 심볼의 디코드-시간 중 더 빠른 것을 결정하도록 구성된다.
본 개시내용의 추가 양태는 하우징, 하우징 내에 배치된 디스플레이, 하우징 내에 배치된 촬상 어셈블리, 및 촬상 어셈블리에 동작적으로 결합된 컨트롤러를 포함하는 클라이언트 컴퓨팅 디바이스를 제공한다. 촬상 어셈블리는 영상 센서를 포함하고, 여기서 촬상 어셈블리는 복수의 파라미터를 사용하여 심볼의 영상들을 캡처하도록 구성된다. 컨트롤러는 영상 센서에 의해 캡처된 제1 심볼의 복수의 영상을 순차적으로 디코드하고 - 각각의 영상은 복수의 파라미터의 설정들의 상이한 조합을 사용하여 캡처됨 -, 영상 센서에 의해 캡처된 영상 내의 제2 심볼을 디코드하기 위해 복수의 파라미터의 설정들의 조합으로서, 제1 심볼을 디코드하기 위한 가장 빠른 시간을 갖는 복수의 파라미터의 설정들의 조합을 결정하도록 구성된다.
본 개시내용의 또 하나의 양태는 영상을 캡처하도록 구성된 카메라를 갖는 클라이언트 컴퓨팅 디바이스를 제공하는 단계, 클라이언트 컴퓨팅 디바이스의 사용자에게 미리 결정된 크기 및/또는 밀도 카메라로부터의 미리 결정된 거리의 심볼을 배치하라고 지시하는 단계, 및 카메라로 심볼을 복수 회 스캔하는 단계를 포함하는, 클라이언트 컴퓨팅 디바이스를 위한 캘리브레이션 방법을 제공한다. 각각의 스캔은 스캐닝 파라미터의 값이 변경되게 한다. 방법은 각각의 스캔에서의 심볼을 디코드하는 단계, 각각의 스캔에서의 심볼의 각각의 디코드에 대한 디코드-시간을 결정하는 단계, 후속하는 심볼들을 스캔하고 디코드하기 위한 디폴트 설정으로서 가장 빠른 디코드-시간을 갖는 스캔의 스캐닝 파라미터의 값을 선택하는 단계로 계속된다.
본 개시내용의 또 다른 양태는 영상을 캡처하도록 구성된 카메라를 갖는 클라이언트 컴퓨팅 디바이스를 제공하는 단계, 클라이언트 컴퓨팅 디바이스의 사용자에게 미리 결정된 크기 및/또는 밀도 카메라로부터의 미리 결정된 거리의 심볼을 배치하라고 지시하는 단계, 및 카메라로 심볼을 복수 회 스캔하는 단계를 포함하는, 클라이언트 컴퓨팅 디바이스를 위한 캘리브레이션 방법을 제공한다. 각각의 스캔은 스캐닝 파라미터의 값이 변경되게 하고 카메라에 의해 캡처된 심볼의 복수의 영상을 포함한다. 방법은 각각의 스캔에서의 심볼을 디코드하는 단계, 각각의 스캔에서의 복수의 영상 내의 심볼의 디코드-시간들을 평균하는 단계, 및 후속하는 심볼들을 스캔하고 디코드하기 위한 디폴트 설정으로서 가장 빠른 평균 디코드-시간을 갖는 스캔의 스캐닝 파라미터의 값을 선택하는 단계로 계속된다.
이제 도면들을 참조하면, 도 1a는 바코드들과 같은 상이한 심볼로지들을 스캔하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 시스템(100)을 구현하는 예시적인 아키텍처의 다양한 양태들을 도시한다. 하이-레벨 아키텍처는 하드웨어와 소프트웨어 애플리케이션들뿐만 아니라, 다양한 하드웨어와 소프트웨어 컴포넌트들 사이에 데이터를 통신하기 위한 다양한 데이터 통신 채널들을 포함한다.
상이한 심볼로지들을 스캔하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 시스템(100)은 심볼들의 영상들을 캡처하고 심볼들을 디코드할 수 있는 클라이언트 컴퓨팅 디바이스(104)를 포함하는, 전단 컴포넌트들(102)을 포함한다. 클라이언트 컴퓨팅 디바이스(104)는 퍼스널 컴퓨터, 스마트폰, 태블릿 컴퓨터, 스마트 워치, 및 헤드 마운트 디스플레이, 웨어러블 컴퓨터 또는 다른 적합한 클라이언트 컴퓨팅 디바이스를 포함할 수 있다. 클라이언트 컴퓨팅 디바이스(104)는 마이크로컨트롤러 또는 프로세서(106)를 포함하는 컨트롤러, 프로그램 메모리(108), 디스플레이(110) 및 영상 센서를 갖는, 카메라와 같은, 촬상 어셈블리(112)를 포함하는, 서로 동작적으로 결합되는 다양한 컴포넌트들을 포함하고, 이들 모두는 어드레스/데이터 버스(도시 안됨)를 통해 상호접속된다. 클라이언트 컴퓨팅 디바이스(104)의 프로세서(106)는 1) 디스플레이(110) 상에 영상들을 생성하고 2) 촬상 어셈블리(112)를 통해 영상들을 캡처하기 위해 메모리(108) 내에 저장된 명령어들을 실행한다. 특히, 컨트롤러(106)는 바코드들과 같은, 심볼들의 영상들을 캡처하고, 심볼 내에 인코드된 정보를 디코드하기 위해서 촬상 어셈블리(112)에 의해 캡처된 심볼들을 디코드하기 위해 메모리(108) 내에 저장된 컴퓨터 실행가능 명령어들을 실행한다. 이러한 명령어들의 예들은 QR 코드 판독기 애플리케이션들 및 바코드 판독기 애플리케이션들을 포함한다. 도 1a는 단지 하나의 클라이언트 컴퓨팅 디바이스(104)를 도시하지만, 시스템(100)은 후단 컴포넌트들(122)과 통신하는 다수의 클라이언트 컴퓨팅 디바이스(104)를 포함할 수 있다는 것을 알아야 한다. 또한, 도 1a는 단지 하나의 프로세서(106)를 도시하지만, 컨트롤러는 다수의 프로세서(106)를 포함할 수 있다. 유사하게, 컨트롤러의 메모리(108)는 다수의 RAM 및 컨트롤러의 특정한 구성에 따라, 하나 이상의 대응하는 서버 애플리케이션 모듈을 저장하는 다수의 프로그램 메모리를 포함할 수 있다. 메모리(108)는 예를 들어, 반도체 메모리들, 자기적으로 판독가능한 메모리들, 및/또는 광학적으로 판독가능한 메모리들을 포함하나, 이들로 제한되지 않는 공지된 형태의 컴퓨터 저장 매체로 구현될 수 있지만, 예를 들어, 캐리어 파들과 같은 일시적 매체를 포함하지 않는다.
클라이언트 컴퓨팅 디바이스(104)는 또한 유니버설 시리얼 버스(USB)와 같은 하드와이어 통신 포트(114), 및/또는 다른 전단 컴포넌트들과 통신하기 위한, 블루투스(Bluetooth®) 송수신기와 같은 무선 근거리 송수신기(116)를 포함하는, 다양한 통신 컴포넌트들을 포함한다. 또한, 클라이언트 컴퓨팅 디바이스(104)는 셀룰러 네트워크 송수신기(118) 및/또는 컴퓨터 네트워크(124)를 통해 후단 컴포넌트들(122)과 통신하기 위한, IEEE(전기 전자 학회) 802.11 표준들에 기초한 와이파이(WiFi) 송수신기와 같은, 근거리 네트워크 송수신기(120)를 포함한다.
실시예에서, 클라이언트 컴퓨팅 디바이스(104)의 프로세서(106)는 촬상 어셈블리(112)에 의해 영상에서 캡처된 심볼을 디코드하는 것과 연관된 데이터와 같은, 데이터를 관리하고 컴퓨터 네트워크(124)를 통해 데이터를 후단 컴포넌트들(122)에 송신하기 위해 명령어들을 실행한다. 보다 특정적으로, 데이터는 클라이언트 컴퓨팅 디바이스의 특정한 제조사, 모델 및 운영 체제에 대한 캘리브레이션 데이터를 포함할 수 있고, 여기서 캘리브레이션 데이터는 클라이언트 컴퓨팅 디바이스를 위한 개시된 캘리브레이션 기술로부터 결정된 것과 같은 심볼들의 영상을 캡처하고 디코드하기 위해 촬상 어셈블리(112)를 위한 최적한 파라미터 설정들을 나타낸다. 실시예에서, 최적한 파라미터 설정들은 개시된 캘리브레이션 기술을 사용하여 심볼을 디코드하기 위한 가장 빠른 시간을 초래하는 하나 이상의 파라미터 설정으로부터 결정된다. 클라이언트 컴퓨팅 디바이스(104)로부터 후단 컴포넌트들에 보내진 캘리브레이션 데이터의 예들은 클라이언트 컴퓨팅 디바이스(104)와 연관된 일련 번호, 클라이언트 컴퓨팅 디바이스(104)의 모델 번호, 클라이언트 컴퓨팅 디바이스(104)의 제조사, 초점 파라미터, 노출 값, 영상 크기, 영상 해상도, 및/또는 형상 정정을 포함하지만, 이들로 제한되지 않는다. 클라이언트 컴퓨팅 디바이스(104)의 프로세서는 클라이언트 컴퓨팅 디바이스(102)의 특정한 제조사, 모델 및 운영 체제에 대한 캘리브레이션 데이터와 같은, 데이터를 관리하고 컴퓨터 네트워크(124)를 통해 데이터를 후단 컴포넌트들(122)로부터 수신하기 위해 명령어들을 추가로 실행할 수 있다.
컴퓨터 네트워크(124)는 인터넷 또는 다른 유형의 적합한 네트워크(예를 들어, 근거리 네트워크(LAN), 도시권 네트워크(MAN), 광역 네트워크(WAN), 모바일, 유선 또는 무선 네트워크 등)와 같은 네트워크일 수 있다. 컴퓨터 네트워크(124)는 또한 코드 분할 다중 액세스(CDMA) 네트워크, GSM(Global System for Mobile Communications) 네트워크, WiMAX(Worldwide Interoperability for Microwave Access) 네트워크, 롱 텀 에볼루션(LTE) 네트워크 등과 같은 하나 이상의 셀룰러 네트워크일 수 있다.
후단 컴포넌트들(122)은 데이터 서버(128) 및 캘리브레이션 데이터베이스(131)를 포함할 수 있다. 후단 컴포넌트들(122)은 근거리 네트워크 또는 다른 유형의 적합한 네트워크(예를 들어, 인터넷, 도시권 네트워크(MAN), 광역 네트워크(WAN), 모바일, 유선 또는 무선 네트워크, 사설 네트워크, 가상 사설 네트워크 등)와 같은 통신 네트워크(138)를 통해 서로 통신할 수 있다.
일반적으로 클라이언트 컴퓨팅 디바이스, 및 특히 데이터 서버(128)를 캘리브레이트하는 시스템은 컴퓨터 실행가능 명령어들(130)을 포함한다. 데이터 서버(128)의 프로세서는 액세스 툴(132), 검색 툴(134) 및 분석 툴(136)을 인스턴스화하기 위해 명령어들(130)을 실행한다. 액세스 툴(132)은 클라이언트 컴퓨팅 디바이스(104)로부터 데이터를 수신하고 캘리브레이션 데이터베이스(131)와 같은 하나 이상의 데이터베이스에 데이터를 세이브한다. 검색 툴(134)은 캘리브레이션 데이터베이스(131)로부터 데이터를 검색하거나 또는 식별자를 사용하여 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제들에 특정된 캘리브레이션 데이터와 같은, 클라이언트 컴퓨팅 디바이스에 대한 캘리브레이션 데이터와 관련한 캘리브레이션 데이터베이스(131)로부터 고객 정보에 액세스한다. 캘리브레이션 데이터베이스(131)는 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브(HDD), 플래시 메모리, 고상 드라이브(SSD)와 같은 플래시 메모리 등과 같은 데이터 저장 디바이스일 수 있다. 분석 툴(136)은 클라이언트 컴퓨팅 디바이스에 캘리브레이션 데이터를 제공하기 전에 클라이언트 컴퓨팅 디바이스(104)로부터의 고객 계정 데이터 및/또는 요청들에 대해 하나 이상의 분석을 수행할 수 있다.
이제 도 1b를 참조하면, 데이터 시스템(200)은 컨트롤러(202)를 포함한다. 예시적인 데이터 시스템들(200)은 도 1a에 도시된 것과 같은 클라이언트 컴퓨팅 디바이스(104) 및/또는 데이터 서버(128)를 포함한다. 컨트롤러(202)는 프로그램 메모리(204), 마이크로컨트롤러 또는 마이크로프로세서(μP)(206), 랜덤 액세스 메모리(RAM)(208), 및 입력/출력(I/O) 회로(210)를 포함하고, 이들 모두는 어드레스/데이터 버스(212)를 통해 상호접속된다. 프로그램 메모리(204)는 마이크로프로세서(206)에 의해 실행될 수 있는 컴퓨터 실행가능 명령어들을 저장할 수 있다. 일부 실시예들에서, 컨트롤러(202)는 또한 데이터베이스(214) 또는 다른 데이터 저장 메커니즘(예를 들어, 하나 이상의 하드 디스크 드라이브, 광학 저장 드라이브, 고상 디바이스 등)을 포함할 수 있거나, 그렇지 않으면 이들에 통신 접속될 수 있다. 도 1b는 단지 하나의 마이크로프로세서(206)를 도시하지만, 컨트롤러(202)는 다수의 마이크로프로세서(206)를 포함할 수 있다는 것을 알아야 한다. 유사하게, 컨트롤러(202)의 메모리(204)는 다수의 RAM(216) 및 컨트롤러의 특정한 구성에 따라, 하나 이상의 대응하는 서버 애플리케이션 모듈을 저장하는 다수의 프로그램 메모리(218, 218A 및 218B)를 포함할 수 있다.
도 1b는 단일 블록으로서 I/O 회로(210)를 도시하지만, I/O 회로(210)는 추가적인 로드 밸런싱 장비, 방화벽들 등을 포함하지만, 이들로 제한되지 않는 다수의 상이한 유형들의 I/O 회로(도시 안됨)를 포함할 수 있다. RAM(들)(216, 208) 및 프로그램 메모리들(218, 218A 및 218B)은 예를 들어, 반도체 메모리들, 자기적으로 판독가능한 메모리들, 및/또는 광학적으로 판독가능한 메모리들을 포함하지만, 이들로 제한되지 않는 공지된 형태의 컴퓨터 저장 매체로 구현될 수 있지만, 캐리어 파들과 같은 일시적 매체를 포함하지 않는다.
도 2a-2d를 참조하면, 클라이언트 컴퓨팅 디바이스의 사용자에게 캘리브레이션을 위한 심볼을 스캔하라고 프롬프트하는 디스플레이 화면의 실시예가 도시된다. 클라이언트 컴퓨팅 디바이스(104) 상에 저장된 것과 같은 캘리브레이션 기술을 인스턴트화할 때, 프로세서(106)는 디스플레이(110)로 하여금 심볼의 영상(306)이 클라이언트 컴퓨팅 디바이스(102)를 캘리브레이트하기 위해 경계 안에 배치되어야 하는 그 경계(304)를 포함하는 그래픽(302)을 그 위에 생성하게 한다. 경계(304)는 클라이언트 컴퓨팅 디바이스(104)를 캘리브레이트하기 위해서 클라이언트 컴퓨팅 디바이스(104)의 촬상 어셈블리(112)에 의해 캡처될 심볼의 영상(306)의 크기에 대응한다. 보다 특정적으로, 클라이언트 컴퓨팅 디바이스(104)를 캘리브레이트하기 위해 사용된 특정한 심볼의 심볼로지는 알려진 크기 및 밀도를 갖는다. 예를 들어, 일차원 바코드에서의 x-치수 및 y-치수는 그 바코드 심볼로지의 크기를 결정하고, x-치수에서의 인치당 바들의 수는 밀도를 결정한다. UPC-A라고도 하는, UPC(통일 상품 코드)라고 알려진 바코드는 37.31밀리미터의 알려진 공칭 x-치수 및 25.91밀리미터의 공칭 y-치수를 갖고, 가장 좁은 요소를 갖는 밀도는 0.013인치이다. 디스플레이 화면은 심볼의 영상(306)의 좌측 및 우측 에지들이 경계(304)의 좌측 및 우측 라인들을 터치하도록 사용자가 경계 내에 심볼의 영상(306)을 배치하도록 프롬프트를 포함할 수 있다.
경계(304)를 맞추기 위해 심볼의 영상(306)을 배치하면 프로세서(106)는 촬상 어셈블리(112)로부터의 실제 심볼의 근사적 거리를 결정하도록 허용한다. 이것은 클라이언트 컴퓨팅 디바이스(104)를 위한 캘리브레이션 기술이 심볼의 디코딩을 최적화하기 위해 클라이언트 컴퓨팅 디바이스(104)의 파라미터 설정들을 캘리브레이트하기 위한 기준으로서 심볼의 영상(306)을 사용하게 허용하는데, 왜냐하면 심볼의 영상(306)은 실제 심볼의 알려진 크기 및 밀도에 대응하기 때문이다. 그러므로, 클라이언트 컴퓨팅 디바이스(104)가 심볼의 영상(306)의 크기 및 밀도를 알도록 캘리브레이트되게 함으로써, 클라이언트 컴퓨팅 디바이스(104)는 심볼의 디코드-시간이 특정한 임계(예를 들어, 100-200밀리초) 아래에 있어야 한다는 것을 알도록 캘리브레이트될 수 있으므로, 임계 미만인 캘리브레이션 과정 동안의 심볼들의 임의의 스캔들은 클라이언트 컴퓨팅 디바이스(104)에 의해 폐기될 수 있다.
도 2a-2d에 도시한 것과 같이, 경계(304)는 디스플레이(110) 상에, 촬상 어셈블리(112)에 의해 캡처되는 것과 같은, 심볼(306)의 영상을 정렬하는 데 지원한다. 예를 들어, 도 2a에서, 심볼의 영상(306)은 경계(304) 내에 정렬되지 않고, 디스플레이 화면(302)은 심볼의 영상(306)이 디코드 캘리브레이션을 위한 스캐닝에 적합하지 않다는 표시(308)를 제공한다. 도 2b에서, 심볼의 영상(306)은 일반적으로 경계(304)와 정렬되지만, 이 경우에 심볼의 영상(306)은 너무 크므로, 심볼의 영상 캡처들(스캔들)은 실제 심볼의 알려진 크기 및 밀도에 대응하지 않을 것이고, 표시(308)는 영상(306)이 적합하지 않다는 것을 반영한다. 유사하게, 도 2c에서, 심볼의 영상(306)은 일반적으로 경계(304) 내에 있지만, 영상(306)은 너무 작고, 이는 또한 심볼의 영상 캡처들이 실제 심볼의 알려진 크기 및 밀도에 대응하지 않을 것이라는 것을 의미한다. 또한, 표시(308)는 영상이 적합하지 않다는 것을 반영한다. 다른 한편으로, 도 2d에 도시한 것과 같이, 심볼의 영상(306)은 경계(304) 내에 있고 일반적으로 경계(304)의 크기에 대응하므로, 디스플레이(110) 상의 심볼의 영상(306)은 촬상 어셈블리(112)에 의해 캡처되는 것과 같이 심볼의 영상 데이터에 대응하고, 결국, 실제 심볼의 알려진 크기 및 밀도에 대응한다. 표시(308)는 심볼들의 영상(306)이 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스(104)를 캘리브레이트하기에 적합하다는 것을 반영하고, 심볼에 적어도 대응하는 유형이 캘리브레이션을 위해 사용된다.
도 3-5는 다른 심볼들을 효율적으로 캡처하고 디코드하기 위해서 클라이언트 컴퓨팅 디바이스의 파라미터 설정들을 캘리브레이트하는 루틴들의 실시예들이다. 캘리브레이트된 파라미터 설정들은 사람의 눈에 의해 보여진 것과 같은 캡처된 영상(예를 들어, 사진들)을 위한 디폴트 파라미터 설정들에 반드시 대응하지 않는다는 점에 주목하여야 한다. 오히려, 캘리브레이트된 파라미터 설정들은 컨트롤러가 심볼을 빠르게 처리하고 적절히 디코드하게 허용하므로, 캘리브레이션 방법은 사람의 눈에 의해 보여진 것과 같은 화상의 최상의 품질과 반대로, 심볼을 디코드하기 위해 필요한 화상의 감소된 또는 최소 품질을 찾는다. 사람의 눈에 최적화된 파라미터 설정들은 때때로 심볼이 디코드되게 허용할 수 있지만, 그것은 그것이 디코딩에 이를 때 클라이언트 컴퓨팅 디바이스의 더 느린 성능을 자주 초래한다. 실제로, 개선된 디코딩을 위해 캘리브레이트된 많은 파라미터 설정들은 사람의 눈에 의해 분간될 수 없고, 클라이언트 컴퓨팅 디바이스의 제조사/모델마다 변경한다.
일반적으로 말하면, 위에 결정된 것과 같은 기준으로서 심볼의 적합한 영상(306)을 사용하여, 루틴들은 심볼의 하나 이상의 영상을 캡처한다. 각각의 캡처된 영상(또는 동일한 파라미터 설정들을 사용하는 일련의 영상들)으로 루틴들은 영상(들)에서 캡처된 심볼을 디코드하고, 디코드하기 위한 시간은 기록된다. 동일한 파라미터 설정들을 사용하는 일련의 영상들의 경우에, 디코드-시간은 평균될 수 있다.
영상, 또는 일련의 영상들이 각각 후속하여 캡처되면서, 루틴들은 촬상 어셈블리(112)가 영상들을 캡처하기 위해 사용하는 파라미터 설정들 또는 파라미터 설정들의 조합을 변경하고, 영상(들)을 캡처하고 영상(들) 내의 심볼을 디코드한다. 파라미터들의 예들은 초점(예를 들어, 고정된(미리 결정된 초점 거리에서), 자동, 연속, 비디오), 노출 값, 영상 크기, 영상 해상도, 조명 세기, ISO, 개구 크기, 및 (영상 왜곡을 정정하고, 일반적으로 디코딩을 위해 턴 오프되는) 형상 정정을 포함하지만, 이들로 제한되지 않는다. 실시예에서, 모든 다른 파라미터 설정들을 정적으로 유지하면서, 노출 값과 같은 보조 파라미터를 변경하는 것으로 계속 진행하기 전에, 루틴들은 초점과 같은 주 파라미터 설정을 초기에 변경할 수 있고, 나머지 파라미터 설정들을 정적으로 유지한다.
루틴들은 다음에 가장 빠른 디코드-시간을 초래하는 파라미터 설정(들)/값(들)을 선택한다. 실시예에서, 루틴들은 상이한 파라미터 설정들에서(예를 들어, 파라미터들의 설정 수에 대해, 특정한 파라미터의 모든 설정들에 대해, 영상들의 설정 양에 대해, 등) 심볼의 영상들의 세트를 캡처하고 디코드하고, 다음에 시간의 임계 양(예를 들어, 100-200밀리초)보다 적은 디코드-시간을 초래하는 단지 그들 파라미터 설정들/값들 중에서 선택한다. 또 하나의 실시예에서, 루틴들은 임계 양보다 적은 디코드-시간을 초래하는 제1 파라미터 설정 또는 설정들의 조합을 선택할 수 있다. 또 다른 실시예에서, 루틴들은 심볼의 영상들을 계속 캡처하고, 파라미터 설정들을 변경하고 시간의 설정 양(예를 들어, 30초) 동안 영상들 내의 심볼들을 디코드하고, 심볼들을 디코드하기 위한 디폴트 파라미터 설정들로서 그 타임프레임 내에서 가장 빠른 디코드-시간과 연관된 파라미터 설정들을 선택할 수 있다. 루틴들이 심볼의 영상을 성공적으로 디코드할 수 없거나 미리 결정된 시간 내에서 심볼의 영상을 성공적으로 디코드할 수 없어서, 사용불가능한 디코드-시간을 초래하는 이벤트에서, 각각의 루틴은 디코드가 성공적이지 않았다고 결정하고, 가장 빠른 디코드-시간의 적절한 결정을 내리기 위해서 상이한 파라미터 값(들)을 갖는 연속적인 영상들을 계속 캡처하는 것을 진행할 수 있다.
각각의 실시예에서, 캘리브레이션 루틴들은 클라이언트 컴퓨팅 디바이스(104)의 컨트롤러에 의해 전체적으로 또는 데이터 서버(128)에 의해 부분적으로 실행될 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(104)는 심볼의 영상들을 캡처하고, 심볼 내의 영상들을 디코드하고, 서버(128)에 캘리브레이션 데이터(예를 들어, 디코드-시간, 파라미터 설정들 등)를 송신하는 것을 임무로 할 수 있고, 서버(128)는 어떤 파라미터 설정들이 클라이언트 컴퓨팅 디바이스를 사용하여 심볼들을 디코드하기 위해 가장 최적한지를 결정하는 것을 임무로 할 수 있다.
도 3을 참조하면, 위에 설명된 것과 같이, 기준으로서 심볼의 적합한 영상(306)을 사용하여, 심볼의 영상들이 촬상 어셈블리(112)에 의해 캡처되는 캘리브레이션 루틴의 실시예가 도시되고, 특정한 파라미터(예를 들어, 초점)의 설정들은 각각의 영상 캡처와 함께 변경되고, 각각의 캡처된 영상의 심볼은 가장 빠른 디코드-시간을 초래하는 파라미터 설정을 결정하기 위해 디코드된다. 블록 402에서 시작하면, 루틴은 특정한 파라미터 설정에 대한 값을 설정한다. 예를 들어, 촬상 어셈블리(112)의 주 파라미터는 "초점"일 수 있고, 초기 설정은 "자동"일 수 있다. 이 파라미터 설정을 사용하여, 촬상 어셈블리는 블록 404에서 심볼의 영상을 캡처한다. 심볼의 영상을 캡처하면, 심볼은 블록 406에서 디코드된다.
그 후, 루틴은 블록 408에서 파라미터 설정을 변경한다. 예를 들어, 파라미터가 "초점"이고 제1 설정이 "자동"이면, 루틴은 블록 408에서 이것을 "고정된 것"으로 변경할 수 있고 초점은 미리 결정된 초점 길이로 고정된다. 심볼의 제2 영상은 다음에 이 제2 파라미터 설정/값을 사용하여 블록 410에서 캡처되고, 제2 영상 내의 심볼은 블록 412에서 디코드된다. 루틴은 파라미터의 값/설정을 변경할 때마다, 심볼의 영상들을 계속 캡처할 수 있다. 실시예에서, 동일한 파라미터(예를 들어, 초점)가 모든 값들/설정들이 심볼의 영상들을 캡처하기 위해 사용될 때까지, 매번 변경되고, 다음에 루틴은 제2 파라미터(예를 들어, 노출 값)로 진행할 수 있고, 심볼의 영상의 각각의 연속적인 캡처로 그 파라미터에 대한 값을 변경하고, 가장 빠른 디코드-시간을 초래한 제1 파라미터 설정/값을 정적으로 유지한다.
영상들에서 캡처된 심볼들이 블록들 406, 412에서 성공적으로 디코드되면, 루틴은 캡처되고 디코드된 심볼의 영상들의 세트를 대기하거나, 심볼의 다른 영상들이 캡처되고 디코드됨에 따라 캡처되고 디코드된 심볼의 영상을 동시에 분석할 수 있다. 어느 경우에나, 루틴은 블록 414에서 가장 빠른 디코드-시간을 초래하는 파라미터 값/설정을 선택한다. 위에 언급된 것과 같이, 후속하는 심볼들을 캡처하고 디코드하기 위한 파라미터 설정/값의 결정은 최소 임계 디코드-시간(예를 들어, 100-200밀리초)보다 적은 것을 초래하는 것들로 제한될 수 있고, 그 후 가장 빠른 디코드-시간을 갖는 파라미터 설정/값을 선택할 수 있다. 루틴이 심볼의 다른 영상들이 캡처되고 디코드됨에 따라 영상을 동시에 분석하는 실시예에서, 루틴은 임계를 충족시키는 제1 파라미터 설정/값을 선택할 수 있다. 이 선택된 파라미터 값/설정은 다음에 후속하는 심볼들을 캡처하기 위한 디폴트 설정으로서 사용된다.
도 4를 참조하면, 심볼의 영상들이 촬상 어셈블리(112)에 의해 캡처되는 캘리브레이션 루틴의 대안적 실시예가 도시되고, 파라미터 설정들/값들의 조합들이 각각의 영상 캡처와 함께 변경되고, 각각의 캡처된 영상 내의 심볼은 가장 빠른 디코드-시간을 초래하는 파라미터 설정들/값들의 조합을 결정하기 위해 디코드된다. 블록 502에서 시작하면, 루틴은 2개 이상의 파라미터에 대한 값을 설정한다. 예를 들어, 촬상 어셈블리(112)의 2개의 주 파라미터는 "초점" 및 "노출 값"일 수 있고, 설정들 또는 값들은 각각 "자동" 및 "7"일 수 있다. 파라미터 설정들의 이 조합을 사용하여, 촬상 어셈블리는 블록 504에서 심볼의 영상을 캡처한다. 심볼의 영상을 캡처하면, 심볼은 블록 506에서 디코드된다.
그 후, 루틴은 블록 508에서 2개의 파라미터 설정 중 적어도 하나를 변경한다. 예를 들어, 제1 파라미터가 제1 설정이 "자동"인 "초점"이고, 제2 파라미터가 제1 값이 "7"인 "노출 값"이면, 루틴은 블록 508에서, 이들을 각각 특정한 초점 거리로 "고정된 것" 및/또는 "8"로 변경할 수 있다. 심볼의 제2 영상은 다음에 이 제2 파라미터 설정/값 조합을 사용하여 블록 510에서 캡처되고, 제2 영상 내의 심볼은 블록 512에서 디코드된다. 루틴은 파라미터 설정들/값들의 조합을 변경할 때마다, 심볼의 영상들을 계속 캡처할 수 있다. 실시예에서, 주 파라미터들(예를 들어, 초점 및 노출 값)의 조합은 주 파라미터들의 모든 조합들이 심볼의 영상들을 캡처하기 위해 사용될 때까지, 매번 변경되고, 다음에 루틴은 보조 파라미터들(예를 들어, 영상 크기, 영상 해상도, 형상 정정 등)로 진행할 수 있고, 심볼의 영상의 각각의 연속적인 캡처로 그들 파라미터에 대한 값을 변경한다. 또 하나의 실시예에서, 이전의 캘리브레이션들은 상이한 조합들이 시도되어야 하는 순서를 결정할 수 있고, 임계 시간보다 적은(예를 들어, 100-200밀리초보다 적은) 심볼을 디코드할 더 높은 확률을 갖는 파라미터 설정들/값들의 조합들은 임계 시간보다 적은 심볼을 디코드할 더 낮은 확률을 갖는 파라미터 설정들/값들의 조합들을 사용하기 전에 캘리브레이션 루틴에서 사용된다.
영상들에서 캡처된 심볼들이 블록들 506, 512에서 성공적으로 디코드되면, 루틴은 캡처되고 디코드된 심볼의 영상들의 세트를 대기하거나, 심볼의 다른 영상들이 캡처되고 디코드됨에 따라 캡처되고 디코드된 심볼의 영상을 동시에 분석할 수 있다. 어느 경우에나, 루틴은 블록 514에서 가장 빠른 디코드-시간을 초래하는 파라미터 값/설정 조합을 선택한다. 위에 언급된 것과 같이, 후속하는 심볼들을 캡처하고 디코드하기 위한 파라미터 설정/값 조합들의 결정은 최소 임계 디코드-시간(예를 들어, 100-200밀리초)을 충족시키는 것들로 제한될 수 있고, 그 후 가장 빠른 디코드-시간을 갖는 파라미터 설정/값 조합을 선택할 수 있다. 루틴이 심볼의 다른 영상들이 캡처되고 디코드됨에 따라 영상을 동시에 분석하는 실시예에서, 루틴은 임계를 충족시키는 제1 파라미터 설정/값 조합을 선택할 수 있다. 선택된 파라미터 값/설정 조합에서의 이 값들/설정들은 다음에 후속하는 심볼들을 캡처하기 위한 디폴트 설정들/값들로서 사용된다.
도 5를 참조하면, 심볼의 일련의 또는 세트의 영상들이 동일한 파라미터 설정들/값들을 사용하여 촬상 어셈블리(112)에 의해 캡처되는 캘리브레이션 루틴의 또 다른 실시예가 도시되고, 각각의 캡처된 영상 내의 심볼이 디코드되고, 각각의 일련의 또는 세트의 영상들의 평균 디코드-시간이 가장 빠른 디코드-시간을 초래하는 파라미터 설정들/값들을 결정하기 위해 사용된다. 블록 602에서 시작하면, 루틴은 도 3 및 도 4에 대해 위에 설명된 것과 같이, 특정한 파라미터 설정/값 또는 파라미터 설정들/값들의 조합에 대한 값을 설정한다. 이 파라미터 설정/값 또는 파라미터 설정들/값들의 조합을 사용하여, 촬상 어셈블리(112)는 블록 604에서 심볼의 일련의 또는 세트의 영상들을 캡처한다. 심볼의 영상들을 캡처하면, 심볼은 블록 606에서 각각의 영상에서 디코드된다.
그 후, 루틴은 각각 도 3 및 도 4의 블록들 408, 508에서 이루어진 변경들과 유사하게, 블록 608에서 파라미터 설정/값 또는 파라미터 설정들/값들의 조합을 변경한다. 심볼의 제2 일련의 또는 세트의 영상들은 다음에 이 제2 파라미터 설정/값 또는 파라미터 설정들/값들의 제2 조합을 사용하여 블록 610에서 캡처되고, 제2 세트 또는 일련의 영상들 내의 각각의 심볼이 블록 612에서 디코드된다. 루틴은 도 3 및 도 4에 대해 상술한 것과 같이 파라미터의 값/설정 또는 파라미터 설정들/값들의 조합을 변경할 때마다, 심볼의 일련의 또는 세트들의 영상들을 계속 캡처할 수 있다.
영상들에서 캡처된 심볼들이 블록들 606, 612에서 성공적으로 디코드되면, 루틴은 캡처되고 디코드된 심볼의 모든 세트들/일련의 영상들을 대기하거나, 심볼의 다른 세트들/일련의 영상들이 캡처되고 디코드됨에 따라 캡처되고 디코드된 심볼의 각각의 일련의 또는 세트의 영상들을 동시에 분석할 수 있다. 어느 경우에나, 루틴은 각각의 세트 또는 일련의 영상들의 디코드-시간을 평균하고, 블록 614에서 가장 빠른 평균 디코드-시간을 초래하는 파라미터 값/설정 또는 파라미터 값들/설정들의 조합을 선택한다. 또한, 후속하는 심볼들을 캡처하고 디코드하기 위한 파라미터 설정들/값들의 결정은 최소 임계 디코드-시간(예를 들어, 100-200밀리초)보다 적은 그들 평균들로 제한될 수 있고, 그 후 가장 빠른 평균 디코드-시간을 갖는 파라미터 설정들/값들을 선택할 수 있다. 루틴이 심볼의 다른 일련의 또는 세트들의 영상들이 캡처되고 디코드됨에 따라 일련의 또는 세트의 영상을 동시에 분석하는 실시예에서, 루틴은 임계를 충족시키는 제1 파라미터 설정/값을 선택할 수 있다. 이 선택된 파라미터 값/설정 또는 파라미터 값들/설정들의 조합은 다음에 후속하는 심볼들을 캡처하기 위한 디폴트 설정(들)으로서 사용된다.
도 6은 데이터 서버(128)에 의해 실행되는 캘리브레이션 데이터 관리 루틴의 실시예이다. 일반적으로, 데이터 서버(128)는 클라이언트 컴퓨팅 디바이스로부터 캘리브레이션 데이터를 수신하고, 이 정보를 캘리브레이션 데이터베이스(131) 내에 저장한다. 그 후, 다른 클라이언트 컴퓨팅 디바이스들은 데이터 서버(128)에 캘리브레이션 데이터에 대한 요청과 함께 그들의 제조사, 모델 및 운영 체제 정보를 송신한다. 데이터 서버(128)가 요청 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제에 대한 캘리브레이션 데이터베이스(131) 내에 저장된 캘리브레이션 데이터를 가지면, 데이터 서버(128)는 요청 클라이언트 컴퓨팅 디바이스에 캘리브레이션 데이터를 송신한다. 그렇지 않으면, 데이터 서버(128)는 위에 설명된 것과 같이, 요청 클라이언트 컴퓨팅 디바이스에, 캘리브레이션 루틴을 실행하고, 결과적인 캘리브레이션 데이터를 데이터 서버(128)에 제공하라고 프롬프트한다.
도 6을 참조하면, 캘리브레이션 데이터 관리 루틴은 예를 들어, 액세스 툴(132)을 사용하여, 블록 702에서 클라이언트 컴퓨팅 디바이스로부터 캘리브레이션 데이터를 수신함으로써 시작한다. 위에 기재된 것과 같이, 도 1a는 데이터 서버(128)와 통신하는 단지 하나의 클라이언트 컴퓨팅 디바이스를 도시하지만, 캘리브레이션 데이터는 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제에 따라, 클라이언트 컴퓨팅 디바이스마다 상이할 수 있다. 이와 같이, 다양한 제조사들 및 모델들의 여러 개의 클라이언트 컴퓨팅 디바이스는 데이터 서버(128)와 통신할 수 있고, 데이터 서버(128)는 클라이언트 컴퓨팅 디바이스들의 다양한 제조사들 및 모델들로부터 캘리브레이션 데이터를 수신할 수 있다. 캘리브레이션 데이터는 클라이언트 컴퓨팅 디바이스에 의해 실행되는 캘리브레이션 루틴으로부터 결정된 것과 같은 심볼들을 디코드하기 위한 파라미터 설정들/값들뿐만 아니라 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제를 포함할 수 있지만, 이들로 제한되지 않는다. 파라미터 설정들/값들은 클라이언트 컴퓨팅 디바이스에 의해 결정된 것과 같은 가장 빠른 디코드-시간과 연관되는 것들일 수 있다. 대안적으로, 파라미터 설정들/값들은 클라이언트 컴퓨팅 디바이스에 의해 결정된 것과 같은 다수의 디코드-시간(예를 들어, 10개의 가장 빠른 디코드-시간 및 대응하는 파라미터 설정들/값들)과 연관된 다수 세트의 파라미터 설정들/값들일 수 있다.
블록 704에서, 데이터 서버(128)는 예를 들어, 분석 툴(136)을 사용하여, 캘리브레이션 루틴 동안 심볼의 가장 빠른 디코드-시간을 초래하는 그들 파라미터 설정들/값들을 선택한다. 한 예에서, 데이터 서버(128)는 블록 702에서 클라이언트 컴퓨팅 디바이스에 의해 송신된 것과 같은 다수 세트의 파라미터 설정들/값들 및 디코드-시간들로부터 가장 빠른 디코드-시간을 갖는 파라미터 설정들/값들을 선택한다. 또 하나의 예에서, 데이터 서버(128)는 동일한 제조사, 모델 및 운영 체제의 다수의 클라이언트 컴퓨팅 디바이스로부터 수신된 것과 같은 가장 빠른 디코드-시간을 갖는 파라미터 설정들/값들을 선택할 수 있다. 즉, 동일한 제조사, 모델 및 운영 체제의 클라이언트 컴퓨팅 디바이스들은 캘리브레이션 루틴을 실행하고 상이한 파라미터 설정들/값들을 결정할 수 있고, 데이터 서버(128)는 더 빠른 디코드-시간들이 결정되고 수신됨에 따라 클라이언트 컴퓨팅 디바이스의 그 특정한 제조사, 모델 및 운영 체제에 대한 캘리브레이션 데이터를 선택하고 업데이트할 수 있다.
캘리브레이션 데이터는 블록 706에서 예를 들어, 액세스 툴(132)을 사용하여 캘리브레이션 데이터베이스(131) 내에 기록된다. 그 후, 데이터 서버(128)는 블록 708에서 또 하나의 클라이언트 컴퓨팅 디바이스로부터, 예를 들어, 액세스 툴(132)을 통해, 캘리브레이션 데이터에 대한 요청을 수신한다. 요청은 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제를 포함할 수 있지만, 이들로 제한되지 않는다. 이 데이터를 사용하여, 데이터 서버(128)는 캘리브레이션 데이터의 기록이 클라이언트 컴퓨팅 디바이스의 그 특정한 제조사, 모델 및 운영 체제에 대해 존재하는지를 결정하기 위해 블록 710에서 캘리브레이션 데이터베이스(131)에 액세스한다. 그렇지 않으면, 데이터 서버(128)는 요청 클라이언트 컴퓨팅 디바이스에, 캘리브레이션 루틴을 실행하고, 클라이언트 컴퓨팅 디바이스의 그 특정한 제조사, 모델 및 운영 체제와 연관된 파라미터 설정들/값들의 기록을 생성하도록 결과들을 데이터 서버(128)에 제공하라고 프롬프트할 수 있다. 다른 한편으로, 캘리브레이션 데이터의 기록이 요청 클라이언트 컴퓨팅 디바이스의 제조사, 모델 및 운영 체제에 대한 캘리브레이션 데이터베이스(131) 내에 존재하면, 데이터 서버(128)는 예를 들어, 검색 툴(134)을 사용하여 대응하는 캘리브레이션 데이터를 검색하고, 블록 714에서 요청 클라이언트 컴퓨팅 디바이스에 캘리브레이션 데이터를 송신한다. 그 후, 요청 클라이언트 컴퓨팅 디바이스는 심볼을 디코드하기 위한 디폴트 설정들/값들로서 캘리브레이션 데이터로부터의 파라미터 설정들/값들을 사용할 수 있다.
전술한 명세서에서, 특정한 실시예들이 설명되었다. 그러나, 본 기술 분야의 통상의 기술자는 다양한 수정들 및 변화들이 아래의 청구항들에서 제시된 것과 같은 발명의 범위에서 벗어나지 않고서 이루어질 수 있다는 것을 알 것이다. 따라서, 명세서 및 도면들은 제한적인 의미라기 보다는 예시적인 것으로 간주되어야 하고, 모든 이러한 수정들은 본 교시들의 범위 내에 포함되는 것으로 한다. 추가적으로, 설명된 실시예들/예들/구현들은 상호 배타적인 것으로 해석되지 않아야 하고, 대신에 이러한 조합들이 임의의 방식으로 허용된다면 잠재적으로 조합가능한 것으로 이해되어야 한다. 바꾸어 말하면, 위에 언급된 실시예들/예들/구현들 중 임의의 것에서 개시된 임의의 특징은 다른 위에 언급된 실시예들/예들/구현들 중 임의의 것 내에 포함될 수 있다.
이점들, 장점들, 문제들에 대한 해결책들, 및 임의의 이점, 장점, 또는 해결책이 발생하고 보다 드러나게 할 수 있는 임의의 요소(들)는 임의의 또는 모든 청구항의 중요한, 요구된, 또는 본질적인 특징들 또는 요소들로서 해석되지 않아야 한다. 본 발명은 본원의 계류 중에 이루어지는 임의의 보정 및 청구되는 그들 청구항의 모든 등가물들을 포함하는 첨부된 청구범위에 의해서만 정의된다.
또한 본 문서에서, 제1 및 제2, 상부 및 하부 등과 같은 상대적 용어들은 이러한 개체들 또는 동작들 사이의 임의의 실제적인 이러한 관계 또는 순서를 반드시 요구하거나 함축하지 않고서 하나의 개체 또는 동작을 다른 개체 또는 동작과 구별하기 위해서만 사용될 수 있다. 용어들 "포함한다(comprises)", "포함하는(comprising)", "갖는다(has)", "갖는(having)", "포함한다(includes)", "포함하는(including)" 또는 이들의 임의의 다른 변형들은 비배타적 포함을 커버하는 것으로 의도되므로, 요소들의 리스트를 포함하고(comprises), 갖고(has), 포함하고(includes), 포함하는(contains) 과정, 방법, 물품, 또는 장치는 단지 그들 요소만을 포함하지 않고 이러한 과정, 방법, 물품, 또는 장치에 명확히 리스트되지 않고 내재하는 다른 요소들을 포함할 수 있다. 더 많은 제한들 없이, "포함한다(comprises ...a)", "갖는다(has ...a)", "포함한다(includes ...a)", "포함한다(contains ...a)"로 진행당하는 요소는 그 요소를 포함하고(comprises), 갖고(has), 포함하고(includes), 포함하는(contains) 과정, 방법, 물품, 또는 장치 내의 추가적인 동일한 요소들의 존재를 배제하지 않는다. 단수 표현은 본원에서 달리 명시적으로 표명되지 않는다면 하나 이상으로서 정의된다. 용어들 "실질적으로", "본질적으로", "거의", "약" 또는 그들의 임의의 다른 표현은 본 기술 분야의 통상의 기술자에 의해 이해되는 것과 같이 가까운 것으로서 정의되고, 하나의 비제한적인 실시예에서 용어는 10% 내에 있는 것으로 정의되고, 다른 실시예에서 5% 내에, 다른 실시예에서 1% 내에 그리고 다른 실시예에서 0.5% 내에 있다. 본원에 사용된 것과 같은 용어 "결합된"은 접속된 것으로서 정의되지만, 반드시 직접적으로 그리고 반드시 기계적으로는 아니다. 소정의 방식으로 "구성된" 디바이스 또는 구조는 적어도 그 방식으로 구성되지만, 또한 리스트되지 않은 방식들로 구성될 수도 있다.
일부 실시예들은 마이크로프로세서들, 디지털 신호 프로세서, 커스터마이즈된 프로세서들 및 필드 프로그램가능한 게이트 어레이들(FPGA들)과 같은 하나 이상의 포괄적인 또는 특수화된 프로세서들(또는 "프로세싱 디바이스들") 및 소정의 비프로세서 회로들과 함께, 본원에 설명된 방법 및/또는 장치의 기능들의 일부, 대부분, 또는 모두를 구현하기 위해 하나 이상의 프로세서를 제어하는 (소프트웨어와 펌웨어 둘 다를 포함하는) 독특한 저장된 프로그램 명령어들로 구성될 수 있다는 것을 알 것이다. 대안적으로, 일부 또는 모든 기능들은 저장된 프로그램 명령어들을 갖지 않는 상태 머신에 의해, 또는 각각의 기능 또는 기능들 중 소정의 것의 일부 조합들이 커스텀 로직으로서 구현되는, 하나 이상의 주문형 집적 회로(ASIC)에서 구현될 수 있다. 물론, 2가지 방식들의 조합이 사용될 수 있다.
또한, 실시예는 본원에 설명되고 청구된 방법을 수행하기 위해 (예를 들어, 프로세서를 포함하는) 컴퓨터를 프로그램하기 위해 그에 저장된 컴퓨터 판독가능 코드를 갖는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다. 이러한 컴퓨터 판독가능 저장 매체들의 예들은 하드 디스크, CD-ROM, 광학 저장 디바이스, 자기 저장 디바이스, ROM(리드 온리 메모리), PROM(프로그램가능한 리드 온리 메모리), EPROM(소거가능하고 프로그램가능한 리드 온리 메모리), EEPROM(전기적으로 소거가능하고 프로그램가능한 리드 온리 메모리) 및 플래시 메모리를 포함하지만, 이들로 제한되지 않는다. 또한, 통상의 기술자는 가능한 상당한 노력 및 예를 들어, 가용한 시간, 현재의 기술, 및 경제적 고려들에 의해 동기 부여된 많은 설계 선택에도 불구하고, 본원에 개시된 개념들 및 원리들에 의해 안내될 때 최소 실험으로 이러한 소프트웨어 명령어들 및 프로그램들 및 IC들을 용이하게 생성할 수 있을 것으로 기대된다.
본 개시내용의 요약은 독자가 기술적 개시내용의 특성을 빨리 확인하게 허용하기 위해 제공된다. 그것은 청구항들의 범위 또는 의미를 해석하거나 제한하기 위해 사용되지 않을 것이라는 것을 이해할 것이다. 또한, 전술한 상세한 설명에서, 다양한 특징들은 본 개시내용을 간소화하는 목적을 위해 다양한 실시예들에서 함께 그룹화될 수 있다는 것을 알 수 있다. 개시내용의 이 방법은 청구된 실시예들이 각각의 청구항에서 명확히 나열된 것보다 많은 특징들을 요구한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 다음의 청구항들이 반영함과 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들보다 적은 범위 내에 있다. 그러므로 다음의 청구범위는 이로써 상세한 설명 내로 포함되고, 각각의 청구항은 별도로 청구된 주제로서 독립적이다.

Claims (21)

  1. 클라이언트 컴퓨팅 디바이스로서,
    하우징;
    상기 하우징 내에 배치된 디스플레이;
    상기 하우징 내에 배치되고 영상 센서를 포함하는 촬상 어셈블리 - 상기 촬상 어셈블리는 복수의 파라미터를 사용하여 심볼의 영상들을 캡처하도록 구성됨 - ; 및
    상기 촬상 어셈블리에 동작적으로 결합된 컨트롤러
    를 포함하고, 상기 컨트롤러는,
    상기 복수의 파라미터 중 제1 파라미터의 제1 설정에서 상기 영상 센서에 의해 캡처된 제1 영상 내의 제1 심볼을 디코드하고;
    상기 복수의 파라미터 중 상기 제1 파라미터의 제2 설정에서 상기 영상 센서에 의해 캡처된 제2 영상 내의 상기 제1 심볼을 디코드하고;
    제2 심볼을 디코드하기 위해 상기 복수의 파라미터 중 상기 제1 파라미터의 설정으로서, 1) 상기 제1 영상 내의 상기 제1 심볼의 디코드-시간, 및 2) 상기 제2 영상 내의 상기 제1 심볼의 디코드-시간 중 더 빠른 것을 결정하도록 구성된, 클라이언트 컴퓨팅 디바이스.
  2. 제1항에 있어서, 상기 컨트롤러는
    상기 복수의 파라미터 중 상기 제1 파라미터의 상기 제1 설정에서 및 상기 복수의 파라미터 중 제2 파라미터의 제1 설정에서 상기 영상 센서에 의해 캡처된 상기 제1 영상 내의 상기 제1 심볼을 디코드하고;
    상기 복수의 파라미터 중 상기 제1 파라미터의 상기 제2 설정에서 및 상기 복수의 파라미터 중 상기 제2 파라미터의 상기 제1 설정에서 상기 영상 센서에 의해 캡처된 상기 제2 영상 내의 상기 제1 심볼을 디코드하고;
    상기 제2 심볼을 디코드하기 위해 상기 복수의 파라미터 중 상기 제1 파라미터 및 제2 파라미터의 설정들의 조합으로서, 1) 상기 제1 영상 내의 상기 제1 심볼의 상기 디코드-시간, 및 2) 상기 제2 영상 내의 상기 제1 심볼의 상기 디코드-시간 중 더 빠른 것을 결정하도록 구성되는, 클라이언트 컴퓨팅 디바이스.
  3. 제2항에 있어서, 상기 컨트롤러는
    상기 복수의 파라미터 중 상기 제1 파라미터의 상기 제2 설정에서 및 상기 복수의 파라미터 중 상기 제2 파라미터의 제2 설정에서 상기 영상 센서에 의해 캡처된 제3 영상 내의 상기 제1 심볼을 디코드하고;
    상기 제2 심볼을 디코드하기 위해 상기 복수의 파라미터 중 상기 제1 파라미터 및 제2 파라미터의 설정들의 상기 조합으로서, 1) 상기 제1 영상 내의 상기 제1 심볼의 상기 디코드-시간, 2) 상기 제2 영상 내의 상기 제1 심볼의 상기 디코드-시간, 3) 상기 제3 영상 내의 상기 제1 심볼의 상기 디코드-시간 중 더 빠른 것을 결정하도록 구성되는, 클라이언트 컴퓨팅 디바이스.
  4. 제2항에 있어서, 상기 제1 파라미터는 초점이고 상기 제2 파라미터는 노출 값인, 클라이언트 컴퓨팅 디바이스.
  5. 제1항에 있어서, 상기 제1 심볼은 알려진 크기 및 알려진 밀도 중 적어도 하나를 포함하고, 상기 컨트롤러는 상기 디스플레이로 하여금 상기 디스플레이 상에 상기 제1 심볼의 영상을 경계 내에 배치할 그 경계를 표시하는 그래픽의 영상을 생성하게 하도록 구성되고, 상기 디스플레이 상의 상기 제1 심볼의 영상은 상기 영상 센서에 의해 캡처된 상기 제1 심볼의 영상 데이터를 나타내고, 상기 경계는 상기 디스플레이 상의 상기 심볼의 영상의 크기에 대응하고, 결국 상기 촬상 어셈블리로부터의 상기 제1 심볼의 알려진 거리에 대응하는, 클라이언트 컴퓨팅 디바이스.
  6. 제1항에 있어서, 상기 제1 심볼은 1) 1차원 바코드, 및 2) 2차원 바코드 중 하나를 포함하고, 상기 컨트롤러는 상기 디스플레이로 하여금 상기 제1 심볼의 영상을 캡처하라는 프롬프트를 생성하게 하도록 구성되는, 클라이언트 컴퓨팅 디바이스.
  7. 제1항에 있어서, 상기 컨트롤러는 임계 값보다 느린 상기 제1 심볼의 디코드-시간을 거절하도록 구성되는, 클라이언트 컴퓨팅 디바이스.
  8. 제7항에 있어서, 상기 임계 값은 적어도 100밀리초이고 200밀리초 이하인, 클라이언트 컴퓨팅 디바이스.
  9. 클라이언트 컴퓨팅 디바이스로서,
    하우징;
    상기 하우징 내에 배치된 디스플레이;
    상기 하우징 내에 배치되고 영상 센서를 포함하는 촬상 어셈블리 - 상기 촬상 어셈블리는 복수의 파라미터를 사용하여 심볼의 영상들을 캡처하도록 구성됨 - ; 및
    상기 촬상 어셈블리에 동작적으로 결합된 컨트롤러
    를 포함하고, 상기 컨트롤러는
    상기 영상 센서에 의해 캡처된 제1 심볼의 복수의 영상을 순차적으로 디코드하고 - 각각의 영상은 상기 복수의 파라미터의 설정들의 상이한 조합을 사용하여 캡처됨 - ;
    상기 영상 센서에 의해 캡처된 영상 내의 제2 심볼을 디코드하기 위해 상기 복수의 파라미터의 설정들의 상기 조합으로서, 상기 제1 심볼을 디코드하기 위한 가장 빠른 시간을 갖는 상기 복수의 파라미터의 설정들의 조합을 결정하도록 구성된, 클라이언트 컴퓨팅 디바이스.
  10. 제9항에 있어서, 파라미터들의 상기 조합은 초점 파라미터, 노출 값, 영상 크기, 영상 해상도, 및 형상 정정 중 하나 이상을 포함하는, 클라이언트 컴퓨팅 디바이스.
  11. 제10항에 있어서, 상기 컨트롤러는 상기 영상 센서에 의해 캡처된 상기 제1 심볼의 상기 복수의 영상을 먼저 순차적으로 디코드하도록 구성되고 - 각각의 영상은 상이한 초점 설정을 사용하여 캡처됨 -, 상기 영상 센서에 의해 캡처된 제1 심볼의 복수의 영상을 그 후 순차적으로 디코드하도록 구성되는 - 각각의 영상은 상이한 노출 값 설정을 사용하여 캡처됨 -, 클라이언트 컴퓨팅 디바이스.
  12. 제9항에 있어서, 상기 제1 심볼은 알려진 크기 및 알려진 밀도 중 적어도 하나를 포함하고, 상기 컨트롤러는 상기 디스플레이로 하여금 상기 디스플레이 상에 상기 제1 심볼의 영상을 경계 내에 배치할 그 경계를 표시하는 그래픽의 영상을 생성하게 하도록 구성되고, 상기 디스플레이 상의 상기 제1 심볼의 영상은 상기 영상 센서에 의해 캡처된 상기 제1 심볼의 영상 데이터를 나타내고, 상기 경계는 상기 디스플레이 상의 상기 심볼의 영상의 크기에 대응하고, 결국 상기 촬상 어셈블리로부터의 상기 제1 심볼의 알려진 거리에 대응하는, 클라이언트 컴퓨팅 디바이스.
  13. 제9항에 있어서, 상기 제1 심볼은 1) 1차원 바코드, 및 2) 2차원 바코드 중 하나를 포함하고, 상기 컨트롤러는 상기 디스플레이로 하여금 상기 제1 심볼의 영상을 캡처하라는 프롬프트를 생성하게 하도록 구성되는, 클라이언트 컴퓨팅 디바이스.
  14. 클라이언트 컴퓨팅 디바이스를 위한 캘리브레이션 방법으로서, 상기 방법은
    영상을 캡처하도록 구성된 카메라를 갖는 클라이언트 컴퓨팅 디바이스를 제공하는 단계;
    상기 클라이언트 컴퓨팅 디바이스의 사용자에게 미리 결정된 크기 및/또는 밀도를 갖는 심볼을 상기 카메라로부터의 미리 결정된 거리에 배치하라고 지시하는 단계;
    상기 카메라로 상기 심볼을 복수 회 스캔하는 단계 - 각각의 스캔은 스캐닝 파라미터의 값이 변경되게 함 - ;
    각각의 스캔에서의 상기 심볼을 디코드하는 단계;
    각각의 스캔에서의 상기 심볼의 각각의 디코드에 대한 디코드-시간을 결정하는 단계; 및
    후속하는 심볼들을 스캔하고 디코드하기 위한 디폴트 설정으로서 가장 빠른 디코드-시간을 갖는 스캔의 스캐닝 파라미터의 값을 선택하는 단계
    를 포함하는, 캘리브레이션 방법.
  15. 제14항에 있어서, 상기 클라이언트 컴퓨팅 디바이스 상의 디스플레이로 하여금 후속하는 심볼을 스캔하기 위해 상기 디폴트 설정을 사용하라는 프롬프트를 생성하게 하는 단계를 추가로 포함하는, 캘리브레이션 방법.
  16. 제14항에 있어서, 각각의 스캔에서의 상기 심볼의 상기 디코드-시간을 서버에 송신하는 단계를 추가로 포함하고, 디폴트 설정으로서 상기 가장 빠른 디코드-시간을 갖는 설정을 선택하는 단계는 상기 서버에 의해, 후속하는 심볼들을 스캔하고 디코드하기 위한 디폴트 설정으로서 상기 가장 빠른 디코드-시간을 갖는 설정을 선택하는 단계를 포함하는, 캘리브레이션 방법.
  17. 제14항에 있어서, 디폴트 설정으로서 상기 가장 빠른 디코드-시간을 갖는 설정을 선택하는 단계는 상기 클라이언트 컴퓨팅 디바이스에 의해, 후속하는 심볼들을 스캔하고 디코드하기 위한 디폴트 설정으로서 상기 가장 빠른 디코드-시간을 갖는 설정을 선택하는 단계를 포함하는, 캘리브레이션 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020217004889A 2018-08-23 2019-07-10 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치 KR102366643B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/109,936 US10534942B1 (en) 2018-08-23 2018-08-23 Method and apparatus for calibrating a client computing device for decoding symbols
US16/109,936 2018-08-23
PCT/US2019/041116 WO2020040895A1 (en) 2018-08-23 2019-07-10 Method and apparatus for calibrating a client computing device for decoding symbols

Publications (2)

Publication Number Publication Date
KR20210027491A KR20210027491A (ko) 2021-03-10
KR102366643B1 true KR102366643B1 (ko) 2022-02-23

Family

ID=69141041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004889A KR102366643B1 (ko) 2018-08-23 2019-07-10 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치

Country Status (6)

Country Link
US (1) US10534942B1 (ko)
KR (1) KR102366643B1 (ko)
CN (1) CN112639798B (ko)
DE (1) DE112019003593T5 (ko)
GB (1) GB2588569B (ko)
WO (1) WO2020040895A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020127185A1 (en) * 2018-12-21 2020-06-25 Koninklijke Kpn N.V. Cloud-based camera calibration
US11809949B2 (en) * 2021-04-30 2023-11-07 Zebra Technologies Corporation Systems and methods to optimize imaging settings and image capture for a machine vision job
US11265455B1 (en) * 2021-06-30 2022-03-01 Zebra Technologies Corporation Method of differentiating between focus drift and a change in distance to target for variable focus lens
EP4124991B1 (de) * 2021-07-30 2023-11-15 Sick Ag Verfahren zum automatischen einrichten einer codelesevorrichtung und kamerabasierte codelesevorrichtung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009544105A (ja) * 2006-07-17 2009-12-10 コグネックス・テクノロジー・アンド・インベストメント・コーポレーション 多重シンボルデコーディングのための方法及び装置
JP2011513818A (ja) * 2008-02-22 2011-04-28 クゥアルコム・インコーポレイテッド 統合されたバーコード・スキャニングを備えた画像キャプチャ・デバイス
JP2011191970A (ja) * 2010-03-15 2011-09-29 Casio Computer Co Ltd バーコード読取装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5478997A (en) * 1988-10-21 1995-12-26 Symbol Technologies, Inc. Symbol scanning system and method having adaptive pattern generation
US20040206821A1 (en) * 1994-03-04 2004-10-21 Andrew Longacre Autodiscriminating bar code reading apparatus having solid state image sensor
US6585157B2 (en) * 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
ATE239268T1 (de) * 1998-12-22 2003-05-15 Datalogic Spa Verfahren zur automatischen regulierung der eigenschaften eines optischen codelesesystems
US6486915B2 (en) 1999-04-20 2002-11-26 Intel Corporation Determining a final exposure setting automatically for a solid state camera without a separate light metering circuit
JP4803906B2 (ja) * 2001-06-07 2011-10-26 株式会社キーエンス 光学式情報読取装置の設定用バーコードの生成方法、光学式情報読取装置の設定変更方法、設定用バーコード生成プログラムおよび記録媒体
ATE523854T1 (de) 2004-01-23 2011-09-15 Intermec Ip Corp Autofokus-strichcode-scanner und dergleichen mit mikrofluidischen linsen
US20070002163A1 (en) * 2005-06-29 2007-01-04 Dariusz Madej Imager settings
US20070119941A1 (en) * 2005-11-30 2007-05-31 Symbol Technologies, Inc. Bar code scanner programming
US7878402B2 (en) 2005-12-20 2011-02-01 Cognex Technology And Investment Corporation Decoding distorted symbols
US8226009B2 (en) * 2009-04-29 2012-07-24 Hand Held Products, Inc. Laser scanner with improved decoding
CN101833642B (zh) * 2010-06-01 2015-10-07 福建新大陆电脑股份有限公司 MicroPDF417条码解码芯片
US10621397B2 (en) * 2010-06-17 2020-04-14 Hand Held Products, Inc. Intelligent indicia reader
CN103201752B (zh) * 2010-11-10 2017-02-08 数据逻辑Adc公司 自适应数据读取器和操作方法
US8985462B2 (en) 2012-12-13 2015-03-24 Symbol Technologies, Inc. Method of driving focusing element in barcode imaging scanner
US9928392B2 (en) 2014-06-13 2018-03-27 The Code Corporation Barcode-reading system that obtains ranging data via targeting illumination
US9679175B2 (en) 2014-06-13 2017-06-13 The Code Corporation Barcode reader ranging using targeting illumination
TW201602917A (zh) 2014-07-03 2016-01-16 Mexxen Technology Inc 條碼讀取器的最佳化條碼掃描參數學習方法
TW201608478A (zh) 2014-08-19 2016-03-01 佳世達科技股份有限公司 條碼掃描裝置及條碼掃描裝置的操作方法
US10146975B2 (en) * 2016-11-17 2018-12-04 Datalogic Ip Tech S.R.L. Data reader with hybrid auto focus system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009544105A (ja) * 2006-07-17 2009-12-10 コグネックス・テクノロジー・アンド・インベストメント・コーポレーション 多重シンボルデコーディングのための方法及び装置
JP2011513818A (ja) * 2008-02-22 2011-04-28 クゥアルコム・インコーポレイテッド 統合されたバーコード・スキャニングを備えた画像キャプチャ・デバイス
JP2011191970A (ja) * 2010-03-15 2011-09-29 Casio Computer Co Ltd バーコード読取装置

Also Published As

Publication number Publication date
US10534942B1 (en) 2020-01-14
CN112639798B (zh) 2022-04-15
WO2020040895A1 (en) 2020-02-27
KR20210027491A (ko) 2021-03-10
CN112639798A (zh) 2021-04-09
DE112019003593T5 (de) 2021-04-08
GB2588569B (en) 2021-11-24
GB202101835D0 (en) 2021-03-24
GB2588569A (en) 2021-04-28

Similar Documents

Publication Publication Date Title
KR102366643B1 (ko) 심볼들을 디코드하기 위해 클라이언트 컴퓨팅 디바이스를 캘리브레이트하는 방법 및 장치
CN109074469B (zh) 条形码扫描和确定尺寸
US20230401399A1 (en) Hybrid system and method for reading indicia
US10013591B2 (en) Code symbol reading system having adaptive autofocus
US11087105B1 (en) Performance improvements for recognition of optical patterns in images
CN106067927B (zh) 一种用于扫描图形媒体扫描目标的方法及系统
US9477856B2 (en) System having an improved user interface for reading code symbols
US10049247B2 (en) Optimization of image frame management in a sweep-style optical code data reader
US11244147B2 (en) Optical data exchange while preserving social distancing
US11803719B1 (en) Performance improvements for recognition of optical patterns in images using incremental magnification
KR20240129003A (ko) 이미지 내의 복수의 바코드에 대한 바코드 디코딩 파라미터들을 결정하기 위한 방법들 및 장치
CN106796645B (zh) 用于利用单个操作引导移动单元中的数据采集设备的方法和装置
US20190130140A1 (en) Barcode readers having multiple image sensors and methods associated therewith
US12050961B2 (en) Methods and apparatus for configuring reduced decode ranges for barcode scanners
US12131223B1 (en) Multi-threading performance improvements for recognition of optical patterns in images
US11847523B2 (en) Methods and devices for improving indicia decoding with an imaging device

Legal Events

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