KR102361570B1 - 환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어 - Google Patents

환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어 Download PDF

Info

Publication number
KR102361570B1
KR102361570B1 KR1020197028726A KR20197028726A KR102361570B1 KR 102361570 B1 KR102361570 B1 KR 102361570B1 KR 1020197028726 A KR1020197028726 A KR 1020197028726A KR 20197028726 A KR20197028726 A KR 20197028726A KR 102361570 B1 KR102361570 B1 KR 102361570B1
Authority
KR
South Korea
Prior art keywords
image
objects
delete delete
classes
particular image
Prior art date
Application number
KR1020197028726A
Other languages
English (en)
Other versions
KR20190126347A (ko
Inventor
매튜 제이. 브리지스
알레산드로 핀
하트위그 아담
제프리 엠. 길버트
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20190126347A publication Critical patent/KR20190126347A/ko
Application granted granted Critical
Publication of KR102361570B1 publication Critical patent/KR102361570B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • G06K9/6227
    • G06K9/6267
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/993Evaluation of the quality of the acquired pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19113Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • H04N5/23216
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/44504Circuit details of the additional information generator, e.g. details of the character or graphics signal generator, overlay mixing circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

효율적인 이미지 분석을 위한 방법, 시스템 및 장치. 일부 양태에서, 시스템은 이미지들을 캡처하도록 구성된 카메라, 카메라의 움직임을 검출하도록 구성된 하나 이상의 환경 센서, 데이터 프로세싱 장치 및 데이터 프로세싱 장치와 데이터 통신하는 메모리 저장 장치를 포함한다. 데이터 프로세싱 장치는 모바일 디바이스 카메라에 의해 캡처된 다수의 이미지들 각각에 대해, 상기 카메라가 상기 이미지를 캡처한 시간에 상기 카메라의 움직임을 나타내는 데이터에 액세스할 수 있다. 또한, 데이터 프로세싱 장치는 상기 이미지들로부터 각 이미지에 대한 카메라의 움직임을 나타내는 데이터에 기초하여 분석할 특정한 이미지를 선택하고, 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하기 위해 상기 특정한 이미지를 분석하고 상기 하나 이상의 인식된 오브젝트들과 관련된 컨텐츠를 제시할 수 있다.

Description

환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어
컴퓨터 비전 기법은 컴퓨터가 이미지로부터 정보를 분석하고 추출할 수 있게 한다. 예를 들어, 광학 문자 인식(OCR) 기법은 사용하여 이미지로부터 텍스트를 검출하고 추출하는데 사용될 수 있다. 유사하게, 에지 검출 기법들은 이미지들에서 도시된 오브젝트들을 검출하는데 사용될 수 있다.
본 명세서는 전자 디바이스가 이미지에서 오브젝트들을 인식하고 및/또는 이미지로부터 정보를 추출하고, 전자 디바이스의 계산 및 전력 소비를 줄이면서 이미지와 관련된 정보 또는 다른 컨텐츠를 제시할 수 있게 하는 효율적인 이미지 분석에 관한 기술을 설명한다.
일반적으로, 본 명세서에 기술된 주제의 하나의 혁신적인 양태는 이미지 픽셀 데이터를 출력하도록 구성된 이미지 센서, 이미지 픽셀 데이터를 일시적으로 저장하도록 구성된 이미지 버퍼, 환경 센서 및 이미지 프로세싱 장치를 포함하는 디바이스에서 구현될 수 있다. 또한 디바이스는 상기 환경 센서에 의해 출력된 신호에 기초하여 상기 이미지 픽셀 데이터의 예상 이미지 품질을 결정하고, 상기 예상 이미지 품질에 따라, 상기 이미지 픽셀 데이터를 상기 이미지 프로세싱 장치에 선택적으로 제공하도록 구성된 제어기를 포함할 수 있다. 이 양태들의 다른 구현예들은 상기 방법들의 액션들을 수행하도록 구성된 대응 장치들, 시스템들 및 컴퓨터 저장 디바이스들에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 상기 제어기가 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질이 미리 설정된 최소 품질 임계치 미만인 것으로 결정하면, 상기 이미지 픽셀 데이터가 상기 이미지 프로세싱 장치에 제공되지 않는다. 상기 제어기가 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질이 미리 설정된 최소 품질 임계치 이상인 것으로 결정하면, 상기 이미지 픽셀 데이터가 상기 이미지 프로세싱 장치에 제공된다.
일부 양태들은 선택된 프레임 버퍼를 포함한다. 상기 제어기는 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질에 따라, 상기 이미지 픽셀 데이터를 상기 이미지 버퍼로부터 상기 선택된 프레임 버퍼로 복사하거나 상기 이미지 버퍼에 대한 선택된 프레임 포인터를 업데이트하고, 상기 이미지 프로세싱 장치에 상기 선택된 프레임 버퍼에 저장된 상기 이미지 픽셀 데이터를 제공하도록 구성될 수 있다.
일부 양태에서, 상기 제어기는 상기 이미지 버퍼 내의 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질을 상기 선택된 프레임 버퍼의 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질과 비교하고, 상기 이미지 버퍼 내의 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질이 상기 선택된 프레임 버퍼의 상기 예상 이미지 품질과 동일하거나 초과하는 경우, 상기 이미지 픽셀 데이터를 상기 이미지 버퍼로부터 상기 선택된 프레임 버퍼로 복사하거나 상기 이미지 버퍼에 대한 선택된 프레임 포인터를 업데이트하도록 구성될 수 있다.
일부 양태에서, 상기 환경 센서는 관성 센서를 포함하고, 상기 제어기는 상기 장치의 감지된 움직임에 기초하여 상기 예상 이미지 품질을 결정하도록 구성된다. 일부 양태에서, 상기 제어기는 상기 환경 센서에 의해 출력된 신호 및 상기 이미지 센서에 의해 출력된 신호에 기초하여, 상기 예상 이미지 품질을 결정하도록 구성된다. 일부 양태에서, 상기 이미지 센서에 의해 출력된 신호는 상기 이미지 센서에 의해 출력된 상기 이미지 픽셀 데이터에 관한 밝기 정보, 초점 정보 또는 히스토그램 데이터 중 적어도 하나를 포함한다.
일반적으로, 본 명세서에 기술된 주제의 다른 양태는 방법들로 구현될 수 있고, 상기 방법은 이미지 픽셀 데이터를 생성하는 단계, 상기 이미지 픽셀 데이터를 이미지 버퍼에 일시적으로 저장하는 단계, 환경 신호에 기초하여 상기 이미지 픽셀 데이터의 예상 이미지 품질을 결정하는 단계, 및 상기 예상 이미지 품질에 따라, 상기 이미지 픽셀 데이터를 선택적으로 이미지 프로세싱하는 단계를 포함한다. 이 양태들의 다른 구현예들은 상기 방법들의 액션들을 수행하도록 구성된 대응 장치들, 시스템들 및 컴퓨터 저장 디바이스들에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질이 미리 설정된 최소 품질 임계치 미만인 것으로 결정되면, 상기 이미지 픽셀 데이터는 상기 이미지 프로세싱 장치에 제공되지 않는다.
일부 양태는 상기 이미지 픽셀 데이터의 상기 예상 이미지 품질에 따라, 상기 이미지 픽셀 데이터를 상기 이미지 버퍼로부터 선택된 프레임 버퍼로 복사하거나 상기 이미지 버퍼에 대한 포인터를 업데이트하는 단계를 더 포함한다. 상기 선택된 프레임 버퍼에 저장된 상기 이미지 픽셀 데이터는 이미지 프로세싱을 위해 제공될 수 있다.
일부 양상들에서, 환경 신호는 관성 신호를 포함하고, 예상 이미지 품질은 감지된 움직임에 기초하여 결정된다. 예상 이미지 품질은 환경 신호 및 이미지 픽셀 데이터로 생성된 이미지 정보 신호에 기초하여 결정될 수 있다. 상기 이미지 정보 신호는 상기 생성된 이미지 픽셀 데이터와 관련된 밝기 정보, 초점 정보 또는 히스토그램 데이터 중 적어도 하나를 포함할 수 있다.
일반적으로, 본 명세서에 기술된 발명의 다른 양태는 각각의 오브젝트 클래스들에 대응하는 하나 이상의 이미지 인식 모듈들을 포함하는 이미지 프로세싱 장치에서 구현될 수 있다. 각 이미지 인식 모듈은 각각의 오브젝트 클래스에서 하나 이상의 오브젝트들을 식별하도록 구성될 수 있다. 이미지 프로세싱 장치는 입력 이미지를 수신하고, 입력 이미지가 오브젝트 클래스들 중 하나를 식별하는 이미지 피처를 포함하는지 여부를 결정하고, 상기 식별된 오브젝트 클래스에 대응하는 이미지 인식 모듈에 의한 프로세싱을 위해 입력 이미지를 제공하도록 구성된 코어스 인식 모듈을 포함할 수 있다. 이 양태들의 다른 구현예들은 상기 방법들의 액션들을 수행하도록 구성된 대응 시스템들, 방법들 및 컴퓨터 저장 디바이스들에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 상기 코어스 인식 모듈은 상기 이미지 인식 모듈에 상기 오브젝트의 위치 및/또는 방향을 나타내는 정보를 제공하도록 구성된다. 일부 양태에서, 상기 이미지 인식 모듈들은 텍스트 오브젝트 클래스, 랜드마크 오브젝트 클래스, 바코드 오브젝트 클래스, 미디어 오브젝트 클래스 및 아트워크 오브젝트 클래스 중 하나 이상에 대응한다.
일부 양태에서, 상기 하나 이상의 이미지 인식 모듈들은 상기 각각의 오브젝트 클래스에서 식별된 오브젝트를 연관 신뢰 스코어와 함께 출력하도록 구성된다. 상기 하나 이상의 이미지 인식 모듈들은 상기 이미지 인식 모듈의 이전 출력에 기초하여 식별된 오브젝트에 대한 출력 신뢰 스코어를 조정하도록 구성될 수 있다.
일부 양태에서, 상기 출력 신뢰 스코어는 상기 식별된 오브젝트 또는 상기 식별된 오브젝트 내의 텍스트와 이전에 식별된 오브젝트 간의 편집 거리, 상기 이전에 식별된 오브젝트의 위치 및 상기 이전에 식별된 오브젝트와 연관된 상기 신뢰 스코어 중 적어도 하나에 기초하여 조정될 수 있다. 일부 양태들은 통신 유닛을 포함한다. 상기 코어스 인식 모듈은 상기 하나 이상의 이미지 인식 모듈들로부터 원격에 배치될 수 있다.
일부 양태에서, 상기 코어스 인식 모듈은 상기 이미지 인식 모듈에 의한 프로세싱을 위해 상기 입력 이미지의 감소된 버전을 제공하도록 구성된다. 상기 입력 이미지의 상기 감소된 버전은 상기 입력 이미지의 저해상도 버전, 크롭된 버전 또는 벡터 표현 중 하나일 수 있다.
일반적으로, 본 명세서에 기술된 주제의 다른 양태는 이미지 프로세싱 방법들로 구현될 수 있고, 상기 방법은 입력 이미지를 수신하는 단계, 상기 입력 이미지가 하나 이상의 오브젝트 클래스들 중 하나를 식별하는 이미지 피처를 포함하는지 여부를 결정하는 단계, 및 상기 식별된 오브젝트 클래스에서 하나 이상의 오브젝트들을 식별하기 위해 상기 입력 이미지를 이미지 프로세싱하는 단계를 포함한다. 이 양태들의 다른 구현예들은 상기 방법들의 액션들을 수행하도록 구성된 대응 시스템들, 장치들 및 컴퓨터 저장 디바이스들에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태들은 오브젝트의 위치 및/또는 방향을 나타내는 정보를 결정하는 것을 포함한다. 하나 이상의 오브젝트들을 식별하기 위해 상기 입력 이미지를 이미지 프로세싱하는 단계는 상기 오브젝트의 위치 및/또는 방향을 나타내는 상기 결정된 정보에 기초할 수 있다. 오브젝트 클래스들은 텍스트 오브젝트 클래스, 랜드마크 오브젝트 클래스, 바코드 오브젝트 클래스, 미디어 오브젝트 클래스 및 아트워크 오브젝트 클래스 중 하나 이상을 포함할 수 있다.
일부 양태들은 연관된 신뢰 스코어와 함께 식별된 오브젝트를 출력하는 단계 및 이전 출력에 기초하여 식별된 오브젝트에 대한 출력 신뢰 스코어를 조정하는 단계를 포함한다. 일부 양태에서, 상기 출력 신뢰 스코어는 상기 식별된 오브젝트와 이전에 식별된 오브젝트 간의 편집 거리, 상기 이전에 식별된 오브젝트의 위치 및 상기 이전에 식별된 오브젝트와 연관된 상기 신뢰 스코어 중 적어도 하나에 기초하여 조정된다.
일부 양태들은 하나 이상의 오브젝트들을 식별하기 위해 이미지 프로세싱을 위해 감소된 버전의 입력 이미지를 생성하는 단계를 포함한다. 상기 입력 이미지의 상기 감소된 버전은 상기 입력 이미지의 저해상도 버전, 크롭된 버전 또는 벡터 표현 중 하나일 수 있다.
일부 양태에서, 본 명세서에 기술된 주제의 다른 양태는 이미지들을 캡처하도록 구성된 카메라, 카메라의 움직임을 검출하도록 구성된 하나 이상의 환경 센서, 데이터 프로세싱 장치 및 데이터 프로세싱 장치와 데이터 통신하는 메모리 저장 장치를 포함하는 이미지 프로세싱 시스템에서 구현될 수 있다. 메모리 저장 장치는 데이터 프로세싱 장치에 의해 실행 가능한 명령어들을 저장할 수 있고, 그러한 실행시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하게 하며, 상기 동작들은 모바일 디바이스 카메라에 의해 캡처된 다수의 이미지들 각각에 대해, 카메라가 이미지를 캡처한 시간에, 카메라의 움직임을 나타내는 데이터에 액세스하는 동작을 포함한다. 데이터 프로세싱 장치는 상기 이미지들로부터, 각 이미지에 대한 상기 카메라의 움직임을 나타내는 상기 데이터에 기초하여 분석할 특정한 이미지를 선택할 수 있다. 데이터 프로세싱 장치는 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하고 상기 하나 이상의 오브젝트들 인식된 오브젝트들과 관련된 컨텐츠를 제시하기 위해 특정한 이미지를 분석할 수 있다. 이 양태들의 다른 구현예들은 상기 방법들의 액션들을 수행하도록 구성된 대응 방법들, 장치들 및 컴퓨터 저장 디바이스들에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 동작들은 상기 특정한 이미지에 도시된 하나 이상의 클래스의 오브젝트들의 존재를 검출하기 위해 코어스 분류기를 사용하여 상기 특정한 이미지를 분석하는 동작을 포함할 수 있다. 상기 특정한 이미지에서 상기 하나 이상의 클래스의 오브젝트들의 존재의 검출함에 응답하여, 상기 특정한 이미지는 상기 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하기 위해 분석될 수 있다.
일부 양태에서, 상기 이미지에 의해 도시된 하나 이상의 오브젝트들을 인식하기 위해 상기 이미지를 분석하는 동작은 하나 이상의 컴퓨터 비전 기법들을 사용하여 상기 이미지를 분석하는 것을 포함한다. 상기 모바일 디바이스의 움직임을 나타내는 상기 데이터는 (i) 상기 모바일 디바이스의 가속도계 센서로부터 수신된 관성 가속도 측정치 또는 (ii) 상기 모바일 디바이스의 자이로스코프로부터 수신된 방향 데이터 중 적어도 하나를 포함할 수 있다.
일부 양태에서, 복수의 이미지들로부터 분석을 위한 특정한 이미지를 선택하는 동작은 상기 카메라가 상기 다수의 이미지들 중 각기 다른 이미지를 캡처한 시간에서의 움직임의 양 각각에 비해 상기 카메라가 상기 특정한 이미지를 캡처한 시간에서의 움직임의 양이 가장 적은 특정한 이미지에 기초하여 상기 특정한 이미지를 선택하는 것을 포함할 수 있다. 각 이미지에 대한 상기 모바일 디바이스의 움직임을 나타내는 데이터는 이미지가 캡처되었을 때 상기 모바일 디바이스의 회전 운동을 기술하는 데이터를 포함할 수 있다. 일부 양태에서, 분석을 위한 특정한 이미지를 선택하는 동작은 상기 특정한 이미지가 캡처되었던 시간에서의 상기 모바일 디바이스의 상기 회전 운동이 회전 운동의 임계량보다 작은 것에 기초하여 상기 특정한 이미지를 선택하는 것을 포함할 수 있다.
일부 양태에서, 상기 동작들은 상기 코어스 분류기에 의한 이전 이미지의 분석이 완료된 후에 상기 코어스 분류기에 의해 분석될 이미지에 대한 요청을 수신하는 동작을 포함할 수 있다. 분석을 위한 특정한 이미지를 선택하는 동작은 상기 이전 이미지가 분석을 위해 상기 코어스 분류기에 전송된 이후에 상기 카메라에 의해 캡처된 이미지들의 세트에서 다른 이미지들에 비해 움직임의 양이 가장 적은 특정한 이미지에 기초하여 상기 특정한 이미지를 선택하는 것을 포함할 수 있다.
일부 양태에서, 상기 코어스 분류기를 사용하여 상기 특정한 이미지를 분석하는 동작은 프로세싱 속도에 기초하여 상기 코어스 분류기에 의해 주기적으로 분석을 개시하는 것을 포함할 수 있다. 상기 동작들은 상기 카메라 어플리케이션과의 사용자 인터렉션에 기초하여 상기 프로세싱 속도를 조정하는 것을 포함할 수 있다. 상기 동작들은 하나 이상의 클래스의 오브젝트들의 존재가 이전 기간 동안 상기 코어스 분류기에 의해 분석된 하나 이상의 이미지들에서 검출되었는지에 기초하여 프로세싱 속도를 조정하는 동작을 포함할 수 있다. 상기 프로세싱 속도는 상기 이전 기간 동안 적어도 하나의 이미지에서 하나 이상의 클래스의 오브젝트들의 존재를 검출하는 것에 응답하여 단위 시간당 더 많은 이미지들이 상기 코어스 분류기에 의해 분석되도록 증가될 수 있다. 상기 프로세싱 속도는 상기 이전 기간 동안 적어도 하나의 이미지에서 하나 이상의 클래스의 오브젝트들의 존재를 검출하는 것에 응답하여 단위 시간당 더 적은 이미지들이 상기 코어스 분류기에 의해 분석되도록 감소될 수 있다.
일부 양태에서, 상기 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 상기 하나 이상의 식별된 오브젝트들과 관련된 리소스들에 대한 링크들을 포함하는 결과를 포함하는 결과 페이지를 제시하는 것을 포함할 수 있다. 상기 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 각각의 식별된 오브젝트에 대해, 상기 오브젝트에 대한 오버레이로 상기 오브젝트와 관련된 컨텐츠를 제시하는 것을 포함할 수 있다. 상기 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 사용자에 의해 선택된 때 상기 하나 이상의 식별된 오브젝트들과 연관된 특정한 액션을 개시하는 선택가능한 사용자 인터페이스 엘리먼트를 제시하는 것을 포함할 수 있다. 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 클래스의 오브젝트의 존재가 코어스 분류기에 의해 검출되었던 각각의 클래스에 대해, 클래스와 관련된 컨텐츠 아이템을 선택하고, 클래스의 오브젝트의 존재가 코어스 분류기에 의해 검출되었던 각 클래스에 대한 컨텐츠 아이템을 제시하는 것을 포함할 수 있다.
일부 양태에서, 상기 모바일 디바이스 카메라의 움직임을 나타내는 데이터에 기초하여 분석을 위한 특정한 이미지를 선택하는 동작은 상기 이미지들의 시각적 특성을 나타내는 데이터와 무관하게 상기 특정한 이미지를 선택하는 것을 포함할 수 있다. 상기 모바일 디바이스 카메라의 움직임을 나타내는 데이터에 기초하여 분석을 위한 특정한 이미지를 선택하는 동작은 각 이미지의 시각적 특성을 나타내는 데이터와 조합하여 각 이미지에 대한 상기 모바일 디바이스 카메라의 움직임을 나타내는 데이터에 기초하여 특정한 이미지를 선택하는 것을 포함할 수 있다. 각 이미지들의 시각적 특성을 나타내는 상기 데이터는 (i) 밝기 데이터, (ii) 초점 데이터 또는 (iii) 히스토그램 데이터 중 적어도 하나를 포함할 수 있다.
일부 양태에서, 분석을 위한 특정한 이미지를 선택하는 동작은 이미지에 대한 모바일 디바이스 카메라의 움직임을 나타내는 데이터에 기초하여 각 이미지에 대해, 예상 이미지 품질을 결정하는 것 및 가장 높은 예상 이미지 품질을 갖는 이미지를 특정한 이미지로서 선택하는 것을 포함할 수 있다. 분석을 위한 특정한 이미지를 선택하는 동작은 제1 이미지에 대해, 상기 제1 이미지에 대한 상기 모바일 디바이스 카메라의 움직임을 나타내는 상기 데이터에 기초하여, 상기 제1 이미지의 제1 예상 이미지 품질을 결정하는 것을 포함할 수 있다. 상기 제1 이미지에 대한 이미지 데이터는 상기 제1 이미지의 제1 예상 이미지 품질에 기초하여 선택된 프레임 버퍼에 저장될 수 있다. 제2 이미지의 제2 예상 이미지 품질은 상기 제2 이미지에 대한 상기 모바일 디바이스 카메라의 움직임을 나타내는 상기 데이터에 기초하여 결정될 수 있다. 결정은 상기 선택된 프레임 버퍼에서, 상기 제2 예상 이미지 품질이 상기 제1 예상 이미지 품질보다 큰 것에 기초하여, 상기 제1 이미지에 대한 상기 이미지 데이터를 상기 제2 이미지에 대한 이미지 데이터로 교체하기 위해 이루어질 수 있다.
일부 양태는 상기 특정한 이미지에 도시된 하나 이상의 클래스들의 오브젝트들의 존재를 검출하기 위해 코어스 분류기를 사용하여 제2 이미지를 분석하는 동작 및 코어스 분류기를 사용하여 상기 특정한 이미지에서 상기 하나 이상의 클래스들의 오브젝트들의 존재를 검출하는 것에 실패함 응답하여 상기 특정한 이미지에서 도시된 하나 이상의 오브젝트들을 인식하기 위해 제2 이미지를 분석하지 않기로 결정하는 동작을 포함할 수 있다.
본 명세서에 기술된 본 발명은 다음의 이점들을 실현하도록 특정한 실시예들에서 구현될 수 있다. 이미지를 캡처하는 카메라의 움직임을 나타내는 데이터에 기초하여 분석하기 위한 이미지를 선택함으로써, 보다 높은 품질의 이미지가 더 상세한 분석을 위해 빠르게 선택될 수 있고, 각 이미지의 시각적 특성 분석에 기초하여 이미지를 선택하는 것보다 더 적은 컴퓨팅 리소스와 더 적은 전력을 사용한다. 후속 분석을 위해 이미지 스트림의 단일 최고 이미지 (또는 임계값보다 적은 이미지 수)만 저장하면 소비되는 메모리의 양을 감소시켜 다른 어플리케이션들을 위한 메모리 공간이 확보된다. 이러한 기능은 또한 컴퓨터 비전 분석에 더 높은 품질의 이미지가 사용되도록 하여 이미지에서 인식된 오브젝트들에 기초하여 보다 정확한 비전 분석 결과 및 관련 컨텐츠를 제공한다.
코어스 분류기를 사용하여 특정한 클래스의 오브젝트들이 있는지 확인하고 클래스들 중 하나의 객체를 나타내는 것으로 분류된 이미지에 대해서만 추가 컴퓨터 비전 분석을 수행하면 컴퓨터 비전 분석 기법을 사용하여 분석되는 이미지의 수를 감소시킨다. 또한, 멀티 클래스 코어스 분류기는 추가적인 프로세싱을 코어스 분류기에 의해 검출된 유형(들)과 일치하는 미세 분류기로 제한할 수 있다. 추후 단계의 컴퓨터 비전 분석이 코어스 분류 및 이미지 선택보다 계산 집약적일 수 있으므로, 컴퓨팅 리소스에 대한 요구를 크게 줄이고 다른 어플리케이션들에서 사용하기 위해 계산 및 전력을 절약한다. 이것은 또한 분석을 위해 대기열에 배치된 이미지의 수를 감소시킴으로써 이미지의 분석 속도를 향상시킬 수 있다. 본 명세서에 기술된 이미지 선택 및 분석 기법은 또한 어플리케이션의 주요 행동을 손상시키지 않고(예를 들어, 카메라로 사진을 찍는 것), 시각적 분석을 기존 어플리케이션에 모델 없이(modeless) 통합할 수 있게 한다.
전술한 주제의 다양한 구성 및 이점이 도면과 관련하여 아래에 설명된다. 추가 구성 및 이점은 본 명세서 및 청구 범위에 기술된 주제로부터 명백하다.
도 1은 예시적 모바일 디바이스가 이미지를 분석하고 이미지에 도시된 하나 이상의 오브젝트들과 관련된 컨텐츠를 제시하는 환경의 블록도이다.
도 2는 이미지를 분석하고 이미지에 도시된 하나 이상의 오브젝트들과 관련된 컨텐츠를 제시하는 예시적 프로세스를 도시하는 흐름도이다.
도 3은 분석을 위한 이미지를 선택하기 위해 예시적 프로세스를 도시하는 흐름도이다.
도 4는 이미지를 분석하기 위한 프로세싱 속도(rate)를 조정하기 위한 예시적 프로세스를 도시하는 흐름도이다.
다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다.
일반적으로, 본 명세서에 기술된 시스템 및 기법은 이미지를 분석하는데 사용되는 컴퓨팅 리소스 및 전력 소비를 감소시키면서, 고품질로 예상되는 이미지를 선택적으로 분석함으로써 이미지 분석의 정확도를 개선할 수 있다. 예를 들어, 이미지는 이미지에 도시된 오브젝트들을 인식하고 오브젝트들에 관한 추가 정보를 제공할 목적으로 이미지에 도시된 오브젝트들에 관한 정보를 추출하기 위해 분석될 수 있다. 모바일 디바이스, 예를 들어 스마트폰 또는 태블릿 컴퓨팅 디바이스의 사용자는 모바일 디바이스의 카메라를 사용하여 오브젝트들의 이미지를 캡처할 수 있다. 하나 이상의 이미지는, 예를 들어 이미지가 캡처된 때 카메라의 움직임을 나타내는 데이터에 기초하여 결정된 이미지의 예상 품질에 기초하여, 분석을 위해 선택될 수 있다. 선택된 이미지는 모바일 디바이스에서 제시하기 위한 추가 컨텐츠를 제공하도록 분석될 수 있다. 예를 들어, 컨텐츠는 모바일 디바이스의 사용자 인터페이스에서 이미지와 함께 디스플레이될 수 있거나 분석 결과는 나중에 사용하기 위해 저장될 수 있다.
모바일 디바이스는 일반적으로 데스크톱 컴퓨터 및 서버보다 컴퓨팅 성능 및 데이터 저장 용량이 적다. 모바일 디바이스는 일반적으로 제한된 배터리 전력 및 열 소산 기능을 가진다. 따라서, 컴퓨팅 리소스 및 배터리 전력의 이용을 감소시키는 방식으로 이미지 분석을 수행하는 기법은 다른 어플리케이션 및/또는 프로세스에 대해 제한된 컴퓨팅 파워 및 전력을 보존하고 모바일 디바이스에서 발생하는 열량을 감소시킴으로써 모바일 디바이스의 기능 및 성능을 향상시킬 수 있다.
일부 구현예에서, 이미지 분석은 비디오 스트림과 같은 이미지들의 시퀀스의 이미지들에 대해 수행된다. 예를 들어, 사용자는 이미지에서 도시된 오브젝트들과 관련된 컨텐츠를 제공하고 카메라를 다양한 오브젝트들로 포인팅하는 카메라 모드를 활성화할 수 있다. 다른 예에서, 카메라 어플리케이션은 일반적으로 카메라 어플리케이션이 활성화된 때 이 기능을 활성화할 수 있다. 이들 예에서, 이미지들의 시퀀스에서 이미지들의 일부(예를 들어, 전체보다 적음)는 이미지들에 도시된 오브젝트(들)를 인식하기 위해 분석될 수 있다. 본 명세서에 설명된 기법은 분석된 이미지의 수를 감소시키고 분석 프로세스에 의해 소비되는 컴퓨팅 파워 및 전력을 감소시키기 위해 추가 분석을 위한 이미지를 선택하기 위해 하나 이상의 저전력 소비 스테이지를 사용할 수 있다.
일부 구현예에서, 저전력 소비 스테이지는 이미지의 예상 이미지 품질을 결정할 수 있다. 예를 들어, 예상 이미지 품질은 디바이스의 환경 센서에 기초하여 결정될 수 있다. 예상 이미지 품질의 결정은 도시된 오브젝트(들)을 인식하기 위한 추가 분석보다 적은 프로세싱 리소스들을 요구할 수 있고, 따라서 더 적은 전력이 소비된다. 이러한 방식으로, 낮은 이미지 품질을 가진 이미지를 분석하기 위한 불필요한 리소스의 소비를 피할 수 있다.
일부 구현예에서, 저전력 소비 스테이지는 이미지가 오브젝트 클래스를 식별하는 이미지 피처를 포함하는지 여부를 결정할 수 있다. 이러한 이미지 피처를 포함하는 이미지는 식별된 클래스에 대응하는 이미지 인식 모듈에 의한 추가 분석을 위해 제공될 수 있다. 이러한 이미지 피처의 결정은 도시된 오브젝트(들)을 인식하기 위한 추가 분석보다 적은 프로세싱 리소스들을 요구할 수 있고, 따라서 더 적은 전력이 소비된다. 이러한 방식으로, 아무런 오브젝트(들)도 포함하지 않는 이미지를 분석하기 위한 불필요한 리소스의 소비를 피할 수 있다. 또한, 식별된 클래스에 대응하는 이미지 인식 모듈에 의한 추가 분석을 위한 이미지를 제공함으로써, 이미지 인식 모듈이 보다 효율적으로 만들어 질 수 있고, 시스템의 프로세싱 요구사항의 추가적 감소가 제공될 수 있다.
도 1은 예시적 모바일 디바이스(110)가 이미지를 분석하고 이미지에 도시된 하나 이상의 오브젝트들과 관련된 컨텐츠를 제시하는 환경(100)의 블록도이다. 모바일 디바이스(110)는 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 웨어러블 디바이스 또는 다른 적절한 유형의 모바일 디바이스일 수 있다. 비록 모바일 디바이스(110)가 도 1에 도시되고, 본 명세서에 기술되어 있지만, 모바일 디바이스(110)의 컴포넌트들은 다른 유형의 전자 디바이스(예를 들어, 데스크톱 컴퓨터)에 포함될 수 있고, 모바일 디바이스(110)에 의해 수행되는 기법은 다른 전자 디바이스들에 의해 수행될 수 있다.
모바일 디바이스(110)는 카메라(112) 및 카메라 어플리케이션(114)을 포함한다. 카메라(112)는 스틸 이미지(예컨대, 디지털 사진) 및 비디오를 캡처한다. 카메라 어플리케이션(114)은 특정한 플랫폼 또는 특정한 디바이스에서 사용하기 위해 개발된 네이티브 어플리케이션일 수 있다. 카메라 어플리케이션(114)은 사용자가 카메라(112)를 제어하고 카메라(112)에 의해 캡처된 이미지 및 비디오를 볼 수 있게 한다. 카메라(112)는 이미지 센서에 의해 캡처된 이미지 데이터(예를 들어, 이미지 픽셀 데이터)를 출력하도록 구성된 이미지 센서를 포함할 수 있다. 이미지의 각 픽셀에 대한 픽셀 데이터는 픽셀의 하나 이상의 시각적 특성, 예를 들어 픽셀의 색상을 특정할 수 있다.
카메라 어플리케이션(114)은 또한 이미지에서 인식된 오브젝트들에 관련된 컨텐츠를 제공하기 위해 캡처된 이미지에 대한 이미지 선택 기법 및/또는 이미지 분석 기법을 수행할 수 있다. 일부 구현예에서, 카메라 어플리케이션(114)은 이미지를 캡처하고 사용자가 아이콘을 선택하는 것에 응답하여 이미지를 분석한다. 예를 들어, 사용자는 카메라(112)를 오브젝트를 향하게 하고, 아이콘을 선택하여 오브젝트의 이미지를 캡처하고 오브젝트와 관련된 컨텐츠를 수신할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 카메라(112)에 의해 캡처되는 이미지들의 스트림상에서, 예를 들어 상시-온 상태에서 이미지 분석 프로세스를 자동으로 수행한다. 예를 들어, 카메라 어플리케이션(114)은 비디오 스트림으로부터 이미지를 선택하고 선택된 이미지를 분석하여 이미지에 도시된 오브젝트들을 인식하고 인식된 오브젝트들과 관련된 컨텐츠를 제공할 수 있다. 특정한 예에서, 카메라 어플리케이션(114)은 사용자가 카메라(112)를 오브젝트를 향하게 하고 있는 동안 카메라(112)에 의해 캡처된 이미지 시퀀스로부터 이미지를 선택할 수 있다. 다른 예에서, 카메라 어플리케이션(114)은 카메라(112)(또는 모바일 디바이스(110))의 뷰파인더에서 보이는 장면의 이미지를 캡처하기 위해 카메라(112)를 사용할 수 있다.
이하의 설명은 이미지에 대한 이미지 선택 및 이미지 분석 기법을 수행하는 카메라 어플리케이션(114)에 관한 것이지만, 기법(또는 그 일부)은 다른 어플리케이션(예를 들어, 카메라에 의해 캡처된 이미지에 관한 컨텐츠를 제시하기 위해 카메라에 액세스 및/또는 제어하는 카메라 제1 어플리케이션), 모바일 디바이스의 하드웨어 회로, 제어기 또는 다른 적절한 하드웨어 회로 및/또는 소프트웨어 컴포넌트에 의해 수행될 수 있다.
카메라 어플리케이션(114)은 하나 이상의 저전력 소비 스테이지를 사용하여 오브젝트 인식을 위해 분석되는 이미지를 선택할 수 있다. 하나 이상의 스테이지들은 이후 스테이지에서 분석되는 이미지의 품질이 충분하고 사용자가 관심을 가질 수 있는 하나 이상의 오브젝트들을 도시하도록 보장할 수 있다. 이는 모바일 디바이스(110)가 오브젝트들이 인식되지 않거나 컨텐츠가 식별되지 않을 수 있는 이미지에 대해 계산 리소스 및 배터리 전력을 낭비하지 않도록 한다.
카메라 어플리케이션(114)은 이미지가 캡처될 때 카메라(112)의 움직임을 나타내는 데이터("움직임 데이터")에 기초하여 추가 프로세싱을 위해 이미지 스트림으로부터 이미지를 선택하는 이미지 선택기(122)를 포함한다. 이미지가 캡처된 시점의 움직임 데이터는 이미지가 캡처되기 전에 특정된 기간에 시작하여 이미지가 캡처된 후 특정된 기간까지의 시간 윈도우 동안 카메라(112)에 대한 움직임 데이터를 포함할 수 있다. 예를 들어, 이미지를 캡처하는 동안 카메라(112)가 움직이면, 이미지는 카메라(112)가 정지되어 있는 것보다 품질이 낮을(예를 들어, 흐려질) 가능성이 더 높다. 이미지의 시각적 특성 대신 이미지에 움직임 데이터를 사용하면, 더 적은 수의 컴퓨팅 리소스를 사용하여 보다 신속하게 선택을 수행할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 이미지의 시각적 특성을 검출 및 평가하지 않고 단지 이미지에 대한 움직임 데이터를 사용하여 다수의 이미지로부터 이미지를 선택할 수 있다. 후술되는 바와 같이, 카메라 어플리케이션(114)은 또한 이미지에 대한 움직임 데이터와 함께 이미지의 시각적 특성을 사용하여 추가 프로세싱을 위한 이미지를 선택할 수 있다.
카메라 어플리케이션(114)은 모바일 디바이스(110)의 관성 측정 유닛(IMU)(113) 또는 다른 유형의 환경 센서로부터 이미지에 대한 움직임 데이터를 획득하거나 수신할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 카메라 어플리케이션(114)이 카메라(112)로 하여금 이미지를 캡처하게 할 때 이미지에 대한 움직임 데이터를 획득할 수 있다. IMU는 하나 이상의 가속도계, 하나 이상의 자이로스코프 및/또는 하나 이상의 자력계를 포함할 수 있는 전자 디바이스이다. IMU 데이터는 게임 회전 벡터의 형태일 수 있다. 일부 구현예에서, 모바일 디바이스(110)는 개별 가속도계, 자이로스코프 및/또는 자력계를 포함할 수 있다. 이미지에 대한 움직임 데이터는 IMU(113)로부터 수신된 관성 가속도 측정치 및/또는 IMU(113) 또는 별도의 자이로스코프로부터 수신된 방향 데이터를 포함할 수 있다.
일부 구현예에서, 이미지에 대한 움직임 데이터는 자이로스코프로부터 수신된 방향 데이터만을 포함한다. 예를 들어, 자이로스코프의 방향 데이터를 사용하여 이미지를 캡처할 때 발생한 방향 변경을 결정할 수 있다.
카메라 어플리케이션(114)은 이미지에 대한 움직임 데이터(예를 들어, IMU(113)로부터 수신된 데이터)를 사용하여 이미지에 대한 품질 스코어를 결정할 수 있다. 이미지의 품질 스코어는 이미지의 예상 이미지 품질을 나타낼 수 있다. 이미지에 대한 품질 스코어는 움직임 데이터를 사용하여 결정될 수 있는, 이미지가 캡처된 때 카메라(112)의 회전 운동의 측정치에 기초할 수 있다(예를 들어, 반비례). 이미지에 대한 품질 스코어는 이미지가 캡처된 때 카메라(112)의 방향 변화에 기초할 수 있다. 예를 들어, 이미지가 캡처되기 전, 도중 및 후에 모바일 디바이스(110)의 방향을 특정하는 방향 데이터는 이미지가 캡처된 때 카메라(112)의 방향이 변경되었는지를 결정하는데 사용될 수 있다.
카메라 어플리케이션(114)은 이미지에 대한 품질 스코어에 기초하여, 추가 분석을 위한 하나 이상의 이미지를 다수의 이미지로부터 선택할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 추가 분석을 위한 가장 높은 품질 스코어(예를 들어, 최소 회전 운동량 또는 최소 이동량)를 갖는 이미지를 선택할 수 있다. 카메라 어플리케이션(114)은 또한 이미지의 최신성을 사용하여 추가 프로세싱에 사용할 것을 결정할 수 있다. 그 다음 카메라 어플리케이션(114)은 예를 들어, 후술되는 코어스 분류기(coarse classifier)(123)에 의한 추가 프로세싱을 위해 선택된 이미지에 대한 이미지 데이터를 송신할 수 있다. 그 다음 카메라 어플리케이션(114)은 추가 이미지를 캡처하고 추가 이미지로부터 추가 분석을 위한 다른 이미지를 선택할 수 있다. 이 예에서, 코어스 분류기(123)는 다른 이미지를 요청하거나 다른 이미지에 대한 준비가 되었다는 것을 카메라 어플리케이션(114)에 통지할 수 있다. 이에 응답하여, 카메라 어플리케이션(114)은 선택된 이미지를 코어스 분류기(123)에 송신할 수 있다.
카메라 어플리케이션(114)은 코어스 분류기(123)가 이전 이미지의 프로세싱을 완료하거나 다른 이미지를 분석할 준비가 되기를 기다리는 동안 이미지를 연속적으로 분석하고 최상의 이미지를 저장할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 이전 이미지에 대한 이미지 데이터가 코어스 분류기(123)에 송신된 이후 캡처된 이미지 세트 중 연관된 최고 품질 스코어를 갖는 최고 품질의 이미지에 대한 이미지 데이터를 저장할 수 있다. 기다리는 동안, 카메라 어플리케이션(114)은 다른 이미지를 수신할 수 있다. 카메라 어플리케이션(114)은 새로 수신된 이미지에 대한 품질 스코어(예를 들어, 회전 운동의 측정치)를 결정할 수 있다. 카메라 어플리케이션(114)은 저장된 최상의 이미지에 대한 품질 스코어를 새로 수신된 이미지에 대한 품질 스코어와 비교할 수 있다. 새로 수신된 이미지에 대한 품질 스코어가 저장된 최상 이미지에 대한 품질 스코어보다 큰 경우, 카메라 어플리케이션(114)은 최고 품질 이미지에 대한 저장된 이미지 데이터를 새로 수신된 이미지에 대한 이미지 데이터로 교체할 수 있다. 이러한 방식으로, 카메라 어플리케이션(114)은 후속 분석이 수행될 때까지 기다리는 동안 수신된 최고 품질의 이미지에 대한 이미지 데이터를 저장하고 있다. 최고 품질의 이미지를 위한 이미지 데이터만을 저장함으로써, 이미지 데이터를 저장하는데 사용되는 메모리의 양은 다수의 이미지에 대한 이미지 데이터를 저장하는 것에 비해 감소된다.
카메라 어플리케이션(114)은 이미지 데이터를 저장하기 위해 버퍼를 사용할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 새로 수신된 이미지에 대한 이미지 데이터를 이미지 버퍼에 저장할 수 있다. 카메라 어플리케이션(114)은 또한 최고 품질의 이미지에 대한 이미지 데이터를 선택된 이미지 버퍼에 저장할 수 있다. 새로 수신된 이미지가 이미지 데이터가 선택된 이미지 버퍼에 저장된 이미지보다 높은 품질 스코어를 갖는 경우, 카메라 어플리케이션(114)은 선택된 이미지 버퍼의 이미지 데이터를 새로 수신된 이미지에 대한 이미지 데이터로 교체할 수 있다. 다른 예에서, 새로 수신된 이미지가 이미지 데이터가 선택된 이미지 버퍼에 저장된 이미지보다 높은 품질 스코어를 갖는 경우, 카메라 애플리케이션(114)은 이미지 버퍼를 포인팅하도록 선택된 프레임 포인터를 업데이트할 수 있다. 카메라 어플리케이션(114)은 선택된 이미지 버퍼에 저장된 이미지 데이터를 예를 들어, 미리 결정된 시간 간격 이후 또는 코어스 분류기(123)가 다른 이미지를 프로세싱할 준비가 된 때 코어스 분류기(123)에 제공할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 각 이미지가 캡처된 시간과 함께 각 이미지가 캡처된 시간에 카메라(112)의 움직임(예를 들어, 회전 운동)을 나타내는 데이터에 기초하여 추가 분석을 위한 이미지를 다수의 이미지로부터 선택한다. 예를 들어, 오래된 이미지에 대한 품질 스코어보다 약간 낮은 품질 스코어(예를 들어, 임계량 내)를 갖는 보다 최근에 수신된 이미지가 바람직할 수 있고 따라서 선택될 수 있다.
3-티어 전략을 사용하여 다수의 이미지들로부터 이미지를 선택할 수 있다. 이 예에서, 이미지가 제1 임계치보다 작은 품질 스코어를 갖는 경우, 이미지의 품질이 이미지에 도시된 오브젝트들을 검출하거나 인식하기에 충분하지 않기 때문에 이미지가 전혀 사용되지 않을 수 있다. 이러한 저품질 이미지를 후속 스테이지로 송신하지 않으면, 그렇지 않으면 사용될 컴퓨팅 파워 및 전력을 피할 수 있다. 하나 이상의 이미지가 제2 임계치보다 높은 품질 스코어(제1 임계치보다 높은)를 갖는 경우, 카메라 어플리케이션(114)은 제2 임계치보다 높은 품질 스코어를 갖는 가장 최근 이미지를 선택할 수 있다. 다수의 이미지 중 제2 임계치보다 높은 품질 스코어를 갖는 이미지가 없고 하나 이상의 이미지들이 2개의 임계치 사이의 품질 스코어를 갖는 경우, 카메라 어플리케이션(114)은 최고 품질 스코어를 갖는 하나 이상의 이미지들 중 하나를 선택할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 이미지가 캡처된 때 카메라(114)의 움직임 및 이미지의 시각적 특성을 나타내는 데이터에 기초하여 추가 분석을 위한 이미지를 선택할 수 있다. 카메라(114)의 움직임을 나타내는 데이터를 사용하는 것은 시각적 특성만을 사용하는 것에 비해 이미지의 품질을 결정하는데 필요한 시각적 특성 및/또는 시각적 특성의 유형의 수를 감소시킬 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 이미지의 라이트 피처(light feature)에 기초하여 추가 분석을 위한 이미지를 선택할 수 있다. 라이트 피처는 시각 입력에 기초하여 계산되지만, 비전 분석을 사용하여 이미지를 검사하는 것보다 계산 집약적인 방식이다. 예를 들어, 이미지에 대한 품질 스코어는 카메라(114)의 움직임을 나타내는 데이터 및 이미지의 라이트 피처의 조합에 기초할 수 있다. 라이트 피처는 이미지의 메타데이터에서 특정될 수 있다. 라이트 피처는 밝기 정보, 초점 정보, 이미지 내의 높은 수준의 콘트라스트를 포함하는 특성을 나타내는 히스토그램 및/또는 이미지 내의 오브젝트들의 움직임(예를 들어, 이전 이미지 내의 오브젝트의 위치 및 이 현재 이미지에서 동일한 오브젝트의 위치에 기초하여)을 포함할 수 있다. 라이트 데이터와 마찬가지로 메타데이터에서 이미 특정된 이미지의 다른 피처도 사용될 수 있고, 이 데이터는 추가 이미지 분석이 필요하지 않다.
일부 구현예에서, 이미지 선택 프로세스는 하드웨어, 예를 들어 모바일 디바이스(110)의 프로세서와 별개인 하드웨어 회로 또는 제어기에서 수행된다. 이러한 방식으로, 모바일 디바이스의 프로세서는 이미지 선택 프로세스에 대한 임의의 데이터를 프로세싱하거나 임의의 명령어들을 실행할 필요가 없으므로 프로세서에 대한 요구가 훨씬 적어진다. 예를 들어, 하드웨어 회로는 IMU, 자이로스코프 또는 다른 센서로부터 움직임 데이터를 수신하고, 그 데이터를 사용하여 이미지가 코어스 분류기(123)에 송신될 충분한 품질(예를 들어, 임계 움직임량 또는 회전 지터 미만)을 갖는지 여부를 결정한다. 충분한 품질을 갖는 것으로 하드웨어 회로에 의해 이미지가 검출되면, 하드웨어 회로는 프로세서를 깨우고 프로세서가 이미지에 대해 코어스 분류를 수행하게 할 수 있다.
다수의 코어스 분류기를 포함할 수 있는 코어스 분류기(123)는 이미지에 도시된 하나 이상의 클래스의 오브젝트들의 존재를 검출한다. 코어스 분류기(123)는 이미지가 오브젝트들의 클래스를 나타내는 하나 이상의 피처들을 포함하는지의 여부에 기초하여 오브젝트들의 클래스의 존재를 검출할 수 있다. 코어스 분류기(123)는 오브젝트들의 클래스(들) 내에 오브젝트들의 존재를 검출하기 위해 낮은 계산적 분석을 수행하기 위한 경량 모델을 포함할 수 있다. 예를 들어, 코어스 분류기(123)는 이미지가 오브젝트들의 클래스 내에 속하는 오브젝트를 도시하는지 여부를 결정하기 위해 이미지에 도시된 제한된 시각적 피처들의 세트를 각각의 오브젝트들 클래스에 대해 검출할 수 있다. 특정 예에서, 코어스 분류기(123)는 이미지가 텍스트, 바코드, 랜드마크, 미디어 오브젝트(예를 들어, 앨범 표지, 영화 포스터 등) 또는 아트워크(예: 회화, 조각 등) 중 하나 이상으로 분류된 오브젝트를 도시하는지 여부를 검출할 수 있다. 바코드의 경우, 코어스 분류기(123)는 이미지가 상이한 폭을 갖는 평행선들을 포함하는지 여부를 결정할 수 있다.
일부 구현예에서, 코어스 분류기(123)는 트레이닝된 기계 학습 모델(예를 들어, 컨볼루션 신경망)을 사용하여 이미지의 시각적 피처들에 기초하여 이미지를 분류한다. 예를 들어, 기계 학습 모델은 그들 각각의 클래스(들)로 라벨링된 라벨링된 이미지를 사용하여 트레이닝될 수 있다. 기계 학습 모델은 이미지를 0개 이상의 특정한 세트의 클래스의 오브젝트들로 분류하도록 트레이닝될 수 있다. 기계 학습 모델은 이미지의 시각적 피처들과 관련된 데이터를 입력으로 수신하고, 특정한 세트의 클래스들의 오브젝트들에서 0개 이상의 클래스들의 오브젝트들로 분류를 출력할 수 있다.
코어스 분류기(123)는 이미지에서 오브젝트의 클래스가 검출되었는지를 특정하는 데이터를 출력할 수 있다. 코어스 분류기(123)는 이미지에서 오브젝트의 클래스의 존재가 검출되었다는 신뢰도를 나타내는 신뢰도 값 및/또는 실제 오브젝트, 예를 들어 에펠탑이 이미지에 도시되었다는 신뢰도를 나타내는 신뢰도 값을 출력할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 다수의 코어스 분류기를 포함한다. 이 예에서, 각 코어스 분류기는 특정한 클래스의 오브젝트들의 존재를 검출하고, 특정한 클래스에 대한 신뢰 스코어를 출력할 수 있다. 다수의 코어스 분류기들 각각은 다른 코어스 분류기와는 상이한 클래스의 오브젝트들의 존재를 검출할 수 있다.
일부 구현예에서, 코어스 분류기(123)는 예를 들어 동시에 다수의 코어스 분류기들의 신뢰 스코어를 결정할 수 있는 복합 코어스 분류기(123)이다. 예를 들어, 복합 코어스 분류기는 이미지에 대해 여러 상이한 클래스의 오브젝트들에 대한 신뢰 스코어를 동시에 결정할 수 있다. 복합 코어스 분류기는 각 분류에 공통인 핵심 부분과 오브젝트들의 클래스에 대한 클래스별 확률을 각각 결정하는 다수의 모듈을 포함할 수 있다. 이것은, 예를 들어, 중복 계산을 감소시킴으로써 이미지에 도시된 하나 이상의 클래스의 오브젝트들의 존재를 검출하기 위해 카메라 어플리케이션(114)에 의해 수행되는 전체 계산을 감소시킬 수 있다.
코어스 분류기(123)는 또한 이미지에서 검출된 오브젝트들에 관한 데이터를 특정하고 하나 이상의 비전 분석기(134)에 데이터를 제공하는 주석을 출력할 수 있다. 예를 들어, 코어스 분류기(123)가 이미지에서 텍스트의 존재를 검출하면, 코어스 분류기(123)는 텍스트의 위치 및 텍스트의 방향을 특정하는 주석을 제공할 수 있다. 코어스 분류기(123)는 또한 검출된 텍스트 유형, 예를 들어 전화 번호, 주소 등을 특정하는 주석을 제공할 수 있다. 이러한 데이터는 나중에 텍스트 분석기(126)에 의해 실제 텍스트를 인식하기 위해 OCR을 수행하는 계산적 비용 및 시간을 절약할 수 있다. 유사하게, 코어스 분류기(123)가 이미지에서 바코드를 검출하면, 코어스 분류기(123)는 바코드 분석기(128)에 의해 바코드를 판독/디코딩하는데 드는 계산 비용 및 시간을 절약하기 위해, 바코드의 위치 및 유형을 특정하는 주석을 제공할 수 있다.
상술한 바와 같이, 이전 이미지에 대한 코어스(대략적) 분류가 완료된 경우와 같이, 적절한 시간에 코어스 분류를 위한 이미지가 선택될 수 있다. 일부 구현예에서, 카메라 어플리케이션(114)은 프로세싱 속도에 기초하여 이미지에 대해 코어스 분류를 수행할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 매초(또는 일부 다른 기간)마다 이미지를 선택(또는 선택된 프레임 버퍼로부터 저장된 최상의 이미지를 검색)하고 이미지에 대한 코어스 분류를 수행할 수 있다.
일부 구현에서, 카메라 어플리케이션(114)은 하나 이상의 이전에 분석된 이미지에서 하나 이상의 클래스의 오브젝트들의 존재가 코어스 분류기(123)에 의해 검출되었는지에 기초하여 프로세싱 속도를 동적으로 그리고 자동으로 조정할 수 있다. 예를 들어, 카메라(112)가 코어스 분류기(123)가 검출하도록 구성된 오브젝트들의 클래스 중 하나 내에 분류된 오브젝트들의 이미지를 캡처하지 않는 경우, 카메라 어플리케이션(114)은 이미지가 코어스 분류기(123)에 의해 분석되는 속도를 감소시킬 수 있다. 이 예에서, 오브젝트들의 클래스의 존재가 이전 이미지(또는 이전 이미지의 임계수)에서 검출되지 않았다면, 카메라 어플리케이션(114)은 각 코어스 분류 사이의 기간을 증가시키기 위해 프로세싱 속도를 감소시킬 수 있다. 이는 관련된 오브젝트들을 도시하지 않는 이미지가 캡처될 때 코어스 분류를 수행하는데 소비되는 컴퓨팅 파워 및 전력의 양을 감소시킬 수 있다. 예를 들어, 이 프로세싱 속도 조정으로 이미지를 분류하는데 사용되는 CPU 사이클들이 줄어든다.
유사하게, 카메라 어플리케이션(114)은 적어도 하나의 클래스의 오브젝트들의 존재가 이전 이미지(또는 적어도 임계수의 이전 이미지)에서 검출된 경우, 각 코어스 분류 사이의 기간을 감소시키기 위해 프로세싱 속도를 증가시킬 수 있다. 이러한 방식으로, 사용자가 관련 오브젝트들의 이미지를 캡처하기 위해 카메라(112)를 사용하는 경우, 카메라 어플리케이션(114)은 사용자에게 유용하고 관련있는 컨텐츠를 식별하고 제시할 수 있다. 이러한 프로세싱 속도 증가는 일시적일 수 있다. 예를 들어, 프로세싱 속도의 증가는 특정 기간 이후 또는 이미지 또는 적어도 임계수의 이미지들에서 오브젝트들의 클래스의 존재 또는 적어도 임계 값을 검출하지 않은 것에 응답하여 보통의 프로세싱 속도(또는 감소된 프로세싱 속도)로 감소될 수 있다.
카메라 어플리케이션(114)은 사용자가 카메라 어플리케이션(114)을 열거나 이미지 분석 및 컨텐츠 제시가 수행되는 카메라 어플리케이션의 모드를 선택한 이후의 시간에 기초하여 코어스 분류를 위한 프로세싱 속도를 조정할 수 있다. 예를 들어, 사용자는 카메라 어플리케이션(114)을 열거나 분석 및 컨텐츠 제시 모드에 들어간 직후에 이미지를 캡처하고 이미지에 도시된 오브젝트들과 관련된 컨텐츠를 보는 것에 더 적극적일 수 있다. 이 예에서, 카메라 어플리케이션(114)은 카메라 어플리케이션(114)이 열리거나 분석 및 컨텐츠 제시 모드에 진입된 때 더 빠른 프로세싱 속도를 사용할 수 있고, 특정 시간이 경과한 후 또는 코어스 분류기(123)가 오브젝트들의 적어도 하나의 클래스들에서 오브젝트를 검출하지 않고 이미지들의 적어도 임계수를 평가한 후에 이후에 더 느린 프로세싱 속도를 사용할 수 있다.
카메라 어플리케이션(114)은 카메라 어플리케이션(114)과의 사용자 인터렉션들에 기초하여 코어스 분류를 위한 프로세싱 속도를 조정할 수 있다. 예를 들어, 사용자가 분석된 이미지에 기초하여 제공된 결과 또는 다른 컨텐츠와 인터렉션한 경우, 카메라 어플리케이션(114)은 코어스 분류를 위한 프로세싱 속도를 증가시키거나 초기 빠른 프로세싱 속도를 유지할 수 있다. 카메라 어플리케이션(114)은 현재 세션에서의 사용자 인터렉션의 빈도 및/또는 카메라 어플리케이션(114)과의 사용자의 이력적 사용자 세션을 포함하는 다수의 사용자 세션에서의 사용자 인터렉션의 빈도에 기초하여 프로세싱 속도를 조정할 수 있다. 사용자 세션은 카메라 어플리케이션(114)의 열기 및/또는 닫기 및/또는 이미지 분석 및 컨텐츠 제시 모드의 시작 및 종료에 의해 정의될 수 있다.
일부 구현예에서, 카메라 어플리케이션(114) 또는 모바일 디바이스(110) 자체는 이전 이미지들이 하나 이상의 클래스들의 오브젝트를 도시하는 것으로 검출되었는지 여부에 기초하여 코어스 분류를 위한 프로세싱 속도를 결정하고 조정하는 전원 관리 시스템을 포함한다. 코어스 분류기에 의해 이미지가 분류되지 않은 경우, 모바일 디바이스(110)의 프로세서(또는 이미지를 분석하는데 사용되는 제어기)는 더 적은 전력을 소비하기 위해 슬립(예를 들어, 슬립 모드로 들어가 명령어를 실행하지 않음)할 수 있다.
코어스 분류기(123)가 이미지에서 오브젝트들의 클래스의 존재를 검출하면, 코어스 분류기(123)는 이미지에 대한 이미지 데이터를 적절한 오브젝트 인식기(134)에 제공할 수 있다. 오브젝트 인식기(134)는 이미지에서 텍스트를 인식(예를 들어, 문자, 단어 등을 인식)하는 텍스트 인식기(126), 이미지에서 바코드(예를 들어, QR 코드를 포함)를 인식(예를 들어, 디코딩)하는 바코드 인식기(128) 및 이미지에서 랜드마크를 인식(예를 들어, 실제 랜드마크를 식별)하는 랜드마크 인식기(130)를 포함한다. 카메라 어플리케이션(114)은 분석기(126, 128 및 130)에 더하여 또는 대신에 다른 유형의 오브젝트들에 대한 분석기를 포함할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 미디어 커버(예를 들어, 앨범 커버) 분석기, 아트워크 분석기 및/또는 다른 적절한 분석기를 포함할 수 있다. 일부 구현예에서, 카메라 어플리케이션(114)은 텍스트, 바코드, 랜드마크, 미디어 커버, 아트워크 등과 같은 다수의 상이한 클래스의 오브젝트를 인식하는 단일 오브젝트 인식기를 포함한다.
코어스 분류기(123)가 이미지에서 텍스트의 존재를 검출하면, 코어스 분류기(123)는 이미지에 대한 이미지 데이터를 텍스트 인식기(126)에 제공할 수 있다. 코어스 분류기(123)가 이미지에서 바코드의 존재를 검출하면, 코어스 분류기(123)는 이미지에 대한 이미지 데이터를 바코드 인식기(128)에 제공할 수 있다. 코어스 분류기(123)가 이미지에서 랜드마크의 존재를 검출하면, 코어스 분류기(123)는 이미지에 대한 이미지 데이터를 랜드마크 인식기(128)에 제공할 수 있다.
일부 구현예에서, 코어스 분류기(123)는 이미지가 임계치를 만족하는(예를 들어, 충족 시키거나 초과하는) 신뢰도 값을 갖는 각 오브젝트의 클래스에 대한 이미지에 대한 이미지 데이터를 각 오브젝트 인식기(134)에 제공한다. 예를 들어, 코어스 분류기(123)는 이미지가 텍스트를 도시하는 신뢰도 값을 결정할 수 있고, 신뢰도 값이 임계치를 만족하면, 코어스 분류기(123)는 이미지를 텍스트 인식기(126)에 제공할 수 있다.
각 오브젝트 인식기(134)는 코어스 분류기(123)로부터 수신된 이미지들에 도시된 오브젝트들을 인식하기 위해 코어스 분류기(123)보다 더 상세한 이미지 분석을 수행할 수 있다. 예를 들어, 오브젝트 인식기(134)는 에지 검출, 패턴 인식 및 다른 컴퓨터 비전 기법을 사용하여 이미지에 도시된 오브젝트를 인식하고 이미지로부터 정보를 추출할 수 있다.
텍스트 인식기(126)는 광학 문자 인식(OCR)을 사용하여 이미지에서 도시된 텍스트를 인식할 수 있다. 바코드 인식기(128)는 이미지에서 도시된 바코드를 판독/디코딩하고 바코드로 표현된 오브젝트(예를 들어, 제품)에 관한 정보를 획득할 수 있다. 랜드마크 인식기(130)는 랜드마크의 이미지 데이터 및 패턴 인식을 사용하여 이미지에 도시된 랜드마크를 인식할 수 있다. 일부 구현예에서, 카메라 어플리케이션(114)은 이미지들에 도시된 오브젝트를 인식하고 바코드들을 판독하는데 사용하기 위해, 특정한 오브젝트들에 대한 이미지 데이터 및 바코드 데이터를 포함하는 오브젝트 인덱스(115)를 저장한다. 오브젝트에 대한 이미지 데이터는 오브젝트들의 이미지를 인식하기 위해 컴퓨터 비전 분석에 사용될 수 있는 오브젝트들의 시각적 피처들을 특정하는 데이터를 포함할 수 있다.
카메라 어플리케이션(114)은 적어도 일부 클래스들의 오브젝트들에 대해 인터-프레임 프로세싱을 수행할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 텍스트 인식기(126)가 텍스트를 인식한 이미지에 대해 인터-프레임 프로세싱(127)를 수행할 수 있고, 카메라 어플리케이션(114)은 랜드마크 인식기(130)가 랜드마크를 인식한 이미지에 대해 인터-프레임 프로세싱(131)을 수행할 수 있다. 일반적으로, 인터-프레임 프로세싱은 현재 이미지에서 오브젝트들을 검출함에 있어서 이전 이미지에서 인식된 오브젝트들에 관한 데이터를 활용한다.
텍스트에 대한 인터-프레임 프로세싱(127)은 동일한 텍스트가 검출되고 있는지 여부를 결정하기 위해 2개의 이미지에서 동일한 라인(또는 동일한 부분)의 텍스트 사이의 상관을 설정할 수 있다. 카메라 어플리케이션(114)은 텍스트의 최상 버전, 예를 들어 텍스트 인식기(126)가 보다 높은 품질로 결정한 텍스트를 유지할 수 있고, 이는 텍스트 인식의 정확성을 향상시킬 수 있다. 텍스트의 두 부분이 동일한지 여부를 결정하기 위해, 카메라 어플리케이션(114)은 인터-프레임 프로세싱(127)을 사용하여 두 개(또는 그 이상) 이미지에서 두 부분의 텍스트 사이의 거리와 두 개의 이미지에서 텍스트 사이의 편집 거리를 평가할 수 있다. 카메라 어플리케이션(114)은 인터-프레임 프로세싱(127)을 사용하여 광학 추적을 사용하여 텍스트를 추적함으로써 2개의 이미지들에서 텍스트의 부분들의 위치에 기초하여 거리를 직접 결정하고 및/또는 텍스트가 2개의 이미지의 캡처 사이의 모바일 디바이스(110)의 움직임에 기초할 곳을 예측한다. 편집 거리는 2개의 이미지에서 텍스트 부분들 사이에 상이한 문자들의 수 또는 백분율을 나타낼 수 있다. 거리와 편집 거리가 모두 임계치보다 작으면, 2 이상의 이미지들이 상관될 수 있고, 가장 높은 신뢰도 값 및/또는 최고 품질 스코어를 갖는 이미지는 나중에 사용하기 위해 유지될 수 있다.
일부 구현예에서, 텍스트 부분들은 다수의 이미지들로부터 유지될 수 있다. 예를 들어, 카메라 어플리케이션(114)은 텍스트를 라인 단위, 문자 단위 또는 단어 단위로 상관시키기 위해 인터-프레임 프로세싱(127)을 사용할 수 있다. 카메라 어플리케이션(114)은 상관된 텍스트 라인 중 어느 것이 가장 높은 신뢰도 및/또는 최고 품질을 갖는지를 식별하고, 이미지의 일부가 텍스트 분석기(126)에 대해 가장 높은 신뢰도 및/또는 최고 품질의 텍스트 라인을 갖는 것을 유지할 수 있다. 유사하게, 카메라 애플리케이션 (114)은 상관된 단어들(또는 문자들) 중 어느 것이 가장 높은 신뢰도 및/또는 가장 높은 품질을 갖는지를 결정하고, 이미지의 부분이 가장 높은 신뢰도 및/또는 가장 높은 품질의 단어(또는 문자)를 갖는 것을 유지할 수 있다. 따라서, 예를 들어, 카메라가 동일한 문서 또는 다른 텍스트 소스를 일정 기간 동안 가리키는 카메라로 인해, 다수의 이미지가 동일한 텍스트를 가질 때, 다수의 이미지 부분에서 인식된 텍스트는 결과 식별자(132)에 제공되어 텍스트의 각 부분의 최고 품질 버전을 제공한다.
랜드마크(및 다른 유형의 오브젝트들)에 대한 인터-프레임 프로세싱(131)은 이미지가 특정한 랜드마크(또는 오브젝트)를 도시하는지 여부를 결정함에 있어 특정한 랜드마크(또는 다른 오브젝트)가 다수의 이미지에서 검출되었는지에 대한 신뢰도를 나타내는 신뢰도 값(랜드마크 인식기(130)에 의해 결정됨)을 평가할 수 있다. 일부 구현예에서, 인터-프레임 프로세싱(131)은 결과 식별자(132)에 대한 랜드마크를 도시하는 것으로 이미지를 분류하기 전에 시퀀스 내의 얼마나 많은 이미지들이 특정한 랜드마크를 도시하는 것으로 식별되어야 하는지를 결정하기 위해 다수의 임계치들을 사용한다. 예를 들어, 이미지가 랜드마크를 도시한다고 나타내는 신뢰도 값이 제1 임계치보다 큰 경우, 카메라 어플리케이션(114)은 이미지들이 특정한 랜드마크를 도시하는 것으로 분류하기 전에 제1 수의 이미지가 특정한 랜드마크를 도시하는 것으로 분류되어야 한다고 결정할 수 있다. 신뢰도 값이 제1 임계치보다 작지만 제2 임계치보다 큰 경우, 카메라 어플리케이션(114)은 이미지가 특정 랜드마크를 도시하는 것으로 결정하기 위해, 제2 수의 이미지가 특정한 랜드마크를 도시하는 것으로 분류되도록 요구할 수 있고, 여기서 제2 수는 제1 수보다 높다.
결과 식별자(132)는 모바일 디바이스(110)에서(예를 들어, 카메라 어플리케이션(114) 내에서) 제시할 컨텐츠를 식별할 수 있다. 예를 들어, 이미지가 바코드를 포함하는 경우, 결과 식별자(132)는 바코드로 표현된 오브젝트를 식별하고, 오브젝트와 관련된 컨텐츠(예를 들어, 이미지, 제목 등)를 제시할 수 있다. 이미지가 랜드마크를 포함하면, 결과 식별자(132)는 랜드마크와 관련된 컨텐츠, 예를 들어 랜드마크의 사진, 랜드마크에 대한 지도 등을 사용자 인터페이스(116)에서 식별하고 제시할 수 있다.
결과 식별자(132)는 컨텐츠 데이터 저장소(116)에서 인식된 오브젝트에 대한 컨텐츠를 식별할 수 있다. 컨텐츠 데이터 저장소(116)는 오브젝트들의 세트 각각에 대한 컨텐츠를 포함할 수 있다. 컨텐츠 데이터 저장소(116)의 컨텐츠는 예를 들어 카메라 어플리케이션(114)에 의해 모바일 디바이스(110)에 로딩될 수 있다. 컨텐츠는 모바일 디바이스(110)에 의해 제시될 수 있는 텍스트, 이미지, 비디오 및/또는 다른 적절한 컨텐츠를 포함할 수 있다.
오브젝트에 대해 식별된 컨텐츠는 이미지와 함께 사용자 인터페이스(116)에 제시될 수 있다. 예를 들어, 컨텐츠는 이미지가 카메라 어플리케이션(114) 내에 도시된 뷰파인더에 제시될 수 있다. 이 예에서, 컨텐츠는 오브젝트, 텍스트 또는 바코드가 검출된 카메라의 실시간 뷰에 오버레이로 제시될 수 있다.
코어스 분류기(123)가 이미지에 도시된 하나 이상의 클래스의 오브젝트들을 검출하면, 결과 식별자(132)는 각 클래스에 대한 결과를 식별하고 각 클래스에 대한 적어도 하나의 결과를 제시할 수 있다. 예를 들어, 카메라 어플리케이션(114)은 이미지에서 검출된 각 클래스의 오브젝트에 대응하는 결과를 포함하는 결과 페이지를 제시할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 사용자가 검출된 오브젝트와 관련된 컨텐츠를 요청할 수 있는 아이콘들을 제시할 수 있다. 예를 들어, 이미지가 전화번호를 포함하면, 카메라 어플리케이션(114)은 사용자에 의해 인터렉션(예를 들어, 선택)되면, 모바일 디바이스(110)로 하여금 전화번호에 대한 전화를 개시하게 하는 아이콘을 제시할 수 있다. 바코드가 검출되면, 카메라 어플리케이션(114)은 바코드로 표현된 제품을 구매하기 위해 쇼핑 어플리케이션을 런칭하기 위한 아이콘, 검색 어플리케이션 또는 웹 브라우저를 사용하여 제품에 대한 검색을 개시하기 위한 아이콘 및/또는 예를 들어 소셜 네트워크 어플리케이션을 사용하여 제품을 공유하기 위한 아이콘을 제시할 수 있다. 랜드마크가 검출되면, 카메라 어플리케이션(114)은 랜드마크에 대한 지도를 제시하기 위해 지도 어플리케이션을 런칭하기 위한 아이콘, 랜드마크에 대한 검색을 개시하기 위한 아이콘 및/또는 랜드마크의 이미지를 보기 위한 아이콘을 제시할 수 있다. 아이콘은 예를 들어 카메라 어플리케이션(114)의 뷰파인더 내에 이미지로 제시될 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 카메라 어플리케이션(114)의 사용자 인터페이스(116)에서 사용자가 어떤 오브젝트가 검출되고 있는지 볼 수 있도록 검출되고 있는 오브젝트를 강조할 수 있다. 예를 들어, 사용자가 카메라(112)를 오브젝트로 향하고 있는 동안, 코어스 분류기(123)는 오브젝트의 클래스의 존재를 검출할 수 있고, 이미지는 분석을 위해 하나 이상의 오브젝트 인식기(134)에 송신될 수 있다. 이미지가 하나 이상의 오브젝트 인식기(134)에 의해 분석되는 동안, 카메라 어플리케이션(114)은 인식되는 오브젝트를 강조할 수 있다.
일부 구현예에서, 카메라 어플리케이션(114)은 사용자를 위해 오브젝트 인덱스(115) 및/또는 컨텐츠 데이터 저장소(116)의 컨텐츠를 커스터마이징한다. 예를 들어, 카메라 어플리케이션(114)이 사용자가 특정한 위치로 여행할 것임을 나타내는 데이터를 수신하면, 카메라 어플리케이션(114)은 특정한 위치에 위치된 오브젝트, 랜드마크 등에 대한 이미지 데이터 및/또는 바코드 데이터를 포함하도록 오브젝트 인덱스(115)를 업데이트할 수 있다. 카메라 어플리케이션(114)은 또한 특정한 위치에 위치한 오브젝트들, 랜드마크 등과 관련된 컨텐츠를 포함하도록 컨텐츠 데이터 저장소(116)를 업데이트할 수 있다.
일부 구현예에서, 이미지 분석 및 결과 식별의 일부 요소들은 시각적 분석 서버(150)에 위치된다. 예를 들어, 시각적 분석 서버(150)는 데이터 통신 네트워크(140), 예를 들어 근거리 통신망("LAN") 및 광역 통신망(“WAN”)(인터넷)을 통해 카메라 어플리케이션(114)으로부터 수신된 이미지에 도시된 오브젝트들을 인식하는 시각 분석기(152)를 포함할 수 있다. 시각적 분석 서버(150)는 또한 비전 분석기(152)에 의해 인식된 오브젝트와 관련된 결과 또는 다른 컨텐츠를 식별하고, 결과 또는 컨텐츠를 모바일 디바이스(110)에 제공하는 결과 프로세서(154)를 포함할 수 있다. 이 예에서, 이미지 선택기(122) 및 코어스 분류기(123)는 예를 들어 카메라 어플리케이션(114)의 일부로서 모바일 디바이스(110)에 구현될 수 있다.
카메라 어플리케이션(114)은 코어스 분류기(123)가 이미지에 대한 오브젝트들의 클래스 또는 피처 데이터의 존재를 검출한 이미지의 일부를 시각적 분석 서버(154)에 제공할 수 있다. 예를 들어, 코어스 분류기(123)가 이미지에서 랜드마크의 존재를 검출하면, 카메라 어플리케이션(114)은 랜드마크를 포함하는 이미지의 일부를 전체 이미지를 제공하지 않고 시각적 분석 서버(150)에 제공할 수 있다.
카메라 어플리케이션 구현과 유사하게, 이미지가 이미지 선택기(122)에 의해 선택되지 않은 경우(예를 들어, 임계치를 만족하지 않는 품질 스코어를 갖는 것에 대해), 카메라 어플리케이션(114)은 이미지(또는 이미지의 일부)를 시각적 분석 서버(150)에 송신하지 않기로 결정할 수 있다. 유사하게, 코어스 분류기(123)가 이미지에서 오브젝트의 클래스의 존재를 검출하지 않으면, 카메라 어플리케이션(114)은 이미지(또는 이미지의 일부)를 시각적 분석 서버(150)에 전송하지 않기로 결정할 수 있다.
이미지 선택 및 이미지 분석 스테이지는 순서대로 수행되는 것으로 도시되어 있지만, 일부 스테이지는 병렬로 수행될 수 있다. 예를 들어, 여러 이미지들이 동시에 코어스 분류기에 의해 분류될 수 있다. 유사하게, 이미지는 다수의 코어스 분류기에 의해 병렬로 분석될 수 있다.
일부 구현예에서, 이미지 선택기(122)는 모바일 디바이스(110)의 제어기 또는 제어기의 일부로서 구현된다. 이 예에서, 코어스 분류기(123) 및/또는 오브젝트 인식기들(134)은 예를 들어 모바일 디바이스(110) 또는 시각적 분석 서버(150)의 이미지 프로세싱 장치에서 구현될 수 있다.
도 2는 이미지를 분석하고 이미지에 도시된 하나 이상의 오브젝트들과 관련된 컨텐츠를 제공하는 예시적 프로세스(200)를 도시하는 흐름도이다. 프로세스(200)의 동작들은 예를 들어, 도 1의 모바일 디바이스(110)과 같은 하나 이상의 데이터 프로세싱 장치를 포함하는 시스템에 의해 구현될 수 있다. 또한, 프로세스(200)는 컴퓨터 저장 매체에 저장된 명령어들에 의해 구현될 수 있으며, 데이터 프로세싱 장치를 포함하는 시스템에 의한 명령어들의 실행은 데이터 프로세싱 장치로 하여금 프로세스(200)의 동작들을 수행하게 한다.
시스템은 모바일 디바이스 카메라에 의해 캡처된 이미지들에 대해, 상기 카메라가 상기 이미지를 캡처한 시간에 상기 카메라의 움직임을 나타내는 데이터에 액세스할 수 있다(202). 예를 들어, 시스템은 이미지 스트림(예를 들어, 비디오 스트림)을 수신할 수 있다. 시스템은 또한 각 이미지에 대해 카메라가 설치된 디바이스의 움직임을 나타내는 데이터를 획득할 수 있다. 예를 들어, 각 이미지에 대한 움직임 데이터는 자이로스코프, 가속도계 또는 IMU와 같은 하나 이상의 환경 센서로부터 수신될 수 있다. 각 이미지에 대해, 움직임 데이터는 이미지가 캡처된 때 디바이스의 움직임을 나타낼 수 있다. 예를 들어, 시스템은 카메라가 이미지를 캡처하는 시간에 센서로부터 움직임 데이터를 요청할 수 있다.
다른 예에서, 시스템은 이미지가 캡처된 시간을 포함하는 시간 윈도우를 환경 센서에 제공할 수 있다. 이에 응답하여, 환경 센서는 시간 윈도우 동안 환경 센서에 의해 검출된 움직임 데이터를 제공할 수 있다. 그 다음 시스템은 데이터에 기초하여 이미지를 캡처한 시간에 카메라가 어떻게 움직였는지 결정할 수 있다.
시스템은 이미지들로부터 이미지들에 대한 움직임 데이터에 기초하여 분석을 위해 특정한 이미지를 선택한다(204). 시스템은 디바이스의 움직임이 가장 적은 또는 회전 운동이 가장 적은 이미지를 선택할 수 있다. 전술한 바와 같이, 이미지는 다른 이미지가 캡처된 시간에 비해 이미지가 캡처된 시간에 기초하여 및/또는 이미지의 라이트 피처에 기초하여 선택될 수 있다. 이미지의 시각적 특성과 무관하게 또는 이미지의 시각적 특성과 조합하여 선택이 이루어질 수 있다.
시스템은 특정한 이미지에 도시된 하나 이상의 클래스의 오브젝트들의 존재를 검출하기 위해 하나 이상의 코어스 분류기를 사용하여 특정한 이미지를 분석한다. 각 코어스 분류기는 텍스트, 랜드마크, 아트워크, 미디어 커버, 바코드 등과 같은 각각의 클래스의 오브젝트의 존재를 검출하도록 구성될 수 있다. 각 코어스 분류기는 특정한 이미지가 오브젝트의 클래스를 도시하는지 여부를 특정하는 데이터 및 코어스 분류기가 그 결정에 대해 가지는 신뢰도를 나타내는 신뢰도 값을 출력할 수 있다. 또한 각 코어스 분류기는 위치, 방향 등과 같은 검출된 오브젝트의 특성을 기술하는 데이터를 포함하는 주석을 출력할 수 있다.
이미지에서 적어도 하나의 클래스의 오브젝트의 존재를 검출하는 것에 응답하여, 시스템은 이미지에 도시된 하나 이상의 오브젝트를 인식하기 위해 이미지를 분석한다(208). 예를 들어, 시스템은 이미지에 도시된 오브젝트들을 인식하기 위해 하나 이상의 컴퓨터 비전 기법을 사용할 수 있다. 사용된 기법은 코어스 분류기에 의해 이미지에서 도시된 오브젝트들의 클래스(들)에 기초할 수 있다. 예를 들어, 이미지가 바코드를 갖는 것으로 분류되면, 시스템은 바코드 인식기를 사용하여 바코드를 판독하고 바코드가 참조하는 제품을 식별할 수 있다.
시스템은 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시한다(212). 예를 들어, 시스템은 이미지 또는 결과 페이지에 하나 이상의 오버레이로 컨텐츠를 제시할 수 있다. 시스템은 사용자에 의해 인터렉션할 때 시스템으로 하여금 이미지에서 인식된 오브젝트와 관련된 컨텐츠를 제시하게 하는 아이콘을 제시할 수 있다. 예를 들어, 아이콘은 인식된 오브젝트에 대한 검색을 개시하고, 인식된 랜드마크에 대한 지도를 표시하고, 인식된 오브젝트의 다른 이미지를 제시하는 등의 아이콘을 포함할 수 있다.
도 3은 분석을 위한 이미지를 선택하기 위해 예시적 프로세스(300)를 도시하는 흐름도이다. 프로세스(300)의 동작들은 예를 들어, 도 1의 모바일 디바이스(110)과 같은 하나 이상의 데이터 프로세싱 장치를 포함하는 시스템에 의해 구현될 수 있다. 또한, 프로세스(300)는 컴퓨터 저장 매체에 저장된 명령어들에 의해 구현될 수 있으며, 데이터 프로세싱 장치를 포함하는 시스템에 의한 명령어들의 실행은 데이터 프로세싱 장치로 하여금 프로세스(300)의 동작들을 수행하게 한다.
시스템은 모바일 디바이스 카메라에 의해 캡처된 이미지에 대한 움직임 데이터를 수신한다(302). 전술한 바와 같이, 움직임 데이터는 이미지가 모바일 디바이스 카메라에 의해 캡처될 때 모바일 디바이스 카메라의 움직임을 나타낼 수 있다. 모바일 디바이스 카메라는 예를 들어 비디오 스트림과 같이 시퀀스로 이미지를 캡처할 수 있다. 일부 구현예에서, 모바일 디바이스 카메라는 초당 20-70 프레임 범위의 속도로 이미지들을 캡처한다.
시스템은 움직임 데이터에 기초하여 이미지의 예상 품질을 결정한다(304). 예를 들어, 이미지의 예상 품질은 이미지가 캡처된 때 모바일 디바이스 카메라의 움직임량에 기초할 수 있다. 이 예에서, 움직임은 흐려짐으로 인해 이미지의 품질을 저하시킬 수 있으므로 움직임이 많을수록 품질 스코어가 낮아질 수 있다.
시스템은 이미지의 예상 품질이 이미지 데이터가 저장된 최고 품질의 이미지의 예상 품질보다 큰지 여부를 결정한다(306). 예를 들어, 시스템은 단일 이미지에 대해서만 이미지 데이터를 저장할 수 있으며, 이 단일 이미지는 이전 이미지가 코어스 분류기로 송신된 이후 캡처된 이미지의 최고 품질 이미지(예상 품질에 기초한)일 수 있다. 새로운 이미지가 수신될 때마다, 시스템은 새로 수신된 이미지가 이미지 데이터가 현재 저장되어 있는 최고 품질 이미지보다 예상 품질이 더 높은지 여부를 결정할 수 있다.
새로 수신된 이미지가 이전에 식별된 최고 품질 이미지보다 높은 예상 품질을 갖지 않으면, 시스템은 최고 품질 이미지에 대해 이전에 저장된 이미지 데이터를 계속 저장하고, 다른 이미지가 수신되기를 기다린다. 새로 수신된 이미지가 최고 품질의 이미지보다 예상 품질이 더 높은 경우, 시스템은 최고 품질의 이미지에 대한 이미지 데이터를 새로 수신된 이미지에 대한 이미지 데이터로 교체한다(308).
일부 구현예에서, 시스템은 최고 품질의 이미지에 대해 저장된 이미지 데이터에 기초하여 예상 이미지 품질에 대한 교체 임계치를 설정한다. 이 예에서, 시스템은 새로 수신된 이미지의 예상 이미지 품질이 교체 임계치를 초과하면, 최고 품질의 이미지에 대한 이미지 데이터를 새로 수신된 데이터에 대한 이미지 데이터로 교체한다. 시스템은 시간이 지남에 따라 교체 임계치를 감소시킬 수 있다.
시스템은 최고 품질의 이미지에 대한 이미지 데이터를 코어스 분류기에 제공할지 여부를 결정한다(310). 일부 구현예에서, 시스템은 미리 결정된 기간에 기초하여 이미지 데이터를 코어스 분류기에 제공한다. 일부 구현들에서, 시스템은 코어스 분류기로부터의 요청을 수신함에 응답하여 이미지 데이터를 코어스 분류기에 제공한다.
시스템이 이미지 데이터를 코어스 분류기에 제공하지 않기로 결정하면, 시스템은 이미지를 계속 수신하고, 이미지 데이터를 코어스 분류기에 제공하기로 결정할 때까지 최고 품질 이미지에 대한 이미지 데이터를 교체할지 여부를 결정한다. 이러한 방식으로, 시스템은 최고 품질의 이미지에 대한 이미지 데이터만 저장한다.
시스템이 이미지 데이터를 코어스 분류기에 제공하기로 결정하면, 시스템은 분류를 위해 코어스 분류기에 이미지 데이터를 제공한다(312).
도 4는 이미지를 분석하기 위한 프로세싱 속도(rate)를 조정하기 위한 예시적 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)의 동작들은 예를 들어, 도 1의 모바일 디바이스(110)과 같은 하나 이상의 데이터 프로세싱 장치를 포함하는 시스템에 의해 구현될 수 있다. 또한, 프로세스(400)는 컴퓨터 저장 매체에 저장된 명령어들에 의해 구현될 수 있으며, 데이터 프로세싱 장치를 포함하는 시스템에 의한 명령어들의 실행은 데이터 프로세싱 장치로 하여금 프로세스(400)의 동작들을 수행하게 한다.
시스템은 이미지에 대한 이미지 데이터를 수신한다(402). 이미지 데이터는 이미지의 각 픽셀에 대한 컬러 값을 포함하여 이미지에 대한 이미지 픽셀 데이터를 포함할 수 있다.
시스템은 이미지가 하나 이상의 클래스들로 분류된 오브젝트를 포함하는지 여부를 결정한다(404). 예를 들어, 시스템은 코어스 분류기를 사용하여, 이미지가 전술된 바와 같이 하나 이상의 클래스들로 분류된 오브젝트를 포함하는지 여부를 결정할 수 있다.
시스템은 이미지가 하나 이상의 클래스들로 분류된 오브젝트를 포함하지 않는 것으로 결정하면, 시스템은 이미지가 하나 이상의 클래스들의 오브젝트를 포함하는지 여부를 결정하기 위해 이미지를 분석하기 위한 프로세싱 속도를 감소시킨다(406). 예를 들어, 시스템은 코어스 분류기를 사용하여 프로세싱 속도에 기초하여 이미지를 주기적으로 분석할 수 있다. 시스템이 하나 이상의 이미지들은 클래스들 중 하나에 오브젝트가 포함되어 있지 않다고 판단하면, 프로세싱 속도를 감소시켜 이미지가 분석되는 빈도를 감소시킬 수 있다. 이는 시스템로 하여금 관심 오브젝트를 포함되지 않은 이미지가 캡처되는 경우 컴퓨터 리소스 사용 및 전력 소비를 감소시킬 수 있다. 시스템은 프로세싱 속도를 감소시키기 전에 미리 정해진 수의 이미지(예를 들어, 5개, 10개 또는 다른 적절한 수)가 클래스 중 하나에 오브젝트를 포함하지 않을 때까지 기다릴 수 있다.
시스템은 이미지가 적어도 하나의 클래스로 분류된 오브젝트를 포함한다고 결정하면, 시스템은 프로세싱 속도를 증가시킨다(408). 예를 들어, 시스템은 이미지가 관심 오브젝트들을 포함할 때 시스템이 사용하는 활성 프로세싱 속도로 프로세싱 속도를 증가시킬 수 있다. 프로세싱 속도가 이미 활성 프로세싱 속도인 경우, 시스템은 프로세싱 속도를 변경하지 않은 채로 둘 수 있다.
시스템은 추가 분석을 위한 클래스들 중 적어도 하나의 오브젝트를 포함하는 이미지를 송신한다(410). 예를 들어, 시스템은 적어도 하나의 클래스의 오브젝트들을 인식하는 오브젝트 인식기로 이미지를 송신할 수 있다.
본 발명의 실시예들과 본 명세서에 기술된 기능적 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는, 디지털 전자회로에서, 유형적으로 수록된 컴퓨터 소프트웨어 또는 펌웨어에서, 컴퓨터 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명의 실시예들은 하나 이상의 컴퓨터 프로그램들로서 구현될 수 있다. 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 유형적 비일시적인 프로그램 캐리어에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판, 랜덤 또는 직렬 엑세스 메모리 디바이스 또는 그들 중 하나 이상의 조합일 수 있다.
용어 “데이터 프로세싱 장치”는 예시로서 프로그래머블 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로도 참조되거나 기술될 수 있음)은 컴파일된 또는 인터프리트된 언어들, 또는 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 컴퓨터들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA(field programmable gate array), ASIC(application specific integrated circuit) 또는 GPGPU(General purpose graphics processing unit)와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로 또는 일부 다른 유형의 프로세서로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 컴퓨터들은 예시로서, 일반적 또는 특수 목적 마이크로프로세서들 또는 둘 모두, 또는 임의의 기타 종류의 중앙 프로세싱 유닛을 포함하거나 이에 기초할 수 있다. 일반적으로, 중앙 프로세싱 유닛은 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들을 수행하거나 실행하기 위한 중앙 프로세싱 유닛 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야하는 것은 아니다. 추가로, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 나열하면, 모바일 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 본 발명의 실시예들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network) 및 WAN(wide area network) 예를 들어, 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정한 발명의 특정한 실시예에 특정적일 수 있는 구성들에 대한 설명으로 해석되어야 한다. 별개의 실시예의 맥락에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 기술된 다양한 구성들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 실시예에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다.
본 발명의 특정한 실시예들이 기술되었다. 다른 실시예들도 다음의 청구항들의 범위 내에 있다. 예를 들면, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 일 예시로서, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 특정 구현예에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다.

Claims (53)

  1. 시스템으로서,
    이미지들을 캡처하도록 구성된 카메라;
    데이터 프로세싱 장치; 및
    상기 데이터 프로세싱 장치와 데이터 통신하는 메모리 저장 장치를 포함하며, 상기 메모리 저장 장치는 상기 데이터 프로세싱 장치에 의해 실행 가능한 명령어들을 저장하고, 상기 명령어들은 실행시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하게 하며, 상기 동작들은 상기 이미지들 중 특정한 이미지에 대해:
    코어스 분류기를 사용하여, 상기 특정한 이미지가 하나 이상의 특정한 클래스들의 오브젝트들 중 적어도 하나의 오브젝트를 도시하는지 여부를 결정하기 위해 상기 특정한 이미지를 분석하는 동작; 및
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 한 오브젝트를 도시하는 경우:
    상기 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하기 위해 오브젝트 인식을 수행하는 오브젝트 인식기에 의해 상기 특정한 이미지가 분석되게 하는 동작; 및
    상기 하나 이상의 인식된 오브젝트들과 관련된 컨텐츠를 제시하는 동작; 및
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 오브젝트를 도시하지 않는 경우, 상기 오브젝트 인식을 사용하여 상기 특정한 이미지를 분석하지 않기로 결정하는 동작을 포함하는, 시스템.
  2. 청구항 1에 있어서,
    상기 하나 이상의 특정한 클래스들의 오브젝트들은 바코드 클래스를 포함하는, 시스템.
  3. 청구항 2에 있어서,
    상기 오브젝트 인식은 상기 바코드를 디코딩하는 바코드 인식을 포함하는, 시스템.
  4. 청구항 3에 있어서, 상기 하나 이상의 인식된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 상기 바코드에 의해 표현된 제품과 관련된 컨텐츠를 제시하는 것을 포함하는, 시스템.
  5. 청구항 1에 있어서,
    상기 하나 이상의 특정한 클래스들의 오브젝트들은 텍스트 클래스를 포함하는, 시스템.
  6. 청구항 5에 있어서,
    상기 오브젝트 인식은 텍스트를 인식하기 위한 광학 문자 인식을 포함하는, 시스템.
  7. 청구항 1에 있어서,
    상기 하나 이상의 특정한 클래스들의 오브젝트들은 미디어 커버 클래스를 포함하는, 시스템.
  8. 청구항 1에 있어서,
    상기 코어스 분류기는 복합 코어스 분류기를 포함하며, 상기 복합 코어스 분류기는 다수의 상이한 특정한 클래스들의 오브젝트들 각각에 대해, 상기 특정한 이미지가 상기 다수의 상이한 특정한 클래스들의 오브젝트들 중 적어도 하나의 오브젝트를 도시하는지 여부를 결정하도록 구성되는, 시스템.
  9. 청구항 8에 있어서,
    상기 복합 코어스 분류기는 공통 핵심 부분과 상기 다수의 상이한 특정한 클래스들의 오브젝트들 중 각각의 한 클래스에 대해 클래스별 확률을 각각 결정하는 복수의 모듈들을 포함하는, 시스템.
  10. 청구항 1에 있어서,
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 한 오브젝트를 도시하는 경우, 상기 코어스 분류기는 상기 특정한 이미지 내의 오브젝트의 위치를 식별하는 하나 이상의 주석들을 생성하도록 구성되는, 시스템.
  11. 청구항 1에 있어서,
    상기 하나 이상의 특정한 클래스들의 오브젝트들은 텍스트 클래스를 포함하며, 상기 특정한 이미지가 텍스트를 도시하는 경우, 상기 코어스 분류기는 상기 특정한 이미지 내의 상기 텍스트의 방향을 식별하는 하나 이상의 주석들을 생성하도록 구성되는, 시스템.
  12. 청구항 1에 있어서,
    상기 코어스 분류기를 사용하여 상기 특정한 이미지를 분석하는 동작은 프로세싱 속도에 기초하여 주기적으로 상기 코어스 분류기에 의한 분석을 개시하는 것을 포함하는, 시스템.
  13. 청구항 12에 있어서,
    상기 동작들은 카메라 어플리케이션과의 사용자 인터렉션에 기초하여 상기 프로세싱 속도를 조정하는 동작을 포함하는, 시스템.
  14. 청구항 12에 있어서,
    상기 동작들은 하나 이상의 클래스들의 오브젝트들의 존재가 이전의 시간 기간 동안 상기 코어스 분류기에 의해 분석된 하나 이상의 이미지들에서 검출되었는지 여부에 기초하여 상기 프로세싱 속도를 조정하는 동작을 포함하는, 시스템.
  15. 청구항 14에 있어서,
    상기 프로세싱 속도는 상기 이전의 시간 기간 동안 적어도 하나의 이미지에서 하나 이상의 클래스들의 오브젝트들의 존재를 검출함에 응답하여 단위 시간당 더 많은 이미지들이 상기 코어스 분류기에 의해 분석되도록 증가되는, 시스템.
  16. 청구항 14에 있어서,
    상기 프로세싱 속도는 상기 이전의 시간 기간 동안 적어도 하나의 이미지에서 하나 이상의 클래스들의 오브젝트들의 존재를 검출하지 않음에 응답하여 단위 시간당 더 적은 이미지들이 상기 코어스 분류기에 의해 분석되도록 감소되는, 시스템.
  17. 청구항 1에 있어서, 상기 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 상기 하나 이상의 식별된 오브젝트들과 관련된 리소스들에 대한 링크들을 포함하는 결과를 포함하는 결과 페이지를 제시하는 것을 포함하는, 시스템.
  18. 청구항 1에 있어서,
    상기 하나 이상의 식별된 오브젝트들과 관련된 컨텐츠를 제시하는 동작은 식별된 오브젝트 각각에 대해, 상기 오브젝트 상의 오버레이에서 상기 오브젝트와 관련된 컨텐츠를 제시하는 것을 포함하는, 시스템.
  19. 이미지에 포함된 오브젝트에 응답하여 컨텐츠를 효율적으로 제공하기 위한 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 시스템에 의해, 코어스 분류기를 사용하여, 특정한 이미지가 하나 이상의 특정한 클래스들의 오브젝트들 중 적어도 하나의 오브젝트를 도시하는지 여부를 결정하기 위해 상기 특정한 이미지를 분석하는 단계;
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 한 오브젝트를 도시하는 경우:
    상기 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하기 위해 오브젝트 인식을 수행하는 상기 컴퓨팅 시스템의 오브젝트 인식기에 의해 상기 특정한 이미지가 분석되게 하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 하나 이상의 인식된 오브젝트들과 관련된 컨텐츠를 제시하는 단계; 및
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 오브젝트를 도시하지 않는 경우, 상기 컴퓨팅 시스템에 의해, 상기 오브젝트 인식을 사용하여 상기 특정한 이미지를 분석하지 않기로 결정하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  20. 데이터 프로세싱 장치에 의해 실행가능한 명령어들을 저장하는 메모리 저장 장치로서, 상기 명령어들은 실행시 상기 데이터 프로세싱 장치로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    코어스 분류기를 사용하여, 특정한 이미지가 하나 이상의 특정한 클래스들의 오브젝트들 중 적어도 하나의 오브젝트를 도시하는지 여부를 결정하기 위해 상기 특정한 이미지를 분석하는 동작;
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 한 오브젝트를 도시하는 경우:
    상기 특정한 이미지에 도시된 하나 이상의 오브젝트들을 인식하기 위해 오브젝트 인식을 수행하는 오브젝트 인식기에 의해 상기 특정한 이미지가 분석되게 하는 동작; 및
    상기 하나 이상의 인식된 오브젝트들과 관련된 컨텐츠를 제시하는 동작; 및
    상기 특정한 이미지가 상기 하나 이상의 특정한 클래스들의 오브젝트들 중 오브젝트를 도시하지 않는 경우, 상기 오브젝트 인식을 사용하여 상기 특정한 이미지를 분석하지 않기로 결정하는 동작을 포함하는, 메모리 저장 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
KR1020197028726A 2017-05-19 2018-02-09 환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어 KR102361570B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762508873P 2017-05-19 2017-05-19
US62/508,873 2017-05-19
PCT/US2018/017634 WO2018212809A1 (en) 2017-05-19 2018-02-09 Efficient image analysis using environment sensor data

Publications (2)

Publication Number Publication Date
KR20190126347A KR20190126347A (ko) 2019-11-11
KR102361570B1 true KR102361570B1 (ko) 2022-02-11

Family

ID=61274359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197028726A KR102361570B1 (ko) 2017-05-19 2018-02-09 환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어

Country Status (6)

Country Link
US (3) US10621435B2 (ko)
EP (1) EP3577597A1 (ko)
JP (2) JP2020513127A (ko)
KR (1) KR102361570B1 (ko)
CN (2) CN113888761A (ko)
WO (1) WO2018212809A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
KR102399947B1 (ko) * 2016-07-05 2022-05-20 서울바이오시스 주식회사 자외선 발광 장치를 포함하는 피부 측정 기구 및 피부 측정 시스템
EP3428834B1 (de) * 2017-07-12 2019-06-12 Sick AG Optoelektronischer codeleser und verfahren zum lesen von optischen codes
US10846561B1 (en) 2020-04-01 2020-11-24 Scandit Ag Recognition and selection of discrete patterns within a scene or image
JP2019186791A (ja) * 2018-04-12 2019-10-24 シャープ株式会社 撮像装置、撮像装置の制御方法、および制御プログラム
US10725629B2 (en) * 2018-06-25 2020-07-28 Google Llc Identifying and controlling smart devices
EP3721382B1 (en) * 2018-12-31 2022-10-12 Beijing Didi Infinity Technology and Development Co., Ltd. Method and system of annotation densification for semantic segmentation
US11157762B2 (en) * 2019-06-18 2021-10-26 At&T Intellectual Property I, L.P. Surrogate metadata aggregation for dynamic content assembly
JP7345387B2 (ja) * 2019-12-26 2023-09-15 Kddi株式会社 触感提示システム、触感提示システムのローカル端末およびサーバ装置ならびに触感提示方法および触感提示プログラム
JP7452620B2 (ja) 2020-02-26 2024-03-19 日本電気株式会社 画像処理装置、画像処理方法、及びプログラム
CH717252A2 (de) * 2020-03-23 2021-09-30 4Art Holding Ag Verfahren zur Wiedererkennung von Oberflächen.
US11514665B2 (en) 2020-04-01 2022-11-29 Scandit Ag Mapping optical-code images to an overview image
US11403477B1 (en) 2020-05-15 2022-08-02 Scandit Ag Image exposure performance improvements for recognition of optical patterns
US11379697B2 (en) 2020-05-20 2022-07-05 Bank Of America Corporation Field programmable gate array architecture for image analysis
US11295430B2 (en) 2020-05-20 2022-04-05 Bank Of America Corporation Image analysis architecture employing logical operations
CN112016440B (zh) * 2020-08-26 2024-02-20 杭州云栖智慧视通科技有限公司 一种基于多目标跟踪的目标推送方法
US11470282B2 (en) * 2020-12-09 2022-10-11 Waymo Llc Systems, apparatus, and methods for transmitting image data
US11495036B1 (en) * 2021-01-29 2022-11-08 Scandit Ag Segmenting images for optical character recognition
KR20220121105A (ko) * 2021-02-24 2022-08-31 삼성전자주식회사 타겟 영역 내의 객체의 위치를 추적하는 방법 및 이를 수행하는 전자 장치
US11880738B1 (en) 2021-08-17 2024-01-23 Scandit Ag Visual odometry for optical pattern scanning in a real scene
US11978267B2 (en) * 2022-04-22 2024-05-07 Verkada Inc. Automatic multi-plate recognition
US11557133B1 (en) 2022-04-22 2023-01-17 Verkada Inc. Automatic license plate recognition

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9310892B2 (en) * 2000-11-06 2016-04-12 Nant Holdings Ip, Llc Object information derived from object images
US7315631B1 (en) * 2006-08-11 2008-01-01 Fotonation Vision Limited Real-time face tracking in a digital image acquisition device
US20090066799A1 (en) * 2007-09-11 2009-03-12 Omnivision Technologies, Inc. Image sensor apparatus and method for embedding image stabilization data into image data
US9024972B1 (en) 2009-04-01 2015-05-05 Microsoft Technology Licensing, Llc Augmented reality computing with inertial sensors
US9619891B2 (en) * 2010-08-26 2017-04-11 Blast Motion Inc. Event analysis and tagging system
JP5434965B2 (ja) * 2011-06-03 2014-03-05 カシオ計算機株式会社 動画生成方法、動画生成装置及びプログラム
US20140126822A1 (en) * 2011-03-11 2014-05-08 The University Of Sydney Image Processing
US9852135B1 (en) * 2011-11-29 2017-12-26 Amazon Technologies, Inc. Context-aware caching
EP2763077B1 (en) * 2013-01-30 2023-11-15 Nokia Technologies Oy Method and apparatus for sensor aided extraction of spatio-temporal features
JP5750558B2 (ja) * 2013-02-14 2015-07-22 富士フイルム株式会社 撮像装置及び合焦制御方法
US9402018B2 (en) * 2013-12-17 2016-07-26 Amazon Technologies, Inc. Distributing processing for imaging processing
US8965117B1 (en) * 2013-12-17 2015-02-24 Amazon Technologies, Inc. Image pre-processing for reducing consumption of resources
US9626577B1 (en) * 2014-09-15 2017-04-18 Amazon Technologies, Inc. Image selection and recognition processing from a video feed
US9750420B1 (en) * 2014-12-10 2017-09-05 Amazon Technologies, Inc. Facial feature selection for heart rate detection
US10062412B2 (en) * 2015-06-05 2018-08-28 Apple Inc. Hierarchical segmentation and quality measurement for video editing
US9628116B2 (en) * 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US20170148488A1 (en) * 2015-11-20 2017-05-25 Mediatek Inc. Video data processing system and associated method for analyzing and summarizing recorded video data

Also Published As

Publication number Publication date
JP2022101603A (ja) 2022-07-06
EP3577597A1 (en) 2019-12-11
CN110506276A (zh) 2019-11-26
US11704923B2 (en) 2023-07-18
US20180373934A1 (en) 2018-12-27
US20230316793A1 (en) 2023-10-05
KR20190126347A (ko) 2019-11-11
JP7407856B2 (ja) 2024-01-04
WO2018212809A1 (en) 2018-11-22
CN113888761A (zh) 2022-01-04
US20200226382A1 (en) 2020-07-16
US10621435B2 (en) 2020-04-14
CN110506276B (zh) 2021-10-15
JP2020513127A (ja) 2020-04-30

Similar Documents

Publication Publication Date Title
KR102361570B1 (ko) 환경 센서 데이터를 사용하는 효율적 이미지 분석 방법, 시스템 및 미디어
CN109964236B (zh) 用于检测图像中的对象的神经网络
CN108629284B (zh) 基于嵌入式视觉系统的实时人脸跟踪和人脸姿态选择的方法及装置、系统
US9436883B2 (en) Collaborative text detection and recognition
US9390340B2 (en) Image-based character recognition
US10043231B2 (en) Methods and systems for detecting and recognizing text from images
US11468680B2 (en) Shuffle, attend, and adapt: video domain adaptation by clip order prediction and clip attention alignment
US20230342011A1 (en) Selecting an Input Mode for a Virtual Assistant
CN111488791A (zh) 将指尖运动模式实时地设备上分类为手势
US9058536B1 (en) Image-based character recognition
US9569679B1 (en) Adaptive image sampling for text detection
US9729792B2 (en) Dynamic image selection
US20200265229A1 (en) Real time object detection and tracking
US20200394414A1 (en) Keyframe scheduling method and apparatus, electronic device, program and medium
CN114511041A (zh) 模型训练方法、图像处理方法、装置、设备和存储介质
US9940510B2 (en) Device for identifying digital content
KR20210073094A (ko) 사용자 단말 장치 및 그 제어 방법

Legal Events

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