KR20140130675A - 화상 처리 디바이스, 및 컴퓨터 프로그램 제품 - Google Patents

화상 처리 디바이스, 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20140130675A
KR20140130675A KR1020147021433A KR20147021433A KR20140130675A KR 20140130675 A KR20140130675 A KR 20140130675A KR 1020147021433 A KR1020147021433 A KR 1020147021433A KR 20147021433 A KR20147021433 A KR 20147021433A KR 20140130675 A KR20140130675 A KR 20140130675A
Authority
KR
South Korea
Prior art keywords
virtual object
information processing
matrix
unit
virtual
Prior art date
Application number
KR1020147021433A
Other languages
English (en)
Inventor
?이치 가사하라
Original Assignee
소니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 주식회사 filed Critical 소니 주식회사
Publication of KR20140130675A publication Critical patent/KR20140130675A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

정보 처리 장치 및 비-일시적 컴퓨터 판독가능 매체는 협동하여 정보 처리 장치의 검출된 자세의 표시를 수신하고, 정보 처리 장치의 검출된 자세와 관련된 자세로 기준 환경에 가상 객체를 부착하도록 구성된 회로소자를 갖는 제어 유닛을 제공한다.

Description

화상 처리 디바이스, 및 컴퓨터 프로그램 제품{IMAGE PROCESSING DEVICE, AND COMPUTER PROGRAM PRODUCT}
본 개시는 화상 처리 디바이스, 및 컴퓨터 프로그램 제품에 관한 것이다.
최근, 현실 세계에 부가적인 정보를 중첩해서 사용자에게 제시하는 증강 현실(AR)이라고 불리는 기술이 주목받아 왔다. AR 기술에서 사용자에게 제시되는 정보는 또한 주석(annotation)으로도 칭해지며, 다양한 방식, 예컨대 텍스트, 아이콘 또는 애니메이션으로 가상 객체를 이용하여 가시화될 수 있다. 기존의 AR 기술에서, 가상 객체를 AR 공간에 배치하는 역할은, 주로 AR 어플리케이션의 개발자가 한다. 개발자는 어떤 가상 객체를 AR 공간의 어느 위치에 어떤 자세로 배치해야 할지를 결정한다. 이렇게 결정된 가상 객체의 배치는 특정 환경(예를 들면, 현실 세계의 특정한 공간, 장소, 실물 또는 실물의 집합)과 관련된 데이터로서 저장된다. 그 결과, 최종 사용자가 촬상 디바이스를 사용하여 환경의 화상을 캡처하면, 환경과 관련된 가상 객체가 캡처된 화상에 중첩됨으로써, AR 어플리케이션이 실현된다.
하기 비특허문헌 1은 가상 객체를 배치하기 전의 단계에서 실제 공간을 모델링하기 위한 기술의 예를 보여준다. 하기 비특허문헌 2는 가상 객체를 캡처된 화상에 중첩하기 위해 필요한 촬상 디바이스의 위치 및 자세를 계산하는 것을 목적으로 자연 마커를 이용한 기술의 예를 보여준다.
A. van den Hengel, R.Hill, B.Ward and A.Dick, "In Situ Image-based Modeling"(In Proc. 8th IEEE International Symposium on Mixed and Augmented Reality, 2009) W.Daniel, G.Reitmayr, A.Mulloni, T.Drummond, and D.Schmalstieg, "Pose Tracking from Natural Features on Mobile Phones"(In Proc. 7th IEEE International Symposium on Mixed and Augmented Reality, 2008)
그러나, 기존의 AR 기술에서는 AR 어플리케이션의 개발자와 같은 전문 지식을 가지는 자가 아니면, 예를 들어 AR 공간에 가상 객체를 적절하게 배치하는 것이 곤란했다. 이와 반대로, 전문 지식이 없는 일반 사용자가 AR 공간에 가상 객체를 자유롭고 용이하게 배치하고, 가상 객체를 관찰하고 공유하는 것이 가능해지면, AR 어플리케이션의 범위가 넓어지고, 따라서 AR 기술의 장점을 보다 많은 사용자들이 즐길 수 있을 것이다.
따라서, 본 개시에 따른 기술은 AR 공간에 가상 객체를 자유롭고 용이하게 배치할 수 있는 메카니즘을 제공한다.
정보 처리 장치 및 비-일시적 컴퓨터 판독가능 매체는 협동하여 정보 처리 장치의 검출된 자세의 표시를 수신하도록 구성된 회로소자를 갖는 제어 유닛을 제공하고, 정보 처리 장치의 검출된 자세와 관련된 자세로 기준 환경에 가상 객체를 부착한다.
본 개시에 따른 기술은 AR 공간에 가상 객체를 자유롭고 용이하게 배치할 수 있는 메카니즘을 제공한다.
도 1은 본 개시에 따른 기술을 적용할 수 있는 환경의 예를 나타내는 설명 도.
도 2는 본 개시에 따른 기술의 기본적인 원리를 도시하는 제1 설명도.
도 3은 본 개시에 따른 기술의 기본적인 원리를 도시하는 제2 설명도.
도 4는 본 개시에 따른 기술의 기본적인 원리를 도시하는 제3 설명도.
도 5는 본 개시에 따른 기술의 기본적인 원리를 도시하는 제4 설명도.
도 6a는 예시적인 시나리오에 따라 가상 객체가 배치되는 모습을 나타내는 제1 설명도.
도 6b는 예시적인 시나리오에 따라 가상 객체가 배치되는 모습을 나타내는 제2 설명도.
도 7은 객체 배치 데이터의 기본적인 구성 실시예를 도시하는 설명도.
도 8은 본 개시에 따른 기술의 기본적인 원리를 도시하는 제5 설명도.
도 9는 제1 실시양태에 따른 화상 처리 디바이스의 예시적인 하드웨어 구성을 나타내는 블록도.
도 10은 제1 실시양태에 따른 화상 처리 디바이스의 예시적인 구성을 나타내는 블록도.
도 11은 제1 조작 시나리오에 따라 신규 가상 객체가 기준 환경 내에 배치되는 모습을 나타내는 설명도.
도 12는 제2 조작 시나리오에 따라, 배치된 가상 객체가 움직이는 모습을 나타내는 설명도.
도 13은 기준 환경의 전환을 도시하는 설명도.
도 14는 제1 실시양태에 따른 화상 처리의 예시적인 흐름을 나타내는 흐름도.
도 15는 도 14에 예시적으로 나타낸 객체 배치 처리의 예시적인 상세한 흐름을 나타내는 흐름도.
도 16은 가상 객체의 기준면의 결정을 도시하는 설명도.
도 17은 가상 객체로부터의 거리에 따라 수행되는 표시를 도시하는 설명도.
도 18은 가상 객체의 정렬 표시를 도시하는 설명도.
도 19는 객체 배치 행렬의 순차적 저장을 도시하는 설명도.
도 20은 제2 실시양태에 따른 화상 처리 시스템을 도시하는 제1 설명도.
도 21a는 제2 실시양태에 따른 화상 처리 시스템을 도시하는 제2 설명도.
도 21b는 제2 실시양태에 따른 화상 처리 시스템을 도시하는 제3 설명도.
도 22는 제2 실시양태에 따른 관리 서버의 예시적인 구성을 나타내는 블록도.
도 23은 객체 배치 데이터의 실시예를 도시하는 설명도.
도 24는 객체 데이터의 실시예를 도시하는 설명도.
도 25는 제2 실시양태에 따른 단말기 디바이스의 예시적인 구성을 나타내는 블록도.
도 26은 제2 실시양태에 따른 가상 객체의 표시의 제1 실시예를 나타내는 설명도.
도 27은 제2 실시양태에 따른 가상 객체의 표시의 제2 실시예를 나타내는 설명도.
도 28은 제2 실시양태에 따른 통신 어플리케이션의 시작을 나타내는 설명도.
도 29는 제2 실시양태에 따른 디바이스 간에 수행되는 처리의 예시적인 흐름을 나타내는 순서도.
이하에 첨부한 도면을 참조하면서, 본 개시의 실시양태를 상세하게 설명한다. 본 명세서 및 첨부한 도면에서, 실질적으로 동일한 기능 및 구성을 갖는 구성 요소는 동일한 참조 부호로 표시했으며 이 구성 요소에 대한 중복 설명을 생략한다는 것을 주의한다.
이하의 순서로 설명한다.
1. 기본적인 원리
1-1. 개요
1-2. 기본적인 파라미터
1-3. 파라미터의 저장
1-4. 가상 객체의 표시
2. 제1 실시양태
2-1. 하드웨어 구성
2-2. 기능 구성
2-3. 조작 시나리오
2-4. 처리 흐름
2-5. 표시의 변화
2-6. 어플리케이션의 실시예
3. 제2 실시양태
3-1. 시스템 개요
3-2. 서버의 구성
3-3. 단말기의 구성
3-4. 처리 흐름
4. 결론
<1. 기본적인 원리>
우선, 도 1 내지 도 8을 참조하여, 본 개시에 따른 기술의 기본적인 원리에 대해서 설명한다.
(1-1. 개요)
도 1은 본 개시에 따른 기술이 적용될 수 있는 환경의 예를 나타내는 설명도다. 도 1을 참조하면, 환경(1) 및 환경(1)의 화상을 캡처하는 화상 처리 디바이스(100)를 나타내고 있다. 도 1의 예에서, 환경(1)은 테이블(11), 책(12) 및 커피 컵(13)을 포함한다. 화상 처리 디바이스(100)는 전형적으로 촬상 유닛(도시하지 않음) 및 표시 유닛(110)을 포함한다. 화상 처리 디바이스(100)의 촬상 유닛은 환경(1)의 영상을 구성하는 일련의 화상을 캡처한다. 그리고, 화상 처리 디바이스(100)는 캡처된 화상을 입력 화상으로 사용하여 화상 처리를 수행하고, 3-차원 공간에 가상 객체를 배치한다. 화상 처리 디바이스(100)의 표시 유닛(110)은 가상 객체가 중첩된 출력 화상을 표시한다. 그리고, 이 가상 객체는 관찰 능력을 갖는 다른 처리 디바이스(예를 들어, 카메라) 및 기준 환경에 부착된 가상 객체에 대해 저장된 정보를 수신하는 인터페이스에 의해 관찰될 수 있다.
화상 처리 디바이스(100)는 가상 객체를 특정 기준 환경 내에 배치한다. 다시 말해, 가상 객체의 위치 및 자세는 기준 환경과 관련된 좌표계(이하, 기준 좌표계라고 한다)에서 정의된다. 이하의 명세서에서, 테이블(11), 책(12) 및 커피 컵(13)을 포함하는 환경(1)이 기준 환경이다. 실제로, 기준 환경은 임의의 실내 또는 실외 환경일 수 있다. 또 다른 환경으로서, 실물 특유의 좌표계를 갖는 단일의 실물이 기준 환경으로서 취급될 수 있다. 이러한 경우, 실물 특유의 좌표계가 기준 좌표계가 된다.
도 1은 화상 처리 디바이스(100)의 실시예로서 타블렛 PC를 나타낸다. 그러나, 화상 처리 디바이스(100)는 이에 한정되지 않는다. 화상 처리 디바이스(100)는 예를 들면, 노트북 PC, 포켓 PC, 스마트폰, 게임 단말기, PND(Portable Navigation Device; 휴대용 네비게이션 디바이스), 콘텐츠 재생 장치 또는 디지털 가전 기기일 수 있다.
(1-2. 기본적인 파라미터)
본 개시에 따른 기술에서, 기준 환경 내에 배치되는 가상 객체의 위치 및 자세는 몇몇 파라미터를 사용한 계산을 통해서 결정된다. 가장 기본적인 파라미터는 환경 인식 행렬이다.
(1) 환경 인식 행렬
환경 인식 행렬은 입력 화상을 캡처한 기준 환경 내의 단말기의 위치 및 자세에 대해 기준 환경의 위치 및 자세를 표현하는 행렬이다. 환경 인식 행렬은 전형적으로는 3-차원 공간 내의 평행 이동, 회전 및 크기조정(확대/축소)을 표현하는 좌표 변환 행렬(예를 들면, 4 x 4 동차 변환 행렬)일 수 있다.
도 2를 참조하면, 기준 환경(1)과 관련된 기준 좌표계 CS1 및 화상 처리 디바이스(100)의 디바이스-특정 좌표계 CS0를 나타내고 있다. 디바이스-특정 좌표계 CS0는 예를 들면, 표시 유닛(110)의 화면의 2-차원 좌표축 및 깊이 좌표축으로 구성될 수 있다. 화상 처리 디바이스(100)의 디바이스-특정 좌표계 CS0에 대한 기준 좌표계 CS1의 상대적인 위치 및 자세는 공지된 화상 인식 기술을 이용함으로써 입력 화상을 사용하여 인식될 수 있다. 여기서 이용되는 화상 인식 기술은 예를 들면, SfM(Structure from Motion; 움직임으로부터의 구조화) 방법, SLAM(Simultaneous Localization And Mapping; 동시 위치 추정 및 지도 작성) 방법, 또는 상기 비특허문헌 1 또는 2에 설명된 방법일 수 있다. 대안으로서, 적외선 센서를 사용하는 단순 환경 기술이 또한 이용될 수 있다.
여기에서, 화상 처리 디바이스(100)의 디바이스-특정 좌표계 CS0의 위치 및 자세가 단위 행렬 M0에 의해 표현된다고 가정한다. 이에 의해, 기준 환경(1) 내의 특정 위치 및 자세를 행렬 M0로부터의 좌표 변환(평행 이동, 회전 및 크기조정)으로서 인식하는 것이 가능해진다. 따라서, 위치 및 자세의 세트가 단일의 좌표 변환 행렬로 표현될 수 있다. 상술한 환경 인식 행렬은 이러한 좌표 변환 행렬 중의 하나이다. 환경 인식 행렬 Mrecog은 화상 처리 디바이스(100)의 위치 및 자세(예를 들면, 단위 행렬 M0)에 대한 기준 좌표계 CS1의 위치 및 자세를 표현한다.
(2) 객체 배치 행렬
상술한 전제에서, 환경 인식 행렬 Mrecog의 역행렬 Mrecog -1은 기준 좌표계 CS1의 위치 및 자세에 대한 화상 처리 디바이스(100)의 위치 및 자세를 표현하는 행렬이다. 본 개시에 따른 기술에서, 가상 객체는 환경 인식 행렬의 역행렬 Mrecog -1에 근거한 위치 및 자세로 기준 환경 내에 배치된다. 도 3은 환경 인식 행렬의 역행렬 Mrecog -1이 표현하는 좌표 변환을 개략적으로 나타내고 있다.
객체 배치 행렬 Marrange은 배치된 가상 객체의 위치 및 자세를 표현하는 행렬이다. 객체 배치 행렬 Marrange은 예를 들면, 하기 식과 같이 환경 인식 행렬의 역행렬 Mrecog -1과 동일할 수 있다. 이 경우, 가상 객체는 가상 객체가 배치되는 시점의 화상 처리 디바이스(100)의 위치 및 자세와 동일한 위치 및 자세로 배치된다.
Figure pct00001
그러나, 가상 객체의 위치 및 자세가 화상 처리 디바이스(100)의 위치 및 자세에 완전히 일치되지 않을 경우에는, 다음에 설명하는 것과 같은 오프셋 행렬을 사용할 수 있다.
(3) 오프셋 행렬
도 4는 오프셋 행렬의 예로서 전방 오프셋 행렬 Toffset를 산입해서 결정되는 객체 배치 행렬 Marrange를 개략적으로 나타낸다. 전방 오프셋 행렬 Toffset는 화상 처리 디바이스(100)의 위치로부터 입력 화상의 촬상 방향(깊이 방향)으로의 특정 거리 만큼의 평행 이동을 표현하는 좌표 변환 행렬이다. 전방 오프셋 행렬 Toffset이 산입될 경우, 객체 배치 행렬 Marrange는 하기 식과 같이 계산될 수 있다.
Figure pct00002
전방 오프셋 행렬 Toffset를 산입해서 가상 객체를 화상 처리 디바이스(100)의 전방에 배치하면, 사용자는 화상 처리 디바이스(100)를 움직이지 않고, 배치된 가상 객체를 화면상에서 즉시 관찰할 수 있게 된다.
도 5는 오프셋 행렬의 예로서 조작 오프셋 행렬 Ttouch를 산입해서 결정되는 객체 배치 행렬 Marrange를 개략적으로 나타내고 있다. 조작 오프셋 행렬 Ttouch는 화상 처리 디바이스(100)의 화면상에서의 사용자 입력 위치에 따라서 결정된다. 조작 오프셋 행렬 Ttouch가 산입될 경우, 객체 배치 행렬 Marrange는 하기 식과 같이 계산될 수 있다.
Figure pct00003
상술한 바와 같이 조작 오프셋 행렬 Ttouch가 산입될 경우, 사용자는 화상 처리 디바이스(100)를 움직이는 대신에 화면상의 원하는 위치에서 조작(예를 들면, 터치 또는 클릭)을 수행함으로써, 가상 객체의 배치를 미세하게 조정하는 것이 가능해진다.
(1-3. 파라미터의 저장)
상술한 원리를 따라서 가상 객체의 배치가 결정되면, 객체 배치 행렬 Marrange가 기준 환경과 관련하여 저장된다.
예를 들어, 도 6a 내지 도 6b의 시나리오를 참조하면, 우선 시각 t1에서, 가상 객체(V01)가 기준 환경(1) 내에 배치된다. 가상 객체(V01)의 위치 및 자세는 객체 배치 행렬 Marrange(t1)에 의해 표현된다(도 6a 참조). 그 다음, 시각 t2에서 가상 객체(V02)가 기준 환경(1) 내에 배치된다. 가상 객체(V02)의 위치 및 자세는 객체 배치 행렬 Marrange(t2)에 의해 표현된다(도 6b 참조).
그 결과, 예를 들면 도 7에 예시적으로 나타낸 것과 같은 객체 배치 데이터가 형성될 수 있다. 도 7의 예에서, 객체 배치 데이터는 "기준 환경", "객체 ID", "배치" 및 "시각"의 4 개 데이터 항목을 포함한다. "기준 환경"은 각 가상 객체가 배치된 환경을 식별하는 식별자다. "객체 ID"는 각 가상 객체를 고유하게 식별하기 위한 식별자다. "배치"는 각 가상 객체의 객체 배치 행렬을 저장하는 데이터 항목이다. "시각"은 각 가상 객체가 배치된 시각을 나타낸다. 이러한 객체 배치 데이터를 이용함으로써 각 가상 객체를 표시할 수 있다.
(1-4. 가상 객체의 표시)
가상 객체가 배치된 후, 단말기와 기준 환경 간의 위치 관계가 변한 상황을 가정한다. 이 상황을 단말기가 움직이거나 기준 환경이 이동하거나, 또는 양자의 경우로 가정할 수 있다. 본 명세서에서, 용어 "평행 이동"이라고 명시하지 않을 경우, "움직임"이라는 용어는 평행 이동 및 회전 모두를 포함할 수 있다. 상술한 상황에서, 화상 처리 디바이스(100)의 화면상에서 가상 객체는 저장된 객체 배치 행렬 Marrange 및 최근의 시점에 인식된 환경 인식 행렬 Mrecog에 의해 표현되는 위치 및 자세로 표시된다. 예를 들어, 도 6b에 나타낸 시각 t2에서 화상 처리 디바이스(100)로부터 가상 객체(V01)가 보이는 방식은, 객체 배치 행렬 Marrange(t1)과 시각 t2에서의 환경 인식 행렬 Mrecog(t2)의 곱에 해당하는 다음의 좌표 변환으로 표현될 수 있다.
Figure pct00004
도 8은 수학식 4에 의해 표현되는 좌표 변환을 개략적으로 나타내고 있다. 도 8의 출력 화상(Im1)에서, 가상 객체(V01)는 객체 배치 행렬 Marrange(t1) 및 환경 인식 행렬 Mrecog(t2)에 의해 표현되는 위치 및 자세로 표시된다.
이 섹션에서 설명한 원리에 따라 단말기, 예컨대 화상 처리 디바이스(100)를 움직이고 조작함으로써, 사용자는 기준 환경 내에 원하는 위치 및 자세로 가상 객체를 배치할 수 있다. 또한, 객체 배치 행렬이 기준 좌표계와 관련하여 저장됨에 따라, 단말기와 기준 환경 간의 위치 관계가 변하는 경우에도, 기준 환경에 대한 가상 객체의 상대적인 위치 및 자세가 유지되도록 가상 객체를 표시할 수 있다. 이러한 원리에 따라, 가상 객체의 배치를 목적으로 하며, 기준 환경에 접착 메모지(sticky)를 부착하는 것과 같이 가상 객체를 배치하는 직관적인 사용자 인터페이스를 제공한다.
이하에서, 상술한 원리에 근거하여 본 개시에 따른 기술의 2 개의 예시적인 실시양태를 상세하게 설명한다.
<2. 제1 실시양태>
제1 실시양태에서, 도 1에 예시적으로 나타낸 화상 처리 디바이스(100)에 의해 가상 객체가 배치된다. 배치된 가상 객체는 화상 처리 디바이스(100)의 화면상에 표시된다.
(2-1. 하드웨어 구성)
도 9는 제1 실시양태에 따른 화상 처리 디바이스(100)의 예시적인 하드웨어 구성을 나타내는 블록도다. 도 9를 참조하면, 화상 처리 디바이스(100)는 촬상 유닛(102), 센서 유닛(104), 입력 유닛(106), 저장 유닛(108), 표시 유닛(110), 통신 유닛(112), 버스(116) 및 제어 유닛(118)을 포함한다.
(1) 촬상 유닛
촬상 유닛(102)은 화상을 캡처하는 카메라 모듈이다. 촬상 유닛(102)은 화상 센서, 예컨대 CCD(Charge Coupled Device; 전하 결합 소자) 또는 CMOS(Complementary Metal Oxide Semiconductor; 상보성 금속 산화막 반도체)를 사용하여 실제 공간의 화상을 캡처하여 캡처된 화상을 생성한다. 촬상 유닛(102)에 의해 생성되는 일련의 캡처된 화상은 영상을 구성한다. 촬상 유닛(102)이 화상 처리 디바이스(100)의 일부일 필요는 없다는 것을 주의한다. 예를 들면, 화상 처리 디바이스(100)와 유선 또는 무선으로 연결된 촬상 디바이스는 촬상 유닛(102)으로서 취급될 수 있다. 또한, 촬상 유닛(102)은 촬상 유닛(102)과 피사체 사이의 거리를 화소마다 측정하는 깊이 센서를 포함할 수 있다. 깊이 센서로부터 출력된 깊이 데이터는 환경을 인식하는 데에 사용될 수 있다.
(2) 센서 유닛
센서 유닛(104)은 다양한 센서, 예컨대 위치 센서, 가속도 센서 및 자이로(gyro) 센서를 포함할 수 있다. 센서 유닛(104)에서 얻은 측정 결과는 다양한 용도, 예컨대 환경 인식의 지원, 지리적 위치에 대한 데이터 획득, 또는 사용자 입력의 검출에 사용될 수 있다. 센서 유닛(104)은 화상 처리 디바이스(100)의 구성으로부터 생략될 수 있다는 것을 주의한다.
(3) 입력 유닛
입력 유닛(106)은 사용자가 화상 처리 디바이스(100)를 조작하거나 화상 처리 디바이스(100)에 정보를 입력하기 위해서 사용되는 입력 디바이스다. 입력 유닛(106)은 예를 들면, 표시 유닛(110) 화면상의 사용자에 의한 터치를 검출하는 터치 센서를 포함할 수 있다. 대안으로서(또는 게다가), 입력 유닛(106)은 포인팅 디바이스, 예컨대 마우스 또는 터치 패드를 포함할 수 있다. 또한, 입력 유닛(106)은 다른 종류의 입력 디바이스, 예컨대 키보드, 키패드, 버튼 또는 스위치를 포함할 수 있다.
(4) 저장 유닛
저장 유닛(108)은 저장 매체, 예컨대 반도체 메모리 또는 하드 디스크를 포함하고, 화상 처리 디바이스(100)로 수행할 처리를 위한 프로그램 및 데이터를 저장한다. 저장 유닛(108)에 저장되는 데이터는 예를 들면, 캡처된 화상에 대한 데이터, 센서 데이터 및 후술하는 데이터베이스(DB) 내의 데이터를 포함할 수 있다. 또한 본 명세서에서 설명한 프로그램 및 데이터의 일부는 저장 유닛(108)에 의해 저장되지 않고, 외부의 데이터 소스(예를 들면, 데이터 서버, 네트워크 저장소 또는 외장형 메모리)로부터 획득할 수 있다는 것을 주의한다.
(5) 표시 유닛
표시 유닛(110)은 디스플레이, 예컨대 LCD(Liquid Crystal Display; 액정 표시 장치), OLED(Organic Light-Emitting Diode; 유기 발광 다이오드) 또는 CRT(Cathode Ray Tube; 음극선관)를 포함하는 표시 모듈이다. 표시 유닛(110)은 화상 처리 디바이스(100)에 의해 생성되는 출력 화상을 표시하기 위해서 사용된다. 또한 표시 유닛(110)은 화상 처리 디바이스(100)의 일부일 필요도 없다는 것을 주의한다. 예를 들면, 화상 처리 디바이스(100)와 유선 또는 무선으로 연결된 표시 디바이스는 표시 유닛(110)으로 취급될 수 있다.
(6) 통신 유닛
통신 유닛(112)은 화상 처리 디바이스(100)와 다른 디바이스 간의 통신을 중개하는 통신 인터페이스다. 통신 유닛(112)은 특정 무선 통신 프로토콜 또는 유선 통신 프로토콜을 지원하고, 다른 디바이스와의 통신 연결을 성립시킨다.
(7) 버스
버스(116)는 촬상 유닛(102), 센서 유닛(104), 입력 유닛(106), 저장 유닛(108), 표시 유닛(110), 통신 유닛(112) 및 제어 유닛(118)을 서로 연결한다.
(8) 제어 유닛
제어 유닛(118)은 처리기, 예컨대 CPU(Central Processing Unit; 중앙 처리 장치) 또는 DSP(Digital Signal Processor; 디지털 신호 처리기)에 해당한다. 제어 유닛(118)은 저장 유닛(108) 또는 다른 저장 매체에 저장된 프로그램을 실행함으로써, 후술하는 화상 처리 디바이스(100)가 다양한 기능을 하게 한다.
(2-2. 기능 구성)
도 10은 도 9에 나타낸 화상 처리 디바이스(100)의 저장 유닛(108) 및 제어 유닛(118)에 의해 실시되는 논리적 기능의 예시적인 구성을 나타내는 블록도다. 도 10을 참조하면, 화상 처리 디바이스(100)는 화상 획득 유닛(120), 인식 유닛(130), 계산 유닛(140), 객체 배치 유닛(150), 객체 DB(160), 조작 제어 유닛(180) 및 표시 제어 유닛(190)을 포함한다.
(1) 화상 획득 유닛
화상 획득 유닛(120)은 촬상 유닛(102)에 의해 생성되는 캡처된 화상을 입력 화상으로서 획득한다. 화상 획득 유닛(120)에 의해 획득되는 입력 화상은 실제 공간의 영상을 부분적으로 구성하는 개별 프레임일 수 있다. 화상 획득 유닛(120)은 획득한 입력 화상을 인식 유닛(130) 및 표시 제어 유닛(190)으로 출력한다.
(2) 인식 유닛
인식 유닛(130)은 화상 획득 유닛(120)으로부터 획득한 입력 화상을 이용하여 기준 환경의 위치 및 자세를 표현하는 상술한 환경 인식 행렬을 인식한다. 인식 유닛(130)은 환경 인식 행렬을 인식하기 위해서, 공지된 화상 인식 기술, 예컨대 SfM 방법 또는 SLAM 방법을 이용할 수 있다. 대안으로서 또는 게다가, 인식 유닛(130)은 촬상 유닛(102) 내에 제공된 깊이 센서로부터의 깊이 데이터에 근거하여 환경 인식 행렬을 인식할 수 있다. 추가적인 대안으로서, 인식 유닛(130)은 환경 인식 시스템, 예컨대 적외선 거리 측정 시스템 또는 움직임 캡처 시스템으로부터의 출력 데이터에 근거하여 환경 인식 행렬을 인식할 수 있다.
예를 들면, SLAM 방법을 이용한 경우, 인식 유닛(130)은 단말기의 위치, 자세, 속도 및 각속도, 및 입력 화상 내의 하나 이상의 특징점의 위치를 포함하는 상태 변수를 확장된 칼만 필터(Kalman filter)의 원리에 근거하여 프레임마다 갱신한다. 따라서, 단말기의 위치 및 자세에 대한 기준 환경의 위치 및 자세를 단안 카메라로부터의 입력 화상을 이용해서 인식할 수 있다. 인식 유닛(130)은 단말기의 위치 및 자세로부터의 좌표 변환에 해당하는 환경 인식 행렬 Mrecog를 사용하여 인식한 기준 환경의 위치 및 자세를 표현한다. SLAM 방법의 세부사항은 문헌["Real-Time Simultaneous Localization and Mapping with a Single Camera"(Andrew J.Davison, Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2,2003, pp. 1403-1410)]에 설명되어 있다는 것을 주의한다.
인식 유닛(130)은 이렇게 인식된 환경 인식 행렬 Mrecog을 계산 유닛(140) 및 객체 배치 유닛(150)으로 출력한다.
(3) 계산 유닛
계산 유닛(140)은 인식 유닛(130)으로부터 입력된 환경 인식 행렬의 역행렬 Mrecog -1을 계산한다. 예를 들면, 환경 인식 행렬 Mrecog은 4 x 4 동차 변환 행렬이다. 따라서, 또한 환경 인식 행렬의 역행렬 Mrecog -1도 4 x 4 동차 변환 행렬이며, Mrecog·Mrecog -1 = M0(단위 행렬)을 충족시킨다. 환경 인식 행렬의 역행렬 Mrecog -1은 기준 좌표계의 위치 및 자세로부터 단말기의 위치 및 자세로의 좌표 변환을 표현한다. 계산 유닛(140)은 환경 인식 행렬의 계산된 역행렬 Mrecog -1을 객체 배치 유닛(150)으로 출력한다.
(4) 객체 배치 유닛
객체 배치 유닛(150)은 환경 인식 행렬의 역행렬 Mrecog -1에 근거하는 위치 및 자세를 갖는 가상 객체를 기준 환경 내에 배치한다. 배치된 가상 객체의 위치 및 자세는 상술한 객체 배치 행렬 Marrange에 의해 표현된다. 첨부 도면에서, 가상 객체의 위치 및 자세를 간략히 나타내기 위해서, 직사각형 가상 객체를 주로 나타낸다. 그러나, 객체 배치 유닛(150)에 의해 배치되는 가상 객체는 임의의 형상을 가질 수 있다. 또한, 가상 객체는 임의의 종류의 정보를 나타내는 객체일 수 있다.
객체 배치 유닛(150)은 예를 들면 상기 수학식 1에 따른 환경 인식 행렬의 역행렬 Mrecog -1로 표현되는 위치 및 자세로, 단말기의 위치 및 자세에 중첩되도록 가상 객체를 배치할 수 있다. 또한, 객체 배치 유닛(150)은 상술한 전방 오프셋 행렬 및 조작 오프셋 행렬 중 하나 또는 양자 모두를 사용하여 단말기의 위치 및 자세로부터 오프셋된 위치에 가상 객체를 배치할 수 있다.
전방 오프셋 행렬 Toffset를 사용하는 경우, 객체 배치 유닛(150)은 상기 수학식 2를 따라 환경 인식 행렬의 역행렬 Mrecog -1에 의해 표현되는 위치로부터 입력 화상의 촬상 방향으로 오프셋된 위치에 가상 객체를 배치할 수 있다. 대안으로서, 조작 오프셋 행렬 Ttouch을 사용하는 경우, 객체 배치 유닛(150)은 상기 수학식 3에 의하여 화면상에서의 사용자 입력 위치에 따른 화면을 따르는 방향으로 오프셋된 위치에 가상 객체를 배치할 수 있다.
객체 배치 유닛(150)은 기준 환경 내에 배치된 가상 객체의 객체 배치 행렬 Marrange(및 다른 파라미터)을 표시 제어 유닛(190)으로 출력한다. 또한, 객체 배치 유닛(150)은 조작 제어 유닛(180)에 의해 특정 사용자 입력이 검출된 경우에, 객체 배치 행렬 Marrange를 기준 환경과 관련하여 객체 DB(160)에 저장한다. 가상 객체의 배치에 관한 사용자 인터페이스의 다양한 예를 하기에서 더 설명한다.
(5) 객체 DB
객체 DB(160)는 객체 배치 유닛(150)에 의해 배치된 가상 객체의 객체 배치 행렬을 저장하는 데이터베이스다. 객체 DB(160)는 도 7에 예시적으로 나타낸 것과 같은 구성의 객체 배치 데이터를 저장할 수 있다. 객체 DB(160)에서, 객체 배치 행렬은 기준 환경들 중 하나와 관련된다. 그리고, 표시 제어 유닛(190)에 의해 가상 객체의 표시 처리가 실행될 때, 객체 배치 데이터가 객체 DB(160)로부터 판독된다.
(6) 조작 제어 유닛
조작 제어 유닛(180)은 화상 처리 디바이스(100)에서 실행되는 AR 어플리케이션을 사용자가 조작하도록 하는 사용자 인터페이스를 제공한다. 예를 들면, 조작 제어 유닛(180)은 표시 제어 유닛(190)을 통하여, AR 어플리케이션의 조작을 촉진시키는 표시를 화면에 표시한다. 그리고, 조작 제어 유닛(180)은 입력 유닛(106)을 통하여 다양한 사용자 입력을 검출한다.
제1 사용자 입력은 가상 객체를 시험적으로 배치하고 표시하기 위한 트리거일 수 있고, 제2 사용자 입력은 가상 객체의 배치를 결정하고 객체 배치 행렬을 저장하기 위한 트리거일 수 있다. 제1 및 제2 사용자 입력은 일련의 조작의 시작 및 종료에 제1 및 제2 사용자 입력이 각각 대응하도록 정의될 수 있다. 일련의 조작은 예를 들면, 터치 또는 드래그에 해당할 수 있다. 전형적으로, 터치 또는 드래그의 시작은 누름 이벤트(press event)로서 검출되고, 터치 또는 드래그의 종료는 해제(release) 이벤트로서 검출된다. 이러한 사용자 인터페이스에 따라, 사용자는 단지 화면을 관찰하고 터치(또는 드래그)하면서 단말기를 움직이는 간단하고, 직관적인 조작을 수행하는 것만으로, 가상 객체의 배치를 원하는 위치 및 자세로 자유롭게 조정할 수 있다.
조작 제어 유닛(180)은, 상술한 사용자 입력을 검출하면, 검출된 사용자 입력의 종류 및 입력 위치를 나타내는 입력 정보를 객체 배치 유닛(150)으로 출력한다. 사용자 입력의 종류는 상술한 예에 한정되지 않는다는 것을 주의한다. 예를 들면, 특정 키 또는 버튼의 누름, 터치 제스처의 인식, 표정의 인식, 음성 명령의 인식, 또는 두부 장착형 디스플레이(head mounted display)에 의한 시선의 인식이 사용자 입력으로서 정의될 수 있다.
(7) 표시 제어 유닛
표시 제어 유닛(190)은 객체 배치 유닛(150)에 의한 배치에 따라 가상 객체를 입력 화상에 중첩함으로써 출력 화상을 생성한다. 그리고, 표시 제어 유닛(190)은 생성된 출력 화상을 표시 유닛(110)의 화면상에 표시한다. 도 8을 참조하여 설명한 바와 같이, 가상 객체는 가상 객체의 객체 배치 행렬 및 표시 시점에서 인식된 환경 인식 행렬에 의해 표현되는 위치 및 자세로 입력 화상에 중첩된다. 예를 들면, 표시 제어 유닛(190)에 의해 가상 객체를 표시하기 위한 트리거는 상술한 제1 사용자 입력의 검출일 수 있다. 대안으로서, 표시 제어 유닛(190)에 의해 가상 객체를 표시하기 위한 트리거는 다른 디바이스로부터의 객체 배치 데이터의 수신, 입력 화상 내의 어떠한 패턴의 인식 등일 수 있다.
(2-3. 조작 시나리오)
다음으로, 도 11 내지 도 13을 참조하여, 가상 객체의 조작에 관한 2 개의 조작 시나리오를 설명한다. 제1 조작 시나리오에서는, 신규 가상 객체가 기준 환경 내에 배치된다. 제2 조작 시나리오에서는, 배치된 가상 객체가 사용자에 의한 조작을 통해 움직인다.
(1) 신규 가상 객체의 배치
도 11은 제1 조작 시나리오에 따라, 신규 가상 객체가 기준 환경 내에 배치되는 모습을 나타낸다.
우선, 시각 t10에서, 화상 처리 디바이스(100)는 테이블(11) 위에 위치하고, 약간 경사진 자세로 있다. 이 시점에서, 사용자 입력은 검출되지 않는다.
그 다음, 시각 t11에서 누름 이벤트가 제1 사용자 입력으로서 검출된다. 그리고, 객체 배치 유닛(150)은 화상 처리 디바이스(100)의 전방에 가상 객체(V11)를 배치한다. 표시 제어 유닛(190)은 배치된 가상 객체(V11)를 화면상에 표시한다.
시각 t12에서, 사용자는, 누름을 계속하면서 화상 처리 디바이스(100)를 오른쪽으로 회전시킨다. 객체 배치 유닛(150)은 가상 객체(V11)의 자세로부터 회전된 자세를 갖는 가상 객체(V12)를 화상 처리 디바이스(100)의 전방에 배치한다. 다시 말해, 사용자의 조작이 계속되는 동안, 가상 객체의 배치는 단말기의 위치 및 자세를 추종한다.
그 다음, 시각 t13에서, 해제 이벤트가 제2 사용자 입력으로서 검출된다. 객체 배치 유닛(150)은 화상 처리 디바이스(100)의 전방에 가상 객체(V13)를 배치하고, 가상 객체(V13)의 객체 배치 행렬을 객체 DB(160)에 저장한다. 표시 제어 유닛(190)은 결정된 배치의 가상 객체(V13)를 화면상에 표시한다. 상술한 시각 t11 내지 t13의 일련의 조작을 통해, 사용자는 신규 가상 객체를 기준 환경 내에 자유롭게 배치할 수 있다.
그 후, 시각 t14에서, 화상 처리 디바이스(100)가 시각 t13의 위치와 비교하여 왼쪽으로 움직인다. 인식 유닛(130)은 시각 t14에서 입력 화상을 사용하여 신규 환경 인식 행렬을 인식한다. 그리고, 표시 제어 유닛(190)은 시각 t13에서 결정된 가상 객체(V13)의 객체 배치 행렬 및 신규하게 인식된 환경 인식 행렬에 의해 표현되는 위치 및 자세로 가상 객체(V13)를 화면상에 표시한다.
(2) 가상 객체의 움직임
상술한 바와 같이, 제1 조작 시나리오에 따라 사용자 조작이 계속되는 동안, 가상 객체의 배치는 단말기의 위치 및 자세를 추종한다. 이러한 추종 동작은 배치된 가상 객체에 대해, 후술하는 메카니즘을 통해 실현될 수 있다.
도 12는 제2 조작 시나리오에 따라 배치된 가상 객체가 움직이는 모습을 나타낸다.
시각 t20에서, 누름 이벤트가 검출된다. 표시 제어 유닛(190)은 예를 들면 누름 위치를 따라 조작될 가상 객체(V0)를 식별하고, 가상 객체(V0)의 객체 배치 행렬 Marrange(V0)을 획득한다. 그리고, 표시 제어 유닛(190)은 시각 t20에서의 환경 인식 행렬 Mrecog(t20)과 객체 배치 행렬 Marrange(V0)의 곱인 상대 배치 행렬 Mrel을 계산한다. 여기서 계산된 상대 배치 행렬 Mrel은 해제 이벤트가 검출될 때까지 유지되고, 계속적으로 조작된 가상 객체(V0)를 표시하는 데에 사용된다.
시각 t21에서, 사용자는 누름을 계속하면서 화상 처리 디바이스(100)를 오른쪽으로 회전시킨다. 표시 제어 유닛(190)은 시각 t20에서 계산된 상대 배치 행렬 Mrel을 사용하여, 화상 처리 디바이스(100)에 대한 가상 객체(V0)의 상대적인 위치 및 자세가 유지되도록 가상 객체(V0)를 화면상에 표시한다.
그 후, 시각 t22에서 해제 이벤트가 검출된다. 인식 유닛(130)은 시각 t22의 입력 화상을 사용하여, 신규 환경 인식 행렬 Mrecog(t22)을 인식한다. 그리고, 객체 배치 유닛(150)은 신규 환경 인식 행렬의 역행렬 Mrecog -1(t22)과 상대 배치 행렬 Mrel의 곱인 신규 객체 배치 행렬 M'arrange(V0)을 계산한다. 그리고, 객체 배치 유닛(150)은 신규 객체 배치 행렬 M'arrange(V0)을 객체 DB(160)에 저장한다.
상술한 시각 t20 내지 t22의 일련의 조작을 통해, 사용자는 배치된 가상 객체를 드래그하는 것 같이 3-차원 공간 내에서 배치된 가상 객체를 자유롭게 움직일 수 있다. 여기에서 설명한 사용자 인터페이스에 의해 조작되는 가상 객체의 수는 1 개에 한정되지 않으며, 복수의 가상 객체가 일련의 조작을 통해 총괄적으로 움질일 수 있다는 것을 주의한다.
(3) 기준 환경의 전환
상술한 상대 배치 행렬 Mrel을 사용하여, 또한 가상 객체가 다른 환경과 관련되는 기준 환경으로 전환하는 것이 가능하다.
도 13은 기준 환경의 전환를 도시하는 설명도다.
시각 t30에서, 누름 이벤트가 검출된다. 표시 제어 유닛(190)은 예를 들면, 누름 위치를 따라 조작될 가상 객체(V0)를 식별하고, 가상 객체(V0)의 객체 배치 행렬 Marrange(V0)을 획득한다. 여기에서, 객체 배치 행렬 Marrange(V0)은 기준 좌표계 CS2를 갖는 기준 환경 En2에 관련된다고 가정한다. 그리고, 표시 제어 유닛(190)은 시각 t30에서의 환경 인식 행렬 Mrecog(t30)과 객체 배치 행렬 Marrange(V0)의 곱인 상대 배치 행렬 Mrel을 계산한다.
시각 t31에서, 사용자는 누름을 계속하면서, 화상 처리 디바이스(100)를 움직인다. 표시 제어 유닛(190)은 시각 t30에서 계산된 상대 배치 행렬 Mrel을 사용하여, 화상 처리 디바이스(100)에 대한 가상 객체(V0)의 상대적인 위치 및 자세가 유지되도록, 가상 객체(V0)를 화면상에 표시한다.
그 후, 시각 t32에서 해제 이벤트가 검출된다. 인식 유닛(130)은 시각 t32에 입력 화상에서 나타난 신규 환경 En3의 위치 및 자세를 표현하는 신규 환경 인식 행렬 Mrecog(t32)을 인식한다. 환경 En3은 고유 좌표계 CS3를 갖는다. 그리고, 객체 배치 유닛(150)은 신규 환경 인식 행렬의 역행렬 Mrecog -1(t32)과 상대 배치 행렬 Mrel의 곱인 신규 객체 배치 행렬 M'arrange(V0)을 계산한다. 그리고, 객체 배치 유닛(150)은 신규 객체 배치 행렬 M'arrange(V0)을, 신규 기준 환경 En3과 관련하여 객체 DB(160)에 저장한다.
상술한 시각 t30 내지 t32의 일련의 조작을 통해, 사용자는 배치된 가상 객체를 한 환경에서 다른 환경으로 드래그 앤 드롭하는 것 같이, 또는 접착 메모지를 교체하는 것과 같이, 배치된 가상 객체를 자유롭게 움직일 수 있다.
(2-4. 처리 흐름)
도 14는 제1 실시양태에 따라 화상 처리 디바이스(100)에 의해 수행되는 화상 처리의 예시적인 흐름을 나타내는 흐름도다.
도 14를 참조하면, 우선, 화상 획득 유닛(120)은 촬상 유닛(102)에 의해 생성되는 캡처된 화상을 입력 화상으로서 획득한다(단계(S110)). 그리고, 화상 획득 유닛(120)은 획득한 입력 화상을 인식 유닛(130) 및 표시 제어 유닛(190)으로 출력한다.
그 다음, 인식 유닛(130)은 화상 획득 유닛(120)으로부터 입력된 입력 화상을 사용하여 기준 환경의 위치 및 자세를 표현하는 환경 인식 행렬 Mrecog을 인식한다(단계(S120)). 그리고, 인식 유닛(130)은 인식된 환경 인식 행렬 Mrecog을 계산 유닛(140), 객체 배치 유닛(150) 및 표시 제어 유닛(190)으로 출력한다.
그 다음에, 표시 제어 유닛(190)은, 기준 환경 내에 이미 배치된 가상 객체가 존재할 경우, 배치된 가상 객체에 대한 객체 배치 데이터를 객체 DB(160)로부터 획득한다(단계(S125)). 그리고, 표시 제어 유닛(190)은 표시될 가상 객체 각각에 대해서, 환경 인식 행렬 Mrecog과 객체 배치 행렬 Marrange의 곱인 상대 배치 행렬 Mrel을 계산한다(단계(S130)).
그 다음, 도 14의 화상 처리는 조작 상태에 따라서 나뉜다. 우선, 사용자에 의해 특정 조작이 시작된 경우 또는 특정 조작이 계속되는 경우, 처리는 단계(S150)로 진행한다(S135). 대안으로서, 그때까지 계속된 조작의 종료가 검출된 경우, 처리는 단계(S160)로 진행한다(단계(S140)). 그렇지 않으면, 처리는 단계(S170)로 진행한다.
단계(S150)에서, 도 15를 참조하여 상세하게 설명한 객체 배치 처리가 실행된다.
단계(S160)에서, 도 15를 참조하여 상세하게 설명한 객체 배치 처리가 실행된다. 그 후, 조작될 가상 객체에 대해 신규하게 결정되거나 갱신된 객체 배치 행렬이 객체 DB(160)에 저장된다(단계(S165)).
그리고, 표시 제어 유닛(190)은 조작될 가상 객체 및 (또)다른 표시될 가상 객체(들)가 중첩된 출력 화상을 생성하고, 생성된 출력 화상을 표시 유닛(110)의 화면상에 표시한다(단계(S170)).
도 15는 도 14의 단계(S150 및 S160)에 해당하는 객체 배치 처리의 예시적인 상세한 흐름을 나타내는 흐름도다.
도 15의 객체 배치 처리는 조작될 가상 객체가 기존의(배치된) 객체인지 여부에 따라 나뉜다(단계(S151)). 조작될 가상 객체가 기존의 객체가 아닐 경우에, 처리는 단계(S157)로 진행한다. 한편, 조작될 가상 객체가 기존의 객체일 경우에, 처리는 단계(S152)로 진행한다.
단계(S152)에서, 객체 배치 처리는 조작될 가상 객체에 대해서 상대 배치 행렬 Mrel이 계산되었는지 여부에 따라 더 나뉜다. 상대 배치 행렬 Mrel이 계산되지 않은 경우에, 처리는 단계(S153)로 진행한다. 한편, 상대 배치 행렬 Mrel이 계산된 경우에, 처리는 단계(S155)로 진행한다.
조작될 가상 객체가 기존의 객체이고, 상대 배치 행렬 Mrel이 계산되지 않은 경우에, 표시 제어 유닛(190)은 우선 조작될 가상 객체의 객체 배치 행렬 Marrange를 획득한다(단계(S153)). 그리고, 표시 제어 유닛(190)은 이 시점의 환경 인식 행렬 Mrecog 및 획득한 객체 배치 행렬 Marrange에 근거하여 상대 배치 행렬 Mrel을 계산한다(단계(S154)).
조작될 가상 객체가 기존의 객체이고, 상대 배치 행렬 Mrel이 계산된 경우에, 표시 제어 유닛(190)은 우선 조작의 종료가 검출되었는지 여부를 결정한다(단계(S155)). 그리고, 조작의 종료가 검출되었을 경우에, 표시 제어 유닛(190)은 상대 배치 행렬 Mrel과 이 시점의 환경 인식 행렬 Mrecog에 근거하여 조작될 가상 객체의 객체 배치 행렬 Marrange를 재계산한다(단계(S156)).
신규 가상 객체가 배치되어야 할 경우에, 계산 유닛(140)은 인식 유닛(130)으로부터 입력된 환경 인식 행렬의 역행렬 Mrecog -1을 계산한다(단계(S157)). 또한, 객체 배치 유닛(150)은 전방 오프셋 행렬 Toffset 및 조작 오프셋 행렬 Ttouch를 결정한다(단계(S158)). 이러한 오프셋 행렬이 사용되지 않을 경우, 단계(S158)의 처리가 생략될 수 있다는 것을 주의한다. 그리고, 객체 배치 유닛(150)은 환경 인식 행렬의 역행렬 Mrecog -1, 전방 오프셋 행렬 Toffset 및 조작 오프셋 행렬 Ttouch에 근거하여, 신규하게 배치될 가상 객체의 객체 배치 행렬 Marrange를 결정한다.
(2-5. 표시의 변화)
본 개시에 따른 기술에서, 가상 객체는 다양한 구성으로 표시될 수 있다. 본 섹션에서, 가상 객체의 다양한 표시 변화에 대해서 설명한다.
(1) 기준면의 결정
예를 들면, 가상 객체는 미리 정의된 기준면을 가질 수 있다. 가상 객체가 카드형 평면 형상을 가질 경우, 가상 객체의 한 표면이 기준면으로 정의될 수 있고 그의 다른 표면이 비-기준면으로 정의될 수 있다. 가상 객체가 입체적인 형상을 가질 경우에, 가상 객체의 기준면은, 기준면으로부터 외부로 연장되는 법선 벡터에 의해 식별될 수 있다. 상술한 바와 같이, 가상 객체가 기준면을 가질 경우, 표시 제어 유닛(190)은 화상 처리 디바이스(100)의 화면에 가상 객체의 기준면이 나타나는지 여부에 따라 가상 객체의 표시를 변화시킬 수 있다.
예를 들어, 도 16의 예를 참조하면, 화상 처리 디바이스(100)의 화면에 2 개의 가상 객체(V11 및 V12)이 나타난다. 화상 처리 디바이스(100)의 화면에 나타난 가상 객체(V11)의 면은 비-기준면이다. 화상 처리 디바이스(100)의 화면에 나타난 가상 객체(V12)의 면은 기준면이다. 따라서, 표시 제어 유닛(190)은 예를 들면, 표시 속성, 예컨대 가상 객체(V12)의 형상, 스케일, 투명도, 색, 해상도 및 에지 두께를 가상 객체(V11)의 것과는 상이한 값으로 설정할 수 있다. 또한, 표시 제어 유닛(190)은 가상 객체(V11 및 V12) 각각에 의해 나타내어지는 정보를 기준면이 나타나는지 여부에 따라 변화시킬 수 있다.
상술한 표시 제어를 통해, 사용자는 표시된 가상 객체의 배향을 용이하게 파악할 수 있다.
(2) 거리에 따른 표시
표시 제어 유닛(190)은 화상 처리 디바이스(100)와 가상 객체 사이의 거리에 따라, 가상 객체의 표시를 변화시킬 수 있다.
예를 들어, 도 17의 예를 참조하면, 화상 처리 디바이스(100)의 화면에 4 개의 가상 객체(V21, V22, V23 및 V24)가 나타난다. 이 중, 가상 객체(V21 및 V24)는 가상 객체(V22 및 V23)보다, 화상 처리 디바이스(100)로부터 멀리 위치한다. 이 경우, 표시 제어 유닛(190)은 가상 객체(V22 및 V23)의 표시 속성들 중 임의의 것을 강조할 수 있어, 가상 객체(V22 및 V23)는 사용자에 의해 더 명확히 인식될 수 있다. 또한, 표시 제어 유닛(190)은 가상 객체(V22 및 V23)에 대한 보다 상세한 정보를 표시할 수 있다.
상술한 표시 제어에 의해, 다수의 가상 객체가 화면상에 표시되는 조건에서 사용자가 보다 관심을 가지는(즉, 사용자가 그의/그녀의 단말기를 가깝게 하는) 가상 객체(또는 그의 표시된 정보)의 가시성을 증가시킬 수 있다.
(3) 정렬 표시
표시 제어 유닛(190)은 특정 조건이 충족되는 경우, 복수의 가상 객체가 특정 간격으로 정렬되도록, 표시될 복수의 가상 객체를 재배치할 수 있다.
예를 들어, 도 18의 예를 참조하면, 화상 처리 디바이스(100)의 화면에 6 개의 가상 객체(V31 내지 V36)가 나타난다. 그러나, 이러한 가상 객체가 그의 배치에 따라 표시되면, 화면 내에서 가상 객체가 밀집되고 가상 객체의 가시성이 감소할 것이다. 따라서, 예를 들면, 표시 제어 유닛(190)은, 특정 사용자 입력이 검출되는 경우, 가상 객체를 정렬한다. 도 18의 예에서, 화상 처리 디바이스(100)에 더 가까이 위치한 4 개의 가상 객체(V32, V33, V35 및 V36)가 특정 간격으로 정렬되도록 재배치된다. 가상 객체를 재배치하기 위한 특정 조건은, 사용자 입력 대신, 예를 들면 화면 내의 가상 객체의 수가 특정 한계치 초과여야 하는 것일 수 있다.
상술한 표시 제어에 의해, 다수의 가상 객체가 화면상에 표시되는 상황에서, 가상 객체 각각이 나타내는 정보의 내용의 가시성을 증가시킬 수 있다.
(2-6. 어플리케이션의 실시예)
본 개시에 따른 기술은 상술한 AR 어플리케이션 뿐만 아니라, 다양한 어플리케이션에도 또한 적용될 수 있다. 본 섹션에서, 어플리케이션의 2 개의 실시예를 설명한다.
(1) 트랙/애니메이션의 저장
예를 들어, 객체 배치 유닛(150)은, 저장의 시작을 표시하는 사용자 입력이 검출된 경우, 복수의 화상에 대한 가상 객체의 객체 배치 행렬을 기준 환경과 관련하여 순차적으로 객체 DB(160)에 저장한다. 따라서, 움직이는 화상 처리 디바이스(100)의 트랙을 따라 추종하는 가상 객체의 트랙 또는 이동하는 가상 객체의 애니메이션을 용이하게 생성하는 것이 가능해 진다.
예를 들어, 순차적으로 저장된 복수의 객체 배치 행렬에 따라 가상 객체의 복수의 인스턴스를 단일의 입력 화상에 중첩함으로써, 표시 제어 유닛(190)은 가상 객체의 트랙을 입력 화상의 환경 내에 표시할 수 있다. 대안으로서, 순차적으로 저장된 복수의 객체 배치 행렬 각각에 따라 일련의 입력 화상 각각에 가상 객체의 인스턴스를 순차로 중첩함으로써, 표시 제어 유닛(190)은 가상 객체의 움직이는 애니메이션을 표시할 수 있다.
도 19의 예를 참조하면, 시각 t41부터 시각 t44까지의 화상 처리 디바이스(100)의 움직임 트랙을 따라, 가상 객체(V0)의 4 개의 인스턴스의 객체 배치 행렬 Marrange(t41) 내지 Marrange(t44)이 기준 환경 En1과 관련하여 저장된다. 가상 객체(V0)의 4 개의 인스턴스를 단일 프레임에 중첩하면, 가상 객체(V0)의 트랙이 표시된다. 한편, 가상 객체(V0)의 4 개의 인스턴스가 각각의 시기에 상이한 프레임에 중첩되면, 가상 객체(V0)의 움직이는 애니메이션이 표시된다.
표시 제어 유닛(190)은 상이한 시점들에 저장된 객체 배치 행렬들부터, 상이한 시점들 사이의 가상 객체의 위치 및 자세를 표현하는 추가적인 객체 배치 행렬을 보간할 수 있다. 따라서, 소수의 객체 배치 데이터로부터 더 높은 시각 해상도의 트랙 또는 애니메이션을 생성할 수 있다. 또한, 여기에서 보간 방법으로서, 예를 들면 3-차원 스플라인(spline) 곡선 또는 베지어(Bezier) 곡선을 사용하는 곡선 보간 방법을 사용하면, 매끄러운 보간을 수행할 수 있다.
(2) 촬상 위치 및 촬상 자세의 저장
본 개시에 따른 기술이 촬상 디바이스에 탑재될 경우에, 촬상의 이력을 피사체의 환경과 관련하여 기록할 수 있다. 예를 들면, 화상 처리 디바이스(100)가 디지털 카메라, 또는 촬상 기능을 갖는 단말기라고 가정한다. 이러한 경우, 입력 화상은 피사체의 사진이다. 객체 배치 유닛(150)은 피사체가 캡처되었을 때 촬상 위치 및 촬상 자세를 기록하기 위해서, 상술한 객체 배치 행렬을 데이터베이스에 등록한다. 그 후, 등록된 객체 배치 행렬에 따라 동일한 환경에서 가상 객체가 단말기의 화면상에 표시되면, 사용자는 어떤 촬상 위치 및 촬상 자세로 사진이 캡처되었는지 알 수 있다. 객체 배치 행렬을 등록하기 위한 트리거는 예를 들면, 화상을 캡처하기 위한 명령어(instruction)에 대응하는 사용자 입력(예를 들면, 셔터 버튼의 누름)일 수 있다. 이러한 구성에 따라, 화상을 캡처하기 위한 명령어가 검출된 경우에 객체 배치 행렬이 자동으로 데이터베이스에 등록된다. 따라서, 사진을 찍는 사용자에게 추가적인 부담을 부과하지 않으면서, 촬상 위치 및 촬상 자세를 등록하는 것이 가능하다.
<3. 제2 실시양태>
제2 실시양태에서, 상술한 화상 처리 디바이스(100)와 동일한 구성을 각각 가지는 복수의 단말기 디바이스(300)가 AR 공간에 배치된 가상 객체를 공유한다.
(3-1. 시스템 개요)
도 20을 참조하면, 제2 실시양태에 따른 화상 처리 시스템을 구성하는 관리 서버(200), 단말기 디바이스(300a) 및 단말기 디바이스(300b)가 나타나 있다. 본 명세서에서, 단말기 디바이스(300a) 및 단말기 디바이스(300b)를 서로 구별할 필요가 없으면, 이들을 단말기 디바이스(300)로 총칭한다는 것을 주의한다.
단말기 디바이스(300)는 가상 객체를 특정 기준 환경 내에 배치한다. 도 20의 예에서, 테이블(11)을 포함하는 단일 공간에 해당하는 환경(4)이 기준 환경으로서 나타나 있다. 그러나, 본 개시에 따른 기술이 적용되는 기준 환경은 이에 한정되지 않는다. 예를 들면, 단말기 디바이스(300a)가 존재하는 공간과 단말기 디바이스(300b)가 존재하는 공간이 상이할 때도, 두 공간에게 공통되는 특징점군 또는 객체가 존재할 경우 또는 동일하게 관찰될 수 있는 교정된 좌표계가 존재할 경우에는, 공간에 해당하는 복수의 환경을 단일의 공통 기준 환경으로서 취급할 수 있다. 대안으로서, 단일 공간에서 상이한 시각들에 인식되는 환경들을, 단일의 공통 기준 환경으로서 취급할 수 있다.
예를 들어, 도 21a를 참조하면, 환경(5a) 내에 단말기 디바이스(300a) 및 책(15a)이 존재한다. 도 21b를 참조하면, 환경(5b) 내에 단말기 디바이스(300b) 및 책(15b)이 존재한다. 책(15a) 및 책(15b)은 공통적인 특징점군을 갖는다. 따라서, 단말기 디바이스(300a 및 300b)는 이러한 특징점군을 사용하여 단일의 공통 기준 좌표계 CS5를 인식하고, 따라서 기준 좌표계 CS5와 관련된 가상 객체를 공유할 수 있다.
관리 서버(200)는 공유되는 가상 객체에 대한 데이터를 관리하는 정보 처리 디바이스다. 관리 서버(200)는 단말기 디바이스(300)와는 별도로 제공되는 디바이스 또는 단말기 디바이스(300)의 일부일 수 있다.
(3-2. 서버의 구성)
도 22는 관리 서버(200)의 예시적인 구성을 나타내는 블록도다. 도 22를 참조하면, 관리 서버(200)는 통신 유닛(210), 제어 유닛(220) 및 저장 유닛(250)을 포함한다.
통신 유닛(210)은 관리 서버(200)와 다른 디바이스의 통신을 중개하는 통신 인터페이스다. 통신 유닛(210)은 특정 무선 통신 프로토콜 또는 유선 통신 프로토콜을 지원하고, 다른 디바이스와의 통신 연결을 형성하는 통신 인터페이스다.
제어 유닛(220)은 처리기, 예컨대 CPU 또는 DSP에 해당한다. 제어 유닛(220)은 저장 유닛(250) 또는 다른 저장 매체에 저장되는 프로그램을 실행함으로써, 관리 서버(200)의 기능을 동작시킨다. 사용자 관리 유닛(230) 및 객체 관리 유닛(240)은 관리 서버(200)의 예시적인 기능 모듈이다.
사용자 관리 유닛(230)은 가상 객체의 공유에 참여하는 사용자를 관리하는 기능 모듈이다. 사용자 관리 유닛(230)은 예를 들면, 사용자의 인증, 사용자의 그룹화, 단말기 디바이스(300)로의 사용자 정보 제공 등을 제어한다.
객체 관리 유닛(240)은 공유된 가상 객체에 대한 데이터를 관리하는 기능 모듈이다. 객체 관리 유닛(240)은 예를 들면, 기준 환경 내에 가상 객체를 배치한 단말기 디바이스(300)로부터 통신 유닛(210)을 통하여 데이터 등록 요청을 수신한다. 데이터 등록 요청은 공유될 가상 객체에 대한 객체 배치 데이터를 포함한다. 또한, 객체 관리 유닛(240)은 가상 객체의 형상 및 가상 객체에 의해 나타내어진 정보를 나타내는 객체 데이터를 단말기 디바이스(300)로부터 수신할 수 있다. 객체 관리 유닛(240)은 이러한 데이터 등록 요청의 수신에 응답하여, 객체 배치 데이터 및 객체 데이터를 저장 유닛(250)에 저장한다. 또한, 객체 관리 유닛(240)은 단말기 디바이스(300)로부터의 데이터 배포 요청에 응답하여, 또는 주기적으로, 통신 유닛(210)을 통하여 등록된 객체 배치 데이터(및 객체 데이터)를 단말기 디바이스(300)에 배포한다.
저장 유닛(250)은 저장 매체, 예컨대 반도체 메모리 또는 하드 디스크를 포함하고, 관리 서버(200)에 의해 수행될 처리를 위한 프로그램 및 데이터를 저장한다. 저장 유닛(250)에 저장되는 데이터는 객체 배치 데이터(252) 및 객체 데이터(254)를 포함한다.
도 23은 객체 배치 데이터(252)의 예를 나타낸다. 도 23의 예에서, 객체 배치 데이터(252)는 "기준 환경", "객체 ID", "작성자 ID" 및 "배치"라고 하는 4 개 데이터 항목을 포함한다. "기준 환경"은 각 가상 객체가 배치된 환경을 식별하는 식별자다. "객체 ID"는 각 가상 객체를 고유하게 식별하기 위한 식별자다. "작성자 ID"는 각 가상 객체를 배치한 디바이스 또는 사용자를 식별하기 위한 식별자다. "배치"는 각 가상 객체의 객체 배치 행렬을 저장하기 위한 데이터 항목이다.
도 24는 객체 데이터(254)의 예를 나타낸다. 도 24의 예에서, 객체 데이터(254)는 "객체 ID", "표시 속성 데이터", "사용자 데이터", "상태" 및 "디바이스 데이터"의 5 개 데이터 항목을 포함한다. "객체 ID"는 각 가상 객체를 고유하게 식별하기 위한 식별자다. "표시 속성 데이터"는 각 가상 객체의 표시 속성을 정의하는 데이터이며, 단말기 디바이스(300)에 가상 객체를 표시하는 데에 사용된다. "사용자 데이터", "상태" 및 "디바이스 데이터"는 각 가상 객체를 배치한 단말기에 관련된 관련 정보의 예다. 예를 들면, "사용자 데이터"는 단말기의 사용자의 식별 정보, 명칭 또는 얼굴 사진 등을 포함할 수 있다. "상태"는 단말기의 사용자의 존재 정보, 조작 상태 정보 등을 포함할 수 있다. "디바이스 데이터"는 단말기의 식별 정보, 명칭, 외관 데이터 등을 포함할 수 있다.
객체 관리 유닛(240)은 도 24에 예시적으로 나타낸 관련 정보의 적어도 일부를 단말기 디바이스(300)에 배포하고, 배포한 관련 정보를 가상 객체와 함께 단말기 디바이스(300)에 표시할 수 있다.
(3-3. 단말기의 구성)
단말기 디바이스(300)의 하드웨어 구성은 도 9에 예시적으로 나타낸 화상 처리 디바이스(100)의 하드웨어 구성과 유사할 수 있다. 도 25는 단말기 디바이스(300)의 논리적 기능의 예시적인 구성을 나타내는 블록도다. 도 25를 참조하면, 단말기 디바이스(300)는 화상 획득 유닛(120), 데이터 획득 유닛(325), 인식 유닛(130), 계산 유닛(140), 객체 배치 유닛(350), 등록 유닛(355), 객체 DB(360), 조작 제어 유닛(380) 및 표시 제어 유닛(390)을 포함한다.
(1) 데이터 획득 유닛
데이터 획득 유닛(325)은 주기적으로 또는 사용자로부터의 명령어에 응답하여, 데이터 배포 요청을 관리 서버(200)에 전송한다. 그리고, 데이터 획득 유닛(325)은 다른 단말기와 공유될 가상 객체에 대한 객체 배치 데이터 및 객체 데이터를 획득한다.
데이터 획득 유닛(325)에 의해 획득된 객체 배치 데이터는 다른 단말기에 의해 배치된 가상 객체의 객체 배치 행렬을 포함한다. 객체 배치 행렬은 다른 단말기에 의해 인식되는 환경 인식 행렬의 역행렬을 기초로 결정되는 행렬이며, 기준 환경 내에 다른 단말기에 의해 배치된 가상 객체의 위치 및 자세를 표현한다. 또한, 데이터 획득 유닛(325)에 의해 획득된 객체 데이터는 예컨대 가상 객체를 배치한 단말기와 관련되는 도 24에 예시적으로 나타낸 것과 같은 관련 정보를 포함한다. 데이터 획득 유닛(325)은 객체 배치 데이터 및 객체 데이터를 객체 DB(360)에 저장한다.
(2) 객체 배치 유닛
객체 배치 유닛(350)은, 화상 처리 디바이스(100)의 객체 배치 유닛(150)과 같이, 인식 유닛(130)에 의해 인식되는 환경 인식 행렬의 역행렬에 근거한 위치 및 자세를 갖는 가상 객체를, 기준 환경 내에 배치한다. 배치된 가상 객체의 위치 및 자세는 객체 배치 행렬에 의해 표현된다.
객체 배치 유닛(350)은 예를 들면, 환경 인식 행렬의 역행렬 Mrecog -1에 의해 표현되는 위치 및 자세로, 단말기의 위치 및 자세에 가상 객체의 위치 및 자세가 중첩되도록, 가상 객체를 배치할 수 있다. 대안으로서, 객체 배치 유닛(350)은 상술한 전방 오프셋 행렬 및 조작 오프셋 행렬 중 하나 또는 양자 모두를 사용하여 단말기의 위치 및 자세로부터 오프셋된 위치에 가상 객체를 배치할 수 있다.
객체 배치 유닛(350)은 기준 환경 내에 배치한 가상 객체의 객체 배치 행렬을 표시 제어 유닛(390)에 출력한다. 또한, 객체 배치 유닛(350)은, 조작 제어 유닛(380)이 특정 사용자 입력을 검출하는 경우에, 객체 배치 행렬을 기준 환경과 관련하여 객체 DB(360)에 저장하고 이를 등록 유닛(355)에 출력한다.
(3) 등록 유닛
등록 유닛(355)은 객체 배치 유닛(350)으로부터 객체 배치 행렬이 수신되면, 통신 유닛(112)을 통하여 데이터 등록 요청을 관리 서버(200)에 전송한다. 데이터 등록 요청은 객체 배치 행렬과 함께, 가상 객체의 표시 속성을 정의하는 표시 속성 데이터 및 상술한 다양한 관련 정보를 포함할 수 있다.
(4) 객체 DB
객체 DB(360)는 화상 처리 디바이스(100)의 객체 DB(160)와 같이, 객체 배치 유닛(350)에 의해 배치되는 가상 객체의 객체 배치 행렬을 저장하는 데이터베이스다. 또한, 객체 DB(360)는 데이터 획득 유닛(325)에 의해 관리 서버(200)로부터 수신된 객체 배치 데이터 및 객체 데이터를 저장한다. 객체 DB(360)에 저장된 데이터는 표시 제어 유닛(390)이 가상 객체의 표시 처리를 실행할 때에 판독된다.
(5) 조작 제어 유닛
조작 제어 유닛(380)은 화상 처리 디바이스(100)의 조작 제어 유닛(180)과 같이, 단말기 디바이스(300)에 의해 실행되는 AR 어플리케이션을 사용자가 조작하게 하는 사용자 인터페이스를 제공한다. 예를 들면, 조작 제어 유닛(380)은 터치 또는 드래그의 시작부터 종료까지의 일련의 조작을 통해서, 사용자가 가상 객체의 배치를 원하는 위치 및 자세에 자유롭게 조정하도록 한다. 조작 제어 유닛(380)은, 사용자 입력을 검출하면, 검출한 사용자 입력의 종류 및 입력 위치를 나타내는 입력 정보를 객체 배치 유닛(350)에 출력한다.
(6) 표시 제어 유닛
표시 제어 유닛(390)은 객체 DB(360)에 저장되는 객체 배치 데이터에 따라 가상 객체를 입력 화상에 중첩함으로써, 출력 화상을 생성한다. 그리고, 표시 제어 유닛(390)은 생성한 출력 화상을 표시 유닛(110)의 화면에 표시한다.
본 실시양태에 표시된 가상 객체는 다른 단말기에 의해 기준 환경 내에 배치된 가상 객체를 포함한다. 다른 단말기에 의해 기준 환경 내에 배치된 가상 객체는 다른 단말기의 입력 화상에 나타난 기준 환경의 위치 및 자세를 표현하는 제1 환경 인식 행렬의 역행렬에 기초하여 결정되는 객체 배치 행렬을 갖는다. 한편, 인식 유닛(130)은 화상 획득 유닛(120)에 의해 획득되는 입력 화상에 나타난 기준 환경의 위치 및 자세를 표현하는 제2 환경 인식 행렬을 인식한다. 이 경우, 표시 제어 유닛(390)은 도 8을 참조하여 설명한 방법에 따라, 제2 환경 인식 행렬과 다른 단말기에 의해 배치된 가상 객체의 객체 배치 행렬에 의해 표현되는 위치 및 자세로, 가상 객체를 입력 화상에 중첩한다.
제1 실시양태에 따른 표시 제어 유닛(190)과 같이, 표시 제어 유닛(390)은 가상 객체가 기준면을 가질 경우, 화상 처리 디바이스(100)의 화면에 가상 객체의 기준면이 나타나는지 여부에 따라 가상 객체의 표시를 변화시킬 수 있다. 또한, 표시 제어 유닛(390)은 단말기 디바이스(300)와 가상 객체 사이의 거리에 따라 가상 객체의 표시를 변화시킬 수 있다. 또한, 표시 제어 유닛(390)은 특정 조건이 충족될 경우에, 가상 객체가 특정 간격으로 정렬되도록 표시될 복수의 가상 객체를 재배치할 수 있다.
또한, 본 실시양태에서, 표시 제어 유닛(390)은 가상 객체에 대응하는 위치에, 가상 객체를 배치한 단말기가 위치하는지 여부에 따라, 가상 객체의 표시를 변화시킬 수 있다.
예를 들면, 화상에서 단말기를 식별하는 표시로서의 역할을 하는 가상 객체를 사용한다고 가정한다. 배치된 가상 객체의 근방에, 가상 객체를 배치한 단말기가 존재할 경우, 실제 공간에서 단말기를 관찰할 수 있다. 따라서, 단말기(또는 그의 사용자)에 대한 상세한 정보(예를 들면, 사용자 데이터, 상태 및 디바이스 데이터)가 반드시 표시될 필요는 없다. 반면에, 배치된 가상 객체의 근방에, 가상 객체를 배치한 단말기가 존재하지 않을 경우, 단말기(또는 그의 사용자)에 대한 보다 상세한 정보가 표시되는 것이 바람직할 것이다.
도 26을 참조하면, 단말기 디바이스(300b)의 화면상에, 단말기 디바이스(300a)에 의해 배치된 가상 객체(VA1)가 표시된다. 가상 객체(VA1)의 근방에는 단말기 디바이스(300a)가 존재한다. 이러한 상황에서, 표시 제어 유닛(390)은 단말기 디바이스(300a)의 사용자에 관한 간단한 정보(도 26의 예에서는 사용자 ID "Ua")만을 가상 객체(VA1)에 부가한다.
한편, 도 27을 참조하면, 단말기 디바이스(300b)의 화면상에 단말기 디바이스(300a)에 의해 배치된 가상 객체(VA1)가 다시 표시된다. 가상 객체(VA1)의 근방에 단말기 디바이스(300a)는 존재하지 않는다. 단말기 디바이스(300a)는 단말기 디바이스(300b)와는 상이한 공간(그러나, 그에 대해 공통 기준 환경을 갖는 공간)에 존재할 수 있거나, 또는 단말기 디바이스(300a)는 단말기 디바이스(300b)와 동일한 공간에서 과거에 존재한 것일 수 있다. 이러한 상황에서, 표시 제어 유닛(390)은 단말기 디바이스(300a)의 사용자에 관한 상세한 정보(도 27의 예에서는 사용자 ID, 공간 및 얼굴 사진)를 가상 객체(VA1)에 부가한다. 따라서, 단말기 디바이스(300b)의 사용자는 보이지 않는 단말기 디바이스(300a)의 사용자의 세부사항을 알 수 있다.
표시 제어 유닛(390)은 도 26 또는 도 27에 예시적으로 나타낸 것 같은 가상 객체를 지정하는 사용자 입력이 검출되었을 경우에, 가상 객체를 배치한 단말기와의 통신을 사용하는 어플리케이션을 시작할 수 있다. 여기서 시작되는 어플리케이션은 임의의 어플리케이션, 예컨대 메일러, 인스턴트 메신저, 소셜 미디어 툴, 또는 콘텐츠 공유 어플리케이션일 수 있다. 도 28의 예에서, 단말기 디바이스(300b)의 사용자가 가상 객체(VA1)를 두드리면(taps), 단말기 디바이스(300a)와의 통신을 시작하기 위해서 인스턴트 메신저가 시작된다. 이러한 구성에 따라, 사용자들 간에 가상 객체를 통하여 쉽게 통신을 하는 것이 가능하다.
(3-4. 처리 흐름)
도 29는 제2 실시양태에 따른 디바이스들 간에 수행된 처리의 예시적인 흐름을 나타내는 순서도다.
도 29를 참조하면, 우선 단말기 디바이스(300a)로부터 데이터 배포 요청이 관리 서버(200)에 전송되고, 관리 서버(200)로부터 응답이 회신된다(단계(S210)). 이 시점에서, 기준 환경에 가상 객체는 배치되지 않는다. 따라서, 단말기 디바이스(300a)는 객체 배치 데이터를 수신하지 않는다. 마찬가지로, 단말기 디바이스(300b)로부터 데이터 배포 요청이 관리 서버(200)에 전송되고, 관리 서버(200)로부터 응답이 회신된다(단계(S215)).
그 다음, 도 14 및 15를 참조하여 설명한 화상 처리를 통해서, 단말기 디바이스(300a)에 의해 기준 환경에 가상 객체가 배치된다(단계(S220)). 그리고, 단말기 디바이스(300a)는 데이터 등록 요청을 관리 서버(200)에 전송한다(단계(S225)). 데이터 등록 요청은 배치된 가상 객체의 객체 배치 행렬을 포함한다.
관리 서버(200)는, 데이터 등록 요청을 수신하면, 객체 배치 행렬 및 다른 데이터를 데이터베이스에 등록한다(단계(S230)). 그리고, 관리 서버(200)는 등록 완료를 단말기 디바이스(300a)에 통지한다(단계(S235)).
그 후, 단말기 디바이스(300a)로부터 데이터 배포 요청이 다시 관리 서버(200)에 전송되고, 관리 서버(200)로부터 응답이 회신된다(단계(S240)). 또한, 단말기 디바이스(300b)로부터 데이터 배포 요청이 관리 서버(200)에 전송되고, 관리 서버(200)로부터 응답이 회신된다(단계(S245)). 이 시점에서, 단말기 디바이스(300a)에 의해 배치된 가상 객체가 관리 서버(200)의 데이터베이스에 등록된다. 따라서, 관리 서버(200)로부터 단말기 디바이스(300b)에 객체 배치 데이터가 배포될 수 있다.
단말기 디바이스(300a)에 의해 배치된 가상 객체는 단말기 디바이스(300a)에 표시된다(단계(S250)). 또한, 관리 서버(200)로부터 수신된 객체 배치 데이터를 이용하여 단말기 디바이스(300b)에서 가상 객체가 표시된다(단계(S255)). 이 시점에서, 표시된 가상 객체의 근방에 단말기 디바이스(300a)가 존재한다. 따라서, 단말기 디바이스(300b)에서 단지 단순한 정보만이 가상 객체에 부가될 수 있다.
그 후, 단말기 디바이스(300a)가 단말기 디바이스(300b)의 화면 외부의 위치로 이동했다고 가정한다. 단말기 디바이스(300b)는 계속해서 관리 서버(200)와 통신하고(단계(S260)), 가상 객체를 표시한다(단계(S265)). 이 시점에서, 표시된 가상 객체의 근방에 단말기 디바이스(300a)는 존재하지 않는다. 따라서, 단말기 디바이스(300b)에서 단말기 디바이스(300a)에 대한 상세한 정보가 가상 객체에 부가될 수 있다.
<4. 결론>
상기에서, 본 개시에 따른 기술의 2 개의 실시양태를 상세하게 설명했다. 이러한 실시양태에 따르면, 기준 환경 내의 단말기의 위치 및 자세에 대한 기준 환경의 위치 및 자세를 표현하는 환경 인식 행렬이 인식되고, 인식된 환경 인식 행렬의 역행렬에 근거한 위치 및 자세로, 가상 객체가 기준 환경 내에 배치된다. 따라서, 사용자는 단말기를 3-차원 공간 내에서 움직임으로써, AR 공간에 가상 객체를 자유롭고 용이하게 배치할 수 있다. 또한, 가상 객체의 배치가 기준 환경과 관련되기 때문에, 공통 환경을 인식할 수 있는 단말기들 간에, AR 공간에 배치된 가상 객체가 용이하게 공유될 수 있다.
또한, 가상 객체의 배치가 환경 인식 행렬의 역행렬에 의해 표현되는 위치로부터 화상의 촬상 방향으로 오프셋된 경우, 사용자는 배치된 가상 객체를 화면상에서 즉시 인식할 수 있다. 따라서, 사용자는 가상 객체를 관찰하면서 가상 객체의 배치를 조정할 수 있다.
또한, 가상 객체의 배치가 화면상의 사용자 입력 위치에 따른 환경 인식 행렬의 역행렬에 의해 표현되는 위치로부터 화면에 따른 방향으로 오프셋된 경우, 단말기를 움직이지 않고 가상 객체의 배치를 미세하게 조정할 수 있다.
가상 객체의 배치는 객체 배치 행렬에 의해 표현되고, 객체 배치 행렬 및 최신의 환경 인식 행렬에 의해 표현되는 위치 및 자세로 가상 객체가 화면상에 표시될 수 있다. 따라서, 단말기와 기준 환경 간의 위치 관계가 변하는 경우에도, 기준 환경에 대한 가상 객체의 상대적인 위치 및 자세가 유지되도록, 가상 객체를 표시할 수 있다. 따라서, 접착 메모지와 같이 가상 객체를 AR 공간에 부착하는 것 같은 가상 객체의 배치가 가능해진다.
본 명세서에서 설명한 각 디바이스에 의해 수행되는 일련의 제어 처리는 소프트웨어, 하드웨어, 또는 그의 조합을 사용하여 실현될 수 있다는 것을 주의한다. 소프트웨어를 구성하는 프로그램은 각 디바이스의 내부 또는 외부에 제공되는 저장 매체에 미리 저장된다. 그리고, 각 프로그램은, 예를 들면 실행시에 RAM(Random Access Memory; 임의 접근 기억 장치)으로 판독되고, 처리기, 예컨대 CPU에 의해 실행된다.
또한, 각 디바이스의 논리적 기능의 일부는, 디바이스에 대해 실시되는 대신에, 클라우드 컴퓨팅 환경 내에 존재하는 디바이스에 대해 원격 위치에 있는 자산(assets)으로 실시될 수 있다. 이러한 경우에, 논리적 기능들 간에 교환되는 정보는 도 9에 예시적으로 나타낸 통신 유닛(112)을 통하여 디바이스들 간에 전송 또는 수신된다.
첨부 도면을 참조하면서 본 개시의 바람직한 실시양태에 대해서 상세하게 설명했지만, 본 개시는 이에 한정되지 않는다. 첨부한 특허청구의 범위 또는 그의 등가물의 기술적 범위 내에 있는 한, 다양한 변경 또는 수정이 가능하다는 것은 통상의 기술자에게 명백하다. 또한 이러한 변경 또는 수정이 본 개시의 기술적 범위에 속한다는 것을 이해해야 한다.
추가적으로, 본 기술은 또한 이하와 같이 구성될 수 있다.
정보 처리 장치의 검출된 자세의 표시를 수신하고,
정보 처리 장치의 검출된 자세와 관련된 자세로 기준 환경에 가상 객체를 부착하도록
구성된 회로소자를 갖는 제어 유닛
을 갖는 정보 처리 장치.
또한 정보 처리 장치는
가상 객체부터 화상 처리 장치까지의 거리에 따라 가상 객체의 표시 속성을 변화시키도록 구성된 표시 제어 유닛을 포함할 수 있다.
정보 처리 장치의 한 측면은 거리가 특정의 더 긴 거리보다 짧을 때, 표시 제어 유닛이 표시 속성을 더 크게 강조하는 것이다.
또한 정보 처리 장치는
가상 객체와 다른 가상 객체의 표시를, 그들 사이에 특정 표시 거리가 설정되도록 재배치하는 표시 제어 유닛을 포함할 수 있고, 상기 표시 제어 유닛은 특정 조건이 충족되는 것에 응답하여 표시를 재배치한다.
또한 정보 처리 장치는
기준 환경에 대한 복수의 화상에 대해 가상 객체의 객체 배치 행렬을 순차적으로 저장하도록 구성되는 객체 배치 유닛을 포함할 수 있다.
정보 처리 장치의 한 측면은
움직일 경우, 화상 처리 디바이스의 트랙을 따라 움직임에 따라, 제어 유닛이 가상 객체의 트랙 또는 가상 객체의 애니메이션을 생성하는 것이다.
또한 정보 처리 장치는
기준 환경과 관련된 가상 객체의 정보를, 가상 객체의 정보를 등록하는 객체 관리 유닛에 제공하는 통신 인터페이스를 포함할 수 있다.
정보 처리 장치의 한 측면은
상기 통신 인터페이스가 원격 위치에서 클라우드 리소스로서 실시되는 객체 관리 유닛에 상기 정보를 보내는 것이다.
정보 처리 장치의 한 측면은
가상 객체의 상기 정보가 다른 정보 처리 장치로 탐색 가능하여, 다른 정보 처리 장치가 가상 객체가 부착된 기준 환경을 관찰할 때, 다른 정보 처리 장치가 가상 객체를 공유하고 가상 객체를 표시할 수 있는 것이다.
또한 정보 처리 장치는
기준 환경 내에서 다른 정보 처리 디바이스와 관련하여 사용자 ID가 표시되게 하는 표시 제어기를 포함할 수 있다.
또한 정보 처리 장치는
기준 환경에 현재 존재하지 않는 다른 정보 처리 디바이스의 사용자 ID가 기준 환경과 관련하여 표시되게 하는 표시 제어기를 포함할 수 있다.
정보 처리 장치의 한 측면은
다른 정보 처리 디바이스가 과거에 기준 환경에 위치했거나, 기준 환경 외부의 위치로부터 기준 환경을 원격으로 관찰하는 것이다.
정보 처리 장치의 한 측면은
사용자 ID가 사용자 ID와 관련된 사용자에 대한 개인적 정보를 포함하는 것이다.
또한 정보 처리 장치는
그를 통하여 사용자 ID와 관련된 사용자와의 소셜 미디어 통신이 공유되는 통신 인터페이스를 포함할 수 있다.
또한 정보 처리 장치는
터치 조작에 응답하여 가상 객체를 부착하도록 제어 유닛을 트리거하도록 구성된 터치 조작을 갖는 사용자 인터페이스를 포함할 수 있다.
또한 정보 처리 장치는
두드림 및 홀드 조작에 응답하여 기준 환경에서 가상 객체를 움직이게 하도록 제어 유닛을 트리거하도록 구성된 두드림 및 홀드 조작을 갖는 사용자 인터페이스를 포함할 수 있다.
또한 정보 처리 장치는
화상 인식에 근거한 검출된 자세를 검출하는 인식 유닛을 포함할 수 있고, 상기 검출된 자세는 실물의 일부인 기준면에 기초한다.
화상 처리 장치의 한 측면은
가상 객체가 특정 위치에서 정보 처리 장치의 위치 및 자세에 중첩되도록, 제어 유닛이 가상 객체를 배치하는 것이다.
또한 정보 처리 장치는
표시 화면; 및
표시 화면상의 사용자 특유의 입력 위치에 따른 표시 화면을 따르는 방향으로 오프셋된 위치에 가상 객체를 배치하는 객체 배치 유닛
을 포함할 수 있다.
또한 정보 처리 장치는
원격 디바이스로부터 원격 디바이스의 검출된 자세의 표시 및 원격 디바이스에 의해 제공되는 가상 객체를 수신하는 통신 인터페이스; 및
가상 객체를 원격 디바이스의 기준 환경에 원격 디바이스의 검출된 자세와 관련된 자세로 부착하도록 구성된 회로소자
를 포함할 수 있다.
비-일시적 컴퓨터 판독가능 매체는,
처리 회로소자에 의해 실행될 때,
정보 처리 장치의 검출된 자세의 표시를 수신하는 단계; 및
가상 객체를 정보 처리 장치의 검출된 자세와 관련된 자세로 기준 환경에 부착하는 단계
를 포함하는 방법을 수행하는 컴퓨터 판독가능한 명령어들을 갖는다.
비-일시적 컴퓨터 판독가능 매체는,
처리 회로소자에 의해 실행될 때,
원격 디바이스로부터 원격 디바이스의 검출된 자세의 표시 및 원격 디바이스에 의해 제공되는 가상 객체를 수신하는 단계; 및
회로소자로 가상 객체를 원격 디바이스의 검출된 자세와 관련된 자세로 원격 디바이스의 기준 환경에 부착하는 단계
를 포함하는 방법을 수행하는 컴퓨터 판독가능한 명령어들을 갖는다.
화상 처리 디바이스는,
화상을 캡처한 단말기의 위치 및 자세에 대한, 화상에 나타난 환경의 위치 및 자세를 표현하는 환경 인식 행렬을 인식하도록 구성된 인식 유닛;
환경 인식 행렬의 역행렬을 계산하도록 구성된 계산 유닛; 및
환경 인식 행렬의 역행렬에 근거한 위치 및 자세를 갖는 가상 객체를 환경 내에 배치하도록 구성된 객체 배치 유닛
을 포함한다.
정보 처리 장치의 한 측면은
객체 배치 유닛이 배치된 가상 객체의 위치 및 자세를 표현하는 객체 배치 행렬을 환경과 관련하여 저장 매체에 저장하는 것이다.
정보 처리 장치의 한 측면은
객체 배치 유닛이 환경 인식 행렬의 역행렬로 표현되는 위치로부터 화상의 촬상 방향으로 오프셋된 위치에 가상 객체를 배치하는 것이다.
또한 정보 처리 장치는
객체 배치 행렬이 제1 시점에 저장되고 환경 인식 행렬이 제1 시점 다음의 제2 시점에 신규하게 인식될 때, 객체 배치 행렬 및 신규하게 인식된 환경 인식 행렬로 표현되는 위치 및 자세로 단말기의 화면상에 가상 객체를 표시하도록 구성되는 표시 제어 유닛을 포함할 수 있다.
정보 처리 장치의 한 측면은
객체 배치 유닛이 가상 객체를 화면상의 사용자 입력 위치에 따라 단말기의 화면을 따른 방향으로 오프셋된 위치에 배치하는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이, 제1 사용자 입력이 검출될 때, 단말기의 화면상에 가상 객체를 표시하는 것, 및
객체 배치 유닛이, 제1 사용자 입력 다음의 제2 사용자 입력이 검출될 때, 표시 제어 유닛에 의해 표시되는 가상 객체의 객체 배치 행렬을 환경과 관련하여 저장 매체에 저장하는 것이다.
정보 처리 장치의 한 측면은
제1 사용자 입력 및 제2 사용자 입력이 일련의 조작의 시작 및 종료에 각각 대응하는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이 가상 객체의 표시를 제어하여, 제1 사용자 입력이 검출된 시점의 단말기에 대한 가상 객체의 상대적 위치 및 자세를 제1 사용자 입력이 검출된 후부터 제2 사용자 입력이 검출될 때까지의 기간 동안 유지하는 것이다.
정보 처리 장치의 한 측면은
객체 배치 유닛이, 신규 환경이 제2 사용자 입력이 검출된 시점에 화상으로부터 인식될 때, 표시된 가상 객체의 위치 및 자세를 표현하는 신규 객체 배치 행렬을 환경과 관련하여 저장 매체에 저장하는 것이다.
정보 처리 장치의 한 측면은
객체 배치 유닛이, 제3 사용자 입력이 검출될 때, 복수의 화상에 대한 객체 배치 행렬을 환경과 관련하여 저장 매체에 순차적으로 저장하는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이 연속하여 저장된 객체 배치 행렬들을 사용하여 환경 내 가상 객체의 트랙을 표시하는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이 연속하여 저장된 객체 배치 행렬들을 사용하여 환경 내 가상 객체가 움직이는 애니메이션을 표시하는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이, 상이한 시점들에 저장된 객체 배치 행렬들로부터 상이한 시점들 간의 가상 객체의 위치 및 자세를 보간하는 것이다.
정보 처리 장치의 한 측면은
단말기가 촬상 디바이스이고,
가상 객체가 환경 내에 배치되어 화상의 촬상 위치 및 촬상 자세를 기록하는 것이다.
정보 처리 장치의 한 측면은
객체 배치 유닛이, 화상을 캡처하기 위한 명령어에 상응하는 제4 사용자 입력이 검출될 때, 저장 매체에 객체 배치 행렬을 저장하는 것이다.
정보 처리 장치의 한 측면은
가상 객체가 사전정의된 기준면을 가지고,
표시 제어 유닛이, 가상 객체의 기준면이 단말기의 화면에 나타나는지 여부에 따라 가상 객체의 표시를 변화시키는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이 단말기와 가상 객체 사이의 거리에 따라 가상 객체의 표시를 변화시키는 것이다.
정보 처리 장치의 한 측면은
표시 제어 유닛이, 각각 객체 배치 행렬을 갖는 복수의 가상 객체가 존재할 때, 특정 조건이 만족되는 경우 가상 객체들이 특정 간격으로 정렬되도록 복수의 가상 객체를 재배치하는 것이다.
정보 처리 장치의 한 측면은
인식 유닛, 계산 유닛 또는 객체 배치 유닛 중 적어도 하나가 화상 처리 디바이스 대신에 클라우드 컴퓨팅 환경에 존재하는 디바이스에 의해 실시되는 것이다.
화상 처리 방법은,
화상을 캡처한 단말기의 위치 및 자세에 대하여, 화상에 나타나는 환경의 위치 및 자세를 표현하는 환경 인식 행렬을 인식하는 단계;
환경 인식 행렬의 역행렬을 계산하는 단계; 및
환경 인식 행렬의 역행렬에 근거한 위치 및 자세를 갖는 가상 객체를 환경 내에 배치하는 단계
를 포함한다.
프로그램은,
화상을 캡처한 단말기의 위치 및 자세에 대하여, 화상에 나타나는 환경의 위치 및 자세를 표현하는 환경 인식 행렬을 인식하도록 구성된 인식 유닛;
환경 인식 행렬의 역행렬을 계산하도록 구성된 계산 유닛; 및
환경 인식 행렬의 역행렬에 근거한 위치 및 자세를 갖는 가상 객체를 환경 내에 배치하도록 구성되는 객체 배치 유닛
으로서 컴퓨터가 기능하게 한다.
100, 300: 화상 처리 디바이스(단말기 디바이스)
120: 화상 획득 유닛
325: 데이터 획득 유닛
130: 인식 유닛
140: 계산 유닛
150, 350: 객체 배치 유닛
355: 등록 유닛
180, 380: 조작 제어 유닛
190, 390: 표시 제어 유닛

Claims (20)

  1. 정보 처리 장치의 검출된 자세의 표시를 수신하고,
    상기 정보 처리 장치의 검출된 자세와 관련된 자세로 기준 환경에 가상 객체를 부착하도록
    구성된 회로소자를 갖는 제어 유닛
    을 포함하는 정보 처리 장치.
  2. 제1항에 있어서, 상기 가상 객체로부터 화상 처리 장치까지의 거리에 따라 상기 가상 객체의 표시 속성을 변화시키도록 구성된 표시 제어 유닛
    을 더 포함하는 정보 처리 장치.
  3. 제2항에 있어서, 거리가 특정의 더 긴 거리(predetermined longer distance)보다 짧을 때, 상기 표시 제어 유닛이 표시 속성을 더 크게 강조하는,
    정보 처리 장치.
  4. 제1항에 있어서, 상기 가상 객체 및 다른 가상 객체의 표시를, 그들 사이에 특정 표시 거리가 설정되도록 재배치하는 표시 제어 유닛을 더 포함하고, 상기 표시 제어 유닛은 특정 조건이 충족되는 것에 응답하여 표시를 재배치하는,
    정보 처리 장치.
  5. 제1항에 있어서, 상기 기준 환경에 대하여 복수의 화상에 대한 상기 가상 객체의 객체 배치 행렬들을 순차적으로 저장하도록 구성되는 객체 배치 유닛
    을 더 포함하는 정보 처리 장치.
  6. 제5항에 있어서, 움직일 경우, 화상 처리 디바이스의 트랙을 따라 움직임에 따라, 상기 제어 유닛이 상기 가상 객체의 트랙 또는 가상 객체의 애니메이션을 생성하는,
    정보 처리 장치.
  7. 제1항에 있어서, 상기 가상 객체의 정보를 등록하는 객체 관리 유닛에 상기 기준 환경과 관련된 상기 가상 객체의 정보를 제공하는 통신 인터페이스
    를 더 포함하는 정보 처리 장치.
  8. 제7항에 있어서, 상기 통신 인터페이스가 원격 위치에서 클라우드 리소스로서 구현되는 객체 관리 유닛에 상기 정보를 보내는,
    정보 처리 장치.
  9. 제7항에 있어서, 상기 가상 객체의 상기 정보가 다른 정보 처리 장치로 탐색 가능하여, 상기 다른 정보 처리 장치가 상기 가상 객체가 부착된 기준 환경을 관찰할 때, 상기 다른 정보 처리 장치가 상기 가상 객체를 공유하고 상기 가상 객체를 표시할 수 있는,
    정보 처리 장치.
  10. 제1항에 있어서, 상기 기준 환경 내에서 사용자 ID가 다른 정보 처리 디바이스와 관련하여 표시되게 하는 표시 제어기
    를 더 포함하는 정보 처리 장치.
  11. 제1항에 있어서, 상기 기준 환경 내에 현재 존재하지 않는 다른 정보 처리 디바이스의 사용자 ID가 상기 기준 환경과 관련하여 표시되게 하는 표시 제어기
    를 더 포함하는 정보 처리 장치.
  12. 제11항에 있어서, 다른 정보 처리 디바이스가 과거에 상기 기준 환경 내에 위치하였거나, 또는 상기 기준 환경 외부의 위치로부터 상기 기준 환경을 원격으로 관찰하는 것인,
    정보 처리 장치.
  13. 제11항에 있어서, 그를 통하여 사용자 ID와 관련된 사용자와의 소셜 미디어 통신이 공유되는 통신 인터페이스
    를 더 포함하는, 정보 처리 장치.
  14. 제1항에 있어서, 터치 조작에 응답하여 상기 가상 객체를 부착하도록 상기 제어 유닛을 트리거하도록 구성된 터치 조작을 갖는 사용자 인터페이스
    를 더 포함하는 정보 처리 장치.
  15. 제1항에 있어서, 화상 인식에 근거한 검출된 자세를 검출하는 인식 유닛을 더 포함하고, 상기 검출된 자세는 실물의 일부인 기준면에 기초하는,
    정보 처리 장치.
  16. 제1항에 있어서, 상기 가상 객체가 특정 위치에서 상기 정보 처리 장치의 위치 및 자세에 중첩되도록, 상기 제어 유닛이 상기 가상 객체를 배치하는,
    정보 처리 장치.
  17. 제1항에 있어서,
    표시 화면; 및
    상기 표시 화면상의 사용자 특유의 입력 위치에 따라 상기 표시 화면에 따르는 방향으로 오프셋된 위치에 상기 가상 객체를 배치하는 객체 배치 유닛
    을 더 포함하는 정보 처리 장치.
  18. 원격 디바이스로부터 상기 원격 디바이스의 검출된 자세의 표시 및 상기 원격 디바이스에 의해 제공되는 가상 객체를 수신하는 통신 인터페이스; 및
    상기 가상 객체를 상기 원격 디바이스의 기준 환경에 상기 원격 디바이스의 검출된 자세와 관련된 자세로 부착하도록 구성된 회로소자
    를 포함하는 정보 처리 장치.
  19. 처리 회로소자에 의해 실행될 때 방법을 수행하는 컴퓨터 판독가능한 명령어들을 갖는 비-일시적 컴퓨터 판독가능 매체로서, 상기 방법은
    정보 처리 장치의 검출된 자세의 표시를 수신하는 단계; 및
    가상 객체를 기준 환경에 상기 정보 처리 장치의 검출된 자세와 관련된 자세로 부착하는 단계
    를 포함하는, 비-일시적 컴퓨터 판독가능 매체.
  20. 처리 회로소자에 의해 실행될 때 방법을 수행하는 컴퓨터 판독가능한 명령어들을 갖는 비-일시적 컴퓨터 판독가능 매체로서, 상기 방법은
    원격 디바이스로부터 상기 원격 디바이스의 검출된 자세의 표시 및 상기 원격 디바이스에 의해 제공되는 가상 객체를 수신하는 단계; 및
    상기 회로소자로 상기 가상 객체를 상기 원격 디바이스의 기준 환경에 상기 원격 디바이스의 검출된 자세와 관련된 자세로 부착하는 단계
    를 포함하는, 비-일시적 컴퓨터 판독가능 매체.
KR1020147021433A 2012-02-10 2013-01-29 화상 처리 디바이스, 및 컴퓨터 프로그램 제품 KR20140130675A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012026872A JP5942456B2 (ja) 2012-02-10 2012-02-10 画像処理装置、画像処理方法及びプログラム
JPJP-P-2012-026872 2012-02-10
PCT/JP2013/000461 WO2013118458A1 (en) 2012-02-10 2013-01-29 Image processing device, and computer program product

Publications (1)

Publication Number Publication Date
KR20140130675A true KR20140130675A (ko) 2014-11-11

Family

ID=47722490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021433A KR20140130675A (ko) 2012-02-10 2013-01-29 화상 처리 디바이스, 및 컴퓨터 프로그램 제품

Country Status (10)

Country Link
US (1) US9639988B2 (ko)
EP (1) EP2812770B1 (ko)
JP (1) JP5942456B2 (ko)
KR (1) KR20140130675A (ko)
CN (1) CN104081317B (ko)
AU (1) AU2013219082A1 (ko)
BR (1) BR112014019131A8 (ko)
RU (1) RU2014131914A (ko)
TW (1) TW201346640A (ko)
WO (1) WO2013118458A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687209B2 (en) 2019-02-27 2023-06-27 Beijing Sensetime Technology Development Co., Ltd. Display method and apparatus for displaying display effects
WO2024029803A1 (ko) * 2022-08-04 2024-02-08 삼성전자 주식회사 증강 현실에서 공간에 따라 오브젝트를 배치하는 전자 장치 및 전자 장치의 동작 방법.

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10955665B2 (en) * 2013-06-18 2021-03-23 Microsoft Technology Licensing, Llc Concurrent optimal viewing of virtual objects
JP6171671B2 (ja) 2013-07-24 2017-08-02 富士通株式会社 情報処理装置、位置指定方法および位置指定プログラム
EP2887639A1 (en) * 2013-12-18 2015-06-24 Microsoft Technology Licensing, LLC Augmented reality information detail
JP2015118578A (ja) * 2013-12-18 2015-06-25 マイクロソフト コーポレーション 拡張現実情報詳細
JP6476657B2 (ja) * 2014-08-27 2019-03-06 株式会社リコー 画像処理装置、画像処理方法、およびプログラム
TWI621097B (zh) * 2014-11-20 2018-04-11 財團法人資訊工業策進會 行動裝置、操作方法及非揮發性電腦可讀取記錄媒體
CN105807899B (zh) * 2014-12-30 2020-02-21 联想(北京)有限公司 一种电子设备及信息处理方法
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
JP6586834B2 (ja) * 2015-09-14 2019-10-09 富士通株式会社 作業支援方法、作業支援プログラム、及び作業支援システム
CN106982240B (zh) * 2016-01-18 2021-01-15 腾讯科技(北京)有限公司 信息的显示方法和装置
TWI567691B (zh) * 2016-03-07 2017-01-21 粉迷科技股份有限公司 立體空間的場景編輯方法與系統
US11238610B2 (en) * 2016-08-10 2022-02-01 Disney Enterprises, Inc. Placing large objects and objects separated by large distances in augmented reality
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
CN108242082A (zh) * 2016-12-26 2018-07-03 粉迷科技股份有限公司 立体空间的场景编辑方法与系统
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP4300160A2 (en) 2016-12-30 2024-01-03 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
EP3566111B1 (en) * 2017-01-09 2023-09-20 Snap Inc. Augmented reality object manipulation
US20180210628A1 (en) * 2017-01-23 2018-07-26 Snap Inc. Three-dimensional interaction system
JP6541704B2 (ja) * 2017-03-27 2019-07-10 Kddi株式会社 仮想物体を表示する端末装置とサーバ装置とを含むシステム
CN108874118A (zh) * 2017-05-12 2018-11-23 翔升(上海)电子技术有限公司 一种在vr设备中处理图像的方法和装置
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
DK180470B1 (en) 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments
WO2019082520A1 (ja) * 2017-10-25 2019-05-02 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2019101513A (ja) * 2017-11-29 2019-06-24 株式会社カプコン 仮想空間表示装置、ゲームシステムおよび仮想空間における仮想オブジェクトの向き判定方法
US11280937B2 (en) 2017-12-10 2022-03-22 Magic Leap, Inc. Anti-reflective coatings on optical waveguides
WO2019126331A1 (en) 2017-12-20 2019-06-27 Magic Leap, Inc. Insert for augmented reality viewing device
DK201870346A1 (en) 2018-01-24 2019-09-12 Apple Inc. Devices, Methods, and Graphical User Interfaces for System-Wide Behavior for 3D Models
JP6745852B2 (ja) * 2018-01-24 2020-08-26 アップル インコーポレイテッドApple Inc. 3dモデルのシステム全体の挙動のためのデバイス、方法、及びグラフィカルユーザーインターフェース
CN108510597A (zh) * 2018-03-09 2018-09-07 北京小米移动软件有限公司 虚拟场景的编辑方法、装置及非临时性计算机可读存储介质
US10755676B2 (en) 2018-03-15 2020-08-25 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
JP7209474B2 (ja) * 2018-03-30 2023-01-20 株式会社スクウェア・エニックス 情報処理プログラム、情報処理方法及び情報処理システム
CN110545363B (zh) * 2018-05-28 2022-04-26 中国电信股份有限公司 实现多终端联网同步的方法、系统和云端服务器
JP7319303B2 (ja) 2018-05-31 2023-08-01 マジック リープ, インコーポレイテッド レーダ頭部姿勢位置特定
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
JP6548241B1 (ja) * 2018-07-14 2019-07-24 株式会社アンジー 拡張現実プログラム及び情報処理装置
JP7426982B2 (ja) 2018-07-24 2024-02-02 マジック リープ, インコーポレイテッド 移動検出デバイスの温度依存較正
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
CN112740665A (zh) 2018-08-02 2021-04-30 奇跃公司 基于头部运动的瞳孔间距离补偿的观察系统
CN116820239A (zh) 2018-08-03 2023-09-29 奇跃公司 图腾在用户交互系统中的融合姿势的基于未融合姿势的漂移校正
CN110825280A (zh) * 2018-08-09 2020-02-21 北京微播视界科技有限公司 控制虚拟物体位置移动的方法、装置和计算机可读存储介质
JP2021184115A (ja) * 2018-08-28 2021-12-02 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム
US10628964B2 (en) * 2018-09-19 2020-04-21 Seiko Epson Corporation Methods and devices for extended reality device training data creation
CN111083391A (zh) * 2018-10-19 2020-04-28 舜宇光学(浙江)研究院有限公司 虚实融合系统及其方法
US11808941B2 (en) * 2018-11-30 2023-11-07 Google Llc Augmented image generation using virtual content from wearable heads up display
EP3939030A4 (en) * 2019-03-12 2022-11-30 Magic Leap, Inc. REGISTRATION OF LOCAL CONTENT BETWEEN FIRST AND SECOND VIEWERS OF AUGMENTED REALITY
JP7225016B2 (ja) * 2019-04-19 2023-02-20 株式会社スクウェア・エニックス Ar空間画像投影システム、ar空間画像投影方法及びユーザ端末
JP6815439B2 (ja) * 2019-06-07 2021-01-20 Kddi株式会社 仮想物体を表示する端末装置とサーバ装置とを含むシステム及び該サーバ装置
CN110286768B (zh) * 2019-06-27 2022-05-17 Oppo广东移动通信有限公司 虚拟物体显示方法、终端设备及计算机可读存储介质
US11430151B2 (en) 2019-11-06 2022-08-30 Seiko Epson Corporation Online learning for 3D pose estimation using simplified constellations
JP2023502927A (ja) 2019-11-15 2023-01-26 マジック リープ, インコーポレイテッド 外科手術環境において使用するための視認システム
JP7082175B2 (ja) * 2020-12-21 2022-06-07 Kddi株式会社 仮想物体を表示する端末装置とサーバ装置とを含むシステム及び該サーバ装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI115943B (fi) * 2003-12-12 2005-08-15 Nokia Corp Järjestely informaation esittämiseksi näytöllä
US8730156B2 (en) 2010-03-05 2014-05-20 Sony Computer Entertainment America Llc Maintaining multiple views on a shared stable virtual space
US7965294B1 (en) * 2006-06-09 2011-06-21 Pixar Key frame animation with path-based motion
US9086785B2 (en) * 2007-06-08 2015-07-21 Apple Inc. Visualization object receptacle
US8350871B2 (en) * 2009-02-04 2013-01-08 Motorola Mobility Llc Method and apparatus for creating virtual graffiti in a mobile virtual and augmented reality system
CN102625993B (zh) * 2009-07-30 2016-08-03 Sk普兰尼特有限公司 用于提供增强现实的方法、服务器和便携终端
KR101633359B1 (ko) * 2009-10-20 2016-06-27 삼성전자 주식회사 투사 불변량을 이용한 무표식 증강 현실 구현 시스템 및 그 방법
JP4679661B1 (ja) * 2009-12-15 2011-04-27 株式会社東芝 情報提示装置、情報提示方法及びプログラム
JP5573238B2 (ja) * 2010-03-04 2014-08-20 ソニー株式会社 情報処理装置、情報処理法方法およびプログラム
US8633947B2 (en) * 2010-06-02 2014-01-21 Nintendo Co., Ltd. Computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
CN101893935B (zh) * 2010-07-14 2012-01-11 北京航空航天大学 基于真实球拍的协同式增强现实乒乓球系统构建方法
JP4993637B2 (ja) * 2010-07-21 2012-08-08 株式会社ブリリアントサービス エアタグ表示システム
US8723888B2 (en) * 2010-10-29 2014-05-13 Core Wireless Licensing, S.a.r.l. Method and apparatus for determining location offset information
US20120194547A1 (en) * 2011-01-31 2012-08-02 Nokia Corporation Method and apparatus for generating a perspective display
US9153195B2 (en) * 2011-08-17 2015-10-06 Microsoft Technology Licensing, Llc Providing contextual personal information by a mixed reality device
US8963805B2 (en) * 2012-01-27 2015-02-24 Microsoft Corporation Executable virtual objects associated with real objects
WO2013119221A1 (en) * 2012-02-08 2013-08-15 Intel Corporation Augmented reality creation using a real scene

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687209B2 (en) 2019-02-27 2023-06-27 Beijing Sensetime Technology Development Co., Ltd. Display method and apparatus for displaying display effects
WO2024029803A1 (ko) * 2022-08-04 2024-02-08 삼성전자 주식회사 증강 현실에서 공간에 따라 오브젝트를 배치하는 전자 장치 및 전자 장치의 동작 방법.

Also Published As

Publication number Publication date
EP2812770B1 (en) 2018-04-11
US9639988B2 (en) 2017-05-02
US20140313228A1 (en) 2014-10-23
BR112014019131A8 (pt) 2017-07-11
RU2014131914A (ru) 2016-02-20
WO2013118458A1 (en) 2013-08-15
AU2013219082A1 (en) 2014-07-03
EP2812770A1 (en) 2014-12-17
BR112014019131A2 (ko) 2017-06-20
JP2013164696A (ja) 2013-08-22
CN104081317A (zh) 2014-10-01
CN104081317B (zh) 2018-05-15
TW201346640A (zh) 2013-11-16
JP5942456B2 (ja) 2016-06-29

Similar Documents

Publication Publication Date Title
JP5942456B2 (ja) 画像処理装置、画像処理方法及びプログラム
US9268410B2 (en) Image processing device, image processing method, and program
US9256986B2 (en) Automated guidance when taking a photograph, using virtual objects overlaid on an image
Kim et al. Touch and hand gesture-based interactions for directly manipulating 3D virtual objects in mobile augmented reality
US9430698B2 (en) Information input apparatus, information input method, and computer program
US20190213792A1 (en) Providing Body-Anchored Mixed-Reality Experiences
US8751969B2 (en) Information processor, processing method and program for displaying a virtual image
JP2013164697A (ja) 画像処理装置、画像処理方法、プログラム及び画像処理システム
US9213413B2 (en) Device interaction with spatially aware gestures
JP2015015023A (ja) 3次元モデルのためのテクスチャデータを取得する方法、ポータブル電子デバイス、及びプログラム
KR20120034672A (ko) 공간 운영 시스템을 위한 공간, 다중-모드 제어 장치
KR101470757B1 (ko) 증강현실 서비스 제공 방법 및 장치
US10416783B2 (en) Causing specific location of an object provided to a device
US9069415B2 (en) Systems and methods for finger pose estimation on touchscreen devices
US20210096650A1 (en) Methods and Systems for Identifying Three-Dimensional-Human-Gesture Input
JP6304305B2 (ja) 画像処理装置、画像処理方法及びプログラム
US10466818B2 (en) Pointing action
CN116228514A (zh) 渲染数据处理方法、装置、计算机设备、介质和程序产品
CN114647304A (zh) 一种混合现实交互方法、装置、设备及存储介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid