KR20230091097A - 이미지 캡처 동작들을 개선하기 위한 메커니즘 - Google Patents

이미지 캡처 동작들을 개선하기 위한 메커니즘 Download PDF

Info

Publication number
KR20230091097A
KR20230091097A KR1020237012911A KR20237012911A KR20230091097A KR 20230091097 A KR20230091097 A KR 20230091097A KR 1020237012911 A KR1020237012911 A KR 1020237012911A KR 20237012911 A KR20237012911 A KR 20237012911A KR 20230091097 A KR20230091097 A KR 20230091097A
Authority
KR
South Korea
Prior art keywords
interest
region
image
image frame
image capture
Prior art date
Application number
KR1020237012911A
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 KR20230091097A publication Critical patent/KR20230091097A/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
    • 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/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B13/00Viewfinders; Focusing aids for cameras; Means for focusing for cameras; Autofocus systems for cameras
    • G03B13/32Means for focusing
    • G03B13/34Power focusing
    • G03B13/36Autofocus systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • 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/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • 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/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • H04N23/635Region indicators; Field of view indicators
    • 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/67Focus control based on electronic image sensor signals
    • H04N23/672Focus control based on electronic image sensor signals based on the phase difference signals
    • 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/73Circuitry for compensating brightness variation in the scene by influencing the exposure time
    • 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
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/88Camera processing pipelines; Components thereof for processing colour signals for colour balance, e.g. white-balance circuits or colour temperature control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20101Interactive definition of point of interest, landmark or seed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Studio Devices (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Endoscopes (AREA)
  • Image Analysis (AREA)

Abstract

하나 이상의 이미지 캡처 동작들을 개선하기 위한 기법들 및 시스템들이 제공된다. 일부 예들에서, 시스템은 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출한다. 시스템은, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하며, 상기 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는다. 그 후 시스템은, 결정에 적어도 부분적으로 기초하여 관심 영역을 조정하고, 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행한다.

Description

이미지 캡처 동작들을 개선하기 위한 메커니즘
본 출원은 이미지 프로세싱에 관한 것이다. 일부 예들에서, 본 출원의 양태들은 캡처된 이미지 프레임들 내의 이미지 데이터에 대해 수행되는 이미지 프로세싱 및/또는 이미지 캡처 동작들(이를테면, 자동 초점(auto-focus) 알고리즘들 및 관련 알고리즘들)을 개선하기 위한 메커니즘을 제공하는 시스템들, 장치들, 방법들, 및 컴퓨터 판독가능 매체들에 관한 것이다.
카메라들은 이미지의 현상(appearance)을 변경하기 위해 다양한 이미지 캡처 및 이미지 프로세싱 설정들로 구성될 수 있다. 자동 초점, 자동 노출(auto-exposure) 및 자동 화이트 밸런스(auto-white-balance) 동작들과 같은, 일부 이미지 프로세싱 동작들이 사진의 캡처 동안에 또는 그 전에 결정되고 적용된다. 이들 동작들은 (예를 들어, 영역들의 콘텐츠가 흐릿하거나, 과노출되거나, 초점이 벗어나지 않는 것을 보장하도록) 이미지의 하나 이상의 영역들을 보정 및/또는 변경하도록 구성된다. 동작들은 이미지 프로세싱 시스템에 의해 자동으로 또는 사용자 입력에 응답하여 수행될 수 있다. 보다 진보되고 정확한 이미지 프로세싱 기법들이 이미지 프로세싱 동작들의 출력을 개선하기 위해 필요하다.
본 명세서에 설명된 기술들은 이미지 캡처 및/또는 이미지 프로세싱 동작들을 개선하기 위해 구현될 수 있다. 적어도 하나의 예에 따르면, 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 방법들이 제공된다. 예시적인 방법은 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 단계를 포함할 수 있다. 방법은 또한, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계를 포함할 수 있으며, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는다. 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상은 상기 결정에 적어도 부분적으로 기초하여 조정될 수 있다. 그 후 하나 이상의 이미지 캡처 동작들이, 조정된 관심 영역 내의 이미지 데이터에 대해 수행될 수 있다.
다른 예에서, 이미지 프레임들에서 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 장치들이 제공된다. 예시적인 장치는 메모리, 및 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하도록 구성된 하나 이상의 프로세서들을 포함할 수 있다. 하나 이상의 프로세서들은 또한, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정할 수 있으며, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는다. 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상은 상기 결정에 적어도 부분적으로 기초하여 조정될 수 있다. 그 후 하나 이상의 이미지 캡처 동작들이, 조정된 관심 영역 내의 이미지 데이터에 대해 수행될 수 있다.
다른 예에서, 예시적인 장치는: 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하기 위한 수단; 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하기 위한 수단으로서, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하기 위한 수단; 결정에 적어도 부분적으로 기초하여 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하기 위한 수단; 및 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행하기 위한 수단을 포함할 수 있다.
다른 예에서, 이미지 프레임들에서 하나 이상의 이미지 프로세싱 동작들을 개선하기 위해 비일시적 컴퓨터 판독가능 매체들이 제공된다. 예시적인 비일시적 컴퓨터 판독가능 매체는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하게 하는 명령들을 저장할 수 있다. 명령들은 또한, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하게 할 수 있으며, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는다. 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상은 상기 결정에 적어도 부분적으로 기초하여 조정될 수 있다. 그 후 하나 이상의 이미지 캡처 동작들이, 조정된 관심 영역 내의 이미지 데이터에 대해 수행될 수 있다.
일부 양태들에서, 이미지 프레임은 카메라 디바이스가 이미지 캡처 모드에 있는 동안 카메라 디바이스에 의해 캡처되는 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림(preview stream) 내에서 수신될 수 있다.
일부 양태들에서, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것은 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것을 포함한다. 일부 예들에서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 것은 오브젝트 검출 알고리즘에 기초하여 관심 영역의 미리 결정된 형상을 조정하는 것을 포함할 수 있다. 예를 들어, 관심 영역의 미리 결정된 형상을 조정하는 것은 오브젝트 검출 알고리즘에 기초하여 오브젝트에 대한 바운딩 박스를 결정하는 것 및 관심 영역을 바운딩 박스로서 설정하는 것을 포함할 수 있다.
일부 양태들에서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 것은 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 감소시키는 것, 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 증가시키는 것, 및/또는 관심 영역의 경계와 오브젝트의 경계 사이의 거리를 감소시키는 것을 포함할 수 있다. 일부 예들에서, 관심 영역의 경계와 오브젝트 사이의 거리를 감소시키는 것은 이미지 프레임 내의 오브젝트의 윤곽(contour)을 결정하는 것 및 관심 영역의 경계를 이미지 프레임 내의 오브젝트의 윤곽으로서 설정하는 것을 포함할 수 있다. 일부 경우들에서, 이미지 프레임 내의 오브젝트의 윤곽을 결정하는 것은 이미지 프레임 내의 윤곽에 대응하는 픽셀들을 결정하는 것을 포함할 수 있다.
일부 양태들에서, 이미지 프레임이 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것은 이미지 프레임이 이미지 프레임 내의 복수의 관심 영역들 내의 하나 이상의 오브젝트들을 포함한다고 결정하는 것을 포함할 수 있다. 이들 양태들에서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 것은 복수의 관심 영역들의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 것을 포함할 수 있다. 일부 양태들은, 이미지 프레임 내에서, 조정된 관심 영역을 나타내는 시각적 그래픽을 오버레이하는 것을 더 포함할 수 있다. 이들 양태들은 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것을 더 포함할 수 있으며, 추가적인 사용자 입력은 조정된 관심 영역에 대한 적어도 하나의 추가적인 조정을 나타낸다.
일부 양태들은: 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 관심 영역들을 결정하는 것; 이미지 프레임 내에서, 복수의 후보 조정된 관심 영역들에 대응하는 복수의 시각적 그래픽들을 순차적으로 디스플레이하는 것; 및 복수의 후보 조정된 관심 영역들 중 하나의 후보 조정된 관심 영역에 대응하는 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여, 상기 하나의 후보 조정된 관심 영역의 선택을 결정하는 것을 더 포함할 수 있다.
일부 양태들에서, 하나 이상의 이미지 캡처 동작들은 자동 초점 동작, 자동 노출 동작, 및/또는 자동 화이트 밸런스 동작을 포함할 수 있다. 일부 경우들에서, 이미지 프레임은 하나 이상의 이미지 캡처 동작들을 수행한 후에 디스플레이될 수 있다.
다른 예에서, 이미지 프레임들에서 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 방법들이 제공된다. 예시적인 방법은 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 단계를 포함할 수 있다. 방법은 또한, 이미지 프레임이 선택된 위치를 둘러싸는 고정된 관심 영역 내에 적어도 부분적으로 하나 이상의 오브젝트를 포함하는지 여부를 결정하는 단계를 포함할 수 있다. 이미지 프레임이 고정된 관심 영역 내에 하나 이상의 오브젝트를 포함하면, 방법은 이미지 프레임 내의 오브젝트의 경계들에 기초하여 고정된 관심 영역을 조정하고 그후, 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행할 수 있다. 이미지 프레임이 고정된 관심 영역 내에 어떠한 오브젝트들도 포함하지 않으면, 방법은 고정된 관심 영역을 조정하지 않기로 결정하고 그후, 고정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행할 수 있다.
일부 양태들에서, 위에서 설명된 장치들 중 하나 이상은 모바일 디바이스(예를 들어, 모바일 전화 또는 소위 "스마트폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, 확장 현실 디바이스(예를 들어, 가상 현실(VR) 디바이스, 증강 현실(AR) 디바이스, 또는 혼합 현실(MR) 디바이스), 개인용 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 차량(예를 들어, 차량의 컴퓨팅 디바이스), 또는 다른 디바이스이거나 그 일부이다. 일부 양태들에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다수의 카메라들을 포함한다. 일부 양태들에서, 장치는 하나 이상의 이미지들, 통지들, 및/또는 다른 디스플레이가능한 데이터를 디스플레이하기 위한 디스플레이를 더 포함한다. 일부 양태들에서, 장치는 장치의 위치 및/또는 포즈, 장치들의 상태를 결정하기 위해, 그리고/또는 다른 목적들을 위해 사용될 수 있는 하나 이상의 센서들을 포함할 수 있다.
이 개요는, 청구된 주제물의 핵심적인 또는 본질적인 특징들을 식별하도록 의도되는 것도 아니고, 청구된 주제물의 범위를 결정하기 위해 별도로 사용되도록 의도되는 것도 아니다. 주제물은, 본 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각각의 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 것은 다른 특징들 및 실시예들과 함께, 뒤따르는 명세서, 청구항들, 및 첨부 도면들을 참조 시 더 명백해질 것이다.
본 출원의 예시적인 실시예들은 다음의 도면들을 참조하여 아래에서 상세히 설명된다:
도 1a는 일부 예들에 따른, 이미지 캡처 및 프로세싱 시스템의 예시적인 아키텍처를 예시하는 블록도이고;
도 1b, 도 1c, 및 도 1d는 일부 예들에 따른, 각각, 위상 일치인, 프론트(front) 포커스로 위상 불일치인, 그리고 백(back) 포커스로 위상 불일치인 위상 검출 자동 초점(PDAF) 카메라 시스템을 예시하고;
도 2a 및 도 2b는 일부 예들에 따른, 이미지 캡처 동작을 수행하는 예시들이고;
도 3a 및 도 3b는 일부 예들에 따른, 이미지 프로세싱 시스템의 컴포넌트들의 동작들 및 컴포넌트들 사이의 상호작용들을 예시하는 개념도들이고;
도 4는 일부 예들에 따른, 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 프로세스의 예를 예시하는 흐름도이고;
도 5a 및 도 5b는 일부 예들에 따른, 이미지 캡처 동작을 수행하는 예시들이고;
도 5c, 도 5d, 도 5e 및 도 5f는 일부 예들에 따른, 개선된 이미지 캡처 동작들의 예시들이고;
도 6은 일부 예들에 따른, 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 프로세스의 예를 예시하는 흐름도이고; 그리고
도 7은 본 명세서에서 설명된 특정 양태들을 구현하기 위한 시스템의 예를 예시하는 도면이다.
본 개시의 특정 양태들 및 실시예들이 아래에 제공된다. 이들 양태들 및 실시예들 중 일부는 독립적으로 적용될 수도 있고 그들 중 일부는 당업자들에게 명백할 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에서, 설명의 목적들을 위해, 특정 상세들이 본 출원의 실시예들의 철저한 이해를 제공하기 위해 제시된다. 하지만, 다양한 실시예들은 이들 특정 상세들 없이 실시될 수도 있음이 명백할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
다음의 설명은 오직 예시적인 실시예들을 제공할 뿐이고, 본 개시의 범위, 적용가능성, 또는 구성을 제한하도록 의도된 것이 아니다. 오히려, 예시적인 실시예들의 다음의 설명은 예시적인 실시예를 구현하기 위한 가능하게 하는 설명을 당업자에게 제공할 것이다. 첨부된 청구항들에 기술된 바와 같은 본 출원의 사상 및 범위로부터 일탈함없이 엘리먼트들의 기능 및 배열에서 다양한 변화들이 이루어질 수도 있음이 이해되어야 한다.
카메라는 이미지 센서를 사용하여, 광(light)을 수신하고 정지 이미지들 또는 비디오 프레임들과 같은 이미지 프레임들을 캡처하는 디바이스이다. 용어 "이미지", "이미지 프레임", 및 "프레임"은 본 명세서에서 상호교환가능하게 사용된다. 카메라들은, 하나 이상의 이미지 프레임들을 수신하고 하나 이상의 이미지 프레임들을 프로세싱할 수 있는, 이미지 신호 프로세서(ISP)들과 같은, 프로세서들을 포함할 수 있다. 예를 들어, 카메라 센서에 의해 캡처된 원시(raw) 이미지 프레임은 최종 이미지를 생성하도록 ISP에 의해 프로세싱될 수 있다. ISP에 의한 프로세싱은, 무엇보다도 디노이징(denoising) 또는 노이즈 필터링, 에지 향상, 컬러 밸런싱, 대비, 강도 조정(예컨대, 흑화(darkening) 또는 라이트닝(lightening)), 톤 조정과 같은, 캡처된 이미지 프레임에 적용되는 복수의 필터들 또는 프로세싱 블록들에 의해 수행될 수 있다. 이미지 프로세싱 블록들 또는 모듈들은, 무엇보다도 렌즈/센서 노이즈 보정, 베이어(Bayer) 필터들, 디모자이킹(de-mosaicing), 컬러 변환, 이미지 속성들의 보정 또는 향상/억제, 디노이징 필터들, 샤프닝(sharpening) 필터들을 포함할 수도 있다.
카메라들은 다양한 이미지 캡처 및 이미지 프로세싱 동작들 및 설정들로 구성될 수 있다. 상이한 설정들은 상이한 현상들을 갖는 이미지들을 초래한다. 자동 초점, 자동 노출, 및 자동 화이트 밸런스 알고리즘("3A"들로 총칭됨)과 같은 일부 카메라 동작들은 사진의 캡처 전에 또는 캡처 동안에 결정되고 적용된다. 사진의 캡처 이전에 또는 캡처 동안에 적용되는 추가적인 카메라 동작들은, ISO, 조리개 사이즈, f/스톱, 셔터 스피드, 및 이득(gain)을 수반하는 동작들을 포함한다. 다른 카메라 동작들은 대비, 밝기, 채도, 선명도, 레벨들, 곡선들, 또는 컬러들에 대한 변경들과 같은, 사진의 포스트프로세싱을 구성할 수 있다.
많은 카메라 시스템들에서, 사용자는 이미지 프로세싱 동작을 지시하거나 개시할 수도 있다. 예를 들어, 카메라 디바이스는 이미지 캡처 모드에서 동작할 때 일련의 이미지 프레임들을 사용자에게 디스플레이할 수도 있다. 디스플레이된 이미지 프레임들은 "프리뷰 스트림"으로 참조되거나 이에 포함될 수도 있다. 카메라 디바이스는 주기적으로 그리고/또는 사용자가 카메라 디바이스를 이동시킴에 따라, 프리뷰 스트림 내의 이미지 프레임들을 업데이트할 수도 있다. 프리뷰 스트림에서 이미지 프레임을 보는 동안, 사용자는 수행될 이미지 프로세싱 동작을 위한 원하는 위치에 대응하는 이미지 프레임의 부분을 선택할 수도 있다. 예를 들어, 터치 스크린 또는 사용자 입력을 위해 구성된 다른 유형의 인터페이스가 카메라에 구비된 경우, 사용자는 (예컨대, 손가락, 스타일러스, 또는 다른 적합한 입력 메커니즘으로) 이미지 프레임의 위치(이를테면, 하나 이상의 픽셀들)를 선택할 수도 있다. 적합한 사용자 입력의 비제한적인 예들은, 디스플레이 내에서 위치를 더블탭하는 것 및 미리 결정된 양의 시간(예컨대, 1/2 초, 1 초 등) 동안 디스플레이 내에서 위치를 누르는 것을 포함한다. 일부 경우들에서, 위치는 이미지 프레임 내의 관심 오브젝트(예컨대, 주요 피사체 또는 초점)를 포함하거나 이에 대응할 수도 있다. 카메라 디바이스는 선택된 위치를 둘러싸는 및/또는 포위(encompass)하는 이미지 프레임의 영역에 대해 이미지 프로세싱 동작을 수행할 수도 있다. 이 영역은 "관심 영역(region of interest, ROI)"으로 지칭될 수도 있다.
아래에서 더 상세히 설명될 바와 같이, 종래의 이미지 프로세싱 시스템들은 표준 및/또는 고정된 사이즈의 ROI들 내에서 이미지 프로세싱 동작들을 수행할 수도 있다. 일부 경우들에서, 고정된 ROI는 이미지의 사이즈(또는 해상도)에 대하여 미리 결정된 사이즈 또는 미리 결정된 수의 픽셀들을 포함하는 미리 결정된 형상(예컨대, 정사각형, 직사각형, 원형 등)의 박스에 대응할 수도 있다. 이미지 프로세싱 동작은 고정된 ROI 내의 각 픽셀에 대해 수행될 수도 있다. 안타깝게도, 고정된 ROI는 사용자에 의해 선택되도록 의도된 오브젝트(또는 오브젝트들)에 정확하게 또는 정밀하게 대응하지 않을 수도 있다. 예를 들어, 고정된 ROI는 선택된 오브젝트(들)에 추가하여 오브젝트들을 포함할 수도 있고 그리고/또는 고정된 ROI는 선택된 오브젝트(들) 전체를 포함하지 않을 수도 있다.
따라서, 이미지 프로세싱 동작들의 품질 및/또는 효율을 개선하기 위한 시스템들, 장치들, 프로세스들, 및 컴퓨터 판독가능 매체들이 본 명세서에서 설명된다. 예를 들어, 일부 예들에서, 시스템들 및 기법들은 이미지 프레임들 내의 선택된 오브젝트들의 경계들에 대응하도록 커스터마이징(customizing)된 형상들 및/또는 크기들의 동적 ROI들을 결정하고 활용할 수 있다.
도 1a는 이미지 캡처 및 프로세싱 시스템(100)의 아키텍처를 예시하는 블록도이다. 이미지 캡처 및 프로세싱 시스템(100)은 장면들의 이미지들(예컨대, 장면(110)의 이미지)을 캡처 및 프로세싱하는데 사용되는 다양한 컴포넌트들을 포함한다. 이미지 캡처 및 프로세싱 시스템(100)은 자립형(standalone) 이미지들(또는 사진들)을 캡처할 수 있고 그리고/또는 특정한 시퀀스의 다수의 이미지들(또는 비디오 프레임들)을 포함하는 비디오들을 캡처할 수 있다. 시스템(100)의 렌즈(115)는 장면(110)을 향하고 장면(110)으로부터 광을 수신한다. 렌즈(115)는 이미지 센서(130) 쪽으로 광을 굴절시킨다. 렌즈(115)에 의해 수신된 광은, 하나 이상의 제어 메커니즘들(120)에 의해 제어되는 조리개를 통과하고 이미지 센서(130)에 의해 수신된다.
하나 이상의 제어 메커니즘들(120)은 이미지 센서(130)로부터의 정보에 기초하여 그리고/또는 이미지 프로세서(150)로부터의 정보에 기초하여 노출, 초점, 및/또는 줌을 제어할 수도 있다. 하나 이상의 제어 메커니즘들(120)은 다수의 메커니즘들 및 컴포넌트들을 포함할 수도 있다; 예를 들어, 제어 메커니즘들(120)은 하나 이상의 노출 제어 메커니즘들(125A), 하나 이상의 초점 제어 메커니즘들(125B), 및/또는 하나 이상의 줌 제어 메커니즘들(125C)을 포함할 수도 있다. 하나 이상의 제어 메커니즘들(120)은 또한, 아날로그 이득, 플래시, HDR, 피사계 심도(depth of field), 및/또는 다른 이미지 캡처 특성들을 제어하는 제어 메커니즘들과 같이, 예시된 것들 이외의 추가적인 제어 메커니즘들을 포함할 수도 있다. 일부 경우들에서, 하나 이상의 제어 메커니즘들(120)은 "3A" 이미지 프로세싱 동작들을 제어 및/또는 구현할 수 있다.
제어 메커니즘들(120)의 초점 제어 메커니즘(125B)은 초점 설정을 획득할 수 있다. 일부 예들에서, 초점 제어 메커니즘(125B)은 메모리 레지스터에 초점 설정을 저장한다. 초점 설정에 기초하여, 초점 제어 메커니즘(125B)은 이미지 센서(130)의 포지션에 대하여 렌즈(115)의 포지션을 조정할 수 있다. 예를 들어, 초점 설정에 기초하여, 초점 제어 메커니즘(125B)은 모터 또는 서보(servo)를 작동시킴으로써 렌즈(115)를 이미지 센서(130)에 더 가깝게 또는 이미지 센서(130)로부터 더 멀리 이동시킬 수 있고, 이에 의해 초점을 조정할 수 있다. 일부 경우들에서, 이미지 센서(130)의 각각의 포토다이오드 위에 하나 이상의 마이크로렌즈들 같은 추가적인 렌즈들이 디바이스(105A)에 포함될 수 있으며, 이들 각각은 광이 포토다이오드에 도달하기 전에 렌즈(115)로부터 수신된 광을 대응하는 포토다이오드 쪽으로 굴절시킨다. 초점 설정은 대비 검출 자동 초점(CDAF), 위상 검출 자동 초점(PDAF), 또는 이들의 일부 조합을 통해 결정될 수도 있다. 초점 설정은 제어 메커니즘(120), 이미지 센서(130), 및/또는 이미지 프로세서(150)를 사용하여 결정될 수도 있다. 초점 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로 지칭될 수도 있다.
제어 메커니즘들(120)의 노출 제어 메커니즘(125A)은 노출 설정을 획득할 수 있다. 일부 경우들에서, 노출 제어 메커니즘(125A)은 메모리 레지스터에 노출 설정을 저장한다. 이러한 노출 설정에 기초하여, 노출 제어 메커니즘(125A)은 조리개의 사이즈(예컨대, 조리개 사이즈 또는 f/스톱), 조리개가 개방되는 시간의 지속기간(예컨대, 노출 시간 또는 셔터 스피드), 이미지 센서(130)의 감도(예컨대, ISO 스피드 또는 필름 스피드), 이미지 센서(130)에 의해 적용되는 아날로그 이득, 또는 이들의 임의의 조합을 제어할 수 있다. 노출 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로 지칭될 수도 있다.
제어 메커니즘(120)의 줌 제어 메커니즘(125C)은 줌 설정을 획득할 수 있다. 일부 예들에서, 줌 제어 메커니즘(125C)은 메모리 레지스터에 줌 설정을 저장한다. 줌 설정에 기초하여, 줌 제어 메커니즘(125C)은 렌즈(115) 및 하나 이상의 추가적인 렌즈들을 포함하는 렌즈 엘리먼트들의 어셈블리(렌즈 어셈블리)의 초점거리(focal length)를 제어할 수 있다. 예를 들어, 줌 제어 메커니즘(125C)은 렌즈들 중 하나 이상을 서로에 대하여 이동시키도록 하나 이상의 모터들 또는 서보들을 작동시킴으로써 렌즈 어셈블리의 초점거리를 제어할 수 있다. 줌 설정은 이미지 캡처 설정 및/또는 이미지 프로세싱 설정으로 지칭될 수도 있다. 일부 예들에서, 렌즈 어셈블리는 동초점(parfocal) 줌 렌즈 또는 가변초점(varifocal) 줌 렌즈를 포함할 수도 있다. 일부 예들에서, 렌즈 어셈블리는 장면(110)으로부터 먼저 광을 수신하는 초점 렌즈(일부 경우들에서 렌즈(115)일 수 있음)를 포함할 수도 있으며, 수신 후 그 광은 광이 이미지 센서(130)에 도달하기 전에 초점 렌즈(예컨대, 렌즈(115))와 이미지 센서(130) 사이의 무초점(afocal) 줌 시스템을 통과한다. 무초점 줌 시스템은, 일부 경우들에서, 동일하거나 유사한 (예컨대, 임계 차이 내의) 초점거리의 2 개의 정(positive)(예컨대, 수렴, 볼록) 렌즈들을 그들 사이의 부(negative)(예컨대, 발산, 오목) 렌즈와 함께 포함할 수도 있다. 일부 경우들에서, 줌 제어 메커니즘(125C)은 부 렌즈 및 정 렌즈들 중 하나 또는 양자 모두와 같은, 무초점 줌 시스템에서의 렌즈들 중 하나 이상을 이동시킨다.
이미지 센서(130)는 포토다이오드들 또는 다른 감광 엘리먼트들의 하나 이상의 어레이들을 포함한다. 각각의 포토다이오드는 이미지 센서(130)에 의해 생성된 이미지 내 특정한 픽셀에 최종적으로 대응하는 광의 양을 측정한다. 일부 경우들에서, 상이한 포토다이오드들은 상이한 색상 필터들에 의해 커버될 수도 있고, 따라서 포토다이오드를 커버하는 필터의 컬러에 매칭하는 광을 측정할 수도 있다. 예를 들어, 베이어 컬러 필터들은 레드 컬러 필터들, 블루 필터들, 및 그린 컬러 필터들을 포함하며, 레드 컬러 필터로 커버된 적어도 하나의 포토다이오드로부터의 레드 광 데이터, 블루 컬러 필터로 커버된 적어도 하나의 포토다이오드로부터의 블루 광 데이터, 및 그린 컬러 필터로 커버된 적어도 하나의 포토다이오드로부터의 그린 광 데이터에 기초하여 이미지의 각각의 픽셀이 생성된다. 다른 유형들의 컬러 필터들은 레드, 블루, 및/또는 그린 컬러 필터들 대신에 또는 그에 추가하여 옐로우, 마젠타, 및/또는 시안("에메랄드"로도 지칭됨) 컬러 필터들을 사용할 수도 있다. 일부 이미지 센서들은 컬러 필터들이 모두 결어될 수도 있고, 대신에 (일부 경우들에서 수직으로 적층된) 픽셀 어레이 전체에 걸쳐 상이한 포토다이오드들을 사용할 수도 있다. 픽셀 어레이 전체에 걸친 상이한 포토다이오드들은 상이한 스펙트럼 감도 곡선들을 가질 수 있어, 광의 상이한 파장들에 반응한다. 모노크롬 이미지 센서들은 또한 컬러 필터들이 결여되고 따라서 색 깊이(color depth)가 결여될 수도 있다.
일부 경우들에서 이미지 센서(130)는, 특정 시간들에 그리고/또는 특정 각도들로부터, 특정 포토다이오드들, 또는 특정 포토다이오드들의 부분들에 광이 도달하는 것을 차단하는 불투명 및/또는 반사 마스크들을 대안적으로 또는 추가적으로 포함할 수도 있으며, 이들은 위상 검출 자동 초점(PDAF)을 위해 사용될 수도 있다. 이미지 센서(130)는 또한, 포토다이오드들에 의해 출력된 아날로그 신호들을 증폭하기 위한 아날로그 이득 증폭기 및/또는 포토다이오드들로부터 출력된 (그리고/또는 아날로그 이득 증폭기에 의해 증폭된) 아날로그 신호들을 디지털 신호들로 변환하기 위한 아날로그-디지털 변환기(ADC)를 포함할 수도 있다. 일부 경우들에서, 제어 메커니즘들(120) 중 하나 이상에 대해 논의된 특정 컴포넌트들 또는 기능들은 대신 또는 추가적으로 이미지 센서(130)에 포함될 수 있다. 이미지 센서(130)는 CCD(charge-coupled device) 센서, EMCCD(electron-multiplying CCD) 센서, APS(active-pixel sensor), CMOS(complimentary metal-oxide semiconductor), NMOS(N-type metal-oxide semiconductor), 하이브리드 CCD/CMOS 센서(예컨대, sCMOS), 또는 이들의 일부 다른 조합일 수도 있다.
이미지 프로세서(150)는, 하나 이상의 이미지 신호 프로세서(ISP)들(ISP(154)를 포함함), 하나 이상의 호스트 프로세서들(호스트 프로세서(152)를 포함함), 및/또는 컴퓨팅 디바이스(900)와 관련하여 논의된 임의의 다른 유형의 프로세서(910)의 하나 이상과 같은 하나 이상의 프로세서들을 포함할 수도 있다. 호스트 프로세서(152)는 디지털 신호 프로세서(DSP) 및/또는 다른 유형의 프로세서일 수 있다. 일부 구현들에서, 이미지 프로세서(150)는 호스트 프로세서(152) 및 ISP(154)를 포함하는 단일 집적 회로 또는 칩(예컨대, 시스템 온 칩 또는 SoC로 지칭됨)이다. 일부 경우들에서, 칩은 또한 하나 이상의 입력/출력 포트들(예컨대, 입력/출력(I/O) 포트들(156)), 중앙 프로세싱 유닛(CPU)들, 그래픽 프로세싱 유닛(GPU)들, 광대역 모뎀들(예를 들어, 3G, 4G 또는 LTE, 5G 등), 메모리, 연결 컴포넌트들(예컨대, BluetoothTM, GPS(Global Positioning System) 등), 이들의 임의의 조합, 및/또는 다른 컴포넌트들를 포함할 수 있다. I/O 포트들(156)은, I2C(Inter-Integrated Circuit 2) 인터페이스, I3C(Inter-Integrated Circuit 3) 인터페이스, SPI(Serial Peripheral Interface) 인터페이스, 직렬 GPIO(General Purpose Input/Output) 인터페이스, MIPI(Mobile Industry Processor Interface)(예컨대, MIPI CSI-2 물리(PHY) 계층 포트 또는 인터페이스, AHB(Advanced High-performance Bus) 버스, 이들의 임의의 조합, 및/또는 다른 입력/출력 포트와 같이와 같은, 하나 이상의 프로토콜 또는 표준에 따른 임의의 적합한 입력/출력 포트들 또는 인터페이스를 포함할 수 있다. 일 예시적인 예에서, 호스트 프로세서(152)는 I2C 포트를 사용하여 이미지 센서(130)와 통신할 수 있고, ISP(154)는 MIPI 포트를 사용하여 이미지 센서(130)와 통신할 수 있다.
이미지 프로세서(150)는 디모자이킹, 색 공간 변환, 이미지 프레임 다운샘플링, 픽셀 보간, 자동 노출(AE) 제어, 자동 이득 제어(AGC), CDAF, PDAF, 자동 화이트 밸런스, HDR 이미지를 형성하기 위한 이미지 프레임들의 병합, 이미지 인식, 오브젝트 인식, 특징(feature) 인식, 입력들의 수신, 출력들 관리, 메모리 관리, 또는 이들의 일부 조합과 같은 다수의 태스크들을 수행할 수도 있다. 이미지 프로세서(150)는 이미지 프레임들 및/또는 프로세싱된 이미지들을 랜덤 액세스 메모리(RAM)(140/920), 판독전용 메모리(ROM)(145/925), 캐시(912), 메모리 유닛(915), 다른 저장 디바이스(930), 또는 이들의 일부 조합에 저장할 수도 있다.
다양한 입력/출력(I/O) 디바이스들(160)이 이미지 프로세서(150)에 연결될 수도 있다. I/O 디바이스들(160)은 디스플레이 스크린, 키보드, 키패드, 터치스크린, 트랙패드, 터치 감지 표면, 프린터, 임의의 다른 출력 디바이스들(935), 임의의 다른 입력 디바이스들(945), 또는 이들의 일부 조합을 포함할 수 있다. 일부 경우들에서, I/O 디바이스들(160)의 물리적 키보드 또는 키패드를 통해, 또는 I/O 디바이스들(160)의 터치스크린의 가상 키보드 또는 키패드를 통해 이미지 프로세싱 디바이스(105B)에 캡션이 입력될 수도 있다. I/O(160)는 디바이스(105B)와 하나 이상의 주변 디바이스들 사이의 유선 연결을 가능하게 하는 하나 이상의 포트들, 잭들, 또는 다른 커넥터들을 포함할 수도 있으며, 이를 통해 디바이스(105B)는 하나 이상의 주변 디바이스로부터 데이터를 수신하고/하거나 하나 이상의 주변 디바이스들로 데이터를 송신할 수도 있다. I/O(160)는 디바이스(105B)와 하나 이상의 주변 디바이스들 사이의 무선 연결을 가능하게 하는 하나 이상의 무선 트랜시버들을 포함할 수도 있으며, 이를 통해 디바이스(105B)는 하나 이상의 주변 디바이스로부터 데이터를 수신하고/하거나 하나 이상의 주변 디바이스들로 데이터를 송신할 수도 있다. 주변 디바이스들은 앞서 논의된 유형들의 I/O 디바이스들(160) 중 임의의 것을 포함할 수도 있고, 일단 그들이 포트들, 잭들, 무선 트랜시버들, 또는 다른 유선 및/또는 무선 커넥터들에 커플링되면 그들 자체로 I/O 디바이스들(160)로 간주될 수도 있다.
일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은 단일의 디바이스일 수도 있다. 일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은, 이미지 캡처 디바이스(105A)(예를 들어, 카메라) 및 이미지 프로세싱 디바이스(105B)(예를 들어, 카메라에 커플링된 컴퓨팅 디바이스)를 포함하는, 둘 이상의 별개의 디바이스들일 수도 있다. 일부 구현들에서 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는, 예를 들어 하나 이상의 와이어들, 케이블들, 또는 다른 전기 커넥터들을 통해, 그리고/또는 하나 이상의 무선 트랜시버들을 통해 무선으로, 함께 커플링될 수도 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는 서로로부터 연결해제될 수도 있다.
도 1a에 도시된 바와 같이, 수직 파선은 도 1a의 이미지 캡처 및 프로세싱 시스템(100)을 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)를 각각 나타내는 두 부분들로 분할한다. 이미지 캡처 디바이스(105A)는 렌즈(115), 제어 메커니즘들(120), 및 이미지 센서(130)를 포함한다. 이미지 프로세싱 디바이스(105B)는 이미지 프로세서(150)(ISP(154) 및 호스트 프로세서(152)를 포함함), RAM(140), ROM(145), 및 I/O(160)를 포함한다. 일부 경우들에서, ISP(154) 및/또는 호스트 프로세서(152)와 같은, 이미지 캡처 디바이스(105A)에 예시된 특정 컴포넌트들이 이미지 캡처 디바이스(105A)에 포함될 수도 있다.
이미지 캡처 및 프로세싱 시스템(100)은, 이동식 또는 고정식 전화 핸드셋(예컨대, 스마트폰, 셀룰러 전화기 등), 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 인터넷 프로토콜(IP) 카메라, 또는 임의의 다른 적합한 전자 디바이스와 같은 전자 디바이스를 포함할 수 있다. 일부 예들에서, 이미지 캡처 및 프로세싱 시스템(100)은 셀룰러 네트워크 통신들, 802.11 wi-fi 통신들, 무선 로컬 영역 네트워크(WLAN) 통신들, 또는 이들의 일부 조합과 같은 무선 통신들을 위한 하나 이상의 무선 트랜시버들을 포함할 수 있다. 일부 구현들에서, 이미지 캡처 디바이스(105A) 및 이미지 프로세싱 디바이스(105B)는 상이한 디바이스들일 수 있다. 예를 들어, 이미지 캡처 디바이스(105A)는 카메라 디바이스를 포함할 수 있고 이미지 프로세싱 디바이스(105B)는 모바일 핸드셋, 데스크톱 컴퓨터, 또는 다른 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스를 포함할 수 있다.
이미지 캡처 및 프로세싱 시스템(100)이 특정 컴포넌트들을 포함하는 것으로 도시되어 있지만, 당업자는 이미지 캡처 및 프로세싱 시스템(100)이 도 1a에 도시된 것들보다 더 많은 컴포넌트들을 포함할 수 있음을 이해할 것이다. 이미지 캡처 및 프로세싱 시스템(100)의 컴포넌트들은 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 하나 이상의 조합들을 포함할 수 있다. 예를 들어, 일부 구현들에서 이미지 캡처 및 프로세싱 시스템(100)의 컴포넌트들은, 본 명세서에서 설명된 다양한 동작들을 수행하기 위해, 하나 이상의 프로그래밍가능 전자 회로들(예컨대, 마이크로프로세서들, GPU들, DSP들, CPU들, 및/또는 다른 적합한 전자 회로들)을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있고 그리고/또는, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고/있거나 이들을 사용하여 구현될 수 있다. 소프트웨어 및/또는 펌웨어는, 컴퓨터 판독가능 저장 매체 상에 저장되고 이미지 캡처 및 프로세싱 시스템(100)을 구현하는 전자 디바이스의 하나 이상의 프로세서들에 의해 실행가능한 하나 이상의 명령들을 포함할 수 있다.
호스트 프로세서(152)는 (예컨대, I2C, I3C, SPI, GPIO, 및/또는 다른 인터페이스와 같은 외부 제어 인터페이스를 통해) 새로운 파라미터 설정들로 이미지 센서(130)를 구성할 수 있다. 일 예시적인 예에서, 호스트 프로세서(152)는 과거 이미지 프레임들로부터의 노출 제어 알고리즘의 내부 프로세싱 결과들에 기초하여 이미지 센서(130)에 의해 사용되는 노출 설정들을 업데이트할 수 있다. 호스트 프로세서(152)는 또한, 이미지 데이터가 ISP(154)에 의해 정확하게 프로세싱되도록 이미지 센서(130)로부터의 하나 이상의 입력 이미지 프레임들의 설정들과 매칭하도록 ISP(154)의 내부 파이프라인들 또는 모듈들의 파라미터 설정들을 동적으로 구성할 수 있다. ISP(154)의 프로세싱(또는 파이프라인) 블록들 또는 모듈들은, 무엇보다도 렌즈/센서 노이즈 보정, 디모자이킹, 컬러 변환, 이미지 속성들의 보정 또는 강화/억제, 디노이징 필터, 샤프닝 필터를 위한 모듈들을 포함할 수 있다. ISP(154)의 상이한 모듈들의 설정들은 호스트 프로세서(152)에 의해 구성될 수 있다. 각각의 모듈은 많은 수의 튜닝가능한 파라미터 설정들을 포함할 수 있다. 추가적으로, 상이한 모듈들이 이미지의 유사한 양상들에 영향을 미칠 수 있기 때문에 모듈들은 상호의존적일 수도 있다. 예를 들어, 디노이징 및 텍스처 보정 또는 강화는 양자 모두 이미지의 고주파 양상들에 영향을 미칠 수 있다. 그 결과, 캡처된 원시 이미지로부터 최종 이미지를 생성하기 위해 많은 수의 파라미터들이 ISP에 의해 사용된다.
일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(100)은 전술한 이미지 프로세싱 기능성들 중 하나 이상을 자동으로 수행할 수도 있다. 예를 들어, 제어 메커니즘들(120) 중 하나 이상은 자동 초점 동작들, 자동 노출 동작들, 및/또는 자동 화이트 밸런스 동작들(위에서 언급된 바와 같이 "3A"로 지칭됨)을 수행하도록 구성될 수도 있다. 일부 실시예들에서, 자동 초점 기능성은 이미지 캡처 디바이스(105A)로 하여금 원하는 이미지를 캡처하기 이전에 자동으로 초점을 맞출 수 있게 한다. 다양한 자동 초점 기술들이 존재한다. 예를 들어, 능동 자동 초점 기술들은 통상적으로 적외선 레이저들 또는 초음파 신호들을 방출하고 이들 신호들의 반사들을 수신함으로써, 카메라의 레인지(range) 센서를 통해 카메라와 이미지의 피사체 사이의 레인지를 결정한다. 또한, 수동 자동 초점 기술들은 카메라의 초점을 맞추기 위해 카메라 자체의 이미지 센서를 사용하고, 따라서 카메라에 추가적인 센서들을 통합시킬 필요가 없다. 수동 AF 기법들은 대비 검출 자동 초점(CDAF), 위상 검출 자동 초점(PDAF), 및 일부 경우들에서는 양자 모두를 사용하는 하이브리드 시스템들을 포함한다. 이미지 캡처 및 프로세싱 시스템(100)은 이들 또는 임의의 추가적인 유형의 자동 초점 기술을 구비할 수도 있다.
도 1b, 도 1c, 및 도 1d는 이미지 캡처 및 프로세싱 시스템(100)에 통합될 수도 있는 PDAF 카메라 시스템들의 예들을 제공한다. 특히, 도 1b는 위상 일치이고 따라서 인 포커스(in focus)인 PDAF 카메라 시스템을 예시한다. 광선들(175)은 피사체(135)(예를 들어, 사과)로부터 피사체(135)를 갖는 장면을 초점을 맞추는 렌즈(115)(도 1a에도 도시됨)를 통해 (도 1a에 도시된 이미지 센서(130)와 같은) 이미지 센서로 이동할 수도 있으며, 여기서 이미지 센서는 포커스픽셀들에 대응하는 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)를 포함한다. 포커스 포토다이오드들(155A 및 155B)는 이미지 센서의 픽셀 어레이의 1 개 또는 2 개의 포커스 픽셀들과 연관될 수도 있다(예컨대, 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)는 단일의 마이크로렌즈(157)를 공유하는 단일의 포커스 픽셀의 2 개의 포토다이오드들일 수도 있고, 또는 포커스 포토다이오드(155A)는 제1 포커스 픽셀과 연관될 수도 있고 포커스 포토다이오드(155B)는 제2 포커스 픽셀과 연관될 수도 있으며, 양자의 포커스 픽셀들은 단일의 마이크로렌즈(157)를 공유한다). 일부 경우들에서, 광선들(175)은 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)에 떨어지기 전에 마이크로렌즈(157)를 통해 이동할 수도 있다. 카메라 시스템(180)이 도 1b의 "인 포커스" 상태(158)에 있을 때, 광선들(175)은 궁극적으로 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)의 포지션에 대응하는 평면에서 수렴할 수도 있다. 카메라 시스템(180)이 도 1b의 "인 포커스" 상태(158)에 있을 때, 광선들(175)은 또한 렌즈(115)를 통과한 후에 그러나 마이크로렌즈(157) 및/또는 포커스 포토다이오드들(155A 및 155B)에 도달하기 전에 초점면(116)(이미지 평면으로도 알려짐)에서 수렴할 수도 있다.
도 1b의 카메라(180)가 인 포커스 상태(158)에 있기 때문에, 포커스 포토다이오드들(155A 및 155B)로부터의 데이터는 정렬되고, 도 1c 및 도 1d 각각에서의 위상 불일치 상태들(162 및 166)에 의해 야기된 피사체(135)의 오정렬된 표현들과는 대조적으로, 이러한 정렬로 인한 피사체(135)의 명확하고 선명한 표현을 도시하는 이미지(190A)로 여기에 표현된다. 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)로부터의 데이터가 위상차(phase disparity)를 갖지 않거나 매우 적은 위상차(예컨대, 미리 결정된 위상차 임계치 아래로 떨어지는 위상차)를 갖기 때문에, 인 포커스 상태(158)는 또한 "위상 일치" 상태로 지칭될 수도 있다.
도 1c는 프론트 포커스로 위상 불일치인 도 1b의 PDAF 카메라 시스템을 예시한다. 도 1b의 PDAF 카메라 시스템(180)은 도 1b의 PDAF 카메라 시스템(180)과 동일하지만, 렌즈(115)는 피사체(135)에 더 가깝게 그리고 포커스 포토다이오드들(155A 및 155B)로부터 더 멀리 이동되고, 따라서 "프론트 포커스" 상태(162)에 있다. "인 포커스" 상태(158)에 대한 렌즈 포지션은 참조를 위해 점선 윤곽선으로 여전히 도 1c에서 도시되며, 양쪽 화살표는 "프론트 포커스"(162) 렌즈 포지션과 "인 포커스"(158) 렌즈 포지션 사이에서의 렌즈의 이동을 나타낸다.
카메라 시스템(180)이 도 1c의 "프론트 포커스" 상태(162)에 있을때, 광선(175)은 궁극적으로 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155) 전에, 즉 마이크로렌즈(157)과 포커스 포토 다이오드들(155A 및 155B) 사이에 평면(파선으로 표시됨)에서 수렴할 수도 있다. 광선들(175)은 또한, 렌즈(115)를 통과한 후 그러나 마이크로렌즈(157) 및/또는 포커스 포토다이오드들(155A 및 155B)에 도달하기 전에 초점면(116) 전의 포지션(다른 점선으로 표시됨)에서 수렴할 수도 있다. 도 1c의 카메라(180) 내의 광(175)이 "프론트 포커스" 상태(162)에서 위상 불일치이기 때문에, 포커스 포토다이오드들(155A 및155B)로부터의 데이터는 오정렬되며, 피사체(135)의 오정렬된 블랙 컬러링된 및 화이트 컬러링된 표현들을 도시하는 이미지(190B)로 여기에 표현되며, 여기서 이미지(190B)에서의 오정렬의 방향은 프론트 포커스 상태(162)에 관련되고, 이미지(190B)에서의 오정렬의 거리는 초점이 맞는 상태(158)에서의 렌즈의 포지션으로부터 렌즈(115)의 거리에 관련된다.
도 1d는 백 포커스로 위상 불일치인 도 1b의 PDAF 카메라 시스템을 예시한다. 도 1d의 PDAF 카메라 시스템(180)은 도 1b의 PDAF 카메라 시스템(180)과 동일하지만, 렌즈(115)는 피사체(135)로부터 더 멀리 그리고 포커스 포토다이오드들(155A 및 155B)에 더 가깝게 이동되고, 따라서 "백 포커스" 상태(166)("후방(rear) 포커스" 상태로도 알려짐)에 있다. "인 포커스" 상태(158)에 대한 렌즈 포지션은 여전히 참조를 위해 점선 윤곽선으로 도시되며, 양쪽 화살표는 "백 포커스" 상태(166)에 대한 렌즈 포지션과 "인 포커스" 상태(158)에 대한 렌즈 포지션 사이의 렌즈의 이동을 나타낸다.
카메라 시스템(180)이 도 1d의 "백 포커스" 상태(166)에 있을 때, 광선들(175)은 궁극적으로 포커스 포토다이오드(155A) 및 포커스 포토다이오드(155B)의 포지션을 넘어 평면(파선으로 표시됨)에서 수렴할 수도 있다. 광선들(175)은 또한, 렌즈(115)를 통과한 후 그러나 마이크로렌즈(157) 및/또는 포커스 포토다이오드들(155A 및 155B)에 도달하기 전에 초점면(116)을 넘어 포지션(다른 점선으로 표시됨)에서 수렴할 수도 있다. 도 1d의 카메라(180) 내의 광(175)이 "백 포커스" 상태(166)에서 위상 불일치이기 때문에, 포커스 포토다이오드들(155A 및155B)로부터의 데이터는 오정렬되며, 피사체(135)의 오정렬된 블랙 컬러링된 및 화이트 컬러링된 표현들을 도시하는 이미지(190C)로 여기에 표현되며, 여기서 이미지(190C)에서의 오정렬의 방향은 백 포커스 상태(166)에 관련되고, 이미지(190C)에서의 오정렬의 거리는 초점이 맞는 상태(158)에서의 렌즈의 포지션으로부터 렌즈(115)의 거리에 관련된다.
광선들(175)이 프론트 포커스 상태(162)에서와 같이 포커스 포토다이오드들(155A 및 155B)의 평면 전에 수렴하거나 백 포커스 상태(166)에서와 같이 포커스 포토다이오드들(155A 및 155B)의 평면을 넘어 수렴할 때, 이미지 센서에 의해 생성된 결과적인 이미지는 초점이 맞지 않거나 흐릿할 수도 있다. 이미지가 초점이 맞지 않는 경우에, 렌즈(115)는 렌즈(115)가 백 포커스 상태(166)에 있으면 전방으로(피사체(135)를 향해 그리고 포토다이오드들(155A 및 155B)로부터 멀리) 이동될 수 있고, 또는 렌즈가 프론트 포커스 상태(162)에 있으면 후방으로(피사체(135)로부터 멀리 그리고 포토다이오드들(155A 및 155B)을 향해) 이동될 수 있다. 렌즈(115)는, 일부 경우들에서 카메라 시스템(180) 내 렌즈의 움직임의 가능한 레인지를 나타내는 미리 결정된 길이(R)를 갖는 포지션들의 레인지 내에서 전방으로 또는 후방으로 이동될 수도 있다. 카메라 시스템(180), 또는 그 내부의 컴퓨팅 시스템은, 포커스 포토다이오드들(155A 및 155B)과 같은, 상이한 방향들로부터의 광을 수신하는 2 개의 포커스 포토다이오드들로부터의 데이터 사이의 차이들로서 계산된 하나 이상의 위상차 값들에 기초하여 이미지를 초점에 맞게하도록 렌즈(115)의 포지션을 조정하는 거리 및 방향을 결정할 수도 있다. 렌즈(115)의 이동의 방향은 포커스 포토다이오드들(155A 및 155B)로부터의 데이터가 위상 불일치인 것으로 결정되는 방향, 또는 위상차가 양 또는 음인지에 대응할 수도 있다. 렌즈(115)의 이동의 거리는 포커스 포토다이오드들(155A 및 155B)로부터의 데이터가 위상 불일치인 것으로 결정되는 정도 또는 양, 또는 위상 시차의 절대값에 대응할 수도 있다.
카메라(180)는 상이한 상태들(예컨대, 프론트 포커스 상태(162), 백 포커스 상태(166), 및 인 포커스 상태(158))에 대응하는 렌즈 포지션들 사이에서 렌즈(115)를 이동시키는 모터들(도시되지 않음) 및 모터들을 작동시키도록 카메라 내의 컴퓨팅 시스템을 활성화시키는 모터 액추에이터들(도시되지 않음)을 포함할 수도 있다. 도 1b, 도 1c, 및 도 1d의 카메라(180)는 일부 경우들에서 또한, 렌즈들, 거울들, 부분 반사(PR) 거울들, 프리즘들, 포토다이오드들, 이미지 센서들, 및/또는 카메라 또는 다른 광학 장비에서 때때로 발견되는 다른 컴포넌트들과 같은 다양한 추가적인 예시되지 않은 컴포넌트들을 포함할 수도 있다. 일부 경우들에서, 포커스 포토다이오드들(155A 및 155B)는 PDAF 포토다이오드들, PDAF 다이오드들, 위상 검출(PD) 포토다이오드들, PD 다이오드, PDAF 픽셀 포토다이오드들, PDAF 픽셀 다이오드들, PD 픽셀 포토다이오드, PD 픽셀 다이오드들, 포커스 픽셀 포토다이오드들, 포커스 픽셀 다이오드들, 픽셀 포토다이오드들, 픽셀 다이오드들, 또는 일부 경우들에서는 단순히 포토다이오드들 또는 다이오드들로 지칭될 수도 있다.
도 2a 및 도 2b는 이미지 캡처 및 프로세싱 시스템(100)이 자동 초점 동작 또는 다른 "3A" 동작을 수행하는 동안 캡처 및/또는 프로세싱될 수도 있는 이미지 프레임들의 예를 예시한다. 구체적으로, 도 2a 및 도 2b는 고정된 ROI를 활용하는 종래의 자동 초점 동작의 예를 예시한다. 도 2a에 예시된 바와 같이, 시스템(100)의 이미지 캡처 디바이스(105A)는 이미지 프레임(202)을 캡처할 수도 있다. 일부 경우들에서, 이미지 프로세싱 디바이스(105B)는 (예컨대, 이미지 프레임(202)이 프리뷰 스트림 내에 디스플레이되는 동안) 사용자가 이미지 프레임(202) 내의 위치(208)를 선택했음을 검출할 수도 있다. 예를 들어, 이미지 프로세싱 디바이스(105B)는 사용자가 위치(208)에 대응하는 픽셀 또는 픽셀들의 그룹의 선택을 포함하는 입력을 (예컨대, 손가락, 제스처, 스타일러스 및/또는 다른 적절한 입력 메커니즘을 사용하여) 제공했다고 결정할 수도 있다. 이미지 프로세싱 디바이스(105B)는 위치(208)를 포함하는 ROI(204)를 결정할 수도 있다. 이미지 프로세서(150)는 ROI(204) 내의 이미지 데이터에 대해 자동 초점 동작 또는 다른 "3A" 동작을 수행할 수도 있다. 자동 초점 동작의 결과는 도 2a에 도시된 이미지 프레임 부분(206)에 예시된다.
도 2b는 ROI(204)의 예시적인 실시예를 예시한다. 이 예에서, 이미지 프로세싱 디바이스(105B)는, 미리 결정된 폭(210) 및 미리 결정된 높이(210)에 의해 치수들이 정의된 이미지 프레임(202)의 영역 내의 위치(208)를 센터링함으로써 ROI(204)를 결정 및/또는 생성할 수도 있다. 일부 경우들에서, 미리 결정된 폭(212) 및 미리 결정된 높이(210)는 (10 픽셀들, 50 픽셀들, 100 픽셀들 등과 같은) 미리 선택된 수의 픽셀들에 대응할 수도 있다. 추가적으로 또는 대안적으로, 미리 결정된 폭(212) 및 미리 결정된 높이(210)는 사용자에게 이미지 프레임(202)을 디스플레이하는 디스플레이 내의 미리 선택된 거리들(예컨대, 0.5 센티미터, 1 센티미터, 2 센티미터 등)에 대응할 수도 있다. 도 2b는 ROI(204)를 직사각형으로서 예시하지만, ROI(204)는 다른 것들 중에서도 정사각형, 원형, 타원형을 포함하는 임의의 대안적인 형상일 수도 있다.
일부 경우들에서, 이미지 프로세싱 디바이스(105B)는 이미지 프레임(202) 내의 픽셀들의 좌표들을 나타내는 정보를 액세스 및/또는 분석함으로써 ROI(204)의 경계들에 대응하는 픽셀들을 결정할 수도 있다. 예시적인 예로서, 사용자에 의해 선택된 위치(208)는 이미지 프레임(202) 내에서 200의 x축 좌표(수평 방향) 및 300의 y축 좌표(수직 방향)를 갖는 픽셀에 대응할 수도 있다. 만약 이미지 프로세싱 디바이스(105B)가, 높이가 100 픽셀이고 길이가 200 픽셀인 고정된 ROI들을 생성하도록 구성된다면, 이미지 프로세싱 디바이스(105B)는 ROI(204)을 좌표들 (150, 400), (250, 400), (150, 200), (250, 200)에 대응하는 모서리를 갖는 박스로서 정의할 수도 있다. 이미지 프로세싱 디바이스(105B)는 고정된 ROI들을 생성하기 위해 임의의 추가적인 또는 대안적인 기법을 활용할 수도 있다.
도 3a는 이미지 캡처 및 프로세싱 시스템(300)의 예를 예시하는 블록도이다. 일부 실시예들에서, 이미지 캡처 및 프로세싱 시스템(300)은 도 2a 및 도 2b에 예시된 이미지 프로세싱 동작을 개선하도록 구성된다. 이미지 캡처 및 프로세싱 시스템(300)은 이미지 캡처 디바이스(105A), 이미지 프로세싱 디바이스(105B), 및 렌즈(115)를 포함하는, 도 1a에 도시된 이미지 캡처 및 프로세싱 시스템(100)의 임의의 하나 이상의 컴포넌트들을 포함할 수도 있다. 일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(300)의 컴포넌트들의 전부 또는 부분이 도 3b에 도시된 디바이스(322)와 같은 컴퓨팅 디바이스 내에서 구현될 수도 있다. 디바이스(322)는 모바일 디바이스(예컨대, 모바일 폰), 데스크톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 확장 현실(XR) 디바이스(예컨대, 가상 현실(VR) 헤드셋, 증강 현실(AR) 헤드셋, AR 안경, 또는 다른 XR 디바이스), 웨어러블 디바이스(예컨대, 네트워크 연결형 시계 또는 스마트워치, 또는 다른 웨어러블 디바이스), 서버 컴퓨터, 자율 주행 차량 또는 자율 주행 차량의 컴퓨팅 디바이스, 로봇 디바이스, 텔레비전, 및/또는 본 명세서에 설명된 이미지 프로세싱 동작들을 수행하기 위한 리소스 능력들을 갖는 임의의 다른 컴퓨팅 디바이스와 같은 임의의 적합한 디바이스를 포함할 수 있다.
도 3a에 도시된 바와 같이, 이미지 캡처 및 프로세싱 시스템(300)은 디스플레이(310)를 포함할 수도 있다. 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프레임들을 캡처하고 그후 디스플레이(310) 내에 이미지 프레임들을 디스플레이할 수 있다. 디스플레이(310)는 이미지 데이터를 시각적으로 디스플레이하도록 구성된 임의의 적합한 유형의 스크린 또는 인터페이스를 포함할 수도 있다. 일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프레임들에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하도록 이미지 캡처 및 프로세싱 시스템(300)에 지시하는 입력을 사용자가 제공할 수 있게 하도록, 캡처된 이미지 프레임들을 디스플레이할 수 있다. 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프로세싱 동작들을 수행하도록 구성된 하나 이상의 엔진들을 포함할 수도 있다. 도 3a에 도시된 바와 같이, 이들 엔진들은 입력 검출 엔진(302), 오브젝트 검출 엔진(304), ROI 조정 엔진(306), 및 이미지 프로세싱 엔진(308)을 포함할 수도 있다.
도 3a에 도시된 바와 같이, 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프레임(312)을 캡처 및 디스플레이할 수 있다. 그 후, 입력 검출 엔진(302)은 이미지 프레임(312)에 제공된 사용자 입력(314)을 검출하기 위해 디스플레이(310)를 모니터링할 수도 있다. 일부 경우들에서, 사용자 입력(314)은 사용자가 이미지 프레임(312) 내의 위치(예를 들어, 픽셀)를 선택하는 것을 포함하고/하거나 이에 대응할 수 있다. 사용자 입력(314)은 선택된 위치를 둘러싸는 및/또는 근처의 이미지 데이터에 대해 (자동 초점 알고리즘과 같은) 이미지 프로세싱 동작을 수행하기 위한 요청을 나타낼 수도 있다. 일부 경우들에서, 이미지 캡처 및 프로세싱 시스템(300)은 사용자가 적어도 임계 시간량(예컨대, 0.5 초, 1 초 등) 동안 사용자 입력(314)을 제공(예컨대, 디스플레이(310)를 터치)한다고 결정하는 것에 기초하여 사용자 입력(314)이 이미지 프로세싱 동작을 수행하기 위한 요청을 나타낸다고 결정할 수 있다. 입력 검출 엔진(302)은 사용자 입력(314)을 검출하기 위해 디스플레이(310)를 주기적으로 또는 연속적으로 모니터링할 수도 있다. 예를 들어, 입력 검출 엔진(302)은 이미지 프레임(312)이 프리뷰 스트림 내에 디스플레이되는 동안 디스플레이(310)를 모니터링할 수도 있고 그리고/또는 이미지 프레임(312)이 이미지 캡처 및 프로세싱 시스템(300)의 메모리(예컨대, 메인 메모리)에 저장된 후에 디스플레이(310)를 모니터링할 수도 있다. 일부 경우들에서, 입력 검출 엔진(302)은 다수의 위치들(예컨대, 다수의 픽셀들)의 선택과 연관된 사용자 입력을 검출할 수 있다. 일부 예들에서, 각각의 선택된 위치는 하나 이상의 오브젝트들을 포함하는 상이한 고정된 ROI에 대응할 수 있다.
일부 경우들에서, 오브젝트 검출 엔진(304)은 사용자 입력(314)에 적어도 부분적으로 기초하여 이미지 프레임(312) 내의 이미지 데이터에 대해 오브젝트 검출 동작 또는 알고리즘을 수행할 수도 있다. 이 오브젝트 검출 동작 또는 알고리즘의 목적은, 사용자 입력(314)에 대응하는 위치를 둘러싸는 그리고/또는 근처에 있는 이미지 프레임(312)의 영역 내의 하나 이상의 오브젝트들을 식별하는 것일 수도 있다. 본 명세서에서 사용되는 바와 같이, 용어 "오브젝트"는 일반적으로 이미지 프레임 내의 (무엇보다도, 사람, 디바이스, 동물, 차량, 평면, 풍경 특징과 같은) 아이템 또는 엔티티의 묘사를 지칭한다. 예시적인 실시예에서, 오브젝트 검출 엔진(304)은 선택된 위치 주위에 센터링되는(또는 대략적으로 센터링되는) 고정된 ROI 내의 오브젝트들을 검출할 수도 있다. 오브젝트 검출 엔진(304)은 도 2a 및 도 2b와 관련하여 설명된 기법들을 포함하는 임의의 적합한 방법 또는 기법을 사용하여 고정된 ROI를 결정할 수도 있다. 입력 검출 엔진(302)이 다수의 위치들의 선택과 연관된 사용자 입력을 검출하는 예들에서, 오브젝트 검출 엔진(304)은 각각의 선택된 위치에 대응하는 고정된 ROI들 내에 적어도 부분적으로 포함되는 하나 이상의 오브젝트들을 검출할 수 있다.
일부 예들에서, 오브젝트 검출 엔진(304)은 이미지 프레임(312) 내의 오브젝트들을 검출하기 위해 하나 이상의 오브젝트 검출 동작들 또는 알고리즘들(예컨대, 얼굴 검출 및/또는 인식 알고리즘, 특징 검출 및/또는 인식 알고리즘, 에지 검출 알고리즘, 경계 추적 기능, 이들의 임의의 조합, 및/또는 다른 오브젝트 검출 및/또는 인식 기법)을 구현한다. 임의의 오브젝트 검출 기법이 오브젝트를 검출하는데 사용될 수 있다. 일부 경우들에서, 특징 검출은 오브젝트들의 특징들을 검출(또는 위치확인)하는 데 사용될 수 있다. 특징들에 기초하여, 오브젝트 검출 및/또는 인식은 오브젝트를 검출할 수 있고, 일부 경우들에서는 검출된 오브젝트를 인식하고 오브젝트의 카테고리 또는 유형으로 분류할 수 있다. 예를 들어, 특징 인식은 장면의 영역에서 많은 에지들 및 코너들을 식별할 수도 있다. 오브젝트 검출은 영역에서의 검출된 에지들 및 코너들이 모두 단일 오브젝트에 속한다는 것을 검출할 수도 있다. 얼굴 검출이 수행되는 경우, 얼굴 검출은 오브젝트가 사람의 얼굴임을 식별할 수도 있다. 오브젝트 인식 및/또는 얼굴 인식은 해당 얼굴에 대응하는 사람의 신원을 추가로 식별할 수도 있다.
일부 구현들에서, 오브젝트 검출 동작 또는 알고리즘은 동일한 유형들의 오브젝트들 및/또는 특징들의 이미지에 대해 머신 러닝 알고리즘을 사용하여 트레이닝된 머신 러닝 모델에 기초할 수 있으며, 그 알고리즘에 의한 모델의 트레이닝에 기초하여 이미지의 특징을 추출하고 그러한 특징들을 포함하는 오브젝트를 검출 및/또는 분류할 수도 있다. 예를 들어, 머신 러닝 알고리즘은 뉴럴 네트워크(NN), 이를테면 컨볼루셔널 뉴럴 네트워크(CNN), 시간 지연 뉴럴 네트워크(TDNN), 딥 피드 포워드 뉴럴 네트워크(DFFNN), 순환 뉴럴 네트워크(RNN), 오토인코더(AE), 변이형 AE(VAE), 디노이징 AE(DAE), 희소(sparse) AE(SAE), 마르코프 체인(MC), 퍼셉트론, 또는 이들의 일부 조합일 수도 있다. 머신 러닝 알고리즘은 지도 학습(supervised learning) 알고리즘, 비지도 학습 알고리즘, 반지도 학습 알고리즘, 생성적 적대 뉴럴 네트워크(GAN) 기반 학습 알고리즘, 이들의 임의의 조합, 또는 다른 학습 기법들일 수도 있다.
일부 구현들에서, 컴퓨터 비전 기반 특징 검출 기법 또는 알고리즘이 사용될 수 있다. 상이한 유형들의 컴퓨터 비전 기반 오브젝트 검출 알고리즘들이 사용될 수 있다. 일 예시적인 예에서, 템플릿 매칭 기반 기법이 이미지 내 오브젝트를 검출하는 데 사용될 수 있다. 다양한 유형들의 템플릿 매칭 알고리즘들이 사용될 수 있다. 템플릿 매칭 알고리즘의 일 예는 Haar 또는 Haar 유사(Haar-like) 특징 추출, 적분 이미지(integral image) 생성, 에이다부스트(Adaboost) 트레이닝, 및 캐스케이드형 분류기들을 수행할 수 있다. 그러한 오브젝트 검출 기법은 이미지에 걸쳐 슬라이딩 윈도우(예컨대, 직사각형, 원형, 삼각형, 또는 다른 형상을 가짐)를 적용함으로써 검출을 수행한다. 적분 이미지는, 이미지로부터 특정한 영역 특징들, 예를 들어 직사각형 또는 원형 특징들을 평가하는 이미지 표현이 되도록 컴퓨팅될 수도 있다. 각각의 현재 윈도우에 대해, 현재 윈도우의 Haar 특징들은 위에서 언급된 적분 이미지로부터 컴퓨팅될 수 있으며, 적분 이미지는 Haar 특징들을 컴퓨팅하기 전에 컴퓨팅될 수 있다.
Haar 특징들은 적분 이미지의 것들과 같은 오브젝트 이미지의 특정한 특징 영역들 내의 이미지 픽셀들의 합들을 계산함으로써 컴퓨팅될 수 있다. 예를 들어, 얼굴들에서, 눈이 있는 영역은 전형적으로, 콧등 또는 뺨들이 있는 영역보다 더 어둡다. Haar 특징들은 최상의 특징들을 선택하고/하거나 이들을 사용하는 분류기들을 트레이닝할 수 있는 학습 알고리즘(예를 들어, 에이다부스트 학습 알고리즘)에 의해 선택될 수 있고, 캐스케이드형 분류기로 효과적으로 특정한 오브젝트(예를 들어, 얼굴 또는 다른 오브젝트) 윈도우 또는 상이한 오브젝트(예를 들어, 비(non)얼굴 윈도우)로서 윈도우를 분류하는데 사용될 수 있다. 캐스케이드형 분류기는 캐스케이드로 결합된 다수의 분류기들을 포함하며, 이는 오브젝트 유사 영역들에 대해 더 많은 연산을 수행하는 동안 이미지의 배경 영역들이 신속하게 폐기(discard)되는 것을 허용한다. 오브젝트의 예로서 얼굴을 사용하여, 캐스케이드형 분류기는 현재 윈도우를 얼굴 카테고리 또는 비얼굴 카테고리로 분류할 수 있다. 하나의 분류기가 윈도우를 비얼굴 카테고리로서 분류하면, 그 윈도우는 폐기된다. 그렇지 않고, 하나의 분류기가 윈도우를 얼굴 카테고리로서 분류하면, 캐스케이드형 배열에서의 다음 분류기가 다시 테스트하는데 사용될 것이다. 모든 분류기들이 현재 윈도우가 얼굴(또는 다른 오브젝트)이라고 결정할 때까지, 윈도우는 특정한 오브젝트(예를 들어, 얼굴 또는 다른 오브젝트)가 되기 위한 후보로서 라벨링될 것이다. 모든 윈도우들이 검출된 후, 하나 이상의 검출된 오브젝트들(예를 들어, 얼굴들 또는 이미지 내의 다른 오브젝트)의 최종 결과를 생성하기 위해 각각의 얼굴 주위의 윈도우들을 그룹화하는데 비최대 억제(non-max suppression) 알고리즘이 사용될 수 있다.
일부 경우들에서, 오브젝트 검출 동작 또는 알고리즘은 오브젝트의 경계들을 검출 및/또는 출력할 수도 있다. 본 명세서에서 사용되는 바와 같은 용어 "오브젝트의 경계"는 오브젝트와 하나 이상의 다른 오브젝트들 사이의 시각적 또는 물리적 구별을 지칭할 수 있다. 일부 예들에서, 오브젝트의 경계는 오브젝트의 윤곽(예를 들어, 오브젝트의 형상, 에지들, 및/또는 윤곽선)에 (대략적으로) 대응하고 그리고/또는 그에 의해 정의될 수도 있다. 그러나, 오브젝트의 경계는 반드시 오브젝트의 윤곽과 직접 또는 정확히 정렬될 필요는 없다(예를 들어, 오브젝트의 경계는 오브젝트의 윤곽으로부터 특정 거리 및/또는 특정 수의 픽셀들 내에서 결정될 수도 있다). 일부 경우들에서, 오브젝트 검출 동작 또는 알고리즘은 오브젝트 경계의 표시를 오브젝트의 경계에 대응하는 픽셀 좌표들의 세트로서 출력할 수도 있다. 추가적으로 또는 대안적으로, 오브젝트 검출 동작 또는 알고리즘은 오브젝트의 경계에 대응하는 하나 이상의 곡선들(예를 들어, 수식들)로서 오브젝트 경계의 표시를 출력할 수도 있다. 일 실시예에서, 픽셀 좌표들 및/또는 곡선들은 물체의 윤곽을 정밀하게 따를 수도 있다(예컨대, 물체의 윤곽을 정의할 수도 있다). 다른 실시예들에서, 픽셀 좌표들 및/또는 곡선들은 물체의 경계를 대략적으로 따를 수도 있다. 예를 들어, 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것은 오브젝트의 바운딩 박스, 또는 오브젝트를 포함하는 (알파 형상 또는 컨벡스 헐(convex hull)과 같은) 다각형을 정의하는 픽셀 좌표들 및/또는 곡선들을 출력할 수도 있다.
오브젝트 검출 엔진(304)에 의해 수행되는 오브젝트 검출 동작 또는 알고리즘은 이미지 프레임(312)의 영역(예를 들어, 고정된 ROI) 내에서 하나 이상의 오브젝트(316)를 검출할 수도 있다. 일 예에서, 오브젝트 검출 엔진(304)은 영역 내에 완전히 묘사된 각각의 오브젝트(예컨대, 각각의 오브젝트들의 경계들이 영역 내에 완전히 포함됨)를 검출할 수도 있다. 다른 예에서, 오브젝트 검출 엔진(304)은 영역 내에 적어도 부분적으로 포함된 각각의 오브젝트를 검출할 수도 있다. 추가 예에서, 오브젝트 검출 엔진(304)은 다수의 오브젝트들이 영역 내에 적어도 부분적으로 포함된 것을 검출할 수도 있지만, 하나 이상의 오브젝트들이 다른 검출된 오브젝트들보다 더 중요하고 그리고/또는 더 관련성이 있다고 결정할 수도 있다. 예를 들어, 오브젝트 검출 엔진(304)은 사용자가 이미지 프로세싱 동작의 대상으로서 제2 오브젝트보다는 제1 오브젝트를 선택하려고 의도했을 가능성이 더 크다고 결정할 수도 있다. 오브젝트 검출 엔진(304)은, 제1 오브젝트에 대응하는 사용자에 의해 선택된 픽셀, 제2 오브젝트보다 큰 제1 오브젝트, 제1 오브젝트가 이미지 프레임(312)에 묘사된 장면의 전경(배경이 아님)에 있는 것, 그리고/또는 제1 오브젝트가 특정 유형의 오브젝트인 것과 같은 다양한 인자들에 기초하여 제1 오브젝트가 제2 오브젝트보다 더 중요하고/하거나 더 관련성이 있다고 결정할 수도 있다. 예시적인 예로서, 오브젝트 검출 엔진(304)은 고정된 ROI가 얼굴 및 나무의 묘사들을 포함한다고 결정할 수도 있다. 오브젝트 검출 엔진(304)은 얼굴이 나무보다 이미지 프레임(312) 내에서 더 중요할 가능성이 있다고 결정할 수도 있고, 따라서 얼굴이 이미지 프로세싱 동작의 의도된 대상라고 결정할 수도 있다. 다른 예시적인 예에서, 오브젝트 검출 엔진(304)은 고정된 ROI가 2 개의 나무들을 포함하는 것을 검출하고 이미지 프로세싱 동작의 의도된 대상이 묘사된 장면의 전경에 더 가까운 트리라고 결정할 수도 있다.
일부 예들에서, 오브젝트 검출 엔진(304)은 (예를 들어, 입력 검출 엔진(302)이 사용자 입력(314)을 검출한 후에만) 사용자 입력(314)에 응답하여 이미지 프레임(312) 내에서 오브젝트 검출을 수행할 수도 있다. 예를 들어, 오브젝트 검출 엔진(304)은 사용자 입력(314)을 수신하기 전에 이미지 프레임(312) 내의 오브젝트들을 검출할 수 있을 수도 있지만, 이미지 캡처 및 프로세싱 시스템(300)은 사용자 입력(314)이 검출될 때까지 대기함으로써 컴퓨팅 리소스들 및 전력의 소비를 감소시킬 수도 있다. 사용자 입력(314)은 사용자가 이미지 프로세싱 동작을 사용하여 향상 또는 리파인(refine)하기를 원하는 특정한 영역 및/또는 오브젝트를 나타내기 때문에, 이미지 프레임(312)의 다른 영역들 내에서 오브젝트 검출을 수행하는 것이 불필요할 수도 있다. 따라서, 사용자 입력을 수신할 때까지 오브젝트 검출을 수행하기를 대기함으로써, 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프레임들 내에서 특정한 오브젝트들에 대해 효율적이고 커스터마이징가능한 이미지 프로세싱 동작들을 수행하는 것을 용이하게 할 수도 있다.
오브젝트 검출 엔진(304)이 하나 이상의 오브젝트들(316)을 검출한 후, ROI 조정 엔진(306)은 하나 이상의 오브젝트들(316)의 하나 이상의 경계들에 기초하여 조정된 ROI(318)를 결정할 수도 있다. 예를 들어, 오브젝트 검출 엔진(304)이 이미지 프레임(312) 내의 오브젝트들을 검출하기 위해 고정된 ROI 내의 이미지 콘텐츠를 탐색했다면, 오브젝트 검출 엔진(304)은 하나 이상의 오브젝트들(316)의 경계들에 더 정확하게 대응하고/하거나 따르도록, 고정된 ROI의 하나 이상의 경계들을 조정할 수 있다. 일부 경우들에서, 고정된 ROI를 조정하는 것의 목표는 이미지 프레임(312) 내의 고정된 ROI의 경계들과 하나 이상의 오브젝트들(316)의 경계들 사이의 거리들을 감소시키는 것일 수도 있다. 조정된 ROI(318)의 경계들이 반드시 하나 이상의 오브젝트들(316)의 경계들을 정밀하게 따를 필요는 없지만, 조정된 ROI(318)는 하나 이상의 오브젝트들(316)의 형상 및/또는 사이즈를 더 정확하게 반영할 수도 있다.
고정된 ROI를 조정하는 예들은, 제한 없이, 고정된 ROI의 사이즈를 감소시키는 것, 고정된 ROI의 사이즈를 증가시키는 것, 고정된 ROI의 위치를 변경하는 것, 고정된 ROI의 형상을 변경하는 것, 그에 따른 조합들, 또는 고정된 ROI에 대한 임의의 추가적인 유형의 조정을 포함한다. 예시적인 예에서, 고정된 ROI를 조정하는 것은 하나 이상의 축들(예컨대, x축, y축, 및/또는 방사축(radial axis))을 따라 고정된 ROI의 미리 결정된 사이즈를 증가시키거나 감소시키는 것을 포함할 수 있다. ROI 조정 엔진(306)은, 고정된 ROI의 사이즈만, 형상만, 또는 사이즈 및 형상 양자 모두를 포함하는, 고정된 ROI의 미리 결정된 사이즈 및 형상의 임의의 조합을 조정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 고정된 ROI의 각각의 치수(예를 들어, 높이 및 폭)를 동일한 양만큼 조정할 수 있으며, 이는 고정된 ROI의 미리 결정된 사이즈를 조정할 수도 있지만 고정된 ROI의 미리 결정된 형상은 조정하지 않을 수도 있다. 다른 예에서, ROI 조정 엔진(306)은 고정된 ROI의 미리 결정된 형상을 변경하지만 고정된 ROI의 미리 결정된 사이즈를 변경하지 않는 방식으로 고정된 ROI의 하나 이상의 치수들을 조정할 수 있다(예를 들어, 조정된 ROI는 고정된 ROI와 동일한 수의 픽셀들을 포함할 수도 있다). 추가 예에서, ROI 조정 엔진(306)은, 오브젝트 검출 엔진(304)에 의해 수행된 오브젝트 검출 알고리즘에 기초하여 오브젝트에 대해 결정된 경계 박스로서 고정된 ROI의 경계들을 설정함으로써 고정된 ROI를 조정할 수 있다.
전술한 바와 같이, 일부 경우들에서 오브젝트 검출 엔진(304)은 하나 이상의 오브젝트들(316)의 경계들에 대응하는(또는 대략적으로 대응하는) 픽셀 좌표들을 결정할 수도 있다. 이들 경우들에서, ROI 조정 엔진(306)은 조정된 ROI(318)의 경계들을 결정된 픽셀 좌표들로서 설정할 수도 있다. 추가적으로, 오브젝트 검출 엔진(304)이 고정된 ROI가 이미지 프로세싱 동작의 대상이 될 다수의 오브젝트들을 포함한다고 결정하면, ROI 조정 엔진(306)은 각각의 오브젝트를 포위하는 단일의 조정된 ROI(318)를 결정할 수도 있거나, 오브젝트 검출 엔진(304)은 단일의 오브젝트를 각각이 포함하는 다수의 조정된 ROI들(318)을 결정할 수도 있다. 또한, ROI 조정 엔진(306)은 조정된 ROI(318)를 신속하게 및/또는 동적으로 결정할 수도 있다. 예를 들어, ROI 조정 엔진(306)은 이미지 프레임(312)이 여전히 디스플레이(310) 내에서(예컨대, 프리뷰 스트림 내에서) 사용자에게 디스플레이되는 동안, 조정된 ROI(318)를 결정할 수도 있다. 다른 예들에서, ROI 조정 엔진(306)은 이미지 프레임(312)이 사용자에게 더 이상 디스플레이되고 있지 않는 동안, 조정된 ROI(318)를 결정할 수도 있다.
일부 예들에서, 오브젝트 검출 엔진(304)이 하나 이상의 오브젝트들을 각각이 적어도 부분적으로 포함하는 복수의 고정된 ROI들을 결정하면, ROI 조정 엔진(306)은 고정된 ROI들의 전부 또는 부분에 대한 조정들을 결정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 복수의 고정된 ROI들의 미리 결정된 사이즈 및/또는 형상을 조정할 수 있다. 또한, 오브젝트 검출 엔진(304)은 단일의 고정된 ROI에 대한 복수의 조정들을 결정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 고정된 ROI에 대한 다수의 후보(예를 들어, 잠재적) 조정들을 결정할 수 있다. 일 예에서, ROI 조정 엔진(306)은 고정된 ROI 내에서 다양한 오브젝트 검출 알고리즘들을 구현함으로써 다수의 후보 조정들을 결정할 수 있다. 다양한 오브젝트 검출 알고리즘들은 고정된 ROI의 미리 결정된 사이즈 및/또는 형상에 대해 상이한 조정들을 출력할 수 있다. 일부 경우들에서, ROI 조정 엔진(306)은 이미지 프레임(312) 내에서 구현될 복수의 후보 ROI 조정들 중 하나의 조정을 선택할 수 있다. 예시적인 예에서, ROI 조정 엔진(306)은 복수의 후보 ROI 조정들의 비교에 기초하여 후보 ROI 조정을 선택할 수 있다. 예를 들어, ROI 조정 엔진(306)은 어느 후보 ROI 조정이 고정된 ROI 내의 하나 이상의 오브젝트들의 사이즈, 형상, 및/또는 윤곽에 가장 잘 맞는지를 결정할 수 있다. 다른 예들에서, ROI 조정 엔진(306)은 선택을 나타내는 사용자 입력에 적어도 부분적으로 기초하여 후보 ROI 조정을 선택할 수 있다. 예를 들어, 아래에서 더 설명될 바와 같이, ROI 조정 엔진(306)은 후보 ROI 조정들을 나타내는 시각적 그래픽들을 (예컨대, 디스플레이(310) 내에서) 순차적으로 디스플레이할 수 있다. ROI 조정 엔진(306)은, 사용자로 하여금 대응하는 후보 ROI 조정의 선택을 나타내는 특정한 시각적 그래픽과 연관된 입력(예컨대, 터치 입력)을 제공할 수 있게 할 수 있다.
일부 예들에서, ROI 조정 엔진(306)은 사용자로 하여금 조정된 ROI(318)에 하나 이상의 추가적인 조정들을 제공할 수 있게 할 수 있다. 예를 들어, ROI 조정 엔진(306)은 조정된 ROI(318)의 형상, 사이즈, 및/또는 윤곽선을 나타내는 시각적 그래픽을 (예컨대, 디스플레이(310) 내에서) 디스플레이할 수 있다. 그후 ROI 조정 엔진(306)은 조정된 ROI(318)의 경계들에 대한 조정들에 대응하는 사용자 입력을 검출할 수 있다. 예를 들어, ROI 조정 엔진(306)은 사용자로 하여금 조정된 ROI(318)의 하나 이상의 경계들을 이동, 슬라이드, 드래그 또는 다른 방식으로 조정할 수 있게 할 수 있다. 사용자로 하여금 후보 ROI 조정을 선택하고/하거나 추가적인 ROI 조정들을 제공할 수 있게 함으로써, ROI 조정 엔진(306)은 사용자의 개인 선호도들에 기초하여 이미지 캡처 또는 이미지 프로세싱 동작들을 맞춤화(tailor) 및/또는 커스터마이징할 수 있다.
일부 실시예들에서, 이미지 프로세싱 엔진(308)은 조정된 ROI(318) 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 및/또는 이미지 캡처 동작들을 수행할 수도 있다. 예시적인 예에서, 이미지 프로세싱 엔진(308)은 이미지 프레임(312)의 캡처 이전에 또는 캡처 동안에(예컨대, 이미지 프레임(312)이 프리뷰 스트림 내에 디스플레이되는 동안) 조정된 ROI(318) 내의 이미지 데이터에 대해, 위에서 설명된 PDAF 또는 CDAF 동작들과 같은 자동 초점 동작을 수행할 수도 있다. 이미지 프로세싱 엔진(308)에 의해 수행될 수도 있는 추가적인 이미지 프로세싱 동작들의 비제한적인 예들은 다른 유형들의 "3A" 동작들, 이미지 캡처 동안에 또는 그 전에 수행되는 다른 유형들의 자동 이미지 프로세싱 동작들, 및 이미지 캡처 및/또는 저장 후에 수행되는 다른 유형들의 노출, 초점, 미터링(metering) 및/또는 줌 동작들을 포함한다. 특히, 이미지 프로세싱 엔진(308)은 고정된 ROI(318) 내에 그리고 조정된 ROI(318) 외부에 포함되는 이미지 데이터를 프로세싱하지 않으면서 조정된 ROI(318) 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행할 수도 있다. 따라서, ROI 조정 엔진(306)이 조정된 ROI(318)를 결정하는 동안 고정된 ROI의 사이즈를 변경(예를 들어, 감소)하면, 이미지 프로세싱 엔진(308)은 고정된 ROI들을 구현하는 종래의 이미지 프로세싱 시스템들 이외의 하나 이상의 이미지 프로세싱 동작들을 상이한(예를 들어, 더 작은) 부분의 이미지 데이터에 대해 수행할 수도 있다. 이러한 더 작은 ROI들은 이미지 프로세싱 동작들을 수행하는 효율을 증가시킬 수도 있을 뿐만 아니라, 프로세싱된 이미지 데이터를 포함하는 이미지 프레임들의 품질 및/또는 표현을 개선할 수도 있다.
이미지 캡처 및 프로세싱 시스템(300)은 조정된 ROI(318) 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행한 후에 이미지 프레임(312)에 대해 다양한 액션들을 수행할 수 있다. 일 예에서, 이미지 캡처 및 프로세싱 시스템(300)은 디스플레이(310) 내에 (프로세싱된 이미지 데이터를 갖는) 이미지 프레임(312)을 디스플레이할 수 있다. 이러한 방식으로, 사용자는 이미지 프로세싱 동작의 결과들을 시각화할 수 있다. 그 후 사용자는 프로세싱된 이미지 프레임(312)을 (예를 들어, 이미지 캡처 및 프로세싱 시스템(300)의 메인 메모리에) 저장할지, 프로세싱된 이미지 프레임(312)을 삭제할지, 이미지 캡처 및 프로세싱 시스템(300)으로 하여금 이미지 프레임(312)에 대해 하나 이상의 추가적인 이미지 프로세싱 동작들을 수행하도록 지시할지, 또는 이미지 프레임(312)에 대해 임의의 추가적인 또는 대안적인 액션을 수행할지를 결정할 수 있다.
도 3b는 디바이스(322) 내의 이미지 캡처 및 프로세싱 시스템(300)의 예시적인 구현의 블록도를 예시한다. 도시된 바와 같이, 이미지 캡처 및 프로세싱 시스템(300)의 엔진들은 디바이스(322)의 다양한 하드웨어 및/또는 소프트웨어 컴포넌트들 내에서 구현될 수도 있다. 일 예에서, 입력 검출 엔진(302)은 디바이스 애플리케이션 계층(324) 내에 상주할 수도 있다. 디바이스 애플리케이션 계층(324)은 도 3a에 도시된 디스플레이(310)의 출력을 제어하는 카메라 애플리케이션의 부분 및/또는 인터페이스를 나타낼 수도 있다. 일부 경우들에서, 입력 검출 엔진(302)은 디바이스 애플리케이션 계층(324) 내에서 또는 그의 일부로서 동작하는 동안 디스플레이(310)에 제공되는 사용자 입력을 모니터링할 수도 있다. 예시적인 예에서, 입력 검출 엔진(302)은 사용자가 디스플레이(310)의 특정한 위치를 선택(예를 들어, 터치 또는 클릭)했음을 나타내는 통지(예를 들어, "터치 플래그")를 검출 및/또는 수신할 수도 있다. 그 후, 입력 검출 엔진(302)은 이 입력의 표시(예컨대, 선택된 위치의 표시)를 이미지 프로세싱 애플리케이션(326)으로 전송할 수도 있다. 일부 경우들에서, 입력 검출 엔진(302)은 또한 선택된 위치를 둘러싸는 오브젝트 검출에 사용될 고정된 ROI의 크기를 이미지 프로세싱 애플리케이션(326)으로 전송할 수도 있다.
이미지 프로세싱 애플리케이션(326)은 디바이스(322)에 의해 캡처된 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하도록 구성된 임의의 유형 또는 형태의 애플리케이션을 포함할 수도 있다. 예시적인 실시예에서, 이미지 프로세싱 애플리케이션(326)은 자동 초점 알고리즘을 수행할 수 있는 "3A" 애플리케이션을 포함할 수도 있다. 도 3b에 도시된 바와 같이, 이미지 프로세싱 애플리케이션(326)은 이미지 캡처 및 프로세싱 시스템(300)의 오브젝트 검출 엔진(304), ROI 조정 엔진(306), 및 이미지 프로세싱 엔진(308)을 포함할 수도 있다. 이들 엔진들은 고정된 ROI 내의 하나 이상의 오브젝트들을 검출하고, 하나 이상의 오브젝트들의 경계들에 기초하여 조정된 ROI를 결정하고, 그 후 조정된 ROI 내의 이미지 데이터에 대해 이미지 프로세싱 동작을 수행하기 위해, 입력 검출 엔진(302)으로부터 전송된 정보를 활용할 수도 있다.
특정 실시예들에서, 이미지 캡처 및 프로세싱 시스템(300)은 고정된 ROI를 조정하는 것이 적절한지 및/또는 바람직한지를 결정할 수도 있다. 예를 들어, 이미지 캡처 및 프로세싱 시스템(300)은 고정된 ROI의 사이즈 및 형상이 하나 이상의 검출된 오브젝트들의 경계들에 충분히 대응한다고 결정하는 것에 기초하여 고정된 ROI를 조정하지 않기로 결정할 수도 있다. 다른 예에서, 이미지 캡처 및 프로세싱 시스템(300)은 이미지 프로세싱 동작으로부터 이익을 얻을 어떠한 오브젝트들도 포함하지 않는 고정된 ROI로 인해 고정된 ROI를 조정하는 것이 불필요할 가능성이 크다고 결정할 수도 있다.
도 4는 고정된 ROI가 조정되어야 하는지 여부를 결정함으로써 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 프로세스(400)의 예를 예시하는 흐름도이다. 블록 402에서, 프로세스(400)는 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 것을 포함한다. 예를 들어, 프로세스(400)는 사용자가 사용자 인터페이스 상에 디스플레이된 이미지 프레임 내의 하나 이상의 픽셀을 선택했을 때를 검출하기 위해 카메라가 장착된 디바이스의 사용자 인터페이스를 모니터링하는 것을 포함할 수 있다.
블록 404에서, 프로세스(400)는 이미지 프레임이 선택된 위치를 둘러싸는 ROI 내에 오브젝트를 포함하는지 여부를 결정하는 것을 포함하며, 여기서 ROI는 선택된 위치를 포함하고, ROI는 미리 결정된 사이즈(즉, 고정된 ROI)를 갖는다. 예를 들어, 프로세스(400)는 이미지 프레임의 고정된 ROI 내의 이미지 데이터에 대해 오브젝트 검출 동작 또는 알고리즘을 수행하는 것을 포함할 수 있다. 일 예에서, 이미지 프레임이 고정된 ROI 내의 오브젝트를 포함한다고 결정하는 것은 고정된 ROI가 하나 이상의 오브젝트들의 외부 경계를 완전히 포위한다고 결정하는 것을 포함할 수 있다. 반대로, 이미지 프레임이 고정된 ROI 내에 오브젝트를 포함하지 않는다고 결정하는 것은 고정된 ROI가 임의의 오브젝트의 외부 경계를 완전히 포위하지 않는다고 결정하는 것을 포함할 수 있다. 다른 예에서, 이미지 프레임이 고정된 ROI 내에 오브젝트를 포함한다고 결정하는 것은 고정된 ROI가 하나 이상의 오브젝트들의 외부 경계의 적어도 부분을 포위한다고 결정하는 것을 포함할 수 있다. 반대로, 이미지 프레임이 고정된 ROI 내에 오브젝트를 포함하지 않는다고 결정하는 것은 고정된 ROI가 임의의 오브젝트의 외부 경계의 임의의 부분을 포위하지 않는다고 결정하는 것을 포함할 수 있다.
블록 404에서 결정된 결정이 "아니오"라면, 프로세스(400)는 블록 408으로 진행할 수도 있다. 블록 408에서, 프로세스(400)는 고정된 ROI를 조정하기를 거절하는 것을 포함한다. 예를 들어, 프로세스(400)는 고정된 ROI 내의 각각의 픽셀에 대응하는 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하기로 결정하는 것을 포함한다. 블록 408 이후, 프로세스(400)는 블록 410으로 진행하고, 이는 고정된 ROI 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하는 것을 포함한다. 블록 404에서 결정된 결정이 "예"라면, 프로세스(400)는 블록 406으로 진행할 수도 있다. 블록 406에서, 프로세스(400)는 상기 결정에 적어도 부분적으로 기초하여 고정된 ROI를 조정하는 것을 포함한다. 일부 실시예들에서, 고정된 ROI는 이미지 프레임 내에서 검출된 하나 이상의 오브젝트들의 경계들에 기초하여 조정될 수도 있다. 예를 들어, 프로세스(400)는 ROI의 경계들을 하나 이상의 검출된 물체들의 경계들에 대응하는 픽셀들로서 설정하는 것을 포함할 수도 있다. 그 후 프로세스(400)는 블록 410으로 진행할 수도 있으며, 이는 조정된 ROI 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 및/또는 이미지 캡처 동작들을 수행하는 것을 포함한다.
전술한 이미지 프로세싱 기법들 및 솔루션들은 이미지 프레임들의 부분들에 대해 수행되는 이미지 프로세싱 동작들의 품질을 개선할 수도 있다. 예를 들어, 특정 오브젝트의 형상 및/또는 사이즈에 기초하여 고정된 ROI의 형상 및/또는 사이즈를 리파인하는 것은, 다른 오브젝트에 대응하는 이미지 데이터를 제외하는 반면 특정 오브젝트에 대응하는 이미지 데이터에 대해서는 이미지 프로세싱 동작이 수행될 수 있게 할 수도 있다. 그 결과, 이미지 프로세싱 동작의 효과들이 더 현저하고 그리고/또는 더 높은 품질일 수도 있다. 이러한 개선들은 매우 상세한 오브젝트들를 포함하는 이미지 프레임들뿐만 아니라, 전경 및 배경 양자 모두에 오브젝트들를 포함하는 이미지 프레임들에서도 특히 두드러질 수도 있다. 또한, 개시된 기법들 및 솔루션들은 사용자들로 하여금 그들의 개인 취향에 따라 이미지들을 보다 정밀하고 효율적으로 커스터마이징할 수 있게 함으로써, 전반적인 사용자 만족도를 증가시킬 수도 있다.
도 5a, 도 5b, 도 5c 및 도 5d는 개시된 이미지 프로세싱 기법들 및 솔루션들에 의해 제공되는 개선들을 예시하는 이미지들을 포함한다. 구체적으로, 도 5a는 고정된 ROI(504)를 포함하는 예시적인 이미지 프레임(502)을 예시한다. 도 5a에 도시된 바와 같이, 고정된 ROI(504)는 2 개의 얼굴들을 포함한다. 도 5b는 고정된 ROI(504) 내의 이미지 데이터에 대해 자동 초점 알고리즘이 종래의 이미지 프로세싱 시스템들에 따라 수행된 후의, 이미지 데이터에 대응하는 이미지 프레임 부분(506)을 예시한다. 예를 들어, 이미지 프레임 부분(506)에서의 이미지 데이터의 전체는 자동 초점 알고리즘을 사용하여 프로세싱되었다. 대조적으로, 도 5c는 고정된 ROI(504) 내의 이미지 데이터의 서브세트에 대응하는 조정된 ROI들(508)을 예시한다. 도 5c에 도시된 바와 같이, 조정된 ROI들(508)의 경계들은 2 개의 얼굴들의 경계들에 대략적으로 대응한다. 개시된 이미지 캡처 및 프로세싱 시스템들은 고정된 RO1(504) 내에서 오브젝트 검출을 수행하는 것에 적어도 부분적으로 기초하여, 조정된 ROI들(508)을 결정할 수도 있다. 도 5d는 조정된 ROI들(508) 내의 이미지 데이터에 대해 자동 초점 알고리즘이 수행된 후의, 고정된 ROI(504) 내의 이미지 데이터에 대응하는 이미지 데이터 부분(510)을 예시한다. 도 5b에 예시된 얼굴들과 비교하여, 도 5d에 예시된 얼굴들은 더 높은 명확성을 가지며, 프로세싱된 이미지 프레임은 더 높은 전체 품질을 갖는다.
도 5e 및 도 5f는 개시된 이미지 및 프로세싱 기법들 및 솔루션들에 의해 제공되는 추가적인 개선들을 예시하는 이미지들을 포함한다. 구체적으로, 도 5e는 도 5c에 도시된 고정된 ROI(504) 및 조정된 ROI(508)의 부분을 예시한다. 도 5e는 또한, 조정된 ROI(508)가 사용자 입력에 기초하여 추가로 조정된 후의 조정된 ROI(508)에 대응하는 추가적인 조정된 ROI(512)를 예시한다. 도시된 바와 같이, 추가적인 조정된 ROI(512)의 형상(예컨대, 직사각형)은 조정된 ROI(508)의 형상과 유사하다. 그러나, 추가적인 조정된 ROI(512)의 사이즈는 조정된 ROI(508)의 사이즈와 상이하다(예컨대, 더 크다). 일 예에서, ROI 조정 엔진(306)은 조정된 ROI(508)의 형상, 사이즈, 및/또는 윤곽(예컨대, 윤곽선)을 나타내는 시각적 그래픽을 디스플레이할 수 있다. ROI 조정 엔진(306)은 시각적 그래픽의 하나 이상의 경계들을 이동시키는(예컨대, 드래그하는) 것에 대응하는 사용자 입력을 검출하는 것에 기초하여 추가적인 조정된 ROI(512)를 생성할 수 있다. 예를 들어, ROI 조정 엔진(306)은 조정된 ROI(508)의 경계를 조정된 ROI(508)의 중심점으로부터 멀리 이동시키는 것에 대응하는 사용자 입력을 검출하는 것에 기초하여 조정된 ROI(508)의 높이 및/또는 폭을 증가시킬 수 있다. 유사하게, ROI 조정 엔진(306)은 조정된 ROI(508)의 경계를 조정된 ROI(508)의 중심점 쪽으로 이동시키는 것에 대응하는 사용자 입력을 검출하는 것에 기초하여 조정된 ROI(508)의 높이 및/또는 폭을 감소시킬 수 있다. ROI 조정 엔진(306)은 임의의 적합한 방식으로 그리고/또는 다양한 유형들의 사용자 입력에 기초하여, 조정된 ROI(508)에 추가적인 조정들을 적용할 수 있다.
또한, 도 5f는 도 5c에 도시된 고정된 ROI(504) 및 조정된 ROI(508)의 부분을 예시한다. 도 5f는 또한, 후보(예컨대, 잠재적) 조정된 ROI에 대응하는 추가적인 조정된 ROI(514)를 예시한다. 예를 들어, ROI 조정 엔진(306)은 조정된 ROI(508), 추가적인 조정된 ROI(514), 및/또는 임의의 추가적인 후보 조정된 ROI들을 결정할 수 있다. ROI 조정 엔진(306)은 후보 조정된 ROI들의 형상, 사이즈, 및/또는 윤곽에 대응하는 시각적 그래픽들을 디스플레이할 수 있다. 일 예에서, ROI 조정 엔진(306)은 이미지 프레임(502) 상에 다수의 시각적 그래픽들을 동시에 오버레이할 수 있다. 다른 예에서, ROI 조정 엔진(306)은 복수의 또는 일련의 비주얼 그래픽들을 순차적으로 디스플레이할 수 있다. 예를 들어, ROI 조정 엔진(306)은 한 번에 단일의 시각적 그래픽을 디스플레이할 수 있다. 일부 경우들에서, ROI 조정 엔진(306)은 각각의 시각적 그래픽을 미리 결정된 양의 시간(예컨대, 1 초, 3 초 등) 동안 디스플레이할 수 있다. 이러한 방식으로, ROI 조정 엔진(306)은 사용자로 하여금 각각의 후보 조정된 ROI를 개별적으로 보고/보거나 평가할 수 있게 할 수 있다. 일 예에서, ROI 조정 엔진(306)은 복수의 후보 조정된 ROI들에 대응하는 복수의 비주얼 그래픽들을 순환할 수 있다. 특정한 시각적 그래픽이 디스플레이되는 동안, ROI 조정 엔진(306)은 그 특정한 시각적 그래픽의 선택에 대응하는 사용자 입력을 검출할 수 있다. 예를 들어, ROI 조정 엔진(306)은 사용자가 특정한 시각적 그래픽을 선택(예컨대, 터치, 클릭, 구두로 확인함 등)했다고 결정할 수 있다. 그 후 ROI 조정 엔진(306)은 이미지 프레임(502) 내에서, 대응하는 후보 조정된 ROI를 구현할 수 있다. 도 5f에 도시된 바와 같이, 조정된 ROI(508)는 추가적인 조정된 ROI(514)(예를 들어, 타원형)와는 상이한 형상(예를 들어, 직사각형)일 수도 있다. 예시적인 예에서 사용자는, 타원형 형상이 이미지 프레임(502) 내의 사람의 머리의 형상에 더 정확하게 대응한다고 결정하는 것에 기초하여 추가적인 조정된 ROI(514)에 대응하는 시각적 그래픽을 선택할 수도 있다.
도 6은 이미지 프레임들에서의 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 예시적인 프로세스(600)를 예시하는 흐름도이다. 명확성을 위해, 프로세스(600)는 도 3a 및 도 3b에 도시된 이미지 프로세싱 및 캡처 시스템(300)을 참조하여 설명된다. 본 명세서에 개요된 단계들은 예들이고, 특정 단계들을 제외, 추가, 또는 수정하는 조합들을 포함하여, 단계들의 임의의 조합으로 구현될 수 있다.
블록 602에서, 프로세스(600)는 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 것을 포함한다. 예를 들어, 입력 검출 엔진(302)은 이미지 프레임(312) 내의 위치의 선택에 대응하는 사용자 입력(314)을 검출할 수 있다. 일 예에서, 이미지 프로세싱 및 캡처 시스템(300)은 카메라 디바이스가 이미지 캡처 모드에 있는 동안 카메라 디바이스에 의해 캡처된 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림 내에서 이미지 프레임(312)을 수신할 수 있다. 입력 검출 엔진(302)은, 이미지 프레임(312)이 디스플레이(310) 상에 (예를 들어, 프리뷰 스트림 내에) 디스플레이되는 동안 이미지 프레임(312)을 모니터링할 수 있다. 입력 검출 엔진(302)은 이미지 프레임(312) 내의 위치의 선택에 대응하는 임의의 적합한 유형의 사용자 입력을 모니터링 및/또는 검출할 수 있다. 비제한적인 예에서, 입력 검출 엔진(302)은 사용자가 이미지 프레임(312)의 하나 이상의 픽셀들에 대응하는 디스플레이(310) 내의 위치를 터치하거나 달리 (예를 들어, 손가락 또는 스타일러스로) 선택했음을 검출할 수 있다. 일부 경우들에서, 입력 검출 엔진(302)은 이미지 프레임(312)이 복수의 ROI들 내의 하나 이상의 오브젝트들을 포함한다고 결정할 수 있다. 예를 들어, 입력 검출 엔진(302)은 이미지 프레임(312) 내의 다수의 위치들의 선택에 대응하는 사용자 입력(314)을 검출할 수 있다.
단계 604에서, 프로세스(600)는 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것을 포함하며, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 및/또는 미리 결정된 형상을 갖는다. 예를 들어, 오브젝트 검출 엔진(304)은 이미지 프레임(312)이 이미지 프레임(312)의 ROI 내에 오브젝트(316)를 포함한다고 결정할 수 있다. 일 예에서, ROI는 고정된 ROI(예컨대, 미리 결정된 형상, 사이즈, 및/또는 픽셀들의 수를 갖는 ROI)일 수 있다. 오브젝트 검출 엔진(304)은 고정된 ROI 내에서 오브젝트(316)를 검출하기 위한 다양한 유형들의 오브젝트 검출 동작들 또는 알고리즘들(예를 들어, 얼굴 검출 및/또는 인식 알고리즘, 특징 검출 및/또는 인식 알고리즘, 에지 검출 알고리즘, 경계 추적 기능, 이들의 임의의 조합, 및/또는 다른 오브젝트 검출 및/또는 인식 기법들)을 수행할 수 있다. 도 5c를 참조하면, 오브젝트 검출 엔진(304)은 고정된 ROI(504) 내에서 2 개의 얼굴들을 검출할 수 있다. 또한, 입력 검출 엔진(302)이 이미지 프레임(312)이 복수의 ROI들을 포함한다고 결정하면(단계 602에서), 오브젝트 검출 엔진(304)은 복수의 ROI들 내에 적어도 부분적으로 있는 하나 이상의 오브젝트들을 검출할 수 있다.
단계 606에서, 프로세스(600)는 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다는 결정에 적어도 부분적으로 기초하여 관심 영역의 미리 결정된 사이즈 및/또는 미리 결정된 형상을 조정하는 것을 포함한다. 예를 들어, ROI 조정 엔진(306)은 이미지 프레임(312)이 ROI 내에 오브젝트(316)를 포함한다는 결정에 적어도 부분적으로 기초하여 ROI를 조정할 수 있다. ROI 조정 엔진(306)은 다양한 방식들로 ROI를 조정할 수 있다. 일 예에서, ROI 조정 엔진(306)은 적어도 하나의 축을 따라 ROI의 미리 결정된 사이즈를 감소시킬 수 있다. 다른 예에서, ROI 조정 엔진(306)은 적어도 하나의 축을 따라 ROI의 미리 결정된 사이즈를 증가시킬 수 있다. 추가 예에서, ROI 조정 엔진(306)은 오브젝트 검출 알고리즘(예를 들어, 이미지 프레임(312) 내에서 오브젝트를 검출하는데 사용되는 오브젝트 검출 알고리즘)에 기초하여 ROI의 미리 결정된 형상을 조정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 오브젝트 검출 알고리즘에 기초하여 오브젝트에 대한 바운딩 박스를 결정하고 ROI를 경계 박스로서 설정할 수 있다. 추가적으로 또는 대안적으로, ROI 조정 엔진(306)은 오브젝트(316)의 하나 이상의 경계들과 ROI의 하나 이상의 경계들 사이의 거리를 감소시키는 임의의 방식으로 ROI의 사이즈 및/또는 형상을 조정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 오브젝트(316)의 하나 이상의 경계들을 결정할 수 있고 ROI의 하나 이상의 경계들을 오브젝트(316)의 하나 이상의 경계들로서 설정할 수 있다. 일부 경우들에서, 오브젝트(316)의 하나 이상의 경계들은 오브젝트(316)의 형상, 윤곽선, 및/또는 윤곽에 대응(또는 대략적으로 대응)할 수 있다. 다시 도 5c를 참조하면, ROI 조정 엔진(306)은 고정된 ROI(504) 내의 얼굴들의 사이즈 및/또는 형상에 기초하여 고정된 ROI(504)를 조정할 수 있고, 그로써 조정된 ROI들(508)을 생성한다. 또한, 오브젝트 검출 엔진(304)이 이미지 프레임(312)이 복수의 ROI들 내에 하나 이상의 오브젝트들을 포함한다고 검출한다면(단계 604에서), ROI 조정 엔진(306)은 복수의 ROI들 내의 오브젝트들에 기초하여 복수의 ROI들 중 하나 이상을 조정할 수 있다.
일부 경우들에서, ROI 조정 엔진(306)은 조정된 ROI를 나타내는 시각적 그래픽을 (예컨대, 이미지 프레임(312) 내에서) 디스플레이할 수 있다. 시각적 그래픽은 조정된 ROI의 형상, 사이즈, 및/또는 윤곽선에 대응할 수 있다. 일 예에서, ROI 조정 엔진(306)은 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출할 수 있다. 추가적인 사용자 입력은 조정된 ROI에 대한 적어도 하나의 추가적인 조정을 나타낼 수 있다. 도 5e를 참조하면, ROI 조정 엔진(306)은 조정된 ROI들(508)의 부분의 사이즈를 증가시키는 것(예컨대, 추가적인 ROI(512)를 초래함)과 연관된 사용자 입력을 검출할 수 있다. 일부 예들에서, ROI 조정 엔진(306)은 ROI의 미리 결정된 사이즈 및/또는 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 ROI들을 결정할 수 있다. 각각의 후보 조정된 ROI는, (예를 들어, 사용자 및/또는 ROI 조정 엔진(306)에 의해) 평가될 수 있는 잠재적인 조정된 ROI에 대응할 수 있다. 일 예에서, ROI 조정 엔진(306)은 복수의 후보 조정된 ROI들에 대응하는 복수의 시각적 그래픽들을, 이미지 프레임(312) 내에서, 순차적으로 디스플레이할 수 있다. ROI 조정 엔진(306)은, 복수의 후보 조정된 ROI들 중 하나의 후보 조정된 ROI에 대응하는 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여 상기 하나의 후보 조정된 ROI의 선택을 결정할 수 있다. 예를 들어, ROI 조정 엔진(306)은 특정한 시각적 그래픽이 이미지 프레임(312) 내에 디스플레이되는 동안 특정한 시각적 그래픽을 선택(예를 들어, 클릭, 터치, 구두로 확인함 등)하는 사용자 입력을 검출할 수 있다.
단계 608에서, 프로세스(600)는 조정된 ROI 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행하는 것을 포함한다. 예를 들어, 이미지 프로세싱 엔진(308)은 이미지 프레임(312)의 조정된 ROI 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행할 수 있다. 조정된 ROI는 ROI 조정 엔진(306)에 의해 결정된 조정된 ROI, 사용자에 의해 표시된 추가적인 조정들을 반영하는 조정된 ROI, 및/또는 복수의 후보 조정된 ROI들로부터 선택된 조정된 ROI에 대응할 수 있다. 일부 예들에서, 이미지 프로세싱 엔진(308)은 하나 이상의 "3A" 동작들(예를 들어, 자동 초점 동작)을 수행할 수 있다. 하나 이상의 이미지 프로세싱 동작들은 조정된 ROI 내의 이미지 데이터에 적용될 수 있다(그리고 조정된 ROI 외부의 이미지 데이터에 적용되지 않는다). 예를 들어, 이미지 프로세싱 엔진(308)은 도 5c의 조정된 ROI들(508) 내의 이미지 데이터에 하나 이상의 이미지 프로세싱 동작들을 적용할 수 있다. 도 5d의 이미지 데이터 부분(510)은 이미지 프로세싱 엔진(308)이 이미지 데이터에 대해 자동 초점 동작을 수행한 후의 조정된 ROI들(508) 내의 이미지 데이터를 예시한다. 조정된 ROI들 내의 이미지 데이터에 대해서만 이미지 프로세싱 동작들을 수행함으로써, 이미지 프로세싱 및 캡처 시스템(300)은 고품질 및 사용자 커스터마이징가능한 이미지들을 정확하고 효율적으로 생성할 수 있다.
일부 예들에서, 본 명세서에 설명된 프로세스들(예를 들어, 프로세스(400), 프로세스(600) 및/또는 본 명세서에 설명된 다른 프로세스)은 컴퓨팅 디바이스 또는 장치(예를 들어, 도 3b에 도시된 디바이스(322))에 의해 수행될 수도 있다. 일 예에서, 프로세스(400) 및/또는 프로세스(600)는 도 3a 및 도 3b의 이미지 프로세싱 및 캡처 시스템(300)에 의해 수행될 수 있다. 일부 예들에서, 프로세스(400) 및/또는 프로세스(600)은 도 7에 도시된 컴퓨팅 시스템(700)을 갖는 컴퓨팅 디바이스에 의해 수행될 수 있다. 예를 들어, 도 7에 도시된 컴퓨팅 아키텍처를 갖는 컴퓨팅 디바이스는 이미지 프로세싱 및 캡처 시스템(300)의 컴포넌트들을 포함할 수 있고 도 4 및 도 6의 동작들을 구현할 수 있다.
컴퓨팅 디바이스는, 모바일 디바이스(예컨대, 모바일 폰), 데스크톱 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 웨어러블 디바이스(예컨대, VR 헤드셋, AR 헤드셋, AR 안경, 네트워크 연결형 시계 또는 스마트워치, 또는 다른 웨어러블 디바이스), 서버 컴퓨터, 자율주행 차량 또는 자율주행 차량의 컴퓨팅 디바이스, 로롯 디바이스, 텔레비전, 및/또는 프로세스(800)를 포함하는 본 명세서에서 설명된 프로세스들을 수행하기 위한 리소스 능력들을 갖는 임의의 다른 컴퓨팅 디바이스와 같은 임의의 적합한 디바이스를 포함할 수 있다. 일부 경우들에서 컴퓨팅 디바이스 또는 장치는, 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 하나 이상의 프로세서들, 하나 이상의 마이크로프로세서들, 하나 이상의 마이크로컴퓨터들, 하나 이상의 카메라들, 하나 이상의 센서들, 및/또는 본 명세서에 설명된 프로세스들의 단계들을 수행하도록 구성되는 다른 컴포넌트(들)과 같은 다양한 컴포넌트들을 포함할 수도 있다. 일부 예들에서, 컴퓨팅 디바이스는 디스플레이, 데이터를 통신 및/또는 수신하도록 구성된 네트워크 인터페이스, 이들의 임의의 조합, 및/또는 다른 컴포넌트(들)를 포함할 수도 있다. 네트워크 인터페이스는 인터넷 프로토콜(IP) 기반 데이터 또는 다른 유형의 데이터를 통신 및/또는 수신하도록 구성될 수도 있다.
컴퓨팅 디바이스의 컴포넌트들은 회로부에서 구현될 수 있다. 예를 들어, 컴포넌트들은, 하나 이상의 프로그래밍가능한 전자 회로들(예컨대, 마이크로프로세서들, 그래픽 프로세싱 유닛(GPU)들, 디지털 신호 프로세서(DSP)들, 중앙 프로세싱 유닛(CPU)들, 및/또는 다른 적합한 전자 회로들)을 포함할 수 있는, 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고, 그리고/또는 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현되어, 본 명세서에서 설명된 다양한 동작들을 수행할 수 있다.
프로세스(400) 및 프로세스(600)은 논리 흐름도들로서 예시되며, 이들의 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 컴퓨터 명령들의 맥락에서, 동작들은 하나 이상의 프로세서들에 의해 실행될 때 나열된 동작들을 수행하는, 하나 이상의 컴퓨터 판독가능 저장 매체들 상에 저장된 컴퓨터 실행가능 명령들을 나타낸다. 일반적으로, 컴퓨터 실행가능 명령들은 특정한 기능들을 수행하거나 특정한 데이터 유형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되도록 의도되지 않고, 임의의 수의 상기 설명된 동작들이 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 조합될 수 있다.
추가적으로, 본 명세서에 설명된 프로세스(400), 프로세스(600) 및/또는 다른 프로세스는 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 하나 이상의 프로세서 상에서 집합적으로 실행되는 코드(예컨대, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들)로서, 하드웨어에 의해, 또는 이들의 조합으로 구현될 수도 있다. 위에 언급된 바와 같이, 코드는 컴퓨터 판독가능 또는 머신 판독가능 저장 매체 상에, 예를 들어 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로 저장될 수도 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적일 수도 있다.
도 7은 본 기술의 특정 양태들을 구현하기 위한 시스템의 예를 예시한 도면이다. 특히, 도 7은 컴퓨팅 시스템(700)의 예를 도시하며, 이는 예를 들어, 내부 컴퓨팅 시스템을 구성하는 임의의 컴퓨팅 디바이스, 원격 컴퓨팅 시스템, 카메라, 또는 이들의 임의의 조합일 수 있으며, 그의 시스템의 컴포넌트들은 커넥션(705)을 사용하여 서로 통신한다. 커넥션(705)은 버스를 사용한 물리적 커넥션, 또는 칩셋 아키텍처에서와 같은 프로세서(710)로의 직접 커넥션일 수 있다. 커넥션(705)은 가상 커넥션, 네트워크형 커넥션 또는 논리 커넥션일 수 있다.
일부 실시예들에서, 컴퓨팅 시스템(700)은 본 개시에서 설명된 기능들이 데이터센터, 다수의 데이터 센터들, 피어(peer) 네트워크 등 내에서 분산될 수 있는 분산 시스템이다. 일부 실시예들에서, 설명된 시스템 컴포넌트들 중 하나 이상은 컴포넌트가 설명되는 기능의 일부 또는 전부를 각각 수행하는 많은 그러한 컴포넌트들을 나타낸다. 일부 실시예들에서, 컴포넌트들은 물리적 또는 가상 디바이스들일 수 있다.
예시적인 시스템(700)은 적어도 하나의 프로세싱 유닛(CPU 또는 프로세서)(710), 및 프로세서(710)에 판독 전용 메모리(ROM)(720) 및 랜덤 액세스 메모리(RAM)(725)와 같은 시스템 메모리(715)를 포함하는 다양한 시스템 컴포넌트들을 커플링시키는 커넥션(705)를 포함한다. 컴퓨팅 시스템(700)은, 프로세서(710)와 직접적으로 연결되거나, 그에 근접하거나, 또는 그의 일부로서 통합되는 고속 메모리의 캐시(712)를 포함할 수 있다.
프로세서(710)는, 프로세서(710)를 제어하도록 구성된, 저장 디바이스(730)에 저장된 서비스들(732, 734, 및 736)과 같은 하드웨어 서비스 또는 소프트웨어 서비스 및 임의의 범용 프로세서뿐만 아니라 소프트웨어 명령들이 실제 프로세서 설계에 통합되는 특수 목적 프로세서를 포함할 수 있다. 프로세서(710)는 본질적으로, 다수의 코어들 또는 프로세서들, 버스, 메모리 제어기, 캐시 등을 포함하는 완전히 자족적(self-contained) 컴퓨팅 시스템일 수도 있다. 멀티코어 프로세서는 대칭적 또는 비대칭적일 수도 있다.
사용자 상호작용을 가능하게 하기 위해, 컴퓨팅 시스템(700)은 음성을 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치 감지 스크린, 키보드, 마우스, 모션 입력, 음성 등과 같은 임의의 수의 입력 메커니즘을 나타낼 수 있는 입력 디바이스(745)를 포함한다. 컴퓨팅 시스템(700)은 또한 다수의 출력 메커니즘들 중 하나 이상일 수 있는 출력 디바이스(735)를 포함할 수 있다. 일부 경우들에서, 멀티모달 시스템들은 사용자로 하여금 컴퓨팅 시스템(700)과 통신하도록 다수의 유형들의 입력/출력을 제공할 수 있게 할 수 있다. 컴퓨팅 시스템(700)은, 일반적으로 사용자 입력 및 시스템 출력을 통제 및 관리할 수 있는 통신 인터페이스(740)를 포함할 수 있다. 통신 인터페이스는, 오디오 잭/플러그, 마이크로폰 잭/플러그, USB(universal serial bus) 포트/플러그, Apple® Lightning® 포트/플러그, 이더넷 포트/플러그, 광섬유 포트/플러그, 독점적(proprietary) 유선 포트/플러그, BLUETOOTH® 무선 신호 전송, BLE(BLUETOOTH® low energy) 무선 신호 전송, IBEACON® 무선 신호 전송, RFID(radio-frequency identification) 무선 신호 전송, 근거리 무선 통신(NFC) 무선 신호 전송, 단거리 전용 통신(DSRC) 무선 신호 전송, 802.11 Wi-Fi 무선 신호 전송, 무선 로컬 영역 네트워크(WLAN) 신호 전송, 가시광 통신(VLC), WiMAX(Worldwide Interoperability for Microwave Access), 적외선(IR) 통신 무선 신호 전송, PSTN(Public Switched Telephone Network) 신호 전송, ISDN(Integrated Services Digital Network) 신호 전송, 3G/4G/5G/LTE 셀룰러 데이터 네트워크 무선 신호 전송, 애드혹(ad-hoc) 네트워크 신호 전송, 라디오파 신호 전송, 마이크로파 신호 전송, 적외선 신호 전송, 가시광 신호 전송, 자외선 광 신호 전송, 전자기 스펙트럼을 따른 무선 신호 전송, 또는 이들의 일부 조합을 이용하는 것들을 포함하는, 유선 및/또는 무선 트랜시버들을 사용하여 유선 또는 무선 통신들의 수신 및/또는 송신을 수행하거나 용이하게 할 수도 있다. 통신 인터페이스(740)는 또한, 하나 이상의 글로벌 네비게이션 위성 시스템(GNSS) 시스템들과 연관된 하나 이상의 위성들로부터의 하나 이상의 신호들의 수신에 기초하여 컴퓨팅 시스템(700)의 위치를 결정하는데 사용되는 하나 이상의 GNSS 수신기들 또는 트랜시버들을 포함할 수도 있다. GNSS 시스템들은 미국 기반 글로벌 포지셔닝 시스템(GPS), 러시아 기반 글로벌 내비게이션 위성 시스템(GLONASS), 중국 기반 베이더우 내비게이션 위성 시스템(BDS) 및 유럽 기반 갈릴레오(Galileo) GNSS를 포함하지만 이에 한정되지 않는다. 임의의 특정한 하드웨어 배열에 대해 동작하는 것에 제한이 없고, 따라서 여기에서의 기본 특징들은 그들이 개발됨에 따라 개선된 하드웨어 또는 펌웨어 배열들로 용이하게 대체될 수도 있다.
저장 디바이스(730)는 비휘발성 및/또는 비일시적 및/또는 컴퓨터 판독가능 메모리 디바이스일 수 있고, 자기 카세트들, 플래시 메모리 카드들, 솔리드 스테이트 메모리 디바이스들, 디지털 다기능 디스크들, 카트리지들, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 자기 스트립/스트라이프, 임의의 다른 자기 저장 매체, 플래시 메모리, 멤리스터 메모리, 임의의 다른 솔리드 스테이트 메모리, 컴팩트 디스크 판독 전용 메모리(CD-ROM) 광 디스크, 재기록가능 컴팩트 디스크(CD) 광 디스크, 디지털 비디오 디스크(DVD) 광 디스크, 블루레이 디스크(BDD) 광 디스크, 홀로그래픽 광 디스크, 다른 광학 매체, 보안 디지털(SD) 카드, 마이크로 보안 디지털(microSD) 카드, Memory Stick® 카드, 스마트카드 칩, EMV 칩, 가입자 아이덴티티 모듈(SIM) 카드, 미니/마이크로/나노/피코 SIM 카드, 다른 집적 회로(IC) 칩/카드, 랜덤 액세스 메모리(RAM), 정적 RAM(SRAM), 동적 RAM(DRAM), 판독 전용 메모리(ROM), 프로그래밍가능 판독 전용 메모리(PROM), 소거가능한 프로그래밍가능 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(EEPROM), 플래시 EPROM(FLASHEPROM), 캐시 메모리(L1/L2/L3/L4/L5/L#), 저항성 랜덤 액세스 메모리(RRAM/ReRAM), 상 변화 메모리(PCM), 스핀 전달 토크 RAM(STT-RAM), 다른 메모리 칩 또는 카트리지, 및/또는 이들의 조합과 같은, 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 하드 디스크 또는 다른 유형들의 컴퓨터 판독가능 매체들일 수 있다.
저장 디바이스(730)는 이러한 소프트웨어를 정의하는 코드가 프로세서(710)에 의해 실행될 때 시스템으로 하여금 기능을 수행하게 하는 소프트웨어 서비스들, 서버들, 서비스들 등을 포함할 수 있다. 일부 실시예들에서, 특정한 기능을 수행하는 하드웨어 서비스는, 기능을 수행하기 위해, 프로세서(710), 커넥션(705), 출력 디바이스(735) 등과 같은, 필요한 하드웨어 컴포넌트들과 관련하여 컴퓨터 판독가능 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
본 명세서에서 사용된 바와 같이, 용어 "컴퓨터 판독가능 매체"는 휴대용 또는 비휴대용 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 포함, 또는 운반하는 것이 가능한 다양한 다른 매체들을 포함하지만 이에 한정되지 않는다. 컴퓨터 판독가능 매체는, 데이터가 저장될 수 있고 그리고 무선으로 또는 유선 커넥션들을 통해 전파하는 일시적 전자 신호들 및/또는 캐리어파들을 포함하지 않는 비일시적 매체를 포함할 수도 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, 컴팩트 디스크(CD) 또는 디지털 다기능 디스크(DVD)와 같은 광학 저장 매체들, 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수도 있지만 이에 한정되지 않는다. 컴퓨터 판독가능 매체는, 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장했을 수도 있다. 코드 세그먼트는, 정보, 데이터, 인수들, 파라미터들, 또는 메모리 컨텐츠들을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함한 임의의 적합한 수단을 통해 전달되거나, 포워딩되거나, 또는 송신될 수도 있다.
일부 실시예들에서, 컴퓨터 판독가능 저장 디바이스들, 매체들, 및 메모리들은 비트 스트림 등을 포함하는 무선 신호 또는 케이블을 포함할 수 있다. 하지만, 언급될 때 비일시적 컴퓨터 판독가능 저장 매체들은 그 자체로 에너지, 캐리어 신호들, 전자기파들, 및 신호들과 같은 매체들을 명시적으로 제외한다.
본 명세서에서 제공된 실시예들 및 예들의 철저한 이해를 제공하기 위해 특정 상세들이 위의 설명에서 제공된다. 그러나, 실시예들이 이들 특정 상세들없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 설명의 명확성을 위해, 일부 예들에서 본 기술은, 디바이스들, 디바이스 컴포넌트들, 소프트웨어에서 구현된 방법에서의 단계들 또는 루틴들, 또는 하드웨어와 소프트웨어의 조합들을 포함하는 기능 블록들을 포함하는 개별적인 기능 블록들을 포함하는 것으로서 제시될 수도 있다. 도면들에서 도시된 그리고/또는 본 명세서에서 설명된 것들 이외의 추가적인 컴포넌트들이 사용될 수도 있다. 예를 들어, 회로들, 시스템들, 네트워크들, 프로세스들 및 다른 컴포넌트들은, 불필요한 상세로 실시예들을 모호하게 하지 않기 위해 블록도 형태에서의 컴포넌트들로서 도시될 수도 있다. 다른 예들에서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 실시예들을 모호하게 하는 것을 회피하기 위해 불필요한 상세없이 도시될 수도 있다.
개별 실시예들은, 플로우차트, 흐름도, 데이터 흐름도, 구조도, 또는 블록도로서 도시되는 프로세스 또는 방법으로서 위에서 설명될 수도 있다. 플로우차트가 동작들을 순차적인 프로세스로서 묘사할 수도 있더라도, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수도 있다. 프로세스는 그의 동작들이 완료될 때 종결되지만, 도면에 포함되지 않은 추가적인 단계들을 가질 수도 있다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 때, 그 종결은 호출 함수 또는 메인 함수로의 함수의 복귀에 대응할 수 있다.
전술한 예들에 따른 프로세스들 및 방법들은, 컴퓨터 판독가능 매체들에 저장되거나 또는 달리 그로부터 이용가능한 컴퓨터 실행가능 명령들을 사용하여 구현될 수 있다. 그러한 명령들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 프로세싱 디바이스가 특정 기능 또는 기능들의 그룹을 수행하게 하거나 그렇지 않으면 수행하도록 구성하는 명령들 및 데이터를 포함할 수 있다. 사용된 컴퓨터 리소스들의 부분들은 네트워크를 통해 액세스가능할 수 있다. 컴퓨터 실행가능 명령들은 예를 들어, 바이너리들, 어셈블리 언어와 같은 중간 포맷 명령들, 펌웨어, 소스 코드 등일 수도 있다. 설명된 예들에 따른 방법들 동안 생성된 정보, 사용된 정보, 및/또는 명령들을 저장하는데 사용될 수도 있는 컴퓨터 판독가능 매체들의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
이들 개시들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터들 중 임의의 것을 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현되는 경우, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들(예를 들어, 컴퓨터 프로그램 제품)은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들)은 필요한 태스크들을 수행할 수도 있다. 폼 팩터들의 전형적인 예들은 랩톱들, 스마트폰들, 모바일 폰들, 태블릿 디바이스들 또는 다른 소형 폼 팩터 개인용 컴퓨터들, 개인용 디지털 보조기들, 랙마운트 디바이스들, 자립형 디바이스들 등을 포함한다. 본 명세서에 설명된 기능성은 또한, 주변기기들 또는 애드인 카드(add-in card)들에서 구현될 수 있다. 이러한 기능성은 또한, 추가적인 예로서, 단일 디바이스에서 실행되는 상이한 칩들 또는 상이한 프로세스들 사이에서 회로 보드 상에서 구현될 수 있다.
명령들, 그러한 명령들을 운반하기 위한 매체들, 그들을 실행하기 위한 컴퓨팅 리소스들, 및 그러한 컴퓨팅 리소스들을 지원하기 위한 다른 구조들은 본 개시에서 설명된 기능들을 제공하기 위한 예시적인 수단들이다.
전술한 설명에서, 본원의 양태들은 이들의 구체적 실시예들을 참조하여 설명되었지만, 당업자는 본 출원이 이에 제한되지 않는다는 것을 인식할 것이다. 따라서, 본 출원의 예시적인 실시예들이 본 명세서에서 상세히 설명되었지만, 발명적 개념들은 달리 다양하게 구현되고 채용될 수도 있음이, 그리고 첨부된 청구항들은 종래 기술에 의해 한정되는 것을 제외하고는 그러한 변동들을 포함하는 것으로 해석되도록 의도됨이 이해되어야 한다. 전술한 애플리케이션의 다양한 특징들 및 양태들은 개별적으로 또는 공동으로 사용될 수도 있다. 더욱이, 실시예들은 본 명세서의 더 넓은 사상 및 범위로부터 일탈함없이 본 명세서에서 설명된 것들을 넘어서는 임의의 수의 환경들 및 애플리케이션들에서 활용될 수 있다. 본 명세서 및 도면들은, 이에 따라, 제한적이기 보다는 예시적인 것으로서 간주되어야 한다. 예시의 목적들을 위해, 방법들은 특정 순서로 설명되었다. 대안적인 실시예들에서, 방법들은 설명된 것과는 상이한 순서로 수행될 수도 있음이 이해되어야 한다.
당업자는, 본 명세서에 사용된 미만("<") 및 초과(">") 심볼들 또는 용어가 본 설명의 범위로부터 일탈함 없이 이하("≤") 및 이상("≥") 심볼들로 각각 교체될 수 있음을 인식할 것이다.
컴포넌트들이 특정 동작들을 수행하도록 "구성된" 것으로 기술되는 경우, 그러한 구성은 예를 들어, 그 동작을 수행하도록 전자 회로들 또는 다른 하드웨어를 설계함으로써, 그 동작을 수행하도록 프로그래밍가능 전자 회로(예를 들어, 마이크로프로세서 또는 다른 적합한 전자 회로들)를 프로그램함으로써, 또는 이들의 임의의 조합에 의해 달성될 수 있다.
"에 커플링된"이라는 어구는 직접적으로나 간접적으로 다른 컴포넌트에 물리적으로 연결되는 임의의 컴포넌트, 및/또는 직접적으로나 간접적으로 다른 컴포넌트와 통신하는(예컨대, 유선 또는 무선 커넥션, 및/또는 다른 적합한 통신 인터페이스를 통해 다른 컴포넌트에 연결되는) 임의의 컴포넌트를 지칭한다.
세트 "중 적어도 하나" 또는 세트 "중 하나 이상"을 언급하는 청구항 언어 또는 다른 언어는 그 세트의 하나의 멤버 또는 (임의의 조합의) 그 세트의 다수의 멤버들이 청구항을 충족하는 것을 나타낸다. 예를 들어, "A 및 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A 및 B를 의미한다. 다른 예에서, "A, B, 및 C 중 적어도 하나"를 인용하는 청구항 언어는 A, B, C, 또는 A 및 B, 또는 A 및 C, 또는 B 및 C, 또는 A 및 B 및 C를 의미한다. 언어 세트 "중 적어도 하나" 및/또는 세트 중 "하나 이상"은 세트를 그 세트에 열거된 항목들로 제한하지 않는다. 예를 들어, "A 및 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A 및 B를 의미할 수 있고, A 및 B의 세트에서 열거되지 않은 항목들을 추가적으로 포함할 수 있다.
본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명백히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능성의 관점에서 상기 설명되었다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정한 애플리케이션에 따른다. 당업자들은 설명된 기능성을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 그러한 구현 결정들이 본 출원의 범위로부터의 일탈을 야기하는 것으로서 해석되지는 않아야 한다.
본 명세서에서 설명된 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 그러한 기법들은, 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함하여 다수의 사용들을 갖는 집적 회로 디바이스들과 같은 임의의 다양한 디바이스들에서 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 특징들은 집적된 로직 디바이스들에서 함께 또는 이산의 그러나 상호동작가능한 로직 디바이스들로서 별개로 구현될 수도 있다. 소프트웨어에서 구현되는 경우, 실행될 때 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 기법들이 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있으며, 이는 패키징 재료들을 포함할 수도 있다. 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거가능한 프로래밍가능 판독 전용 메모리(EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체들 등과 같은 메모리 또는 데이터 저장 매체들을 포함할 수도 있다. 기법들은, 추가적으로 또는 대안적으로, 전파된 신호들 또는 파동들과 같이, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 캐리 또는 통신하고 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드 프로그래밍가능 로직 어레이(FPGA)들, 또는 다른 등가의 집적된 또는 이산의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 이러한 프로세서는 본 개시에서 설명된 기법들 중 임의의 것을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다. 따라서, 용어 "프로세서"는, 본 명세서에 사용된 바와 같이, 전술한 구조의 임의의 구조, 전술한 구조의 임의의 조합, 또는 본 명세서에 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치를 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공되거나 CODEC(combined video encoder-decoder)에 통합될 수도 있다.
양태 1: 이미지 프레임들에서 하나 이상의 이미지 프로세싱 동작들을 개선하는 방법. 방법은: 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 단계; 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계로서, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계; 상기 결정에 적어도 부분적으로 기초하여 관심 영역을 조정하는 단계; 및 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행하는 단계를 포함한다.
양태 2: 양태 1에 있어서, 카메라 디바이스가 이미지 캡처 모드에 있는 동안 카메라 디바이스에 의해 캡처되는 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림 내에서 이미지 프레임을 수신하는 단계를 더 포함하는, 방법.
양태 3: 양태 1 또는 양태 2 중 임의의 양태에 있어서, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계는, 이미지 프레임의 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 단계를 포함하는, 방법.
양태 4: 양태 3에 있어서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 단계는, 오브젝트 검출 알고리즘에 기초하여 관심 영역의 미리 결정된 형상을 조정하는 단계를 포함하는, 방법.
양태 5: 양태 4에 있어서, 오브젝트 검출 알고리즘에 기초하여 관심 영역의 미리 결정된 형상을 조정하는 단계는, 오브젝트 검출 알고리즘에 기초하여 오브젝트에 대한 바운딩 박스를 결정하는 단계; 및 관심 영역을 바운딩 박스로서 설정하는 단계를 포함하는, 방법.
양태 6: 양태 1 내지 양태 5 중 임의의 양태에 있어서, 관심 영역의 미리 결정된 사이즈 또는 형상을 조정하는 단계는, 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 감소시키는 단계를 포함하는, 방법.
양태 7: 양태 1 내지 양태 6 중 임의의 양태에 있어서, 관심 영역의 미리 결정된 사이즈 또는 형상을 조정하는 단계는, 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 증가시키는 단계를 포함하는, 방법.
양태 8: 양태 1 내지 양태 7 중 임의의 양태에 있어서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 단계는, 관심 영역의 경계와 하나 이상의 오브젝트들의 경계 사이의 거리를 감소시키는 단계를 포함하는, 방법.
양태 9: 양태 8에 있어서, 관심 영역의 경계와 하나 이상의 오브젝트들의 경계 사이의 거리를 감소시키는 단계는, 이미지 프레임 내의 오브젝트의 윤곽을 결정하는 단계; 및 관심 영역의 경계를 이미지 프레임 내의 오브젝트의 윤곽으로서 설정하는 단계를 포함하는, 방법.
양태 10: 양태 9에 있어서, 이미지 프레임 내의 오브젝트의 윤곽을 결정하는 단계는, 이미지 프레임 내의 윤곽에 대응하는 픽셀들을 결정하는 단계 포함하는, 방법.
양태 11: 양태 1 내지 양태 10 중 임의의 양태에 있어서, 이미지 프레임이 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계는, 이미지 프레임이 이미지 프레임 내의 복수의 관심 영역들 내에 적어도 부분적으로 하나 이상의 오브젝트들을 포함한다고 결정하는 단계를 포함하고; 그리고 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 단계는, 복수의 관심 영역들의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 단계를 포함하는, 방법.
양태 12: 양태 1 내지 양태 11 중 임의의 양태에 있어서, 이미지 프레임 내에서, 조정된 관심 영역을 나타내는 시각적 그래픽을 오버레이하는 단계를 더 포함하는, 방법.
양태 13: 양태 12에 있어서, 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 단계를 더 포함하며, 추가적인 사용자 입력은 조정된 관심 영역에 대한 적어도 하나의 추가적인 조정을 나타내는, 방법.
양태 14: 양태 1 내지 양태 13 중 임의의 양태에 있어서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 관심 영역들을 결정하는 단계; 이미지 프레임 내에서, 복수의 후보 조정된 관심 영역들에 대응하는 복수의 시각적 그래픽들을 순차적으로 디스플레이하는 단계; 및 복수의 후보 조정된 관심 영역들 중 하나의 후보 조정된 관심 영역에 대응하는 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여 하나의 후보 조정된 관심 영역의 선택을 결정하는 단계를 더 포함하는, 방법.
양태 15: 양태 1 내지 양태 14 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 초점 동작을 포함하는, 방법.
양태 16: 양태 1 내지 양태 15 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 노출 동작을 포함하는, 방법.
양태 17: 양태 1 내지 양태 16 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 화이트 밸런스 동작을 포함하는, 방법.
양태 18: 양태 1 내지 양태 17 중 임의의 양태에 있어서, 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하는 단계 후에 디스플레이 상에 이미지 프레임을 디스플레이하는 단계를 더 포함하는, 방법.
양태 19: 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 장치. 장치는 메모리 및 프로세서를 포함하며, 상기 프로세서는: 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하고; 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것으로서, 관심 영역은 선택된 상기 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하고; 결정에 적어도 부분적으로 기초하여 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하고; 그리고 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행하도록 구성된다.
양태 20: 양태 19에 있어서, 프로세서는, 카메라 디바이스가 이미지 캡처 모드에 있는 동안 카메라 디바이스에 의해 캡처되는 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림 내에서 이미지 프레임을 수신하도록 구성되는, 장치.
양태 21: 양태 19 또는 양태 20 중 임의의 양태에 있어서, 프로세서는, 이미지 프레임의 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것에 기초하여, 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하도록 구성되는, 장치.
양태 22: 양태 21에 있어서, 프로세서는, 오브젝트 검출 알고리즘에 기초하여 오브젝트에 대한 바운딩 박스를 결정하고; 그리고 관심 영역을 바운딩 박스로서 설정하도록 구성되는, 장치.
양태 23: 양태 19 내지 양태 22 중 임의의 양태에 있어서, 프로세서는, 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 감소시키도록 구성되는, 장치.
양태 24: 양태 19 내지 양태 23 중 임의의 양태에 있어서, 프로세서는, 적어도 하나의 축을 따라 관심 영역의 미리 결정된 사이즈를 증가시키도록 구성되는, 장치.
양태 25: 양태 19 내지 양태 24 중 임의의 양태에 있어서, 프로세서는 관심 영역의 경계와 오브젝트의 경계 사이의 거리를 감소시키도록 구성되는, 장치.
양태 26: 양태 25에 있어서, 프로세서는: 이미지 프레임 내의 오브젝트의 윤곽을 결정하고; 그리고 관심 영역의 경계를 이미지 프레임 내의 오브젝트의 윤곽으로서 설정하도록 구성되는, 장치.
양태 27: 양태 26에 있어서, 프로세서는 이미지 프레임 내의 윤곽에 대응하는 픽셀들을 결정하도록 구성되는, 장치.
양태 28: 양태 19 내지 양태 27 중 임의의 양태에 있어서, 프로세서는, 이미지 프레임이 이미지 프레임 내의 복수의 관심 영역들 내에 적어도 부분적으로 하나 이상의 오브젝트들을 포함한다고 결정하는 것에 기초하여, 이미지 프레임이 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하고; 그리고 복수의 관심 영역들의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정함으로써 적어도 부분적으로 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하도록 구성되는, 장치.
양태 29: 양태 19 내지 양태 28 중 임의의 양태에 있어서, 프로세서는, 이미지 프레임 내에서, 조정된 관심 영역을 나타내는 시각적 그래픽을 오버레이하도록 추가로 구성되는, 장치.
양태 30: 양태 29에 있어서, 프로세서는, 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하도록 추가로 구성되며, 추가적인 사용자 입력은 조정된 상기 관심 영역에 대한 적어도 하나의 추가적인 조정을 나타내는, 장치.
양태 31: 양태 19 내지 양태 30 중 임의의 양태에 있어서, 프로세서는: 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 관심 영역들을 결정하고; 이미지 프레임 내에서, 복수의 후보 조정된 관심 영역들에 대응하는 복수의 시각적 그래픽들을 순차적으로 디스플레이하고; 그리고 복수의 후보 조정된 관심 영역들 중 하나의 후보 조정된 관심 영역에 대응하는 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여 하나의 후보 조정된 관심 영역의 선택을 결정하도록 추가로 구성되는, 장치.
양태 32: 양태 19 내지 양태 31 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 초점 동작을 포함하는, 장치.
양태 33: 양태 19 내지 양태 32 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 노출 동작을 포함하는, 장치.
양태 34: 양태 19 내지 양태 33 중 임의의 양태에 있어서, 하나 이상의 이미지 캡처 동작들은 자동 화이트 밸런스 동작을 포함하는, 장치.
양태 35: 양태 19 내지 양태 34 중 임의의 양태에 있어서, 디스플레이를 더 포함하고, 프로세서는, 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처를 수행한 후에 디스플레이 상에 이미지 프레임을 디스플레이하도록 구성되는, 장치.
양태 36: 양태 19 내지 양태 35 중 임의의 양태에 있어서, 장치는 모바일 디바이스를 포함하는, 장치.
양태 37: 양태 19 내지 양태 36 중 임의의 양태에 있어서, 장치는 카메라 디바이스를 포함하는, 장치.
양태 38: 이미지 프레임들에서 하나 이상의 이미지 프로세싱 동작들을 개선하기 위한 비일시적 컴퓨터 판독가능 저장 매체. 비일시적 컴퓨터 판독가능 저장 매체는 그에 저장된 명령들을 포함하며, 이들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 양태 1 내지 양태 18의 동작들 중 임의의 것을 수행하게 한다. 예를 들어, 비일시적 컴퓨터 판독가능 저장 매체는 그에 저장된 명령들을 포함하며, 상기 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하게 하고; 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하게 하는 것으로서, 관심 영역은 선택된 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하게 하고; 결정에 적어도 부분적으로 기초하여 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하게 하고; 그리고 조정된 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 프로세싱 동작들을 수행하게 한다.
양태 39: 양태 38에 있어서, 이미지 프레임이 이미지 프레임의 상기 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것은, 이미지 프레임의 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
양태 40: 양태 38 또는 양태 39 중 임의의 양태에 있어서, 관심 영역의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 것은, 관심 영역의 경계와 오브젝트의 경계 사이의 거리를 감소시키는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
양태 41: 양태 1 내지 양태 18의 동작들 중 임의의 것을 수행하기 위한 하나 이상의 수단을 포함하는 이미지 캡처 및 프로세싱 시스템.

Claims (40)

  1. 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 방법으로서,
    이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하는 단계;
    상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계로서, 상기 관심 영역은 선택된 상기 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계;
    상기 결정에 적어도 부분적으로 기초하여 상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계; 및
    조정된 상기 관심 영역 내의 이미지 데이터에 대해 상기 하나 이상의 이미지 캡처 동작들을 수행하는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  2. 제 1 항에 있어서,
    카메라 디바이스가 이미지 캡처 모드에 있는 동안 상기 카메라 디바이스에 의해 캡처되는 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림 내에서 상기 이미지 프레임을 수신하는 단계를 더 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계는, 상기 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  4. 제 3 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계는, 상기 오브젝트 검출 알고리즘에 기초하여 상기 관심 영역의 상기 미리 결정된 형상을 조정하는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 오브젝트 검출 알고리즘에 기초하여 상기 관심 영역의 상기 미리 결정된 형상을 조정하는 단계는:
    상기 오브젝트 검출 알고리즘에 기초하여 상기 오브젝트에 대한 바운딩 박스를 결정하는 단계; 및
    상기 관심 영역을 상기 바운딩 박스로서 설정하는 단계
    를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계는, 적어도 하나의 축을 따라 상기 관심 영역의 상기 미리 결정된 사이즈를 감소시키는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계는, 적어도 하나의 축을 따라 상기 관심 영역의 상기 미리 결정된 사이즈를 증가시키는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계는, 상기 관심 영역의 경계와 상기 오브젝트의 경계 사이의 거리를 감소시키는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 관심 영역의 경계와 상기 오브젝트의 경계 사이의 거리를 감소시키는 단계는:
    상기 이미지 프레임 내의 오브젝트의 윤곽을 결정하는 단계; 및
    상기 관심 영역의 경계를 상기 이미지 프레임 내의 상기 오브젝트의 상기 윤곽으로서 설정하는 단계
    를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 이미지 프레임 내의 오브젝트의 윤곽을 결정하는 단계는, 상기 이미지 프레임 내의 상기 윤곽에 대응하는 픽셀들을 결정하는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  11. 제 1 항에 있어서,
    상기 이미지 프레임이 상기 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 단계는, 상기 이미지 프레임이 상기 이미지 프레임 내의 복수의 관심 영역들 내에 적어도 부분적으로 하나 이상의 오브젝트들을 포함한다고 결정하는 단계를 포함하고; 그리고
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 단계는, 상기 복수의 관심 영역들의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정하는 단계를 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  12. 제 1 항에 있어서,
    상기 이미지 프레임 내에서, 조정된 상기 관심 영역을 나타내는 시각적 그래픽을 오버레이하는 단계를 더 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  13. 제 12 항에 있어서,
    상기 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 단계를 더 포함하며, 상기 추가적인 사용자 입력은 조정된 상기 관심 영역에 대한 적어도 하나의 추가적인 조정을 나타내는, 이미지 캡처 동작들을 개선하기 위한 방법.
  14. 제 1 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 관심 영역들을 결정하는 단계;
    상기 이미지 프레임 내에서, 상기 복수의 후보 조정된 관심 영역들에 대응하는 복수의 시각적 그래픽들을 순차적으로 디스플레이하는 단계; 및
    상기 복수의 후보 조정된 관심 영역들 중 하나의 후보 조정된 관심 영역에 대응하는 상기 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여 상기 하나의 후보 조정된 관심 영역의 선택을 결정하는 단계를 더 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  15. 제 1 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 초점 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  16. 제 1 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 노출 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  17. 제 1 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 화이트 밸런스 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  18. 제 1 항에 있어서,
    조정된 상기 관심 영역 내의 상기 이미지 데이터에 대해 상기 하나 이상의 이미지 캡처 동작들을 수행하는 단계 후에 디스플레이 상에 상기 이미지 프레임을 디스플레이하는 단계를 더 포함하는, 이미지 캡처 동작들을 개선하기 위한 방법.
  19. 이미지 프레임들에서 하나 이상의 이미지 캡처 동작들을 개선하기 위한 장치로서,
    메모리; 및
    프로세서를 포함하고,
    상기 프로세서는:
    이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하고;
    상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하는 것으로서, 상기 관심 영역은 선택된 상기 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하고;
    상기 결정에 적어도 부분적으로 기초하여 상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하고; 그리고
    조정된 상기 관심 영역 내의 이미지 데이터에 대해 상기 하나 이상의 이미지 캡처 동작들을 수행하도록
    구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 프로세서는, 카메라 디바이스가 이미지 캡처 모드에 있는 동안 상기 카메라 디바이스에 의해 캡처되는 이미지 프레임들을 포함하는 프레임들의 프리뷰 스트림 내에서 상기 이미지 프레임을 수신하도록 추가로 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 프로세서는, 상기 이미지 프레임의 상기 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것에 기초하여, 상기 이미지 프레임이 상기 이미지 프레임의 상기 관심 영역 내에 적어도 부분적으로 상기 오브젝트를 포함한다고 결정하도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  22. 제 21 항에 있어서,
    상기 프로세서는:
    상기 오브젝트 검출 알고리즘에 기초하여 상기 오브젝트에 대한 바운딩 박스를 결정하고; 그리고
    상기 관심 영역을 상기 바운딩 박스로서 설정하도록
    구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  23. 제 19 항에 있어서,
    상기 프로세서는, 적어도 하나의 축을 따라 상기 관심 영역의 상기 미리 결정된 사이즈를 감소시키도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  24. 제 19 항에 있어서,
    상기 프로세서는, 적어도 하나의 축을 따라 상기 관심 영역의 상기 미리 결정된 사이즈를 증가시키도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  25. 제 19 항에 있어서,
    상기 프로세서는, 상기 관심 영역의 경계와 상기 오브젝트의 경계 사이의 거리를 감소시키도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  26. 제 25 항에 있어서,
    상기 프로세서는:
    상기 이미지 프레임 내의 오브젝트의 윤곽을 결정하고; 그리고
    상기 관심 영역의 경계를 상기 이미지 프레임 내의 상기 오브젝트의 상기 윤곽으로서 설정하도록
    구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  27. 제 26 항에 있어서,
    상기 프로세서는, 상기 이미지 프레임 내의 상기 윤곽에 대응하는 픽셀들을 결정하도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  28. 제 19 항에 있어서,
    상기 프로세서는:
    상기 이미지 프레임이 상기 이미지 프레임 내의 복수의 관심 영역들 내에 적어도 부분적으로 하나 이상의 오브젝트들을 포함한다고 결정하는 것에 기초하여, 상기 이미지 프레임이 상기 관심 영역 내에 적어도 부분적으로 상기 오브젝트를 포함한다고 결정하고; 그리고
    상기 복수의 관심 영역들의 미리 결정된 사이즈 또는 미리 결정된 형상을 조정함으로써 적어도 부분적으로 상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하도록
    구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  29. 제 19 항에 있어서,
    상기 프로세서는, 상기 이미지 프레임 내에서, 조정된 상기 관심 영역을 나타내는 시각적 그래픽을 오버레이하도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  30. 제 29 항에 있어서,
    상기 프로세서는, 상기 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하도록 추가로 구성되며, 상기 추가적인 사용자 입력은 조정된 상기 관심 영역에 대한 적어도 하나의 추가적인 조정을 나타내는, 이미지 캡처 동작들을 개선하기 위한 장치.
  31. 제 19 항에 있어서,
    상기 프로세서는:
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상에 대한 상이한 조정들에 대응하는 복수의 후보 조정된 관심 영역들을 결정하고;
    상기 이미지 프레임 내에서, 상기 복수의 후보 조정된 관심 영역들에 대응하는 복수의 시각적 그래픽들을 순차적으로 디스플레이하고; 그리고
    상기 복수의 후보 조정된 관심 영역들 중 하나의 후보 조정된 관심 영역에 대응하는 상기 복수의 시각적 그래픽들 중의 시각적 그래픽과 연관된 추가적인 사용자 입력을 검출하는 것에 기초하여 상기 하나의 후보 조정된 관심 영역의 선택을 결정하도록
    추가로 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  32. 제 19 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 초점 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 장치.
  33. 제 19 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 노출 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 장치.
  34. 제 19 항에 있어서,
    상기 하나 이상의 이미지 캡처 동작들은 자동 화이트 밸런스 동작을 포함하는, 이미지 캡처 동작들을 개선하기 위한 장치.
  35. 제 19 항에 있어서,
    디스플레이를 더 포함하고,
    상기 프로세서는, 조정된 상기 관심 영역 내의 상기 이미지 데이터에 대해 상기 하나 이상의 이미지 캡처 동작들을 수행한 후에 상기 디스플레이 상에 상기 이미지 프레임을 디스플레이하도록 구성되는, 이미지 캡처 동작들을 개선하기 위한 장치.
  36. 제 19 항에 있어서,
    상기 장치는 모바일 디바이스를 포함하는, 이미지 캡처 동작들을 개선하기 위한 장치.
  37. 제 19 항에 있어서,
    상기 장치는 카메라 디바이스를 포함하는, 이미지 캡처 동작들을 개선하기 위한 장치.
  38. 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    이미지 프레임 내의 위치의 선택에 대응하는 사용자 입력을 검출하게 하고;
    상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하게 하는 것으로서, 상기 관심 영역은 선택된 상기 위치를 포함하고 미리 결정된 사이즈 또는 미리 결정된 형상을 갖는, 상기 이미지 프레임이 상기 이미지 프레임의 관심 영역 내에 적어도 부분적으로 오브젝트를 포함한다고 결정하게 하고;
    상기 결정에 적어도 부분적으로 기초하여 상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하게 하고; 그리고
    조정된 상기 관심 영역 내의 이미지 데이터에 대해 하나 이상의 이미지 캡처 동작들을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  39. 제 38 항에 있어서,
    상기 이미지 프레임이 상기 이미지 프레임의 상기 관심 영역 내에 상기 오브젝트를 포함한다고 결정하는 것은, 상기 이미지 프레임의 상기 관심 영역 내에서 오브젝트 검출 알고리즘을 수행하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  40. 제 38 항에 있어서,
    상기 관심 영역의 상기 미리 결정된 사이즈 또는 상기 미리 결정된 형상을 조정하는 것은, 상기 관심 영역의 경계와 상기 오브젝트의 경계 사이의 거리를 감소시키는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020237012911A 2020-10-22 2020-10-22 이미지 캡처 동작들을 개선하기 위한 메커니즘 KR20230091097A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/122647 WO2022082554A1 (en) 2020-10-22 2020-10-22 Mechanism for improving image capture operations

Publications (1)

Publication Number Publication Date
KR20230091097A true KR20230091097A (ko) 2023-06-22

Family

ID=81289529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237012911A KR20230091097A (ko) 2020-10-22 2020-10-22 이미지 캡처 동작들을 개선하기 위한 메커니즘

Country Status (7)

Country Link
US (1) US20230262322A1 (ko)
EP (1) EP4233306A1 (ko)
JP (1) JP2023552947A (ko)
KR (1) KR20230091097A (ko)
CN (1) CN116368812A (ko)
TW (1) TW202223734A (ko)
WO (1) WO2022082554A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117574001A (zh) * 2023-10-27 2024-02-20 北京安锐卓越信息技术股份有限公司 一种超大图片加载方法、装置及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4838302B2 (ja) * 2005-05-10 2011-12-14 アクティブ オプティクス ピーティーワイ リミテッド 画像取り込みシステムを制御する方法、画像取り込みシステム、および、デジタルカメラ
JP2011193443A (ja) 2010-02-16 2011-09-29 Ricoh Co Ltd 物体追尾装置
CN103460250B (zh) * 2011-04-11 2017-11-28 英特尔公司 基于感兴趣对象的图像处理
JP6182092B2 (ja) * 2014-03-10 2017-08-16 キヤノン株式会社 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
WO2022082554A1 (en) 2022-04-28
TW202223734A (zh) 2022-06-16
JP2023552947A (ja) 2023-12-20
US20230262322A1 (en) 2023-08-17
CN116368812A (zh) 2023-06-30
EP4233306A1 (en) 2023-08-30

Similar Documents

Publication Publication Date Title
WO2020192692A1 (zh) 图像处理方法以及相关设备
US20210390747A1 (en) Image fusion for image capture and processing systems
WO2023049651A1 (en) Systems and methods for generating synthetic depth of field effects
WO2023279289A1 (en) Processing image data using multi-point depth sensing system information
US20230262322A1 (en) Mechanism for improving image capture operations
US20220414847A1 (en) High dynamic range image processing
US20230171509A1 (en) Optimizing high dynamic range (hdr) image processing based on selected regions
US20230021016A1 (en) Hybrid object detector and tracker
US11792505B2 (en) Enhanced object detection
US11893720B1 (en) Automatic image processing based on caption
US11363209B1 (en) Systems and methods for camera zoom
US20230222757A1 (en) Systems and methods of media processing
US20240114249A1 (en) Systems and methods for determining image capture settings
US20230377096A1 (en) Image signal processor
US20230319401A1 (en) Image capture using dynamic lens positions
US20240144717A1 (en) Image enhancement for image regions of interest
WO2023279275A1 (en) Local motion detection for improving image capture and/or processing operations
US20240013351A1 (en) Removal of objects from images
WO2023283855A1 (en) Super resolution based on saliency
WO2023282963A1 (en) Enhanced object detection
WO2023167788A1 (en) Systems and methods of image processing based on gaze detection