[go: up one dir, main page]

KR102801507B1 - 얼굴의 PD(perspective distortion) 보정 - Google Patents

얼굴의 PD(perspective distortion) 보정 Download PDF

Info

Publication number
KR102801507B1
KR102801507B1 KR1020237014506A KR20237014506A KR102801507B1 KR 102801507 B1 KR102801507 B1 KR 102801507B1 KR 1020237014506 A KR1020237014506 A KR 1020237014506A KR 20237014506 A KR20237014506 A KR 20237014506A KR 102801507 B1 KR102801507 B1 KR 102801507B1
Authority
KR
South Korea
Prior art keywords
image
face
region
computing device
interest
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020237014506A
Other languages
English (en)
Other versions
KR20230065365A (ko
Inventor
이창 시
치아 카이 량
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20230065365A publication Critical patent/KR20230065365A/ko
Application granted granted Critical
Publication of KR102801507B1 publication Critical patent/KR102801507B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

이미지 처리와 연관된 장치 및 방법이 제공된다. 컴퓨팅 장치는 카메라에 의해 캡처된 이미지와 같은 이미지의 제1 이미지 영역을 결정할 수 있다. 컴퓨팅 장치는 제1 이미지 영역과 연관된 워핑 메시의 제1 부분을 사용하여 이미지에 대한 워핑 메시를 결정할 수 있다. 컴퓨팅 장치는, 기하학적 왜곡을 보정하기 위해 제1 이미지 영역의 얼굴 관련 변환과 연관된 코스트를 포함하는 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고, 이미지 에지의 직진도를 유지하기 위한 에지 관련 변환 코스트를 포함하는 워핑 메시와 연관된 제2 코스트를 결정함으로써 워핑 메시에 대한 코스트 함수를 결정할 수 있다. 컴퓨팅 장치는 코스트 함수 최적화에 기초하여 최적화된 메시를 결정할 수 있다. 컴퓨팅 장치는 최적화된 메시에 기초하여 제1 이미지 영역을 수정할 수 있다.

Description

얼굴의 PD(perspective distortion) 보정{PERSPECTIVE DISTORTION CORRECTION ON FACES}
본 명세서는 얼굴의 PD(perspective distortion) 보정에 관한 것이다.
휴대폰, 개인용 컴퓨터 및 태블릿을 포함한 많은 최신 컴퓨팅 장치에는 스틸 및/또는 비디오 카메라와 같은 이미지 캡처 장치가 포함된다. 이미지 캡처 장치는 사람, 동물, 풍경 및/또는 물체를 포함하는 이미지와 같은 이미지를 캡처할 수 있다.
일부 이미지 캡처 장치 및/또는 컴퓨팅 장치는 캡처된 이미지를 수정할 수 있다. 예를 들어, 일부 이미지 캡처 장치는 플래시 조명과 같은 밝은 조명을 사용하여 캡처한 이미지에 나타날 수 있는 사람과 동물의 적목 현상과 같은 아티팩트(artifacts)을 제거하는 "적목(red-eye)" 보정을 제공할 수 있다. 캡처된 이미지가 수정된 후 수정된 이미지는 저장, 표시, 전송, 종이에 인쇄 및/또는 다른 방식으로 사용될 수 있다.
일 양태에서, 컴퓨터로 구현되는 방법이 제공된다. 이미지를 나타내는 이미지 데이터가 수신된다. 이미지의 제1 관심 영역에 대응하는 제1 이미지 영역이 결정된다. 이미지의 워핑 메시가 결정된다. 제1 이미지 영역과 연관된 워핑 메시의 제1 부분이 결정된다. 워핑 메시의 코스트 함수는, 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고, 워핑 메시와 연관된 제2 코스트를 결정함으로써 결정되며, 제1 코스트는 이미지에 표현된 바와 같이 제1 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환과 연관된 코스트를 포함하고, 제2 코스트는 적어도 하나 이상의 얼굴 관련 변환에 의해 수정된 이미지의 에지의 직진도를 보존하기 위한 하나 이상의 에지 관련 변환의 코스트를 포함한다. 워핑 메시에 대한 코스트 함수의 최적화에 기초하여 최적화된 메시가 결정된다. 최적화된 메시를 기반으로 이미지의 제1 이미지 영역이 수정된다.
또 다른 양태에서, 컴퓨팅 장치가 제공된다. 컴퓨팅 장치는 하나 이상의 프로세서; 및 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치가 기능을 수행하게하는 컴퓨터 판독 가능 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 기능은, 이미지를 나타내는 이미지 데이터를 수신하고; 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하고; 이미지에 대한 워핑 메시(warping mesh)를 결정하고; 제1 이미지 영역과 연관된 워핑 메시의 제1 부분을 결정하고; 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고, 워핑 메시와 연관된 제2 코스트를 결정함으로써 워핑 메시의 코스트 함수를 결정하고 -제1 코스트는 이미지에 표현된 제1 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환(ace-related transformations)과 연관된 코스트를 포함하고, 제2 코스트는 하나 이상의 얼굴 관련 변환에 의해 적어도 수정된 이미지의 에지의 직진도(straightness)를 보존하기 위한 하나 이상의 에지 관련 변환의 코스트를 포함함-; 워핑 메시에 대한 코스트 함수의 최적화에 기초하여 최적화된 메시를 결정하고; 그리고 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정하는 것을 포함한다.
또 다른 양태에서, 컴퓨팅 장치가 제공된다. 컴퓨팅 장치는, 이미지를 나타내는 이미지 데이터를 수신하는 수단; 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하는 수단; 이미지에 대한 워핑 메시(warping mesh)를 결정하는 수단; 제1 이미지 영역과 연관된 워핑 메시의 제1 부분을 결정하는 수단; 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고, 워핑 메시와 연관된 제2 코스트를 결정함으로써 워핑 메시의 코스트 함수를 결정하는 수단 -제1 코스트는 이미지에 표현된 제1 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환(ace-related transformations)과 연관된 코스트를 포함하고, 제2 코스트는 하나 이상의 얼굴 관련 변환에 의해 적어도 수정된 이미지의 에지의 직진도(straightness)를 보존하기 위한 하나 이상의 에지 관련 변환의 코스트를 포함함-; 워핑 메시에 대한 코스트 함수의 최적화에 기초하여 최적화된 메시를 결정하는 수단; 그리고 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정하는 수단을 포함한다.
또 다른 양태에서, 제조 물품이 제공된다. 제조 물품은 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치가 기능을 수행하게 하는 컴퓨터 판독 가능 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 기능은, 이미지를 나타내는 이미지 데이터를 수신하고; 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하고; 이미지에 대한 워핑 메시(warping mesh)를 결정하고; 제1 이미지 영역과 연관된 워핑 메시의 제1 부분을 결정하고; 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고, 워핑 메시와 연관된 제2 코스트를 결정함으로써 워핑 메시의 코스트 함수를 결정하고 -제1 코스트는 이미지에 표현된 제1 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환(ace-related transformations)과 연관된 코스트를 포함하고, 제2 코스트는 하나 이상의 얼굴 관련 변환에 의해 적어도 수정된 이미지의 에지의 직진도(straightness)를 보존하기 위한 하나 이상의 에지 관련 변환의 코스트를 포함함-; 워핑 메시에 대한 코스트 함수의 최적화에 기초하여 최적화된 메시를 결정하고; 그리고 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정하는 것을 포함한다.
앞의 요약은 설명을 위한 것일 뿐이며 어떤식으로든 제한하지 않는다. 상기 설명된 예시적인 양태, 실시 예 및 특징에 추가하여, 추가의 양태, 실시 예 및 특징은 도면 및 다음의 상세한 설명 및 첨부 도면을 참조하여 명백해질 것이다.
도 1은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 2는 예시적인 실시 예에 따른, 얼굴 박스 및 확장된 얼굴 박스를 갖는 입력 이미지를 도시한다.
도 3은 예시적인 실시 예에 따른, 도 2의 입력 이미지에 대한 이미지 마스크를 도시한다.
도 4는 예시적인 실시 예에 따른, 도 2의 입력 이미지에 대한 워핑 메시를 나타낸다.
도 5는 예시적인 실시 예에 따른, 도 2의 입력 이미지에 대한 최적화된 메시를 나타낸다.
도 6은 예시적인 실시 예에 따른, 도 2의 입력 이미지의 얼굴 보정을 포함하는 출력 이미지를 도시한다.
도 7은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 8은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 9는 예시적인 실시 예에 따른 방법의 흐름도이다.
도 10은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 11은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 12는 예시적인 실시 예에 따른 방법의 흐름도이다.
도 13은 예시적인 실시 예에 따른 방법의 흐름도이다.
도 14는 예시적인 실시 예에 따라, 두 얼굴을 나타내는 입력 이미지가 해당 출력 이미지에서 보정된 얼굴을 갖는 시나리오를 도시한다.
도 15는 예시적인 실시 예에 따라, 4 개의 얼굴을 나타내는 입력 이미지가 해당 출력 이미지에서 보정된 4 개의 얼굴 중 3 개를 갖는 시나리오를 도시한다.
도 16은 예시적인 실시 예에 따라, 컴퓨팅 장치가 입력 이미지 및 선택될 때 컴퓨팅 장치로 하여금 입력 이미지에 표현된 얼굴의 보정을 포함하는 해당 출력 이미지(1550)를 생성하게 하는 제어를 디스플레이하는 시나리오를 도시한다.
도 17은 예시적인 실시 예에 따른 분산 컴퓨팅 아키텍처를 도시한다.
도 18은 예시적인 실시 예에 따른 예시적인 컴퓨팅 장치의 기능 블록도이다.
도 19는 예시적인 실시 예에 따른 방법의 흐름도이다.
물체를 촬영하면 3차원 환경이 2차원 이미지로 재현된다. 따라서 공간의 3차원 점이 2차원 좌표계에 투영된다. 이러한 투영의 결과로 다양한 왜곡이 발생할 수 있다. 예를 들면, PD(perspective distortion)는 이미지가 캡처된 화각이 이미지가 보이는 화각과 다를 때 발생할 수 있다. 이미징 장치에서 다양한 거리에 있는 물체의 상대적 모양이 왜곡될 수 있다. PD 아티팩트(artifacts)는 특히 WFOV 렌즈 및/또는 WFOV 센서를 포함하는 WFOV(Wide Field of View) 이미징 시스템을 사용할 때 두드러질 수 있다. 따라서 WFOV 이미징 시스템의 장점(이동 컴퓨팅 장치 또는 기타 장치(예를 들어 스마트 폰, 플립 폰, 태블릿)에 자주 나타남)은 이미지 충실도의 "drawbacks"과 관련이 있다. 이러한 효과는 이미지 주변의 물체에서 특히 두드러 질 수 있다.
그 결과, 사람의 얼굴 및/또는 다른 물체가 특히 사진이나 다른 이미지의 주변 영역에서 촬영될 때, 사람의 얼굴 및/또는 다른 물체는 PD의 결과로 늘어나고 왜곡된 특징을 나타낼 수 있다. 이는 이미징 시스템의 기술적 결과이며 이미지 충실도 측면에서 불리할 수 있으며 이미지 품질을 저하시킬 수 있다. 특히, 사람 얼굴의 왜곡은 특히 눈에 띄기 때문에 왜곡이 상대적으로 적은 경우에도 이미지 품질의 의미있는 저하를 나타낸다. 즉, PD는 사람의 얼굴에 불쾌한 왜곡을 유발하여, 사용자 경험에 부정적인 영향을 미칠 수 있다.
따라서, 사람의 얼굴을 포함하여 얼굴과 같은 물체의 PD 아티팩트로 캡처된 이미지(예: 사진, 비디오 녹화 이미지)에 문제가 있다. 여기에는 사진 및/또는 다른 이미지에서 이러한 PD 아티팩트를 보정하기 위한 기술 및 관련 장치가 설명되어 있다. 여기에 설명된 기술 및 관련 장치는 하나 이상의 투영(projections)을 사용하여 이러한 아티팩트를 수정하는 데 도움을 줄 수 있다. 보다 구체적으로, 하나 이상의 입력 이미지의 얼굴 영역(즉, 얼굴을 나타내는 입력 이미지(들)의 영역)은 제1 투영을 사용하여 국부적으로 보정될 수 있고 얼굴 영역 외부의 입력 이미지(들)의 영역은 제2 투영을 사용하여 보정될 수 있다. 예를 들면 제1 투영은 스테레오그래 프로젝션(입체 투영)(stereographic projection)일 수 있고 제2 투영은 퍼스펙티브 투영(원근 투영)(perspective projection)일 수 있다. 제1 투영 및/또는 제2 투영는 메시로 구현될 수 있다. 또한, 메시, 제1 투영 및/또는 제2 투영을 사용하여 하나 이상의 입력 이미지에 가해진 보정을 반영하는 하나 이상의 보정 이미지가 생성, 표시, 전송 및/또는 다른 방식으로 생성될 수 있으며, 일부 경우에, 보정된 이미지는 메시, 제1 투영 및/또는 제2 투영을 사용하여 이루어진 보정을 해당 입력 이미지의 전부는 아니지만 대부분의 픽셀에 반영할 수 있다. 예로서, 본 명세서에서 설명된 이러한 기술은 이동 컴퓨팅 장치의 소프트웨어 애플리케이션에서 구현될 수 있다.
이미지를 수정하기 위해 다른 기술이 사용되었다. 일부 경우에, 어안 렌즈 및/또는 관련 소프트웨어는 PD(perspective distortion) 아티팩트를 수정하기 위해 이미지를 전체적으로 매핑하는 데 사용된다. 그러나 어안 렌즈 및/또는 관련 소프트웨어는 직선을 생성할 수 없으며 곡선 모양의 결과 이미지를 렌더링할 수 없다. 여기에 설명된 기술 및 관련 장치는 이미지에서 직선을 유지하면서 PD 아티팩트를 보정할 수 있으며, 따라서 PD 보정 이미지에 추가 아티팩트가 거의 생성되지 않는다. 또한, 소프트웨어 애플리케이션은 이동 컴퓨팅 장치에서 여기에 설명된 기술을 효율적으로 수행할 수 있다.
특히, 여기에 설명된 기술은 이미지의 얼굴 영역에 등각 투영을 국부적으로 블랜딩(blending)하는 개념에 의존하며, 여기서 얼굴 영역은 하나 이상의 얼굴을 나타내는 이미지 영역이다. 등각 투영에는 곡선이 만나는 각도를 유지하면서 평면에 구를 투영하는 입체 투영과 같은 각도-보존(angle-preserving) 투영이 포함될 수 있다. 나머지 이미지 즉, 얼굴 영역 외부의 이미지 부분은 직선을 유지하는 원근 투영을 사용하여 렌더링할 수 있다. 그러나 전체 이미지에 적용된 등각 투영(conformal projection)은 전체 이미지에서 리지드(rigid) 물체의 형상(모양)과 곡률을 왜곡시킨다. 물체의 형상 및 곡률의 이러한 왜곡을 피하기 위해, 여기에 설명된 기술은 등각 투영을 얼굴 영역에 국부적으로 적용한다. 그 다음 얼굴 영역 외부의 모양/곡률 왜곡을 해결하기 위해 나머지 이미지에 직진도를 보존하는(straightness-preserving) 원근 변환이 사용된다. 결과 이미지 보정 기술은 이미지의 얼굴 영역에 대한 등각 투영과 나머지 이미지에 대한 원근 투영을 결합한다.
일부 예에서, 여기에 설명된 기술은 사용자 입력을 최소화하거나 전혀 사용하지 않고 활용될 수 있다. 예를 들면, 여기에 설명된 기술은 사용자가 얼굴 영역, 선 또는 이미지의 다른 종횡(aspects)을 식별하도록 요청하지 않고 여기에 설명된 기술의 계산에 사용되는 항의 사용자 지정을 요청하지 않고 활용될 수 있다. 오히려, 아래에서 설명되는 바와 같이, 여기에 설명된 기술은 이미지의 종횡 및 여기에 설명된 계산에 사용되는 항(terms)에 대한 이러한 사용자 입력없이 활용될 수 있으므로 자동 이미지 보정 애플리케이션에서 활용될 수 있다. 또한, 여기에 설명된 기술은 비디오 레코딩에서 일련의 이미지와 같은 일련의 이미지를 수정하기 위해 사용자 입력없이 이용될 수 있다. 따라서, 여기에 설명된 기술은 사용자 입력을 요구하지 않고 정지(스틸) 이미지 및/또는 비디오 녹화 이미지에서 얼굴 영역을 보정하는 데 유용하게 사용될 수 있다. 물론, 일부 사용자 입력을 갖는 본 명세서에 설명된 기술의 변형도 가능하다.
이미지의 PD를 보정하기 위한 기술 및 장치
이미지의 얼굴 영역에 대한 등각 투영과 나머지 이미지에 대한 원근 투영을 결합하기 위해 워핑 메시에서 메시 최적화 문제를 해결할 수 있다. 그 다음 메시 최적화 문제를 해결하는 최적화된 메시를 사용하여 PD가 있는 관련 입력 이미지를 워핑(warping)하여 출력 이미지를 렌더링할 수 있다.
일부 예에서, 도 1의 컨텍스트에서 아래에서 설명되는 방법(100)과 연관된 다음 절차는 해당 입력 이미지 I에서 PD의 일부 또는 전체를 수정하는 수정된 출력 이미지 O를 생성하는 데 사용될 수 있다:
1. 입력 이미지 I의 트리거링 조건을 확인할 수 있다. 예를 들면, 이러한 트리거링 조건은 얼굴(예를 들어, 사람의 얼굴, 동물 얼굴) 및/또는 다른 물체의 표현 크기(그러한 얼굴 및/또는 물체의 표현 크기) 및 얼굴 및/또는 물체의 표현과 연관된 등각 코스트와 관련될 수 있다. 다른 트리거링 조건도 가능하다.
2. 이미지 I의 얼굴 영역(들)에 대응하는 하나 이상의 얼굴 마스크가 결정될 수 있다. 얼굴 마스크의 유니온(union)은 얼굴 영역(들)에 대응하는 이미지 I의 부분들의 조합으로 사용될 수 있다. 얼굴이 아닌 물체의 아티팩트를 보정해야하는 일부 예에서, 얼굴 마스크 및 해당 얼굴 영역은 얼굴 이외의 물체에 대한 하나 이상의 마스크 및/또는 얼굴 이외의 물체에 대한 이미지 I의 하나 이상의 해당 물체 영역으로 대체 및/또는 증강될 수 있다.
3. 얼굴 영역과 연관된 스케일 인자를 추정할 수 있다. 예를 들면, 이미지 I의 얼굴 영역은 제1 유형의 변환 또는 기타 처리(프로세싱) 기술과 연관될 수 있ㄱ고, 이미지 I의 얼굴이 아닌 영역(비-얼굴 영역)은 제2 유형의 변환 또는 다른 처리 기술과 연관될 수 있으며, 스케일 팩터는 제1 유형의 변환으로 처리된 이미지 I의 부분 P의 영역 대 제2 유형의 변환으로 처리된 이미지 I의 부분 P의 영역의 비율(ratio)(또는 그 반대)을 나타낼 수 있다. 다른 스케일 인자도 가능하다.
4. 메시 최적화 문제는 워핑 메시 v에서 에너지 항이 있는 최적화 방정식으로 공식화될 수 있다. 예를 들면 메시 최적화 문제는 왜곡 메시 v에 표시된 에너지 항을 최소화하기 위한 최소화 문제가 될 수 있다. 다른 메시 최적화 문제도 가능하다.
5. 경계 조건은 워핑 메시 v에 부과될 수 있다. 일부 예에서는 경계 조건이 부과되지 않는다.
6. 워핑 메시 v에 대한 메시 최적화 문제는 수치적으로 풀 수 있고 그 해는 최적 메시 v'를 산출하도록 정규화될 수 있다.
7. 최적의 메시 v'를 다시 샘플링하여 역 메시 z를 생성할 수 있다.
8. 출력 이미지 O는 역 메시 z를 사용하여 생성된 좌표를 기반으로 입력 이미지 I의 픽셀을 샘플링하여 생성할 수 있다. 출력 이미지 O는 입력 이미지 I의 PD(perspective distortions)와 연관된 아티팩트를 줄이거나 제거하여 입력 이미지 I를 수정할 수 있다. 해당 입력 이미지 I에서 PD의 일부 또는 전부를 수정(보정)하는 수정(보정)된 출력 이미지 O를 생성하는 데 다른 절차를 사용할 수 있다.
도 1은 예시적인 실시 예에 따른 방법(100)의 흐름도이다. 위에서 설명한 절차와 연관된 방법(100)은 해당 입력 이미지 I에서 PD를 보정하는 보정된 출력 이미지 O를 생성할 수 있다. 방법(100)은 후술하는 컴퓨팅 장치(1800)와 같은 컴퓨팅 장치에 의해 수행될 수 있다.
방법(100)은 블록(110)에서 시작할 수 있으며, 여기서 컴퓨팅 장치는 폭 W(I) 및 높이 H(I)를 갖는 입력 이미지 I를 수신할 수 있다. 또한, 컴퓨팅 장치는 크기가 임계 크기보다 큰 이미지 I로 표현되는 얼굴의 수인 N을 결정할 수 있다. 블록(110)과 연관된 상세한 절차는 도 7의 컨텍스트에서 아래에 설명된다.
블록 120에서, 컴퓨팅 장치는 입력 이미지 I의 N 개의 얼굴에 대한 N 개의 얼굴 박스 FBk를 결정할 수 있으며, 여기서 k는 1 내지 N의 범위이다. 이미지의 얼굴 박스는 사람의 얼굴과 같이 얼굴을 나타내는 이미지 영역을 나타낼 수 있다. 일부 예에서, 얼굴 박스는 정사각형 또는 직사각형 모양을 가질 수 있다. 다른 예에서는 얼굴 박스는 정사각형 또는 직사각형과 다른 모양을 가질 수 있다(예: 타원형 또는 삼각형, 육각형 등).
컴퓨팅 장치는 k 번째 얼굴의 얼굴 랜드마크를 포함하기 위해 필요에 따라 N 개의 얼굴 박스 중 각 얼굴 박스 FBk(1 ≤ k ≤ N)를 확장할 수 있다. 얼굴의 얼굴 랜드마크는 얼굴의 특정 특징의 얼굴상의 위치를 나타낼 수 있으며; 얼굴의 이러한 특징은 얼굴이 있는 머리 상단, 얼굴의 헤어, 얼굴의 이마, 얼굴의 눈, 얼굴의 코, 얼굴의 콧 구멍, 얼굴 입술, 얼굴의 입, 얼굴의 턱, 얼굴의 혀, 얼굴의 치아, 얼굴 표정, 얼굴의 보조개, 얼굴의 뷰티 마크 및/또는 기타 마크, 얼굴을 지탱하는 목을 포함할 수 있지만 이에 제한되지는 않는다. 블록(120)과 연관된 상세한 절차는 도 8의 컨텍스트에서 아래에 설명된다.
블록 120과 연관된 예로서, 도 2는 벽(240) 앞의 얼굴(210)을 포함하는 예시적인 입력 이미지(200)를 도시하며, 얼굴(210)은 이미지(200)의 우측 에지 근처에 위치한다. 도 2는 얼굴(210)이 초기 얼굴 박스(212)에 의해 부분적으로 둘러싸여 있음을 보여준다. 즉, 도 2에 도시된 예시적인 입력 이미지(200)에서, N은 1이고, 얼굴 박스(212)는 확장 이전에 FB1로 간주될 수 있다. 그 다음, 얼굴 랜드마크는 이미지(200)에서 검출될 수 있으며, 이러한 얼굴 랜드마크는 도 2에 흰색 원으로서 도시되며, 얼굴(210)의 상단(top) 근처의 얼굴 랜드마크(220) 및 얼굴(210)의 우측 하단에 있는 얼굴 랜드마크(222)를 포함한다. 얼굴 박스(212)는 얼굴 랜드마크(222)를 포함하지만 얼굴 랜드마크(220)는 포함하지 않는다. 따라서, 블록 120에서, 컴퓨팅 장치는 얼굴(210)에 대해 발견된 모든 얼굴 랜드마크를 포함하도록 얼굴 박스(212)를 확장할 수 있으며, 결과적으로 확장된 얼굴 박스가 도 2에 확장된 얼굴 박스(230)로서 도시된다.
블록 130에서, 컴퓨팅 장치는 N 개의 얼굴 박스 중 각각의 얼굴 박스 FBk(1 ≤ k ≤ N)에 대해 입력 이미지 I에서 분할 마스크 Mk를 계산할 수 있다. 그 후, 컴퓨팅 장치는 모든 분할 마스크 Mk의 유니온(union)으로서 이미지 마스크 M을 결정할 수 있다.
블록 130과 연관된 예로서, 도 3은 분할 마스크(310) 및 확장된 얼굴 박스(230)로 각각 표현되는 확장된 얼굴 박스(FB1)에 대한 분할 마스크 M1을 나타내는 이미지 마스크(300)를 도시한다. 분할 마스크(310)는 얼굴 랜드마크(220 및 222)를 포함하는 얼굴(210)의 얼굴 랜드마크에 의해 예시된 바와 같이 얼굴(210)을 나타내는 마스크이다.
일부 예들에서, 블록 130에서 컴퓨팅 장치는 입력 이미지 I가 렌즈 왜곡을 포함하는지를 결정할 수 있다. 이미지에 렌즈 왜곡이 포함된 경우 이미지 마스크 M을 워핑(warping)하여 렌즈 왜곡을 보정할 수 있다.
블록 140에서, 컴퓨팅 장치는 이미지 I에 대한 NR x NC 정점을 갖는 적어도 하나의 워핑 메시 v를 생성할 수 있으며, 여기서 NR 및 NC 각각은 0보다 크다. 블록 140과 연관된 예로서, 도 4는 워핑 메시(400)를 도시하며, 여기서 NR = 75 = 워핑 메시(400)의 행의 수, NC = 100 = 워핑 메시(400)의 열의 수이다.
블록 150에서, 컴퓨팅 장치는 마스크 M에 대응하는 메시 v의 위치에서 이미지 I의 N 개의 얼굴에 대해 하나 이상의 얼굴 관련 변환(face-related transformations)을 수행하는 것과 연관된 코스트로 워핑 메시 v를 업데이트할 수 있다. 예를 들면, 하나 이상의 얼굴 관련 변환을 수행하는 것과 연관된 코스트를 얼굴 관련 코스트라고 할 수 있다. 얼굴 관련 변환(들)은 N 개의 얼굴 중 적어도 하나 이상의 기하학적 왜곡(들)을 보정할 수 있다. 블록 150과 연관된 상세한 절차는 도 9의 컨텍스트에서 아래에 설명된다.
블록 160에서, 컴퓨팅 장치는 적어도 하나 이상의 얼굴 관련 변환에 의해 수정된 이미지의 에지의 직진도를 보존하기 위한 하나 이상의 에지 관련 변환을 수행하는 것과 연관된 코스트와 워핑 메시 v의 경계에 대한 코스트로 메시 v를 업데이트할 수 있다. 예를 들면, 하나 이상의 에지 관련 변환 수행과 연관된 코스트를 에지 관련 코스트라고 할 수 있다. 블록(160)과 연관된 상세한 절차는 도 10의 컨텍스트에서 아래에 설명된다. 일부 예에서, 하나 이상의 투영 변환은 하나 이상의 얼굴 관련 변환과 하나 이상의 에지 관련 변환을 결합할 수 있다. 이 예 중 일부에서는, 얼굴 관련 코스트와 에지 관련 코스트는 투영 코스트로 결합될 수 있다(결합된 투영 변환에 해당함).
블록 170에서, 컴퓨팅 장치는 블록 150 및 160에서 업데이트된 워핑 메시 v의 정점에 대한 코스트 항(cost terms)의 최소화와 같은 수치 최적화에 기초하여 최적화된 메시 v'를 결정할 수 있다. 블록 170과 연관된 상세한 절차는 도 11의 컨텍스트에서 아래에 설명된다.
블록 170과 연관된 예로서, 도 5는 최적화된 메시(500)를 나타내며, 이는 얼굴(210), 확장된 얼굴 박스(230) 및 분할 마스크(310)와 연관된 얼굴 관련 메시 부분(510)으로 업데이트되고 최적화된 워핑 메시(400)를 보여준다. 얼굴 관련 메시 부분(510)은 입력 이미지(200)에서 얼굴(210)에 대한 얼굴 관련 변환을 수행하는 것과 연관된 코스트로 업데이트되었다. 또한 얼굴 관련 변환 수행과 연관된 코스트가 최적화되었다(예: 수치 최적화를 사용하여 최소화됨). 얼굴 관련 변환은 얼굴 관련 메시 부분(510) 내에서 최적화된 메시(500)의 변형으로서 도 5에 반영된다. 워핑 메시(400)와 마찬가지로, 최적화된 메시(500)는 다수의 행(NR = 75), 다수의 열(NC = 100)을 갖는다.
블록 180에서, 컴퓨팅 장치는 최적화된 메시 v'를 리샘플링(resampling)함으로써 역 메시(z)(inverse mesh)를 결정할 수 있다. 블록 180과 연관된 상세한 절차는 도 12의 컨텍스트에서 아래에 설명된다.
블록 190에서, 컴퓨팅 장치는 적어도 이미지 O의 각 픽셀 P(O)에 대해, 역 메시 z에 기초하여 결정된 샘플링 좌표에서 취해진 이미지 I의 샘플에 기초하여 P(O)를 업데이트함으로써 출력 이미지 O를 결정할 수 있다. 블록(190)과 연관된 상세한 절차는 도 13의 컨텍스트에서 아래에 설명된다.
출력 이미지 O가 결정된 후, 컴퓨팅 장치는 이미지 O를 출력할 수 있으며, 예를 들어, 이미지 O의 일부 또는 전부를 표시하고, 이미지 O의 일부 또는 전부를 휘발성 및/또는 비-휘발성 메모리에 저장하고; 이미지 O의 일부 또는 전부를 하나 이상의 다른 컴퓨팅 장치에 전달하고, 이미지 O를 종이에 인쇄하는 등의 작업을 수행한다.
블록 190과 연관된 예로서, 도 6은 입력 이미지(200)를 보정하는 출력 이미지(600)를 도시한다. 특히, 출력 이미지(600)의 얼굴(610)은 입력 이미지(200)의 얼굴(210)과 비교하여 회전되고 스케일링되었으며, 얼굴(610)은 적어도 블록(150)의 컨텍스트에서 위에서 설명된 얼굴 관련 변환에 의해 회전되고 스케일링되었다. 출력 이미지(600)는 또한 직선이 보존되었음을 보여주며, 예를 들어, 출력 이미지(600)에 표현된 벽(640)에 대한 문, 문틀 등을 나타내는 직선은 또한 입력 이미지(200)에 표현된 벽(240)에 대한 직선으로 도시된다. 확장된 얼굴 박스(230) 외부의 직선들 사이의 다른 직선 및 각도는 입력 이미지(200) 및 출력 이미지(600) 모두에서 동일하다. 따라서, 출력 이미지(600)는 확장된 얼굴 박스(230) 내의 PD(perspective distortions)를 보정하기 위해 입력 이미지(200)를 워핑하는 것을 포함하는 방법(100)의 절차에 의해 렌더링되었다. 또한 이미지 200과 600을 비교하여 보인 바와 같이, 방법(100)은 출력 이미지(600)를 생성하는 동안 입력 이미지(200)에 (적어도) 직선 관련 시각적 아티팩트를 추가하지 않았다.
방법(100)은 방법(100)에 의해 처리된(프로세싱된) 이미지에 얼굴이 존재하는 한명 이상의 사람의 프라이버시를 보장하기 위해 프라이버시 제어로 구성될 수 있다. 예를 들면, 컴퓨팅 장치는 얼굴 박스(FBk)로 표현되는 얼굴을 가진 각 사람으로부터 명시적인 허가를 획득할 수 있으며, 컴퓨팅 장치는 얼굴 박스(FBk)에 얼굴을 표시할 수 있으며, 여기서 k는 1에서 N까지의 범위이며, 얼굴 박스가 블록 120에서 확장된 이후에 가능하다. 그 다음, 나머지 방법(100)을 진행하기 전에 얼굴 박스(FBk)에 얼굴이 있는 각 사람으로부터 입력 이미지 I를 처리할 수 있는 권한을 획득할 수 있으며, 즉, 컴퓨팅 장치는 얼굴 박스 FBk를 표시하여 표시된 얼굴 박스에 있는 얼굴을 갖는 각 사람에게 승인을 요청할 수 있다.
다른 예에서는, 얼굴이 이미지에 있는 하나 이상의 사람은 블록 110에서 입력 이미지 I가 수신되기 전에 방법 100을 수행하기 위해 사전 승인을 줄 수 있으며, 컴퓨팅 장치는 방법 100을 수행하기 전에 필요에 따라 그 승인을 확인할 수 있다. 또 다른 예에서는, 이러한 승인(권한)은 암시적일 수 있으며, 예를 들어, 컴퓨팅 장치의 소유자가 "셀카(selfie)" 이미지에서 자신의 얼굴만 캡처한 다음 방법(100)을 사용하여 이미지 보정을 요청하는 경우, 자신의 얼굴에 대해서만 방법(100)을 진행할 수 있는 소유자의 승인(허가)은 셀카에 대한 이미지 보정 요청에 의해 유추될 수 있다. 이러한 프라이버시 관련 기술 및/또는 입력 이미지 I 및/또는 다른 이미지에서 얼굴이 캡처된 사람의 프라이버시를 보장하기 위한 기타 기술의 조합도 가능하다.
도 7은 예시적인 실시 예에 따른 방법(100)의 블록 110의 절차에 대한 방법의 흐름도이다. 예를 들면, 컴퓨팅 장치 수행 방법(100)은 방법 100의 블록 120의 절차를 수행하는 동안 블록 710, 720, 730, 740, 750, 760, 770, 772, 774, 776, 780, 782, 784 및 790의 절차 중 적어도 일부를 수행할 수 있다.
블록 710에서, 컴퓨팅 장치는 폭 W(I) 및 높이 H(I)를 갖는 입력 이미지 I를 수신할 수 있다. 컴퓨팅 장치는 N을 결정할 수 있으며, N은 다수의 얼굴이며, 이미지 I로 표현되는 다수의 사람 얼굴에 국한되지 않는다. 예를 들어, 도 2의 입력 이미지(200)가 N = 1 사람 얼굴을 나타낸다. 컴퓨팅 장치는 얼굴에 대한 최소 등각(conformality) 코스트(CCmin)를 결정할 수 있으며, 얼굴에 대한 등각 코스트는 적어도 블록 774 및 776의 컨텍스트에서 아래에서 더 자세히 설명된다. 컴퓨팅 장치는 값 N1을 N과 같게 할 수 있다.
블록 720에서, 컴퓨팅 장치는 N 개의 얼굴에 대해 1 ≤ k ≤ N인 얼굴 박스(FBk)를 결정할 수 있다. N 및/또는 일부 또는 모든 얼굴 박스 FB1, FB2 ... FBN을 결정하려면, 컴퓨팅 장치는 이미지 I에서 얼굴을 찾고 및/또는 카운트하는 얼굴 검출 소프트웨어를 이용할 수 있고 및/또는 이미지 I에서 검출된 얼굴에 대한 얼굴 박스를 계산할 수 있다. 컴퓨팅 장치는 값 k를 1로 할 수 있다.
블록 730에서, 컴퓨팅 장치는 얼굴 박스 FBk의 영역과 같은 크기가 얼굴 박스 TS의 임계 크기보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가, 얼굴 박스 FBk의 크기가 TS보다 크다고 결정하면, 컴퓨팅 장치는 블록 750으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 얼굴 박스 FBk의 크기가 TS보다 작거나 같다고 결정할 수 있고 블록 740으로 진행할 수 있다.
블록 740에서, 컴퓨팅 장치는 얼굴 박스 FBk를 폐기할 수 있다. 얼굴 박스 FBk를 폐기함으로써, 컴퓨팅 장치는 얼굴 박스 FBk와 연관된 이미지의 얼굴 부분을 얼굴로 더 이상 효과적으로 처리하지 않을 것이다. 그 다음, 컴퓨팅 장치는 N의 값을 1만큼 감소시킬 수 있으며, 즉, 컴퓨팅 장치는 N = N-1이 될 수 있다.
블록 750에서, 컴퓨팅 장치는 k의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 k = k + 1이 될 수 있다.
블록 760에서, 컴퓨팅 장치는 k가 N1보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가 k가 N1보다 크다고 결정하면, 컴퓨팅 장치는 블록 770으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 k가 N1보다 작거나 같다고 결정할 수 있고 블록 730으로 진행할 수 있다.
블록 770에서, 컴퓨팅 장치는 N이 0보다 작거나 같은지를 결정할 수 있다. 컴퓨팅 장치가 N이 0보다 작거나 같다고 결정하면, 이미지 I에 얼굴이 없는 경우 임계 크기 TS를 초과하는 해당 얼굴 박스를 가지고 있으므로 컴퓨팅 장치는 블록 790으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 N이 0보다 크다고 결정할 수 있고 블록 772로 진행할 수 있다.
블록 772에서, 컴퓨팅 장치는 k의 값을 1로 설정할 수 있다.
블록 774에서, 컴퓨팅 장치는 얼굴 박스 FBk의 4개의 코너 C1, C2, C3 및 C4의 최대 등각 코스트 CCk를 결정할 수 있다. 얼굴 박스 FBk에 대한 등각 코스트 CCk는 얼굴 박스 FBk의 코너 C1, C2, C3, C4의 좌표 차이 제곱의 가중 합으로 결정될 수 있으며, 여기서 적어도 하나의 차원에서 모서리의 좌표 차이는 얼굴 박스 FBk의 영역을 기반으로 하는 값에 의해 더 가중된다.
블록 776에서, 컴퓨팅 장치는 얼굴 박스 FBk에 대한 등각 코스트 CCk가 최소 등각 코스트 CCmin보다 작은지 여부를 결정할 수 있다. 컴퓨팅 장치가 CCk가 CCmin 미만이라고 결정하면, 컴퓨팅 장치는 블록 782로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 CCk가 CCmin보다 크거나 같다고 결정할 수 있고 컴퓨팅 장치는 블록 780으로 진행할 수 있다.
블록 780에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법(100)의 블록(110)의 절차를 완료하고 방법(100)의 블록(120)의 절차의 수행을 시작함으로써 방법(100)을 계속한다.
블록 782에서, 컴퓨팅 장치는 k의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 k = k + 1이 될 수 있다.
블록 784에서, 컴퓨팅 장치는 k가 N보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가 k가 N보다 크다고 결정하면, 컴퓨팅 장치는 블록 790으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 k가 N보다 작거나 같다고 결정할 수 있고 블록 774로 진행할 수 있다.
블록 790에서, 컴퓨팅 장치는 입력 이미지 I를 출력 이미지 O에 카피(copy)할 수 있으며, 즉, 입력 이미지 I의 카피는 출력 이미지 O로 생성한다. 컴퓨팅 장치는 이미지 O이 방법(100)의 출력인 방법(100)을 종료할 수 있다.
도 8은 예시적인 실시 예에 따른 방법(100)의 블록 120의 절차에 대한 방법의 흐름도이다. 예를 들면, 방법 100의 블록 120의 절차를 수행하는 동안 컴퓨팅 장치 수행 방법(100)은 블록 800, 810, 820, 830, 840, 850 및 860의 절차의 일부 또는 전부를 수행할 수 있다.
블록 800에서, 컴퓨팅 장치는 값 k를 1과 같게 하고 및/또는 값 k를 1로 초기화할 수 있다.
블록 810에서, 컴퓨팅 장치는 이미지 I에서 얼굴 k에 대한 하나 이상의 얼굴 랜드마크 FLk를 결정할 수 있다.
블록 820에서, 컴퓨팅 장치는 얼굴 k에 대한 얼굴 박스 FBk가 얼굴 랜드마크(들)(FLk) 모두를 포함하는지 여부를 결정할 수 있다. 예를 들면, 컴퓨팅 장치는 각 얼굴 랜드마크(FL)의 좌표가 얼굴 박스(FBk) 내부 또는 외부에 있는지 여부를 결정할 수 있다. 모든 얼굴 랜드마크(들)FLk의 좌표가 얼굴 박스 FBk 내부에 있는 경우, 컴퓨팅 장치는 얼굴 박스 FBk가 얼굴 랜드마크(들)(FLk) 모두를 포함하고 따라서 얼굴 k를 나타내는 이미지 I의 영역을 포함한다고 결정할 수 있고, 컴퓨팅 장치는 블록 840으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 얼굴 박스 FBk가 얼굴 랜드마크(들)(FLk) 모두를 포함하지 않는다고 결정할 수 있고 컴퓨팅 장치는 블록 830으로 진행할 수 있다.
블록 830에서, 컴퓨팅 장치는 얼굴 랜드마크(들)(FLk) 모두를 포함하도록 얼굴 박스 FBk를 확장할 수 있다. 이와 같이, 블록 830에서 확장한 후, 얼굴 박스 FBk는 얼굴 k를 나타내는 이미지 I의 영역을 둘러싼다(enclose).
블록 840에서, 컴퓨팅 장치는 k의 값을 1만큼 증가시킬 수 있으며, 즉, 컴퓨팅 장치는 k = k + 1이 될 수 있다.
블록 850에서, 컴퓨팅 장치는 k가 N보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가 k가 N보다 크다고 결정하면, 컴퓨팅 장치는 블록 860으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 k가 N보다 작거나 같다고 결정할 수 있고 블록 810으로 진행할 수 있다.
블록 860에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법(100)의 블록(120)의 절차를 완료하고 방법(100)의 블록(130)의 절차의 수행을 시작함으로써 방법(100)을 계속한다.
도 9는 예시적인 실시 예에 따른 방법(100)의 블록 150의 절차에 대한 방법의 흐름도이다. 예를 들면, 컴퓨팅 장치 수행 방법(100)은 방법(100)의 블록 150의 절차를 수행하는 동안 블록 900, 910, 920, 930, 940, 950, 960, 970 및 980의 절차 중 일부 또는 전부를 수행할 수 있다.
블록 900에서, 컴퓨팅 장치는 값 k가 1이 되도록 하고 및/또는 값 k를 1로 초기화할 수 있다.
블록 910에서, 컴퓨팅 장치는 입체 공간으로 매핑된 얼굴 박스 FBk의 영역 SAk를 계산하고 원근 공간(perspective space)으로 매핑된 얼굴 박스 FBk의 다른 영역 PAk를 계산할 수 있다. 그 다음 컴퓨팅 장치는 얼굴 k에 대한 네이티브 스케일 팩터(인자)(native scale factor) NSFk를 NSFk = SAk/PAk로 계산할 수 있다. 네이티브 스케일 팩터 NSFk는 입체 투영 후 얼굴 박스 FBk로 둘러싸인 얼굴 k의 크기가 어떻게 변하는지를 나타낼 수 있다.
블록 920에서, 컴퓨팅 장치는 워핑 메시 u 및 v를 생성할 수 있으며, 각 워핑 메시 u 및 v에는 NR x NC 정점이 있으며, 여기서 NR = 행 수가 0보다 크고 NC = 행 수가 0보다 크다. 예를 들어, NR = 100, NC = 75, 이 예에서 각 메시 u 및 v는 NR * NC = 7500 정점(vertices)을 갖는다. 워핑 메시 v는 이미지 I에 대한 (정점의) 메시가 될 수 있으며, 이미지 I가 렌즈 보정된 이후 일 수 있다. 워핑 메시 u는 이미지 I의 입체 투영에 대한 (정점의) 워핑 메시일 수 있다. 워핑 메시 u 및/또는 워핑 메시 v의 다른 예도 가능하다.
블록 930에서, 컴퓨팅 장치는 메시 v의 각 정점을 얼굴 k에 대한 얼굴 스케일 코스트 항(face scale cost term)(FSCTk)과 연관시킬 수 있다. 얼굴 스케일 코스트 항 FSCTk는 이미지 I에 표현된 바와 같이 얼굴 k의 왜곡을 보정하기 위해 수행되는 얼굴 k에 대한 스케일링의 양(amount)을 나타낼 수 있다. FSCTk는 FSCTk = Wf* | ak-1/NSFk|2이고, 여기서 Ws는 얼굴 스케일링에 대한 가중치 항이고, NSFk는 블록 910의 컨텍스트에서 위에서 설명된 얼굴 k에 대한 네이티브 스케일 팩터 항이고, 여기서 ak는 바로 아래에서 설명되는 변환 행렬 Sk에 의해 제공된면 얼굴 k의 스케일링을 나타낸다.
블록 940에서, 컴퓨팅 장치는 얼굴 k에 대한 2 개의 암시적 변수(implicit variables), 즉 변환 행렬(transformation matrix)(Sk) 및 병진(translation) 벡터(tk)를 설정 및/또는 초기화할 수 있다. Sk는 얼굴 k의 스케일링 및/또는 회전을 나타내는 변환 행렬을 포함할 수 있고, tk는 얼굴 k의 병진을 나타내는 병진 벡터를 포함할 수 있다. 예를 들면, Sk는 얼굴 k에 대한 스케일링 변환 ak와 회전 변환 bk의 조합을 나타내는 얼굴당 리지드 변환 행렬[ak_bk; -bk ak]을 포함할 수 있으며, tk는 얼굴당 변환 벡터 [txk, tyk]를 포함할 수 있으며, tx 및 tyk는 얼굴 k의 각각의 x 좌표 및 y 좌표 변환을 나타낸다. 행렬 Sk 및 벡터 tk로 표현되는 얼굴 k의 스케일링, 회전 및/또는 병진(translation)은 이미지 I에 표현된 얼굴 k의 하나 이상의 기하학적 왜곡을 보정할 수 있는 아핀 변환(affine transformations)과 같은 변환일 수 있다.
블록 950에서, 컴퓨팅 장치는, (1) 메시 u에서 해당 정점 U를 결정하고, (2) 정점 V를 얼굴 변환 코스트 항(FTCTk)와 연관시키는 기능을 수행하여 워핑 메시 vk의 각 정점 V에 대한 코스트를 공식화할 수 있다. 변환 코스트 항(FTCTk)는 이미지 I에 표현된 바와 같이면 얼굴 k의 왜곡을 보정하기 위해 수행될 얼굴 k에 대한 변환의 양을 나타낼 수 있다. FTCTk는 FTCTk = Ws* |V-Sk * U-tk|2이며, Ws는 얼굴 변환에 대한 가중치 항이며, Sk는 블록 940의 컨텍스트에서 위에서 설명된 암시적 변수 및 변환 행렬이고, tk는 블록 940의 컨텍스트에서 위에서 설명된 암시적 변수 및 병진 벡터(translation vector)이다.
블록 960에서, 컴퓨팅 장치는 k의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 k = k+1이 될 수 있다.
블록 970에서, 컴퓨팅 장치는 k가 N보다 큰지를 결정할 수 있다. 컴퓨팅 장치가 k가 N보다 크다고 결정하면, 컴퓨팅 장치는 블록 980으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 k가 N보다 작거나 같다고 결정할 수 있고 블록 910으로 진행할 수 있다.
블록 980에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법(100)의 블록(150)의 절차를 완료하고 방법(100)의 블록(160)의 절차의 수행을 시작함으로써 방법(100)을 계속한다.
도 10은 예시적인 실시 예에 따른 방법(100)의 블록 160의 절차에 대한 방법의 흐름도이다. 예를 들면, 컴퓨팅 장치 수행 방법 (100)은, 방법(100)의 블록 160의 절차를 수행하는 동안 블록 1000, 1010, 1020, 1030, 1040, 1042, 1050, 1060, 1070, 1080 및 1090의 절차의 일부 또는 전부를 수행할 수 있다.
블록 1000에서, 컴퓨팅 장치는 값 e를 1과 같게 하고 및/또는 값 e를 1로 초기화하고, 값 NE를 이미지 I에 표현된 에지 및/또는 다른 라인의 수와 같게 하고 및/또는 초기화할 수 있다. 예를 들면, 라인 검출 알고리즘을 사용하여 이미지 I에 표시된 에지 및/또는 다른 라인을 검출할 수 있으며, 값 NE는 이미지 I에서 검출된 에지 및/또는 다른 라인의 수로 설정될 수 있다. NE 값을 결정하는 다른 기술도 가능하다.
블록 1010에서, 컴퓨팅 장치는 이미지 I의 에지 e와 같도록 값 E를 설정할 수 있으며, 여기서 E는 메시 v의 정점 Vi 및 Vj와 연관되며 i ≠ j이다.
1020 블록에서, 컴퓨팅 장치는 에지 E를 유지하는 것과 연관된 코스트를 나타내는 에지 코스트 항(ECT)와 에지 E를 연관시킬 수 있다. ECT는 ECT = Wr * |E|2이며, |E|2는 에지 E의 길이를 나타내고, Wr은 정규화 가중치 항이다.
1030 블록에서, 컴퓨팅 장치는 에지 E가 변환된(transformed) 후 벤딩(bending) 에지 E와 연관된 코스트를 나타내는 에지 벤딩 항(EB(E))와 에지 E를 연관시킬 수 있다. EB(E)는 에지 E의 가로 또는 세로 방향에 따라 두 값 중 하나와 같을 수 있다. 보다 구체적으로 "EB(E)는 EB(E) = Wb * |Vi, y + Vj, y|2, 에지 E가 수평이면"; 또는 "EB(E) = Wb * |Vi, x + Vj, x|2, 모서리 E가 수직이면" 중 하나로 결정될 수 있으며, 여기서 Wb는 벤딩 가중치 항이될 수 있다.
블록 1040에서, 컴퓨팅 장치는 e의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 e = e + 1이 될 수 있다.
블록 1042에서, 컴퓨팅 장치는 e가 NE보다 큰지를 결정할 수 있다. 컴퓨팅 장치가 e가 NE보다 크다고 결정하면, 컴퓨팅 장치는 블록 1050으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 e가 NE보다 작거나 같다고 결정할 수 있고 블록 1010으로 진행할 수 있다.
블록 1050에서, 컴퓨팅 장치는 메시 v의 경계에 있는 각 정점 Vb를 경계 코스트 항(BCT)와 연관시킬 수 있다. BCT는 BCT = Wb * d(Vb)로 계산할 수 있으며, 여기서 d(Vb)는 정점 Vb와 메시 v의 경계 사이의 수직 거리이며, Wb는 블록 1030과 관련하여 위에서 설명된 벤딩 가중 항일 수 있다.
블록 1060에서, 컴퓨팅 장치는 각 측면에 있는 NBDRY> 0의 정점의 수(NBDRY)만큼 메시 v를 확장할 수 있다. 예를 들어, NBDRY는 1, 2, 3, 4 또는 다른 정수 값과 같은 정수 값일 수 있다. NBDRY 정점으로 메시를 확장하여 워핑 메시 v에 추가되는 각 정점에 대해, 컴퓨팅 장치는 정점의 디멘션(dimension)을 이미지 I의 경계에 수직으로 고정할 수 있다. 그 후, 컴퓨팅 장치는 NBDRY에 기초하여(예: NR = NR + NBDRY 및 NC = NC + NBDRY) 메시 v의 행의 수(NR) 및 열의 수(NC)를 업데이트할 수 있다.
블록 1070에서, 컴퓨팅 장치는 방법(100)에서 비대칭 코스트가 사용될 것인지를 결정할 수 있다. 예를 들면, 변수, 값, 플래그 또는 기타 유사한 데이터 아이템(ACFLAG)은 방법 100에서 비대칭 코스트가 사용되는 경우 제1 값(예: 1)으로 설정될 수 있으며, 방법(100)에서 비대칭 코스트를 사용하지 않는 경우 제2 값(예: 0)으로 설정될 수 있다. 그 다음, 컴퓨팅 장치는 ACFLAG의 값을 조사하여 방법(100)에서 비대칭 코스트가 사용될지 여부를 결정할 수 있다. 컴퓨팅 장치가 방법(100)에서 비대칭 코스트가 사용될 것이라고 결정하면, 컴퓨팅 장치는 블록 1080으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 방법(100)에서 비대칭 코스트가 사용되지 않는다고 결정할 수 있고 블록 1090으로 진행할 수 있다.
1080 블록에서, 컴퓨팅 장치는 원래 메시 v에 있는 각 정점 Vi(즉, 블록 1060에서 추가되지 않은 메시 v의 정점)에 대해, 정점 Vi를 외부 메시 표시기(outside-mesh indicator) 함수(OMI(Vi)=0)와 연관시킬 수 있다. 원래 메시 v에 없는 각 정점 Vj(즉, 블록 1060에서 추가된 메시 v의 정점)에 대해, 컴퓨팅 장치는 Vj를 외부 메시 표시기 함수(OMI(Vj) = 1)와 연관시킬 수 있다.
블록 1090에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법 100의 블록 160의 절차를 완료하고, 방법 100의 블록 170의 절차의 수행을 시작함으로써 방법 100을 계속한다.
도 9와 10의 컨텍스트에서 설명된 것 이외의 다른 코스트 함수도 가능하다. 또한 일부 예에서는, 코스트 함수의 상대적 가중치는 수정될 수 있고 및/또는 워핑 메시 u를 생성하는 데 사용되는 입체 투영은 하나 이상의 다른 투영으로 대체될 수 있다.
도 11은 예시적인 실시 예에 따른 방법(100)의 블록 170의 절차에 대한 방법의 흐름도이다. 예를 들면, 컴퓨팅 장치 수행 방법(100)은 방법(100)의 블록 170의 절차를 수행하는 동안 블록 1100, 1110, 1120, 1130, 1140, 1150, 1160, 1170 및 1180의 절차의 일부 또는 전부를 수행할 수 있다.
블록 1100에서, 컴퓨팅 장치는 방법(100)에서 비대칭 코스트가 사용되는지 여부를 결정할 수 있다. 방법(100)에서 비대칭 코스트가 사용될 것인지를 결정하기 위한 기술은 블록 1070의 컨텍스트에서 위에서 설명된다. 컴퓨팅 장치가 방법(100)에서 비대칭 코스트가 사용될 것이라고 결정하면, 컴퓨팅 장치는 블록 1110으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 방법(100)에서 비대칭 코스트가 사용되지 않는다고 결정할 수 있고 블록 1120으로 진행할 수 있다.
블록 1110에서, 컴퓨팅 장치는 최적화된 메시 v'를 초기화하기 위해 "LevelNum" 레벨(LevelNum> 1)을 포함하는 "coarse-to-fine" 기술을 사용할 수 있다. "coarse-to-fine" 기술을 수행하기 위해, 컴퓨팅 장치는, (a) 코어시스트(coarsest) 레벨(예: 레벨 1)에서, 입체 투영 및 각 얼굴 박스 FBk에 대한 원근 투영의 보간을 기반으로 최적화된 메시 V'를 초기화하고(1 ≤ k ≤ N), (b) 각 파인더(finer) 레벨 N(2 ≤ N ≤ LevelNum)에 대해, 레벨 N-1에서 초기화된 메시 V'를 업샘플링할 수 있다.
블록 1120에서, 컴퓨팅 장치는 워핑 메시 V를 최적화된 메시 V'에 카피하여 최적화된 메시 V'를 초기화할 수 있다.
블록 1130에서, 컴퓨팅 장치는 최적화된 메시 V'를 획득하고, 초기화된 메시 V'의 정점과 연관된 코스트들의 합계의 수치 최소화를 수행하여 암시적 변수 Sk 및 tk에 대한 값을 결정할 수 있으며, 여기서 Sk는 적어도 블록 940의 컨텍스트에서 위에서 설명된 암시적 변수 및 변환 행렬이고, tk는 적어도 블록 940의 컨텍스트에서 위에서 설명된 암시적 변수 및 병진 벡터이다.
초기화된 메시 V'의 정점과 연관된 코스트들의 합계의 수치 최소화를 수행하는 데 사용할 수 있는 예시적인 수치 솔버(solver)는 "ceres-solver.org"에서 인터넷상에 설명된 "Ceres Solver"이다.
블록 1140에서, 컴퓨팅 장치는 메시 V'의 dhmax, dhmin, dvmax, dvmin 값을 계산하거나 그렇지 않으면 결정할 수 있다. dhmax 값은 메시 V'의 왼쪽 경계(left border)에 있는 정점들 v'i 중 dhmax = max(v'i, x)로 결정될 수 있다. dhmin 값은 메시 V'의 우측 경계(right border)에 있는 정점들 v'i 중 dhmin = min(v'i, x)으로 결정될 수 있다. dvmax 값은 메시 V'의 TB(top border)에 있는 정점들 v'i 중 dvmax = max(v'i, x)로 결정될 수 있다. dvmin 값은 메시 V'의 BB(bottom border)에 있는 정점들 v'i 중 dvmin = min(v'i, x)으로 결정될 수 있다.
블록 1150에서, 컴퓨팅 장치는 스케일 벡터 sV'를 결정할 수 있으며, 스케일 벡터 sv'= [sx, sy] = [W(I), H(I)] / [dhmin - dhmax, dvmin - dvmax]이며, W(I)는 이미지 I의 넓이이고, H(I)는 이미지 I의 높이일 수 있다.
블록 1160에서, 컴퓨팅 장치는 오프셋 벡터 ov'를 결정할 수 있으며, 여기서 오프셋 벡터는 ov'= [ox, oy] = [dhmax, dvmax]이다.
블록 1170에서, 컴퓨팅 장치는 v'I = sv'*(v'I-ov')를 결정함으로써 메시 V'의 각 정점 v'I를 변조할 수 있다.
블록 1180에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법 100의 블록 170의 절차를 완료하고 방법 100의 블록 180의 절차의 수행을 시작하여 방법 100을 계속한다.
도 12는 예시적인 실시 예에 따른 방법(100)의 블록 180의 절차를 위한 방법의 흐름도이다. 예를 들어, 컴퓨팅 장치 수행 방법(100)은 방법(100)의 블록 180의 절차를 수행하는 동안 블록 1200, 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280 및 1290의 절차의 일부 또는 전부를 수행할 수 있다. 도 12의 흐름도는
역 메시 z를 생성하기 위해 최적 메시 v'를 리샘플링하기 위한 2-패스(two-pass) 알고리즘을 예시한다. 2-패스 알고리즘의 제1 패스에는 블록 1200, 1210, 1220, 1230 및 1240에 표시된대로 최적화된 메시 v'의 행이 포함된다. 2-패스 알고리즘의 제2 패스에는 블록 1250, 1260, 1270, 1280 및 1290으로 표시된 최적화된 메시 v'의 열이 포함된다. 역 메시 z를 형성하는 다른 리샘플링 기술도 가능하다.
블록 1200에서, 컴퓨팅 장치는 값(RNum)을 1과 동일하게 하고 및/또는 값(RNum)을 1로 초기화하고, 값(CNum)을 1과 동일하게 하고 및/또는 값(CNum)을 1로 초기화할 수 있다. 또한, 컴퓨팅 장치는 값 NRV를 최적화된 메시 v'의 행 수와 같도록 하고 및/또는 초기화할 수 있으며, 값 NCV를 최적화된 메시 v'의 열 수와 동일하게 하고 및/또는 초기화할 수 있다.
블록 1210에서, 컴퓨팅 장치는 버퍼 BUF의 v'의 RNumth 행을 저장할 수 있다.
블록 1220에서, 컴퓨팅 장치는 BUF에 저장된 RNumth 행에 대한 열 좌표를 보간할 수 있다.
블록 1230에서, 컴퓨팅 장치는 RNum의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 RNum = RNum + 1이 되도록할 수 있다.
블록 1240에서, 컴퓨팅 장치는 RNum 값이 NRV보다 큰지 여부를 결정할 수 있으며, 그 값은 최적화된 메시 v'의 행 수이다. 컴퓨팅 장치가 RNum 값이 NRV보다 크다고 결정하면, 컴퓨팅 장치는 블록 1250으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 RNum 값이 NRV보다 작거나 같다고 결정할 수 있고 블록 1210으로 진행할 수 있다.
블록 1250에서, 컴퓨팅 장치는 버퍼 BUF의 CNumth 열을 최적화된 메시 v'의 CNumth 열에 카피할 수 있다.
블록 1260에서, 컴퓨팅 장치는 v'의 CNumth 열에 대한 행 좌표를 보간할 수 있다.
블록 1270에서, 컴퓨팅 장치는 CNum의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 CNum = CNum + 1이 되도록할 수 있다.
블록 1280에서, 컴퓨팅 장치는 CNum 값이 최적화된 메시 v'의 열 수인 NCV보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가 CNum 값이 NCV보다 크다고 결정하면, 컴퓨팅 장치는 블록 1290으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 RNum 값이 NRV보다 작거나 같다고 결정할 수 있고 블록 1250으로 진행할 수 있다.
블록 1290에서, 컴퓨팅 장치는 방법(100)의 나머지를 진행할 수 있으며; 즉, 방법(100)의 블록(180)의 절차를 완료하고 방법(100)의 블록(190)의 절차의 수행을 시작함으로써 방법(100)을 계속한다.
도 13은 예시적인 실시 예에 따른 방법(100)의 블록 190의 절차를 위한 방법의 흐름도이다.
예를 들어, 컴퓨팅 장치 수행 방법(100)은 방법(100)의 블록 190의 절차를 수행하는 동안 블록 1300, 1310, 1320, 1330, 1340, 1350, 1360 및 1370의 절차 중 일부 또는 전부를 수행할 수 있다.
블록(1300)에서, 컴퓨팅 장치는 값 Pix를 1과 동일하게 하고 및/또는 값 Pix를 1로 초기화할 수 있고, 값 NumPix가 출력 이미지 O의 픽셀 수와 동일하도록 할 수 있다.
블록 1310에서, 컴퓨팅 장치는 P(O)를 이미지 O의 Pixth 픽셀로 하고, Zi를 역 메시 z에서 P(O)에 대한 가장 가까운 인접의 수 NumNbr로 할 수 있으며, 여기서 NumNbr은 0보다 큰 정수이며, 예를 들어, NumNbr은 1, 2, 3, 4 또는 다른 양의 정수와 같을 수 있다.
블록 1320에서, 컴퓨팅 장치는 Zi의 NumNbr 값의 보간과 동일하게 원근 공간에서 픽셀 P(O)의 좌표인 Coord(P(O))를 설정할 수 있다.
블록 1330에서, 컴퓨팅 장치는 좌표 InCoords(P(O))를 찾기 위해 렌즈 보정 모델을 사용하여 렌즈-왜곡 공간에서 Coord(P(O))를 검색할 수 있다.
블록 1340에서, 컴퓨팅 장치는 P(O)가 InCoords(P(O))에 의해 표현된 좌표에서 입력 이미지 I의 리샘플링과 같게 할 수 있다. 그러면 컴퓨팅 장치는 이미지 O의 Pixth 픽셀을 P(O)와 동일하게 설정할 수 있다.
블록 1350에서, 컴퓨팅 장치는 Pix의 값을 1만큼 증가시킬 수 있으며; 즉, 컴퓨팅 장치는 "Pix = Pix + 1"이 되도록할 수 있다.
블록 1360에서, 컴퓨팅 장치는 Pix가 NumPix보다 큰지 여부를 결정할 수 있다. 컴퓨팅 장치가 Pix가 NumPix보다 크다고 결정하면, 컴퓨팅 장치는 블록 1370으로 진행할 수 있다. 그렇지 않으면, 컴퓨팅 장치는 Pix가 NumPix보다 작거나 같다고 결정할 수 있고 블록 1310으로 진행할 수 있다.
블록 1370에서, 컴퓨팅 장치는 방법 100을 종료할 수 있으며, 여기서 이미지 O는 방법 100의 출력이다.
이미지 O와 같은 출력 이미지를 형성하기 위해 이미지 I와 같은 이미지를 워핑하기 위해 메시 u, v, v' 및/또는 z와 같은 하나 이상의 메시를 활용하는 다른 기술도 가능하다.
도 14는 예시적인 실시 예에 따라, 2개의 얼굴(1420, 1430)을 나타내는 입력 이미지(1410)가 해당 출력 이미지(1450)에서 보정된 얼굴을 갖는 시나리오(1400)를 도시한다. 시나리오 1400은 카메라가 장착된 컴퓨팅 장치에서 시작되며, 예를 들어, 카메라가 있는 스마트 폰은 카메라를 사용하여 입력 이미지(1410)를 캡처한다. 도 14의 상부에 도시된 바와 같이, 입력 이미지(1410)는 작업 환경에 있는 두 사람의 이미지이다. 이와 같이, 입력 이미지(1410)는 두 사람의 두 얼굴(1420, 1430)을 나타낸다. 입력 이미지(1410)는 작업 환경에서 천장의 영역(1440)을 나타내며, 영역(1440)은 천장에서 또는 천장 근처에서 다양한 각도로 함께 모이는 것처럼 보이는 물체를 보여준다.
시나리오 1400은 컴퓨팅 장치가 카메라로부터 입력 이미지(1410)를 수신하고, 위에서 설명된 방법(100)의 기술을 사용하여 입력 이미지(1410)를 수정하고, 결과적으로 출력 이미지(1450)를 생성하는 것으로 계속된다. 특히, 입력 이미지(1410)의 얼굴(1420, 1430)은 방법(100)의 컨텍스트에서 위에서 설명된 바와 같이 아핀 및/또는 스테레오그래픽(입체) 변환을 사용하여 출력 이미지(1450)의 각각의 얼굴(1470, 1480)이 되도록 보정된다. 예를 들어, 입력 이미지(1410)에 표현된 각각의 얼굴(1420, 1430)은 출력 이미지(1450)의 각각의 얼굴(1470, 1480)에 도시된 바와 같이 보다 자연스러운 형상을 갖도록 회전되고 연장(스케일링)되었다.
또한, 입력 이미지(1410)의 영역(1440)은 출력 이미지(1450)를 생성하는 동안 보정되지 않는다. 특히, 입력 이미지(1410)의 영역(1440)의 직선은 출력 이미지(1450)의 대응 영역(1490)에서 직선으로 유지된다. 또한, 입력 이미지(1410)의 영역(1440)에서 다양한 각도로 교차하는 라인은 출력 이미지(1450)의 영역(1490)에서 동일하고 다양한 각도에서 교차하는 라인으로 도시된다. 따라서, 시나리오(1400)는 컴퓨팅 장치가 입력 이미지(1410)의 얼굴 영역에서의 직선 및 각도를 제외하고 입력 이미지(1410)와 출력 이미지(1450) 사이의 직선을 변경하지 않고 입력 이미지(1410)와 같은 이미지의 얼굴을 보정하기 위해 방법(100)을 사용할 수 있음을 보여준다.
도 15는 예시적인 실시 예에 따라, 4 개의 얼굴(1520, 1522, 1524, 1526)을 나타내는 입력 이미지(1510)가 해당 출력 이미지(1550)에서 보정된 4 개의 얼굴 중 3 개를 갖는 시나리오 1500을 예시한다. 시나리오 1500은 카메라로부터 입력 이미지(1510)를 수신하는 컴퓨팅 장치로 시작한다. 도 15의 상부에 도시된 바와 같이, 입력 이미지(1510)는 작업 환경에 있는 적어도 4 명의 이미지이다. 이와 같이, 입력 이미지(1510)는 적어도 4 명의 사람들의 적어도 4 개의 얼굴(1520, 1522, 1524, 1526)을 나타낸다.
시나리오(1500)는 위에서 설명된 방법(100)의 기술을 사용하여 입력 이미지(1510)를 보정하고 결과적으로 출력 이미지(1550)를 생성하는 컴퓨팅 장치로 계속된다. 시나리오 1500에서, 얼굴(1522)는 적어도 도 1 및 7의 컨텍스트에서 위에서 설명된 임계 크기 TS보다 작은 확장된 얼굴 박스를 갖는다. 따라서, 컴퓨팅 장치는 해당 얼굴(1572)을 갖는 출력 이미지(1550)를 생성하는 동안 얼굴(1522)을 보정하지 않는다. 또한, 입력 이미지(1510)에서 얼굴(1520, 1524, 1526)의 각각의 확장된 얼굴 박스는 임계 크기 TS보다 크다. 시나리오 1500은 컴퓨팅 장치가 입력 이미지(1510)의 이들 세 얼굴(1520, 1524, 1526)만을 수정하는 것으로 진행하며, 예를 들어, 방법(100)의 절차를 사용하여 출력 이미지(1550)를 생성하는 과정의 일부로서 아핀 및/또는 스테레오그래픽 변환을 사용한다.
입력 이미지(1510)의 얼굴(1520, 1524, 1526)(예를 들어, 해당 얼굴(1572)을 갖는 출력 이미지(1550)를 생성하는 동안 3개의 얼굴(1520, 1524, 1526))의 보정은 3 개의 얼굴을 출력 이미지(1550)의 각각의 얼굴(1570, 1574, 1576)로 변환한다. 또한, 입력 이미지(1510)의 직선들 사이의 교차 각도 및 직선(입력 이미지(1510)의 얼굴 영역의 직선 및 각도 제외)는 출력 이미지(1550)에서 변경되지 않는다(예를 들어, 입력 이미지 1510에 표시된 천장에 매달린 물체의 각도). 따라서, 시나리오(1500)는 출력 이미지(1550) 생성의 일부로서 입력 이미지(1510)(입력 이미지(1510)의 얼굴 영역에서 직선 및 각도의 외부)에서 직선을 변경하지 않고 일부 얼굴을 보정하기 위한 방법(100)의 사용을 예시한다.
도 16은 예시적인 실시 예에 따라, 컴퓨팅 장치(1610)가 방법(100)을 사용하여 출력 이미지(1550)를 생성하는 일부로서 입력 이미지(1510)를 수정(보정)하는 시나리오(1600)를 도시한다. 도 16의 상부는 시나리오 1600이 컴퓨팅 장치(1610)가 카메라로부터 입력 이미지(1510)를 수신한 다음 입력 이미지(1510) 및 제어(1620)를 디스플레이하는 것으로 시작하는 것을 도시하며, 제어(1620)은 "얼굴 보정 적용(Apply Facial Correction)"으로 라벨링된 버튼을 포함한다. 제어(컨트롤)(1620)가 선택되면 컴퓨팅 장치(1610)가 방법(100)을 사용하여 입력 이미지(예를 들어, 출력 이미지(예: 출력 이미지 1550) 생성의 일부로서 입력 이미지(1510)를 수정(보정)하게 한다. 다른 시나리오에서, 제어(1620)는 버튼이 아닌 그래픽 사용자 인터페이스(GUI)의 그래픽 객체(예: 아이콘, 대화 박스)에 의해 표현될 수 있다. 또 다른 시나리오에서는, 제어(1620)를 사용하여 제어되는 얼굴 보정 기능은 하나 이상의 비-GUI 객체(예: 키보드의 키, CLI(command line interface)의 명령)를 사용하여 제어될 수 있다.
시나리오 1600은 컴퓨팅 장치(1610)의 사용자가 제어(1620)를 선택하는 것으로 진행한다(예를 들어, 마우스를 사용하여 제어(1620)을 클릭하는 것; 터치 스크린에서 제어(1620)에 대응하는 위치를 누르는 것). 제어(1620)가 선택된 후, 컴퓨팅 장치(1610)는 적어도 도 1 및 도 15의 컨텍스트를 더 상세히 설명한 바와 같이 방법(100)을 사용하여 출력 이미지(1550)를 생성한다. 출력 이미지(1550)를 생성한후, 시나리오(1600)는 도 16의 하부에 도시된 바와 같이 출력 이미지(1550)를 디스플레이하는 컴퓨팅 장치(1610)로 계속된다. 출력 이미지(1550)는 입력 이미지(1510)의 얼굴 영역에서 각도 및 직선 외부의 직선을 변경하지 않고 수정된(보정된) 입력 이미지(1510)의 얼굴 중 일부를 가지고 있지만 전부는 아니다.
일부 시나리오에서는, 입력 이미지(1410), 입력 이미지(1510) 및/또는 기타 입력 이미지를 캡처하는 데 사용되는 카메라에 WFOV(Wide Field of View)(또는 광각) 렌즈 및/또는 WFOV 센서를 장착하여 비교적 가까운 거리에서 장면을 쉽게 캡처 할 수 있다.
예시적인 데이터 네트워크
도 17은 예시적인 실시 예에 따른 분산 컴퓨팅 아키텍처(1700)를 도시한다. 분산 컴퓨팅 아키텍처(1700)는 네트워크(1706)를 통해 프로그램 가능 장치(1704a, 1704b, 1704c, 1704d, 1704e)와 통신하도록 구성된 서버 장치(1708, 1710)를 포함할 수 있다. 네트워크(1706)는 LAN, 광역 네트워크(WAN), 기업 인트라넷, 공용 인터넷, 또는 네트워크로 연결된 컴퓨팅 장치 간의 통신 경로를 제공하도록 구성된 임의의 다른 유형의 네트워크에 대응할 수 있다. 네트워크(1706)는 또한 하나 이상의 LAN, WAN, 기업 인트라넷 및/또는 공용 인터넷의 조합에 대응할 수 있다.
비록 도 17은 5 개의 프로그래밍 가능한 장치만을 보여 주지만, 분산형 애플리케이션 아키텍처는 수십, 수백 또는 수천 개의 프로그래밍 가능한 장치를 지원할 수 있다. 또한, 프로그램 가능 장치(1704a, 1704b, 1704c, 1704d, 1704e)(또는 임의의 추가 프로그램 가능 장치)는 일반적인 랩톱 컴퓨터, 데스크톱 컴퓨터, 웨어러블 컴퓨팅 장치, 모바일 컴퓨팅 장치, 헤드 마운트 장치, 네트워크 터미널, 무선 통신 장치(예: 스마트 폰 또는 휴대폰) 등과 같은 임의의 종류의 컴퓨팅 장치일 수 있다. 일부 실시 예에서, 프로그램 가능 장치(1704a, 1704b, 1704c)로 표시된 것과 같이 프로그램 가능 장치는 네트워크(1706)에 직접 연결될 수 있다. 다른 구체 예에서, 프로그램 가능 장치(1704d)로 표시된 바와 같이, 프로그램 가능 장치는 프로그램 가능 장치(1704c)와 같은 관련 컴퓨팅 장치를 통해 네트워크(1706)에 간접적으로 연결될 수 있다. 이 예에서, 프로그램 가능 장치(1704c)는 프로그램 가능 장치(1704d)와 네트워크(1706) 사이에 전자 통신을 전달하기 위해 연관된 컴퓨팅 장치로서 작용할 수 있다. 또 다른 실시 예에서, 프로그램 가능 장치(1704e)에 도시된 바와 같이, 컴퓨팅 장치는 차량(예: 자동차, 트럭, 버스, 보트 또는 배, 비행기 등)의 일부 및/또는 내부에 있을 수 있다. 도 17에 도시되지 않은 또 다른 실시 예에서, 프로그램 가능 장치는 네트워크(1706)에 직접 및 간접적으로 연결될 수 있다.
서버 장치(1708, 1710)는 프로그램 가능 장치(1704a-1704e)에 의해 요청된 바와 같이 하나 이상의 서비스를 수행하도록 구성될 수 있다. 예를 들면, 서버 장치(1708 및/또는 1710)는 프로그램 가능한 장치(1704a-1704e)에 콘텐츠를 제공할 수 있다. 콘텐츠에는 웹 페이지, 하이퍼 텍스트, 스크립트, 컴파일된 소프트웨어, 이미지, 오디오 및/또는 비디오와 같은 바이너리 데이터가 포함될 수 있지만 이에 국한되지는 않는다. 콘텐츠에는 압축 및/또는 압축되지 않은 콘텐츠가 포함될 수 있다. 콘텐츠는 암호화 및/또는 암호화되지 않을 수 있다. 다른 유형의 콘텐츠도 가능하다.
또 다른 예로, 서버 장치(1708 및/또는 1710)는 프로그래밍 가능한 장치(1704a-1704e)에 데이터베이스, 검색, 계산, 그래픽, 오디오, 비디오, 월드 와이드 웹/인터넷 이용 및/또는 기타 기능을 위한 소프트웨어에 대한 액세스를 제공할 수 있다. 다른 많은 서버 장치의 예도 가능하다.
컴퓨팅 장치 아키텍처
도 18은 예시적인 실시 예에 따른 예시적인 컴퓨팅 장치(1800)의 기능 블록도이다. 특히, 도 18에 도시된 컴퓨팅 장치(1800)는 입력 이미지(200), 이미지 마스크(300), 워핑 메시(400), 최적화된 메시(500), 출력 이미지(600), 컴퓨팅 장치(1610), 분산 컴퓨팅 아키텍처(1700), 프로그램 가능 장치(1704a, 1704b, 1704c, 1704d, 1704e), 네트워크(1706) 및/또는 서버 장치(1708, 1710)의 적어도 하나의 기능 및/또는 방법(100), 시나리오 1400, 시나리오 1500, 시나리오 1600 및/또는 방법 1900과 연관된 적어도 하나의 기능을 수행하도록 구성될 수 있다.
컴퓨팅 장치(1800)는 사용자 인터페이스 모듈(1801), 네트워크 통신 인터페이스 모듈(1802), 하나 이상의 프로세서(1803), 데이터 저장소(1804) 및 하나 이상의 센서(1820)를 포함할 수 있으며, 이들 모두는 시스템 버스, 네트워크 또는 다른 연결 메커니즘(1805)을 통해 함께 연결될 수 있다.
사용자 인터페이스 모듈(1801)은 외부 사용자 입력/출력 장치로 데이터를 전송 및/또는 외부 사용자 입력/출력 장치로부터 데이터를 수신하도록 동작할 수 있다. 예를 들면, 사용자 인터페이스 모듈(1801)은 터치 스크린, 컴퓨터 마우스, 키보드, 키패드, 터치 패드, 트랙볼, 조이스틱, 카메라, 음성 인식 모듈 및/또는 기타 유사한 장치와 같은, 사용자 입력 장치로 및/또는 사용자 입력 장치로부터 데이터를 전송 및/또는 수신하도록 구성될 수 있다. 사용자 인터페이스 모듈(1801)은 또한 하나 이상의 음극선 관(CRT), 액정 디스플레이, 발광 다이오드(LED), 디지털 광 처리(DLP) 기술을 사용하는 디스플레이, 프린터, 전구 및/또는 기타 유사한 장치(현재 알려지거나 나중에 개발됨)와 같은 사용자 디스플레이 장치에 출력을 제공하도록 구성될 수 있다. 사용자 인터페이스 모듈(1801)은 또한 스피커, 스피커 잭, 오디오 출력 포트, 오디오 출력 장치, 이어폰 및/또는 다른 유사한 장치와 같은 가청 출력을 생성하도록 구성될 수 있다. 사용자 인터페이스 모듈(1801)은 또한 터치 및/또는 컴퓨팅 장치(1800)와의 물리적 접촉에 의해 검출 가능한 진동 및/또는 다른 출력과 같은 햅틱 출력을 생성할 수 있는 하나 이상의 햅틱 장치로 구성될 수 있다. 일부 실시 예에서, 사용자 인터페이스 모듈(1801)은 컴퓨팅 장치(1800)를 활용하기 위한 그래픽 사용자 인터페이스를 제공하기 위해 사용될 수 있다.
네트워크 통신 인터페이스 모듈(1802)은 네트워크를 통해 통신하도록 구성될 수 있는 하나 이상의 무선 인터페이스(1807) 및/또는 하나 이상의 유선 인터페이스(1808)를 포함할 수 있다.
무선 인터페이스(1807)는 하나 이상의 무선 송신기, 수신기 및/또는 Bluetooth™ 트랜시버, Zigbee® 트랜시버, Wi-Fi™ 트랜시버, WiMAX™ 트랜시버 및/또는 무선 네트워크를 통해 통신하도록 구성 가능한 기타 유사한 유형의 무선 트랜시버를 포함할 수 있다. 유선 인터페이스(1808)는 이더넷 트랜시버, USB(Universal Serial Bus) 트랜시버, 또는 트위스트 페어 와이어, 동축 케이블, 광섬유 링크 또는 유선 네트워크에 대한 유사한 물리적 연결을 통해 통신하도록 구성할 수 있는 유사한 트랜시버와 같은 하나 이상의 유선 송신기, 수신기 및/또는 트랜시버를 포함할 수 있다.
일부 실시 예에서, 네트워크 통신 인터페이스 모듈(1802)은 신뢰성, 보안성 및/또는 인증된 통신을 제공하도록 구성될 수 있다. 여기에 설명된 각 통신에 대해, 신뢰할 수 있는 통신을 보장하기 위한 정보(즉, 보장된 메시지 전달)가 메시지 헤더 및/또는 푸터(footer)의 일부로서 제공될 수 있다(예: 패킷/메시지 시퀀싱 정보, 캡슐화 헤더 및/또는 푸터, 크기/시간 정보, CRC(Cyclic Redundancy Check) 및/또는 패리티 검사 값과 같은 전송 확인 정보). 통신은 DES(Data Encryption Standard), AES(Advanced Encryption Standard), RSA(Rivest-Shamir-Adelman) 알고리즘, DH(Diffie-Hellman) 알고리즘, SSL(Secure Sockets Layer)과 같은 보안 소켓 프로토콜, 또는 TLS(Transport Layer Security) 및/또는 DSA(Digital Signature Algorithm)과 같은(이에 국한되지 않음), 하나 이상의 암호화 프로토콜 및/또는 알고리즘을 사용하여 보안(예: 인코딩 또는 암호화) 및/또는 해독/디코딩이 수행될 수 있다. 다른 암호화 프로토콜 및/또는 알고리즘은 통신을 보호(그리고 해독/복호화)하기 위해 여기에 나열된 것들에 추가하여 사용될 수도 있다.
하나 이상의 프로세서(1803)는 하나 이상의 범용 프로세서 및/또는 하나 이상의 특수 목적 프로세서(예를 들어, 디지털 신호 프로세서, 그래픽 처리 장치, 주문형 집적 회로 등)를 포함할 수 있다. 하나 이상의 프로세서(1803)는 데이터 저장소(1804)에 포함된 컴퓨터 판독 가능 프로그램 명령어(명령)(1806) 및/또는 여기에 설명된 다른 명령을 실행하도록 구성될 수 있다.
데이터 저장소(1804)는 하나 이상의 프로세서(1803) 중 적어도 하나에 의해 판독 및/또는 액세스될 수 있는 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 하나 이상의 컴퓨터 판독 가능 저장 매체는 광학, 자기, 유기 또는 기타 메모리 또는 디스크 저장 장치와 같은 휘발성 및/또는 비-휘발성 저장 컴포넌트를 포함할 수 있으며, 이는 하나 이상의 프로세서(1803) 중 적어도 하나와 전체적으로 또는 부분적으로 통합될 수 있다. 일부 실시 예에서, 데이터 저장소(1804)는 단일 물리적 장치(예를 들어, 하나의 광학, 자기, 유기 또는 다른 메모리 또는 디스크 저장 유닛)를 사용하여 구현될 수 있는 반면, 다른 실시 예에서 데이터 저장소(1804)는 2개 이상의 물리적 장치를 사용하여 구현될 수 있다.
데이터 저장소(1804)는 컴퓨터 판독 가능 프로그램 명령(1806) 및 추가 데이터를 포함할 수 있다. 일부 실시 예에서, 데이터 저장소(1804)는 본 명세서에 설명된 방법, 시나리오 및 기술의 적어도 일부 및/또는 본 명세서에 설명된 장치 및 네트워크의 기능의 적어도 일부를 수행하는 데 필요한 저장소를 추가로 포함할 수 있다.
일부 실시 예에서, 컴퓨팅 장치(1800)는 하나 이상의 센서(1820)를 포함할 수 있다. 센서(1820)는 컴퓨팅 장치(1800)의 환경에서 조건을 측정하고 그 환경에 대한 데이터를 제공하도록 구성될 수 있다. 예를 들면, 센서(1820)는 (i) RFID(Radio Frequency Identification) 판독기, 근접 센서, 1차원 바코드 판독기, 2차원 바코드(예: QR(Quick Response) 코드) 판독기, 레이저 트랙커(laser tracker)와 같은(이에 국한되지 않음) 다른 물체 및/또는 장치를 식별하기 위한 식별 센서(식별 센서는 RFID 태그, 바코드, QR 코드 및/또는 기타 장치와 같은 식별자 및/또는 판독되도록 그리고 적어도 식별 정보를 제공하도록 구성된 객체를 판독하도록 구성될 수 있다), (ii) 기울기 센서, 자이로스코프, 가속도계, 도플러 센서, GPS(Global Positioning System) 장치, 소나 센서, 레이더 장치, 레이저 변위 센서 및 나침반과 같은 컴퓨팅 장치(1800)의 위치 및/또는 움직임을 측정하기 위한 센서, (iii) 적외선 센서, 광학 센서, 광 센서, 카메라, 바이오 센서, 정전 용량 센서, 터치 센서, 온도 센서, 무선 센서, 무선 센서, 움직임 센서, 마이크로폰, 사운드 센서, 초음파 센서 및/또는 연기 센서 등과 같은(이에 국한되지 않음) 컴퓨팅 장치(1800)의 환경을 나타내는 데이터를 획득하기 위한 환경 센서, (iv) ZMP(zero moment point)의 위치 및/또는 ZMP를 식별하는 ZMP 센서 및/또는 토크, 접지력, 마찰, 하나 이상의 디멘션(dimension)의 힘을 측정하는 하나 이상의 센서와 같은(이에 제한되지 않음) 컴퓨팅 장치(1800)에 작용하는 하나 이상의 힘(예를 들어, 관성력 및/또는 G-forces)을 측정하는 힘 센서 중 하나 이상을 포함할 수 있다. 센서(1820)의 많은 다른 예도 가능하다.
예시적인 동작 방법
도 19는 예시적인 실시 예에 따른 방법(1900)의 흐름도이다. 방법 1900은 컴퓨터로 구현되는 방법일 수 있다. 예를 들어, 방법(1900)은 컴퓨팅 장치(1800)와 같은 컴퓨팅 장치에 의해 실행될 수 있다.
도 19는 방법(1900)이 블록 1910에서 시작할 수 있음을 보여준다. 블록 1910에서, 컴퓨팅 장치는 적어도 도 1, 2, 7, 8, 14, 15, 16의 컨텍스트에서 위에서 설명된 바와 같이, 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정할 수 있다.
일부 예에서, 제1 관심 영역은 적어도 도 1, 2, 7, 8, 14, 15 및 16의 컨텍스트에서 위에서 설명된 바와 같이 제1 사람 얼굴을 나타낼 수 있다. 다른 예에서는, 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하는 것은 적어도 14, 15 및 16의 컨텍스트에서 위에서 설명된 바와 같이 카메라로부터 이미지를 획득하는 것을 포함할 수 있다.
다른 예에서도, 제1 관심 영역은 제1 얼굴을 나타낼 수 있으며, 그 다음, 제1 이미지 영역을 결정하는 것은, 제1 얼굴에 대한 제1 얼굴 박스를 결정하고; 상기 제1 얼굴 박스가 상기 제1 얼굴을 나타내는 이미지의 모든 픽셀을 둘러싸는지(enclose) 여부를 결정하고; 그리고 제1 얼굴 박스가 제1 얼굴을 나타내는 이미지의 모든 픽셀을 둘러싸는지를 결정한 후, 적어도 도 1, 2, 7, 8의 컨텍스트에서 위에서 설명된 바와 같이, 제1 이미지 영역으로서 제1 얼굴 박스를 이용하는 것을 포함할 수 있다.
또 다른 예에서는, 제1 이미지 영역을 결정하는 것은, 적어도 도 1, 2, 7, 8의 컨텍스트에서 위에서 설명된 바와 같이, 제3 관심 영역에 대한 제2 얼굴 박스를 결정하고; 상기 제2 얼굴 박스가 상기 제3 관심 영역에서 제3 얼굴을 나타내는 이미지의 모든 픽셀을 둘러싸지 않는지 여부를 결정하고; 그리고 제2 얼굴 박스가 제3 얼굴을 나타내는 이미지의 모든 픽셀을 둘러싸지 않는다고 결정한 후, 제3 얼굴을 나타내는 이미지의 모든 픽셀을 포함하도록 제2 얼굴 박스를 확장하고, 확장된 제2 얼굴 박스를 제3 얼굴에 대응하는 이미지 영역으로서 활용하는 것을 포함할 수 있다.
1920 블록에서, 컴퓨팅 장치는 적어도 도 1, 4 및 9의 컨텍스트에서 위에서 설명된 바와 같이 이미지에 대한 워핑 메시를 결정할 수 있다.
일부 예에서, 이미지의 워핑 메시를 결정하는 것은, 적어도 도 1, 7, 9의 컨텍스트에서 위에서 설명된 바와 같이, 상기 제1 이미지 영역이 임계 이미지 영역보다 큰 영역을 갖는지를 결정하고; 그리고 제1 이미지 영역이 임계 이미지 영역보다 큰 영역을 갖는다고 결정한 후, 워핑 메시를 결정하는 것을 포함할 수 있다.
다른 예에서는, 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환은 제1 이미지 영역의 회전, 제1 이미지 영역의 병진 및/또는 제1 이미지 영역의 스케일링을 포함할 수 있고; 그 다음, 이미지에 대한 워핑 메시를 결정하는 것은, 이미지에 대한 제3 메시를 결정하고 -제3 메시는 제3 복수의 정점을 포함함-, 그리고 제3 메시를 기반으로 워핑 메시를 결정하는 것을 포함한다. 제3 메시를 기반으로 워핑 메시를 결정하는 것은, 제3 메시의 하나 이상의 측면을 결정하고, 제3 메시의 하나 이상의 측면의 각 측면에 대해: 제3 메시의 측면에 미리 결정된 수의 추가 정점을 추가하고, 제3 메시의 측면에 미리 결정된 수의 추가 정점을 추가한 후 제3 메시의 측면과 연관된 제3 메시의 경계를 결정하고 -제3 메시의 경계는 제3 메시의 경계 정점과 연관됨-, 적어도 도 1, 9 및 10의 컨텍스트에서 위에서 설명된 바와 같이, 이미지의 경계에 수직이되도록 제3 메시의 경계 정점의 디멘션(dimension)을 결정함으로써 제3 메시를 기반으로 워핑 메시를 결정하는 것을 포함한다.
블록 1930에서, 컴퓨팅 장치는 적어도 도 1, 5 및 9의 컨텍스트에서 위에서 설명된 바와 같이, 제1 이미지 영역과 연관된 워핑 메시의 제1 부분을 결정할 수 있다.
블록 1940에서, 컴퓨팅 장치는, 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하고 -여기서 제1 코스트는 이미지에 표현된 바와 같이 제1 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제1 이미지 영역의 하나 이상의 얼굴 관련 변환과 연관된 코스트를 포함함-, 워핑 메시와 연관된 제2 코스트를 결정함으로써, 워핑 메시에 대한 코스트 함수를 결정할 수 있으며, 여기서, 제2 코스트는 적어도 도 1, 9 및 10의 컨텍스트에서 위에서 설명된 바와 같이 적어도 하나 이상의 얼굴 관련 변환에 의해 수정된 이미지의 에지의 직진도를 보존하기 위한 하나 이상의 에지 관련 변환의 코스트를 포함한다.
일부 예에서, 워핑 메시에 대한 코스트 함수를 결정하는 것은, 워핑 메시의 제2 부분과 연관된 추가 제1 코스트를 결정하는 것을 더 포함할 수 있으며, 추가 제1 코스트는 적어도 1, 9 및 10의 컨텍스트에서 위에서 설명된 바와 같이, 제2 관심 영역의 하나 이상의 기하학적 왜곡을 보정하기 위해 적어도 제2 이미지 영역의 하나 이상의 얼굴 관련 변환과 연관된 코스트를 포함한다.
다른 예에서는, 워핑 메시는 복수의 정점을 포함할 수 있으며, 그 다음 워핑 메시와 연관된 제2 코스트를 결정하는 것은, 이미지의 에지와 연관된 워핑 메시의 각 정점에 대해 정점당 에지 코스트를 할당하고; 그리고 적어도 도 10의 컨텍스트에서 위에서 설명된 바와 같이, 워핑 메시의 경계와 연관된 워핑 메시의 각 정점에 대한 경계 코스트를 할당하는 것을 포함할 수 있다. 이러한 예 중 일부에서, 이미지의 에지와 연관된 워핑 메시의 각 정점에 대한 정점당 에지 코스트를 할당하는 것은, 적어도 도 10의 컨텍스트에서 위에서 설명된 바와 같이, 이미지의 제1 에지에 대한 제1 에지 정규화 항을 결정하고 -이미지의 제1 에지는 적어도 워핑 메시의 제1 에지 정점과 연관됨-; 이미지의 제1 에지에 대한 제1 에지 벤딩 항(edge-bending term)을 결정하고, 제1 에지 정규화 항 및 제1 에지 벤딩 항에 기초하여 제1 에지 정점에 대한 정점당(per-vertex) 에지 코스트를 결정하는 것을 포함할 수 있다. 다른 예에서는, 워핑 메시의 경계와 연관된 워핑 메시의 각 정점에 대한 경계 코스트를 할당하는 것은, 워핑 메시의 제1 경계 정점에 대한 경계-코스트 값을 결정하는 것을 포함할 수 있으며, 제1 경계 정점은 워핑 메시의 제1 경계와 연관되고, 여기서, 경계-코스트 값은 적어도 도 10의 컨텍스트에서 위에서 설명된 바와 같이, 제1 경계(boundary) 정점과 워핑 메시의 경계(border) 사이의 거리에 기초한다.
다른 예에서도, 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하는 것은. 적어도 도 9의 컨텍스트에서 위에서 설명된 바와 같이, 제1 변환을 사용하여 제1 이미지 영역을 제1 공간에 매핑하고; 제2 변환을 사용하여 제1 이미지 영역을 제2 공간에 매핑하고; 상기 제1 이미지 영역에 대한 제1 종횡비(aspect ratio)를 결정하고 -제1 종횡비는 상기 제1 공간의 영역 대 상기 제2 공간의 영역의 비율에 기초함-; 제1 종횡비에 기초하여 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하는 것을 포함할 수 있다. 이러한 예 중 일부에서, 제1 변환은 원근 변환(perspective transformation)을 포함할 수 있으며, 여기서, 제2 변환은 적어도도 9의 컨텍스트에서 위에서 설명된 것과 같은 입체 변환을 포함할 수 있다. 다른 예에서는, 워핑 메시는 복수의 정점을 포함할 수 있으며, 워핑 메시의 제1 부분과 연관된 제1 코스트를 결정하는 것은, 적어도 도 11의 컨텍스트에서 위에서 설명된 바와 같이, 제1 정점에서 제1 변환과 연관된 제1 변환 값 및 제1 정점에서 제1 변환과 연관된 제2 변환 값의 보간과 연관된 값으로 워핑 메쉬의 제1 부분에 있는 제1 정점의 제1 코스트를 초기화하는 것을 포함할 수 있다.
1950 블록에서, 컴퓨팅 장치는 적어도 도 1, 5, 10 및 11의 컨텍스트에서 위에서 설명된 바와 같이, 워핑 메시에 대한 코스트 함수의 최적화에 기초하여 최적화된 메시를 결정할 수 있다.
일부 예에서, 코스트 함수의 최적화는 코스트 함수의 최소화를 포함할 수 있으며, 코스트 함수의 최적화를 기반으로 최적화된 메시를 결정하는 것은, 워핑 메시에 적용된 코스트 함수의 최소화를 수행하여 최적화된 메시를 결정하고; 최적화된 메시의 좌측 경계(left border)의 정점의 최대 코스트로 LM(left-maximum) 코스트를 결정하고; 최적화된 메시의 우측 경계(right border)의 정점의 최소 코스트의 RM(right-minimum) 코스트를 결정하고; 최적화된 메시의 탑 경계(top border)의 정점의 최대 코스트로 TM(top-maximum) 코스트를 결정하고; 최적화된 메시의 버텀 경계(bottom border)의 정점의 최소 코스트의 BM(bottom-minimum) 코스트를 결정하고; 그리고 적어도 도 10 및 도 11의 컨텍스트에서 위에서 설명된 바와 같이, LM(left-maximum) 코스트, RM(right-minimum) 코스트, TM(top-maximum) 코스트 및 BM(bottom-minimum) 코스트에 기초하여 최적화된 메시를 수정하는 것을 포함할 수 있다.
이러한 예 중 일부에서, LM(left-maximum) 코스트, RM(right-minimum) 코스트, TM(top-maximum) 코스트 및 BM(bottom-minimum) 코스트에 기초하여 최적화된 메시를 수정하는 것은, LM(left-maximum) 코스트와 RM(right-minimum) 코스트 간의 차이 그리고 이미지의 폭에 기초하여 이미지에 대한 폭 스케일을 결정하고; TM(top-maximum) 코스트 및 BM(bottom-minimum) 코스트 사이의 차이 그리고 이미지의 높이에 기초하여 이미지에 대한 높이 스케일을 결정하고; 그리고 적어도 도 11의 컨텍스트에서 위에서 설명된 바와 같이, 폭 스케일과 높이 스케일에 기초하여 최적화된 메시의 수학적 스케일링을 수행하는 것을 포함할 수 있다.
1960 블록에서, 컴퓨팅 장치는 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정할 수 있으며, 이는 적어도 도 1, 6, 12, 13, 14, 15 및 16의 컨텍스트에서 위에서 설명된 바와 같다. 일부 예에서, 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정하는 것은, 최적화된 메시의 샘플링을 계산하고; 적어도 도 1, 12, 13의 컨텍스트에서 위에서 설명된 바와 같이, 최적화된 메시의 샘플링에 기초하여 이미지의 적어도 제1 이미지 영역을 수정하는 것을 포함할 수 있다. 다른 예에서, 이미지는 복수의 픽셀을 포함하고, 최적화된 메시에 기초하여 이미지의 제1 이미지 영역을 수정하는 것은, 최적화된 메시를 샘플링함으로써 샘플링된 메시를 결정하고 -샘플링된 메시는 복수의 샘플링된 정점을 포함함-; 복수의 픽셀 중 특정 픽셀에 대해, 특정 픽셀을 수정하는 것을 포함한다. 특정 픽셀을 수정하는 것은, 특정 픽셀에 인접하는 복수의 샘플링된 정점 중 하나 이상의 인접 정점을 결정하고, 하나 이상의 인접 정점에 기초하여 복수의 픽셀의 리샘플링된 픽셀에 대한 좌표를 결정하고, 리샘플링된 픽셀에 대한 좌표에 기초하여 복수의 픽셀 중 하나 이상의 픽셀을 샘플링함으로써 리샘플링된 픽셀에 대한 픽셀 값을 결정하고, 그리고 적어도 도 1, 13의 컨텍스트에서 위에서 설명된 바와 같이, 리샘플링된 픽셀의 픽셀 값에 기초하여 특정 픽셀을 수정함으로써, 특정 픽셀을 수정하는 것을 포함할 수 있다.
일부 예에서, 방법(1900)은, 적어도 도 1, 7, 14, 15 및 16의 컨텍스트에서 위에서 설명된 바와 같이, 이미지에서 제2 관심 영역의 위치에 대응하는 제2 이미지 영역을 결정하고 -제1 이미지 영역은 제2 이미지 영역과는 다름-; 그리고 제2 이미지 영역과 연관된 워핑 메시의 제2 부분을 결정하는 것을 더 포함할 수 있다.
일부 예에서, 컴퓨팅 장치가 제공될 수 있으며, 컴퓨팅 장치는 하나 이상의 프로세서; 및 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 하나 이상의 컴퓨터 판독 가능 매체는 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치가 방법(1900)을 포함하는 기능을 수행하게 하는 컴퓨터 판독 가능 명령어가 저장되어있을 수 있다.
다른 예들에서, 컴퓨팅 장치가 제공될 수 있으며, 여기서 컴퓨팅 장치는 방법(1900)을 수행하기 위한 수단을 포함한다.
다른 예에서도, 제조품(제조 물품)이 제공될 수 있다. 제조 물품은 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치가 방법(1900)을 포함하는 기능을 수행하게 하는 컴퓨터 판독 가능 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 매체를 포함할 수 있다. 이들 예들 중 일부에서, 하나 이상의 컴퓨터 판독 가능 매체는 하나 이상의 비-일시적 컴퓨터 판독 가능 매체를 포함할 수 있다.
상기 상세한 설명은 첨부 도면을 참조하여 개시된 시스템, 장치 및 방법의 다양한 특징 및 기능을 설명한다. 도면에서 유사한 기호는 문맥에서 달리 지시하지 않는 한 일반적으로 유사한 구성요소를 나타낸다. 상세한 설명, 도면 및 청구 범위에 설명된 예시적인 실시 예는 제한하는 것을 의미하지 않는다. 여기에 제시된 요지의 사상 또는 범위를 벗어나지 않고 다른 실시 예가 이용될 수 있고, 다른 변경이 이루어질 수 있다. 본 명세서에 일반적으로 설명되고 도면에 예시된 바와 같이 본 개시 내용의 양태는 매우 다양하고 상이한 구성으로 배열, 대체, 결합, 분리 및 설계될 수 있으며, 이들 모두는 명시적으로 고려된다는 것을 쉽게 이해할 것이다.
도면의 래더(ladder) 다이어그램, 시나리오 및 흐름도 중 임의의 것 또는 모두와 관련하여 그리고 여기에서 설명된 바와 같이, 각각의 블록 및/또는 통신은 예시적인 실시 예에 따른 정보의 처리 및/또는 정보의 전송을 나타낼 수 있다. 대안적인 실시 예는 이러한 예시적인 실시 예의 범위 내에 포함된다. 이러한 대안적인 실시 예에서, 예를 들어, 블록, 전송, 통신, 요청, 응답 및/또는 메시지로 설명된 기능은 연관된 기능에 따라 실질적으로 동시 또는 역순을 포함하여 표시되거나 설명된 순서와 다르게 실행될 수 있다. 또한, 더 많거나 더 적은 블록 및/또는 기능이 여기에서 설명된 래더 다이어그램, 시나리오 및 순서도 중 임의의 것과 함께 사용될 수 있으며, 이러한 래더 다이어그램, 시나리오 및 순서도는 부분적으로 또는 전체적으로 서로 결합될 수 있다.
정보 처리를 나타내는 블록은 여기에 설명된 방법 또는 기술의 특정 논리 기능을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 추가적으로, 정보 처리를 나타내는 블록은 모듈, 세그먼트 또는 프로그램 코드의 일부(관련 데이터 포함)에 해당할 수 있다. 프로그램 코드는 방법 또는 기술에서 특정 논리 기능 또는 동작을 구현하기 위해 프로세서에 의해 실행 가능한 하나 이상의 명령을 포함할 수 있다. 프로그램 코드 및/또는 관련 데이터는 디스크 또는 하드 드라이브 또는 다른 저장 매체를 포함하는 저장 장치와 같은 임의의 유형의 컴퓨터 판독 가능 매체에 저장될 수 있다.
컴퓨터 판독 가능 매체는 또한 레지스터 메모리, 프로세서 캐시, 및 랜덤 액세스 메모리(RAM)와 같은 짧은 기간 동안 데이터를 저장하는 비-일시적 컴퓨터 판독 가능 매체와 같은 비-일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한 예를 들어, ROM(read only memory), 광학 또는 자기 디스크, CD-ROM(compact-disc read only memory)과 같은 2차 또는 PLTS(persistent long term storage)와 같이 장기간 프로그램 코드 및/또는 데이터를 저장하는 비-일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한 임의의 다른 휘발성 또는 비-휘발성 저장 시스템일 수 있다. 컴퓨터 판독 가능 매체는 예를 들어 컴퓨터 판독 가능 저장 매체 또는 유형의 저장 장치로 간주될 수 있다.
또한, 하나 이상의 정보 전송을 나타내는 블록은 동일한 물리적 장치에서 소프트웨어 및/또는 하드웨어 모듈 간의 정보 전송에 대응할 수 있다. 그러나 다른 정보 전송은 다른 물리적 장치의 소프트웨어 모듈 및/또는 하드웨어 모듈간에 이루어질 수 있다.
상기 언급된 접근법의 변형은 당업자에게 명백할 것이다. 예를 들어, 위의 설명은 이미지에서 얼굴의 왜곡에 대한 보정의 특정 공개를 제공하지만, 접근 방식은 다른 관심 영역 또는 대상에도 적용될 수 있다. 따라서, 상기 개시에서 형용사 "얼굴"이 언급되는 경우(예를 들어 "얼굴 영역" 또는 "얼굴 변형"이라는 문구에서), 당업자는 그러한 형용사가 요구되지 않는 대안적인 접근법이 채택될 수 있다는 것을 이해할 것이다. 유사하게, "얼굴 관련 코스트", "얼굴 관련 변환" 또는 기타 "얼굴 관련" 기능에 대한 언급은 대체 구현에서 "객체 관련" 또는 "지역 관련"으로 더 일반적으로 간주될 수 있다.
다양한 양태 및 실시 예가 본 명세서에 개시되었지만, 다른 양태 및 실시 예는 당업자에게 명백할 것이다. 본 명세서에 개시된 다양한 양태 및 실시 예는 설명을 위해 제공되며 제한하려는 의도가 아니며, 실제 범위는 다음의 청구 범위에 의해 표시된다.

Claims (19)

  1. 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 장치에 의해, 제1 관심 영역을 포함하는 이미지를 수신하는 단계 -상기 제1 관심 영역은 상기 이미지의 전체보다 작음-;
    상기 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하는 단계;
    상기 이미지에 대한 워핑 메시(warping mesh)를 결정하는 단계;
    상기 제1 이미지 영역과 연관된 상기 워핑 메시의 제1 부분을 결정하는 단계;
    (1) 상기 컴퓨팅 장치에 의해, 상기 제1 관심 영역의 하나 이상의 기하학적 왜곡을 수정하기 위해 적어도 2개의 얼굴 관련 변환(face-related transformations)을 상기 제1 관심 영역에 적용하고 -상기 적어도 2개의 얼굴 관련 변환을 상기 제1 관심 영역에 적용하는 것은 상기 적어도 2개의 얼굴 관련 변환에 기초하여 상기 제1 관심 영역에 대한 종횡비(aspect ratio)를 결정하는 것을 포함하고, 상기 워핑 메시의 제1 부분은 상기 적어도 2개의 얼굴 관련 변환과 연관됨-, 그리고 (2) 상기 컴퓨팅 장치에 의해, 상기 적어도 2개의 얼굴 관련 변환에 의해 수정된 상기 이미지의 전체 중 나머지 부분에서 하나 이상의 에지의 직진도(straightness)를 보존하기 위해 에지 관련 변환을 적용함으로써, 상기 이미지의 퍼스펙티브 왜곡(perspective distortion)을 수정하는 단계 -상기 워핑 메시는 상기 에지 관련 변환과 연관됨-; 그리고
    상기 컴퓨팅 장치에 의해, 상기 수정된 이미지를 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 제1 관심 영역은 제1 사람 얼굴을 나타내는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 상기 방법은,
    상기 적어도 2개의 얼굴 관련 변환에 기초하여 결정된 상기 제1 관심 영역에 대한 종횡비에 기초하여 상기 적어도 2개의 얼굴 관련 변환과 연관된 제1 코스트를 결정하는 단계;
    상기 에지 관련 변환과 연관된 제2 코스트를 결정하는 단계를 더 포함하며, 그리고
    상기 퍼스펙티브 왜곡을 수정하는 것은 상기 제1 코스트 및 상기 제2 코스트를 포함하는 코스트 함수의 최적화에 기초하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제3항에 있어서, 상기 종횡비를 결정하는 단계는,
    상기 적어도 2개의 얼굴 관련 변환의 제1 변환을 사용하여 상기 제1 관심 영역을 제1 공간에 매핑하는 단계;
    상기 적어도 2개의 얼굴 관련 변환의 제2 변환을 사용하여 상기 제1 관심 영역을 제2 공간에 매핑하는 단계를 포함하며, 그리고
    상기 종횡비는 상기 제2 공간의 영역에 대한 상기 제1 공간의 영역의 비율에 기초하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 상기 제1 변환은 퍼스펙티브 변환(perspective transformation)을 포함하고, 그리고 상기 제2 변환은 입체 변환을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 제1항에 있어서,
    상기 적어도 2개의 얼굴 관련 변환은 상기 제1 이미지 영역의 회전, 상기 제1 이미지 영역의 병진(translation) 및/또는 상기 제1 관심 영역의 스케일링을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 제1항에 있어서, 상기 방법은,
    상기 컴퓨팅 장치에 의해, 상기 이미지를 디스플레이하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 이미지의 퍼스펙티브 왜곡을 수정하라는 사용자 표시를 수신하는 단계를 더 포함하며,
    상기 퍼스펙티브 왜곡을 수정하는 것은 상기 사용자 표시에 응답하여 수행되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 제1항에 있어서, 상기 제1 관심 영역은 제1 얼굴을 나타내고, 상기 이미지는 제2 얼굴을 포함하는 제2 관심 영역을 포함하고, 상기 방법은,
    상기 컴퓨팅 장치에 의해, 상기 에지 관련 변환을 적용하기 전에, 상기 적어도 2개의 얼굴 관련 변환을 상기 제2 관심 영역에 적용하여 상기 제2 관심 영역의 하나 이상의 기하학적 왜곡을 수정하는 단계를 더 포함하며, 그리고
    상기 에지 관련 변환은 상기 제2 관심 영역 및 상기 제1 관심 영역 외부의(outside) 상기 이미지의 일부에 적용되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 컴퓨팅 장치로서,
    하나 이상의 프로세서; 그리고
    상기 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 장치로 하여금 동작들을 수행하게 하는 컴퓨터 판독 가능 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 매체를 포함하며, 상기 동작들은,
    제1 관심 영역을 포함하는 이미지를 수신하는 동작 -상기 제1 관심 영역은 상기 이미지의 전체보다 작음-;
    상기 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하는 동작;
    상기 이미지에 대한 워핑 메시(warping mesh)를 결정하는 동작;
    상기 제1 이미지 영역과 연관된 상기 워핑 메시의 제1 부분을 결정하는 동작;
    (1) 상기 제1 관심 영역의 하나 이상의 기하학적 왜곡을 수정하기 위해 적어도 2개의 얼굴 관련 변환(face-related transformations)을 상기 제1 관심 영역에 적용하고 -상기 적어도 2개의 얼굴 관련 변환을 상기 제1 관심 영역에 적용하는 것은 상기 적어도 2개의 얼굴 관련 변환에 기초하여 상기 제1 관심 영역에 대한 종횡비(aspect ratio)를 결정하는 것을 포함하고, 상기 워핑 메시의 제1 부분은 상기 적어도 2개의 얼굴 관련 변환과 연관됨-, 그리고 (2) 상기 적어도 2개의 얼굴 관련 변환에 의해 수정된 상기 이미지의 전체 중 나머지 부분에서 하나 이상의 에지의 직진도(straightness)를 보존하기 위해 에지 관련 변환을 적용함으로써, 상기 이미지의 퍼스펙티브 왜곡(perspective distortion)을 수정하는 동작 -상기 워핑 메시는 상기 에지 관련 변환과 연관됨-; 그리고
    상기 수정된 이미지를 제공하는 동작을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  10. 제9항에 있어서, 상기 제1 관심 영역은 제1 사람 얼굴을 나타내는 것을 특징으로 하는 컴퓨팅 장치.
  11. 제9항에 있어서, 상기 동작들은,
    상기 적어도 2개의 얼굴 관련 변환에 기초하여 결정된 상기 제1 관심 영역에 대한 종횡비에 기초하여 상기 적어도 2개의 얼굴 관련 변환과 연관된 제1 코스트를 결정하는 동작;
    상기 에지 관련 변환과 연관된 제2 코스트를 결정하는 동작을 더 포함하며, 그리고
    상기 퍼스펙티브 왜곡을 수정하는 것은 상기 제1 코스트 및 상기 제2 코스트를 포함하는 코스트 함수의 최적화에 기초하는 것을 특징으로 하는 컴퓨팅 장치.
  12. 제11항에 있어서, 상기 종횡비를 결정하는 동작은,
    상기 적어도 2개의 얼굴 관련 변환의 제1 변환을 사용하여 상기 제1 관심 영역을 제1 공간에 매핑하는 동작;
    상기 적어도 2개의 얼굴 관련 변환의 제2 변환을 사용하여 상기 제1 관심 영역을 제2 공간에 매핑하는 동작을 포함하며, 그리고
    상기 종횡비는 상기 제2 공간의 영역에 대한 상기 제1 공간의 영역의 비율에 기초하는 것을 특징으로 하는 컴퓨팅 장치.
  13. 제12항에 있어서, 상기 제1 변환은 퍼스펙티브 변환(perspective transformation)을 포함하고, 그리고 상기 제2 변환은 입체 변환을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  14. 제9항에 있어서, 상기 적어도 2개의 얼굴 관련 변환은 상기 제1 이미지 영역의 회전, 상기 제1 이미지 영역의 병진(translation) 및/또는 상기 제1 관심 영역의 스케일링을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  15. 제9항에 있어서, 상기 동작들은,
    상기 컴퓨팅 장치에 의해, 상기 이미지를 디스플레이하는 동작;
    상기 컴퓨팅 장치에 의해, 상기 이미지의 퍼스펙티브 왜곡을 수정하라는 사용자 표시를 수신하는 동작을 더 포함하며,
    상기 퍼스펙티브 왜곡을 수정하는 것은 상기 사용자 표시에 응답하여 수행되는 것을 특징으로 하는 컴퓨팅 장치.
  16. 제9항에 있어서, 상기 제1 관심 영역은 제1 얼굴을 나타내고, 상기 이미지는 제2 얼굴을 포함하는 제2 관심 영역을 포함하고, 상기 동작들은,
    상기 컴퓨팅 장치에 의해, 상기 에지 관련 변환을 적용하기 전에, 상기 적어도 2개의 얼굴 관련 변환을 상기 제2 관심 영역에 적용하여 상기 제2 관심 영역의 하나 이상의 기하학적 왜곡을 수정하는 동작을 더 포함하며, 그리고
    상기 에지 관련 변환은 상기 제2 관심 영역 및 상기 제1 관심 영역 외부의(outside) 상기 이미지의 일부에 적용되는 것을 특징으로 하는 컴퓨팅 장치.
  17. 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때 상기 컴퓨팅 장치로 하여금 동작들을 수행하게 하는 컴퓨터 판독 가능 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 저장 매체로서, 상기 동작들은,
    제1 관심 영역을 포함하는 이미지를 수신하는 동작 -상기 제1 관심 영역은 상기 이미지의 전체보다 작음-;
    상기 이미지에서 제1 관심 영역에 대응하는 제1 이미지 영역을 결정하는 동작;
    상기 이미지에 대한 워핑 메시(warping mesh)를 결정하는 동작;
    상기 제1 이미지 영역과 연관된 상기 워핑 메시의 제1 부분을 결정하는 동작;
    (1) 상기 제1 관심 영역의 하나 이상의 기하학적 왜곡을 수정하기 위해 적어도 2개의 얼굴 관련 변환(face-related transformations)을 상기 제1 관심 영역에 적용하고 -상기 적어도 2개의 얼굴 관련 변환을 상기 제1 관심 영역에 적용하는 것은 상기 적어도 2개의 얼굴 관련 변환에 기초하여 상기 제1 관심 영역에 대한 종횡비(aspect ratio)를 결정하는 것을 포함하고, 상기 워핑 메시의 제1 부분은 상기 적어도 2개의 얼굴 관련 변환과 연관됨-, 그리고 (2) 상기 적어도 2개의 얼굴 관련 변환에 의해 수정된 상기 이미지의 전체 중 나머지 부분에서 하나 이상의 에지의 직진도(straightness)를 보존하기 위해 에지 관련 변환을 적용함으로써, 상기 이미지의 퍼스펙티브 왜곡(perspective distortion)을 수정하는 동작 -상기 워핑 메시는 상기 에지 관련 변환과 연관됨-; 그리고
    상기 수정된 이미지를 제공하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  18. 제17항에 있어서, 상기 동작들은,
    상기 적어도 2개의 얼굴 관련 변환에 기초하여 결정된 상기 제1 관심 영역에 대한 종횡비에 기초하여 상기 적어도 2개의 얼굴 관련 변환과 연관된 제1 코스트를 결정하는 동작;
    상기 에지 관련 변환과 연관된 제2 코스트를 결정하는 동작을 더 포함하며, 그리고
    상기 퍼스펙티브 왜곡을 수정하는 것은 상기 제1 코스트 및 상기 제2 코스트를 포함하는 코스트 함수의 최적화에 기초하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  19. 제18항에 있어서, 상기 종횡비를 결정하는 동작은,
    상기 적어도 2개의 얼굴 관련 변환의 제1 변환을 사용하여 상기 제1 관심 영역을 제1 공간에 매핑하는 동작;
    상기 적어도 2개의 얼굴 관련 변환의 제2 변환을 사용하여 상기 제1 관심 영역을 제2 공간에 매핑하는 동작을 포함하며, 그리고
    상기 종횡비는 상기 제2 공간의 영역에 대한 상기 제1 공간의 영역의 비율에 기초하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
KR1020237014506A 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정 Active KR102801507B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020207032050A KR102528516B1 (ko) 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정
PCT/US2018/031463 WO2019216879A1 (en) 2018-05-07 2018-05-07 Perspective distortion correction on faces

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032050A Division KR102528516B1 (ko) 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정

Publications (2)

Publication Number Publication Date
KR20230065365A KR20230065365A (ko) 2023-05-11
KR102801507B1 true KR102801507B1 (ko) 2025-04-29

Family

ID=62245443

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207032050A Active KR102528516B1 (ko) 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정
KR1020237014506A Active KR102801507B1 (ko) 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207032050A Active KR102528516B1 (ko) 2018-05-07 2018-05-07 얼굴의 PD(perspective distortion) 보정

Country Status (6)

Country Link
US (2) US11922720B2 (ko)
EP (1) EP3791356B1 (ko)
JP (2) JP7158499B2 (ko)
KR (2) KR102528516B1 (ko)
CN (1) CN112055869A (ko)
WO (1) WO2019216879A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230013902A1 (en) * 2018-10-30 2023-01-19 DGNCT LLC d/b/a Diagnocat System and Method for Correcting for Distortions of a Diagnostic Image
US11132800B2 (en) 2019-07-31 2021-09-28 Google Llc Real time perspective correction on faces
CN111028169B (zh) 2019-12-09 2024-02-06 Oppo广东移动通信有限公司 图像校正方法、装置、终端设备和存储介质
CN111899159B (zh) * 2020-07-31 2023-12-22 北京百度网讯科技有限公司 用于变换发型的方法、装置、设备以及存储介质
US11334961B2 (en) 2020-08-06 2022-05-17 Apple Inc. Multi-scale warping circuit for image fusion architecture
CN115205131B (zh) * 2021-04-14 2025-07-15 Oppo广东移动通信有限公司 畸变图像校正方法及装置、计算机可读介质和电子设备
CN115311148B (zh) * 2021-05-06 2025-10-03 Oppo广东移动通信有限公司 网格映射计算方法及装置、计算机可读介质和电子设备
TWI824321B (zh) * 2021-07-02 2023-12-01 創惟科技股份有限公司 影像控制器、影像處理系統及影像修正方法
US12250461B2 (en) 2021-07-02 2025-03-11 Genesys Logic, Inc. Image controller, image processing system and image correcting method
CN115797940A (zh) * 2021-09-10 2023-03-14 成都鼎桥通信技术有限公司 信息识别方法、装置和存储介质
US11810256B2 (en) * 2021-11-11 2023-11-07 Qualcomm Incorporated Image modification techniques
KR20250109001A (ko) * 2024-01-09 2025-07-16 삼성전자주식회사 이미지의 왜곡을 보정하는 방법 및 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046657A (zh) * 2015-06-23 2015-11-11 浙江大学 一种图像拉伸畸变自适应校正方法
US20170069056A1 (en) * 2015-09-04 2017-03-09 Adobe Systems Incorporated Focal Length Warping

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058237B2 (en) * 2002-06-28 2006-06-06 Microsoft Corporation Real-time wide-angle image correction system and method for computer image viewing
US7218708B2 (en) * 2004-03-12 2007-05-15 Honeywell International, Inc. Internet facilitated emergency and general paging system
US7813526B1 (en) * 2006-01-26 2010-10-12 Adobe Systems Incorporated Normalizing detected objects
US8620080B2 (en) * 2008-09-26 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for locating text in a digital image
SE534551C2 (sv) * 2010-02-15 2011-10-04 Scalado Ab Digital bildmanipulation innefattande identifiering av ett målområde i en målbild och sömlös ersättning av bildinformation utifrån en källbild
US20170098122A1 (en) * 2010-06-07 2017-04-06 Affectiva, Inc. Analysis of image content with associated manipulation of expression presentation
US20150179218A1 (en) * 2010-09-10 2015-06-25 3DOO, Inc. Novel transcoder and 3d video editor
US8860816B2 (en) * 2011-03-31 2014-10-14 Fotonation Limited Scene enhancements in off-center peripheral regions for nonlinear lens geometries
US8922553B1 (en) * 2011-04-19 2014-12-30 Disney Enterprises, Inc. Interactive region-based linear 3D face models
US8600194B2 (en) * 2011-05-17 2013-12-03 Apple Inc. Positional sensor-assisted image registration for panoramic photography
US9972128B2 (en) * 2012-07-20 2018-05-15 The University Of British Columbia Methods and systems for generating polycubes and all-hexahedral meshes of an object
US9691163B2 (en) * 2013-01-07 2017-06-27 Wexenergy Innovations Llc System and method of measuring distances related to an object utilizing ancillary objects
WO2015048694A2 (en) * 2013-09-27 2015-04-02 Pelican Imaging Corporation Systems and methods for depth-assisted perspective distortion correction
US9922458B2 (en) * 2013-11-04 2018-03-20 The University Of British Columbia Methods and systems for generating polycube segmentations from input meshes of objects
KR20150053438A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 스테레오 매칭 시스템과 이를 이용한 시차 맵 생성 방법
US20150131924A1 (en) * 2013-11-13 2015-05-14 Microsoft Corporation Creation of Rectangular Images from Input Images
US10750153B2 (en) * 2014-09-22 2020-08-18 Samsung Electronics Company, Ltd. Camera system for three-dimensional video
AU2015339884B2 (en) * 2014-10-31 2018-03-15 Exxonmobil Upstream Research Company Handling domain discontinuity in a subsurface grid model with the help of grid optimization techniques
US9674428B2 (en) * 2014-11-20 2017-06-06 Lenovo (Singapore) Pte. Ltd. Determination of at least one parameter for producing images for use by an application
US9824494B2 (en) * 2015-06-17 2017-11-21 Adobe Systems Incorporated Hybrid surfaces for mesh repair
US10198872B2 (en) * 2015-08-10 2019-02-05 The Board Of Trustees Of The Leland Stanford Junior University 3D reconstruction and registration of endoscopic data
EP3335195A2 (en) * 2015-08-14 2018-06-20 Metail Limited Methods of generating personalized 3d head models or 3d body models
US10032067B2 (en) * 2016-05-28 2018-07-24 Samsung Electronics Co., Ltd. System and method for a unified architecture multi-task deep learning machine for object recognition
EP3287947A1 (en) * 2016-08-25 2018-02-28 Dolby Laboratories Licensing Corp. Automatic video framing of conference participants
US9978120B2 (en) * 2016-09-16 2018-05-22 Adobe Systems Incorporated Warping panoramic images to fit a boundary

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046657A (zh) * 2015-06-23 2015-11-11 浙江大学 一种图像拉伸畸变自适应校正方法
US20170069056A1 (en) * 2015-09-04 2017-03-09 Adobe Systems Incorporated Focal Length Warping

Also Published As

Publication number Publication date
US20240161538A1 (en) 2024-05-16
WO2019216879A1 (en) 2019-11-14
US11922720B2 (en) 2024-03-05
JP2021523455A (ja) 2021-09-02
EP3791356B1 (en) 2023-12-20
KR102528516B1 (ko) 2023-05-04
JP2023011634A (ja) 2023-01-24
KR20230065365A (ko) 2023-05-11
CN112055869A (zh) 2020-12-08
KR20210006900A (ko) 2021-01-19
JP7158499B2 (ja) 2022-10-21
EP3791356A1 (en) 2021-03-17
JP7441917B2 (ja) 2024-03-01
US20210110142A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
KR102801507B1 (ko) 얼굴의 PD(perspective distortion) 보정
US12373958B2 (en) Real time perspective correction on faces
US10078367B2 (en) Stabilization plane determination based on gaze location
US9729787B2 (en) Camera calibration and automatic adjustment of images
US9978180B2 (en) Frame projection for augmented reality environments
JP2019117577A (ja) プログラム、学習処理方法、学習モデル、データ構造、学習装置、および物体認識装置
CN110651467A (zh) 基于非视觉姿势数据的深度数据调整
WO2022121843A1 (zh) 文本图像的矫正方法及装置、设备和介质
US12002132B1 (en) Rendering using analytic signed distance fields
US12367623B2 (en) Perspective correct vector graphics rendering techniques
CN113011271A (zh) 生成和处理图像的方法、装置、设备、介质和程序产品
US20240202866A1 (en) Warped Perspective Correction
US20240404099A1 (en) Estimating Device Pose Using Plane Normal Vectors
CN116978102A (zh) 一种人脸特征建模识别方法、芯片及终端
KR20250068059A (ko) 이미지 제공 장치 및 이미지 제공 방법
WO2025117015A1 (en) Neural network based reconstruction of three-dimensional representation of human body from an image
CN120153394A (zh) 用于使用具有任意相对位姿配置的图像对进行深度估计的立体匹配

Legal Events

Date Code Title Description
A107 Divisional application of patent
PA0104 Divisional application for international application

Comment text: Divisional Application for International Patent

Patent event code: PA01041R01D

Patent event date: 20230427

Application number text: 1020207032050

Filing date: 20201105

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20230523

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240130

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20241029

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

PX0701 Decision of registration after re-examination

Patent event date: 20250207

Comment text: Decision to Grant Registration

Patent event code: PX07013S01D

X701 Decision to grant (after re-examination)
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250423

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250424

End annual number: 3

Start annual number: 1

PG1601 Publication of registration