Nothing Special   »   [go: up one dir, main page]

KR102558474B1 - 이미지를 표시하기 위한 방법 및 그 전자 장치 - Google Patents

이미지를 표시하기 위한 방법 및 그 전자 장치 Download PDF

Info

Publication number
KR102558474B1
KR102558474B1 KR1020160126874A KR20160126874A KR102558474B1 KR 102558474 B1 KR102558474 B1 KR 102558474B1 KR 1020160126874 A KR1020160126874 A KR 1020160126874A KR 20160126874 A KR20160126874 A KR 20160126874A KR 102558474 B1 KR102558474 B1 KR 102558474B1
Authority
KR
South Korea
Prior art keywords
image
cameras
camera
ray
image frames
Prior art date
Application number
KR1020160126874A
Other languages
English (en)
Other versions
KR20180036359A (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 삼성전자주식회사
Priority to KR1020160126874A priority Critical patent/KR102558474B1/ko
Publication of KR20180036359A publication Critical patent/KR20180036359A/ko
Application granted granted Critical
Publication of KR102558474B1 publication Critical patent/KR102558474B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/25Image signal generators using stereoscopic image cameras using two or more image sensors with different characteristics other than in their location or field of view, e.g. having different resolutions or colour pickup characteristics; using image signals from one sensor to control the characteristics of another sensor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/356Image reproducers having separate monoscopic and stereoscopic modes
    • H04N13/359Switching between monoscopic and stereoscopic modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)

Abstract

이미지를 표시하기 위한 방법 및 그 전자 장치가 제공된다. 본 발명의 일 실시 예에 따른 전자 장치의 동작 방법은, 각각의 상기 복수의 카메라들에 의해 캡쳐된 복수의 이미지 프레임들을 생성하는 동작과, 상기 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하는 동작과, 상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 동작과, 상기 적어도 하나의 정합 이미지의 일부를 표시하는 동작을 포함한다. 상술한 바와 같이 ODS(omni-directional stereoscopic) 투영(projection)을 적용함에 따라, 스티칭된 파노라마 이미지에서 시차(parallax)에 의한 스티칭 에러를 제거할 수 있고, 입체 영역과 평면 영역이 파노라마 이미지에서 연속적으로 변화할 수 있다.

Description

이미지를 표시하기 위한 방법 및 그 전자 장치{METHOD FOR DISPLAYING AN IMAGE AND AN ELECTRONIC DEVICE THEREOF}
본 발명은 전자 장치에 관한 것으로, 보다 상세하게는 전자 장치에서 이미지를 표시하기 위한 방법 및 장치에 관한 것이다.
정보 통신 기술과 반도체 기술 등의 눈부신 발전에 힘입어 전자 장치(예: 모바일 단말기)의 보급과 이용이 급속도로 증가하고 있다. 전자 장치가 광범위하게 보급됨에 따라, 전자 장치는 사용자에게 다양한 콘텐트를 제공하고 있다.
최근, 신체에 직접 착용될 수 있는 형태의 다양한 전자 장치들이 개발되고 있다. 이러한 웨어러블(Wearable) 전자 장치는, 예를 들어, 머리 착용형 장치(HMD; Head-Mounted Device), 스마트 안경(smart glass), 스마트 시계(smart watch), 스마트 밴드(wristband), 콘텍트 렌즈형 장치, 반지형 장치, 신발형 장치, 의복형 장치, 장갑형 장치 등을 포함할 수 있다. 이러한 웨어러블 전자 장치는 신체 또는 의복에 직접 착용되므로 이동성(portability) 및 사용자의 접근성(accessibility)을 비약적으로 향상시킬 수 있다.
상기 웨어러블 전자 장치의 다양한 예시 가운데 사용자의 두부(頭部)에 장착될 수 있는 HMD는, 사용자의 양안과 근접한 위치에 360도 파노라마 영상을 제공함으로써, 사용자에게 실감나는 영상을 제공할 수 있다.
본 발명의 다양한 실시 예들은 파노라마 이미지를 표시하기 위한 방법 및 그 전자 장치를 제공한다.
본 발명의 다양한 실시 예들은 360도 회전 이미지를 생성하기 위해 이미지 프레임들을 스티칭하는 방법 및 그 전자 장치를 제공한다.
본 발명의 다양한 실시 예들은 복수의 카메라에 의해 캡쳐된 이미지 프레임을 가상의 카메라가 캡쳐한 것처럼 변환하기 위한 방법 및 그 전자 장치를 제공한다.
본 발명의 다양한 실시 예들은 ODS(omni-directional stereoscopic) 투영(projection)에 따라 레이(ray)들을 워핑(warping)하는 방법 및 그 전자 장치를 제공한다.
본 발명의 다양한 실시 예들은 가상의 카메라의 관점에서 워핑된 레이를 캡쳐하기 위한 방법 및 장치를 제공한다.
본 발명의 일 실시 예에 따른 전자 장치의 동작 방법은, 각각의 상기 복수의 카메라들에 의해 캡쳐된 복수의 이미지 프레임들을 생성하는 동작과, 상기 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하는 동작과, 상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 동작과, 상기 적어도 하나의 정합 이미지의 일부를 표시하는 동작을 포함한다.
본 발명의 다른 실시 예에 따른 전자 장치는, 복수의 카메라들을 구비하고, 각각의 상기 복수의 카메라들에 의해 캡쳐된 복수의 이미지 프레임들을 생성하는 이미지 생성부와, 상기 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하고, 상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 제어부와, 상기 적어도 하나의 정합 이미지의 일부를 표시하는 디스플레이를 포함한다.
상술한 바와 같이 ODS(omni-directional stereoscopic) 투영을 적용함에 따라, 스티칭된 파노라마 이미지에서 시차(parallax)에 의한 스티칭 에러를 제거할 수 있고, 입체 영역과 평면 영역이 파노라마 이미지에서 연속적으로 변화할 수 있다.
도 1은 본 발명의 다양한 실시 예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 2는 본 발명의 다양한 실시 예들에 따른 전자 장치의 블록도를 도시한다.
도 3은 본 발명의 다양한 실시 예들에 따른 프로그램 모듈의 블록도이다.
도 4a는 본 발명의 다양한 실시 예들에 따른 카메라 모듈을 도시한다.
도 4b는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제1 정면 구조를 도시한다.
도 4c는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제2 정면 구조를 도시한다.
도 4d는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제3 정면 구조를 도시한다.
도 4e는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제4 정면 구조를 도시한다.
도 4f는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제5 정면 구조를 도시한다.
도 4g는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제6 정면 구조를 도시한다.
도 4h는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 측면 구조를 도시한다.
도 5는 본 발명의 다양한 실시 예들에 따른 전자 장치의 모듈들을 도식적으로 나타낸다.
도 6은 본 발명의 다양한 실시 예들에 따른 전자 장치의 기능적 블록 구조를 도시한다.
도 7은 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 레이(ray)들을 도시한다.
도 8은 본 발명의 다양한 실시 예들에 따라 카메라 모듈이 복수의 카메라들로 캡쳐한 이미지를 도시한다.
도 9는 본 발명의 다양한 실시 예들에 따라 이미지 프레임들의 스티칭 후 발생하는 시차(parallax) 문제를 나타내기 위한 도면이다.
도 10은 본 발명의 다양한 실시 예들에 따라 레이들의 워핑(warping)을 도시한다.
도 11은 본 발명의 다양한 실시 예들에 따라 워핑 후의 레이들을 도시한다.
도 12는 본 발명의 다양한 실시 예들에 따른 관점(view point)의 위치를 도시한다.
도 13은 본 발명의 다양한 실시 예들에 따라 깊이 값(depth)에 기반하여 레이를 워핑하는 방법을 도시한다.
도 14는 본 발명의 다양한 실시 예들에 따라 가상 카메라를 이용하여 이미지를 캡쳐하는 방법을 도시한다.
도 15는 본 발명의 다양한 실시 예들에 따라 가상 카메라들을 이용하여 생성된 정합 이미지를 표시하는 흐름도이다.
도 16은 본 발명의 다양한 실시 예들에 따라 워핑에 기반하여 이미지를 변환하는 흐름도이다.
도 17은 본 발명의 다양한 실시 예들에 따라 이미지 픽셀을 깊이 값을 계산하기 위한 도면이다.
도 18은 본 발명의 다양한 실시 예들에 따라 카메라 캘리브레이션(calibration)을 수행하기 위한 흐름도이다.
도 19는 본 발명의 다양한 실시 예들에 따라 이미지 프레임들을 스티칭(stitching)하는 흐름도이다.
도 20은 본 발명의 다양한 실시 예들에 따라 정합된 이미지를 도시한다.
도 21은 본 발명의 다양한 실시 예들에 따라 카메라의 고도 각과 카메라들의 관점간 거리의 관계를 도시한다.
이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다. 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "A 내지 B 하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "A 내지 B에 적합한," "A 내지 B 하는 능력을 가지는," "A 내지 B 하도록 변경된," "A 내지 B 하도록 만들어진," "A 내지 B 를 할 수 있는," 또는 "A 내지 B 하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "A 내지 B 하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "A 내지 B 할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "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), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하, 본 문서에서 사용되는 용어의 정의는 하기와 같다.
'관측 시야(field of view, FOV)'는 하나의 카메라가 관측할 수 있는 각도 범위를 의미한다. 각도 범위는 카메라의 광축을 기준으로 수평 방향의 각도 범위와 수직 방향의 각도 범위로 결정될 수 있다.
'이미지 프레임'이란 파노라마 이미지를 생성하기 위해 기본이 되는 이미지들을 의미한다. 다시 말해서, 복수 개의 이미지 프레임들이 정합되어 하나의 파노라마 이미지가 생성될 수 있다. 각각의 이미지 프레임들은 서로 다른 카메라를 통해 생성되거나, 하나의 카메라가 이동하면서 일정 시간 간격으로 캡쳐하는 것에 의해 생성될 수 있다. 복수 개의 이미지 프레임들 중 파노라마 이미지를 생성하기 위해 인접한 이미지 프레임들은 중복되는 오브젝트를 포함한다. 경우에 따라, 이미지 프레임은 '이미지', '기본 이미지', '로우(raw) 이미지' 등 다양하게 지칭될 수 있다.
'이미지 스티칭' 또는 '스티칭'이란 복수 개의 이미지 프레임들로부터 파노라마 이미지를 생성하기 위한 전반적인 동작을 의미한다. 예를 들어, 이미지 스티칭은 복수 개의 이미지 프레임들로부터 추출한 특징점들을 매칭(matching)하여 공통 영역이 중첩되도록 이미지 프레임들을 정렬하고, 정렬된 이미지 프레임들의 중첩 영역에서 경계를 결정하고, 결정된 경계를 기준으로 이미지에 대한 노출 및 색상 보상, 블렌딩 중 적어도 하나를 수행하는 것을 의미한다. 경우에 따라, 스티칭은 '결합', '합성', '조합', '정합' 등으로 다양하게 지칭될 수 있다.
도 1을 참조하여, 다양한 실시 예에서의, 네트워크 환경(100) 내의 전자 장치(101)가 기재된다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
다양한 실시 예들에 따르면, 프로세서(120)는 이미지 프레임들을 ODS(omni-directional stereoscopic) 투영(projection)에 따라 변환할 수 있다. 또한, 프로세서(120)는 변환된 이미지 프레임들을 스티칭하여 파노라마 이미지를 생성할 수 있다.
메모리(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)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
다양한 실시 예들에 따르면, 메모리(130)는 이미지 프레임들을 저장할 수 있고, 이미지 프레임들로부터 생성된 파노라마 이미지를 저장할 수 있다. 또한, 메모리(130)는 이미지를 캡쳐하기 위해 카메라에 요구되는 파라미터들을 저장할 수 있다.
미들웨어(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)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
다양한 실시 예들에 따르면, 디스플레이(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) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시 예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(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)의 블록도이다. 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP)(210), 통신 모듈(220), (가입자 식별 모듈(224), 메모리(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)는 이미지 프레임들을 ODS(omni-directional stereoscopic) 투영(projection)에 따라 변환할 수 있다. 또한, 프로세서(120)는 변환된 이미지 프레임들을 스티칭하여 파노라마 이미지를 생성할 수 있다.
통신 모듈(220)(예: 통신 인터페이스(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)와 기능적으로 또는 물리적으로 연결될 수 있다.
다양한 실시 예들에 따르면, 메모리(230)는 이미지 프레임들을 저장할 수 있고, 이미지 프레임들로부터 생성된 파노라마 이미지를 저장할 수 있다. 또한, 메모리(230)는 이미지를 캡쳐하기 위해 카메라에 요구되는 파라미터들을 저장할 수 있다.
센서 모듈(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)의 내부 또는 외부에 위치할 수 있다.
다양한 실시 예들에 따르면, 디스플레이(260)는 복수의 이미지 프레임들이 스티칭되어 생성된 파노라마 이미지를 표시할 수 있다.
인터페이스(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 등)를 포함할 수 있다.
다양한 실시 예들에 따르면, 카메라 모듈(2910)은 파노라마 이미지를 생성하기 위해 기초가 되는 이미지 프레임들을 캡쳐할 수 있다.
전력 관리 모듈(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))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
본 발명의 다양한 실시 예들에 따라 파노라마 이미지가 생성될 수 있다. 파노라마 이미지를 생성하기 위해 적어도 하나의 이미지 프레임을 생성하기 위한 장치가 필요하다. 적어도 하나의 이미지 프레임을 생성하기 위한 장치는 적어도 하나의 카메라를 포함하며, 바람직하게는 둘 이상의 카메라들을 포함한다. 적어도 하나의 이미지 프레임을 생성하기 위한 장치의 일 예가 이하 도 4a 내지 도 4h를 참고하여 설명된다.
도 4a는 본 발명의 다양한 실시 예들에 따른 카메라 모듈(410)을 도시한다.
도 4a에 따르면, 카메라 모듈(410)은 측면에 배치된 복수의 카메라들(430-1, 430-2, 430-3, 430-4) 및 윗면에 배치된 하나의 카메라(420)을 포함한다. 도시되지 아니하였으나, 카메라 모듈(410)은 측면에 복수의 카메라들(430-1, 430-2, 430-3, 430-4) 이외의 추가적인 카메라를 더 포함할 수 있다. 또한, 도 4a에 도시된 카메라들의 배치 및 개수는 예시적인 것이고, 카메라 모듈은 다른 배치 및 다른 수의 카메라들을 포함할 수 있다. 각각의 카메라들은 자신의 FOV 이내에서 입사되는 레이(ray)를 이미지 센서로 인식하고, 이미지 프레임을 생성할 수 있다. 카메라 모듈(410)의 세부 구조는 도 4b 내지 4g 및 도 4h에 도시된 바와 같으며, 카메라 모듈(410)은 반지름이 R이고 높이가 2h인 원기둥 형태로 근사 될(approximated) 수 있다. 본 발명의 다양한 실시 예에 따라, 카메라 모듈(410)의 높이는 편의를 위해 실제 높이(2h)가 아닌 h로 간주될 수 있다.
도 4b는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제1 정면 구조를 도시한다. 도 4b에서는 카메라들(430-1, 430-2, 430-3, 430-4)를 포함하여 카메라 모듈(410)의 측면 카메라들이 도시되어 있다. 예시적으로, 도 4b에 따르면 카메라 모듈(410)은 16개의 측면 카메라들을 포함한다. 16개의 측면 카메라들은 8개의 좌측 카메라들(left cameras) L1, L2, ..., L8 및 8개의 우측 카메라들(right cameras) R1, R2, ..., R8을 포함할 수 있다. 각각의 8개의 좌측 카메라들 L1 내지 L8은 입체적인 이미지를 생성하기 위해 각각의 8개의 우측 카메라들 R1 내지 R8에 대응된다. 즉, 입체 파노라마 이미지 중 좌측 파노라마 이미지는 좌측 카메라들 L1 내지 L8에 의해 캡쳐된 이미지 프레임들로부터 생성되고, 우측 파노라마 이미지는 우측 카메라들 R1 내지 R8에 의해 캡쳐된 이미지 프레임들로부터 생성된다. 각각의 좌측 카메라들 및 우측 카메라들에서 동일한 번호로 표기된 카메라들의 쌍은 대응되는 카메라들을 나타낸다. 이하, 본 개시에서 대응되는 카메라들의 쌍을 '입체 쌍(stereo pair)'이라 정의한다. 따라서, 도 4b에 따른 카메라 모듈(410)은 8개의 입체 쌍 카메라들을 구비한다. 일 예로서, 카메라 L-1(430-4)는 카메라 R2(430-1)과 입체 쌍을 구성하며, 입체 쌍을 구성하는 카메라들은 광축이 평행하도록 동일 평면 상에 배치된다.
도시된 것처럼, 카메라 L1(430-4)과 카메라 R1(430-1)은 동일한 물체에서 반사된 광선을 캡쳐할 수 있다. 이 때, 카메라 L1(430-4)과 카메라 R1(430-1)은 서로 다른 곳에 위치하므로, 물체를 기준으로 카메라 L1(430-4)과 카메라 R1(430-1)의 중심이 이루는 화각 차(dispairity)가 발생하게 된다. 사람의 양안 차에 의해 물체의 원근이 식별되는 것과 같이, 카메라 L1(430-4)과 카메라 R1(430-1)의 화각 차에 기반하여 생성된 이미지 프레임들로부터 물체의 원근이 식별될 수 있다. 다시 말해서, 입체 쌍을 구성하는 카메라들은 물체의 원근이 식별될 수 있는 이미지 프레임들을 생성할 수 있으며, 물체의 원근에 기반하여 입체 영상을 생성할 수 있다. 일 예로서, 카메라 L1(430-4)이 캡쳐한 이미지가 사용자의 좌측 눈을 통해 식별되도록 디스플레이되고, 카메라 R1(430-1)이 캡쳐한 대응되는 이미지가 사용자의 우측 눈을 통해 식별되도록 디스플레이될 경우, 사용자는 입체 영상을 감상할 수 있다.
카메라들 L1 내지 L8은 도 4b에 도시된 것과 같이 카메라 모듈(410)의 중심을 기준으로 원형으로 배치되었다. 따라서, 카메라들 L1 내지 L8은 카메라 모듈(410)을 기준으로 모든 방향에서 반사되는 광선을 캡쳐할 수 있고, 카메라들 L1 내지 L8로부터 생성된 이미지 프레임들은 스티칭되어 360도 파노라마 이미지를 생성할 수 있다. 카메라들 R1 내지 R8들 또한, 카메라 모듈(410)을 기준으로 모든 방향에서 반사되는 광선을 캡쳐할 수 있고, 카메라들 R1 내지 R8로부터 생성된 이미지 프레임들을 스티칭되어 360도 파노라마 이미지를 생성할 수 있다. 이하, 좌측 카메라들 L1 내지 L8로부터 생성된 360도 파노라마를 '좌측 파노라마'로, 우측 카메라들 R1 내지 R8로부터 생성된 360도 파노라마를 '우측 파노라마'로 정의한다.
카메라들 L1 내지 L8 및 R1 내지 R8에서, 입체 쌍을 구성하는 카메라들은 동일한 평면에서 일정한 거리를 두고 배치된다. 예를 들어, 각각의 카메라들 L1 내지 L8 및 R1 내지 R8, 카메라 모듈(410)의 윗면에는 카메라(420)가 배치된다.
카메라 모듈(410)에 배치된 측면 카메라들(L1 내지 L8, R1 내지 R8) 수평 방향으로 입사되는 모든 방향의 광선을 캡쳐할 수 있다. 그러나, 수직 방향에 대해서는 FOV의 제한으로 인해 측면 카메라들이 캡쳐할 수 없는 영역이 존재한다. 따라서, 측면 카메라들로부터 캡쳐된 이미지 프레임들로부터 생성된 360도 파노라마 이미지는 측면 카메라의 FOV를 벗어나는 영역은 커버하지 못한다. 이와 같이, 윗면에 배치된 카메라(420)는 측면 카메라들이 캡쳐할 수 없는 수직 방향의 영역을 커버하기 위해 배치되었다. 도 4h에 따르면, 카메라(420)은 카메라 중심으로부터 h 만큼 떨어진 곳에 배치되었다. 또한, 각 측면 카메라에서 중심간 거리(R)는 9.1cm일 수 있다. 또한, 각각의 카메라 L1 내지 L8 및 R1 내지 R8은 카메라 모듈의 중심으로부터 카메라의 중심 방향(이하, 중심선(radial line) 방향이라 한다)에서 광축이 일정한 각도(α)를 이루도록 회전되었다. 구체적으로, 각각의 좌측 카메라 L1 내지 L8은 중심선 방향에서 광축이 시계 방향으로 각도 α 만큼 회전되었고, 각각의 우측 카메라 R1 내지 R8은 중심선 방향에서 광축이 시계 반대 방향으로 α만큼 회전되었다. 일 예로서, α=33.75˚일 수 있다. 그러나, 상술한 카메라 모듈(410)의 파라미터들 R 및 α의 값은 예시적인 것이고, 카메라 모듈(410)은 다른 값의 파라미터를 가질 수 있다.
도 4b에 도시된 카메라 모듈(410)의 구성은 예시적인 것이고, 카메라 모듈(410)은 도 4b에 도시된 것과 다른 구성을 가질 수 있다. 도 4b에 따르면, 카메라 모듈(410)은 8개의 좌측 카메라들(L1, L2, ..., L8 ) 및 8개의 우측 카메라들(R1, R2, ..., R8)을 포함하나, 이는 예시적인 것이고, 카메라 모듈(410)는 다양한 수의 측면 카메라들을 포함할 수 있다. 다양한 수의 측면 카메라들을 포함하는 카메라 모듈(410)의 구성은 도 4c 내지 4g에 예시적으로 도시되었다.
다양한 실시 예들에 따른 카메라 모듈(410)의 구성은, 도 4c에 도시된 것과 같이 4개의 측면 카메라들을 포함할 수 있다. 도 4c는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제2 정면 구조를 도시한다. 도 4c에 따르면, 4개의 측면 카메라들은 2개의 좌측 카메라들(L1, L2)과, 2개의 우측 카메라들(R1¸R2)을 포함할 수 있다. 각 카메라의 수평 FOV는 180˚보다 클 수 있다. 좌측 카메라들 및 우측 카메라들에서 동일한 번호가 표기된 카메라 쌍은 입체 쌍을 구성할 수 있다. 따라서, 카메라 모듈(410)이 도 4c에 도시된 것과 같은 구성을 가지는 경우 카메라 모듈(410)은 2개의 입체 쌍 카메라를 이용하여 360도 입체 파노라마 이미지를 생성할 수 있다.
다양한 실시 예들에 따른 카메라 모듈(410)의 구성은, 도 4d에 도시된 것과 같이 6개의 측면 카메라들을 포함할 수 있다. 도 4d는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제3 정면 구조를 도시한다. 도 4d에 따르면, 6개의 측면 카메라들은 3개의 좌측 카메라들(L1, L2, L3)과, 3개의 우측 카메라들(R1¸R2, R3)을 포함할 수 있다. 각 카메라의 수평 FOV는 120˚보다 클 수 있다. 좌측 카메라들 및 우측 카메라들에서 동일한 번호가 표기된 카메라 쌍은 입체 쌍을 구성할 수 있다. 따라서, 카메라 모듈(410)이 도 4d에 도시된 것과 같은 구성을 가지는 경우 카메라 모듈(410)은 3개의 입체 쌍 카메라를 이용하여 360도 입체 파노라마 이미지를 생성할 수 있다.
다양한 실시 예들에 따른 카메라 모듈(410)의 구성은, 도 4e에 도시된 것과 같이 8개의 측면 카메라들을 포함할 수 있다. 도 4e는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제4 정면 구조를 도시한다. 도 4e에 따르면, 8개의 측면 카메라들은 4개의 좌측 카메라들(L1, L2, L3, L4)과, 3개의 우측 카메라들(R1¸R2, R3, R4)을 포함할 수 있다. 각 카메라의 수평 FOV는 90˚보다 클 수 있다. 좌측 카메라들 및 우측 카메라들에서 동일한 번호가 표기된 카메라 쌍은 입체 쌍을 구성할 수 있다. 따라서, 카메라 모듈(410)이 도 4e에 도시된 것과 같은 구성을 가지는 경우 카메라 모듈(410)은 4개의 입체 쌍 카메라를 이용하여 360도 입체 파노라마 이미지를 생성할 수 있다.
다양한 실시 예들에 따른 카메라 모듈(410)의 구성은, 도 4f에 도시된 것과 같이 12개의 측면 카메라들을 포함할 수 있다. 도 4f는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제5 정면 구조를 도시한다. 도 4f에 따르면, 12개의 측면 카메라들은 6개의 좌측 카메라들(L1, L2, L3, L4, L5, L6)과, 6개의 우측 카메라들(R1¸R2, R3, R4, R5, R6)을 포함할 수 있다. 각 카메라의 수평 FOV는 60˚보다 클 수 있다. 좌측 카메라들 및 우측 카메라들에서 동일한 번호가 표기된 카메라 쌍은 입체 쌍을 구성할 수 있다. 따라서, 카메라 모듈(410)이 도 4f에 도시된 것과 같은 구성을 가지는 경우 카메라 모듈(410)은 6개의 입체 쌍 카메라를 이용하여 360도 입체 파노라마 이미지를 생성할 수 있다.
다양한 실시 예들에 따른 카메라 모듈(410)의 구성은, 도 4g에 도시된 것과 같이 10개의 측면 카메라들을 포함할 수 있다. 도 4g는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 제6 정면 구조를 도시한다. 도 4g에 따르면, 10개의 측면 카메라들은 5개의 좌측 카메라들(L1, L2, L3, L4, L5)과, 5개의 우측 카메라들(R1¸R2, R3, R4, R5)을 포함할 수 있다. 각 카메라의 수평 FOV는 72˚보다 클 수 있다. 좌측 카메라들 및 우측 카메라들에서 동일한 번호가 표기된 카메라 쌍은 입체 쌍을 구성할 수 있다. 따라서, 카메라 모듈(410)이 도 4g에 도시된 것과 같은 구성을 가지는 경우 카메라 모듈(410)은 5개의 입체 쌍 카메라를 이용하여 360도 입체 파노라마 이미지를 생성할 수 있다.
도 4b 내지 도 4g에 도시된 카메라 모듈(410)의 구성은 예시적인 것이고, 카메라 모듈(410)의 구성은 이에 제한되지 않는다. 카메라 모듈(410)은 360도 입체 파노라마 이미지를 생성하기 위해 다양한 수의 측면 카메라들을 포함할 수 있으며, 카메라의 배치 또한 도 4c 내지 도 4g에 도시된 것과 상이할 수 있다.
카메라 모듈(410)은 측면 카메라들뿐만 아니라 윗면에도 카메라를 포함할 수 있다. 본 발명의 다양한 실시 예들에 따르면, 카메라 모듈(410)의 윗면에는 도 4h에 도시된 것처럼 하나의 카메라가 배치될 수 있다. 도 4h는 본 발명의 다양한 실시 예들에 따른 카메라 모듈의 측면 구조를 도시한다. 도 4h에 따르면 윗면 카메라(420)는 중심으로부터 h만큼 떨어진 거리에 배치되었다. 일 예로, h=1.9cm일 수 있다. 그러나, 이는 예시적인 것이고, 파라미터 h는 다른 값일 수 있다. 각각의 도 4b 내지 도 4g에 도시된 카메라 모듈(410)의 구조에 대해, 윗면 카메라(420)는 도 4h에 도시된 것과 같이 카메라 모듈(410)의 윗면에 배치될 수 있다. 또한, 윗면 카메라(420)는 카메라 모듈(410)이 도 4b 내지 도 4g에 도시된 구조와 다른 구조를 갖는 경우에도, 도 4h에 도시된 것과 같이 카메라 모듈(410)의 윗면에 배치될 수 있다.
도 4h에 따른 카메라 모듈(410)의 윗면에는 하나의 카메라(420)가 배치되므로, 적어도 두 개의 카메라에 의한 화각 차이에 따른 물체의 원근이 식별될 수 없다. 다시 말해서, 카메라(420)에 의해 제공되는 수직 방향의 이미지 프레임은 입체 영상이 아닌, 2D 영상에 해당한다. 그러나, 카메라 모듈(410)의 윗면에 하나의 카메라(420)이 배치되는 것은 예시적인 것이고, 카메라 모듈(410)의 윗면에는 추가적인 카메라가 배치될 수 있다. 이 경우, 카메라(420) 및 추가적인 카메라에 의해 제공되는 수직 방향의 이미지 프레임은 입체 영상일 수 있다.
도 5는 본 발명의 다양한 실시 예들에 따른 전자 장치(201)의 모듈들을 도식적으로 나타낸다. 도 5는 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520)의 조합으로 구성되는 전자 장치(201)을 도시한다.
카메라 모듈(410)은 도 4a 내지 도 4h에서 설명된 것과 같은 구조를 가질 수 있고, 동작을 수행할 수 있다. 다시 말해서, 카메라 모듈(410)은 파노라마 이미지를 생성하기 위해 측면에 배치된 복수 개의 카메라들과 윗면에 배치된 카메라들을 이용하여 이미지 프레임들을 캡쳐할 수 있다.
연산 장치(510)는 카메라 모듈(410)으로부터 수신된 데이터 또는 디스플레이 장치(520)로부터 수신된 데이터에 대해 연산을 수행할 수 있다. 예를 들면, 연산 장치(520)는 카메라 모듈(410)로부터 수신된 이미지 프레임들을 스티칭하여 파노라마 이미지를 생성할 수 있고, 생성된 파노라마 이미지를 디스플레이 장치(520)에 송신할 수 있다. 또한, 연산 장치(510)는 디스플레이 장치(520)의 입력 인터페이스(예: 터치패드, 버튼)을 통해 감지된 사용자의 입력에 대한 정보를 수신할 수 있고, 디스플레이 장치(520)로부터 사용자의 움직임에 대한 센싱 정보를 수신할 수 있다.
디스플레이 장치(520)는 사용자에게 시각적인 이미지를 제공할 수 있다. 예를 들어, 디스플레이 장치는 사용자의 머리에 장착되는 웨어러블 장치일 수 있다. 이 경우, 디스플레이 장치(520)는 사용자의 머리에 고정되기 위해 스트랩(strap)을 포함할 수 있다. 또 다른 예로, 디스플레이 장치(520)는 웨어러블 장치와는 별개의 장치일 수 있다. 이 경우, 디스플레이 장치(520)는 웨어러블 장치와 결합을 위한 결착부(fastening unit)(414)(예: 클립, 홀, 덮게 등)를 포함할 수 있고, 디스플레이 장치(520)는 웨어러블 장치에 결합된 상태에서 사용자에게 이미지를 제공할 수 있다. 또한, 디스플레이 장치(520)는 디스플레이 장치(520)의 입력 인터페이스를 통해 사용자의 입력을 감지할 수 있고, 감지된 움직임에 대응하는 이미지를 표시할 수 있다. 사용자의 움직임에 대응하는 이미지를 제공하기 위해, 디스플레이 장치(520)는 적어도 하나의 센서(미도시)를 포함할 수 있다. 예를 들어, 적어도 하나의 센서는 사용자의 움직임과 관련이 있는 정보를 획득하기 위한 가속도계, GPS 수신부, 또는 다른 모션을 검출하기 위한 적어도 하나의 센서를 포함할 수 있다. 적어도 하나의 센서를 통해, 사용자의 머리의 움직임이 검출될 수 있다.
데이터 교환을 위해, 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520)는 통신을 수행할 수 있다. 예를 들면, 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520) 중 적어도 두 개의 장치는 유선 선로(예: 케이블)를 통해 통신을 수행하거나, 무선 채널을 통해 통신을 수행할 수 있다. 이를 위해, 각각의 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520)는 무선 통신을 위한 통신 모듈을 더 포함할 수 있다.
도 5를 참고하여 설명한 실시 예에서, 디스플레이 장치(520)는 연산 장치(520)로부터 수신한 파노라마 이미지를 표시할 수 있다. 그러나, 디스플레이 장치(520)는 이미지 프레임들을 수신하여 파노라마 이미지를 생성할 수도 있고, 자신이 생성한 파노라마 이미지를 표시할 수 있다. 이를 위해, 디스플레이(520)는 연산을 위한 독립적인 프로세서를 포함할 수 있다.
도 5를 참고하여 설명한 실시 예에서, 전자 장치(201)는 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520)의 조합이다. 그러나, 다른 실시 예에 따라, 전자 장치(201)는 카메라 모듈(410), 연산 장치(510) 중 적어도 하나가 이미지를 표시 및 연산을 수행하기 위해 필요한 구성 요소들을 모두 포함할 수 있다. 따라서, 이하 후술하는 다양한 실시 예들에서, 전자 장치(201)는 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520)의 조합이거나, 카메라 모듈(410), 연산 장치(510) 및 디스플레이 장치(520) 중 적어도 하나를 의미하는 장치일 수 있다.
도 6은 본 발명의 다양한 실시 예들에 따른 전자 장치의 기능적 블록 구조를 도시한다.
도 6에 따르면, 전자 장치(201)는 이미지 생성부(610), 제어부(620), 디스플레이(630) 및 저장부(640)을 포함한다.
이미지 생성부(610)는 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서, 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 이미지 생성부(610)는 파노라마 이미지를 생성하기 위한 이미지 프레임들을 생성할 수 있다. 이를 위해, 이미지 생성부(610)는 적어도 하나의 카메라를 이용하여 이미지 프레임을 캡쳐할 수 있다. 다양한 실시 예들에 따라, 이미지 생성부(610)은 카메라 모듈(410)을 포함할 수 있다. 이미지 생성부(610)는 카메라 모듈(410)의 복수 개의 카메라들을 이용하여 모든 방향에서 카메라 모듈(410)으로 입사되는 광선을 캡쳐할 수 있고, 이를 통해 360도 회전 이미지를 구성하기 위한 이미지 프레임들을 생성할 수 있다.
제어부(620)는 제어부(620)와 기능적으로 결합된 이미지 생성부(610), 디스플레이(630), 및 저장부(640)를 제어할 수 있다. 어떤 실시 예들에서는, 제어부(620)는 제어를 위한 최소한 하나의 마이크로프로세서(microprocessor) 또는 마이크로제어기(microcontroller)를 포함할 수 있다.
제어부(620)는 저장부(640)에 존재하는 다른 프로세스나 프로그램을 실행할 수 있다. 제어부(620)는 실행 프로세스에서 요구됨에 따라 데이터를 저장부(640)로 이동시키거나 불러올 수 있다. 어떤 실시 예들에서는, 제어부(620)는 OS에 기반하여 수신되는 신호에 응답하여 어플리케이션을 실행하도록 구성된다.
다양한 실시 예들에 따른 제어부(620)는, 복수 개의 이미지 프레임들로부터 파노라마 이미지를 생성하기 위한 연산을 수행할 수 있다. 이를 위해, 제어부(620)는 이미지 생성부(610)로부터 생성된 이미지 프레임들을 수신할 수 있다. 여기에서, 복수 개의 이미지 프레임들에 기반하여 생성된 이미지는 360도 회전 이미지일 수 있다. 또한, 제어부(620)는 생성된 파노라마 이미지에 대한 연산을 수행하여 파노라마 이미지를 적응적으로 변경할 수 있다. 예를 들어, 제어부(620)는 복수 개의 이미지 프레임들을 재정렬할 수 있다. 제어부(620)는 디스플레이(630)을 제어하여, 생성된 파노라마 이미지를 표시하도록 할 수 있다.
디스플레이(630)는 이미지, 그래픽, 텍스트 등을 포함하는 화면을 표시한다. 예를 들어, 디스플레이(630)는 액정(liquid crystal), 발광 다이오드(light emitting diode) 디스플레이 또는 다른 소재로 구성될 수 있다. 디스플레이(630)는 제어부(620)을 통해 수신된 데이터에 대응하는 화면을 표시할 수 있다. 또한, 디스플레이(630)는 사용자의 입력을 감지하기 위한 터치 스크린을 포함할 수 있다. 다양한 실시 예들에 따라, 디스플레이(510)는 디스플레이 장치(520)를 포함할 수 있고, 복수 개의 이미지 프레임들로부터 생성된 파노라마 이미지를 표시할 수 있다.
저장부(640)는 제어부(620)에 결합되어 있다. 저장부(640)의 일부는 임의 접근 기억장치(random access memory, RAM)을 포함할 수 있고, 저장부(640)의 또 다른 부분은 플래시 메모리(flash memory) 또는 다른 읽기용 기억장치(read-only memory, ROM)을 포함할 수 있다. 다양한 실시 예들에 따르면, 저장부(640)는 파노라마 이미지를 생성하기 위한 이미지 프레임들을 저장할 수 있다. 또한, 저장부(640)는 이미지 프레임들로부터 생성된 파노라마 이미지를 저장할 수 있다.
도 7은 본 발명의 다양한 실시 예들에 따른 카메라 모듈(410)의 레이들을 도시한다. 설명의 편의를 위해, 도 7에는 카메라 모듈(410)이 포함하는 복수의 카메라들(L1 내지 L8, R1 내지 R8)들 중 카메라 L1(430-4) 및 카메라 L2(430-2)만이 도시되었다. 그러나, 도 7에 도시되지 않은 카메라들 또한 하기에서 설명되는 카메라 L1(430-4) 및 카메라 L2(430-2)에 대한 동작을 동일하게 수행할 수 있다.
카메라 L-1(430-4) 및 카메라 L-2(430-2)는 각각 레이들(720) 및 레이들(710)을 캡쳐하여 파노라마 이미지를 구성하기 위한 이미지 프레임들을 생성한다. 도 7에서, 각각의 레이들(710, 720)을 구성하는 화살표는 화살표에 대응하는 방향에서 입사된 레이들을 나타낸다. 또한, 각각의 레이들(710, 720)을 구성하는 화살표들 중 가운데에 있는 화살표는 각각의 카메라 L1(430-4) 및 카메라 L2(430-2)의 광축 방향에서 입사된 레이(이하, '중심 레이(middle ray)'이라 한다)을 나타낸다. 각각의 카메라 L-1(430-4) 및 카메라 L-2(430-2)가 캡쳐한 이미지 프레임들은 파노라마 이미지에서 스티칭된 이미지 프레임들 중 인접하는 이미지 프레임들을 구성한다. 카메라 L-1(430-4)의 렌즈를 통해 입사되는 레이는 카메라 L1(430-4)의 이미지 센서에 투영(projection)되고, 카메라 L-1(430-4)은 투영에 의해 이미지 센서가 인식한 데이터에 기반하여 이미지 프레임을 생성할 수 있다.
도 7에 따르면, 각각의 레이들(720)을 나타내는 화살표는 모두 카메라 L1(430-4)의 렌즈가 위치하는 동일한 지점에서 시작(originate)한다. 다시 말해서, 카메라 L1(430-4)가 이미지 프레임을 생성하기 위해 캡쳐하는 레이들(720)은 모두 카메라 L1(430-4)의 렌즈로 모이게 된다. 카메라 L--2(430-2)가 이미지 프레임을 생성하기 위해 캡쳐하는 레이들(710) 또한 모두 카메라 카메라 L2(430-2)로 모이게 되며, 이는 도 7에서 레이들(710)을 나타내는 화살표가 모두 동일한 지점에서 시작하는 것으로 나타나 있다.
도 8은 본 발명의 다양한 실시 예들에 따라 카메라 모듈(410)이 복수의 카메라들로 캡쳐한 이미지(800)를 도시한다. 예를 들어, 이미지(800)는 카메라 모듈(410)이 캡쳐한 복수 개의 이미지 프레임들이 스티칭되어 좌측 파노라마 이미지를 평면으로 펼쳐놓은 이미지일 수 있다. 또한 영역(830)에서 각 번호(1 내지 n)에 해당하는 사각형은 카메라 모듈(410)의 각각의 좌측 카메라들(L1 내지 L8)이 캡쳐한 이미지 프레임에 대응될 수 있고, 영역(840)에 해당하는 사각형은 카메라 모듈(410)의 탑 카메라(420)가 캡쳐한 이미지 프레임에 대응될 수 있다. 이와 달리, 영역(830)에서 각 번호(1 내지 n)에 해당하는 사각형은 카메라 모듈(410)의 각각의 우측 카메라들(R1 내지 R8)이 캡쳐한 이미지 프레임에 대응될 수 있다. 다시 말해서, 카메라 모듈(410)의 좌측 카메라들(L1 내지 L8) 및 우측 카메라들(R1 내지 R8)은 각각 도 8에 도시된 이미지(800)과 같은 좌측 파노라마 이미지와 우측 파노라마 이미지를 구성하는 이미지 프레임들을 생성할 수 있다.
영역(830)에서, 각 번호의 해당하는 이미지 프레임에 대해, 입체 쌍을 구성하는 다른 카메라가 생성한 이미지 프레임이 존재한다. 예를 들어, 이미지(800)에서 번호 1에 해당하는 이미지 프레임이 카메라 L1(430-4)가 생성한 이미지 프레임인 경우, 우측 파노라마 이미지에 카메라 L1(430-4)과 입체 쌍인 카메라 R1(430-1)이 생성한 이미지 프레임이 존재한다. 다른 번호에 해당하는 이미지 프레임에 대해서도 마찬가지이며, 따라서 영역(830)은 각각의 입체 쌍을 구성하는 카메라들이 생성한 이미지 프레임들에 의해 사용자가 입체감을 느낄 수 있는 영역을 나타낸다.
반면, 영역(840)은 탑 카메라(420)이 생성한 이미지 프레임에 해당하는 부분이며, 탑 카메라(420)에 대해서는 입체 쌍이 존재하지 않으므로, 영역(840)에 대해서는 사용자가 입체감을 느낄 수 없다. 영역(850)은 카메라 모듈(410)에서 측면 카메라들이 커버할 수 있는 FOV 바깥의 아래 부분을 나타내며, 카메라 모듈(410)의 아랫면이 적어도 하나의 카메라도 포함하지 않는 경우, 블라인드 스팟(blind spot)일 수 있다.
도 8에 도시된 바와 같이, 이미지(800)는 사용자가 입체감을 느낄 수 있는 영역(830)과 그렇지 않은 영역들(840, 850)을 포함한다. 다양한 실시 예들에 따라, 사용자가 입체감을 느낄 수 있는 영역(830)은 3D(3 dimensional) 영역으로 지칭될 수 있고, 사용자가 입체감을 느낄 수 없는 영역(840)은 2D 영역으로 지칭될 수 있다. 3D 영역(830)과 2D 영역(840)은 경계(810, 820)를 통하여 구분되며, 사용자가 영역(830)에서 영역(840) 또는 영역(850)으로 시선을 이동할 경우, 사용자는 입체감의 변화를 느끼게 된다.
다양한 실시 예들에 따르면, 3D 및 2D는 불연속적이 개념이 아닐 수 있다. 예를 들어, 사용자가 영역(830)에서 영역(840)으로 시선을 옮겨 감에 따라, 사용자가 느끼는 입체감이 경계(810, 820)를 기준으로 급격하게 변하는 것이 아니라, 사용자가 느끼는 입체감은 경계(810, 820) 없이 3D에서 2D로 점진적(gradually)으로 변화할 수 있다. 또한, 앞서 설명된 바와 같이 측면 카메라들의 수에는 제한이 없으므로, 도 8에 도시된 바와 같이 영역(830)에서 각 카메라에 대응하는 이미지 프레임들의 수는 n값이 변해 감에 따라 다양해 질 수 있다. 여기에서, n은 2보다 크거나 같은 정수일 수 있다.
도 9는 본 발명의 다양한 실시 예들에 따라 이미지 프레임들의 스티칭 후 발생하는 시차(parallax) 문제를 나타내기 위한 도면이다. 도 9는 서로 다른 곳에 위치한 카메라들(910-1, 910-2) 각각이 근거리에 위치한 정지 오브젝트(920) 및 원거리에 위치한 정지 오브젝트(930)을 모두 캡쳐하는 상황을 예시한다.
*카메라(910-1)가 근거리 오브젝트(920) 및 원거리 오브젝트(930)을 캡쳐할 경우, 각각의 오브젝트들(920, 930)은 이미지 센서의 투영 평면(projection plane, 940-1)에 투영되고, 이미지 프레임(950-1)을 생성한다. 투영 결과에 따라, 이미지 프레임(950-1)에서 근거리 오브젝트(920)에 해당하는 이미지는 원거리 오브젝트(930)에 해당하는 이미지보다 상대적으로 오른쪽에 표시된다. 유사하게, 카메라(910-2)가 근거리 오브젝트(920) 및 원거리 오브젝트(930)을 캡쳐할 경우, 각각의 오브젝트들(920, 930)은 이미지 센서의 투영 평면(940-2)에 투영되고, 이미지 프레임(950-2)을 생성한다. 투영 결과에 따라, 이미지 프레임(950-2)에서 근거리 오브젝트(920)에 해당하는 이미지는 원거리 오브젝트(930)에 해당하는 이미지보다 상대적으로 왼쪽에 표시된다.
스티칭 과정에서, 이미지 프레임(950-1) 및 이미지 프레임(950-2)에서 특징 점들이 추출되고, 특징 점들 중 대응 점들에 기반하여 이미지 프레임들(950-1, 950-2)가 정렬된다. 다양한 실시 예들에 따라, 도 9에서는 이미지 프레임들(950-1, 950-2)에서 근거리 오브젝트(920)에 해당하는 픽셀들을 중심으로 특징 점들이 추출된 것을 가정한다. 이 경우, 이미지 프레임들(950-1, 950-2)는 도 9에 도시된 바와 같이 근거리 오브젝트(920)에 해당하는 픽셀들이 오버랩(overlap)되도록 정렬된다. 정렬된 이미지 프레임들(950-1, 950-2)은 심(960)을 기준으로 하나의 이미지로 결합된다. 결합된 이미지에서, 근거리 오브젝트(920)는 적절하게 표시되었으나, 원거리 오브젝트(930)에 해당하는 이미지는 각각 이미지 프레임(950-1) 및 이미지 프레임(950-2)에 해당하는 부분에서 근거리 오브젝트(920)에 해당하는 이미지의 좌측과 우측에 모두 표시되었다. 이와 같이, 동일한 오브젝트들을 서로 다른 위치의 카메라들에서 캡쳐할 경우 발생하는 시차에 의해 스티칭된 이미지에서 이중상이 생길 수 있다. 유사하게, 원거리 오브젝트(930)에 해당하는 픽셀들을 중심으로 특징 점들이 추출되어 이미지 프레임들(950-1, 950-2)이 정렬될 경우, 스티칭된 이미지에서 근거리 오브젝트(920)에 해당하는 이미지가 잘려서 보이거나(근거리 오브젝트 잘림), 아예 보이지 않을 수 있다.
카메라 L1(430-4)로부터 생성된 이미지 프레임 및 카메라 L2(430-2)로부터 생성된 이미지 프레임들을 스티칭하는 경우, 각각의 카메라들간 시차에 의해 왜곡이 존재할 수 있다. 또한, 입체성 유지(stereoscopic consistency)를 위해 동일한 입체 쌍에 속하는 좌측 카메라 및 우측 카메라가 생성한 아미지 프레임들을 대응시켜야 한다. 예를 들어, 동일한 물체가 두 개의 입체 쌍에 속하는 카메라들(L1, R1, 및 L2, R2)에 의해 캡쳐될 경우, 좌측 파노라마 및 우측 파노라마에서 동일한 입체 쌍에 속하는 카메라에 의해 캡쳐된 이미지 프레임들에 물체가 대응되어야 한다. 그렇지 않으면, 물체를 바라보는 사용자의 물체에 대한 깊이 인식이 나빠져서, 3D 품질이 저하될 수 있다.
상술한 바와 같이, 이미지 프레임들이 스티칭되어 생성된 파노라마 이미지에서는 근거리 오브젝트 잘림이나 이중상과 같은 스티칭 에러가 발생할 수 있고, 3D 영역과 2D 영역이 경계에 의해 불연속적으로 명확히 구분된다는 문제가 발생할 수 있다. 이러한 문제점들은, 도 7에 도시된 것과 같이 이미지 프레임들을 생성하기 위해 캡쳐되는 레이들이 복수의 카메라들 각각이 존재하는 몇 군데의 특정 위치로만 모이기 때문이며, 레이들을 캡쳐하기 위한 카메라들의 수가 증가할수록 그러한 문제점들이 덜 발생하게 된다. 그러나, 카메라들의 수를 증가시키는 것에는 한계가 있으며, 따라서 본 발명의 다양한 실시 예들은 제한된 수의 카메라들이 캡쳐한 레이들을 마치 다양한 위치들에 배치된 카메라들이 캡쳐한 것처럼 가상의 이미지 프레임을 생성하는 방법 및 그 전자 장치를 제공한다.
도 10은 본 발명의 다양한 실시 예들에 따라 레이들의 워핑(warping)을 도시한다. 설명의 편의를 위해, 도 10에는 카메라 모듈(410)이 포함하는 복수의 카메라들(L1 내지 L8, R1 내지 R8)들 중 카메라 L1(430-4) 만이 도시되었다. 그러나, 도 7에 도시되지 않은 카메라들 또한 하기에서 설명되는 카메라 L1(430-4)에 대한 동작을 동일하게 수행할 수 있다.
도 10에 도시된 바와 같이, 카메라 L1(430-4)는 레이들(1010)을 캡쳐하여 파노라마 이미지를 구성하기 위한 이미지 프레임을 생성한다. 도 10에서, 각각의 레이들(1010)을 구성하는 화살표는 화살표에 대응하는 방향에서 입사된 레이를 나타낸다. 카메라 L1(430-4)의 렌즈를 통해 입사되는 레이들(1010)은 카메라 L1(430-4)의 이미지 센서에 투영되고, 카메라 L1(430-4)은 투영에 의해 이미지 센서가 인식한 데이터에 기반하여 이미지 프레임을 생성할 수 있다.
즉, 카메라 L1(430-4)가 이미지 프레임을 생성하기 위해 캡쳐하는 레이들(1010)은 모두 카메라 L1(430-4)의 렌즈로 모이게 되며, 실제로 생성되는 이미지 프레임은 레이들(1010)에 기반하여 생성된다. 그러나, 카메라 L1(430-4)가 캡쳐한 레이들(1010)을 마치 다른 곳에 위치한 가상의 카메라들이 캡쳐한 것처럼 이미지 프레임을 변환하기 위해, 본 발명의 다양한 실시 예들은 레이의 워핑(warping)을 제안한다. 변환된 이미지 프레임은 가상의 카메라가 캡쳐한 것으로 볼 수 있으므로, 가상의 이미지 프레임으로 지칭될수 있다. 도 10에 도시된 것처럼, 레이들(1010) 워핑될 경우, 레이들(1010) 중 중심 레이를 제외한 나머지 레이들은 각각 해당하는 가상 카메라의 위치로 평행 이동된다. 워핑된 레이들(1020)에서, 각 레이를 나타내는 화살표의 시작점은 각 레이에 해당하는 가상 카메라의 위치를 나타내고, 화살표가 가리키는 방향은 해당 가상 카메라로 입사된 레이의 방향을 나타낸다. 즉, 하나의 카메라 L1(430-4)가 실제로 레이들(1010)을 캡쳐하여 이미지 프레임을 생성하나, 이미지 프레임은 마치 워핑된 레이들(1020)을 각각의 대응되는 가상 카메라들이 캡쳐하여 가상의 이미지 프레임을 생성한 것처럼 변환될 수 있다.
레이들(1010)이 평행 이동될 경우, 각 레이는 중심선 방향과 이루는 각도가 α가 되도록 워핑된다. 각 레이가 평행 이동되는 위치는 중심선 방향과 이루는 각도 α에 의해 결정될 수 있다. 다시 말해서, 레이들(1010) 중 워핑되는 레이가 카메라 L1(430-4)의 광축과 이루는 각도()가 정해지면, 워핑되는 레이는 중심선 방향과 이루는 각도가 α가 되도록 평행이동 되므로, 각도 에 따라 워핑되는 레이의 위치가 결정될 수 있다. 레이의 워핑에 의해, 최종적으로 생성되는 파노라마 이미지는 가상의 카메라들이 레이를 캡쳐하여 생성된 가상의 이미지 프레임들을 포함할 수 있다.
도 10은 카메라 L1(430-4)가 캡쳐하는 레이들이 워핑된 것을 도시하나, 카메라 모듈(410)이 포함하는 다른 카메라들이 캡쳐하는 레이들 또한 워핑될 수 있다. 도 11은 본 발명의 다양한 실시 예들에 따라 카메라 모듈(410)에 포함된 복수의 카메라들이 캡쳐한 레이들이 워핑된 후의 레이들을 도시한다. 좌측에 도시된 그림은 복수의 좌측 카메라들(L1 내지 L8)이 캡쳐하는 레이들이 워핑된 것을 도시하고, 우측에 도시된 그림은 복수의 우측 카메라들(R1 내지 R8)이 캡쳐하는 레이들이 워핑된 것을 도시한다. 전자 장치(201)는 복수의 좌측 카메라들(L1 내지 L8) 및 가상의 카메라들이 도 11의 좌측에 도시된 것과 같이 각각 대응하는 레이들을 캡쳐한 것처럼 이미지 프레임들을 변환하고(가상의 이미지 프레임 생성), 변환된 이미지 프레임들에 기반하여 좌측 파노라마를 생성할 수 있다. 또한, 전자 장치(201)는 복수의 우측 카메라들(R1 내지 R8)이 도 11의 우측에 도시된 것과 같이 각각 대응하는 레이들을 캡쳐한 것처럼 이미지 프레임들을 변환하고, 변환된 이미지 프레임들에 기반하여 우측 파노라마를 생성할 수 있다.
상술한 실시 예들에서, 복수의 카메라들(L1 내지 L8, R1 내지 R8) 및 다수의 가상 카메라들에 의해, 카메라 모듈(410)에서 실제의 복수의 카메라들(L1 내지 L8, R1 내지 R8)의 위치뿐만 아니라 다수의 가상 카메라들의 위치로 입사되는 모든 방향의 레이들이 캡쳐되어 이미지 프레임들을 생성할 수 있다. 이하, 상술한 바와 같이 레이들의 워핑에 따라 생성된 가상의 카메라를 이용하여 카메라 모듈(410)의 모든 방향으로 입사되는 레이들을 캡쳐하여 실제 카메라들(L1 내지 L8, R1 내지 R8)이 생성한 이미지 프레임에 재투영 시키는 것을 '전방향 입체(ODS, omni-directional stereo) 투영'이라 정의한다.
각각의 복수의 카메라들(L1 내지 L8, R1 내지 R8)이 캡쳐하는 레이들에서, 중심 레이를 제외한 각각의 레이들은 대응되는 위치의 가상 카메라에 의해 캡쳐되는 것으로 볼 수 있다. 다시 말해서, 카메라의 광축과 일정한 각도()를 이루는 레이는 워핑되어, 해당되는 위치의 가상의 카메라가 워핑된 레이 방향의 물체를 바라보고 캡쳐하는 것으로 볼 수 있다. 카메라가 물체를 바라보는 위치를 '관점(view)'이라 정의할 수 있으며, 본 발명의 다양한 실시 예들에서 관점은 실제 카메라들(L1 내지 L8, R1 내지 R8)의 위치로 고정된 것이 아니라, 레이가 실제 카메라의 광축과 이루는 각도 또는 레이의 방향에 따라 달라질 수 있다.
관점은 수평 방향의 각도()뿐만 아니라, 수직 방향의 고도 각()의 변화에 의해서도 달라질 수 있으며, 이는 도 12에서 보다 상세히 설명된다.
도 12는 본 발명의 다양한 실시 예들에 따른 관점의 위치를 도시한다.
도 12에 따르면, 입체 쌍을 구성하는 카메라들의 관점들(1240)은 각 카메라가 캡쳐하는 레이의 고도 각(1210)()에 따라 달라질 수 있다. 도 12에 도시된 화원(viewing circle)들은 각각 동일한 레이의 고도 각 에서 가능한 관점들의 집합을 나타낸다. 레이의 고도 각(1210) 가 90˚(천정 방향)에서 -90˚로 변함에 따라, 화원의 반지름 R'은 R'=R*cos()를 만족하도록 변경되고, 관점의 높이 h'는 h'= h*sin()를 만족하도록 변경된다. 따라서, 천정(=90˚)에서 R'= 0, h'= h 이므로, ODS 투영을 위한 관점은 정확히 탑 카메라(420)의 위치와 동일하게 될 수 있다.
화원의 반지름이 변함에 따라, 입체 쌍을 구성하는 카메라들의 관점간 거리(stereoscopic baseline) 또한 변할 수 있다. 관점간 거리가 짧아질수록 물체에 대한 화각이 줄어들어 원근이 상대적으로 식별되기 어려우므로, 관점간 거리는 3D 인식 정도와 관련이 있다. 구체적인 관점간 거리와 3D 인식 정도와의 관계는 도 21에서 보다 상세히 설명된다.
ODS 투영은 등장방형 구면 투영(equirectangular spherical projection)으로 간주될 수 있고, 관점이 바라보는 방향(viewing direction)은 수평 방향의 각도()와 수직 방향의 고도 각()에 기반하여 결정될 수 있다. 일 예로서, 수평 방향의 각도 의 범위는 [-180˚, 180˚]이고, 수직 방향의 고도 각 의 범위는 [-90˚, 90˚]일 수 있다. 그러나, 상술한 바와 같이, 관점은 단일 위치에 고정된 것이 아니라, 관점이 바라보는 방향의 수평 방향의 각도() 및 수직 방향의 고도 각()에 따라 변할 수 있다. 구체적으로, 관점은 하기의 <수학식 1>에 의해 결정될 수 있다.
여기에서, vp는 관점의 좌표(coordination), R은 카메라 모듈(410)의 반지름, h는 카메라 모듈(410)의 높이이며, R 및 h값은 미리 결정될 수 있다. 는 관점이 바라보는 방향의 수평 방향의 각도로서, 카메라가 캡쳐하는 레이가 카메라의 광축과 수평 방향으로 이루는 각도를 의미한다. 는 관점이 바라보는 방향의 수직 방향의 고도 각으로서, 카메라가 캡쳐하는 레이가 카메라의 광축과 수직 방향으로 이루는 각도를 의미한다. α는 카메라의 광축이 중심선 방향과 이루는 각도로, α 앞에 표기된 부호는 각각 좌측 카메라와 우측 카메라에 대응한다. 일 예로, +α는 좌측 카메라의 광축이 중심선 방향과 이루는 시계 방향의 각도를, -α는 우측 카메라의 광축이 중심선 방향과 이루는 반시계 방향의 각도를 의미할 수 있다. f는 고도각 에 곱해지는 계수로, 수직 방향의 3D 효과를 제한하기 위한 값을 의미한다. f값에 따른 3D 효과의 제한은 도 21에서 보다 상세히 설명된다.
ODS 투영이 적용됨에 따라, 카메라 모듈(410)을 구성하는 각 카메라가 캡쳐하는 레이들은 워핑되고, 전자 장치(201)는 워핑에 따라 변경된 관점에서 가상 카메라에 의해 캡쳐된 레이에 기반하여 실제 카메라가 캡쳐한 이미지 프레임을 변환하여야 한다. 가상 카메라에 의해 캡쳐된 레이가 어떤 실제의 물체에 해당하는 레이인지를 식별하기 위해, 가상 카메라에 대한 실제 물체의 위치(또는 좌표 값)이 결정되어야 한다. 이는 하기의 도 13에서 보다 상세히 설명된다.
가상 카메라에 의해 캡쳐된 레이에 대응하는 실제 물체의 위치를 결정하기 위해, 먼저 가상 카메라에 대한 실제 물체의 거리, 즉, 깊이(depth) 값이 결정되어야 한다. 가상 카메라에 대한 실제 물체의 깊이 값은, 실제 카메라에 대한 실제 물체의 깊이 값에 기반하여 쉽게 계산될 수 있다. 깊이 값을 결정하는 과정은 이하 도 13과 같다.
도 13은 본 발명의 다양한 실시 예들에 따라 깊이(depth) 값에 기반하여 레이를 워핑하는 방법을 도시한다.
도 13을 참고하면, 카메라 L1은 실제 카메라로서, 실제로 레이들을 캡쳐하여 이미지 프레임을 생성한다. 레이들은 카메라 L1의 광축과 이루는 수평 방향의 각도 및 수직 방향의 고도 각에 따라 워핑되고, 변경된 관점에서 가상 카메라가 워핑된 레이들을 캡쳐하여 가상의 이미지 프레임을 생성한 것처럼 이미지 프레임 또는 이미지 프레임의 일부가 변환된다. 그러나, 카메라 L1의 광축 방향으로 입사되는 중심 레이는 워핑되지 않으며, 중심 레이는 카메라 L1의 실제 위치(1310)을 관점으로 하여 캡쳐된다. 도 13에서는 예시적으로 카메라 L1의 광축과 이루는 수평 방향의 각도가 인 레이가 워핑되고, 워핑된 레이를 가상 카메라 L0가 가상 카메라 L0의 관점(1340)에서 캡쳐하는 것을 도시한다. 도 13에 따르면, 가상 카메라 L0가 캡쳐하는 워핑된 레이에 해당하는 물체는 물체 P(1370)이다. 그러나, 가상 카메라 L0는 실제로 카메라가 아니므로, 워핑된 레이에 해당하는 물체 P(1370)을 캡쳐할 수 없다. 대신, 실제의 카메라 L1이 물체 P(1370)을 캡쳐하는 것이며, 따라서 전자 장치(201)는 실제의 카메라 L1이 위치(1310)에서 실제 레이에 기반하여 캡쳐한 물체 P(1370)을 위치(1320)에서 가상의 카메라 L0가 캡쳐한 것처럼 변환하여야 한다(가상의 이미지 프레임 생성). 실제의 카메라 L1의 위치(1310)에 대한 물체 P(1370)의 깊이 값은 가상의 카메라 L0의 위치(1320)에 대한 물체 P(1370)의 깊이 값과 상이하다. 그러므로, 전자 장치(201)는 실제의 카메라 L1이 위치(1310)에서 물체 P(1370)에 대응하는 레이를 캡쳐하여 생성된 이미지 픽셀을, 가상의 카메라 L0의 위치(1320)에 대한 물체 P(1370)의 깊이 값에 기반하여 변환하여야 한다. 변환된 이미지 픽셀은 가상의 카메라 L0가 워핑된 레이를 캡쳐하여 생성된 이미지 픽셀로 볼 수 있다. 전자 장치(201)는 카메라 L1이 위치(1310)에서 워핑 전의 레이를 캡쳐하여 생성된 이미지 픽셀을, 가상 카메라 L0이 위치(1320)에서 워핑 후의 레이를 캡쳐하여 생성된 이미지 픽셀로 변환할 수 있다. 이를 통해, 카메라 L1이 실제로 광축과 이루는 수평 방향의 각도가 인 레이를 캡쳐하여 생성된 이미지 픽셀은, 해당 레이가 워핑되어 가상의 카메라에 의해 캡쳐될 때 생성되는 이미지 픽셀로 변환될 수 있다.
이미지 픽셀을 변환하기 위해, 먼저 가상의 카메라 L0가 캡쳐하는 물체 P(1370)가 카메라 L1이 생성한 이미지 프레임에서 어느 위치에 존재하는지가 식별 되어야 한다. 다시 말해서, 물체 P(1370)의 카메라 좌표가 식별 되어야 한다. 가상의 카메라 L0의 관점(1320)에서 물체 P(1370)에 대한 깊이 값이 d일 경우, 가상의 카메라 L0의 관점(1320)에 대한 물체 P(1370)의 위치(또는 좌표)는 하기의 <수학식 2>에 의해 계산될 수 있다.
여기에서, Pw는 결정된 관점(1320)에 대한 물체 P(1370)의 위치, d는 관점(1320)에 대한 물체 P(1370)의 깊이 값을 의미한다. 는 관점이 바라보는 방향의 수평 방향의 각도로서, 카메라가 캡쳐하는 레이가 카메라의 광축과 수평 방향으로 이루는 각도를 의미한다. 는 관점이 바라보는 방향의 수직 방향의 고도 각으로서, 카메라가 캡쳐하는 레이가 카메라의 광축과 수직 방향으로 이루는 각도를 의미한다.
카메라 변환 행렬(camera matrix)가 주어졌을 때, 전자 장치(201)는 상술한 <수학식 2>에 의해 계산된 물체 P(1370)의 좌표 Pw를 카메라 좌표계로 변환할 수 있다. 다시 말해서, 전자 장치(201)는 물체 P(1370)에 대해 카메라 투영(camera projection)하였을 때 획득되는 카메라 좌표 (u,v)를 계산할 수 있다. 해당 카메라 좌표는 실제의 카메라 L1이 생성한 이미지 프레임에서 가상 카메라 L0가 워핑된 레이에 따라 물체 P(1370)를 캡쳐하였을 때 생성된 적어도 하나의 이미지 픽셀을 나타낼 수 있다. 해당 이미지 픽셀은 가상의 카메라 L0에 대한 물체 P(1370)의 깊이 값(d)에 기반하여 변환되고, 실제의 카메라 L1이 워핑 전의 레이를 캡쳐하여 생성한 이미지 픽셀은 변환된 이미지 픽셀로 대치(replace)된다.
도 13에서, 각도 (1330)은 카메라 L1(1310)의 광축과 카메라 L1(1310)에서 물체 P(1370) 방향이 이루는 각도를 의미한다. (1350)는 카메라 L1(1310) 및 가상 카메라 L0(1320)이 물체 P(1370)에 대해 이루는 화각 차를 의미한다. 고도 각 이 0˚일 때, 화각 차 (1350)는 각도 (1330)와 워핑된 레이가 카메라 L1(1310)의 광축과 이루는 각도()의 차이로 정의될 수 있다. 물체 P(1370)가 멀리 떨어져 있을수록, 화각 차 (1350)는 줄어들게 되며, 물체 P(1370)가 가까이 있을수록, 화각 차 (1350)는 커지게 된다.
도 13에서는 하나의 레이가 워핑되는 경우만이 설명되었지만, 카메라 모듈(410)이 구비한 복수 개의 카메라들 모두가 캡쳐하는 레이들이 워핑될 수 있고, 상술한 연산들이 적용될 수 있다. 또한, 레이가 광축과 이루는 수직 방향의 각도 또한 이미지 픽셀의 변환을 위해 고려될 수 있다.
도 14는 본 발명의 다양한 실시 예들에 따라 가상 카메라를 이용하여 이미지를 캡쳐하는 방법을 도시한다.
레이(1410) 및 레이(1420)은 각각 실제의 카메라들이 화살표의 시작점에 해당하는 위치에서 캡쳐하는 중심 레이들일 수 있다. 중심 레이는 워핑되지 아니하며, 실제의 카메라들에 의해 캡쳐될 수 있다. 레이들(1430-1, 1430-2, 1430-3)은 워핑된 레이들에 해당하며, 화살표의 시작점에 해당하는 위치에서 가상의 카메라들에 의해 캡쳐되는 것으로 볼 수 있다. 모든 레이들은 카메라 모듈(410)이 구비한 실제의 카메라들에 의해 캡쳐되며, 워핑된 레이들(1430-1, 1430-2, 1430-3)은 실제의 카메라들이 캡쳐하여 생성된 이미지 프레임에서 가상 카메라들의 관점 및 깊이 값에 기반하여 변환된다. 실제 카메라들 및 가상 카메라들이 캡쳐한 레이들(1410, 1420, 1430-1, 1430-2, 1430-3)에 기반하여 물체(1450)에 대한 이미지 프레임이 생성되며, 실제 카메라들 및 가상 카메라들이 다양한 관점에서 물체(1450)를 캡쳐하였기 때문에, 이미지 프레임에서 물체(1450)에 대한 시차 문제가 최소화 될 수 있다.
깊이 평면들(depth plane)은 카메라 모듈(410)의 중심에서 같은 거리에 있는 위치들로 구성된다. 도 14에 따르면, 물체(1450)는 물체(1450)의 굴곡에 따라 서로 다른 깊이 평면과 교차된다. 즉, 물체의 깊이 값은 물체의 지점에 따라 상이할 수 있으며, 같은 지점이라도 그 지점을 바라보는 관점에 따라 깊이 값이 상이할 수 있다. 가상 카메라가 캡쳐하는 레이에 해당하는 물체의 지점은 실제의 카메라에 의해 캡쳐되었을 때 가상 카메라와는 상이한 깊이 값을 가지며, 전자 장치(201)는 가상 카메라가 레이를 캡쳐하여 가상의 이미지 프레임을 생성한 것처럼 이미지 프레임을 변환하기 위해 가상 카메라에 대한 깊이 값을 고려하여야 한다.
도 15는 본 발명의 다양한 실시 예들에 따라 가상 카메라들을 이용하여 생성된 정합 이미지를 표시하는 흐름도이다.
도 15를 참고하면, 동작 1510에서, 제어부(620)는 복수의 카메라들에 의해 생성된 복수의 이미지 프레임들을 결정한다. 예를 들어, 전자 장치(201)의 이미지 생성부(610)는 복수의 카메라들을 구비할 수 있으며, 복수의 카메라들 각각은 카메라 렌즈로 모이는 레이들을 캡쳐하여 이미지 프레임을 생성할 수 있다. 복수의 카메라들은 실제의 물리적인 카메라에 해당한다. 제어부(610)는 이미지 생성부(610)가 생성한 이미지 프레임들을 수신하여 복수의 카메라들에 의해 생성된 복수의 이미지 프레임들을 결정할 수 있다. 다른 예로, 전자 장치(201)는 전자 장치(201)와는 별개인 외부 장치로부터 생성된 복수의 이미지 프레임들을 수신할 수 있다. 다시 말해서, 이미지 생성부(610)와 같은 외부 장치는 복수의 카메라들을 구비할 수 있으며, 복수의 카메라들 각각은 카메라 렌즈로 모이는 레이들을 캡쳐하여 이미지 프레임을 생성할 수 있다. 제어부(610)는 외부 장치가 생성한 이미지 프레임들을 수신하여 복수의 카메라들에 의해 생성된 복수의 이미지 프레임들을 결정할 수 있다.
동작 1520에서, 제어부(620)는 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 복수의 이미지 프레임들을 변환한다. 이미지 생성부(610)을 구성하는 각각의 카메라가 캡쳐한 레이들은 해당하는 가상 카메라의 위치로 워핑되고, 제어부(620)는 마치 가상 카메라가 각각의 관점에서 워핑된 레이들을 캡쳐하여 가상의 이미지 프레임을 생성한 것처럼 이미지 프레임들을 변환할 수 있다. 즉, 각 레이는 이미지 프레임의 일부 영역에 대응하며, 워핑을 통해 이미지 프레임의 일부 영역들 각각이 변형될 수 있다. 여기서, 일부 영역은 적어도 하나의 픽셀을 포함한다.
동작 1530에서, 제어부(620)는 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성한다. 예를 들어, 제어부(620)는 이미지 생성부(610)의 좌측 카메라들이 캡쳐한 이미지 프레임들을 변환하고, 변환된 이미지 프레임들을 스티칭하여 좌측 파노라마를 생성할 수 있고, 우측 카메라들이 캡쳐한 이미지 프레임들을 변환하고, 변환된 이미지 프레임들을 스티칭하여 우측 파노라마를 생성할 수 있다.
동작 1540에서, 디스플레이(630)는 적어도 하나의 정합 이미지의 일부를 표시할 수 있다. 예를 들어, 제어부(620)이 동작 1530에서 생성한 좌측 파노라마 및 우측 파노라마는 360도 회전 이미지일 수 있고, 디스플레이(630)는 360도에 해당하는 화면 중 디스플레이(630)가 커버할 수 있는 FOV의 범위의 일부를 표시할 수 있다. 또한, 디스플레이(630)는 좌측 파노라마의 일부와 우측 파노라마의 일부가 모두 표시되도록 하여, 각각의 일부가 사용자의 양안을 통해 렌더링 되도록 할 수 있다.
도 16은 본 발명의 다양한 실시 예들에 따라 워핑에 기반하여 이미지를 변환하는 흐름도이다. 도 16의 흐름도에서 동작들은 동작 1520에서 제어부(620)가 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 복수의 이미지 프레임들을 변환하기 위해 수행될 수 있다.
도 16을 참고하면, 동작 1610에서, 제어부(620)는 광축 방향이 아닌 방향의 레이에 기반하여 생성된 적어도 하나의 제1 이미지 픽셀을 식별한다. 이미지 생성부(610)를 구성하는 복수의 카메라들은 각각 물체로부터 반사되어 입사되는 레이들을 캡쳐하여 이미지 프레임을 생성할 수 있고, 제어부(620)는 레이들 중 광축 방향이 아닌 레이가 이미지 센서에 투영되어 생성된 이미지 픽셀을 식별할 수 있다.
동작 1620에서, 제어부(620)는 레이에 대응하는 위치의 적어도 하나의 가상 카메라에서 레이의 방향에 대한 적어도 하나의 제2 이미지 픽셀을 결정한다. ODS 투영이 적용될 경우, 레이들은 워핑될 수 있고, 제어부(620)는 워핑된 위치에서 가상의 카메라가 해당 레이를 캡쳐한 것처럼 이미지 프레임을 변환할 수 있다. 이를 위해, 제어부(620)는 가상 카메라의 관점에서 레이 방향의 물체가 가상 카메라에 캡쳐된다면 생성될 이미지 픽셀을 결정할 수 있다. 워핑될 레이가 결정되면, 레이가 광축과 이루는 수평 방향의 각도 및 수직 방향의 각도가 결정되므로, <수학식 1>에 의해 워핑된 레이를 캡쳐하는 관점이 결정될 수 있다. 다시 말해서, 레이가 결정되면 레이에 대응하는 위치가 결정될 수 있고, 제어부(620)는 레이에 대응하는 위치의 적어도 하나의 가상 카메라에서 레이의 방향에 대한 제2 이미지 픽셀을 식별할 수 있다. 제2 이미지 픽셀은, 예를 들면, 도 13에서 설명된 것과 같이 가상 카메라 L0가 위치(1320)에서 워핑된 레이에 대응하는 물체 P(1370)를 캡쳐한다면 생성될 이미지 픽셀일 수 있고, <수학식 2>에서 계산된 카메라 좌표(u,v)에 해당하는 픽셀일 수 있다.
동작 1630에서, 제어부(620)는 결정된 적어도 하나의 제2 이미지 픽셀의 깊이 값을 계산한다. 일 예로서, 도 17은 본 발명의 다양한 실시 예들에 따라 이미지 픽셀을 깊이 값을 계산하는 방법을 도시한다. 도 17에서, 점선으로 표현된 것은 깊이 평면들(1730, 1740, 1750, 1760)을 나타낸다. 깊이 평면들은 카메라 모듈(410)의 중심에서 같은 거리에 있는 위치들로 구성된다. 카메라 L1은 실제의 카메라로서, 위치(1710)에서 카메라 L1의 렌즈로 레이들을 캡쳐하여 이미지 프레임을 생성한다. ODS 투영을 위해, 레이들은 워핑될 수 있고, 가상의 카메라 L0는 위치(1720)에서 레이들 중 해당하는 워핑된 하나의 레이를 캡쳐한다. 레이가 워핑되어 가상의 카메라 L0가 캡쳐하는 것과 같은 효과를 내기 위해, 가상의 카메라 L0에 대한 물체의 깊이 값이 고려되어야 한다.
*일 예로서, 카메라 L1뿐만 아니라 다른 실제의 카메라들(L2 내지 L3 중 적어도 하나(미도시))이 레이를 캡쳐하여 생성한 이미지 프레임을 각각의 깊이 평면들(1730, 1740, 1750, 1760)에 <수학식 2>에 따라 재투영하여 가상의 카메라 L0에 대한 물체의 깊이 값이 계산될 수 있다. 재투영된 이미지 프레임들은 서로 오버랩하게 되고, 재투영된 이미지 프레임에서 가상의 카메라 L0가 캡쳐한 워핑된 레이에 대응하는 이미지 픽셀들이 각 깊이 평면에서 얼마나 잘 오버랩 되는지를 판단하여 물체의 깊이 값이 계산될 수 있다. 예를 들어, 이미지 픽셀들의 오버랩 정도는 각각의 깊이 평면에 대해 재투영된 이미지 프레임에서 이미지 픽셀들의 픽셀 값 차이에 기반하여 결정될 수 있다. 픽셀 값 차이가 작을수록 이미지 픽셀들이 해당 깊이 평면에서 잘 오버랩 되는 것이며, 제어부(620)는 가장 오버랩이 잘 되는 깊이 평면의 깊이 값을 워핑된 레이에 대응하는 적어도 하나의 제2 이미지 픽셀의 깊이 값으로 결정할 수 있다.
도 17에서 설명된 것과 같이 이미지 픽셀의 깊이 값을 계산하는 것은 단지 예시적인 것이다. 본 발명의 다양한 실시 예들에서는 일반적인 이미지 픽셀의 깊이 값을 계산하는 알고리즘을 포함하여, 도 17에서 설명된 깊이 값 계산 법과는 다른 방법에 의해 이미지 픽셀의 깊이 값이 계산될 수 있다. 또한, 실제의 카메라에 캡쳐된 어떤 물체의 깊이 값이 이미 알려진 경우, 해당 물체를 캡쳐하는 가상 카메라의 관점은 <수학식 1>에 의해 결정될 수 있는 것이므로, 가상의 카메라에 대한 물체의 깊이 값은 쉽게 계산될 수 있다.
동작 1640에서, 제어부(620)는 적어도 하나의 가상 카메라에 대한 적어도 하나의 제2 이미지 픽셀의 깊이 값에 기반하여 적어도 하나의 제1 이미지 픽셀을 변환한다. 제1 이미지 픽셀은 워핑된 레이에 기반하여 생성된 제2 이미지 픽셀로 대치되어야 하고, 제2 이미지 픽셀은 실제 카메라가 아닌 가상 카메라에 대한 깊이 값이 반영되어야 한다. 즉, 제2 이미지 픽셀의 깊이 값은 가상 카메라에 대한 깊이 값이 적용되도록 변환되고, 제1 이미지 픽셀은 변환된 제2 이미지 픽셀로 대치된다.
이미지 프레임들을 캡쳐하여 ODS 투영을 수행하기 전, 카메라 캘리브레이션(calibration)이 먼저 수행되어야 한다. 카메라 캘리브레이션은 카메라가 캡쳐하는 입체적인 물체 또는 이미지가 이미지 센서의 대응되는 위치로 투영되도록 카메라들을 조절하는 것을 의미한다. 다시 말해서, 카메라 캘리브레이션이 적용 되면, 이미지 센서에서의 좌표 (u,v)와 실제 물체에 대한 모든 좌표 (x,y,z)가 대응되도록 결정될 수 있다.
카메라가 물체를 캡쳐할 경우, 물체의 각 점은 카메라가 캡쳐하는 레이에 대응될 수 있다. 각각의 레이는 카메라의 광축과 이루는 수평 방향의 각도() 및 수직 방향의 고도 각()에 의해 방향이 결정될 수 있다. 이에 따라, 각 레이에 대응하는 이미지 센서의 좌표 (u,v)는 하기의 <수학식 3>에 의해 결정될 수 있다.
여기에서, (u,v)는 이미지 센서의 좌표, A는 카메라 렌즈의 기울어짐(tilt)을 보상하기 위한 아핀 변환(affine transformation) 행렬, (xc,yc)는 카메라의 광심(optical center), 는 레이가 카메라의 광축과 이루는 수평 방향의 각도, 는 어안 반경(fisheye radius)을 의미한다. 어안 반경 는 하기의 <수학식 4>와 같이 5차 다항식 로 모델링 될 수 있다.
여기에서, 는 어안 반경, 는 레이가 카메라의 광축과 이루는 수직 방향의 고도 각, 는 5차 다항식의 계수(coefficient)를 의미한다.
도 4b 내지 도 4h에 나타난 것처럼 카메라가 배치되었음을 가정하면, 카메라 캘리브레이션을 위해 카메라의 세 개의 회전 각도(롤(roll), 피치(pitch), 요(yaw)) 가 최적으로 조절될 수 있다. 세 개의 회전 각도를 최적화하기 위한 절차는 하기와 같다.
먼저, 각각의 입체 쌍을 구성하는 카메라들에 대한 대응 점들이 카메라들로부터 먼 거리에 결정된다. 다음으로, 각각의 좌측 카메라들 L1 내지 L8 및 각각의 우측 카메라들 R1 내지 R8에 대해, 롤 및 피치가 0˚가 되고, 요가 (i-1)*45˚가 되도록 설정된다. 여기에서, i는 각각의 카메라 번호(Li 또는 Ri)에 대응한다. 대응 점들은 카메라로부터 매우 멀리 떨어져 있다고 가정하고, 대응 점들이 ODS 투영된 후의 거리가 계산된다. 마지막으로, 각 카메라의 롤, 피치 및 요 각도는 ODS 투영에서 대응 점들간 거리가 최소화 되도록 최적화될 수 있다.
카메라에 대한 상술한 캘리브레이션 절차가 수행된 후, 제어부(620)는 저장부(640)에 카메라 캘리브레이션에 의한 파라미터들(예를 들면, 롤, 피치 및 요 각도 값)을 저장할 수 있다. 이후에 전자 장치(201)가 수행하는 이미지 프레임 생성 및 처리는 저장된 파라미터들에 기반하여 수행될 수 있다.
도 18은 본 발명의 다양한 실시 예들에 따라 카메라 캘리브레이션(calibration)을 수행하기 위한 흐름도이다. 하기의 동작들은 동작 1510 이전에 수행될 수 있다.
도 18을 참고하면, 동작 1810에서, 제어부(620)는 복수의 카메라들 각각에 대한 캘리브레이션을 수행한다. 예를 들어, 캘리브레이션은 각 카메라에 대한 롤, 피치 및 요 각도를 결정하는 것을 의미한다.
동작 1820에서, 제어부(620)는 캘리브레이션에 대한 적어도 하나의 파라미터를 저장한다. 제어부(620)는 캘리브레이션에 의한 파라미터들(예를 들면, 롤, 피치 및 요 각도 값)을 저장부(640)에 저장할 수 있으며, 이후에 전자 장치(201)가 수행하는 이미지 프레임 생성 및 처리는 저장된 파라미터들에 기반하여 수행될 수 있다.
도 19는 본 발명의 다양한 실시 예들에 따라 이미지 프레임들을 스티칭(stitching)하는 흐름도이다. ODS 투영에 의해 이미지 프레임들이 변환된 후, 변환된 이미지 프레임들은 스티칭되어 최종적인 파노라마 이미지가 생성된다. 변환된 이미지 프레임들을 스티칭하는 동작은 하기와 같다.
도 19를 참고하면, 동작 1910에서, 제어부(620)는 복수의 이미지 프레임들에 대한 적어도 하나의 심을 결정한다. 이미지 스티칭을 위한 심을 결정하기 이전에, 이미지 프레임들에서 특징점을 검출하고, 검출된 특징 점들의 대응 점에 기반하여 이미지 프레임들을 정렬(align)하여야 하나, 본 발명의 다양한 실시 예에 따른 ODS 투영이 적용되면, 레이들이 워핑되는 과정에서 이미지 프레임들이 이미 정렬된 것으로 볼 수 있다. 따라서, 본 발명의 다양한 실시 예들에 따르면, 이미지 스티칭을 위해 특징점 검출에 기반한 이미지 정렬 동작은 생략될 수 있다. 일 예로, 제어부(620)는 중첩된 이미지 프레임들의 영역에서 심을 결정하며, 심에 인접한 각 이미지 프레임의 픽셀에서 픽셀 값, 색상 및 밝기에 관한 파라미터 값의 차이가 최소화되도록 심을 결정할 수 있다. 또 다른 예로, 제어부(620)는 보다 간단하게 각각의 변환된 이미지 프레임에서 수직 방향의 선(vertical linear line)을 심으로 결정할 수 있다. 즉, 변환된 이미지 프레임들은 레이들이 워핑되는 과정에서 잘 정렬된 것으로 볼 수 있으므로, 제어부(620)는 변환된 이미지 프레임들에서 두 카메라의 가운데에 해당하는 부분에서 수직 방향의 선을 심으로 결정할 수 있다.
동작 1920에서, 제어부(620)는 적어도 하나의 심에 기반하여 복수의 이미지 프레임들에 대한 블렌딩을 수행한다. 예를 들어, 제어부(620)는 심에 의해 구분되는 영역들이 매끄럽게 연결되는 것으로 보이도록 노출 및 색상에 관한 파라미터가 해당 영역에서 균일하게 되도록 보상할 수 있다.
상술한 실시 예에 따라, 파노라마 이미지, 즉, 정합된 이미지가 생성될 수 있다. 본 발명의 다양한 실시 예들에 따라 생성된 파노라마 이미지의 일 예는 이하 도 20과 같다. 도 20은 본 발명의 다양한 실시 예들에 따라 정합된 이미지(2000)를 도시한다.
좌측 카메라들(L1 내지 L8) 및 우측 카메라들(R1 내지 R8)이 생성한 이미지 프레임들은 ODS 투영에 의해 변환되고, 변환된 이미지 프레임들이 스티칭되어 정합 이미지가 생성된다. 정합 이미지(2000)는 좌측 파노라마 또는 우측 파노라마일 수 있다. 심 1(2010) 및 심 2(2020)는 이미지 프레임들의 스티칭 과정에서 결정되며, 정합 이미지(2000)에서 심 1(2010) 및 심 2(2020)에 의해 구분되는 영역은 정합 이미지(2000)를 생성하기 위한 이미지 프레임에 해당한다. 정합 이미지(2000)에 생성된 심 1(2010) 및 심 2(2020)는 예시적인 것이며, 정합 이미지(2000)는 이미지 프레임들의 개수만큼 심들을 포함할 수 있고, 심의 모양은 심 1(2010) 및 심 2(2020)과 상이할 수 있다. 상술한 바와 같이, ODS 투영에 의해 변환된 이미지 프레임들은 레이들이 워핑되는 과정에서 잘 정렬된 것으로 볼 수 있으므로, 도 20에서 도시된 것처럼 심 1(2010) 및 심 2(2020)는 수직 방향의 선으로 결정될 수 있다.
ODS 투영이 적용되면, 파노라마 이미지를 생성하기 위해 각 카메라가 캡쳐하는 레이들은 모두 실제 카메라의 관점에서 투영되는 것이 아니고, 각 레이는 워핑되어 가상 카메라의 관점에서 캡쳐된 것처럼 변환된다. 따라서, ODS 투영에 따라 서로 다른 위치의 카메라가 동일한 물체를 캡쳐하여 생기는 시차 문제가 정합 이미지에서 줄어들 수 있다. 도 20에 도시된 정합 이미지(2000)에 따르면, 정합 이미지(2000)는 원거리 및 근거리 물체를 포함하는 이미지 프레임들이 스티칭되어 구성되나, 심 1(2010) 및 심 2(2020)의 주변 영역에서 이중상이나 근거리 잘림이 나타나지 않는다.
도 21은 본 발명의 다양한 실시 예들에 따라 카메라의 고도 각과 카메라들의 관점간 거리의 관계를 도시한다. 도 21에서, 가로축은 입체 쌍을 구성하는 카메라들의 관점간 거리를, 세로축은 카메라가 캡쳐하는 레이의 고도 각을 나타낸다.
도 12에서 설명된 것처럼, ODS 투영이 적용될 경우 입체 쌍을 구성하는 카메라들의 관점간 거리는 각 카메라가 캡쳐하는 레이의 고도 각 ()에 따라 달라질 수 있다. 관점간 거리가 짧아질수록 물체에 대한 화각이 줄어들어 원근이 상대적으로 식별되기 어려우므로, 관점간 거리는 3D 효과의 정도와 관련이 있다. 다시 말해서, 관점간 거리가 큰 경우 사용자에 의한 3D 인식이 양호할 수 있고, 관점간 거리가 짧을 경우 사용자에 의해 파노라마 이미지가 2D에 가깝게 인식될 수 있다. 또한, 관점간 거리가 0일 경우(zero baseline), 파노라마 이미지는 완전한 2D(pure 2D)로 사용자에게 인식될 수 있다.
도 21에 도시된 포물선은 관점관 거리와 카메라가 캡쳐하는 레이의 고도 각 ()의 관계를 도시한다. v는 관점간 거리가 0일 때의 고도 각으로, 파노라마 이미지가 사용자에 의해 완전한 2D로 인식되는 고도 각을 의미한다. 예를 들어, v는 <수학식 1>에서 계수 f의 값에 따라 45˚ 내지 90˚ 범위에서 변하는 각도일 수 있다. 도 21에 따르면, 고도 각 가 증가할수록 관점간 거리가 포물선을 따라 부드럽게 감소하므로, 고도 각에 따라 3D 효과의 정도가 적어질 수 있다. 다시 말해서, ODS 투영에 의해 사용자의 시선 이동에 따른 3D에서 2D로의 급격한 변화가 방지될 수 있다. 도 21에 따르면, 영역(2110) 이내의 고도 각 범위에서는 사용자에 의한 3D 인식이 양호할 수 있다. 또한, 고도각이 v 범위를 벗어난 영역(2120)의 경우, 파노라마 이미지는 사용자에게 2D로 인식될 수 있다. 영역(2110) 및 영역(2120) 이외의 영역은 트렌지션 영역(transition area)(2130)으로, 고도 각이 증가할수록 사용자가 느끼는 3D 효과가 점진적으로 감소하는 영역에 해당한다. 다시 말해서, 트랜지션 영역(2130)은 고도 각이 증가함에 따라 3D에서 2D로의 급격한 변화를 방지하는 버퍼 영역일 수 있다.
만약, 콘텐츠가 모든 화각에 대해 관점간 거리가 동일한 채로 렌더링될 경우, 고도 각 의 변화에 따라 화면 뒤집어짐 문제(veiw flip problem)이 생길 수 있다. 그러나, 본 발명의 다양한 실시 예들에 따르면, 3D에서 2D로의 변화는 급격하게 발생하지 않고, 서서히 발생하므로, 화면 뒤집어짐 문제가 줄어들 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다.
그리고 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 다양한 실시 예의 범위를 한정하는 것은 아니다. 따라서, 본 발명의 다양한 실시 예의 범위는, 본 발명의 다양한 실시 예의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치의 동작 방법에 있어서,
    복수의 카메라들에 의해 생성된 복수의 이미지 프레임들을 결정하는 동작과,
    상기 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하는 동작과,
    상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 동작과,
    상기 적어도 하나의 정합 이미지의 적어도 일부를 표시하는 동작을 포함하고,
    상기 복수의 카메라들은 원형으로 배치되고,
    제1 그룹의 카메라들 각각의 광축(optical axis)은 원의 중심 방향을 기준으로 시계 방향으로 미리 결정된 각도만큼 돌려져 있고,
    제2 그룹의 카메라들 각각의 광축은 상기 원의 중심 방향을 기준으로 시계 반대방향으로 상기 미리 결정된 각도만큼 돌려져 있고,
    상기 복수의 카메라들은 상기 제1 그룹의 카메라들과 상기 제2 그룹의 카메라들을 포함하고,
    상기 적어도 하나의 정합 이미지는, 상기 제1 그룹의 카메라들에 기반하여 생성된 제1 정합 이미지와, 상기 제2 그룹의 카메라들에 기반하여 생성된 제2 정합 이미지를 포함하고,
    상기 복수의 이미지 프레임들을 변환하는 동작은,
    상기 복수의 카메라 중 어느 하나의 카메라에 입사되는 레이를 상기 적어도 하나의 가상 카메라의 위치로 평행 이동하는 워핑(Warping)을 수행하고,
    상기 워핑된 레이를 캡쳐하여 가상의 이미지 프레임을 생성하는 동작을 포함하는 방법.

  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 복수의 카메라들 사이에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하는 동작은,
    상기 복수의 카메라들 각각의 광축(optical axis) 방향이 아닌 방향의 레이(ray)에 기반하여 생성된 적어도 하나의 제1 이미지 픽셀을 식별하는 동작과,
    상기 레이에 대응하는 위치의 상기 적어도 하나의 가상 카메라에서 상기 레이의 방향에 대한 적어도 하나의 제2 이미지 픽셀을 결정하는 동작과,
    상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값에 기반하여 상기 적어도 하나의 제1 이미지 픽셀을 변환하는 동작을 포함하는 방법.
  5. 제4항에 있어서,
    상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값은, 상기 복수의 카메라들 각각에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값에 기반하여 결정되는 방법.
  6. 제4항에 있어서,
    상기 레이에 대응하는 위치는, 상기 복수의 카메라들 각각의 광축이 기준 방향으로부터 돌려진 각도에 기반하여 결정되는 방법.
  7. 제1항에 있어서,
    상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 동작은,
    상기 복수의 이미지 프레임들에 대한 적어도 하나의 심(seam)을 결정하는 동작을 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 심은, 수직 방향의 선으로 결정되는 방법.
  9. 제1항에 있어서,
    각각의 상기 복수의 카메라들에 의해 캡쳐된 복수의 이미지 프레임들을 생성하기 전, 상기 복수의 카메라들 각각에 대한 캘리브레이션을 수행하는 동작과,
    상기 캘리브레이션에 대한 적어도 하나의 파라미터를 저장하는 동작을 더 포함하는 방법.
  10. 제4항에 있어서, 상기 적어도 하나의 제2 이미지 픽셀에 대한 좌표 값, 하기의 수학식에 의해 결정되는 방법.

    여기에서, 상기 Pw는 상기 적어도 하나의 제2 이미지 픽셀에 대한 좌표 값, 상기 d는 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값, 상기 는 상기 레이가 카메라의 광축과 수평 방향으로 이루는 각도, 상기 는 상기 레이가 카메라의 광축과 수직 방향으로 이루는 각도, 상기 vp는 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 관점(view point)를 의미함.

  11. 전자 장치에 있어서,
    복수의 카메라들에 의해 생성된 복수의 이미지 프레임들을 결정하고, 상기 복수의 카메라들과 다른 곳에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하고, 상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하는 제어부와,
    상기 적어도 하나의 정합 이미지의 일부를 표시하는 디스플레이를 포함하고,
    상기 복수의 카메라들은 원형으로 배치되고,
    제1 그룹의 카메라들 각각의 광축(optical axis)은 원의 중심 방향을 기준으로 시계 방향으로 미리 결정된 각도만큼 돌려져 있고,
    제2 그룹의 카메라들 각각의 광축은 상기 원의 중심 방향을 기준으로 시계 반대방향으로 상기 미리 결정된 각도만큼 돌려져 있고,
    상기 복수의 카메라들은 상기 제1 그룹의 카메라들과 상기 제2 그룹의 카메라들을 포함하고,
    상기 적어도 하나의 정합 이미지는, 상기 제1 그룹의 카메라들에 기반하여 생성된 제1 정합 이미지와, 상기 제2 그룹의 카메라들에 기반하여 생성된 제2 정합 이미지를 포함하고,
    상기 제어부는,
    상기 복수의 카메라 중 어느 하나의 카메라에 입사되는 레이를 상기 적어도 하나의 가상 카메라의 위치로 평행 이동하는 워핑(Warping)을 수행하고,
    상기 워핑된 레이를 캡쳐하여 가상의 이미지 프레임을 생성하는 장치.

  12. 삭제
  13. 삭제
  14. 제11항에 있어서, 상기 제어부는, 상기 복수의 카메라들 사이에 위치한 적어도 하나의 가상 카메라에 기반하여 상기 복수의 이미지 프레임들을 변환하기 위해, 상기 복수의 카메라들 각각의 광축(optical axis) 방향이 아닌 방향의 레이(ray)에 기반하여 생성된 적어도 하나의 제1 이미지 픽셀을 식별하고, 상기 레이에 대응하는 위치의 상기 적어도 하나의 가상 카메라에서 상기 레이의 방향에 대한 적어도 하나의 제2 이미지 픽셀을 결정하고, 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값에 기반하여 상기 적어도 하나의 제1 이미지 픽셀을 변환하는 장치.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서, 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값은, 상기 복수의 카메라들 각각에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값에 기반하여 결정되는 장치.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서, 상기 레이에 대응하는 위치는,
    상기 복수의 카메라들 각각의 광축이 기준 방향으로부터 돌려진 각도에 기반하여 결정되는 장치.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서, 상기 제어부는, 상기 변환된 복수의 이미지 프레임들로부터 적어도 하나의 정합 이미지를 생성하기 위해, 상기 복수의 이미지 프레임들에 대한 적어도 하나의 심(seam)을 결정하고, 상기 결정된 적어도 하나의 심에 기반하여 상기 복수의 이미지 프레임들에 대한 블렌딩(blending)을 수행하는 장치.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서, 상기 적어도 하나의 심은 수직 방향의 선으로 결정되는 장치..
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서, 상기 제어부는,
    각각의 상기 복수의 카메라들에 의해 캡쳐된 복수의 이미지 프레임들을 생성하기 전, 상기 복수의 카메라들 각각에 대한 캘리브레이션을 수행하고, 상기 캘리브레이션에 대한 적어도 하나의 파라미터를 저장하는 장치.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서, 상기 적어도 하나의 제2 이미지 픽셀에 대한 좌표 값은, 하기의 수학식에 의해 결정되는 장치.

    여기에서, 상기 Pw는 상기 적어도 하나의 제2 이미지 픽셀에 대한 좌표 값, 상기 d는 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 깊이 값, 상기 는 상기 레이가 카메라의 광축과 수평 방향으로 이루는 각도, 상기 는 상기 레이가 카메라의 광축과 수직 방향으로 이루는 각도, 상기 vp는 상기 적어도 하나의 가상 카메라에 대한 상기 적어도 하나의 제2 이미지 픽셀의 관점(view point)를 의미함.
KR1020160126874A 2016-09-30 2016-09-30 이미지를 표시하기 위한 방법 및 그 전자 장치 KR102558474B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160126874A KR102558474B1 (ko) 2016-09-30 2016-09-30 이미지를 표시하기 위한 방법 및 그 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160126874A KR102558474B1 (ko) 2016-09-30 2016-09-30 이미지를 표시하기 위한 방법 및 그 전자 장치

Publications (2)

Publication Number Publication Date
KR20180036359A KR20180036359A (ko) 2018-04-09
KR102558474B1 true KR102558474B1 (ko) 2023-07-25

Family

ID=61978308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160126874A KR102558474B1 (ko) 2016-09-30 2016-09-30 이미지를 표시하기 위한 방법 및 그 전자 장치

Country Status (1)

Country Link
KR (1) KR102558474B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102491939B1 (ko) 2018-08-24 2023-01-26 삼성전자주식회사 전방향 이미지를 프로세싱하기 위한 방법 및 장치
KR102244529B1 (ko) * 2019-09-24 2021-04-26 에스케이텔레콤 주식회사 영상 촬영 장치, 상기 영상 촬영 장치를 제어하기 위한 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램과 영상 처리 장치와 상기 영상 처리 장치를 제어하기 위한 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
KR102261544B1 (ko) * 2019-11-13 2021-06-07 한국광기술원 스트리밍 서버 및 이를 이용한 다시점 동영상에서의 객체 처리 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140104378A1 (en) 2011-04-08 2014-04-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Capturing panoramic or semi-panoramic 3d scenes
WO2015196082A1 (en) 2014-06-20 2015-12-23 Qualcomm Incorporated Parallax free multi-camera system capable of capturing full spherical images
WO2015196050A1 (en) * 2014-06-20 2015-12-23 Qualcomm Incorporated Parallax free thin multi-camera system capable of capturing full wide field of view images
US20150373263A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Multi-camera system using folded optics free from parallax artifacts
US20160088287A1 (en) * 2014-09-22 2016-03-24 Samsung Electronics Company, Ltd. Image stitching for three-dimensional video

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140104378A1 (en) 2011-04-08 2014-04-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Capturing panoramic or semi-panoramic 3d scenes
WO2015196082A1 (en) 2014-06-20 2015-12-23 Qualcomm Incorporated Parallax free multi-camera system capable of capturing full spherical images
WO2015196050A1 (en) * 2014-06-20 2015-12-23 Qualcomm Incorporated Parallax free thin multi-camera system capable of capturing full wide field of view images
US20150373263A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Multi-camera system using folded optics free from parallax artifacts
US20160088287A1 (en) * 2014-09-22 2016-03-24 Samsung Electronics Company, Ltd. Image stitching for three-dimensional video

Also Published As

Publication number Publication date
KR20180036359A (ko) 2018-04-09

Similar Documents

Publication Publication Date Title
EP3446282B1 (en) Image processing apparatus and method
KR102719606B1 (ko) 이미지 표시 방법, 저장 매체 및 전자 장치
KR102559625B1 (ko) 증강 현실 출력 방법 및 이를 지원하는 전자 장치
US20160086386A1 (en) Method and apparatus for screen capture
CN108462818B (zh) 电子设备及用于在该电子设备中显示360度图像的方法
US11159782B2 (en) Electronic device and gaze tracking method of electronic device
US20150348453A1 (en) Method and apparatus for processing images
EP3023969A2 (en) Display and method and electronic device
KR20160059264A (ko) 화면 제어 방법 및 그 방법을 처리하는 전자 장치
KR20160096422A (ko) 화면 표시 방법 및 전자 장치
EP3358531B1 (en) Electronic device for providing vr image based on polyhedron and image providing method thereof
KR102641881B1 (ko) 전방위 영상을 획득하는 방법 및 장치
CN105892572B (zh) 用于显示内容的方法和装置
US11670022B2 (en) Electronic device and method for displaying and generating panoramic image
US20200082631A1 (en) Content output method and electronic device for supporting same
KR102355759B1 (ko) 사용자의 위치를 결정하는 전자 장치 및 그 제어 방법
CN109845251B (zh) 用于显示图像的电子设备和方法
KR102558474B1 (ko) 이미지를 표시하기 위한 방법 및 그 전자 장치
EP3104254A2 (en) Electronic device and method for performing an intertial force correction
EP3327551A1 (en) Electronic device for displaying image and method for controlling the same
EP3591514A1 (en) Electronic device and screen image display method for electronic device
US20210042974A1 (en) Method and electronic device for outputting guide
KR102519803B1 (ko) 촬영 장치 및 그 제어 방법
KR102405385B1 (ko) 3d 컨텐츠를 위한 여러 오브젝트를 생성하는 방법 및 시스템
KR102575673B1 (ko) 전자 장치 및 그의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant