KR20210105975A - 자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용 - Google Patents

자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용 Download PDF

Info

Publication number
KR20210105975A
KR20210105975A KR1020217023376A KR20217023376A KR20210105975A KR 20210105975 A KR20210105975 A KR 20210105975A KR 1020217023376 A KR1020217023376 A KR 1020217023376A KR 20217023376 A KR20217023376 A KR 20217023376A KR 20210105975 A KR20210105975 A KR 20210105975A
Authority
KR
South Korea
Prior art keywords
image
histogram
scene
time
capture
Prior art date
Application number
KR1020217023376A
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
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20210105975A publication Critical patent/KR20210105975A/ko

Links

Images

Classifications

    • 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/64Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
    • H04N5/23222
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • G06K9/6212
    • G06K9/6215
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/758Involving statistics of pixels or of feature values, e.g. histogram matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N5/23229
    • H04N5/23248
    • H04N5/2351
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/71Circuitry for evaluating the brightness variation

Abstract

카메라에 의해 수신된 일련의 프레임 또는 라이브 이미지는 자동 이미지 캡처 시스템에 의해 처리되어 자동 이미지 캡처가 수행되어야 하는 시기를 결정할 수 있다. 시스템은 2 개 이상의 프레임에 대한 데이터를 비교하여 장면 변경이 발생하는 시기를 검출할 수 있다. 장면 변경 후 장면이 안정화되면, 시스템은 사용자 입력 없이 안정화된 장면의 자동 캡처를 트리거할 수 있다.

Description

자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용
카메라를 포함하는 컴퓨팅 디바이스는 점점 보편화되고 모바일화되고 있으며 랩톱 컴퓨터, 태블릿 PC, 디지털 카메라 디바이스, 휴대폰, 울트라 모바일 PC 및 기타 모바일 데이터, 메시징 및/또는 통신 디바이스와 같은 디바이스를 포함한다. 사용자는 컴퓨팅 디바이스와 연관된 카메라를 사용하여 다양한 풍경 사진을 찍고, 프레젠테이션, 화이트 보드, 명함, 문서, 스케치, 그림 등의 이미지를 캡처할 수 있다. 그런 다음, 사용자는 캡처된 이미지를 참조하여 다이어그램, 사진, 목록 및 기타 텍스트 등과 같은 그 안에 포함된 정보를 불러올 수 있다. 대부분의 경우, 사용자는 자신의 문서, 메모 및/또는 프레젠테이션에서 캡처된 이미지의 정보를 사용하려고 한다.
이미지를 캡처하는 데 사용되는 종래 기술은 장면을 캡처하기 위해 사용자 입력에 의존하는 사진 애플리케이션의 사용을 포함한다. 다시 말해서, 사용자는 카메라 및/또는 애플리케이션을 시작하고 원하는 장면을 조준한 다음 클릭하여 이미지를 캡처해야 한다. 안타깝게도, 화면에서 원하는 객체에 대한 초점을 유지하면서 안정적이고 깨끗한 사진을 얻기 위해 휴대폰을 한 손으로 조작하고 사진을 클릭하는 것은 여전히 어렵다. 또한, 휴대폰 카메라의 핸즈프리 동작을 위한 준비는 달성하기 어려웠다. 따라서, 최소한의 사용자 노력으로 디지털 콘텐츠를 효율적으로 캡처하기 위한 새롭고 개선된 아이디어를 위한 중요한 영역이 남아 있다.
본 개시의 제 1 양태에 따른 시스템은 적어도 하나의 프로세서 및 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서가, 제 1 시간에, 제 1 현실 세계 장면에 대응하는 제 1 이미지를 수신하게 하고, 제 1 시간 이후 제 2 시간에, 제 2 현실 세계 장면에 대응하는 제 2 이미지를 수신하게 하는 명령어를 포함한다. 또한, 명령어는 적어도 하나의 프로세서가, 제 1 이미지가 제 2 이미지와 적어도 제 1 양만큼 상이하다고 결정하게 하고, 제 2 시간 이후 제 3 시간에, 제 3 현실 세계 장면에 대응하는 제 3 이미지를 수신하게 한다. 더욱이, 명령어는 적어도 하나의 프로세서가, 제 2 이미지와 제 3 이미지가 실질적으로 유사하다고 결정하게 하고, 제 2 이미지와 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여, 카메라 광학 시스템을 통해 제 3 이미지의 적어도 제 1 영역을 자동으로 캡처하게 한다.
본 개시의 제 2 양태에 따른 방법은, 제 1 시간에, 제 1 현실 세계 장면에 대응하는 제 1 이미지를 수신하는 단계, 및 제 1 시간 이후 제 2 시간에, 제 2 현실 세계 장면에 대응하는 제 2 이미지를 수신하는 단계를 포함한다. 방법은 제 1 이미지가 제 2 이미지와 적어도 제 1 양만큼 상이하다고 결정하는 단계, 및 제 2 시간 이후 제 3 시간에, 제 3 현실 세계 장면에 대응하는 제 3 이미지를 수신하는 단계를 더 포함한다. 또한, 방법은 제 2 이미지와 제 3 이미지가 실질적으로 유사하다고 결정하는 단계, 및 제 2 이미지와 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여, 카메라 광학 시스템을 통해 제 3 이미지의 적어도 제 1 영역을 자동으로 캡처하는 단계를 포함한다.
본 개시의 제 3 양태에 따른 시스템은 적어도 하나의 프로세서 및 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서가, 카메라를 통해, 제 1 이미지 프레임 및 후속 제 2 이미지 프레임을 포함하는 복수의 이미지 프레임을 수신하게 하고, 제 1 이미지 프레임과 제 2 이미지 프레임 사이에 장면 변경이 발생했는지 결정하게 하는 명령어를 포함한다. 명령어는 적어도 하나의 프로세서가, 카메라를 통해, 제 2 이미지 프레임을 수신한 후 제 3 이미지 프레임을 수신하게 하고, 제 2 이미지 프레임과 제 3 이미지 프레임 사이에 장면 안정화가 발생했는지 결정하게 한다. 더욱이, 명령어는 적어도 하나의 프로세서가, 적어도 장면 변경이 발생하고 장면 안정화가 발생했다는 결정에 기초하여 제 3 이미지 프레임 이후에 수신된 제 4 이미지 프레임의 자동 캡처를 시작하게 한다.
이 요약은 아래의 상세한 설명에서 더욱 설명되는 개념들의 선택을 간략화된 형태로 소개하기 위해 제공된다. 이 요약은 청구되는 주제의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니고, 청구되는 주제의 범위를 제한하기 위해 사용되는 것도 아니다. 더욱이, 청구되는 주제는 본 개시의 임의의 부분에 언급된 임의의 또는 모든 단점을 해결하는 구현으로 제한되지 않는다.
도면은 본 교시에 따른 하나 이상의 구현을 제한이 아닌 예로서만 도시한다. 도면에서, 동일한 참조 번호는 동일하거나 유사한 요소를 나타낸다. 더욱이, 도면은 반드시 실척이 아님을 이해해야 한다.
도 1a 내지 도 1c는 각각 이미지 캡처 애플리케이션 및 환경의 구현을 도시한다.
도 2는 이미지 캡처를 관리하기 위한 분산 컴퓨팅 환경의 일 구현을 도시하는 개념도이다.
도 3a 및 도 3b는 2 개의 현실 세계 장면의 이미지 캡처의 예이다.
도 4a 및 도 4b는 도 3a 및 도 3b의 2 개의 이미지에 대한 히스토그램의 예이다.
도 5a 및 도 5b는 실질적으로 유사한 2 개의 현실 세계 장면의 이미지 캡처의 예이다.
도 6a 및 도 6b는 자동 이미지 캡처의 구현 및 이미지 저장을 관리하도록 구성된 애플리케이션을 위한 사용자 인터페이스의 구현을 나타낸다.
도 7a 내지 도 7d는 이미지 안정화에 이어 대응하는 히스토그램을 갖는 장면 변경의 예이다.
도 8a 및 도 8b는 새로운 현실 세계 장면의 이미지 안정화 및 대응하는 히스토그램의 예이다.
도 9a 및 도 9b는 자동 이미지 캡처의 구현 및 이미지 저장을 관리하도록 구성된 애플리케이션을 위한 사용자 인터페이스의 구현을 나타낸다.
도 10은 자동 이미지 캡처 도구에 대한 구현의 프로세스 흐름도이다.
도 11은 자동 이미지 캡처를 관리하기 위한 프로세스의 구현을 도시하는 흐름도이다.
도 12는 본 명세서에 설명된 메커니즘의 구현을 제공하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 블록도이다.
도 13은 기계 판독 가능 매체로부터 명령어를 판독하도록 구성된 예시적인 기계의 컴포넌트를 도시하는 블록도이다.
다음의 상세한 설명에서, 관련 교시의 완전한 이해를 제공하기 위해 수많은 특정 세부 사항이 예를 통해 설명된다. 그러나, 본 교시는 이러한 세부 사항 없이 실행될 수 있음이 명백해야 한다. 다른 예에서, 본 교시의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해, 잘 공지된 방법, 절차, 컴포넌트 및/또는 회로가 세부 사항 없이 비교적 높은 수준으로 설명되었다.
다음 구현은 사용자의 카메라 조작을 용이하게 하기 위한 이미지 캡처 애플리케이션 도구 상자를 소개한다. 제안된 시스템은 장면 변경 검출 및 후속 장면 안정화로 트리거되는 자동 이미지 캡처 프로세스에 의해 사용자에게 보다 직관적이고 덜 번거로운 경험을 제공한다. 일부 구현에서, 시스템은 일련의 이미지 또는 프레임을 수신하고 최근 수신된 이미지를 이전에 수신된 이미지와 비교하여 장면 변경이 발생했는지 또는 발생하고 있는지를 결정하도록 구성될 수 있다. 일반적으로, 이미지 캡처 작업 흐름에는 사용자가 수행할 수 있는 일련의 단계가 포함되어 있다: (1) 현실 세계 장면에 카메라를 조준하기; (2) 카메라 초점을 맞추기 위해 균형을 잡고 기다리기; (3) 캡처를 트리거하는 입력을 제공하기; (4) 사진을 캡처하기; 및 (5) 여러 장의 사진을 찍기 위해 필요에 따라 이러한 단계를 반복하기. 따라서, 원하는 장면을 캡처하기 위해, 렌즈가 장면을 향하도록 카메라를 조준하는 것 외에도, 사용자는 이 장면을 캡처해야 한다는 것을 확정하는 후속 입력을 제공해야 한다. 대부분의 경우, 이러한 후속 입력은 카메라의 불안정화, 카메라 초점의 변경, 이미지의 흐릿함 또는 특정 풍경이 누락되거나 더 이상 올바르게 프레임이 구성되지 않음을 의미하는 지연으로 이어질 수 있다. 또한, 사용자 입력의 필요성은 사용자가 이미지를 캡처하기 위해 카메라를 외면하거나 다른 활동에 참여할 수 없음을 의미한다. 더욱이, 다수의 이미지가 다양한 장면을 캡처해야 하는 경우, 프로세스는 반복적이고 시간 소모적이며 사용자에게 지루할 수 있다. 개시된 구현은 사용자가 하나 이상의 현실 세계 장면을 향해 카메라를 조준하거나 향하게 할 수 있는 경우 자동 캡처 모드를 활성화하고, 추가 사용자 입력 없이 상기 장면의 사진을 자동으로 캡처할 수 있게 한다. 일부 구현에서, 시스템은 장면이 이전에 보거나 캡처된 장면과 상이하고 이 장면이 시스템에 의해 휴리스틱 방식으로 결정된 미리 정의된 시간 기간 동안 안정하다는 결정이 내려질 때 트리거될 것이다. 예를 들어, 이 기간은 40 ms에서 500 ms 사이일 수 있다. 일부 구현에서, 이 기간은 대략 100 ms에서 200 ms 사이일 수 있다. 일 구현에서, 이 기간은 150 ms로 설정될 수 있다. 이러한 시스템은 사용자에게 반복적인 입력을 요구하지 않고 이미지를 캡처할 수 있는 능력을 제공할 수 있으며, 일부 구현에서는 이미지 품질이나 타이밍의 손실 없이 이미지 캡처 중에 사용자가 다른 활동에 참여할 수 있는 자동 캡처 모드를 제공할 수 있다.
위에서 소개한 바와 같이, 다양한 애플리케이션을 사용하여 디지털 이미지 또는 전자 콘텐츠를 수신, 캡처 및/또는 제시할 수 있다. 이 설명을 위해, "전자 콘텐츠" 또는 "이미지"라는 용어는 전자 문서, 미디어 스트림, 실시간 비디오 캡처, 실시간 이미지 디스플레이, 문서, 웹 페이지, 하이퍼텍스트 문서, 임의의 이미지, 디지털 비디오 또는 비디오 녹화, 애니메이션 및 기타 디지털 데이터를 포함하지만 이에 제한되지 않는 시각적으로 표현될 수 있는 임의의 디지털 데이터를 포함한다. 예로서, 이러한 전자 콘텐츠는 사진 애플리케이션에 의해 캡처된 이미지 또는 사용자에게 디지털 이미지와 함께 사용하기 위한 도구를 제공하도록 구성된 기타 소프트웨어를 포함할 수 있다.
더욱이, 일부 유형의 문서 내에서, 전자 콘텐츠는 이미지 콘텐츠 영역("콘텐츠 영역") 또는 보다 간단하게는 영역으로 지칭될 하나 이상의 유닛으로 분할되거나 이를 포함하는 것으로 이해될 수 있다. 본 출원을 위해, "영역"이라는 용어는 이미지의 개별 또는 이산 세그먼트로 식별 가능한 및/또는 선택 가능한 디지털 콘텐츠 부분을 설명한다. 예로서, 하나의 전자 콘텐츠 모음(예컨대, 디지털 사진)은 각각 하나 이상의 이미지 콘텐츠 부분("콘텐츠 부분")을 포함할 수 있는 복수의 영역으로 또는 이에 의해 특성화될 수 있다. 상이한 구현에서, 제 1 이미지 콘텐츠 영역은 동일한 이미지에서 다른 제 2 이미지 콘텐츠 영역의 일부와 오버랩될 수 있다. 따라서, 콘텐츠 영역은 시스템에 의해 정의되거나 식별될 수 있는 전자 콘텐츠의 임의의 부분을 포함한다. 예를 들어, 콘텐츠 영역은 콘텐츠 부분 자체의 특성으로부터 또는 다른 콘텐츠 부분과 관련하여 자동으로 식별될 수 있거나(예를 들어, 색상, 광도 레벨, 가장자리 검출, 모양, 기호, 픽셀), 검토자 또는 최종 사용자에 의해 수동으로 정의될 수 있거나(예를 들어, 선택된 픽셀 세트 또는 객체), 또는 디지털 이미지의 임의의 다른 선택된 부분일 수 있다.
또한, 이 애플리케이션을 위한 최종 사용자(또는 "사용자")는 전자 콘텐츠에서 선택된 영역의 생성, 보기 또는 업데이트를 비롯한 전자 콘텐츠의 일부를 캡처, 편집, 보기, 관리 또는 삭제하는 사람이다. 최종 사용자는 본 명세서에 설명된 장치 및 시스템뿐만 아니라 애플리케이션 프로그램의 사용자를 포함한다. 또한, 이 설명을 위해, "소프트웨어 애플리케이션", "소프트웨어" 또는 "애플리케이션"이라는 용어는 일반적으로 컴퓨터 자체와는 관련이 없는, 유용한 작업을 수행하는 컴퓨터 프로그램을 나타낸다. 소프트웨어 애플리케이션의 일부 비제한적인 예로는 사진 소프트웨어, 이미지 캡처/편집 애플리케이션, 워드 프로세서, 스프레드 시트, 슬라이드 쇼, 프레젠테이션 디자인 애플리케이션, 회계 시스템 및 전기 통신 프로그램, 게임 소프트웨어, 유틸리티 및 생산성 도구, 모바일 애플리케이션, 프레젠테이션 그래픽 및 기타 생산성 소프트웨어를 포함한다.
개시된 특징을 통합할 수 있는 소프트웨어 애플리케이션은 클라이언트의 디바이스에 설치되거나, 디바이스와 통신하도록 구성된 웹 브라우저 애플리케이션과 같은 제 3 자 애플리케이션과 연관될 수 있다. 이러한 디바이스는, 예를 들어, 데스크톱 컴퓨터, 모바일 컴퓨터, 모바일 통신 디바이스(예컨대, 휴대폰, 스마트 폰, 태블릿 등), 스마트 TV, 게임 디바이스, 셋톱 박스 및/또는 카메라 및/또는 이미지 디스플레이 기능을 포함하는 임의의 다른 컴퓨팅 디바이스를 포함할 수 있다. 일반적으로, 이러한 애플리케이션은 최종 사용자가 카메라에 의해 수신된 이미지 또는 메모리에 저장되거나 메모리로부터 액세스되는 이미지를 사용하여 문서, 프리젠테이션, 현실 세계 객체 및 기타 대상을 캡처하거나 스캔할 수 있도록 한다. 또한, 일부 구현에서, 카메라 기반 스캐닝 애플리케이션은 종이, 명함, 화이트 보드, 화면 등과 같은 직사각형 또는 다른 다각형 객체에 대한 원근 효과를 보정하도록 구성될 수 있다.
단순함을 위해, 다음 구현에서는 휴대폰 및 태블릿과 같은 모바일 컴퓨팅 디바이스의 맥락에서 시스템 사용을 논의한다. 그러나, 카메라가 있는 모든 전자 디바이스는 이러한 시스템의 사용으로 이익을 얻을 수 있다. 이러한 디바이스는 사용자에게 홈 버튼, 전원 버튼, 모드 버튼 및/또는 카메라 셔터 (이미지 캡처) 버튼을 포함한 여러 입력 메커니즘을 제공할 수 있으며, 이는 하드웨어로 설치되거나 터치 스크린 카메라 셔터 버튼을 디스플레이할 수 있는 터치 스크린 디스플레이를 통해 사용할 수 있다. 일부 경우에, 사용자는 기계식 카메라 셔터 버튼 대신 터치 스크린 카메라 셔터 버튼을 사용하도록 선택할 수 있다. 일부 경우에, 모바일 디바이스의 카메라 셔터 버튼에는 "반 누름" 및 "완전 누름"을 개별 분리 동작으로 감지하는 능력이 장착되어 있을 수 있다. 예를 들어, 반 누름은 버튼 또는 기타 제어부의 부분적인 작동을 나타내고, 완전 누름은 결정된 한계를 초과한 버튼 또는 제어부의 추가 작동을 나타낸다. 일부 예에서, 디바이스는 반 누름(자동 초점 기능과 연관된 입력 데이터가 모바일 디바이스로 수신되는 경우)을 검출하고 완전 누름(카메라 호출 및 이미지 캡처와 연관된 입력 데이터가 수신되는 경우)을 검출할 수도 있는 이중 동작 카메라 셔터 버튼을 포함할 수 있다. 또한, 일부 디바이스는 마이크뿐만 아니라 전면 렌즈와 후면 렌즈 중 하나 또는 모두를 포함할 수 있다.
입력 메커니즘이 터치 스크린 디스플레이를 통해 제공되는 경우, 추가 옵션을 사용하여 이미지 캡처 기능의 하위 집합을 제어할 수도 있다. 상이한 구현에서, 이러한 제어는 스틸 이미지 캡처 모드 버튼, 비디오 캡처 모드 버튼, 자동 이미지 캡처 모드 버튼, 확대 및 축소 제어부, 옵션 또는 설정 제어부를 포함할 수 있다. 아래에서 더 자세히 설명하는 바와 같이, 자동 이미지 캡처 모드 버튼은 자동 캡처 모드로 들어가고 나가기 위한 토글 스위치로 구현될 수 있다. 다시 말해서, 일단 자동 캡처 모드가 켜지면, 모드 버튼을 다시 누르는 것은 자동 캡처 기능의 중단으로 여겨진다. 일 구현에서, 자동 캡처 모드는 카메라 셔터 버튼의 활성화와 같은 다른 메커니즘을 통해서도 비활성화될 수 있다. 자동 이미지 캡처 시스템의 일부 구현은 스틸 이미지 캡처 모드 또는 비디오 캡처 모드에서 사용될 수 있다.
모바일 디바이스의 디지털 전자 카메라가 일반적으로 기존의 독립형 디지털 카메라와 상이한 일 양태는 전자 셔터의 사용이라는 것을 알 수 있다. 전자 셔터는 사용자가 이미지 캡처를 활성화할 때와 이미지가 실제로 캡처될 때 사이에 긴 "셔터 랙 시간"을 갖는 경향이 있다. 느린 셔터 속도와 마찬가지로, 긴 랙 시간은 이미지 캡처 중 카메라의 진동으로 인한 흐려짐으로 인해 이미지 품질이 저하될 수 있다. 모바일 디바이스의 디지털 전자 카메라와 독립형 디지털 카메라의 또 다른 차이점은 렌즈 조리개가 일반적으로 모바일 디바이스에 사용되는 카메라에서 더 작다는 것이다. 결과적으로, 렌즈에 들어오는 빛이 줄어들기 때문에, 작은 조리개 크기를 보정하기 위해 더 느린 셔터 속도를 사용해야 한다.
기존의 SLR(single lens reflex; 일안 반사식) 또는 포인트 앤 슛(Point-and-shoot) 디지털 카메라의 경우, 삼각대를 사용하여 저조도 조건에서 카메라 본체를 안정화하고 진동으로 인해 이미지의 선명도가 저하되는 것을 방지할 수 있다. 그러나, 삼각대를 사용하려면 준비가 필요하고 불편하므로, 삼각대는 일반적으로 카메라 폰 사진 촬영에 적합한 솔루션이 아니다. 결과적으로, 카메라 폰에는 일반적으로 삼각대 나사 또는 기타 장착 하드웨어가 장착되어 있지 않으므로, 모바일 디바이스와 통합된 카메라 구성에 내재된 이미지 품질 단점을 극복하기 위해서 삼각대 또는 기타 안정화 구조물을 부착할 수 없다. 그러나, 이러한 유형의 문제점은 본 명세서에서 설명될 자동 캡처 시스템을 사용하여 쉽게 완화될 수 있다.
다음 구현은 사용자에게 수동 지시 또는 입력 없이 카메라로 이미지를 캡처할 수 있는 능력을 제공하도록 구성된다. 이러한 애플리케이션을 통해 사용자는 수동 사용자 입력과 관련된 지연이나 움직임 없이 원하는 디바이스를 사용하여 하나 또는 다수의 이미지를 캡처할 수 있다. 상이한 구현에서, 사용자는 보고 있는 장면이 변경될 때 일정 시간 기간 동안 일련의 이미지를 캡처하기를 원할 수 있다. 이 시스템을 사용하여, 사용자는 휴대용 디바이스의 카메라를 대상을 향해 조준하고 진행 중인 자동 캡처 또는 기록 프로세스를 시작할 수 있다.
독자에게 시스템 및 방법을 더 잘 소개하기 위해, 도 1a 내지 도 1c는 자동 이미지 캡처 시스템을 구현하기 위한 대표적인 이미지 캡처 환경의 예를 제시한다(시스템은 도 2에서 보다 상세히 개략적으로 도시된다). 상이한 구현에서, 환경은 하나 이상의 컴퓨팅 디바이스 최종 사용자를 포함하거나 또는 단순히 이미지를 캡처, 보기, 편집 및/또는 수정할 수 있는 "사용자"(예를 들어, 제 1 사용자, 제 2 사용자, 제 3 사용자 등)를 포함할 수 있다. 한 명 이상의 사용자가 사용자 디바이스를 통해 제시되는 이미지와 상호 작용하거나 이를 조작할 수 있다. 사용자가 이미지와 같은 전자 콘텐츠를 볼 때, 이미지의 다양한 영역이 검출될 수 있거나 이미지는 잠재적인 캡처를 위해 다른 방식으로 식별될 수 있다. 대부분의 경우, 카메라를 통해 보는 현실 세계 풍경의 "라이브 미리보기"가 사용자에게 제시된다.
도 1a에서, 제 1 시간(108)에 제 1 현실 세계 장면("제 1 장면")(106)으로부터 제 1 이미지 미리보기(104)를 수신하는 프로세스에 있는 제 1 컴퓨팅 디바이스("제 1 디바이스")(102)가 도시된다. 또한, 도 1b는 제 2 시간(118)에 제 2 현실 세계 장면("제 2 장면")(116)으로부터 제 2 이미지 미리보기(114)를 수신하는 프로세스에 있는 제 1 디바이스(102)를 도시하고, 도 1c는 제 3 시간(128)에 제 2 현실 세계 장면(116)으로부터 제 3 이미지 미리보기(124)를 수신하는 프로세스에 있는 제 1 디바이스(102)를 도시한다. 각각의 미리보기는 사용자 인터페이스로도 작동하는 디바이스 터치 스크린 디스플레이를 통해 도시된다.
단순함을 위해, 제 1 장면(106), 제 2 장면(116) 및 제 3 장면(126) 각각은 미술관 또는 박물관의 일부를 묘사하는 것으로 이해될 수 있다. 제 1 장면(106) 및 제 2 장면(116)은 오버랩 영역을 포함한다. 또한, 제 2 장면(116) 및 제 3 장면(126)은 동일한 주 객체를 포함한다는 점에서 실질적으로 유사하다. 디바이스와 연관된 카메라 렌즈가 현실 세계 장면을 향하기 때문에, 디바이스의 디스플레이(150)에서 대응하는 이미지를 미리 볼 수 있다.
모든 구현이 아닌 일부 구현에서, 디스플레이(150)는 라이브 미리보기에서 제 1 디바이스(102)와 연관된 카메라로부터 데이터를 수신하고 이미지 캡처 또는 이미지 스캐닝 애플리케이션을 통해 카메라의 시야에 있는 항목 또는 객체를 제시하도록 구성될 수 있다. 일 구현에서, 애플리케이션은 본 명세서에서 이미지 콘텐츠 보기 인터페이스("인터페이스")로 지칭되는 이미지 미리보기와 함께 그래픽 사용자 인터페이스를 제공하거나 제시할 수 있다. 일부 구현에서, 인터페이스는 디스플레이(150) 상에 또는 디스플레이(150)의 일부 상에 '전체 화면'으로 제시될 수 있고/있거나 인터페이스는 실질적으로 투명하거나 반투명할 수 있으므로, 화면 또는 이미지와의 상호 작용은 애플리케이션에 의해 수신되는 반면 이미지 자체는 이미지 보기를 방해하는 추가 인터페이스 그래픽의 중첩 없이 대부분 볼 수 있게 유지된다. 그러나, 다른 구현에서, 이미지 캡처 애플리케이션은 메뉴, 설정 또는 기타 옵션과 같은 다양한 그래픽 요소를 이미지와 관련하여, 오버레이하여 또는 인접하여 제시할 수 있다.
또한, 애플리케이션은 본 명세서에 설명된 카메라 기반 캡처 기술을 구현하기 위해 디스플레이(150)의 기능을 통합할 수 있다. 본 명세서에서 인터페이스는 카메라 광학 렌즈에 의해 수신된 현재 이미지를 제시하고/하거나 사진이 촬영되었거나 스토리지로부터 액세스될 때 (즉, 메모리로부터) 캡처된 이미지를 제시하도록 전환할 수 있는 뷰 파인더로 도시된다. 또한, 일부 구현에서, 사용자는 디스플레이(150)의 뷰 파인더 부분과의 상호 작용을 통해 캡처된 이미지의 일부를 수정 및/또는 선택할 수 있다.
일부 다른 구현에서, 인터페이스는 사용자를 안내하기 위해 다양한 표시기를 디스플레이하거나 제시하도록 구성될 수 있다. 예를 들어, 인터페이스는 메뉴, 기호 또는 기타 작동 가능한 옵션을 디스플레이하거나 제시하도록 구성될 수 있다. 일반적으로, "인터페이스"라는 용어는 클라이언트 애플리케이션을 통해 애플리케이션 사용자에게 콘텐츠를 전달하는 메커니즘을 나타내는 것으로 이해되어야 한다. 예를 들어, 인터페이스는 네이티브 애플리케이션 사용자 인터페이스(user interface; UI)를 통해 사용자에게 제시될 수 있는 팝업 창, 제어부, 작동 가능 인터페이스, 대화형 버튼 또는 네이티브 애플리케이션 UI를 통해 사용자에게 표시될 수 있는 기타 객체는 물론 이러한 네이티브 제어부와 함께 관련된 콘텐츠를 제시하기 위한 특정 애플리케이션에 고유한 메커니즘을 포함할 수 있다. 또한, "작동" 또는 "작동 이벤트"는 손가락 탭, 키보드 명령, 음성 명령 또는 마우스 클릭과 같은 인터페이스를 통한 애플리케이션의 특정 입력 또는 사용과 관련된 이벤트(또는 특정 이벤트 시퀀스)를 나타내며, 이는 애플리케이션 또는 디바이스의 디스플레이 또는 기능 변경을 트리거할 수 있다.
도 1a에서, 제 1 이미지 미리보기(104)는 화분(162), 제 1 그림(164), 제 2 그림(166)의 일부 및 바닥(170)을 포함하는 제 1 장면(106)의 다양한 객체의 투영을 도시한다. 제 1 디바이스(102)의 카메라가 제 1 시간(108)과 제 2 시간(118) 사이에 미술관을 가로 질러 패닝함에 따라, 화분(162)은 도 1b의 제 2 이미지 미리보기(114)에 표현된 바와 같이 더 이상 시야에 있지 않다. 대신, 제 1 그림(164), 전체 제 2 그림(166), 제 3 그림(168) 및 바닥(170)이 제 2 이미지 미리보기(114)에 투영되고 있다. 카메라가 제 2 시간(118)과 제 3 시간(128) 사이에서 오른쪽으로 계속 패닝함에 따라, 제 3 이미지 미리보기(124)에 도시된 바와 같이 3 개의 그림이 미리보기에서 더 중앙에 배치된다. 다시 말해서, 도시된 이미지는 제 2 시간(118)과 제 3 시간(128) 사이에 실질적으로 유사하게 유지된다.
이 프로세스 동안, 개시된 시스템의 구현은 예를 들어 제 1 시간(108)과 후속 제 2 시간(118) 사이의 장면의 변경을 검출하도록 구성될 수 있다. 또한, 시스템은 제 2 시간(118)과 후속 제 3 시간(128) 사이의 장면의 안정화를 인식할 수 있다. 이 두 가지 사항의 결정이 발생하면, 시스템은 수신 중인 현재 이미지의 자동 캡처를 트리거할 수 있다. 카메라가 계속 움직이거나 장면이 변경될 때 다수의 이미지를 자동으로 캡처할 수 있도록 이 프로세스를 무기한 반복할 수 있다.
이제 도 2를 참조하면, 자동 이미지 캡처 시스템("시스템")(200)의 대표적인 아키텍처의 예가 도시된다. 상이한 구현에서, 시스템(200)은 전자 콘텐츠의 디스플레이 및 장면 변경 및 안정화의 표시를 위한 사용자 인터페이스를 제시하도록 구성될 수 있다. 시스템(200)은 또한 장면 상태 및 조건의 결정이 이루어질 때 분석되는 이미지 데이터의 저장소를 지속적으로 업데이트하도록 구성될 수 있다. 본 명세서에 제시된 시스템(200)은 단지 예시적인 구현일 뿐이고, 명확성을 위해 일부 양태만이 제시되며, 다양한 다른 구현이 가능하다는 것을 이해해야 한다.
도 2에서, 시스템(200)은 디바이스(240)를 포함한다. 디바이스(240)는 위에서 논의된 바와 같이 카메라, 휴대폰, 태블릿, 랩톱, 데스크톱, 게임 디바이스, 프로젝터 및 기타 이러한 디바이스와 같은 이미지 및/또는 이미지 관련 콘텐츠를 제시할 수 있는 임의의 유형의 디바이스를 포함할 수 있다. 디바이스(240)는 다양한 하드웨어 및 소프트웨어 컴포넌트를 포함할 수 있다. 이미지 캡처 애플리케이션(250)이 이 예에서 디바이스(240) 상에 국부적으로 설치된 것으로 도시되어 있지만, 다른 구현에서, 이미지 캡처 애플리케이션(250)의 일부 또는 모든 양태 또는 특징은 다른 디바이스로부터 액세스되거나 클라우드 스토리지 컴퓨팅 서비스로부터 액세스될 수 있다.
이미지 캡처 애플리케이션(250)은 디바이스(240)의 하나 이상의 컴포넌트를 통해 및/또는 외부 소스를 통해 이미지 콘텐츠(210)를 수신하도록 구성된다. 이미지 콘텐츠(210)는 이전에 캡처되었거나 '정적' - 메모리(214)(국부, 외부 또는 클라우드 기반 메모리)로부터 액세스됨 - 일 수 있거나, '라이브'일 수 있고 외부의 현실 세계 데이터(204)를 수신하는 카메라(212)를 통해 현재 볼 수 있거나 실시간으로 캡처될 수 있다. 이미지 콘텐츠(210)는 이미지 캡처 애플리케이션(250)에 의해 수신될 수 있고 이미지 콘텐츠(210)의 데이터를 처리하도록 구성된 이미지 프로세서(260)에 전달될 수 있다. 일부 구현에서, 아래에서 설명되는 바와 같이, 이미지 프로세서(260)는 이미지 콘텐츠(210)를 수신하고 히스토그램 생성기 모듈(262)을 통해 히스토그램을 생성할 수 있다. 일 예에서, 히스토그램은 이미지 콘텐츠에 적용되는 임의의 유형의 통계 방법을 포함하거나 참조할 수 있으며, 디지털 이미지의 색조 분포의 수치 및/또는 그래픽 표현을 제공할 수 있다. 이 경우에, 히스토그램은 각각의 색조 값마다 픽셀 수를 플로팅하고, 이미지 분석기(264)가 이미지의 전체 색조 분포를 검토하고 이미지의 각각의 픽셀마다 픽셀 강도 값을 결정할 수 있도록 구성될 수 있다. 따라서, 히스토그램 생성기(262)는 이미지 기반 히스토그램뿐만 아니라 이미지의 픽셀 수를 해당 이미지에서 발견된 각각의 상이한 강도 값으로 나타낼 수 있는 데이터를 생성할 수 있다. 동작의 정확한 출력은 선택된 구현에 따라 달라지므로, 히스토그램은 히스토그램 통계를 나타내는 데이터 파일 및/또는 사용자가 액세스할 수도 있는 실제 그래픽 표현일 수 있다.
일부 구현에서, 이미지 콘텐츠는 인간의 지각을 고려하여 색상 이미지 또는 비디오를 인코딩하는 상이한 색상 인코딩 시스템에서 처리될 수 있다. 경우에 따라, RGB 색상 표현이 사용될 수 있다. 그러나, YUV 색상 인코딩의 사용은 색차 성분에 대한 대역폭 감소와 관련되어 선호될 수 있으며, 이에 따라 일반적으로 "직접" RGB 표현을 사용하는 것보다 인간의 지각에 의해 전송 오류 또는 압축 아티팩트를 더 효율적으로 마스킹할 수 있다. 따라서, 일 구현에서, 시스템은 이미지(예를 들어, RGB 이미지)를 휘도(Y) 및 색차(U 및 V) 성분을 포함하는 이미지로 변환할 수 있는 YUV 처리 컴포넌트를 포함할 수 있다(UV 색상 공간은 인간의 색상 지각의 주파수 의존성을 고려한 대역폭 할당 체계를 사용하여 색상 이미지를 인코딩한다). 다른 구현에서, 색상 값이 또한 또는 대안적으로 사용될 수 있다.
각각의 이미지 콘텐츠에 대한 히스토그램 데이터의 일부 또는 전부는 이미지 분석기(264)에 의해 수신될 수 있으며, 이는 또한 통계 데이터를 처리하고 이미지에 대한 키 값을 분리하거나 식별할 수 있다. 일 구현에서, 광도 모듈(266)이 특정 광도 값에 연결된 이미지 콘텐츠의 픽셀 비율을 결정하기 위해 데이터를 스캔하거나 검토할 수 있다. 이 데이터는 픽셀 강도 데이터 저장 모듈(270)에 제출될 수 있으며, 이는 최근 처리된 라이브 미리보기 프레임(274)에 대한 히스토그램 및/또는 광도 데이터뿐만 아니라 캡처된 이미지(272)에 대한 데이터를 메모리에 보유할 수 있다. 이들 데이터는 이미지 비교 모듈(280)로 전송되고 평가될 것이다. 일부 구현에서, 비교 프로세스와 더 이상 관련이 없고/없거나 미리 설정된 시간 기간보다 더 오랫동안 저장되어 있던 데이터는 폐기 모듈(278)에 의해 이루어진 결정을 통해 폐기될 수 있다.
일부 구현에서, 이미지 비교 모듈(280)은 2 개 이상의 이미지 콘텐츠 항목 간의 상관 계수를 계산하도록 구성될 수 있다. 도 2에 도시된 바와 같이, 계산된 상관 계수는 임계 값 데이터 모듈(284)에 저장된 결정 임계 값에 의해 제공된 값과 비교될 수 있다. 이러한 임계 값은 시스템에 의해 설정될 수 있고/있거나 설정 옵션을 통해 사용자에 의해 사용자 지정될 수 있다. 상이한 구현에서, 시스템은 2 개 이상의 이미지 시퀀스를 비교하여 장면의 변경을 검출하도록 구성될 수 있다. 차이 계산기(282)를 통해, 시스템은 2 개의 이미지가 유사한지(즉, 장면이 안정적이거나 장면 변경이 발생했다는 결정을 타당하게 만들만큼 충분히 변경되지 않았음) 또는 상이한지(즉, 장면 변경이 발생한 것으로 간주될 수 있는 범위까지) 여부를 결정할 수 있다.
일부 구현에서, 히스토그램 "유사성"은 연속적인 이미지 프레임의 히스토그램 간의 상관 관계를 계산함으로써 측정될 수 있다. 장면 간의 전환은 히스토그램 상관 관계를 3 개의 색 공간(예를 들어, YUV)에 대해 경험적으로 결정된 결정 임계 값과 비교하여 결정될 수 있다. 임의의 2 개의 연속적인 프레임에 대해, 3 개의 상관 계수가 모두 결정 임계 값보다 낮으면, 장면 변경이 식별될 수 있다. 그렇지 않으면, 2 개의 연속적인 프레임에 "동일한 장면" 또는 "안정된 장면" 분류가 할당된다. 다른 구현에서, 결정은 3 개의 색 공간 중 하나 또는 2 개만을 기반으로 할 수 있다. 다시 말해서, Y 색 공간 값을 분리하고 사용하여 히스토그램 데이터 크기를 줄이거나 최소화할 수 있다. 이러한 경우, 저장 및 처리를 포함한 디바이스 자원의 사용을 줄일 수 있으며, 결정이 여러 색 채널의 데이터를 기반으로 하는 경우와 실질적으로 유사한 결과를 제공할 수 있다. 이미지 비교 모듈(280)은 입력된 이미지 콘텐츠에서 연속적인 프레임의 색 및 강도 히스토그램(예를 들어, YUV 채널의 히스토그램)의 유사성을 단 하나의 색 채널에 기초하여 평가할 수 있기 때문에, 전체 프로세스는 구현 및 요구 사항에서 덜 부담스러워진다. 일부 구현에서, 차이 계산기(282)는 단 하나의 색 공간(예를 들어, Y)에 대해 경험적으로 결정된 결정 임계 값과 히스토그램 상관 관계를 비교할 수 있다. 임의의 2 개의 연속적인 프레임에 대해, 상관 계수가 결정 임계 값보다 낮으면, 장면 변경이 식별될 수 있다. 그렇지 않으면, 2 개의 연속적인 프레임에 "동일한 장면" 또는 "안정된 장면" 분류가 할당된다.
상이한 구현에서, 설명된 시스템은 위에서 설명된 히스토그램 데이터에 추가하여 또는 그 대신에 다양한 파라미터 및 기준을 참조할 수 있다는 것을 이해해야 한다. 예를 들어, 시스템은 모바일 디바이스가 자동 캡처 모드에서 동작하는 동안 이미지가 자동으로 캡처되고 저장되는 시기를 결정하기 위해 하나 이상의 기준을 사용하도록 구성될 수 있다. 이러한 기준은 자동 초점 값, 화이트 밸런스 값, 노출 값, 디바이스 안정성 값, 선명도 값, 게인 값, 노이즈 제거 값, 대비 값, 플래시 값 또는 기타 이러한 이미지 품질 및 처리 파라미터 중 하나 이상을 포함할 수 있다. 자동 캡처 모드 설정은 모바일 디바이스에 대한 일반 설정의 일부로 액세스되거나, 자동 모드가 처음 활성화될 때 디스플레이되거나, 자동 모드가 활성화될 때 사용자에게 설정을 변경할 것인지 여부를 묻는 화면이 나타난 후에 디스플레이될 수 있다. 사용자는 자신의 선호도에 맞게 다양한 기준 및 파라미터에 대한 임계 값을 설정하는 옵션을 제공받을 수 있다. 따라서, 일부 구현에서, 이미지 센서에 의해 검출된 현재 이미지에 대해 이들 임계 값이 충족될 때, 이미지는 사용자로부터 추가 입력 없이 캡처 및 저장될 수 있다.
이러한 결과는 결과 모듈(290)에 전달될 수 있으며, 이는 정보가 장면이 안정적임을 나타내는지(장면 안정화 컴포넌트(294)) 또는 장면이 변경되었음을 나타내는지(장면 변경 컴포넌트(292))를 결정한다. 자동 이미지 캡처 모듈(230)은 적어도 결과 모듈(290)로부터 수신된 정보에 기초하여, 현재 이미지의 자동 이미지 캡처를 트리거할 수 있다. 캡처된 이미지는 디바이스 이미지 스토리지(242)에 저장될 수 있다.
일부 구현에서, 이미지 통계(히스토그램 데이터와 같지만 이에 제한되지 않음)는 이미지 센서에 의해 수신된 각각의 새로운 이미지 프레임에 대해 실질적으로 지속적으로 생성되고, 카메라 설정은 또한 지속적으로 조정될 수 있다. 일 구현에서, 이러한 이미지 데이터는 "캡처"된 것으로 아직 간주되지 않는데, 이러한 이미지 데이터는 최종화되지 않았거나, 이미지가 최종 이미지("캡처")로 변환되고 저장되도록 의도되지 않는 한 수행될 필요가 없는 계산 집약적일 수 있는 특정 사후 디모자이징 프로세스의 대상이 아니기 때문이다. 일부 구현에서, YUV 처리(또는 Y만 처리)가 발생하는 동안, 이미지가 캡처되는 경우에만 임의의 추가 후 처리 단계가 발생한다.
디바이스(240)는 또한 사용자 입력 프로세서(270)를 통해 사용자 입력(202)을 수신하도록 구성될 수 있다. 사용자 입력(202)은 사용되는 입력 수단의 유형에 기초하여 광범위하게 변할 수 있다. 도 2에서, 사용자 입력(202)은 사용자가 보거나 액세스하고 있는 이미지 캡처 애플리케이션(250)의 일부 양태와 연관되거나 이에 대응하는 것으로 이해될 수 있다. 일 구현에서, 사용자 입력 프로세서(270)는 이미지 캡처 모드 모듈(272)을 통해 자동 캡처 모드를 켜거나 끄는 데이터를 수신할 수 있다.
명확성을 위해, 자동 이미지 캡처 프로세스의 일 구현이 이제 도 3a 내지 도 6b를 참조하여 제시될 것이다. 도 3a에서, 이미지 캡처 애플리케이션("애플리케이션")(304)이 도시되며, 이는 현실 세계 장면의 라이브 미리보기를 제시하는 제 2 디바이스(300)의 디스플레이(306) 상에 도시된 사진 캡처 그래픽 사용자 인터페이스(graphical user interface; GUI)로 표현된다. 상이한 구현에서, 애플리케이션(304)은 GUI 및 다양한 사용자 인터페이스 요소, 특징 및 제어부의 디스플레이를 시작하여 카메라(도시되지 않음)를 통한 이미지 캡처, 스캐닝 및/또는 이미지 처리를 용이하게 하는 데 사용된다.
앞서 언급한 바와 같이, 일부 구현에서, 애플리케이션(304)은 장면 변경 및 장면 안정화가 발생하는 시기를 검출하도록 구성될 수 있다. 이 메커니즘의 예가 도 3a 내지 도 6b에 제시되어 있으며, 여기서 GUI는 제 2 디바이스(300)(이 경우 휴대폰)에 연결되거나 통합된 카메라에 의해 제 1 현실 세계 장면("제 1 장면")(312)의 실시간 라이브 미리보기를 제시한다. 도 3a에서, 제 1 장면(312)은 풍경, 특히 농지와 하늘의 뷰이다. 사용자(302)(손으로 표현됨)가 제 2 디바이스(300)를 잡고 있어 카메라는 제 1 장면(312)을 프레이밍하고 제 1 시간(310)에 디스플레이(306) 상에 제 1 이미지 프레임("제 1 이미지")(316)을 생성한다. 이후의 제 2 시간(320)에, 사용자(302)는 농지에 더 근접하게 앞으로 이동했고, 카메라는 제 2 현실 세계 장면("제 2 장면")(322)을 프레이밍하여 디스플레이(306) 상에 제 2 이미지 프레임("제 2 이미지")(326)을 생성한다. 다시 말해서, 제 1 시간(310)과 제 2 시간(320) 사이에 카메라가 수신하는 장면이 변경된다.
일부 구현에서, 도 2와 관련하여 위에서 논의된 바와 같이, 시스템은 장면의 변경을 검출하도록 구성될 수 있다. 도 4a 및 도 4b를 참조하면, 제 1 시간(310)에 생성되거나 디스플레이되는 제 1 이미지(316)는 제 1 히스토그램(314)과 연관되고, 제 2 시간(320)에 생성되거나 디스플레이되는 제 2 이미지(326)는 제 2 히스토그램(324)과 연관된다. 히스토그램 데이터가 시스템에 의해 평가되므로, 앞서 논의한 통계 분석을 기반으로 2 개의 이미지가 실질적으로 상이하다는 결정을 내릴 수 있다. 일부 구현에서, 위에서 언급한 바와 같이, 장면 변경의 검출은 자동 캡처를 향한 작업 흐름을 시작할 수 있다.
다음으로, 도 5a 및 도 5b를 참조하면, 시스템이 - 장면 변경이 발생할 확률이 충분히 높은 것으로 결정하면 - 즉시 또는 그 직후에 보고 있는 장면 시퀀스가 동일한 장면으로 간주될 수 있을 만큼 유사하다는 정보(즉, 장면 안정화)를 수신하면, 자동 캡처가 트리거될 수 있다. 도 5a에서, 명확성을 위해, 사용자(302)는 (도 4b에서와 같이) 제 2 장면을 보고 제 2 이미지(326)를 수신하는 것으로 다시 도시된다; 제 2 히스토그램(324)은 또한 도 5b의 히스토그램과의 준비된 비교를 위해 아래에 도시된다. 도 5b에서, 도 3a의 제 1 시간(310) 및 제 2 시간(320) 모두 이후 제 3 시간(330)에, 사용자(302)는 여전히 일반적으로 동일한 장면을 보고 있으며, 이에 따라 제 3 히스토그램(334)과 연관된 제 3 이미지 프레임("제 3 이미지")(336)을 수신한다. 이 예에서, 시스템은 이들 프레임에 대한 데이터를 수신하고 제 3 이미지(336)는 제 2 이미지(326)와 실질적으로 동일한 장면을 나타낼 확률이 충분히 높은 것으로 결정한다.
이 결정에 응답하여, 시스템은 도 6a에 도시된 바와 같이, 현재 보고 있는 프레임의 자동 캡처를 트리거하도록 구성될 수 있다. 제 4 시간(340)에, 시스템은 장면 변경 후 실질적으로 안정된 장면의 자동 캡처를 시작한다. 사용자(302)는 디바이스의 그립 또는 위치를 거의 또는 전혀 변경하지 않았다. 다시 말해서, 제 4 이미지 프레임("제 4 이미지")(346)을 기록하는 프로세스는 사용자 입력 없이 발생했다. 또한, 일부 구현에서, 제 4 이미지(346)는 도 6b에 도시된 바와 같이 애플리케이션(304)과 연관된 지정된 폴더에 자동으로 저장될 수 있다. 이 예에서, 제 4 이미지(346)는 제 1 자동 캡처 이미지(328)로서 '/storage/Camera' 폴더(318)에 저장되고 캡처 이미지 보기 인터페이스(308)를 통해 액세스된다.
상이한 구현에서, 시스템은 카메라 위치가 실질적으로 정지되어 있는 경우에도 장면 변경을 검출하기 위한 수단을 포함할 수 있다. 예를 들어, 상이한 프레임을 수신하도록 카메라의 방향을 변경하는 대신, 현실 세계 장면 자체가 변화, 이동 또는 변경되어 라이브 미리보기에서 상이한 장면을 생성할 수 있다. 일부 다른 구현에서, 풍경도 카메라도 이동하지 않지만 장면 변경이 검출될 수 있다. 일 예가 도 7a 내지 도 9b와 관련하여 제시된다. 도 7a에서, 사용자는 제 4 시간(340)에 제 4 이미지(346)를 보고 있는 것으로 다시 도시되며, 이미지는 처리되어 제 4 히스토그램(344)과 연관된다. 이후의 제 5 시간(350)에, 사용자(302)는 농지에 대한 근접성을 줄이기 위해 뒤로 이동했으며, 카메라는 도 3a의 제 1 현실 세계 장면과 유사한 뷰를 프레이밍하고 있으며, 이는 본 명세서에서 제 5 이미지 프레임("제 5 이미지")(356)으로 표현되며, 이미지는 처리되어 제 5 히스토그램(354)과 연관된다. 위에서 논의된 바와 같이, 시스템은 다양한 시나리오에서 장면의 변경을 검출하도록 구성될 수 있다.
도 7a 및 도 7b를 참조하면, 시스템은 제 4 이미지(346) 및 제 5 이미지(356)에 대한 히스토그램 데이터를 비교할 수 있다. 시스템이 2 개의 이미지가 상이하다고 결정하면, 시스템은 자동 캡처를 위한 작업 흐름을 다시 시작할 수 있다. 다음으로, 도 7c 및 도 7d를 참조하면, 앞서 논의된 바와 같이, 시스템이 - 장면 변경이 발생할 확률이 충분히 높은 것으로 결정하면 - 즉시 또는 그 직후에 보고 있는 장면 시퀀스가 동일한 장면으로 간주될 수 있을 만큼 유사하다는 정보(즉, 장면 안정화)를 수신하면, 자동 캡처가 트리거될 수 있다. 도 7c에서, 명확성을 위해, 사용자(302)는 제 3 현실 세계 장면("제 3 장면")(362)을 보고 있는 것으로 도시되며, 이에 기초하여 제 5 이미지(356)(도 7b 참조)가 생성된다. 그러나, 사용자(302)가 제 3 장면(362)을 계속 보는 동안, 사용자는 또한 제 5 시간(350) 이후 제 6 시간(360)에, 제 5 이미지(356)의 특정 부분(여기서는 구름과 하늘로 도시됨)을 확대하도록 선택한다. 다시 말해서, 현실 세계 장면이 변경되지 않았고 장면 변경이 발생했다는 결정을 트리거할 수 있는 정도까지 카메라가 이동하지 않았더라도, 사용자(302)가 이전 프레임의 특정 부분을 선택하거나 격리할 때, 시스템은 일부 구현에서 이를 장면 변경으로 인식하도록 구성될 수 있다.
도 7d에서, 시스템은 제 6 히스토그램(364)을 생성하기 위해 제 6 이미지 프레임("제 6 이미지") 프레임(366)을 처리한다. 제 6 히스토그램(364)(제 5 이미지(356)(도 7b)의 상부 영역의 확대와 연관됨)이 도 7b의 제 5 히스토그램(354)과 연관된 데이터와 상이하다는 것을 쉽게 관찰할 수 있다. 따라서, 카메라 위치를 재배치하거나 풍경을 변경하는 대신, 사용자가 애플리케이션 자체와 상호 작용하여 시스템에서 장면 변경을 검출하여 자동 캡처를 위한 작업 흐름을 트리거했다.
상이한 구현에서, 장면 안정화가 발생해야 하는 최소 시간 기간 및/또는 프레임 수는 기본 값 일 수 있거나 사용자에 의해 조정 가능하거나 맞춤화될 수 있다. 도 8a를 참조하면, 제 7 시간(370)(도 7c의 제 6 시간(360) 이후)에, 사용자(302)는 실질적으로 동일한 장면을 계속 보고 있으며, 이는 제 7 이미지 프레임("제 7 이미지")(376)으로 표시되고 제 7 히스토그램(374)과 연관된다. 도 8b에서, 제 7 시간(370) 이후의 제 8 시간(380)에, 사용자(302)는 또한 실질적으로 동일한 장면을 계속해서 보고 있으며, 이는 제 8 히스토그램(384)과 연관된 제 8 이미지 프레임("제 8 이미지")(386)으로 표현된다. 따라서, 일부 구현에서, 이 경우, 시스템은 도 3a 내지 도 6b와 관련하여 앞서 도시된 바와 같이 단지 2 개가 아니라 3 개 (또는 그 이상) 연속 및/또는 실질적으로 연속된 시간 기간(제 6 시간(360), 제 7 시간(370) 및 제 8 시간(380))에 대한 히스토그램 데이터를 비교하도록 구성될 수 있다.
이 예에서, 시스템은 이들 3 개의 프레임에 대한 데이터를 수신하고 제 8 이미지(386)는 제 7 이미지(376) 및 제 6 이미지(366)와 실질적으로 동일한 장면을 나타낼 확률이 충분히 높은 것으로 결정한다. 이 결정에 응답하여, 시스템은 도 9a에 도시된 바와 같이 현재 보고 있는 프레임의 자동 캡처를 트리거할 수 있다. 제 9 시간(390)에, 시스템은 장면 변경 후 실질적으로 안정된 장면의 자동 캡처를 시작한다. 사용자(302)는 디바이스의 그립 또는 위치를 거의 또는 전혀 변경하지 않았다. 다시 말해서, 제 9 이미지 프레임("제 9 이미지")(396)을 기록하는 프로세스는 사용자 입력 없이 발생한다. 또한, 일부 구현에서, 제 9 이미지(396)는 도 9b에 도시된 바와 같이 애플리케이션(304)과 연관된 지정된 폴더에 자동으로 저장될 수 있다. 이 예에서, 제 9 이미지(396)는 제 2 자동 캡처 이미지(338)로서 '/storage/Camera' 폴더(318)에 저장되고 캡처 이미지 보기 인터페이스(308)를 통해 액세스된다.
위에서 언급한 바와 같이, 일부 구현에서, 시스템은 장면 안정화 파라미터를 조정하기 위한 수단을 포함할 수 있다. 장면 안정성 값은 히스토그램 및/또는 모바일 디바이스와 연관된 하나 이상의 가속도계 및/또는 하나 이상의 자이로스코프로부터 수신된 데이터를 사용하여 계산될 수 있다. 일 구현에서, 하나의 히스토그램과 제 2 히스토그램 간의 차이의 크기는 장면이 안정적인지 여부를 결정하기 위한 감도에 대응하는 것으로 개념적으로 볼 수 있다. 다른 구현에서, 임계 값(도 2 참조)은 특정 값으로 설정되지만, 히스토그램 데이터의 임의의 변경 또는 유사성이 임계 값을 만족해야 하는 시간 기간 및/또는 이미지 프레임의 수는 가변적이다. 이러한 구현에서, 가변적 시간 기간은 장면 안정성 값 또는 장면 안정성 값의 요소로 사용된다. 또 다른 구현에서, 임계 값과 시간 기간은 모두 장면 안정성 값의 변경으로 조정된다. 장면 안정성을 결정하고 그러한 결정의 감도를 조정하기 위한 다른 기술이 또한 개시된 시스템의 구현과 함께 사용될 수 있다. 비제한적인 일 예로서, UI는 "낮음"(낮은 감도를 나타내므로 장면이 안정적인지 정지되어 있는지를 결정하는 동안 두 히스토그램 간의 더 많은 대비를 허용함)과 "높음"(높은 감도를 나타내므로 장면이 안정적인지 정지되어 있는지를 결정하는 동안 더 적은 대비를 허용함) 사이에서 조정 가능한 대화형 슬라이더를 제시할 수 있다. 다른 구현에서, UI는 사용자에 의해 설정될 수 있는 실제 값을 제시할 수 있다.
일부 구현에서, 시스템은 디바이스가 자동 캡처 모드에 있는 동안 촬영된 사진의 수를 조정하기 위한 수단을 포함할 수 있다. 일 예로서, 모바일 디바이스가 자동 캡처 모드에서 동작할 때, 시스템은 자동 캡처 모드가 비활성화되거나 미리 결정된 수의 이미지를 캡처할 때까지 실질적으로 연속적인 동작으로 이미지를 자동으로 캡처하도록 구성될 수 있다. 다른 구현에서, 시스템은 자동 캡처 모드 활성화와 이미지 캡처 및 저장 사이에서 일시 중지 길이를 변경하도록 구성될 수 있다. 예를 들어, 모바일 디바이스가 먼저 자동 캡처 모드로 설정되면, 이미지 캡처 및 저장은 사용자가 의도한 대상의 방향으로 카메라를 향하게 하도록 일시적으로 중단될 수 있다.
본 명세서에 설명된 예시적인 기준 및 파라미터는 더 적은 기준이 사용되거나 추가 기준이 추가될 수 있기 때문에 제한적인 것으로 해석되어서는 안 된다. 일반적으로, 이미지 캡처 기준의 모든 조합 또는 하위 조합은 자동 이미지 캡처를 트리거하기 위한 임계 값으로 사용할 수 있으며, 자동 캡처 모드 설정 화면을 통해 조정할 수 있다. 또한, 원하는 이미지 캡처 기준이 설정되면, 사용자는 자동 캡처 모드 설정 화면을 종료할 수 있다.
명확성을 위해, 도 10은 본 명세서에 설명된 시스템 중 일부를 통해 카메라에서 자동 캡처를 시작하기 위한 프로세스의 일 구현을 도시한다. 이 프로세스의 구현은 주로 자동 캡처 모드의 사용자 선택의 결과로 발생하도록 구성될 것임을 이해해야 한다. 이 예에서, 제 1 단계(1010)는 카메라에 의한 초기 이미지의 수신을 포함한다. 예를 들어, 이미지는 카메라의 광학 렌즈를 통해 투영되는 장면의 라이브 미리보기일 수 있으며, 일반적으로 디바이스에 의해 액세스되거나 실행되는 이미지 캡처 애플리케이션을 통해 디바이스의 디스플레이 상에서 사용자에게 표시될 수 있다. 제 2 단계(1012)에서, 시스템은 제 1 히스토그램 데이터 세트를 생성하기 위해 초기 이미지를 처리할 수 있다. 일부 구현에서, 이 처리는 이미지 처리의 집중이 하나의 색 채널(예를 들어, "Y")로 제한될 수 있기 때문에, 디바이스 프로세서 및 메모리의 최소 사용을 필요로 한다. 제 3 단계(1014)에서, 제 1 히스토그램 데이터는 히스토그램 데이터 저장 모듈에 저장될 수 있다.
제 4 단계(1020)에서, 카메라는 또 다른 이미지를 수신하며, 이는 단순함을 위해 "후속 이미지"로 지칭될 것이다. 제 5 단계(1022)에서, 이 후속 이미지는 제 2 히스토그램 데이터 세트를 생성하기 위해 처리된다. 제 6 단계(1024)에서, 이 데이터는 히스토그램 데이터 저장 모듈에 저장될 수 있다. 초기 이미지와 후속 이미지 사이에 수신된 시간의 격차 또는 간격 및/또는 프레임 수는 사용자 선호도 및 시스템 설정에 따라 크게 달라질 수 있음을 이해해야 한다. 따라서, 초기 이미지와 후속 이미지는 서로 바로 뒤따르도록 구성될 수 있지만, 다른 구현에서, 이들은 카메라 광학 시스템에 의해 수신되는 특정 프레임 수만큼 및/또는 몇 초 또는 밀리 초 이하만큼 이격될 수 있으며, 이 시기에는 히스토그램 데이터가 생성되지 않는다.
제 7 단계(1030)에서, 시스템은 히스토그램 데이터 저장 모듈(1050)에 액세스하고 - 앞서 논의한 바와 같이 - 제 1 데이터 세트를 제 2 데이터 세트와 비교한다. 제 8 단계(1032)에서, 두 데이터 세트 사이에 미리 설정되거나 미리 정의된 임계 값을 초과하는 차이가 있다고 결정되거나 그렇지 않으면 두 세트가 실질적으로 상이한 이미지(예를 들어, 장면 변경)를 나타낼 충분한 확률을 표시하는 경우, 시스템은 자동 캡처를 향한 경로를 계속할 수 있다. 대신, 비교가 두 데이터 세트 사이에 차이가 거의 없고 두 이미지가 동일한 (또는 실질적으로 유사한) 장면을 나타낼 가능성이 있음을 표시하는 경우, 시스템은 큐에서 제 2 데이터 세트를 위로 이동하도록 구성될 수 있다. 다시 말해서, 제 9 단계(1040)에서, 제 2 히스토그램 데이터 세트는 이 흐름도를 위해 제 1 히스토그램 데이터 세트를 대체하거나 대신할 수 있다. 따라서, 이 경로 방향을 따라, 다음 후속 이미지를 수신하기 전에 이미지에 대해 생성된 데이터에 대한 참조는 제 1 히스토그램 데이터 세트를 참조할 것이다.
자동 캡처 프로세스가 계속 진행됨에 따라, 이전 단계 및 성공적인 차이 결정으로 돌아가서, 카메라는 또 다른 이미지를 수신할 수 있으며(제 10 단계(1060)), 이는 단순함을 위해 "추가 이미지"로 지칭될 것이다. 제 11 단계(1062)에서, 이 추가 이미지는 제 3 히스토그램 데이터 세트를 생성하기 위해 처리된다. 제 3 데이터 세트는 선택적으로 히스토그램 데이터 저장 모듈에 저장될 수 있지만, 일부 다른 경우에, 다음 결정이 이루어질 때까지 제 3 데이터 세트는 현재 메모리에 보관될 수 있다. 후속 이미지와 추가 이미지 사이에 수신된 시간의 격차 또는 간격 및/또는 프레임 수는 미리 설정된 사용자 선호도 및 시스템 설정에 따라 크게 달라질 수 있음을 이해해야 한다. 따라서, 후속 이미지와 추가 이미지는 서로 바로 뒤따르도록 구성될 수 있지만, 다른 구현에서, 이들은 카메라 광학 시스템에 의해 수신되는 특정 프레임 수만큼 및/또는 몇 초 또는 밀리 초 이하만큼 이격될 수 있으며, 이 시기에는 히스토그램 데이터가 생성되지 않는다.
제 12 단계(1064)에서, 시스템은 히스토그램 데이터 저장 모듈(1050)에 액세스하고 제 2 데이터 세트를 제 3 데이터 세트와 비교한다. 제 13 단계(1066)에서, 두 세트의 데이터는 미리 설정된 또는 미리 정의된 임계 값을 초과하는 양과 유사하다는 결정이 내려지거나 그렇지 않으면 두 세트가 실질적으로 유사한 이미지(예를 들어, 같은 장면을 나타내는 이미지)를 나타낼 충분한 확률을 표시하는 경우, 시스템은 자동 캡처를 향한 경로를 계속할 수 있다. 대신, 비교가 두 데이터 세트 사이에 미리 설정되거나 미리 정의된 임계 값을 초과하는 차이가 있다고 표시하거나 그렇지 않으면 두 세트가 실질적으로 상이한 이미지(예를 들어, 장면 변경)를 나타낼 충분한 확률을 표시하는 경우, 시스템은 큐에서 제 3 데이터 세트를 위로 이동하도록 구성될 수 있다. 다시 말해서, 제 14 단계(1068)에서, 제 3 히스토그램 데이터 세트는 이 흐름도를 위해 제 1 히스토그램 데이터 세트를 대체하거나 대신할 수 있다. 따라서, 이 경로 방향을 따라, 다른 후속 이미지를 수신하기 전에 이미지에 대해 생성된 데이터에 대한 참조는 제 1 히스토그램 데이터 세트를 참조할 것이다.
자동 캡처 프로세스가 계속 진행됨에 따라, 이전 단계 및 성공적인 유사성 결정으로 돌아가서, 카메라는 또 다른 이미지를 수신할 수 있으며(제 15 단계(1070)), 이는 단순함을 위해 "최종 이미지"로 지칭될 것이다. 이 최종 이미지는 카메라에 의해 자동으로 캡처된다. 이 프로세스는 장면 변경 검출 후 장면 안정화 이후 수신되는 일련의 이미지를 캡처하기 위해 계속 반복하거나 순환할 수 있다.
도 11은 이미지의 자동 캡처를 관리하는 방법(1100)의 구현을 도시하는 흐름도이다. 도 11에서, 제 1 단계(1110)는 제 1 시간에, 제 1 현실 세계 장면에 대응하는 제 1 이미지를 수신하는 단계를 포함하고, 제 2 단계(1120)는 제 1 시간 이후 제 2 시간에, 제 2 현실 세계 장면에 대응하는 제 2 이미지를 수신하는 단계를 포함한다. 또한, 방법은 제 3 단계(1130)에서 제 1 이미지가 제 2 이미지와 적어도 제 1 양만큼 상이하다고 결정하는 단계, 및 제 4 단계(1140)에서 제 2 시간 이후 제 3 시간에, 제 3 현실 세계 장면에 대응하는 제 3 이미지를 수신하는 단계를 포함한다. 또한, 방법은 제 2 이미지와 제 3 이미지가 실질적으로 유사하다고 결정하는 제 5 단계(1150), 및 제 2 이미지와 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여, 카메라 광학 시스템을 통해 제 3 이미지의 적어도 제 1 영역을 자동으로 캡처하는 제 6 단계(1160)를 포함한다.
다른 구현에서, 방법은 추가 또는 대안 단계를 포함할 수 있다. 예를 들어, 방법은 제 1 이미지에 대한 제 1 히스토그램을 생성하고, 제 2 이미지에 대한 제 2 히스토그램을 생성하는 단계를 더 포함할 수 있다. 일부 경우에, 제 1 이미지가 제 2 이미지와 상이하다고 결정하는 단계는 적어도 제 1 히스토그램과 제 2 히스토그램의 비교에 기초한다. 다른 예로서, 방법은 제 1 이미지에 대한 휘도 또는 색상 값을 획득하는 단계를 포함할 수 있으며, 제 1 히스토그램의 생성은 제 1 이미지에 대한 획득된 휘도 또는 색상 값에 기초한다. 일부 경우에, 제 1 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 1 픽셀 수를 식별하고, 제 2 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 2 픽셀 수를 식별한다. 이러한 경우에, 방법은 또한 제 1 픽셀 수가 적어도 제 1 양만큼 제 2 픽셀 수와 상이하다고 결정하는 단계를 포함할 수 있다.
또한, 일부 구현에서, 방법은 제 2 이미지에 대한 제 1 히스토그램을 생성하는 단계, 제 3 이미지에 대한 제 2 히스토그램을 생성하는 단계를 포함할 수 있다. 이러한 경우에, 제 2 이미지가 제 3 이미지와 실질적으로 유사하다고 결정하는 단계는 적어도 제 1 히스토그램과 제 2 히스토그램의 비교에 기초한다. 일부 경우에, 제 1 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 1 픽셀 수를 식별하고, 제 2 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 2 픽셀 수를 식별한다. 그런 다음, 방법은 제 1 픽셀 수가 기껏해야 미리 결정된 백분율만큼 제 2 픽셀 수와 상이하다고 결정하는 단계를 더 포함할 수 있다.
다른 예로서, 방법은 제 3 이미지에 대한 제 3 히스토그램을 생성하는 단계, 제 1 히스토그램과 연관된 제 1 데이터, 제 2 히스토그램과 연관된 제 2 데이터 및 제 3 히스토그램과 연관된 제 3 데이터를 저장하는 단계, 및 제 2 이미지와 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여 제 1 데이터를 자동으로 폐기하는 단계를 포함할 수 있다. 일 구현에서, 방법은 또한 제 1 히스토그램과 연관된 제 1 데이터 및 제 2 히스토그램과 연관된 제 2 데이터를 저장하는 단계, 제 3 이미지를 캡처한 이후 제 4 시간에, 제 4 현실 세계 장면에 대응하는 제 4 이미지를 수신하는 단계, 제 4 이미지에 대한 제 3 히스토그램을 생성하는 단계, 제 3 히스토그램과 연관된 제 3 데이터를 저장하는 단계, 제 3 이미지가 제 4 이미지와 적어도 제 2 양만큼 상이하다고 결정하는 단계, 및 제 3 이미지와 제 4 이미지가 상이하다는 결정에 응답하여 제 1 데이터를 자동으로 폐기하는 단계를 포함할 수 있다.
일부 구현에서, 방법은 자동 이미지 캡처 모드의 활성화를 요청하는 제 1 사용자 입력을 수신하는 단계를 더 포함하고, 여기서 제 3 이미지의 적어도 제 1 영역의 자동 캡처는 부분적으로 제 1 사용자 입력을 수신하는 것에 기초한다. 다른 구현에서, 제 2 시간 및 제 3 시간은 적어도 미리 결정된 시간 기간만큼 이격된다.
따라서, 개시된 시스템 및 방법을 사용하면 사용자가 이미지에서 한 지점을 선택하기 위해 쉽게 탭할 수 있고 이에 응답하여 내부에 해당 지점을 갖는 것으로 식별되는 하나 이상의 쿼드 후보를 제공할 수 있다. 사용자가 연속적으로 여러 위치를 탭하면, 연속적으로 여러 개의 쿼드가 제시될 것이다. 실시간 이미지 캡처 및 저장된 이미지 모두에서, 스캐닝을 위해 이미지에서 하나 이상의 영역을 의도적으로 선택하는 능력은 사용자에게 광범위한 이점을 제공한다. 이 특징은 다양한 항목을 스캔하는 데 필요한 시간을 크게 단축한다. 원하는 영역을 획득하기 위해 이미지를 다시 캡처하거나 수정하려고 시도하는 대신, 사용자는 원하는 영역에 존재하는 타겟 장소를 나타내는 입력을 제출할 수 있고, 그러면 애플리케이션은 타겟 장소를 포함하는 영역(들)을 자동으로 검출할 수 있다. 또한, 사용자에게 단일 이미지 내에서 스캐닝을 위해 다수의 이산 영역을 선택할 수 있는 간단한 수단을 제공함으로써, 스캔을 획득하기 위해 다수의 이미지를 수집하거나 저장할 필요가 없으며, 프로세스는 훨씬 더 짧은 기간 동안 발생할 것이다.
도 1 내지 도 11과 관련하여 설명된 시스템, 디바이스 및 기술의 상세한 예는 본 개시 및 그 이점의 예시를 위해 본 명세서에 제시되었다. 이러한 사용 예는 본 개시의 논리적 프로세스 구현에 대한 제한으로 해석되어서는 안 되며, 본 명세서에 설명된 사용자 인터페이스 방법의 변형이 본 개시의 범위를 벗어나는 것으로 간주되어서도 안 된다. 일부 구현에서, 도 1 내지 도 11에 설명된 다양한 특징은 로직, 컴포넌트, 유닛 및/또는 메커니즘으로도 지칭되고/되거나 이를 포함할 수 있는 각각의 모듈에서 구현된다. 모듈은 소프트웨어 모듈(예를 들어, 기계 판독 가능 매체에 구현된 코드) 또는 하드웨어 모듈을 구성할 수 있다.
일부 예에서, 하드웨어 모듈은 기계적으로, 전자적으로 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 구성된 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 필드 프로그램 가능 게이트 어레이(field-programmable gate array; FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit; ASIC)와 같은 특수 목적 프로세서를 포함할 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 일시적으로 구성되는 프로그램 가능 로직 또는 회로를 포함할 수 있으며, 이러한 구성을 위한 기계 판독 가능 매체 데이터 및/또는 명령어의 일부를 포함할 수 있다. 예를 들어, 하드웨어 모듈은 소프트웨어 명령어 세트를 실행하도록 구성된 프로그램 가능 프로세서 내에 포함된 소프트웨어를 포함할 수 있다. 하드웨어 모듈을 기계적으로, 전용 및 영구적으로 구성된 회로로 또는 임시로 구성된 회로(예를 들어, 소프트웨어에 의해 구성됨)로 구현하는 결정은 비용, 시간, 지원 및 엔지니어링 고려 사항에 의해 결정될 수 있음을 알 수 있을 것이다.
따라서, "하드웨어 모듈"이라는 문구는 특정 동작을 수행할 수 있는 유형의 엔티티를 포함하는 것으로 이해되어야 하며, 특정 물리적 방식으로 구성 또는 배열될 수 있고, 특정 방식으로 동작하도록 또는 본 명세서에 설명된 특정 동작을 수행하도록 물리적으로 구성되고, 영구적으로 구성(예를 들어, 하드 와이어)되고/되거나 일시적으로 구성(예를 들어, 프로그래밍)되는 엔티티일 수 있다. 본 명세서에서 사용되는 바와 같이, "하드웨어 구현 모듈"은 하드웨어 모듈을 나타낸다. 하드웨어 모듈이 일시적으로 구성(예를 들어, 프로그래밍)되는 예를 고려하면, 각각의 하드웨어 모듈을 한 번에 한 인스턴스에 구성하거나 인스턴스화할 필요가 없다. 예를 들어, 하드웨어 모듈이 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 프로그램 가능 프로세서를 포함하는 경우, 프로그램 가능 프로세서는 서로 다른 시간에 서로 다른 특수 목적 프로세서(예를 들어, 서로 다른 하드웨어 모듈 포함)로 구성될 수 있다. 따라서, 소프트웨어는 예를 들어 하나의 시간에 특정 하드웨어 모듈을 구성하고 상이한 시간에 상이한 하드웨어 모듈을 구성하도록 특정 프로세서 또는 프로세서들을 구성할 수 있다. 하나 이상의 프로세서를 사용하여 구현된 하드웨어 모듈은 "프로세서 구현" 또는 "컴퓨터 구현"으로 지칭될 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에 정보를 제공하고 이로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신적으로 결합된 것으로 간주될 수 있다. 다수의 하드웨어 모듈이 동시에 존재하는 경우, 2 개 이상의 하드웨어 모듈 간에 또는 사이에 신호 전송을 통해 (예를 들어, 적절한 회로 및 버스를 통해) 통신이 달성될 수 있다. 다수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 구현에서, 이러한 하드웨어 모듈 간의 통신은 예를 들어 다수의 하드웨어 모듈이 액세스할 수 있는 메모리 디바이스에서 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행하고 메모리 디바이스에 출력을 저장할 수 있고, 다른 하드웨어 모듈은 저장된 출력을 검색하고 처리하기 위해 메모리 디바이스에 액세스할 수 있다.
일부 예에서, 방법의 동작 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 모듈에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어"(software as a service; SaaS)로서 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작 중 적어도 일부는 다수의 컴퓨터(예로서, 프로세서를 포함하는 기계)에 의해 및/또는 그 사이에서 수행될 수 있으며, 이들 동작은 네트워크(예를 들어, 인터넷)를 통해 및/또는 하나 이상의 소프트웨어 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(application program interface; API))를 통해 액세스 가능하다. 특정 동작의 수행은 프로세서 간에 분산될 수 있으며, 이들은 단일 기계 내에 있을뿐만 아니라 여러 기계에 걸쳐 배포될 수 있다. 프로세서 또는 프로세서 구현 모듈은 단일 지리적 위치(예를 들어, 가정 또는 사무실 환경 또는 서버 팜 내)에 위치하거나 다수의 지리적 위치에 걸쳐 분산될 수 있다.
도 12는 예시적인 소프트웨어 아키텍처(1202)를 도시하는 블록도(1200)이고, 이들의 다양한 부분은 본 명세서에 설명된 다양한 하드웨어 아키텍처와 함께 사용될 수 있으며, 위에서 설명된 특징 중 임의의 것을 구현할 수 있다. 도 12는 소프트웨어 아키텍처의 비제한적인 예이며, 본 명세서에 설명된 기능을 용이하게 하기 위해 많은 다른 아키텍처가 구현될 수 있다는 것이 이해될 것이다. 소프트웨어 아키텍처(1202)는 도 1a의 제 1 디바이스(102) 및 도 3a의 제 2 디바이스(300)와 같은 하드웨어 상에서 실행될 수 있으며, 이는 무엇보다도 문서 스토리지(1070), 프로세서, 메모리 및 입출력(I/O) 컴포넌트를 포함한다. 대표적인 하드웨어 계층(1204)이 도시되고, 예를 들어 본 명세서에 설명된 디바이스를 나타낼 수 있다. 대표적인 하드웨어 계층(1204)은 처리 유닛(1206) 및 관련 실행 가능 명령어(1208)를 포함한다. 실행 가능 명령어(1208)는 본 명세서에 설명된 방법, 모듈 등의 구현을 포함하는 소프트웨어 아키텍처(1202)의 실행 가능 명령어를 나타낸다. 하드웨어 계층(1204)은 또한 실행 가능 명령어(1208) 및 수반되는 데이터를 포함하는 메모리/스토리지(1210)를 포함한다. 하드웨어 계층(1204)은 또한 다른 하드웨어 모듈(1212)을 포함할 수 있다. 처리 유닛(1208)에 의해 보유된 명령어(1208)는 메모리/스토리지(1210)에 의해 보유된 명령어(1208)의 일부일 수 있다.
예시적인 소프트웨어 아키텍처(1202)는 각각 다양한 기능을 제공하는 계층으로 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(1202)는 운영 체제(OS)(1214), 라이브러리(1216), 프레임워크(1218), 애플리케이션(1220) 및 표현 계층(1244)과 같은 계층 및 컴포넌트를 포함할 수 있다. 동작 중에, 애플리케이션(1220) 및/또는 그 계층 내의 다른 컴포넌트는 다른 계층으로 API 호출(1224)을 작동시키고 대응하는 결과(1226)를 수신할 수 있다. 도시된 계층은 본질적으로 대표적이며, 다른 소프트웨어 아키텍처는 추가 또는 상이한 계층을 포함할 수 있다. 예를 들어, 일부 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어(1218)를 제공하지 않을 수 있다.
OS(1214)는 하드웨어 자원을 관리하고 공통 서비스를 제공할 수 있다. OS(1214)는, 예를 들어, 커널(1228), 서비스(1230) 및 드라이버(1232)를 포함할 수 있다. 커널(1228)은 하드웨어 계층(1204)과 다른 소프트웨어 계층 사이의 추상화 계층으로서 작용할 수 있다. 예를 들어, 커널(1228)은 메모리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(1230)는 다른 소프트웨어 계층에 대해 다른 공통 서비스를 제공할 수 있다. 드라이버(1232)는 기본 하드웨어 계층(1204)의 제어 또는 인터페이스를 담당할 수 있다. 예를 들어, 드라이버(1232)는 하드웨어 및/또는 소프트웨어 구성에 따라, 디스플레이 드라이버, 카메라 드라이버, 메모리/스토리지 드라이버, 주변 디바이스 드라이버(예를 들어, 범용 직렬 버스(USB)를 통해), 네트워크 및/또는 무선 통신 드라이버, 오디오 드라이버 등을 포함할 수 있다.
라이브러리(1216)는 애플리케이션(1220) 및/또는 다른 컴포넌트 및/또는 계층에 의해 사용될 수 있는 공통 인프라를 제공할 수 있다. 라이브러리(1216)는 일반적으로 OS(1214)와 직접 상호 작용하기보다는 작업을 수행하기 위해 다른 소프트웨어 모듈에 의해 사용되는 기능을 제공한다. 라이브러리(1216)는 메모리 할당, 문자열 조작, 파일 동작과 같은 기능을 제공할 수 있는 시스템 라이브러리(1234)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(1216)는 미디어 라이브러리(예를 들어, 이미지, 사운드 및/또는 비디오 데이터 형식의 표현 및 조작 지원), 그래픽 라이브러리(예를 들어, 디스플레이 상에 2D 및 3D 그래픽을 렌더링하기 위한 OpenGL 라이브러리), 데이터베이스 라이브러리(예를 들어, SQLite 또는 기타 관계형 데이터베이스 기능) 및 웹 라이브러리(예를 들어, 웹 브라우징 기능을 제공할 수 있는 WebKit)와 같은 API 라이브러리(1236)를 포함할 수 있다. 라이브러리(1216)는 또한 애플리케이션(1220) 및 다른 소프트웨어 모듈에 많은 기능을 제공하기 위해 매우 다양한 다른 라이브러리(1238)를 포함할 수 있다.
프레임워크(1218)(때로는 미들웨어라고도 함)는 애플리케이션(1220) 및/또는 다른 소프트웨어 모듈에 의해 사용될 수 있는 높은 수준의 공통 인프라를 제공한다. 예를 들어, 프레임워크(1218)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 높은 수준의 자원 관리 또는 높은 수준의 위치 서비스를 제공할 수 있다. 프레임워크(1218)는 애플리케이션(1220) 및/또는 다른 소프트웨어 모듈에 광범위한 다른 API를 제공할 수 있다.
애플리케이션(1220)은 내장 애플리케이션(1240) 및/또는 제 3 자 애플리케이션(1242)을 포함한다. 내장 애플리케이션(1240)의 예는 연락처 애플리케이션, 브라우저 애플리케이션, 위치 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 및/또는 게임 애플리케이션을 포함할 수 있지만 이에 제한되지 않는다. 제 3 자 애플리케이션(1242)은 벤더의 특정 플랫폼이 아닌 다른 엔티티에 의해 개발된 임의의 애플리케이션을 포함할 수 있다. 애플리케이션(1220)은 사용자와 상호 작용하기 위한 사용자 인터페이스를 생성하기 위해 OS(1214), 라이브러리(1216), 프레임워크(1218) 및 표현 계층(1244)을 통해 사용 가능한 기능을 사용할 수 있다.
일부 소프트웨어 아키텍처는 가상 기계(1248)로 도시된 바와 같이 가상 기계를 사용한다. 가상 기계(1248)는 애플리케이션/모듈이 마치 하드웨어 기계(예를 들어, 도 13의 기계(1300))에서 실행되는 것처럼 애플리케이션/모듈을 실행할 수 있는 실행 환경을 제공한다. 가상 기계(1248)는 호스트 OS(예를 들어, OS(1214)) 또는 하이퍼바이저에 의해 호스팅될 수 있으며, 가상 기계(1248)의 동작 및 호스트 운영 체제와의 상호 운용을 관리하는 가상 기계 모니터(1246)를 가질 수 있다. 가상 기계 외부의 소프트웨어 아키텍처(1202)와 상이할 수 있고, OS(1250), 라이브러리(1252), 프레임워크(1254), 애플리케이션(1256) 및/또는 표현 계층(1258)과 같은 소프트웨어 아키텍처가 가상 기계(1248) 내에서 실행된다.
도 13은 기계 판독 가능 매체(예를 들어, 기계 판독 가능 저장 매체)로부터 명령어를 판독하고 본 명세서에 설명된 임의의 특징을 수행하도록 구성된 예시적인 기계(1300)의 컴포넌트를 도시하는 블록도이다. 예시적인 기계(1300)는 컴퓨터 시스템의 형태이며, 그 안에서 기계(1300)가 본 명세서에 설명된 특징 중 임의의 것을 수행하게 하기 위한 명령어(1316)(예를 들어, 소프트웨어 컴포넌트의 형태)가 실행될 수 있다. 이와 같이, 명령어(1316)는 본 명세서에 설명된 모듈 또는 컴포넌트를 구현하는 데 사용될 수 있다. 명령어(1316)는 프로그래밍되지 않은 및/또는 구성되지 않은 기계(1300)가 설명된 특징을 수행하도록 구성된 특정 기계로서 동작하게 한다. 기계(1300)는 독립형 디바이스로 동작하도록 구성될 수 있거나 다른 기계에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크 배포에서, 기계(1300)는 서버-클라이언트 네트워크 환경에서 서버 기계 또는 클라이언트 기계로서, 또는 피어-투-피어 또는 분산 네트워크 환경에서 노드로서 동작할 수 있다. 기계(1300)는 예를 들어 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(set-top box; STB), 게임 및/또는 엔터테인먼트 시스템, 스마트 폰, 모바일 디바이스, 웨어러블 디바이스(예를 들어, 스마트 시계) 및 사물 인터넷(Internet of Thing; IoT) 디바이스로 구현될 수 있다. 또한, 단일 기계(1300)만이 도시되어 있지만, "기계"라는 용어는 개별적으로 또는 공동으로 명령어(1316)를 실행하는 기계들의 집합체를 포함한다.
기계(1300)는 프로세서(1310), 메모리(1330) 및 I/O 컴포넌트(1350)를 포함할 수 있으며, 이는 예를 들어 버스(1302)를 통해 통신적으로 결합될 수 있다. 버스(1302)는 다양한 버스 기술 및 프로토콜을 통해 기계(1300)의 다양한 요소를 결합하는 다수의 버스를 포함할 수 있다. 일 예에서, 프로세서(1310)(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), ASIC 또는 이들의 적절한 조합을 포함함)는 명령어(1316)를 실행하고 데이터를 처리할 수 있는 하나 이상의 프로세서(1312a 내지 1312n)를 포함할 수 있다. 일부 예에서, 하나 이상의 프로세서(1310)는 하나 이상의 다른 프로세서(1310)에 의해 제공되거나 식별된 명령어를 실행할 수 있다. "프로세서"라는 용어는 명령어를 동시에 실행할 수 있는 코어를 포함하는 멀티 코어 프로세서를 포함한다. 도 13은 다중 프로세서를 도시하지만, 기계(1300)는 단일 코어가 있는 단일 프로세서, 다중 코어가 있는 단일 프로세서(예를 들어, 멀티 코어 프로세서), 각각 단일 코어가 있는 다중 프로세서, 각각 다중 코어가 있는 다중 프로세서 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예에서, 기계(1300)는 다수의 기계들 사이에 분산된 다수의 프로세서를 포함할 수 있다.
메모리/스토리지(1330)는 메인 메모리(1332), 정적 메모리(1334), 또는 다른 메모, 및 스토리지 유닛(1336)을 포함할 수 있으며, 모두는 버스(1302)를 통해 프로세서(1310)에 액세스 가능하다. 스토리지 유닛(1336) 및 메모리(1332, 1334)는 본 명세서에 설명된 기능 중 임의의 하나 이상의 기능을 구현하는 명령어(1316)를 저장한다. 메모리/스토리지(1330)는 또한 프로세서(1310)에 대한 임시, 중간 및/또는 장기 데이터를 저장할 수 있다. 명령어(1316)는 또한 실행 중에 메모리(1332, 1334) 내에, 스토리지 유닛(1336) 내에, 프로세서(1310) 중 적어도 하나 내에 (예를 들어, 명령 버퍼 또는 캐시 메모리 내에), I/O 컴포넌트(1350) 중 적어도 하나의 메모리 내에 또는 이들의 임의의 적절한 조합에 완전히 또는 부분적으로 상주할 수 있다. 따라서, 메모리(1332, 1334), 스토리지 유닛(1336), 프로세서(1310) 내의 메모리, 및 I/O 컴포넌트(1350) 내의 메모리는 기계 판독 가능 매체의 예이다.
본 명세서에서 사용되는 바와 같이, "기계 판독 가능 매체"는 기계(1300)가 특정 방식으로 동작하게 하는 명령어 및 데이터를 일시적 또는 영구적으로 저장할 수 있는 디바이스를 나타낸다. 본 명세서에서 사용되는 바와 같이, "기계 판독 가능 매체"라는 용어는 일시적인 전기 또는 전자기 신호 그 자체(예컨대, 매체를 통해 전파되는 반송파)를 포함하지 않는다. 따라서 "기계 판독 가능 매체"라는 용어는 유형적이고 비일시적인 것으로 간주될 수 있다. 비일시적이고 유형적인 기계 판독 가능 매체의 비제한적인 예는 비휘발성 메모리(예컨대, 플래시 메모리 또는 읽기 전용 메모리(ROM)), 휘발성 메모리(예컨대, 정적 랜덤 액세스 메모리(RAM) 또는 동적 RAM), 버퍼 메모리, 캐시 메모리, 광학 저장 매체, 자기 저장 매체 및 디바이스, 네트워크 액세스 가능 또는 클라우드 스토리지, 기타 유형의 소토리지 및/또는 이들의 임의의 적절한 조합을 포함할 수 있지만 이에 제한되지는 않는다. "기계 판독 가능 매체"라는 용어는 기계(1300)에 의해 실행되는 명령어(예를 들어, 명령어(1316))를 저장하는 데 사용되는 단일 매체 또는 다중 매체의 조합에 적용되어 명령어가 기계(1300)의 하나 이상의 프로세서(1310)에 의해 실행될 때 기계(1300)가 본 명세서에 설명된 하나 이상의 특징을 수행하게 한다. 따라서, "기계 판독 가능 매체"는 단일 저장 디바이스뿐만 아니라 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 나타낼 수 있다.
I/O 컴포넌트(1350)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정치를 캡처하도록 적응된 다양한 하드웨어 컴포넌트를 포함할 수 있다. 특정 기계에 포함된 특정 I/O 컴포넌트(1350)는 기계의 유형 및/또는 기능에 의존할 것이다. 예를 들어, 휴대폰과 같은 모바일 디바이스는 터치 입력 디바이스를 포함할 수 있는 반면, 헤드리스 서버 또는 IoT 디바이스는 이러한 터치 입력 디바이스를 포함하지 않을 수 있다. 도 13에 도시된 I/O 컴포넌트의 특정 예는 결코 제한되지 않으며, 다른 유형의 컴포넌트가 기계(1300)에 포함될 수 있다. I/O 컴포넌트(1350)의 그룹화는 단지 이 논의를 간략화하기 위한 것이며, 그룹화는 결코 제한되지 않는다. 다양한 예에서, I/O 컴포넌트(1350)는 사용자 출력 컴포넌트(1352) 및 사용자 입력 컴포넌트(1354)를 포함할 수 있다. 사용자 출력 컴포넌트(1352)는 예를 들어 정보를 디스플레이하기 위한 디스플레이 컴포넌트(예를 들어, 액정 디스플레이(LCD) 또는 프로젝터), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터 또는 포스 피드백 디바이스) 및/또는 기타 신호 발생기를 포함할 수 있다. 사용자 입력 컴포넌트(1354)는 사용자 명령 및/또는 선택과 같은 다양한 사용자 입력을 수신하도록 구성된, 예를 들어 영숫자 입력 컴포넌트(예를 들어, 키보드 또는 터치 스크린), 포인팅 컴포넌트(예를 들어, 마우스 디바이스, 터치 패드 또는 다른 포인팅 기기) 및/또는 촉각 입력 컴포넌트(예를 들어, 위치 및/또는 터치의 힘 또는 터치 제스처를 제공하는 물리적 버튼 또는 터치 스크린)를 포함할 수 있다.
일부 예에서, I/O 컴포넌트(1350)는 광범위한 다른 환경 센서 컴포넌트들 중에서 생체 인식 컴포넌트(1356) 및/또는 위치 결정 컴포넌트(1362)를 포함할 수 있다. 생체 인식 컴포넌트(1356)는 예를 들어 신체 표정(예를 들어, 얼굴 표정, 음성 표정, 손 또는 신체 제스처 또는 눈 추적)을 검출하고, 생체 신호(예를 들어, 심박수 또는 뇌파)를 측정하며, 사람을 식별(예를 들어, 음성, 망막 및/또는 얼굴 기반 식별을 통해)하기 위한 컴포넌트를 포함할 수 있다. 위치 결정 컴포넌트(1362)는 예를 들어 위치 센서(예를 들어, GPS(Global Position System) 수신기), 고도 센서(예를 들어, 고도가 유도될 수 있는 기압 센서) 및/또는 방향 센서(예를 들어, 자력계)를 포함할 수 있다.
I/O 컴포넌트(1350)는 각각의 통신 커플링(1372 및 1382)을 통해 기계(1300)를 네트워크(들)(1370) 및/또는 디바이스(들)(1380)에 결합하도록 동작 가능한 다양한 기술을 구현하는 통신 컴포넌트(1364)를 포함할 수 있다. 통신 컴포넌트(1364)는 네트워크(들)(1370)와 인터페이스하기 위한 하나 이상의 네트워크 인터페이스 컴포넌트 또는 다른 적절한 디바이스를 포함할 수 있다. 통신 컴포넌트(1364)는 예를 들어 유선 통신, 무선 통신, 셀룰러 통신, 근거리 통신(Near Field Communication; NFC), 블루투스 통신, Wi-Fi 및/또는 다른 양식을 통한 통신을 제공하도록 적응된 컴포넌트를 포함할 수 있다. 디바이스(들)(1380)는 다른 기계 또는 다양한 주변 디바이스(예를 들어, USB를 통해 결합됨)를 포함할 수 있다.
일부 예에서, 통신 컴포넌트(1364)는 식별자를 검출하거나 식별자를 검출하도록 적응된 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1364)는 무선 주파수 식별(Radio Frequency Identification; RFID) 태그 판독기, NFC 검출기, 광학 센서(예를 들어, 1 차원 또는 다차원 바코드 또는 기타 광학 코드) 및/또는 음향 검출기(예를 들어, 태그가 지정된 오디오 신호를 식별하는 마이크)를 포함할 수 있다. 일부 예에서, 위치 정보는 인터넷 프로토콜(IP) 주소를 통한 지리적 위치, Wi-Fi, 셀룰러, NFC, 블루투스를 통한 위치, 또는 기타 무선 스테이션 식별 및/또는 신호 삼각 측량과 같은(그러나 이에 제한되지 않음) 통신 컴포넌트(1362)로부터의 정보에 기초하여 결정될 수 있다.
다양한 구현이 설명되었지만, 설명은 제한적이기보다는 예시를 위한 것이며, 구현의 범위 내에서 더 많은 구현이 가능하다는 것이 이해된다. 특징의 많은 가능한 조합이 첨부 도면에 도시되고 상세한 설명에서 논의되었지만, 개시된 특징의 많은 다른 조합이 가능하다. 임의의 구현의 임의의 특징은 특별히 제한되지 않는 한 임의의 다른 구현의 임의의 다른 특징 또는 요소와 결합하여 사용되거나 대체될 수 있다. 따라서, 본 개시에서 도시 및/또는 논의된 임의의 특징은 임의의 적절한 조합으로 함께 구현될 수 있음을 이해할 것이다. 따라서, 구현은 첨부된 청구 범위 및 그 등가물을 제외하고는 제한되지 않는다. 또한, 첨부된 청구 범위 내에서 다양한 수정 및 변경이 이루어질 수 있다.
전술한 것은 최적의 모드 및/또는 다른 예로 간주되는 것을 설명했지만, 그 안에서 다양한 수정이 이루어질 수 있고 본 명세서에 개시된 주제는 다양한 형태와 예로 구현될 수 있으며, 본 교시는 수많은 응용에 적용될 수 있으며, 그중 일부만 본 명세서에 설명되었음을 이해한다. 다음의 청구 범위는 본 교시의 진정한 범위 내에 속하는 모든 응용, 수정 및 변경을 주장하도록 의도된다.
달리 명시되지 않는 한, 다음 청구 범위를 포함하여 본 명세서에 명시된 모든 측정치, 값, 등급, 위치, 규모, 크기 및 기타 사양은 정확하지 않은 근사치이다. 그것들은 그것들이 관련된 기능 및 그것들이 관계되는 기술에서 관례적인 것과 일치하는 합리적인 범위를 갖도록 의도된다.
보호 범위는 이제 뒤따르는 청구 범위에 의해서만 제한된다. 그 범위는 본 명세서와 뒤따르는 출원 경과에 비추어 해석될 때 청구 범위에서 사용되는 언어의 일반적인 의미와 일치하는 만큼 광범위하고 모든 구조적 및 기능적 등가물을 포함하도록 해석되어야 한다. 그럼에도 불구하고, 청구 범위 중 어느 것도 특허법 101조, 102조 또는 103조의 요건을 충족하지 못하는 주제를 포함하도록 의도되지 않으며, 그러한 방식으로 해석되어서도 안 된다. 이로써, 이러한 주제의 의도하지 않은 수용은 권리를 포기한다.
바로 위에서 언급된 경우를 제외하고, 언급되거나 설명된 어떤 것도 청구 범위에 언급되어 있는지 여부에 관계없이, 컴포넌트, 단계, 특징, 목적, 이익, 이점 또는 이에 상응하는 공익의 헌신을 야기하도록 의도되거나 해석되어서는 안 된다.
본 명세서에 사용된 용어 및 표현은 특정 의미가 본 명세서에서 달리 제시된 경우를 제외하고는 각각의 해당 탐구 및 연구 영역과 관련하여 그러한 용어 및 표현에 부여된 것과 같은 일반적인 의미를 갖는다는 것을 이해할 것이다. 제 1 및 제 2 등과 같은 관계 용어는 엔티티 또는 행동 간의 실제 그러한 관계 또는 순서를 반드시 요구하거나 암시하지 않고, 하나의 엔티티 또는 행동을 다른 엔티티 또는 행동과 구별하기 위해 단독으로 사용될 수 있다. 용어 "포함하다", "포함하는" 또는 이들의 임의의 다른 변형은 비배타적 포함을 포함하도록 의도된 것으로, 요소 목록을 포함하는 프로세스, 방법, 물품 또는 장치가 해당 요소만 포함하지 않고 이러한 프로세스, 방법, 물품 또는 장치에 명시적으로 나열되지 않았거나 고유하지 않은 기타 요소를 포함할 수 있다. "a" 또는 "an"에 의해 진행되는 요소는 추가 제약 없이 요소를 구성하는 프로세스, 방법, 물품 또는 장치에서 추가 동일한 요소의 존재를 배제하지 않는다.
요약은 독자가 기술 공개의 본질을 신속하게 확인할 수 있도록 제공된다. 그것은 청구 범위의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 또한, 앞서 말한 상세한 설명에서, 본 개시를 간소화하기 위해 다양한 특징이 다양한 예에서 함께 그룹화되어 있음을 알 수 있다. 본 개시의 방법은 청구 범위가 각 청구항에 명시적으로 언급된 것보다 더 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 다음의 청구 범위가 반영하는 바와 같이, 발명의 주제는 단일 개시된 예의 모든 특징보다 적다. 따라서, 다음의 청구 범위는 발명의 상세한 설명에 포함되며, 각각의 청구항은 별도로 청구되는 주제로 그 자체를 주장한다.

Claims (15)

  1. 시스템에 있어서,
    적어도 하나의 프로세서; 및
    하나 이상의 컴퓨터 판독 가능 매체
    를 포함하며, 상기 하나 이상의 컴퓨터 판독 가능 매체는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서가,
    제 1 시간에, 제 1 현실 세계 장면에 대응하는 제 1 이미지를 수신하게 하고;
    상기 제 1 시간 이후 제 2 시간에, 제 2 현실 세계 장면에 대응하는 제 2 이미지를 수신하게 하고;
    상기 제 1 이미지가 상기 제 2 이미지와 적어도 제 1 양만큼 상이하다고 결정하게 하고;
    상기 제 2 시간 이후 제 3 시간에, 제 3 현실 세계 장면에 대응하는 제 3 이미지를 수신하게 하고;
    상기 제 2 이미지와 상기 제 3 이미지가 실질적으로 유사하다고 결정하게 하며;
    상기 제 2 이미지와 상기 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여, 카메라 광학 시스템을 통해 상기 제 3 이미지의 적어도 제 1 영역을 자동으로 캡처하게 하는 명령어를 포함하는 것인, 시스템.
  2. 제 1 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    상기 제 1 이미지에 대한 제 1 히스토그램을 생성하게 하고;
    상기 제 2 이미지에 대한 제 2 히스토그램을 생성하게 하며;
    상기 제 1 이미지가 상기 제 2 이미지와 상이하다는 결정은 적어도 상기 제 1 히스토그램과 상기 제 2 히스토그램의 비교에 기초하는 것인, 시스템.
  3. 제 2 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    상기 제 1 이미지에 대한 휘도 또는 색상 값을 획득하게 하고;
    상기 제 1 히스토그램의 생성은 상기 제 1 이미지에 대한 상기 획득된 휘도 또는 색상 값에 기초하는 것인, 시스템.
  4. 제 2 항에 있어서, 상기 제 1 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 1 픽셀 수를 식별하고, 상기 제 2 히스토그램은 상기 제 1 휘도 또는 색상 값과 연관된 제 2 픽셀 수를 식별하며,
    상기 방법은 상기 제 1 픽셀 수가 상기 제 2 픽셀 수와 적어도 제 1 양만큼 상이하다고 결정하는 것을 더 포함하는 시스템.
  5. 제 1 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    상기 제 2 이미지에 대한 제 1 히스토그램을 생성하게 하고;
    상기 제 3 이미지에 대한 제 2 히스토그램을 생성하게 하며;
    상기 제 2 이미지가 상기 제 3 이미지와 실질적으로 유사하다는 결정은 적어도 상기 제 1 히스토그램과 상기 제 2 히스토그램의 비교에 기초하는 것인, 시스템.
  6. 제 5 항에 있어서, 상기 제 1 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 1 픽셀 수를 식별하고, 상기 제 2 히스토그램은 상기 제 1 휘도 또는 색상 값과 연관된 제 2 픽셀 수를 식별하며,
    상기 방법은 상기 제 1 픽셀 수가 상기 제 2 픽셀 수와 기껏해야 미리 결정된 백분율만큼 상이하다고 결정하는 것을 더 포함하는 시스템.
  7. 제 2 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    상기 제 3 이미지에 대한 제 3 히스토그램을 생성하게 하고;
    상기 제 1 히스토그램과 연관된 제 1 데이터, 상기 제 2 히스토그램과 연관된 제 2 데이터, 및 상기 제 3 히스토그램과 연관된 제 3 데이터를 저장하게 하며;
    상기 제 2 이미지와 상기 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여 상기 제 1 데이터를 자동으로 폐기하게 하는 것인, 시스템.
  8. 제 2 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    상기 제 1 히스토그램과 연관된 제 1 데이터 및 상기 제 2 히스토그램과 연관된 제 2 데이터를 저장하게 하고;
    상기 제 3 이미지를 캡처한 이후 제 4 시간에, 제 4 현실 세계 장면에 대응하는 제 4 이미지를 수신하게 하고;
    상기 제 4 이미지에 대한 제 3 히스토그램을 생성하게 하고;
    상기 제 3 히스토그램과 연관된 제 3 데이터를 저장하게 하고;
    상기 제 3 이미지가 상기 제 4 이미지와 적어도 제 2 양만큼 상이하다고 결정하게 하며;
    상기 제 3 이미지와 상기 제 4 이미지가 상이하다는 결정에 응답하여 상기 제 1 데이터를 자동으로 폐기하게 하는 것인, 시스템.
  9. 제 1 항에 있어서, 상기 명령어는 또한 상기 적어도 하나의 프로세서가,
    자동 이미지 캡처 모드의 활성화를 요청하는 제 1 사용자 입력을 수신하게 하고, 상기 제 3 이미지의 적어도 제 1 영역의 자동 캡처는 부분적으로 상기 제 1 사용자 입력을 수신하는 것에 기초하는 것인, 시스템.
  10. 제 1 항에 있어서, 상기 제 2 시간 및 상기 제 3 시간은 적어도 약 150 ms의 시간 기간만큼 이격되는 것인, 시스템.
  11. 이미지 캡처 방법에 있어서,
    제 1 시간에, 제 1 현실 세계 장면에 대응하는 제 1 이미지를 수신하는 단계;
    상기 제 1 시간 이후 제 2 시간에, 제 2 현실 세계 장면에 대응하는 제 2 이미지를 수신하는 단계;
    상기 제 1 이미지가 상기 제 2 이미지와 적어도 제 1 양만큼 상이하다고 결정하는 단계;
    상기 제 2 시간 이후 제 3 시간에, 제 3 현실 세계 장면에 대응하는 제 3 이미지를 수신하는 단계;
    상기 제 2 이미지와 상기 제 3 이미지가 실질적으로 유사하다고 결정하는 단계; 및
    상기 제 2 이미지와 상기 제 3 이미지가 실질적으로 유사하다는 결정에 응답하여, 카메라 광학 시스템을 통해 상기 제 3 이미지의 적어도 제 1 영역을 자동으로 캡처하는 단계
    를 포함하는 이미지 캡처 방법.
  12. 제 11 항에 있어서,
    상기 제 1 이미지에 대한 제 1 히스토그램을 생성하는 단계; 및
    상기 제 2 이미지에 대한 제 2 히스토그램을 생성하는 단계
    를 더 포함하고, 상기 제 1 이미지가 상기 제 2 이미지와 상이하다고 결정하는 단계는 적어도 상기 제 1 히스토그램과 상기 제 2 히스토그램의 비교에 기초하는 것인, 이미지 캡처 방법.
  13. 제 12 항에 있어서,
    상기 제 1 이미지에 대한 휘도 또는 색상 값을 획득하는 단계
    를 더 포함하고, 상기 제 1 히스토그램의 생성하는 단계는 상기 제 1 이미지에 대한 상기 획득된 휘도 또는 색상 값에 기초하는 것인, 이미지 캡처 방법.
  14. 제 12 항에 있어서, 상기 제 1 히스토그램은 제 1 휘도 또는 색상 값과 연관된 제 1 픽셀 수를 식별하고, 상기 제 2 히스토그램은 상기 제 1 휘도 또는 색상 값과 연관된 제 2 픽셀 수를 식별하며,
    상기 제 1 픽셀 수가 상기 제 2 픽셀 수와 적어도 제 1 양만큼 상이하다고 결정하는 단계
    를 더 포함하는 이미지 캡처 방법.
  15. 자동 이미지 캡처가 발생해야 하는 시기를 결정하기 위한 시스템에 있어서,
    적어도 하나의 프로세서; 및
    하나 이상의 컴퓨터 판독 가능 매체
    를 포함하며, 상기 컴퓨터 판독 가능 매체는 상기 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서가,
    카메라를 통해, 제 1 이미지 프레임 및 후속 제 2 이미지 프레임을 포함하는 복수의 이미지 프레임을 수신하게 하고;
    상기 제 1 이미지 프레임과 상기 제 2 이미지 프레임 사이에 장면 변경이 발생했는지 결정하게 하고;
    상기 카메라를 통해, 상기 제 2 이미지 프레임을 수신한 후 제 3 이미지 프레임을 수신하게 하고;
    상기 제 2 이미지 프레임과 상기 제 3 이미지 프레임 사이에 장면 안정화가 발생했는지 결정하게 하며;
    적어도 상기 장면 변경이 발생하고 상기 장면 안정화가 발생했다는 결정에 기초하여 상기 제 3 이미지 프레임 이후에 수신된 제 4 이미지 프레임의 자동 캡처를 시작하게 하는 명령어를 포함하는 것인, 자동 이미지 캡처가 발생해야 하는 시기를 결정하기 위한 시스템.
KR1020217023376A 2018-12-27 2019-12-20 자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용 KR20210105975A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/234,473 US11057558B2 (en) 2018-12-27 2018-12-27 Using change of scene to trigger automatic image capture
US16/234,473 2018-12-27
PCT/US2019/067704 WO2020139726A1 (en) 2018-12-27 2019-12-20 Using change of scene to trigger automatic image capture

Publications (1)

Publication Number Publication Date
KR20210105975A true KR20210105975A (ko) 2021-08-27

Family

ID=69185713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217023376A KR20210105975A (ko) 2018-12-27 2019-12-20 자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용

Country Status (5)

Country Link
US (1) US11057558B2 (ko)
EP (1) EP3881527A1 (ko)
KR (1) KR20210105975A (ko)
CN (1) CN113170049B (ko)
WO (1) WO2020139726A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665340B2 (en) * 2021-03-22 2023-05-30 Meta Platforms, Inc. Systems and methods for histogram-based weighted prediction in video encoding
WO2023136736A1 (en) * 2022-01-12 2023-07-20 Mosst Merrick Anthony Preset-based automated image capture system
WO2023194980A1 (en) * 2022-04-07 2023-10-12 Mt Sport Ehf. A method and a system for measuring the time of a moving object using a mobile device having a camera incorporated therein and a time measurement device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5959622A (en) 1996-05-31 1999-09-28 Intel Corporation Still image capture under computer control in response to user-instructed trigger
US7594609B2 (en) 2003-11-13 2009-09-29 Metrologic Instruments, Inc. Automatic digital video image capture and processing system supporting image-processing based code symbol reading during a pass-through mode of system operation at a retail point of sale (POS) station
US7139107B2 (en) 2001-09-27 2006-11-21 Shih-Zheng Kuo Automatic static image capturing device and method
US7684624B2 (en) 2003-03-03 2010-03-23 Smart Technologies Ulc System and method for capturing images of a target area on which information is recorded
US20060125928A1 (en) 2004-12-10 2006-06-15 Eastman Kodak Company Scene and user image capture device and method
JP4757173B2 (ja) * 2006-11-17 2011-08-24 キヤノン株式会社 撮像装置及びその制御方法及びプログラム
US8274596B2 (en) 2008-04-30 2012-09-25 Motorola Mobility Llc Method and apparatus for motion detection in auto-focus applications
US9282244B2 (en) 2013-03-14 2016-03-08 Microsoft Technology Licensing, Llc Camera non-touch switch
US9247136B2 (en) 2013-08-21 2016-01-26 Xerox Corporation Automatic mobile photo capture using video analysis
CN104519263B (zh) * 2013-09-27 2018-07-06 联想(北京)有限公司 一种图像获取的方法及电子设备
US9615012B2 (en) * 2013-09-30 2017-04-04 Google Inc. Using a second camera to adjust settings of first camera
CN105100604B (zh) * 2014-07-18 2019-03-01 小米科技有限责任公司 拍摄方法及装置
US9578195B1 (en) 2015-01-23 2017-02-21 Evernote Corporation Automatic scanning of document stack with a camera
JP6504899B2 (ja) * 2015-04-21 2019-04-24 キヤノン株式会社 制御装置、光学機器、撮像装置および制御方法
US10827140B2 (en) * 2016-10-17 2020-11-03 Huawei Technologies Co., Ltd. Photographing method for terminal and terminal
CN109005350A (zh) * 2018-08-30 2018-12-14 Oppo广东移动通信有限公司 图像重复拍摄提示方法、装置、存储介质及移动终端

Also Published As

Publication number Publication date
WO2020139726A1 (en) 2020-07-02
CN113170049A (zh) 2021-07-23
EP3881527A1 (en) 2021-09-22
CN113170049B (zh) 2023-03-21
US11057558B2 (en) 2021-07-06
US20200213509A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US9019415B2 (en) Method and apparatus for dual camera shutter
EP2283642B1 (en) Method, apparatus, and computer program product for presenting burst images
CN106375674B (zh) 寻找和使用与相邻静态图像相关的视频部分的方法和装置
WO2017016146A1 (zh) 图像显示方法及装置
US9571739B2 (en) Camera timer
CN113170049B (zh) 使用场景改变触发自动图像捕获
JP2018500611A (ja) 画像の処理方法及び装置
WO2019091411A1 (zh) 拍摄图像的方法、装置、终端和存储介质
WO2016192325A1 (zh) 视频文件的标识处理方法及装置
JP2016143919A (ja) 画像処理装置およびその制御方法
US11190653B2 (en) Techniques for capturing an image within the context of a document
US20200304713A1 (en) Intelligent Video Presentation System
US10902277B2 (en) Multi-region detection for images
US10686983B1 (en) Automatic image capture mode based on changes in a target region
US20180041679A1 (en) System and methods for variable image capture
CN112383708B (zh) 拍摄方法、装置、电子设备及可读存储介质
US20160323490A1 (en) Extensible, automatically-selected computational photography scenarios
CN114070998A (zh) 一种拍摄月亮的方法、装置、电子设备及介质
US11363190B2 (en) Image capturing method and device
CN117957852A (en) Camera initialization for reduced latency

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal