이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions " comprising " or " comprising " are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.
이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다. In the following description, terms such as " transmission ", " transmission ", " transmission ", " reception ", and the like, of a signal or information refer not only to the direct transmission of signals or information from one component to another But also through other components. In particular, "transmitting" or "transmitting" a signal or information to an element is indicative of the final destination of the signal or information and not a direct destination. This is the same for " reception " of a signal or information. Also, in this specification, the fact that two or more pieces of data or information are " related " means that when one piece of data (or information) is acquired, at least a part of the other data (or information) can be obtained based thereon.
한편, 상측, 하측, 일측, 타측 등과 같은 방향성 용어는 개시된 도면들의 배향과 관련하여 사용된다. 본 발명의 실시예의 구성 요소는 다양한 배향으로 위치 설정될 수 있으므로, 방향성 용어는 예시를 목적으로 사용되는 것이지 이를 제한하는 것은 아니다.On the other hand, directional terms such as the top, bottom, one side, the other, and the like are used in connection with the orientation of the disclosed figures. Since the elements of the embodiments of the present invention can be positioned in various orientations, directional terms are used for illustrative purposes and not limitation.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, the terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
옵티컬 시스루(Optical See Through) 타입의 헤드 마운트 디스플레이(Head Mounted Display)를 이용한 증강 현실의 경우 현실 세계와 가상 객체의 정합을 위해서는, 1) 카메라 내부 파라미터(camera intrinsic parameter) 보정, 2) 사용자의 눈 및 헤드 마운트 디스플레이의 카메라 간 시야각 보정, 및 3) 스크린과 카메라의 물리적 위치에 따른 보정이 요구된다. 이 중 본 발명의 실시예는 사용자의 눈 및 헤드 마운트 디스플레이의 카메라 간 시야각을 보정하기 위한 기술 및 스크린과 카메라의 물리적 위치에 따른 차이를 보정하기 위한 기술과 관련된다. In the case of augmented reality using an optical see through type head mounted display, it is necessary to 1) correct camera intrinsic parameters of the real world and 2) And the head-mounted display, and 3) correction to the physical location of the screen and the camera. Of these, embodiments of the present invention relate to techniques for correcting the viewing angle between a user's eye and a camera of a head mounted display, and techniques for correcting differences between screens and camera physical locations.
도 1은 본 발명의 일 실시예에 따른 옵티컬 시스루 타입의 헤드 마운트 디스플레이를 나타낸 사시도이다. 1 is a perspective view illustrating an optical see-type head-mounted display according to an embodiment of the present invention.
도 1을 참조하면, 헤드 마운트 디스플레이(100)는 제1 스크린(102), 제2 스크린(104), 프레임(106), 헤드 장착부(108), 카메라(110), 및 캘리브레이션 모듈(112)을 포함할 수 있다. Referring to Figure 1, a head mounted display 100 includes a first screen 102, a second screen 104, a frame 106, a head mount 108, a camera 110, and a calibration module 112 .
제1 스크린(102)은 투명 또는 반투명 또는 불투명하게 마련될 수 있다. 제1 스크린(102)은 사용자의 두 눈 중 어느 한쪽 눈(예를 들어, 오른쪽 눈)과 대응하여 마련될 수 있다. 제1 스크린(102)은 시스루 렌즈를 포함할 수 있다. The first screen 102 may be transparent or translucent or opaque. The first screen 102 may be provided in correspondence with any one of the two eyes of the user (for example, the right eye). The first screen 102 may include a see-through lens.
제2 스크린(104)은 투명 또는 반투명 또는 불투명하게 마련될 수 있다. 제2 스크린(104)은 사용자의 두 눈 중 다른 쪽 눈(예를 들어, 왼쪽 눈)과 대응하여 마련될 수 있다. 제2 스크린(104)은 시스루 렌즈를 포함할 수 있다. The second screen 104 may be transparent or translucent or opaque. The second screen 104 may be provided corresponding to the other eye (e.g., the left eye) of the two eyes of the user. The second screen 104 may include a see-through lens.
제1 스크린(102) 및 제2 스크린(104)은 투명도가 조절되도록 마련될 수 있다. 사용자는 제1 스크린(102) 및 제2 스크린(104)을 통하여 전방의 현실 세계를 바라볼 수 있다. The first screen 102 and the second screen 104 may be arranged to adjust the transparency. The user can look forward to the real world through the first screen 102 and the second screen 104. [
프레임(106)은 제1 스크린(102) 및 제2 스크린(104)과 결합되어 마련될 수 있다. 프레임(106)은 제1 스크린(102) 및 제2 스크린(104)의 테두리를 따라 결합될 수 있다. 프레임(106)은 제1 스크린(102) 및 제2 스크린(104)을 고정시키는 역할을 할 수 있다. 프레임(106)에는 헤드 마운트 디스플레이(100)의 착용 시 헤드 마운트 디스플레이(100)가 흘러내리지 않도록 사용자의 콧등에 안착되는 부분이 마련될 수 있다. The frame 106 may be provided in combination with the first screen 102 and the second screen 104. The frame 106 may be coupled along the rim of the first screen 102 and the second screen 104. The frame 106 may serve to fix the first screen 102 and the second screen 104. The frame 106 may be provided with a portion that rests on the user's nose so that the head-mounted display 100 does not flow down when the head-mounted display 100 is worn.
헤드 장착부(108)는 헤드 마운트 디스플레이(100)가 사용자의 헤드 부분에 장착되도록 하는 부분이다. 헤드 장착부(108)는 제1 헤드 장착부(108-1) 및 제2 헤드 장착부(108-2)를 포함할 수 있다. 제1 헤드 장착부(108-1)는 프레임(106)의 일측에서 후방으로 마련될 수 있다. 제2 헤드 장착부(108-2)는 프레임(106)의 타측에서 후방으로 마련될 수 있다. 제1 헤드 장착부(108-1) 및 제2 헤드 장착부(108-2)는 사용자의 헤드를 감싸도록 마련될 수 있다. 여기서는 헤드 장착부(108)가 제1 헤드 장착부(108-1) 및 제2 헤드 장착부(108-2)를 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니며 헤드 장착부(108)는 프레임(106)의 일측과 타측을 연결하며 일체로 형성될 수도 있다. The head mount portion 108 is a portion that allows the head mount display 100 to be mounted on the head portion of the user. The head mount 108 may include a first head mount 108-1 and a second head mount 108-2. The first head mount 108-1 may be provided from one side of the frame 106 to the rear side. The second head mount 108-2 may be provided rearward from the other side of the frame 106. [ The first head mount 108-1 and the second head mount 108-2 may be provided to surround the user's head. The head mounting portion 108 has been described as including the first head mounting portion 108-1 and the second head mounting portion 108-2 but the present invention is not limited thereto, And may be integrally formed.
카메라(110)는 헤드 마운트 디스플레이(100)의 주변을 촬영하도록 마련될 수 있다. 예시적인 실시예에서, 카메라(110)는 프레임(106)에 마련될 수 있다. 카메라(110)는 프레임(106)의 상단에서 제1 스크린(102)과 제2 스크린(104) 사이에 마련될 수 있다. 그러나, 카메라(110)의 장착 위치가 이에 한정되는 것은 아니다. The camera 110 may be provided to photograph the periphery of the head mount display 100. [ In an exemplary embodiment, camera 110 may be provided in frame 106. A camera 110 may be provided between the first screen 102 and the second screen 104 at the top of the frame 106. However, the mounting position of the camera 110 is not limited thereto.
캘리브레이션 모듈(112)은 사용자의 눈과 카메라(110) 간 시야각(Field of View : FoV)의 차이를 보정할 수 있다. 캘리브레이션 모듈(112)은 프레임(106)에 설치될 수 있으나, 이에 한정되는 것은 아니며 헤드 장착부(108)에 설치될 수도 있다. The calibration module 112 may correct the difference between the user's eyes and the field of view (FoV) between the camera 110 and the camera 110. [ The calibration module 112 may be installed in the frame 106, but not limited thereto, and may be installed in the head mount 108.
도 2는 옵티컬 시스루 타입의 헤드 마운트 디스플레이에서 사용자의 눈과 카메라 간 시야각의 차이를 나타낸 도면이다. 도 2를 참조하면, 카메라의 시야각(A)은 카메라(110)가 바라보는 시야각을 의미하고, 눈의 시야각(B)은 사용자의 눈이 바라보는 시야각을 의미할 수 있다. 2 is a view showing a difference in viewing angle between a user's eyes and a camera in a head-mounted display of an optical see-through type. Referring to FIG. 2, the viewing angle A of the camera means a viewing angle viewed by the camera 110, and the viewing angle B of the eye may be a viewing angle viewed by the user's eyes.
여기서, 사용자는 스크린(102, 104)을 통해 전방을 바라보기 때문에, 사용자가 스크린(102, 104)을 통해 바라보는 시야각(C)을 기준으로 카메라의 시야각(A)을 보정할 필요가 있다. 이에, 캘리브레이션 모듈(112)은 사용자가 스크린(102, 104)을 통해 바라보는 시야각(C)을 산출한 후, 카메라의 시야각(A)을 사용자가 스크린(102, 104)을 통해 바라보는 시야각(C)으로 변환시켜 시야각 간의 차이를 보정할 수 있다. 이에 대한 자세한 설명은 후술하기로 한다.Here, since the user looks forward through the screens 102 and 104, it is necessary for the user to correct the viewing angle A of the camera on the basis of the viewing angle C viewed through the screens 102 and 104. The calibration module 112 calculates the viewing angle C of the camera through the screens 102 and 104 and then calculates the viewing angle A of the camera through the viewing angles C) so that the difference between the viewing angles can be corrected. A detailed description thereof will be described later.
본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예건대, 상기 "모듈"은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아니다.Herein, a module may mean a functional and structural combination of hardware for carrying out the technical idea of the present invention and software for driving the hardware. For example, the " module " may refer to a logical unit of a predetermined code and a hardware resource for executing the predetermined code, and it does not necessarily mean a physically connected code or a kind of hardware .
개시되는 실시예에서, 사용자가 스크린(102, 104)을 통해 바라보는 시야각(C)을 산출하기 위해, 복수 개의 마커가 표시된 마커 부재를 이용할 수 있다. In the disclosed embodiment, a marker member having a plurality of markers may be used to calculate the viewing angle C viewed by the user through the screens 102 and 104. [
도 3은 본 발명의 일 실시예에 따른 마커 부재를 나타낸 도면이다. 도 3을 참조하면, 마커 부재(150)는 베이스부(151), 고정부(153), 및 마커(155)를 포함할 수 있다. 3 is a view illustrating a marker member according to an embodiment of the present invention. Referring to FIG. 3, the marker member 150 may include a base portion 151, a fixing portion 153, and a marker 155.
베이스부(151)는 마커 부재(150)를 지지하는 역할을 할 수 있다. 베이스부(151)는 평평한 플레이트로 이루어질 수 있다. 고정부(153)는 베이스부(151)의 일측에서 돌출되어 마련될 수 있다. 예를 들어, 고정부(153)는 베이스부(151)의 하측에서 하부로 돌출되어 마련될 수 있다. 고정부(153)는 사용자가 마커 부재(150)를 파지하는 부분일 수 있다. 또는, 고정부(153)는 별도의 장비에 장착되는 부분일 수 있다. The base portion 151 may serve to support the marker member 150. The base portion 151 may be a flat plate. The fixing portion 153 may protrude from one side of the base portion 151. For example, the fixing portion 153 may protrude downward from the base portion 151. The fixing portion 153 may be a portion where the user grasps the marker member 150. [ Alternatively, the fixing portion 153 may be a portion mounted on a separate apparatus.
마커(155)는 베이스부(151)의 일면에 복수 개가 마련될 수 있다. 예를 들어, 마커(155)는 베이스부(151)의 일면에 부착되어 마련될 수 있다. 마커(155)는 제1 마커(155-1) 내지 제4 마커(155-4)를 포함할 수 있다. 제1 마커(155-1) 내지 제4 마커(155-4)는 정사각형 형태로 이루어질 수 있다. 제1 마커(155-1) 및 제2 마커(155-2)는 베이스부(151)의 일면 상부에서 베이스부(151)의 수직 중심축을 기준으로 좌우 대칭하여 마련될 수 있다. 제3 마커(155-3) 및 제4 마커(155-4)는 베이스부(151)의 일면 하부에서 베이스부(151)의 수직 중심축을 기준으로 좌우 대칭하여 마련될 수 있다. 이때, 제1 마커(155-1) 및 제3 마커(155-3)와 제2 마커(155-2) 및 제4 마커(155-4)는 각각 베이스부(151)의 수평 중심축을 기준으로 상하 대칭하여 마련될 수 있다. 그러나, 마커(155)의 형상 및 마커(155) 간 배치 형태가 이에 한정되는 것은 아니다. A plurality of markers 155 may be provided on one surface of the base 151. For example, the marker 155 may be attached to one surface of the base 151. The marker 155 may include first to fourth markers 155-1 to 155-4. The first marker 155-1 to the fourth marker 155-4 may have a square shape. The first marker 155-1 and the second marker 155-2 may be provided symmetrically with respect to the vertical center axis of the base 151 at one side of the base 151. The third marker 155-3 and the fourth marker 155-4 may be provided laterally symmetrically with respect to the vertical center axis of the base 151 at a lower portion of one side of the base 151. The first marker 155-1 and the third marker 155-3 and the second marker 155-2 and the fourth marker 155-4 are positioned on the horizontal center axis of the base 151 And may be provided in a vertically symmetrical manner. However, the shape of the marker 155 and the arrangement form between the markers 155 are not limited thereto.
도 4는 본 발명의 일 실시예에 따른 캘리브레이션 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다. 여기서는 사용자의 오른쪽 눈과 왼쪽 눈의 시야각이 동일하다는 것을 가정하고 설명하기로 한다. 이하에서, 사용자의 눈이라 함은 사용자의 오른쪽 눈 또는 왼쪽 눈을 의미할 수 있으며, 스크린이라 함은 사용자의 오른쪽 눈 또는 왼쪽 눈에 대응하는 스크린을 의미할 수 있으며, 설명의 편의상 제1 스크린(102)인 것으로 설명하기로 한다.4 is a flowchart illustrating a calibration method according to an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed. Here, it is assumed that the viewing angle of the user's right eye is the same as that of the left eye. Hereinafter, the eye of the user may mean the right eye or the left eye of the user, and the screen may refer to a screen corresponding to the right eye or the left eye of the user. For convenience of explanation, 102).
도 4를 참조하면, 캘리브레이션 모듈(112)은 캘리브레이션 이벤트가 발생하는지 여부를 확인한다(S 101). 캘리브레이션 이벤트는 헤드 마운트 디스플레이(100)에서 캘리브레이션이 요구되는 경우 발생하는 것으로, 예를 들어, 사용자가 헤드 마운트 디스플레이(100)에 마련된 별도의 버튼을 누르거나 헤드 마운트 디스플레이(100)에 설치된 캘리브레이션을 위한 어플리케이션을 실행시키는 경우에 발생할 수 있다. 또는, 캘리브레이션 이벤트는 헤드 마운트 디스플레이(100)의 카메라(110)가 전방의 마커 부재(150)를 인지하는 경우에 발생할 수도 있다. Referring to FIG. 4, the calibration module 112 determines whether a calibration event occurs (S101). Calibration events occur when calibration is required on the head-mounted display 100, for example, when a user presses a separate button provided on the head-mounted display 100, This can happen when an application is executed. Alternatively, the calibration event may occur when the camera 110 of the head-mounted display 100 recognizes the marker member 150 in front.
예시적인 실시예에서, 도 5에 도시된 바와 같이, 사용자가 헤드 마운트 디스플레이(100)를 두부에 착용하고, 헤드 마운트 디스플레이(100)의 전방 일정 거리에 마커 부재(150)를 위치시킨 상태에서, 헤드 마운트 디스플레이(100)에 마련된 별도의 버튼을 눌러 캘리브레이션 이벤트를 발생시킬 수 있다.5, in a state in which the user wears the head-mounted display 100 on the head and the marker member 150 is positioned at a predetermined distance ahead of the head-mounted display 100, A separate button provided on the head mount display 100 may be pressed to generate a calibration event.
단계 S 101의 확인 결과, 캘리브레이션 이벤트가 발생하는 경우, 캘리브레이션 모듈(112)은 헤드 마운트 디스플레이(100)의 스크린(102)에 복수 개의 가상 마커(121)를 렌더링하여 표시한다(S 103). 여기서, 가상 마커(121)는 마커 부재(150)의 마커(155)들과 대응하여 형성된 가상 이미지일 수 있다. If a calibration event occurs in step S 101, the calibration module 112 renders and displays a plurality of virtual markers 121 on the screen 102 of the head mount display 100 (S 103). Here, the virtual marker 121 may be a virtual image formed corresponding to the markers 155 of the marker member 150.
도 6은 본 발명의 일 실시예에 따른 스크린(102)에 가상 마커(121)가 표시된 상태를 나타낸 도면이다. 도 6을 참조하면, 가상 마커(121)는 제1 가상 마커(121-1) 내지 제4 가상 마커(121-4)를 포함할 수 있다. 제1 가상 마커(121-1) 내지 제4 가상 마커(121-4)는 제1 마커(155-1) 내지 제4 마커(155-4)와 각각 대응하여 형성된 것일 수 있다. 즉, 제1 가상 마커(121-1) 내지 제4 가상 마커(121-4)는 제1 마커(155-1) 내지 제4 마커(155-4)의 형상 및 마커 간 배치 형태가 대응되도록 형성된 것일 수 있다. 6 is a diagram illustrating a state in which a virtual marker 121 is displayed on a screen 102 according to an embodiment of the present invention. Referring to FIG. 6, the virtual marker 121 may include a first virtual marker 121-1 to a fourth virtual marker 121-4. The first virtual marker 121-1 to the fourth virtual marker 121-4 may correspond to the first marker 155-1 to the fourth marker 155-4, respectively. That is, the first virtual marker 121-1 to the fourth virtual marker 121-4 are formed so that the shapes of the first marker 155-1 to the fourth marker 155-4 and the arrangement form between the markers correspond to each other Lt; / RTI >
캘리브레이션 모듈(112)은 가상 마커(121)를 스크린(102)의 중심에 표시할 수 있다. 이때, 제1 가상 마커(121-1) 및 제2 가상 마커(121-2)와 제3 가상 마커(121-3) 및 제4 가상 마커(121-4)는 각각 스크린(102)의 수직 중심축을 기준으로 좌우 대칭하여 표시될 수 있다. 또한, 제1 가상 마커(121-1) 및 제3 가상 마커(121-3)와 제2 가상 마커(121-2) 및 제4 가상 마커(121-4)는 각각 스크린(102)의 수평 중심축을 기준으로 상하 대칭하여 표시될 수 있다. The calibration module 112 may display the virtual marker 121 at the center of the screen 102. [ The first virtual marker 121-1 and the second virtual marker 121-2 and the third virtual marker 121-3 and the fourth virtual marker 121-4 are positioned at the vertical center of the screen 102, And can be displayed symmetrically with respect to the axis. The first virtual marker 121-1 and the third virtual marker 121-3 and the second virtual marker 121-2 and the fourth virtual marker 121-4 are positioned at the horizontal center of the screen 102 And can be displayed up-and-down symmetrically with respect to the axis.
가상 마커(121)는 사용자가 헤드 마운트 디스플레이(100)를 두부에 착용한 상태에서 기 설정된 기준 거리(예를 들어, 1m)에 위치한 마커 부재(150)를 바라보았을 때 스크린(102) 상에 투영되는 마커(155)들을 본따서 형성된 것일 수 있다. The virtual marker 121 is projected on the screen 102 when the user looks at the marker member 150 located at a predetermined reference distance (for example, 1 m) while the head mount display 100 is worn on the head. The markers 155 may be formed in the same manner as the markers 155.
가상 마커(121)들을 스크린(102)에 표시한 경우, 스크린(102)에는 또한 전방에 위치한 마커 부재(150)의 마커(155)들이 투영되어 표시되게 된다. 즉, 사용자는 스크린(102)을 통해 전방에 위치한 마커 부재(150)를 보게 되므로, 스크린(102)에는 가상 마커(121)가 표시될 뿐만 아니라, 마커(155)들이 투영되어 표시되게 된다. When the virtual markers 121 are displayed on the screen 102, the markers 155 of the marker member 150 positioned in front of the screen 102 are also projected and displayed. That is, the user sees the marker member 150 positioned on the front side through the screen 102, so that not only the virtual marker 121 but also the markers 155 are projected and displayed on the screen 102.
다음으로, 캘리브레이션 모듈(112)은 스크린(102) 상에서 가상 마커(121)들과 마커(155)들이 정합(매칭)되는지 여부를 확인한다(S 105). 예시적인 실시예에서, 사용자는 스크린(102) 상에서 가상 마커(121)들과 마커(155)들이 매칭하도록 마커 부재(150)를 이동시킬 수 있다. 즉, 마커 부재(150)를 앞뒤 또는 좌우 등으로 이동시키면서 스크린(102) 상의 가상 마커(121)와 마커(155)들이 매칭되도록 할 수 있다. 마커 부재(150)는 사용자가 한 손으로 들고 이동시킬 수도 있으나, 이에 한정되는 것은 아니며 별도의 장비를 통해 이동시킬 수도 있다. 도 7은 본 발명의 일 실시예에 따른 스크린(102)에 가상 마커(121)들과 마커(155)들이 정합된 상태를 나타낸 도면이다. Next, the calibration module 112 confirms whether the virtual markers 121 and markers 155 match (match) on the screen 102 (S105). In an exemplary embodiment, the user may move the marker member 150 to match the virtual markers 121 and markers 155 on the screen 102. That is, the virtual marker 121 and the markers 155 on the screen 102 can be matched while the marker member 150 is moved back and forth, right and left. The marker member 150 may be moved by a user with one hand, but may be moved through a separate device. FIG. 7 is a diagram illustrating a state in which virtual markers 121 and markers 155 are aligned on a screen 102 according to an embodiment of the present invention.
단계 S 105의 확인 결과, 스크린(102) 상에서 가상 마커(121)들과 마커(155)들이 정합된 경우, 캘리브레이션 모듈(112)은 카메라(110)를 기준으로 마커(155)들 간의 각도를 산출한다(S 107). The calibration module 112 calculates the angle between the markers 155 based on the camera 110 when the virtual markers 121 and markers 155 are matched on the screen 102 (S 107).
도 8은 본 발명의 일 실시예에 따른 카메라(110)를 기준으로 마커(155)들 간의 각도를 산출하는 상태를 나타낸 도면이다. 도 8을 참조하면, 캘리브레이션 모듈(112)은 스크린(102) 상에서 가상 마커(121)들과 마커(155)들이 정합되는 경우, 캘리브레이션 모듈(112)은 카메라(110)와 마커 부재(150) 간의 거리를 획득하고, 카메라(110)를 통해 마커 부재(150)를 촬영할 수 있다. 캘리브레이션 모듈(112)은 카메라(110)와 마커 부재(150) 간의 거리 및 촬영 영상에서 각 마커(155)들의 자세 정보(위치 및 회전 등과 관련한 정보)를 기반으로 카메라(110)를 기준으로 한 마커(155)들 간의 각도를 산출할 수 있다. 이때, 캘리브레이션 모듈(112)은 수평 마커 각도(θθ1) 및 수직 마커 각도(θθ2) 중 적어도 하나를 산출할 수 있다. 8 is a diagram illustrating a state in which an angle between markers 155 is calculated based on a camera 110 according to an embodiment of the present invention. 8, when the virtual markers 121 and markers 155 are matched on the screen 102, the calibration module 112 determines that the calibration module 112 is positioned between the camera 110 and the marker member 150 Acquire the distance, and photograph the marker member 150 through the camera 110. [ The calibration module 112 calculates the distance between the marker 110 and the marker 150 based on the camera 110 based on the distance between the camera 110 and the marker 150 and the attitude information It is possible to calculate the angle between the light guide plates 155. At this time, the calibration module 112 may calculate at least one of the horizontal marker angle [theta] [theta] 1 and the vertical marker angle [theta] [theta] 2.
여기서, 수평 마커 각도(θθ1)는 카메라(110)를 기준으로 제1 마커(155-1)의 중심과 제2 마커(155-2)의 중심 간의 각도(또는 제3 마커(155-3)의 중심과 제4 마커(155-4)의 중심 간의 각도)를 의미할 수 있다. 즉, 수평 마커 각도는 마커 부재(150)에서 카메라(110)를 기준으로 수평 방향으로 배치된 마커들 간의 각도를 의미할 수 있다. 또한, 수직 마커 각도(θθ2)는 카메라(110)를 기준으로 제1 마커(155-1)의 중심과 제3 마커(155-3)의 중심 간의 각도(또는 제2 마커(155-2)의 중심과 제4 마커(155-4)의 중심 간의 각도)를 의미할 수 있다. 즉, 수직 마커 각도는 마커 부재(150)에서 카메라(110)를 기준으로 수직 방향으로 배치된 마커들 간의 각도를 의미할 수 있다. Here, the horizontal marker angle [theta] [theta] 1 is an angle between the center of the first marker 155-1 and the center of the second marker 155-2 (or the angle of the third marker 155-2) The angle between the center and the center of the fourth marker 155-4). That is, the horizontal marker angle may mean the angle between the markers arranged horizontally with respect to the camera 110 in the marker member 150. The vertical marker angle? 2 is an angle between the center of the first marker 155-1 and the center of the third marker 155-3 (or the angle between the center of the second marker 155-2) The angle between the center and the center of the fourth marker 155-4). That is, the vertical marker angle may mean an angle between the markers arranged in the vertical direction with respect to the camera 110 in the marker member 150.
다음으로, 캘리브레이션 모듈(112)은 스크린(102) 상에 표시된 가상 마커(121)들 간의 거리를 산출한다(S 109). 예시적인 실시예에서, 캘리브레이션 모듈(112)은 수평 가상 마커 거리 및 수직 가상 마커 거리 중 적어도 하나를 산출할 수 있다. Next, the calibration module 112 calculates the distance between the virtual markers 121 displayed on the screen 102 (S 109). In an exemplary embodiment, the calibration module 112 may calculate at least one of a horizontal virtual marker distance and a vertical virtual marker distance.
여기서, 수평 가상 마커 거리는 제1 가상 마커(121-1)의 중심과 제2 가상 마커(121-2)의 중심 간의 거리(또는 제3 가상 마커(121-3)의 중심과 제4 가상 마커(121-4)의 중심 간의 거리)를 의미할 수 있다. 즉, 수평 가상 마커 거리는 스크린(102)에서 수평 방향으로 배치된 가상 마커들 간의 거리를 의미할 수 있다. Here, the horizontal virtual marker distance may be a distance between the center of the first virtual marker 121-1 and the center of the second virtual marker 121-2 (or the center of the third virtual marker 121-3 and the center of the third virtual marker 121-2) The distance between the centers of the first and second electrodes 121 - 4 and 121 - 4). In other words, the horizontal virtual marker distance may mean the distance between the virtual markers arranged in the horizontal direction on the screen 102.
또한, 수직 가상 마커 거리는 제1 가상 마커(121-1)의 중심과 제3 가상 마커(121-3)의 중심 간의 거리(또는 제2 가상 마커(121-2)의 중심과 제4 가상 마커(121-4)의 중심 간의 거리)를 의미할 수 있다. 즉, 수직 가상 마커 거리는 스크린(102)에서 수직 방향으로 배치된 가상 마커들 간의 거리를 의미할 수 있다. 수평 가상 마커 거리 및 수직 가상 마커 거리는 픽셀(Pixel) 단위로 표현될 수 있다. The vertical virtual marker distance may be a distance between the center of the first virtual marker 121-1 and the center of the third virtual marker 121-3 or a distance between the center of the second virtual marker 121-2 and the center of the fourth virtual marker 121-3 The distance between the centers of the first and second electrodes 121 - 4 and 121 - 4). That is, the vertical virtual marker distance may mean the distance between the virtual markers arranged in the vertical direction on the screen 102. The horizontal virtual marker distance and the vertical virtual marker distance can be expressed in pixel units.
다음으로, 캘리브레이션 모듈(112)은 카메라(110)를 기준으로 한 마커(155)들 간의 각도, 스크린(102) 상에 표시된 가상 마커(121)들 간의 거리, 및 스크린(102)의 크기를 기반으로 사용자가 스크린을 통해 바라보는 시야각을 산출한다(S 111). 즉, 캘리브레이션 모듈(112)은 카메라(110)를 기준으로 한 마커(155)들 간의 각도 및 스크린(102) 상에 표시된 가상 마커(121)들 간의 거리 간의 비율 관계를 스크린(102)의 크기 및 사용자가 스크린을 통해 바라보는 시야각에 적용하여 사용자가 스크린을 통해 바라보는 시야각을 산출할 수 있다.The calibration module 112 then determines the angle between the markers 155 based on the camera 110, the distance between the virtual markers 121 displayed on the screen 102, and the size of the screen 102 The user calculates the viewing angle through the screen (S 111). That is, the calibration module 112 determines the ratio relationship between the angle between the markers 155 based on the camera 110 and the distance between the virtual markers 121 displayed on the screen 102, The user can calculate the viewing angle viewed through the screen by applying the viewing angle through the screen.
예시적인 실시예에서, 스크린(102)의 너비가 1024 픽셀이고, 수평 마커 각도가 30도이며, 수평 가상 마커 거리가 500 픽셀인 경우, 30 : 500 = x : 1024의 비율 관계를 통해 x(사용자가 스크린을 통해 바라보는 수평 시야각)가 61도 임을 산출할 수 있다. 이를 통해, 사용자가 스크린을 통해 바라보는 수평 시야각(FoVx) 및 사용자가 스크린을 통해 바라보는 수직 시야각(FoVy)은 하기의 수학식 1을 통해 나타낼 수 있다. In the exemplary embodiment, if the width of the screen 102 is 1024 pixels, the horizontal marker angle is 30 degrees, and the horizontal virtual marker distance is 500 pixels, x The horizontal viewing angle viewed through the screen) is 61 degrees. Accordingly, the horizontal viewing angle (FoVx) viewed by the user through the screen and the vertical viewing angle (FoVy) viewed by the user through the screen can be expressed by the following equation (1).
(수학식 1)(1)
다음으로, 캘리브레이션 모듈(112)은 변환 매트릭스를 이용하여 카메라(110)의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시킨다(S 113). 캘리브레이션 모듈(112)은 하기의 수학식 2에 나타난 변환 매트릭스(M)를 이용하여 카메라(110)의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시킬 수 있다. 여기서는 사용자가 스크린을 통해 바라보는 수직 시야각(FoVy)을 이용하여 변환 매트릭스를 산출하는 경우를 나타내었다.Next, the calibration module 112 converts the viewing angle of the camera 110 into a viewing angle through which the user views the screen using the transformation matrix (S 113). The calibration module 112 may convert the viewing angle of the camera 110 into a viewing angle that the user views through the screen using the transformation matrix M shown in Equation 2 below. Here, the case where the user calculates the conversion matrix using the vertical viewing angle (FoVy) viewed through the screen is shown.
(수학식 2)(2)
여기서, ratio는 스크린(102)의 너비와 높이 간 비율을 나타내는 것으로, 스크린(102)의 높이/스크린(102)의 너비로 나타낼 수 있다. far는 카메라(110)를 기준으로 카메라(110)의 전방 근거리 상수를 나타내며, near는 카메라(110)를 기준으로 카메라(110)의 전방 원거리 상수를 나타낸다. 즉, far는 카메라(110)를 통해 카메라(110) 전방의 물체를 어느 지점부터 보여줄 것인지를 나타내는 상수이고, near는 카메라(110)를 통해 카메라(110) 전방의 물체를 어디까지 보여줄 것인지를 나타내는 상수이다. 스크린(102)의 높이는 y축에 대응하고, 스크린(102)의 너비는 z축에 대응하며, 카메라(110)의 전방은 z축에 대응할 수 있다.Here, ratio represents the ratio between the width and the height of the screen 102, and can be expressed by the height of the screen 102 / the width of the screen 102. far indicates the forward distance constant of the camera 110 with respect to the camera 110 and near indicates the forward distance constant of the camera 110 with respect to the camera 110. [ That is, far is a constant indicating from which point the object in front of the camera 110 is to be displayed through the camera 110 and near indicates a position where the object in front of the camera 110 is to be displayed through the camera 110 It is a constant. The height of the screen 102 corresponds to the y-axis, the width of the screen 102 corresponds to the z-axis, and the front of the camera 110 may correspond to the z-axis.
도 9는 본 발명의 실시예에 따른 변환 매트릭스에 의한 투영 공간을 나타낸 도면이다. 도 9를 참조하면, 카메라(110)의 시야각에 의한 가상 평면(VP1)은 도 2에서도 확인할 수 있는 바와 같이, 사용자가 스크린을 통해 바라보는 시야각에 의한 가상 평면(VP2) 보다 넓은 범위를 가지게 된다. 여기서, 가상 평면(VP1)과 가상 평면(VP2)는 동일한 평면 상에 위치하는 것으로 한다. 9 is a diagram showing a projection space according to the transformation matrix according to the embodiment of the present invention. Referring to FIG. 9, the virtual plane VP1 according to the viewing angle of the camera 110 has a wider range than the virtual plane VP2 due to the viewing angle viewed by the user through the screen, as can be seen from FIG. 2 . Here, it is assumed that the virtual plane VP1 and the virtual plane VP2 are located on the same plane.
캘리브레이션 모듈(112)은 수학식 2에 의한 변환 매트릭스를 이용하여 카메라(110)의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시키게 된다. 그러면, 카메라(110)의 시야각에 의한 가상 평면(VP1)을 사용자가 스크린을 통해 바라보는 시야각에 의한 가상 평면(VP2)으로 변환시킬 수 있게 된다. 수학식 2에서 ratio가 스크린(102)의 높이(y)/스크린(102)의 너비(x)이기 때문에,The calibration module 112 converts the viewing angle of the camera 110 into a viewing angle through which the user views the screen using the conversion matrix according to Equation (2). Then, the virtual plane VP1 by the viewing angle of the camera 110 can be converted into the virtual plane VP2 by the viewing angle viewed by the user through the screen. In Equation 2, since ratio is the height (y) of the screen 102 / the width (x) of the screen 102,
값을 통해서는 x축의 변환된 시야각을 산출하게 되고, 값을 통해서는 y축의 변환된 시야각을 산출할 수 있게 된다. Values are used to calculate the converted viewing angle of the x-axis, The converted viewing angle of the y-axis can be calculated.
한편, 수학식 2에서는 사용자가 스크린을 통해 바라보는 수직 시야각(FoVy)을 이용하여 변환 매트릭스를 산출하는 경우를 나타내었으나, 사용자가 스크린을 통해 바라보는 수평 시야각(FoVx)을 이용하여 변환 매트릭스(M)를 산출할 수도 있으며, 이에 대해서는 수학식 3에 나타내었다. In Equation (2), the case where the user uses the vertical viewing angle (FoVy) viewed through the screen to calculate the conversion matrix is shown. However, when the user uses the horizontal viewing angle (FoVx) ), Which is shown in Equation (3).
(수학식 3)(3)
여기서, 값을 통해서는 x축의 변환된 시야각을 산출하고, 값을 통해서는 y축의 변환된 시야각을 산출할 수 있게 된다. 즉, 사용자가 스크린을 통해 바라보는 수평 시야각(FoVx) 및 사용자가 스크린을 통해 바라보는 수직 시야각(FoVy) 중 어느 하나의 값만 있으면 카메라(110)의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시킬 수 있게 된다.here, Value, the converted viewing angle of the x-axis is calculated, The converted viewing angle of the y-axis can be calculated. That is, if the user has only one of the horizontal viewing angle FoVx viewed through the screen and the vertical viewing angle FoVy viewed through the screen, the viewing angle of the camera 110 is converted into a viewing angle through which the user views the screen .
한편, 캘리브레이션 모듈(112)은 스크린(102, 104)과 카메라(110) 간의 물리적 위치에 따른 차이를 보정할 수 있다. 즉, 사용자는 스크린(102, 104)을 통해 증강 현실 콘텐츠를 보기 때문에, 카메라(110)를 기준으로 획득된 객체의 자세를 스크린(102, 104)을 기준으로 자세로 변환하여 스크린(102, 104)과 카메라(110) 간의 물리적 위치에 따른 차이를 보정해주어야 한다. On the other hand, the calibration module 112 can correct the difference between the screens 102 and 104 and the camera 110 depending on their physical positions. That is, since the user views the augmented reality contents through the screens 102 and 104, the attitude of the object obtained on the basis of the camera 110 is converted into the attitude on the basis of the screens 102 and 104, And the camera 110 may be corrected.
개시되는 실시예에서는, 스크린(102, 104)과 카메라(110) 간의 물리적 위치에 따른 차이를 보정하기 위해, 도 10에 도시된 바와 같이 마커 부재(250)를 이용할 수 있다. 마커 부재(250)는 베이스부(251), 고정부(253), 및 마커(255)를 포함할 수 있다. In the disclosed embodiment, a marker member 250 may be used as shown in FIG. 10 to correct for differences in physical location between the screens 102 and 104 and the camera 110. [ The marker member 250 may include a base portion 251, a fixing portion 253, and a marker 255.
베이스부(251)는 마커 부재(250)를 지지하는 역할을 할 수 있다. 베이스부(251)는 평평한 플레이트로 이루어질 수 있다. 고정부(253)는 베이스부(251)의 일측에서 돌출되어 마련될 수 있다. 예를 들어, 고정부(253)는 베이스부(251)의 하측에서 하부로 돌출되어 마련될 수 있다. 고정부(253)는 사용자가 마커 부재(250)를 파지하는 부분일 수 있다. 또는, 고정부(253)는 별도의 장비에 장착되는 부분일 수 있다. 마커(255)는 베이스부(251)의 일면에 마련될 수 있다. 여기서는, 마커(255)가 사각형 형태인 것으로 도시하였으나, 이에 한정되는 것은 아니며 마커(255)는 그 이외에 다양한 형태로 마련될 수 있다. The base portion 251 may serve to support the marker member 250. The base portion 251 may be a flat plate. The fixing portion 253 may protrude from one side of the base portion 251. For example, the fixing portion 253 may protrude downward from the base portion 251. The fixing portion 253 may be a portion where the user grips the marker member 250. [ Alternatively, the fixing part 253 may be a part mounted on a separate apparatus. The marker 255 may be provided on one side of the base portion 251. Although the markers 255 are shown as rectangular in this embodiment, the marker 255 is not limited thereto, and the markers 255 may be provided in various forms.
예시적인 실시예에서, 마커 부재(250)는 마커(255)의 형태가 서로 다른 것이 2개가 사용될 수 있다. 즉, 마커 부재(250)는 제1 스크린(102)과 카메라(110) 간의 물리적 위치에 따른 차이를 보정하기 위한 제1 마커 부재 및 제2 스크린(104)과 카메라(110) 간의 물리적 위치에 따른 차이를 보정하기 위한 제2 마커 부재를 포함할 수 있다. 여기서, 제1 마커 부재와 제2 마커 부재는 마커(255)의 형태가 서로 다를 수 있다. In the exemplary embodiment, two of the marker members 250 may be used in which the shapes of the markers 255 are different from each other. That is, the marker member 250 may include a first marker member for correcting the difference between the first screen 102 and the camera 110 according to the physical position thereof, and a second marker member for correcting the difference depending on the physical position between the second screen 104 and the camera 110 And a second marker member for correcting the difference. Here, the shapes of the markers 255 may be different between the first marker member and the second marker member.
도 11은 본 발명의 다른 실시예에 따른 캘리브레이션 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.11 is a flowchart illustrating a calibration method according to another embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.
도 11을 참조하면, 캘리브레이션 모듈(112)은 캘리브레이션 이벤트가 발생하는지 여부를 확인한다(S 201). 캘리브레이션 이벤트는 헤드 마운트 디스플레이(100)에서 캘리브레이션이 요구되는 경우 발생하는 것으로, 예를 들어, 사용자가 헤드 마운트 디스플레이(100)에 마련된 별도의 버튼을 누르거나 헤드 마운트 디스플레이(100)에 설치된 캘리브레이션을 위한 어플리케이션을 실행시키는 경우에 발생할 수 있다. 또는, 캘리브레이션 이벤트는 헤드 마운트 디스플레이(100)의 카메라(110)가 전방의 마커 부재(250)를 인지하는 경우에 발생할 수도 있다. 예시적인 실시예에서, 사용자가 헤드 마운트 디스플레이(100)를 두부에 착용하고, 헤드 마운트 디스플레이(100)의 전방 일정 거리에 마커 부재(250)를 위치시킨 상태에서, 헤드 마운트 디스플레이(100)에 마련된 별도의 버튼을 눌러 캘리브레이션 이벤트를 발생시킬 수 있다.Referring to FIG. 11, the calibration module 112 determines whether a calibration event occurs (S 201). Calibration events occur when calibration is required on the head-mounted display 100, for example, when a user presses a separate button provided on the head-mounted display 100, This can happen when an application is executed. Alternatively, the calibration event may occur when the camera 110 of the head-mounted display 100 recognizes the marker member 250 in front. In the exemplary embodiment, the user may wear the head-mounted display 100 on the head and place the marker member 250 at a predetermined distance ahead of the head-mounted display 100, A separate button can be pressed to trigger the calibration event.
단계 S 201의 확인 결과, 캘리브레이션 이벤트가 발생하는 경우, 캘리브레이션 모듈(112)은 카메라(110)가 인식한 마커 부재(250)의 종류에 따라 캘리브레이션 대상이 아닌 스크린을 오프시킨다(S 203). 구체적으로, 카메라(110)가 인식한 마커 부재(250)가 제1 마커 부재인 경우(즉, 제1 스크린(102)이 캘리브레이션 대상이 되는 스크린인 경우), 캘리브레이션 모듈(112)은 제2 스크린(104)을 오프시킬 수 있다. 또한, 카메라(110)가 인식한 마커 부재(250)가 제2 마커 부재인 경우(즉, 제2 스크린(104)이 캘리브레이션 대상이 되는 스크린인 경우), 캘리브레이션 모듈(112)은 제1 스크린(102)을 오프시킬 수 있다. If it is determined in step S 201 that the calibration event has occurred, the calibration module 112 turns off the non-calibration screen according to the type of the marker member 250 recognized by the camera 110 (S 203). Specifically, when the marker member 250 recognized by the camera 110 is the first marker member (that is, when the first screen 102 is the screen to be calibrated), the calibration module 112 performs the calibration (104) can be turned off. If the marker member 250 recognized by the camera 110 is the second marker member (that is, the second screen 104 is a screen to be subjected to the calibration), the calibration module 112 outputs the first screen 102 can be turned off.
다음으로, 캘리브레이션 모듈(112)은 캘리브레이션 대상이 되는 스크린에 가상 기준 큐브를 렌더링하여 표시한다(S 205). 가상 기준 큐브는 3차원 가상 객체로서, 헤드 마운트 디스플레이(100)로부터 기 설정된 거리(예를 들어, 1m)에 마커 부재(250)가 기 설정된 정자세로 위치하는 경우, 카메라(110)가 바라본 마커 부재(250)의 자세와 대응되는 자세를 가지도록 형성된 것일 수 있다. 가상 기준 큐브는 스크린의 중앙에 표시될 수 있다. Next, the calibration module 112 renders a virtual reference cube on the screen to be calibrated and displays it (S 205). The virtual reference cube is a three-dimensional virtual object. When the marker member 250 is positioned at a predetermined distance from the head-mounted display 100 at a predetermined distance (for example, 1 m) And the posture corresponding to the posture of the body 250. The virtual reference cube can be displayed in the center of the screen.
다음으로, 캘리브레이션 모듈(112)은 카메라(110)가 추적한 마커(255)의 자세와 대응되는 자세를 가지는 가상 테스트 큐브를 캘리브레이션 대상이 되는 스크린에 렌더링하여 표시한다(S 207). 이 경우, 해당 스크린에는 가상 기준 큐브와 가상 테스트 큐브가 각각 표시되게 된다.Next, the calibration module 112 renders a virtual test cube having a posture corresponding to the posture of the marker 255 tracked by the camera 110 on a screen to be calibrated and displays the virtual test cube (S 207). In this case, a virtual reference cube and a virtual test cube are displayed on the screen, respectively.
구체적으로, 캘리브레이션 모듈(112)은 카메라(110)가 추적한 마커(255)의 자세를 산출할 수 있다. 예시적인 실시예에서, 캘리브레이션 모듈(112)은 카메라(110)가 촬영한 영상에서 마커(255)의 외각 꼭지점들을 검출(예를 들어, 마커(255)가 사각형 형태인 경우 4개의 외각 꼭지점들을 검출)하고, 검출한 외각 꼭지점들의 좌표값(카메라 좌표계에서의 좌표값)을 추출할 수 있다. 이를 외각 꼭지점들의 제1 좌표값이라 지칭할 수 있다. 또한, 캘리브레이션 모듈(112)은 기 저장된 마커(255)의 영상에서 외각 꼭지점들의 좌표값을 추출할 수 있다. 이를 외각 꼭지점들의 제2 좌표값이라 지칭할 수 있다. 여기서, 기 저장된 마커(255)의 영상은 마커 부재(250)가 정 자세인 경우 촬영한 영상일 수 있다. Specifically, the calibration module 112 may calculate the posture of the marker 255 tracked by the camera 110. In an exemplary embodiment, the calibration module 112 detects the outer corner points of the marker 255 in the image captured by the camera 110 (e.g., when the marker 255 is in the shape of a rectangle, ), And extract coordinate values (coordinate values in the camera coordinate system) of the detected outer corner points. This can be referred to as the first coordinate value of the outer corner points. In addition, the calibration module 112 may extract the coordinate values of the outer corner points from the image of the pre-stored marker 255. This can be referred to as the second coordinate value of the outer corner points. Here, the image of the pre-stored marker 255 may be an image captured when the marker member 250 is in the normal posture.
캘리브레이션 모듈(112)은 외각 꼭지점들의 제1 좌표값과 외각 꼭지점들의 제2 좌표값을 비교하여 카메라(110)가 추적한 마커(255)의 자세를 산출할 수 있다. 즉, 캘리브레이션 모듈(112)은 외각 꼭지점들의 제2 좌표값을 기준으로 외각 꼭지점들의 제1 좌표값이 얼마만큼 이동 및 회전되었는지를 통해 카메라(110)가 추적한 마커(255)의 자세를 산출할 수 있다. 캘리브레이션 모듈(112)는 카메라(110)가 추적한 마커(255)의 자세와 대응되는 자세를 가지는 가상 테스트 큐브를 생성하여 스크린에 표시할 수 있다. 가상 테스트 큐브는 가상의 3차원 객체로서, 가상 기준 큐브와 동일한 크기로 형성될 수 있다. The calibration module 112 may compute the posture of the marker 255 tracked by the camera 110 by comparing the first coordinate value of the outer corner vertices with the second coordinate value of the outer vertexes. That is, the calibration module 112 calculates the posture of the marker 255 tracked by the camera 110 through how much the first coordinate value of the outer vertexes is moved and rotated based on the second coordinate value of the outer vertexes . The calibration module 112 may generate a virtual test cube having the posture corresponding to the posture of the marker 255 tracked by the camera 110 and display the virtual test cube on the screen. The virtual test cube is a virtual three-dimensional object and can be formed with the same size as the virtual reference cube.
다음으로, 캘리브레이션 모듈(112)은 해당 스크린에서 가상 기준 큐브와 가상 테스트 큐브가 정합(매칭)되는지 여부를 확인한다(S 209). 예시적인 실시예에서, 사용자는 헤드 마운트 디스플레이(100)를 두부에 착용한 상태에서 헤드 마운트 디스플레이(100)의 자세를 변경시켜 가면서 해당 스크린 상의 가상 기준 큐브와 가상 테스트 큐브가 매칭되도록 할 수 있다. 사용자는 해당 스크린 상의 가상 기준 큐브와 가상 테스트 큐브가 매칭되는 경우, 캘리브레이션 모듈(112)로 큐브 매칭 신호를 입력할 수 있다. Next, the calibration module 112 checks whether the virtual reference cube and the virtual test cube are matched (S 209) on the screen. In an exemplary embodiment, the user can change the posture of the head mount display 100 while the head mount display 100 is worn on the head, so that the virtual reference cubes on the screen match the virtual test cubes. The user may enter a cube matching signal into the calibration module 112 if the virtual reference cube on the screen matches the virtual test cube.
여기서, 가상 기준 큐브는 스크린 상에 고정되어 있으며, 가상 테스트 큐브는 헤드 마운트 디스플레이(100)의 자세(즉, 카메라(110)의 자세)가 변함에 따라 스크린 상에서 그 자세가 변하게 된다. 즉, 캘리브레이션 모듈(112)은 헤드 마운트 디스플레이(100)의 자세가 변함에 따라 카메라(110)가 추적한 마커(255)의 자세에 대응하여 가상 테스트 큐브의 자세를 변경할 수 있다. 가상 테스트 큐브는 카메라(110)를 기준으로 바라 본 마커(255)의 자세를 반영하게 된다.Here, the virtual reference cube is fixed on the screen, and the virtual test cube changes its posture on the screen as the posture of the head mount display 100 (i.e., the posture of the camera 110) changes. That is, the calibration module 112 can change the posture of the virtual test cube in accordance with the posture of the marker 255 tracked by the camera 110 as the posture of the head mount display 100 changes. The virtual test cube reflects the posture of the marker 255 viewed from the camera 110.
단계 S 209의 확인 결과, 해당 스크린에서 가상 기준 큐브와 가상 테스트 큐브가 정합된 경우, 캘리브레이션 모듈(112)은 가상 기준 큐브의 자세와 가상 테스트 큐브의 자세 간의 차이를 산출한다(S 211). 캘리브레이션 모듈(112)은 가상 기준 큐브의 자세를 기준으로 가상 테스트 큐브의 자세가 얼마나 차이가 나는지에 대한 자세 차이값을 산출할 수 있다. 예를 들어, 캘리브레이션 모듈(112)은 카메라 좌표계에서 가상 기준 큐브의 자세를 기준으로 가상 테스트 큐브의 자세가 x축, y축, 및 z축 상으로 각각 얼마나 회전되어 있는지에 대한 회전 차이값을 산출할 수 있다. 또한, 캘리브레이션 모듈(112)은 카메라 좌표계에서 가상 기준 큐브의 자세를 기준으로 가상 테스트 큐브의 자세가 x축, y축, 및 z축 상으로 각각 얼마나 이동되어 있는지에 대한 이동 차이값을 산출할 수 있다. If it is determined in step S 209 that the virtual reference cube and the virtual test cube are matched on the screen, the calibration module 112 calculates the difference between the virtual reference cube posture and the virtual test cube posture (S 211). The calibration module 112 may calculate the posture difference value as to how much the posture of the virtual test cube differs based on the posture of the virtual reference cube. For example, the calibration module 112 calculates a rotation difference value for how much the posture of the virtual test cube is rotated on the x axis, the y axis, and the z axis, based on the posture of the virtual reference cube in the camera coordinate system can do. In addition, the calibration module 112 can calculate the movement difference value of how much the posture of the virtual test cube is moved on the x axis, the y axis, and the z axis, based on the posture of the virtual reference cube in the camera coordinate system have.
즉, 상기 자세 차이값은 상기 회전 차이값 및 상기 이동 차이값을 포함할 수 있다. 캘리브레이션 모듈(112)은 회전 차이값을 회전 변환 매트릭스(R)로 나타내고, 이동 차이값을 이동 변환 매트릭스(T)로 나타낼 수 있다. 또한, 캘리브레이션 모듈(112)은 자세 차이값을 회전 이동 변환 행렬(R|T)로 나타낼 수 있다.That is, the posture difference value may include the rotation difference value and the movement difference value. The calibration module 112 may express the rotation difference value as a rotation transformation matrix R and the movement difference value as a translation transformation matrix T. [ Also, the calibration module 112 may represent the attitude difference value as a rotation movement transformation matrix R | T.
다음으로, 캘리브레이션 모듈(112)은 해당 스크린을 기준으로 바라 본 마커(255)의 자세를 산출한다(S 213). 캘리브레이션 모듈(112)은 가상 기준 큐브와 가상 테스트 큐브의 정합 시 가상 기준 큐브와 가상 테스트 큐브 간 자세 차이값, 가상 기준 큐브와 가상 테스트 큐브의 정합 시 가상 테스트 큐브의 자세, 및 카메라(110)의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시키는 변환 매트릭스(수학식 2 또는 수학식 3에 의한 변환 매트릭스)를 기반으로 해당 스크린을 기준으로 바라 본 마커(255)의 자세를 산출할 수 있다. Next, the calibration module 112 calculates the posture of the marker 255 that is viewed based on the screen (S 213). The calibration module 112 calculates the posture difference value between the virtual reference cube and the virtual test cube at the time of matching the virtual reference cube and the virtual test cube, the posture of the virtual test cube at the time of matching the virtual reference cube and the virtual test cube, The posture of the marker 255 viewed from the screen can be calculated on the basis of a conversion matrix (a conversion matrix according to Equation 2 or Equation 3) that converts the viewing angle into a viewing angle that the user views through the screen.
캘리브레이션 모듈(112)은 하기의 수학식 4를 통해 해당 스크린을 기준으로 바로 본 마커(255)의 자세(Posescreen)을 산출할 수 있다. The calibration module 112 can calculate the posescreen of the marker 255 that is viewed based on the screen using the following equation (4).
(수학식 4)(4)
M : 카메라의 시야각을 사용자가 스크린을 통해 바라보는 시야각으로 변환시키는 변환 매트릭스M: a transformation matrix that transforms the viewing angle of the camera into a viewing angle that the user views through the screen
Posecamera : 가상 기준 큐브와 가상 테스트 큐브의 정합 시 가상 테스트 큐브의 자세Posecamera: The attitude of the virtual test cube when matching the virtual reference cube and the virtual test cube
[R|T] : 가상 기준 큐브와 가상 테스트 큐브의 정합 시 가상 기준 큐브와 가상 테스트 큐브 간 자세 차이값[R | T]: Posture difference value between virtual reference cube and virtual test cube when matching virtual reference cube and virtual test cube
한편, 캘리브레이션 모듈(112)은 다른 스크린(즉, 단계 S 203에서 오프된 스크린)에 대해서도 단계 S 205 이후의 과정을 반복하여 다른 스크린을 기준으로 바라 본 마커의 자세를 산출할 수 있다. On the other hand, the calibration module 112 may repeat the process after step S 205 for another screen (i.e., the screen turned off in step S 203) to calculate the posture of the marker viewed from the other screen.
도 12는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되는 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.12 is a block diagram illustrating and illustrating a computing environment 10 that includes a computing device suitable for use in the exemplary embodiments. In the illustrated embodiment, each of the components may have different functions and capabilities than those described below, and may include additional components in addition to those described below.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 헤드 마운트 디스플레이 장치(예를 들어, 헤드 마운트 디스플레이(100))일 수 있다. 또한, 컴퓨팅 장치(12)는 캘리브레이션을 위한 장치(예를 들어, 캘리브레이션 모듈(112))일 수 있다.The illustrated computing environment 10 includes a computing device 12. In one embodiment, the computing device 12 may be a head-mounted display device (e.g., head-mounted display 100). In addition, the computing device 12 may be a device (e.g., calibration module 112) for calibration.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The computing device 12 includes at least one processor 14, a computer readable storage medium 16, The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiment discussed above. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which when executed by the processor 14 cause the computing device 12 to perform operations in accordance with the illustrative embodiment .
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and / or other suitable forms of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, the computer-readable storage medium 16 may be any type of storage medium such as a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, Memory devices, or any other form of storage medium that can be accessed by the computing device 12 and store the desired information, or any suitable combination thereof.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다. Communication bus 18 interconnects various other components of computing device 12, including processor 14, computer readable storage medium 16.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The computing device 12 may also include one or more input / output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input / output devices 24. The input / output interface 22 and the network communication interface 26 are connected to the communication bus 18. The input / output device 24 may be connected to other components of the computing device 12 via the input / output interface 22. The exemplary input and output device 24 may be any type of device, such as a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touch pad or touch screen), a voice or sound input device, An input device, and / or an output device such as a display device, a printer, a speaker, and / or a network card. The exemplary input and output device 24 may be included within the computing device 12 as a component of the computing device 12 and may be coupled to the computing device 12 as a separate device distinct from the computing device 12 It is possible.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.