KR20180109217A - 얼굴 영상 보정 방법 및 이를 구현한 전자 장치 - Google Patents

얼굴 영상 보정 방법 및 이를 구현한 전자 장치 Download PDF

Info

Publication number
KR20180109217A
KR20180109217A KR1020170038482A KR20170038482A KR20180109217A KR 20180109217 A KR20180109217 A KR 20180109217A KR 1020170038482 A KR1020170038482 A KR 1020170038482A KR 20170038482 A KR20170038482 A KR 20170038482A KR 20180109217 A KR20180109217 A KR 20180109217A
Authority
KR
South Korea
Prior art keywords
correction
face
region
processor
image
Prior art date
Application number
KR1020170038482A
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 삼성전자주식회사
Priority to KR1020170038482A priority Critical patent/KR20180109217A/ko
Publication of KR20180109217A publication Critical patent/KR20180109217A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001
    • G06K9/00268
    • G06K9/00604
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/18Eye characteristics, e.g. of the iris
    • G06V40/19Sensors therefor
    • 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/20172Image enhancement details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Ophthalmology & Optometry (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

다양한 실시예는 메모리, 디스플레이, 및 상기 메모리 또는 상기 디스플레이와 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 이미지로부터 추출된 특징점에 기반하여 얼굴 영역을 인식하고, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하고, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하고, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하고, 상기 분할된 얼굴 영역별 보정 비율을 계산하고, 계산된 보정 비율에 따라 상기 얼굴 영역을 보정하고, 상기 보정된 이미지를 상기 디스플레이 표시하도록 설정된 전자 장치 및 방법을 제공한다. 또한, 다른 실시예도 가능하다.

Description

얼굴 영상 보정 방법 및 이를 구현한 전자 장치{METHOD FOR ENHANCING FACE IMAGE AND ELECTRONIC DEVICE FOR THE SAME}
다양한 실시예는 얼굴 영상 보정 방법 및 장치에 관한 것이다.
최근 디지털 기술의 발달과 함께 이동통신 단말기, PDA(personal digital assistant), 전자수첩, 스마트 폰, 태블릿 PC(personal computer), 웨어러블 디바이스(wearable device) 등과 같은 다양한 유형의 전자 장치가 널리 사용되고 있다. 이러한, 전자 장치는 기능 지지 및 증대를 위해, 전자 장치의 하드웨어적인 부분 및/또는 소프트웨어적인 부분이 지속적으로 개량되고 있다.
한편, 전자 장치에 카메라가 포함되면서, 카메라 촬영 기능에 대한 다양한 기능을 제공함과 동시에, 촬영 시 또는 촬영된 영상에 대한 보정 기능도 발전하고 있다. 예를 들어, 인물 사진(예: 셀피(selfie))의 경우, 전자 장치는 얼굴을 환하고 선명하게 보정해주는 뷰티 기능을 제공하고 있다. 뷰티 기능은 얼굴 피부를 매끈하게 만들어주는 스무딩(smoothing) 기능, 얼굴의 밝기를 밝게 해주는 밝기(brightening) 기능, 얼굴을 갸름하게 만들어주는 슬리머(slimmer) 기능, 눈을 크게 만들어주는 눈 확대(eye enlargement) 기능을 포함할 수 있다.
종래의 얼굴 보정 방법은 얼굴 영역에 전부 동일한 효과를 적용하기 때문에, 눈, 코, 입 등의 영역에 블러 현상이 발생하거나, 경계선이 생기는 등의 문제점이 발생할 수 있다. 또한, 종래에는 얼굴의 기울기(예: 회전 각도)와 상관없이 얼굴을 좌, 우 대칭으로만 보정하기 때문에, 부자연스럽게 얼굴이 보정될 수 있다.
다양한 실시예들은 얼굴 내 특징점에 기반하여 얼굴 기울기(또는 오브젝트 방향)를 결정하고, 결정된 얼굴 기울기에 기반하여 전체적으로 또는 지역적으로 얼굴을 보정할 수 있다.
다양한 실시예들에 따른 전자 장치는 메모리, 디스플레이, 카메라 및 상기 메모리, 상기 디스플레이 또는 카메라와 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식하고, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하고, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하고, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하고, 상기 분할된 얼굴 영역별 보정 비율을 계산하고, 계산된 보정 비율에 적어도 기반하여 상기 얼굴 영역을 보정하고, 상기 보정된 이미지를 상기 디스플레이 표시하도록 설정될 수 있다.
다양한 실시예들에 따른 전자 장치는 카메라, 및 프로세서를 포함하고, 상기 프로세서는, 상기 카메라를 이용하여, 얼굴이 포함된 이미지를 획득하고, 상기 얼굴에 대한 검출 방법에 적어도 기반하여, 상기 얼굴과 관련된 복수의 가이드 마스크들을 생성하고, 상기 복수의 가이드 마스크들의 적어도 일부와 상기 얼굴 중 피부에 해당될 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정하고, 및 상기 결정된 이미지 처리 방법에 적어도 기반하여, 상기 피부의 적어도 일부를 보정하도록 설정될 수 있다.
다양한 실시예들에 따른 전자 장치의 동작 방법은 이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식하는 동작, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하는 동작, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하는 동작, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하는 동작, 상기 분할된 얼굴 영역별 보정 비율을 계산하는 동작, 상기 계산된 보정 비율에 적어도 기반하여 상기 얼굴 영역을 보정하는 동작, 및 상기 보정된 이미지를 표시하는 동작을 포함할 수 있다.
다양한 실시예들에 따르면, 얼굴 내 특징점에 기반하여 얼굴 기울기(또는 오브젝트 방향)를 결정하고, 결정된 얼굴 기울기에 기반하여 얼굴을 보정할 수 있다.
다양한 실시예들에 따르면, 얼굴 특성에 기반하여 다양한 얼굴 보정 마스크를 마련하고, 얼굴 보정에 필요한 상황에 따라 얼굴 보정 마스크의 보정 비율을 달리하여 보다 효과적으로 얼굴을 보정할 수 있다.
다양한 실시예들에 따르면, 얼굴을 전체적으로 보정하고, 얼굴 내 특징점에 기반하여 지역적으로 얼굴을 보정함으로써, 보다 자연스럽게 얼굴 영상을 보정할 수 있다.
다양한 실시예들에 따르면, 얼굴 특징점을 기준으로 얼굴 영역을 분할하고, 분할된 영역에 각각 다른 보정 비율을 적용하여 얼굴을 보정함으로써, 전체적인 얼굴 비율을 고려하여 얼굴을 보정할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치를 도시한 도면이다.
도 2는 다양한 실시예들에 따른 전자 장치의 구성을 도시한 블록도이다.
도 3은 다양한 실시예들에 따른 프로그램 모듈을 도시한 블록도이다.
도 4는 다양한 실시예들에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 5는 다양한 실시예들에 따른 얼굴 형상 보정 방법을 도시한 흐름도이다.
도 6은 다양한 실시예들에 따른 이미지로부터 특징점을 추출하는 일례를 도시한 도면이다.
도 7은 다양한 실시예들에 따른 얼굴의 기준선을 결정하는 일례를 도시한 도면이다.
도 8은 다양한 실시예들에 따른 얼굴 영역별 보정 비율을 계산하는 일례를 도시한 도면이다.
도 9는 다양한 실시예들에 따른 눈 영역 보정 방법을 도시한 흐름도이다.
도 10a 내지 도 10c는 다양한 실시예들에 따른 기준선 기울기에 기반하여 눈 영역을 보정하는 일례를 도시한 도면들이다.
도 11은 다양한 실시예들에 따른 가이드 마스크를 이용한 보정 방법을 도시한 흐름도이다.
도 12a는 다양한 실시예들에 따른 가이드 마스크 및 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12b는 다양한 실시예들에 따른 캡쳐 이미지 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12c는 다양한 실시예들에 따른 프리뷰 이미지 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12d는 다양한 실시예들에 따른 밝기 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 13은 다양한 실시예들에 따른 보정 파라미터를 이용하여 얼굴 영역을 보정하는 방법을 도시한 흐름도이다.
도 14는 다양한 실시예들에 따른 보정 파라미터를 결정하는 일례를 도시한 도면이다.
도 15는 다양한 실시예들에 따른 보정 파라미터를 이용하여 지역적으로 얼굴 영역을 보정하는 일례를 도시한 도면이다.
도 16은 다양한 실시예들에 따른 전역적 또는 지역적으로 얼굴 영역을 보정하는 일례를 도시한 도면이다.
도 17은 다양한 실시예들에 따른 얼굴 영역 보정 방법을 도시한 흐름도이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)를 도시한 도면이다.
도 1을 참조하면, 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다.
프로세서(120)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제1 외부 전자 장치(102), 제2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(wireless broadband), 또는 GSM(global system for mobile communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, 도 1의 근거리 통신(164)으로 예시된 바와 같이, WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE: bluetooth low energy), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(magnetic secure transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다.
한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(global positioning system), Glonass(global navigation satellite system), beidou navigation satellite system(이하 "Beidou") 또는 galileo, the european global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치(102,104), 또는 서버(106)에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치(201)의 구성을 도시한 블록도이다.
도 2를 참조하면, 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP)(210), 통신 모듈(220), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298) 를 포함할 수 있다.
프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 프로세서(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210) 는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 이미지로부터 추출된 특징점에 기반하여 얼굴 영역을 인식하고, 상기 얼굴 영역 내 적어도 하나의 오브젝트를 설정하고, 상기 적어도 하나의 오브젝트를 이용하여 상기 얼굴 영역 내 기준선을 설정하고, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하고, 상기 분할된 영역별 보정 비율을 계산하고, 계산된 보정 비율에 따라 상기 얼굴 영역을 보정하고, 상기 보정된 이미지를 디스플레이(260) 표시하도록 설정될 수 있다.
통신 모듈(220)은 도 1의 통신 인터페이스(170)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227), NFC 모듈(228) 및 RF 모듈(229)를 포함할 수 있다. 셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈(예: SIM 카드)(224)을 이용하여 통신 네트워크 내에서 전자 장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 커뮤니케이션 프로세서(CP)를 포함할 수 있다.
어떤 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈(229)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈(224)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(230)(예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 내장 메모리(232)는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자 장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러(color) 센서(240H)(예: RGB(red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV(ultra violet) 센서(240M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈(240)은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)는 프로세서(210)의 일부로서 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는, 예를 들면, 터치 패널(252), (디지털) 펜 센서(254), 키(256), 또는 초음파 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(예: 마이크(288))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)(예: 디스플레이(160))는 패널(262), 홀로그램 장치(264), 프로젝터(266), 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나 이상의 모듈로 구성될 수 있다. 한 실시예에 따르면, 패널(262)은 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서(또는 포스 센서)를 포함할 수 있다. 상기 압력 센서는 터치 패널(252)과 일체형으로 구현되거나, 또는 터치 패널(252)과는 별도의 하나 이상의 센서로 구현될 수 있다.
홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(201)의 내부 또는 외부에 위치할 수 있다. 인터페이스(270)는, 예를 들면, HDMI(272), USB(274), 광 인터페이스(optical interface)(276), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(270)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(145)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다.
전력 관리 모듈(295)은, 예를 들면, 전자 장치(201)의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈(295)은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터(297)는 전자 장치(201) 또는 그 일부(예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치(201)는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치(201))는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도이다.
한 실시예에 따르면, 프로그램 모듈(310)(예: 프로그램(140))은 전자 장치(예: 전자 장치(101))에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 도 3을 참조하면, 프로그램 모듈(310)은 커널(320)(예: 커널(141)), 미들웨어(330)(예: 미들웨어(143)), (API(360)(예: API(145)), 및/또는 어플리케이션(370)(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치(102, 104), 서버(106) 등)로부터 다운로드 가능하다.
커널(320)은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330) 는 런타임 라이브러리(335), 어플리케이션 매니저(341), 윈도우 매니저(342), 멀티미디어 매니저(343), 리소스 매니저(344), 파워 매니저(345), 데이터베이스 매니저(346), 패키지 매니저(347), 커넥티비티 매니저(348), 노티피케이션 매니저(349), 로케이션 매니저(350), 그래픽 매니저(351), 또는 시큐리티 매니저(352) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370)의 생명 주기를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다.
리소스 매니저(344)는 어플리케이션(370)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(345)는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저(345)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저(346)는, 예를 들면, 어플리케이션(370)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저(348)는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저(349)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저(350)는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(352)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다.
한 실시예에 따르면, 미들웨어(330)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API(360)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 와치(384), 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다.
예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서(210)), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
다양한 실시예들에 따른 전자 장치(201)는 메모리(230), 디스플레이(260), 및 상기 메모리(230) 또는 상기 디스플레이(260)와 기능적으로 연결된 프로세서(210)를 포함하고, 상기 프로세서는, 이미지로부터 추출된 특징점에 기반하여 얼굴 영역을 인식하고, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하고, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하고, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하고, 상기 분할된 얼굴 영역별 보정 비율을 계산하고, 계산된 보정 비율에 따라 상기 얼굴 영역을 보정하고, 상기 보정된 이미지를 상기 디스플레이(260) 표시하도록 설정될 수 있다.
상기 얼굴 영역은 타원형으로 인식되고, 상기 기준선은 상기 타원형 내 장축을 잇는 선으로 설정되고, 상기 프로세서(210)는, 상기 기준선에 적어도 기반하여 상기 얼굴 영역의 기울기를 판단하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 장축 방향으로 보정 비율을 계산하고, 상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 단축 방향으로 보정 비율을 계산하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 얼굴 영역의 전체 비율에 적어도 기반하여 상기 분할된 얼굴 영역별 보정 비율을 차등적으로 계산하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 하나 이상의 오브젝트들 중에서 눈 오브젝트에 대응하여 타원 영역을 형성하고, 상기 타원 영역의 기울기에 적어도 기반하여 확대 비율을 계산하고, 계산된 확대 비율에 적어도 기반하여 상기 타원 영역을 확대하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 타원 영역의 장축을 잇는 기준선을 설정하고, 설정된 기준선의 기울기를 판단하고, 상기 기준선의 기울기에 적어도 기반하여 확대 비율을 계산하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 타원 영역 내 눈동자 영역을 검출하고, 상기 눈동자 영역의 크기, 기울기 방향, 또는 위치에 적어도 기반하여 눈동자 영역에 대한 확대 비율을 계산하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 타원 영역에 대한 확대 비율과 상기 눈동자 영역에 대한 확대 비율을 서로 다르게 적용하여 상기 눈 오브젝트를 보정하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 이미지와 연관된 정보를 이용하여 보정 파라미터를 설정하고, 설정된 보정 파라미터에 기반하여 보정 우선 순위를 결정하고, 상기 보정 우선 순위에 기반하여 전역적 보정 또는 지역적 보정에 대한 처리를 수행하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 보정 파라미터에 적어도 기반하여 상기 전역적 보정 또는 상기 지역적 보정 중 어느 하나를 이용하여 상기 얼굴 영역에 대한 보정에 대한 제1 처리를 수행하고, 상기 전역적 보정 또는 상기 지역적 보정 중 나머지 하나를 이용하여 상기 제1 처리된 얼굴 영역에 대한 보정에 대한 제2 처리를 수행하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 이미지의 얼굴 영역에 반사광이 검출되는 경우, 상기 전역적 보정에 대한 처리를 수행한 후에 상기 지역적 보정에 대한 처리를 수행하도록 설정될 수 있다.
다양한 실시예들에 따른 전자 장치(201)는 카메라(예: 카메라 모듈(291)), 및 프로세서(210)를 포함하고, 상기 프로세서(210)는, 상기 카메라(291)를 이용하여, 얼굴이 포함된 이미지를 획득하고, 상기 얼굴에 대한 검출 방법에 적어도 기반하여, 상기 얼굴과 관련된 복수의 가이드 마스크들을 생성하고, 상기 복수의 가이드 마스크들의 적어도 일부와 상기 얼굴 중 피부에 해당될 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정하고, 및 상기 결정된 이미지 처리 방법에 적어도 기반하여, 상기 피부의 일부를 보정하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 윤곽선 검출을 위한 가이드 마스크를 이용하여 상기 복수의 오브젝트들의 윤곽선들을 포함하는 피부 영역을 인식하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 필터를 이용하여 상기 복수의 오브젝트들의 윤곽선들에 해당될 확률이 낮은 피부 영역을 인식하도록 설정될 수 있다.
상기 프로세서(210)는, 상기 이미지에 대한 보정 타입에 적어도 기반하여 상기 복수의 가이드 마스크들의 조합 법칙을 변경하고, 상기 변경된 조합 법칙에 적어도 기반하여 상기 얼굴을 구성하는 복수의 오브젝트들에 해당될 확률들을 결정하고, 및 상기 결정된 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정하도록 설정될 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 4를 참조하면, 동작(401)에서, 전자 장치(201)(예: 프로세서(210))는 이미지(또는 영상)를 획득할 수 있다. 상기 이미지는 전자 장치(201)의 카메라 모듈(예: 카메라 모듈(291))로부터 실시간으로 획득되는 프리뷰 이미지이거나, 메모리(예: 메모리(230))에 저장된 이미지일 수 있다. 예를 들어, 프로세서(210)는 사용자의 선택에 따라 카메라 어플리케이션을 실행하고, 실행된 카메라 어플리케이션에 의해 카메라 모듈(291)로부터 이미지를 획득하여 전자 장치(201)의 디스플레이(예: 디스플레이(260))에 표시할 수 있다. 또는, 프로세서(210)는 상기 사용자의 선택에 따라 갤러리 어플리케이션(예: 사진 어플리케이션)을 실행하고, 실행된 갤러리 어플리케이션을 통해 표시되는 이미지 목록에서 상기 사용자로부터 적어도 하나의 이미지를 선택받아 디스플레이(260)에 표시할 수 있다.
상기 이미지를 획득하는 동작은 디스플레이(260)에 이미지를 표시하는 동작을 포함할 수 있다. 여기서, 상기 획득된 이미지는 얼굴을 포함하는 인물 사진에 해당하는 것일 수 있다. 상기 인물 사진은 얼굴, 얼굴과 목 또는 상반신(예: 얼굴에서부터 허리 위까지 부분) 중 적어도 하나를 포함할 수 있다. 다양한 실시예들에 따르면, 사용자는 이미지 획득 동작을 수행할 때, 표시된 이미지에 대한 보정 타입을 선택할 수 있다. 상기 보정 타입은 이미지를 어떠한 속성(예: 밝기, 색상 반전, 또는 색상 변경)으로 보정할 것인지 선택하는 것일 수 있다.
동작(403)에서, 전자 장치(201)(예: 프로세서(210))는 상기 이미지로부터 특징점을 추출할 수 있다. 상기 특징점은 영어로 'feature point', 'key point', 'interesting point'라 칭할 수 있다. 상기 특징점은 물체를 추적하거나 인식할 때 사용하는 방법일 수 있다. 프로세서(210)는 상기 획득된 이미지로부터 얼굴 영역을 인식하거나, 얼굴 영역 내 오브젝트(예: 눈, 코, 입, 얼굴 윤곽)를 분석하기 위해 상기 획득된 이미지로부터 특징점을 추출할 수 있다. 이미지로부터 특징점을 추출하는 방법은 종래기술에 해당하므로 자세한 설명을 생략할 수 있다.
동작(405)에서, 전자 장치(201)(예: 프로세서(210))는 상기 추출된 특징점에 기반하여 얼굴 영역을 인식할 수 있다. 예를 들어, 프로세서(210)는 상기 추출된 특징점들을 이용하여 타원 영역을 형성하고, 형성된 타원 영역 중 큰 타원 영역에 해당하는 부분을 얼굴 영역으로 인식할 수 있다. 즉, 프로세서(210)는 상기 얼굴 영역을 타원형으로 인식할 수 있다. 예를 들어, 프로세서(210)는 상기 추출된 특징점들 중에서 가장 중심에 위치하는 특징점(예: 코 특징점)으로부터 가장 먼 거리에 위치하는 특징점들을 하나의 선으로 이어 큰 타원 영역을 형성할 수 있다. 또는, 프로세서(210)는 상기 추출된 특징점들 중에서 작은 타원 영역에 해당하는 영역을 눈 영역 또는 입 영역으로 인식할 수도 있다. 프로세서(210)는 인식된 얼굴 영역 내에서만 이미지 보정 처리 동작을 수행할 수 있다.
동작(407)에서, 전자 장치(201)(예: 프로세서(210))는 상기 인식된 얼굴 영역 내 오브젝트를 설정(또는 결정)할 수 있다. 상기 오브젝트는 얼굴을 구성하는 요소를 의미하는 것으로, 예를 들어, 눈썹, 눈, 코, 또는 입 중 적어도 하나일 수 있다. 프로세서(210)는 얼굴을 구성하는 요소의 특성을 이용하여 얼굴 영역 내 오브젝트를 설정할 수 있다. 프로세서(210)는 얼굴 영역 내 위치하는 특징점들을 이용하여 오브젝트의 속성(예: 눈썹, 눈, 코, 입), 형태(예: 모양) 또는 위치 중 적어도 하나를 분석할 수 있다.
예를 들어, 프로세서(210)는 상기 추출된 특징점들을 이용하여 얼굴 영역 내 나란히 위치하는 두 개의 형태 또는 영역을 눈썹 오브젝트로 설정할 수 있다. 또는, 프로세서(210)는 상기 추출된 특징점들을 이용하여 얼굴 영역 내 나란히 위치하는 두 개의 타원 영역을 각각 눈 오브젝트로 설정할 수 있다. 얼굴이 어느 한쪽으로 기울어진 경우, 상기 눈 오브젝트는 동일한 수평 방향에 나란히 위치하지 않을 수 있다. 프로세서(210)는 얼굴 영역 내 두 개의 작은 타원 영역이 감지되면, 특징점들을 이용하여 각 타원 영역에 대해 각각 눈 오브젝트를 설정할 수 있다. 또는, 프로세서(210)는 눈 오브젝트의 아래, 두 눈 오브젝트 사이에 위치하는 막대기 형태를 이루는 특징점들을 이용하여 코 오브젝트를 설정할 수 있다. 또는, 프로세서(210)는 눈과 코 오브젝트 하단에 위치하고, 일정한 영역을 형성하는 특징점들을 이용하여 입 오브젝트를 설정할 수 있다.
동작(409)에서, 전자 장치(201)(예: 프로세서(210))는 상기 설정된 오브젝트를 이용하여 얼굴 영역을 보정할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 가이드 마스크를 이용한 보정 영역 검출 방법, 기울기를 이용한 얼굴 형상 보정 방법, 영역을 이용한 얼굴 영역 보정 방법 중 적어도 하나를 수행할 수 있다. 예를 들어, 상기 보정 영역(예: 피부 영역) 검출 방법은 얼굴 영역을 보정하기 위한 전처리 과정으로, 예를 들어, 보정할 영역(또는 범위)를 검출하는 것일 수 있다. 동작(405)에서 얼굴 영역을 인식하였지만, 프로세서(210)는 상기 보정 영역 검출 방법을 이용하여 얼굴 영역을 조금 더 정확하게 검출할 수 있다. 또는, 프로세서(210)는 상기 보정 영역 검출 방법을 이용하여 얼굴 영역 이외에 보정이 필요한 부분(예: 목)이 더 있는지 여부를 판단할 수 있다. 보정이 필요한 부분은 사용자의 피부에 해당하는 것일 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 보정 영역 검출 방법을 수행한 후, 상기 얼굴 형상 보정 방법 및/또는 상기 얼굴 영역 보정 방법을 수행할 수 있다. 예를 들어, 프로세서(210)는 상기 검출된 보정 영역에서 기울기가 검출되는 경우, 상기 얼굴 형상 보정 방법을 이용하여 얼굴 형상을 보정할 수 있다. 또는, 프로세서(210)는 상기 검출된 보정 영역에서 기울기가 검출되는 경우, 상기 얼굴 형상을 보정한 후, 상기 얼굴 영역 보정 방법을 수행할 수 있다. 또는, 프로세서(210)는 상기 검출된 보정 영역에서 기울기가 검출되지 않는 경우, 상기 얼굴 형상 보정 방법을 수행하지 않고, 상기 얼굴 영역 보정 방법을 수행할 수 있다.
동작(411)에서, 전자 장치(201)(예: 프로세서(210))는 보정된 이미지를 표시할 수 있다. 프로세서(120)는 동작(403) 내지 동작(409)을 수행하여 동작(401)에서 획득된 이미지를 보정한 후, 보정된 이미지를 디스플레이(260)에 표시할 수 있다. 사용자는 디스플레이(260)을 통해 표시된 이미지를 확인하고, 선택적으로 표시된 이미지를 저장할 수 있다. 프로세서(210)는 상기 사용자로부터 저장 요청(예: 저장 버튼 선택)이 있는 경우, 표시된 이미지를 메모리(230)에 저장할 수 있다.
도 5는 다양한 실시예들에 따른 얼굴 형상 보정 방법을 도시한 흐름도이다. 도 5의 흐름도는 도 4의 동작(409)을 상세히 설명한 것이다.
도 5를 참조하면, 동작(501)에서, 전자 장치(201)(예: 프로세서(210))는 기준 오브젝트를 결정할 수 있다. 프로세서(210)는 얼굴의 기울기 또는 회전 각도를 판단하기 위해 기준이 되는 오브젝트를 기준 오브젝트로 결정할 수 있다. 상기 기준 오브젝트는 얼굴을 구성하는 적어도 하나의 오브젝트이거나, 상기 오브젝트를 이용하여 생성된 것일 수 있다. 예를 들어, 상기 기준 오브젝트는 두 눈썹 사이의 중앙점(예: 미간)과 코일 수 있다. 또는, 상기 기준 오브젝트는 두 눈 사이의 중앙점과 입의 중앙점일 수 있다. 프로세서(210)는 얼굴의 기울기를 판단하기 위하여 얼굴 영역 내 다양한 지점을 기준 오브젝트로 결정할 수 있다.
동작(503)에서, 전자 장치(201)(예: 프로세서(210))는 기준 오브젝트들을 잇는 기준선을 설정할 수 있다. 사람의 얼굴은 타원형이므로, 프로세서(210)는 상기 얼굴 영역을 타원형으로 인식할 수 있다. 프로세서(210)는 상기 얼굴 영역인 타원형에서 장축을 잇는 선을 기준선으로 설정할 수 있다. 상기 장축은 타원의 양 끝점을 잇는 선분 중에서 긴 축에 해당할 수 있다. 예를 들어, 사람의 얼굴형에서 장축은 이마에서부터 턱으로 내려가는 수직 방향 또는 세로 방향을 의미할 수 있다. 예를 들어, 상기 기준선은 이마부터 눈썹 사이의 중앙점 및 코끝까지 이어지는 선일 수 있다. 또는, 상기 기준선은 이마부터 눈썹 사이의 중앙점 및 입의 중앙점까지 이어지는 선일 수 있다.
만약, 사람의 얼굴이 지평선과 직각이 되는 수직 방향이 아니라, 왼쪽 또는 오른쪽으로 기울어져 있는 경우, 상기 기준선은 지평선과 직각이 되는 수직선을 기준으로 일정한 각도를 갖는 기울기를 갖을 수 있다. 다양한 실시예들에 따른 프로세서(210)는 얼굴 기울기를 판단하기 위하여 다양한 방법으로 적어도 두 개의 기준 오브젝트들을 잇는 기준선을 설정할 수 있다. 대부분의 상기 사람의 얼굴은 타원형으로 형성되는데, 타원형이 아닌 다른 형태(예: 사각형)로 인식할 경우, 사각형(예: 턱 주변 부분) 내에 얼굴이 아닌 영역이 포함될 수 있다. 따라서, 프로세서(210)는 이미지 내 특징점들을 이용하여 얼굴 영역을 타원형으로 인식할 수 있다.
동작(505)에서, 전자 장치(201)(예: 프로세서(210))는 상기 설정된 기준선을 기준으로 얼굴 영역을 분할할 수 있다. 예를 들어, 프로세서(210)는 기준선을 기준으로 얼굴의 위(예: 이마)에서부터 아래(예: 턱) 방향으로 얼굴 영역을 분할할 수 있다. 프로세서(210)는 이마 및 눈을 포함하는 제1 영역, 코 및 입을 포함하는 제2 영역, 턱 부분을 포함하는 제3 영역으로 얼굴 영역을 분할할 수 있다. 또는, 프로세서(210)는 이마를 포함하는 제1 영역, 눈을 포함하는 제2 영역, 코를 포함하는 제3 영역, 입을 포함하는 제4 영역, 턱 부분을 포함하는 제5 영역으로 얼굴 영역을 분할할 수 있다. 영역을 분할하는 방법은 실시예에 따라 다양하게 구현될 수 있으며, 이하 설명에 의해 본 발명이 제한되는 것은 아니다.
동작(507)에서, 전자 장치(201)(예: 프로세서(210))는 상기 분할된 영역별 보정 비율을 계산할 수 있다. 얼굴 형상 보정은 얼굴의 윤곽을 축소 보정하는 것을 의미할 수 있다. 프로세서(210)는 얼굴 전체적인 비율을 고려하여 얼굴의 윤곽을 축소하는 보정을 수행할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역을 장축 방향으로 3개의 영역(예: 이마 및 눈을 포함하는 제1 영역, 코 및 입을 포함하는 제2 영역, 턱 부분을 포함하는 제3 영역)으로 분할한 경우, 제1 영역에 대한 보정 비율과, 제2 영역에 대한 보정 비율, 제3 영역에 대한 보정 비율을 각각 계산할 수 있다. 예를 들어, 프로세서(210)는 머리 부분에 대해서는 축소 보정하지 않기 때문에, 자연스런 보정을 위해 이마 및 눈을 포함하는 제1 영역에 대해서는 이마에서부터 눈까지 완만하게 축소 보정되도록 보정 비율을 계산할 수 있다. 예를 들어, 프로세서(210)는 이마 부분에 대한 보정 비율이 작도록(예: 0.9), 눈 끝 부분으로 갈수록 보정 비율이 크도록(예: 0.5) 계산할 수 있다.
또한, 프로세서(210)는 눈 부분부터는 축소 보정했기 때문에 코 및 입을 포함하는 제2 영역에 대해서는 일률적으로 보정 비율(예: 0.5)을 계산할 수 있다. 또는, 프로세서(210)는 제2 영역에 대해서는 코 부분을 포함하는 영역과 입 부분을 포함하는 영역으로 나누어, 각 영역에 대해서 서로 다른 보정 비율을 갖도록 계산할 수 있다. 예를 들어, 프로세서(210)는 코 부분을 포함하는 영역에 대한 보정 비율을 0.5으로 하고, 입 부분을 포함하는 영역에 대한 보정 비율을 0.6으로 계산할 수 있다. 또한, 프로세서(210)는 턱 아래 부분에 대해서는 축소 보정하지 않기 대문에, 턱 부분을 포함하는 제3 영역에 대해서는 아래 방향으로 완만하게 보정 비율을 계산할 수 있다. 예를 들어, 프로세서(210)는 입 아래 부분은 보정 비율을 크도록(예: 0.5), 턱 끝으로 갈수록 보정 비율이 작도록(예: 0.9) 계산할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 장축 방향의 얼굴 윤곽에 모두 동일한 비율로 축소 보정하지 않고, 영역별로 구분하여 서로 다른 보정 비율을 적용함으로써, 보다 자연스럽게 얼굴 윤곽을 보정할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 얼굴 기울기(또는 회전 각도)를 고려하여 얼굴의 상/하(예: 장축 방향), 좌/우(예: 단축 방향)에 대해서 비율적으로 얼굴 윤곽을 보정할 수 있다. 상기 단축은 타원의 양 끝점을 잇는 선분 중에서 짧은 축에 해당할 수 있다. 사람의 얼굴형에서 단축은 왼쪽 눈(또는 오른쪽 눈)에서 오른쪽 눈(또는 왼쪽 눈)으로 이어지는 수평 방향 또는 가로 방향을 의미할 수 있다. 예를 들어, 프로세서(210)는 타원형인 사람의 얼굴 형상을 고려하여 타원의 장축 방향으로 보정 비율을 계산하고, 타원의 단축 방향으로 보정 비율을 각각 계산할 수 있다. 종래에는 단축 방향으로만 얼굴 윤곽을 축소 보정하였다면, 본 실시예에서는 장축 방향으로도 얼굴 윤곽을 축소 보정함으로써, 보정으로 인해 얼굴이 길어보이는 단점을 해결할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 사람의 얼굴이 타원형인 점을 고려하여 장축 방향 보정 비율을 단축 방향 보정 비율의 0.2배로 설정할 수 있다. 즉, 프로세서(210)는 단축 방향 보정 비율을 계산한 후, 단축 방향 보정 비율에 0.2를 곱하여 장축 방향 보정 비율을 계산할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 사용자의 얼굴 비율을 고려하여 장축 방향 보정 비율을 단축 방향 보정 비율의 몇 배로 설정한 것인지 결정할 수 있다. 예를 들어, 얼굴이 긴 사람의 경우, 0.2배보다 높게 설정될 수 있으며, 얼굴이 동그란 사람의 경우, 0.2배보다 낮게 설정될 수 있다. 이는, 발명의 이해를 돕기 위한 실시예일뿐, 실시예에 의해 본 발명이 제한되는 것은 아니다.
다양한 실시예들에 따른 프로세서(210)는 얼굴형의 타입에 따라 보정 비율을 결정할 수 있다. 예를 들어, 얼굴형이 가로로 넓은 타입인 경우, 프로세서(210)는 단축 방향 보정 비율을 단축 방향 평균 보정 비율보다 높일 수 있다. 또는, 얼굴형이 세로로 긴 타입인 경우, 프로세서(210)는 장축 방향 보정 비율을 장축 방향 평균 보정 비율보다 높일 수 있다. 이러한, 프로세서(210)는 사람들이 선호하는 비율을 학습하거나, 빅 데이터를 이용하여 보정 비율을 결정할 수 있다. 또는, 프로세서(210)는 전자 장치(201)의 사용자 특성을 고려하여 상기 보정 비율을 결정할 수 있다. 프로세서(210)는 상기 사용자 특성을 고려하여 사용자의 얼굴형에 대응하는 타입을 분석하고, 분석된 타입에 해당하는 보정 비율을 계산할 수 있다.
동작(509)에서, 전자 장치(201)(예: 프로세서(210))는 상기 계산된 보정 비율에 따라 얼굴 형상을 보정할 수 있다. 프로세서(210)는 분할된 영역별 보정 비율을 각각 다르게 적용하여 얼굴 형상을 보정할 수 있다. 또는, 프로세서(210)는 분할된 영역별 장축 방향 보정 비율과 단축 방향 보정 비율을 각각 적용하여 얼굴 형상을 보정할 수 있다. 프로세서(210)는 상기 보정 비율에 맞춰 해당하는 픽셀을 이동시켜 얼굴 형상을 보정할 수 있다. 예를 들어, 프로세서(210)는 얼굴을 좌, 우로 축소할 경우, 축소된 부분만큼 얼굴 영역의 외부 픽셀로 채울 수 있다. 또는, 프로세서(210)는 얼굴을 좌, 우로 확대하고, 위쪽으로 축소할 경우, 확대된 부분만큼 얼굴 경계 부분을 얼굴 영역에 포함된 픽셀로 채우고, 축소된 부분만큼 얼굴 영역의 외부 픽셀로 채울 수 있다.
도 6은 다양한 실시예들에 따른 이미지로부터 특징점을 추출하는 일례를 도시한 도면이다.
도 6을 참조하면, 전자 장치(201)(예: 프로세서(210))는 이미지로부터 특징점들을 추출할 수 있다. 프로세서(210)는 이미지를 작게 분할하고, 분할된 각 영역의 경계값을 이용하여 특징점들을 추출할 수 있다. 예를 들어, 프로세서(120)는 분할된 영역 들 중에서 인접한 영역과 차이가 나는 영역을 특징점들로 추출할 수 있다. 프로세서(210)는 추출된 특징점들 중에서 얼굴 윤곽에 해당하는 특징점들을 이어서 얼굴 영역(601)을 인식할 수 있다. 프로세서(210)는 얼굴 영역(601) 내에서 눈, 코, 입에 대응하는 영역을 예측하고, 예측된 영역에서 추출된 특징점들을 이용하여 오브젝트를 결정할 수 있다. 여기서, 오브젝트는 눈썹, 좌 눈(603-1), 우 눈(603-2), 코(605) 및 입(607)을 포함할 수 있다. 이렇게, 프로세서(210)는 얼굴 영역(601) 내 위치하는 특징점들을 이용하여 오브젝트의 속성(예: 눈썹, 눈, 코, 입), 형태(예: 모양) 또는 위치 중 적어도 하나를 획득할 수 있다.
도 7은 다양한 실시예들에 따른 얼굴의 기준선을 결정하는 일례를 도시한 도면이다.
도 7을 참조하면, 제1 기준선(710)은 얼굴 영역의 위에서부터 아래 방향으로 선분을 그어 결정된 것일 수 있다. 제1 기준선(710)은 얼굴 영역의 기울기(예: 회전 각도)에 상관없이 이미지의 수직 방향으로 결정된 것이기 때문에, 제1 기준선(710)을 기준으로 좌, 우가 대칭이 되도록 얼굴 윤곽을 축소 보정할 경우, 얼굴의 양 쪽 비율이 맞지 않아 얼굴이 부자연스러워 보일 수 있다. 예를 들어, 제1 기준선(710)을 기준으로 얼굴 윤곽을 축소 보정할 경우, 얼굴의 오른쪽 윤곽이 왼쪽 윤곽보다 많이 보정되게 되어 얼굴이 좌우 대칭적으로 보이지 않을 수 있다. 제1 기준선(710)을 기준으로 얼굴을 보정하는 방법은 종래기술에 해당할 수 있다.
다양한 실시예들에 따른 전자 장치(201)(예: 프로세서(210))는 얼굴 영역 내 특징점들을 이용하여 제2 기준선(720), 제3 기준선(730) 또는 제4 기준선(740)을 결정할 수 있다.
제2 기준선(720)은 제1 기준선(710)과 마찬가지로 얼굴 영역의 위에서부터 아래 방향으로 선분을 그어 결정된 것일 수 있다. 그러나, 제2 기준선(720)은 얼굴 영역을 좌, 우 대칭으로 분할하게 되어, 제2 기준선(720)을 기준으로 좌, 우가 대칭이 되도록 얼굴 윤곽을 축소 보정할 경우, 얼굴의 양 쪽 비율이 동일하게 축소 보정될 수 있다. 즉, 프로세서(210)는 제2 기준선(720)과 수직이 되는 수평 방향으로 좌, 우의 얼굴 윤곽을 보정할 수 있다. 또한, 프로세서(210)는 좌, 우 대칭적으로 얼굴 윤곽을 축소 보정함과 동시에 좌/우 보정 비율에 기반하여 상/하 보정 비율을 계산할 수 있다. 예를 들어, 프로세서(210)는 좌/우 대칭적으로 얼굴 윤곽을 축소 보정할 경우 얼굴이 길어보일 수 있기 때문에, 턱 아래 부분을 축소 보정함으로써, 전체적인 얼굴 윤곽을 축소 보정할 수 있다. 즉, 프로세서(210)는 좌/우 수평 방향으로 얼굴 윤곽을 축소 보정함과 동시에 상기 좌/우 수평 방향과 직각이 되는 위쪽 방향(예: 위쪽 방향 화살표)으로 턱 아래 부분을 축소 보정할 수 있다.
제3 기준선(730)은 얼굴 영역의 좌, 우 대칭이 되도록 얼굴 영역의 위에서부터 아래 방향으로 선분을 그어 결정된 것일 수 있다. 즉, 프로세서(210)는 얼굴 영역의 기준 오브젝트들을 이용하여 얼굴 영역의 좌, 우 대칭이 되도록 제3 기준선(730)을 설정(결정)할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 제3 기준선(730)을 기준으로 좌/우 수평 방향으로 얼굴 윤곽을 보정할 수 있다. 또한, 프로세서(210)는 좌/우 수평 방향으로 얼굴 윤곽을 축소 보정함과 동시에 좌/우 수평 방향의 보정 비율에 기반하여 상기 좌/우 수평 방향과 직각이 되는 상/하 방향의 보정 비율을 계산할 수 있다. 프로세서(210)는 좌/우 수평 방향으로 얼굴 윤곽을 축소 보정함과 동시에 상기 좌/우 수평 방향과 직각이 되는 위쪽 방향(예: 위쪽 방향 화살표)으로 턱 아래 부분을 축소 보정할 수 있다.
제4 기준선(740)은 얼굴 영역의 좌, 우 대칭이 되도록 얼굴 영역의 위에서부터 아래 방향으로 선분을 그어 결정된 것일 수 있다. 다양한 실시예들에 따른 프로세서(210)는 제4 기준선(740)과 수직이 되는 방향으로 좌, 우의 얼굴 윤곽을 보정할 수 있다. 이 경우, 프로세서(210)가 얼굴 윤곽을 보정할 경우, 좌, 우 대칭적으로 얼굴 윤곽이 보정될 수 있다. 또한, 프로세서(210)는 제4 기준선(740)과 수직이 되는 방향으로 얼굴 윤곽을 축소 보정함과 동시에 제4 기준선(740)과 수직이 되는 방향의 보정 비율에 기반하여 상/하 보정 비율을 계산할 수 있다. 프로세서(210)는 제4 기준선(740)과 수직이 되는 방향으로 얼굴 윤곽을 축소 보정함과 동시에 제4 기준선(740)과 동일한 기울기(또는 각도)의 위쪽 방향(예: 제4 기준선(740)과 동일한 각도의 위쪽 방향 화살표)으로 턱 아래 부분을 축소 보정할 수 있다.
도 8은 다양한 실시예들에 따른 얼굴 영역별 보정 비율을 계산하는 일례를 도시한 도면이다.
도 8을 참조하면, 전자 장치(201)(예: 프로세서(210))는 얼굴 영역(810)을 눈썹 및 눈을 포함하는 제1 영역(811), 코 및 입을 포함하는 제2 영역(813), 및 턱 부분을 포함하는 제3 영역(815)으로 분할할 수 있다. 이때, 전자 장치(201)(예: 프로세서(210))는 기준선(817)과 수직이 되는 수평 방향으로 얼굴 영역(810)을 분할함으로써, 얼굴 영역(810)이 좌, 우가 대칭적이 되도록 제1 영역(811), 제2 영역(813) 및 제3 영역(817)을 분할할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 얼굴 전체적인 비율을 고려하여 얼굴의 윤곽을 축소하는 보정을 수행할 수 있다. 예를 들어, 프로세서(210)는 머리 부분에 대해서는 축소 보정을 하지 않기 때문에, 자연스런 보정을 위해 제1 영역(811)에 대해서는 아래 방향으로 완만하게 축소 보정되도록 제1 보정 비율(831)을 계산할 수 있다. 또한, 프로세서(210)는 눈 부분부터는 축소 보정했기 때문에 제2 영역(813)에 대해서는 일정한 축소 비율을 갖도록 제2 보정 비율(833)을 계산할 수 있다. 또한, 프로세서(210)는 턱 아래 부분에 대해서는 축소 보정하지 않기 대문에, 제3 영역(815)에 대해서는 아래 방향으로 완만하게 제3 보정 비율(835)을 계산할 수 있다
단축 방향의 보정 그래프(830)를 참고하면, 0에 가까울수록 보정 비율이 높고, 1에 가까울수록 보정 비율이 낮은 것을 의미할 수 있다. 보정 비율이 높을수록 얼굴 윤곽을 많이 축소하게 되므로, 전체적인 얼굴 비율에 영향을 줄 수 있다. 이러한 점을 고려하여, 프로세서(210)는 0과 1 사이에 보정 비율의 최대값(예: 0.3)을 정하고, 1과 최대값 사이로 영역별 보정 비율을 계산할 수 있다. 프로세서(210)는 제1 영역(811) 및 제3 영역(815)에 대해서는 선형적으로 보정 비율을 계산할 수 있다. 즉, 프로세서(210)는 제1 영역(811)에 대한 제1 보정 비율(831), 제2 영역(813)에 대한 제2 보정 비율(833), 제3 영역(815)에 대한 제3 보정 비율(835)을 각각 다르게 결정할 수 있다.
얼굴 윤곽에 대해 좌, 우로만 축소 보정하게 되면, 얼굴이 길어보일 수 있으므로, 프로세서(210)는 기준선(817)과 동일한 기울기로 얼굴 영역(810)을 아래쪽에서 위쪽 방향으로 축소 보정할 수 있다. 기준선(817)과 동일한 기울기의 축소 방향은 장축 방향일 수 있다. 다양한 실시예들에 따른 프로세서(210)는 사람의 얼굴이 타원형인 점을 고려하여 장축 방향의 보정 비율을 단축 방향 보정 비율의 0.2배로 설정할 수 있다. 예를 들어, 프로세서(210)는 단축 방향의 보정 그래프(830)를 참고하여 제1 보정 비율(831) 내지 제3 보정 비율(835)을 결정한 후, 제1 보정 비율(831) 내지 제3 보정 비율(835)에 0.2를 곱하여 장축 방향 보정 비율(예: 제4 영역(821), 제5 영역(825) 및 제6 영역(825))을 계산할 수 있다.
장축 방향의 보정 그래프(820)를 참고하면, 0에 가까울수록 보정 비율이 높고, 1에 가까울수록 보정 비율이 낮은 것을 의미할 수 있다. 프로세서(210)는 0과 1 사이에 보정 비율의 최대값(예: 0.3)을 정하고, 1과 최대값 사이로 영역별 보정 비율을 계산할 수 있다. 프로세서(210)는 얼굴 영역(810)의 위쪽 방향으로 갈수록 보정 비율이 작도록 하고, 아래 방향으로 갈수록 보정 비율을 크게 계산할 수 있다. 예를 들어, 프로세서(210)는 제4 영역(821) 및 제6 영역(825)에 대해서는 선형적으로 보정 비율을 계산할 수 있다. 프로세서(210)는 제1 영역(811)에 대한 제4 보정 비율(821), 제2 영역(813)에 대한 제5 보정 비율(823), 제3 영역(815)에 대한 제6 보정 비율(825)을 각각 다르게 결정할 수 있다.
도 9는 다양한 실시예들에 따른 눈 영역 보정 방법을 도시한 흐름도이다. 도 9의 흐름도는 도 4의 동작(409)을 상세히 설명한 것이다. 도 9의 동작은 도 5의 동작과 동시에 수행되거나, 도 5의 동작 이후 또는 이전에 수행될 수 있다.
도 9를 참조하면, 동작(901)에서, 전자 장치(201)(예: 프로세서(210))는 눈의 타원 영역을 결정할 수 있다. 사람의 얼굴에서 눈은 두 개가 나란히(예: 수평적으로) 위치할 수 있다. 이러한 점을 고려하여, 프로세서(210)는 얼굴 영역에 포함된 특징점들을 이용하여 내 나란히 위치하는 두 개의 영역을 각각 타원 영역으로 형성할 수 있다.
동작(903)에서, 전자 장치(201)(예: 프로세서(210))는 타원 영역의 장축을 잇는 기준선을 설정할 수 있다. 여기서, 상기 장축은 타원의 양 끝점을 잇는 선분 중에서 긴 축에 해당하는 것으로, 예를 들어, 정면에서 사람의 눈을 바라봤을 때, 눈의 중앙점을 지나는 수평선을 의미할 수 있다.
동작(905)에서, 전자 장치(201)(예: 프로세서(210))는 상기 설정된 기준선의 기울기를 판단할 수 있다. 만약, 이미지 내에 사람의 얼굴이 지평선과 직각이 되는 수직 방향에 배치되는 경우, 눈의 수평선을 의미하는 상기 기준선의 기울기가 검출되지 않을 수 있다. 그러나, 이미지 내에 사람의 얼굴이 왼쪽 또는 오른쪽으로 기울어져(치우쳐져) 있는 경우, 눈의 수평선도 기울어지기 때문에, 상기 기준선의 기울기가 검출될 수 있다. 프로세서(210)는 상기 기준선의 기울기가 상기 수평선을 기준으로 일정한 각도를 갖고 있는 경우, 기울기를 검출할 수 있다. 프로세서(210)는 상기 기준선의 기울기에 해당하는 회전 각도를 검출할 수 있다.
동작(907)에서, 전자 장치(201)(예: 프로세서(210))는 상기 기준선 기울기에 따라 확대 비율을 계산할 수 있다. 눈 보정은 눈의 영역을 확대 보정하는 것을 의미할 수 있다. 프로세서(210)는 눈의 기울기를 고려하여 눈의 영역 확대 방향을 결정하고, 확대 방향에 따른 확대 비율을 계산할 수 있다. 종래에는 사람의 얼굴이 한쪽으로 기울어져, 눈의 방향도 한쪽으로 기울어졌음에도 불구하고, 지평선을 기준으로 눈의 영역을 보정함으로써, 눈의 확대 보정이 부자연스러워 보인다는 단점이 있었다. 즉, 종래에는 눈의 기울어진 방향과 상관없이 눈을 확대 보정함으로써, 실제 눈의 위치와 보정된 눈의 위치에 차이가 있을 수 있다. 프로세서(210)는 상기 기준선의 기울기에 따라 눈에 해당하는 타원 영역에 서로 다른 확대 비율을 적용할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 눈동자(pupil)(또는 검은 눈동자(dark brown eyes))의 크기, 기울기 방향, 또는 위치 중 적어도 하나에 기반하여 확대 비율을 계산할 수 있다. 상기 타원 영역에는 눈의 바탕(또는 배경)에 해당하는 흰색 부분과 눈의 중심에 해당하는 눈동자가 포함될 수 있다. 여기서, 상기 타원 영역은 눈의 바탕에 해당하는 흰색 영역을 의미할 수 있다. 눈의 타원 영역(예: 흰색 부분)을 기준으로 눈을 확대 보정할 경우, 눈동자의 크기, 기울기 방향 또는 위치 중 적어도 하나가 부자연스럽게 보정될 수 있다. 이에, 프로세서(210)는 눈의 타원 영역 내 눈동자의 크기, 기울기 방향, 또는 위치 중 적어도 하나에 기반하여 눈동자 영역의 확대 비율을 계산하고, 계산된 확대 비율을 눈동자 영역을 확대하는데 적용할 수 있다. 참고로, 눈은 타원형인데 반하여, 눈동자는 원형이므로, 눈의 전체 영역(예: 타원 영역 및 눈동자 영역)에 대하여 동일한 비율로 확대 적용할 경우 눈동자가 부자연스러워 보일 수 있다. 다양한 실시예들에 따른 프로세서(210)는 눈동자 영역의 확대 비율과 타원 영역(예: 흰색 부분)의 확대 비율을 다르게 계산할 수 있다. 프로세서(210)는 기준선의 기울기, 눈동자의 크기 및 눈동자의 위치에 기반하여 눈동자 영역의 확대 비율을 계산할 수 있다. 프로세서(210)는 기준선의 기울기 및 타원 영역의 크기에 기반하여 타원 영역의 확대 비율을 계산할 수 있다.
동작(909)에서, 전자 장치(201)(예: 프로세서(210))는 상기 계산된 확대 비율에 기반하여 타원 영역을 확대할 수 있다. 프로세서(210)는 타원 영역의 경계로부터 일정한 확대 비율로 타원 영역이 커지도록 보정할 수 있다. 또한, 프로세서(210)는 눈동자 영역의 경계로부터 일정한 확대 비율로 눈동자 영역이 커지도록 보정할 수 있다. 예를 들어, 프로세서(210)는 타원 영역을 확대할 경우, 타원 영역의 외부 픽셀(예: 피부 영역)을 상기 타원 영역에 포함된 픽셀(예: 흰자 영역)로 채울 수 있다. 또는, 프로세서(210)는 눈동자 영역을 확대할 경우, 상기 타원 영역에 포함된 픽셀(예: 흰자 영역)을 눈동자 영역에 포함된 픽셀(예: 검은색, 갈색, 초록색, 파란색)로 채울 수 있다.
다양한 실시예들에 따른 프로세서(210)는 타원 영역에 대한 확대 비율과 눈동자 영역에 대한 확대 비율을 서로 다르게 적용하여 눈 오브젝트를 보정할 수 있다. 프로세서(210)는 눈동자의 크기, 기울기 방향, 또는 위치 중 적어도 하나에 기반하여 눈동자 영역을 확대할 수 있다. 예를 들어, 눈동자가 타원 영역에서 왼쪽 또는 오른쪽으로 치우쳐 있는 경우, 프로세서(210)는 치우친 방향(예: 기울기 방향)을 기준으로 눈동자 영역을 확대할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 눈동자의 위치에 기반하여 눈동자 영역이 항상 타원 영역 중앙에 위치하도록 눈동자 영역을 보정할 수 있다. 눈을 확대 보정할 경우, 눈의 흰색 부분도 커지지만, 눈동자도 커지게 될 수 있다. 프로세서(210)는 눈동자의 위치가 항상 중앙에 위치하도록 함으로써, 사용자의 눈이 정면을 향하도록 눈을 보정할 수 있다.
도 10a 내지 도 10c는 다양한 실시예들에 따른 기준선 기울기에 기반하여 눈 영역을 보정하는 일례를 도시한 도면들이다.
도 10a는 종래기술에 따라 기준선 기울기에 상관없이 눈 영역을 보정하는 일례를 도시한 도면이다.
도 10a를 참조하면, 얼굴 영역 상에 눈 영역(1010)은 기준선(1018)을 기준으로 일정 각도를 가지도록 기울어진 상태일 수 있다. 종래에는 얼굴 영역 내에 추출된 특징점들 중에서 제1 특징점(1011), 제2 특징점(1012), 제3 특징점(1013), 또는 제4 특징점(1014)을 이용하여 실제 눈의 타원 영역(1015)을 형성할 수 있다. 또한, 종래에는 실제 눈의 타원 영역(1015) 내에 포함된 중심점(1017)을 기준으로 지평선과 평행이 되는 선을 눈의 기준선(1018)으로 결정할 수 있다. 이 결과, 눈 보정에 이용되는 눈의 타원 영역(1015-1)은 기준선(1018)을 기준으로 특징점과 무관하게 결정될 수 있다. 즉, 종래에는 실제 눈의 타원 영역(1015)의 제2 특징점(1012) 및 제4 특징점(1014)을 연결한 선을 기준선으로 설정하지 않고, 눈의 중심점(1017)을 지나는 평행선을 기준선(1018)으로 설정함으로써, 눈의 기울기를 고려하지 않고 눈을 확대 보정할 수 있다.
이 결과, 종래에는 눈의 중심점(1017) 및 기준선(1018)을 기준으로 눈의 타원 영역(1015-1)에 확대 비율을 적용하면, 확대된 타원 영역(1015-2)을 얻을 수 있다. 확대 비율 그래프(1020)를 참고하면, 눈의 타원 영역(1015-1)에 일정한 확대 비율(1023)을 적용하고, 눈의 타원 영역(1015-1)의 장축 양끝에서부터 완만한 확대 비율(1021, 1025)을 적용할 수 있다. 그 결과, 확대된 타원 영역(1015-2)은 실제 눈의 영역(1015)과는 그 위치나 모양에서 차이가 있을 수 있다. 또한, 확대된 눈동자 영역(1016-1)은 실제 눈의 눈동자 영역(1016)과는 그 위치나 모양에 차이가 있을 수 있다.
도 10b는 본 발명에 따라 눈에 기울기가 없을 때 눈 영역을 보정하는 일례를 도시한 것일 수 있다.
도 10b를 참조하면, 전자 장치(201)(예: 프로세서(210))는 얼굴 영역 내에 추출된 특징점들 중에서 제1 특징점(1031), 제2 특징점(1032), 제3 특징점(1033), 또는 제4 특징점(1034)을 이용하여 눈 오브젝트(1030)를 검출할 수 있다. 프로세서(210)는 제1 특징점(1031), 제2 특징점(1032), 제3 특징점(1033), 또는 제4 특징점(1034)을 이용하여 눈 오브젝트(1030)에 해당하는 타원 영역(1035)을 형성할 수 있다. 프로세서(210)는 제2 특징점(1032)과 제4 특징점(1034)을 선으로 이어 타원 영역(1035)의 장축을 잇는 기준선(1038)을 설정할 수 있다. 예를 들어, 프로세서(210)는 하나의 특징점(예: 제2 특징점(1032))에서 중앙점(1037)을 지나 다른 하나의 특징점(예: 제4 특징점(1034))으로 이어지는 선을 기준선(1038)으로 결정할 수 있다.
프로세서(210)는 기준선(1038)이 지평선과 평행한지 여부에 기반하여 기준선(1038)의 기울기를 판단할 수 있다. 프로세서(210)는 기준선(1038)에서 기울기가 검출되지 않으면, 눈 영역이 지평선과 평행하다고 판단하고 타원 영역(1035)을 보정할 수 있다. 예를 들어, 확대 비율 그래프(1040)를 참고하면, 프로세서(210)는 타원 영역(1035)에 일정한 확대 비율(1043)을 적용하고, 타원 영역(1035)의 장축 양끝에서부터 완만한 확대 비율(1041, 1045)을 적용할 수 있다. 그 결과, 확대된 타원 영역(1035-2)은 실제 눈의 타원 영역(1035)과는 그 위치나 모양이 유사하고 크기만 크게 보정될 수 있다. 또한, 프로세서(210)는 타원 영역(1035)에 포함된 눈동자 영역(1036)에 일정한 확대 비율(1043)을 적용할 수 있다. 이 경우, 확대된 눈동자 영역(1036-1)은 실제 눈의 눈동자 영역(1036)과는 그 위치나 모양이 유사하고, 크기만 크게 보정될 수 있다.
도 10c는 본 발명에 따라 눈에 기울기가 있을 때 눈 영역을 보정하는 일례를 도시한 것일 수 있다.
도 10c를 참조하면, 전자 장치(201)(예: 프로세서(210))는 얼굴 영역 내에 추출된 특징점들 중에서 제1 특징점(1051), 제2 특징점(1052), 제3 특징점(1053), 또는 제4 특징점(1054)을 이용하여 눈 오브젝트(1050)를 검출할 수 있다. 프로세서(210)는 제1 특징점(1051), 제2 특징점(1052), 제3 특징점(1053), 또는 제4 특징점(1054)을 이용하여 눈 오브젝트(1050)에 해당하는 타원 영역(1055)을 형성할 수 있다. 프로세서(210)는 제2 특징점(1052)과 제4 특징점(1054)을 선으로 이어 타원 영역(1055)의 장축을 잇는 기준선(1058)을 설정할 수 있다. 예를 들어, 프로세서(210)는 하나의 특징점(예: 제2 특징점(1052))에서 중앙점(1057)을 지나 다른 하나의 특징점(예: 제4 특징점(1054))으로 이어지는 선을 기준선(1058)으로 결정할 수 있다.
프로세서(210)는 기준선(1058)이 지평선과 평행한지 여부에 기반하여 기준선(1058)의 기울기를 판단할 수 있다. 프로세서(210)는 기준선(1058)에서 기울기가 검출되면, 기준선(1058)의 기울기에 기반하여 타원 영역(1055)을 보정할 수 있다. 예를 들어, 확대 비율 그래프(1060)를 참고하면, 프로세서(210)는 기준선(1058)의 기울기에 대응하는 타원 영역(1055)에 일정한 확대 비율(1063)을 적용하고, 타원 영역(1055)의 장축 양끝에서부터 완만한 확대 비율(1061, 1065)을 적용할 수 있다. 그 결과, 확대된 타원 영역(1055-2)은 실제 눈의 타원 영역(1055)과는 그 위치나 모양이 유사하고 크기만 크게 보정될 수 있다. 또한, 프로세서(210)는 타원 영역(1055)에 포함된 눈동자 영역(1056)에 일정한 확대 비율(1053)을 적용할 수 있다. 이 경우, 확대된 눈동자 영역(1056-1)은 실제 눈의 눈동자 영역(1056)과는 그 위치나 모양이 유사하고, 크기만 크게 보정될 수 있다.
도 10a 및 도 10c를 비교해 보면, 실제 눈의 타원 영역과 보정된 눈의 타원 영역의 위치, 모양 또는 크기가 차이가 있는 것을 알 수 있다.
도 11은 다양한 실시예들에 따른 가이드 마스크를 이용한 보정 영역 검출 방법을 도시한 흐름도이다. 도 11의 흐름도는 도 5 및 도 9의 동작 이전에 수행될 수 있다.
도 11을 참조하면, 동작(1101)에서, 전자 장치(201)(예: 프로세서(210))는 적어도 하나의 가이드 마스크를 생성할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역 내 특징점을 이용하여 오브젝트를 검출하기 위한 오브젝트 가이드 마스크를 생성할 수 있다. 프로세서(210)는 얼굴 영역 내 특징점을 이용하여 얼굴 형상을 검출하기 위한 형상 가이드 마스크를 생성할 수 있다. 프로세서(210)는 얼굴 영역 내 특징점을 이용하여 주변 영역과 구별되는 영역을 검출하기 위한 엣지 가이드 마스크를 생성할 수 있다. 프로세서(210)는 이미지를 구성하는 색상 정보에 기반하여 이미지의 배경을 검출하기 위한 배경 가이드 마스크를 생성할 수 있다. 프로세서(210)는 얼굴의 피부에 해당하는 색상 정보에 기반하여 얼굴 영역 내 피부를 검출하기 위한 피부 가이드 마스크를 생성할 수 있다. 이 밖에도, 프로세서(210)는 다양한 검출 기법을 이용하여 다양한 가이드 마스크를 생성할 수 있다.
동작(1103)에서, 전자 장치(201)(예: 프로세서(210))는 보정 타입을 결정할 수 있다. 상기 보정 타입은 보정할 이미지의 속성이 무엇인지 또는 보정 속성이 무엇인지에 따라 결정될 수 있다. 예를 들어, 동작(401)에서 획득한 이미지가 전자 장치(201)의 카메라 모듈(예: 카메라 모듈(291))로부터 실시간으로 획득되는 프리뷰 이미지인지, 이미 촬영되어 메모리(예: 메모리(230))에 저장된 이미지인지에 따라 보정 타입이 결정될 수 있다. 또한, 사용자가 이미지 보정 요청 시, 보정을 원하는 속성을 무엇으로 선택했는지 여부에 따라 다를 수 있다. 예를 들어, 사용자가 '밝기'를 위주로 이미지를 보정할 것으로 선택했는지, '색상 반전(예: 흑백, 갈색)'을 위주로 이미지를 보정할 것을 선택했는지, 또는 '색상 변경(예: 푸른색 계열, 따뜻한 계열)'을 위주로 이미지를 보정할 것인지 선택했는지 여부에 따라 다를 수 있다.
동작(1105)에서, 전자 장치(201)(예: 프로세서(210))는 보정 타입에 기반하여 가이드 마스크의 조합 법칙을 결정(또는 설정)할 수 있다. 예를 들어, 프로세서(210)는 보정 타입에 따라 동작(1101)에서 생성된 다섯 가지의 가이드 마스크를 이용하여 각 픽셀별 서로 다른 보정값을 가지도록 결정할 수 있다. 예를 들어, 이미지 내 각 픽셀값은 '0 ~ 1' 사이의 값을 가질 수 있고, 프로세서(210)는 복수의 가이드 마스크들을 이미지에 적용할 경우, 가이드 마스크별로 각각 다른 값이 검출될 수 있다. 프로세서(210)는 이미지에 가이드 마스크를 적용하여, 검출된 값이 '1'에 가까운 영역(예: 픽셀)에 대해서는 보정 영역으로 판단(또는 검출)하고, 검출된 값이 '0'에 가까운 영역에 대해서는 보정 영역으로 판단하지 않을 수 있다. 여기서, 보정 영역으로 판단하지 않는다는 것은 해당 영역에 대해서는 보정하지 않고, 원본 그대로 유지하는 것을 의미할 수 있다.
예를 들어, 사용자가 이미 촬영된 이미지에 대하여 보정을 요청한 경우(이하, '캡쳐 이미지 보정'), 프로세서(210)는 배경 가이드 마스크, 피부 가이드 마스크, 오브젝트가이드 마스크를 적용하여 각 픽셀에 대한 값을 검출할 수 있다. 이미지에서 사람의 얼굴 영역은 피부 색상에 가까우므로, 피부 가이드 마스크의 값은 '1'에 가까운 값을 가진다. 반대로 배경 가이드 마스크의 값은 '0'에 가까운 값을 가진다. 즉, 동일한 영역(예: 피부 영역)에 대해서 어떤 가이드 마스크를 적용하느냐에 따라 서로 다른 값이 검출될 수 있다. 프로세서(210)은 배경 가이드 마스크와 피부 가이드 마스크의 차이를 이용하여 보정 마스크 값을 정의한다. 예를 들어, 프로세서(210)는 상기 배경 가이드 마스크를 적용한 값(예: 0.3)이 제2 임계치(예: 0.3) 이하이고, 상기 피부 가이드 마스크를 적용한 값(예: 0.9)이 제1 임계치(예: 0.7)를 초과한 이미지 내 영역에 대해서는 보정 영역으로 판단할 수 있다. 상기 보정 영역으로 판단된 피부 영역에 대해서는 보정 마스크의 값이 '1.0'이 되어, 프로세서(210)가 피부 영역을 보정할 수 있다.
여기서, 각 가이드 마스크를 적용한 값 또는 임계치는 이미지에 따라 달라질 수 있고, 조절 가능할 수 있다. 각 가이드 마스크를 적용한 값 또는 임계치에 대해 기재한 수치는 발명의 이해를 돕기 위해 기재하였을 뿐, 기재된 수치로 인해 발명이 제한되는 것은 아니다.
또한, 프로세서(210)는 오브젝트 가이드 마스크를 적용하여 눈, 눈썹, 입술 등의 영역에 대하여 각각 다른 값을 갖도록 제한 할 수 있다. 상기 피부 가이드 마스크와 배경 가이드 마스크를 이용하여 정의한 보정 마스크의 값에 대해서 오브젝트 가이드 마스크를 적용하여 재정의 한다. 프로세서(210)는 촬영된 이미지에 대하여 보정할 때는 눈썹 영역에 대한 값을 '0'으로 결정(또는 제한)할 수 있다. 이 경우, 눈썹 영역에 대한 보정 마스크의 값이 '0'이 되어, 프로세서(210)가 눈썹 영역에 대해서는 보정하지 않을 수 있다. 또한, 프로세서(210)는 촬영된 이미지에 대하여 보정할 때는 입술 영역에 대한 보정 마스크의 값을 '0.35'로 결정(또는 제한)할 수 있다. 입술 영역에 대한 보정값을 '0.35' 이상을 갖도록 결정(제한)할 수 있다. 이 경우, 프로세서(210)는 입술 영역에 대해서 조금(예: 0.35 만큼) 보정할 수 있다.
또한, 사용자가 프리뷰 이미지에 대하여 보정을 요청한 경우(이하, '프리뷰 이미지 보정'), 프로세서(210)는 피부 가이드 마스크, 형상 가이드 마스크, 엣지 가이드 마스크, 오브젝트 가이드 마스크를 적용하여 각 픽셀에 대한 값을 검출할 수 있다. 프로세서(210)는 피부 가이드 마스크를 기본으로 하여, 형상 가이드 마스크를 적용한 값 이하의 값을 갖도록 제한 할 수 있다. 또한, 프로세서(210)는 상기 이미지 내 얼굴 영역에 엣지 가이드 마스크를 적용하여, 엣지(예: 경계 부분, 윤곽선) 영역에 해당하는 값을 검출할 수 있다. 프로세서(210)는 검출된 값(예: 0.9)이 제3 임계치(예: 0.4) 이상이면, 상기 엣지 영역에 해당하는 값을 '0.35'으로 결정(제한)할 수 있다. 이 경우, 엣지 영역에 해당하는 보정 마스크의 값은 '0.35'가 되어, 프로세서(210)는 엣지 영역에 대해서 조금(예: 0.35 만큼) 보정할 수 있다. 또한, 프로세서(210)는 상기 얼굴 영역에 오브젝트 가이드 마스크를 적용하여 눈 및 눈썹 영역에 해당하는 값을 검출하고, 검출된 값을 '0.35'이하로 결정(또는 제한)하고, 코 및 입 영역에 해당하는 값을 검출하고, 검출된 값을 '0.5' 이하로 결정(제한)할 수 있다.
또한, 사용자가 이미지의 밝기 보정을 요청한 경우(이하, '밝기 보정'), 프로세서(210)는 배경 가이드 마스크, 피부 가이드 마스크, 형상 가이드 마스크, 오브젝트 가이드 마스크를 적용하여 각 픽셀에 대한 값을 검출할 수 있다. 캡쳐 이미지 보정 마스크와 동일하게 피부 가이드 마스크 배경 가이드 마스크를 이용하여 구한 보정 마스크 값이 제4 임계치를 초과하면 보정 마스크의 값을 1로 결정하고, 제4 임계치 미만이면, 밝기 보정 마스크의 값을 0으로 결정할 수 있다. 또한, 프로세서(210)는 오브젝트 가이드 마스크를 이용하여 눈, 눈썹, 코, 입 영역에 해당하는 값을 '0.7' 이상으로 결정할 수 있다.
또한, 사용자가 이미지에 대한 색상 변경을 요청한 경우(이하, '색상 변경'), 프로세서(210)는 배경 가이드 마스크, 피부 가이드 마스크, 형상 가이드 마스크, 오브젝트 가이드 마스크를 적용하여 각 픽셀에 대한 값을 검출할 수 있다. 프로세서(210)는 캡쳐 이미지 보정 마스크를 기반으로 형상 가이드 마스크의 값 이하로 제한하고, 오브젝트 가이드 마스크의 눈 영역에 해당하는 값을 '0'으로 결정하고, 눈썹, 코, 입 영역에 해당하는 값을 '0.5' 이상으로 결정할 수 있다.
동작(1107)에서, 전자 장치(201)(예: 프로세서(210))는 상기 하나 이상의 가이드 마스크를 이용하여 결정된 영역별 값(예: 보정값)을 갖는 보정 마스크를 생성할 수 있다. 상기 값(또는 보정값)이 '1'이면 보정하고, '0'이면 보정하지 않을 수 있다. 예를 들어, 사용자가 이미 촬영된 이미지에 대하여 보정을 요청한 경우, 프로세서(210)는 피부 영역에 해당하는 픽셀의 값(예: 보정값)은 '1', 눈썹 영역에 대한 값은 ''0, 입술 영역에 대한 값은 '0.35'이상으로 정의한 캡쳐 이미지 보정 마스크를 생성할 수 있다.
또한, 사용자가 프리뷰 이미지에 대하여 보정을 요청한 경우, 프로세서(210)는 얼굴 영역 내 엣지 영역에 해당하는 값은 '0.35'이하, 눈 및 눈썹 영역에 해당하는 값은 '0.35' 이하, 코 및 입 영역에 해당하는 값은 '0.5' 이하로 정의된 프리뷰 이미지 보정마스크를 생성할 수 있다. 또한, 사용자가 이미지의 밝기 보정을 요청한 경우, 프로세서(210)는 캡쳐 이미지 보정 마스크를 기반으로 형상 가이드 마스크 및 오브젝트 가이드 마스크를 적용하여 밝기 보정 마스크를 생성할 수 있다. 또한, 사용자가 이미지에 대한 색상 변경을 요청한 경우, 프로세서(210)는 캡쳐 이미지 보정 마스크를 기반으로 이미지에 형상 가이드 마스크 및 오브젝트 가이드 마스크를 적용한 값을 검출하여 색상 보정 마스크를 생성할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 복수의 가이드 마스크들의 적어도 일부와 상기 얼굴 영역 중 피부 영역에 해당될 확률에 적어도 기반하여, 상기 피부 영역에 대한 이미지 처리 방법을 결정할 수 있다. 상기 피부 영역에 해당될 확률은 상기 이미지에 상기 피부 가이드 마스크를 적용하여 검출된 값이 임계치(예: 0.7) 이상인 영역을 피부 영역에 해당될 확률이 높은 것으로 판단할 수 있다. 만약, 상기 이미지에 상기 피부 가이드 마스크를 적용하여 검출된 값이 임계치(예: 0.7) 미만인 영역을 피부 영역에 해당될 확률이 낮은 것으로 판단할 수 있다. 상기 이미지 처리 방법은 상기 보정 마스크를 의미할 수 있다.
동작(1109)에서, 전자 장치(201)(예: 프로세서(210))는 보정 마스크에 기반하여 보정 영역을 검출할 수 있다. 여기에서, 보정 영역은 보정이 필요한 영역을 의미할 수 있다. 예를 들어, 상기 보정 영역은 얼굴 영역 또는 상기 얼굴 영역을 포함하는 피부 영역일 수 있다. 상기 피부 영역은 사용자의 얼굴 이외에 목, 손 등 피부 보정이 필요한 영역을 포함할 수 있다.
다양한 실시예들에 따른 전자 장치(201)(예: 프로세서(210))는 보정 영역 검출의 성능을 높이기 위해 반사광 검출 방법을 수행할 수 있다. 빛에 의해 나타나는 반사광 영역의 경우, 일반적인 피부 영역의 색상 및 밝기의 범위에 들어가지 않을 수 있다. 따라서, 반사광 영역의 경우 보정 영역 검출에서 제외되거나 확률이 낮게 나올 수 있다. 프로세서(210)는 이미지로부터 반사광 영역을 검출하여 피부 영역에 추가할 수 있다. 일반적으로, 반사광 영역에 해당하는 픽셀의 밝기는 255에 가까운 값을 가질 수 있고, 반사광 영역에 해당하는 픽셀의 색상은 약 128에 근접한 값을 가지게 된다. 프로세서(210)는 이미지 내 평균 밝기와 평균 색상 또는 이미지 내 얼굴 영역 내 평균 밝기와 평균 색상을 이용하여 반사광 영역을 검출할 수 있다.
예를 들어, 프로세서(210)는 이미지 내 픽셀당 밝기가 고정된 상수값에 곱해진 이미지의 평균 밝기보다 높은 영역이 검출되면, 검출된 영역을 반사광 영역으로 검출할 수 있다. 이는, 다음과 같은 수학식 1로 나타낼 수 있다.
Figure pat00001
Y는 이미지 내 픽셀당 밝기이고, k는 1.1보다 큰 상수값일 수 있다.
예를 들어, 프로세서(210)는 이미지 내 픽셀당 색상값의 범위를 고려하여 반사광 영역으로 검출할 수 있다. 이때, 프로세서(210)는 평균 색상값에 오차 범위를 반영하여 반사광 영역을 검출할 수 있다. 이는, 다음과 같은 수학식 3으로 나타낼 수 있다.
Figure pat00002
Margin은 오차 범위를 나타낼 수 있다.
프로세서(210)는 이미지 내 평균 색상값이 128을 초과하는 경우, 픽셀당 색상값 128 이상이고, 오차 범위를 적용한 평균 색상값보다 작은 영역이 검출되면, 반사광 영역으로 검출할 수 있다. 프로세서(210)는 이미지 내 평균 색상값이 128 이하인 경우, 오차 범위를 고려한 평균 색상값 이상이고, 오차 범위를 적용한 128보다 작은 영역이 검출되면, 반사광 영역으로 검출할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 수학식 1 및 수학식 2에서 모두 반사광 영역으로 검출된 영역을 반사광 영역으로 검출할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 얼굴 영역 중에서 한정된 영역에 대해서는 반사광이 검출되는지 여부를 판단할 수 있다. 예를 들어, 프로세서(210)는 가이드 마스크를 이용하여 검출된 얼굴 영역에 대하여 이마 및 코 영역에 대해서만 반사광이 있는지 검출할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 이미지 처리 방법을 이용하여, 상기 피부의 적어도 일부를 보정하도록 설정될 수 있다. 예를 들어, 프로세서(210)는, 상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 윤곽선 검출을 위한 가이드 마스크(예: 형상 가이드 마스크)를 이용하여 상기 복수의 오브젝트들의 윤곽선들을 포함하는 피부 영역을 인식할 수 있다. 예를 들어, 프로세서(210)는 상기 이미지에 상기 형상 가이드 마스크를 적용하여 검출된 값이 임계치(예: 0.3) 이상인 영역을 피부 영역으로 인식할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 필터를 이용하여 상기 복수의 오브젝트들의 윤곽선들에 해당될 확률이 낮은 피부 영역을 인식할 수 있다. 예를 들어, 프로세서(210)는 프리뷰 이미지 보정을 처리할 경우, 보정 시간이 얼마 없기 때문에, 단순 필터를 이용하여 빠른 시간 내에 보정 마스크를 생성할 수 있다. 이 경우, 프로세서(210)는 단순 필터를 이용하여 얼굴 윤곽선에 해당될 확률이 낮은 피부 영역을 인식하고, 윤곽선에 해당될 확률이 높은 피부 영역(예: 경계 부분, 얼굴 윤곽)이 희미하게 처리되지 않도록 제어할 수 있다. 예를 들어, 윤곽선에 해당될 확률이 낮은 피부 영역은 눈, 눈썹, 코, 입, 피부이고, 윤곽선에 해당될 확률이 높은 피부 영역은 얼굴 윤곽에 해당할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 이미지에 대한 보정 타입에 적어도 기반하여 상기 복수의 가이드 마스크들의 조합 법칙을 변경하고, 상기 변경된 조합 법칙에 적어도 기반하여 상기 얼굴을 구성하는 복수의 오브젝트들에 해당될 확률들을 결정하고, 상기 결정된 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정할 수 있다. 예를 들어, 상기 보정 타입이 캡쳐된 이미지인 경우, 프로세서(210)는 배경 가이드 마스크, 피부 가이드 마스크, 오브젝트가이드 마스크를 이용하여 상기 얼굴을 구성하는 복수의 오브젝트들에 해당될 확률들을 결정하고, 상기 결정된 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정할 수 있다.
도 12a는 다양한 실시예들에 따른 가이드 마스크 및 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12a를 참조하면, 전자 장치(201)(예: 프로세서(210))는 이미지(1210)로부터 오브젝트 가이드 마스크(1211), 형상 가이드 마스크(1213), 엣지 가이드 마스크(1215), 배경 가이드 마스크(1217) 또는 피부 가이드 마스크(1219)를 생성할 수 있다. 프로세서(210)는 오브젝트 가이드 마스크(1211), 형상 가이드 마스크(1213), 엣지 가이드 마스크(1215), 배경 가이드 마스크(1217) 또는 피부 가이드 마스크(1219)에 차등적으로 보정값을 주어 제1 보정 마스크(1220), 제2 보정 마스크(1230) 및 제3 보정 마스크(1240)를 생성할 수 있다. 제1 보정 마스크(1220)는 캡쳐된 이미지를 보정할 때 사용되는 것일 수 있다. 제2 보정 마스크(1230)는 프리뷰 이미지를 보정할 때 사용되는 것일 수 있다. 제3 보정 마스크(1240)는 이미지에 대한 밝기를 보정할 때 사용되는 것일 수 있다.
도 12b는 다양한 실시예들에 따른 캡쳐 이미지 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12b를 참조하면, 프로세서(210)는 오브젝트 가이드 마스크(1211), 배경 가이드 마스크(1217) 및 피부 가이드 마스크(1219)를 이용하여 제1 보정 마스크(1220)를 생성할 수 있다. 캡쳐된 이미지는 이미지를 많이 전처리 하지 않아도 이미지를 보정하는 시간이 프리뷰 이미지보다 많을 수 있다. 따라서, 프로세서(210)는 캡쳐된 이미지에 대해서는 간소하게 이미지 전처리 과정을 수행할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역 내 피부에 해당하는 영역(1221)에 대해서는 배경 가이드 마스크(1217)에 의해 검출된 값을 '0.3'으로 결정하고, 피부 가이드 마스크(1219)에 의해 검출된 값을 '0.9'로 결정할 수 있다. 이 경우, 임시 보정 마스크(1220-1)를 보면, 영역(1222)에 해당하는 값(예: 보정값)은 '1.0'이 되어, 프로세서(210)가 영역(1222)을 보정할 수 있다.
또한, 프로세서(210)는 눈썹 영역(1223)에 대해서 임시 보정 마스크(1220-1)의 값이 0.9를 가진 경우, 오브젝트 가이드 마스크(1211)를 이용하여 눈썹 영역(1223)에 대응하는 값을 0으로 결정할 수 있다. 이 경우, 제1 보정 마스크(1220)에서는, 눈썹 영역(1225)의 보정값은 '0'이 되어, 눈썹 영역(1225)은 보정되지 않을 수 있다. 또한, 프로세서(210)는 입술 영역(1224)에 대해서 임시 보정 마스크(1220-1)의 값이 0.1를 가진 경우, 오브젝트 가이드 마스크(1211)를 이용하여 입술 영역(1224)에 대응하는 값을 '0.35' 이상이 되도록 결정(제한)할 수 있다. 이 경우, 제1 보정 마스크(1220)에서는, 입술 영역(1226)의 보정값은 '0.35'가 되어, 입술 영역(1226)은 조금 보정될 수 있다.
도 12c는 다양한 실시예들에 따른 프리뷰 이미지 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12c를 참조하면, 프로세서(210)는 사용자가 프리뷰 이미지에 대하여 보정을 요청한 경우, 제2 보정 마스크(1230)를 생성할 수 있다. 제2 보정 마스크(1230)는 오브젝트 가이드 마스크(1211), 형상 가이드 마스크(1213), 엣지 가이드 마스크(1215), 및 피부 가이드 마스크(1219)를 이용하여 생성된 것일 수 있다. 프리뷰 이미지는 사용자에게 실시간으로 보정된 이미지를 제공하기 위해서 이미지를 보정하는데 걸리는 시간이 캡쳐된 이미지보다 짧을 수 있다. 다만, 얼굴 이미지에 대한 보정은 기본적으로 얼굴을 구성하는 눈, 코, 입은 선명하게 하고, 피부는 깨끗하고 매끄럽게 수행하는 것이므로, 프로세서(210)는 피부 가이드 마스크(1219)를 기본으로 하여 에지 영역(1231)에 대응하여 형상 가이드 마스크(1215)를 적용하여 검출된 값을 '0.35' 이하로 결정할 수 있다. 예를 들어, 프로세서(210)는 에지 영역(1231)에 형상 가이드 마스크(1215)를 적용하여 검출된 값(예: 0.9)이 제3 임계치(예: 0.4) 이상이면, 에지 영역(1231)에 대응하는 값을 '0.35'로 결정(제한)할 수 있다. 이 경우, 제2 보정 마스크(1230)에서는, 엣지 영역(1233)의 보정값은 '0.35'가 되어, 엣지 영역(1233)은 조금 보정될 수 있다. 또한, 프로세서(210)는 오브젝트 가이드 마스크(1211)를 적용하여 눈 및 눈썹 영역에 대응하는 값을 '0.35' 이하로 결정(또는 제한)하고, 코 및 입 영역에 대응하는 값을 '0.5' 이하로 결정(제한)할 수 있다.
도 12d는 다양한 실시예들에 따른 밝기 보정 마스크를 생성하는 일례를 도시한 도면이다.
도 12d를 참조하면, 프로세서(210)는 사용자가 이미지에 대하여 밝기 보정을 요청한 경우, 제3 보정 마스크(1240)를 생성할 수 있다. 제3 보정 마스크(1240)는 제1 보정 마스크(1220)를 기반으로 형상 가이드 마스크(1213)를 적용하여 생성된 것일 수 있다. 밝기 보정은 캡쳐된 이미지 또는 프리뷰 이미지에 대해서 밝기 보정을 위주로 보정할 것을 요청한 것일 수 있다. 밝기 보정의 경우, 피부뿐 아니라 눈, 코 입도 밝게 표현될 수 있다. 따라서, 프로세서(210)는 밝기 보정을 요청한 이미지에 대해서 제1 보정 마스크(1220)의 값이 제4 임계치를 초과하면, 제3 보정 마스크(1240)의 값을 '1'로 결정하고, 제4 임계치 미만이면, 제3 보정 마스크(1240)의 값을 '0'으로 결정할 수 있다. 예를 들어, 프로세서(210)는 상기 이미지에 각 가이드 마스크를 적용하여 제1 보정 마스크(1220)를 생성하고, 제1 보정 마스크(1220)의 값이 상기 이미지에 형상 가이드 마스크(1213)를 적용하여 검출된 값보다 크면, 제3 보정 마스크(1240)의 값을 형상 가이드 마스크(1213)의 값으로 변경할 수 있다. 예를 들어, 제1 보정 마스크(1220) 및 형상 가이드 마스크(1213)에서 배경 영역(1242)에 해당하는 값은 '0'이 되므로, 제3 보정 마스크(1240)의 값도 '0'이 될 수 있다. 또한, 제1 보정 마스크(1220) 및 형상 가이드 마스크(1213)에서 눈 영역(1241)에 해당하는 값은 '0.3'이 되어, 제3 보정 마스크(1240)의 값도 '0.3'이 될 수 있다.
이밖에도, 전자 장치(201)(예: 프로세서(210))는 이미지별 오브젝트 가이드 마스크(1211), 형상 가이드 마스크(1213), 엣지 가이드 마스크(1215), 배경 가이드 마스크(1217) 또는 피부 가이드 마스크(1219)를 생성하고, 오브젝트 가이드 마스크(1211), 형상 가이드 마스크(1213), 엣지 가이드 마스크(1215), 배경 가이드 마스크(1217) 또는 피부 가이드 마스크(1219)를 이용하여 다양한 형태의 보정 마스크를 생성할 수 있다.
도 13은 다양한 실시예들에 따른 보정 파라미터를 이용하여 얼굴 영역을 보정하는 방법을 도시한 흐름도이다. 도 13의 흐름도는 도 4의 동작(409)을 상세히 설명한 것이다. 도 13의 동작은 도 5 및 도 9의 동작과 동시에 수행되거나, 도 5 및 도 9의 동작 이후 또는 이전에 수행될 수 있다.
도 13을 참조하면, 동작(1301)에서, 전자 장치(201)(예: 프로세서(210))는 이미지와 연관된 정보를 획득할 수 있다. 상기 이미지와 연관된 정보는 카메라 하드웨어 정보, 특징점 정보 및 보정 영역 정보를 포함할 수 있다. 상기 카메라 하드웨어 정보는 상기 이미지 촬영 시, 카메라(예: 카메라 모듈(291))로부터 획득된 정보일 수 있다. 예를 들어, 상기 카메라 하드웨어 정보는 감도 레벨(ISO level), 휘도(luminance), 조도(illumination), 셔터 속도 중 적어도 하나를 포함할 수 있다. 상기 특징점 정보는 이미지로부터 추출되는 특징점에 대한 정보로서, 예를 들어, 도 4의 동작(403)에서 획득된 것일 수 있다. 상기 보정 영역 정보는 도 11에 의해 검출된 보정 영역에 대한 정보를 의미할 수 있다.
동작(1303)에서, 전자 장치(201)(예: 프로세서(210))는 정보에 기반하여 보정 파라미터를 설정할 수 있다. 상기 보정 파라미터는 이미지 보정 정도, 피부 영역 설정, 브라이트닝 보정 정도 조절 또는 눈 보정 영역 설정 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(210)는 카메라 하드웨어 정보(예: ISO level)를 이용하여 스무딩(smoothing)에서 노이즈 제거 정도를 설정할 수 있다. 상기 노이즈 제거 정도는 이미지 보정 정도를 의미할 수 있다. 프로세서(210)는 얼굴 크기를 이용하여 얼굴 영역 내의 스무딩 커널(smoothing kernel) 크기를 설정할 수 있다. 여기서, 상기 스무딩 커널 크기 설정이 피부 영역 설정을 의미할 수 있다. 프로세서(210)는 카메라 하드웨어 정보(예: 카메라 조도)를 이용하여 브라이트닝 보정 정도 조절할 수 있다. 프로세서(210)는 얼굴 특징점을 이용하여 눈 영역을 추정하고, 눈 영역에 눈 전용 보정 알고리즘을 적용할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 사용자 특성을 분석하고, 분석된 사용자 특정을 보정 파라미터 설정에 이용할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역에서 성별, 연령대, 피부색 등의 사용자 특성을 분석할 수 있다. 성별 또는 연령대에 따라 선호도가 다를 수 있고, 보정 정도, 보정할 범위 또는 영역이 다를 수 있다. 피부색은 백인, 황인, 흑인에 따라 다를 수 있기 때문에, 피부색 검출 방법이나 보정 방법이 다를 수 있다. 프로세서(210)는 사용자 특정을 이용하여 보정 파라미터를 설정할 수 있다.
동작(1305)에서, 전자 장치(201)(예: 프로세서(210))는 상기 설정된 보정 파라미터에 기반하여 보정 우선 순위를 결정할 수 있다. 프로세서(210)는 상기 보정 파라미터에 따라 전역적 보정을 먼저 수행할 지, 지역적 보정을 먼저 수행할지 여부를 결정할 수 있다. 예를 들어, 상기 전역적 보정은 얼굴 영역에 대하여 전체적인 보정을 수행하는 것을 의미하고, 상기 지역적 보정은 얼굴 영역에 대하여 일정 영역(예: 눈, 피부)에 대해서만 보정을 수행하는 것을 의미할 수 있다. 상기 보정 파라미터에는 사용자의 선호도, 특성 또는 보정 요청 사항 중 적어도 하나가 포함되어 있기 때문에, 프로세서(210)는 보정 파라미터에 따라 전역적 보정과 지역적 보정의 우선 순위를 결정함으로써, 보정 효과를 증대시킬 수 있다.
동작(1305)에서, 전자 장치(201)(예: 프로세서(210))는 상기 결정된 보정 우선 순위가 전역적 보정인지 여부를 판단할 수 있다. 프로세서(210)는 전역적 보정을 먼저 수행하는 경우 동작(1309)를 수행하고, 지역적 보정을 먼저 수행하는 경우 동작(1321)을 수행할 수 있다.
전역적 보정을 먼저 수행하는 경우, 동작(1305)에서, 전자 장치(201)(예: 프로세서(210))는 얼굴 영역에 대한 전역적 보정을 수행할 수 있다. 프로세서(210)는 상기 얼굴 영역에 대한 스무딩, 브라이트닝, 피부톤 변경 중 적어도 하나를 수행할 수 있다. 예를 들어, 프로세서(210)는 상기 얼굴 영역 전체적으로 피부를 매끄럽게 보이도록 보정하고(예: 스무딩), 밝게 처리하며(예: 브라이트닝), 피부톤을 변경(예: 핑크빛)할 수 있다.
동작(1305)의 전역적 보정이 완료되면, 동작(1311)에서, 전자 장치(201)(예: 프로세서(210))는 상기 얼굴 영역에 대한 지역적 보정을 수행할 수 있다. 상기 지역적 보정은 반사광 보정, 스팟 컨실링(spot concealing), 또렷한 눈 보정, 또는 영상 선명도 증가를 위한 엣지 향상 보정 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역을 각각 보정이 필요한 영역으로 분할하고, 분할된 영역에 대하여 서로 다른 보정 방법으로 적절하게 보정을 수행할 수 있다. 예를 들어, 프로세서(210)는 특징점을 이용하여 검출되는 눈 영역에 대하여 차이 향상(contrast enhancement) 알고리즘 또는 선명화(sharpening) 알고리즘을 적용하여 눈이 또렷하게 보이도록 보정할 수 있다. 프로세서(210)는 얼굴 영역 중 피부 영역에 대하여 다크 스팟이 검출되는지 판단하고, 다크 스팟이 검출된 영역에 대하여 다크 스팟이 검출된 영역의 주변 픽셀값으로 상기 다크 스팟이 검출된 영역을 채워주는 스팟 컨실링(spot concealing) 알고리즘을 적용하여 전역적 스무딩에서 제거되지 않는 잡티를 제거할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 이미지에서 반사광이 검출되는 경우, 전역적 보정 이후에 지역적 보정을 수행할 수 있다. 예를 들어, 프로세서(210)는 반사광 검출 영역에 대하여 스킨 브라이트닝 또는 컬러 변경과 같은 전역적 보정 처리로 인해 채도(saturation)가 변경될 수 있다. 이러한 단점을 보완하기 위하여, 프로세서(210)는 이미지에서 반사광이 검출되는 경우, 전역적 보정 이후에 지역적 보정으로 '반사광 보정 처리'를 수행할 수 있다.
다양한 실시예들에 따른 프로세서(210)는 상기 전역적 보정을 이용하여 상기 얼굴 영역에 대한 보정에 대한 제1 처리를 수행하고, 상기 지역적 보정을 이용하여 상기 제1 처리된 얼굴 영역에 대한 보정에 대한 제2 처리를 수행할 수 있다.
지역적 보정을 먼저 수행하는 경우 동작(1321)에서, 전자 장치(201)(예: 프로세서(210))는 상기 얼굴 영역에 대한 지역적 보정을 수행할 수 있다. 상기 지역적 보정에 대한 설명은 동작(1311)과 유사 또는 동일하므로, 자세한 설명을 생략할 수 있다. 동작(1321)의 지역적 보정이 완료되면, 동작(1323)에서, 전자 장치(201)(예: 프로세서(210))는 상기 얼굴 영역에 대한 전역적 보정을 수행할 수 있다. 지역적 보정에 대한 설명은 동작(1309)과 유사 또는 동일하므로, 자세한 설명을 생략할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 다크 스팟 컨실링과 눈 확대 보정에 대해서는 자연스러운 보정을 위해 전역적 보정 전에 수행할 수 있다. 예를 들어, 프로세서(210)는 다크 스팟 컨실링과 눈 확대 보정에 대한 전역적 보정이 완료되면, 스킨 스무딩과 같은 전역적 보정을 수행할 수 있다. 다양한 실시예들에 따른 프로세서(210)는 상기 지역적 보정을 이용하여 상기 얼굴 영역에 대한 보정에 대한 제1 처리를 수행하고, 상기 전역적 보정을 이용하여 상기 제1 처리된 얼굴 영역에 대한 보정에 대한 제2 처리를 수행할 수 있다.
도 14는 다양한 실시예들에 따른 보정 파라미터를 결정하는 일례를 도시한 도면이다.
도 14를 참조하면, 전자 장치(201)(예: 프로세서(210))는 이미지(1410)로부터 이미지와 연관된 정보(1420)를 획득할 수 있다. 이미지와 연관된 정보(1420)는 카메라 하드웨어(H/W) 정보(1421), 특징점 정보(1243) 및 보정 영역 정보(1425)를 포함할 수 있다. 프로세서(210)는 이미지와 연관된 정보(1420)를 이용하여 이미지 보정 처리(1430)를 수행할 수 있다. 이미지 보정 처리(1430)는 전역적 보정(1440)과 지역적 보정(1450)으로 구분할 수 있다. 전역적 보정(1440)은 스킨 스무딩(skin smoothing, 1441), 스킨 브라이트닝(skin brightening, 1443) 및 스킨 컬러 변경(skin color changing, 1445)을 포함할 수 있다. 지역적 보정(1450)은 반사광 보상(reflection compensation, 1451), 스팟 컨실러(dark spot concealer, 1453), 눈 확대(eye enhancement, 1455) 및 엣지 보존(edge preserving, 1457)을 포함할 수 있다. 프로세서(210)는 전역적 보정(1440)과 지역적 보정(1450)을 종합 처리(1460)하여 이미지를 보정할 수 있다. 프로세서(210)는 보정된 이미지(1470)를 디스플레이(예: 디스플레이(260))에 표시할 수 있다.
도 15는 다양한 실시예들에 따른 보정 파라미터를 이용하여 지역적으로 얼굴 영역을 보정하는 일례를 도시한 도면이다.
도 15를 참조하면, 전자 장치(201)(예: 프로세서(210))는 이미지 내 지역적 영역(1510)에 대해서 지역적 영역 카테고리(1520)를 구분할 수 있다. 예를 들어, 프로세서(210)는 보정 파라미터(1540)를 이용하여 지역적 영역 카테고리(1520)를 구분할 수 있다. 지역적 영역 카테고리(1520)는 비 피부 영역(1521) 및 피부 영역(1524)을 포함할 수 있다. 비 피부 영역(1524)은 눈 영역(1522)을 포함하고, 피부 영역(1524)은 엣지 영역(1523), 반사광 영역(1525) 및 다크 스팟 영역(1526)으로 구분할 수 있다. 프로세서(210)는 보정 파라미터(1540) 및 지역적 영역 카테고리(1520)에 기반하여 지역적 보정 처리(1530)를 수행할 수 있다. 예를 들어, 프로세서(210)는 눈 영역(1522)에 대하여 차이 향상(1531)을 적용하여 눈을 크게 확대 보정할 수 있다. 프로세서(210)는 엣지 영역(1523)에 대하여 차이 향상(1531) 및 엣지 보전(1533)을 적용하여 엣지 부분을 선명하게 하면서 자연스럽게 보이도록 보정할 수 있다. 프로세서(210)는 반사광 영역(1525)에 대하여 반사광 조절 알고리즘(1535)을 적용하여 보정 처리할 수 있다. 프로세서(210)는 다크 스팟 영역(1526)에 대하여 스팟 컨실링 알고리즘(1537)을 적용하여 보정 처리할 수 있다.
도 16은 다양한 실시예들에 따른 전역적 또는 지역적으로 얼굴 영역을 보정하는 일례를 도시한 도면이다.
도 16을 참조하면, 전자 장치(201)(예: 프로세서(210))는 얼굴 영역(1610)으로부터 지역적 보정이 필요한 영역을 검출할 수 있다. 프로세서(210)는 전역적 보정이 완료된 후 또는 전역적 보정 전에 얼굴 영역(1610)으로부터 지역적 보정이 필요한 영역을 검출할 수 있다. 프로세서(210)는 얼굴 영역(1610)에서 눈 영역(1611) 및 다크 스팟 영역(1613)을 지역적 보정이 필요한 영역으로 검출할 수 있다. 프로세서(210)는 눈 영역(1611)에 차이 향상 알고리즘을 적용할 수 있다. 보정된 눈 영역(1621)은 눈을 크고 선명하게 보이도록 보정된 것일 수 있다. 프로세서(210)는 다크 스팟 영역(1613)에 스팟 컨실링 알고리즘을 적용할 수 있다. 보정된 다크 스팟 영역(1623)은 다크 스팟을 블러 처리하여 희미하게 보이도록 보정된 것일 수 있다. 프로세서(210)는 보정된 이미지(1620)를 디스플레이(예: 디스플레이(260))에 표시할 수 있다.
도 17은 다양한 실시예들에 따른 얼굴 영역 보정 방법을 도시한 흐름도이다.
도 17을 참조하면, 동작(1701)에서, 전자 장치(201)(예: 프로세서(210))는 이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식할 수 있다. 상기 이미지는 전자 장치(201)의 카메라 모듈(예: 카메라 모듈(291))로부터 실시간으로 획득되는 프리뷰 이미지이거나, 메모리(예: 메모리(230))에 저장된 이미지일 수 있다. 프로세서(210)는 상기 이미지로부터 특징점을 추출하고, 추출된 특징점들을 이용하여 타원 영역을 형성하고, 형성된 타원 영역 중 큰 타원 영역에 해당하는 부분을 얼굴 영역으로 인식할 수 있다. 예를 들어, 프로세서(210)는 상기 추출된 특징점들 중에서 가장 중심에 위치하는 특징점(예: 코 특징점)으로부터 가장 먼 거리에 위치하는 특징점들을 하나의 선으로 이어 큰 타원 영역을 형성할 수 있다.
동작(1703)에서, 전자 장치(201)(예: 프로세서(210))는 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정할 수 있다. 상기 오브젝트는 얼굴을 구성하는 요소를 의미하는 것으로, 예를 들어, 눈썹, 눈, 코, 또는 입 중 적어도 하나일 수 있다. 프로세서(210)는 얼굴을 구성하는 요소의 특성을 이용하여 얼굴 영역 내 오브젝트를 설정할 수 있다. 프로세서(210)는 얼굴 영역 내 위치하는 특징점들을 이용하여 오브젝트의 속성(예: 눈썹, 눈, 코, 입), 형태(예: 모양) 또는 위치 중 적어도 하나를 분석할 수 있다. 동작(1703)은 도 4의 동작(407)과 동일 또는 유사하므로, 자세한 설명을 생략할 수 있다.
동작(1705)에서, 전자 장치(201)(예: 프로세서(210))는 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정할 수 있다. 사람의 얼굴은 타원형이므로, 프로세서(210)는 타원형에서 장축을 잇는 선을 기준선으로 설정할 수 있다. 예를 들어, 사람의 얼굴형에서 장축은 이마에서부터 턱으로 내려가는 수직 방향 또는 세로 방향을 의미할 수 있다. 예를 들어, 상기 기준선은 이마부터 눈썹 사이의 중앙점 및 코끝까지 이어지는 선일 수 있다. 또는, 상기 기준선은 이마부터 눈썹 사이의 중앙점 및 입의 중앙점까지 이어지는 선일 수 있다. 동작(1705)은 도 5의 동작(503)과 동일 또는 유사하므로 자세한 설명을 생략할 수 있다.
동작(1707)에서, 전자 장치(201)(예: 프로세서(210))는 상기 기준선을 기준으로 상기 얼굴 영역을 분할할 수 있다. 예를 들어, 프로세서(210)는 기준선을 기준으로 얼굴의 위(예: 이마)에서부터 아래(예: 턱) 방향으로 얼굴 영역을 분할할 수 있다. 프로세서(210)는 이마 및 눈을 포함하는 제1 영역, 코 및 입을 포함하는 제2 영역, 턱 부분을 포함하는 제3 영역으로 얼굴 영역을 분할할 수 있다. 영역을 분할하는 방법은 실시예에 따라 다양하게 구현될 수 있으며, 이하 설명에 의해 본 발명이 제한되는 것은 아니다.
동작(1709)에서, 전자 장치(201)(예: 프로세서(210))는 상기 분할된 얼굴 영역별 보정 비율을 계산할 수 있다. 얼굴 형상(또는 영역) 보정은 얼굴의 윤곽을 축소 보정하는 것을 의미할 수 있다. 프로세서(210)는 얼굴 전체적인 비율을 고려하여 얼굴의 윤곽을 축소하는 보정을 수행할 수 있다. 예를 들어, 프로세서(210)는 얼굴 영역을 이마 및 눈을 포함하는 제1 영역, 코 및 입을 포함하는 제2 영역, 턱 부분을 포함하는 제3 영역으로 분할한 경우, 제1 영역에 대한 보정 비율과, 제2 영역에 대한 보정 비율, 제3 영역에 대한 보정 비율을 각각 계산할 수 있다.
동작(1711)에서, 전자 장치(201)(예: 프로세서(210))는 상기 계산된 보정 비율에 적어도 기반하여 상기 얼굴 영역을 보정할 수 있다. 프로세서(210)는 분할된 영역별 보정 비율을 각각 다르게 적용하여 얼굴 영역을 보정할 수 있다. 또는, 프로세서(210)는 분할된 영역별 장축 방향 보정 비율과 단축 방향 보정 비율을 각각 적용하여 얼굴 영역을 보정할 수 있다. 프로세서(210)는 상기 보정 비율에 맞춰 해당하는 픽셀을 이동시켜 얼굴 영역을 보정할 수 있다. 예를 들어, 프로세서(210)는 얼굴을 좌, 우로 축소할 경우, 축소된 부분만큼 얼굴 영역의 외부 픽셀로 채울 수 있다. 또는, 프로세서(210)는 얼굴을 좌, 우로 확대하고, 위쪽으로 축소할 경우, 확대된 부분만큼 얼굴 경계 부분을 얼굴 영역에 포함된 픽셀로 채우고, 축소된 부분만큼 얼굴 영역의 외부 픽셀로 채울 수 있다.
동작(1713)에서, 전자 장치(201)(예: 프로세서(210))는 상기 보정된 이미지를 표시할 수 있다. 프로세서(120)는 동작(1701) 내지 동작(1711)을 수행하여 이미지를 보정한 후, 보정된 이미지를 디스플레이(260)에 표시할 수 있다. 사용자는 디스플레이(260)을 통해 표시된 이미지를 확인하고, 선택적으로 표시된 이미지를 저장할 수 있다. 프로세서(210)는 상기 사용자로부터 저장 요청(예: 저장 버튼 선택)이 있는 경우, 표시된 이미지를 메모리(230)에 저장할 수 있다.
다양한 실시예들에 따른 전자 장치의 동작 방법은 이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식하는 동작, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하는 동작, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하는 동작, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하는 동작, 상기 분할된 얼굴 영역별 보정 비율을 계산하는 동작, 상기 계산된 보정 비율에 적어도 기반하여 얼굴 영역을 보정하는 동작, 및 상기 보정된 이미지를 표시하는 동작을 포함할 수 있다.
상기 얼굴 영역은 타원형으로 인식되고, 상기 기준선은 상기 타원형 내 장축을 잇는 선으로 설정되고, 상기 방법은 상기 기준선을 이용하여 상기 얼굴 영역의 기울기를 판단하는 동작을 더 포함할 수 있다.
상기 계산하는 동작은, 상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 장축 방향으로 보정 비율을 계산하는 동작, 및 상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 단축 방향으로 보정 비율을 계산하는 동작을 포함할 수 있다.
상기 확대 비율을 계산하는 동작은, 상기 얼굴 영역의 전체 비율에 적어도 기반하여 상기 분할된 얼굴 영역별 보정 비율을 차등적으로 계산하는 동작을 포함할 수 있다.
상기 방법은 상기 하나 이상의 오브젝트들 중에서 눈 오브젝트에 대응하여 타원 영역을 형성하는 동작, 상기 타원 영역의 장축을 잇는 기준선을 설정하는 동작, 상기 설정된 기준선의 기울기에 적어도 기반하여 확대 비율을 계산하는 동작, 및 상기 계산된 확대 비율에 적어도 기반하여 상기 타원 영역을 확대하는 동작을 더 포함할 수 있다.
상기 확대 비율을 계산하는 동작은, 상기 타원 영역 내 눈동자 영역을 검출하는 동작, 및 상기 눈동자 영역의 크기, 기울기 방향, 또는 위치 중 적어도 하나에 기반하여 눈동자 영역에 대한 확대 비율을 계산하는 동작을 포함할 수 있다.
상기 방법은, 상기 타원 영역에 대한 확대 비율과 상기 눈동자 영역에 대한 확대 비율을 서로 다르게 적용하여 상기 눈 오브젝트를 보정하는 동작을 포함할 수 있다.
상기 방법은, 상기 이미지를 이용하여 적어도 하나의 가이드 마스크를 생성하는 동작, 상기 이미지의 보정 타입에 기반하여 상기 적어도 하나의 가이드 마스크의 적용 비율을 결정하는 동작, 결정된 적용 비율에 기반하여 보정 마스크를 생성하는 동작, 및 상기 보정 마스크에 기반하여 상기 얼굴 영역을 포함하는 보정 영역을 검출하는 동작을 더 포함할 수 있다.
상기 보정 영역을 검출하는 동작은, 상기 이미지 내 평균 밝기와 평균 색상 또는 상기 얼굴 영역 내 평균 밝기와 평균 색상을 이용하여 반사광 영역을 검출하는 동작, 및 상기 검출된 반사광 영역을 상기 보정 영역에 포함하는 동작을 포함할 수 있다.
상기 보정 마스크를 생성하는 동작은, 상기 이미지의 보정 타입에 기반하여 상기 적어도 하나의 가이드 마스크에 차등적으로 적용 비율을 결정하는 동작, 상기 적용 비율을 상기 적어도 하나의 가이드 마스크에 적용시켜 상기 이미지의 보정 타입에 따라 서로 다른 상기 보정 마스크를 생성하는 동작을 포함할 수 있다.
상기 방법은, 상기 이미지와 연관된 정보를 이용하여 보정 파라미터를 설정하는 동작, 상기 설정된 보정 파라미터에 기반하여 보정 우선 순위를 결정하는 동작, 및 상기 보정 우선 순위에 기반하여 전역적 보정 또는 지역적 보정에 대한 처리를 수행하는 동작을 더 포함할 수 있다.
상기 수행하는 동작은, 상기 보정 파라미터에 적어도 기반하여 상기 전역적 보정 또는 상기 지역적 보정 중 어느 하나를 이용하여 상기 얼굴 영역에 대한 보정에 대한 제1 처리를 수행하는 동작, 및 상기 전역적 보정 또는 상기 지역적 보정 중 나머지 하나를 이용하여 상기 제1 처리된 얼굴 영역에 대한 보정에 대한 제2 처리를 수행하는 동작을 포함할 수 있다.
상기 수행하는 동작은, 상기 이미지의 얼굴 영역에 반사광이 검출되는 경우, 상기 전역적 보정 이후에 상기 지역적 보정을 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따른 컴퓨터로 판독 가능한 기록 매체는 이미지로부터 추출된 특징점에 기반하여 얼굴 영역을 인식하는 동작, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하는 동작, 상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하는 동작, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하는 동작, 상기 분할된 얼굴 영역별 보정 비율을 계산하는 동작, 상기 계산된 보정 비율에 따라 상기 얼굴 영역을 보정하는 동작, 및 상기 보정된 이미지를 표시하는 동작을 실행하기 위한 프로그램을 포함할 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
101: 전자 장치
110: 버스 120: 프로세서
130: 메모리 140: 프로그램
150: 입출력 인터페이스 160: 디스플레이
170: 통신 인터페이스

Claims (20)

  1. 전자 장치에 있어서,
    메모리;
    디스플레이;
    카메라; 및
    상기 메모리, 상기 디스플레이 또는 상기 카메라와 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
    이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식하고, 상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하고, 상기 하나의 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하고, 상기 기준선을 기준으로 상기 얼굴 영역을 분할하고, 상기 분할된 얼굴 영역별 보정 비율을 계산하고, 계산된 보정 비율에 적어도 기반하여 상기 얼굴 영역을 보정하고, 상기 보정된 이미지를 상기 디스플레이 표시하도록 설정된 전자 장치.
  2. 제1항에 있어서,
    상기 얼굴 영역은, 타원형으로 인식되고,
    상기 기준선은, 상기 타원형 내 장축을 잇는 선으로 설정되고,
    상기 프로세서는, 상기 기준선에 적어도 기반하여 상기 얼굴 영역의 기울기를 판단하도록 설정된 전자 장치.
  3. 제2항에 있어서, 상기 프로세서는,
    상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 장축 방향으로 보정 비율을 계산하고, 상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 단축 방향으로 보정 비율을 계산하도록 설정된 전자 장치.
  4. 제1항에 있어서, 상기 프로세서는,
    상기 얼굴 영역의 전체 비율에 적어도 기반하여, 상기 분할된 얼굴 영역별 보정 비율을 차등적으로 계산하도록 설정된 전자 장치.
  5. 제1항에 있어서, 상기 프로세서는,
    상기 하나 이상의 오브젝트들 중에서 눈 오브젝트에 대응하여 타원 영역을 형성하고, 상기 타원 영역의 기울기에 적어도 기반하여 확대 비율을 계산하고, 계산된 확대 비율에 적어도 기반하여 상기 타원 영역을 확대하도록 설정된 전자 장치.
  6. 제5항에 있어서, 상기 프로세서는,
    상기 타원 영역의 장축을 잇는 기준선을 설정하고, 설정된 기준선의 기울기를 판단하고, 상기 기준선의 기울기에 적어도 기반하여 확대 비율을 계산하도록 설정된 전자 장치.
  7. 제5항에 있어서, 상기 프로세서는,
    상기 타원 영역 내 눈동자 영역을 검출하고, 상기 눈동자 영역의 크기, 기울기 방향, 또는 위치에 적어도 기반하여 눈동자 영역에 대한 확대 비율을 계산하도록 설정된 전자 장치.
  8. 제7항에 있어서, 상기 프로세서는,
    상기 타원 영역에 대한 확대 비율과 상기 눈동자 영역에 대한 확대 비율을 서로 다르게 적용하여 상기 눈 오브젝트를 보정하도록 설정된 전자 장치.
  9. 제1항에 있어서, 상기 프로세서는,
    상기 이미지와 연관된 정보를 이용하여 보정 파라미터를 설정하고, 설정된 보정 파라미터에 적어도 기반하여 보정 우선 순위를 결정하고, 상기 보정 우선 순위에 적어도 기반하여 상기 얼굴 영역에 대한 전역적 보정 또는 지역적 보정에 대한 처리를 수행하도록 설정된 전자 장치.
  10. 제9항에 있어서, 상기 프로세서는,
    상기 보정 파라미터에 적어도 기반하여,
    상기 전역적 보정 또는 상기 지역적 보정 중 어느 하나를 이용하여 상기 얼굴 영역에 대한 보정에 대한 제1 처리를 수행하고,
    상기 전역적 보정 또는 상기 지역적 보정 중 나머지 하나를 이용하여 상기 제1 처리된 얼굴 영역에 대한 보정에 대한 제2 처리를 수행하도록 설정된 전자 장치.
  11. 제9항에 있어서, 상기 프로세서는,
    상기 이미지의 얼굴 영역에 반사광이 검출되는 경우, 상기 전역적 보정에 대한 처리를 수행한 후에 상기 지역적 보정에 대한 처리를 수행하도록 설정된 전자 장치.
  12. 전자 장치에 있어서,
    카메라; 및
    프로세서를 포함하고, 상기 프로세서는,
    상기 카메라를 이용하여, 얼굴이 포함된 이미지를 획득하고;
    상기 얼굴에 대한 검출 방법에 적어도 기반하여, 상기 얼굴과 관련된 복수의 가이드 마스크들을 생성하고;
    상기 복수의 가이드 마스크들의 적어도 일부와 상기 얼굴 중 피부에 해당될 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정하고; 및
    상기 결정된 이미지 처리 방법에 적어도 기반하여, 상기 피부의 일부를 보정하도록 설정된 전자 장치.
  13. 제12항에 있어서, 상기 프로세서는,
    상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중, 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 윤곽선 검출을 위한 가이드 마스크를 이용하여, 상기 복수의 오브젝트들의 윤곽선들을 포함하는 피부 영역을 인식하도록 설정된 전자 장치.
  14. 제12항에 있어서, 상기 프로세서는,
    상기 이미지 중 상기 피부의 적어도 일부가 보정된 얼굴에 대응하는 영역 중, 상기 얼굴을 구성하는 복수의 오브젝트들에 대응하는 영역에 대해 필터를 이용하여, 상기 복수의 오브젝트들의 윤곽선들에 해당될 확률이 낮은 피부 영역을 인식하도록 설정된 전자 장치.
  15. 제12항에 있어서, 상기 프로세서는,
    상기 이미지에 대한 보정 타입에 적어도 기반하여 상기 복수의 가이드 마스크들의 조합 법칙을 변경하고,
    상기 변경된 조합 법칙에 적어도 기반하여 상기 얼굴을 구성하는 복수의 오브젝트들에 해당될 확률들을 결정하고, 및
    상기 결정된 확률에 적어도 기반하여, 상기 피부에 대한 이미지 처리 방법을 결정하도록 설정된 전자 장치.
  16. 전자 장치의 동작 방법에 있어서,
    이미지로부터 추출된 특징점에 적어도 기반하여 얼굴 영역을 인식하는 동작;
    상기 얼굴 영역 내 하나 이상의 오브젝트들을 설정하는 동작;
    상기 하나 이상의 오브젝트들을 이용하여 상기 얼굴 영역 내 기준선을 설정하는 동작;
    상기 기준선을 기준으로 상기 얼굴 영역을 분할하는 동작;
    상기 분할된 얼굴 영역별 보정 비율을 계산하는 동작;
    상기 계산된 보정 비율에 적어도 기반하여 상기 얼굴 영역을 보정하는 동작; 및
    상기 보정된 이미지를 표시하는 동작을 포함하는 방법.
  17. 제16항에 있어서,
    상기 얼굴 영역은, 타원형으로 인식되고,
    상기 기준선은, 상기 타원형 내 장축을 잇는 선으로 설정되고,
    상기 기준선을 이용하여 상기 얼굴 영역의 기울기를 판단하는 동작을 더 포함하는 방법.
  18. 제17항에 있어서, 상기 계산하는 동작은,
    상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 장축 방향으로 보정 비율을 계산하는 동작; 및
    상기 얼굴 영역의 기울기에 적어도 기반하여 상기 얼굴 영역의 단축 방향으로 보정 비율을 계산하는 동작을 포함하는 방법.
  19. 제16항에 있어서,
    상기 적어도 하나의 오브젝트 중에서 눈 오브젝트에 대응하여 타원 영역을 형성하는 동작;
    상기 타원 영역의 장축을 잇는 기준선을 설정하는 동작;
    상기 설정된 기준선의 기울기에 따라 확대 비율을 계산하는 동작; 및
    상기 계산된 확대 비율에 기반하여 타원 영역을 확대하는 동작을 더 포함하는 방법.
  20. 제19항에 있어서, 상기 확대 비율을 계산하는 동작은,
    상기 타원 영역 내 눈동자 영역을 검출하는 동작; 및
    상기 눈동자 영역의 크기, 기울기 방향, 또는 위치 중 적어도 하나에 기반하여 눈동자 영역에 대한 확대 비율을 계산하는 동작을 포함하는 방법.
KR1020170038482A 2017-03-27 2017-03-27 얼굴 영상 보정 방법 및 이를 구현한 전자 장치 KR20180109217A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170038482A KR20180109217A (ko) 2017-03-27 2017-03-27 얼굴 영상 보정 방법 및 이를 구현한 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170038482A KR20180109217A (ko) 2017-03-27 2017-03-27 얼굴 영상 보정 방법 및 이를 구현한 전자 장치

Publications (1)

Publication Number Publication Date
KR20180109217A true KR20180109217A (ko) 2018-10-08

Family

ID=63864573

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170038482A KR20180109217A (ko) 2017-03-27 2017-03-27 얼굴 영상 보정 방법 및 이를 구현한 전자 장치

Country Status (1)

Country Link
KR (1) KR20180109217A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200042197A (ko) * 2018-10-15 2020-04-23 정원주 딥러닝을 이용한 얼굴 매칭 방법 및 장치
WO2020141754A1 (ko) * 2018-12-31 2020-07-09 이준호 안면착용 제품 추천 방법 및 그 장치
CN112991191A (zh) * 2019-12-13 2021-06-18 北京金山云网络技术有限公司 人脸图像增强方法、装置及电子设备
KR20220046982A (ko) * 2020-10-08 2022-04-15 주식회사 써머캣 이미지에 포함된 얼굴 윤곽을 보정하기 위한 장치 및 이의 작동 방법
KR20220060892A (ko) * 2020-11-05 2022-05-12 주식회사 에스원 열화상 센서를 이용한 체온 측정 방법 및 장치
KR102608777B1 (ko) * 2022-09-28 2023-12-04 주식회사 레코더즈 사용자의 프로필 이미지에 대한 자동화된 보정 서비스 제공방법, 장치 및 컴퓨터프로그램

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200042197A (ko) * 2018-10-15 2020-04-23 정원주 딥러닝을 이용한 얼굴 매칭 방법 및 장치
WO2020141754A1 (ko) * 2018-12-31 2020-07-09 이준호 안면착용 제품 추천 방법 및 그 장치
KR20200085723A (ko) * 2018-12-31 2020-07-15 이준호 안면착용 제품 추천 방법 및 그 장치
CN112991191A (zh) * 2019-12-13 2021-06-18 北京金山云网络技术有限公司 人脸图像增强方法、装置及电子设备
KR20220046982A (ko) * 2020-10-08 2022-04-15 주식회사 써머캣 이미지에 포함된 얼굴 윤곽을 보정하기 위한 장치 및 이의 작동 방법
KR20220060892A (ko) * 2020-11-05 2022-05-12 주식회사 에스원 열화상 센서를 이용한 체온 측정 방법 및 장치
KR102608777B1 (ko) * 2022-09-28 2023-12-04 주식회사 레코더즈 사용자의 프로필 이미지에 대한 자동화된 보정 서비스 제공방법, 장치 및 컴퓨터프로그램

Similar Documents

Publication Publication Date Title
KR102349428B1 (ko) 이미지 처리 방법 및 이를 지원하는 전자장치
KR102317820B1 (ko) 이미지 처리 방법 및 이를 지원하는 전자장치
US10917552B2 (en) Photographing method using external electronic device and electronic device supporting the same
KR102329862B1 (ko) 영상의 컬러 변환 방법 및 전자 장치
KR102401659B1 (ko) 전자 장치 및 이를 이용한 카메라 촬영 환경 및 장면에 따른 영상 처리 방법
KR20180003235A (ko) 전자 장치 및 전자 장치의 이미지 촬영 방법
US10410407B2 (en) Method for processing image and electronic device thereof
KR20180109217A (ko) 얼굴 영상 보정 방법 및 이를 구현한 전자 장치
US10460443B2 (en) Electronic device and method for applying correction scheme(s) to an image
KR20170097860A (ko) 디스플레이를 이용하여 이미지를 촬영하는 전자 장치 및 이미지 촬영 방법
KR20160144851A (ko) 이미지를 처리하는 전자 장치 및 그 제어 방법
KR20180013277A (ko) 그래픽 객체를 표시하기 위한 전자 장치 및 컴퓨터 판독 가능한 기록 매체
KR102359276B1 (ko) 전자 장치의 화이트 밸런스 기능 제어 방법 및 장치
KR20180024337A (ko) 곡선 표시 영역을 포함하는 디스플레이의 구동 방법과 이를 지원하는 디스플레이 구동 회로 및 이를 포함하는 전자 장치
KR20170092772A (ko) 이미지 처리장치 및 방법
KR20160149842A (ko) 영상 처리 방법 및 그 장치
KR102379898B1 (ko) 포커스에 대한 그래픽 인디케이터를 제공하는 전자 장치와 이의 동작 방법
KR20180013523A (ko) 이미지의 유사도에 기초하여 이미지들을 연속적으로 표시하는 방법 및 장치
KR20180014498A (ko) 텍스트의 시인성을 향상시키는 전자 장치와 이의 동작 방법
KR102434754B1 (ko) 전자 장치 및 전자 장치의 컨텐츠 표시 방법
KR102457247B1 (ko) 이미지를 처리하는 전자 장치 및 그 제어 방법
EP3280131B1 (en) Method of processing image and electronic device supporting the same
KR20180091380A (ko) 전자 장치 및 그의 동작 방법
KR102317624B1 (ko) 전자 장치 및 그의 이미지 처리 방법
KR102391490B1 (ko) 이미지 내의 오브젝트를 트래킹하기 위한 방법 및 그 전자 장치