KR20230020953A - 다수의 광학 코드의 디코딩 - Google Patents

다수의 광학 코드의 디코딩 Download PDF

Info

Publication number
KR20230020953A
KR20230020953A KR1020227038294A KR20227038294A KR20230020953A KR 20230020953 A KR20230020953 A KR 20230020953A KR 1020227038294 A KR1020227038294 A KR 1020227038294A KR 20227038294 A KR20227038294 A KR 20227038294A KR 20230020953 A KR20230020953 A KR 20230020953A
Authority
KR
South Korea
Prior art keywords
code
frame
images
image
camera
Prior art date
Application number
KR1020227038294A
Other languages
English (en)
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
Priority claimed from US16/905,722 external-priority patent/US10846561B1/en
Priority claimed from US17/105,082 external-priority patent/US11087105B1/en
Application filed by 스칸딧 아게 filed Critical 스칸딧 아게
Publication of KR20230020953A publication Critical patent/KR20230020953A/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
    • 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/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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • 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/1447Methods for optical code recognition including a method step for retrieval of the optical code extracting optical codes from image or text carrying said optical code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Holo Graphy (AREA)
  • Structure Of Printed Boards (AREA)

Abstract

이미지 분석은 바코드와 같은 다수의 광학 패턴을 추적하는데 사용된다. 많은 애플리케이션이 웹 기반이 되고 있다. 그러나 웹 기반 애플리케이션은 네이티브 애플리케이션보다 더 적은 계산 리소스를 가질 수 있다. 예를 들어, 네이티브 애플리케이션을 사용하여 복수의 이미지로부터 바코드를 디코딩하는 것에 기초해서 바코드를 추적할 수 있다. 그러나, 바코드 디코딩은 계산량이 많을 수 있고 웹 기반 플랫폼으로 이동할 때 지연을 일으킬 수 있다. 바코드 디코딩에 사용되는 계산 리소스를 줄이기 위해, 바코드는 여러 프레임에서 추적되고 바코드를 디코딩하는데 사용되는 웹 기반 애플리케이션에 대해서만 주기적으로 디코딩된다. 바코드의 위치는 디지털 선반을 형성하기 위해 서로에 대해 추적될 수 있다. 디지털 선반은 선반의 상태를 시각화하는데 사용될 수 있다.

Description

다중 광학 패턴의 추적, 디코딩, 및 위치 지정을 위한 이미지 분석
관련 출원에 대한 상호 참조
본 출원은 2021년 2월 26일에 출원된 미국 정규출원 제17/186,909에 대한 우선권을 주장한다. 출원 제17/186,909호는 2021년 2월 12일에 출원된 미국 임시출원 제63/149,009호에 대한 우선권을 주장하며, 이는 모든 목적을 위해 참조에 의해 편입된다. 출원 제17/186,909호는, 2020년 4월 29일에 출원된 미국 임시출원 제63/017,493호, 2020년 4월 1일에 출원된 미국 임시출원 제63/003,675호, 및 2020년 5월 4일에 제출된 미국 임시출원 제63/019,818호의 우선권을 주장하고, 2021년 3월 30일에 미국 특허 제10,963,658호로 발행된 2020년 7월 2일자 미국 정규출원 제16/920,061호의 계속 출원인, 2020년 12월 31일에 출원된 미국 정규출원 제17/139,529로의 부분 계속 출원이며, 상기 출원들은 모든 목적을 위해 참조에 의해 편입된다. 출원 제17/186,909호는, 모든 목적을 위해 참조에 의해 편입된 2020년 11월 24일 미국 특허 제10,846,561호로 발행된 2020년 6월 18일자 미국 특허 출원 제16/905,722호의 부분 계속 출원이다. 출원 제17/186,909호는, 모든 목적을 위해 참조에 의해 편입된 2020년 5월 15일에 출원된 미국 임시출원 제63/025,850호에 대한 우선권을 주장한다. 출원 제17/186,909호는, 2020년 6월 26일에 출원된 미국 임시출원 제63/044,635호의 우선권을 주장하는, 2020년 11월 25일에 출원된 미국 특허 출원 제17/105,082호의 부분 계속 출원이며, 이들은 모든 목적을 위해 참조에 의해 편입된다.
본 개시는 일반적으로 코드를 디코딩하는 것에 관한 것으로, 보다 구체적으로는 소매 환경에서 바코드를 디코딩하는 것에 관한 것이지만 이에 국한되지 않는다.
바코드는 전통적으로 특수 스캐너를 사용하여 스캔되었다. 예를 들어, 바코드에 빛을 비추기 위해 레이저를 포함하는 바코드 스캐너가 사용되고, 바코드로부터 반사된 빛이 검출되고 바코드를 디코딩하는데 사용된다. 카메라가 장착된 모바일 디바이스(예를 들어, 스마트폰, 태블릿)가 보편화됨에 따라, 모바일 디바이스는 코드의 이미지를 획득하고 이미지 분석을 통해 코드를 디코딩함으로써 코드를 디코딩하는데 사용되고 있다. 바코드를 디코딩하기 위해 스마트폰을 사용하는 방법의 예는 2013년 12월 3일에 허여된 미국 특허 제8,596,540호에 제공된다.
본 개시는 일반적으로 컴퓨터 판독가능 코드(예를 들어, 바코드; QR 코드)를 추적(track) 및 디코딩(decoding)하는 것에 관한 것이다. 예를 들어 바코드는 소매 설정의 재고 보관 코드(Stock Keeping Code: SKU)일 수 있다. 그러나, 본 명세서에 설명된 시스템 및/또는 프로세스는 다른 설정(예를 들어, 공항 터미널에서 여권을 스캔)에서 광학 문자 인식을 통한 텍스트와 같은 다른 특징을 추적 및/또는 식별하는 데에도 사용할 수 있다. 또한 많은 애플리케이션이 웹 기반이 되고 있다. 그러나 웹 기반 애플리케이션의 경우 계산 리소스가 제한될 수 있다. 많은 동작이 점점 더 컴퓨터에 의존하게 됨에 따라, 이미지, 특히 모바일 디바이스에 의해 획득된 이미지로부터 데이터를 획득 및/또는 시각화하기 위한 개선이 필요하다.
특정 구성에서, 광학 코드를 추적하기 위한 시스템은 카메라를 포함한다. 카메라는 복수의 프레임을 획득하도록 구성될 수 있다. 시스템은 하나 이상의 프로세서를 포함할 수 있다. 상기 하나 이상의 프로세서는: 상기 이미지 센서로부터 상기 복수의 프레임을 획득하고 - 상기 복수의 프레임은 각각 코드의 이미지를 포함하고; 상기 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고; 상기 제2 프레임은 상기 제1 프레임 이후에 획득됨 -; 상기 제1 프레임에서 상기 코드를 식별하고; 상기 제1 프레임의 상기 코드로부터 기능을 추출하고; 상기 코드의 추출된 기능에 기초해서 필터를 생성하고; 상기 제2 프레임으로부터 특징을 추출하고; 상기 필터와 결합된 상기 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵을 생성하고 - 상기 응답 맵은 상기 제2 프레임에서 상기 코드의 위치의 확률을 제공함 -; 그리고/또는 상기 코드를 디코딩하지 않고, 상기 응답 맵에 기초해서 상기 제2 프레임에서 상기 코드의 위치를 확인하도록 구성된다. 일부 실시예에서, 상기 필터는 상관 필터이고; 상기 코드는 제1 코드이고, 상기 하나 이상의 프로세서는, 상기 제2 프레임에서 제2 코드를 식별하되, 상기 제2 코드를 디코딩하지 않도록 구성되고; 상기 필터는 푸리에 변환(Fourier transform)을 사용하여 상기 코드의 추출된 기능을 주파수 공간으로 변환함으로써 생성되고; 그리고/또는 상기 응답 맵은: 주파수 이미지를 생성하기 위해 푸리에 변환을 사용하여 상기 제2 프레임을 주파수 공간으로 변환하고; 상기 필터를 사용하여 상기 주파수 이미지를 컨볼루션함으로써 생성된다.
특정 구성에서, 광학 코드를 추적하는 방법은 이미지 센서로부터 복수의 프레임을 획득하는 단계 - 상기 복수의 프레임은 각각 코드의 이미지를 포함하고; 상기 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고; 상기 제2 프레임은 제1 프레임 이후에 획득됨 -; 상기 제1 프레임에서 상기 코드를 식별하는 단계; 상기 제1 프레임에서 상기 코드로부터 특징을 추출하는 단계; 상기 코드의 추출된 특징에 기초해서 필터를 생성하는 단계; 상기 제2 프레임으로부터 특징을 추출하는 단계; 상기 필터와 결합된 상기 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵을 생성하는 단계; 및/또는 상기 코드를 디코딩하지 않고 상기 응답 맵에 기초해서 상기 제2 프레임에서 상기 코드의 위치를 확인하는 단계를 포함한다. 일부 실시예에서, 상기 필터는 상관 필터이고; 상기 코드는 기계 판독 가능한 바코드를 포함하고; 상기 필터는 푸리에 변환(Fourier transform)을 사용하여 상기 코드의 추출된 기능을 주파수 공간으로 변환함으로써 생성되고; 상기 응답 맵은 주파수 이미지를 생성하기 위해 푸리에 변환을 사용하여 상기 제2 프레임을 주파수 공간으로 변환하고 상기 필터를 사용하여 상기 주파수 이미지를 컨볼루션함으로써 생성되고; 상기 복수의 프레임은 제3 프레임을 포함하고; 상기 제3 프레임은 상기 제2 프레임 이후에 획득되고; 상기 복수의 프레임은 제4 프레임을 포함하고; 상기 제4 프레임은 상기 제3 프레임 이후에 획득되고; 상기 코드는 제1 코드이고; 상기 복수의 프레임은 1초 이내에 촬영된 10개의 프레임을 포함하고; 그리고/또는 상기 방법은: 상기 제1 프레임 및 상기 제2 프레임에서 상기 코드의 위치를 식별하는 것에 기초해서 상기 제1 프레임으로부터 상기 제2 프레임으로의 상기 이미지 센서의 호모그래피 포즈(homography pose) 변화를 계산하는 단계; 상기 제2 프레임에서의 상기 코드의 위치에 기초해서 상기 코드의 이미지를 포함하는 상기 제3 프레임의 서브 영역을 예측하는 단계; 상기 제3 프레임으로부터의 상기 코드의 이미지를 이용하여 상기 코드를 디코딩하는 단계; 상기 제3 프레임에서 제2 코드의 위치를 식별하는 단계 - 여기서, 상기 제2 코드를 디코딩하지 않음 -; 상기 제4 프레임에서 상기 제2 코드를 디코딩하는 단계; 상기 코드의 위치를 나타내는 디스플레이 상의 그래픽과 함께 상기 디스플레이 상에 상기 제2 프레임을 제시하는 단계; 및/또는 상기 제2 프레임에서 제2 코드를 식별하는 단계를 더 포함하되, 상기 제2 코드를 디코딩하지 않는다.
특정 실시예에서, 광학 패턴을 디코딩하기 위한 장치는 카메라를 포함한다. 상기 카메라는 이미지 센서를 포함할 수 있다. 상기 카메라는 상기 이미지 센서에 광을 집속시키도록 구성된 렌즈를 포함할 수 있다. 상기 렌즈는 광각 렌즈일 수 있다. 상기 장치는 하나 이상의 프로세서를 포함할 수 있다. 상기 하나 이상의 프로세서는 상기 카메라를 사용하여 복수의 이미지를 획득하고, 상기 복수의 이미지를 분석하여 상기 복수의 이미지에서 광학 패턴을 검출하고; 데이터 페이로드를 획득하기 위해 상기 광학 패턴을 디코딩하고; 그리고/또는상기 장치의 메모리 디바이스에 상기 데이터 페이로드를 저장하도록 구성될 수 있다. 상기 렌즈는 상기 복수의 이미지를 획득하는 동안 고정 초점으로 설정될 수 있다. 상기 복수의 이미지 각각에 대한 노출 시간은 1/500초 이하일 수 있다. 상기 복수의 이미지는 상기 카메라의 프레임 레이트로 획득될 수 있다. 상기 프레임 레이트는 초당 30프레임 이상일 수 있다.
특정 실시예에서, 광학 패턴을 디코딩하는 방법은 카메라를 사용하여 복수의 이미지를 획득하는 단계; 상기 복수의 이미지를 분석하여 상기 복수의 이미지에서 광학 패턴을 검출하는 단계; 데이터 페이로드를 획득하기 위해 상기 광학 패턴을 디코딩하는 단계; 및/또는 상기 데이터 페이로드를 메모리 디바이스에 저장하는 단계를 포함하고, 상기 카메라의 렌즈는 상기 복수의 이미지를 획득하는 동안 고정 초점으로 설정되고, 상기 카메라의 렌즈는 광각 렌즈이고, 상기 복수의 이미지 각각에 대한 노출 시간은 1/500초 이하이고, 상기 복수의 이미지가 상기 카메라의 프레임 레이트로 획득되고, 그리고/또는 상기 프레임 레이트는 초당 30프레임 이상이다.
특정 실시예에서, 장치는 제1 렌즈를 갖는 카메라 및 토치를 갖는 모바일 디바이스용 부착물을 포함하고, 상기 장치는 제2 렌즈 및/또는 제3 렌즈를 포함하고, 여기서 상기 부착물은 상기 모바일 디바이스와 제거 가능하게 결합되도록 구성되고; 상기 제2 렌즈는 강기 부착물이 상기 모바일 디바이스와 결합되는 동안 상기 모바일 디바이스의 카메라의 화각을 증가시키도록 구성되고; 그리고/또는 상기 제3 렌즈는 상기 부착물이 상기 모바일 디바이스와 결합되는 동안 상기 토치의 빛을 집속시키도록 구성된다. 일부 실시예에서, 상기 제3 렌즈는 상기 토치로부터 수직인 방향으로 상기 토치의 빛을 집속시키도록 구성되고; 상기 제3 렌즈는 상기 토치의 빛을 타원 형상으로 집속하도록 구성되며, 상기 타원 형상은 비원형이고; 상기 부착물은 상기 모바일 디바이스의 둘 이상의 측면 중 적어도 일부를 덮는 케이스이며; 그리고/또는 상기 부착물은 자석을 더 포함한다.
특정 실시예에서, 방법은 광학 패턴에서 모바일 디바이스를 조준하기 위해 상기 모바일 디바이스의 토치를 사용하는 단계를 포함한다.
본 개시의 적용 가능성의 추가 영역은 이후 제공되는 상세한 설명으로부터 명백해질 것이다. 상세한 설명 및 특정 예는 다양한 실시예를 나타내면서 단지 예시를 목적으로 하고 본 개시의 범위를 반드시 제한하도록 의도되지 않음을 이해해야 한다.
본 개시는 첨부된 도면들과 함께 설명된다.
도 1은 추적 방법론의 실시예를 도시한다.
도 2는 코드를 추적하고 각 프레임의 코드를 디코딩하지 않는 실시예를 도시한다.
도 3은 상관 필터(correlation filter)를 생성하기 위한 실시예의 다이어그램을 도시한다.
도 4는 코드를 추적하기 위한 응답 맵을 생성하기 위해 상관 필터를 사용하기 위한 실시예의 다이어그램을 도시한다.
도 5는 다중 프레임에 걸쳐 코드를 디코딩하는 실시예를 도시한다.
도 6은 코드를 추적하기 위한 프로세스의 실시예의 흐름도를 도시한다.
도 7은 이미지로부터 선반 상의 제품을 구분하는 예이다.
도 8은 선반 다이어그램의 실시예이다.
도 9는 선반 유닛 상의 객체를 매핑하기 위한 프로세스의 실시예의 흐름도를 도시한다.
도 10은 선반의 2개의 이미지를 블렌딩(blending)하는 예이다.
도 11은 선반의 시각적 이미지가 있는 선반 다이어그램의 실시예이다.
도 12는 선반의 시각적 이미지를 생성하기 위한 프로세스의 실시예의 흐름도를 도시한다.
도 13은 광학 패턴을 빠르게 스캐닝하는 모바일 디바이스의 실시예이다.
도 14는 제1 유형의 바코드를 스캐닝하기 위한 카메라 초점 설정의 함수로서 스캐닝 범위를 나타내는 차트를 도시한다.
도 15는 제2 유형의 바코드를 스캐닝하기 위한 카메라 초점 설정의 함수로서 스캐닝 범위를 나타내는 차트를 도시한다.
도 16은 디지털 카메라를 사용하여 광학 패턴을 디코딩하기 위한 프로세스의 실시예의 흐름도를 도시한다.
도 17은 모바일 디바이스용 부착물의 실시예이다.
도 18은 모바일 디바이스용 부착물의 다른 실시예이다.
도 19는 컴퓨터 시스템의 실시예의 블록도를 도시한다.
첨부된 도면에서 유사한 구성요소 및/또는 특징은 동일한 참조 라벨을 가질 수 있다. 또한, 동일한 유형의 다양한 구성요소는 참조 라벨 뒤에 대시(dash) 및 유사한 구성요소를 구별하는 두 번째 라벨을 사용하여 구별될 수 있다. 본 명세서에서 첫 번째 참조 라벨만 사용되는 경우, 두 번째 참조 라벨과 관계없이 동일한 첫 번째 참조 라벨을 가진 유사한 구성요소 중 하나에 설명이 적용가능하다.
이어지는 설명은 바람직한 예시적인 실시예(들)만을 제공하며, 본 개시의 범위, 적용 가능성 또는 구성을 제한하도록 의도되지 않는다. 오히려, 바람직한 예시적인 실시예(들)의 뒤이은 설명은 바람직한 예시적인 실시예를 구현하기 위한 가능한 설명을 당업자에게 제공할 것이다. 첨부된 특허청구범위에 기재된 사상 및 범위를 벗어나지 않으면서 요소의 기능 및 배열에 다양한 변경이 이루어질 수 있음을 이해해야 한다.
매트릭스 스캔
많은 애플리케이션이 웹 기반이 되고 있다. 그러나 웹 기반 애플리케이션은 네이티브(native) 애플리케이션보다 더 적은 계산 리소스를 가질 수 있다. 예를 들어, 네이티브 애플리케이션을 사용하여 복수의 이미지로부터 바코드를 디코딩하는 것에 기초해서 바코드를 추적할 수 있다. 그러나 바코드 디코딩은 계산량이 많을 수 있고 웹 기반 애플리케이션으로 이동할 때 지연이 발생할 수 있다. 따라서, 일부 실시예에서, 바코드는 여러 프레임에서 추적되지만 바코드를 디코딩하는데 사용되는 웹 기반 애플리케이션에 대해서만 주기적으로 디코딩된다. 일부 실시예에서, 프레임은 필름 또는 비디오를 구성하는 일련의 개별 사진 중 하나이다.
먼저 도 1을 참조하면, 추적 방식의 실시예가 도시된다. 이 추적 방식은 네이티브 애플리케이션에서 사용될 수 있다. 도 1에서, 제1 코드(104-1) 및 제2 코드(104-2)는 시간 T=1에서 제1 프레임(108-1)(예를 들어, 초기화)에서 디코딩되고, 제1 코드(104-1) 및 제2 코드(104-2)의 위치가 확인된다. 제1 프레임(108-1)은 이미지 센서에 의해(예를 들어, 모바일 디바이스의 카메라로부터) 획득된 제1 이미지에 대응한다. 코드(104)는 광학 패턴이다. 코드(104)는 복수의 수평한 라인을 갖는 1차원 바코드 또는 2차원 바코드(예를 들어, QR 코드), 기호(들)(예를 들어, 달러 기호, 삼각형 등), 숫자(들), 및/또는 문자(들)와 같은 기계 판독가능 코드일 수 있다. 예를 들어, 코드(104)는 가격, 차량을 식별하기 위한 VIN 번호, 신용 카드 번호, 번호판 번호, 일련 번호, 타이어 코드(TIN) 또는 날짜(예를 들어, 만료일)일 수 있다. 코드(104)는 다양한 환경 및/또는 용도에 있다. 예를 들어, 코드(104)는 배송 라벨, 제품 라벨, 여권, 배송 송장, 운전 면허증, ID 카드, 신용 카드, 수표, 번호판, 디지털 디스플레이(예를 들어, 전자 가격 라벨), 계량기, 기계 판독 가능 영역(Machine Readable Zone: MRZ)을 갖는 ID 문서, 또는 소매 영수증의 일부일 수 있다.
시간 T = 2에서, 예측(112)이 계산되고(예를 들어, 모바일 디바이스의 부드러운 움직임을 가정함); 코드(104)는 제2 프레임(108-2)에서 디코딩되고(여기서, 제2 프레임(108-2)은 이미지 센서에 의해 획득된 제2 이미지에 대응함); 코드(104)는 예측(112)과 매칭되고; 코드(104)의 업데이트된 위치(116)는 제2 프레임(108-2)으로부터 디코딩된 코드(104)에 기초해서 확인된다.
경계 상자(bounding box)(예를 들어, 업데이트된 위치(116))가 1차원 코드의 디코딩에 기초해서 부정확할 수 있기 때문에 위의 방식에 대한 일부 우려는 부정확한 그리고/또는 누락된 검출을 포함할 수 있다. 디코딩이 각 프레임마다 수행되지 않으면 검출이 누락되거나 검출 트랙이 매칭되지 않을 수 있다. 검출 트랙의 예가 업데이트된 위치(116)에 표시되며, 여기서 점선 윤곽선은 이전 위치였다. 또한, 더 빠른 움직임과 낮은 해상도로 인해 디코딩이 더 어려워질 수 있다.
하나의 가능한 솔루션은 (예를 들어, 시야에서 코드(104)의 궤적을 설정하기 위해) 이미지의 이력에 기초해서 코드(104)의 위치를 예측하는 것과 같이 더 많은 데이터를 사용하는 것이고, 코드(104)의 알려진 배열 및/또는 배경 구조(예를 들어, 선반 유닛)을 사용하는 것이고; 및/또는 추가 센서 데이터(예를 들어, 모바일 디바이스의 포즈(pose) 변화를 예측하기 위한 자이로스코프로부터의 관성 측정 유닛(inertial measurement unit: IMU) 데이터)를 활용하는 것이다. 그러나 더 많은 데이터를 사용하면 웹 기반 애플리케이션을 사용할 때 지연이 발생할 수 있다. 또한, 모든 디바이스가 더 많은 데이터를 사용하기 위한 컴퓨팅 성능 및/또는 장비(예를 들어, IMU)를 갖는 것은 아니다. 따라서, 아래에서 더 자세히 설명되는 다른 가능한 솔루션은 제1 프레임 및 제3 프레임의 코드를 디코딩하고, 제1 프레임과 제3 프레임 사이의 제2 프레임 내의 코드(104)의 위치를 추적하는 것이다.
도 2는 각 프레임에서 코드를 디코딩하지 않고 추적하는 실시예를 도시한다. 제1 프레임(108-1)에서, 시간 T = 1에서, 알고리즘이 코드(104)처럼 보이는 위치를 검색하는데 사용된다. 코드(104)처럼 보이는 위치가 디코딩된다(또는 코드 디코딩을 시도한다). (예를 들어, 상관 필터를 생성함으로써 도 3과 관련하여 설명된 바와 같이) 코드(104) 추적의 초기화가 또한 수행된다.
제2 프레임(108-2)에서, T=2에서, 코드(104)는 추적되고 디코딩되지 않는다. 추적 알고리즘은 제2 프레임(108-2)에서 추적된 코드의 새로운 위치를 찾으려고 시도한다. 제2 프레임(108-2)에서, 제1 경계 상자(204-1)는 제2 프레임(108-2)과 관련하여 계산되고 여기서 제1 코드(104-1)가 계산되어야 하며(예를 들어, 경계 상자(204)가 단순히 계산되고/되거나 모바일 디바이스의 사용자 인터페이스에서 제2 프레임(108-2)에 오버레이됨); 제2 경계 상자(204-2)는 제2 프레임(108-2)과 관련하여 계산되고 여기서 제2 코드(104-2)가 계산되어야 한다. 예를 들어, 상관 필터는 경계 상자(204)의 위치를 결정하기 위해 도 4와 관련하여 설명된 바와 같이 응답 맵을 생성하는데 사용된다. 제2 프레임(108-2)에서의 추적은 코드를 디코딩할 때 존재하는 제한에 의존하지 않는다. 예를 들어, 코드(104)는 제2 프레임(108-2)에서 흐릿할 수 있다. 일 실시예에서, 상관 필터는 추적의 초기화 시에 학습되고, 예를 들어, 관점의 변화에 적응하기 위해 추적 프로세스 중에 지속적으로 업데이트된다. 다른 실시예에서, 상관 필터는 바코드에 대해 분명히 구별될 수 있고 사전 훈련된(pre-trained) 신경망을 사용하여 추출될 수 있는 이미지 특징의 선택된 서브세트에 대해 동작한다.
제3 프레임(108-3)에서, T=3에서, 코드(104)가 스캔되고 추적된다. 예를 들어, 알고리즘이 코드(104)처럼 보이는 위치를 검색하는데 사용된다. 코드(104)처럼 보이는 위치가 디코딩되고/되거나 추적 알고리즘이 디코딩될 수 없었거나 디코딩되지 않았던 코드(104)에 대해 제3 프레임(108-3)에서 코드(104)의 새로운 위치를 확인한다.
제1 프레임(108-1)과 제3 프레임(108-3) 사이에 하나의 프레임인 제2 프레임(108-2)만이 도시되어 있지만, 제2 프레임(108-2)은 제1 프레임(108-1)과 제3 프레임(108-3) 사이의 많은 프레임 중 하나일 수 있다는 것을 이해해야 한다. 또한 하나 이상의 프레임 사이에서 발생하는 제2 프레임(108-2)의 동작과 함께 제3 프레임(108-3)에서의 동작이 반복될 수 있음을 이해해야 한다(예를 들어, 주기적으로 또는 이미지에서 모션 블러가 적을 수 있음을 나타낼 수 있는 설정된 거리 이상 움직이지 않는 경계 상자의 위치와 같은 이벤트에 따라). 따라서 추적 알고리즘은 코드 스캐닝 및/또는 코드 디코딩 사이의 코드 위치를 결정할 수 있다. 예를 들어, 스마트폰의 카메라는 초당 30프레임으로 이미지를 획득한다. 도 2의 제3 프레임(108-3)의 동작은 2Hz의 간격(때때로 스캔 레이트라고도 함)으로 발생하도록 설정되고, 도 2의 제2 프레임(108-2)의 동작은 상기 간격 사이의 카메라에 의해 획득된 프레임에서 발생하도록 설정된다. 일부 실시예에서, 간격은 0.3, 0.5, 1, 2, 또는 5Hz와 같거나 더 빈번하고 5, 10, 또는 20Hz와 같거나 더 적은 빈도이다. 일부 구성에서, 카메라는 1, 5, 10 또는 20Hz 이상이고 10, 30, 60 또는 120Hz 이하의 프레임 레이트를 갖는다. 객체가 프레임 간에 너무 많이 이동하지 않도록 높은 프레임 레이트를 원하는 것과 가능한 한 빨리 나타나는 새 바코드를 발견하려는 것 사이에는 사용되는 프레임 레이트의 절충안이 있다. 출원인은 연속 스캔 사이의 60~100ms(예를 들어, 80ms)가 좋은 절충안이라는 것을 발견했고, 이는 사용자에게 "재빠름(snappiness)"이라는 경험을 전달하기 때문이다.
일부 실시예에서, 검출된 새로운 코드만이 후속 프레임에서 디코딩된다. 따라서, 일부 실시예에서, 바코드에 대한 스캐닝 및/또는 바코드 디코딩은 제1 프레임(108-1)에서만 수행된다. 예를 들어 매장 직원이 스마트폰으로 여러 바코드를 스캔하고 있다. 제1 프레임에서, 스캐닝이 두 개의 바코드를 식별하고 이 두 개의 바코드가 디코딩된다. 그런 다음 두 개의 바코드를 추적하고, 스마트폰의 화면을 사용하여 스마트폰 사용자에게 표시되는 이미지에 녹색 점이 오버레이되어 사용자에게 바코드가 디코딩된 증강 현실 표시를 제공한다. 사용자는 화면에서 녹색 점으로 가려지지 않은 제3 바코드를 볼 수 있으므로, 사용자는 계속해서 스마트폰을 움직여 제3 바코드를 스캔한다. 바코드처럼 보이는 위치에 대해 이미지가 검색되는 프레임에서, 이전에 식별된 두 개의 바코드에 해당하는 두 위치와 새 위치의 세 위치가 식별된다. 이전에 식별된 두 바코드에 대응하는 두 위치는 디코딩되지 않지만, 새 위치에 제3 바코드가 표시된다. 그 다음 제3 바코드가 추적되고 제3 바코드가 추적되어야 할 화면에 녹색 점이 오버레이된다. 따라서 사용자는 애플리케이션이 각 프레임마다 각 바코드를 디코딩하지 않고도 어떤 코드가 디코딩되었는지 확인할 수 있다. 코드를 디코딩하면 추적보다 더 많은 계산 리소스가 필요할 수 있으므로, 추적은 특히 애플리케이션이 웹 기반 애플리케이션이고 네이티브 애플리케이션으로 실행되지 않는 경우 모바일 디바이스의 기능을 향상시킬 수 있다.
일부 실시예에서, 코드처럼 보이는 위치에 대한 검색 및 코드 디코딩 모두를 포함할 수 있는 코드에 대한 스캐닝은 서로 다른 프레임에서 발생하도록 분할될 수 있다. 예를 들어, 코드처럼 보이는 위치에 대한 검색은 제1 프레임에서 발생하고 5개의 위치가 식별된다. 프레임 2에서 10까지, 5개 위치가 추적된다. 프레임 11에서, 제1 위치에서의 코드가 디코딩된다. 프레임 12-20에서, 5개 위치가 추적된다. 프레임 21에서, 제2 위치에서의 코드가 디코딩된다. 프레임 22-30에서, 5개의 위치가 추적된다. 프레임 31에서, 코드처럼 보이는 위치에 대한 검색이 수행되고 제6 위치가 식별된다. 프로세스는 계속해서 새로운 위치를 검색하고 코드를 디코딩한다.
일부 구성에서, 도 2 내지 도 6과 관련하여 설명된 추적은 보다 안정적인 추적을 허용할 수 있는데, 추적이 (예를 들어, 도 1에 설명된 바와 같이) 시각적으로 디코딩가능한 바코드에 의존하지 않기 때문이다. 추적은 프레임 레이트 증가로 인해 사용자에게 더 부드러운 시각화를 제공하고, 그리고/또는 "일반" 바코드 스캔을 수행할 때 에너지 소비를 줄일 수 있다(예를 들어, 이미 스캔된 코드는 재스캔되지 않기 때문에). 각 프레임에 코드 디코딩이 없으면 다양한 상황에서 도움이 될 수 있다. 사용자가 재고 관리를 위해 여러 코드를 스캔하는 한 가지 예에서 바코드는 멀리 떨어져 있을 수 있다. 사용자가 바코드를 스캔하기 위해 휴대폰을 빠르게 움직이면 모션 블러로 인해 바코드가 흐려질 수 있다. 따라서 코드 디코딩에 의존하는 추적은 바코드를 추적하지 못할 수 있다.
일부 실시예에서, 방법은 코드를 시각적으로 추출하는 단계, 디코딩의 프레임 간의 대응 관계를 설정하는 단계, 코드의 위치를 예측하는 단계, 다시 스캔하는 단계를 포함하며, 여기서 예측은 다중 코드의 위치를 독립적으로 예측하고/하거나 이미지 데이터만을(예를 들어, IMU 데이터 아님) 사용하여 수행된다.
일부 실시예에서, 도 2 내지 도 6에 설명된 추적 알고리즘은 예측 알고리즘과 같은 다른 알고리즘으로 구현될 수 있다. 예를 들어, 동형(homographic) 예측 알고리즘과 함께 또는 동형 예측 알고리즘이 실패한 경우 추적 알고리즘을 사용할 수 있다. 일부 실시예에서, 바코드는 단일 고정 구조(single rigid structure)로서 추적될 수 있다. 바코드가 서로 상대적으로 움직이지 않는다는 사실을 활용하면 계산 복잡성을 줄이고 내결함성/실패 검출을 개선하는데 도움이 될 수 있다.
도 3은 상관 필터(304)를 생성하기 위한 실시예의 다이어그램을 도시한다. 도 3은 초기화의 예이다. 추출된 특징(308)은 코드(104)로부터 얻어진다. 추출된 특징은 고대비 영역(예를 들어, 이미지 그라디언트(gradient)), 라인(line), 모서리(edge) 등이 될 수 있다. 많은 시나리오에서 바코드가 단단한 물체 또는 표면에 배치되기 때문에, 추출된 특징(308)은 코드(100) 자체에 더하여 기하학적 큐(cue)를 포함할 수 있다(예를 들어, 선반의 모서리 또는 달러 기호는 추출된 특징(308)의 일부일 수 있다). 일부 실시예에서, 추출된 특징(308)은 푸리에 변환(Fourier transform: FT)을 사용하여 시각적 영역에서 주파수 영역으로 변환되고 타겟 출력(312)과 결합되어 상관 필터(304)를 형성한다. 푸리에 변환은 효율적이고 계산 시간을 줄이다. 다른 실시예에서, 상기 동작은 공간 영역에서 수행된다. 일부 실시예에서, 상관 필터를 "훈련"하기 위해, 특징들은 주파수 영역에서 변환된 다음 마스크/필터가 계산된다. 특징과 컨볼루션된 경우, 이는 타겟 출력을 야기한다. 타겟 출력은 공간 영역에서 원하는 응답 맵(예를 들어, 객체 위치의 확률 맵; 기본적으로 객체 중심 위치를 나타내는 패치의 중앙에 단일 피크가 있는 분석된 패치의 크기 매트릭스)이 주파수 영역으로 변환되는 것이다.
도 4는 코드(104)를 추적하기 위한 응답 맵(404)을 생성하기 위해 상관 필터(304)를 사용하는 실시예의 다이어그램을 도시한다. 도 4에서, 추출된 특징(408)은 이미지(412)로부터 획득된다. 이미지(412)는 카메라에 의해 획득된 복수의 이미지 프레임의 일부이다. 이미지(412)는 코드(104)를 포함한다. 추출된 특징(408)은 푸리에 변환을 사용하여 주파수 공간으로 변환되고 상관 필터(304)(예를 들어, 컨볼루션(convolution))와 결합되어 응답 맵(404)을 생성한다. 추출된 특징(408)은 상관 필터(304)와 결합되기 전에 윈도우(416)와 결합될 수 있다. 윈도우(416)는 코드(104)에 대한 검색을 전체 이미지(412)의 영역보다 작은 영역으로 제한하는데 사용될 수 있다. 응답 맵(404)은 상관의 크기를 제공한다. 따라서 응답 맵(404)의 영역이 더 희어질수록 코드(104)가 해당 영역에 있을 가능성이 더 커진다.
추적을 위한 프레임 레이트는 모션 속도, 윈도우(416)의 크기, 및 코드(104)가 카메라로부터 얼마나 멀리 떨어져 있는지(예를 들어, 더 멀리 떨어져 있으면, 더 큰 윈도우(416)가 선택되고 및/또는 추적을 위해 이미지의 프레임 레이트가 증가됨) 중 하나 이상을 포함하는 여러 기준에 기초해서 (예를 들어, 동적으로) 조정될 수 있다.
도 5는 다중 프레임(508)에 걸쳐 코드(104)를 스캐닝하는 실시예를 도시한다. 일부 구성에서, 코드에 대한 스캐닝(예를 들어, 코드 식별 및/또는 디코딩)은 계산량이 많을 수 있다. 코드를 식별하는 것은 코드가 이미지에 존재하는지 및/또는 이미지에서 코드의 위치를 확인하는 것을 포함한다. 코드를 디코딩하는 것은 코드가 나타내는 것을 확인하는 것을 포함한다. 예를 들어, 바코드를 식별하는 것은 바코드가 프레임에 존재하는지 확인하는 것을 포함하고, 바코드를 디코딩하는 것은 숫자 스트링(numerical string)을 나타내기 위해 바코드의 일련의 흰색 및 검은색 라인을 해석하는 것을 포함한다. 스캔을 여러 프레임에 분산시킴으로써, 계산을 시간에 따라 분산시킬 수 있다. 도 5는 제1 프레임(508-1), 제2 프레임(508-2), 제3 프레임(508-3), 및 제4 프레임(508-4)을 도시한다. 도 5에서 스캔은 여러 프레임에 걸쳐 수행된다. 제1 프레임(508-1)에서, 제1 코드(104-1) 및 제2 코드(104-2)가 추적된다. 제2 프레임(508-2)에서, 코드에 대한 스캔은 제2 프레임(508-2)의 상반부에서만 수행된다. 따라서, 제1 코드(104-1)는 식별 및 디코딩되는 반면, 제2 코드(104-2)는 디코딩되지 않고 추적된다. 제3 프레임(508-3)에서, 코드(104)가 추적된다. 제4 프레임(508-4)에서, 코드에 대한 스캔은 제4 프레임(508-4)의 하반부에서만 수행된다. 따라서, 제2 코드(104-2)는 식별 및 디코딩되는 반면, 제1 코드(104-1)는 디코딩되지 않고 추적된다. 일부 실시예에서, 프레임(508)은 사분면으로 분할되고 새로운 코드의 발견(예를 들어, 스캔)은 네 번째 프레임마다 각 사분면에서 수행된다. 일부 실시예에서, "어텐션(attention)" 또는 "신 구문론(scene semantic)" 기반 디코딩이 사용된다. 일부 구성에서, 이는 디코딩이 급격한 시각적 변화를 겪는 관찰된 신의 프레임 또는 일부분으로 제한될 수 있고/있거나 디코딩이 특정 태스크(예를 들어, 바코드 라벨, 선반 유닛의 부품 등)에 대해 특별히 관심이 있는 영역으로 제한될 수 있음을 의미할 수 있다.
도 6에서, 코드를 추적하기 위한 프로세스(600)의 실시예의 흐름도가 도시된다. 프로세스(600)는 이미지 센서로부터 복수의 프레임을 획득하는 것으로 단계(604)에서 시작하며, 여기서 복수의 프레임은 각각 코드의 이미지를 포함하고; 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고; 제2 프레임은 제1 프레임 이후에 획득된다. 단계 608에서, 코드는 제1 프레임에서 식별된다. 코드로부터 특징이 추출된다(단계 612). 예를 들어, 추출된 특징(308)은 도 3의 코드(104)로부터 식별된다. 단계 616에서, 필터가 생성된다. 예를 들어, 상관 필터(304)는 도 3의 추출된 특징(308)에 기초해서 생성된다.
일부 실시예에서, 코드를 검출하고 추적하는 것은 바코드 및 텍스트 라인과 같은 복수의 코드를 추적하는 것을 의미할 수 있다. 예를 들어, 소매점에서 가격 라벨이 추적될 수 있고 제2 단계에서 제품을 식별하는 하나 이상의 바코드를 포함하는 해당 가격 라벨의 하나 이상의 코드가 디코딩될 수 있다; 가격을 나타내는 일련의 숫자 및/또는 제품 이름을 설명하는 일련의 문자.
단계 620에서, 특징은 제2 프레임으로부터 추출된다. 예를 들어, 추출된 특징(408)은 도 4의 이미지(412)로부터 생성된다. 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵(response map)이 생성된다(단계 624). 예를 들어, 응답 맵(404)은 추출된 특징(408)을 도 4의 상관 필터(304)와 컨볼루션하는 것에 기초해서 생성된다. 단계(628)에서 코드의 위치는 응답 맵에 기초해서 확인된다. 예를 들어, 응답 맵의 크기가 더 큰 영역은 코드의 응답 맵에서 가능성있는 위치를 나타낸다. 프로세스(600)에 기술된 바와 같이 코드를 추적하는 것은 (예를 들어, 계산 리소스를 절약하기 위해) 코드를 디코딩하지 않는다.
상자 또는 상자의 윤곽과 같은 코드의 위치를 나타내는 그래픽은 코드를 포함하는 이미지에 오버레이되어 사용자에게 코드의 위치를 보여주는 증강 현실 출력을 제공할 수 있다. 코드가 디코딩되었는지 여부를 나타내기 위해 색상을 변경하는 것과 같이 그래픽이 변경될 수 있다. 예를 들어, 코드가 존재하는 것으로 식별되었지만 카메라가 코드를 디코딩하기에는 코드에서 너무 멀리 떨어져 있는 경우, 코드 주위에 빨간색 윤곽선이 사용자에게 표시될 수 있다. 그러면 사용자는 카메라를 코드에 더 가깝게 이동할 수 있다. 코드가 애플리케이션(예를 들어, 디바이스에서 또는 웹 기반으로 실행됨)에 의해 디코딩되면 그래픽이 녹색 상자로 변경되어 코드가 성공적으로 디코딩되었음을 사용자에게 나타낸다.
코드를 추적함으로써, 제2 프레임에서 코드의 위치에 기초해서 다음 프레임의 하위 영역(subarea)을 예측할 수 있다. 따라서 다음 프레임에서 스캐닝을 수행하면, 코드의 스캐닝을 코드의 위치와 매칭시킬 수 있다.
일부 실시예에서, 다수의 광학 코드를 디코딩하는 시스템은: 웹 브라우저 소프트웨어 및 디스플레이가 활성화된 모바일 데이터 수집기; 카메라 모듈; 적어도 하나의 객체와 함께 배치된 하나 이상의 광학 코드; 및/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 하나 이상의 광학 코드의 아이덴티티를 수신하고, 하나 이상의 광학 코드를 디코딩하고, 그리고/또는 모바일 데이터 수집기의 디스플레이에 디코딩된 코드를 시각화하는 하나 이상의 프로세서를 포함한다. 시스템은: 웹 브라우저 소프트웨어 및 디스플레이가 활성화된 모바일 데이터 수집기; 카메라 모듈; 적어도 하나의 객체와 함께 배치된 하나 이상의 광학 코드; 및/또는 카메라 모듈에 의해 캡처된 이미지에서 하나 이상의 광학 코드의 존재를 검출하고, 이미지에서 하나 이상의 검출된 광학 코드를 디코딩하고, 모바일 데이터 수집기의 디스플레이 상의 검출된 코드의 위치를 시각화하고, 그리고/또는 모바일 데이터 수집기의 디스플레이에 디코딩된 코드를 시각화하는 하나 이상의 프로세서를 포함할 수 있다. 시스템은: 디스플레이 및 카메라 모듈이 활성화된 모바일 데이터 수집기; 적어도 하나의 객체와 함께 배치된 복수의 광학 코드; 및/또는 카메라 모듈에 의해 캡처된 제1 이미지에서 복수의 광학 코드의 존재 및 위치를 검출하고, 제1 이미지로부터 검출된 광학 코드의 서브세트를 디코딩하고, 카메라 모듈에 의해 캡처된 제2 이미지에서 복수의 광학 코드의 존재를 검출하고, 제1 이미지로부터 제2 이미지까지의 복수의 광학 코드의 위치를 추적하고, 그리고/또는 제2 이미지로부터 검출된 광학 코드의 서브세트를 디코딩하는 하나 이상의 프로세서를 포함할 수 있고, 서브세트는 제1 이미지로부터 디코딩되지 않은 코드를 포함한다.
코드 매핑
코드 매핑은 사용자(예를 들어, 상점 직원)가 환경에서(예를 들어, 상점의 선반에서) 코드(예를 들어, SKU/제품)의 위치를 캡처할 수 있게 하는 데 사용될 수 있다. 코드를 식별하고 추적하면 물리적 구조의 가상 다이어그램을 생성하는데 도움이 될 수 있다. 예를 들어, 선반 유닛의 가상 다이어그램은 다음 질문 중 하나 이상에 답하는 데 도움이 될 수 있다: 선반 어디에, 어느 선반에 및/또는 어떤 높이에 제품이 있는가? 제품이 정확한 위치에 있는가(예를 들어, 제품 배치가 플래노그램(planogram)을 준수하는가)? 특정 선반은 시각적으로 어떻게 생겼는가? 2주 전 선반의 상태는 어땠는가? 제품 가격은 정확한가? 제품이 라벨과 일치하는가? 선반에 있는 제품 수가 적은가(예를 들어, 선반을 다시 채워야 하는가)?
일부 실시예에서, 스토리지, API, 대시보드 등과 같은 클라우드 서비스는 다수의 사용자가 데이터를 제공 및/또는 검색할 수 있도록 하는 데 사용된다. 예를 들어, 소매 환경에서 여러 모바일 디바이스를 사용하는 여러 직원이 데이터 캡처에 기여할 수 있다; 그리고/또는 다양한 이해 관계자가 데이터의 일부에 대한 데이터를 원시 및/또는 집계 버전으로 볼 수 있다. 클라우드 기반 애플리케이션은 또한 더 빠른 소프트웨어 개발 주기를 허용할 수 있다.
일부 상황에서 매핑은 특정 구조로 제한된다. 예를 들어, 소매 환경에서 선반은 2차원 구조로 이미지화되며, 여기에서 복수의 바코드는 수직 배향된(수직 평면의 법선이 수평을 가리킴) 하나의 평면으로 매핑된다. 선반 유닛에 있는 제품은 선반 유닛에 있는 바코드로 식별할 수 있다. 일부 실시예에서, 선반 유닛의 제품은 시각적 제품 인식에 의해 식별된다.
데이터는 원격 위치(예를 들어, 클라우드)에 저장될 수 있다. 데이터는 캡처 및/또는 디스플레이 디바이스로부터 인지 불능(agnostic)일 수 있다. 예를 들어, 다른 모바일 캡처 디바이스(예를 들어, 다른 태블릿 및/또는 스마트폰을 사용할 수 있음) 및 캡처된 데이터 디스플레이는 모바일 앱 또는 웹 기반 대시보드에 있을 수 있다. 캡처 실행은 SKU, 선반 유닛 및/또는 매장 단위로 수행할 수 있으며 다양한 캡처 디바이스에서 유연하게 결합될 수 있다.
일부 구성에서, 코드 매핑은 플래노그램 준수(예를 들어, SKU 위치를 계획된 위치와 비교); 플래노그램 분석(예를 들어, 판매 수치); 제품에 대한 매장 내 탐색; 및/또는 AR 마케팅(예를 들어, 고객이 제품에서 미리 정의된 거리 내에 있을 때 즉시 판촉)을 위해 사용될 수 있다.
특정 실시예에서, 코드 맵을 생성하는 단계는: (예를 들어, 선반 상의 바코드를 판독함으로써 및/또는 제품 인식에 의해) 복수의 SKUs SKU를 식별하는 단계; SKU 영역을 구분하는 단계(예를 들어, 한 유형의 제품 영역; 이미지 분할(image segmentation)을 통해 수행됨); 2차원 레이아웃 확인하는 단계(예를 들어, 선반 유닛 및/또는 통로에서 다른 SKU 옆에 있는 SKU); 바코드 사이의 거리를 계산하는 단계(예를 들어, 센티미터 단위의 절대 거리 또는 상대 거리); 바코드의 3차원 레이아웃을 캡처하는 단계(예를 들어, 여러 통로의 관계); 및/또는 선반의 개념을 이해하는 단계(예를 들어, 수직으로 분할된 유닛들)를 포함한다.
SKU는 선반에 있는 바코드를 스캔하여 식별할 수 있다. 제품 인식으로 SKU를 식별하기 위해, 분류기는 제품에 라벨을 지정하고/또는 윤곽을 동시에 구분할 수 있는 이미지에서 실행된다. 윤곽선은 직사각형 또는 픽셀 단위 이미지 분할(예를 들어, 컨볼루션 뉴럴 네트워크(convolutional neural network: CNN) 기반 분류기를 사용하여)일 수 있다. 분류기는 일반 데이터 코퍼스(corpus)(예를 들어, ImageNet)로 사전 훈련되고 제품 인식 사용 사례에 맞게 미세 조정/적응될 수 있다. 바람직하게는 몇 가지 예(예를 들어, 원샷 러닝(one-shot-learning))로 새 제품을 추가할 수 있다. CNN 기반 객체 검출 프레임워크의 예로는 YOLO, R-CNN, SSD 등이 있지만 일부는 맞춤형으로 구축할 수도 있다.
도 7은 이미지로부터 선반 상의 제품을 구분하는 예이다. 도 7은 선반(712)에 위치한 제품(708)의 이미지인 프레임(704)을 도시한다. SKU 영역의 구분은 이미지 분할을 통해 수행될 수 있다. 제품(708)이 이미지에서 직접 인식될 수 있는 경우 분류기를 사용하여 SKU 영역을 구분할 수 있다. 제품(708)이 선반(712)의 바코드(716)를 통해 인식되는 경우, 이는 바코드 위치가 주어지면 이미지 콘텐츠를 기반으로 수행될 수 있다. 예시적인 접근법은 바코드(716)에 대응하는 제품(708)이 바코드(716) 위 또는 아래에 있는지 확인하는 것을 포함한다. 바코드(716)가 제품(708)의 위 또는 아래(또는 측면)인지를 결정하는 것은 훈련된 이진 분류기, 임시 규칙(ad-hoc rule) 및/또는 사람의 입력으로 해결될 수 있다. 그런 다음 이미지 분석을 사용하여 유사한 이미지 콘텐츠를 기반으로 영역(예를 들어, 코드 위 또는 아래)을 왼쪽과 오른쪽으로 확장한다. 도 7의 프레임(704)에서, 바코드(716)에 대응하는 제품(708)은 바코드(716) 위에 있다. 예를 들어 관심 포인트 매칭, (교차)상관, 색상 분석 등으로 유사한 이미지 콘텐츠를 측정할 수 있다. 구분은 왜곡되지 않은 이미지를 사용하고 및/또는 유사한 제품이 선반 행과 수평으로 정렬된다는 가정에 기초할 수 있다. 상품(708)의 세그먼트(720)(점선)는 바코드(716)에 대응하는 상품(708)을 나타낸다.
도 8은 선반 다이어그램(800)의 실시예이다. 선반 다이어그램(800)은 SKU의 2차원 레이아웃(예를 들어, 어떤 SKU가 다른 SKU 옆에 있는지)에 대한 정보를 제공한다. 이 실시예에서, SKU는 바코드에 의해 인식된다. 한 번에 하나의 바코드만 보이는 경우, 사용자는 정의된 순서로 바코드를 스캔한다(예를 들어, 각 선반에 대해 왼쪽에서 오른쪽 순서; 선반 상단에서 시작하여 행별로 아래로 이동). 그러나 이것은 거리(상대적 또는 실제)가 아닌 레이아웃만 제공한다. 매트릭스 스캔으로 위에서 설명한 것처럼 둘 이상의 바코드가 보이는 경우 바코드가 서로 상대적으로 매핑된다. 예를 들어, 선반의 왼쪽 상단에서 시작하여 이전에 참조된 바코드의 현재 시야 내를 유지하면서 새로 인식된 바코드는 하나 이상의 알려진 바코드와 관련하여 참조될 수 있다(예를 들어, 왼쪽, 오른쪽, 위쪽, 아래쪽). 일부 가정은 매핑을 단순화할 수 있다. 예를 들어, 일부 구성에서는 바코드 캡처 보기가 선반 행과 정렬되고 간격이 없다고 가정할 수 있다. 이미지에서 바코드 사이의 간격을 사용하여 대략적인 상대 거리를 계산할 수 있다.
바코드들 사이의 상대적인 거리를 제공하기 위해, 캡처 보기에서 오직 하나의 바코드만 보일 때, 일부 실시예는 선반 유닛의 하나 이상의 오버뷰 이미지를 캡처하는 것으로 시작할 수 있다. 이러한 오버뷰 이미지(들)에서 바코드는 디코딩되지 않는다(또는 디코딩될 수 없다)(예를 들어, 이들은 너무 작지만 바코드 위치 영역이 식별될 수 있기 때문에). 오버뷰 이미지는 조정되고, 왜곡이 수정되며, 선반 행과 정렬된다. 바코드가 서로 다른 여러 시야가 있는 경우, 이들은 서로 연결되거나 최소한 서로에 대해 참조된다. 그런 다음 개별 바코드를 둘러싼 이미지 콘텐츠를 포함하여 개별 바코드가 캡처된다. 식별된 바코드 영역에 의존하거나 의존하지 않고, 이미지 콘텐츠의 도움으로 개별 바코드 이미지를 오버뷰 이미지(들)에 등록할 수 있다. 예를 들어, 호모그래피(homography)를 위한 RANSAC(random sample consensus; 무작위 표본 합의) 또는 추정을 위한 기타 이미지 분석을 사용하여 이미지 관심 지점으로 매칭을 수행할 수 있다. 일부 실시예에서, 개별 바코드 이미지를 오버뷰 이미지(들)에 등록하는 단계는 선반에 대응하는 수평선을 식별하는 단계 및 이미지의 수평 정렬을 위해 수평선을 사용하는 단계 및/또는 이미지를 결합하는 단계를 포함한다. 이 접근법은 오버뷰 이미지(들)의 도움으로 바코드 간의 (상대적) 거리를 캡처하는 이점이 있다.
일부 실시예에서, 바코드 사이의 절대 거리는 (예를 들어, cm 단위로) 계산된다. 예를 들어, 매트릭스 스캔을 사용하여 바코드를 디코딩하거나 디코딩하지 않고 동시에 둘 이상의 바코드를 추적할 수 있다. 알고리즘은 선반이 평면이라는 가정을 포함할 수 있으며(즉, 코드가 동일한 평면에 배열되는 2차원 문제) 일부 계산을 단순화할 수 있다. 첫 번째 옵션에서, 축척(scale)은 이미지에서 기준(reference)의 알려진 폭에 의해 결정될 수 있다. 예를 들어, 바코드의 높이 및/또는 폭이 알려진 경우(예를 들어, 1.2cm) 해당 스캔을 기준으로 사용하여 상대 측정값을 절대 측정값으로 변환할 수 있다. 동일한 유형의 바코드는 중복성을 제공하는 여러 이미지에 나타날 수 있다. 두 번째 옵션에서는, 알려진 캘리브레이션(calibrated) 카메라와 움직이는 디바이스(예를 들어, 동시 위치 파악 및 매핑(simultaneous localization and mapping: SLAM)을 사용)를 사용하여 축척을 결정할 수 있다. 세 번째 옵션에서는 입체(stereoscopic) 카메라 또는 깊이 카메라를 사용할 수 있다. 위의 세 가지 옵션은 상호 배타적이지 않다.
상점의 3차원 모델을 생성할 수 있다. 3차원 모델은 복수의 2차원 모델(예를 들어, 선반 유닛들)을 결합하고/하거나 SLAM 알고리즘 또는 움직임 기반 구조(structure from motion: SfM) 파이프라인(Apple의 ARKit 또는 Google의 ARCore는 각각의 모바일 플랫폼에서 이러한 재구성 기능을 제공한다)을 구현함으로써 단일 디바이스를 사용하여 만들 수 있다. 바코드는 클로즈업 스캔에서 디코딩되고 3차원 매장 모델 내에서 위치가 파악될 수 있다. 또 다른 옵션은 여러 대의 카메라(스테레오) 및/또는 깊이 카메라를 사용하는 것이다. 추가 옵션에서, 선반의 2차원 모델이 생성되고 사용자가 상점 내의 선반 위치를 식별한다(예를 들어, 상점 레이아웃 청사진을 사용). 다른 실시예에서, 상점 레이아웃 모델이, 예를 들어, 소매점 외관을 초기에 계획하는 것으로부터 나오는 기존 CAD 모델로부터 파생된다.
선반의 개념(예를 들어, 수직으로 분할된 유닛들). 애플리케이션 관점에서 선반(또는 모듈 또는 선반 유닛)은 상점과 제품 사이의 설명 단위이다. 제품은 선반에 있으며 매장의 모든 선반은 고유 식별자를 갖는다. 따라서 디지털 표현에서 선반의 물리적 경계를 기록하는 것이 도움이 될 수 있다. 선반이 차례로 매핑되면 2D의 경우 식별자를 수동으로 입력하거나 선반에 있는 전용 바코드(또는 다른 코드 유형)를 수동으로 캡처하여 선반 식별자를 캡처할 수 있다. 자동 입력이 선호될 수 있지만, 선반에 식별자가 없으면 수동 입력을 사용할 수 있다. 일부 실시예에서, 선반의 아이덴티티는 카메라/디바이스의 위치로부터 추론될 수 있다. 예를 들어, 일부 실시예에서, 전화기의 위치는 WiFi 핑거-프린팅(finger-printing), 블루투스 비콘(Bluetooth beacons), GPS, SLAM(simultaneous localization and mapping; 동시 위치 파악 및 매핑), 또는 IMU 추적을 사용하여 결정될 수 있다. 예를 들어, 워크플로우에서 이는 해당 선반의 SKU 맵을 캡처하기 전에 수행된다. 매장을 3D로 직접 재구성하면, 이미지 분석을 통해 선반 구분(수직 분할)을 자동으로 수행할 수 있으며, 서로 특정(매개변수화 가능한) 거리 내에서 수직 분할선을 검색할 수 있다.
선반을 스캔하는데 사용되는 애플리케이션은 특정 방식으로 구성될 수 있고, 예를 들어, 개별 SKU가 순서대로 스캔된다. 예를 들어, 상점 직원은 이동 시간을 최소화하기 위해 각 개별 선반의 방향을 전환하면서 왼쪽 상부에서 오른쪽 하부로 이동하는 S자형 패턴으로 SKU 데이터를 수집할 수 있다. 데이터(예를 들어, 각 선반에 대한)가 수집되어 백엔드로 전송된다. 각 선반에 대한 데이터에는 다음을 포함할 수 있다: 상점 ID: 상점의 식별자; 선반 ID: 선반의 식별자; 시간: 획득 시작 및 종료의 타임스탬프; 각 SKU에 대한 데이터에는 다음을 포함할 수 있다: EAN/바코드, 위치(선반 행, 품목 위치), 획득 타임스탬프, 가격(읽은 가격, 정확한 가격), 및/또는 제품 이미지; 및/또는 스마트폰 식별자: 업로드를 다른 휴대폰과 구별함.
특정 제품에 대한 데이터는 벡터 형태(예를 들어, n x 1 매트릭스)로 배열된다. 아래 표 1은 데이터 매핑을 위한 샘플 벡터를 제공한다. 벡터는 코드와 선반 다이어그램에 대한 코드의 상대 위치를 포함한다(예를 들어, 벡터는 "값" 열임).
표 1. 샘플 제품 데이터
기술자
SKU ID 2036391100003
선반 ID 21A7
바코드 위치(x) 40
바코드 위치(y) -30
제품 클래스(예를 들어, 유제품) 005
제품 영역(x) 40, 45
제품 영역(y) -30, -40
도 9에서, 선반 유닛 상의 객체들을 매핑하기 위한 프로세스(900)의 실시예의 흐름도가 도시된다(예를 들어, 디지털 맵을 생성함). 프로세스 900은 복수의 이미지를 수신하는 것으로 단계 904에서 시작한다. 예를 들어, 이미지는 모바일 디바이스로부터 카메라에 의해 획득된다. 단계 608에서, 제1 아이템 코드가 복수의 이미지에서 식별된다. 예를 들어, 제1 아이템 코드는 제1 SKU를 식별하는 바코드이고, 제1 아이템 코드를 식별하는 단계는 제1 아이템 코드를 디코딩하는 단계를 포함한다. 단계 612에서, 제2 아이템 코드가 복수의 이미지에서 식별된다. 예를 들어, 제2 아이템 코드는 제2 SKU를 식별하는 바코드이고, 제2 아이템 코드를 식별하는 단계는 제2 아이템 코드를 디코딩하는 단계를 포함한다.단계 916에서, 제1 코드와 제2 코드 사이의 상대 거리 및 배향(orientation)이 계산된다. 상대 거리 및 배향은 상대 좌표계에 제1 아이템 코드와 제2 아이템 코드를 위치시키는 것을 기반으로 할 수 있다(예를 들어, 도 8에 표시된 좌표계; 예를 들어 제2 바코드는 제1 바코드 오른쪽으로 4유닛, 아래로 3유닛). 일부 실시예에서, 절대 거리가 측정된다(예를 들어, 제2 바코드 x 위치는 제1 바코드의 x 위치에 24센티미터를 더한 값과 동일하고, 제2 바코드 y 위치는 제1 바코드의 y 위치와 동일함).
단계 920에서, 제1 아이템 코드와 제2 아이템 코드 사이의 상대 거리 및 배향이 선반 다이어그램으로 캘리브레이션(calibration)된다. 예를 들어, 여러 코드가 도 8에 도시된 선반 다이어그램에 결합된다. 제1 아이템 코드와 제2 아이템 코드 사이의 상대 거리와 배향은 선반 다이어그램에서 제1 아이템 코드와 제2 아이템 코드의 위치를 지정하는 데 사용된다(예를 들어, 제1 아이템 코드의 좌표는 0,0이고 제1 아이템 코드가 선반 유닛의 원점으로 선택된 경우 제2 아이템 코드의 좌표는 4,-3이다).
단계 924에서, 제1 아이템 코드 및 선반 다이어그램에 대한 제1 아이템 코드의 상대 위치를 포함하는 제1 벡터가 생성된다. 예를 들어, 표 I은 선반 21A7에 대한 바코드 ID 및 바코드의 x/y 좌표를 가진 벡터를 제공한다. 유사하게, 제2 아이템 코드 및 선반 다이어그램에 대한 제2 아이템 코드의 상대 위치를 포함하는 제2 벡터가 생성된다(단계 928).
일부 실시예에서, 디스플레이 상의 객체의 위치를 매핑하는 시스템은: 광학 코드를 판독하는 모바일 데이터 수집기; 디스플레이 상의 객체와 함께 배치된 광학 코드를 갖는 라벨; 및/또는 하나 이상의 라벨의 아이덴티티를 수신하고, 하나 이상의 라벨 사이의 상대 거리 및 배향을 계산하고, 그리고/또는 맵에서 둘 이상의 라벨의 위치를 정렬하는 하나 이상의 프로세서를 포함한다.
선반 시각화
선반 시각화는 사용자(점포 직원, 관리자 등)가 소매점에 있는 선반의 현재 및/또는 이전 상태를 시각화하고/하거나 추가 관련 정보를 표시할 수 있도록 하는데 사용될 수 있다(예를 들어, 오버레이 또는 추가 윈도우를 통해 그래픽 사용자 인터페이스(GUI)에서). 일부 실시예는 평면 선반으로 제한되지만, 다른 실시예는 상점의 대부분의 모든 유형의 포스(point of sale: PoS)에 있는 제품을 포함한다. 선반 시각화를 통해 선반을 원격으로 육안 검사할 수 있다: 쇼핑 경험을 향해 소파에서 소매점을 가로 지르는 스트리트 뷰 스타일 산책; 및/또는 증강 또는 가상 현실 애플리케이션.
도 10은 선반의 두 이미지를 블렌딩하는 예이다. 도 10은 선반(1012)에 있는 제품(1008)의 결합된 이미지(1000)를 보여준다. 결합된 이미지(1000)는 2개 이상의 이미지로 구성될 수 있기 때문에 결합된 이미지(1000)가 다소 흐릿하게 보일 수 있다. 선반 시각화는 이미지 스티칭(stitching) 문제일 수 있다. 파노라마 사진은 이미지 스티칭을 사용하여 만들어지지만 선반 시각화에 대한 제약 조건은 기존 파노라마 이미지 스티칭과 다르다. 예를 들어 선반(예를 들어, 선반 유닛)은 가까이 있을 수 있지만 하나의 카메라 뷰에 맞지 않는다. 선반은 여러 다른 시점에서 캡처되며 캡처된 이미지(예를 들어, 시차) 간에 상당한(객체와 관련하여) 카메라 이동이 있을 수 있다. 그러나 캡처된 뷰 사이에 신(scene)에 움직임이 없다고 가정할 수 있다. 시각화의 업데이트는 여러 캡처 디바이스와 여러 순간으로부터 올 수 있고, 단일 SKU 캡처 인스턴스로부터도 올 수 있다. 이미지 블렌딩에는 종종 시각화가 매력적으로 보이도록 노출 보정이 포함된다. 시각화가 업데이트되면 선반의 이미지를 시간에 따라 선별할 수 있다.
일부 구성에서 아날로그-이미지 스티칭은 다음을 포함한다: 이미지에서 키 포인트를 검출하고 불변 기술자를 추출하는 단계; 두 이미지 사이의 디스크립터를 매칭시키는 단계; RANSAC(여러 유사한 기술에 대한 예로서)를 사용하여 양 이미지의 매칭된 이미지 특징 위치를 사용하여 호모그래피 매트릭스를 추정하는 단계 - 많은 매칭된 특징이 있는 경우에만(예를 들어, 문턱값을 사용하여) 두 이미지를 결합함 -; 획득된 호모그래피 매트릭스를 이용하여 워핑 변환을 적용하는 단계; 및 이미지를 블렌딩하는 단계(예를 들어, 크기 조정, 노출 보정, 이음매 찾기).
일부 구성에서, 문제는 조인트 최적화 문제(예를 들어, 쌍별 이미지 매칭 문제라기 보다는)로서 공식화된다. 이것은 SfM 문제일 수 있다. 이것은 포인트뿐만 아니라 선(예를 들어, 선반 유닛의 일부)과 같은 다른 피처 유형에 기초할 수도 있다. 일부 실시예에서, 호모그래피는 예를 들어 거의 정면-평행 뷰를 가정함으로써 내결함성을 개선하도록 제한될 수 있다. 일부 실시예에서, 이 문제는 전역 최적화 문제를 공식화함으로써 해결될 수 있다. 여러 이미지 간의 관계를 고려하면서 이미지를 가져온(시각적으로 그리고 타임 스탬프를 연관시켜 유도됨) 위치에 대한 대략적인 추정치를 공동으로 최적화/유도하려고 하면 오류를 줄일 수 있다. 일부 실시예에서, 고품질 이미지 기록은 저수준 이미지 기술자 또는 훨씬 더 높은 주파수(예를 들어, 자이로로부터 또는 이미지를 통해 추정됨; 추적과 관련됨)에서 취해진 수행된 모션의 평면 추정치에 의해 지원될 수 있고, 이미지를 더 잘 연관시키고 "스티칭된" 파노라마 이미지를 최적화할 수 있게 한다. 일부 실시예에서, 이미지(또는 비디오)의 시퀀스는 캡처된 프레임 사이의 시차(parallax)를 줄이기 위해 그리고 최소한의 시각적 아티팩트로 렌더링할 수 있도록 기록된다. 캡처하는 모바일 디바이스의 센서(IMU/가속도 센서)를 사용하여(및/또는 큐에 기초한 이미지와 센서 융합) 안정성을 향상시킬 수 있다.
SKU를 캡처하는 동안 사용자는 바코드를 인식할 수 있는 SKU의 클로즈업 이미지를 캡처할 수도 있다. 확대 이미지를 제공하고/하거나 제품 및/또는 바코드의 고해상도 이미지를 표시할 수 있도록 이러한 클로즈업 이미지를 오버뷰 이미지에 통합할 수 있다. 스티칭 알고리즘은 큰 시차와 축척 변화를 고려한다. 이미지 벤딩(bending)은 시각적 아티팩트를 최소화하기 위해 신중하게 수행된다. 일부 실시예에서, 클로즈업 이미지는 모든 SKU에 대해 이용 가능하고, 오버뷰 이미지(들)는 서로에 대한 클로즈업을 참조하고, 필요한 경우 클로즈업 사이에 콘텐츠를 채우는 데 사용된다. 일부 실시예에서, 최소한의 시각적 아티팩트에 대해, 클로즈업 이미지의 스타일은 오버뷰 이미지에 매칭된다. 여기에는 대비, 밝기, 색상 채도 값 또는 합성 노출 보정(또는 유사한 기술)의 적응이 포함될 수 있다. 일부 실시예에서, 블렌딩은 오버뷰와 새로운 클로즈업 이미지 사이의 부드러운 전환을 위해 적용되며, 여기서 두 이미지의 콘텐츠는 중첩된다. 일부 실시예에서, "심 조각(seam carving)" 알고리즘은 최적의 심 위치 검출을 위해 사용된다.
도 11은 선반의 시각적 이미지(1108)를 갖는 선반 다이어그램(1104)의 실시예이다. 제품 정보를 시각화에 통합할 수 있다. 예를 들어, 시각화는 제품별로 검색가능할 수 있으며, 검색된 제품은 이미지 시각화 내에서 강조 표시될 수 있다; 시각화에는 가격, 재고 수준, 알레르겐 등과 같은 제품 정보가 포함된 오버레이가 포함될 수 있다; 특정 제품은 이미지에서 강조 표시될 수 있다(예를 들어, 판촉 중이거나 곧 판촉으로 변경되어야 하는 제품; 또는 가격이 잘못되었거나 플래노그램의 위치가 잘못된 제품).
도 12에서, 다수의 이미지로부터 디스플레이 상의 객체의 시각적 표현을 생성하기 위한 프로세스(1200)의 실시예의 흐름도가 도시된다. 프로세스 1200은 단계 1204에서 복수의 이미지를 획득하는 것으로 시작하며, 복수의 이미지는 제1 이미지 및 제2 이미지를 포함한다. 제1 이미지의 코드가 검출된다(단계 1208). 제2 이미지의 코드가 검출된다(단계 1212). 코드는 단계 1216에서 제1 이미지에서 객체의 아이덴티티를 수신하도록 디코딩된다. 특징 세트가 제1 이미지에서 식별된다(단계 1220). 특징 세트가 제2 이미지에서 식별된다(단계 1224). 제1 이미지의 위치는 제1 이미지의 특징 세트의 위치를 제2 이미지의 특징 세트의 위치와 비교하는 것에 기초해서 제2 이미지의 위치에 대해 계산된다(단계 1228). 블렌딩된 이미지를 생성하기 위해 제2 이미지에 대한 제1 이미지를 계산하는 것에 기초해서 제1 이미지가 제2 이미지와 블렌딩된다(단계 1232). 블렌딩된 이미지는 객체를 식별하는 연관 데이터와 함께 저장된다(단계 1236). 일부 실시예에서, 결합된 이미지의 메타데이터는 결합된 이미지와 객체를 식별하는 정보를 연결하는 데이터베이스에 대한 링크 또는 참조를 포함한다.
일부 실시예에서 시스템은: 광학 코드를 판독하고 디스플레이 상의 객체의 이미지를 촬영하는 모바일 데이터 수집기, 디스플레이 상의 객체와 함께 배치된 광학 코드를 포함하는 라벨, 및/또는 하나 이상의 이미지에서 적어도 하나의 객체의 아이덴티티를 수신하고, 서로에 대한 둘 이상의 이미지의 위치를 계산하고, 및/또는 하나 이상의 이미지로부터 파노라마 이미지 표현을 계산하는 하나 이상의 프로세서를 포함한다.
바코드 디코딩, OCR 및/또는 시각적 선반(Visual Shelf)의 동시 사용
일부 실시예에서, 결합된 도구는 상점 직원이 여러 작업을 동시에 수행하도록 할 수 있다. 예를 들어, 광학 문자 인식(OCR)을 사용하여 바코드를 스캔하고 가격 라벨을 디코딩할 수 있다; 바코드를 스캔하여 확인된 제품과 관련된 가격(예를 들어, 데이터베이스 참조) 및 매칭 여부를 확인하기 위해 가격 라벨과 비교한 제품과 연관된 가격. 가격 확인이 진행되는 동안 이미지를 사용하여 품절 상황을 찾을 수 있다. 따라서 동료 또는 로봇이 한 번의 연습으로 운영 작업을 수행할 수 있다.
OCR 사용과 같은 일부 디코딩 작업은 계산량이 많을 수 있다. 코드를 한 번 디코딩한 다음 코드를 디코딩하지 않고 코드를 추적하면 계산 리소스를 절약할 수 있다.
A. 소매 환경의 예시적인 사용자
i. 수잔 - 소매 직원
수잔은 약 30세의 상점 직원이다. 매장은 중간 규모의 식료품 체인이다. 수잔은 대학 학위가 없다. 수잔은 모바일 디바이스에 대해 잘 알고 있지만 기술에 정통한 것으로 간주되지 않는다. 수잔은 지난 2년 동안 소매 고용주를 세 번 변경했다. 그녀는 주에 따라 다른 교대 근무를 한다. 그녀의 상사는 업무의 일환으로 정기적으로 매장을 둘러보고 가격 라벨 확인, 선반 간격 기록 또는 플래노그램 준수 확인과 같은 특정 데이터 수집 작업을 수행하도록 요청한다. 수잔은 Zebra TC52 디바이스에 액세스할 수 있다. 수잔의 가장 큰 관심사는 가능한 한 정확하게 매장 둘러보기를 가능한 한 빨리 수행하는 것이다.
수잔은 PLI(가격 라벨 정보)를 수집 및/또는 확인하기 위해 1000개의 SKU를 빠르게 스캔하기 위해 자신의 전화기에서 세션을 실행하기를 원한다. 이것은 그녀에게 일상적인 작업이며 속도와 정확성이 중요한다. 그녀는 가격 라벨 확인을 위해 SKU를 스캔할 때 선반에 있는 SKU의 디지털 맵도 생성하고 싶어한다. 수잔에게는 전화에서 세션을 실행하여 데이터를 수집하고 클라우드의 서버에 데이터를 업로드하는 것이 바람직하다.
이 예에서 수잔은 SKU를 스캔하고 개별 날짜 코드를 보고 가장 빨리 만료되는 코드를 앱에 입력할 수 있다. 다른 구성에서 개별 날짜 코드는 개별 날짜 코드의 이미지를 사용하여 디코딩된다. 다른 변형에서 수잔은 앱에 있는 모든 날짜 코드를 입력하고 각 날짜 코드와 연결된 제품의 수량도 지정한다. 수잔은 다른 작업을 수행하는 동안 선반의 갭을 식별할 수도 있다. 그녀는 갭까지 걸어가 갭과 연관된 SKU를 스캔할 수 있다. 사용자 인터페이스에서 그녀는 선택적으로 선반에 남아 있는 제품 수를 지정할 수 있다.
ii. 폴 - 매장 관리자
폴은 약 45세이고 기혼이며 두 명의 자녀가 있다. 그는 대형 식료품 체인점에서 매장 관리자로 일반적으로 오전 8시부터 오후 6시까지 일한다. 폴은 대학이 있으며 모바일 디바이스 사용자보다 데스크톱 사용자에 가깝다. 그는 큰 컴퓨터 화면 뒤에 있는 관리 사무실의 책상에서 대부분의 시간을 보낸다. 폴은 거의 20년 동안 체인에서 일해 왔다. 그는 항상 해오던 방식으로 일을 하는 것을 좋아한다. 폴은 정기적인 매장 둘러보기 일정을 유지하고 매장 직원을 직접 감독한다. 폴은 직장에서 iPhone 8을 사용한다.
웹 기반 애플리케이션으로 폴은: 준수 및 운영 문제, 예를 들어 재인쇄 및 교체할 라벨, 채워야 할 갭 등을 나열하는 작업 목록을 생성하고; 포털에서 문제가 해결되었음을 확인하고; 매장의 운영 작업/데이터, 시간 프레임, 작업을 수행하는 매장 직원, 이벤트 유형(PL 미준수, 갭 스캔 등)과 관련된 보고서를 검토하고; 위에 대한 요약 통계를 확인하고 지정된 시간 프레임/타임라인에 대한 회사 동향을 체크하고; 그리고/또는 ShelfView로 확대하고 선반의 가장 최근 시각적 데이터를 검토할 수 있다.
iii. 카밀라 - 전국 매장 운영
카밀라는 약 50세이며 기혼이며 2명의 성장한 자녀가 있다. 그녀는 일반적으로 오전 9시부터 오후 7시까지 일하며 200개 매장의 매장 운영을 책임지고 있다. 그녀는 MBA 학위를 가지고 있다. 카밀라는 모바일, iPad 및 Windows 노트북 사이를 능숙하게 이동한다. 그녀는 하루 중 언제 어디서나 작업을 모니터링하는 데 익숙하다. 카밀라는 현재 역할을 맡은 지 2개월 밖에 되지 않았지만 새로운 소프트웨어 도구를 추진하려고 했을 때 이미 IT 부서의 저항에 부딪혔다. 그녀의 가장 큰 문제는 매장에서 수행되는 작업에 대한 실시간 가시성이 없다는 것이다. 따라서 그녀는 회사가 관련 규정을 준수하는지 알지 못한다.
웹 기반 애플리케이션을 사용하여 카밀라는 상점의 운영 작업/데이터와 관련된 보고서를 검토하고; 보고서를 상점의 하위 집합, 시간 프레임, 작업을 수행하는 상점 직원, 이벤트 유형(PL 미준수, 갭 스캔 등)으로 필터링하고; 위에 대한 요약 통계를 확인하고 지정된 시간 프레임/타임라인에 대한 회사 동향을 보여주고; 그리고/또는 ShelfView로 확대하고 선반의 최근 시각적 데이터를 검토할 수 있다.
B. 예시적인 시스템 구성요소
웹 기반 애플리케이션은 다중 테넌트에 대해 구성될 수 있고. 여기서 여러 소매업체가 동일한 시스템에서 호스팅된다; 매장 직원, 매장 관리, 기업 관리 등 다양한 수준의 액세스 권한을 가진 여러 사용자 역할; 다음 필드 중 하나 이상을 포함할 수 있는 여러 데이터 요소: 시간 및 날짜, 세션 식별자(사용자, 날짜, 상점), 디코딩된 광학 코드(UPC(Universal Product Code), EAN(International Article Number)), 선반/위치 식별자 플레이스홀더, 고해상도, 검출된 바코드의 원시 이미지, 또는 디코딩할 기타 영역(OCR), 전체 시야의 저해상도 이미지 및/또는 기타 필드(예를 들어, 아래 애플리케이션에서 설명); 개별 데이터 필드는 개별 삭제 일정에 적합할 수 있다(저장 요구 사항 및 개인 정보 보호 문제); 고객은 a) 매일, b) 48시간 후, c) 매주 등 다양한 일정으로 데이터 삭제를 예약할 수 있다; 그리고/또는 삭제는 데이터 수집 후 날짜 및 지정된 기간 동안 예약될 수 있다.
웹 기반 애플리케이션은 CSV, XLS 또는 PDF와 같은 특정 형식으로 필터링된 데이터 다운로드를 포함한 데이터 보고서를 제공하도록 구성할 수 있다; 필터링된 데이터 보고서는 웹 API를 통해 사용할 수 있다.
C. 예시적인 애플리케이션 및 워크플로우
애플리케이션에는 단일 SKU 모드가 있을 수 있다. 워크업(walk-up) 갭 스캔/PLV SKU 스캔에 대해 단일 SKU 모드를 구성할 수 있다. 이 모드에서 매장 직원은 선반의 갭으로 걸어가 SKU 코드를 스캔한다. 사용자 인터페이스는 제품의 표시 위치가 카메라의 시야 내에 있도록 조작자를 안내한다. 시스템은 라벨의 고해상도 이미지와 주변 지역의 JPG 이미지를 업로드한다. 사용자는 수동 인터페이스에 다음 데이터를 입력할 수 있는 옵션이 있다: 남은 재고 수, 가장 이른 날짜 코드 및/또는 일반 텍스트 입력(자유 코멘트). 백엔드에서 데이터는 다음과 같이 처리된다: PLV가 수행되고 잘못된 경우 PL 이벤트 목록에 추가됨; 갭 이벤트 목록에 추가됨; 가능한 경우 기타 정보(재고 수준, 날짜 코드)를 기록함; 및/또는 선반 위치의 시각적 정보는 선반 파노라마 이미지에 포함된다.
단일 SKU 모드는 "워크업 데이터 입력" SKU 스캔에 대해 구성할 수 있다. 이 모드에서 매장 직원은 가격 라벨이나 SKU로 걸어가서 코드를 스캔할 수 있다. 사용자 인터페이스는 제품의 디스플레이 위치가 카메라의 시야 내에 있도록 매장 직원을 안내할 수 있다. 시스템은 라벨의 고해상도 이미지와 주변 지역의 JPG 이미지를 업로드한다. 사용자는 수동 인터페이스에서 다음 데이터를 입력할 수 있는 옵션을 갖는다: 재고 없음, 남은 재고 수(재고 없음 및 "재고 부족" 포함), 가장 이른 날짜 코드 및/또는 일반 텍스트 입력(자유 코멘트). 백엔드에서 데이터는 다음과 같이 처리된다: PLV가 수행되고 잘못된 경우 PL 이벤트 목록에 추가됨; 재고가 낮거나 0인 경우 갭 이벤트 목록에 추가됨; 및/또는 사용 가능한 경우 기타 정보(재고 수준, 날짜 코드)를 기록한다.
단일 SKU 모드는 체계적인 선반 스캔과 같은 배치 모드에 대해 구성할 수 있다. 이 모드에서 매장 직원은 왼쪽에서 오른쪽으로, 위에서 아래로 이동하면서 지정된 선반에 있는 모든 제품을 체계적으로 스캔한다. 사용자 인터페이스는 제품의 디스플레이 위치가 카메라의 시야 내에 있도록 상점 직원을 안내하도록 구성될 수 있다. 시스템은 각 스캔에 대해 라벨의 고해상도 이미지와 주변 영역의 JPG 이미지를 업로드한다. 사용자(예를 들어, 상점 직원)는 수동 인터페이스에 다음 데이터를 입력할 옵션을 갖는다: "재고 없음"을 포함한 남은 재고 수, 가장 이른 날짜 코드 및/또는 일반 텍스트 입력(자유 코멘트) . 또한 사용자는 다음을 수행할 수 있는 옵션을 갖는다: 선반/모듈 식별자(왼쪽 위 모서리)를 스캔하거나 입력; 실수를 수정하기 위해 스캔을 지움; 및/또는 임의의 SKU로부터 스캔을 시작하여 동일한 선반/모듈에 대한 데이터 수집을 다시 시작한다(해당 SKU 다음에 오는 데이터는 덮어쓰여 진다). 예를 들어 왼쪽에서 오른쪽으로 스캔이 제공되지만 다른 스캔 패턴(예를 들어, 오른쪽에서 왼쪽, 아래에서 위, 오른쪽 등)을 사용할 수 있다. 일부 실시예에서, 스캐닝 패턴은 디바이스의 배향에 의해 결정된다. 예를 들어 세로 방향으로 들고 있는 전화기는 카메라 시야에 더 많은 SKU가 있도록 아래로 스캔하는 데 사용할 수 있는 반면, 가로 방향으로 들고 있는 전화기는 오른쪽에서 왼쪽으로 스캔하여 시야에 둘 이상의 SKU가 있을 수 있다. 백엔드에서 데이터는 다음과 같이 처리된다: PLV가 수행되고 잘못된 경우 PL 이벤트 목록에 추가된다; 재고가 적거나 품절된 경우 갭 이벤트 목록에 추가됨; 또는 이용가능한 경우 기타 정보(재고 수준, 날짜 코드); 및/또는 선반 위치의 시각적 정보는 시각적 상태/선반 파노라마 이미지를 재구축하는데 사용된다.
D. 예시적인 성능 메트릭(Metrics)
일부 구성에서, 애플리케이션은 다음과 같은 성능 메트릭 및/또는 허용 오차를 갖는다. 속도: 합리적으로 숙련된 작업자는 단일 코드 스캔을 완료하는 데 시간당 500ms 이상을 소비하지 않는다. SKU 매핑: SKU 간의 거리는 측정된 SKU의 99%에 대해 실제 거리의 +/- 10% 이내이다. SKU 매핑 및 시각화: 스티칭 프로세스로부터 명백한 시각적 아티팩트가 없다.
E. 예시적인 이미지 업로드 및 처리
일부 구성에서 고해상도 원시 이미지는 검출된 코드(예를 들어, 바코드, 가격 라벨 등)로 업로드되고 및/또는 JPEG 품질 이미지는 라벨, 재고가 있는 디스플레이 영역 및/또는 인접 라벨을 보여주는 전체 이미지 프레임에 업로드된다. 바코드 뷰 파인더는 재고 위치가 카메라의 시야에 있음을 합리적으로 보장하는 방식으로 배치된다.
온-디바이스 PLV의 경우, 단일 SKU 데이터 캡처 PLV가 디바이스에서 직접 수행될 수 있고 그 결과는 증강 현실(AR) 오버레이로 사용자에게 표시된다. 일부 실시예에서, 결과가 사용자에게 제시되는 데 500ms 이상 걸리지 않는다.
백엔드-PLV 처리의 일부 구성에 대해 10% 이하의 위양성(검출된 실수의 10%)이 있다. 세션/일의 잘못된 가격 라벨은 인간 작업자가 품질 검토를 위해 이미지 데이터와 함께 액세스할 수 있다. 데이터는 운영자가 이미지에서 이미지로 빠르게 확인하고 잘못 디코딩된 라벨에 플래그를 지정/수정할 수 있는 방식으로 온라인 운영자에게 제공될 수 있다. 품질 관리 후 데이터를 PLV 작업 목록에 추가할 수 있다.
SKU 매핑 및 시각화의 일부 구성에 대해, 사용자가 하나의 SKU를 차례로 스캔함에 따라 SKU의 순서를 보존함으로써 맵이 구축되고 있다. 데이터 수집에는 지도를 구축하는 동안 SKU 간의 거리가 포함될 수 있다. 맵에는 선반 사이의 수직 거리가 포함될 수 있다.
수동 상태 입력을 사용하는 일부 구성에서, 사용자는 재고 수준을 카운트하고 사용자 인터페이스를 통해 정보를 입력할 수 있다(예를 들어, 배치 스캔 또는 개별 SKU 스캔 동안). 모바일 디바이스의 인터페이스는 기업 사용자가 구성할 수 있다(예를 들어, 상점 직원이 수행할 데이터 입력 옵션만 표시). 예를 들어, 재고 인터페이스에는 상점이 여러 항목을 입력하기 위해 연결하는 숫자 입력 필드가 있을 수 있다. 품절 인터페이스에는 품절 버튼, 재고 부족 버튼, 보충 버튼 및/또는 특정 보충/재주문(번호 입력 필드)이 포함될 수 있다. 날짜 코드 인터페이스에는 가장 오래된 날짜 코드(날짜 입력 필드), 여러 날짜 코드 및/또는 재고 번호(예를 들어, 숫자 및/또는 날짜 목록)가 포함될 수 있다.
F. 예시적인 포털 애플리케이션(들)
SKU, 작업, 이벤트 및/또는 날짜 코드 보고서의 일부 구성에서 사용자는 다음을 보여주는 특정 SKU에 대한 보고서를 요청할 수 있다: 위반을 일으키지 않은 스캔을 포함하여 특정 시간 범위 내의 모든 스캔 이벤트; 특정 시간 범위 내의 선반 이미지; 및/또는 특정 시간 범위 내의 위반. 사용자는 다음 기준 중 하나 이상으로 필터링된 SKU(들) 및/또는 이벤트(들)에 대한 보고서를 요청할 수 있다: 특정 일정 범위에서 수집된 작업; 특정 데이터 수집 세션에서 수집된 작업; 특정 사용자가 수집한 작업; 특정 제품 범주 내의 작업; 특정 종류의 작업(예를 들어, 날짜 코드, 품절, 가격 라벨 수정); 사용자 입력에 의해 확인된 해결된 위반 사항(예를 들어, 날짜 코드 위반, 품절, 가격 라벨 수정); 및/또는 선반 스캔으로 확인된 해결된 위반 사항(예를 들어, 날짜 코드 위반, 재고 없음, 가격 라벨 수정). 사용자는 다음 기준 중 하나 이상으로 필터링된 날짜 코드(예를 들어, 날짜 코드 보고서)를 갖는 SKU에 대한 보고서를 요청할 수 있다: 특정 달력 범위의 날짜 코드; 특정 제품 범주 내의 날짜 코드; 특정 시간대에 수집된 날짜 코드; 날짜 코드 위반(날짜 코드가 경과됨); 및/또는 해결된 날짜 코드 위반.
일부 선반 시각화 구성에서 백엔드 시스템은 개별 SKU 이미지(배치 모드/SKU 매핑)로부터 선반(선반 파노라마)의 표현을 함께 스티칭할 수 있다. 시각화는 "클릭 가능"할 수 있다. 예를 들어, 사용자는 이미지 또는 SKU의 섹션을 클릭할 수 있으며 메타데이터 팝업에는 이미지가 촬영된 날짜와 시간, 이미지가 촬영된 시간의 사용자 입력 및/또는 상태 정보가 포함된다. 일부 실시예에서, 시각화는 사용자가 특정 선반 위치 또는 SKU를 확대(예를 들어, 뷰 확대)할 수 있는 "확대/축소 가능(zoomable)"이다. 시각화는 검색 가능하며 사용자는 SKU 번호 또는 제품 설명을 입력하고 해당 제품의 위치/이미지로 "비행"할 수 있다. SKU의 새 스캔/이미지를 사용할 수 있게 되면 파노라마의 이전 이미지가 새 스캔/이미지로 대체된다.
일부 구성에서, 대시보드 또는 포털은 요약 통계 및/또는 타임라인을 포함할 수 있으며, 이는 다음을 포함할 수 있다: 스캔 사이의 평균 시간(모든 SKU에 대한 평균); 일/주별 PLV 위반; 일별/주별 품절 이벤트; 일/주별 총 스캔; 및/또는 스캔 사이의 평균 시간(모든 SKU에 대한 평균).
백엔드의 일부 구성에서 데이터베이스는 모바일 디바이스로부터의 데이터(예를 들어, 과거 데이터를 포함하여 위에 나열된 데이터)를 저장할 수 있다; 새로운 구조화된 데이터(예를 들어, 재고 수량)에 대한 미래 증거가 되어야 한다; 그리고/또는 SKU, 선반, 통로 등에 의한 데이터베이스의 쿼리를 허용한다. 일부 실시예에서, 백엔드는 제품 데이터베이스, 예를 들어 공개 데이터베이스, 웹 데이터베이스, 소매업체 데이터베이스, 또는 제조업체 데이터베이스에 액세스하는 데 사용될 수 있다. 메타데이터는 선반 카테고리(예를 들어, 음료, 시리얼 등)부터 시작하여 모든 선반에 추가할 수 있다. 필터링/쿼리는 매개변수(예를 들어, 선반 ID, 상점 ID, 사용자 ID 등)에 의해 허용될 수도 있다. 일부 실시예에서, 백엔드 프로세스는 수집된 이미지로부터 품절 상황을 결정하는 데 사용될 수 있다. 보안 및 인증을 위해 애플리케이션(예를 들어, API 및/또는 데이터베이스)은 다중 테넌트 지원(3-10명의 파일럿 고객)이 가능하며, 여기서 한 고객이 업로드한 데이터는 그 한 고객만 액세스/쿼리할 수 있다. 고유한 구성 ID를 사용하여 업로드를 구분할 수 있다. 또한, 일부 실시예에서, 비즈니스 민감 정보(예를 들어, 가격, 품목 위치 등)는 클라우드 데이터베이스에 저장되지 않는다(예를 들어, 최대 개인 정보 보호 및 데이터 보안을 보장하기 위해).
API 또는 기타 인터페이스의 일부 구성에는 모바일 디바이스 및/또는 클라우드와 데이터를 주고받기 위한 내부 API가 포함된다. 예를 들어 모바일 디바이스로부터 수집된 매장 내 데이터가 클라우드 및/또는 제품 데이터베이스에 업로드될 수 있고 모바일 디바이스에 의해 클라우드로부터 다운로드되어 특정 열(예를 들어, 가격 및 SKU 열)만 선택할 수 있다. 고객이 백엔드 데이터베이스를 쿼리하기 위한 외부 API에는 특정 상점 내 선반 하나의 스캔을 쿼리하는 API 엔드포인트가 포함될 수 있다(예를 들어, 이 엔드포인트는 최신 스캔만 리턴하고 기록 데이터는 리턴하지 않음; /{store}/{shelf}); 제품 데이터베이스를 업데이트하기 위한 API 엔드포인트; 백엔드 데이터베이스가 매장 내 데이터를 CSV(쉼표로 구분된 값) 형식으로 내보낼 가능성; 보안 API; 고객이 CSV 형식을 내보낼 수 있도록 허용함; 그리고/또는 이력 데이터(예를 들어, 시간 범위)에 의한 쿼리를 허용한다.
본 명세서에 개시된 시스템 및/또는 방법을 사용하여, 다음이 달성될 수 있다: 시각적 카탈로그의 설정 및/또는 유지; SKU 특정 및 SKU 독립적인 품절 검출; 가격 라벨 검증(PLV); 동시 매핑 및 PLV; 및/또는 OCR, 및/또는 웹 브라우저의 바코드 디코딩. 선반에 있는 모바일 카메라, 드론, 로봇, 고정 선반 카메라, 모바일 바코드 스캔을 통한 동시 이미지 캡처 등 다양한 방법으로 이미지를 캡처할 수 있다.
개시된 일부 실시예는 소매 시설로부터 가격 정보를 집계하는 정보 시스템을 운영하기 위한 방법 및/또는 시스템에 관한 것이다. 더 구체적으로, 그리고 제한 없이, 일부 실시예는 이미징 도구를 사용하여 객체의 이미징 데이터를 획득하고, 이미징 도구를 사용하여 사이니지(signage)로부터 가격 정보를 획득하고, 이미징 도구를 사용하여 제품의 재고 정보를 획득하고, 이미징 도구를 사용하여 영수증으로부터 정보를 획득하고, 예측 알고리즘을 사용하여 가격 정보 재구축하고, 공개적으로 사용 가능한 소스에서 사용 가능한 가격 정보를 통합하고, 제품 구매처에 대한 권장 사항 발행으로부터 가격 정보를 통합하고, 하나 이상의 제3자에게 정보를 제공하고, 사용 가능한 대안에 기초해서 구매할 제품에 대한 권장 사항을 발행하고, 소매점을 운영하고, 경쟁력 있는 가격에 대한 정보에 기초해서 가격을 조정하는 것과 관련된다. 시스템 또는 방법에는 다음이 포함될 수 있다: 소매 디스플레이 또는 선반에서 가격 라벨을 이미지화하기 위해 제품을 스캔; 드론을 사용하여 선반에 있는 제품을 스캔; 로봇을 사용하여 선반에서 제품을 스캔; 디스플레이에서 제품 및/또는 가격을 스캔하기 위해 소비자 디바이스를 사용; 구매한 제품의 가격을 기록하기 위해 쇼핑 영수증을 스캔 및/또는 파싱; 구매한 제품의 가격을 기록하기 위해 디지털 영수증을 파싱; 및/또는 가격 및 특별 제안을 추론하기 위해 사이니지를 스캔하고 해석.
일부 실시예에서, 소매 디스플레이의 상태를 검출하는 시스템은: 웹 브라우저 소프트웨어로 작동되는 모바일 데이터 수집기; 카메라 모듈; 디스플레이 상의 객체와 함께 배치된 광학 코드를 갖는 라벨; 및/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 적어도 하나의 객체의 아이덴티티를 수신하고, 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 적어도 하나의 객체의 디스플레이 상의 가격을 수신하고, 데이터베이스로부터 적어도 하나의 객체의 의도된 가격 및/또는 디스플레이 상의 가격을 의도된 가격과 비교하고 결과를 보고하는 하나 이상의 프로세서를 포함한다. 시스템은: 웹 브라우저 소프트웨어로 활성화된 모바일 데이터 수집기; 카메라 모듈; 디스플레이 상의 객체와 함께 배치된 광학 코드를 갖는 라벨; 및/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 적어도 하나의 객체의 아이덴티티를 수신하고, 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 상의 객체에 대한 정보를 디코딩하고, 그리고/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 상의 적어도 하나의 객체의 맵을 계산하는 하나 이상의 프로세서를 포함할 수 있다. 시스템은: 모바일 데이터 수집기; 카메라 모듈; 디스플레이 상의 객체와 함께 배치된 광학 코드를 갖는 라벨; 및/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 적어도 하나의 객체의 아이덴티티를 수신하고, 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 영역에 대한 이미지 데이터를 수신하고, 그리고/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 영역에 있는 적어도 하나의 객체의 존재를 검출하는 하나 이상의 프로세서를 포함할 수 있다. 시스템은: 모바일 데이터 수집기; 카메라 모듈; 디스플레이 상의 객체와 함께 배치된 광학 코드를 갖는 라벨; 및/또는 카메라 모듈에 의해 캡처된 하나 이상의 이미지에서 적어도 하나의 객체의 아이덴티티를 수신하고, 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 영역의 이미지 데이터를 수신하고, 카메라 모듈에 의해 캡처된 하나 이상의 이미지로부터 디스플레이 영역의 적어도 하나의 객체의 존재를 검출하고, 그리고/또는 하나 이상의 객체의 아이덴티티와 함께 하나 이상의 객체의 이미지 데이터를 데이터베이스에 저장하는 하나 이상의 프로세서를 포함할 수 있다.
초고속 스캐닝
광학 코드의 초고속 스캐닝을 위해 모바일 디바이스(예를 들어, 스마트폰; 태블릿)가 사용될 수 있다. 일부 구성에서 모바일 디바이스는 광각 렌즈(예를 들어, AF 지연 없이 고정 초점으로 더 나은 피사계 심도 및 근접 촬영), 높은 초당 프레임(예를 들어, 속도 및/또는 중복성), 짧은 노출 시간(예를 들어, 모션 블러 방지용), 및 토치(예를 들어, 추가 조명 및/또는 조준용)을 사용한다.
도 13은 광학 패턴(1304)을 빠르게 스캐닝하는 모바일 디바이스(1300)의 실시예이다. 광학 패턴(1304)은 도 1의 코드(104)일 수 있다. 일부 실시예에서, 초고속 스캐닝 또는 빠른 스캐닝은 0.25초 미만 및/또는 0.002초 이상 내에 이미지를 획득하고, 광학 코드를 검출하고, 광학 코드를 디코딩하는 것을 의미한다.
모바일 디바이스(1300)는 카메라, 디스플레이, 및 하나 이상의 프로세서를 포함한다. 카메라는 이미지 센서와 렌즈를 포함한다. 렌즈는 이미지 센서에 빛을 집중시키도록 구성된다. 하나 이상의 프로세서는 복수의 이미지를 획득하고, 복수의 이미지를 분석하여 복수의 이미지에서 광학 패턴을 검출하고; 데이터 페이로드를 획득하기 위해 광학 패턴을 디코딩하고; 그리고 모바일 디바이스의 메모리 디바이스에 데이터 페이로드를 저장하도록 구성된다.
일반 렌즈는 초점 거리가 이미지 센서의 대각선 측정값과 거의 같은 렌즈이다. 일반 렌즈의 화각은 약 58°(예를 들어, 대각선으로 측정)로 사람의 눈 화각과 유사한다. 광각 렌즈는 일반 렌즈보다 화각이 더 큽니다. 모바일 디바이스(1300)의 카메라 렌즈는 광각 렌즈이다. 일부 실시예에서, 렌즈는 초광각 렌즈(예를 들어, 100, 120, 또는 125도 이상 및/또는 128, 130, 150, 또는 180도 이하의 화각을 가짐)이다. 예를 들어 렌즈의 화각은 128도이다. 카메라의 피사계 심도가 클수록 모바일 디바이스(1300)로부터 광학 패턴(1304)까지의 거리는 설정된 초점에 따라 더 커질 수 있다. 일부 구성에서는 초점 거리가 13mm(화각 120도), 조리개가 2.4개, 센서 크기가 1/3.6인치인 카메라가 사용된다.
카메라의 렌즈는 복수의 이미지를 획득하는 동안 고정된 초점으로 설정된다. 고정된 초점으로 설정된 렌즈는 단일 초점 렌즈이거나 자동 초점 기능이 비활성화된 가변 초점 렌즈일 수 있다(예를 들어, 초점이 0과 1 사이의 미리 결정된 특정 값으로 설정됨). 단일 초점 렌즈는 가변 초점을 갖지 않는다. 카메라의 렌즈는 광학 패턴 디코딩을 위한 애플리케이션이 초점 알고리즘이 실행될 때까지 기다리지 않도록 이미지 획득 중에 고정 초점으로 설정된다. 자동 초점으로 인해 스캔이 지연될 수 있다. 그러나 일부 고정 초점 설정은 피사계 심도가 얕다. 광각 렌즈를 사용하거나 더 넓은 줌 설정을 사용하면 피사계 심도가 증가할 수 있다.
복수의 이미지 각각에 대한 노출 시간은 1/500초 이하이다. 모션 블러를 줄이기 위해 노출 시간이 짧다. ISO(카메라 센서의 감도; 필름 속도 또는 게인(gain)이라고도 함)는 수동으로 설정(예를 들어, 자동 노출 끄기)하거나 카메라에서 제어(예를 들어, 조정)할 수 있다. 특정 카메라 모델의 경우, 본 발명자들은 1/750초의 노출이 모바일 디바이스의 빛(예를 들어, "토치" 또는 "손전등")을 사용하는 동안 다양한 조건에서 광학 패턴(1304)의 양호한 노출에 특히 유리하다는 것을 발견했다. . 자동 측광은 종종 18% 회색 표준을 사용한다. 광학 패턴(1304)을 검출하고 디코딩하기 위해, 측광은 1, 2, 3, 또는 그 이상 정지될 수 있다. 카메라는 사용 가능한 빛의 양에 따라 ISO를 자동으로 조정할 수 있다. 일부 실시예에서, 노출은 1/500 이상 및/또는 카메라의 최대 셔터 속도(예를 들어, 1/2000 또는 1/8000)와 같거나 그보다 느리다. 일부 휴대폰 모델은 이미지의 노이즈 노출을 좋아하지 않고 게인 조정을 제한하기 때문에 노출을 선택하는 것이 중요할 수 있다. 노출(예를 들어, 1/750초)을 선택적으로 선택하고/하거나 토치를 사용하여 다양한 작업 조건에서 복수의 이미지를 적절하게 노출할 수 있다. 일부 실시예에서, 토치는 카메라의 노출 측정에 관계없이 복수의 이미지를 획득하는 동안 활성화된다.
복수의 이미지는 카메라의 프레임 레이트로 획득된다. 프레임 레이트가 30fps(초당 프레임)보다 크다. 일부 실시예에서, 프레임 레이트는 30, 60, 90fps 이상 및/또는 120, 150, 180, 또는 240fps 이하이다. 예를 들어 프레임 레이트는 120fps로 설정된다. 높은 프레임 레이트에서 광학 코드의 많은 이미지가 획득된다. 한 프레임에서 광학 코드를 판독할 수 없는 경우(예를 들어, 광학 패턴(1304)의 플라스틱 덮개에 있는 토치로 인한 눈부심 때문에), 광학 코드를 디코딩하는데 사용될 수 있는 광학 코드가 있는 다른 프레임이 존재한다(즉, 광학 패턴(1304)을 포함하는 더 많은 이미지 프레임을 갖는 것은 중복성을 제공한다).
높은 프레임 레이트로 복수의 이미지를 획득하고 복수의 이미지를 처리하는 것은 계산적으로 집약적일 수 있다. 계산 강도를 줄이기 위해 전체 이미지 대신 각 이미지의 제한된 영역을 스캔(예를 들어, 처리)한다. 제한 구역은 사용 사례에 기초하여 사용될 수 있다. 예를 들어, 제한된 영역은 카메라 프레임의 중앙에 있고 높이는 카메라 이미지 프레임 높이의 1/3과 같고 폭은 카메라 이미지 프레임의 폭과 같다. 일부 실시예에서, 제한된 영역은 프레임의 중앙에 있고 60%, 50%, 40% 또는 33% 이하의 높이를 갖고; 이미지 프레임의 높이가 25% 또는 33% 이상이고, 그리고/또는 이미지 프레임의 폭의 50%, 66%, 75% 또는 100% 이상인 폭을 갖는다. 이미지 중앙의 제한된 영역으로 스캔을 제한하는 것은 초광각 렌즈로 획득한 이미지에 유리할 수 있는데, 광각 렌즈로 획득한 이미지의 가장자리에서 왜곡이 더 커지기 때문이다. 일부 실시예에서, 매트릭스 스캔은 각 프레임의 코드를 디코딩하려고 시도하는 대신 코드를 추적하는 데 사용된다. 추적 광학 코드는 계산을 줄이는 데 사용할 수 있다(예를 들어, 각 프레임에서 광학 코드를 디코딩하려고 하는 대신 코드를 추적).
일부 실시예에서, 모바일 디바이스(1300)는 토치를 포함한다. 토치는 때때로 손전등으로 불립니다. 토치는 빛(1320)을 방출하도록 구성된다. 토치는 발광 다이오드를 포함할 수 있다. 토치 렌즈는 발광 다이오드에서 방출되는 빛의 빔을 지시, 확산 및/또는 형성하는 데 사용할 수 있다.
빠른 스캐닝은 많은 광학 패턴(1304)을 병렬로(예를 들어, 하나의 이미지 프레임에서 2개 이상의 광학 패턴(1304)) 및/또는 순차적으로(예를 들어, 사용자가 식료품 층에서 선반을 따라 모바일 디바이스(1300)를 이동시킴(예를 들어, 도 13에 도시된 대로)) 검출 및 디코딩하는 데 사용될 수 있다.. 도 13에는 제1 광학 패턴(1304-1) 및 제2 광학 패턴(1304-2)이 도시되어 있다. 사용자가 선반을 따라 모바일 디바이스(1300)를 이동함에 따라, 모바일 디바이스(1300)의 카메라는 복수의 이미지를 획득한다. 복수의 이미지는 제1 광학 패턴(1304-1)을 검출 및 디코딩하여 제1 데이터 페이로드를 획득하고 제2 광학 패턴(1304-2)을 검출 및 디코딩하여 제2 데이터 페이로드를 획득하도록 분석된다. 제1 데이터 페이로드 및 제2 데이터 페이로드는 모바일 디바이스(1300)의 메모리에 저장되고/되거나 원격 하드웨어 서버에 (예를 들어, 무선으로 및/또는 인터넷을 통해) 전송된다.
많은 이미지를 획득하고, 많은 이미지를 처리하고, 토치를 사용하면 배터리가 소모될 수 있고 계산량이 많을 수 있다. 따라서, 일부 실시예에서, 토치가 활성화되고/되거나 사용자 동작의 표시를 수신하는 동안 복수의 이미지가 처리된다. 예를 들어, 사용자가 손가락으로 모바일 디바이스의 디스플레이를 터치하는 동안(예를 들어, 디스플레이는 터치 스크린임), 애플리케이션은 빠른 스캔 모드로 진입한다. 빠른 스캔 모드에서, 토치가 켜지고 카메라가 이미지 획득을 시작하고 카메라의 프레임 레이트가 증가하고(예를 들어, 120fps), 셔터 속도가 빨라진다(예를 들어, 1/750초). 사용자가 디스플레이에서 손가락을 떼면 애플리케이션이 빠른 스캔 모드를 종료한다. 빠른 스캔 모드를 종료한 후, 토치가 꺼지고, 프레임 레이트가 감소하고/하거나 카메라가 꺼지고/거나 셔터 속도가 정상으로 돌아간다(예를 들어, 카메라가 자동 노출로 돌아가고 셔터 속도가 자동으로 제어된다). 복수의 이미지를 획득하는 동안 토치 값은 일정하다(예를 들어, 카메라가 어두운 환경에서 사진을 찍을 때처럼 토치가 깜박거렸다가 켜지지 않음). 애플리케이션이 빠른 스캔 모드에 있는 시간을 줄임으로써 배터리 사용량 및/또는 계산 리소스가 줄어든다.
애플리케이션이 빠른 스캔 모드에 들어가거나 나갈 수 있는 추가 및/또는 다른 방법이 있다. 예를 들어, 디스플레이의 첫 번째 더블 탭은 애플리케이션을 트리거하여 빠른 스캔 모드로 들어가고, 한 번의 탭은 광학 코드를 선택하는데 사용되고/되거나, 두 번째 더블 탭은 빠른 스캔 모드를 종료하는데 사용된다. 하드웨어 버튼을 사용하여 빠른 스캔 모드로 들어갈 수 있다. 예를 들어, 하드웨어 버튼은 모바일 디바이스(예를 들어, 볼륨 버튼, 전화기 뒷면의 숨겨진 버튼, 홈 버튼 등)에 있을 수 있고/있거나 모바일 디바이스의 케이스에 통합될 수 있다. 일부 실시예에서, 소프트웨어 버튼이 사용된다. 예를 들어, "SCAN"이라는 단어가 있는 직사각형 아이콘이 모바일 디바이스의 화면에 표시된다. 직사각형 아이콘이 표시된 위치에서 사용자가 화면을 터치하는 한 애플리케이션은 빠른 스캔 모드로 들어간다. 일부 실시예에서, 관성 측정 유닛(IMU)으로부터의 데이터는 빠른 스캐닝 모드에 진입 및/또는 종료하는 데 사용된다. 예를 들어, 흔들기 또는 손가락 탭에 대응하는 IMU의 센서 데이터는 애플리케이션에서 빠른 스캔 모드로 들어가거나 나가기 위한 지시로 사용할 수 있다.
도 14는 제1 유형의 바코드를 스캐닝하기 위한 카메라 초점 설정의 함수로서 스캐닝 범위를 나타내는 차트(1400)를 도시한다. 제1 유형의 바코드는 EAN13 바코드이다(예를 들어, 가장 얇은 요소가 6mil 또는 6/1000인치임). 차트 1400은 다양한 초점 값에 대한 가변 초점 렌즈("메인 렌즈")와 비교한 초광각 카메라의 스캔 범위(밀리미터)를 보여준다. 예를 들어, 모바일 디바이스는 2개 이상의 외부를 향한 카메라(예를 들어, 모바일 디바이스의 스크린에 수직인 방향과 일치하지 않는 또는 그로부터 180도인 방향으로 향하는 카메라)를 포함한다.
초광각 카메라의 화각은 128도이다. 초광각 카메라의 스캔 범위는 27~355mm이다. 주 렌즈의 초점 값은 0과 1 사이(10분의 1씩)이며, 여기서 0(또는 0%)은 가장 가까운 평면이고 초점 1(또는 100%)은 가장 먼 초점 평면이다. 초광각 카메라는 가변 초점 렌즈보다 스캔 범위가 더 넓은 반면 가변 초점 렌즈의 초점 값은 0에서 0.5 사이이다. 0.6과 0.7의 초점 값에서 가변 초점 렌즈는 각각 65~520mm와 105~720mm의 초광각 카메라보다 더 넓은 스캔 범위를 갖는다. 그러나, 모바일 디바이스는 초광각 렌즈보다 스캔할 광학 코드에서 더 멀리 떨어져 있다(예를 들어, 초광각 렌즈의 경우 27mm에 불과한데 비해, 초점 값 0.6 및 0.7에서 가변 초점 카메라의 경우 65 및 105mm). 제1 유형의 바코드에서는 차이가 별로 없어 보일 수 있지만, 도 15에서 볼 수 있는 것처럼 다양한 유형의 바코드를 스캔하는 경우 차이가 더 확연할 수 있다.
도 15는 제2 유형의 바코드를 스캔하기 위한 카메라 초점 설정의 함수로서 스캔 범위를 보여주는 차트(1500)를 도시한다. 제2 유형의 바코드는 코드 128 바코드이다(예를 들어, 가장 얇은 요소 폭 0.4mm). 차트 1500은 다양한 초점 값에 대한 가변 초점 렌즈("메인 렌즈")와 비교한 초광각 카메라의 스캔 범위를 보여준다.
초광각 카메라의 스캔 범위는 66~380mm이다. 스캔 범위는 초점 값이 0.6인 주 렌즈의 경우 184~417mm이고 초점 값이 0.7인 주 렌즈의 경우 242~562mm이다. 따라서 초광각 카메라로 스캔하면 모바일 디바이스가 메인 렌즈보다 광학 코드에 훨씬 더 가깝고 여전히 넓은 스캔 범위를 제공할 수 있다. 일부 실시예에서, 외부 렌즈(예를 들어, 모바일 디바이스의 외부)는 추가적인 광각 렌즈(예를 들어, 100도, 120도 또는 125도 이상의 화각을 갖는 렌즈)를 제공하는 데 사용된다. 일부 실시예에서, 카메라는 광학 코드를 디코딩하기 위해 광학 코드로부터 0.025, 0.05, 0.06, 또는 0.1미터 이상 떨어져서 및/또는 광학 코드로부터 0.5, 0.4, 0.3, 0.2미터 이하로 떨어지도록 구성된다.
도 16은 디지털 카메라를 사용하여 광학 패턴을 디코딩하기 위한 프로세스(1600)의 실시예의 흐름도를 도시한다. 프로세스 1600은 단계 1604에서 복수의 이미지를 획득하는 것으로 시작한다. 복수의 이미지는 초점이 고정된 카메라, 광각 렌즈, 빠른 노출, 높은 프레임 레이트 및/또는 활성화된 토치를 사용하여 획득된다. 카메라의 렌즈는 복수의 이미지를 획득하는 동안 고정된 초점으로 설정된다. 예를 들어, 렌즈는 단일 초점 렌즈이거나 고정 값으로 설정된 가변 초점 렌즈이다. 렌즈는 광각 렌즈(예를 들어, 60도 또는 75도 이상의 화각을 가짐) 또는 초광각 렌즈(예를 들어, 90, 100, 또는 120도 이상의 화각을 가짐)이다. 노출이 빠르다. 예를 들어, 복수의 이미지 각각에 대한 노출 시간은 1/500, 1/750 또는 1/1500초 이하이다. 카메라는 복수의 이미지를 획득하는 동안 높은 프레임 레이트를 갖는다. 예를 들어, 프레임 레이트는 초당 30, 60, 90 또는 120프레임 이상이다.
단계 1608에서, 복수의 이미지는 복수의 이미지에서 광학 패턴을 검출하기 위해 분석된다. 예를 들어, 복수의 이미지는 하나, 둘, 세 개 또는 그 이상의 광학 패턴에 대해 분석된다. 광학 패턴은 1차원 컴퓨터 판독가능 광학 코드(예를 들어, 바코드), 2차원 컴퓨터 판독가능 광학 코드(예를 들어, QR 코드) 및/또는 하나 이상의 부호(예를 들어, 문자, 숫자, 특수 문자 및/또는 고유 부호)일 수 있다.
단계 1612에서, 하나 이상의 광학 패턴은 데이터 페이로드 또는 데이터 페이로드들을 획득하기 위해 디코딩된다. 데이터 페이로드는 광학 패턴을 스캐닝하여 획득한 데이터이다. 데이터 페이로드는 하나 이상의 문자, 숫자, 특수 문자 또는 기타 데이터를 포함할 수 있다. 예를 들어, 3개의 바코드를 디코딩하여 각 바코드에 대해 하나씩 3개의 숫자 문자열을 얻는다. 3개의 바코드는 하나의 이미지 프레임에 있을 수 있고/있거나 각 바코드는 별도의 이미지 프레임에 있을 수 있다. 그 후 데이터 페이로드는 메모리에 저장된다(단계 1616). 데이터 페이로드는 원격 서버로 전송될 수도 있다.
일부 실시예에서, 모바일 디바이스의 토치(예를 들어, 손전등)는 복수의 이미지를 획득하는 동안 활성화된다. 예를 들어, 노출 판독값이 토치를 켜지 않고 이미지를 적절하게 노출하기에 충분한 빛이 있음을 나타내는지 여부에 관계없이 카메라에 의해 이미지를 획득할 때 토치가 켜진다. 토치는 조준기로 사용할 수 있다. 예를 들어, 토치는 광선을 비춘다. 모바일 디바이스가 광학 코드를 포함하는 객체에 가까워지면 사용자는 광학 코드 위로 광선을 이동할 수 있다. 광학 코드의 이미지를 얻을 수 있고 광학 코드가 디코딩된다. 토치의 빛이 눈부심을 유발할 수 있기 때문에(예를 들어, 광학 코드를 덮고 있는 플라스틱에서) 초당 높은 프레임이 사용된다. 따라서 프레임의 높은 흐름은 토치의 빛이 광학 코드를 디코딩하는데 사용될 수 있는 광학 코드에 직접 비추기 전이나 후에 프레임을 획득할 확률을 높인다.
일부 실시예에서, 초고속 스캐닝을 수행하는 동안 광학 코드가 (예를 들어, 매트릭스 스캔을 사용하여) 추적된다. 광학 코드를 추적하여 디코딩 속도를 높이고/높이거나 디코딩을 보다 정확하게 할 수 있다. 이것은 유사하거나 동일한 정보를 가진 광학 코드를 스캔하는 데 유용할 수 있다. 예를 들어, 일부 바코드 판독기는 이중 필터 또는 수동 입력을 사용하여 바코드가 한 번 넘게(예를 들어, 두 번 이상) 디코딩될 가능성을 줄인다. 이중 필터는 타이머를 사용하여 광학 코드가 두 번 이상 읽히지 않도록 할 수 있다. 예를 들어, 이중 필터의 타이머는 애플리케이션에 따라 0.5초 이상 5초 이하(예를 들어, 1, 2.1, 3.5초)로 설정할 수 있다. 일례에서, 광학 코드가 디코딩될 때, 모바일 디바이스는 비프음을 생성하고 스크린은 광학 코드가 디코딩되었음을 사용자에게 나타내기 위해 일시적으로 녹색으로 변한다. 그런 다음 이중 필터는 광학 코드를 디코딩한 후 타이머(예를 들어, 1초 동안)를 설정하고, 그 동안 모바일 디바이스는 동일한 광학 코드를 다시 디코딩하지 않는다(일부 실시예에서 광학 스캐너는 이중 필터의 시간 중에 다른 광학 코드를 검출 및/또는 디코딩한다). 이중 필터를 사용하면 모바일 디바이스가 동일한 광학 코드를 여러 번 디코딩하는 것을 방지할 수 있다.
이중 필터는 광학 코드가 여러 번 디코딩되는 것을 방지하는 데 도움이 될 수 있지만 이중 필터에는 몇 가지 단점이 있다. 첫째, 이중 필터는 타이머가 허용하는 것보다 빠르게 동일한 광학 코드를 디코딩할 수 없습니다. 둘째, 이중 필터의 타이머는 하나 이상의 애플리케이션 및/또는 사용자에 대해 설정(예를 들어, 조정)하기 어려울 수 있다(예를 들어, 타이머에 대해 설정된 시간이 한 애플리케이션에 잘 작동하거나 사용자가 다른 애플리케이션 및/또는 사용자에는 잘 작동하지 않을 수 있음). 셋째, 하나의 이미지에 여러 바코드가 있을 수 있다; 여러 바코드는 동일한 정보를 가질 수 있다. 예를 들어, 상자 더미에 대한 재고 조사를 수행하는 동안, 각 상자에는 신발 한 켤레가 들어 있고 신발 한 켤레는 서로 동일하며 각 신발 상자에는 동일한 바코드가 부착되어 있을 수 있다. 그런 다음 이중 필터에 대해 1초 타이머를 사용하면 재고 조사를 위한 바코드 스캔 속도가 느려질 뿐만 아니라 바코드를 잘못 카운트할 수 있다(예를 들어, 사용자가 너무 빨리 이동하여 카운트가 부족하거나 사용자가 충분히 빠르게 움직이지 않아 초과 카운트). 일부 광학 스캐너는 광학 스캐너가 중복 바코드를 무시하기 때문에 광학 스캐너가 바코드 수를 올바르게 카운트하지 않기 때문에 각 바코드가 고유하고 사용될 수 없다는 가정을 기반으로 바코드를 추적한다.
일부 바코드 스캐너는 동일한 이미지에 동일한 바코드인 여러 바코드가 있는 경우 수동 입력(예를 들어, 소프트웨어 또는 하드웨어 버튼, 탭 등)을 사용하여 바코드를 디코딩한다. 그러나 바코드를 디코딩하기 전에 수동 입력 수신을 기다리는 것도 디코딩 속도를 늦출 수 있다. 또한 수동 입력을 사용하는 것은 사용자에게 지루할 수 있다. 어떤 경우에는 사용자가 수백 번 버튼을 눌러야 하는 스캔할 수백 개의 광학 코드가 있을 수 있다(예를 들어, 많은 아이템의 재고 조사 중에).
일부 구성에서 광학 코드 추적(예를 들어, 매트릭스 스캔)이 이중 필터(예를 들어, 광학 코드들을 디코딩하는 사이에 타이머는 사용되지 않음; 동일한 코드들을 디코딩하는 사이에 타이머는 사용되지 않음), 수동 입력 및/ 또는 고유한 바코드를 추적하는 대신 사용된다. 광학 코드가 디코딩된 후, 광학 코드는 모바일 디바이스의 시야 내에 있는 동안 애플리케이션은 광학 코드를 다시 디코딩하지 않고 광학 코드를 추적한다. 특정 구성에서 애플리케이션은 신(scene)을 매핑하지 않고 광학 코드를 추적한다. 예를 들어, 광학 코드가 더 이상 카메라의 시야 내에 있지 않도록 모바일 디바이스의 카메라를 이동한 다음 광학 코드가 카메라의 시야 내에 있도록 카메라를 뒤로 이동하면, 애플리케이션은 광학 코드를 다시 디코딩한다.
추적을 사용함으로써, 이중 필터가 사용되지 않고, 프로세스가 자동일 수 있고(예를 들어, 수동 입력 없이), 및/또는 애플리케이션이 이미지 또는 시야에서 다수의 동일한 코드를 디코딩하는 데 사용될 수 있다. 일부 구성에서, 코드의 추적 및/또는 이중 필터를 사용하지 않는 것은 초고속 스캐닝의 일부 또는 전체 기능 없이 수행된다.
외부 렌즈를 이용한 모바일 디바이스 부착
도 17은 모바일 디바이스(1704)에 대한 부착물(1702)의 실시예이다. 부착물(1702)은 외부 부착물이다(예를 들어, 부착물(1702)은 모바일 디바이스(1704)에 제거 가능하게 결합되도록 구성된다). 모바일 디바이스(1704)는 카메라를 포함한다. 카메라는 제1 렌즈(1708)를 포함한다. 모바일 디바이스(1704)는 토치(1712)를 포함한다.
부착물(1702)은 제2 렌즈(1716) 및 제3 렌즈(1720)를 포함한다. 제2 렌즈(1716)는 모바일 디바이스(1704)의 카메라의 화각을 증가시키도록 구성되는 한편, 부착물(1702)은 모바일 디바이스(1704)와 결합된다. 예를 들어, 제1 렌즈(1708)는 60도의 화각을 가질 수 있고, 제2 렌즈(1716)는 카메라의 화각을 90, 100, 또는 120도로 증가시킬 수 있다.
제3 렌즈(1720)는 토치(1712)의 빛을 집중시키도록 구성되는 한편, 부착물(1702)은 모바일 디바이스(1704)와 결합된다. 제3 렌즈(1720)는 토치로부터 수직인 방향으로 토치(1712)의 광을 집중시키도록 구성된다(예를 들어, 제3 렌즈(1720)는 토치로부터의 광 빔의 방향을 다른 각도로 재지향시키지 않는다). 토치(1712)의 법선 방향은 모바일 디바이스(1704)의 후면(1724)의 법선 벡터에 평행하다. 일부 실시예에서, 부착물(1702)은 제3 렌즈(1720)를 포함하고 제2 렌즈를 포함하지 않는다. 일부 구성에서, 제3 렌즈(1720)는 프레넬(Fresnel) 렌즈 및/또는 플라스틱으로 만들어진다.
토치(1712)는 광학 코드를 스캔하기 위한 조준기로 사용될 수 있다. 예를 들어, 토치(1712)의 빛은 모바일 디바이스(1704)의 카메라가 가리키는 위치를 나타낸다. 토치(1712)로부터의 광을 포커싱함으로써(예를 들어, 제3 렌즈(1720)를 사용하여), 토치(1712)로부터의 광은 더 촘촘한 스폿으로 집중된다.
일부 실시예에서, 제3 렌즈(1720)는 토치(1712)의 광을 장방형 형상(예를 들어, 직사각형 형상 또는 타원 형상, 여기서 타원 형상은 비원형임)으로 초점을 맞추도록 구성된다. 모바일 디바이스(1704)는 일반적으로 광학 코드를 스캔하는 동안 세로 방향으로 사용자에 의해 유지되어, 모바일 디바이스(1704)의 긴 측면이 도 17에서 수직 방향(1728)으로 도시된 바와 같이 실질적으로 수직이고; 모바일 디바이스의 짧은 측면은 도 17에서 수평 방향(1732)으로 도시된 바와 같이 실질적으로 수평이다. 후면(1724)의 법선 방향은 모바일 디바이스의 수직 방향(1728) 및 수평 방향(1732) 모두에 직교한다. 타원 형상은 타원의 장축이 수평 방향(1732)에 대해(예를 들어, 모바일 디바이스(1704)의 짧은 변의 방향으로) 실질적으로 평행하도록(예를 들어, 플러스 또는 마이너스 1, 2, 또는 5도) 그리고 단축이 수직 방향(1728)에 대해(예를 들어, 모바일 디바이스(1704)의 긴 변의 방향으로) 실질적으로 평행하도록(예를 들어, 플러스 또는 마이너스 1, 2, 또는 5도) 구성된다. 토치(1712)의 빛은 타원 또는 직사각형(예를 들어, 직사각형의 긴 변이 수평 방향(1732)에 실질적으로 평행하고 직사각형의 짧은 변이 수직 방향(1728)에 실질적으로 평행함)으로 형상화되도록 구성되는데, 광학 코드는 일반적으로 수평으로 장방형이며 사용자는 바코드를 스캔하는 동안 모바일 디바이스(1704)를 세로 방향으로 유지할 수 있기 때문이다. 직사각형 모양으로 빛을 방출하는 토치(1712)는 사용자가 토치를 광학 코드를 스캔하기 위한 포인터로 사용하는 것을 보다 직관적으로 만들 수 있다. 일부 실시예에서, 타원의 장축은 수직 방향(1728)과 정렬된다. 모바일 디바이스(1704)는 옆으로 또는 다른 배향으로 유지될 수 있다. 예를 들어, 모바일 디바이스(1704)를 한 손에 잡고 코드를 지면까지 아래로 스캔하면 코드가 화면의 긴 축을 따라 배향되도록 손을 옆으로 돌릴 수 있다. 스크린을 사용하는 대신 토치를 조준기로 사용하면 손의 일부가 스크린을 차단하는 방식으로 모바일 디바이스를 잡을 수 있다. 이것은 많은 아이템(예를 들어, 스택)을 스캔하는 배송 기사 및 운송/물류 담당자에게 특히 유용할 수 있다. 이것은 수직 위치에서 모바일 디바이스(1704)로 스캔하기 위해 어색한 조작에서 그들을 구할 수 있다(예를 들어, 스크린을 보는 대신 토치에서 나오는 빛의 배향을 볼 수 있기 때문에).
광학 코드를 포함하는 표면 상의 토치(1712)로부터의 빔의 폭은 또한 모바일 디바이스(1704)가 광학 코드를 포함하는 표면에 얼마나 가깝게 유지되어야 하는지를 사용자에게 나타낼 수 있다. 예를 들어, 빔이 광학 코드로 표면에 큰 타원형을 만드는 경우 사용자는 모바일 디바이스(1704)를 표면에 더 가깝게 이동한다; 빔이 표면에 작은 타원형을 만드는 경우, 사용자는 모바일 디바이스(1704)를 표면에서 더 멀리 이동시켜 표면에 있는 빛의 타원형이 광학 코드만큼 크다. 특정 구성에서, 코드가 카메라의 스캔 범위 내에 있는 동안, 빔은 광학 코드 폭의 절반 이상 및/또는 광학 코드 폭의 2 또는 3배 이하의 폭(예를 들어, 수평으로 측정됨)에 집속되도록 구성된다.
일부 구성에서, 부착물(1702)은 모바일 디바이스(1704)를 위한 케이스이다. 케이스는 제2 렌즈(1716) 및/또는 제3 렌즈(1720)를 포함할 수 있고; 케이스는 (예를 들어, 보호를 위해) 모바일 디바이스(1704)의 둘 이상의 측면의 적어도 일부를 덮을 수 있다. 예를 들어, 케이스는 후면(1724)의 80% 이상을 덮을 수 있을 뿐만 아니라 모바일 디바이스(1704)의 장변(들) 및/또는 단변(들)의 부분들을 덮을 수 있다.
일부 실시예에서, 부착물(1702)(예를 들어, 케이스로서)은 자석을 포함한다. 자석(예를 들어, 케이스에서)은 모바일 디바이스(1704)를 물체(예를 들어, 금속 캐비닛) 및/또는 사용자의 웨어러블 디바이스(예를 들어, 벨트, 암밴드(armband), 가슴 팩, 레그밴드, 백팩, 패니팩 등)에 고정하는데 사용될 수 있다. 자석을 가짐으로써, 모바일 디바이스(1704)는 사용자가 다른 작업을 위해 두 손을 사용할 수 있도록 배치될 수 있다. 예를 들어, 소포 배달원은 팔뚝에 완장을 차고 있다. 모바일 디바이스(1704)는 암밴드에 고정(예를 들어, 자기적으로 부착됨)된다. 여성은 배달을 위해 두 손으로 꾸러미를 집 앞까지 나르고, 꾸러미를 문앞에 놓는다. 문앞에 패키지를 설정한 후, 그녀는 암밴드에서 모바일 디바이스(1704)를 제거하고 모바일 디바이스(1704)의 카메라를 패키지의 라벨에 겨눈다. 그녀는 엄지손가락으로 모바일 디바이스의 스크린을 터치한다. 그녀가 화면을 터치하는 동안 토치(1712)가 켜지고 카메라는 복수의 이미지를 획득한다. 복수의 이미지가 분석되고 패키지 라벨의 바코드가 디코딩된다. 광학 코드가 디코딩되었음을 사용자에게 나타내기 위해 녹색 상자가 스크린에 표시되는 이미지에 오버레이된다. 그런 다음 사용자는 모바일 디바이스를 뒤로 이동하고 구매 확인을 위해 패키지가 있는 현관 이미지를 저장한다. 그런 다음 사용자는 화면에서 엄지손가락을 뗀다. 사용자가 엄지손가락을 떼면 토치가 꺼지고 카메라가 꺼지거나 대기 모드로 들어간다. 그런 다음 사용자는 암밴드에 모바일 디바이스를 놓고 차량으로 다시 걸어간다. 바코드와 현관문 이미지는 모바일 디바이스(1704)로부터 원격 서버로 전송된다. 바코드가 디코딩되었기 때문에 현관 이미지가 자동으로 바코드에 연결되어 바코드에 의해 식별되는 파일에 저장된다.
도 18은 모바일 디바이스(1804)의 부착물(1802)의 다른 실시예를 도시한다. 부착물(1802)은 렌즈(1816)를 포함한다. 렌즈(1816)는 초광각 렌즈(예를 들어, 120도 이상 및/또는 130도, 150도, 160도 또는 175도 이하의 화각)이다. 일부 전화 모델은 광각 렌즈를 갖지 않거나 화각이 너무 좁은 렌즈(충분한 광각 렌즈가 아님)를 갖는다. 렌즈(1816)는 모바일 디바이스(1804)의 카메라의 화각을 증가시키기 위해 부착될 수 있다.
샘플 컴퓨팅 디바이스
도 19는 컴퓨팅 디바이스(1900)의 단순화된 블록도이다. 컴퓨팅 디바이스(1900)는 전자 저장 또는 처리를 사용하는 위에서 설명된 기능, 행동, 및/또는 능력뿐만 아니라 명시적으로 설명되지 않은 다른 기능, 행동 또는 능력의 일부 또는 전부를 구현할 수 있다. 컴퓨팅 디바이스(1900)는 처리 서브시스템(1902), 저장 서브시스템(1904), 사용자 인터페이스(1906), 및/또는 통신 인터페이스(1908)를 포함한다. 컴퓨팅 디바이스(1900)는 또한 배터리, 전력 제어기, 및 다양한 강화된 능력을 제공하도록 동작가능한 다른 구성요소와 같은 다른 구성요소(명시적으로 도시되지 않음)를 포함할 수 있다. 다양한 실시예에서, 컴퓨팅 디바이스(1900)는 데스크탑 또는 랩탑 컴퓨터, 모바일 디바이스(예를 들어, 태블릿 컴퓨터, 스마트 폰, 모바일 폰), 웨어러블 디바이스, 미디어 디바이스, 주문형 집적 회로(application specific integrated circuits: ASICs), 디지털 신호 프로세서(digital signal processors: DSP), 디지털 신호 처리 장치(digital signal processing devices: DSPD), 프로그램 가능 논리 장치(programmable logic devices: PLD), 필드 프로그램 가능 게이트 어레이(field programmable gate arrays :FPGA), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서, 또는 위에서 설명한 기능 또는 기능의 조합을 수행하도록 설계된 전자 유닛으로 구현될 수 있다.
저장 서브시스템(1904)은 예를 들어 디스크, 플래시 메모리(예를 들어, 보안 디지털 카드, 범용 직렬 버스 플래시 드라이브), 또는 임의의 다른 비일시적 저장 매체, 또는 매체의 조합을 사용하여, 로컬 저장소 및/또는 이동식 저장 매체를 사용하여 구현될 수 있고, 휘발성 및/또는 비휘발성 저장 매체를 포함할 수 있다. 로컬 저장소는 동적 RAM(DRAM), 정적 RAM(SRAM) 또는 배터리 백업 RAM을 포함하는 랜덤 액세스 메모리(Random Access Memory: RAM)를 포함할 수 있다. 일부 실시예에서, 저장 서브시스템(1904)은 컴퓨터를 사용하여 수행될 위에서 설명된 일부 또는 모든 동작을 구현하기 위한 프로그램을 포함하는 처리 서브시스템(1902)에 의해 실행될 하나 이상의 애플리케이션 및/또는 운영 체제 프로그램을 저장할 수 있다. 예를 들어, 저장 서브시스템(1904)은 위에서 설명된 하나 이상의 방법 단계를 구현하기 위한 하나 이상의 코드 모듈(1910)을 저장할 수 있다.
펌웨어 및/또는 소프트웨어 구현은 모듈(예를 들어, 절차, 기능 등)로 구현될 수 있다. 명령을 유형적으로 구현하는 기계 판독 가능 매체는 여기에 설명된 방법론을 구현하는 데 사용될 수 있다. 코드 모듈(1910)(예를 들어, 메모리에 저장된 명령어)은 프로세서 내에서 또는 프로세서 외부에서 구현될 수 있다. 본 명세서에 사용된 바와 같이, 용어 "메모리"는 장기, 단기, 휘발성, 비휘발성 또는 기타 저장 매체의 유형을 말하며 특정 유형의 메모리 또는 메모리가 저장되는 메모리의 수 또는 매체의 유형으로 국한되지 않는다..
또한, "저장 매체" 또는 "저장 장치"라는 용어는 읽기 전용 메모리(ROM), RAM, 자기 RAM, 코어 메모리, 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치 및/또는 정보를 저장하기 위한 기타 기계 판독 가능 매체를 포함하는 데이터를 저장하기 위한 하나 이상의 메모리를 나타낼 수 있다. "기계 판독 가능 매체"라는 용어는 휴대용 또는 고정식 저장 장치, 광학 저장 장치, 무선 채널, 및/또는 명령(들) 및/또는 데이터를 저장할 수 있는 다양한 기타 저장 매체를 포함하지만 이에 국한되지 않는다.
또한, 실시예는 하드웨어, 소프트웨어, 스크립팅 언어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 및/또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 스크립팅 언어 및/또는 마이크로코드로 구현될 때 작업을 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 기계 판독 가능 매체에 저장될 수 있다. 코드 세그먼트(예를 들어, 코드 모듈 1910) 또는 기계 실행 가능 명령어는 절차, 기능, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 스크립트, 클래스, 또는 명령, 데이터 구조 및/또는 프로그램 명령문의 조합을 나타낼 수 있다. 코드 세그먼트는 정보, 데이터, 인수, 매개변수 및/또는 메모리 내용을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 연결될 수 있다. 정보, 인수, 매개변수, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함하는 적절한 수단에 의해 전달, 포워드 또는 전송될 수 있다.
전술한 기술, 블록, 단계 및 수단의 구현은 다양한 방식으로 수행될 수 있다. 예를 들어, 이러한 기술, 블록, 단계 및 수단은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 하드웨어 구현을 위해, 프로세싱 유닛은 하나 이상의 ASIC, DSP, DSPD, PLD, FPGA, 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로프로세서, 위에서 설명된 기능을 수행하도록 설계된 다른 전자 유닛, 및/또는 이들의 조합 내에서 구현될 수 있다.
각각의 코드 모듈(1910)은 컴퓨팅 디바이스(1900)의 프로세서에 대응하는 동작을 수행하도록 지시하는 컴퓨터 판독가능 매체 상에 구현된 명령어(코드)의 세트를 포함할 수 있다. 명령어는 순차적으로, 병렬로(예를 들어, 다른 처리 스레드에서), 또는 이들의 조합으로 실행되도록 구성될 수 있다. 범용 컴퓨터 시스템에 코드 모듈(1910)을 로딩한 후, 범용 컴퓨터는 특수 목적 컴퓨터 시스템으로 변환된다.
(예를 들어, 하나 이상의 코드 모듈(1910)에서) 본 명세서에 설명된 다양한 특징을 통합하는 컴퓨터 프로그램은 다양한 컴퓨터 판독 가능 저장 매체에 인코딩 및 저장될 수 있다. 프로그램 코드로 인코딩된 컴퓨터 판독 가능 매체는 호환 가능한 전자 디바이스와 함께 패키징되거나, 프로그램 코드가 전자 디바이스와 별도로 제공될 수 있다(예를 들어, 인터넷 다운로드를 통해 또는 별도로 패키징된 컴퓨터 판독 가능 저장 매체로). 저장 서브시스템(1904)은 또한 통신 인터페이스(1908)를 사용하여 네트워크 연결을 설정하는데 유용한 정보를 저장할 수 있다.
사용자 인터페이스(1906)는 입력 장치(예를 들어, 터치 패드, 터치 스크린, 스크롤 휠, 클릭 휠, 다이얼, 버튼, 스위치, 키패드, 마이크 등) 및 출력 장치(예를 들어, 비디오 화면, 표시등, 스피커, 헤드폰 잭, 가상 또는 증강 현실 디스플레이 등)와 함께 지원 전자 장치(예를 들어, 디지털-아날로그 또는 아날로그-디지털 변환기, 신호 프로세서 등)를 포함할 수 있다. 사용자는 컴퓨팅 디바이스(1900)의 기능을 호출하기 위해 사용자 인터페이스(1906)의 입력 장치를 조작할 수 있고 사용자 인터페이스(1906)의 출력 장치를 통해 컴퓨팅 디바이스(1900)로부터의 출력을 보고 그리고/또는 들을 수 있다. 일부 실시예에 대해, 사용자 인터페이스(1906)는 존재하지 않을 수 있다(예를 들어, ASIC을 사용하는 프로세스를 위해).
처리 서브시스템(1902)은 하나 이상의 프로세서(예를 들어, 집적 회로, 하나 이상의 단일 코어 또는 다중 코어 마이크로프로세서, 마이크로컨트롤러, 중앙 처리 장치, 그래픽 처리 장치 등)로서 구현될 수 있다. 동작시, 프로세싱 서브시스템(1902)은 컴퓨팅 디바이스(1900)의 동작을 제어할 수 있다. 일부 실시예에서, 처리 서브시스템(1902)은 프로그램 코드에 응답하여 다양한 프로그램을 실행할 수 있고 다수의 동시에 실행되는 프로그램 또는 프로세스를 유지할 수 있다. 주어진 시간에, 실행될 프로그램 코드의 일부 또는 전부는 프로세싱 서브시스템(1902) 및/또는 스토리지 서브시스템(1904)과 같은 스토리지 미디어에 상주할 수 있다. 프로그래밍을 통해, 프로세싱 서브시스템(1902)은 컴퓨팅 디바이스(1900)를 위한 다양한 기능을 제공할 수 있다. 프로세싱 서브시스템(1902)은 또한 스토리지 서브시스템(1904)에 저장될 수 있는 프로그램을 포함하여 컴퓨팅 디바이스(1900)의 다른 기능을 제어하기 위해 다른 프로그램을 실행할 수 있다.
통신 인터페이스(1908)는 컴퓨팅 디바이스(1900)에 음성 및/또는 데이터 통신 능력을 제공할 수 있다. 일부 실시예에서, 통신 인터페이스(1908)는 무선 데이터 네트워크(예를 들어, Wi-Fi 네트워크; 3G, 4G/LTE 등)에 액세스하기 위한 무선 주파수(RF) 트랜시버 구성요소, 이동 통신 기술, 근거리 무선 통신을 위한 구성요소(예를 들어, Bluetooth 통신 표준, NFC 등을 사용), 기타 구성 요소 또는 기술의 조합을 포함할 수 있다. 일부 실시예에서, 통신 인터페이스(1908)는 무선 인터페이스에 추가하거나 무선 인터페이스를 대신하여, 유선 연결(예를 들어, 범용 직렬 버스, 이더넷, 범용 비동기 수신기/송신기 등)을 제공할 수 있다. 통신 인터페이스(1908)는 하드웨어(예를 들어, 드라이버 회로, 안테나, 변조기/복조기, 인코더/디코더, 및 기타 아날로그 및/또는 디지털 신호 처리 회로) 및 소프트웨어 구성요소의 조합을 사용하여 구현될 수 있다. 일부 실시예에서, 통신 인터페이스(1908)는 다수의 통신 채널을 동시에 지원할 수 있다. 일부 실시예에서 통신 인터페이스(1908)는 사용되지 않는다.
컴퓨팅 디바이스(1900)는 예시적이며 변형 및 수정이 가능하다는 것이 이해될 것이다. 컴퓨팅 디바이스는 구체적으로 설명되지 않은 다양한 기능(예를 들어, 셀룰러 전화 네트워크를 통한 음성 통신)을 가질 수 있고 이러한 기능에 적절한 구성요소를 포함할 수 있다.
또한, 컴퓨팅 디바이스(1900)가 특정 블록을 참조하여 설명되지만, 이러한 블록은 설명의 편의를 위해 정의되고 구성요소 부품의 특정 물리적 배열을 의미하도록 의도되지 않는다는 것이 이해되어야 한다. 예를 들어, 처리 서브시스템(1902), 스토리지 서브시스템, 사용자 인터페이스(1906), 및/또는 통신 인터페이스(1908)는 하나의 디바이스에 있거나 여러 디바이스에 분산될 수 있다.
또한, 블록은 물리적으로 구별되는 구성요소에 대응할 필요는 없다. 블록은 예를 들어 프로세서를 프로그래밍하거나 적절한 제어 회로를 제공함으로써 다양한 작업을 수행하도록 구성될 수 있으며 다양한 블록은 초기 구성을 얻는 방법에 따라 재구성가능할 수도 있고 그렇지 않을 수도 있다. 본 발명의 실시예는 회로와 소프트웨어의 조합을 사용하여 구현되는 전자 디바이스를 포함하는 다양한 장치에서 실현될 수 있다. 여기에 설명된 전자 디바이스는 컴퓨팅 디바이스(1900)를 사용하여 구현될 수 있다.
본 명세서에 설명된 다양한 특징, 예를 들어 방법, 장치, 컴퓨터 판독 가능 매체 등은 전용 구성요소, 프로그램 가능 프로세서, 및/또는 다른 프로그램 가능 디바이스의 조합을 사용하여 실현될 수 있다. 여기에 설명된 프로세스는 동일한 프로세서 또는 다른 프로세서에서 구현될 수 있다. 구성 요소가 특정 작업을 수행하도록 구성되는 것으로 설명되는 경우, 이러한 구성은 예를 들어 해당 작업을 수행하도록 전자 회로를 설계하거나, 해당 작업을 수행하도록 프로그래밍 가능한 전자 회로(예를 들어, 마이크로프로세서)를 프로그래밍함으로써, 또는 이들의 조합으로 달성될 수 있다. 또한, 위에서 설명된 실시예가 특정 하드웨어 및 소프트웨어 구성요소를 참조할 수 있지만, 당업자는 하드웨어 및/또는 소프트웨어 구성요소의 상이한 조합이 또한 사용될 수 있고 하드웨어로 구현되는 것으로 설명된 특정 동작이 소프트웨어로 구현되거나 그 반대의 경우도 마찬가지임을 이해할 것이다.
실시예의 이해를 제공하기 위해 위의 설명에서 특정 세부사항이 제공된다. 그러나, 이러한 특정 세부사항 없이 실시예가 실시될 수 있다는 것이 이해된다. 일부 예에서, 잘 알려진 회로, 프로세스, 알고리즘, 구조 및 기술은 실시예를 모호하게 하는 것을 피하기 위해 불필요한 세부 사항 없이 도시될 수 있다.
본 발명의 원리가 특정 장치 및 방법과 관련하여 위에서 설명되었지만, 이러한 설명은 본 발명의 범위를 제한하는 것이 아니라 단지 예로서 이루어진 것임을 이해해야 한다. 실시예는 본 발명의 원리 및 실제 응용을 설명하기 위해 선택되고 설명되어, 당업자가 고려되는 특정 용도에 적합한 다양한 실시예 및 다양한 수정으로 본 발명을 활용할 수 있도록 하였다. 설명은 수정 및 등가물을 포함하도록 의도된다는 것이 이해될 것이다.
또한, 실시예는 순서도, 흐름도, 데이터 흐름도, 구조도, 또는 블록도로서 도시된 프로세스로서 설명될 수 있다는 점에 유의한다. 순서도는 작업을 순차적 프로세스로서 설명할 수 있지만, 많은 작업이 병렬로 또는 동시에 수행될 수 있다. 또한, 작업의 순서는 재배열될 수 있다. 프로세스는 작업이 완료되면 종료되지만 도면에 포함되지 않은 추가 단계가 있을 수 있다. 프로세스는 메소드, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수 있다.
"하나의"("a", "an") 또는 "상기"는 특별히 다르게 표시되지 않는 한 "하나 이상"을 의미하도록 의도된다. 여기에 언급된 특허, 특허 출원, 공보 및 설명은 모든 목적을 위해 그 전체가 참고로 포함된다. 어느 것도 선행 기술로 인정되지 않는다.
일부 실시예에서, 이미지 분석을 사용하여 선반 유닛 상의 객체를 매핑하기 위한 시스템은: 복수의 이미지 프레임을 획득하도록 구성된 이미지 센서를 포함하는 카메라; 및 카메라에 의해 획득된 복수의 이미지를 수신하고; 복수의 이미지에서 제1 아이템 코드를 식별하고; 복수의 이미지에서 제2 아이템 코드를 식별하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하고; 거리와 배향을 선반 다이어그램으로 캘리브레이션하고; 제1 아이템 코드 및 선반 다이어그램에 대한 제1 아이템 코드의 상대 위치를 포함하는 제1 벡터를 생성하고; 그리고/또는 제2 아이템 코드 및 선반 다이어그램에 대한 제2 아이템 코드의 상대 위치를 포함하는 제2 벡터를 생성하도록 구성된 하나 이상의 프로세서를 포함한다. 방법은: 복수의 이미지를 수신하는 단계; 복수의 이미지에서 제1 아이템 코드를 식별하는 단계; 복수의 이미지에서 제2 아이템 코드를 식별하는 단계; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 단계; 거리 및 배향을 선반 다이어그램으로 캘리브레이션하는 단계; 제1 아이템 코드 및 선반 다이어그램에 대한 제1 아이템 코드의 상대 위치를 포함하는 제1 벡터를 생성하는 단계; 및/또는 제2 아이템 코드 및 선반 다이어그램에 대한 제2 아이템 코드의 상대 위치를 포함하는 제2 벡터를 생성하는 단계를 포함한다. 일부 실시예에서, 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 단계는 2차원 수직 평면에 있는 제1 아이템 코드 및 제2 아이템 코드에 기초하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 단계는 제1 아이템 코드의 폭 또는 높이에 기초하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 단계는 선반 라벨의 폭 또는 높이에 기초하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 것은 모바일 디바이스의 동시 위치 및 매핑 알고리즘에 기초하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향은 단계는 복수의 이미지를 획득하는데 사용되는 모바일 디바이스의 2개의 이미지 센서 및 2개의 이미지 센서 사이의 알려진 거리에 기초하고; 제2 아이템 코드에 대한 제1 아이템 코드의 거리 및 배향을 계산하는 단계는 복수의 이미지를 획득하는데 사용되는 모바일 디바이스의 깊이 센서 또는 3차원 이미지 센서에 기초하고; 선반 유닛은 상점 통로의 일부이고; 제1 벡터는 통로 표시자, 및 통로에 대한 제1 아이템 코드의 상대 위치를 포함하고; 그리고/또는 플래노그램으로부터 제1 벡터의 통로 표시자를 아이템의 계획된 통로 위치와 비교하는 것에 기초해서 제1 아이템 코드에 의해 식별된 아이템이 정확한 통로에 있는지를 결정하는 단계; 제1 아이템 코드와 연관된 객체의 제1 경계를 확인하는 단계 - 제1 벡터는 선반 다이어그램에 대한 제1 경계를 나타내는 값을 포함함 -; 제2 아이템 코드와 연관된 객체의 제2 경계를 확인하는 단계 - 제2 벡터는 선반 다이어그램에 대한 제2 경계를 나타내는 값을 포함함 -; 제1 벡터로부터의 제1 경계를 나타내는 값을 이용하여, 제1 경계를 플래노그램 내의 제1 아이템의 계획된 위치와 비교하는 단계; 선반 다이어그램에 대한 제1 경계가 플래노그램을 준수하는지 결정하는 것은 선반 다이어그램에 대한 제1 경계에 기초해서 플래노그램에서 제1 항목의 계획된 위치와 유사하며; 제2 벡터로부터 제2 경계를 나타내는 값을 이용하여, 제2 경계를 플래노그램 내의 제2 아이템의 계획된 위치와 비교하는 단계; 및/또는 선반 다이어그램에 대한 제2 경계가 플래노그램을 준수한다고 결정하는 단계는 선반 다이어그램에 대한 제2 경계에 기초해서 플래노그램에서 제2 아이템의 계획된 위치와 유사한 것을 포함한다. 일부 실시예에서, 방법은 복수의 이미지를 수신하는 단계 - 복수의 이미지는 오버뷰 이미지 및 상이한 시야를 갖는 다수의 이미지를 포함하고, 오버뷰 이미지는 다수의 바코드를 포함하고/하거나 다수의 이미지는 각각 여러 바코드의 하위 집합을 포함함 -; 및/또는 오버뷰 이미지에서 바코드의 위치를 등록하기 위해 오버뷰 이미지에 다수의 이미지의 상이한 시야를 매칭시키는 단계를 포함한다. 일부 구성에서는, 오버뷰 이미지의 여러 바코드가 너무 작아서 디코딩할 수 없기 때문에 오버뷰 이미지에서 여러 바코드를 디코딩할 수 없다; 오버뷰 이미지는 오버뷰 이미지의 선반 행을 사용하여 정렬되고, 조정되고, 왜곡이 수정된다; 다수의 이미지의 상이한 시야를 오버뷰 이미지에 매칭하는 단계는 호모그래피를 위한 무작위 샘플 합의 알고리즘 및 관심 포인트를 사용하여 수행되고; 다수의 이미지의 상이한 시야를 오버뷰 이미지에 매칭하는 단계는 다수의 바코드가 평면에 있다는 가정에 기초하고; 및/또는 방법은 2개 이상의 바코드를 디코딩하지 않고 다수의 이미지 프레임에 걸쳐 2개 이상의 바코드를 동시에 추적하는 단계를 포함하고; 다수의 이미지를 이용하여 다수의 바코드를 디코딩하는 단계; 및/또는 다수의 바코드 중 바코드의 알려진 높이 또는 너비에 기초해서 오버뷰 이미지의 축척을 계산하는 단계를 포함한다.
일부 실시예에서:
1. 이미지에서 패턴을 인식하기 위한 이미지 분석 방법으로서,
카메라에 의해 획득된 복수의 이미지를 수신하는 단계 - 상기 복수의 이미지는 배열로 복수의 광학 패턴을 포함함 -;
상기 배열을 패턴 템플릿에 매칭시키는 단계 - 상기 패턴 템플릿은 광학 패턴의 미리 정의된 배열임 -;
상기 패턴 템플릿과 비교하여 상기 배열에서 선택된 광학 패턴의 위치에 기초해서 상기 복수의 광학 패턴 중 광학 패턴을 선택된 광학 패턴으로서 식별하는 단계;
객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하는 단계;
메모리 디바이스에 객체상기 식별자를 저장하는 단계를 포함하는 방법.
2. 제1항에 있어서, 상기 복수의 광학 패턴은 평행 바로 구성된 바코드인, 방법.
3. 제1항에 있어서, 상기 복수의 광학 패턴은 상기 복수의 이미지에서 객체에 부착된 라벨에 배치되고, 상기 객체의 물리적 치수를 계산하는 단계를 더 포함하는 방법.
4. 제3항에 있어서, 상기 객체의 물리적 치수를 계산하는 단계는:
이미지 내의 라벨의 상대 치수에 대한 이미지 내의 상기 객체의 상대 치수를 계산하는 단계; 및
상기 객체의 상대 치수에 기초해서 상기 객체의 물리적 치수를 계산하는 단계를 포함하는, 방법.
5. 제3항에 있어서,
상기 객체의 물리적 치수를 객체 식별자와 연관된 상기 객체의 예상되는 물리적 치수와 비교하는 단계;
상기 객체를 상기 객체 식별자에 매칭시키는 단계; 및
매칭을 나타내는 그래픽 요소를 디스플레이에 제시하는 단계를 더 포함하는 방법.
6. 제3항에 있어서, 상기 객체의 물리적 치수는 상기 객체의 부피 또는 상기 객체의 무게 중 적어도 하나를 포함하는 방법.
7. 제6항에 있어서,
상기 물리적 치수에 기초해서 물류 기준을 확인하는 단계를 더 포함하는 방법.
8. 제7항에 있어서, 상기 물류 기준은 우편 요금, 재고 주문 식별자, 포장 주문, 또는 창고 위치 식별자 중 적어도 하나를 포함하는 방법.
9. 제1항에 있어서,
상기 복수의 이미지 중 제1 이미지에서 제1 식별자 패턴을 식별하는 단계 - 상기 제1 식별자 패턴은 상기 패턴 템플릿의 식별자임 -;
상기 복수의 이미지 중 제2 이미지에서 제2 식별자 패턴을 식별하는 단계;
상기 제1 식별자 패턴을 상기 제2 식별자 패턴과 비교하는 단계; 및
상기 제1 식별자 패턴이 상기 제2 식별자 패턴과 매칭되지 않는 경우:
상기 제2 식별자 패턴을 제2 패턴 템플릿에 매칭시키는 단계 - 상기 제2 패턴 템플릿은 미리 정의된 광학 패턴의 제2 배열임 -;
상기 배열에서 상기 선택된 광학 패턴의 위치에 기초해서 제2 선택된 광학 패턴을 식별하는 단계;
제2 객체 식별자를 생성하기 위해 상기 제2 선택된 광학 패턴을 디코딩하는 단계; 및
상기 제2 객체 식별자를 메모리 디바이스에 저장하는 단계를 더 포함하는 방법.
10. 제1항에 있어서,
디스플레이 상에 패턴 템플릿을 포함하는 복수의 이미지를 제시하는 단계;
상기 디스플레이 상에 상기 패턴 템플릿의 시각적 표시를 제시하는 단계; 및
선택된 광학 패턴 상에 오버레이된 그래픽 요소를 제시하는 단계를 더 포함하는 방법.
11. 이미지에서 패턴을 인식하기 위한 이미지 분석 방법으로서,
타겟 광학 패턴 유형을 수신하는 단계;
복수의 광학 패턴을 포함하는 카메라에 의해 획득된 복수의 이미지를 수신하는 단계;
상기 복수의 광학 패턴 중 선택된 광학 패턴을 타겟 광학 패턴 유형에 매칭시키는 단계;
객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하는 단계; 및
메모리 디바이스에 객체 식별자를 저장하는 단계를 포함하는 방법.
12. 제11항에 있어서, 상기 선택된 광학 패턴을 상기 타겟 광학 패턴 유형에 매칭시키는 단계는:
상기 타겟 광학 패턴 유형의 제1 상대 치수를 수신하는 단계;
상기 선택된 광학 패턴의 제2 상대 치수를 확인하는 단계; 및
상기 제2 상대 치수를 상기 제1 상대 치수와 매칭시키는 단계를 포함하는, 방법.
13. 제11항에 있어서, 상기 선택된 광학 패턴을 상기 타겟 광학 패턴 유형에 매칭시키는 단계는:
상기 타겟 광학 패턴 유형의 특성 치수를 수신하는 단계;
상기 복수의 이미지 중 이미지에서 복수의 광학 패턴의 배열에 기초해서, 복수의 광학 패턴의 복수의 공간 치수를 확인하는 단계; 및
상기 선택된 광학 패턴의 공간 치수를 상기 타겟 광학 패턴 유형의 특성 치수에 매칭시키는 단계를 포함하는, 방법.
14. 제11항에 있어서, 상기 타겟 광학 패턴 유형은 평행 바로 구성된 바코드, QR 코드, MaxiCode, 또는 Aztec 코드인, 방법.
15. 제11항에 있어서, 상기 복수의 광학 패턴 중 상기 선택된 광학 패턴을 상기 타겟 광학 패턴 유형에 매칭시키는 단계는:
상기 복수의 광학 패턴에 대응하는 복수의 종횡비를 확인하거나 상기 복수의 광학 패턴 중 광학 패턴에서 특성 마킹을 식별하는 단계; 및
상기 선택된 광학 패턴을 상기 타겟 광학 패턴 유형 또는 특성 마킹의 타겟 종횡비에 매칭시키는 단계를 포함하는, 방법.
16. 이미지에서 패턴을 인식하기 위한 이미지 분석 방법으로서,
카메라에 의해 획득된 제1 복수의 이미지를 수신하는 단계 - 상기 제1 복수의 이미지는:
이미지 경계 및 이미지 경계에 인접한 부분 광학 패턴;
상기 이미지 경계에 대한 상기 부분 광학 패턴의 배향을 확인하는 단계;
제1 녹음된 사운드의 재생으로서, 상기 배향에 기초해서 제1 방향으로 카메라를 이동시키기 위한 제1 프롬프트를 생성하는 단계;
상기 부분 광학 패턴에 대응하는 완전한 광학 패턴을 포함하는 카메라에 의해 획득된 제2 복수의 이미지를 수신하는 단계;
객체 식별자를 생성하기 위해 상기 완전한 광학 패턴을 디코딩하는 단계;
상기 완전한 광학 패턴의 성공적인 디코딩을 나타내기 위해 제2 녹음된 사운드의 재생으로서 제2 프롬프트를 제공하는 단계; 및
메모리 디바이스에 상기 객체 식별자를 저장하는 단계를 포함하는 방법.
17. 제16항에 있어서, 상기 완전한 광학 패턴은 평행 바로 구성된 바코드인, 방법.
18. 제16항에 있어서,
디스플레이 상에 상기 제1 복수의 이미지를 제시하는 단계;
상기 부분 광학 패턴을 나타내는 제1 그래픽 요소를 디스플레이 상에 제시하는 단계;
상기 디스플레이 상에 상기 제2 복수의 이미지를 제시하는 단계; 및
상기 완전한 광학 패턴을 나타내는 제2 그래픽 요소를 상기 디스플레이 상에 제시하는 단계를 더 포함하는 방법.
19. 제16항에 있어서,
상기 객체 식별자에 기초해서 객체 정보를 확인하는 단계; 및
제3 녹음된 사운드의 재생으로서 상기 객체 정보를 포함하는 제3 프롬프트를 생성하는 단계를 더 포함하는 방법.
20. 다중 패턴을 포함하는 이미지에서 패턴을 인식하기 위한 이미지 분석 방법으로서,
복수의 광학 패턴을 포함하는 카메라에 의해 획득된 복수의 이미지를 수신하는 단계;
디스플레이 상에 상기 복수의 광학 패턴을 제시하는 단계;
사용자 동작, 및
상기 복수의 이미지 중 하나 이상에서 선택된 광학 패턴의 위치에 기초해서 상기 복수의 광학 패턴 중 상기 선택된 광학 패턴을 식별하는 단계:
상기 선택된 광학 패턴의 시각적 표시를 디스플레이 상에 제시하는 단계;
객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하는 단계;
상기 선택된 광학 패턴이 디코딩되었음을 시각적 표시를 통해 표시하는 단계; 및
메모리 디바이스에 상기 객체 식별자를 저장하는 단계를 포함하는 방법.
21. 제20항에 있어서, 상기 복수의 광학 패턴은 평행 바로 구성된 바코드인, 방법.
22. 제20항에 있어서,
상기 복수의 광학 패턴은 제1 광학 패턴 및 제2 광학 패턴을 포함하고;
상기 제1 광학 패턴은 상기 선택된 광학 패턴이고;
상기 제2 광학 패턴은 디코딩되지 않는, 방법.
23. 제20항에 있어서, 상기 복수의 광학 패턴을 처리하는 것과 관련된 하나 이상의 그래픽 요소를 상기 디스플레이 상에 제시하는 단계를 더 포함하는 방법.
24. 제23항에 있어서, 상기 하나 이상의 그래픽 요소는 레티클, 캡처 버튼, 경계 상자, 또는 디스플레이의 강조 표시된 영역 중 적어도 하나를 포함하고, 적어도 상기 강조 표시된 영역은 상기 복수의 광학 패턴 중 광학 패턴 상에 오버레이로서 제시되는, 방법.
25. 제24항에 있어서,
상기 디스플레이는 캡처 버튼과 레티클, 경계 상자 또는 강조 표시된 영역 중 적어도 하나를 제시하고;
상기 사용자 동작은 상기 캡처 버튼의 버튼 누름을 포함하고;
상기 선택된 광학 패턴을 식별하는 단계는 레티클, 경계 상자 또는 강조 표시된 영역 아래에 위치되는 상기 선택된 광학 패턴에 기초하는, 방법.
26. 제20항에 있어서, 상기 사용자 동작은 상기 디스플레이 상의 스크린 터치를 포함하는, 방법.
27. 제20항에 있어서, 상기 사용자 동작은 상기 복수의 광학 패턴 중 광학 패턴에 대응하는 상기 디스플레이의 영역에 대한 스크린 터치를 포함하는, 방법.
28. 제20항에 있어서,
상기 디스플레이는 관성 측정 유닛을 포함하는 스마트폰과 통신하고;
상기 사용자 동작은 스마트폰 외부 표면을 탭하는 것이고,
상기 방법은:
상기 스마트폰의 관성 측정 유닛으로부터 모션 데이터를 수신하는 단계;
상기 모션 데이터를 임펄스로 분류하는 단계; 및
상기 선택된 광학 패턴을 식별하는 단계를 더 포함하고, 상기 임펄스의 수신과 일치하는 시간에 상기 시각적 표시와 함께 제공되는 선택된 광학 패턴에 기초하는, 방법.
29. 제20항에 있어서,
상기 디스플레이는 복수의 대화형 버튼을 포함하는 전자 디바이스와 통신하고;
상기 사용자 동작은 스크린 탭 또는 상기 복수의 대화형 버튼 중 캡처 버튼과의 상호작용이고;
상기 방법은:
상기 복수의 이미지의 이미지에서 상기 복수의 광학 패턴 중 제1 광학 패턴의 위치에 대응하는 제1 위치에서 상기 디스플레이 상의 그래픽 요소를 제시하는 단계;
상기 복수의 대화형 버튼의 대화형 버튼과의 사용자 상호작용에 응답하여, 상기 그래픽 요소를 상기 이미지의 제2 광학 패턴에 대응하는 제1 위치로부터 제2 위치로 재배치하는 단계; 및
상기 선택된 광학 패턴을 식별하는 단계를 더 포함하고, 상기 사용자 동작과 일치하는 시간에 상기 그래픽 요소와 선택된 광학 패턴 사이의 대응에 기초하는, 방법.
30. 제20항에 있어서,
상기 디스플레이의 영역과의 사용자 상호작용을 수신하는 단계; 및
상기 영역에 대응하는 상기 복수의 이미지의 영역을 미리 정의된 배율만큼 확대하는 단계를 더 포함하는 방법.
31. 제20항에 있어서,
프레임 레이트에 따라 순서대로 상기 디스플레이 상에 상기 복수의 이미지를 제시하는 단계;
제2 사용자 동작을 수신하는 단계;
상기 제2 사용자 동작과 동시에 상기 디스플레이 상에 상기 복수의 이미지의 이미지를 제시하는 단계;
제3 사용자 액션을 수신하는 단계; 및
상기 제3 사용자 동작을 수신하는 것과 동시에, 상기 순서에 따라 상기 디스플레이 상에 상기 복수의 이미지의 표시를 재개하는 단계를 더 포함하는 방법.
32. 제20항에 있어서,
상기 복수의 이미지 중 제1 이미지에서 상기 복수의 광학 패턴 중 제1 광학 패턴의 개수를 확인하는 단계;
상기 복수의 이미지 중 제2 이미지에서 상기 복수의 광학 패턴 중 제2 광학 패턴의 개수를 확인하는 단계;
상기 제1 개수와 제2 개수 사이의 변화 정도를 확인하는 단계;
상기 변화 정도를 문턱 변화 기준과 비교하는 단계; 및
상기 변화 정도가 상기 문턱 변화 기준을 만족하는 경우, 상기 디스플레이 상에, 상기 복수의 광학 패턴을 포함하는 상기 복수의 이미지의 이미지를 제시하는 단계를 더 포함하는 방법.
33. 제32항에 있어서,
일정 기간이 경과한 후 상기 디스플레이로부터 상기 복수의 이미지의 상기 이미지를 제거하는 단계; 및
상기 디스플레이 상에 상기 복수의 이미지를 제시하는 단계를 더 포함하는 방법.
34. 제32항에 있어서,
상기 복수의 이미지는 프레임 레이트에 대응하는 프레임의 시퀀스로 배열되고;
상기 제2 이미지는 상기 제1 이미지에 대응하는 프레임들의 시퀀스에서 제 1 위치를 뒤따르는 프레임들의 시퀀스에서 제 2 위치에 대응하는, 방법.
35. 제34항에 있어서, 상기 제1 위치와 상기 제2 위치 사이의 간격은 프레임 레이트에 따른 시간 주기에 대응하는, 방법.
36. 제35항에 있어서, 상기 시간 주기는 300ms인 방법.
37. 제34항에 있어서,
카메라와 연관된 애플리케이션을 식별하는 단계;
상기 애플리케이션에 따라 상기 제1 위치 및 상기 제2 위치를 결정하는 단계를 더 포함하는 방법.
38. 제34항에 있어서,
카메라 및 디스플레이와 통신하는 디바이스를 식별하는 단계;
상기 디바이스에 따라 상기 제1 위치 및 상기 제2 위치를 결정하는 단계를 더 포함하는 방법.
39. 제38항에 있어서,
디스플레이, 카메라, 사용자 중 적어도 하나를 기술하는 복수의 디바이스 매개변수를 확인하는 단계를 더 포함하고,
상기 디바이스에 따라 상기 제1 위치 및 상기 제2 위치를 결정하는 단계는,
상기 복수의 디바이스 매개변수를 사용하여 시간 주기를 계산하는 단계; 및
상기 프레임 레이트에 따라 상기 시간 주기에 대응되도록 상기 제2 위치 및 상기 제1 위치를 설정하는 단계를 포함하는, 방법.
40. 제20항에 있어서,
상기 복수의 광학 패턴을 디코딩하여 복수의 객체 식별자를 생성하는 단계;
상기 복수의 객체 식별자에 대응하는 다수의 객체 식별자를 확인하는 단계;
문턱값 기준을 충족하는 객체 식별자의 수에 따라:
상기 복수의 광학 패턴을 포함하는 상기 복수의 이미지 중 선택된 이미지를 식별하는 단계; 및
상기 선택된 이미지를 디스플레이에 제시하는 단계를 더 포함하는 방법.
41. 제40항에 있어서, 상기 문턱값 기준은 일정 기간에 걸친 상기 객체 식별자들의 수에서의 변동 매개변수를 포함하는, 상기 객체 식별자들의 수의 변화 정도인, 방법.
42. 제40항에 있어서,
상기 복수의 객체 식별자 중 제1 객체 식별자를 제시하는 단계;
상기 디스플레이 상에 상기 제1 객체 식별자와 연관된 제1 객체 정보를 제시하는 단계;
제2 사용자 동작에 응답하여, 상기 디스플레이 상에 상기 복수의 객체 식별자 중 제2 객체 식별자를 제시하고 상기 디스플레이로부터 상기 제1 객체 식별자 및 제1 객체 정보를 제거하는 단계; 및
상기 제2 객체 식별자와 연관된 제2 객체 정보를 제시하는 단계를 더 포함하는 방법.
43. 제20항에 있어서, 상기 시각적 표시는 상기 객체 식별자에 기초한 객체 정보를 포함하는, 방법.
44. 제20항에 있어서, 상기 시각적 표시는 진행 바로서 디코딩 진행을 표시하는 동적 그래픽 요소를 포함하는, 방법.
45. 제20항에 있어서, 상기 시각적 표시는 일정 기간에 걸쳐 상기 시각적 표시의 투명도를 점진적으로 증가시킴으로써 디코딩 이후 시간을 나타내는 동적 그래픽 요소를 포함하는, 방법.
일부 실시예에서:
1. 이미지에서 패턴을 인식하기 위한 이미지 분석 방법으로서,
카메라에 의해 획득된 복수의 이미지를 수신하는 단계 - 상기 복수의 이미지는 배열로 복수의 광학 패턴을 포함하고, 상기 복수의 광학 패턴은 상기 복수의 이미지에서 객체에 부착된 라벨에 배치되고, 상기 복수의 광학 패턴 중 하나 이상은 객체 식별자를 인코딩함 -;
상기 배열을 패턴 템플릿에 매칭시키는 단계 - 상기 패턴 템플릿은 광학 패턴의 미리 정의된 배열임 -;
상기 배열에서 선택된 광학 패턴의 위치에 기초해서 상기 복수의 광학 패턴 중 광학 패턴을 상기 선택된 광학 패턴으로서 식별하는 단계;
상기 객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하는 단계;
메모리 디바이스에 상기 객체 식별자를 저장하는 단계;
상기 복수의 이미지의 이미지 내의 라벨의 상대 치수와 비교하여 상기 이미지에서 상기 객상의 상대 치수를 추정하는 단계; 및
상기 객체의 상대 치수에 기초해서 상기 객체의 물리적 치수를 추정하는 단계를 포함하는 방법.
2. 제1항에 있어서, 상기 복수의 광학 패턴은 평행 바로 구성된 바코드인, 방법.
3. 제1항에 있어서,
상기 객체의 물리적 치수를 상기 객체 식별자와 연관된 상기 객체의 예상되는 물리적 치수와 비교하는 단계;
상기 객체를 상기 객체 식별자에 매칭시키는 단계; 및
매칭을 나타내는 그래픽 요소를 디스플레이에 제시하는 단계를 더 포함하는 방법.
4. 제1항에 있어서, 상기 객체의 물리적 치수는 상기 객체의 부피 또는 상기 객체의 무게 중 적어도 하나를 포함하는, 방법.
5. 제1항에 있어서,
상기 물리적 치수에 기초해서 물류 기준을 확인하는 단계를 더 포함하는 방법.
6. 제5항에 있어서, 상기 물류 기준은 우편 요금, 재고 주문 식별자, 포장 주문, 또는 창고 위치 식별자 중 적어도 하나를 포함하는, 방법.
7. 제1항에 있어서,
디스플레이 상에 상기 패턴 템플릿을 포함하는 상기 복수의 이미지를 제시하는 단계; 및
상기 선택된 광학 패턴에 오버레이된 그래픽 요소를 제시하는 단계를 더 포함하는 방법.
8. 시스템으로서,
복수의 이미지를 획득하도록 구성된 이미지 센서를 갖는 카메라; 및
하나 이상의 프로세서 - 상기 하나 이상의 프로세서는:
상기 이미지 센서에 의해 획득된 복수의 이미지를 수신하고 - 상기 복수의 이미지는 배열로 복수의 광학 패턴을 포함하고, 상기 복수의 광학 패턴은 상기 복수의 이미지에서 객체에 부착된 라벨에 배치되고, 상기 복수의 광학 패턴 중 하나 이상은 객체 식별자를 인코딩함 -;
상기 배열을 패턴 템플릿에 매칭시키고 - 상기 패턴 템플릿은 광학 패턴의 미리 정의된 배열임 -;
상기 배열 내의 선택된 광학 패턴의 위치에 기초해서 상기 선택된 광학 패턴으로서 상기 복수의 광학 패턴의 광학 패턴을 식별하고;
상기 객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하고;
상기 객체 식별자를 메모리 디바이스에 저장하고;
상기 복수의 이미지의 이미지 내의 라벨의 상대 치수와 비교하여 상기 이미지에서 상기 객상의 상대 치수를 추정하고;
상기 객체의 상대 치수에 기초해서 상기 객체의 물리적 치수를 추정하도록 구성됨 - 를 포함하는 시스템.
9. 제8항에 있어서, 상기 하나 이상의 프로세서는 또한,
상기 물리적 치수에 기초해서 물류 기준을 확인하도록 구성되고, 상기 물류 기준은 우편 요금, 재고 주문 식별자, 포장 주문 또는 창고 위치 식별자 중 적어도 하나를 포함하는, 시스템.
10. 제8항에 있어서, 상기 하나 이상의 프로세서는 또한:
상기 객체의 물리적 치수를 상기 객체 식별자와 연관된 상기 객체의 예상되는 물리적 치수와 비교하고;
상기 객체를 상기 개체 식별자에 매칭시키고;
매칭을 나타내는 그래픽 요소를 디스플레이에 제시하도록 구성되는, 시스템.
11. 제8항에 있어서, 상기 하나 이상의 프로세서는 또한:
디스플레이 상에 패턴 템플릿을 포함하는 복수의 이미지를 제시하고;
선택된 광학 패턴에 오버레이된 그래픽 요소를 제시하도록 구성되는, 시스템.
12. 실행될 때 하나 이상의 프로세서로 하여금 단계들을 수행하게 하는 명령어를 포함하는 메모리 디바이스로서, 상기 단계들은:
카메라에 의해 획득된 복수의 이미지를 수신하는 단계 - 상기 복수의 이미지는 배열로 복수의 광학 패턴을 포함하고, 상기 복수의 광학 패턴은 상기 복수의 이미지에서 객체에 부착된 라벨에 배치되고, 상기 복수의 광학 패턴 중 하나 이상은 객체 식별자를 인코딩함 -;
상기 배열을 패턴 템플릿에 매칭시키는 단계 - 상기 패턴 템플릿은 광학 패턴의 미리 정의된 배열임 -;
상기 배열에서 선택된 광학 패턴의 위치에 기초해서 상기 복수의 광학 패턴 중 광학 패턴을 상기 선택된 광학 패턴으로서 식별하는 단계;
상기 객체 식별자를 생성하기 위해 상기 선택된 광학 패턴을 디코딩하는 단계;
메모리 디바이스에 상기 객체 식별자를 저장하는 단계;
복수의 이미지의 이미지 내의 라벨의 상대 치수와 비교하여 상기 이미지에서 상기 객체의 상대 치수를 추정하는 단계; 및
상기 객체의 상대 치수에 기초해서 상기 물객의 물리적 치수를 추정하는 단계를 포함하는, 메모리 디바이스.
13. 제12항에 있어서, 실행될 때 하나 이상의 프로세서로 하여금 단계들을 수행하게 하는 명령어를 더 포함하고, 상기 단계들은:
디스플레이 상에 상기 패턴 템플릿을 포함하는 상기 복수의 이미지를 제시하는 단계; 및
상기 선택된 광학 패턴에 오버레이된 그래픽 요소를 제시하는 단계를 포함하는, 메모리 디바이스.
선택적으로, 복수의 광학 패턴은 문자열을 포함하고; 복수의 광학 패턴은 2차원 광학 코드를 포함하고; 객체는 제1 객체이고, 상기 방법은 이미지 내의 라벨의 상대 치수에 기초해서 복수의 이미지에서 제2 객체의 물리적 치수를 추정하는 단계를 더 포함하고; 복수의 광학 패턴은 문자열을 포함하고; 복수의 광학 패턴은 2차원 광학 코드를 포함하고; 그리고/또는 상기 방법은 디스플레이 상에 패턴 템플릿의 시각적 표시를 제시하는 단계를 더 포함한다.
일부 실시예에서:
1. 모바일 디바이스로서, 상기 모바일 디바이스는:
디스플레이;
카메라;
상기 카메라 및/또는 상기 디스플레이와 통신하는 하나 이상의 프로세서; 및
명령어를 저장하는 하나 이상의 메모리 디바이스 - 상기 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때 상기 모바일 디바이스로 하여금:
상기 카메라를 사용하여 신에서 광학 패턴을 검출하고 - 상기 광학 패턴은 객체 식별자를 인코딩함 -;
사용자 동작을 수신하고;
상기 사용자 동작을 수신한 후 상기 카메라의 초점 주기를 실행하고 - 초점 주기는 상기 카메라의 초점 위치를 제1 초점 위치로부터 제2 초점 위치로 변경하고, 상기 광학 패턴에 대응하는 상기 제2 초점 위치는 상기 신에서 초점이 맞춰져 있음 -;
상기 초점 주기를 실행한 후 상기 제2 초점 위치에서 상기 카메라를 사용하여 상기 신의 이미지를 획득하고;
상기 신의 이미지에서 상기 광학 패턴을 디코딩하여 객체 식별자를 생성하게 하는, 모바일 디바이스.
2. 제1항에 있어서, 상기 사용자 동작은 상기 신에서 광학 패턴을 검출한 후 상기 디스플레이를 통해 수신되는, 모바일 디바이스.
3. 제1항에 있어서, 상기 신은 제1 신이고, 상기 사용자 동작은 상기 모바일 디바이스의 모션을 포함하고, 상기 명령어들은 또한, 실행될 때, 상기 하나 이상의 프로세서로 하여금 상기 제1 신으로부터 제2 신으로 신 변화을 검출하게 하는, 모바일 디바이스.
4. 제3항에 있어서, 상기 신 변화을 검출하는 것은:
문턱 모션을 초과하는 상기 모바일 디바이스의 모션을 검출하거나;
상기 카메라에 의해 획득된 신의 이미지에서 모션 블러에 기초해서 신 변화를 검출하는 것을 포함하는, 모바일 디바이스.
5. 제1항에 있어서, 상기 신의 이미지는 제2 이미지이고, 상기 신에서 상기 광학 패턴을 검출하는 것은:
상기 카메라를 사용하여 상기 신의 제1 이미지를 획득하고 - 상기 카메라의 초점 위치가 제1 초점 위치에 있음 -;
상기 광학 패턴을 디코딩하지 않고 상기 제1 이미지에서 광학 패턴을 검출하고;
상기 광학 패턴이 상기 제1 이미지에서 초점이 맞지 않음을 확인하는 것을 포함하는, 모바일 디바이스.
6. 제5항에 있어서, 상기 광학 패턴이 상기 제1 이미지에서 초점이 맞지 않음을 확인하는 것은:
상기 제1 이미지에서 상기 광학 패턴의 해상도를 확인하고;
상기 제1 이미지의 광학 패턴의 해상도가 상기 광학 패턴을 디코딩하기 위한 최소 해상도 미만이라고 결정하는 것을 포함하는, 모바일 디바이스.
7. 제5항에 있어서, 상기 광학 패턴은 제1 광학 패턴이고, 상기 객체 식별자는 제1 객체 식별자이며, 상기 명령어는, 실행될 때, 상기 하나 이상의 프로세서가 또한:
상기 사용자 동작을 수신하기 전에 사기 제1 이미지에서 제2 광학 패턴을 검출하고 - 상기 제2 광학 패턴은 제2 객체 식별자를 인코딩함 -;
상기 제1 이미지에서 상기 제2 광학 패턴을 디코딩하고, 상기 제2 객체 식별자를 생성하도록 구성되는, 모바일 디바이스.
8. 방법으로서:
컴퓨터 시스템에 의해, 제1 초점 위치에서 카메라를 사용하여 신의 광학 패턴을 검출하는 단계 - 상기 광학 패턴은 객체 식별자를 인코딩함 -;
상기 컴퓨터 시스템에 의해 사용자 동작을 수신하는 단계;
상기 컴퓨터 시스템에 의해, 상기 사용자 동작을 수신한 후 상기 카메라의 초점 주기를 실행하는 단계 - 상기 초점 주기는 상기 카메라의 초점 위치를 제1 초점 위치로부터 제2 초점 위치로 변경하며, 상기 광학 패턴에 대응하는 상기 제2 초점 위치는 상기 신에서 초점이 맞음 -;
상기 컴퓨터 시스템에 의해, 상기 제2 초점 위치에서 상기 카메라를 사용하여 상기 신의 이미지를 획득하는 단계; 및
상기 컴퓨터 시스템에 의해 상기 신의 이미지의 광학 패턴을 디코딩하여 객체 식별자를 생성하는 단계를 포함하는 방법.
9. 제8항에 있어서,
상기 컴퓨터 시스템에 의해 상기 광학 패턴이 디코딩되지 않는다는 시각적 표시를 디스플레이에 제시하는 단계를 더 포함하는 방법.
10. 제8항에 있어서, 상기 신은 제1 신이고, 상기 사용자 동작은 상기 컴퓨터 시스템의 모션을 포함하고, 상기 방법은 상기 제1 신으로부터 제2 신으로의 신 변화를 검출하는 단계를 더 포함하는 방법.
11. 제10항에 있어서, 상기 신 변화를 검출하는 단계는:
문턱 모션을 초과하는 상기 컴퓨터 시스템의 모션을 검출하는 단계; 또는
상기 카메라에 의해 획득된 상기 신의 이미지에서 모션 블러에 기초해서 신 변화를 검출하는 단계를 포함하는, 방법.
12. 제8항에 있어서, 상기 신의 이미지는 제2 이미지이고, 상기 신에서 광학 패턴을 검출하는 단계는,
초점 위치가 제1 초점 위치에 있는 상기 카메라를 사용하여 상기 신의 제1 이미지를 획득하는 단계;
상기 광학 패턴을 디코딩하지 않고 상기 제1 이미지에서 상기 광학 패턴을 검출하는 단계; 및
상기 광학 패턴이 상기 제1 이미지에서 초점이 맞지 않음을 확인하는 단계를 포함하는, 방법.
13. 제12항에 있어서, 상기 광학 패턴이 상기 제1 이미지에서 초점이 맞지 않음을 확인하는 단계는,
상기 제1 이미지에서 상기 광학 패턴의 해상도를 확인하는 단계; 및
상기 제1 이미지의 광학 패턴의 해상도가 광학 패턴을 디코딩하기 위한 최소 해상도 미만이라고 결정하는 단계를 포함하는, 방법.
14. 제12항에 있어서, 상기 광학 패턴은 제1 광학 패턴이고, 상기 객체 식별자는 제1 객체 식별자이며, 상기 방법은:
상기 사용자 동작을 수신하기 전에 상기 제1 이미지에서 제2 광학 패턴을 검출하는 단계 - 상기 제2 광학 패턴은 제2 객체 식별자를 인코딩함 -; 및
상기 제1 이미지에서 제2 광학 패턴을 디코딩하여 제2 객체 식별자를 생성하는 단계를 더 포함하는 방법.
15. 명령어를 저장하는 메모리 디바이스로서, 상기 명령어는 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금:
제1 초점 위치에서 카메라를 사용하여 신에서 광학 패턴을 검출하고 - 상기 광학 패턴은 객체 식별자를 인코딩함 -;
사용자 동작을 수신하고;
상기 사용자 동작을 수신한 후 상기 카메라의 초점 주기를 실행하고 - 상기 초점 주기는 상기 카메라의 초점 위치를 제1 초점 위치로부터 제2 초점 위치로 변경하고, 광학 패턴에 대응하는 제2 초점 위치는 상기 신에서 초점을 맞춤 -;
상기 제2 초점 위치에서 상기 카메라를 사용하여 상기 신의 이미지를 획득하고;
상기 신의 이미지에서 상기 광학 패턴을 디코딩하여 객체 식별자를 생성하는, 메모리 디바이스.
16. 제15항에 있어서,
상기 컴퓨터 시스템에 의해 상기 카메라의 초점 위치를 제어하는 상기 카메라의 자동 초점 시스템을 비활성화는 것을 더 포함하는, 메모리 디바이스.
17. 제15항에 있어서, 상기 신은 제1 신이고, 상기 사용자 동작은 상기 컴퓨터 시스템의 모션을 포함하고, 상기 명령어는 또한 실행될 때 상기 하나 이상의 프로세서로 하여금 상기 제1 신으로부터 제2 신으로 신 변화를 검출하게 하는, 메모리 디바이스.
18. 제17항에 있어서, 상기 신 변화를 검출하는 것은,
문턱 모션을 초과하는 컴퓨터 시스템의 모션을 검출하거나;
상기 카메라에 의해 획득된 신의 이미지에서 모션 블러에 기초해서 신 변화를 검출하는 것을 포함하는, 메모리 디바이스.
19. 제15항에 있어서, 상기 신의 이미지는 제2 이미지이고, 상기 신에서 상기 광학 패턴을 검출하는 것은,
초점 위치가 제1 초점 위치에 있는 상기 카메라를 사용하여 상기 신의 제1 이미지를 획득하고;
상기 광학 패턴을 디코딩하지 않고 상기 제1 이미지에서 광학 패턴을 검출하고;
상기 광학 패턴이 상기 제1 이미지에서 초점이 맞지 않음을 확인하는 것을 포함하는, 메모리 디바이스.
20. 제19항에 있어서, 상기 광학 패턴이 상기 제1 이미지에서 초점이 맞음을 확인하는 것은:
상기 제1 이미지에서 광학 패턴의 해상도를 확인하고;
상기 제1 이미지의 광학 패턴의 해상도가 광학 패턴을 디코딩하기 위한 최소 해상도 미만이라고 결정하는 것을 포함하는, 메모리 디바이스.

Claims (45)

  1. 광학 코드를 추적하기 위한 시스템으로서,
    복수의 프레임을 획득하도록 구성된 이미지 센서를 갖는 카메라; 및
    하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는:
    상기 이미지 센서로부터 상기 복수의 프레임을 획득하고 -
    상기 복수의 프레임은 각각 코드의 이미지를 포함하고;
    상기 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고;
    상기 제2 프레임은 상기 제1 프레임 이후에 획득됨 -;
    상기 제1 프레임에서 상기 코드를 식별하고;
    상기 제1 프레임의 상기 코드로부터 기능을 추출하고;
    상기 코드의 추출된 기능에 기초해서 필터를 생성하고;
    상기 제2 프레임으로부터 특징을 추출하고;
    상기 필터와 결합된 상기 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵을 생성하고 - 상기 응답 맵은 상기 제2 프레임에서 상기 코드의 위치의 확률을 제공함 -;
    상기 코드를 디코딩하지 않고, 상기 응답 맵에 기초해서 상기 제2 프레임에서 상기 코드의 위치를 확인하도록 구성되는, 시스템.
  2. 제1항에 있어서,
    상기 필터는 상관 필터인, 시스템.
  3. 제1항에 있어서,
    상기 코드는 제1 코드이고,
    상기 하나 이상의 프로세서는, 상기 제2 프레임에서 제2 코드를 식별하되, 상기 제2 코드를 디코딩하지 않도록 구성되는, 시스템.
  4. 제1항에 있어서,
    상기 필터는 푸리에 변환(Fourier transform)을 사용하여 상기 코드의 추출된 기능을 주파수 공간으로 변환함으로써 생성되고,
    상기 응답 맵은:
    주파수 이미지를 생성하기 위해 푸리에 변환을 사용하여 상기 제2 프레임을 주파수 공간으로 변환하고;
    상기 필터를 사용하여 상기 주파수 이미지를 컨볼루션함으로써 생성되는, 시스템.
  5. 광학 코드를 추적하는 방법으로서,
    이미지 센서로부터 복수의 프레임을 획득하는 단계 -
    상기 복수의 프레임은 각각 코드의 이미지를 포함하고;
    상기 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고;
    상기 제2 프레임은 제1 프레임 이후에 획득됨 -;
    상기 제1 프레임에서 상기 코드를 식별하는 단계;
    상기 제1 프레임에서 상기 코드로부터 특징을 추출하는 단계;
    상기 코드의 추출된 특징에 기초해서 필터를 생성하는 단계;
    상기 제2 프레임으로부터 특징을 추출하는 단계;
    상기 필터와 결합된 상기 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵을 생성하는 단계; 및
    상기 코드를 디코딩하지 않고 상기 응답 맵에 기초해서 상기 제2 프레임에서 상기 코드의 위치를 확인하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 필터는 상관 필터인, 방법.
  7. 제5항에 있어서,
    상기 제1 프레임 및 상기 제2 프레임에서 상기 코드의 위치를 식별하는 것에 기초해서 상기 제1 프레임으로부터 상기 제2 프레임으로의 상기 이미지 센서의 호모그래피 포즈(homography pose) 변화를 계산하는 단계를 더 포함하는 방법.
  8. 제5항에 있어서,
    상기 복수의 프레임은 제3 프레임을 포함하고,
    상기 제3 프레임은 상기 제2 프레임 이후에 획득되고,
    상기 방법은 상기 제2 프레임에서의 상기 코드의 위치에 기초해서 상기 코드의 이미지를 포함하는 상기 제3 프레임의 서브 영역을 예측하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 제3 프레임으로부터의 상기 코드의 이미지를 이용하여 상기 코드를 디코딩하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 복수의 프레임은 제4 프레임을 포함하고,
    상기 제4 프레임은 상기 제3 프레임 이후에 획득되고,
    상기 코드는 제1 코드이고,
    상기 방법은:
    상기 제3 프레임에서 제2 코드의 위치를 식별하는 단계 - 여기서, 상기 제2 코드를 디코딩하지 않음 -; 및
    상기 제4 프레임에서 상기 제2 코드를 디코딩하는 단계를 포함하는 방법.
  11. 제5항에 있어서,
    상기 코드의 위치를 나타내는 디스플레이 상의 그래픽과 함께 상기 디스플레이 상에 상기 제2 프레임을 제시하는 단계를 더 포함하는 방법.
  12. 제5항에 있어서,
    상기 코드는 제1 코드이고,
    상기 방법은 상기 제2 프레임에서 제2 코드를 식별하는 단계를 더 포함하되, 상기 제2 코드를 디코딩하지 않는, 방법.
  13. 제5항에 있어서,
    상기 복수의 프레임은 1초 이내에 촬영된 10개의 프레임을 포함하는, 방법.
  14. 제5항에 있어서,
    상기 필터는 푸리에 변환을 사용하여 상기 코드의 추출된 기능을 주파수 공간으로 변환함으로서 생성되고,
    상기 응답 맵은:
    주파수 이미지를 생성하기 위해 푸리에 변환을 사용하여 상기 제2 프레임을 주파수 공간으로 변환하고;
    상기 필터를 사용하여 상기 주파수 이미지를 컨벌루션함으로써 생성되는, 방법.
  15. 제5항에 있어서,
    상기 코드는 기계 판독 가능한 바코드를 포함하는, 방법.
  16. 명령어를 포함하는 메모리 디바이스로서, 상기 명령어는 실행될 때 하나 이상의 프로세서로 하여금 코드를 추적하기 위해:
    이미지 센서로부터 복수의 프레임을 획득하는 단계 -
    상기 복수의 프레임은 각각 코드의 이미지를 포함하고;
    상기 복수의 프레임은 제1 프레임 및 제2 프레임을 포함하고;
    상기 제2 프레임은 상기 제1 프레임 이후에 획득됨 -;
    상기 제1 프레임에서 상기 코드를 식별하는 단계;
    상기 제1 프레임에서 상기 코드로부터 특징을 추출하는 단계;
    상기 코드의 추출된 특징에 기초해서 필터를 생성하는 단계;
    상기 제2 프레임으로부터 특징을 추출하는 단계;
    상기 필터와 결합된 상기 제2 프레임으로부터 추출된 특징에 기초해서 응답 맵을 생성하는 단계; 및
    상기 코드를 디코딩하지 않고 상기 응답 맵에 기초해서 상기 제2 프레임에서 상기 코드의 위치를 확인하는 단계를 수행하게 하는, 메모리 디바이스.
  17. 제44항에 있어서,
    상기 복수의 프레임은 제3 프레임을 포함하고,
    상기 제3 프레임은 상기 제2 프레임 이후에 획득되고,
    상기 명령어는 또한, 상기 하나 이상의 프로세서로 하여금 상기 제2 프레임 내의 상기 코드의 위치에 기초해서 상기 코드의 이미지를 포함하는 상기 제3 프레임의 서브 영역을 예측하게 하도록 구성되는, 메모리 디바이스.
  18. 제17항에 있어서,
    상기 명령어는, 상기 하나 이상의 프로세서로 하여금, 상기 제3 프레임으로부터 상기 코드의 이미지를 사용하여 상기 코드를 디코딩하게 하도록 구성되는, 메모리 디바이스.
  19. 제17항에 있어서,
    상기 코드는 제1 코드이고,
    상기 복수의 이미지는 제2 코드를 포함하고,
    상기 명령어는 상기 하나 이상의 프로세서로 하여금 상기 제1 코드에 대한 정보에 기초해서 상기 제1 코드와 제2 코드 사이의 상대 위치를 계산하게 하도록 구성되는, 메모리 디바이스.
  20. 제44항에 있어서,
    상기 명령어는 브라우저 기반 애플리케이션의 일부로서 실행되도록 구성되는, 메모리 디바이스.
  21. 광학 패턴을 디코딩하는 장치로서,
    카메라 - 상기 카메라는:
    이미지 센서; 및
    상기 이미지 센서에 빛을 집속시키도록 구성된 렌즈 - 상기 렌즈는 광각 렌즈임 -를 포함함; 및
    하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는:
    상기 카메라를 사용하여 복수의 이미지를 획득하고 -
    상기 렌즈는 상기 복수의 이미지를 획득하는 동안 고정 초점으로 설정되고;
    상기 복수의 이미지 각각에 대한 노출 시간은 1/500초 이하이고;
    상기 복수의 이미지는 상기 카메라의 프레임 레이트로 획득되고;
    상기 프레임 레이트는 초당 30프레임 이상임 -;
    상기 복수의 이미지를 분석하여 상기 복수의 이미지에서 광학 패턴을 검출하고;
    데이터 페이로드를 획득하기 위해 상기 광학 패턴을 디코딩하고;
    상기 장치의 메모리 디바이스에 상기 데이터 페이로드를 저장하도록 구성된, 장치.
  22. 제21항에 있어서,
    상기 렌즈는 단일 초점 렌즈인, 장치.
  23. 제21항에 있어서,
    토치를 더 포함하고, 상기 하나 이상의 프로세서는 상기 복수의 이미지를 획득하는 동안 상기 토치를 활성화하도록 구성되는, 장치.
  24. 제23항에 있어서,
    상기 토치는 사용자가 상기 장치의 스크린을 손가락으로 터치하는 동안 켜지고, 상기 사용자가 상기 스크린에서 손가락을 떼면 꺼지도록 구성되는, 장치.
  25. 제23항에 있어서,
    상기 토치는 상기 복수의 이미지를 획득하는 동안 일정한 값을 갖는, 장치.
  26. 제21항에 있어서,
    상기 복수의 이미지는 사용자가 손가락으로 상기 장치의 스크린을 터치하는 동안 획득되도록 구성되는, 장치.
  27. 제26항에 있어서,
    상기 카메라는, 상기 사용자가 상기 스크린에서 손가락을 떼는 것에 기초해서, 상기 복수의 이미지의 획득을 중지하는, 장치.
  28. 제21항에 있어서,
    상기 카메라는 100도 이상의 화각을 갖는, 장치.
  29. 광학 패턴을 디코딩하는 방법으로서,
    카메라를 사용하여 복수의 이미지를 획득하는 단계 -
    상기 카메라의 렌즈는 상기 복수의 이미지를 획득하는 동안 고정 초점으로 설정되고;
    상기 카메라의 렌즈는 광각 렌즈이고;
    상기 복수의 이미지 각각에 대한 노출 시간은 1/500초 이하이고;
    상기 복수의 이미지가 상기 카메라의 프레임 레이트로 획득되고;
    상기 프레임 레이트는 초당 30프레임 이상임 -;
    상기 복수의 이미지를 분석하여 상기 복수의 이미지에서 광학 패턴을 검출하는 단계;
    데이터 페이로드를 획득하기 위해 상기 광학 패턴을 디코딩하는 단계; 및
    상기 데이터 페이로드를 메모리 디바이스에 저장하는 단계를 포함하는 방법.
  30. 제29항에 있어서,
    사용자가 손가락으로 장치의 스크린을 터치하는 동안 상기 복수의 이미지가 획득되고, 상기 장치는 상기 카메라를 포함하는, 방법.
  31. 제30항에 있어서,
    상기 카메라는, 상기 사용자가 상기 스크린에서 손가락을 떼는 것에 기초해서 상기 복수의 이미지의 획득을 중지하는, 방법.
  32. 제31항에 있어서,
    상기 사용자가 상기 장치의 스크린을 손가락으로 터치하는 동안 토치가 켜지고, 상기 사용자가 스크린에서 손가락을 떼는 것에 기초해서 상기 토치가 꺼지는, 방법.
  33. 제29항에 있어서,
    상기 렌즈는 상기 복수의 이미지를 획득하는 동안 자동 초점이 비활성화된 가변 초점 렌즈인, 방법.
  34. 제29항에 있어서,
    상기 노출 시간은 특정 값으로 설정되고, 상기 카메라는 상기 복수의 이미지를 획득하는 동안 상기 카메라의 ISO를 조정하는, 방법.
  35. 제29항에 있어서,
    상기 광학 패턴을 디코딩하기 전에 상기 광학 패턴의 위치를 추적하는 단계를 더 포함하는 방법.
  36. 제29항에 있어서,
    상기 광학 패턴을 디코딩한 후, 상기 광학 패턴을 다시 디코딩하지 않고, 상기 광학 패턴의 위치를 추적하는 단계를 더 포함하는 방법.
  37. 제36항에 있어서,
    상기 광학 패턴은 제1 광학 패턴이고, 상기 방법은 상기 제1 광학 패턴을 포함하는 이미지에서 제2 광학 패턴을 자동으로 디코딩하는 단계를 더 포함하는 방법.
  38. 제37항에 있어서,
    상기 제1 광학 패턴은 상기 제2 광학 패턴과 동일한, 방법.
  39. 제29항에 있어서,
    상기 광학 패턴을 디코딩한 후, 타이머가 0.5초 이상인 이중 필터가 사용되지 않는, 방법.
  40. 제29항에 있어서,
    상기 광학 패턴은 제1 광학 패턴이고,
    상기 데이터 페이로드는 제1 데이터 페이로드이고,
    상기 방법은:
    제2 광학 패턴에 대해 상기 복수의 이미지를 분석하는 단계;
    제2 데이터 페이로드를 획득하기 위해 상기 제2 광학 패턴을 디코딩하는 단계; 및
    상기 제2 데이터 페이로드를 상기 메모리 디바이스에 저장하는 단계를 더 포함하는 방법.
  41. 제29항에 있어서,
    상기 노출 시간은 1/650초 이상이고 1/1000초 이하인, 방법.
  42. 제29항에 있어서,
    상기 프레임 레이트는 120fps 이상인, 방법.
  43. 제29항에 있어서,
    상기 복수의 이미지는 상기 광학 패턴으로부터 0.02미터 이상 0.5미터 이하의 거리에서 획득되는, 방법.
  44. 명령어를 포함하는 메모리 디바이스로서, 상기 명령어는 실행될 때 하나 이상의 프로세서로 하여금 광학 코드를 디코딩하기 위해:
    카메라를 사용하여 복수의 이미지를 획득하고 -
    상기 카메라의 렌즈는 복수의 이미지를 획득하는 동안 고정 초점으로 설정되고;
    상기 카메라의 렌즈는 광각 렌즈이고;
    상기 복수의 이미지 각각에 대한 노출 시간은 1/500초 이하이고;
    상기 복수의 이미지가 상기 카메라의 프레임 레이트로 획득되고;
    상기 프레임 레이트는 초당 30프레임 이상임 -;
    상기 복수의 이미지를 분석하여 상기 복수의 이미지에서 광학 패턴을 검출하고;
    데이터 페이로드를 획득하기 위해 상기 광학 패턴을 디코딩하고;
    상기 데이터 페이로드를 저장하게 하는, 메모리 디바이스.
  45. 제44항에 있어서,
    상기 명령어는, 실행될 때, 상기 하나 이상의 프로세서로 하여금 상기 데이터 페이로드를 원격 하드웨어 서버로 전송하게 하는, 메모리 디바이스.
KR1020227038294A 2020-04-01 2021-03-31 다수의 광학 코드의 디코딩 KR20230020953A (ko)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
US202063003675P 2020-04-01 2020-04-01
US63/003,675 2020-04-01
US202063017493P 2020-04-29 2020-04-29
US63/017,493 2020-04-29
US202063019818P 2020-05-04 2020-05-04
US63/019,818 2020-05-04
US202063025850P 2020-05-15 2020-05-15
US63/025,850 2020-05-15
US16/905,722 US10846561B1 (en) 2020-04-01 2020-06-18 Recognition and selection of discrete patterns within a scene or image
US16/905,722 2020-06-18
US202063044635P 2020-06-26 2020-06-26
US63/044,635 2020-06-26
US16/920,061 US10963658B1 (en) 2020-04-01 2020-07-02 Image analysis for tracking, decoding, and positioning multiple optical patterns
US16/920,061 2020-07-02
US17/105,082 US11087105B1 (en) 2020-05-15 2020-11-25 Performance improvements for recognition of optical patterns in images
US17/105,082 2020-11-25
US17/139,529 2020-12-31
US17/139,529 US11886954B2 (en) 2020-04-01 2020-12-31 Image analysis for mapping objects in an arrangement
US202163149009P 2021-02-12 2021-02-12
US63/149,009 2021-02-12
US17/186,909 US11216628B2 (en) 2020-04-01 2021-02-26 High-speed scanning of optical patterns using a digital camera
US17/186,909 2021-02-26
PCT/US2021/025212 WO2021202762A1 (en) 2020-04-01 2021-03-31 Image analysis for tracking, decoding, and positioning multiple optical patterns

Publications (1)

Publication Number Publication Date
KR20230020953A true KR20230020953A (ko) 2023-02-13

Family

ID=77922263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227038294A KR20230020953A (ko) 2020-04-01 2021-03-31 다수의 광학 코드의 디코딩

Country Status (5)

Country Link
US (2) US11216628B2 (ko)
JP (1) JP2023520786A (ko)
KR (1) KR20230020953A (ko)
AU (1) AU2021247161A1 (ko)
WO (1) WO2021202762A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846561B1 (en) 2020-04-01 2020-11-24 Scandit Ag Recognition and selection of discrete patterns within a scene or image
US11514665B2 (en) 2020-04-01 2022-11-29 Scandit Ag Mapping optical-code images to an overview image
US11216628B2 (en) 2020-04-01 2022-01-04 Scandit Ag High-speed scanning of optical patterns using a digital camera
US11922271B1 (en) 2020-05-15 2024-03-05 Scandit Ag Virtual screen standby mode for mobile device camera
US11403477B1 (en) 2020-05-15 2022-08-02 Scandit Ag Image exposure performance improvements for recognition of optical patterns
US11244147B2 (en) 2020-05-15 2022-02-08 Scandit Ag Optical data exchange while preserving social distancing
US11417001B1 (en) 2020-07-27 2022-08-16 Scandit Ag Detecting discrete optical patterns using depth estimation
US11495036B1 (en) 2021-01-29 2022-11-08 Scandit Ag Segmenting images for optical character recognition
US11880738B1 (en) 2021-08-17 2024-01-23 Scandit Ag Visual odometry for optical pattern scanning in a real scene
US20230140342A1 (en) * 2021-10-29 2023-05-04 Flir Commercial Systems, Inc. Wide field of view imaging systems and methods
US11557136B1 (en) 2022-02-23 2023-01-17 Scandit Ag Identity document verification based on barcode structure
CN116232423A (zh) * 2022-12-29 2023-06-06 西安空间无线电技术研究所 一种基于主从同步的时分双工星间链路通信方法

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4167756A (en) 1976-09-08 1979-09-11 Lectrolarm Custom Systems, Inc. Split image camera system
USD344261S (en) 1991-12-20 1994-02-15 Funai Electric Engineering Co., Ltd. Battery charger for a cellular phone battery
US5744815A (en) 1995-10-05 1998-04-28 Symbol Technologies, Inc. Beam splitting optics in bar code readers
USD473872S1 (en) 1996-03-18 2003-04-29 Hand Held Products, Inc. Contoured housing
US6580453B1 (en) 1996-10-25 2003-06-17 Canon Kabushiki Kaisha Image sensing apparatus
US20030059124A1 (en) 1999-04-16 2003-03-27 Viisage Technology, Inc. Real-time facial recognition and verification system
FI109742B (fi) 1999-10-26 2002-09-30 Nokia Corp Matkaviestin
JP2002290793A (ja) 2001-03-28 2002-10-04 Mitsubishi Electric Corp 撮像装置付携帯電話器
US8339379B2 (en) * 2004-04-29 2012-12-25 Neonode Inc. Light-based touch screen
JP2004032507A (ja) 2002-06-27 2004-01-29 Denso Wave Inc カメラ付携帯端末機用光学情報読取アダプタ
TWM243863U (en) 2003-09-03 2004-09-11 Benq Corp Mobile phone and engagement device for battery thereof
US20060011724A1 (en) 2004-07-15 2006-01-19 Eugene Joseph Optical code reading system and method using a variable resolution imaging sensor
US7293712B2 (en) 2004-10-05 2007-11-13 Hand Held Products, Inc. System and method to automatically discriminate between a signature and a dataform
KR100636010B1 (ko) 2005-03-25 2006-10-18 김배훈 파노라마 촬영용 카메라 폰
US7383994B2 (en) 2005-05-03 2008-06-10 Datalogic Scanning, Inc. Methods and systems for forming images of moving optical codes
TWI375848B (en) 2005-11-18 2012-11-01 Hon Hai Prec Ind Co Ltd Portable electron apparatus having an image capture unit
USD576197S1 (en) 2006-12-26 2008-09-02 Sony Corporation Combined video camera and video tape recorder
US20090002797A1 (en) 2007-06-27 2009-01-01 Wah Yiu Kwong Multi-directional camera for a mobile device
US8497928B2 (en) 2007-07-31 2013-07-30 Palm, Inc. Techniques to automatically focus a digital camera
JP4667430B2 (ja) 2007-08-09 2011-04-13 日立オートモティブシステムズ株式会社 車載用カメラ
US7854385B2 (en) 2007-10-31 2010-12-21 Symbol Technologies, Inc. Automatic region of interest focusing for an imaging-based bar code reader
US8596541B2 (en) 2008-02-22 2013-12-03 Qualcomm Incorporated Image capture device with integrated barcode scanning
JP4507129B2 (ja) 2008-06-06 2010-07-21 ソニー株式会社 追尾点検出装置および方法、プログラム、並びに記録媒体
CN102239494B (zh) * 2008-07-24 2014-07-23 加利福尼亚大学董事会 用于色散型傅立叶变换成像的设备和方法
US20100102129A1 (en) 2008-10-29 2010-04-29 Symbol Technologies, Inc. Bar code reader with split field of view
EP2209078A1 (de) 2009-01-15 2010-07-21 ETH Zürich Verfahren und tragbares Gerät zum Erkennen von Barcodes
US8146821B2 (en) * 2009-04-02 2012-04-03 Symbol Technologies, Inc. Auto-exposure for multi-imager barcode reader
US20110043683A1 (en) 2009-04-17 2011-02-24 IOculi Inc Image diversion systems & methods for image capture devices
US20100328420A1 (en) 2009-06-29 2010-12-30 Roman Kendyl A Optical adapters for mobile devices with a camera
US20110007205A1 (en) 2009-07-08 2011-01-13 Dechnia, LLC Rear to forward facing camera adapter
USD643034S1 (en) 2009-07-14 2011-08-09 Datalogic Mobile S.R.L. Portable computer with bar code reader
US20110081946A1 (en) 2009-10-07 2011-04-07 Byron Singh N John Singh Apparatus and method for changing an image-capturing position of a mobile phone camera using a mirror device
GB201002248D0 (en) 2010-02-10 2010-03-31 Lawton Thomas A An attachment for a personal communication device
USD678870S1 (en) 2010-03-10 2013-03-26 Incipio Technologies, Inc. Case
USD670278S1 (en) 2010-03-30 2012-11-06 Velocomp, LLC. Cell phone enclosure
CA138177S (en) 2010-07-15 2011-08-15 Fujitsu Frontech Ltd Handheld information terminal device
USD678936S1 (en) 2010-10-15 2013-03-26 Daily Systems, LLC Smartphone printer
USD654931S1 (en) 2011-02-24 2012-02-28 Third Rail Mobility, LLC. Combined power module and cover for portable electronic devices
USD659564S1 (en) 2011-03-23 2012-05-15 Trimble Navigation Limited Global navigation satellite system (GNSS) receiver device
USD717304S1 (en) 2012-03-26 2014-11-11 Patientsafe Solutions, Inc. Scanning jacket for a handheld device
WO2012177661A2 (en) 2011-06-20 2012-12-27 Rhp Multimedia Corp. Case for portable electronic device
US20140285913A1 (en) 2011-06-20 2014-09-25 Rhp Multimedia Corp. Moveable mirror assembly for electronic device case
US10474858B2 (en) 2011-08-30 2019-11-12 Digimarc Corporation Methods of identifying barcoded items by evaluating multiple identification hypotheses, based on data from sensors including inventory sensors and ceiling-mounted cameras
US8740081B2 (en) 2011-11-03 2014-06-03 Cognex Corporation Method and apparatus for ordering code candidates in image for decoding attempts
USD685360S1 (en) 2011-12-20 2013-07-02 King Slide Technology Co., Ltd. Rear housing for electronic device
USD688654S1 (en) 2011-12-23 2013-08-27 Dean Stevinson Peel type earphone storage case
US9141842B2 (en) * 2012-02-15 2015-09-22 Datalogic ADC, Inc. Time division exposure of a data reader
USD667823S1 (en) 2012-03-30 2012-09-25 Hybrid Skillz Inc. Protective cover
USD698772S1 (en) 2012-03-30 2014-02-04 Hybrid Skillz Inc. Protective cover
USD748085S1 (en) 2013-05-17 2016-01-26 Hybrid Skillz Inc. Protective cover
USD768617S1 (en) 2012-03-30 2016-10-11 Hybrid Skillz Inc. Protective cover
USD710343S1 (en) 2012-06-15 2014-08-05 Aoptix Technologies, Inc. Enclosure for a mobile device
US10387484B2 (en) 2012-07-24 2019-08-20 Symbol Technologies, Llc Mobile device for displaying a topographical area defined by a barcode
US10192086B2 (en) 2012-10-04 2019-01-29 The Code Corporation Barcode-reading enhancement system for a computing device that comprises a camera and an illumination system
US10248821B2 (en) 2012-10-04 2019-04-02 The Code Corporation Target generating structure for an accessory for a mobile device
US10303910B2 (en) 2012-10-04 2019-05-28 The Code Corporation Apparatus comprising multiple sets of optics to facilitate capturing barcode and non-barcode images
US10298780B2 (en) 2016-11-16 2019-05-21 Pixameter Corp. Long range image calibration
US8866927B2 (en) 2012-12-13 2014-10-21 Google Inc. Determining an image capture payload burst structure based on a metering image capture sweep
US9019420B2 (en) 2012-12-19 2015-04-28 Covr Llc Image redirection system for mobile devices
USD717287S1 (en) 2013-01-07 2014-11-11 G-Form, LLC Protective case for an electronic device
US9107484B2 (en) 2013-01-08 2015-08-18 Hand Held Products, Inc. Electronic device enclosure
USD732011S1 (en) 2013-02-11 2015-06-16 Dean Stevinson Earphone storage case
USD723532S1 (en) 2013-02-11 2015-03-03 Dean Stevinson Combo earphone case
USD726701S1 (en) 2013-02-11 2015-04-14 Dean Stevinson Exoskeleton combo case
USD724573S1 (en) 2013-02-11 2015-03-17 Dean Stevinson Combo side opening earphone case
US9304376B2 (en) 2013-02-20 2016-04-05 Hand Held Products, Inc. Optical redirection adapter
US9946963B2 (en) 2013-03-01 2018-04-17 Layar B.V. Barcode visualization in augmented reality
USD760209S1 (en) 2013-04-11 2016-06-28 Huizhou Tcl Mobile Communication Co., Ltd. Mobile phone sheath embedded with projection device
USD728551S1 (en) 2013-04-23 2015-05-05 Hosiden Corporation Jacket for portable terminal
USD744470S1 (en) 2013-04-26 2015-12-01 Dean Stevinson Combo case having domed portion
US20140327815A1 (en) 2013-05-06 2014-11-06 Cvs Pharmacy, Inc. Smartphone scanner adapter
USD734336S1 (en) 2013-08-09 2015-07-14 Datalogic Ip Tech S.R.L. Coded information reader
USD760210S1 (en) 2013-09-03 2016-06-28 Flir Systems, Inc. Mobile device attachment with camera
USD710346S1 (en) 2013-09-09 2014-08-05 Otter Products, Llc Case for electronic device
USD716785S1 (en) 2013-09-13 2014-11-04 MOHS Innovations LLC Cellphone holder
US9467627B2 (en) 2013-10-26 2016-10-11 The Lightco Inc. Methods and apparatus for use with multiple optical chains
US10229301B2 (en) 2013-11-28 2019-03-12 Datalogic Ip Tech S.R.L. Optical code reading system with dynamic image regionalization
USD754114S1 (en) 2013-12-23 2016-04-19 Griffin Technology, Inc Electronic device case
USD754650S1 (en) 2013-12-23 2016-04-26 Griffin Technology, Inc. Electronic device case
US9654675B2 (en) 2014-03-25 2017-05-16 Kessler Optics & Photonics Solutions Ltd. Optical attachment for deviating field of view
WO2015163833A1 (en) 2014-04-23 2015-10-29 Gürzumar Süleyman Ataullah Digital image capturing method and electronic device for digital image capturing
US10176452B2 (en) 2014-06-13 2019-01-08 Conduent Business Services Llc Store shelf imaging system and method
US9928392B2 (en) * 2014-06-13 2018-03-27 The Code Corporation Barcode-reading system that obtains ranging data via targeting illumination
US9659204B2 (en) 2014-06-13 2017-05-23 Conduent Business Services, Llc Image processing methods and systems for barcode and/or product label recognition
US9672400B2 (en) 2014-07-08 2017-06-06 Aila Technologies Inc. Imaging and peripheral enhancements for mobile devices
USD719167S1 (en) 2014-08-22 2014-12-09 Patientsafe Solutions, Inc. Scanning jacket for a handheld personal digital assistant (PDA) device
USD719166S1 (en) 2014-08-22 2014-12-09 Patientsafe Solutions, Inc. Scanning jacket for a handheld phone device
US9342724B2 (en) 2014-09-10 2016-05-17 Honeywell International, Inc. Variable depth of field barcode scanner
US9836635B2 (en) 2014-10-09 2017-12-05 Cognex Corporation Systems and methods for tracking optical codes
USD760710S1 (en) 2014-12-15 2016-07-05 Bloomberg Finance L.P. Mobile telephone case with electronic FOB
USD761240S1 (en) 2014-12-15 2016-07-12 Bloomberg Finance L.P. Mobile telephone case
US9830488B2 (en) 2014-12-30 2017-11-28 Hand Held Products, Inc. Real-time adjustable window feature for barcode scanning and process of scanning barcode with adjustable window feature
US10198648B1 (en) 2015-04-10 2019-02-05 Digimarc Corporation Decoding 1D-barcodes in digital capture systems
US10063776B2 (en) 2015-05-01 2018-08-28 Gopro, Inc. Camera mode control
AU2015202286A1 (en) 2015-05-01 2016-11-17 Canon Kabushiki Kaisha Method, system and apparatus for determining distance to an object in a scene
USD771631S1 (en) 2015-06-02 2016-11-15 Hand Held Products, Inc. Mobile computer housing
KR20170006559A (ko) 2015-07-08 2017-01-18 엘지전자 주식회사 이동단말기 및 그 제어방법
US20170041540A1 (en) 2015-08-04 2017-02-09 Ronald B Foster Energy-efficient secure vision processing applying object detection algorithms
USD862441S1 (en) 2015-12-03 2019-10-08 Scandit Ag Case for a mobile device
US9805296B2 (en) 2016-02-23 2017-10-31 The Chinese University Of Hong Kong Method and apparatus for decoding or generating multi-layer color QR code, method for recommending setting parameters in generation of multi-layer QR code, and product comprising multi-layer color QR code
US11210777B2 (en) * 2016-04-28 2021-12-28 Blancco Technology Group IP Oy System and method for detection of mobile device fault conditions
US10338661B2 (en) 2016-09-20 2019-07-02 International Business Machines Corporation Planning and managing the power utilization of a battery-powered device
US10114997B2 (en) 2016-11-16 2018-10-30 Hand Held Products, Inc. Reader for optical indicia presented under two or more imaging conditions within a single frame time
US10114999B1 (en) 2016-12-02 2018-10-30 Koupon Media, Inc. Using dynamic occlusion to protect against capturing barcodes for fraudulent use on mobile devices
USD860180S1 (en) 2017-01-12 2019-09-17 Scandit Ag Case for a mobile communications device
US20180314908A1 (en) 2017-05-01 2018-11-01 Symbol Technologies, Llc Method and apparatus for label detection
WO2018211781A1 (ja) 2017-05-18 2018-11-22 ソニー株式会社 撮像装置、撮像方法
JP7024351B2 (ja) 2017-11-24 2022-02-24 富士通株式会社 棚割生成プログラム、棚割生成方法及び棚割生成装置
US10846561B1 (en) 2020-04-01 2020-11-24 Scandit Ag Recognition and selection of discrete patterns within a scene or image
EP3738302A2 (en) 2018-01-08 2020-11-18 Scandit AG Mobile device case and techniques for multi-view imaging
US11049279B2 (en) 2018-03-27 2021-06-29 Denso Wave Incorporated Device for detecting positional relationship among objects
DE102018109392A1 (de) 2018-04-19 2019-10-24 Beckhoff Automation Gmbh Verfahren zum erfassen optischer codes, automatisierungssystem und computerprogrammprodukt zum durchführen des verfahrens
JP2019200697A (ja) 2018-05-18 2019-11-21 東芝テック株式会社 棚管理システムおよびプログラム
US10452959B1 (en) 2018-07-20 2019-10-22 Synapse Tehnology Corporation Multi-perspective detection of objects
US10818014B2 (en) 2018-07-27 2020-10-27 Adobe Inc. Image object segmentation based on temporal information
JP7082545B2 (ja) 2018-08-01 2022-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、情報処理装置およびプログラム
US10426442B1 (en) 2019-06-14 2019-10-01 Cycle Clarity, LLC Adaptive image processing in assisted reproductive imaging modalities
US20210125141A1 (en) 2019-10-23 2021-04-29 Snap-On Incorporated Data acquisition using machine-readable optical symbols
US11216628B2 (en) 2020-04-01 2022-01-04 Scandit Ag High-speed scanning of optical patterns using a digital camera
US11087105B1 (en) 2020-05-15 2021-08-10 Scandit Ag Performance improvements for recognition of optical patterns in images
US11244147B2 (en) 2020-05-15 2022-02-08 Scandit Ag Optical data exchange while preserving social distancing

Also Published As

Publication number Publication date
AU2021247161A1 (en) 2022-11-17
US20210312151A1 (en) 2021-10-07
WO2021202762A1 (en) 2021-10-07
JP2023520786A (ja) 2023-05-19
US11803718B1 (en) 2023-10-31
US11216628B2 (en) 2022-01-04

Similar Documents

Publication Publication Date Title
US11803718B1 (en) High-speed scanning of optical patterns with a torch for an aimer
US11886954B2 (en) Image analysis for mapping objects in an arrangement
US11514665B2 (en) Mapping optical-code images to an overview image
US10373116B2 (en) Intelligent inventory management and related systems and methods
US10038839B2 (en) Assisted text input for computing devices
US20150046299A1 (en) Inventory Assessment with Mobile Devices
US9886678B2 (en) Graphic representations of planograms
US9275278B2 (en) Systems and methods for implementing and using off-center embedded media markers
CN112585667A (zh) 智能平台柜台展示系统和方法
US20200201513A1 (en) Systems and methods for rfid tag locationing in augmented reality display
US20170256072A1 (en) Information processing system, information processing method, and non-transitory computer-readable storage medium
US11810304B1 (en) Perspective distortion correction of discrete optical patterns in images using depth sensing
JP6687199B2 (ja) 商品棚位置登録プログラム、及び情報処理装置
WO2019060767A1 (en) INTELLIGENT STOCK MANAGEMENT AND ASSOCIATED SYSTEMS AND METHODS
US20120130867A1 (en) Commodity information providing system and commodity information providing method
US11600019B2 (en) Image-based inventory estimation
US9813567B2 (en) Mobile device and method for controlling the same
WO2018146959A1 (ja) システム、情報処理装置、情報処理方法、プログラム及び記録媒体
US20220121849A1 (en) Method of acquisition and interpretation of images used for commerce items
CN113382207A (zh) 一种人员定位方法、装置及系统
US20100273140A1 (en) Apparel dressing system and method for assisting user to try on apparel item
US10860821B1 (en) Barcode disambiguation
US20200192472A1 (en) Gaze Direction Mapping
US12008813B2 (en) Photo instructions and confirmation
Hei et al. Augmented Reality stocktaking system with RGB-D based object counting