KR20210056338A - 이미지들에 대한 다중 영역 검출 - Google Patents

이미지들에 대한 다중 영역 검출 Download PDF

Info

Publication number
KR20210056338A
KR20210056338A KR1020217006208A KR20217006208A KR20210056338A KR 20210056338 A KR20210056338 A KR 20210056338A KR 1020217006208 A KR1020217006208 A KR 1020217006208A KR 20217006208 A KR20217006208 A KR 20217006208A KR 20210056338 A KR20210056338 A KR 20210056338A
Authority
KR
South Korea
Prior art keywords
area
region
image
input
scanning
Prior art date
Application number
KR1020217006208A
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 KR20210056338A publication Critical patent/KR20210056338A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00129Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a display device, e.g. CRT or LCD monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00352Input means
    • H04N1/00381Input by recognition or interpretation of visible user gestures
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00249Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a photographic apparatus, e.g. a photographic printer or a projector
    • H04N1/00251Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a photographic apparatus, e.g. a photographic printer or a projector with an apparatus for taking photographic images, e.g. a camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00352Input means
    • H04N1/00384Key input means, e.g. buttons or keypads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00352Input means
    • H04N1/00395Arrangements for reducing operator input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00411Display of information to the user, e.g. menus the display also being used for user input, e.g. touch screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00413Display of information to the user, e.g. menus using menus, i.e. presenting the user with a plurality of selectable options
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00413Display of information to the user, e.g. menus using menus, i.e. presenting the user with a plurality of selectable options
    • H04N1/00437Intelligent menus, e.g. anticipating user selections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/0044Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet
    • H04N1/00442Simultaneous viewing of a plurality of images, e.g. using a mosaic display arrangement of thumbnails
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/0044Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet
    • H04N1/00461Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet marking or otherwise tagging one or more displayed image, e.g. for selective reproduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00681Detecting the presence, position or size of a sheet or correcting its position before scanning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00681Detecting the presence, position or size of a sheet or correcting its position before scanning
    • H04N1/00729Detection means
    • H04N1/00734Optical detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00681Detecting the presence, position or size of a sheet or correcting its position before scanning
    • H04N1/00763Action taken as a result of detection
    • H04N1/00766Storing data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00795Reading arrangements
    • H04N1/00798Circuits or arrangements for the control thereof, e.g. using a programmed control device or according to a measured quantity
    • H04N1/00816Determining the reading area, e.g. eliminating reading of margins
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • H04N1/203Simultaneous scanning of two or more separate pictures, e.g. two sides of the same sheet
    • H04N1/2036Simultaneous scanning of two or more separate pictures, e.g. two sides of the same sheet of a plurality of pictures corresponding to a single side of a plurality of media
    • H04N1/2038Simultaneous scanning of two or more separate pictures, e.g. two sides of the same sheet of a plurality of pictures corresponding to a single side of a plurality of media lying in the same plane
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/38Circuits or arrangements for blanking or otherwise eliminating unwanted parts of pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00281Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal
    • H04N1/00307Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal with a mobile telephone apparatus

Abstract

카메라로 캡처된 이미지가 스캐닝 애플리케이션에 의해 처리되어 스캐닝에 적합한 하나 이상의 영역을 이미지 내에서 식별할 수 있다. 이러한 영역 중 하나 이상은 디스플레이 스크린의 특정 부분에 대한 손가락 끝 터치와 같은 사용자 입력에 기초하여 스캐닝을 위해 자동으로 선택될 수 있다. 사용자는 또한 다수의 영역을 선택하고 단일 이미지에서 스캐닝을 위해 다수의 사각형 영역을 PDF로 제출할 수 있다.

Description

이미지들에 대한 다중 영역 검출
카메라를 포함하는 컴퓨팅 디바이스는 랩톱 컴퓨터, 태블릿, 디지털 카메라, 스마트 폰 및 기타 모바일 데이터, 메시징 및/또는 통신 디바이스를 비롯한 모바일 디바이스에서 점점 더 보편화되고 있다. 일반적으로, 사용자는 컴퓨팅 디바이스와 관련된 카메라를 사용하여 풍경 이미지, 사람, 프레젠테이션, 화이트 보드, 명함, 문서, 스케치, 그림 등과 같은 다양한 사진을 찍는다. 사용자는 캡처된 이미지를 참조하여 다이어그램, 사진, 목록 및 기타 텍스트와 같은 그 안에 포함된 정보를 불러오고/오거나 다른 사용자, 저장 서비스 또는 디바이스에 전자적으로 전달할 수 있다. 그러나, 전통적으로, 카메라에 의해 캡처된 이미지는 정적이며, 스캐닝을 통해 전자적으로 이용가능한 및/또는 편집 가능한 정보를 획득하기 위해 이미지의 특정 영역(specific regions)을 추출하는 것이 어려울 수 있다.
또한, 사진은 일반적으로 크기가 상당히 크고 풍부한 텍스트 및 그래픽 정보를 포함하기 때문에, 디바이스에서 캡처를 위해 자동으로 선택된 이미지 영역은 사용자가 원하는 영역이 아닐 수 있다. 사용자의 관심 항목을 포함하는 이미지의 특정 부분을 인식하는 것은 여전히 비효율적이고 오류가 발생하기 쉽다. 따라서, 사용자를 위한 이미지 영역 선택 프로세스의 관리뿐만 아니라 이미지의 효율적인 스캐닝을 위한 새롭고 개선된 아이디어를 위해 중요한 부분이 남아 있다.
본 개시의 제 1 양태에 따른 데이터 처리 디바이스는 적어도 하나의 프로세서 및 하나 이상의 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서가 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시(present)하게 하는 명령어를 포함한다. 명령어는 또한 적어도 하나의 프로세서가 이미지의 제 1 구역(zone)과 연관된 제 1 입력을 수신하게 하고, 제 1 입력을 수신한 것에 응답하여, 적어도 제 1 구역을 포함하는 제 1 영역을 자동으로 검출하게 하며, 제 1 영역은 제 1 둘레(perimeter)에 의해 경계가 지정된다(bounded). 명령어는 또한 적어도 하나의 프로세서가 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 제 1 영역을 스캐닝을 위한 잠재적 영역으로서 사용자에게 제시하게 한다.
본 개시의 제 2 양태에 따른 방법은 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시하는 단계를 포함한다. 방법은 또한 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 단계를 포함한다. 또한, 방법은 제 1 입력을 수신한 것에 응답하여, 적어도 제 1 구역을 포함하는 제 1 영역을 자동으로 검출하는 단계를 포함한다. 제 1 영역은 제 1 둘레에 의해 경계가 지정된다. 또한, 방법은 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 제 1 영역을 스캐닝을 위한 잠재적 영역으로서 사용자에게 제시하는 단계를 포함한다.
본 개시의 제 3 양태에 따른 방법은 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시하는 단계, 및 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 단계를 포함한다. 또한, 방법은 제 1 입력을 수신한 것에 응답하여, 적어도 제 1 구역을 포함하는 제 1 사각형 영역을 자동으로 제시하는 단계를 포함한다. 다른 단계에서, 방법은 이미지의 제 2 구역과 연관된 제 2 입력을 수신하는 단계를 포함하며, 여기서 제 2 구역은 제 1 사각형 영역 외측에 위치된다. 또한, 방법은 제 2 입력을 수신한 것에 응답하여, 적어도 제 1 사각형 영역을 포함하는 제 2 사각형 영역을 자동으로 제시하는 단계를 포함한다.
이 요약은 아래의 상세한 설명에서 더욱 설명되는 개념들의 선택을 간략화된 형태로 소개하기 위해 제공된다. 이 요약은 청구되는 주제의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니고, 청구되는 주제의 범위를 제한하기 위해 사용되는 것도 아니다. 더욱이, 청구되는 주제는 본 개시의 임의의 부분에 언급된 임의의 또는 모든 단점을 해결하는 구현으로 제한되지 않는다.
도면은 본 교시에 따른 하나 이상의 구현을 제한이 아닌 예로서만 도시한다. 도면에서, 동일한 참조 번호는 동일하거나 유사한 요소를 나타낸다. 더욱이, 도면은 반드시 실척이 아님을 이해해야 한다.
도 1a 및 도 1b는 각각 이미지 스캐닝 애플리케이션 및 환경의 구현을 도시한다.
도 2는 스캐닝을 위해 이미지의 영역을 관리하기 위한 분산 컴퓨팅 환경의 일 구현을 도시하는 개념 다이어그램이다.
도 3은 스캐닝 도구 및 현실 세계 설정을 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 4는 선택된 이미지에서 제 1 영역에 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 5a 및 도 5b는 제 1 사용자 입력이 이미지에서 제 2의 상이한 영역이 선택되게 하는 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 6a 및 도 6b는 제 2 사용자 입력이 이미지에서 제 3의 상이한 영역이 선택되게 하는 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 7은 선택된 이미지에서 제 1 영역에 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 8a 및 도 8b는 제 1 사용자 입력이 이미지에서 제 1 영역을 포함하는 제 2의 상이한 영역이 선택되게 하는 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 9a 및 도 9b는 제 2 사용자 입력이 이미지에서 제 3의 상이한 영역이 선택되게 하는 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 10a 내지 도 10g는 다수의 사용자 입력에 응답하여 이미지에서 다양한 영역을 검출하도록 구성된 애플리케이션의 구현을 도시하는 개략적 다이어그램이다.
도 11a 및 도 11b는 제 1 사용자 입력이 이미지에서 제 2의 상이한 영역이 선택되게 하는 스캐닝 도구를 제공하도록 구성된 애플리케이션에 대한 사용자 인터페이스의 구현을 도시하는 디스플레이 다이어그램이다.
도 12는 스캐닝 선택 도구에 대한 구현의 프로세스 흐름도이다.
도 13은 스캐닝 선택을 관리하기 위한 프로세스의 구현을 도시하는 흐름도이다.
도 14는 본 명세서에 설명된 메커니즘의 구현을 제공하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 블록도이다.
도 15는 기계 판독가능 매체로부터 명령어를 판독하도록 구성된 예시적인 기계의 컴포넌트를 도시하는 블록도이다.
다음의 상세한 설명에서, 관련 교시의 완전한 이해를 제공하기 위해 수많은 특정 세부 사항이 예를 통해 설명된다. 그러나, 본 교시는 이러한 세부 사항 없이 실행될 수 있음이 명백해야 한다. 다른 예에서, 본 교시의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해, 잘 공지된 방법, 절차, 컴포넌트 및/또는 회로가 세부 사항 없이 비교적 높은 수준으로 설명되었다.
다음의 구현은 이미지에서 스캐닝을 위해 검출 및/또는 식별될 영역을 결정하기 위해 애플리케이션에 의해 사용될 수 있는 입력을 수신함으로써, 사용자 스캐닝 경험을 향상시킬 수 있는 스캔 애플리케이션 도구 상자를 도입한다. 일반적으로, 스캐닝 작업 흐름에는 사용자가 수행할 수 있는 일련의 단계가 포함되어 있다: (1) 카메라를 문서에 조준하기; (2) 사진 찍기; (3) 관심 객체를 더 정확하게 둘러싸도록 문서 경계를 자르거나 드래그하기; (4) 선택된 이미지 콘텐츠(필터, 원근 보정 등)를 정리하기; 및 (5) 파일을 저장 및/또는 스캔 항목을 공유하기. 스캐닝을 위한 영역을 식별하기 위해, 일부 애플리케이션은 "쿼드(quad)" 또는 사각형 모양 영역으로 지칭되는 영역을 검출할 수 있다. 경우에 따라, 쿼드는 다른 장면 아티팩트 또는 배경이 삭제되거나 제거된 문서 또는 기타 객체를 나타낸다. 그러나, 종래의 스캐닝 기반 애플리케이션은 종종 이미지에서 바람직하지 않은 사각형 영역을 지정한다. 또한, 이미지에서 검출될 수 있는 다수의 쿼드가 있는 경우, 사용자가 캡처하려고 했던 특정 쿼드의 검출 가능성이 낮다. 개시된 구현은 사용자가 이전에 캡처된 (정적) 이미지 및/또는 실시간(라이브)으로 캡처된 이미지를 보고 스캐닝을 위해 이미지에서 특정 쿼드를 식별하는 데 사용될 수 있는 입력(들)을 제출할 수 있게 한다. 스캐닝을 위해 이미지의 원하는 부분으로 애플리케이션을 빠르고 효과적으로 안내하는 능력은 사용자가 전자 콘텐츠로 작업할 때 작업 흐름 효율성을 증가시킬 수 있게 한다. 또한, 이 시스템은 더 큰 이미지를 보면서 다수의 개별 영역의 스캔 가능 이미지 콘텐츠의 존재 또는 가용성에 대한 광범위한 인식을 사용자에게 제공할 수 있다.
위에서 소개한 바와 같이, 다양한 애플리케이션을 사용하여 디지털 이미지 또는 전자 콘텐츠를 캡처 및/또는 편집할 수 있다. 이 설명을 위해, "전자 콘텐츠" 또는 "이미지"라는 용어는 전자 문서, 미디어 스트림, 실시간 비디오 캡처, 실시간 이미지 디스플레이, 문서, 웹 페이지, 하이퍼텍스트 문서, 임의의 이미지, 디지털 비디오 또는 비디오 녹화, 애니메이션 및 기타 디지털 데이터를 포함하지만 이에 제한되지 않는 시각적으로 표시될 수 있는 임의의 디지털 데이터를 포함한다. 예로서, 이러한 전자 콘텐츠는 이미지 캡처 및 사진 스캐닝 애플리케이션, 또는 디지털 이미지와 함께 사용하기 위한 도구를 제공하도록 구성된 기타 소프트웨어를 포함할 수 있다.
더욱이, 일부 유형의 문서 내에서, 전자 콘텐츠는 이미지 콘텐츠 영역("콘텐츠 영역") 또는 보다 간단하게는 영역으로 지칭될 하나 이상의 유닛으로 분할되거나 이를 포함하는 것으로 이해될 수 있다. 본 출원의 목적을 위해, "영역"이라는 용어는 이미지의 개별 또는 이산 세그먼트로 식별 가능한 및/또는 선택 가능한 디지털 콘텐츠 부분을 설명한다. 예로서, 하나의 전자 콘텐츠 모음(예컨대, 디지털 사진)은 각각 하나 이상의 이미지 콘텐츠 부분("콘텐츠 부분")을 포함할 수 있는 복수의 영역으로 또는 이에 의해 특성화될 수 있다. 상이한 구현에서, 제 1 이미지 콘텐츠 영역은 동일한 이미지에서 다른 제 2 이미지 콘텐츠 영역의 일부와 오버랩될 수 있다. 따라서, 콘텐츠 영역은 시스템에 의해 정의되거나 식별될 수 있는 전자 콘텐츠의 임의의 부분을 포함한다. 예를 들어, 콘텐츠 영역은 콘텐츠 부분 자체의 특성으로부터 또는 다른 콘텐츠 부분과 관련하여 자동으로 식별될 수 있거나(예를 들어, 색상, 광도 레벨, 에지 검출, 모양, 심볼, 픽셀), 검토자 또는 최종 사용자에 의해 수동으로 정의될 수 있거나(예를 들어, 선택된 픽셀 세트 또는 객체), 또는 디지털 이미지의 다른 선택된 부분일 수 있다.
또한, 이 애플리케이션을 위한 최종 사용자(또는 "사용자")는 전자 콘텐츠에서 선택 영역의 생성, 보기 또는 업데이트를 비롯한 전자 콘텐츠의 일부를 캡처, 편집, 보기, 관리 또는 삭제하는 사람이다. 최종 사용자는 본 명세서에 설명된 장치 및 시스템뿐만 아니라 애플리케이션 프로그램의 사용자를 포함한다. 또한, 이 설명을 위해, "소프트웨어 애플리케이션", "소프트웨어" 또는 "애플리케이션"이라는 용어는 일반적으로 컴퓨터 자체와는 관련이 없는 유용한 작업을 수행하는 컴퓨터 프로그램을 나타낸다. 소프트웨어 애플리케이션의 일부 비 제한적인 예로는 사진 소프트웨어, 이미지 캡처/편집 애플리케이션, 워드 프로세서, 스프레드 시트, 슬라이드 쇼, 프레젠테이션 디자인 애플리케이션, 회계 시스템 및 전기 통신 프로그램, 게임 소프트웨어, 유틸리티 및 생산성 도구, 모바일 애플리케이션, 프레젠테이션 그래픽 및 기타 생산성 소프트웨어를 포함한다.
개시된 특징을 통합할 수 있는 소프트웨어 애플리케이션은 클라이언트의 디바이스에 설치되거나, 디바이스와 통신하도록 구성된 웹 브라우저 애플리케이션과 같은 서드 파티 애플리케이션(third-party application)과 연관될 수 있다. 이러한 디바이스는, 예를 들어, 데스크톱 컴퓨터, 모바일 컴퓨터, 모바일 통신 디바이스(예컨대, 휴대폰, 스마트 폰, 태블릿 등), 스마트 TV, 게임 디바이스, 셋톱 박스 및/또는 카메라 및/또는 이미지 디스플레이 기능을 포함하는 기타 컴퓨팅 디바이스를 포함할 수 있다.
일반적으로, 이러한 스캐닝 애플리케이션은 최종 사용자가 디바이스와 연관된 카메라로 캡처된 이미지를 사용하거나 메모리에 저장되거나 액세스되는 이미지를 통해 문서, 프레젠테이션, 현실 세계 객체 및 기타 대상을 스캔할 수 있도록 한다. 또한, 일부 구현에서, 카메라 기반 스캐닝 애플리케이션은 종이, 명함, 화이트 보드, 스크린 등과 같은 직사각형 또는 다른 다각형 객체에 대한 원근 효과를 보정하도록 구성될 수 있다. 상이한 구현에서, Microsoft Office Suite®에서 제공되는 프로그램과 같은 소프트웨어 애플리케이션(예를 들어, Office Lens®, Powerpoint®, Visio®) 및 기타 애플리케이션은 이미지의 상이한 영역의 스캐닝 및 식별을 비롯한 다양한 이미지 캡처 및 편집 도구를 제공할 수 있다. 다른 예로는 Microsoft Safety Scanner®, VueScan®, Picasa®, TWAIN®, Windows Fax and Scan®, PaperPort®, SilverFast®, Genius Scan®, TurboScan®, Scanner Pro®, Prizmo®, Google PhotoScans® 및 Helmut Film Scanner®, Google Drive®, Evernote Scannable®, Dropbox®, Scanbot®, CamScanner®, Photomyne®가 있으며; 이들은 비 제한적인 예이고, 임의의 다른 전자 콘텐츠 편집 또는 보기 애플리케이션이 개시된 구현으로부터 이익을 얻을 수 있다.
이미지의 스캐닝 동안, 스캐닝에 사용할 수 있는 다수의 잠재적 영역이 있는 경우, 최종 사용자는 속도가 느려지거나 방해를 받을 수 있다. 이러한 애플리케이션을 위해, 스캔 또는 스캐닝은 사용자가 관심을 가질 수 있는 이미지의 특정 영역에 대한 경계를 애플리케이션이 식별, 선택, 분리 또는 결정하는 메커니즘을 나타낸다. 따라서, 스캐닝은 실시간으로 (예를 들어, 카메라가 장면 또는 객체(들)를 향하고 있는 동안) 및/또는 이미지의 캡처, 생성 또는 메모리에 저장 후에 발생할 수 있으며, 이미지 내의 특정 영역의 고해상도 캡처를 허용하는 것으로 이해될 수 있다. 다시 말해서, 스캐닝은 일부 구현에서 더 큰 캡처된 이미지 내의 더 작은 영역의 캡처를 포함할 수 있다.
다음 구현은 주어진 장소 주변의 쿼드를 검출할 수 있는 능력을 사용자에게 제공하도록 구성된다. 일부 구현에서, 다수의 쿼드가 이미지에서 이용가능하거나 검출되면, 원하는 쿼드와 연관된 영역에서 사용자에 의한 손가락 탭은 '탭핑된' 영역과 연관된 잠재적 쿼드의 경계(즉, 둘레)를 결정하는 데 도움이 되도록 구성될 수 있다. 이러한 애플리케이션은 사용자가 하나 또는 다수의 쿼드를 선택하여 캡처할 수 있도록 한다. 따라서, 상이한 구현에서, 사용자는 휴대용 디바이스의 카메라를 대상을 향해 조준하고, 버튼, 음성 명령, 터치, 스타일러스, 마우스, 방향 키 및/또는 다른 적절한 입력 디바이스를 사용하여 대상 이미지의 캡처 또는 기록을 시작할 수 있다. 사용자가 캡처를 시작할 때, 대상 이미지를 캡처하기 위해 캡처 작업이 발생할 수 있다. 이미지 캡처는 캡처된 이미지의 다양한 처리를 시작하여 제 1 스캔 가능 영역을 검출하고 해당 영역을 사용자에게 제시할 수 있다. 터치 스크린 상의 터치 입력 또는 터치 이벤트는 사용자의 관심 영역을 나타낼 수 있으며, 상이한 제 2 영역의 검출이 시도될 것이다. 터치 입력의 위치는 가능한 영역의 범위를, 사용자에 의해 식별된 이미지 콘텐츠 부분을 포함하는 영역으로만 좁히는 데 사용될 수 있다.
독자에게 시스템 및 방법을 더 잘 소개하기 위해, 도 1a 및 도 1b는 다중 영역 스캐닝 시스템을 구현하기 위한 대표적인 영역 선택 및 검출 스캐닝 환경의 예를 제시한다(시스템은 도 2에서 보다 상세히 개략적으로 도시된다). 상이한 구현에서, 환경은 복수의 컴퓨팅 디바이스 최종 사용자를 포함하거나 또는 단순히 이미지를 캡처, 보기, 편집 및/또는 수정할 수 있는 "사용자"(예를 들어, 제 1 사용자, 제 2 사용자, 제 3 사용자 등)를 포함할 수 있다. 한 명 이상의 사용자가 사용자 디바이스를 통해 제시되는 이미지와 상호 작용하거나 이를 조작할 수 있다. 사용자가 이미지와 같은 전자 콘텐츠를 볼 때, 이미지의 다양한 영역이 잠재적으로 스캔 가능한 것으로 검출되거나 식별될 수 있다. 일 구현에서, 사용자는 단일 이미지에서 다수의 영역을 보거나 다수의 영역이 사용자에게 제시될 수 있다.
도 1a 및 도 1b에서, 사용자(102)는 이미지 스캐닝 애플리케이션을 통해 디스플레이(120) 상에 이미지(100)가 제시되는 디바이스(150)를 쥐고 있다. 이미지(100)는 위에서 설명된 바와 같이 임의의 유형의 디지털 미디어 파일을 포함할 수 있다. 이 예에서, 이미지(100)는 복수의 이미지 섹터(160)를 포함하는 디지털 이미지이다. 이미지 섹터는 잠재적 또는 가능한 스캔 가능 영역을 나타내는 것으로 이해될 수 있다. 여기서 각각의 섹터는 작은 직사각형 모양(사각형 또는 "쿼드")으로 표시된다. 그러나, 다른 구현에서, 섹터는 삼각형, 원, 오각형 및 상이한 기하학적 윤곽선과 같은 다른 규칙적인 모양 또는 다른 불규칙적인 모양에 의해 정의될 수 있다. 이 예에서는 5 개의 섹터만 도시되지만, 이미지는 임의의 수의 섹터를 포함할 수 있다. 또한, 이 경우, 간략화를 위해, 각각의 섹터 또는 쿼드는 현실 세계에서 별도의 항목에 해당한다.
"인터페이스"는 클라이언트 애플리케이션을 통해 애플리케이션 사용자에게 콘텐츠를 전달하는 메커니즘을 나타내는 것으로 이해될 것이다. 예를 들어, 인터페이스는 네이티브 애플리케이션 사용자 인터페이스(user interface; UI)를 통해 사용자에게 제시될 수 있는 팝업 창, 컨트롤, 작동 가능 인터페이스, 대화형 버튼 또는 네이티브 애플리케이션 UI를 통해 사용자에게 표시될 수 있는 기타 객체는 물론 이러한 네이티브 컨트롤과 함께 관련된 콘텐츠를 제시하기 위한 특정 애플리케이션에 고유한 메커니즘을 포함할 수 있다. 또한, "작동" 또는 "작동 이벤트"는 손가락 탭, 키보드 명령, 음성 명령 또는 마우스 클릭과 같은 인터페이스를 통한 특정 입력 또는 애플리케이션의 사용과 관련된 이벤트(또는 특정 이벤트 시퀀스)를 나타내며, 이는 애플리케이션의 디스플레이 변경을 트리거할 수 있다.
이 예에서, 도 1a 및 도 1b의 디바이스(150)의 디스플레이(120)에서 구별될 수 있는 5 개의 항목이 있다. 디스플레이(120)는 라이브 미리보기에서 디바이스(150)와 연관된 카메라로부터 데이터를 수신하고 이미지 캡처 또는 이미지 스캐닝 애플리케이션을 통해 카메라의 시야에 있는 항목 또는 객체를 제시하도록 구성될 수 있다. 일부 구현에서, 애플리케이션은 본 명세서에서 이미지 콘텐츠 스캐닝 인터페이스("인터페이스")로 지칭되는 그래픽 사용자 인터페이스를 제공하거나 제시할 수 있다. 일부 구현에서, 인터페이스는 디스플레이(120) 상에 또는 디스플레이(120)의 일부에만 '풀 스크린'으로 제시될 수 있고/있거나 인터페이스는 실질적으로 투명할 수 있으므로, 스크린 또는 이미지와의 상호 작용은 애플리케이션에 의해 수신되는 반면 이미지 자체는 이미지 보기를 방해하는 추가 인터페이스 그래픽의 중첩 없이 완전히 볼 수 있게 유지된다. 그러나, 다른 구현에서, 애플리케이션은 메뉴, 설정 또는 기타 옵션과 같은 다양한 그래픽 요소를 이미지와 관련되거나, 오버레이되거나, 인접하여 제시할 수 있다.
또한, 애플리케이션은 본 명세서에 설명된 카메라 기반 스캐닝 기술을 구현하기 위해 디바이스(150)의 기능을 통합할 수 있다. 인터페이스(190)는 카메라로부터 현재 이미지를 제시하고/하거나 사진이 촬영되었거나 스토리지로부터 액세스될 때 (즉, 메모리로부터) 캡처된 이미지를 제시하도록 전환할 수 있는 뷰 파인더로 도시된다. 또한, 일부 구현에서, 사용자는 디스플레이(120)의 뷰 파인더 부분과의 상호 작용을 통해 캡처된 이미지의 일부를 수정 및/또는 선택할 수 있다.
일부 다른 구현에서, 인터페이스(190)는 이미지에서 검출된 임의의 스캔 가능 영역으로 사용자를 안내하기 위해 다양한 표시기를 디스플레이하거나 제시하도록 구성될 수 있다. 예를 들어, 인터페이스(190)는 사용자가 임의의 검출된 스캔 가능 영역을 쉽게 탐색할 수 있도록 허용하는 메뉴, 심볼 또는 기타 작동 가능 옵션을 디스플레이하거나 제시하고/하거나 동일한 이미지에서 다수의 또는 대안적인 스캔 가능 영역이 이용가능하다는 것을 사용자에게 단순히 알릴 수 있도록 구성될 수 있다. 일부 구현에서, 검출된 영역은 타겟 영역이 사용자가 원하는 스캔 가능 영역이라는 통계적 확률의 순서로 강조되거나 제시될 수 있다. 그러나, 다른 구현에서, 애플리케이션은 제 1 영역만 검출하고, 사용자가 다른 영역(들)의 검출에 대한 요청에 대응하는 어떤 종류의 입력을 후속적으로 제공하는 경우에만 대안적인 (제 2) 영역을 검색 및/또는 검출할 수 있다.
도 1a 및 도 1b에서, 각각의 섹터는 현실 세계 장면(130)의 특정 특징, 객체 또는 영역과 연관되거나 이에 대응한다. 이 예에서, 현실 세계 장면(130)은 테이블(136) 상의 책(132)과 연필(134)을 포함한다. 그러나, 디바이스(150) 내의 카메라는 이용가능한 현실 세계 장면(130)의 일부만이 "미리보기" 모드에서 디스플레이(120) 상에 제시되도록 위치되거나 지향된다. 따라서, 이미지(100)는 이 경우 책(132)의 페이지(138) 및 페이지(138)의 다양한 콘텐츠를 포함하는 큰 장면(130)의 하위 장면에 대응하는 것으로 이해될 수 있다. 이 예에서, 페이지(138)의 다양한 콘텐츠는 제 1 그림(172), 제 2 그림(174), 제 3 그림(176), 제 4 그림(178) 및 제 5 그림(180)을 포함한다. 위에서 식별된 이미지(100)의 지정된 섹터(160) 각각은 간략함을 위해 페이지(138) 상의 개별 그림에 대응한다. 그러나, 다른 구현에서, 다른 유형의 영역이 있을 수 있고, 검출된 영역의 경계에 더 큰 복잡성이 있을 수 있고/있거나 잠재적으로 검출 가능한 영역 사이에 오버랩이 있을 수 있다는 것을 이해해야 한다.
도 1a에서, 사용자(102)에게 제 1 영역(162)(제 1 그림(172)에 대응함)이 자동으로 검출된(제 1 영역(162)의 경계를 둘러싼 굵은 선으로 표시됨) 디스플레이(120)가 제시되고 있다. 일부 구현에서, 검출된 영역과 연관된 경계는 강조되거나 다른 방식으로 구별되어 검출되고 현재 선택된 영역을 사용자에게 알린다. 그러나, 많은 경우에, 사용자는 제 2 그림(174), 제 3 그림(176), 제 4 그림(178) 및/또는 제 5 그림(180)과 같은 나머지 항목들 중 임의의 것과 연관된 상이한 제 2 영역의 선택을 원할 수 있다는 것을 이해할 수 있을 것이다. 상이한 구현에서, 시스템은 어떤 영역이 실제로 원하는 영역 또는 '올바른' 영역인지를 나타내는 입력을 사용자로부터 수신하기 위한 수단을 포함할 수 있다.
예로서, 도 1b에서, 사용자는 디스플레이(120) 상에 도시된 이미지(100)의 일부("구역")(122)를 터치했다. 이 입력은 사용자의 타겟 영역이 구역(122)에서 볼 수 있거나 이 구역에 디스플레이되는 것을 포함한다는 표시로서 애플리케이션에 의해 수신된다. 그 결과, 시스템은 임의의 다른 가능한 스캔 가능 영역이 있는지 여부를 검출하고, 구역(122)을 포함하는 영역(들)을 추가로 결정할 수 있다. 이 경우, 애플리케이션은 구역(122)을 포함하는 제 2 영역(164)을 검출하고, 사용자에게 스캐닝을 위한 선택을 나타내기 위해 제 2 영역(164)을 강조한다. 일부 구현에서, 제 1 영역(162)은 또한 선택해제(deselect)될 수 있어서, 한 번에 오직 하나의 스캔 가능 영역만이 선택된다. 그러나, 다른 구현에서, 제 1 영역(162) 및 제 2 영역(164)(및 추가 영역)은 스캐닝을 위해 동시에 선택될 수 있다. 이렇게 하면 이미지에서 원하는 콘텐츠를 수집하는 데 필요한 시간을 크게 줄일 수 있다. 애플리케이션을 '다루어' 원하는 영역을 검출하기 위해, 사용자가 사진을 다시 찍거나, 사진을 자르거나, 확대하거나, 초점을 맞추거나, 조명 조건을 조정하거나, 콘트라스트를 높이거나, 다른 이미지 파라미터를 조작하도록 요구하는 대신, 사용자는 원하는 영역에 포함된 이미지의 임의의 부분을 간단히 터치(또는 다른 식으로 상호 작용)할 수 있으며, 애플리케이션은 올바른 영역을 자동으로 검출한다.
이제 도 2를 참조하면, 다중 영역 검출 스캐닝 시스템("시스템")(200)의 대표적인 아키텍처의 예가 도시된다. 상이한 구현에서, 시스템(200)은 전자 콘텐츠의 디스플레이 및 스캔 가능 영역의 식별을 위한 사용자 인터페이스를 제시하도록 구성될 수 있다. 시스템(200)은 또한 사용자 입력에 기초하여 선택된 영역을 업데이트하도록 구성될 수 있다. 본 명세서에 제시된 시스템(200)은 단지 예시적인 구현일 뿐이고, 명확성을 위해 일부 양태만이 제시되며, 다양한 다른 구현이 가능하다는 것을 이해해야 한다.
도 2에서, 시스템(200)은 디바이스(240)를 포함한다. 디바이스(240)는 카메라, 휴대폰, 태블릿, 랩톱, 데스크톱, 게임 디바이스, 프로젝터 및 기타 이러한 디바이스와 같은 이미지 및/또는 이미지 관련 콘텐츠를 제시할 수 있는 임의의 유형의 디바이스를 포함할 수 있다. 디바이스(240)는 다양한 하드웨어 및 소프트웨어 컴포넌트를 포함할 수 있다. 이 예에서, 스캐닝 애플리케이션(250)이 디바이스(240) 상에 국부적으로 설치된 것으로 도시되어 있지만, 다른 구현에서, 스캐닝 애플리케이션(250)의 일부 또는 모든 양태 또는 특징은 다른 디바이스로부터 액세스되거나 클라우드 스토리지 컴퓨팅 서비스로부터 액세스될 수 있다.
스캐닝 애플리케이션(250)은 디바이스(240)를 통해 이미지 콘텐츠(210)를 수신하도록 구성된다. 이미지 콘텐츠(210)는 이전에 캡처되었거나 '정적' - 메모리(214)(로컬, 외부 또는 클라우드 기반 메모리)로부터 액세스됨 - 일 수 있거나, '라이브'일 수 있어 현재 실시간으로 보거나 캡처될 수 있다. 이미지 콘텐츠(210)는 이미지 콘텐츠(210)의 데이터를 처리하고 대략적으로 또는 실질적으로 사각형 모양의 객체에 대응하는 이미지의 부분을 검출하도록 구성된 쿼드 식별 모듈(260)을 통해 스캐닝 애플리케이션(250)에 의해 수신될 수 있다. 특히, 쿼드 검출 모듈(262)은 스캐닝을 위한 잠재적 영역으로 특성화될 수 있는 사각형을 이미지 내에서 식별하도록 구성될 수 있다. 이러한 사각형은 이미지 및 기타 문서 내에서 임의의 모양을 찾는 데 적합한 다양한 특징 추출 기술을 사용하여 검출될 수 있다.
상이한 구현에서, 디바이스(240)는 또한 사용자 입력 프로세서(270)를 통해 사용자 입력(202)을 수신하도록 구성된다. 사용자 입력(202)은 사용되는 입력 수단의 유형에 기초하여 광범위하게 변할 수 있다. 도 2에서, 사용자 입력(202)은 사용자가 보거나 액세스하고 있는 이미지의 일부 특정 타겟 부분 또는 양태와 연관되거나 이에 대응하는 것으로 이해될 수 있다. 일 구현에서, 사용자 입력 프로세서(270)는 추후 참조를 위해 사용자 입력 히스토리 컴포넌트(274)에 일부 형태로 사용자 입력(202)을 저장할 수 있다(도 10a 내지 도 10g 참조). 일례로서, 사용자 입력은 스캐닝 영역에 포함시키기 위해 사용자가 원하는 이미지 내의 타겟 구역을 지정하는 마우스 클릭 또는 터치 스크린 인터페이스 상의 터치를 포함할 수 있다.
일부 구현에서, 사용자 입력(202)은 디바이스 디스플레이와 관련하여 입력을 수신 및 평가하고, 디스플레이의 어느 부분(구역)이 사용자 입력에 의해 타겟팅되거나 선택되었는지를 결정하도록 구성된 구역 결정 모듈(272)에 의해 처리될 수 있다. 쿼드-구역 매칭 모듈(264)이 검출된 쿼드 중 어느 것이 구역 결정 모듈(272)에 의해 식별된 구역을 포함하는지 여부를 결정하기 위해, 구역 결정 모듈(272) 및 쿼드 검출 모듈(262) 둘 다에 의해 생성된 정보를 수신할 수 있다. 타겟 구역을 포함하는 것으로 분류된 임의의 쿼드는 쿼드-구역 매칭 후보 모듈(266)에 의해 수집 및 저장될 수 있다.
상이한 구현에서, 특히 쿼드-구역 매칭 모듈(264)이 타겟 구역을 포함하는 다수의 쿼드 후보가 있다고 결정하는 경우에, 쿼드 식별 모듈(260)은 어느 쿼드(들)가 이미지에서 원하는 스캐닝 영역을 나타내거나 이에 대응할 가능성이 가장 높은지를 평가하도록 구성될 수 있다. 이 결정은 사용자 입력, 이미지 콘텐츠, 이전 입력, 이미지 특성 및 이미지에서 검출된 각각의 에지 또는 정점과 관련된 신뢰도를 포함한 다양한 요소를 기반으로 할 수 있으며, 쿼드-구역 매칭 후보로 분류된다. 쿼드-구역 매칭 후보로 자격을 갖춘 쿼드가 하나만 있는 경우, 이 쿼드는 쿼드 선택기(284)에 의해 자동으로 선택될 것이다. 그러나, 다수의 잠재적 쿼드가 식별되면, 쿼드 확률 결정 모듈(282)이 각각의 잠재적 후보 쿼드를 평가하고 의도된 스캔 영역을 나타낼 가능성이 가장 높은 쿼드를 추정할 수 있다. 쿼드 선택기(284)는 이러한 후보를 수신하고 이를 쿼드 디스플레이 컴포넌트(286)에 제출한다. 디바이스(240)에 연결된 디스플레이는 쿼드 디스플레이 컴포넌트(286)에 의해 생성된 정보를 수신하고, 쿼드를 사용자에게 제시할 수 있으며, 이는 이미지 콘텐츠(210) 상에 오버레이되거나 중첩된다. 일부 구현에서, 쿼드 디스플레이 컴포넌트(286)는 시각적 표시기 모듈(visual indicator module)(288)로부터 다양한 그래픽 요소에 액세스할 수 있다. 추가 사용자 인터페이스 요소가 요청되거나 필요한 경우, 이들은 디스플레이(290) 상에 제시되는 이미지 콘텐츠 상에 중첩되거나 오버레이될 수도 있다.
명확성을 위해, 스캔 가능 영역 선택 프로세스의 하나의 구현이 이제 도 3 내지 도 6을 참조하여 제시될 것이다. 도 3에서, 이미지 스캐닝 애플리케이션("애플리케이션")(300)이 도시되며, 이는 디스플레이(390) 상에 도시된 그래픽 사용자 인터페이스(graphical user interface; GUI)로 표시된다. 상이한 구현에서, 애플리케이션(300)은 GUI 및 다양한 사용자 인터페이스 요소, 특징 및 제어의 디스플레이를 시작하여 카메라(도시되지 않음)를 통한 이미지 캡처, 스캐닝 및/또는 이미지 처리를 용이하게 하는 데 사용된다.
일부 구현에서, 사용자는 현실 세계 장면을 보거나 캡처함으로써(예를 들어, 사진 촬영), 가상으로 생성된 객체를 포함할 수 있는 이미지를 캡처하거나 봄으로써(예를 들어, 스크린 샷 또는 캡처 도구), 또는 애플리케이션을 통해 또는 애플리케이션과 함께 보기 위해 이전에 캡처되거나 저장된 이미지를 로딩함으로써, 스캔을 시작할 수 있다. 예를 들어, 대상은 하나 이상의 문서, 종이, 명함, 사진, 화이트 보드, 수표, 미술품, 사람 및 기타 그러한 객체와 같은 하나 이상의 사각형 객체를 포함할 수 있다. 애플리케이션(300)은 실질적으로 직사각형 객체에 대응하는 이미지의 일부를 검출하기 위해 가장 일반적으로 구현된다는 것을 알 수 있다.
앞서 언급한 바와 같이, 일부 구현에서, 애플리케이션(300)은 스캐닝을 위한 잠재적 영역으로서 자격이 될 수 있는 사각형을 이미지 내에서 검출 및/또는 식별하도록 구성될 수 있다. 이들은 또한 사각형 영역으로 지칭될 수도 있다. 이미지 내의 사각형은 이미지 및 기타 문서 내에서 임의의 모양을 찾는 데 적합한 다양한 특징 추출 기술을 사용하여 식별될 수 있다. 다시 말해서, 일부 구현에서, 애플리케이션은 4면 모양 또는 객체에 실질적으로 대응하는 관찰된 이미지의 일부를 검출하도록 구성될 수 있다. 특히, 애플리케이션은 스캐닝을 위한 잠재적 영역일 수 있는 사각형을 캡처된 이미지 내에서 식별하도록 구성될 수 있다.
일부 구현에서, 애플리케이션(300)은 밝기의 급격한 변화와 같은 시각적 차이에 기초하여 에지를 검출하도록 동작 가능한 에지 검출기를 포함하거나 이를 사용한다. 에지가 식별되면, 에지는 연결된 선으로 결합되어 사각형 모양을 가진 둘레를 형성할 수 있다. 예를 들어, 정점(코너)은 에지 검출 메커니즘을 통해 식별될 수 있으며, 이러한 정점은 연결되거나 매핑되어 사각형을 형성할 수 있다. 결과적으로, 검출된 에지 및 선을 기반으로 잠재적인 사각형 영역 세트가 도출될 수 있으며, 여기서 선은 특정 방향을 따라 유사한 방위의 에지에서 검출되고, 그런 다음 결합되어 사각형을 형성한다.
이 메커니즘의 예가 도 3에 제시되어 있으며, 여기서 GUI는 디바이스(350)(여기서는 휴대폰으로 표시됨)에 연결되거나 통합된 카메라에 의해 현실 세계 장면(302)의 실시간 이미지 캡처의 디스플레이에 오버레이된다. 도 3에서, 현실 세계 장면(302)은 제 1 객체(310), 제 2 객체(320) 및 제 3 객체(330)를 포함하고 여기서는 서로 가까이 배열된 여러 예술 작품이 벽을 따라 고정되어 있는 아트 갤러리이다. 갤러리 벽의 섹션을 포함하는 갤러리의 일부가 디바이스(350)의 카메라에 의해 캡처되고 있고, 디스플레이(390)에서 제 1 이미지(340)로서 볼 수 있다. 제 1 이미지(340)는 제 1 대상(312)(제 1 객체(310)에 대응함), 제 2 대상(322)(제 2 객체(320)에 대응함), 및 제 3 대상(332)(제 3 객체(330)에 대응함)을 포함하는 디지털 표현일 수 있다. 도 3의 구현에서, 애플리케이션(300)은 이미지가 보여지지만 스캐닝 또는 영역 검출이 일어나지 않는 수동 모드에 있다.
상이한 구현에서, 애플리케이션(300)의 스캔 또는 영역 검출 특징이 활성화되거나 시작되면, 애플리케이션(300)은 이미지에서 스캐닝을 위한 영역을 자동으로 검출하도록 구성될 수 있다. 그러나, 다른 구현에서, 애플리케이션은 수동 모드와 능동 모드 간의 어떠한 전환도 필요하지 않을 수 있으며, 대신 이미지 보기가 시작되자마자 스캐닝을 위한 영역을 검출하도록 구성될 수 있음을 이해해야 한다.
도 4에서, 제 1 이미지(340)는 디바이스(350) 상에 디스플레이되고, 애플리케이션(300)의 스캐닝 동작이 활성화되었다. 도 4의 디스플레이(390)는 제 2 대상(322)의 제 1 둘레(324)와 연관되거나 이를 둘러싸는 표시기(342)를 더 포함한다. 표시기(342)는 후보 영역이 검출되었음을 사용자에게 표시하고/하거나 영역의 경계를 강조할 수 있다. 이러한 표시기는 캡처된 이미지 내에서 검출 및/또는 선택된 사각형을 구별하거나 강조하는 데 도움이 되도록 사용자 인터페이스에 나타날 수 있다.
표시기는 구현에 따라 다를 수 있으며, 명멸, 광도 변경, 검출된 영역의 일부를 따라 그래픽 요소 중첩, 깜박임, 애니메이션 선, 색상 변경, 플래그, 각각의 정점에서의 점 또는 원과 같은 그래픽 요소 및 에지를 따라 나타나는 점선 또는 실선과 같은 다양한 효과 또는 기타 시각적 표시기를 포함할 수 있다. 예를 들어, 도 4에서, 표시기(342)는 실질적으로 제 2 대상(322)을 둘러싸는 증가된 밝기를 포함한다.
많은 경우에, 애플리케이션(300)에 의해 잠재적 스캐닝 후보로 식별되는 제 1 검출된 영역은 사용자가 스캐닝을 위해 특별히 원하는 영역에 대응하지 않을 수 있거나, 이러한 제 1 검출된 영역은 사용자가 스캔하려는 여러 영역 중 단지 하나의 영역일 수 있음을 알 수 있다. 상이한 구현에서, 사용자는 영역 검출 프로세스를 개량하거나 개선하기 위해 애플리케이션(300)에 의해 사용될 수 있는 입력 신호를 제공할 수 있다. 이 신호는 다양할 수 있지만, 사용자가 스캐닝을 위해 원하는 영역의 경계 내에 위치한 디스플레이의 다른 (제 2, 제 3 등) 상이한 부분 또는 구역을 지정하는 사용자 입력을 포함할 수 있다. 일 구현에서, 하나 이상의 특정 픽셀 좌표 세트를 나타내는 사용자 입력을 수신하면, 애플리케이션(300)은 하나 이상의 지정된 좌표를 내포하거나 포함하는 이미지 내의 영역(들)만을 검출하도록 구성될 수 있다.
이 특징의 한 예가 도 5a 및 도 5b의 시퀀스에 도시되어 있다. 도 5a에서, 제 2 대상(322)은 여전히 강조되거나 스캐닝을 위해 선택된 상태로 남아 있다. 그러나, 사용자(손(510)으로 표시됨)는 디스플레이(390)와 상호 작용하는 것으로 도시되어 있다. 이 경우, 사용자는 디스플레이(390)의 제 1 구역(550)에서 디스플레이(390)를 탭하거나 접촉하며(이 도면에서 일련의 방사 동심원 호로 표시됨), 여기서 제 1 구역(550)은 사용자가 원하는 영역에 포함, 배치 또는 위치하는 것으로 이해된다. 이에 응답하여, 애플리케이션(300)은 적어도 제 1 구역(550)을 포함하는 사각형 영역의 검색 또는 검출을 자동으로 시작할 수 있다.
상이한 구현에서, 애플리케이션(300)은 제 1 구역(550)에 대응하는 타겟 영역을 포함하는 하나 이상의 영역을 검출하고 이들 후보 영역(들)을 사용자에게 제시하도록 구성될 수 있다. 도 5b에서, 제 2 대상(322)이 아닌, 제 2 둘레(524)를 갖는 제 1 대상(312)은 이제 스캐닝을 위한 잠재적 후보(표시기(542)로 표시됨)로서 제시된다. 그러나, 다른 구현에서, 이전에 검출된 영역(스캔 후보)은 선택된 상태로 남아 있을 수 있어서, 사용자는 스캐닝을 위해 단일 이미지에서 복수의 이산 영역을 선택하고 컴파일할 수 있다.
이러한 다중 영역 선택 도구의 일 구현이 도 6a 및 도 6b의 시퀀스에 도시되어 있다. 이 예에서, 애플리케이션(300)은 능동 모드에 있고, 제 1 대상(312)은 표시기(542)에 의해 스캔 가능 후보 영역으로서 강조되었다(도 5b의 예시와 유사함). 그러나, 사용자(손(510)으로 표시됨)는 이제 디스플레이(390)와 상호 작용하는 것으로 도시되어 있다. 이 경우, 사용자는 디스플레이(390)의 제 2 구역(650)에서 디스플레이(390)를 탭하거나 접촉하며(방사 동심원 호 참조), 여기서 제 2 구역(650)은 사용자가 원하는 영역에 포함, 배치 또는 위치하는 것으로 이해된다. 이에 응답하여, 애플리케이션(300)은 적어도 제 2 구역(650)을 포함하는 사각형 영역의 검색 또는 검출을 자동으로 시작할 수 있다.
상이한 구현에서, 애플리케이션(300)은 제 2 구역(650) 내의 영역을 포함하는 하나 이상의 영역을 검출하도록 구성될 수 있다. 도 6b에서, 제 3 둘레(624)를 갖는 제 3 대상(332)이 이제 스캐닝을 위한 잠재적 후보로 제시되는 반면(표시기(642)로 표시됨), 제 1 대상(312)도 선택된 상태로 남아 있다. 다시 말해서, 스캐닝 인터페이스는 스캐닝을 위한 다수의 영역의 선택을 용이하게 하기 위해 사용자 입력을 위한 수단을 포함할 수 있다. 일부 구현에서, 이는 애플리케이션과 연관된 메뉴 또는 설정 옵션을 통해 이용가능한 다중 영역 선택 모드 또는 옵션 동안 발생할 수 있다. 다른 구현에서, 다양한 명령 또는 단축키(예를 들어, 손가락 탭과 스크린 사이의 접촉 기간, 키보드 명령, 더블 탭, 스와이프 등)가 단일 영역 선택 모드(도 5a 및 도 5b 참조)와 다중 영역 선택 모드(도 6a 및 도 6b 참조) 사이를 전환하는 명령어로서 애플리케이션에 의해 해석될 수 있다. 상이한 구현에서, 다중 영역의 선택은 선택이 발생한 순서대로 각각 스캔되도록 컴파일될 수 있으며, 사용자는 단일 이미지에서 스캔된 항목의 우선 순위를 쉽게 지정하거나 구성할 수 있다.
본 명세서에 설명된 도구와 함께, 다른 스캐닝 특징이 애플리케이션을 사용하는 동안 사용자가 계속 사용할 수 있음을 이해해야 한다. 예를 들어, 일부 구현에서, 코너를 재배치하기 위해 코너를 드래그하는 것과 같이, 선택된 사각형에 대한 조정을 허용하도록 사용자에 의해 다양한 표시기가 선택될 수 있다. 다른 예로서, 사용자는 사용자 인터페이스와의 상호 작용을 통해 하나의 코너를 선택함으로써 사용자 지정 사각형을 정의할 수 있으며, 애플리케이션은 경우에 따라 지정된 코너의 사용자 선택에 기초하여 해당 사각형을 자동으로 도출할 수 있다. 사용자는 또한 선택을 위한 영역(예를 들어, 사용자 지정 사각형)을 보다 직접적으로 식별하기 위해 사용자 인터페이스와 함께 선택 및 드래그 도구를 적용할 수 있다.
앞서 언급한 바와 같이, 일부 구현에서, 영역 후보는 사용자 입력에 의해 지정된 픽셀 좌표를 내포하거나 포함하는 다른 영역 후보와 오버랩될 수 있다. 이제 도 7을 참조하면, 이러한 시나리오의 한 예가 제시된다. 도 7에서, 이미지 스캐닝 애플리케이션("애플리케이션")(700)이 도시되며, 이는 디스플레이(790) 상에 도시된 그래픽 사용자 인터페이스(GUI)로 표시된다. 상이한 구현에서, 애플리케이션(700)은 카메라(도시되지 않음)를 통한 이미지 캡처, 스캐닝 및/또는 이미지 처리를 용이하게 하는 데 사용된다.
도 3과 관련하여 위에서 설명된 바와 같이, 사용자는 현실 세계 장면을 보거나 캡처함으로써(예를 들어, 사진 촬영), 가상으로 생성된 객체를 포함할 수 있는 이미지를 캡처하거나 봄으로써(예를 들어, 스크린 샷 또는 캡처 도구), 또는 애플리케이션에서 보기 위해 이전에 캡처되거나 저장된 이미지를 로딩함으로써, 스캔을 시작할 수 있다. 이 예에서, 사용자는 이전에 캡처된 (저장된) 제 2 이미지(748)를 보고 있다. 따라서, 이 경우에, 실질적으로 투명한 GUI가 디바이스(750)(여기서는 태블릿으로 표시됨)의 디스플레이(790) 상에 디스플레이된 이미지의 대상에 대응하는 복수의 현실 세계 객체를 포함하는 정적 이미지의 표현과 통합되거나 오버레이된다. 도 7에서, 정적 이미지는 제 1 보더 매트(720)에 의해 실질적으로 둘러싸이거나 에워싸인 사진(710)을 포함한다. 또한, 제 1 보더 매트(720) (및 제 1 보더 매트(720)에 의해 경계가 지정된 내부 공간 내에 배치되거나 배열된 사진(710))는 제 2 보더 매트(730)에 의해 실질적으로 둘러싸이거나 에워싸인다. 다시 말해서, 제 1 보더 매트(720)와 사진(710)은 제 2 보더 매트(730)에 의해 경계가 지정된 내부 공간에 배치된다. 더욱이, 프레임(740)이 제 2 보더 매트(730)를 실질적으로 둘러싸거나 에워싼다.
여기에서 식별된 각각의 객체(사진(710), 제 1 보더 매트(720), 제 2 보더 매트(730) 및 프레임(740))는 간략함을 위해 서로에 대해 실질적으로 동심 배열로 배열되지만, 본 명세서에 설명된 도구는 영역이 서로 에워싸거나 둘러싸지 않지만 동일한 픽셀 좌표의 적어도 한 세트를 오버랩하거나 공유하거나 포함하는 2 개 이상의 영역이 있는 임의의 이미지로 확장될 수 있는 장면에 적용할 수 있음을 이해해야 한다. 도 7에서, 애플리케이션(700)은 스캐닝을 위한 제 1 둘레(724)를 갖는 제 1 후보 영역을 자동으로 제시하며, 이 경우, 표시기(742)에 의해 지정된 바와 같이 사진(710)을 포함한다. 가장 작은 영역 또는 가장 중심 영역이 처음에 도 7에 제시되었지만, 다른 구현에서, 임의의 다른 영역이 이미지에 적용될 수 있는 알고리즘(들)의 결과로서 자동으로 제시될 수 있음을 이해해야 한다.
그러나, 위에서 언급한 바와 같이, 잠재적 스캔 후보로서 애플리케이션에 의해 처음에 식별된 제 1 검출된 영역 후보는 관심 영역 또는 사용자가 스캐닝을 원하는 영역에 해당하지 않을 수 있거나, 이미지 내에서 스캐닝을 원하는 다수의 영역 중 단지 하나의 영역일 수 있다. 일부 구현에서, 사용자는 영역 검출 프로세스를 미세 조정하기 위해 애플리케이션(700)에 의해 사용될 수 있는 신호를 입력할 수 있다.
도 8a를 참조하면, 일부 구현에서, 사용자는 터치 스크린 입력 메커니즘을 통해 애플리케이션(700)과 상호 작용할 수 있고, 관심 영역이 제 1 좌표 세트 또는 위치("제 1 구역")(810)를 포함한다는 것을 터치(손(850)에 근접한 동심원 호 참조)로 표시할 수 있다. 애플리케이션(700)은 이 입력을 수신하고, 이에 응답하여 쿼드 검출 프로세스를 재실행하거나 재시작할 수 있으며, 여기서 프로세스는 이제 지정된 제 1 구역(810)을 포함하는 쿼드만 검출하는 것으로 제한된다. 다시 말해서, 애플리케이션(700)은 사용자 입력에 응답하여 적어도 제 1 구역(810)을 포함하는 사각형 영역에 대한 새로운 검색을 자동으로 시작할 수 있다. 도 8b에서, 이 프로세스는 표시기(842)에 의해 지정된 바와 같이, 제 2 둘레(824)에 의해 경계가 지정된 제 2 영역 후보의 식별을 초래했음을 알 수 있다. 이 경우, 제 2 후보 영역은 프레임(740)뿐만 아니라 프레임의 내부 공간 내에 배치되거나 포함된 모든 객체(즉, 제 2 보더 매트(730), 제 1 보더 매트(720) 및 사진(710))를 포함한다.
따라서, 도 7, 도 8a 및 도 8b 사이에 도시된 예에서, 애플리케이션은 중앙 (내부) 쿼드에서 외부 (주변) 쿼드로 전환되었다. 다른 구현에서, 사용자는 관심 영역이 이러한 쿼드 사이에 있다고 결정할 수 있다. 도 9a를 참조하면, 사용자(손(850)으로 표시됨)는 다시 디스플레이(790)와 상호 작용하고 있다. 이 경우, 사용자는 디스플레이(790)의 제 2 좌표 세트("제 2 구역")(910)에서 디스플레이(790)를 탭하거나 접촉하며, 여기서 제 2 구역(910)은 사용자가 원하는 영역에 포함, 배치 또는 위치하는 것으로 이해된다. 이에 응답하여, 애플리케이션(700)은 적어도 제 2 구역(910)을 포함하는 사각형 영역에 대한 새로운 검색을 자동으로 시작할 수 있다. 도 9b에서, 이 프로세스는 표시기(942)에 의해 지정된 바와 같이, 제 3 둘레(924)에 의해 경계가 지정된 제 3 후보 영역의 식별을 초래했음을 알 수 있다. 이 경우, 제 3 후보 영역은 프레임(740)을 배제하고 대신에 제 2 보더 매트(730)뿐만 아니라 제 2 보더 매트(730)의 내부 공간 내에 배치되거나 포함된 모든 객체(즉, 제 1 보더 매트(720) 및 사진(710))만을 포함한다.
사용자가 타겟으로 하는 영역(예를 들어, 제 1 구역)을 포함하는 다수의 쿼드가 있는 경우, 애플리케이션은 실제로 제 1 구역을 포함하지만 사용자가 실제로 스캐닝을 원했던 영역에 여전히 대응하지 않는 스캐닝 후보("제 1 사각형 영역")를 검출하고 제시할 수 있음을 알 수 있다. 예를 들어, 이는 2 개 이상의 오버랩 쿼드가 있는 이미지를 스캐닝하는 동안 발생할 수 있다. 이러한 경우에, 애플리케이션은 사용자가 동일하거나 유사한 입력(들)을 반복적으로 입력하도록 구성될 수 있다. 예를 들어, 사용자는 제 1 구역의 지정에 대응하는 반복 입력을 제출할 수 있다. 동일한 입력의 제출은 제 1 구역을 또한 포함하는 적어도 제 2 (대체) 사각형 영역을 검색하고 검출하기 위한 요청으로서 애플리케이션에 의해 수신될 수 있으며, 여기서 제 2 사각형 영역은 식별된 제 1 사각형 영역과 상이하다. 이 프로세스는 반복될 수 있으며, 여기서 사용자는 제 1 구역을 포함하는 정확한 영역이 식별될 때까지 제 1 구역과 연관된 좌표를 계속 탭하거나 다른 식으로 지정한다.
상이한 구현에서, 애플리케이션(700)은 또한 "비정형" 사각형인 스캐닝을 위한 영역의 선택을 용이하게 하도록 구성될 수 있다. 예를 들어, 사용자는 초기에 외부 사각형(예를 들어, 프레임(740))을 선택하고 이 선택을 유지할 수 있는 한편, 도 6a 및 도 6b와 관련하여 위에서 논의된 바와 같이, 단일 이미지 내에서 추가 쿼드 선택(제 2 영역, 제 3 영역, 제 4 영역 등)을 추가할 수 있다. 그러나, 사용자가 초기에 제 1 영역을 선택하고 그 선택을 유지하고 그 후 제 2 영역을 선택하는 경우, 애플리케이션은 2 개의 선택된 영역의 경계 내에 포함되거나 그 사이에서 확장되는 모양을 분리하도록 구성될 수 있다. 다시 말해서, 사용자가 프레임(740)과 같은 제 1 영역과 사진(710)과 같은 제 2 영역을 선택하는 경우, 애플리케이션은 2 개의 선택을 제 1 사각형과 제 2 사각형의 경계 사이에서 확장되거나 그 사이의 공간에 둘러싸이거나 배치되는 제 3 결과 영역(이 경우, 프레임(740), 제 2 보더 매트(730), 제 1 보더 매트(720), 사진(710)은 배제)에 대한 외부 경계를 지정하는 것으로 해석하도록 구성될 수 있다. 이러한 '더블 보더' 영역은 개구되거나(apertured) 속이 빈 사각형으로 지칭될 수도 있다.
또한, 애플리케이션을 사용하는 동안 사용자가 기존의 스캐닝 특징을 계속 사용할 수 있다. 예를 들어, 일부 구현에서, 사용자에 의해 다수의 영역이 선택될 때, 코너를 드래그하여 코너를 재배치하는 것과 같이, 하나 이상의 사각형에 대한 사용자 지정을 허용하여 각각의 영역을 선택할 수 있다. 위에서 설명된 시나리오와 관련하여, 개구된 사각형이 선택되면, 사용자는 사용자 인터페이스와의 상호 작용을 통해 정점 또는 코너를 선택함으로써 내부 보더 및/또는 외부 보더를 사용자 지정하거나 조정할 수 있다. 애플리케이션은 지정된 코너의 사용자 선택에 기초하여 해당 사각형을 자동으로 도출하도록 구성될 수 있다. 사용자는 또한 선택을 위한 경계(예를 들어, 사용자 지정 개구된 사각형)를 보다 직접적으로 식별하기 위해 사용자 인터페이스와 함께 선택 및 드래그 도구를 적용할 수 있다.
상이한 구현에서, 개시된 시스템의 구현을 통해 다른 도구가 제공될 수 있다. 다음 프로세스는 병합되거나 오버랩되는 영역의 클러스터를 포함하는 이미지에 유용할 수 있다. 대안적인 스캐닝 애플리케이션 구현의 예가 도 10a 내지 도 10g에 제시된다. 도 10a에서, 간략화된 디스플레이의 예시가 도시되며, 다수의 후보 영역이 식별된다. 명확성을 위해, 몇 개의 영역만 도시되며, 각각은 서로 직접 인접하거나 서로 병합/인접하여 배열된다. 구체적으로, 도 10a에서, 제 1 영역(영역 A), 제 2 영역(영역 B) 및 제 3 영역(영역 C)이 참조 목적으로 라벨링된다. 사용자는 (분리된 영역으로서) 영역 A, 영역 B 또는 영역 C 중 어느 것도 아닌 쿼드를 원할 수 있지만, 오히려 이들 영역 중 2 개 이상을 망라하거나 포함하는 쿼드 영역을 원할 수 있음을 알 수 있다. 예를 들어, 제 4 영역(영역 D)은 영역 A와 영역 B에 걸쳐 확장되는 것으로 이해될 수 있고, 제 5 영역(영역 E)은 영역 B와 영역 C에 걸쳐 확장되는 것으로 이해될 수 있으며, 제 6 영역(영역 F)은 영역 A, 영역 B 및 영역 C에 걸쳐 확장되는 것으로 이해될 수 있다.
도 10b에서, 사용자(손으로 표시됨)(1000)는 영역 A에 위치한 제 1 구역과 연관된 제 1 입력(1010)을 제공하는 것으로 도시되어 있다. 제 1 입력(1010)을 수신한 것에 응답하여, 애플리케이션은 잠재적 영역 후보로서 영역 A를 자동으로 검출하고 제시하도록 구성될 수 있다(영역 A의 둘레와 연관된 제 1 표시기(1012) 참조). 그러나, 일부 경우에, 사용자(1000)는 실제로 더 큰 영역 D의 스캔을 요청하고자 할 수 있다. 이러한 시나리오에서, 영역 A를 해제 또는 선택해제하고/하거나 원하는 쿼드를 트리거 할 다른 지점(구역)을 찾으려고 시도하는 대신, 사용자는 단순히 영역 D의 제 2 구역(여기서는 또한 영역 B에 위치함)과 연관된 제 2 입력(1020)(도 10c 참조)을 제공할 수 있다. 이러한 제 2 입력(1020)을 수신한 것에 응답하여, 애플리케이션은 영역 D를 자동으로 검출하고 제시하도록 구성될 수 있다(영역 D의 둘레와 연관된 제 2 표시기(1022) 참조). 다시 말해서, 일부 구현에서, 애플리케이션은 2 개 이상의 상이한 입력의 시퀀스를 수신하고, 그 입력에 기초하여 스캐닝을 위한 영역을 검출하도록 구성된다. 이미지의 적어도 일부에 직접 인접하거나 공유하는 다수의 후보 영역을 포함하는 이미지에 대한 입력 시퀀스를 수신한 것에 응답하여, 애플리케이션은 사용자에 의해 지정된 각각의 하위 영역을 내포하거나 망라하거나 포함하는 결과적으로 더 큰 쿼드를 검출하고 제시하도록 구성될 수 있다.
사용자가 여러 개의 '하부 영역' 또는 쿼드 세그먼트를 포함하는 영역을 원하는 다른 예가 도 10d와 관련하여 도시된다. 하위 영역의 수가 많을수록 원하는 쿼드를 빠르고 효율적으로 타겟팅 및/또는 선택하는 어려움이 증가될 수 있다. 도 10d에 도시된 바와 같이, 사용자(1000)는 제 3 구역(여기서는 영역 C에 위치함)과 연관된 제 3 입력(1030)을 제공한다. 이러한 제 3 입력(1030)을 수신한 것에 응답하여, 애플리케이션은 영역 F를 자동으로 검출하고 제시하도록 구성될 수 있다(영역 F의 둘레와 연관된 제 3 표시기(1032) 참조). 따라서, 이 애플리케이션은 이미지 또는 쿼드에 다수의 하위 쿼드가 포함된 경우에도, 사용자가 원하는 스캐닝 영역을 선택하는 효율적이고 정확한 수단을 사용자에게 제공할 수 있다.
상이한 구현에서, 사용자는 시퀀스를 잘못 입력하거나 스캐닝을 위해 선택된 영역에 대한 마음을 바꿀 수 있다. 본 명세서에 설명된 프로세스는 또한 사용자가 스캐닝을 위해 선택된 영역을 '실행 취소(undo)'하거나 수정할 수 있도록 구성될 수 있다. 도 10e에서, 사용자(1000)는 도 10d의 큰 영역 F로부터 제 1 영역(영역 A)의 제거 또는 배제를 원한다. 이 경우, 사용자(1000)는 영역 A에 위치한 임의의 영역 또는 부분(제 1 구역 포함)과 연관된 제 4 입력(1040)을 제출하거나 제공할 수 있다. 이 입력은 단순히 단일 탭을 포함할 수 있으며, 이는 이전에 영역을 선택하기 위해 제공된 입력과 유사하다. 따라서, 영역이 이전에 선택되었다가 다시 선택되거나 강조된 영역과 연관된 입력이 수신되면(제 4 입력(1040)), 애플리케이션은 영역 E의 둘레와 연관된 제 4 표시기(1042)로 표시되는 바와 같이 다른 영역의 선택을 유지하면서 지정된 영역을 자동으로 검출하고 제거하도록 구성될 수 있다. 다시 말해서, 일부 구현에서, 애플리케이션은 2 개 이상의 입력 시퀀스를 수신하도록 구성된다. 이미지의 적어도 일부에 직접 인접하거나 공유하는 다수의 후보 영역을 포함하는 이미지에 대한 특정 입력 시퀀스를 수신한 것에 응답하여, 애플리케이션은 이전에 선택된 영역에 대한 입력을 검출하고 현재 스캐닝 선택에서 해당 영역을 제거하거나 삭제하도록 구성될 수 있다.
유사하게, 사용자는 통합되거나 연속적인 큰 쿼드 영역의 일부로 현재 포함된 스캐닝을 위한 영역을 분리하거나 타겟팅하기를 원할 수 있다. 도 10f에서, 사용자(1000)는 영역 C에 위치한 영역 또는 부분(제 3 구역 포함)과 연관된 제 5 입력(1050)을 제출하는 것으로 도시되어 있다. 이 입력은 단순히 단일 탭을 포함할 수 있으며, 이는 이전에 영역을 선택하기 위해 제공된 입력과 유사하다. 이 예에서, 애플리케이션은 제 5 입력(1050)을 수신하고, 이에 응답하여 제 5 입력(1050)에 대응하는 영역을 자동으로 검출하고 제거하면서, 또한 영역 B의 둘레와 연관된 제 5 표시기(1052)로 표시되는 바와 같이 임의의 나머지 영역(들)의 선택을 유지한다. 대안적으로, 도 10e에 이어, 도 10g에서 제 6 표시기(1062)로 도시된 바와 같이, 사용자가 영역 B가 아닌 영역 C를 분리하기를 원한다면, 사용자는 영역 B의 임의의 부분과 연관된 제 6 입력(1060)을 제출할 수 있다.
상이한 구현에서, 이러한 유형의 '선택해제' 모드는 애플리케이션에서 제공하는 메뉴 옵션을 통해 사용할 수 있지만, 이 모드는 또한 상이한 입력 유형에 의해 트리거될 수도 있음을 이해해야 한다. 일부 경우에, 사용자가 (도 1 내지 도 10과 관련하여 본 명세서에 설명된 바와 같이) 선택된 쿼드를 선택해제하기를 원한다면, 사용자는 - 예로서 - 이전에 선택된 쿼드를 간단히 더블 탭(연속적으로 두 번 빠르게 탭)할 수 있으며, 애플리케이션은 해당 영역을 선택에서 자동으로 제거(실행 취소)하도록 구성될 수 있다. 선택된 쿼드를 최소 시간 동안 손가락으로 누르거나 마우스 클릭하는 것을 포함한 기타 입력 유형, 또는 기타 유형의 클릭, 키보드 단축키 또는 음성 명령이 또한 애플리케이션 설정을 통해 사용자에 의해 사용되거나 사용자 지정 구성되어 영역을 선택/선택해제할 수 있다.
도 11a 및 도 11b에서, 디스플레이 다이어그램은 스캐닝 애플리케이션을 위한 사용자 인터페이스의 다른 구현을 도시한다. 도 11a에서, 디스플레이(1190)와 상호 작용하는 손(1110)으로 표시되는 바와 같이, 제 1 사용자 입력은 이미지의 제 1 영역이 선택되게 한다. 이 경우, 사용자는 디스플레이(1190)의 제 1 구역(1150)에서 디스플레이(1190)를 탭하거나 접촉(또는 다른 유형의 입력을 제공)했으며(동심원 호로 표시됨), 여기서 사용자 입력은 제 1 구역(1150)이 사용자가 원하는 영역에 포함, 배치 또는 위치한다는 것을 나타내는 것으로 이해된다. 이에 응답하여, 애플리케이션은 적어도 제 1 구역(1150)을 포함하는 사각형 영역의 검색 또는 검출을 자동으로 시작할 수 있다. 도 11a에서, 본 명세서에서 제 1 영역(1102)으로 지칭되는 제안된 타겟 영역은 이전에 논의된 바와 같이 표시기로 제시된다.
다음으로, 도 11b를 참조하면, 사용자는 제 2 구역(1152)에서 디스플레이(1190)를 탭하거나 접촉하여, 도 11a의 제 1 영역(1102)이 아닌 제 2 영역(1104)이 이제 스캐닝을 위한 잠재적 후보로서 제시된다(표시기로 표시됨). 도 11a의 제 1 영역(1102) 및 도 11b의 제 2 영역(1104) 각각이 오버랩 방식으로 배열되어 있음을 알 수 있다. 이 경우, 두 영역은 공통 영역(1180)을 공유하고, 각각의 영역은 두 영역 간에 공유되지 않거나 공통되지 않는 디스플레이 영역의 일부도 포함한다. 따라서, 원하는 영역을 포함하는 디스플레이의 일부를 사용자가 간단히 접촉하거나 클릭할 수 있게 함으로써, 영역이 오버랩되거나 공유된 특징, 영역 및/또는 경계를 포함하는 경우에도, 사용자는 원하는 영역을 빠르게 나타낼 수 있다.
명확성을 위해, 도 12는 사용자 입력에 기초하여 스캐닝 영역을 선택하기 위한 프로세스의 일 구현을 도시한다. 이 예에서, 제 1 스테이지(1210)는 일반적으로 디바이스에 의해 액세스되거나 실행되는 스캐닝 애플리케이션을 통해, 디바이스의 디스플레이 상에 이미지의 표현을 포함한다. 이 이미지와 함께, 제 2 스테이지(1220)에서, 애플리케이션은 이미지의 특정 영역, 부분 또는 구역과 연관된 사용자 입력을 수신하고, 타겟 구역을 지정하는 데 사용될 수 있다. 이 입력은 일반적으로 애플리케이션에서 제공하고 이미지와 연관된 사용자 인터페이스를 통해 제출될 수 있다. 제 3 스테이지(1230) 동안, 애플리케이션은 잠재적 쿼드 후보로 지칭되는 이 타겟 영역을 포함하거나, 경계를 이루거나, 내포하거나, 에워싸거나 망라하는 이용가능한 임의의 스캔 가능 쿼드가 있는지 여부를 결정할 수 있다. 잠재적 쿼드 후보가 없는 경우(제 1 서브 스테이지(1232)), 애플리케이션은 추가 입력을 기다리거나 인터페이스를 통해 대체 그래픽 요소 활성화 옵션 또는 알림을 제시하도록 구성될 수 있다.
잠재적 쿼드 후보가 있는 경우(제 2 서브 스테이지(1234)), 제 4 스테이지(1240)에서, 애플리케이션은 이러한 하나 이상의 후보를 검출할 것이다. 타겟 구역을 포함하는 다수의 쿼드가 검출되면(제 3 서브 스테이지(1242)), 애플리케이션은 어떤 쿼드 후보가 의도된 스캐닝 영역을 나타낼 가능성이 가장 높은지 결정하고 식별할 수 있는 알고리즘을 통해 후보를 처리할 수 있고(제 5 스테이지(1250) 참조), 일반적으로 식별된 쿼드와 연관된 영역 내부에 또는 그 주변에 시각적 표시기의 중첩을 통해, 디스플레이 상에 쿼드를 제시할 수 있다(제 6 스테이지(1252) 참조). 그러나, 하나의 후보만 검출되는 경우(제 4 서브 스테이지(1244)), 애플리케이션은 식별된 쿼드와 연관된 영역 내부에 또는 그 주변에 시각적 표시기의 중첩을 통해, 거의 즉시 쿼드를 식별하여 디스플레이 상에 제시할 수 있다(제 6 스테이지(1252) 참조).
일부 구현에서, 제 7 스테이지(1260)에 의해 도시된 바와 같이, 애플리케이션은 또한 제시된 쿼드가 실제로 원하는 스캐닝 영역이었는지 여부를 확인할 수 있는 추가 사용자 입력을 수신하도록 선택적으로 구성될 수 있다. 사용자 입력이 정확한 검출에 해당하는 경우(제 5 서브 스테이지(1262)), 애플리케이션은 스캐닝을 위해 그 쿼드를 자동으로 선택하거나(제 8 스테이지(1290) 참조), 이미지에서 스캐닝을 위해 선택된 쿼드 영역 그룹에 그 쿼드를 추가할 수 있다. 대신에 입력이 바람직하지 않은 영역 표현에 해당하는 경우(제 6 서브 스테이지(1264)), 제 8 스테이지(1266)에서, 애플리케이션은 선택적으로 시각적 표시기를 제거함으로써 응답할 수 있다.
또한, 제 8 스테이지(1270)에서, 애플리케이션은 타겟 구역을 포함하는 추가의 대체 쿼드 후보가 있었는지 여부를 확인할 수 있다. 이용가능한 다른 후보가 없는 경우(제 7 서브 스테이지(1272)), 애플리케이션은 추가 입력을 기다리거나 인터페이스를 통해 대체 그래픽 요소 활성화 옵션 또는 알림을 제시하도록 구성될 수 있다. 이용가능한 다른 후보가 있는 경우(제 8 서브 스테이지(1274)), 제 9 스테이지(1280)에 도시된 바와 같이, 애플리케이션은 후보가 의도된 쿼드를 나타낼 가능성의 순서대로 대체 쿼드를 제공할 수 있다. 애플리케이션은 본 명세서에 설명된 바와 같이 제시된 쿼드 후보의 정확도에 관한 입력을 다시 찾거나 수신할 수 있다(제 7 스테이지(1260)). 일부 다른 구현에서, 제 6 스테이지(1252)에서의 쿼드의 표현 이후 이미지의 일부 또는 구역과 연관된 임의의 다른 사용자 입력의 제출은 제시된 쿼드가 사용자가 스캐닝을 의도한 영역이 아니라는 표시로 애플리케이션에 의해 해석될 수 있고, 프로세스의 재시작을 트리거하고/하거나 제 8 스테이지(1270)로 직접 이동할 수 있음을 이해해야 한다.
도 13은 전자 콘텐츠를 보는 동안 잠재적 스캐닝 영역의 검출 및 선택을 관리하는 방법(1300)의 구현을 도시하는 흐름도이다. 도 13에서, 제 1 단계(1310)는 예를 들어 이미지 스캐닝 애플리케이션을 통해 사용자 디바이스의 디스플레이 상에 이미지를 제시하는 것을 포함한다. 제 2 단계(1320)는 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 것을 포함한다. 제 3 단계(1330)는 제 1 입력을 수신한 것에 응답하여, 적어도 제 1 구역을 포함하는 제 1 영역을 자동으로 검출하는 것을 포함하며, 제 1 영역은 제 1 둘레에 의해 경계가 지정된다. 제 4 단계(1340)는 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 제 1 영역을 스캐닝을 위한 잠재적 영역으로서 사용자에게 제시하는 것을 포함한다.
다른 구현에서, 방법은 추가 또는 대안 단계를 포함할 수 있다. 예를 들어, 방법은 이미지의 제 2 구역과 연관된 제 2 입력을 수신하는 단계를 더 포함할 수 있으며, 여기서 제 2 구역은 제 1 구역과 상이하며, 제 2 입력에 응답하여, 제 1 영역과는 상이하고 적어도 제 2 구역을 포함하는 제 2 영역을 자동으로 검출하는 단계를 더 포함할 수 있다. 다른 예로서, 방법은 이미지의 제 1 구역과 연관된 제 2 입력을 수신하는 단계, 및 제 2 입력에 응답하여, 제 1 영역과는 상이하고 적어도 제 1 구역을 포함하는 제 2 영역을 자동으로 검출하는 단계를 포함할 수 있다.
다른 예에서, 방법은 제 1 둘레와 연관된 시각적 표시기의 디스플레이에 의한 제 1 영역의 지정을 포함할 수 있다. 일부 구현에서, 방법은 시각적 표시기와 연관된 제 2 입력을 수신하는 단계, 및 제 2 입력에 응답하여 스캐닝을 위한 제 1 영역을 자동으로 선택하는 단계를 포함한다. 일부 경우에, 방법은 시각적 표시기와 연관된 제 2 입력을 수신하는 단계, 및 제 2 입력에 응답하여 제 1 둘레의 크기를 자동으로 조정하는 단계를 더 포함한다.
또한, 일부 구현에서, 방법은 제 1 입력을 수신한 것에 응답하여, 스캐닝을 위해 제 1 영역을 선택하는 단계 및/또는 제 2 입력을 수신한 것에 응답하여, 스캐닝을 위해 제 2 영역을 선택하는 단계를 포함할 수 있다. 다른 구현에서, 방법은 제 1 입력을 수신한 것에 응답하여, 스캐닝을 위해 제 1 영역을 선택하는 단계 및/또는 제 2 입력을 수신한 것에 응답하여, 스캐닝을 위해 제 1 영역을 선택해제하는 단계를 포함할 수 있다.
일부 구현에서, 제 2 영역은 제 1 구역 및 제 2 구역 둘 다에 대한 좌표를 포함, 둘러싸고, 내포 및/또는 망라할 수 있다. 다른 구현에서, 제 2 영역은 제 1 구역에 대응하는 이미지의 좌표를 배제한다. 또 다른 구현에서, 제 1 영역은 제 2 구역을 배제한다.
다른 예로서, 방법은 이미지의 제 1 구역과 연관된 제 3 입력을 수신하는 단계, 및 제 3 입력에 응답하여, 제 1 영역 및 제 2 영역 둘 다와 상이하고 적어도 제 1 구역을 포함하는 제 3 영역을 자동으로 검출하는 단계를 포함할 수 있다. 또한, 제 2 영역이 제 2 둘레에 의해 경계가 지정되는 경우, 방법은 제 2 입력을 수신한 것에 응답하여, 제 1 둘레와 제 2 둘레 사이에서 확장되는 개구된 영역(사각형 또는 다른 모양 '도넛' 또는 토러스와 유사함)을 스캐닝을 위해 자동으로 선택하는 단계를 더 포함할 수 있다.
상이한 구현에서, 방법은 다를 수 있음을 이해해야 한다. 예를 들어, 도 10a 내지 도 10g와 관련하여 또한 도시되며, 이 애플리케이션의 범위 내에 있는 또 다른 방법은 이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시하는 제 1 단계와 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 제 2 단계를 포함한다. 제 3 단계는 제 1 입력을 수신한 것에 응답하여, 적어도 제 1 구역을 포함하는 제 1 영역을 자동으로 검출하고 디스플레이 상에 자동으로 제시하는 단계를 포함한다. 제 4 단계에서, 방법은 이미지의 제 2 구역과 연관된 제 2 입력을 수신하는 단계를 포함하며, 여기서 제 2 구역은 이미지의 제 1 영역 외측에 배치, 위치 지정 또는 위치된다. 또한, 방법은 제 2 입력을 수신한 것에 응답하여, 적어도 제 1 영역을 포함하는 제 2 영역을 자동으로 검출하고 디스플레이 상에 자동으로 제시하는 단계를 포함한다.
일부 구현에서, 방법은 또한 이미지의 제 3 구역과 연관된 제 3 입력을 수신하는 단계를 포함하며, 여기서 제 3 구역은 이미지의 제 2 영역 외측에 배치, 위치 지정 또는 위치되며, 제 3 입력을 수신한 것에 응답하여, 적어도 제 2 영역을 포함하는 제 3 영역을 자동으로 검출하고 디스플레이 상에 자동으로 제시하는 단계를 포함한다. 또한, 일부 경우에, 방법은 이미지의 제 1 구역과 연관된 제 4 입력을 수신하는 단계, 및 제 4 입력을 수신한 것에 응답하여, 제 2 구역 및 제 3 구역을 포함하고 제 1 구역을 배제하는 제 4 영역을 자동으로 검출하고 디스플레이 상에 자동으로 제시하는 단계를 포함한다. 대안적으로, 방법은 이미지의 제 3 구역과 연관된 제 4 입력을 수신하는 단계, 및 제 4 입력을 수신한 것에 응답하여, 제 1 구역 및 제 2 구역을 포함하고 제 3 구역을 배제하는 제 4 구역을 자동으로 검출하고 디스플레이 상에 자동으로 제시하는 단계를 포함할 수 있다.
따라서, 개시된 시스템 및 방법을 사용하면 사용자가 이미지에서 한 지점을 선택하기 위해 쉽게 탭할 수 있고 이에 응답하여 내부에 해당 지점을 갖는 것으로 식별되는 하나 이상의 쿼드 후보를 제공할 수 있다. 사용자가 연속적으로 여러 위치를 탭하면, 연속적으로 여러 개의 쿼드가 제시될 것이다. 실시간 이미지 캡처 및 저장된 이미지 둘 다에서, 스캐닝을 위해 이미지에서 하나 이상의 영역을 의도적으로 선택하는 능력은 사용자에게 광범위한 이점을 제공한다. 이 특징은 다양한 항목을 스캔하는 데 필요한 시간을 크게 단축한다. 원하는 영역을 획득하기 위해 이미지를 다시 캡처하거나 수정하려고 시도하는 대신, 사용자는 원하는 영역에 존재하는 타겟 장소를 나타내는 입력을 제출할 수 있고, 그러면 애플리케이션은 타겟 장소를 포함하는 영역(들)을 자동으로 검출할 수 있다. 또한, 사용자에게 단일 이미지 내에서 스캐닝을 위해 다수의 이산 영역을 선택할 수 있는 간단한 수단을 제공함으로써, 스캔을 획득하기 위해 다수의 이미지를 수집하거나 저장할 필요가 없으며, 프로세스는 훨씬 더 짧은 기간 동안 발생할 것이다.
도 1 내지 도 12와 관련하여 설명된 시스템, 디바이스 및 기술의 상세한 예는 본 개시 및 그 이점의 예시를 위해 본 명세서에 제시되었다. 이러한 사용 예는 본 개시의 논리적 프로세스 구현에 대한 제한으로 해석되어서는 안 되며, 본 명세서에 설명된 사용자 인터페이스 방법의 변형이 본 개시의 범위를 벗어나는 것으로 간주되어서도 안 된다. 일부 구현에서, 도 1 내지 도 13에 설명된 다양한 특징은 로직, 컴포넌트, 유닛 및/또는 메커니즘으로도 지칭되고/되거나 이를 포함할 수 있는 각각의 모듈에서 구현된다. 모듈은 소프트웨어 모듈(예를 들어, 기계 판독가능 매체에 구현된 코드) 또는 하드웨어 모듈을 구성할 수 있다.
일부 예에서, 하드웨어 모듈은 기계적으로, 전자적으로 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 구성된 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 필드 프로그램 가능 게이트 어레이(field-programmable gate array; FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit; ASIC)와 같은 특수 목적 프로세서를 포함할 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 일시적으로 구성되는 프로그램 가능 로직 또는 회로를 포함할 수 있으며, 이러한 구성을 위한 기계 판독가능 매체 데이터 및/또는 명령어의 일부를 포함할 수 있다. 예를 들어, 하드웨어 모듈은 소프트웨어 명령어 세트를 실행하도록 구성된 프로그램 가능 프로세서 내에 포함된 소프트웨어를 포함할 수 있다. 하드웨어 모듈을 기계적으로, 전용 및 영구적으로 구성된 회로로 또는 임시로 구성된 회로(예를 들어, 소프트웨어에 의해 구성됨)로 구현하는 결정은 비용, 시간, 지원 및 엔지니어링 고려 사항에 의해 결정될 수 있음을 알 수 있을 것이다.
따라서, "하드웨어 모듈"이라는 문구는 특정 동작을 수행할 수 있는 유형의 엔티티를 포함하는 것으로 이해되어야 하며, 특정 물리적 방식으로 구성 또는 배열될 수 있고, 특정 방식으로 동작하도록 또는 본 명세서에 설명된 특정 동작을 수행하도록 물리적으로 구성되고, 영구적으로 구성(예를 들어, 하드 와이어)되고/되거나 일시적으로 구성(예를 들어, 프로그래밍)되는 엔티티일 수 있다. 본 명세서에서 사용되는 바와 같이, "하드웨어 구현 모듈"은 하드웨어 모듈을 나타낸다. 하드웨어 모듈이 일시적으로 구성(예를 들어, 프로그래밍)되는 예를 고려하면, 각각의 하드웨어 모듈을 한 번에 한 인스턴스에 구성하거나 인스턴스화할 필요가 없다. 예를 들어, 하드웨어 모듈이 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 프로그램 가능 프로세서를 포함하는 경우, 프로그램 가능 프로세서는 서로 다른 시간에 서로 다른 특수 목적 프로세서(예를 들어, 서로 다른 하드웨어 모듈 포함)로 구성될 수 있다. 따라서, 소프트웨어는 예를 들어 하나의 시간에 특정 하드웨어 모듈을 구성하고 상이한 시간에 상이한 하드웨어 모듈을 구성하도록 특정 프로세서 또는 프로세서들을 구성할 수 있다. 하나 이상의 프로세서를 사용하여 구현된 하드웨어 모듈은 "프로세서 구현" 또는 "컴퓨터 구현"으로 지칭될 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에 정보를 제공하고 이로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신적으로 결합된 것으로 간주될 수 있다. 다수의 하드웨어 모듈이 동시에 존재하는 경우, 2 개 이상의 하드웨어 모듈 간에 또는 사이에 신호 전송을 통해 (예를 들어, 적절한 회로 및 버스를 통해) 통신이 달성될 수 있다. 다수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 구현에서, 이러한 하드웨어 모듈 간의 통신은 예를 들어 다수의 하드웨어 모듈이 액세스할 수 있는 메모리 디바이스에서 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행하고 메모리 디바이스에 출력을 저장할 수 있고, 다른 하드웨어 모듈은 저장된 출력을 검색하고 처리하기 위해 메모리 디바이스에 액세스할 수 있다.
일부 예에서, 방법의 동작 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 모듈에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어"(software as a service; SaaS)로서 관련 동작의 성능을 지원하도록 동작할 수 있다. 예를 들어, 동작 중 적어도 일부는 다수의 컴퓨터(예로서, 프로세서를 포함하는 기계)에 의해 및/또는 그 사이에서 수행될 수 있으며, 이들 동작은 네트워크(예를 들어, 인터넷)를 통해 및/또는 하나 이상의 소프트웨어 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(application program interface; API))를 통해 액세스 가능하다. 특정 동작의 성능은 프로세서 간에 분산될 수 있으며, 이들은 단일 기계 내에 있을뿐만 아니라 여러 기계에 걸쳐 배포될 수 있다. 프로세서 또는 프로세서 구현 모듈은 단일 지리적 위치(예를 들어, 가정 또는 사무실 환경 또는 서버 팜 내)에 위치하거나 다수의 지리적 위치에 걸쳐 분산될 수 있다.
도 14는 예시적인 소프트웨어 아키텍처(1402)를 도시하는 블록도(1400)이고, 이들의 다양한 부분은 본 명세서에 설명된 다양한 하드웨어 아키텍처와 함께 사용될 수 있으며, 위에서 설명된 특징 중 임의의 것을 구현할 수 있다. 도 14는 소프트웨어 아키텍처의 비 제한적인 예이며, 본 명세서에 설명된 기능을 용이하게 하기 위해 많은 다른 아키텍처가 구현될 수 있다는 것이 이해될 것이다. 소프트웨어 아키텍처(1402)는 무엇보다도 문서 스토리지, 프로세서, 메모리, 및 입출력(I/O) 컴포넌트를 포함하는 도 1a의 디바이스(150)와 같은 하드웨어 상에서 실행될 수 있다. 대표적인 하드웨어 계층(1404)이 도시되고, 예를 들어, 도 1의 디바이스(150)를 나타낼 수 있다. 대표적인 하드웨어 계층(1404)은 처리 유닛(1406) 및 관련 실행 가능 명령어(1408)를 포함한다. 실행 가능 명령어(1408)는 본 명세서에 설명된 방법, 모듈 등의 구현을 포함하는 소프트웨어 아키텍처(1402)의 실행 가능 명령어를 나타낸다. 하드웨어 계층(1404)은 또한 실행 가능 명령어(1408) 및 수반되는 데이터를 포함하는 메모리/스토리지(1410)를 포함한다. 하드웨어 계층(1404)은 또한 다른 하드웨어 모듈(1412)을 포함할 수 있다. 처리 유닛(1406)에 의해 보유된 명령어(1408)는 메모리/스토리지(1410)에 의해 보유된 명령어(1408)의 일부일 수 있다.
예시적인 소프트웨어 아키텍처(1402)는 각각 다양한 기능을 제공하는 계층으로 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(1402)는 운영 체제(OS)(1414), 라이브러리(1416), 프레임워크(1418), 애플리케이션(1420) 및 표현 계층(1444)과 같은 계층 및 컴포넌트를 포함할 수 있다. 동작 중에, 애플리케이션(1420) 및/또는 그 계층 내의 다른 컴포넌트는 다른 계층으로 API 호출(1424)을 작동시키고 대응하는 결과(1426)를 수신할 수 있다. 도시된 계층은 본질적으로 대표적이며, 다른 소프트웨어 아키텍처는 추가 또는 상이한 계층을 포함할 수 있다. 예를 들어, 일부 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어(1418)를 제공하지 않을 수 있다.
OS(1414)는 하드웨어 자원을 관리하고 공통 서비스를 제공할 수 있다. OS(1414)는, 예를 들어, 커널(1428), 서비스(1430) 및 드라이버(1432)를 포함할 수 있다. 커널(1428)은 하드웨어 계층(1404)과 다른 소프트웨어 계층 사이의 추상화 계층으로서 작용할 수 있다. 예를 들어, 커널(1428)은 메모리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(1430)는 다른 소프트웨어 계층에 대해 다른 공통 서비스를 제공할 수 있다. 드라이버(1432)는 기본 하드웨어 계층(1404)의 제어 또는 인터페이스를 담당할 수 있다. 예를 들어, 드라이버(1432)는 하드웨어 및/또는 소프트웨어 구성에 따라, 디스플레이 드라이버, 카메라 드라이버, 메모리/스토리지 드라이버, 주변 디바이스 드라이버(예를 들어, 범용 직렬 버스(USB)를 통해), 네트워크 및/또는 무선 통신 드라이버, 오디오 드라이버 등을 포함할 수 있다.
라이브러리(1416)는 애플리케이션(1420) 및/또는 다른 컴포넌트 및/또는 계층에 의해 사용될 수 있는 공통 인프라를 제공할 수 있다. 라이브러리(1416)는 일반적으로 OS(1414)와 직접 상호 작용하기보다는, 작업을 수행하기 위해 다른 소프트웨어 모듈에 의해 사용되는 기능을 제공한다. 라이브러리(1416)는 메모리 할당, 문자열 조작, 파일 동작과 같은 기능을 제공할 수 있는 시스템 라이브러리(1434)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(1416)는 미디어 라이브러리(예를 들어, 이미지, 사운드 및/또는 비디오 데이터 형식의 표현 및 조작 지원), 그래픽 라이브러리(예를 들어, 디스플레이 상에 2D 및 3D 그래픽을 렌더링하기 위한 OpenGL 라이브러리), 데이터베이스 라이브러리(예를 들어, SQLite 또는 기타 관계형 데이터베이스 기능) 및 웹 라이브러리(예를 들어, 웹 브라우징 기능을 제공할 수 있는 WebKit)와 같은 API 라이브러리(1436)를 포함할 수 있다. 라이브러리(1416)는 또한 애플리케이션(1420) 및 다른 소프트웨어 모듈에 많은 기능을 제공하기 위해 매우 다양한 기타 라이브러리(1438)를 포함할 수 있다.
프레임워크(1418)(때로는 미들웨어라고도 함)는 애플리케이션(1420) 및/또는 다른 소프트웨어 모듈에 의해 사용될 수 있는 높은 수준의 공통 인프라를 제공한다. 예를 들어, 프레임워크(1418)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 높은 수준의 자원 관리 또는 높은 수준의 위치 서비스를 제공할 수 있다. 프레임워크(1418)는 애플리케이션(1420) 및/또는 다른 소프트웨어 모듈에 광범위한 다른 API를 제공할 수 있다.
애플리케이션(1420)은 빌트인 애플리케이션(built-in applications)(1440) 및/또는 서드 파티 애플리케이션(1442)을 포함한다. 빌트인 애플리케이션(1440)의 예는 연락처 애플리케이션, 브라우저 애플리케이션, 위치 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 및/또는 게임 애플리케이션을 포함할 수 있지만 이에 제한되지 않는다. 서드 파티 애플리케이션(1442)은 벤더의 특정 플랫폼이 아닌 엔티티에 의해 개발된 임의의 애플리케이션을 포함할 수 있다. 애플리케이션(1420)은 사용자와 상호 작용하기 위한 사용자 인터페이스를 생성하기 위해 OS(1414), 라이브러리(1416), 프레임워크(1418) 및 표현 계층(1444)을 통해 이용가능한 기능을 사용할 수 있다.
일부 소프트웨어 아키텍처는 가상 기계(1448)로 도시된 바와 같이 가상 기계를 사용한다. 가상 기계(1448)는 애플리케이션/모듈이 마치 하드웨어 기계(예를 들어, 도 15의 기계(1500))에서 실행되는 것처럼 애플리케이션/모듈을 실행할 수 있는 실행 환경을 제공한다. 가상 기계(1448)는 호스트 OS(예를 들어, OS(1414)) 또는 하이퍼바이저에 의해 호스팅될 수 있으며, 가상 기계(1448)의 동작 및 호스트 운영 체제와의 상호 운용을 관리하는 가상 기계 모니터(1446)를 가질 수 있다. 가상 기계 외부의 소프트웨어 아키텍처(1402)와 상이할 수 있고, OS(1450), 라이브러리(1452), 프레임워크(1454), 애플리케이션(1456) 및/또는 표현 계층(1458)과 같은 소프트웨어 아키텍처가 가상 기계(1448) 내에서 실행된다.
도 15는 기계 판독가능 매체(예를 들어, 기계 판독가능 저장 매체)로부터 명령어를 판독하고 본 명세서에 설명된 임의의 특징을 수행하도록 구성된 예시적인 기계(1500)의 컴포넌트를 도시하는 블록도이다. 예시적인 기계(1500)는 컴퓨터 시스템의 형태이며, 그 안에서 기계(1500)가 본 명세서에 설명된 특징 중 임의의 것을 수행하게 하기 위한 명령어(1516)(예를 들어, 소프트웨어 컴포넌트의 형태)가 실행될 수 있다. 이와 같이, 명령어(1516)는 본 명세서에 설명된 모듈 또는 컴포넌트를 구현하는 데 사용될 수 있다. 명령어(1516)는 프로그래밍되지 않은 및/또는 구성되지 않은 기계(1500)가 설명된 특징을 수행하도록 구성된 특정 기계로서 동작하게 한다. 기계(1500)는 독립형 디바이스로 동작하도록 구성될 수 있거나 다른 기계에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크 배포에서, 기계(1500)는 서버-클라이언트 네트워크 환경에서 서버 기계 또는 클라이언트 기계로서, 또는 피어-투-피어 또는 분산 네트워크 환경에서 노드로서 동작할 수 있다. 기계(1500)는 예를 들어 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(set-top box; STB), 게임 및/또는 엔터테인먼트 시스템, 스마트 폰, 모바일 디바이스, 웨어러블 디바이스(예를 들어, 스마트 시계) 및 사물 인터넷(Internet of Thing; IoT) 디바이스로 구현될 수 있다. 또한, 단일 기계(1500)만이 도시되어 있지만, "기계"라는 용어는 개별적으로 또는 공동으로 명령어(1516)를 실행하는 기계들의 집합체를 포함한다.
기계(1500)는 프로세서(1510), 메모리(1530) 및 I/O 컴포넌트(1550)를 포함할 수 있으며, 이는 예를 들어 버스(1502)를 통해 통신적으로 결합될 수 있다. 버스(1502)는 다양한 버스 기술 및 프로토콜을 통해 기계(1500)의 다양한 요소를 결합하는 다수의 버스를 포함할 수 있다. 일 예에서, 프로세서(1510)(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), ASIC 또는 이들의 적절한 조합을 포함함)는 명령어(1516)를 실행하고 데이터를 처리할 수 있는 하나 이상의 프로세서(1512a 내지 1512n)를 포함할 수 있다. 일부 예에서, 하나 이상의 프로세서(1510)는 하나 이상의 다른 프로세서(1510)에 의해 제공되거나 식별된 명령어를 실행할 수 있다. "프로세서"라는 용어는 명령어를 동시에 실행할 수 있는 코어를 포함하는 멀티 코어 프로세서를 포함한다. 도 15는 다중 프로세서를 도시하지만, 기계(1500)는 단일 코어가 있는 단일 프로세서, 다중 코어가 있는 단일 프로세서(예를 들어, 멀티 코어 프로세서), 각각 단일 코어가 있는 다중 프로세서, 각각 다중 코어가 있는 다중 프로세서 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예에서, 기계(1500)는 다수의 기계들 사이에 분산된 다수의 프로세서를 포함할 수 있다.
메모리/스토리지(1530)는 메인 메모리(1532), 정적 메모리(1534), 또는 다른 메모, 및 스토리지 유닛(1536)을 포함할 수 있으며, 둘 다 버스(1502)를 통해 프로세서(1510)에 액세스 가능하다. 스토리지 유닛(1536) 및 메모리(1532, 1534)는 본 명세서에 설명된 기능 중 임의의 하나 이상의 기능을 구현하는 명령어(1516)를 저장한다. 메모리/스토리지(1530)는 또한 프로세서(1510)에 대한 임시, 중간 및/또는 장기 데이터를 저장할 수 있다. 명령어(1516)는 또한 실행 중에 메모리(1532, 1534) 내에, 스토리지 유닛(1536) 내에, 프로세서(1510) 중 적어도 하나 내에 (예를 들어, 명령 버퍼 또는 캐시 메모리 내에), I/O 컴포넌트(1550) 중 적어도 하나의 메모리 내에 또는 이들의 임의의 적절한 조합에 완전히 또는 부분적으로 상주할 수 있다. 따라서, 메모리(1532, 1534), 스토리지 유닛(1536), 프로세서(1510) 내의 메모리, 및 I/O 컴포넌트(1550) 내의 메모리는 기계 판독가능 매체의 예이다.
본 명세서에서 사용되는 바와 같이, "기계 판독가능 매체"는 기계(1500)가 특정 방식으로 동작하게 하는 명령어 및 데이터를 일시적 또는 영구적으로 저장할 수 있는 디바이스를 나타낸다. 본 명세서에서 사용되는 바와 같이, "기계 판독가능 매체"라는 용어는 일시적인 전기 또는 전자기 신호 그 자체(예컨대, 매체를 통해 전파되는 반송파)를 포함하지 않는다. 따라서 "기계 판독가능 매체"라는 용어는 유형적이고 비 일시적인 것으로 간주될 수 있다. 비 일시적이고 유형적인 기계 판독가능 매체의 비 제한적인 예는 비 휘발성 메모리(예컨대, 플래시 메모리 또는 읽기 전용 메모리(ROM)), 휘발성 메모리(예컨대, 정적 랜덤 액세스 메모리(RAM) 또는 동적 RAM), 버퍼 메모리, 캐시 메모리, 광학 저장 매체, 자기 저장 매체 및 디바이스, 네트워크 액세스 가능 또는 클라우드 스토리지, 기타 유형의 소토리지 및/또는 이들의 임의의 적절한 조합을 포함할 수 있지만 이에 제한되지는 않는다. "기계 판독가능 매체"라는 용어는 기계(1500)에 의해 실행되는 명령어(예를 들어, 명령어(1516))를 저장하는 데 사용되는 단일 매체 또는 다중 매체의 조합에 적용되어 명령어가 기계(1500)의 하나 이상의 프로세서(1510)에 의해 실행될 때 기계(1500)가 본 명세서에 설명된 하나 이상의 특징을 수행하게 한다. 따라서, "기계 판독가능 매체"는 단일 저장 디바이스뿐만 아니라 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 나타낼 수 있다.
I/O 컴포넌트(1550)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정치를 캡처하도록 적응된 다양한 하드웨어 컴포넌트를 포함할 수 있다. 특정 기계에 포함된 특정 I/O 컴포넌트(1550)는 기계의 유형 및/또는 기능에 의존할 것이다. 예를 들어, 휴대폰과 같은 모바일 디바이스는 터치 입력 디바이스를 포함할 수 있는 반면, 헤드리스 서버 또는 IoT 디바이스는 이러한 터치 입력 디바이스를 포함하지 않을 수 있다. 도 15에 도시된 I/O 컴포넌트의 특정 예는 결코 제한되지 않으며, 다른 유형의 컴포넌트가 기계(1500)에 포함될 수 있다. I/O 컴포넌트(1550)의 그룹화는 단지 이 논의를 간략화하기 위한 것이며, 그룹화는 결코 제한되지 않는다. 다양한 예에서, I/O 컴포넌트(1550)는 사용자 출력 컴포넌트(1552) 및 사용자 입력 컴포넌트(1554)를 포함할 수 있다. 사용자 출력 컴포넌트(1552)는 예를 들어 정보를 디스플레이하기 위한 디스플레이 컴포넌트(예를 들어, 액정 디스플레이(LCD) 또는 프로젝터), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터 또는 포스 피드백 디바이스) 및/또는 기타 신호 발생기를 포함할 수 있다. 사용자 입력 컴포넌트(1554)는 사용자 명령 및/또는 선택과 같은 다양한 사용자 입력을 수신하도록 구성된, 예를 들어 영숫자 입력 컴포넌트(예를 들어, 키보드 또는 터치 스크린), 포인팅 컴포넌트(예를 들어, 마우스 디바이스, 터치 패드 또는 다른 포인팅 기기) 및/또는 촉각 입력 컴포넌트(예를 들어, 위치 및/또는 터치의 힘 또는 터치 제스처를 제공하는 물리적 버튼 또는 터치 스크린)를 포함할 수 있다.
일부 예에서, I/O 컴포넌트(1550)는 광범위한 다른 환경 센서 컴포넌트들 중에서, 생체인식 컴포넌트(1556) 및/또는 위치결정 컴포넌트(1562)를 포함할 수 있다. 생체인식 컴포넌트(1556)는 예를 들어 신체 표정(예를 들어, 얼굴 표정, 음성 표정, 손 또는 신체 제스처 또는 눈 추적)을 검출하고, 생체신호(예를 들어, 심박수 또는 뇌파)를 측정하며, 사람을 식별(예를 들어, 음성, 망막 및/또는 얼굴 기반 식별을 통해)하기 위한 컴포넌트를 포함할 수 있다. 위치결정 컴포넌트(1562)는 예를 들어 위치 센서(예를 들어, GPS(Global Position System) 수신기), 고도 센서(예를 들어, 고도가 유도될 수있는 기압 센서) 및/또는 방위 센서(예를 들어, 자력계)를 포함할 수 있다.
I/O 컴포넌트(1550)는 각각의 통신 커플링(1572 및 1582)을 통해 기계(1500)를 네트워크(들)(1570) 및/또는 디바이스(들)(1580)에 결합하도록 동작 가능한 다양한 기술을 구현하는 통신 컴포넌트(1564)를 포함할 수 있다. 통신 컴포넌트(1564)는 네트워크(들)(1570)와 인터페이스하기 위한 하나 이상의 네트워크 인터페이스 컴포넌트 또는 다른 적절한 디바이스를 포함할 수 있다. 통신 컴포넌트(1564)는 예를 들어 유선 통신, 무선 통신, 셀룰러 통신, 근거리 통신(Near Field Communication; NFC), 블루투스 통신, Wi-Fi 및/또는 다른 양식을 통한 통신을 제공하도록 적응된 컴포넌트를 포함할 수 있다. 디바이스(들)(1580)는 다른 기계 또는 다양한 주변 디바이스(예를 들어, USB를 통해 결합됨)를 포함할 수 있다.
일부 예에서, 통신 컴포넌트(1564)는 식별자를 검출하거나 식별자를 검출하도록 적응된 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1564)는 무선 주파수 식별(Radio Frequency Identification; RFID) 태그 판독기, NFC 검출기, 광학 센서(예를 들어, 1 차원 또는 다차원 바코드 또는 기타 광학 코드) 및/또는 음향 검출기(예를 들어, 태그가 지정된 오디오 신호를 식별하는 마이크)를 포함할 수 있다. 일부 예에서, 위치 정보는 인터넷 프로토콜(IP) 주소를 통한 지리적 위치, Wi-Fi, 셀룰러, NFC, 블루투스를 통한 위치, 또는 기타 무선 스테이션 식별 및/또는 신호 삼각 측량과 같은(그러나 이에 제한되지 않음) 통신 컴포넌트(1564)로부터의 정보에 기초하여 결정될 수 있다.
다양한 구현이 설명되었지만, 설명은 제한적이기보다는 예시를 위한 것이며, 구현의 범위 내에서 더 많은 구현이 가능하다는 것이 이해된다. 특징의 많은 가능한 조합이 첨부 도면에 도시되고 상세한 설명에서 논의되었지만, 개시된 특징의 많은 다른 조합이 가능하다. 임의의 구현의 임의의 특징은 특별히 제한되지 않는 한 임의의 다른 구현의 임의의 다른 특징 또는 요소와 결합하여 사용되거나 대체될 수 있다. 따라서, 본 개시에서 도시 및/또는 논의된 임의의 특징은 임의의 적절한 조합으로 함께 구현될 수 있음을 이해할 것이다. 따라서, 구현은 첨부된 청구 범위 및 그 등가물을 제외하고는 제한되지 않는다. 또한, 첨부된 청구 범위 내에서 다양한 수정 및 변경이 이루어질 수 있다.
전술한 것은 최적의 모드 및/또는 다른 예로 간주되는 것을 설명했지만, 그 안에서 다양한 수정이 이루어질 수 있고 본 명세서에 개시된 주제는 다양한 형태와 예로 구현될 수 있으며, 본 교시는 수많은 응용에 적용될 수 있으며, 그중 일부만 본 명세서에 설명되었음을 이해한다. 다음의 청구 범위는 본 교시의 진정한 범위 내에 속하는 모든 응용, 수정 및 변경을 주장하도록 의도된다.
달리 명시되지 않는 한, 다음 청구 범위를 포함하여 본 명세서에 명시된 모든 측정치, 값, 등급, 위치, 규모, 크기 및 기타 사양은 정확하지 않은 근사치이다. 그것들은 그것들이 관련된 기능 및 그것들이 관계되는 기술에서 관례적인 것과 일치하는 합리적인 범위를 갖도록 의도된다.
보호 범위는 이제 뒤따르는 청구 범위에 의해서만 제한된다. 그 범위는 본 명세서와 뒤따르는 출원 경과에 비추어 해석될 때 청구 범위에서 사용되는 언어의 일반적인 의미와 일치하는 만큼 광범위하고 모든 구조적 및 기능적 등가물을 포함하도록 해석되어야 한다. 그럼에도 불구하고, 청구 범위 중 어느 것도 특허법 101조, 102조 또는 103조의 요건을 충족하지 못하는 주제를 포함하도록 의도되지 않으며, 그러한 방식으로 해석되어서도 안 된다. 이로써, 이러한 주제의 의도하지 않은 수용은 권리를 포기한다.
바로 위에서 언급된 경우를 제외하고, 언급되거나 설명된 어떤 것도 청구 범위에 언급되어 있는지 여부에 관계없이, 컴포넌트, 단계, 특징, 목적, 이익, 이점 또는 이에 상응하는 공익의 헌신을 야기하도록 의도되거나 해석되어서는 안 된다.
본 명세서에 사용된 용어 및 표현은 특정 의미가 본 명세서에서 달리 제시된 경우를 제외하고는 각각의 해당 탐구 및 연구 영역과 관련하여 그러한 용어 및 표현에 부여된 것과 같은 일반적인 의미를 갖는다는 것을 이해할 것이다. 제 1 및 제 2 등과 같은 관계 용어는 엔티티 또는 행동 간의 실제 그러한 관계 또는 순서를 반드시 요구하거나 암시하지 않고, 하나의 엔티티 또는 행동을 다른 엔티티 또는 행동과 구별하기 위해 단독으로 사용될 수 있다. 용어 "포함하다", "포함하는" 또는 이들의 임의의 다른 변형은 비 배타적 포함을 포함하도록 의도된 것으로, 요소 목록을 포함하는 프로세스, 방법, 물품 또는 장치가 해당 요소만 포함하지 않고 이러한 프로세스, 방법, 물품 또는 장치에 명시적으로 나열되지 않았거나 고유하지 않은 기타 요소를 포함할 수 있다. "a" 또는 "an"에 의해 진행되는 요소는 추가 제약 없이 요소를 구성하는 프로세스, 방법, 물품 또는 장치에서 추가 동일한 요소의 존재를 배제하지 않는다.
요약은 독자가 기술 공개의 본질을 신속하게 확인할 수 있도록 제공된다. 그것은 청구 범위의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 또한, 앞서 말한 상세한 설명에서, 본 개시를 간소화하기 위해 다양한 특징이 다양한 예에서 함께 그룹화되어 있음을 알 수 있다. 본 개시의 방법은 청구 범위가 각 청구항에 명시적으로 언급된 것보다 더 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 다음의 청구 범위가 반영하는 바와 같이, 발명의 주제는 단일 개시된 예의 모든 특징보다 적다. 따라서, 다음의 청구 범위는 발명의 상세한 설명에 포함되며, 각각의 청구항은 별도로 청구되는 주제로 그 자체를 주장한다.

Claims (15)

  1. 데이터 처리 디바이스에 있어서,
    적어도 하나의 프로세서; 및
    명령어들을 포함하는 하나 이상의 컴퓨터 판독가능 매체
    를 포함하고, 상기 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서가,
    이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시(present)하게 하고,
    상기 이미지의 제 1 구역(zone)과 연관된 제 1 입력을 수신하게 하고,
    상기 제 1 입력을 수신한 것에 응답하여, 적어도 상기 제 1 구역을 포함하는 제 1 영역(region)을 자동으로 검출하게 하며 - 상기 제 1 영역은 제 1 둘레(perimeter)와 연관된 경계를 포함함 - ,
    상기 이미지 스캐닝 애플리케이션을 통해 상기 디스플레이 상에, 상기 제 1 영역을 스캐닝을 위한 잠재적 영역으로서 사용자에게 제시하게 하는 것인, 데이터 처리 디바이스.
  2. 제 1 항에 있어서, 상기 명령어들은 또한 상기 적어도 하나의 프로세서가,
    상기 이미지의 제 2 구역과 연관된 제 2 입력을 수신하게 하고 - 상기 제 2 구역은 상기 제 1 구역과 상이함 - ;
    상기 제 2 입력에 응답하여, 상기 제 1 영역과는 상이하고 적어도 상기 제 2 구역을 포함하는 제 2 영역을 자동으로 검출하게 하는 것인, 데이터 처리 디바이스.
  3. 제 1 항에 있어서, 상기 명령어들은 또한 상기 적어도 하나의 프로세서가,
    상기 이미지의 제 1 구역과 연관된 제 2 입력을 수신하게 하고;
    상기 제 2 입력에 응답하여, 상기 제 1 영역과는 상이하고 적어도 상기 제 1 구역을 포함하는 제 2 영역을 자동으로 검출하게 하는 것인, 데이터 처리 디바이스.
  4. 제 1 항에 있어서, 상기 명령어들은 또한 상기 적어도 하나의 프로세서가 상기 제 1 둘레와 연관된 시각적 표시기(visual indicator)의 디스플레이에 의해 상기 제 1 영역을 지정하게 하는 것인, 데이터 처리 디바이스.
  5. 제 2 항에 있어서, 상기 제 2 영역은 상기 제 1 구역 및 상기 제 2 구역 둘 다를 포함하는 것인, 데이터 처리 디바이스.
  6. 제 2 항에 있어서, 상기 제 2 영역은 상기 제 1 구역을 배제하는 것인, 데이터 처리 디바이스.
  7. 제 1 항에 있어서, 상기 명령어들은 또한 상기 적어도 하나의 프로세서가,
    상기 제 1 영역의 경계의 일부와 연관된 제 2 입력을 수신하게 하고;
    상기 제 2 입력에 응답하여, 상기 경계가 상기 제 1 둘레와는 상이한 제 2 둘레와 연관되게 되도록 상기 제 1 영역의 경계를 조정하게 하는 것인, 데이터 처리 디바이스.
  8. 방법에 있어서,
    이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시하는 단계;
    상기 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 단계;
    상기 제 1 입력을 수신한 것에 응답하여, 적어도 상기 제 1 구역을 포함하는 제 1 영역을 자동으로 검출하는 단계 - 상기 제 1 영역은 제 1 둘레에 의해 경계가 지정됨(bounded) - ; 및
    상기 이미지 스캐닝 애플리케이션을 통해 상기 디스플레이 상에, 상기 제 1 영역을 스캐닝을 위한 잠재적 영역으로서 사용자에게 제시하는 단계
    를 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 이미지의 제 2 구역과 연관된 제 2 입력을 수신하는 단계 - 상기 제 2 구역은 상기 제 1 구역과 상이함 - ; 및
    상기 제 2 입력에 응답하여, 상기 제 1 영역과는 상이하고 적어도 상기 제 2 구역을 포함하는 제 2 영역을 자동으로 검출하는 단계
    를 더 포함하는, 방법.
  10. 제 8 항에 있어서,
    상기 이미지의 제 1 구역과 연관된 제 2 입력을 수신하는 단계; 및
    상기 제 2 입력에 응답하여, 상기 제 1 영역과는 상이하고 적어도 상기 제 1 구역을 포함하는 제 2 영역을 자동으로 검출하는 단계
    를 더 포함하는, 방법.
  11. 제 9 항에 있어서,
    상기 제 1 입력을 수신한 것에 응답하여, 스캐닝을 위해 상기 제 1 영역을 선택하는 단계; 및
    상기 제 2 입력을 수신한 것에 응답하여, 스캐닝을 위해 상기 제 1 영역을 선택해제(deselect)하는 단계
    를 더 포함하는, 방법.
  12. 제 9 항에 있어서, 상기 제 2 영역은 제 2 둘레에 의해 경계가 지정되며, 상기 방법은,
    상기 제 2 입력을 수신한 것에 응답하여, 상기 제 1 둘레와 상기 제 2 둘레 사이에서 확장되는 개구된 영역(apertured region)을 스캐닝을 위해 자동으로 선택하는 단계
    를 더 포함하는, 방법.
  13. 방법에 있어서,
    이미지 스캐닝 애플리케이션을 통해 디스플레이 상에 이미지를 제시하는 단계;
    상기 이미지의 제 1 구역과 연관된 제 1 입력을 수신하는 단계;
    상기 제 1 입력을 수신한 것에 응답하여, 적어도 상기 제 1 구역을 포함하는 제 1 영역을 자동으로 제시하는 단계;
    상기 이미지의 제 2 구역과 연관된 제 2 입력을 수신하는 단계 - 상기 제 2 구역은 상기 제 1 영역 외측에 위치됨 - ; 및
    상기 제 2 입력을 수신한 것에 응답하여, 적어도 상기 제 1 영역을 포함하는 제 2 영역을 스캐닝을 위해 잠재적 영역으로서 자동으로 제시하는 단계
    를 포함하는, 방법.
  14. 제 13 항에 있어서,
    상기 이미지의 제 3 구역과 연관된 제 3 입력을 수신하는 단계 - 상기 제 3 구역은 상기 제 2 영역 외측에 위치됨 - ; 및
    상기 제 3 입력을 수신한 것에 응답하여, 적어도 상기 제 2 영역을 포함하는 제 3 영역을 자동으로 제시하는 단계
    를 더 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 이미지의 제 1 구역과 연관된 제 4 입력을 수신하는 단계; 및
    상기 제 4 입력을 수신한 것에 응답하여, 상기 제 2 구역 및 상기 제 3 구역을 포함하고 상기 제 1 구역을 배제하는 제 4 영역을 자동으로 제시하는 단계
    를 더 포함하는, 방법.
KR1020217006208A 2018-09-10 2019-06-25 이미지들에 대한 다중 영역 검출 KR20210056338A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/127,209 US10902277B2 (en) 2018-09-10 2018-09-10 Multi-region detection for images
US16/127,209 2018-09-10
PCT/US2019/038841 WO2020055480A1 (en) 2018-09-10 2019-06-25 Multi-region detection for images

Publications (1)

Publication Number Publication Date
KR20210056338A true KR20210056338A (ko) 2021-05-18

Family

ID=67180895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217006208A KR20210056338A (ko) 2018-09-10 2019-06-25 이미지들에 대한 다중 영역 검출

Country Status (5)

Country Link
US (1) US10902277B2 (ko)
EP (1) EP3831044A1 (ko)
KR (1) KR20210056338A (ko)
CN (2) CN116009755A (ko)
WO (1) WO2020055480A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109559344B (zh) * 2017-09-26 2023-10-13 腾讯科技(上海)有限公司 边框检测方法、装置及存储介质
JP7202843B2 (ja) * 2018-10-22 2023-01-12 シャープ株式会社 情報処理装置、情報処理装置における設定制御プログラムおよび設定制御方法
US11532145B2 (en) 2019-01-07 2022-12-20 Microsoft Technology Licensing, Llc Multi-region image scanning
CN113589983A (zh) * 2021-07-30 2021-11-02 维沃移动通信(杭州)有限公司 图形标识显示方法和电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151426A (en) * 1998-10-01 2000-11-21 Hewlett-Packard Company Click and select user interface for document scanning
US7212316B2 (en) * 2001-12-19 2007-05-01 Wen-Yung Huang Method for automatically identifying scan area
US8098936B2 (en) 2007-01-12 2012-01-17 Seiko Epson Corporation Method and apparatus for detecting objects in an image
US8081798B2 (en) 2007-11-20 2011-12-20 Lawrence Livermore National Security, Llc Method and system for detecting polygon boundaries of structures in images as particle tracks through fields of corners and pixel gradients
US20120131520A1 (en) * 2009-05-14 2012-05-24 Tang ding-yuan Gesture-based Text Identification and Selection in Images
US8345106B2 (en) * 2009-09-23 2013-01-01 Microsoft Corporation Camera-based scanning
US9736332B2 (en) 2011-11-30 2017-08-15 Hewlett-Packard Indigo B.V. Automatic detection of corners of an imaged document
US9304656B2 (en) * 2012-03-30 2016-04-05 Google Inc. Systems and method for object selection on presence sensitive devices
US20130328760A1 (en) * 2012-06-08 2013-12-12 Qualcomm Incorporated Fast feature detection by reducing an area of a camera image
US9224205B2 (en) 2012-06-14 2015-12-29 Qualcomm Incorporated Accelerated geometric shape detection and accurate pose tracking
JP2014194540A (ja) * 2013-02-28 2014-10-09 Semiconductor Energy Lab Co Ltd 画像情報の処理および表示方法、プログラム、情報処理装置
JPWO2015049899A1 (ja) * 2013-10-01 2017-03-09 オリンパス株式会社 画像表示装置および画像表示方法
KR102173109B1 (ko) * 2014-09-05 2020-11-02 삼성전자주식회사 디지털 영상 처리 방법, 상기 방법을 기록한 컴퓨터 판독 가능 저장매체 및 디지털 영상 처리 장치
KR20160071889A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 비교 영상을 이용한 진단 지원 장치 및 방법
WO2016207875A1 (en) 2015-06-22 2016-12-29 Photomyne Ltd. System and method for detecting objects in an image
KR20170029978A (ko) * 2015-09-08 2017-03-16 엘지전자 주식회사 이동단말기 및 그 제어방법

Also Published As

Publication number Publication date
CN116009755A (zh) 2023-04-25
EP3831044A1 (en) 2021-06-09
US20200082195A1 (en) 2020-03-12
US10902277B2 (en) 2021-01-26
CN112673617A (zh) 2021-04-16
WO2020055480A1 (en) 2020-03-19
CN112673617B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
DK180452B1 (en) USER INTERFACES FOR RECEIVING AND HANDLING VISUAL MEDIA
US10115015B2 (en) Method for recognizing a specific object inside an image and electronic device thereof
US9852491B2 (en) Objects in screen images
CN112673617B (zh) 针对图像的多区域检测
JP7217357B2 (ja) ミニプログラムのデータバインディング方法、装置、デバイス及びコンピュータプログラム
RU2740785C2 (ru) Способ и оборудование обработки изображений, электронное устройство и графический пользовательский интерфейс
US9430500B2 (en) Method and device for operating image in electronic device
US10657318B2 (en) Comment notifications for electronic content
EP2677501A2 (en) Apparatus and method for changing images in electronic device
US20220206645A1 (en) Management of screen content capture
EP3944070A1 (en) Mini-program production method and apparatus, and terminal and storage medium
KR20210105975A (ko) 자동 이미지 캡처를 트리거링하기 위한 장면 변경의 사용
KR102303206B1 (ko) 전자장치에서 이미지 내의 특정 객체를 인식하기 위한 방법 및 장치
US10686983B1 (en) Automatic image capture mode based on changes in a target region
CN113273167B (zh) 数据处理设备、方法和存储介质
US11303464B2 (en) Associating content items with images captured of meeting content

Legal Events

Date Code Title Description
E902 Notification of reason for refusal