WO2023238678A1 - 情報処理装置、コントローラ表示方法およびコンピュータプログラム - Google Patents

情報処理装置、コントローラ表示方法およびコンピュータプログラム Download PDF

Info

Publication number
WO2023238678A1
WO2023238678A1 PCT/JP2023/019468 JP2023019468W WO2023238678A1 WO 2023238678 A1 WO2023238678 A1 WO 2023238678A1 JP 2023019468 W JP2023019468 W JP 2023019468W WO 2023238678 A1 WO2023238678 A1 WO 2023238678A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
input device
user
image
display
Prior art date
Application number
PCT/JP2023/019468
Other languages
English (en)
French (fr)
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 WO2023238678A1 publication Critical patent/WO2023238678A1/ja

Links

Images

Classifications

    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object

Definitions

  • the present invention relates to an information processing device, a controller display method, and a computer program.
  • VR content electronic content
  • VR virtual reality
  • a walk-through system has also been developed that allows a user wearing a head-mounted display to virtually walk around in a space displayed as VR content by physically moving.
  • Video see-through has also been realized, which displays 3D content overlaid on images of the surrounding real world captured by a camera built into the head-mounted display.
  • a user who uses a head-mounted display may try to wear the head-mounted display without holding the controller in his hand, and then try to hold the controller in his hand after wearing the head-mounted display.
  • the user can view images of the surroundings captured by the camera of the head-mounted display, but the user may not know how to hold the controller until the user gets used to the shape of the controller.
  • One object of the present invention is to provide a technology that assists a user wearing a head-mounted display in correctly grasping a controller.
  • an information processing device includes a photographed image acquisition section that acquires a photographed image taken in front of a user wearing a head-mounted display, and a gripping section that the user should grip.
  • the controller includes an estimating unit that estimates the position of the controller based on a captured image showing the controller, and a display control unit that causes a head-mounted display to display the captured image in front of the user.
  • the display control unit further displays a first object indicating a location to be grasped by the user, along with the photographed image, based on the estimation result of the position of the controller.
  • Another aspect of the present invention is a controller display method.
  • This method includes the steps of acquiring a captured image taken in front of a user wearing a head-mounted display, and estimating the position of the controller based on the captured image showing the controller equipped with a grip that the user should grasp.
  • the computer executes the steps of displaying a photographed image taken in front of the user on a head-mounted display.
  • a first object indicating a location to be grasped by the user is further displayed along with the photographed image based on the estimation result of the position of the controller.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system in an embodiment. It is a figure showing an example of the external shape of HMD. It is a diagram showing functional blocks of an HMD.
  • FIG. 4(a) is a diagram showing the shape of a left-handed input device
  • FIG. 4(b) is a diagram showing the shape of a right-handed input device.
  • FIG. 3 is a diagram showing the shape of a right-handed input device.
  • FIG. 3 is a diagram showing an example of a portion of an image taken of an input device.
  • FIG. 2 is a block diagram showing functional blocks of an input device.
  • FIG. 2 is a block diagram showing functional blocks of the information processing device.
  • 3 is a flowchart showing position and orientation estimation processing.
  • FIG. 4(a) is a diagram showing the shape of a left-handed input device
  • FIG. 4(b) is a diagram showing the shape of a right-handed input device.
  • FIG. 3 is a diagram showing
  • FIG 3 is a diagram showing the internal configuration of an estimation processing section. It is a figure which shows the transition example of the guide display in a camera AR image. It is a figure showing an example of camera AR video. It is a figure showing an example of camera AR video. It is a figure showing an example of camera AR video. It is a figure showing an example of camera AR video. It is a figure showing an example of camera AR video.
  • an information processing device game machine, etc.
  • a controller also referred to as an "input device” in the embodiment
  • a head-mounted display can also be called a VR headset, and will also be referred to as an "HMD” hereinafter.
  • the controller is in a power-on state, in other words, a state in which power is supplied from a power source such as a battery.
  • the user wears the HMD on his head without holding the controller in his hand, and also performs various adjustments.
  • the user holds the controller and performs an operation related to editing the play area in which the user wearing the HMD can move.
  • the user When the user is about to pick up the controller to edit the play area, the user can see images of the surrounding real world captured by the HMD's camera. However, it is not easy for an inexperienced user to find the controller based on the image taken by the HMD camera, correctly judge the posture of the controller, and grasp the controller correctly.
  • information that assists the user in correctly holding the controller is added to the video taken by the HMD camera and presented to the user.
  • an object is added near the gripping portion of the controller shown in the photographed image, indicating that this is the part to be gripped.
  • the controller includes a curved part into which the user inserts his/her hand in addition to the grip part, and the user's hand is placed near the curved part of the controller in the photographed image as information to assist the user in correctly grasping the controller. Add an object that indicates where it should be inserted. This helps the user wearing the HMD to correctly grasp the controller.
  • FIG. 1 shows a configuration example of an information processing system 1 in an embodiment.
  • the information processing system 1 includes an information processing device 10, a recording device 11, an HMD 100, an input device 16 that a user holds and operates with his or her fingers, and an output device 15 that outputs images and audio.
  • Output device 15 may be a television.
  • the information processing device 10 is connected to an external network 2 such as the Internet via an access point (AP) 17.
  • the AP 17 has the functions of a wireless access point and a router, and the information processing device 10 may be connected to the AP 17 by a cable or by a known wireless communication protocol.
  • the recording device 11 records applications such as system software and game software.
  • the information processing device 10 may download various applications such as game software to the recording device 11 from the content server via the network 2.
  • the information processing device 10 executes various applications and supplies image data and audio data (also referred to as VR content data) of the application to be output to the HMD 100 .
  • the information processing device 10 and the HMD 100 may be connected by a known wireless communication protocol, or may be connected by a cable.
  • the HMD 100 is a display device that is worn on the user's head and displays images on a display panel located in front of the user's eyes.
  • the HMD 100 separately displays an image for the left eye on the display panel for the left eye, and an image for the right eye on the display panel for the right eye. These images constitute parallax images seen from the left and right viewpoints, achieving stereoscopic vision. Since the user views the display panel through an optical lens, the information processing device 10 supplies the HMD 100 with parallax image data that has been corrected for optical distortion caused by the lens.
  • the output device 15 is not necessary for the user wearing the HMD 100, by providing the output device 15, another user can view the display image of the output device 15.
  • the information processing device 10 may cause the output device 15 to display the same image as the image being viewed by the user wearing the HMD 100, or may cause the output device 15 to display a different image. For example, when a user wearing the HMD 100 and another user play a game together, the output device 15 may display a game image from the other user's character viewpoint.
  • the information processing device 10 and the input device 16 may be connected using a known wireless communication protocol, or may be connected using a cable.
  • the input device 16 includes a plurality of operation members such as operation buttons, and the user operates the operation members with his fingers while holding the input device 16.
  • the input device 16 is used as a game controller.
  • the input device 16 a user's operation related to the progress of the game is inputted to an operation member, and the operation information is transmitted to the information processing device 10, so that the user's operation is reflected in the game.
  • the input device 16 may be a controller that communicates with the HMD 100 and controls the operation of the HMD 100.
  • the input device 16 includes an inertial measurement unit (IMU) including a 3-axis acceleration sensor and a 3-axis angular velocity sensor.
  • IMU inertial measurement unit
  • the input device 16 transmits sensor data measured by the IMU to the information processing apparatus 10 at a predetermined frequency (for example, 800 Hz).
  • the game of the embodiment handles not only the operation information of the operation members of the input device 16, but also the position, speed, posture, etc. of the input device 16 as operation information, and reflects it on the movement of the player character in the virtual three-dimensional space.
  • operation information on the operation member may be used as information for moving the player character
  • operation information such as the position, speed, and posture of the input device 16 may be used as information for moving the arm of the player character.
  • the movement of the input device 16 is reflected in the movement of the player character holding the weapon, allowing the user to perform intuitive operations and increasing the sense of immersion in the game.
  • the input device 16 In order to track the position and orientation of the input device 16, the input device 16 is provided with a plurality of markers (light emitting portions) that can be photographed by the imaging device 14.
  • the information processing apparatus 10 has a function (hereinafter also referred to as a "first estimation function") of analyzing an image taken of the input device 16 and estimating the position and orientation of the input device 16 in real space.
  • a plurality of imaging devices 14 are mounted on the HMD 100.
  • the plurality of imaging devices 14 are attached at different positions on the front surface of the HMD 100 in different postures so that the total imaging range including the imaging ranges of the respective imaging devices includes the entire field of view of the user.
  • the imaging device 14 includes an image sensor that can capture images of a plurality of markers on the input device 16. For example, if the marker emits visible light, the imaging device 14 has a visible light sensor used in general digital video cameras, such as a CCD (Charge Coupled Device) sensor or a CMOS (Complementary Metal Oxide Semiconductor) sensor. When the marker emits invisible light, the imaging device 14 has an invisible light sensor.
  • CCD Charge Coupled Device
  • CMOS Complementary Metal Oxide Semiconductor
  • the plurality of imaging devices 14 take images in front of the user at a predetermined cycle (for example, 120 frames/second) at synchronized timing, and perform information processing on the data of images taken of real space (hereinafter also referred to as "photographed images"). to the device 10.
  • the captured image in the example is an image captured in real space in the front direction of the user wearing the HMD 100 (the direction in which the user's face is facing).
  • the information processing device 10 executes the first estimation function to identify the positions of the plurality of marker images of the input device 16 included in the captured image. Note that one input device 16 may be photographed by multiple imaging devices 14 at the same timing, but since the mounting position and mounting orientation of the imaging device 14 are known, the information processing device 10 combines the multiple captured images. The position of the marker image may be specified by
  • the three-dimensional shape of the input device 16 and the positional coordinates of the plurality of markers placed on its surface are known, and the information processing apparatus 10 determines the shape of the input device 16 based on the positional coordinates of the plurality of marker images in the captured image. Estimate the position and orientation of the object in real space.
  • the position of the input device 16 may be estimated as a coordinate value in world coordinates in a three-dimensional space with the reference position as the origin, and the reference position is the position coordinates (latitude, longitude, altitude (altitude)) set before the start of the game. It may be.
  • the attitude of the input device 16 may be expressed by an inclination or an angle in each of the three axes with respect to a predetermined reference attitude.
  • the information processing apparatus 10 of the embodiment has a function (hereinafter also referred to as a "second estimation function") of analyzing sensor data transmitted from the input device 16 and estimating the position and orientation of the input device 16 in real space. Be prepared.
  • the information processing apparatus 10 derives the position and orientation of the input device 16 using the estimation results obtained by the first estimation function and the estimation results obtained by the second estimation function.
  • the information processing device 10 of the embodiment utilizes state estimation technology using a Kalman filter to integrate the estimation results obtained by the first estimation function and the estimation results obtained by the second estimation function, thereby determining the state of the input device 16 at the current time. Estimate the state with high accuracy.
  • FIG. 2 shows an example of the external shape of the HMD 100.
  • the HMD 100 includes an output mechanism section 102 and a mounting mechanism section 104.
  • the attachment mechanism section 104 includes an attachment band 106 that is worn by the user to go around the head and fix the HMD 100 to the head.
  • the attachment band 106 has a material or structure whose length can be adjusted to fit the user's head circumference.
  • the output mechanism section 102 includes a casing 108 that is shaped to cover the left and right eyes when the HMD 100 is worn by the user, and includes a display panel that directly faces the eyes when the user wears the HMD 100.
  • the display panel may be a liquid crystal panel, an organic EL panel, or the like.
  • Inside the housing 108 a pair of left and right optical lenses are further provided that are located between the display panel and the user's eyes and expand the user's viewing angle.
  • the HMD 100 may further include a speaker or earphones at a position corresponding to the user's ears, and may be configured to be connected to external headphones.
  • the front outer surface of the housing 108 is provided with a plurality of imaging devices 14 such as imaging devices 14a, 14b, 14c, and 14d.
  • imaging devices 14a, 14b, 14c, and 14d With the front direction of the user's face as a reference, the imaging device 14a is attached to the upper right corner of the front outer surface so that the camera optical axis points diagonally upward to the right, and the imaging device 14b is attached so that the camera optical axis points diagonally upward to the left.
  • the imaging device 14c is attached to the lower right corner of the front outer surface so that the camera optical axis points diagonally downward to the right, and the imaging device 14d is attached to the lower right corner of the front outer surface so that the camera optical axis points diagonally downward to the left.
  • the entire imaging range that is the sum of the imaging ranges of the respective imaging devices includes the entire field of view of the user.
  • This user's field of view may be the user's field of view in a three-dimensional virtual space.
  • the HMD 100 transmits sensor data detected by an IMU (inertial measurement unit) and image data captured by the imaging device 14 to the information processing device 10, and also receives game image data and game audio data generated by the information processing device 10. do.
  • IMU intial measurement unit
  • FIG. 3 shows functional blocks of the HMD 100.
  • the control unit 120 is a main processor that processes and outputs various data such as image data, audio data, and sensor data, as well as commands.
  • the control unit 120 may include a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit).
  • the storage unit 122 temporarily stores data and instructions processed by the control unit 120.
  • the IMU 124 acquires sensor data regarding the movement of the HMD 100.
  • IMU 124 may include at least a three-axis acceleration sensor and a three-axis angular velocity sensor.
  • the IMU 124 detects the value (sensor data) of each axis component at a predetermined period (for example, 800 Hz).
  • the communication control unit 128 transmits the data output from the control unit 120 to the external information processing device 10 by wired or wireless communication via a network adapter or antenna.
  • the communication control unit 128 also receives data from the information processing device 10 and outputs it to the control unit 120.
  • control unit 120 When the control unit 120 receives game image data and game audio data from the information processing device 10, it supplies the data to the display panel 130 for display, and also supplies it to the audio output unit 132 for audio output.
  • the display panel 130 includes a left-eye display panel 130a and a right-eye display panel 130b, and a pair of parallax images is displayed on each display panel.
  • the control unit 120 also causes the communication control unit 128 to transmit sensor data from the IMU 124, audio data from the microphone 126, and captured image data from the imaging device 14 to the information processing device 10.
  • FIG. 4(a) shows the shape of the left-handed input device 16a.
  • the left hand input device 16a includes a case body 20, a plurality of operation members 22a, 22b, 22c, and 22d (hereinafter referred to as "operation members 22" unless otherwise distinguished) that are operated by the user, and a case body 20. It includes a plurality of markers 30 that emit light to the outside.
  • the marker 30 may have an emitting portion with a circular cross section.
  • the operating member 22 may include a tiltable analog stick, a push button, or the like.
  • the case body 20 has a grip part 21 and a curved part 23 that connects the head of the case body and the bottom of the case body, and the user puts his left hand into the curved part 23 and grips the grip part 21 . While gripping the grip portion 21, the user operates the operation members 22a, 22b, 22c, and 22d using the thumb of the left hand.
  • FIG. 4(b) shows the shape of the right-handed input device 16b.
  • the right-handed input device 16b includes a case body 20, a plurality of operation members 22e, 22f, 22g, and 22h (hereinafter referred to as "operation members 22" unless otherwise distinguished) that are operated by the user, and a case body 20. It includes a plurality of markers 30 that emit light to the outside.
  • the operating member 22 may include a tiltable analog stick, a push button, or the like.
  • the case body 20 has a grip portion 21 and a curved portion 23 that connects the head of the case body and the bottom of the case body, and the user inserts his/her right hand into the curved portion 23 and grips the grip portion 21 . While gripping the grip portion 21, the user operates the operation members 22e, 22f, 22g, and 22h using the thumb of the right hand.
  • FIG. 5 shows the shape of the right-handed input device 16b.
  • the input device 16b includes operating members 22i and 22j in addition to the operating members 22e, 22f, 22g, and 22h shown in FIG. 4(b). While gripping the grip portion 21, the user operates the operating member 22i using the index finger of the right hand, and operates the operating member 22j using the middle finger.
  • input device 16a and the input device 16b are particularly distinguished, they will be referred to as "input device 16.”
  • the input device 16 of the embodiment is a controller that allows the user to insert his/her hand into the curved portion 23 and grasp the grip portion 21 .
  • the operating member 22 provided on the input device 16 may be equipped with a touch sense function that recognizes a finger just by touching it, without having to press it.
  • the operating members 22f, 22g, and 22j may include capacitive touch sensors. Note that the touch sensor may be mounted on another operating member 22, but when the input device 16 is placed on a mounting surface such as a table, the touch sensor may be mounted on the operating member 22 so that it does not come into contact with the mounting surface. It is preferable that
  • the marker 30 is a light emitting part that emits light to the outside of the case body 20, and includes a resin part on the surface of the case body 20 that diffuses and emits light from a light source such as an LED (Light Emitting Diode) element to the outside. .
  • the marker 30 is photographed by the imaging device 14 and used for tracking processing of the input device 16.
  • the information processing device 10 uses images captured by the imaging device 14 for tracking processing of the input device 16 and SLAM (Simultaneous Localization and Mapping) processing of the HMD 100.
  • SLAM Simultaneous Localization and Mapping
  • a grayscale image shot at 60 frames/second is used for tracking processing by the input device 16
  • a grayscale image shot at 60 frames/second is used for the tracking process of the input device 16.
  • the full-color image may be used in the process of simultaneously performing self-position estimation and environment map creation of the HMD 100.
  • FIG. 6 shows an example of a portion of an image taken of the input device 16.
  • This image is an image of the input device 16b held by the right hand, and includes images of a plurality of markers 30 that emit light.
  • the communication control unit 128 transmits image data captured by the imaging device 14 to the information processing device 10 in real time.
  • FIG. 7 is a block diagram showing the functional blocks of the input device 16.
  • the control unit 50 receives operation information input to the operation member 22.
  • the control unit 50 also receives sensor data detected by the IMU (inertial measurement unit) 32 and sensor data detected by the touch sensor 24.
  • the touch sensor 24 is attached to at least a portion of the plurality of operating members 22 and detects the state in which the user's finger is in contact with the operating member 22 .
  • the IMU 32 includes an acceleration sensor 34 that acquires sensor data regarding the movement of the input device 16 and detects acceleration data of at least three axes, and an angular velocity sensor 36 that detects angular velocity data of three axes.
  • the acceleration sensor 34 and the angular velocity sensor 36 detect the value (sensor data) of each axis component at a predetermined period (for example, 800 Hz).
  • the control unit 50 supplies the received operation information and sensor data to the communication control unit 54, and the communication control unit 54 transmits the operation information and sensor data to the information processing device 10 by wired or wireless communication via a network adapter or antenna. Send to.
  • the input device 16 includes a plurality of light sources 58 for lighting the plurality of markers 30.
  • the light source 58 may be an LED element that emits light in a predetermined color.
  • the control unit 50 causes the light source 58 to emit light based on the light emission instruction, and lights up the marker 30. Note that in the example shown in FIG. 7, one light source 58 is provided for one marker 30, but one light source 58 may light a plurality of markers 30.
  • FIG. 8 is a block diagram showing functional blocks of the information processing device 10.
  • the information processing device 10 includes a processing section 200 and a communication section 202.
  • the processing section 200 includes an acquisition section 210, an application execution section 220, an image signal processing section 222, a marker information holding section 224, a state holding section 226, an estimation processing section 230, an image signal processing section 268, a SLAM processing section 270, and an image generation section. 272, and an image output section 274.
  • the acquisition unit 210 includes a photographed image acquisition unit 212, a sensor data acquisition unit 214, and an operation information acquisition unit 216.
  • the estimation processing section 230 includes a first estimation processing section 240, a second estimation processing section 250, a third estimation processing section 260, and a stillness determination section 262.
  • the communication unit 202 communicates with an external device according to a predetermined communication protocol.
  • External devices include HMD 100, output device 15, input device 16, a server (not shown), and other information processing devices.
  • the communication unit 202 receives operation information of the operation member 22 and sensor data transmitted from the input device 16, and supplies the received information to the acquisition unit 210.
  • the communication unit 202 also receives captured image data and sensor data transmitted from the HMD 100 and supplies the data to the acquisition unit 210.
  • the information processing device 10 includes a computer, and various functions shown in FIG. 8 are realized by the computer executing programs.
  • a computer includes hardware such as a memory for loading a program, one or more processors (such as a CPU or GPU) for executing the loaded program, an auxiliary storage device, and other LSIs.
  • a processor is constituted by a plurality of electronic circuits including a semiconductor integrated circuit and an LSI, and the plurality of electronic circuits may be mounted on one chip or on a plurality of chips.
  • the functional blocks shown in FIG. 8 are realized by cooperation of hardware and software, and therefore, it will be understood by those skilled in the art that these functional blocks can be realized in various ways by only hardware, only software, or a combination thereof. It is understood.
  • the captured image acquisition unit 212 acquires a full-color image for SLAM processing of the HMD 100 and supplies it to the image signal processing unit 268.
  • the image signal processing unit 268 performs image signal processing such as noise reduction and optical correction (shading correction) on the image data, and supplies the image data subjected to the image signal processing to the SLAM processing unit 270.
  • the sensor data acquisition unit 214 acquires sensor data transmitted from the HMD 100 and supplies it to the SLAM processing unit 270.
  • the SLAM processing unit 270 simultaneously performs self-position estimation of the HMD 100 and environment map creation based on the image data supplied from the photographed image acquisition unit 212 and the sensor data supplied from the sensor data acquisition unit 214.
  • the captured image acquisition unit 212 acquires a grayscale image for tracking processing of the input device 16 and supplies it to the image signal processing unit 222.
  • the image signal processing section 222 performs image signal processing such as noise reduction and optical correction (shading correction) on the image data, and supplies the image data subjected to the image signal processing to the first estimation processing section 240 .
  • the first estimation processing section 240 includes a marker image coordinate specifying section 242, a position/orientation deriving section 244, and a noise deriving section 248. Realize the estimation function.
  • the first estimation processing unit 240 extracts marker images of the plurality of markers 30 of the input device 16 from the captured image, and estimates the position and orientation of the input device 16 from the arrangement of the extracted plurality of marker images.
  • the first estimation processing section 240 outputs the estimated position and orientation of the input device 16 along with the variance of its noise (error) to the third estimation processing section 260.
  • the sensor data acquisition unit 214 acquires sensor data transmitted from the input device 16 and supplies it to the second estimation processing unit 250.
  • the second estimation processing unit 250 realizes a second estimation function of estimating the position and orientation of the input device 16 based on sensor data indicating the acceleration and angular velocity of the input device 16.
  • the second estimation function is a function to perform a state prediction step in a Kalman filter, and the second estimation processing unit 250 uses the supplied sensor data to the state vector (position, velocity, attitude) at the previous time.
  • the second estimation processing section 250 outputs the estimated state vector together with its noise variance to the third estimation processing section 260. Note that noise accumulates in the amount of change obtained by the integral calculation over time, so the state vector (position, velocity, attitude) estimated by the second estimation processing unit 250 may be different from the actual state vector (position, velocity, attitude). ) tends to move away from
  • the third estimation processing section 260 calculates, from the position and orientation of the input device 16 estimated by the first estimation processing section 240 and the state vector (position, velocity, orientation) of the input device 16 estimated by the second estimation processing section 250.
  • the position and orientation of the input device 16 are derived with high precision.
  • the third estimation processing unit 260 may perform a UKF (unscented Kalman filter) filtering step (correction step).
  • the third estimation processing section 260 obtains the state vector estimated by the second estimation processing section 250 as a "pre-estimated value", and obtains the position and orientation estimated by the first estimation processing section 240 as "observed values”.
  • a Kalman gain is calculated, and a "posterior estimated value” is obtained by correcting the "prior estimated value” using the Kalman gain.
  • the “post-estimated value” expresses the position and orientation of the input device 16 with high precision, is provided to the application execution unit 220, is recorded in the state storage unit 226, and is stored at the next time in the second estimation processing unit 250. It is used to estimate the state vector of
  • a method of increasing accuracy by integrating analysis results using multiple sensors such as the imaging device 14 and IMU 32 is known as sensor fusion.
  • sensor fusion it is necessary to express the time when data is acquired by each sensor on a common time axis.
  • the third The estimation processing unit 260 can estimate the position and orientation of the input device 16 with high accuracy.
  • FIG. 9 is a flowchart showing position and orientation estimation processing by the first estimation processing unit 240.
  • the captured image acquisition unit 212 acquires image data captured by the input device 16 (S10) and supplies it to the image signal processing unit 222.
  • the image signal processing section 222 performs image signal processing such as noise reduction and optical correction on the image data (S12), and supplies the image data subjected to the image signal processing to the marker image coordinate specifying section 242.
  • the marker image coordinate specifying unit 242 specifies representative coordinates of a plurality of marker images included in the captured image (S14). When the luminance of each pixel of a grayscale image is expressed by 8 bits and takes a luminance value of 0 to 255, the marker image is photographed as an image with high luminance as shown in FIG.
  • the marker image coordinate specifying unit 242 specifies, from the photographed image, an area where pixels having a brightness value of a predetermined value or more (for example, 128 brightness value) are continuous, calculates the barycenter coordinates of the continuous pixel area, and calculates the barycenter coordinates of the continuous pixel area. Representative coordinates may be specified.
  • the marker image coordinate specifying unit 242 investigates whether a continuous pixel region having a luminance value equal to or greater than a predetermined value corresponds to a marker image by checking some predetermined criteria. For example, if the continuous pixel area is too large or has an elongated shape, it is certain that the continuous pixel area does not correspond to the marker image, so the marker image coordinate specifying unit 242 It may be determined that is not a marker image.
  • the marker image coordinate specifying unit 242 calculates the barycentric coordinates of a continuous pixel area that satisfies a predetermined criterion, specifies them as representative coordinates of the marker image (marker image coordinates), and stores the specified representative coordinates in a memory (not shown).
  • the marker information holding unit 224 holds the three-dimensional coordinates of each marker in the three-dimensional model of the input device 16 in the reference position and reference orientation.
  • the position/orientation deriving unit 244 reads N marker image coordinates (N is an integer of 3 or more) from a memory (not shown), and calculates the read N marker image coordinates and the three-dimensional information of the input device 16.
  • the position and orientation of the input device 16 are estimated from the three-dimensional coordinates of the N markers in the model.
  • the position and orientation deriving unit 244 estimates the position and orientation of the imaging device 14 using the following (Equation 1), and derives the position and orientation of the input device 16 in three-dimensional space based on the estimation result.
  • (u, v) are the marker image coordinates in the photographed image
  • (X, Y, Z) are the three-dimensional space of the marker 30 when the three-dimensional model of the input device 16 is in the reference position and reference orientation.
  • the marker information holding unit 224 stores information about the three-dimensional model in the reference position and reference orientation. It holds the three-dimensional coordinates of each marker.
  • the position and orientation deriving unit 244 reads the three-dimensional coordinates of each marker from the marker information holding unit 224 and obtains (X, Y, Z).
  • (f x , f y ) is the focal length of the imaging device 14
  • (c x , c y ) is the image principal point, both of which are internal parameters of the imaging device 14 .
  • the matrix whose elements are r 11 to r 33 and t 1 to t 3 is a rotation/translation matrix.
  • (Equation 1) (u, v), (f x , f y ), (c x , c y ), and (X, Y, Z) are known, and the position/orientation deriving unit 244 calculates N markers. By solving the equation for 30, the common rotation/translation matrix for them is found.
  • the process of estimating the position and orientation of the input device 16 is performed by solving a P3P problem.
  • the position and orientation deriving unit 244 extracts arbitrary three marker image coordinates from among the plurality of marker image coordinates specified by the marker image coordinate specifying unit 242.
  • the position and orientation deriving unit 244 reads the three-dimensional coordinates of the marker in the three-dimensional model from the marker information holding unit 224, and solves the P3P problem using (Equation 1).
  • the position/orientation deriving unit 244 identifies a rotation/translation matrix common to the three extracted marker image coordinates
  • the position/orientation deriving unit 244 calculates the reprojection error using the marker image coordinates of the input device 16 other than the three extracted marker image coordinates. Calculate.
  • the position/orientation derivation unit 244 extracts a predetermined number of combinations of the three marker image coordinates.
  • the position/orientation deriving unit 244 specifies the rotation/translation matrix for each combination of the three extracted marker image coordinates, and calculates the respective reprojection errors. Then, the position/orientation deriving unit 244 identifies the rotational/translational matrix that results in the minimum reprojection error from among the predetermined number of reprojection errors, and derives the position and orientation of the input device 16 (S16).
  • the noise derivation unit 248 derives the variance of noise (error) for each of the estimated positions and orientations (S18).
  • the variance value of the noise corresponds to the reliability of the estimated position and orientation; if the reliability is high, the variance value is small, and if the reliability is low, the variance value is large.
  • the noise derivation unit 248 may derive the noise variance based on the distance between the imaging device 14 and the input device 16 and the position of the marker image within the angle of view. For example, if the imaging device 14 and the input device 16 are far apart or extremely close, or if the marker image is located at the edge of the captured image, it is difficult to derive accurate barycentric coordinates of the marker image. Therefore, the noise variance tends to be large.
  • the noise derivation unit 248 calculates the variance of the noise of each of the estimated position and estimated orientation as It may be set to a small fixed value.
  • the noise deriving unit 248 may set the variance of position noise during tracking processing to a fixed value of “0.5 mm” and supply it to the third estimation processing unit 260.
  • the first estimation processing unit 240 may output the estimated position and orientation information as well as the variance of position noise and orientation noise to the third estimation processing unit 260. If it is a fixed value, the noise variance may be output once to the third estimation processing unit 260 at the start of the tracking process, and the third estimation processing unit 260 may store and use the noise variance.
  • the position and orientation estimation process by the first estimation processing unit 240 is performed at the imaging cycle (60 frames/second) of the tracking image of the input device 16 (N in S20).
  • the application execution unit 220 finishes executing the application (game, etc.) the position and orientation estimation process by the first estimation processing unit 240 ends (Y in S20).
  • FIG. 10 shows the internal configuration of the estimation processing section 230.
  • the first estimation processing unit 240 outputs the estimated position and orientation as “observation value n k ” and the variance of the position noise and orientation noise as “observation noise R k ” to the third estimation processing unit 260.
  • n k Observation vector at time k
  • Observation noise R k Error covariance matrix of observation value at time k
  • the second estimation processing unit 250 reads “state vector m k-1
  • the state variable m in the embodiment includes the position, velocity, and orientation of the input device 16, but may also include an acceleration bias and an angular velocity bias.
  • the second estimation processing unit 250 also acquires the acceleration a k and the angular velocity ⁇ k of the input device 16 from the sensor data acquisition unit 214, and inputs the acceleration a k and the angular velocity ⁇ k as “process input l k ” to the prediction unit. input.
  • - Acceleration a k Acceleration at time k
  • Angular velocity ⁇ k Angular velocity at time k
  • Process input l k Process input vector at time k
  • the second estimation processing unit 250 calculates the variance of acceleration noise and the variance of angular velocity noise from acceleration a k , angular velocity ⁇ k , and fixed noise parameters (including axis deviation, scale deviation, value deviation, and bias deviation). , are input to the prediction unit as “process noise Q k ”.
  • Process noise Q k Error covariance matrix of process input at time k
  • the prediction unit calculates the amount of change (that is, the amount of position change, velocity change, and posture change amount) from the "state vector m k -1
  • the prediction unit integrates the acceleration a k to calculate the amount of change in speed, integrates the estimated speed using the amount of speed change to calculate the amount of position change, and integrates the angular velocity ⁇ k to calculate the amount of attitude change. calculate.
  • the prediction unit outputs the “state vector m k
  • k-1 State vector at time k estimated using information up to time k-1
  • k-1 State vector at time k estimated using information up to time k-1 Estimated error covariance matrix
  • the third estimation processing unit 260 obtains the “observation value n k ” and “observation noise R k ” from the first estimation processing unit 240 , and obtains the “state vector m k
  • the third estimation processing unit 260 corrects the "state vector m k
  • k State vector at time k estimated using information up to time k
  • k Estimation error covariance matrix of state at time k estimated using information up to time k
  • k ” indicates the highly accurately estimated position, velocity, and orientation, and may be provided to the application execution unit 220 and used for operating the application.
  • k ” are temporarily held in the state holding unit 226 and read out during the estimation process at time k+1 in the second estimation processing unit 250 .
  • the estimation processing by the first estimation processing unit 240 is carried out at a cycle of 60 Hz, while the estimation processing by the second estimation processing unit 250 is carried out at a cycle of 800 Hz. Therefore, the second estimation processing section 250 sequentially updates the state vector after the first estimation processing section 240 outputs an observed value until it outputs the next observed value, and the state vector is not corrected during this period.
  • the estimation processing unit 230 of the embodiment performs the correction step based on the state at time k-1 immediately before observation time k, that is, the observed value is used to correct the past state.
  • the estimation processing unit 230 estimates the position and orientation of the input device 16 with high accuracy.
  • the first estimation processing unit 240 cannot perform the position and orientation estimation process shown in FIG.
  • the estimation processing unit 230 calculates the input based on the sensor data of the HMD 100 and the sensor data of the input device 16 even when the marker 30 of the input device 16 is not shown in the captured image (not captured by the imaging device 14).
  • the position of the device 16 is estimated, in other words, the tracking of the input device 16 is continued.
  • the estimation processing unit 230 may be configured to move by the amount that the HMD 100 has moved to the right.
  • the estimated position of the input device 16 may be moved further to the left than before.
  • the estimation processing unit 230 detects whether the input device 16 The position estimation process ends.
  • the stationary determination unit 262 determines whether the input device 16 is stationary based on the sensor data indicating the acceleration of the input device 16 acquired by the sensor data acquisition unit 214.
  • the stationary determination unit 262 calculates the slope of acceleration from the time-series data of the acceleration of the input device 16, and determines whether the input device 16 is stationary based on the calculated slope.
  • the stationary determination unit 262 of the embodiment applies the least squares method to 100 acceleration values from the current time t to the past time (t-99) to obtain a regression line, and specifies its slope. Note that the number of samples when calculating the slope may be other than 100.
  • the stationary determination unit 262 may calculate the slope at the sampling period of the sensor data, and always determine whether the input device 16 is stationary.
  • the stationary determination unit 262 determines that the input device 16 is moving when the calculated absolute value of the slope is greater than or equal to a predetermined threshold value Sth, and determines that the input device 16 is moving when the calculated absolute value of the slope is less than the threshold value Sth. It is determined that 16 is stationary. In order to prevent the determination results from frequently changing, the stationary determination unit 264 determines that the input device 16 is stationary when the absolute value of the calculated slope is less than the threshold value Sth for a predetermined number of times (N3 times) consecutively. After determining that the input device 16 is moving, it can be determined that the input device 16 is moving when the absolute value of the calculated slope is equal to or greater than the threshold value Sth for a predetermined number of times (N4 times) consecutively. may be determined. N3 and N4 may be the same number of times, but may be different numbers of times.
  • the stillness determination unit 262 may determine whether the input device 16 is stationary based on a photographed image in which the input device 16 is captured, which is acquired by the photographed image acquisition unit 212.
  • the stationary determination unit 262 determines the position of the input device 16 in time series estimated by any one of the first estimation processing unit 240, the second estimation processing unit 250, and the third estimation processing unit 260. Based on the change, it may be determined whether the input device 16 is stationary.
  • the photographed image acquisition unit 212 further provides the application execution unit 220 and the image generation unit 272 with the photographed image data transmitted from the HMD 100.
  • the sensor data acquisition unit 214 further provides the application execution unit 220 and the image generation unit 272 with the sensor data transmitted from the HMD 100. Further, the sensor data acquisition unit 214 further provides the application execution unit 220 and the image generation unit 272 with the sensor data transmitted from the input device 16.
  • the operation information acquisition unit 216 acquires operation information transmitted from the input device 16 and indicating the user's operation input to the input device 16.
  • the operation information acquisition unit 216 provides the acquired operation information to the application execution unit 220.
  • the application execution unit 220 uses the operation information input from the operation information acquisition unit 216, the sensor data input from the sensor data acquisition unit 214, and the input device estimated by the estimation processing unit 230 (for example, the third estimation processing unit 260). Various applications are executed based on the position and orientation information etc. of 16. For example, the application execution unit 220 may advance the VR game by executing a computer program in which various processes related to the VR game are implemented. In the embodiment, the application execution unit 220 executes an initial setting application for the HMD 100.
  • the image generation section 272 and the image output section 274 function as a display control section 276 that controls the display of electronic content on the display section.
  • the display unit includes at least the display panel 130 of the HMD 100, but may further include the display of the output device 15.
  • the display control unit 276 causes the display panel 130 of the HMD 100 to display a camera AR image, which will be described later, when the initial setting application of the HMD 100 is executed.
  • the image generation unit 272 generates display image data (for example, VR content image data) is generated.
  • the image output unit 274 transmits the display image data generated by the image generation unit 272 to the HMD 100 and displays it on the display panel 130.
  • the image generation unit 272 generates an image of the initial setting application for the HMD 100 based on the execution result of the initial setting application for the HMD 100 by the application execution unit 220.
  • the image of the initial setting application of the HMD 100 is a photographed image taken by the imaging device 14 of the HMD 100, and includes a photographed image taken of the real space in the front direction of the user wearing the HMD 100.
  • the image of the initial setting application of the HMD 100 is an augmented reality (AR) video (hereinafter also referred to as "camera AR video”) based on a video showing the real space in front of the user wearing the HMD 100. including.
  • the image output unit 274 displays the camera AR image generated by the image generation unit 272 on the display panel 130 of the HMD 100.
  • the camera AR image may include an image of a virtual object (hereinafter also referred to as a "guide object") that assists the user in correctly grasping the input device 16.
  • the guide object includes a general position guide and an insertion position guide, which will be described later.
  • the image generation unit 272 separately manages the state of the input device 16a and the state (position, orientation, etc.) of the input device 16b, and generates a guide object to be added to the input device 16a and a guide to be added to the input device 16b in the camera AR video. Judge each object individually.
  • FIG. 11 shows an example of transition of guide display in camera AR video. If the estimation processing unit 230 is unable to track the position of the input device 16 (for example, the coordinate value in the world coordinate system), the image generation unit 272 sets the guide display for the input device 16 to the first mode. In the first mode, the display of the guide object added to the video of the input device 16 is suppressed, in other words, the guide object is hidden.
  • the estimation processing unit 230 is unable to track the position of the input device 16 (for example, the coordinate value in the world coordinate system)
  • the image generation unit 272 sets the guide display for the input device 16 to the first mode. In the first mode, the display of the guide object added to the video of the input device 16 is suppressed, in other words, the guide object is hidden.
  • the image generation unit 272 determines whether the input device 16 is included in the image taken by the imaging device 14, that is, whether the input device 16 is within the user's visual field. Determine whether or not it exists. Furthermore, the image generation unit 272 derives the distance between the HMD 100 and the input device 16 based on the estimated position of the input device 16, and further determines whether the distance is less than or equal to a predetermined threshold. Although this threshold value in the embodiment is 1.3 meters, an appropriate threshold value may be determined based on the developer's knowledge or experiments using the information processing system 1.
  • the image generation unit 272 sets the guide display for the input device 16 to the second mode.
  • a general position guide is arranged as a guide object added to the image of the input device 16.
  • the image generation unit 272 sets the guide display for the input device 16 to the third mode.
  • a general position guide, an insertion position guide, and an insertion direction guide are arranged as guide objects added to the image of the input device 16.
  • FIG. 12 shows an example of camera AR video 60.
  • the figure shows a camera AR image 60 including a guide display in the second mode.
  • the user is required to grip the input device 16 after mounting the HMD 100 on his or her head.
  • both the position of the input device 16a and the position of the input device 16b can be tracked, but both the input device 16a and the input device 16b are not shown in the image taken by the imaging device 14.
  • the image generation unit 272 generates a camera AR image 60 including a guide display in the second mode for each of the input device 16a and the input device 16b.
  • a rough position guide 70a and a rough position guide 70b are displayed superimposed on the image taken by the imaging device 14.
  • the rough position guide 70a is a guide object that indicates the rough position of the input device 16a by the direction of an arrow.
  • the rough position guide 70b is a guide object that indicates the rough position of the input device 16b by the direction of an arrow.
  • the image generation unit 272 sets the arrow of the approximate position guide 70a to point toward the position of the input device 16a estimated by the estimation processing unit 230, and sets the arrow of the approximate position guide 70b to point toward the position of the input device 16a estimated by the estimation processing unit 230. Set the position of the input device 16b to face the input device 16b.
  • FIG. 13 also shows an example of the camera AR image 60.
  • the figure shows a camera AR image 60 including a guide display in the third mode.
  • the input device 16 here, both the input device 16a and the input device 16b
  • the HMD 100 and the input device 16 here, the input device 16a and Suppose that the distance to the input device 16b (both input devices 16b) has become 1.3 meters or less.
  • the image generation unit 272 generates the camera AR image 60 including the guide display in the third mode for each of the input device 16a and the input device 16b.
  • a general position guide 70a, a general position guide 70b, an insertion position guide 72, and an insertion direction guide 74 are displayed superimposed on the image captured by the imaging device 14.
  • the insertion position guide 72 is a first object that assists the user in correctly grasping the controller, and specifically indicates the position of the input device 16 where the user should insert his or her hand (i.e., the position of the curved portion 23). It is a ring-shaped guide object that suggests.
  • the image generation unit 272 identifies the curved portion 23 of the HMD 100 that appears in the photographed image based on the position and orientation of the HMD 100 estimated by the estimation processing unit 230.
  • the image generation unit 272 arranges the insertion position guide 72 near the curved part 23 , and specifically, arranges the insertion position guide 72 so as to surround the curved part 23 .
  • the insertion position guide 72 may be an object that indicates a location on the input device 16 that the user should grasp (i.e., the position of the grip section 21).
  • the image generation section 272 may specify the grip section 21 of the HMD 100 that appears in the captured image based on the position and orientation of the HMD 100 estimated by the estimation processing section 230.
  • the image generation section 272 may arrange the insertion position guide 72 near the grip part 21, and specifically, may arrange the insertion position guide 72 so as to surround the grip part 21.
  • the insertion position guide 72 is placed near the curved portion 23 of the input device 16a.
  • the insertion position guide 72 is not arranged with respect to the input device 16b.
  • the insertion direction guide 74 is an annular guide object that moves as a second object in the direction in which the user should insert his/her hand into the input device 16 .
  • the insertion direction guide 74 suggests the direction in which the user should insert their hand in the input device 16 by its movement on the camera AR image.
  • the insertion direction guide 74 may be a thinner line than the insertion position guide 72.
  • the image generation unit 272 sets an animation in which the insertion direction guide 74 moves around the input device 16 from the bending part 23 toward the gripping part 21 in the camera AR image 64.
  • This animation may be such that the plurality of insertion direction guides 74 sequentially move from the curved portion 23 to the grip portion 21 .
  • the image generation section 272 may increase the transparency of the insertion direction guide 74 as the insertion direction guide 74 moves closer to the grip section 21 .
  • the guide display of the input device 16a When the guide display of the input device 16a is set to the third mode, the input device 16 no longer appears in the image taken by the imaging device 14, or the distance between the HMD 100 and the input device 16a exceeds 1.3 meters.
  • the estimation processing section 230 continues tracking the input device 16a (when the estimation processing section 230 outputs an estimated value of the position of the input device 16a)
  • the image generation section 272 tracks the input device 16a.
  • the guide display is switched from the third mode to the second mode.
  • the estimation processing section 230 finishes tracking the input device 16a the image generation section 272 switches the guide display of the input device 16a from the second mode to the first mode. The same applies to switching the guide display on the input device 16b.
  • FIG. 14 also shows an example of the camera AR image 60.
  • the third mode of guide display is set for the input device 16a in a stationary state.
  • the fourth mode of guide display is set on the input device 16b which is held in the user's hand and is in a non-stationary state.
  • the general position guide 70b and the insertion position guide 72 are displayed, but the insertion direction guide 74 is not displayed.
  • the image generation unit 272 ends the animation of the insertion direction guide 74 that has been added to the input device 16b up to that point.
  • the distance between the user and the input device 16 becomes quite short, and if the insertion direction guide 74 (animation) is displayed in this state, the user who sees it is likely to feel uncomfortable. It is from.
  • the image generation unit 272 displays the guide in the fifth mode. Generates an AR video with the camera switched to . In the guide display in the fifth mode, all guide objects are erased, in other words, they are hidden.
  • FIG. 15 also shows an example of the camera AR image 60.
  • the fourth mode of guide display is set for the input device 16a which is held in the user's hand and is in a non-stationary state, and an approximate position guide 70a and an insertion position guide 72 are added. ing.
  • the guide display of the input device 16b when the user touches the operating member 22 with a finger shifts from the fourth mode to the fifth mode, and the general position guide 70b and the insertion position guide 72 are hidden.
  • the initial setting application of the HMD 100 proceeds to the next setting process (for example, play area editing process, etc.) that uses the input device 16a and the input device 16b. But that's fine.
  • the next setting process for example, play area editing process, etc.
  • the image generation unit 272 switches the guide display of the input device 16a from the fifth mode to the fourth mode. Further, while the guide display of the input device 16a is set to the fourth mode, the input device 16a remains stationary for a second time period (10 seconds in the embodiment) or longer, which is longer than the first time period. If the stationary determination unit 262 determines that the input device 16a is in a non-stationary state for two hours (10 seconds in the example) or more, the image generation unit 272 changes the guide display of the input device 16a from the fourth mode to the third mode. Switch to The guide display on the input device 16b is also the same.
  • the image generation unit 272 hides the insertion direction guide 74 if the input device 16 remains stationary for a relatively short period of time, but hides the insertion direction guide 74 if the input device 16 remains stationary for a relatively long period of time.
  • the display of the insertion direction guide 74 is restarted.
  • the user is presented with an AR image in which an insertion position guide 72 and an insertion direction guide 74 are added to an image taken in the front direction of the user wearing the HMD 100.
  • an insertion position guide 72 and an insertion direction guide 74 are added to an image taken in the front direction of the user wearing the HMD 100.
  • the estimation processing unit 230 of the information processing apparatus 10 calculates the following based on both the image captured by the input device 16 (in other words, the captured image in which the input device 16 appears) and the sensor data transmitted from the input device 16.
  • the position and orientation of the input device 16 were estimated.
  • the estimation processing section 230 uses an image taken of the input device 16 like the first estimation processing section 240, but does not use the sensor data transmitted from the input device 16 to estimate the position of the input device 16.
  • the posture may be estimated as follows.
  • the estimation processing section 230 uses the sensor data transmitted from the input device 16 like the second estimation processing section 250, but does not use the image captured by the input device 16.
  • the position and orientation of may be estimated.
  • the functions of the information processing device 10 described in the embodiment may be implemented in the HMD 100.
  • the HMD 100 may include the functions of the information processing device 10 described in the embodiment.
  • the information processing device 10 in the embodiment may be the HMD 100.
  • the imaging device 14 is attached to the HMD 100, but the imaging device 14 may be attached to another position other than the HMD 100.
  • a photographed image acquisition unit that acquires a photographed image taken in front of a user wearing a head-mounted display; an estimating unit that estimates the position of the controller based on a captured image in which the controller includes a grip that the user should hold; a display control unit that causes the head-mounted display to display a photographed image taken in front of the user; Equipped with The display control unit further displays, together with the captured image, a first object that indicates a location that the user should grasp, based on a result of estimating the position of the controller.
  • Information processing device that acquires a photographed image taken in front of a user wearing a head-mounted display
  • an estimating unit that estimates the position of the controller based on a captured image in which the controller includes a grip that the user should hold
  • a display control unit that causes the head-mounted display to display a photographed image taken in front of the user
  • the display control unit further displays the first object indicating that the position should be gripped near the gripping portion of the controller shown in the photographed image, based on the estimation result of the position of the controller.
  • the information processing device according to item 1. According to this information processing device, it is possible to assist a user wearing a head-mounted display in correctly grasping the controller.
  • the controller further includes a curved part for the user to insert his/her hand into, The display control unit causes the first object to be displayed in the vicinity of the curved part of the controller shown in the photographed image, indicating that the hand should be inserted, based on the estimation result of the position of the controller.
  • the information processing device according to item 1 or 2. According to this aspect, it is possible to assist the user wearing the head-mounted display in correctly inserting his or her hand into the curved portion of the controller, and it is possible to assist the user in correctly grasping the controller.
  • the display control unit further displays a second object that moves in a direction in which the hand should be inserted, near the controller that appears in the photographed image.
  • the information processing device according to any one of items 1 to 3. According to this aspect, it is possible to assist a user wearing a head-mounted display in inserting his or her hand in the correct direction from the curved portion of the controller.
  • the display control unit hides the second object when the non-stationary state of the controller continues for a first time or more.
  • the information processing device when the user holds the controller in his hand, the second object continues to be displayed, making the user feel uncomfortable and making it difficult for the user to check how the controller is being worn. can be prevented from happening.
  • the display control unit causes the controller to remain in a non-stationary state for at least the first time and hide the second object, and then the controller to remain in a non-stationary state for at least a second time that is longer than the first time. If so, restarting the display of the second object; The information processing device according to item 5.
  • the display control unit displays the first object when the controller is visible in the photographed image and a distance between the head mounted display and the controller is less than or equal to a predetermined threshold.
  • the information processing device according to any one of items 1 to 6. According to this aspect, by suppressing the display of the first object when the controller is located away from the user, the user can see the first object as if it were pointing to another object between the controller and the user. This makes it easier to prevent misunderstandings.
  • [Item 8] a step of acquiring a photographed image taken in front of a user wearing a head-mounted display; estimating the position of the controller based on a photographed image in which the controller includes a grip to be gripped by the user; displaying a photographed image taken in front of the user on the head mounted display;
  • the computer executes
  • the displaying step further includes displaying, together with the captured image, a first object that suggests a location to be grasped by the user based on the estimation result of the position of the controller.
  • Controller display method According to this controller display method, it is possible to assist a user wearing a head-mounted display in correctly grasping the controller.
  • the displaying function further displays, together with the photographed image, a first object that suggests a location to be grasped by the user, based on a result of estimating the position of the controller.
  • computer program According to this computer program, it is possible to assist a user wearing a head-mounted display in correctly grasping the controller.
  • the present invention can be applied to information processing devices and information processing systems.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

撮影画像取得部212は、ヘッドマウントディスプレイ(HMD100)を装着したユーザの正面方向を撮影した撮影画像を取得する。推定処理部230は、ユーザが湾曲部に手を差し入れて把持部を把持すべきコントローラ(入力デバイス16)が映る撮影画像に基づいて、入力デバイス16の位置を推定する。表示制御部276は、ユーザの正面方向を撮影した撮影画像をHMD100に表示させる。表示制御部276は、入力デバイス16の位置の推定結果に基づいて、撮影画像とともに、ユーザが把持すべき箇所を示唆するオブジェクトをさらに表示させる。

Description

情報処理装置、コントローラ表示方法およびコンピュータプログラム
 本発明は、情報処理装置、コントローラ表示方法およびコンピュータプログラムに関する。
 ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(Virtual Reality:VR)を実現する電子コンテンツ(以下「VRコンテンツ」とも呼ぶ。)が知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。
 また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、VRコンテンツとして表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。また、ヘッドマウントディスプレイに内蔵されたカメラで撮影した周囲の実世界の映像に3次元コンテンツを重ねて表示するビデオシースルーも実現されている。
 ヘッドマウントディスプレイを使用するユーザは、コントローラを手に持たずにヘッドマウントディスプレイを装着し、ヘッドマウントディスプレイ装着後にコントローラを手に持とうとすることがある。この場合、ユーザは、ヘッドマウントディスプレイのカメラで撮影された周囲の映像を見ることができるが、ユーザがコントローラの形状に慣れるまではコントローラをどう持てばよいか分からないことがある。
 本発明の1つの目的は、ヘッドマウントディスプレイを装着したユーザがコントローラを正しく把持できるよう支援する技術を提供することにある。
 上記課題を解決するために、本発明のある態様の情報処理装置は、ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得する撮影画像取得部と、ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、コントローラの位置を推定する推定部と、ユーザの前方を撮影した撮影画像をヘッドマウントディスプレイに表示させる表示制御部とを備える。表示制御部は、コントローラの位置の推定結果に基づいて、撮影画像とともに、ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる。
 本発明の別の態様は、コントローラ表示方法である。この方法は、ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得するステップと、ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、コントローラの位置を推定するステップと、ユーザの前方を撮影した撮影画像をヘッドマウントディスプレイに表示させるステップとをコンピュータが実行する。表示させるステップは、コントローラの位置の推定結果に基づいて、撮影画像とともに、ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる。
 なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
実施例における情報処理システムの構成例を示す図である。 HMDの外観形状の例を示す図である。 HMDの機能ブロックを示す図である。 図4(a)は左手用の入力デバイスの形状を示す図であり、図4(b)は右手用の入力デバイスの形状を示す図である。 右手用の入力デバイスの形状を示す図である。 入力デバイスを撮影した画像の一部の例を示す図である。 入力デバイスの機能ブロックを示すブロック図である。 情報処理装置の機能ブロックを示すブロック図である。 位置姿勢推定処理を示すフローチャートである。 推定処理部の内部構成を示す図である。 カメラAR映像におけるガイド表示の遷移例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。
 ヘッドマウントディスプレイにVRコンテンツを表示する情報処理システムの初期設定フローでは、その序盤に、情報処理装置(ゲーム機等)とコントローラ(実施例では「入力デバイス」とも呼ぶ。)をペアリングする。ヘッドマウントディスプレイは、VRヘッドセットとも言え、以下「HMD」とも呼ぶ。ペアリングの時点で、コントローラは、電源オンの状態、言い換えれば、バッテリー等の電源から電力が供給される状態になる。ペアリング後、ユーザは、コントローラを手に持たずにHMDを頭部に装着し、また、各種調整を行う。そして初期設定フローの終盤に、ユーザは、コントローラを手に持って、HMDを装着したユーザが移動可能なプレイエリアの編集に関する操作を行う。
 プレイエリアの編集のためにコントローラを手に持とうとするとき、ユーザは、HMDのカメラで撮影された周囲の実世界の映像を見ることができる。しかし、慣れていないユーザにとって、HMDのカメラで撮影された映像を頼りにコントローラを見つけ、また、コントローラの姿勢を正しく判断してコントローラを正しく把持することは容易でない。
 そこで、実施例の情報処理システムでは、HMDのカメラで撮影された映像に、コントローラを正しく把持できるよう支援する情報を付加してユーザに提示する。具体的には、コントローラを正しく把持できるよう支援する情報として、撮影画像に映るコントローラの把持部の近傍に、把持すべき箇所であることを示唆するオブジェクトを付加する。実施例では、コントローラは、把持部に加えてユーザが手を差し入れるための湾曲部を備え、コントローラを正しく把持できるよう支援する情報として、撮影画像に映るコントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆するオブジェクトを付加する。これにより、HMDを装着したユーザがコントローラを正しく把持できるよう支援する。
 図1は、実施例における情報処理システム1の構成例を示す。情報処理システム1は、情報処理装置10と、記録装置11と、HMD100と、ユーザが持って手指で操作する入力デバイス16と、画像および音声を出力する出力装置15とを備える。出力装置15はテレビであってよい。情報処理装置10は、アクセスポイント(AP)17を介して、インターネットなどの外部のネットワーク2に接続される。AP17は無線アクセスポイントおよびルータの機能を有し、情報処理装置10はAP17とケーブルで接続してもよく、既知の無線通信プロトコルで接続してもよい。
 記録装置11は、システムソフトウェアや、ゲームソフトウェアなどのアプリケーションを記録する。情報処理装置10は、コンテンツサーバからネットワーク2経由で、ゲームソフトウェアなどの様々なアプリケーションを記録装置11にダウンロードしてよい。情報処理装置10は、様々なアプリケーションを実行して、出力対象のアプリケーションの画像データおよび音声データ(VRコンテンツのデータとも言える)をHMD100に供給する。情報処理装置10とHMD100とは既知の無線通信プロトコルで接続されてもよく、またケーブルで接続されてもよい。
 HMD100は、ユーザが頭部に装着することによりその眼前に位置する表示パネルに画像を表示する表示装置である。HMD100は、左目用表示パネルに左目用の画像を、右目用表示パネルに右目用の画像を、それぞれ別個に表示する。これらの画像は左右の視点から見た視差画像を構成し、立体視を実現する。ユーザは光学レンズを通して表示パネルを見るため、情報処理装置10は、レンズによる光学歪みを補正した視差画像データをHMD100に供給する。
 HMD100を装着したユーザにとって出力装置15は必要ないが、出力装置15を用意することで、別のユーザが出力装置15の表示画像を見ることができる。情報処理装置10は、HMD100を装着したユーザが見ている画像と同じ画像を出力装置15に表示させてもよいが、別の画像を表示させてもよい。例えば、HMD100を装着したユーザと、別のユーザとが一緒にゲームをプレイするような場合、出力装置15からは、当該別のユーザのキャラクタ視点からのゲーム画像が表示されてもよい。
 情報処理装置10と入力デバイス16とは既知の無線通信プロトコルで接続されてよく、またケーブルで接続されてもよい。入力デバイス16は操作ボタンなどの複数の操作部材を備え、ユーザは入力デバイス16を把持しながら、手指で操作部材を操作する。情報処理装置10がゲームを実行する際、入力デバイス16は、ゲームコントローラとして利用される。例えば、入力デバイス16は、ゲームの進行に関するユーザの操作が操作部材に入力され、その操作情報を情報処理装置10に伝達して、ユーザの操作をゲームに反映させる。変形例として、入力デバイス16は、HMD100と通信し、HMD100の動作を制御するコントローラであってもよい。
 入力デバイス16は、3軸の加速度センサおよび3軸の角速度センサを含む慣性計測装置(IMU:Inertial Measurement Unit)を備える。入力デバイス16は、IMUにより計測されたセンサデータを所定の周期(たとえば800Hz)で情報処理装置10に送信する。
 実施例のゲームは、入力デバイス16の操作部材の操作情報だけでなく、入力デバイス16の位置、速度、姿勢などを操作情報として取り扱って、仮想3次元空間内におけるプレイヤキャラクタの動きに反映する。たとえば操作部材の操作情報は、プレイヤキャラクタを移動させるための情報として利用され、入力デバイス16の位置、速度、姿勢などの操作情報は、プレイヤキャラクタの腕を動かすための情報として利用されてよい。ゲーム内の戦闘シーンにおいて、入力デバイス16の動きが、武器をもつプレイヤキャラクタの動きに反映されることで、ユーザの直観的な操作が実現され、ゲームへの没入感が高められる。
 入力デバイス16の位置および姿勢をトラッキングするために、入力デバイス16には、撮像装置14によって撮影可能な複数のマーカ(光出射部)が設けられる。情報処理装置10は、入力デバイス16を撮影した画像を解析して、実空間における入力デバイス16の位置および姿勢を推定する機能(以下、「第1推定機能」とも呼ぶ)を備える。
 HMD100には、複数の撮像装置14が搭載される。複数の撮像装置14は、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含むように、HMD100の前面の異なる位置に異なる姿勢で取り付けられる。撮像装置14は、入力デバイス16の複数のマーカの像を取得できるイメージセンサを備える。たとえばマーカが可視光を出射する場合、撮像装置14はCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルビデオカメラで利用されている可視光センサを有する。マーカが非可視光を出射する場合、撮像装置14は非可視光センサを有する。
 複数の撮像装置14は同期したタイミングで、ユーザの前方を所定の周期(たとえば120フレーム/秒)で撮影し、実空間を撮影した画像(以下「撮影画像」とも呼ぶ。)のデータを情報処理装置10に送信する。実施例の撮影画像は、HMD100を装着したユーザの正面方向(ユーザの顔が向いた方向)の実空間を撮影した画像である。
 情報処理装置10は第1推定機能を実施して、撮影画像に含まれる入力デバイス16の複数のマーカ像の位置を特定する。なお1つの入力デバイス16が同じタイミングで複数の撮像装置14に撮影されることもあるが、撮像装置14の取付位置および取付姿勢は既知であるため、情報処理装置10は複数の撮影画像を合成して、マーカ像の位置を特定してよい。
 入力デバイス16の3次元形状と、その表面に配置された複数のマーカの位置座標は既知であり、情報処理装置10は、撮影画像内の複数のマーカ像の位置座標にもとづいて、入力デバイス16の実空間における位置および姿勢を推定する。入力デバイス16の位置は、基準位置を原点とした3次元空間におけるワールド座標における座標値として推定されてもよく、基準位置はゲーム開始前に設定した位置座標(緯度、経度、高度(標高))であってよい。また、入力デバイス16の姿勢は、予め定められた基準姿勢に対する3軸のそれぞれにおける傾きや角度で表現されてもよい。
 実施例の情報処理装置10は、入力デバイス16から送信されるセンサデータを解析して、実空間における入力デバイス16の位置および姿勢を推定する機能(以下、「第2推定機能」とも呼ぶ)を備える。情報処理装置10は、第1推定機能による推定結果と、第2推定機能による推定結果を用いて、入力デバイス16の位置および姿勢を導出する。実施例の情報処理装置10は、カルマンフィルタを用いた状態推定技術を利用して、第1推定機能による推定結果と第2推定機能による推定結果とを統合することで、現在時刻における入力デバイス16の状態を高精度に推定する。
 図2は、HMD100の外観形状の例を示す。HMD100は、出力機構部102および装着機構部104から構成される。装着機構部104は、ユーザが被ることにより頭部を一周してHMD100を頭部に固定する装着バンド106を含む。装着バンド106はユーザの頭囲に合わせて長さの調節が可能な素材または構造をもつ。
 出力機構部102は、HMD100をユーザが装着した状態において左右の目を覆う形状の筐体108を含み、内部には装着時に目に正対する表示パネルを備える。表示パネルは液晶パネルや有機ELパネルなどであってよい。筐体108内部にはさらに、表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する左右一対の光学レンズが備えられる。HMD100はさらに、ユーザの耳に対応する位置にスピーカーやイヤホンを備えてよく、外付けのヘッドホンが接続されるように構成されてもよい。
 筐体108の前方側外面には、複数の撮像装置14として、撮像装置14a、14b、14c、14dが備えられる。ユーザの顔正面方向を基準として、撮像装置14aは、カメラ光軸が右斜め上を向くように前方側外面の右上隅に取り付けられ、撮像装置14bは、カメラ光軸が左斜め上を向くように前方側外面の左上隅に取り付けられ、撮像装置14cは、カメラ光軸が右斜め下を向くように前方側外面の右下隅に取り付けられ、撮像装置14dは、カメラ光軸が左斜め下を向くように前方側外面の左下隅に取り付けられる。このように複数の撮像装置14が設置されることで、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含む。このユーザの視野は、3次元仮想空間におけるユーザの視野であってよい。
 HMD100は、IMU(慣性計測装置)が検出したセンサデータおよび撮像装置14が撮影した画像データを情報処理装置10に送信し、また情報処理装置10で生成されたゲーム画像データおよびゲーム音声データを受信する。
 図3は、HMD100の機能ブロックを示す。制御部120は、画像データ、音声データ、センサデータなどの各種データや、命令を処理して出力するメインプロセッサである。制御部120は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)を備えてもよい。記憶部122は、制御部120が処理するデータや命令などを一時的に記憶する。IMU124は、HMD100の動きに関するセンサデータを取得する。IMU124は、少なくとも3軸の加速度センサおよび3軸の角速度センサを含んでよい。IMU124は、所定の周期(たとえば800Hz)で各軸成分の値(センサデータ)を検出する。
 通信制御部128は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部120から出力されるデータを外部の情報処理装置10に送信する。また通信制御部128は、情報処理装置10からデータを受信し、制御部120に出力する。
 制御部120は、ゲーム画像データやゲーム音声データを情報処理装置10から受け取ると、表示パネル130に供給して表示させ、また音声出力部132に供給して音声出力させる。表示パネル130は、左目用表示パネル130aと右目用表示パネル130bから構成され、各表示パネルに一対の視差画像が表示される。また制御部120は、IMU124からのセンサデータ、マイク126からの音声データ、撮像装置14からの撮影画像データを、通信制御部128から情報処理装置10に送信させる。
 図4(a)は、左手用の入力デバイス16aの形状を示す。左手用の入力デバイス16aは、ケース体20と、ユーザが操作する複数の操作部材22a、22b、22c、22d(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、ケース体20の外部に光を出射する複数のマーカ30とを備える。マーカ30は断面円形の出射部を有してよい。操作部材22は、傾動操作するアナログスティック、押下式ボタンなどを含んでよい。ケース体20は、把持部21と、ケース体頭部とケース体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に左手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、左手の親指を用いて、操作部材22a、22b、22c、22dを操作する。
 図4(b)は、右手用の入力デバイス16bの形状を示す。右手用の入力デバイス16bは、ケース体20と、ユーザが操作する複数の操作部材22e、22f、22g、22h(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、ケース体20の外部に光を出射する複数のマーカ30とを備える。操作部材22は、傾動操作するアナログスティック、押下式ボタンなどを含んでよい。ケース体20は、把持部21と、ケース体頭部とケース体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に右手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、右手の親指を用いて、操作部材22e、22f、22g、22hを操作する。
 図5は、右手用の入力デバイス16bの形状を示す。入力デバイス16bは、図4(b)で示した操作部材22e、22f、22g、22hに加えて、操作部材22i、22jを有する。ユーザは把持部21を把持した状態で、右手の人差し指を用いて操作部材22iを操作し、中指を用いて操作部材22jを操作する。以下、入力デバイス16aと入力デバイス16bとを特に区別しない場合、「入力デバイス16」と呼ぶ。実施例の入力デバイス16は、ユーザが湾曲部23に手を差し入れて把持部21を把持すべきコントローラである。
 入力デバイス16に設けられた操作部材22は、押さなくても、触れるだけで指を認識するタッチセンス機能を搭載してよい。右手用の入力デバイス16bに関して言えば、操作部材22f、22g、22jが、静電容量式タッチセンサを備えてよい。なおタッチセンサは他の操作部材22に搭載されてもよいが、入力デバイス16をテーブルなどの載置面に置いた際に、タッチセンサが載置面に接触することのない操作部材22に搭載されることが好ましい。
 マーカ30は、ケース体20の外部に光を出射する光出射部であり、ケース体20の表面において、LED(Light Emitting Diode)素子などの光源からの光を外部に拡散出射する樹脂部を含む。マーカ30は撮像装置14により撮影されて、入力デバイス16のトラッキング処理に利用される。
 情報処理装置10は、撮像装置14による撮影画像を、入力デバイス16のトラッキング処理と、HMD100のSLAM(Simultaneous Localization and Mapping)処理に利用する。実施例では撮像装置14が120フレーム/秒で撮影する画像のうち、60フレーム/秒で撮影されるグレースケール画像が、入力デバイス16のトラッキング処理に利用され、60フレーム/秒で撮影される別のフルカラー画像が、HMD100の自己位置推定および環境地図作成を同時実行する処理に利用されてよい。
 図6は、入力デバイス16を撮影した画像の一部の例を示す。この画像は、右手で把持された入力デバイス16bを撮影した画像であり、光を出射する複数のマーカ30の像が含まれる。HMD100において、通信制御部128は、撮像装置14が撮影した画像データをリアルタイムで情報処理装置10に送信する。
 図7は、入力デバイス16の機能ブロックを示すブロック図である。制御部50は、操作部材22に入力された操作情報を受け付ける。また制御部50は、IMU(慣性計測装置)32により検出されたセンサデータとタッチセンサ24により検出されたセンサデータを受け付ける。上記の通りタッチセンサ24は、複数の操作部材22のうちの少なくとも一部に取り付けられ、ユーザの指が操作部材22に接触している状態を検知する。
 IMU32は、入力デバイス16の動きに関するセンサデータを取得し、少なくとも3軸の加速度データを検出する加速度センサ34と、3軸の角速度データを検出する角速度センサ36を含む。加速度センサ34および角速度センサ36は、所定の周期(たとえば800Hz)で各軸成分の値(センサデータ)を検出する。制御部50は、受け付けた操作情報およびセンサデータを通信制御部54に供給し、通信制御部54は、ネットワークアダプタまたはアンテナを介して有線または無線通信により、操作情報およびセンサデータを情報処理装置10に送信する。
 入力デバイス16は、複数のマーカ30を点灯するための複数の光源58を備える。光源58は、所定の色で発光するLED素子であってよい。通信制御部54が情報処理装置10から発光指示を取得すると、制御部50は発光指示にもとづいて光源58を発光させ、マーカ30を点灯させる。なお図7に示す例では、1つのマーカ30に対して1つの光源58が設けられているが、1つの光源58が複数のマーカ30を点灯させてもよい。
 図8は、情報処理装置10の機能ブロックを示すブロック図である。情報処理装置10は、処理部200および通信部202を備える。処理部200は、取得部210、アプリケーション実行部220、画像信号処理部222、マーカ情報保持部224、状態保持部226、推定処理部230、画像信号処理部268、SLAM処理部270、画像生成部272、画像出力部274を備える。取得部210は、撮影画像取得部212、センサデータ取得部214、操作情報取得部216を備える。推定処理部230は、第1推定処理部240、第2推定処理部250、第3推定処理部260、静止判定部262を備える。
 通信部202は、所定の通信プロトコルにしたがって外部装置と通信する。外部装置は、HMD100、出力装置15、入力デバイス16、不図示のサーバや他の情報処理装置を含む。例えば、通信部202は、入力デバイス16から送信される操作部材22の操作情報およびセンサデータを受信し、取得部210に供給する。また通信部202は、HMD100から送信される撮影画像データおよびセンサデータを受信し、取得部210に供給する。
 情報処理装置10はコンピュータを備え、コンピュータがプログラムを実行することによって、図8に示す様々な機能が実現される。コンピュータは、プログラムをロードするメモリ、ロードされたプログラムを実行する1つ以上のプロセッサ(CPUやGPU等)、補助記憶装置、その他のLSIなどをハードウェアとして備える。プロセッサは、半導体集積回路やLSIを含む複数の電子回路により構成され、複数の電子回路は、1つのチップ上に搭載されてよく、または複数のチップ上に搭載されてもよい。図8に示す機能ブロックは、ハードウェアとソフトウェアとの連携によって実現され、したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
(SLAM機能)
 撮影画像取得部212は、HMD100のSLAM処理用のフルカラー画像を取得し、画像信号処理部268に供給する。画像信号処理部268は、画像データにノイズ低減や光学補正(シェーディング補正)などの画像信号処理を施し、画像信号処理した画像データをSLAM処理部270に供給する。
 センサデータ取得部214は、HMD100から送信されるセンサデータを取得し、SLAM処理部270に供給する。SLAM処理部270は、撮影画像取得部212から供給される画像データと、センサデータ取得部214から供給されるセンサデータにもとづいて、HMD100の自己位置推定および環境地図作成を同時実行する。
(撮影画像を用いる第1推定機能)
 撮影画像取得部212は、入力デバイス16のトラッキング処理用のグレースケール画像を取得し、画像信号処理部222に供給する。画像信号処理部222は、画像データにノイズ低減や光学補正(シェーディング補正)などの画像信号処理を施し、画像信号処理した画像データを第1推定処理部240に供給する。
 第1推定処理部240は、マーカ像座標特定部242、位置姿勢導出部244、ノイズ導出部248を備え、入力デバイス16を撮影した画像にもとづいて入力デバイス16の位置および姿勢を推定する第1推定機能を実現する。第1推定処理部240は、撮影画像から入力デバイス16の複数のマーカ30を撮影したマーカ像を抽出し、抽出した複数のマーカ像の配置から、入力デバイス16の位置および姿勢を推定する。第1推定処理部240は、推定した入力デバイス16の位置および姿勢を、そのノイズ(誤差)の分散とともに、第3推定処理部260に出力する。
(センサデータを用いる第2推定機能)
 センサデータ取得部214は、入力デバイス16から送信されるセンサデータを取得し、第2推定処理部250に供給する。第2推定処理部250は、入力デバイス16の加速度および角速度を示すセンサデータにもとづいて、入力デバイス16の位置および姿勢を推定する第2推定機能を実現する。実施例において、第2推定機能はカルマンフィルタにおける状態予測ステップを実施する機能であり、第2推定処理部250は、前回の時刻における状態ベクトル(位置、速度、姿勢)に、供給されたセンサデータを積分演算することで得られる状態ベクトルの変化量を加算することで、今回の時刻における状態ベクトルを推定する。第2推定処理部250は、推定した状態ベクトルを、そのノイズの分散とともに、第3推定処理部260に出力する。なお積分演算により得られる変化量は、時間経過とともにノイズが蓄積するため、第2推定処理部250により推定される状態ベクトル(位置、速度、姿勢)は、実際の状態ベクトル(位置、速度、姿勢)から離れていく傾向がある。
(推定結果の統合機能)
 第3推定処理部260は、第1推定処理部240が推定した入力デバイス16の位置および姿勢と、第2推定処理部250が推定した入力デバイス16の状態ベクトル(位置、速度、姿勢)から、入力デバイス16の位置および姿勢を高精度に導出する。第3推定処理部260は、UKF(無香料カルマンフィルタ)のフィルタリングステップ(補正ステップ)を実施してよい。第3推定処理部260は、第2推定処理部250が推定した状態ベクトルを「事前推定値」として取得し、第1推定処理部240が推定した位置および姿勢を「観測値」として取得して、カルマンゲインを算出し、カルマンゲインを用いて「事前推定値」を補正した「事後推定値」を求める。「事後推定値」は、入力デバイス16の位置および姿勢を高精度に表現し、アプリケーション実行部220に提供されるとともに、状態保持部226に記録されて、第2推定処理部250における次の時刻の状態ベクトルの推定に利用される。
 撮像装置14やIMU32など複数のセンサを用いた解析結果を統合して精度を高める手法はセンサフュージョンとして知られている。センサフュージョンにおいては、各センサによりデータが取得された時刻を共通の時間軸で表現する必要がある。情報処理システム1においては、撮像装置14の撮像周期とIMU32のサンプリング周期が異なり、また非同期であるため、画像の撮影時刻と、加速度および角速度の検出時刻とを正確に管理することで、第3推定処理部260は、入力デバイス16の位置および姿勢を高精度に推定することが可能となる。
 図9は、第1推定処理部240による位置姿勢推定処理を示すフローチャートである。撮影画像取得部212は、入力デバイス16を撮影した画像データを取得して(S10)、画像信号処理部222に供給する。画像信号処理部222は、画像データにノイズ低減や光学補正などの画像信号処理を施し(S12)、画像信号処理した画像データをマーカ像座標特定部242に供給する。
 マーカ像座標特定部242は、撮影画像に含まれる複数のマーカ像の代表座標を特定する(S14)。グレースケール画像の各画素の輝度が8ビットで表現されて、0~255の輝度値をとる場合、マーカ像は、図6に示すように高輝度をもつ像として撮影される。マーカ像座標特定部242は、撮影画像から、所定値以上の輝度値(たとえば128輝度値)をもつ画素が連続する領域を特定し、その連続画素領域の重心座標を算出して、マーカ像の代表座標を特定してよい。
 なお撮影画像には、マーカ像だけでなく、電灯などの照明機器の像も含まれている。そこでマーカ像座標特定部242は、いくつかの所定の基準に照らし合わせて、所定値以上の輝度値をもつ連続画素領域がマーカ像に対応するか調査する。たとえば連続画素領域が大きすぎる場合や、長尺形状である場合には、当該連続画素領域はマーカ像に対応しないことが確実であるため、マーカ像座標特定部242は、そのような連続画素領域がマーカ像ではないことを判断してよい。マーカ像座標特定部242は、所定の基準を満たす連続画素領域の重心座標を算出して、マーカ像の代表座標(マーカ像座標)として特定し、特定した代表座標をメモリ(図示せず)に記憶する。
 マーカ情報保持部224は、基準位置および基準姿勢にある入力デバイス16の3次元モデルにおける各マーカの3次元座標を保持している。3次元の形状および大きさが既知である物体の撮影画像から、それを撮影した撮像装置の位置および姿勢を推定する手法として、PNP(Perspective n-Point)問題を解く方法が知られている。
 実施例において位置姿勢導出部244は、N(Nは3以上の整数)個のマーカ像座標をメモリ(図示せず)から読み出し、読み出したN個のマーカ像座標と、入力デバイス16の3次元モデルにおけるN個のマーカの3次元座標から、入力デバイス16の位置および姿勢を推定する。位置姿勢導出部244は、以下の(式1)を用いて撮像装置14の位置および姿勢を推定し、その推定結果をもとに入力デバイス16の3次元空間の位置および姿勢を導出する。
Figure JPOXMLDOC01-appb-M000001
 ここで(u,v)は撮影画像におけるマーカ像座標であり、(X,Y,Z)は、入力デバイス16の3次元モデルが基準位置および基準姿勢にあるときのマーカ30の3次元空間での位置座標である。なお3次元モデルは、入力デバイス16と完全に同一の形状および大きさをもち、マーカを同一位置に配置したモデルであり、マーカ情報保持部224は、基準位置および基準姿勢にある3次元モデルにおける各マーカの3次元座標を保持している。位置姿勢導出部244は、マーカ情報保持部224から各マーカの3次元座標を読み出して、(X,Y,Z)を取得する。
 (f、f)は撮像装置14の焦点距離、(c、c)は画像主点であり、いずれも撮像装置14の内部パラメータである。r11~r33、t~tを要素とする行列は、回転・並進行列である。(式1)において(u,v)、(f、f)、(c、c)、(X,Y,Z)は既知であり、位置姿勢導出部244は、N個のマーカ30について方程式を解くことにより、それらに共通の回転・並進行列を求める。実施例では、入力デバイス16の位置姿勢を推定する処理をP3P問題を解くことで実施する。
 具体的に位置姿勢導出部244は、マーカ像座標特定部242により特定された複数のマーカ像座標の中から、任意の3個のマーカ像座標を抽出する。位置姿勢導出部244は、マーカ情報保持部224から3次元モデルにおけるマーカの3次元座標を読み出し、(式1)を用いてP3P問題を解く。位置姿勢導出部244は、抽出された3個のマーカ像座標に共通する回転・並進行列を特定すると、抽出した3個のマーカ像座標以外の入力デバイス16のマーカ像座標を用いて再投影誤差を算出する。
 位置姿勢導出部244は、3個のマーカ像座標の組合せを所定数抽出する。位置姿勢導出部244は、抽出された3個のマーカ像座標のそれぞれの組合せに対して回転・並進行列を特定し、それぞれの再投影誤差を算出する。それから位置姿勢導出部244は、所定数の再投影誤差の中から最小の再投影誤差となる回転・並進行列を特定して、入力デバイス16の位置および姿勢を導出する(S16)。
 ノイズ導出部248は、推定した位置および姿勢のそれぞれのノイズ(誤差)の分散を導出する(S18)。ノイズの分散値は、推定した位置および姿勢の信頼度に対応し、信頼度が高ければ分散値は小さく、信頼度が低ければ分散値は大きくなる。ノイズ導出部248は、撮像装置14と入力デバイス16の間の距離や、画角内におけるマーカ像の位置にもとづいて、ノイズの分散を導出してよい。たとえば撮像装置14と入力デバイス16とが遠く離れていたり、または極端に近い場合や、マーカ像が撮影画像の端に位置するような場合は、正確なマーカ像の重心座標を導出することが難しくなるため、ノイズ分散は大きく導出される傾向がある。
 なおトラッキング処理中(第1推定機能の実施中)に推定する位置および姿勢の信頼度が高いことは確実であるため、ノイズ導出部248は、推定位置および推定姿勢のそれぞれのノイズの分散を、小さい固定値に設定してもよい。たとえばノイズ導出部248は、トラッキング処理中の位置ノイズの分散を固定値である「0.5mm」に設定して、第3推定処理部260に供給してもよい。トラッキング処理中、第1推定処理部240は、推定した位置および姿勢の情報とともに、位置ノイズおよび姿勢ノイズの分散を第3推定処理部260に出力してよいが、位置ノイズおよび姿勢ノイズの分散が固定値である場合には、トラッキング処理の開始時にノイズの分散を第3推定処理部260に一回出力して、第3推定処理部260がノイズの分散を記憶して使用してもよい。
 第1推定処理部240による位置姿勢推定処理は、入力デバイス16のトラッキング用画像の撮像周期(60フレーム/秒)で実施される(S20のN)。アプリケーション実行部220がアプリケーション(ゲーム等)の実行を終了すると、第1推定処理部240による位置姿勢推定処理は終了する(S20のY)。
 図10は、推定処理部230の内部構成を示す。時刻kにおいて、第1推定処理部240は、推定した位置および姿勢を「観測値n」、位置ノイズおよび姿勢ノイズの分散を「観測ノイズR」として、第3推定処理部260に出力する。
・ 観測値n : 時刻kの観測ベクトル
・ 観測ノイズR : 時刻kの観測値の誤差共分散行列
 第2推定処理部250は、1時刻前(時刻k-1)の「状態ベクトルmk-1|k-1」および「推定誤差Pk-1|k-1」を状態保持部226から読み出し、「状態ベクトルmk-1|k-1」および「推定誤差Pk-1|k-1」を予測部に入力する。実施例の状態変数mは、入力デバイス16の位置、速度、姿勢を含むが、さらに加速度バイアス、角速度バイアスを含んでもよい。
・ 状態ベクトルmk-1|k-1 : 時刻k-1までの情報で推定した時刻k-1の状態ベクトル
・ 推定誤差Pk-1|k-1 : 時刻k-1までの情報で推定した時刻k-1の状態の推定誤差共分散行列
 また第2推定処理部250は、センサデータ取得部214から、入力デバイス16の加速度aと角速度ωを取得し、加速度aと角速度ωを「プロセス入力l」として、予測部に入力する。
・ 加速度a : 時刻kの加速度
・ 角速度ω : 時刻kの角速度
・ プロセス入力l : 時刻kのプロセス入力ベクトル
 第2推定処理部250は、加速度aと角速度ωと、固定のノイズパラメータ(軸ずれ、スケールずれ、値ずれ、バイアスずれを含む)から、加速度ノイズの分散および角速度ノイズの分散を計算し、「プロセスノイズQ」として、予測部に入力する。
・ プロセスノイズQ : 時刻kのプロセス入力の誤差共分散行列
 予測部は、加速度aおよび角速度ωをそれぞれ積分演算して、「状態ベクトルmk-1|k-1」からの変化量(つまり、位置変化量、速度変化量、姿勢変化量)を算出し、「状態ベクトルmk-1|k-1」に加算する演算を行う。予測部は、加速度aを積分して速度変化量を算出し、速度変化量を用いて推定される速度を積分して位置変化量を算出し、角速度ωを積分して姿勢変化量を算出する。予測部は、「状態ベクトルmk|k-1」および「推定誤差Pk|k-1」を、第3推定処理部260に出力する。
・ 状態ベクトルmk|k-1 : 時刻k-1までの情報で推定した時刻kの状態ベクトル
・ 推定誤差Pk|k-1 : 時刻k-1までの情報で推定した時刻kの状態の推定誤差共分散行列
 第3推定処理部260は、第1推定処理部240から「観測値n」および「観測ノイズR」を取得し、第2推定処理部250から「状態ベクトルmk|k-1」および「推定誤差Pk|k-1」を取得して、「状態ベクトルmk|k-1」を補正するためのカルマンゲインを算出する。第3推定処理部260は、カルマンゲインを用いて「状態ベクトルmk|k-1」を補正し、「状態ベクトルmk|k」および「推定誤差Pk|k」を出力する。
・ 状態ベクトルmk|k : 時刻kまでの情報で推定した時刻kの状態ベクトル
・ 推定誤差Pk|k : 時刻kまでの情報で推定した時刻kの状態の推定誤差共分散行列
 「状態ベクトルmk|k」は、高精度に推定された位置、速度、姿勢を示し、アプリケーション実行部220に提供されて、アプリケーションの操作に利用されてよい。「状態ベクトルmk|k」および「推定誤差Pk|k」は状態保持部226に一時的に保持されて、第2推定処理部250における時刻k+1の推定処理の際に読み出される。
 推定処理部230において、第1推定処理部240による推定処理は60Hzの周期で実施される一方で、第2推定処理部250による推定処理は800Hzの周期で実施される。そのため第1推定処理部240が観測値を出力してから、次の観測値を出力するまでの間に、第2推定処理部250は状態ベクトルを順次更新し、この間、状態ベクトルは補正されない。実施例の推定処理部230は、観測時刻kの直前の時刻k-1の状態を基準に補正ステップを行っており、つまり観測値を、過去の状態を修正するために利用している。
 以上のように、入力デバイス16のトラッキング処理が実施されている間は、推定処理部230が、入力デバイス16の位置および姿勢を高精度に推定する。しかしながら入力デバイス16のマーカ30が撮像装置14により撮影されなくなると、第1推定処理部240は、図9に示す位置姿勢推定処理を実行できない。
 実施例では、推定処理部230は、入力デバイス16のマーカ30が撮影画像に映っていない(撮像装置14により撮影されない)場合でも、HMD100のセンサデータおよび入力デバイス16のセンサデータにもとづいて、入力デバイス16の位置を推定し、言い換えれば、入力デバイス16のトラッキングを継続する。例えば、推定処理部230は、入力デバイス16が撮像装置14の画角を外れた後、HMD100のセンサデータにもとづいてHMD100が右方向に動いたと判断した場合、HMD100が右方向へ動いた分だけ、入力デバイス16の推定位置をそれまでより左方向に移動させてもよい。推定処理部230は、入力デバイス16のマーカ30が撮影画像に映っていない状況で、所定のトラッキング終了条件(例えば、所定時間の経過やHMD100の大きな移動等)が満たされた場合、入力デバイス16の位置推定処理を終了する。
 図8に戻り、静止判定部262は、センサデータ取得部214により取得された、入力デバイス16の加速度を示すセンサデータにもとづいて、入力デバイス16が静止しているか否かを判定する。静止判定部262は、入力デバイス16の加速度の時系列データから加速度の傾きを算出し、算出した傾きにもとづいて、入力デバイス16が静止しているか否かを判定する。
 実施例の静止判定部262は、現在時刻tから過去時刻(t-99)までの100個の加速度値に最小二乗法を適用して回帰直線を求め、その傾きを特定する。なお傾きを算出するときのサンプル数は100個以外であってもよい。静止判定部262は、センサデータのサンプリング周期で傾きを算出し、常時、入力デバイス16が静止しているか否かを判定してよい。
 静止判定部262は、算出した傾きの絶対値が所定の閾値Sth以上であると、入力デバイス16が動いていることを判定し、算出した傾きの絶対値が閾値Sth未満であると、入力デバイス16が静止していることを判定する。なお判定結果が頻繁に入れ替わることを防止するために、静止判定部264は、算出する傾きの絶対値が所定回数(N3回)連続して閾値Sth未満となったときに、入力デバイス16が静止していることを判定してよく、静止を判定した後は、算出する傾きの絶対値が所定回数(N4回)連続して閾値Sth以上となったときに、入力デバイス16が動いていることを判定してもよい。N3とN4は同じ回数であってよいが、異なる回数であってもよい。
 変形例として、静止判定部262は、撮影画像取得部212により取得された、入力デバイス16が映る撮影画像にもとづいて、入力デバイス16が静止しているか否かを判定してもよい。別の変形例として、静止判定部262は、第1推定処理部240、第2推定処理部250、第3推定処理部260のいずれかにより推定された、入力デバイス16の位置の時系列での変化にもとづいて、入力デバイス16が静止しているか否かを判定してもよい。
 撮影画像取得部212は、HMD100から送信された撮影画像データをアプリケーション実行部220および画像生成部272にさらに提供する。センサデータ取得部214は、HMD100から送信されたセンサデータをアプリケーション実行部220および画像生成部272にさらに提供する。また、センサデータ取得部214は、入力デバイス16から送信されたセンサデータをアプリケーション実行部220および画像生成部272にさらに提供する。
 操作情報取得部216は、入力デバイス16から送信された、入力デバイス16に入力されたユーザの操作を示す操作情報を取得する。操作情報取得部216は、取得した操作情報をアプリケーション実行部220に提供する。
 アプリケーション実行部220は、操作情報取得部216から入力された操作情報や、センサデータ取得部214から入力されたセンサデータ、推定処理部230(例えば第3推定処理部260)により推定された入力デバイス16の位置姿勢情報等にもとづいて、各種アプリケーションを実行する。例えば、アプリケーション実行部220は、VRゲームに関する各種処理が実装されたコンピュータプログラムを実行して、VRゲームを進行させてもよい。実施例では、アプリケーション実行部220は、HMD100の初期設定アプリケーションを実行する。
 画像生成部272と画像出力部274は、表示部における電子コンテンツの表示を制御する表示制御部276として機能する。表示部は、少なくとも、HMD100の表示パネル130を含むが、出力装置15のディスプレイをさらに含んでもよい。実施例では、表示制御部276は、HMD100の初期設定アプリケーションの実行時に、後述のカメラAR映像をHMD100の表示パネル130に表示させる。
 具体的には、画像生成部272は、撮影画像取得部212から入力された撮影画像データや、アプリケーション実行部220によるアプリケーションの実行結果等に基づいて、HMD100に表示させる表示用の画像データ(例えばVRコンテンツの画像データ)を生成する。画像出力部274は、画像生成部272により生成された表示用の画像データをHMD100へ送信して、その表示パネル130に表示させる。
 実施例では、画像生成部272は、アプリケーション実行部220によるHMD100の初期設定アプリケーションの実行結果にもとづいて、HMD100の初期設定アプリケーションの画像を生成する。HMD100の初期設定アプリケーションの画像は、HMD100の撮像装置14により撮影された撮影画像であり、HMD100を装着したユーザの正面方向の実空間を撮影した撮影画像を含む。具体的には、HMD100の初期設定アプリケーションの画像は、HMD100を装着したユーザの正面方向の実空間が映る映像にもとづく拡張現実(Augmented Reality:AR)映像(以下「カメラAR映像」とも呼ぶ。)を含む。画像出力部274は、画像生成部272により生成されたカメラAR映像をHMD100の表示パネル130に表示させる。
 カメラAR映像は、入力デバイス16を正しく把持できるよう支援する仮想的なオブジェクトの画像(以下「ガイドオブジェクト」とも呼ぶ。)を含み得る。ガイドオブジェクトは、後述の概略位置ガイドや挿入位置ガイドを含む。画像生成部272は、入力デバイス16aの状態と入力デバイス16bの状態(位置や姿勢等)をそれぞれ個別に管理し、カメラAR映像において入力デバイス16aに付加するガイドオブジェクトと入力デバイス16bに付加するガイドオブジェクトをそれぞれ個別に判断する。
 図11は、カメラAR映像におけるガイド表示の遷移例を示す。推定処理部230が入力デバイス16の位置(例えば、ワールド座標系における座標値)をトラッキングできていない場合、画像生成部272は、入力デバイス16に対するガイド表示を第1態様に設定する。第1態様では、入力デバイス16の映像に付加したガイドオブジェクトの表示を抑制し、言い換えれば、ガイドオブジェクトを非表示とする。
 推定処理部230が入力デバイス16の位置をトラッキングできている場合、画像生成部272は、撮像装置14による撮影画像に入力デバイス16が映っているか否か、すなわち、入力デバイス16がユーザの視野内にあるか否かを判定する。また、画像生成部272は、入力デバイス16の推定位置にもとづいて、HMD100と入力デバイス16との距離を導出し、その距離が予め定められた閾値以下であるか否かをさらに判定する。実施例におけるこの閾値は1.3メートルであるが、開発者の知見や情報処理システム1を用いた実験等をもとに適切な閾値が決定されてよい。
 入力デバイス16の位置をトラッキングできている場合に、撮像装置14による撮影画像に入力デバイス16が映っておらず、または、HMD100と入力デバイス16との距離が上記閾値を超過すれば、画像生成部272は、入力デバイス16に対するガイド表示を第2態様に設定する。第2態様では、入力デバイス16の映像に付加するガイドオブジェクトとして概略位置ガイドが配置される。
 入力デバイス16の位置をトラッキングできている場合に、撮像装置14による撮影画像に入力デバイス16が映っており、かつ、HMD100と入力デバイス16との距離が上記閾値以下であれば、画像生成部272は、入力デバイス16に対するガイド表示を第3態様に設定する。第3態様では、入力デバイス16の映像に付加するガイドオブジェクトとして概略位置ガイド、挿入位置ガイドおよび挿入方向ガイドが配置される。
 図12は、カメラAR映像60の例を示す。同図は、第2態様でのガイド表示を含むカメラAR映像60を示している。実施例におけるHMD100の初期設定において、ユーザは、HMD100を自身の頭部に装着後、入力デバイス16を把持することが求められる。ここでは、入力デバイス16aの位置と入力デバイス16bの位置の両方をトラッキングできているが、撮像装置14による撮影画像に入力デバイス16aと入力デバイス16bの両方が映っていないこととする。画像生成部272は、入力デバイス16aと入力デバイス16bのそれぞれに対する第2態様でのガイド表示を含むカメラAR映像60を生成する。
 図12のカメラAR映像60では、撮像装置14による撮影画像の上に、概略位置ガイド70aと概略位置ガイド70bとが重ねて表示される。概略位置ガイド70aは、入力デバイス16aの大まかな位置を矢印の向きで示唆するガイドオブジェクトである。概略位置ガイド70bは、入力デバイス16bの大まかな位置を矢印の向きで示唆するガイドオブジェクトである。画像生成部272は、概略位置ガイド70aの矢印が、推定処理部230により推定された入力デバイス16aの位置を向くように設定し、概略位置ガイド70bの矢印が、推定処理部230により推定された入力デバイス16bの位置を向くように設定する。
 図13も、カメラAR映像60の例を示す。同図は、第3態様でのガイド表示を含むカメラAR映像60を示している。第2態様でのガイド表示中に、撮像装置14による撮影画像に入力デバイス16(ここでは入力デバイス16aと入力デバイス16bの両方)が映り、かつ、HMD100と入力デバイス16(ここでは入力デバイス16aと入力デバイス16bの両方)との距離が1.3メートル以下になったとする。この場合、画像生成部272は、入力デバイス16aと入力デバイス16bのそれぞれに対する第3態様でのガイド表示を含むカメラAR映像60を生成する。図13のカメラAR映像60では、撮像装置14による撮影画像の上に、概略位置ガイド70a、概略位置ガイド70b、挿入位置ガイド72、挿入方向ガイド74が重ねて表示される。
 挿入位置ガイド72は、第1オブジェクトとして、ユーザがコントローラを正しく把持できるよう支援するオブジェクトであり、具体的には、入力デバイス16においてユーザが手を差し入れるべき箇所(すなわち湾曲部23の位置)を示唆する環状のガイドオブジェクトである。画像生成部272は、推定処理部230により推定されたHMD100の位置および姿勢にもとづいて、撮影画像に映るHMD100の湾曲部23を特定する。画像生成部272は、湾曲部23の近傍に挿入位置ガイド72を配置し、具体的には、湾曲部23の周囲を取り巻くように挿入位置ガイド72を配置する。
 変形例として、挿入位置ガイド72は、入力デバイス16においてユーザが把持すべき箇所(すなわち把持部21の位置)を示唆するオブジェクトであってもよい。画像生成部272は、推定処理部230により推定されたHMD100の位置および姿勢にもとづいて、撮影画像に映るHMD100の把持部21を特定してもよい。画像生成部272は、把持部21の近傍に挿入位置ガイド72を配置してもよく、具体的には、把持部21の周囲を取り巻くように挿入位置ガイド72を配置してもよい。
 なお、図13のカメラAR映像64では、入力デバイス16aの湾曲部23が撮影画像に映っているため、入力デバイス16aの湾曲部23の近傍に挿入位置ガイド72が配置されている。一方、入力デバイス16bの湾曲部23は撮影画像に映っていないため、入力デバイス16bに対して挿入位置ガイド72が配置されていない。
 挿入方向ガイド74は、第2オブジェクトとして、入力デバイス16においてユーザが手を差し入れるべき方向に移動する環状のガイドオブジェクトである。挿入方向ガイド74は、カメラAR映像上でのその動きによって入力デバイス16においてユーザが手を差し入れるべき方向を示唆する。挿入方向ガイド74は、挿入位置ガイド72より細い線であってもよい。画像生成部272は、推定処理部230により推定された入力デバイス16の位置および姿勢にもとづいて、撮影画像に映る入力デバイス16の湾曲部23と手を差し入れるべき方向(例えば湾曲部23から把持部21への方向)を特定する。
 実施例では、画像生成部272は、挿入方向ガイド74が入力デバイス16の周囲を湾曲部23から把持部21の方向に移動するアニメーションをカメラAR映像64に設定する。このアニメーションは、複数の挿入方向ガイド74が、湾曲部23から把持部21の方向に順次移動するものであってもよい。画像生成部272は、挿入方向ガイド74が移動して把持部21に近づくほど、その挿入方向ガイド74の透過度を高めてもよい。
 入力デバイス16aのガイド表示を第3態様に設定中に、撮像装置14による撮影画像に入力デバイス16が映らなくなり、または、HMD100と入力デバイス16aとの距離が1.3メートルを超過した場合であって、推定処理部230による入力デバイス16aのトラッキングが継続している場合(推定処理部230により入力デバイス16aの位置の推定値が出力されている場合)、画像生成部272は、入力デバイス16aのガイド表示を第3態様から第2態様に切り替える。また、推定処理部230による入力デバイス16aのトラッキングが終了すると、画像生成部272は、入力デバイス16aのガイド表示を第2態様から第1態様に切り替える。入力デバイス16bのガイド表示の切り替えも同様である。
 図11に戻り、第3態様でのガイド表示中に、入力デバイス16の非静止状態が第1時間(実施例では1秒)以上継続した場合であり、言い換えれば、第1時間(実施例では1秒)以上継続して静止判定部262が入力デバイス16を非静止状態と判定した場合、画像生成部272は、第4態様でのガイド表示に切り替えたカメラAR映像を生成する。第3態様でのガイド表示から第4態様でのガイド表示の切り替えは、典型的には、ユーザが入力デバイス16を手に持った場合に生じる。
 図14も、カメラAR映像60の例を示す。同図のカメラAR映像60では、静止状態の入力デバイス16aに対して第3態様のガイド表示が設定されている。一方、ユーザが手に持って非静止状態になった入力デバイス16bには第4態様のガイド表示が設定されている。
 第4態様のガイド表示では、概略位置ガイド70bと挿入位置ガイド72は表示されるが、挿入方向ガイド74は非表示となる。画像生成部272は、入力デバイス16bのガイド表示が第3態様から第4態様に移行した場合、それまで入力デバイス16bに付加した挿入方向ガイド74のアニメーションを終了させる。ユーザが入力デバイス16を手に持つと、ユーザと入力デバイス16との距離はかなり近くなり、この状態で挿入方向ガイド74(アニメーション)を表示させると、それを見たユーザに違和感を抱かせやすいからである。
 図11に戻り、第4態様でのガイド表示中に、入力デバイス16のいずれかの操作部材22に対するユーザの指の接触が検出された場合、画像生成部272は、第5態様でのガイド表示に切り替えたカメラAR映像を生成する。第5態様でのガイド表示では、全てのガイドオブジェクトを消去し、言い換えれば、非表示とする。
 図15も、カメラAR映像60の例を示す。同図のカメラAR映像60では、ユーザが手に持って非静止状態になった入力デバイス16aに対して、第4態様のガイド表示が設定され、概略位置ガイド70aと挿入位置ガイド72が付加されている。一方、ユーザが操作部材22に指でタッチした入力デバイス16bのガイド表示は、第4態様から第5態様に移行し、概略位置ガイド70bと挿入位置ガイド72が非表示になっている。HMD100の初期設定アプリケーションは、入力デバイス16aと入力デバイス16bの両方にユーザの指が触れた場合、入力デバイス16aと入力デバイス16bを使用する次の設定処理(例えばプレイエリアの編集処理等)へ進んでもよい。
 入力デバイス16aのガイド表示を第5態様に設定中に、ユーザの指が操作部材22から離れると、画像生成部272は、入力デバイス16aのガイド表示を第5態様から第4態様に切り替える。また、入力デバイス16aのガイド表示を第4態様に設定中に、入力デバイス16aの静止状態が第1時間より長い第2時間(実施例では10秒)以上継続した場合であり、言い換えれば、第2時間(実施例では10秒)以上継続して静止判定部262が入力デバイス16aを非静止状態と判定した場合、画像生成部272は、入力デバイス16aのガイド表示を第4態様から第3態様に切り替える。入力デバイス16bのガイド表示も同じである。
 すなわち、画像生成部272は、入力デバイス16の非静止状態が比較的短時間継続すれば挿入方向ガイド74を非表示とする一方、入力デバイス16の静止状態が比較的長時間継続することを条件として挿入方向ガイド74の表示を再開させる。これにより、ユーザが入力デバイス16を手に持っている間、言い換えれば、ユーザと入力デバイス16との距離がかなり近いときに、意図せず入力デバイス16が静止した場合にも挿入方向ガイド74が表示されにくくなり、ユーザに違和感を抱かせにくくなる。
 実施例の情報処理システム1では、HMD100を装着したユーザの正面方向を撮影した画像に、挿入位置ガイド72や挿入方向ガイド74を付加したAR画像をユーザに提示する。これにより、HMD100を装着したユーザが、入力デバイス16に対して正しく手を差し込み、入力デバイス16を正しく把持できるよう支援できる。
 以上、本発明を実施例をもとに説明した。この実施例は例示であり、各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 実施例の情報処理装置10の推定処理部230は、入力デバイス16を撮影した画像(言い換えれば、入力デバイス16が映る撮影画像)と、入力デバイス16から送信されたセンサデータの両方にもとづいて、入力デバイス16の位置と姿勢を推定した。変形例として、推定処理部230は、第1推定処理部240のように、入力デバイス16を撮影した画像を用いるが、入力デバイス16から送信されたセンサデータを用いずに、入力デバイス16の位置と姿勢を推定してもよい。別の変形例として、推定処理部230は、第2推定処理部250のように、入力デバイス16から送信されたセンサデータを用いるが、入力デバイス16を撮影した画像を用いずに、入力デバイス16の位置と姿勢を推定してもよい。
 実施例に記載の情報処理装置10の機能は、HMD100に実装されてもよい。言い換えれば、HMD100は、実施例に記載の情報処理装置10の機能を含んでもよく、さらに言い換えれば、実施例の情報処理装置10は、HMD100であってもよい。また、実施例では、撮像装置14がHMD100に取り付けられたが、撮像装置14は、HMD100以外の別の位置に取り付けられてもよい。
 上述した実施例および変形例の任意の組み合わせもまた本開示の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
 上記実施例および変形例に記載の技術思想は、以下の各項目に記載の態様のように表現することができる。
[項目1]
 ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得する撮影画像取得部と、
 前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する推定部と、
 前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる表示制御部と、
 を備え、
 前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
 情報処理装置。
 この情報処理装置によると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
[項目2]
 前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する前記第1オブジェクトをさらに表示させる、
 項目1に記載の情報処理装置。
 この情報処理装置によると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
[項目3]
 前記コントローラは、前記ユーザが手を差し入れるための湾曲部をさらに備え、
 前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆する前記第1オブジェクトを表示させる、
 項目1または2に記載の情報処理装置。
 この態様によると、ヘッドマウントディスプレイを装着したユーザが、コントローラの湾曲部に正しく手を差し入れられるよう支援でき、コントローラを正しく把持できるよう支援できる。
[項目4]
 前記表示制御部は、前記撮影画像に映る前記コントローラの近傍に、手を差し入れるべき方向に移動する第2オブジェクトをさらに表示させる、
 項目1から3のいずれかに記載の情報処理装置。
 この態様によると、ヘッドマウントディスプレイを装着したユーザが、コントローラの湾曲部から正しい方向に手を差し入れられるよう支援できる。
[項目5]
 前記表示制御部は、前記コントローラの非静止状態が第1時間以上継続した場合、前記第2オブジェクトを非表示とする、
 項目4に記載の情報処理装置。
 この態様によると、ユーザがコントローラを手に持った場合に第2オブジェクトの表示が継続することで、ユーザに違和感を抱かせてしまうことや、ユーザからコントローラの装着具合を確認することが困難になることを防止できる。
[項目6]
 前記表示制御部は、前記コントローラの非静止状態が前記第1時間以上継続して前記第2オブジェクトを非表示とした後、前記コントローラの静止状態が前記第1時間より長い第2時間以上継続した場合、前記第2オブジェクトの表示を再開させる、
 項目5に記載の情報処理装置。
 この態様によると、第2オブジェクト表示再開の条件としてのコントローラの静止状態継続時間を相対的に長くすることにより、コントローラを手に持っているにもかかわらず第2オブジェクトの表示が再開されてしまうことを防止しやすくなる。
[項目7]
 前記表示制御部は、前記撮影画像に前記コントローラが映り、かつ、前記ヘッドマウントディスプレイと前記コントローラとの距離が所定の閾値以下である場合に、前記第1オブジェクトを表示させる、
 項目1から6のいずれかに記載の情報処理装置。
 この態様によると、コントローラがユーザから離れた位置にあるときには第1オブジェクトの表示を抑制することで、第1オブジェクトがコントローラとユーザとの間にある別の物を指しているかのようにユーザに誤解させてしまうことを防止しやすくなる。
[項目8]
 ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得するステップと、
 前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定するステップと、
 前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させるステップと、
 をコンピュータが実行し、
 前記表示させるステップは、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
 コントローラ表示方法。
 このコントローラ表示方法によると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
[項目9]
 ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得する機能と、
 前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する機能と、
 前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる機能と、
 をコンピュータに実現させ、
 前記表示させる機能は、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
 コンピュータプログラム。
 このコンピュータプログラムによると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
 本発明は、情報処理装置や情報処理システムに適用できる。
 1 情報処理システム、 10 情報処理装置、 14 撮像装置、 16 入力デバイス、 21 把持部、 23 湾曲部、 100 HMD、 212 撮影画像取得部、 230 推定処理部、 272 画像生成部、 274 画像出力部、 276 表示制御部。

Claims (9)

  1.  ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得する撮影画像取得部と、
     前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する推定部と、
     前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる表示制御部と、
     を備え、
     前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
     情報処理装置。
  2.  前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する前記第1オブジェクトをさらに表示させる、
     請求項1に記載の情報処理装置。
  3.  前記コントローラは、前記ユーザが手を差し入れるための湾曲部をさらに備え、
     前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆する前記第1オブジェクトを表示させる、
     請求項1に記載の情報処理装置。
  4.  前記表示制御部は、前記撮影画像に映る前記コントローラの近傍に、手を差し入れるべき方向に移動する第2オブジェクトをさらに表示させる、
     請求項1に記載の情報処理装置。
  5.  前記表示制御部は、前記コントローラの非静止状態が第1時間以上継続した場合、前記第2オブジェクトを非表示とする、
     請求項4に記載の情報処理装置。
  6.  前記表示制御部は、前記コントローラの非静止状態が前記第1時間以上継続して前記第2オブジェクトを非表示とした後、前記コントローラの静止状態が前記第1時間より長い第2時間以上継続した場合、前記第2オブジェクトの表示を再開させる、
     請求項5に記載の情報処理装置。
  7.  前記表示制御部は、前記撮影画像に前記コントローラが映り、かつ、前記ヘッドマウントディスプレイと前記コントローラとの距離が所定の閾値以下である場合に、前記第1オブジェクトを表示させる、
     請求項1に記載の情報処理装置。
  8.  ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得するステップと、
     前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定するステップと、
     前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させるステップと、
     をコンピュータが実行し、
     前記表示させるステップは、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
     コントローラ表示方法。
  9.  ヘッドマウントディスプレイを装着したユーザの前方を撮影した撮影画像を取得する機能と、
     前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する機能と、
     前記ユーザの前方を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる機能と、
     をコンピュータに実現させ、
     前記表示させる機能は、前記コントローラの位置の推定結果に基づいて、前記撮影画像とともに、前記ユーザが把持すべき箇所を示唆する第1オブジェクトをさらに表示させる、
     コンピュータプログラム。
PCT/JP2023/019468 2022-06-06 2023-05-25 情報処理装置、コントローラ表示方法およびコンピュータプログラム WO2023238678A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-091709 2022-06-06
JP2022091709A JP2023178798A (ja) 2022-06-06 2022-06-06 情報処理装置、コントローラ表示方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
WO2023238678A1 true WO2023238678A1 (ja) 2023-12-14

Family

ID=89118168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/019468 WO2023238678A1 (ja) 2022-06-06 2023-05-25 情報処理装置、コントローラ表示方法およびコンピュータプログラム

Country Status (2)

Country Link
JP (1) JP2023178798A (ja)
WO (1) WO2023238678A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015232783A (ja) * 2014-06-09 2015-12-24 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置
JP2016158795A (ja) * 2015-02-27 2016-09-05 株式会社ソニー・インタラクティブエンタテインメント 表示制御プログラム、表示制御装置、及び表示制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015232783A (ja) * 2014-06-09 2015-12-24 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置
JP2016158795A (ja) * 2015-02-27 2016-09-05 株式会社ソニー・インタラクティブエンタテインメント 表示制御プログラム、表示制御装置、及び表示制御方法

Also Published As

Publication number Publication date
JP2023178798A (ja) 2023-12-18

Similar Documents

Publication Publication Date Title
JP7283506B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
CN110047104B (zh) 对象检测和跟踪方法、头戴式显示装置和存储介质
CN109146965B (zh) 信息处理装置、计算机可读介质和头戴式显示装置
US10249090B2 (en) Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking
CN103180893B (zh) 用于提供三维用户界面的方法和系统
CN110647237A (zh) 在人工现实环境中基于手势的内容共享
WO2017077918A1 (ja) 情報処理装置、情報処理システム、および情報処理方法
CN111819521B (zh) 信息处理装置、信息处理方法和程序
JP2020531965A (ja) 支援型の拡張現実
US11663737B2 (en) Information processing apparatus and representative coordinate derivation method
JP2000350860A (ja) 複合現実感装置及び複合現実空間画像の生成方法
CN110895433B (zh) 用于增强现实中用户交互的方法和装置
US11944897B2 (en) Device including plurality of markers
US20200342621A1 (en) Information processing apparatus and device information derivation method
US20230047470A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium
WO2023238678A1 (ja) 情報処理装置、コントローラ表示方法およびコンピュータプログラム
JP7288792B2 (ja) 情報処理装置およびデバイス情報導出方法
WO2023157499A1 (ja) 情報処理装置およびデバイス位置推定方法
WO2023157338A1 (ja) 情報処理装置およびデバイス位置推定方法
WO2023157498A1 (ja) 情報処理装置、デバイス速度推定方法およびデバイス位置推定方法
US11983306B2 (en) Peripheral tracking system and method
JP7394046B2 (ja) システム、撮像装置、情報処理装置、情報処理方法および情報処理プログラム
JP2024019472A (ja) 複数のマーカを備えたデバイス
JP2024032409A (ja) 情報処理装置およびhmd
CN114967943A (zh) 基于3d手势识别确定6dof位姿的方法及设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23819661

Country of ref document: EP

Kind code of ref document: A1