본 발명의 일 국면에서는, 현실 물체와, 그 현실 물체를 촬영한 화상 위에 중첩하는 가상 물체와의 위치 자세 차이를 보정하기 위한 보정값을 취득하는 캘리브레이션 방법을 제공하고, 이 캘리브레이션 방법은, 상기 현실 물체의 위치 자세를 계측하는 계측공정과, 상기 계측공정에서 계측된 상기 현실 물체의 위치 자세에 근거하여, 상기 현실 물체가 이동가능한 좌표를 미리 아는 평면 위에 상기 현실 물체와 동일한 크기 및 형상을 갖는 가상 물체가 존재하는 것으로서, 상기 가상 물체의 화상을 생성하는 가상 물체 생성공정과, 상기 현실 물체를 촬영한 영상에, 상기 가상 물체의 화상을 중첩한 합성 화상을 표시하는 표시공정과, 상기 합성 화상에서의 상기 현실 물체의 위치 자세와 상기 가상 물체의 위치 자세의 차이를 보정하기 위한 보정값의 취득의 지시를 접수하는 접수공정과, 상기 지시에 따라, 상기 현실 물체의 상기 평면상의 평행 이동과 상기 평면에 직교하는 방향을 축으로 한 회전에 의해 표현되는 상기 보정값을 취득하는 취득공정을 포함한다.
본 발명의 다른 국면에서는, 현실 물체와, 그 현실 물체를 촬영한 화상 위에 중첩하는 가상 물체와의 위치 자세 차이를 보정하기 위한 보정값을 취득하는 캘리브레이션 방법을 제공하고, 이 캘리브레이션 방법은, 이동가능한 현실 물체의 위치와 자세를 계측하는 제1의 계측공정과, 상기 현실 물체를, 관찰자가 장착하는 머리 부분 장착형 표시장치에 설치한 카메라에 의해 촬영하는 촬영공정과, 상기 카메라의 위치 자세를 측정하는 제2의 계측공정과, 상기 제2의 계측공정에서 계측한 위치 자세에 근거하여, 상기 현실 물체와 동일한 크기 및 형상을 갖는 가상 물체를, 그 가상 물체가 미리 정한 평면 위에 존재하는 것으로서 상기 관찰자에게 관찰되도록 묘화하는 가상 물체 생성공정과, 상기 묘화된 가상 물체와 상기 카메라가 촬영하는 화상을 합성해서 상기 머리 부분 장착형 표시장치에 표시시키는 합성 표시공정과, 관찰자에 의한, 상기 현실 물체와 상기 가상 물체의 윤곽의 위치가 일치하도록 보이는 것을 나타내는 지시를 검출하는 검출공정과, 상기 지시가 검출된 시점에서의 상기 현실 물체의 위치 자세와, 상기 가상 물체의 위치 자세에 있어서, 수평위치의 차분과 연직축방향의 회전 차분의 합계를 상기 보정값으로서 취득하는 취득공정을 포함하되, 상기 가상 물체 생성공정에서는, 상기 제1의 계측 공정에서 계측된 위치 자세에 근거하여, 상기 가상 물체를 상기 평면상에서 이동 및/또는 회전시킨 상태에서 묘화한다.
본 발명의 또 다른 국면에서는, 현실 물체와, 그 현실 물체를 촬영한 화상 위에 중첩하는 가상 물체와의 위치 자세 차이를 보정하기 위한 보정값을 취득하는 캘리브레이션 장치를 제공하고, 이 캘리브레이션 장치는, 상기 현실 물체의 위치 자세를 계측하는 계측부와, 상기 계측부에서 계측된 상기 현실 물체의 위치 자세에 근거하여, 상기 현실 물체가 이동가능한 좌표를 미리 아는 평면 위에 상기 현실 물체와 동일한 크기 및 형상을 갖는 가상 물체가 존재하는 것으로서, 상기 가상 물체의 화상을 생성하는 가상 물체 생성부와, 상기 현실 물체를 촬영한 영상에, 상기 가상 물체의 화상을 중첩한 합성 화상을 표시하는 표시부와, 상기 합성 화상에서의 상기 현실 물체의 위치 자세와 상기 가상 물체의 위치 자세의 차이를 보정하기 위한 보정값의 취득의 지시를 접수하는 접수부와, 상기 지시에 따라, 상기 현실 물체의 상기 평면상의 평행이동과 상기 평면에 직교하는 방향을 축으로 한 회전에 의해 표현되는 상기 보정값을 취득하는 취득부를 구비한다.
아울러, 본 발명의 또 다른 국면에서는, 현실 물체와, 그 현실 물체를 촬영한 화상 위에 중첩하는 가상 물체와의 위치 자세 차이를 보정하기 위한 보정값을 취득하는 캘리브레이션 장치를 제공하고, 이 캘리브레이션 장치는, 이동가능한 현실 물체의 위치와 자세를 계측하는 제1의 계측부와, 상기 현실 물체를, 관찰자가 장착하는 머리 부분 장착형 표시장치에 설치한 카메라에 의해 촬영하는 촬영부와, 상기 카메라의 위치 자세를 측정하는 제2의 계측부와, 상기 제2의 계측부에서 계측한 위치 자세에 근거하여, 상기 현실 물체와 동일한 크기 및 형상을 갖는 가상 물체를, 그 가상 물체가 미리 정한 평면 위에 존재하는 것으로서 상기 관찰자에게 관찰되도록 묘화하는 가상 물체 생성부와, 상기 묘화된 가상 물체와 상기 카메라가 촬영하는 화상을 합성해서 상기 머리 부분 장착형 표시장치에 표시시키는 합성 표시부와, 관찰자에 의한, 상기 현실 물체와 상기 가상 물체의 윤곽의 위치가 일치하도록 보이는 것을 나타내는 지시를 검출하는 검출부와, 상기 지시가 검출된 시점에서의 상기 현실 물체의 위치 자세와, 상기 가상 물체의 위치 자세에 있어서, 수평위치의 차분과 연직축방향의 회전 차분의 합계를 상기 보정값으로서 취득하는 취득부를 구비하고, 상기 가상 물체 생성부가, 상기 제1의 계측부에 의해 계측된 위치 자세에 근거하여, 상기 가상 물체를 평면상에서 이동 및/또는 회전시킨 상태에서 묘화한다.
이러한 구성에 의해, 본 발명에서는, 캘리브레이션 처리에 필요로 하는 시간을 단축함과 아울러, 캘리브레이션 처리를 용이하게 하는 것이 가능하다.
<실시예>
도 1은 본 발명의 실시예에 따른 MR 제시 시스템의 구성 예를 나타낸 블록도이다. 이 시스템은, 화상입력부(102), 화상합성부(103), 화상출력부(104), 카메라 위치 자세 계측부(105), 가상 물체 생성부(106)를 갖는다. 아울러, 그 시스템은, 현실 물체 위치 자세 계측부(107)를 구비하는 시스템 제어부(101)와, 유저가 장착 하는 비디오 시스루(see-through)형 헤드 마운티드 디스플레이(HMD)(132)와, 현실 물체(108)를 갖는다. 이때, 현실 물체(108)는 위치 자세 센서B(109)를 구비하고 있다.
시스템 제어부(101)는, 데이터 입력 인터페이스를 구비하고, (도시하지 않은) 불휘발성 메모리 등에 기억된 제어프로그램을 실행하는 컴퓨터에 의해 실현된다. 여기서, 데이터 입력 인터페이스로서는, 예를 들면 디스플레이 인터페이스, 비디오 캡쳐 보드 및, 직렬 인터페이스 등이 있다.
비디오 시스루형의 헤드 마운티드 디스플레이(HMD)(132)는, 유저의 시점 위치 근방으로부터의 영상을 촬영하는 카메라(133)와, 카메라(133)가 촬상한 영상을 출력하는 화상출력부(134)를 구비한다. 또한, 그 HMD(132)는, 예를 들면, LCD인 화상표시부(136)와, 화상표시부(136)에 표시하는 화상을 시스템 제어부(101)의 화상출력부(104)로부터 받는 화상입력부(135)를 갖는다. 또한, HMD(132)는 위치 자세 센서A(137)를 구비하고 있다.
유저가 머리 부분에 장착한 HMD(132)의 카메라(133)는, 유저의 시점근방에서 유저의 시선 방향에서의 현실공간을 촬상한다. 촬상된 현실공간의 화상은, 화상출력부(134)에 송신된다. 화상출력부(134)는 현실공간의 화상을 시스템 제어부(101)의 화상입력부(102)에 송신한다.
시스템 제어부(101)에서는, 화상입력부(102)로부터 입력한 현실공간의 화상 데이터를 화상합성부(103)에 송신한다. 카메라 위치 자세 계측부(105)는 HMD(132)의 위치 자세 센서A(137)에 의해 카메라(133)의 위치 자세를 계측하고, 계측 결과 를 카메라 위치 자세정보로서 가상 물체생성부(106)에 송신한다.
본 실시예에 있어서, 현실 물체(108)는 가상 물체와 중첩하기 위해서 사용된다. 현실 물체(108)의 위치 자세는, 현실 물체(108)에 설치한 위치 자세 센서B(109)를 이용하여 현실 물체 위치 자세 계측부(107)가 계측한다. 계측 결과는, 현실 물체 위치 자세정보로서 가상 물체생성부(106)에 송신한다.
가상 물체생성부(106)에서는, 카메라 위치 자세정보와 현실 물체위치 자세정보를 바탕으로, 카메라(133)의 시점에서 본 현실 물체(108)의 위치 자세에 가상 물체 화상을 생성한다. 가상 물체생성부(106)는 생성한 가상 물체 화상을 화상합성부(103)에 송신한다.
화상합성부(103)에서는 현실공간의 화상과 가상 물체 화상을 합성해서 MR 공간 화상을 생성하여, 화상출력부(104)에 송신한다. 화상출력부(104)는 MR 공간 화상을 HMD(132)의 화상입력부(135)에 송신한다. 화상입력부(135)는 입력한 MR 공간 화상을 화상표시부(136)에 송신한다. 예를 들면 유저의 눈앞에 설치된 표시장치인 화상표시부(136)는, 그 MR 공간 화상을 표시한다. 그 MR 공간 화상을 유저가 관찰하여, 현실공간에 위치 맞춤된 가상 물체가 존재하는 것 같은 감각을 체험할 수 있다. 또한, 기억부(110)는 가상 물체의 모델 정보를 비롯한, MR 공간 화상을 생성하기 위해서 필요한 특정 형태의 정보가 기억되어 있다.
또한, 설명 및 이해를 쉽게 하기 위해서, 여기서는 설명을 생략하였지만, 실제로는 상기의 MR 공간 화상을 생성하기 위한 구성 및 동작은, 좌안용, 우안용의 2계통이 존재한다. 즉, 카메라(133)는 좌안용 카메라와 우안용 카메라로 구성되고, 각각의 카메라의 위치 자세를 측정한다. 그리고, 카메라(133)는, 각각의 카메라의 시점위치에서 본 현실 물체의 위치 자세에 가상 물체 화상을 생성하고, 좌안용 및 우안용 MR 공간 화상을 생성 및 표시한다. 이러한 구성에 의해, 시차를 이용한 입체적인 표시가 가능해지고, MR 공간을 보다 현실적인 공간으로서 유저에게 체감시키는 것이 가능하게 된다.
다음에, 본 시스템에서의 캘리브레이션 동작에 관하여 설명한다.
상술한 바와 같이, 캘리브레이션은 적어도 MR 공간 화상을 생성하기 전에 행하는, 가상공간과 현실공간과의 위치 맞춤(registration) 처리이다. 도 2는 본 시스템에서의 캘리브레이션의 모양을 모식적으로 도시한 도면이다. 여기서는, 본 시스템의 캘리브레이션에 사용하는, 위치 자세 계측 가능한 현실 물체로서 카메라(108)를 사용한다. 또한, 현실 물체를 위치 맞춤하는 사용하기 위한 가상 물체로서, 카메라(108)와 동일한 크기 및 형상을 갖는 카메라를 컴퓨터그래픽스(CG)에 의해 묘화했을 경우를 보이고 있다.
그러나,
(1) 위치와 자세가 일치한 상태를 용이하게 유저가 인식 가능
(2) 소정 평면상에서의 평행 이동과 그 평면과 직교하는 방향을 축으로 하는 회전에 의해 양자의 위치와 자세를 독특하게 일치하는 것이 가능
(3) 현실 물체를 유저가 손으로 이동가능
하면, 현실 물체 및 가상 물체의 크기와 형상에 제한은 없다.
이하에 설명한 예에서는, 설명 및 이해를 쉽게 하기 위해서, 소정 평면이 수 평면, 소정 평면과 직교하는 방향이 연직방향일 경우를 서술한다.
그리고, 도 2에서, 수평면은 기부(base)(203)의 상면에 의해 형성되고, 가상 물체(202)와 현실 물체(108)는 그 저면을 구성하는 평면이 기부(203)의 상면에 접하도록 배치된다. 따라서, 현실 물체(108)를 기부(203) 위에서 미끄러지게 해서 평행 이동 및 회전시킴으로써, 가상 물체(202)와의 위치 맞춤이 가능하다.
이때, 여기서는 소정 평면을 기부(203)의 상면에 의해 형성하고, 기부(203)를 현실 물체를 놓는 테이블로 함으로써, 현실 물체(108)의 이동 평면을 수평면에 고정하고 있다. 그러나, 현실 물체(108)가 이동가능한 평면이 한 평면에 고정되어 있는 경우, 기부(203)는 불필요하다. 즉, 현실 물체(108)를 소정 평면내에 고정하는 기구로서 기능하는 임의의 구성을 이용할 수 있다. 그러나, 현실 물체의 조작성이나 연산 처리의 용이점에서는, 현실 물체(108)의 이동 가능 평면이 수평면인 것이 바람직하다.
이러한 현실 물체(108)와 가상 물체(202)를 사용하여, 시스템을 캘리브레이션하는 처리에 대해서, 도 3의 흐름도를 사용하여 설명한다. 이 처리는, 예를 들면 HMD(132)를 장착하는 유저의 지시에 의해 개시된다.
우선, S301에서, 가상 물체생성부(106)는, 가상 물체(202)의 모델을 기억부(110)로부터 판독한다. 그리고, 미리 측정된, 기부(203)의 세계 좌표계에서의 좌표값과, HMD(132)의 자세 위치센서A(137)의 출력에 근거하여 가상 물체(202)를, 기부(203)의 상면에 놓여 있는 위치에 있는 것으로서 묘화한다. 미리 측정된, 기부(203)의 세계 좌표계에서의 좌표값은, 기억부(110)에 기억되어 있다. 또, 이 때의 가상 물체(202)의 자세는, 가상 물체(202)가 밑바닥의 수평면, 혹은 일정한 수평을 유지하기 위한 기구에 의해 기부(203)의 상면에 접해서 수평으로 유지된 상태이다. 이 가상 물체(202)의 화상은, 화상합성부(103)에서, 카메라(133)가 촬상한 현실공간 화상, 즉 기부(203)의 화상과 합성되어, 화상출력부(104) 및 화상입력부(135)를 거쳐서 HMD(132)의 화상표시부(136)에 표시된다.
이 상태에서는 가상 물체(202)와 현실 물체(108)는 그 저면을 공통의 평면으로 한 위치 관계에 있다. 그 때문에, 도 4에 나타낸 것처럼, 유저는 현실 물체(108)와 가상 물체(202)의 위치 및 자세를, 기부(203)의 수평면상에서의 수평이동과 연직방향을 축으로 한 회전과의 조합에 의해 일치시킬 수 있다.
카메라 위치 자세 계측부(105)는, HMD(132)의 위치 자세 센서A(137)의 출력으로부터 카메라(133)의 위치 자세를 검출한다. 가상 물체 생성부(106)는 그 검출된 위치 자세에 맞춘 가상 물체의 생성 및 묘화를 행한다. 한편, 현실 물체 위치 자세 계측부(107)는, 현실 물체(108)에 설치된 위치 자세 센서B(109)의 출력으로부터 현실 물체(108)의 위치 자세를 검출하여, 화상합성부(103)에 출력한다.
시스템 제어부(110)는, 입력부(138)를 통해서 유저로부터 일치 지시가 입력되었는지 어떤지를 체크한다(S303). 그리고, 유저의 움직임에 따라 카메라(133)의 위치 자세가 변화되어도, 가상 물체(202)가 옳은 자세로 계속 표시되도록, 가상 물체의 생성 및 표시 처리를 행한다(S305).
한편, 유저는, HMD(132)에 있어서 현실 물체(108)와 가상 물체(202)를 관찰하면서, 현실 물체(108)가 가상 물체(202)에 완전히 겹쳐서 보이도록 현실 물 체(108)를 이동시킨다. 그리고, 현실 물체(108)가 가상 물체(202)와 완전히 겹쳐서 보이게 되면, 유저는, 입력부(138)에 포함되는 일치 지시 버튼 등을 눌러, 양쪽의 물체가 일치 상태에 이른 것을 시스템 제어부(101)에 통지한다.
이 경우에, 위치 자세에서의 겹침의 판단은, 현실 물체(108)의 연직 위쪽에서 현실 물체(108)와 가상 물체(202)의 겹침 상태를 관찰하여 행하는 것이 바람직하다. 이것은, 현실 물체와 가상 물체가 수평위치와 연직축방향의 회전량 이외는 일치하고 있기 때문에, 현실 물체(108)의 연직 위쪽에서 보아 일치하고 있지 않는 수평위치와 연직축방향의 회전량만을 시인하는 것이 가능하기 때문이다.
S303에서 유저로부터의 일치 지시 입력이 검출되면, 시스템 제어부(101)는, 그 시점의 현실 물체(108)의 위치 자세 계측 값과 가상 물체(202)의 시스템상의 위치 자세값의 차분인 오프셋값을 기록한다(S307). 이에 따라, 이후 필요한 위치 자세 보정량을 확정하고, 캘리브레이션 처리가 종료한다.
이후의 처리에서, 현실 물체(108)의 이동을 수반하도록 가상 물체를 묘화할 때, 시스템상의 위치 자세값을 상기의 오프셋값에 의해 보정한 위치 자세값을 사용한다. 이에 따라, 가상 물체(202)는, 현실 물체(108)가 이동하거나 자세를 바꾸거나 하여도, 항상 현실 물체(108)와 완전히 중첩된 상태에서 유저에게 항상 관찰될 수 있다.
이상에서 설명한 바와 같이, 본 실시예에 의하면, 가동평면이 고정된 현실 물체와, 현실 물체의 가동평면 위에 위치하도록 묘화한 가상 물체가, 소정의 위치 관계에 관찰된 것을 나타내는 지시를 검출한다. 그리고, 이 지시가 있던 시점에서 의, 가상 물체의 위치 자세값과 현실 물체의 위치 자세값과의 차이를 취득하여, 현실 물체와 가상 물체와의 위치 차이를 보정하기 위한 보정값으로서 사용한다. 이러한 구성에 의해, 캘리브레이션 처리를 용이하고 정밀하게 행하는 것이 가능하게 된다.
이와는 달리, 본 발명에 의하면, 가동평면이 고정된 현실 물체와, 현실 물체의 가동평면 위에 위치하도록 묘화한 가상 물체가, 소정의 위치 관계를 만족시켰을 때의, 현실 물체의 위치 자세와 가상 물체의 위치 자세의 차이를 보정값으로서 취득한다. 그리고, 이 보정값은, 현실 물체의 소정 평면 상의 평행 이동과, 소정 평면에 직교하는 방향을 축으로 한 회전과의 조합으로 표현된다. 이러한 구성에 의해, 캘리브레이션 처리를 용이하고 정밀하게 행하는 것이 가능하게 된다.
또한 CG를 표시하는 경우에, 솔리드 모델과 와이어 프레임 모델에 의한 CG의 표시, 또는, 소정의 평면에 CG를 투영한 경우의 윤곽(그림자)을 표시하여도 된다. 이 경우, 가상 물체인 CG와 현실 물체의 겹치기가 용이해진다.
또한, CG의 형태를 유저의 지시에 의해, 변경하도록 하여도 된다.
<다른 실시예>
한편, 전술한 실시예의 기능을 실현하는 소프트웨어의 프로그램을, 기록매체로부터 직접, 또는 유선/무선통신을 사용해서 그 프로그램을 실행가능한 컴퓨터를 갖는 시스템 또는 장치에 공급하고, 그 시스템 또는 장치의 컴퓨터가 상기 공급된 프로그램을 실행함으로써 동등한 기능이 달성되는 경우도 본 발명의 범위에 포함한다.
따라서, 본 발명의 기능 처리를 컴퓨터로 실현하기 위해서, 상기 컴퓨터에 공급 및 인스톨되는 프로그램 코드 자체도 본 발명을 실현하는 것이다. 즉, 본 발명의 기능 처리를 실현하기 위한 컴퓨터 프로그램 자체도 본 발명의 범위에 포함된다.
이 경우, 프로그램의 기능을 가지고 있으면, 오브젝트 코드, 인터프리터에 의해 실행되는 프로그램, OS에 공급하는 스크립트 데이터 등, 프로그램의 임의의 형태에 포함되기도 한다.
프로그램을 공급하기 위한 기록매체로서는, 예를 들면, 플렉시블 디스크, 하드디스크, 자기테이프 등의 자기 기록매체, MO, CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-R, DVD-RW 등의 광/광자기 기억매체, 불휘발성의 반도체 메모리 등이 있다.
유선/무선통신을 사용한 프로그램의 공급 방법으로서는, 컴퓨터 네트워크상의 서버에 본 발명을 형성하는 컴퓨터 프로그램 그 자체, 혹은 압축되어 자동 인스톨 기능을 포함하는 파일 등, 클라이언트 컴퓨터상에서 본 발명을 형성하는 컴퓨터 프로그램이 될 수 있는 데이터 파일(프로그램 데이터 파일)을 기억하고, 접속이 있었던 클라이언트 컴퓨터에 프로그램 데이터 파일을 다운로드하는 방법 등을 들 수 있다. 이 경우, 프로그램 데이터 파일을 복수의 세그먼트 파일로 분할하고, 세그먼트 파일을 다른 서버에 배치하는 것도 가능하다.
즉, 본 발명의 기능 처리를 실현하기 위한 프로그램 데이터 파일을 복수의 유저에 대하여 다운로드시키는 서버 장치도 본 발명의 범위에 포함한다.
또한, 본 발명의 프로그램을 암호화해서 CD-ROM 등의 기억매체에 저장하여 유저에게 배포하고, 소정의 조건을 만족시킨 유저에 대하여 암호화를 푸는 열쇠 정보를, 예를 들면 인터넷을 통해서 홈 페이지로부터 다운로드시켜서 공급하고, 그 열쇠 정보를 사용하는 것에 의해 암호화된 프로그램을 실행해서 컴퓨터에 인스톨시켜 실현하는 것도 가능하다.
또한, 컴퓨터가, 판독한 프로그램을 실행함으로써, 전술한 실시예의 기능이 실현되는 것 외, 그 프로그램의 지시에 근거하여, 컴퓨터상에서 가동하고 있는 OS 등이, 실제의 처리의 일부 또는 전부를 행하고, 그 처리에 의해서도 전술한 실시예의 기능이 실현될 수 있다.
또한, 기록매체로부터 판독된 프로그램이, 컴퓨터에 삽입된 기능 확장 보드나 컴퓨터에 접속된 기능 확장 유닛에 구비되는 메모리에 기록된 후, 그 프로그램의 지시에 근거하여, 그 기능 확장 보드나 기능 확장 유닛에 구비되는 CPU 등이 실제의 처리의 일부 또는 전부를 행하고, 그 처리에 의해도 전술한 실시예의 기능이 실현될 수 있다.
본 발명의 실시예를 본 발명의 사상 및 범위를 벗어나지 않고 다수로 아주 다양하게 서로 다르게 할 수 있으므로, 본 발명은 첨부된 청구항에 기재된 것 이외의 본 발명의 특정 실시예들에 한정되지 않는다는 것을 알 수 있을 것이다.