Program, method and information processing device
The program and method enhance user convenience in 360-degree video viewing by automatically switching camera views based on tracked object movement, addressing the limitations of existing technologies.
Patent Information
- Application Number
- JP2024042980
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-03-19
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2039-12-26
AI Technical Summary
Existing technologies for displaying 360-degree videos on head-mounted displays lack convenience for users, particularly in transitioning between captured spaces when tracked objects move.
A program and method that utilize multiple 360-degree cameras to detect when a tracked object moves between spaces and automatically switch the displayed image to the corresponding camera view, enhancing user convenience.
Improves user convenience by seamlessly transitioning between captured spaces in 360-degree video viewing, providing a more immersive experience.
Smart Images

Figure 0007775357000001 
Figure 0007775357000002 
Figure 0007775357000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a program, a method, and an information processing device. [Background technology]
[0002] Conventionally, there are known programs for displaying 360-degree video on a head-mounted display. Patent Document 1 discloses an invention that controls the time axis of 360-degree video displayed on a head-mounted display in accordance with the tilt of the head-mounted display. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 6130478 Summary of the Invention [Problem to be solved by the invention]
[0004] However, the invention described in Patent Document 1 leaves room for improvement in terms of improving the convenience for users when viewing 360-degree videos.
[0005] The present disclosure aims to provide a program, a method, and an information processing device that can improve the convenience of users when watching 360-degree videos. [Means for solving the problem]
[0006] According to one aspect of the present disclosure, the program causes a processor to execute the following steps: accepting input of an image captured by a first 360-degree camera that captures a first space; accepting input of an image captured by a second 360-degree camera that captures a second space; if a tracked object among a plurality of moving objects is in the first space, displaying the image captured by the first 360-degree camera on a head-mounted device; detecting that the tracked object has moved to the second space; and if it is detected in the detecting step that the tracked object has moved to the second space, switching the image displayed on the head-mounted device to the image captured by the second 360-degree camera. [Effects of the Invention]
[0007] According to the present disclosure, it is possible to provide a program, a method, and an information processing device that can improve the convenience of users when watching 360-degree videos. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram illustrating an outline of the configuration of an HMD system according to an embodiment. [Figure 2] FIG. 1 is a block diagram illustrating an example of a hardware configuration of a computer according to an embodiment. [Figure 3] FIG. 1 is a diagram conceptually illustrating a uvw field of view coordinate system set in an HMD according to an embodiment. [Figure 4] FIG. 1 is a diagram conceptually illustrating one mode of representing a virtual space according to an embodiment. [Figure 5] 1 is a top view of a user's head wearing an HMD according to an embodiment. FIG. [Figure 6] 10 is a diagram showing a YZ cross section of a field of view in a virtual space as viewed from the X direction. [Figure 7] 10 is a diagram showing an XZ cross section of a field of view in a virtual space as viewed from the Y direction. [Figure 8(A)] FIG. 2 is a diagram illustrating a schematic configuration of a controller according to an embodiment. [Figure 8(B)] FIG. 10 illustrates an example of yaw, roll, and pitch directions defined relative to a user's right hand according to one embodiment. [Figure 9] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a server according to an embodiment. [Figure 10] FIG. 1 is a block diagram illustrating a modular configuration of a computer according to an embodiment. [Figure 11] 10 is a sequence chart illustrating a part of a process executed in an HMD set according to an embodiment. [Figure 12(A)] FIG. 1 is a schematic diagram showing a situation in which each HMD provides a virtual space to a user in a network. [Figure 12(B)] FIG. 13 is a diagram showing a field of view image of a user 5A in FIG. 12(A). [Figure 13] FIG. 10 is a sequence diagram illustrating processing executed in an HMD system according to an embodiment. [Figure 14] FIG. 2 is a block diagram illustrating a detailed configuration of modules in a computer according to an embodiment. [Figure 15] FIG. 1 is a diagram illustrating an outline of a configuration of a 360-degree camera according to an embodiment. [Figure 16] FIG. 16 is a plan view showing the layout of a room in which the 360-degree camera shown in FIG. 15 is arranged. [Figure 17] 10 is a flowchart showing part of a process executed in an HMD set according to an embodiment, the process relating to control of a 360-degree camera. [Figure 18] 18 is a flowchart showing an example of the automatic switching process shown in FIG. 17. DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, embodiments of this technical idea will be described in detail with reference to the drawings. In the following description, the same components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated. In one or more embodiments shown in this disclosure, elements included in each embodiment can be combined with each other, and the combined result also forms part of the embodiment shown in this disclosure.
[0010] [HMD system configuration] The configuration of an HMD (Head-Mounted Device) system 100 will be described with reference to Fig. 1. Fig. 1 is a diagram illustrating an outline of the configuration of HMD system 100 according to the present embodiment. HMD system 100 is provided as a system for home use or a system for business use.
[0011] The HMD system 100 includes a server 600, HMD sets 110A, 110B, 110C, and 110D, an external device 700, and a network 2. Each of the HMD sets 110A, 110B, 110C, and 110D is configured to be able to communicate with the server 600 and the external device 700 via the network 2. Hereinafter, the HMD sets 110A, 110B, 110C, and 110D will be collectively referred to as the HMD set 110. The number of HMD sets 110 constituting the HMD system 100 is not limited to four, and may be three or less, or five or more. The HMD set 110 includes an HMD 120, a computer 200, an HMD sensor 410, a display 430, and a controller 300. The HMD 120 includes a monitor 130, a gaze sensor 140, a first camera 150, a second camera 160, a microphone 170, and a speaker 180. The controller 300 may include a motion sensor 420.
[0012] In one aspect, the computer 200 can be connected to the Internet or other network 2, and can communicate with a server 600 or other computers connected to the network 2. Examples of other computers include computers of other HMD sets 110 and external devices 700. In another aspect, the HMD 120 can include a sensor 190 instead of the HMD sensor 410.
[0013] The HMD 120 is worn on the head of the user 5 and can provide a virtual space to the user 5 during operation. More specifically, the HMD 120 displays an image for the right eye and an image for the left eye on the monitor 130. When each eye of the user 5 views the respective image, the user 5 can recognize the image as a three-dimensional image based on the parallax between the two eyes. The HMD 120 can include both a so-called head-mounted display equipped with a monitor and a head-mounted device to which a smartphone or other terminal equipped with a monitor can be attached.
[0014] Monitor 130 is realized, for example, as a non-transmissive display device. In one aspect, monitor 130 is disposed on the main body of HMD 120 so as to be positioned in front of both eyes of user 5. Therefore, when user 5 views the three-dimensional image displayed on monitor 130, user 5 can be immersed in the virtual space. In one aspect, the virtual space includes, for example, a background, objects that user 5 can operate, and images of menus that user 5 can select. In another aspect, monitor 130 can be realized as a liquid crystal monitor or organic EL (Electro Luminescence) monitor provided in a so-called smartphone or other information display terminal.
[0015] In another aspect, the monitor 130 may be realized as a transmissive display device. In this case, the HMD 120 may be an open type such as a pair of glasses, rather than a closed type that covers the eyes of the user 5 as shown in FIG. 1 . The transmissive monitor 130 may be temporarily configured as a non-transmissive display device by adjusting its transmittance. The monitor 130 may include a configuration that simultaneously displays a portion of an image that constitutes a virtual space and the real space. For example, the monitor 130 may display an image of the real space captured by a camera mounted on the HMD 120, or may make the real space visible by setting the transmittance of a portion of the monitor 130 high.
[0016] In one aspect, monitor 130 may include a sub-monitor for displaying an image for the right eye and a sub-monitor for displaying an image for the left eye. In another aspect, monitor 130 may be configured to display an image for the right eye and an image for the left eye as a single image. In this case, monitor 130 includes a high-speed shutter. The high-speed shutter operates to alternately display an image for the right eye and an image for the left eye so that the image is recognized by only one of the eyes.
[0017] In one aspect, the HMD 120 includes a plurality of light sources (not shown). Each light source is realized, for example, by an LED (Light Emitting Diode) that emits infrared rays. The HMD sensor 410 has a position tracking function for detecting the movement of the HMD 120. More specifically, the HMD sensor 410 reads a plurality of infrared rays emitted by the HMD 120 and detects the position and tilt of the HMD 120 in real space.
[0018] In another aspect, the HMD sensor 410 may be realized by a camera. In this case, the HMD sensor 410 can detect the position and tilt of the HMD 120 by performing image analysis processing using image information of the HMD 120 output from the camera.
[0019] In another aspect, the HMD 120 may include the sensor 190 as a position detector instead of or in addition to the HMD sensor 410. The HMD 120 may use the sensor 190 to detect the position and tilt of the HMD 120 itself. For example, if the sensor 190 is an angular velocity sensor, a geomagnetic sensor, or an acceleration sensor, the HMD 120 may use any of these sensors instead of the HMD sensor 410 to detect the position and tilt of the HMD 120 itself. As an example, if the sensor 190 is an angular velocity sensor, the angular velocity sensor detects the angular velocity of the HMD 120 around three axes in real space over time. The HMD 120 calculates changes over time in the angles of the HMD 120 around the three axes based on the angular velocities, and further calculates the tilt of the HMD 120 based on the changes over time in the angles.
[0020] The gaze sensor 140 detects the direction in which the right and left eyes of the user 5 are looking. In other words, the gaze sensor 140 detects the gaze of the user 5. The detection of the gaze direction is achieved, for example, by a known eye tracking function. The gaze sensor 140 is achieved by a sensor having the eye tracking function. In certain aspects, the gaze sensor 140 preferably includes a sensor for the right eye and a sensor for the left eye. The gaze sensor 140 may be, for example, a sensor that irradiates the right and left eyes of the user 5 with infrared light and detects the rotation angle of each eyeball by receiving light reflected from the cornea and iris of the irradiated light. The gaze sensor 140 can detect the gaze of the user 5 based on the detected rotation angles.
[0021] The first camera 150 captures the lower part of the face of the user 5. More specifically, the first camera 150 captures the nose, mouth, and the like of the user 5. The second camera 160 captures the eyes, eyebrows, and the like of the user 5. The housing of the HMD 120 on the user 5 side is defined as the inside of the HMD 120, and the housing of the HMD 120 on the opposite side from the user 5 is defined as the outside of the HMD 120. In one aspect, the first camera 150 may be disposed outside the HMD 120, and the second camera 160 may be disposed inside the HMD 120. Images generated by the first camera 150 and the second camera 160 may be input to the computer 200. In another aspect, the first camera 150 and the second camera 160 may be implemented as a single camera, and the face of the user 5 may be captured by this single camera.
[0022] The microphone 170 converts speech of the user 5 into an audio signal (electrical signal) and outputs it to the computer 200. The speaker 180 converts the audio signal into sound and outputs it to the user 5. In another aspect, the HMD 120 may include earphones instead of the speaker 180.
[0023] Controller 300 is connected to computer 200 via a wire or wirelessly. Controller 300 accepts input of commands from user 5 to computer 200. In one aspect, controller 300 is configured to be able to be held by user 5. In another aspect, controller 300 is configured to be able to be attached to the body or a part of clothing of user 5. In yet another aspect, controller 300 may be configured to output at least one of vibration, sound, and light based on a signal transmitted from computer 200. In yet another aspect, controller 300 accepts operations from user 5 to control the position and movement of an object placed in a virtual space.
[0024] In one aspect, the controller 300 includes multiple light sources. Each light source is realized, for example, by an LED that emits infrared light. The HMD sensor 410 has a position tracking function. In this case, the HMD sensor 410 reads multiple infrared rays emitted by the controller 300 and detects the position and tilt of the controller 300 in real space. In another aspect, the HMD sensor 410 may be realized by a camera. In this case, the HMD sensor 410 can detect the position and tilt of the controller 300 by performing image analysis processing using image information of the controller 300 output from the camera.
[0025] In one aspect, the motion sensor 420 is attached to the hand of the user 5 and detects the movement of the user 5's hand. For example, the motion sensor 420 detects the rotation speed, number of rotations, etc. of the hand. The detected signal is sent to the computer 200. The motion sensor 420 is provided, for example, in the controller 300. In one aspect, the motion sensor 420 is provided, for example, in the controller 300 configured to be held by the user 5. In another aspect, for safety in real space, the controller 300 is attached to something that is worn on the hand of the user 5, such as a glove, so that it will not easily fly away. In yet another aspect, a sensor not worn by the user 5 may detect the movement of the user 5's hand. For example, a signal from a camera capturing an image of the user 5 may be input to the computer 200 as a signal representing the movement of the user 5. The motion sensor 420 and the computer 200 are connected to each other wirelessly, for example. In the case of wireless communication, the communication format is not particularly limited, and for example, Bluetooth (registered trademark) or other known communication methods may be used.
[0026] The display 430 displays an image similar to the image displayed on the monitor 130. This allows users other than the user 5 wearing the HMD 120 to view the same image as the user 5. The image displayed on the display 430 does not need to be a three-dimensional image, and may be an image for the right eye or an image for the left eye. Examples of the display 430 include a liquid crystal display and an organic EL monitor.
[0027] The server 600 may transmit a program to the computer 200. In another aspect, the server 600 may communicate with other computers 200 to provide virtual reality to the HMDs 120 used by other users. For example, in an amusement facility, when multiple users play a participatory game, each computer 200 communicates a signal based on the actions of each user with the other computers 200 via the server 600, allowing multiple users to enjoy a common game in the same virtual space. Each computer 200 may also communicate a signal based on the actions of each user with the other computers 200 without going through the server 600.
[0028] The external device 700 may be any device that can communicate with the computer 200. The external device 700 may be, for example, a device that can communicate with the computer 200 via the network 2, or a device that can communicate directly with the computer 200 via short-range wireless communication or a wired connection. Examples of the external device 700 include, but are not limited to, smart devices, PCs (Personal Computers), and peripheral devices of the computer 200.
[0029] [Computer hardware configuration] A computer 200 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a block diagram showing an example of the hardware configuration of computer 200 according to this embodiment. Computer 200 includes, as main components, a processor 210, a memory 220, a storage 230, an input / output interface 240, and a communication interface 250. Each component is connected to a bus 260.
[0030] Processor 210 executes a series of instructions included in a program stored in memory 220 or storage 230 based on a signal provided to computer 200 or based on the establishment of a predetermined condition. In one aspect, processor 210 is realized as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor unit (MPU), a field-programmable gate array (FPGA), or other device.
[0031] Memory 220 temporarily stores programs and data. Programs are loaded from storage 230, for example. Data includes data input to computer 200 and data generated by processor 210. In one aspect, memory 220 is realized as RAM (Random Access Memory) or other volatile memory.
[0032] The storage 230 permanently stores programs and data. The storage 230 is realized, for example, as a ROM (Read-Only Memory), a hard disk drive, a flash memory, or other non-volatile storage device. The programs stored in the storage 230 include a program for providing a virtual space in the HMD system 100, a simulation program, a game program, a user authentication program, and a program for realizing communication with other computers 200. The data stored in the storage 230 includes data and objects for defining the virtual space.
[0033] In another aspect, storage 230 may be realized as a removable storage device such as a memory card. In yet another aspect, a configuration may be used in which programs and data stored in an external storage device are used instead of storage 230 built into computer 200. With such a configuration, for example, in a situation where multiple HMD systems 100 are used, such as an amusement facility, it becomes possible to collectively update programs and data.
[0034] The input / output interface 240 communicates signals between the HMD 120, the HMD sensor 410, the motion sensor 420, and the display 430. The monitor 130, the gaze sensor 140, the first camera 150, the second camera 160, the microphone 170, and the speaker 180 included in the HMD 120 can communicate with the computer 200 via the input / output interface 240 of the HMD 120. In one aspect, the input / output interface 240 is realized using a terminal such as a Universal Serial Bus (USB), a Digital Visual Interface (DVI), or a High-Definition Multimedia Interface (HDMI®). The input / output interface 240 is not limited to those described above.
[0035] In one aspect, the input / output interface 240 may further communicate with the controller 300. For example, the input / output interface 240 receives input of signals output from the controller 300 and the motion sensor 420. In another aspect, the input / output interface 240 sends instructions output from the processor 210 to the controller 300. The instructions instruct the controller 300 to vibrate, output sound, emit light, etc. Upon receiving the instructions, the controller 300 executes one of the following in response to the instructions: vibration, sound output, or light emission.
[0036] Communication interface 250 is connected to network 2 and communicates with other computers (e.g., server 600) connected to network 2. In one aspect, communication interface 250 is realized as, for example, a wired communication interface such as a local area network (LAN), or a wireless communication interface such as Wi-Fi (Wireless Fidelity), Bluetooth (registered trademark), or NFC (Near Field Communication). Communication interface 250 is not limited to the above.
[0037] In one aspect, the processor 210 accesses the storage 230, loads one or more programs stored in the storage 230 into the memory 220, and executes a series of instructions included in the programs. The one or more programs may include an operating system for the computer 200, an application program for providing a virtual space, game software executable in the virtual space, etc. The processor 210 sends a signal for providing the virtual space to the HMD 120 via the input / output interface 240. The HMD 120 displays an image on the monitor 130 based on the signal.
[0038] 2 shows a configuration in which the computer 200 is provided outside the HMD 120, but in another aspect, the computer 200 may be built into the HMD 120. As an example, a portable information communication terminal (e.g., a smartphone) including the monitor 130 may function as the computer 200.
[0039] The computer 200 may be configured to be shared by multiple HMDs 120. With such a configuration, for example, the same virtual space can be provided to multiple users, allowing each user to enjoy the same application as other users in the same virtual space.
[0040] In one embodiment, a real coordinate system, which is a coordinate system in real space, is set in advance in the HMD system 100. The real coordinate system has three reference directions (axes) parallel to the vertical direction in real space, the horizontal direction perpendicular to the vertical direction, and the front-to-back direction perpendicular to both the vertical and horizontal directions. The horizontal direction, vertical direction (up-down direction), and front-to-back direction in the real coordinate system are defined as the x-axis, y-axis, and z-axis, respectively. More specifically, in the real coordinate system, the x-axis is parallel to the horizontal direction in real space. The y-axis is parallel to the vertical direction in real space. The z-axis is parallel to the front-to-back direction in real space.
[0041] In one aspect, the HMD sensor 410 includes an infrared sensor. When the infrared sensor detects infrared rays emitted from each light source of the HMD 120, it detects the presence of the HMD 120. The HMD sensor 410 further detects the position and tilt (orientation) of the HMD 120 in real space in accordance with the movement of the user 5 wearing the HMD 120, based on the values of each point (each coordinate value in the real coordinate system). More specifically, the HMD sensor 410 can detect changes over time in the position and tilt of the HMD 120 using each value detected over time.
[0042] Each tilt of the HMD 120 detected by the HMD sensor 410 corresponds to each tilt around the three axes of the HMD 120 in the real coordinate system. The HMD sensor 410 sets a uvw field of view coordinate system for the HMD 120 based on the tilt of the HMD 120 in the real coordinate system. The uvw field of view coordinate system set for the HMD 120 corresponds to a viewpoint coordinate system when the user 5 wearing the HMD 120 views an object in a virtual space.
[0043] [uvw field of view coordinate system] The uvw field of view coordinate system will be described with reference to Fig. 3. Fig. 3 is a conceptual diagram showing the uvw field of view coordinate system set in the HMD 120 according to an embodiment. The HMD sensor 410 detects the position and tilt of the HMD 120 in the real coordinate system when the HMD 120 is started up. The processor 210 sets the uvw field of view coordinate system in the HMD 120 based on the detected values.
[0044] 3, the HMD 120 sets a three-dimensional uvw field of view coordinate system with the head of the user 5 wearing the HMD 120 as its center (origin). More specifically, the HMD 120 tilts the horizontal, vertical, and front-to-back directions (x-axis, y-axis, z-axis) that define the real coordinate system around each axis by the tilt of the HMD 120 around each axis in the real coordinate system, and sets these three directions as the pitch axis (u-axis), yaw axis (v-axis), and roll axis (w-axis) of the uvw field of view coordinate system in the HMD 120.
[0045] In a certain situation, when the user 5 wearing the HMD 120 stands upright and looks straight ahead, the processor 210 sets a uvw field of view coordinate system parallel to the real coordinate system in the HMD 120. In this case, the horizontal direction (x-axis), vertical direction (y-axis), and front-to-back direction (z-axis) in the real coordinate system coincide with the pitch axis (u-axis), yaw axis (v-axis), and roll axis (w-axis) of the uvw field of view coordinate system in the HMD 120.
[0046] After the uvw field of view coordinate system is set in the HMD 120, the HMD sensor 410 can detect the tilt of the HMD 120 in the set uvw field of view coordinate system based on the movement of the HMD 120. In this case, the HMD sensor 410 detects the pitch angle (θu), yaw angle (θv), and roll angle (θw) of the HMD 120 in the uvw field of view coordinate system as the tilt of the HMD 120. The pitch angle (θu) represents the tilt angle of the HMD 120 around the pitch axis in the uvw field of view coordinate system. The yaw angle (θv) represents the tilt angle of the HMD 120 around the yaw axis in the uvw field of view coordinate system. The roll angle (θw) represents the tilt angle of the HMD 120 around the roll axis in the uvw field of view coordinate system.
[0047] The HMD sensor 410 sets, in the HMD 120, a uvw field of view coordinate system for the HMD 120 after the HMD 120 has moved, based on the detected tilt of the HMD 120. The relationship between the HMD 120 and the uvw field of view coordinate system of the HMD 120 is always constant, regardless of the position and tilt of the HMD 120. When the position and tilt of the HMD 120 change, the position and tilt of the uvw field of view coordinate system of the HMD 120 in the real coordinate system change in conjunction with the change in the position and tilt.
[0048] In one aspect, the HMD sensor 410 may identify the position of the HMD 120 in real space as a relative position with respect to the HMD sensor 410 based on the light intensity of the infrared light acquired based on the output from the infrared sensor and the relative positional relationship between multiple points (e.g., the distance between each point, etc.). The processor 210 may determine the origin of the uvw field of view coordinate system of the HMD 120 in real space (actual coordinate system) based on the identified relative position.
[0049] [Virtual Space] The virtual space will be further described with reference to FIG. 4. FIG. 4 is a conceptual diagram illustrating one manner of expressing virtual space 11 according to an embodiment. Virtual space 11 has a spherical structure that covers the entire 360-degree area from center 12. To avoid complicating the explanation, FIG. 4 illustrates only the upper half of the celestial sphere in virtual space 11. Meshes are defined in virtual space 11. The position of each mesh is defined in advance as a coordinate value in an XYZ coordinate system, which is a global coordinate system defined in virtual space 11. Computer 200 associates each partial image that constitutes panoramic image 13 (still image, video, etc.) that can be deployed in virtual space 11 with a corresponding mesh in virtual space 11.
[0050] In a certain aspect, an XYZ coordinate system is defined in virtual space 11 with center 12 as the origin. The XYZ coordinate system is, for example, parallel to the real coordinate system. The horizontal direction, vertical direction (up-down direction), and front-to-back direction in the XYZ coordinate system are defined as the X-axis, Y-axis, and Z-axis, respectively. Therefore, the X-axis (horizontal direction) of the XYZ coordinate system is parallel to the x-axis of the real coordinate system, the Y-axis (vertical direction) of the XYZ coordinate system is parallel to the y-axis of the real coordinate system, and the Z-axis (front-to-back direction) of the XYZ coordinate system is parallel to the z-axis of the real coordinate system.
[0051] When the HMD 120 is started up, i.e., in the initial state of the HMD 120, the virtual camera 14 is placed at the center 12 of the virtual space 11. In a certain stage, the processor 210 displays an image captured by the virtual camera 14 on the monitor 130 of the HMD 120. The virtual camera 14 moves in the virtual space 11 in conjunction with the movement of the HMD 120 in the real space. This allows changes in the position and tilt of the HMD 120 in the real space to be reproduced in the virtual space 11 in the same manner.
[0052] A uvw field of view coordinate system is defined for the virtual camera 14, as in the case of the HMD 120. The uvw field of view coordinate system of the virtual camera 14 in the virtual space 11 is defined so as to be linked to the uvw field of view coordinate system of the HMD 120 in the real space (actual coordinate system). Therefore, when the tilt of the HMD 120 changes, the tilt of the virtual camera 14 also changes accordingly. The virtual camera 14 can also move in the virtual space 11 in conjunction with the movement in the real space of the user 5 wearing the HMD 120.
[0053] Processor 210 of computer 200 defines field of view 15 in virtual space 11 based on the position and tilt (reference line of sight 16) of virtual camera 14. Field of view 15 corresponds to the area of virtual space 11 that is visible to user 5 wearing HMD 120. In other words, the position of virtual camera 14 can be said to be the viewpoint of user 5 in virtual space 11.
[0054] The line of sight of the user 5 detected by the gaze sensor 140 is the direction in the viewpoint coordinate system when the user 5 views an object. The uvw field of view coordinate system of the HMD 120 is equal to the viewpoint coordinate system when the user 5 views the monitor 130. The uvw field of view coordinate system of the virtual camera 14 is linked to the uvw field of view coordinate system of the HMD 120. Therefore, in a certain aspect, the HMD system 100 can regard the line of sight of the user 5 detected by the gaze sensor 140 as the line of sight of the user 5 in the uvw field of view coordinate system of the virtual camera 14.
[0055] [User's gaze] Determining the line of sight of user 5 will be described with reference to Fig. 5. Fig. 5 is a diagram showing the head of user 5 wearing HMD 120 according to an embodiment from above.
[0056] In one aspect, the gaze sensor 140 detects the gaze of each of the right and left eyes of the user 5. In one aspect, when the user 5 is looking at something close, the gaze sensor 140 detects gazes R1 and L1. In another aspect, when the user 5 is looking at something far away, the gaze sensor 140 detects gazes R2 and L2. In this case, the angle formed by the gazes R2 and L2 with respect to the roll axis w is smaller than the angle formed by the gazes R1 and L1 with respect to the roll axis w. The gaze sensor 140 transmits the detection result to the computer 200.
[0057] When the computer 200 receives the detection values of the lines of sight R1 and L1 from the gaze sensor 140 as the gaze detection result, it identifies the gaze point N1, which is the intersection of the lines of sight R1 and L1, based on the detection values. On the other hand, when the computer 200 receives the detection values of the lines of sight R2 and L2 from the gaze sensor 140, it identifies the intersection of the lines of sight R2 and L2 as the gaze point. The computer 200 identifies the gaze N0 of the user 5 based on the position of the identified gaze point N1. For example, the computer 200 detects the direction of the line passing through the midpoint of the line connecting the right eye R and left eye L of the user 5 and the gaze point N1 as the gaze N0. The gaze N0 is the direction in which the user 5 actually looks with both eyes. The gaze N0 corresponds to the direction in which the user 5 actually looks with respect to the field of view 15.
[0058] In another aspect, the HMD system 100 may include a television broadcast receiving tuner. With this configuration, the HMD system 100 can display television programs in the virtual space 11.
[0059] In yet another aspect, the HMD system 100 may be provided with a communication circuit for connecting to the Internet or a telephone function for connecting to a telephone line.
[0060] [Visibility area] The field of view 15 will be described with reference to Figures 6 and 7. Figure 6 is a diagram illustrating a YZ cross section of the field of view 15 in virtual space 11 as viewed from the X direction. Figure 7 is a diagram illustrating an XZ cross section of the field of view 15 in virtual space 11 as viewed from the Y direction.
[0061] 6, the field of view 15 in the YZ cross section includes an area 18. The area 18 is defined by the position of the virtual camera 14, the reference line of sight 16, and the YZ cross section of the virtual space 11. The processor 210 defines the range including the polar angle α centered on the reference line of sight 16 in the virtual space as the area 18.
[0062] 7, the field of view 15 in the XZ cross section includes an area 19. The area 19 is defined by the position of the virtual camera 14, the reference line of sight 16, and the XZ cross section of the virtual space 11. The processor 210 defines a range including an azimuth angle β centered on the reference line of sight 16 in the virtual space 11 as the area 19. The polar angles α and β are determined according to the position of the virtual camera 14 and the tilt (orientation) of the virtual camera 14.
[0063] In one aspect, the HMD system 100 provides the user 5 with a field of view in the virtual space 11 by displaying a field of view image 17 on the monitor 130 based on a signal from the computer 200. The field of view image 17 is an image corresponding to a portion of the panoramic image 13 that corresponds to the field of view area 15. When the user 5 moves the HMD 120 worn on his / her head, the virtual camera 14 also moves in conjunction with the movement. As a result, the position of the field of view 15 in the virtual space 11 changes. As a result, the field of view image 17 displayed on the monitor 130 is updated to an image of the panoramic image 13 that is superimposed on the field of view 15 in the direction in which the user 5 is facing in the virtual space 11. The user 5 can view a desired direction in the virtual space 11.
[0064] In this way, the tilt of virtual camera 14 corresponds to the line of sight (reference line of sight 16) of user 5 in virtual space 11, and the position at which virtual camera 14 is placed corresponds to the viewpoint of user 5 in virtual space 11. Therefore, by changing the position or tilt of virtual camera 14, the image displayed on monitor 130 is updated and the field of view of user 5 is moved.
[0065] While wearing the HMD 120, the user 5 can view only the panoramic image 13 unfolded in the virtual space 11 without viewing the real world. Therefore, the HMD system 100 can give the user 5 a highly immersive feeling in the virtual space 11.
[0066] In one aspect, processor 210 may move virtual camera 14 in virtual space 11 in conjunction with movement in real space of user 5 wearing HMD 120. In this case, processor 210 identifies the image area (field of view 15) to be projected onto monitor 130 of HMD 120 based on the position and tilt of virtual camera 14 in virtual space 11.
[0067] In one aspect, virtual camera 14 may include two virtual cameras, i.e., a virtual camera for providing an image for the right eye and a virtual camera for providing an image for the left eye. An appropriate parallax is set for the two virtual cameras so that user 5 can recognize three-dimensional virtual space 11. In another aspect, virtual camera 14 may be implemented using a single virtual camera. In this case, an image for the right eye and an image for the left eye may be generated from an image acquired by the single virtual camera. In this embodiment, the technical concept of the present disclosure is illustrated assuming that virtual camera 14 includes two virtual cameras and is configured such that a roll axis (w) generated by combining the roll axes of the two virtual cameras is adapted to the roll axis (w) of HMD 120.
[0068] [controller] An example of the controller 300 will be described with reference to Fig. 8. Fig. 8 is a diagram illustrating a schematic configuration of the controller 300 according to an embodiment.
[0069] As shown in FIG. 8, in one aspect, the controller 300 may include a right controller 300R and a left controller (not shown). The right controller 300R is operated with the right hand of the user 5. The left controller is operated with the left hand of the user 5. In one aspect, the right controller 300R and the left controller are configured symmetrically as separate devices. Therefore, the user 5 can freely move both the right hand holding the right controller 300R and the left hand holding the left controller. In another aspect, the controller 300 may be an integrated controller that can be operated with both hands. The right controller 300R will be described below.
[0070] The right controller 300R includes a grip 310, a frame 320, and a top surface 330. The grip 310 is configured to be held by the right hand of the user 5. For example, the grip 310 can be held by the palm and three fingers (middle finger, ring finger, and little finger) of the right hand of the user 5.
[0071] Grip 310 includes buttons 340 and 350 and a motion sensor 420. Button 340 is located on the side of grip 310 and is operated by the middle finger of the right hand. Button 350 is located on the front of grip 310 and is operated by the index finger of the right hand. In some aspects, buttons 340 and 350 are configured as trigger-type buttons. Motion sensor 420 is built into the housing of grip 310. If the movements of user 5 can be detected from around user 5 by a camera or other device, grip 310 does not need to include motion sensor 420.
[0072] The frame 320 includes multiple infrared LEDs 360 arranged along its circumference. The infrared LEDs 360 emit infrared light in accordance with the progress of a program that uses the controller 300 while the program is being executed. The infrared light emitted from the infrared LEDs 360 can be used to detect the positions and attitudes (tilt, direction) of the right controller 300R and the left controller. In the example shown in FIG. 8, the infrared LEDs 360 are arranged in two rows, but the number of rows is not limited to that shown in FIG. 8. An arrangement in one row or three or more rows may also be used.
[0073] The top surface 330 includes buttons 370, 380 and an analog stick 390. The buttons 370, 380 are configured as push buttons. The buttons 370, 380 are operated by the thumb of the right hand of the user 5. In a certain situation, the analog stick 390 is operated in any direction within 360 degrees from the initial position (neutral position). Such operations include, for example, operations for moving an object placed in the virtual space 11.
[0074] In one aspect, the right controller 300R and the left controller include batteries for driving the infrared LED 360 and other components. Batteries include, but are not limited to, rechargeable, button-type, and dry cell batteries. In another aspect, the right controller 300R and the left controller can be connected to, for example, a USB interface of the computer 200. In this case, the right controller 300R and the left controller do not require batteries.
[0075] 8, for example, the yaw, roll, and pitch directions are defined for the right hand of user 5. When user 5 extends his thumb and index finger, the direction in which the thumb extends is defined as the yaw direction, the direction in which the index finger extends is defined as the roll direction, and the direction perpendicular to the plane defined by the yaw direction axis and the roll direction axis is defined as the pitch direction.
[0076] [Server hardware configuration] Server 600 according to this embodiment will be described with reference to Fig. 9. Fig. 9 is a block diagram showing an example of a hardware configuration of server 600 according to an embodiment. Server 600 includes, as main components, a processor 610, a memory 620, a storage 630, an input / output interface 640, and a communication interface 650. Each component is connected to a bus 660.
[0077] The processor 610 executes a series of instructions included in a program stored in the memory 620 or the storage 630 based on a signal provided to the server 600 or based on the establishment of a predetermined condition. In one aspect, the processor 610 is implemented as a CPU, a GPU, an MPU, an FPGA, or other device.
[0078] The memory 620 temporarily stores programs and data. The programs are loaded from, for example, the storage 630. The data includes data input to the server 600 and data generated by the processor 610. In one aspect, the memory 620 is implemented as a RAM or other volatile memory.
[0079] The storage 630 permanently stores programs and data. The storage 630 is realized, for example, as a ROM, a hard disk drive, a flash memory, or other non-volatile storage device. The programs stored in the storage 630 may include a program for providing a virtual space in the HMD system 100, a simulation program, a game program, a user authentication program, and a program for realizing communication with the computer 200. The data stored in the storage 630 may include data and objects for defining the virtual space.
[0080] In another aspect, storage 630 may be realized as a removable storage device such as a memory card. In yet another aspect, a configuration may be used in which programs and data stored in an external storage device are used instead of storage 630 built into server 600. With such a configuration, for example, in a situation where multiple HMD systems 100 are used, such as an amusement facility, it becomes possible to collectively update programs and data.
[0081] The input / output interface 640 communicates signals with input / output devices. In one aspect, the input / output interface 640 is implemented using a terminal such as a USB, DVI, HDMI, etc. The input / output interface 640 is not limited to the above.
[0082] The communication interface 650 is connected to the network 2 and communicates with the computer 200 connected to the network 2. In one aspect, the communication interface 650 is realized as, for example, a wired communication interface such as a LAN, or a wireless communication interface such as WiFi, Bluetooth, NFC, etc. The communication interface 650 is not limited to the above.
[0083] In one aspect, the processor 610 accesses the storage 630, loads one or more programs stored in the storage 630 into the memory 620, and executes a series of instructions included in the programs. The one or more programs may include an operating system for the server 600, an application program for providing a virtual space, game software executable in the virtual space, etc. The processor 610 may send a signal for providing the virtual space to the computer 200 via the input / output interface 640.
[0084] [HMD control device] The control device of the HMD 120 will be described with reference to Fig. 10. In one embodiment, the control device is realized by a computer 200 having a known configuration. Fig. 10 is a block diagram showing the modular configuration of the computer 200 according to one embodiment.
[0085] 10 , the computer 200 includes a control module 510, a rendering module 520, a memory module 530, and a communication control module 540. In one aspect, the control module 510 and the rendering module 520 are implemented by the processor 210. In another aspect, multiple processors 210 may operate as the control module 510 and the rendering module 520. The memory module 530 is implemented by the memory 220 or the storage 230. The communication control module 540 is implemented by the communication interface 250.
[0086] The control module 510 controls the virtual space 11 provided to the user 5. The control module 510 defines the virtual space 11 in the HMD system 100 using virtual space data representing the virtual space 11. The virtual space data is stored in, for example, the memory module 530. The control module 510 may generate the virtual space data or obtain the virtual space data from the server 600 or the like.
[0087] The control module 510 places the object in the virtual space 11 using object data representing the object. The object data is stored in, for example, the memory module 530. The control module 510 may generate the object data or obtain the object data from the server 600 or the like. The object may include, for example, an avatar object representing the user 5, a character object, an operation object such as a virtual hand operated by the controller 300, landscapes including forests, mountains, and the like, cityscapes, animals, and the like that are placed according to the progress of the game story.
[0088] Control module 510 places an avatar object of user 5 of another computer 200 connected via network 2 in virtual space 11. In one aspect, control module 510 places an avatar object of user 5 in virtual space 11. In another aspect, control module 510 places an avatar object that resembles user 5 in virtual space 11 based on an image including user 5. In another aspect, control module 510 places an avatar object that has been selected by user 5 from multiple types of avatar objects (e.g., objects that resemble animals or deformed human objects) in virtual space 11.
[0089] The control module 510 determines the tilt of the HMD 120 based on the output of the HMD sensor 410. In another aspect, the control module 510 determines the tilt of the HMD 120 based on the output of the sensor 190 functioning as a motion sensor. The control module 510 detects the organs (e.g., mouth, eyes, eyebrows) that make up the face of the user 5 from the images of the face of the user 5 generated by the first camera 150 and the second camera 160. The control module 510 detects the movement (shape) of each detected organ.
[0090] The control module 510 detects the line of sight of the user 5 in the virtual space 11 based on a signal from the gaze sensor 140. The control module 510 detects a viewpoint position (coordinate value in the XYZ coordinate system) where the detected line of sight of the user 5 intersects with the celestial sphere of the virtual space 11. More specifically, the control module 510 detects the viewpoint position based on the line of sight of the user 5 defined in the uvw coordinate system and the position and inclination of the virtual camera 14. The control module 510 transmits the detected viewpoint position to the server 600. In another aspect, the control module 510 may be configured to transmit gaze information representing the line of sight of the user 5 to the server 600. In such a case, the server 600 may calculate the viewpoint position based on the gaze information received.
[0091] The control module 510 reflects the movement of the HMD 120 detected by the HMD sensor 410 in the avatar object. For example, the control module 510 detects that the HMD 120 has been tilted and tilts and positions the avatar object. The control module 510 reflects the detected movement of the facial organs in the face of the avatar object placed in the virtual space 11. The control module 510 receives gaze information of another user 5 from the server 600 and reflects the information in the gaze of the avatar object of the other user 5. In a certain aspect, the control module 510 reflects the movement of the controller 300 in the avatar object or the operation object. In this case, the controller 300 includes a motion sensor, an acceleration sensor, or a plurality of light-emitting elements (e.g., infrared LEDs) for detecting the movement of the controller 300.
[0092] The control module 510 places a control object in the virtual space 11 for receiving operations by the user 5 in the virtual space 11. The user 5 operates the control object to, for example, operate an object placed in the virtual space 11. In one aspect, the control object may include, for example, a hand object that is a virtual hand corresponding to the hand of the user 5. In one aspect, the control module 510 moves the hand object in the virtual space 11 in conjunction with the movement of the hand of the user 5 in the real space based on the output of the motion sensor 420. In one aspect, the control object may correspond to the hand portion of an avatar object.
[0093] The control module 510 detects a collision when each of the objects placed in the virtual space 11 collides with another object. The control module 510 can, for example, detect the timing when the collision area of one object comes into contact with the collision area of another object, and when this detection is made, perform a predetermined process. The control module 510 can detect the timing when two objects are no longer in contact with each other, and when this detection is made, perform a predetermined process. The control module 510 can detect when two objects are in contact with each other. For example, when a control object comes into contact with another object, the control module 510 detects this contact and performs a predetermined process.
[0094] In one aspect, the control module 510 controls image display on the monitor 130 of the HMD 120. For example, the control module 510 places a virtual camera 14 in the virtual space 11. The control module 510 controls the position of the virtual camera 14 in the virtual space 11 and the tilt (orientation) of the virtual camera 14. The control module 510 defines a field of view 15 according to the tilt of the head of the user 5 wearing the HMD 120 and the position of the virtual camera 14. The rendering module 520 generates a field of view image 17 to be displayed on the monitor 130 based on the determined field of view 15. The field of view image 17 generated by the rendering module 520 is output to the HMD 120 by the communication control module 540.
[0095] When the control module 510 detects an utterance made by the user 5 using the microphone 170 from the HMD 120, it identifies the computer 200 to which audio data corresponding to the utterance is to be sent. The audio data is sent to the computer 200 identified by the control module 510. When the control module 510 receives audio data from another user's computer 200 via the network 2, it outputs audio (utterance) corresponding to the audio data from the speaker 180.
[0096] The memory module 530 stores data used by the computer 200 to provide the virtual space 11 to the user 5. In one aspect, the memory module 530 stores space information, object information, and user information.
[0097] The space information includes one or more templates defined to provide the virtual space 11 .
[0098] The object information includes a plurality of panoramic images 13 that constitute the virtual space 11, and object data for placing objects in the virtual space 11. The panoramic images 13 may include still images and moving images. The panoramic images 13 may include images of unreal spaces and images of real spaces. Examples of images of unreal spaces include images generated by computer graphics.
[0099] The user information holds a user ID that identifies the user 5. The user ID may be, for example, an IP (Internet Protocol) address or a MAC (Media Access Control) address set in the computer 200 used by the user. In another aspect, the user ID may be set by the user. The user information includes a program for causing the computer 200 to function as a control device for the HMD system 100.
[0100] The data and programs stored in memory module 530 are input by user 5 of HMD 120. Alternatively, processor 210 downloads programs or data from a computer (e.g., server 600) operated by a business that provides the content, and stores the downloaded programs or data in memory module 530.
[0101] The communication control module 540 can communicate with the server 600 and other information communication devices via the network 2.
[0102] In one aspect, the control module 510 and the rendering module 520 may be realized using, for example, Unity (registered trademark) provided by Unity Technologies, Inc. In another aspect, the control module 510 and the rendering module 520 may be realized as a combination of circuit elements that realize each process.
[0103] Processing in computer 200 is realized by hardware and software executed by processor 210. Such software may be pre-stored on a hard disk or other memory module 530. Software may be stored on a CD-ROM or other computer-readable nonvolatile data recording medium and distributed as a program product. Alternatively, the software may be provided as a downloadable program product by an information provider connected to the Internet or other network. Such software is read from the data recording medium by an optical disk drive or other data reading device, or downloaded from server 600 or other computers via communication control module 540, and then temporarily stored in a storage module. The software is read from the storage module by processor 210 and stored in RAM in the form of an executable program. Processor 210 executes the program.
[0104] [HMD system control structure] The control structure of the HMD set 110 will be described with reference to Fig. 11. Fig. 11 is a sequence chart showing part of the processing executed in the HMD set 110 according to an embodiment.
[0105] As shown in FIG. 11, in step S1110, the processor 210 of the computer 200, acting as the control module 510, identifies virtual space data and defines the virtual space 11.
[0106] In step S1120, processor 210 initializes virtual camera 14. For example, processor 210 places virtual camera 14 at a predefined center 12 in virtual space 11 in a work area of memory, and directs the line of sight of virtual camera 14 in the direction in which user 5 is facing.
[0107] In step S1130, processor 210, functioning as rendering module 520, generates field of view image data for displaying an initial field of view image. The generated field of view image data is output to HMD 120 by communication control module 540.
[0108] In step S1132, the monitor 130 of the HMD 120 displays a field of view image based on the field of view image data received from the computer 200. The user 5 wearing the HMD 120 can recognize the virtual space 11 by viewing the field of view image.
[0109] In step S1134, the HMD sensor 410 detects the position and tilt of the HMD 120 based on the multiple infrared lights emitted from the HMD 120. The detection result is output to the computer 200 as motion detection data.
[0110] In step S1140, the processor 210 identifies the viewing direction of the user 5 wearing the HMD 120 based on the position and tilt included in the motion detection data of the HMD 120.
[0111] In step S1150, processor 210 executes the application program and places objects in virtual space 11 based on instructions included in the application program.
[0112] In step S1160, controller 300 detects an operation by user 5 based on a signal output from motion sensor 420, and outputs detection data representing the detected operation to computer 200. In another aspect, the operation of controller 300 by user 5 may be detected based on an image from a camera arranged around user 5.
[0113] In step S1170, processor 210 detects an operation of controller 300 by user 5 based on the detection data acquired from controller 300.
[0114] In step S1180, the processor 210 generates field of view image data based on the operation of the controller 300 by the user 5. The generated field of view image data is output to the HMD 120 by the communication control module 540.
[0115] In step S1190, HMD 120 updates the field of view image based on the received field of view image data, and displays the updated field of view image on monitor 130.
[0116] [Avatar Object] Avatar objects according to this embodiment will be described with reference to FIGS. 12(A) and 12(B). Hereinafter, figures will be used to explain avatar objects of each user 5 of HMD sets 110A and 110B. Hereinafter, the user of HMD set 110A will be referred to as user 5A, the user of HMD set 110B as user 5B, the user of HMD set 110C as user 5C, and the user of HMD set 110D as user 5D. A is added to the reference symbol of each component related to HMD set 110A, B is added to the reference symbol of each component related to HMD set 110B, C is added to the reference symbol of each component related to HMD set 110C, and D is added to the reference symbol of each component related to HMD set 110D. For example, HMD 120A is included in HMD set 110A.
[0117] FIG. 12(A) is a schematic diagram illustrating a situation in which each HMD 120 provides a virtual space 11 to a user 5 in a network 2. Computers 200A to 200D provide virtual spaces 11A to 11D to users 5A to 5D, respectively, via HMDs 120A to 120D. In the example illustrated in FIG. 12(A), virtual space 11A and virtual space 11B are configured using the same data. In other words, computer 200A and computer 200B share the same virtual space. In virtual space 11A and virtual space 11B, there exist an avatar object 6A of user 5A and an avatar object 6B of user 5B. Although avatar object 6A in virtual space 11A and avatar object 6B in virtual space 11B are shown wearing HMDs 120, this is for ease of explanation; in reality, these objects do not wear HMDs 120.
[0118] In one aspect, the processor 210A may position a virtual camera 14A that captures a field of view image 17A of the user 5A at the eye position of the avatar object 6A.
[0119] 12(B) is a diagram showing a field of view image 17A of user 5A in FIG. 12(A). Field of view image 17A is an image displayed on monitor 130A of HMD 120A. This field of view image 17A is an image generated by virtual camera 14A. An avatar object 6B of user 5B is displayed in field of view image 17A. Although not specifically shown, avatar object 6A of user 5A is also displayed in the field of view image of user 5B.
[0120] 12(B), user 5A can communicate with user 5B through the virtual space 11A. More specifically, the voice of user 5A acquired by microphone 170A is transmitted to HMD 120B of user 5B via server 600 and output from speaker 180B provided in HMD 120B. The voice of user 5B is transmitted to HMD 120A of user 5A via server 600 and output from speaker 180A provided in HMD 120A.
[0121] The actions of user 5B (the actions of HMD 120B and controller 300B) are reflected in avatar object 6B placed in virtual space 11A by processor 210A, allowing user 5A to recognize the actions of user 5B through avatar object 6B.
[0122] Fig. 13 is a sequence chart showing a part of the processing executed in the HMD system 100 according to the present embodiment. Although the HMD set 110D is not shown in Fig. 13, the HMD set 110D operates in the same manner as the HMD sets 110A, 110B, and 110C. In the following description, A will be added to the reference symbol of each component related to the HMD set 110A, B will be added to the reference symbol of each component related to the HMD set 110B, C will be added to the reference symbol of each component related to the HMD set 110C, and D will be added to the reference symbol of each component related to the HMD set 110D.
[0123] In step S1310A, the processor 210A in the HMD set 110A acquires avatar information for determining the movement of the avatar object 6A in the virtual space 11A. This avatar information includes information about the avatar, such as movement information, face tracking data, and audio data. The movement information includes information indicating temporal changes in the position and tilt of the HMD 120A and information indicating hand movements of the user 5A detected by the motion sensor 420A or the like. The face tracking data includes data identifying the position and size of each facial feature of the user 5A. The face tracking data includes data indicating the movement of each organ constituting the user 5A's face and gaze data. The audio data includes data indicating the voice of the user 5A acquired by the microphone 170A of the HMD 120A. The avatar information may include information identifying the avatar object 6A or the user 5A associated with the avatar object 6A, information identifying the virtual space 11A in which the avatar object 6A exists, and the like. The information identifying the avatar object 6A or the user 5A includes a user ID. The information for identifying the virtual space 11A in which the avatar object 6A exists may include a room ID. The processor 210A transmits the avatar information acquired as described above to the server 600 via the network 2.
[0124] In step S1310B, similar to the processing in step S1310A, processor 210B in HMD set 110B obtains avatar information for determining the movement of avatar object 6B in virtual space 11B and transmits it to server 600. Similarly, in step S1310C, processor 210C in HMD set 110C obtains avatar information for determining the movement of avatar object 6C in virtual space 11C and transmits it to server 600.
[0125] In step S1320, the server 600 temporarily stores the player information received from each of the HMD sets 110A, 110B, and 110C. The server 600 integrates the avatar information of all users (users 5A to 5C in this example) associated with the common virtual space 11 based on the user ID, room ID, and the like included in each piece of avatar information. The server 600 then transmits the integrated avatar information to all users associated with the virtual space 11 at a predetermined timing. This executes a synchronization process. This synchronization process allows the HMD sets 110A, 110B, and 110C to share each other's avatar information at approximately the same time.
[0126] Subsequently, each of the HMD sets 110A to 110C executes the processes of steps S1330A to S1330C based on the avatar information transmitted to each of the HMD sets 110A to 110C from the server 600. The process of step S1330A corresponds to the process of step S1180 in FIG.
[0127] In step S1330A, the processor 210A in the HMD set 110A updates the information on the avatar objects 6B and 6C of the other users 5B and 5C in the virtual space 11A. Specifically, the processor 210A updates the position, orientation, etc. of the avatar object 6B in the virtual space 11A based on the movement information included in the avatar information transmitted from the HMD set 110B. For example, the processor 210A updates the information (position, orientation, etc.) of the avatar object 6B included in the object information stored in the memory module 530. Similarly, the processor 210A updates the information (position, orientation, etc.) of the avatar object 6C in the virtual space 11A based on the movement information included in the avatar information transmitted from the HMD set 110C.
[0128] In step S1330B, processor 210B in HMD set 110B updates information on avatar objects 6A and 6C of users 5A and 5C in virtual space 11B, similar to the processing in step S1330A. Similarly, in step S1330C, processor 210C in HMD set 110C updates information on avatar objects 6A and 6B of users 5A and 5B in virtual space 11C.
[0129] [Module detailed configuration] The modular configuration of computer 200 will be described in detail with reference to Fig. 14. Fig. 14 is a block diagram showing the detailed modular configuration of computer 200 according to an embodiment.
[0130] 14, the control module 510 includes a virtual camera control module 1421, a field of view determination module 1422, a reference gaze identification module 1423, a facial organ detection module 1424, a movement detection module 1425, a virtual space definition module 1426, a virtual object generation module 1427, an operation object control module 1428, and an avatar control module 1429. The rendering module 520 includes a field of view image generation module 1438. The memory module 530 holds space information 1431, object information 1432, user information 1433, and face information 1434.
[0131] The virtual camera control module 1421 places the virtual camera 14 in the virtual space 11. The virtual camera control module 1421 controls the placement position and orientation (tilt) of the virtual camera 14 in the virtual space 11. The field of view area determination module 1422 defines the field of view 15 according to the orientation of the head of the user wearing the HMD 120 and the placement position of the virtual camera 14. The field of view image generation module 1438 generates the field of view image 17 to be displayed on the monitor 130 based on the determined field of view 15.
[0132] The reference gaze identification module 1423 identifies the gaze of the user 5 based on a signal from the gaze sensor 140. The face organ detection module 1424 detects the organs (e.g., mouth, eyes, eyebrows) that make up the face of the user 5 from the images of the user's 5's face generated by the first camera 150 and the second camera 160. The movement detection module 1425 detects the movement (shape) of each organ detected by the face organ detection module 1424.
[0133] The virtual space definition module 1426 defines the virtual space 11 in the HMD system 100 by generating virtual space data that represents the virtual space 11 .
[0134] The virtual object generation module 1427 generates objects to be placed in the virtual space 11. The objects may include, for example, landscapes including forests, mountains, and the like, animals, and the like that are placed according to the progress of the game story.
[0135] The operation object control module 1428 places an operation object in the virtual space 11 for receiving an operation by the user in the virtual space 11. The user operates the operation object to, for example, operate an object placed in the virtual space 11. In one aspect, the operation object may include, for example, a hand object corresponding to the hand of the user wearing the HMD 120. In another aspect, the operation object may correspond to the hand portion of an avatar object described below.
[0136] Avatar control module 1429 generates data for placing avatar objects of users of other computers 200 connected via network 2 in virtual space 11. In one aspect, avatar control module 1429 generates data for placing avatar objects of user 5 in virtual space 11. In one aspect, avatar control module 1429 generates an avatar object that resembles user 5 based on an image including user 5. In another aspect, avatar control module 1429 generates data for placing an avatar object selected by user 5 from multiple types of avatar objects (e.g., objects that resemble animals or deformed human objects) in virtual space 11.
[0137] The avatar control module 1429 reflects the movement of the HMD 120 detected by the HMD sensor 410 in the avatar object. For example, the avatar control module 1429 detects tilting of the HMD 120 and generates data for tilting and positioning the avatar object. In one aspect, the avatar control module 1429 reflects the movement of the controller 300 in the avatar object. In this case, the controller 300 includes a motion sensor, an acceleration sensor, or a plurality of light-emitting elements (e.g., infrared LEDs) for detecting the movement of the controller 300. The avatar control module 1429 reflects the movement of the facial organs detected by the movement detection module 1425 in the face of the avatar object placed in the virtual space 11. In other words, the avatar control module 1429 reflects the facial movement of the user 5A in the avatar object.
[0138] The control module 510 detects a collision when each of the objects placed in the virtual space 11 collides with another object. The control module 510 can detect, for example, the timing when one object touches another object, and performs a predetermined process when this detection is made. The control module 510 can detect the timing when two objects no longer touch each other, and performs a predetermined process when this detection is made. The control module 510 can detect when two objects are in a touching state. Specifically, when a controllable object touches another object, the controllable object control module 1428 detects this contact between the controllable object and the other object, and performs a predetermined process.
[0139] The memory module 530 stores data used by the computer 200 to provide the virtual space 11 to the user 5. In one aspect, the memory module 530 stores space information 1431, object information 1432, user information 1433, and face information 1434.
[0140] The space information 1431 holds one or more templates defined to provide the virtual space 11 .
[0141] The object information 1432 holds content to be played in the virtual space 11, objects used in the content, and information (e.g., location information) for arranging the objects in the virtual space 11. The content may include, for example, games, content depicting scenery similar to that of the real world, etc.
[0142] The user information 1433 holds a program for causing the computer 200 to function as a control device for the HMD system 100, an application program that uses each content held in the object information 1432, and the like.
[0143] The face information 1434 holds pre-stored templates used by the face organ detection module 1424 to detect the facial organs of the user 5. In one aspect, the face information 1434 holds a mouth template 1435, an eye template 1436, and an eyebrow template 1437. Each template may be an image corresponding to an organ that makes up the face. For example, the mouth template 1435 may be an image of a mouth. Each template may include multiple images.
[0144] [360-degree video shooting] Next, capturing a 360-degree video according to an embodiment will be described. FIG. 15 is a diagram illustrating an outline of the configuration of a 360-degree camera according to an embodiment. In an embodiment, external device 700 shown in FIG. 1 includes 360-degree camera 1539A, 360-degree camera 1539B, and 360-degree camera 1539C. Each of 360-degree cameras 1539A, 1539B, and 1539C is configured to be able to communicate with server 600 and computer 200 of HMD set 110 via network 2. Hereinafter, 360-degree cameras 1539A, 1539B, and 1539C will be collectively referred to as 360-degree camera 1539. The number of 360-degree cameras 1539 is not limited to three, and may be two, four, or more. 360-degree camera 1539 captures omnidirectional video (360-degree video), which is an image in all directions from the installation position in real space.
[0145] In this embodiment, a 360-degree camera 1539 is installed in a room in real space, and the state of the room is captured. FIG. 16 is a plan view showing an example of the layout of a room in which the 360-degree camera shown in FIG. 15 is installed. A shared house 1641 shown in FIG. 16 is a home in real space where multiple people live together. The people living together may be only men, only women, or a mix of men and women. The communal life in the shared house 1641 may be a scripted drama, or a free-spirited life without a script. A user 5 wears an HMD 120 on their head and views the state of the shared house 1641 captured by the 360-degree camera 1539, as will be described in detail later.
[0146] Shared house 1641 has room 1642, room 1643, room 1644, room 1645, and hallway 1646. Door 1647 is provided between room 1642 and room 1643, and people living together can open door 1647 to go back and forth between room 1642 and room 1643. Door 1648 is provided between room 1642 and hallway 1646, and people living together can open door 1648 to go back and forth between room 1642 and hallway 1646. Door 1649 is provided between room 1643 and hallway 1646, and people living together can open door 1649 to go back and forth between room 1643 and hallway 1646. Door 1651 is provided between room 1644 and hallway 1646, and people living together can open door 1651 to go back and forth between room 1644 and hallway 1646. A door 1652 is provided between the room 1645 and the corridor 1646, and people living together can open the door 1652 to move between the room 1645 and the corridor 1646.
[0147] The 360-degree camera 1539 may be a camera capable of capturing a celestial sphere using two ultra-wide-angle lenses, or may be a camera capable of capturing a hemisphere using one ultra-wide-angle lens. The 360-degree camera 1539 captures 360-degree video in all directions at its installed location. Note that the 360-degree camera 1539 may be configured, for example, so that one camera is provided on each side of a regular hexahedron to capture images in all directions, and the videos captured by the total of six cameras provided on each side are combined to obtain the 360-degree video. The 360-degree camera 1539 may also be a camera that captures three-dimensional 360-degree video that allows stereoscopic viewing using parallax.
[0148] A 360-degree camera 1539A is installed in room 1642, and images of the interior of room 1642 are taken by 360-degree camera 1539A. A 360-degree camera 1539B is installed in room 1643, and images of the interior of room 1643 are taken by 360-degree camera 1539B. A 360-degree camera 1539C is installed in room 1644, and images of the interior of room 1644 are taken by 360-degree camera 1539C. The 360-degree video taken by 360-degree camera 1539 is transmitted to computer 200 via network 2. A video taken by one of 360-degree cameras 1539A, 1539B, and 1539C is selected and displayed on HMD 120.
[0149] In this embodiment, a display object is placed in virtual space 11, and a 360-degree video captured by 360-degree camera 1539 is displayed on this display object, whereby rendering module 520 generates field of view image data as described above, and displays the 360-degree video on monitor 130 of HMD 120. In one embodiment, the 360-degree video captured by 360-degree camera 1539 may be displayed on monitor 130 by being superimposed on field of view image data in the field of view coordinate system in step S1180 of FIG. 11. Also, in one embodiment, the 360-degree video captured by 360-degree camera 1539 may be displayed on monitor 130 by being used as field of view image data output in step S1180 of FIG.
[0150] Virtual camera 14 moves in virtual space 11 in conjunction with the movement of HMD 120 in real space. As a result, changes in the position and tilt of HMD 120 in real space are reproduced in virtual space 11 as changes in the movement of virtual camera 14. The 360-degree video displayed on the display object in virtual space 11 is used as an image constituting panoramic image 13, and the area of the 360-degree video captured by virtual camera 14 moves in conjunction with the movement of HMD 120 in real space.
[0151] [View 360-degree video] Next, the display of 360-degree video on the monitor 130 of the HMD 120 will be described. When the user 5 uses the HMD set 110 to watch a 360-degree video captured of a shared house 1641, the user 5 may want to focus on the behavior of a target moving object (e.g., a favorite girl) among the moving objects (e.g., people) in the shared house 1641 and keep watching the target moving object. In this case, since the 360-degree camera 1539 captures 360-degree video for each room, when the target moving object moves from one room to another, the user 5 must switch the 360-degree camera 1539. The user 5 may be unsure which of the 360-degree cameras 1539 to switch to, or may find the switching operation troublesome. Therefore, in one embodiment, the target moving object is treated as a tracked object, and the 360-degree camera 1539 viewed by the user 5 is automatically switched, improving the user's convenience when watching the 360-degree video. 17 is a flowchart showing part of the processing executed in an HMD set according to an embodiment, which is related to display control of a 360-degree video captured by a 360-degree camera. In step S1753, initial settings are performed.
[0152] At the start of processing, the computer 200 of the HMD set 110 selects one of the 360-degree cameras 1539, and displays the 360-degree video captured by the selected 360-degree camera 1539 on the display object in the virtual space 11. In the initial setting in step S1753, after the start of processing, a setting is made as to which 360-degree camera 1539 the 360-degree video to be initially displayed will have been captured. This setting operates to display the 360-degree video captured by the 360-degree camera 1539 registered as the camera to be initially displayed. The camera to be initially displayed may be registered in advance in the computer 200, or may be registered by the user 5. The user 5 can register the camera by operating the controller 300 while referring to the display on the monitor 130. This registration of the camera to be initially displayed may be performed at any time.
[0153] Furthermore, in the initial setting of step S1753, an automatic switching mode can be set. The automatic switching mode is a mode in which the camera displaying the 360-degree video among 360-degree cameras 1539 is automatically switched in accordance with the movement of the tracked object in the room. Whether or not to set the automatic switching mode can be registered by user 5 operating controller 300 while referring to the display on monitor 130.
[0154] Furthermore, in the initial setting of step S1753, a tracking target can be set. When a 360-degree video of a person is being displayed, the person may be set as the tracking target. When a 360-degree video of an animal such as a pet dog or cat is being displayed, the animal may be set as the tracking target. When a person is the tracking target, the tracking target may be set to track a specific person, a man, or a woman. When an animal is the tracking target, the tracking target may be set to track a specific animal, or a certain type of animal. In one embodiment, the tracking target does not need to be set in the initial setting of step S1753.
[0155] In step S1754 following step S1753, it is determined whether or not automatic switching mode is set. If automatic switching mode is not set (step S1754: No), the process proceeds to step S1755. In step S1755, automatic switching of the camera among 360-degree cameras 1539 that displays the 360-degree video is not performed, and user 5 operates controller 300 while referring to the display on monitor 130 to switch the camera among 360-degree cameras 1539 that displays the 360-degree video. For example, user 5 operates controller 300 to input the room that user 5 wants to view from among rooms 1642, 1643, and 1644 shown in FIG. 16 . Computer 200 accepts this input from user 5, selects a camera among 360-degree cameras 1539 that is installed in the input room, and displays the 360-degree video captured by this selected 360-degree camera 1539 on a display object in virtual space 11.
[0156] If the automatic switching mode is set in step S1754 (step S1754: Yes), the process proceeds to step S1756, where the automatic switching process is executed. Note that even if the automatic switching mode is set in step S1754, the user 5 may operate the controller 300 to switch the camera that displays the 360-degree video among the 360-degree cameras 1539, as in step S1755. The automatic switching process of step S1756 will be described below with reference to FIG. 18.
[0157] FIG. 18 is a flowchart showing an example of the automatic switching process shown in step S1756 of FIG. 17. First, in step S1857, a tracking target identification process is performed. If a tracking target has been set in the initial setting in step S1753 of FIG. 17, the tracking target set in step S1753 is identified as the tracking target in the tracking target identification process in step S1857. Identifying the tracking target means acquiring identification information that allows the tracking target to be distinguished from other moving objects. This identification information can be obtained, for example, by performing facial recognition on the person who is the tracking target from an image captured by the 360-degree camera 1539, and using the result of this facial recognition as the identification information. In this case, the tracking target set in step S1753 can also be distinguished from other moving objects through facial recognition and set as the tracking target.
[0158] In one embodiment, the color of the clothing of the tracked object can be used as identification information that allows the tracked object to be distinguished from other moving objects. For example, in an image captured by the 360-degree camera 1539, the color of the pixel 30 pixels below the face of the tracked object can be detected as the color of the clothing of the tracked object. In another embodiment, the results of facial recognition of the tracked object and the color of the clothing can be used as identification information that allows the tracked object to be distinguished from other moving objects. According to this embodiment, when the tracked objects are twins and it is difficult to distinguish them based on their faces alone, it is possible to distinguish the twins by having the twins wear clothes of different colors in advance.
[0159] In one embodiment, information stored in an IC card carried by the tracked object can be used as identification information that distinguishes the tracked object from other moving objects. In this case, a card reader capable of reading information stored in the IC card is installed at the entrance / exit (near the door) of each room, and the tracked object's location can be identified by holding the IC card over the card reader when it enters or leaves a room. In this case, in the camera switching process of step S1861 described below, a 360-degree video captured by one of 360-degree cameras 1539 installed in the room where the tracked object is located is displayed on the display object in virtual space 11, depending on the location of the tracked object determined by the reading result by the card reader.
[0160] In one embodiment, people who are moving objects living together in the shared house 1641 may be able to earn financial income by disclosing their shared living arrangements. In this case, the amount of income may be increased or decreased depending on the number of times they are identified as tracked objects. In this way, people living together in the shared house 1641 will proactively change the color of their clothes to distinguish themselves from others, or will remember to swipe their IC card when entering or leaving a room. This will improve the accuracy of identifying tracked objects and the switching accuracy in the automatic switching mode described below.
[0161] Note that, if a tracking target is not set in step S1753, which moving object is identified as the tracking target in step S1857 can be determined as follows. As described above, the HMD set 110 can detect the gaze of the user 5 using the gaze sensor 140. Therefore, in one embodiment, if the gaze of the user 5 is directed at the same moving object for a predetermined period of time (e.g., one minute) or more, the moving object is identified as the tracking target. Also, in one embodiment, if the gaze of the user 5 is directed at a moving object when the moving object leaves a room, the moving object is identified as the tracking target. The departure of the moving object from the room can be detected, for example, by the moving object disappearing near the door of the corresponding room (door 1647 or 1648 for room 1642, door 1649 for room 1643, and door 1651 for room 1644) in the currently displayed 360-degree video.
[0162] In addition, in one embodiment, the departure of a moving object from a room can be detected by the moving object disappearing from the field of view image 17 when the moving object is located other than at the edge of the field of view image 17.
[0163] In step S1858 following step S1857, a tracking object tracking process is performed. In the tracking object tracking process of step S1858, the tracking object identified in step S1857 is tracked. In other words, the tracking object, which is a moving object whose identification information was acquired in step S1857, is tracked to determine where it is located within the currently displayed 360-degree video.
[0164] In step S1859 following step S1858, it is determined whether the tracking object being tracked in step S1858 has left the room in which one of 360-degree cameras 1539 that is capturing the currently displayed 360-degree video is installed. Detection of the tracking object leaving the room is similar to that described above. Note that if the tracking object disappears from the currently displayed 360-degree video other than near the door of each room, it may also be determined that the tracking object has left the room, or in this case, it may be determined that the tracking object has not left the room, for example, if the tracking object is hiding behind a dresser. If the tracking object has not left the room (step S1859: No), the process returns to step S1858 and continues.
[0165] If the tracked object has left the room in step S1859 (step S1859: Yes), the process proceeds to step S1861, where camera switching processing is performed. Once the camera switching processing in step S1861 is complete, the process returns to step S1858 and continues. The camera switching processing in step S1861 will be described below.
[0166] In one embodiment, the camera switching process in step S1861 is triggered by the tracking target object leaving the current room, and switches the display of the display object in virtual space 11 from the 360-degree video currently displayed to a blackout image. Thereafter, when the tracking target object appears in any of the 360-degree videos captured by all of the 360-degree cameras 1539, the display of the display object in virtual space 11 is switched from the blackout image to the 360-degree video in which the tracking target object appears. As shown in FIG. 16 , for example, rooms 1642 and 1644 are not connected by a single door but by a corridor 1646. In such a case, by displaying a blackout image when the tracking target object is in the corridor 1646, the change in the displayed room can be clearly recognized by user 5, and user 5 can more easily recognize the behavior of the tracking target object.
[0167] In one embodiment, the camera switching process in step S1861 is triggered by the tracking target appearing in any of the 360-degree videos captured by all of the 360-degree cameras 1539 after the tracking target leaves the current room. This triggers the display of the display object in the virtual space 11 to switch from the 360-degree video currently being displayed to the 360-degree video in which the tracking target appears. As shown in FIG. 16 , for example, rooms 1642 and 1643 are connected by a single door 1647. In such a case, not inserting a blackout image satisfies the desire of user 5 not to miss even a moment of the tracking target's behavior. Furthermore, for example, rooms 1642 and 1644 are not connected by a single door but by a corridor 1646. In such a case, by continuing to display the 360-degree video currently being displayed when the tracking target is in the corridor 1646, user 5 can enjoy the afterglow of the behavior of other moving objects after the tracking target leaves the room.
[0168] In one embodiment, the tracking target tracking process of step S1858 in Fig. 18 is not performed. In this case, the tracking target is not continuously tracked within the room, but only the tracking target entering and leaving the room is monitored. For example, as described above, the tracking target carries an IC card and holds the IC card over a card reader installed at the entrance and exit of each room (near the door), thereby making it possible to monitor the tracking target's entering and leaving the room.
[0169] In addition, in one embodiment, when monitoring the entry and exit of a tracked object into a room, a fixed camera with a higher resolution than the 360-degree camera 1539 is installed at the entrance and exit (near the door) of each room, and the face of the person being tracked is recognized using the image captured by this high-resolution fixed camera, thereby further improving the accuracy of face recognition.
[0170] In addition, in one embodiment, in facial recognition of a tracked object, machine learning such as recursive learning can be performed, thereby improving the accuracy of facial recognition as data is accumulated.
[0171] The tracking target may be a CG object such as an avatar object placed in the virtual space 11.
[0172] In the above embodiment, a virtual space (VR space) in which a user is immersed using an HMD has been described as an example. However, a see-through HMD may be used as the HMD. In this case, a field of view image obtained by synthesizing a portion of an image constituting the virtual space with the real space viewed by the user through the see-through HMD may be output to provide the user with a virtual experience in an augmented reality (AR) space or a mixed reality (MR) space. In this case, an action on a target object in the virtual space may be generated based on the movement of the user's hand instead of the manipulation object. Specifically, the processor may identify coordinate information of the position of the user's hand in the real space and define the position of the target object in the virtual space in relation to the coordinate information in the real space. This allows the processor to grasp the positional relationship between the user's hand in the real space and the target object in the virtual space, and to perform processing corresponding to the above-mentioned collision control between the user's hand and the target object. As a result, an action can be applied to the target object based on the movement of the user's hand.
[0173] The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of the present invention.
[0174] (composition) The technical features disclosed above can be summarized as follows:
[0175] (Configuration 1) According to one embodiment, the program causes a processor to execute the following steps: accepting input of an image taken by a first 360-degree camera that photographs a first space; accepting input of an image taken by a second 360-degree camera that photographs a second space; if a tracked object among a plurality of moving objects is in the first space, displaying the image taken by the first 360-degree camera on a head-mounted device; detecting that the tracked object has moved into the second space; and if it is detected in the detecting step that the tracked object has moved into the second space, switching the image displayed on the head-mounted device to the image taken by the second 360-degree camera. (Configuration 2) According to one embodiment, in the program described in configuration 1, the detecting step detects that the object has left the first space and detects that the object has entered the second space, and the switching step switches the image displayed on the head-mounted device from the image captured by the first 360-degree camera to the image captured by the second 360-degree camera at the timing when the detecting step detects that the object has left the first space and then detects that the object has entered the second space. (Configuration 3) According to one embodiment, in the program described in configuration 1, the detecting step detects that the object has left the first space and detects that the object has entered the second space, and the switching step switches the image displayed on the head-mounted device from the image captured by the first 360-degree camera to a blackout image when the detecting step detects that the object has left the first space, and switches the image displayed on the head-mounted device from the blackout image to the image captured by the second 360-degree camera when the detecting step detects that the object has entered the second space. (Configuration 4) According to one embodiment, in the program described in any one of configurations 1 to 3, the tracked object is a person, and the detecting step identifies the tracked object using an image taken of the first space and an image taken of the second space. (Configuration 5) According to one embodiment, in the program according to configuration 4, the detecting step recognizes a face of a person who is the tracking target, and identifies the tracking target based on the recognized face. (Configuration 6) According to one embodiment, in the program according to configuration 5, the detecting step performs machine learning to recognize the face of the person who is the tracking target. (Configuration 7) According to one embodiment, in the program described in configuration 5 or 6, the detecting step further recognizes the color of clothing of the person who is the tracking target, and identifies the tracking target based on the recognized face and clothing colors. (Configuration 8) According to one embodiment, in the program according to configuration 4, the detecting step recognizes a color of clothing of the person who is the tracking target, and identifies the tracking target based on the recognized color of clothing. (Configuration 9) According to one embodiment, in the program described in any one of configurations 4 to 8, the detecting step identifies the tracked object using an image of the first space taken by the first 360-degree camera and an image of the second space taken by the second 360-degree camera. (Configuration 10) According to one embodiment, in the program described in any one of configurations 4 to 8, the detecting step identifies the tracked object using an image of the first space taken by a first fixed camera and an image of the second space taken by a second fixed camera. (Configuration 11) According to one embodiment, in the program described in any one of configurations 1 to 3, the tracked object is a person, and the detecting step detects that the object has left the first space using a first sensor and that the object has entered the second space using a second sensor. (Configuration 12) According to one embodiment, in the program described in any one of configurations 4 to 11, the processor further executes a step of pre-registering which of the multiple moving objects is the tracked object prior to the display step. (Configuration 13) According to one embodiment, in the program described in any one of configurations 4 to 11, the processor further executes a step of registering which of the plurality of moving objects is the tracked object based on the user's attention. (Configuration 14) According to one embodiment, in the program described in configuration 13, the registration step registers which of the multiple moving objects is the tracked object based on the user's attention at the time each of the multiple moving objects leaves the first space. (Configuration 15) According to one embodiment, in the program described in configuration 14, the registration step registers, as the tracked object, a moving object among the plurality of moving objects that was within the user's field of view at the time it left the first space. (Configuration 16) According to one embodiment, in the program described in configuration 15, the registration step registers, as the tracked object, a moving object among the plurality of moving objects that has disappeared from a state other than the edge of the user's field of view at the time it exits the first space. (Configuration 17) According to one embodiment, in the program described in configuration 15, the registration step registers, as the tracked object, a moving object among the plurality of moving objects that is in the center of the user's field of view at the time it leaves the first space. (Configuration 18) According to one embodiment, in the program described in configuration 17, the registration step uses facial recognition to identify a person among the multiple moving objects that is in the center of the user's field of view at the time it leaves the first space. (Configuration 19) According to one embodiment, in the program described in configuration 17, the registration step uses facial recognition to identify a person among the plurality of moving objects that is in the center of the user's field of view at the time the moving object exits the first space, and tracks the feature points of the identified person. (Configuration 20) According to one embodiment, a program executed by a computer for providing a virtual space by a head-mounted device includes the steps of: defining a three-dimensional virtual space including a virtual viewpoint and a display object; receiving an input of an image taken by a first 360-degree camera; receiving an input of an image taken by a second 360-degree camera; displaying the input image on the display object; detecting a head movement of a user associated with the head-mounted device; and displaying a virtual space from the virtual viewpoint in response to the head movement. and a step of displaying a field of view image corresponding to the field of view on the head-mounted device, and the step of displaying on the display object displays, if the tracked object is in the image taken by the first 360-degree camera, the image taken by the first 360-degree camera from among the input images on the display object, and, if the tracked object disappears from the image taken by the first 360-degree camera and appears in the image taken by the second 360-degree camera, switches the image to be displayed on the display object to the image taken by the second 360-degree camera from among the input images. (Configuration 21) According to one embodiment, a method executed by a processor includes the steps of accepting input of an image taken by a first 360-degree camera that photographs a first space, accepting input of an image taken by a second 360-degree camera that photographs a second space, displaying the image taken by the first 360-degree camera on a head-mounted device if a tracked object among a plurality of moving objects is in the first space, detecting that the tracked object has moved into the second space, and if it is detected in the detecting step that the tracked object has moved into the second space, switching the image displayed on the head-mounted device to the image taken by the second 360-degree camera. (Configuration 22) According to one embodiment, an information processing device includes a processor and a memory storing a program, and the program causes the processor to execute the following steps: accepting input of an image captured by a first 360-degree camera that captures a first space; accepting input of an image captured by a second 360-degree camera that captures a second space; if a tracked object among a plurality of moving objects is in the first space, displaying the image captured by the first 360-degree camera on a head-mounted device; detecting that the tracked object has moved to the second space; and, if it is detected in the detecting step that the tracked object has moved to the second space, switching the image displayed on the head-mounted device to the image captured by the second 360-degree camera. (Configuration 23) According to one embodiment, the program causes a processor to execute the following steps: accepting input of an image taken by a first 360-degree camera; accepting input of an image taken by a second 360-degree camera; if the tracked object is in the image taken by the first 360-degree camera, displaying the image taken by the first 360-degree camera from among the input images on a head-mounted device; and if the tracked object disappears from the image taken by the first 360-degree camera and appears in the image taken by the second 360-degree camera, switching the image displayed on the head-mounted device to the image taken by the second 360-degree camera from among the input images. (Configuration 24) According to one embodiment, in the program, the first 360-degree camera is a camera that photographs a first space, and the second 360-degree camera is a camera that photographs a second space, the first space and the second space being different spaces. (Configuration 25) According to one embodiment, the program causes a processor to execute the steps of accepting input of an image taken by a first 360-degree camera, accepting input of an image taken by a second 360-degree camera, identifying a tracked object appearing in the input image, selecting an image from the input image that shows the tracked object, and displaying the image selected in the selecting step on a head-mounted device.
[0176] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]
[0177] 2...Network, 5...User, 6...Avatar object, 11...Virtual space, 12...Center, 14...Virtual camera, 15...Field of view area, 100...HMD system, 110...HMD set, 130...Monitor, 170...Microphone, 180...Speaker, 190...Sensor, 200...Computer, 210...Processor, 220...Memory, 230...Storage, 240...Input / output interface, 250...Communication interface, 300...Controller, 310...Grip, 320...Frame, 340, 350, 370, 380...Button, 390...Analog stick, 410...HMD sensor, 420...Motion sensor, 430...Display, 510...Control module, 520...Rendering module, 530...Memory module, 540...Communication control module, 600...Server, 610...Processor, 620...Memory, 630...Storage, 640...Input / output interface, 650...Communication interface, 1421...Virtual camera control module, 1422...Field of view area determination module, 1423...Reference gaze identification module, 1424...Movement detection module, 1424...Facial organ detection module, 1425...Movement detection module, 1426...Virtual space definition module, 1427...Virtual object generation module, 1428...Operated object control module, 1429...Avatar control module, 1431...Spatial information, 1432...Object information, 1433...User information, 1434...Facial information, 1435...Mouth template, 1438...Field of view image generation module.
Claims
1. Computer, a display means for displaying an image captured by one of a plurality of cameras capturing images of the real world on a device worn by a user; functioning as a determination means for determining whether or not the image contains a tracking target; The determination means The tracking target is identified and the determination is made by machine learning, The display means displaying, on the device, an image determined to include the tracking target from among the images captured by the plurality of cameras based on the determination; program.
2. The computer further comprises: functioning as a selection means for allowing a user to arbitrarily select which of the images taken by the plurality of cameras is to be displayed on the device between a first mode in which the image is manually displayed and a second mode in which the image is automatically displayed; The display means When the second mode is selected, if it is determined by the determination that the tracking target is included in another image other than the one image displayed on the device, a switching process can be executed to switch to the one image and display the other image on the device. The program according to claim 1.
Citation Information
Patent Citations
Mechanism obtaining rotary motion by mounting return fittingto lever and rocking and moving said return fitting by manpower
JP1986030478A
Display of menu and switching of moving images in VR video display system
JP2019086578A
JPP7458779B