WO2020213405A1 - 情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム - Google Patents

情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム Download PDF

Info

Publication number
WO2020213405A1
WO2020213405A1 PCT/JP2020/015127 JP2020015127W WO2020213405A1 WO 2020213405 A1 WO2020213405 A1 WO 2020213405A1 JP 2020015127 W JP2020015127 W JP 2020015127W WO 2020213405 A1 WO2020213405 A1 WO 2020213405A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
space
room
real space
terminal
Prior art date
Application number
PCT/JP2020/015127
Other languages
English (en)
French (fr)
Inventor
和哉 松尾
航哉 森
田中 裕之
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/603,551 priority Critical patent/US11721078B2/en
Publication of WO2020213405A1 publication Critical patent/WO2020213405A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/38Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory with means for controlling the display position
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Definitions

  • One aspect of the present invention relates to an information processing system for information processing used for constructing a mixed reality (MR) space, information processing terminals and servers used in this system, and information processing methods and programs. ..
  • MR mixed reality
  • MR Mixed Reality
  • HoloLens As a typical device that realizes such MR, Microsoft's HoloLens (registered trademark) is known (see, for example, Non-Patent Document 1).
  • HoloLens is equipped with a sensor for acquiring information representing the real space as 3D information, and mapping virtual information to the 3D model of the real space generated based on the information acquired by this sensor. Mixes virtual space and real space.
  • the mixed reality space constructed in this way onto a transmissive hologram lens the user is allowed to experience the mixed reality space.
  • MR terminals such as HoloLens are also attracting attention as next-generation mobile terminals to replace smartphones (see, for example, Non-Patent Documents 2, 3 and 4). Therefore, in the future, it is considered that it will be used not only in the above example but also in various places regardless of whether it is outdoors or indoors.
  • Non-Patent Document 5 As an application example of MR, one that is completed by an individual such as "projecting a 3D model indoors and simulating a layout" (see, for example, Non-Patent Document 5), "in the construction industry and manufacturing industry, instructions from an operator are given on-site. What is presented as virtual information to the worker's view "(for example, see Non-Patent Document 6)," What is presented to the customer's view as a 3D object of the completed building at the planned construction site of the building in the real estate industry. (See, for example, Non-Patent Document 7) and the like have been proposed.
  • MR is attracting attention as a technology for sharing virtual information in the real space when collaborating with multiple people and making decisions.
  • Collaborative computing is a computing model in which information that an individual sees through a PC is projected onto a real space and shared by multiple people while interacting with that information as if they were touching a real object. .. If this computing model permeates, the place where information is viewed and shared will be the real space itself, not the display of PCs and smartphones. In this way, the technology for sharing mixed reality space among multiple people in MR is expected to become more and more important in the future.
  • sharing service a space sharing service
  • information for fixing a virtual object in a mixed reality space
  • server Each MR terminal that receives the anchor information displays a virtual object at a relative position from the coordinates calculated based on the anchor information.
  • each MR terminal can display a virtual object at the same position in the real space, so that a plurality of users can see the same mixed reality space.
  • information about the mixed reality space to be shared is managed as a "room”, and anchor information is also stored in this room.
  • sharing of the mixed reality space is realized by transmitting the anchor information to the MR terminal associated with the same room.
  • mixed reality space can be shared between different MR terminals while the server program is running on a machine that can communicate with the MR terminal.
  • the server program is running on a machine that can communicate with the MR terminal.
  • the machine on which the server program is running is referred to as the "server”.
  • the server program is running on the server that can communicate with the MR terminal
  • the MR terminal connected to the server has the room to check if there is already a room in the space you want to share. Send the name of to the server. If the corresponding room is not in the server, the MR terminal requests the server to create a room on the server. After that, the MR terminal uploads the anchor information calculated on the own terminal to the room.
  • the MR terminal when the room is found in the server, the MR terminal requests the server for the anchor information of the room and downloads the anchor information.
  • the MR terminal attaches the downloaded anchor information to the mixed reality space that it recognizes.
  • the MR terminals entering the same room can acquire the same anchor information, and as a result, the user of the MR terminal can experience the same mixed reality space.
  • the anchor information once acquired can be saved locally, when the target mixed reality space is visited after the second time, the mixed reality space can be shared without downloading the anchor information.
  • the server receives a confirmation message including the name of the room from the MR terminal, it confirms the existence of the room and returns it to the MR terminal. At this time, if the room exists, the server associates the MR terminal, which is the source of the confirmation message, with the room. Hereinafter, this process is referred to as "putting the MR terminal into the room". If the room does not exist, the room creation request is transmitted from the MR terminal as described above, and the server creates the requested room in response to the reception of the room creation request.
  • the server associates the anchor information received from the MR terminal with the created room and saves it. After that, when the server receives the request for anchor information from another MR terminal in the same room, the server transmits the anchor information to the MR terminal.
  • anchor information is acquired by UDP (User Datagram Protocol) communication with a personal computer (PC) installed next to an MR terminal through a verification experiment, or when a sharing service is operated on a machine in a data center in Tokyo.
  • UDP User Datagram Protocol
  • PC personal computer
  • anchor information was acquired by TCP communication from Tokyo using a mobile network, a delay of more than 10 seconds was measured.
  • the mixed reality space to be shared that is, the room can be switched according to the MR terminal moving in the real space, and a plurality of mixed reality spaces can be shared at high speed.
  • Technology is needed to make it.
  • the present invention has been made by paying attention to the above circumstances, and an object of the present invention is to provide a technique for reducing information processing delay that occurs when a plurality of mixed reality spaces are shared by a plurality of terminals. ..
  • the first aspect of the present invention is an information processing terminal that acquires spatial information representing a real space and displays an image representing a complex real space in which a virtual space is superimposed on the real space.
  • the server device provides information for identifying the real space for each of a plurality of real spaces, and the reality. From the composite space management unit that creates and manages the composite space management information that associates the anchor information for defining the superposition position of the virtual space in the space with the anchor information corresponding to the adjacent real space, and the information processing terminal.
  • the first real space When a request for acquiring anchor information corresponding to the first real space among the plurality of real spaces is received, the first real space is set to the first real space based on the complex space management information corresponding to the first real space.
  • a response unit that transmits response information including the corresponding first anchor information and the second anchor information corresponding to the second real space adjacent to the first real space to the information processing terminal of the request source.
  • the acquisition request for the anchor information is transmitted to the server device, and the answer information is acquired from the server device.
  • a composite space information generation unit that generates information representing the composite real space in which the virtual space is superimposed on the second real space.
  • the information identifying the real space includes the spatial information representing the real space acquired by the information processing terminal, and the complex space management information is received from the information processing terminal. It is intended to further include terminal state information indicating in which real space the information processing terminal is located, which is estimated based on the spatial information.
  • the server device estimates the adjacency relationship regarding the plurality of real spaces based on the terminal state information and the spatial information newly received from the information processing terminal, and the estimation result. Is further provided with an adjacency relationship estimation unit that outputs the above-mentioned compound space management unit.
  • a fourth aspect of the present invention is capable of communicating with an information processing terminal that acquires spatial information representing a real space and displays an image representing a composite real space in which a virtual space is superimposed on the real space.
  • the memory indicates information that identifies the real space for each of a plurality of real spaces, and an superimposed position of the virtual space in the real space.
  • the processor is provided with a storage unit for storing complex space management information that associates the anchor information for defining the above and the anchor information corresponding to the adjacent real space, and the processor is the third of the plurality of real spaces from the information processing terminal.
  • the first anchor information corresponding to the first real space and the first anchor information corresponding to the first real space are obtained based on the composite space management information corresponding to the first real space.
  • the process of transmitting the answer information including the second anchor information corresponding to the second real space adjacent to the first real space to the information processing terminal of the request source is configured to be executed. It is a thing.
  • a fifth aspect of the present invention is a processor capable of communicating with a server device that manages anchor information that defines a superposed position for constructing a mixed reality space in which a virtual space is superposed on a real space.
  • An information processing terminal including a memory connected to the processor and a display unit for displaying an image representing the mixed reality space constructed based on the anchor information, wherein the processor has a plurality of the information processing terminals.
  • the server device that manages the anchor information when the server device that manages the anchor information receives the acquisition request of the anchor information corresponding to the first real space from the information processing terminal, the acquisition request is made. In response, an answer including anchor information corresponding to the first real space and anchor information corresponding to the second real space adjacent to the first real space is transmitted to the information processing terminal.
  • the information processing terminal that receives the answer receives the anchor information corresponding to the first real space and the anchor information corresponding to the second real space adjacent to the first real space before entering the second real space. Can be acquired and stored in.
  • the information processing terminal transfers the anchor information necessary for sharing the mixed reality space not only to the one corresponding to the current real space but also to other real spaces that may move next.
  • Corresponding anchor information can also be acquired and stored in advance. Therefore, when the information processing terminal moves to another real space, it can generate and display an image representing the mixed reality space based on the stored anchor information, and is required after moving to the other real space. It is possible to significantly reduce the processing delay when sharing the mixed reality space, as compared with the case of acquiring various anchor information.
  • the server device uses the spatial information representing the real space acquired by the information processing terminal as the information for identifying the real space.
  • the terminal state information representing the estimation result of which real space the information processing terminal is located based on the spatial information received from the information processing terminal is also managed.
  • the server device manages the spatial information received from the information processing terminal in association with the complex spatial management information including the anchor information. Therefore, in response to the request for the anchor information from the information processing terminal, the server device manages the spatial information. It is possible to easily respond based on the spatial information contained in the request. Further, since the server device manages the estimation result of the real space in which the information processing terminal is located, it is possible to transmit appropriate information in consideration of the positional relationship in response to the request from the information processing terminal. By inquiring the server device based on the acquired spatial information, the information processing terminal can confirm in which real space it is located and whether it is necessary to acquire new anchor information, and it is possible to confirm mixed reality. Space sharing can be facilitated.
  • the server device estimates the adjacency relationship in the real space based on the managed terminal state information and the spatial information newly received from the information processing terminal.
  • the estimation result is output to the complex space management unit that manages the anchor information.
  • the server device can estimate the adjacency relationship in the real space and appropriately manage the anchor information without requiring complicated operations such as registering the adjacency relationship in the real space in the server device in advance.
  • the information processing terminal can store only the anchor information that is adjacent to each other by inquiring to the server device in a timely manner, and while realizing high-speed sharing of the mixed reality space, it can save storage and reduce the amount of communication. it can.
  • the spatial information representing the first real space is displayed. Acquire and send this spatial information to the server device to request anchor information. Then, the information processing terminal sets the anchor information corresponding to the first real space and the second real space adjacent to the first real space based on the answer obtained from the server device to this request. The corresponding anchor information is stored in the memory.
  • the information processing terminal when the information processing terminal enters the second real space, the information processing terminal can generate and display information representing the mixed reality space using the anchor information corresponding to the second real space stored in advance. it can. Therefore, compared to the case where the information processing terminal acquires the necessary anchor information from the server device after entering the second real space, the delay required for the processing can be eliminated, and high-speed sharing of the mixed reality space is realized. can do.
  • each aspect of the present invention it is possible to provide a technique for reducing the delay in information processing that occurs when a plurality of mixed reality spaces are shared by a plurality of terminals.
  • FIG. 1 is a diagram showing an overall configuration of an information processing system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a hardware configuration of an MR terminal as an information processing terminal according to an embodiment of the present invention.
  • FIG. 3 is a block diagram showing a software configuration of an MR terminal as an information processing terminal according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing a hardware configuration of a server device according to an embodiment of the present invention.
  • FIG. 5 is a block diagram showing a software configuration of a server device according to an embodiment of the present invention.
  • FIG. 6 is a diagram showing a first example of an operation of sharing a mixed reality space according to an embodiment of the present invention.
  • FIG. 1 is a diagram showing an overall configuration of an information processing system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a hardware configuration of an MR terminal as an information processing terminal according to an embodiment of the present invention.
  • FIG. 3 is a block
  • FIG. 7 is a diagram showing a second example of an operation of sharing a mixed reality space according to an embodiment of the present invention.
  • FIG. 8 is a diagram showing a first example of an operation for setting an adjacency of rooms according to an embodiment of the present invention.
  • FIG. 9 is a diagram showing a second example of an operation for setting an adjacency relationship between rooms according to an embodiment of the present invention.
  • FIG. 10 is a diagram showing a third example of an operation for setting an adjacency of rooms according to an embodiment of the present invention.
  • FIG. 11 is a diagram showing an example of processing for confirming and creating a room and setting an adjacency relationship according to an embodiment of the present invention.
  • FIG. 12 is a diagram showing an example of a process of sharing a mixed reality space according to an embodiment of the present invention.
  • FIG. 13 is a flowchart showing an example of a processing procedure and processing contents from activation by the information processing terminal shown in FIG. 5 to acquisition of room information.
  • FIG. 14 is a flowchart showing an example of the room confirmation process among the flowcharts shown in FIG.
  • FIG. 15 is a flowchart showing an example of the adjacent room information acquisition process among the flowcharts shown in FIG.
  • FIG. 16 is a flowchart showing an example of the processing procedure and processing contents by the server shown in FIG.
  • FIG. 17 is a flowchart showing an example of the adjacency relationship setting process among the flowcharts shown in FIG. FIG.
  • FIG. 18 is a diagram showing a verification result of a delay time when the waiting time is changed.
  • FIG. 19 is a diagram showing a verification result of the number of anchor information requests when the waiting time is changed.
  • FIG. 20 is a diagram showing a verification result of a delay time when the number of stored anchors is changed.
  • FIG. 21 is a diagram showing a verification result of the number of times anchor information is requested when the number of stored anchors is changed.
  • FIG. 22 is a diagram showing a verification result of a delay time when the number of adjacent rooms is changed.
  • FIG. 23 is a diagram showing a verification result of the number of anchor information requests when the number of adjacent rooms is changed.
  • FIG. 1 is a diagram showing an example of an overall configuration of an information processing system according to an embodiment of the present invention.
  • This system includes a server 10 as a server device and a mixed reality (MR) terminal 100-1, 100-2 as an information processing terminal, which can communicate with each other via a network NW.
  • MR terminal 100 " MR terminal 100
  • the network NW is composed of, for example, a relay network and a plurality of access networks for accessing this relay network.
  • a relay network a closed network controlled so that it can be accessed only from a public network such as the general Internet or a limited number of devices is used.
  • the access network for example, a wireless LAN (Local Area Network), a mobile phone network, a wired telephone network, FTTH (Fiber To The Home), and a CATV (Cable Television) network are used.
  • the MR terminal 100 acquires spatial information representing the real space as 3D information and allows the user to experience a mixed reality space constructed based on the acquired 3D information.
  • a head mount such as Microsoft's HoloLens. It is a display type information processing terminal.
  • the server 10 communicates with the MR terminal 100 and generates and manages information for sharing the mixed reality space with a plurality of MR terminals 100.
  • the server 10 is operated by a business operator that develops / provides games and applications. It is a server computer to manage.
  • the server 10 shares the mixed reality space by causing the plurality of MR terminals 100 to share the information of the "anchor" ("anchor information") used for fixing the virtual object to the mixed reality space. Let me.
  • the server 10 manages such anchor information together with the 3D information of the real space acquired by the MR terminal as a "room” representing a mixed reality space corresponding to each real space.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the MR terminal 100 as an information processing terminal according to an embodiment of the present invention.
  • the MR terminal 100 has, for example, a hardware processor 120A that combines a hardware processor such as a CPU (Central Processing Unit), a GPU, and a processor for holography.
  • the program memory 120B, the data memory 130, the communication interface 140, and the input / output interface 150 are connected to the hardware processor 120A via the bus 180.
  • the communication interface 140 includes, for example, one or more wired or wireless communication interface units, and transmits data to and from the server 10 according to a communication protocol defined by the network NW.
  • a wired LAN is used
  • the wireless interface an interface adopting a low power wireless data communication standard such as a wireless LAN or Bluetooth (registered trademark) is used.
  • the input device 160 and the output device 170 attached to the MR terminal 100 are connected to the input / output interface 150.
  • the input / output interface 150 captures operation data input by the user of the MR terminal 100 through the input device 160 and 3D information representing the real space measured through the sensor, and outputs data created by the hardware processor 120A. Is output to the output device 170.
  • the input device 160 is, for example, a sensor, a touch panel, a touch pad, a microphone, a keyboard, and a mouse.
  • Sensors may include, for example, acceleration sensors, depth sensors, gyroscopes, magnetic sensors, infrared sensors, cameras and the like.
  • the output device 170 is, for example, a transmissive liquid crystal or organic EL (Electro Luminescence) display that is generated by the hardware processor 120A and displays an image representing a mixed reality space including a menu screen, GUI, objects, and the like.
  • the output device 170 can also include a speaker that outputs audio information generated by the hardware processor 120A.
  • the input device 160 and the output device 170 may use the device built in the MR terminal 100, and may use the input device and the output device of another information terminal capable of communicating via a network such as a smartphone. May be good.
  • the program memory 120B is used as a storage medium in combination with, for example, a non-volatile memory such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) that can be written and read at any time and a non-volatile memory such as a ROM. It stores programs necessary for executing various control processes according to the embodiment.
  • a non-volatile memory such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) that can be written and read at any time
  • a non-volatile memory such as a ROM. It stores programs necessary for executing various control processes according to the embodiment.
  • the data memory 130 uses a combination of a non-volatile memory such as an HDD or SSD that can be written and read at any time and a volatile memory such as a RAM (Random Access Memory) as a storage medium, and performs information processing. It is used to store various data acquired and created in the process of.
  • a non-volatile memory such as an HDD or SSD that can be written and read at any time
  • a volatile memory such as a RAM (Random Access Memory) as a storage medium
  • FIG. 3 is a block diagram showing the software configuration of the MR terminal 100 according to the embodiment of the present invention in association with the hardware configuration shown in FIG.
  • An anchor information storage unit 131 is provided in the storage area of the data memory 130.
  • the anchor information storage unit 131 stores anchor information for fixing a virtual object in the mixed reality space in association with information that identifies the corresponding mixed reality space.
  • the anchor information storage unit 131 does not necessarily have to be built in the MR terminal 100, and may be an external storage medium such as a USB memory.
  • the control unit 120 is composed of the hardware processor 120A and the program memory 120B, and includes a spatial information acquisition unit 201, a room confirmation unit 202, a room creation request unit 203, and anchor information as processing function units by software.
  • Management unit 204 anchor information upload (UL) unit 205, anchor information download (DL) unit 206, anchor information expansion unit 207, adjacency information request unit 208, adjacency information storage processing unit 209, and exit determination unit. It includes 210 and an output image generation unit 211. All of these processing function units are realized by causing the hardware processor 120A to execute a program stored in the program memory 120B.
  • the control unit 20 may also be implemented in a variety of other forms, including integrated circuits such as ASICs (Application Specific Integrated Circuits) and FPGAs (field-programmable gate arrays).
  • the spatial information acquisition unit 201 acquires 3D information as spatial information representing the real space measured by an input device 160 such as a depth sensor or a camera through the input / output interface 150, and performs a process of passing it to the room confirmation unit 202. ..
  • the room confirmation unit 202 transmits the acquired 3D information to the server 10 and inquires whether or not a "room” for storing the information of the mixed reality space corresponding to the real space representing the 3D information has already been generated. Perform processing.
  • the room creation request unit 203 performs a process of requesting the server 10 to create a room when it is determined that there is no room corresponding to the transmitted 3D information.
  • the anchor information management unit 204 performs a process of managing the anchor information stored in the anchor information storage unit 131.
  • the anchor information upload (UL) unit 205 calculates the anchor information based on the acquired 3D information and uploads it to the server 10 for sharing. ..
  • the anchor information download (DL) unit 206 When a room in the space to be shared is found on the server 10, the anchor information download (DL) unit 206 performs a process of downloading the anchor information corresponding to the space from the server 10.
  • Anchor information development unit 207 performs a process of attaching anchor information to the recognized mixed reality space.
  • the adjacency information requesting unit 208 performs a process of requesting the server 10 for information on another room adjacent to the room corresponding to the current space.
  • the adjacency information storage processing unit 209 performs a process of storing the information of another room adjacent to the room corresponding to the current space received from the server 10 in the anchor information storage unit 131.
  • the exit determination unit 210 performs a process of determining whether or not the self-position is within the target space of the room. For example, the exit determination unit 210 acquires 3D information at predetermined time intervals, transmits it to the server 10 and requests collation to determine whether or not the self-position is in the space targeted by the room. Can be determined.
  • the output image generation unit 211 generates output data including information representing the constructed mixed reality space based on the anchor information attached to the mixed reality space by the anchor information expansion unit 207, and passes it to the output device 170. Do.
  • the output image generation unit 211 generates image data representing a mixed reality space in which virtual objects are arranged at appropriate positions and orientations based on coordinates calculated based on anchor information, and serves as an output device 170. Display on the display.
  • Detailed processing for constructing a mixed reality space such as generation of spatial mesh based on 3D information, calculation and expansion of anchor information, generation of image data, etc., can use generally known techniques. Will not be described (see, for example, Non-Patent Document 1 above).
  • FIG. 4 is a block diagram showing an example of a hardware configuration of a server 10 as a server device according to an embodiment of the present invention.
  • the server 10 has, for example, a hardware processor 20A such as a CPU. Then, the program memory 20B, the data memory 30, and the communication interface 11 are connected to the hardware processor 20A via the bus 50.
  • a hardware processor 20A such as a CPU. Then, the program memory 20B, the data memory 30, and the communication interface 11 are connected to the hardware processor 20A via the bus 50.
  • the communication interface 11 includes, for example, one or more wired or wireless communication interface units, and transmits data to and from the MR terminal 100 according to a communication protocol defined by the network NW.
  • a wired LAN is used
  • the wireless interface for example, an interface adopting a low power wireless data communication standard such as a wireless LAN or Bluetooth is used.
  • the program memory 20B uses, for example, a non-volatile memory such as an HDD or SSD that can be written and read at any time and a non-volatile memory such as a ROM as a storage medium, and various controls according to one embodiment. Contains the program required to execute the process.
  • a non-volatile memory such as an HDD or SSD that can be written and read at any time
  • a non-volatile memory such as a ROM as a storage medium
  • the data memory 30 uses, for example, a non-volatile memory such as an HDD or SSD that can be written and read at any time and a volatile memory such as a RAM as a storage medium, and is acquired and acquired in the process of information processing. It is used to store various created data.
  • a non-volatile memory such as an HDD or SSD that can be written and read at any time
  • a volatile memory such as a RAM as a storage medium, and is acquired and acquired in the process of information processing. It is used to store various created data.
  • FIG. 5 is a block diagram showing the software configuration of the server 10 according to the embodiment of the present invention in association with the hardware configuration shown in FIG.
  • a room information storage unit 31 is provided in the storage area of the data memory 30.
  • the room information storage unit 31 stores the 3D information and the anchor information received from the MR terminal 100 as a "room" for each corresponding mixed reality space.
  • the room information storage unit 31 can also store adjacent space information that identifies rooms that are adjacent to each other for each room.
  • the room information storage unit 31 can store the 3D information, the anchor information, and the adjacent space information in association with the information that identifies each room.
  • the room information storage unit 31 may be provided as a storage device such as an external storage medium or a database server arranged in the cloud.
  • the control unit 20 is composed of the hardware processor 20A and the program memory 20B, and has a room management unit 21, a room creation unit 22, a terminal state reference unit 23, and a terminal state management as processing function units by software.
  • a unit 24, a terminal state update unit 25, an anchor information sharing unit 26, an adjacency relationship setting unit 27, and a transmission control unit 28 are provided. All of these processing function units are realized by causing the hardware processor 20A to execute a program stored in the program memory 20B.
  • the control unit 20 may also be implemented in a variety of other forms, including integrated circuits such as ASICs and FPGAs.
  • the room management unit 21 functions as a complex space management unit, and by collating the information stored in the room information storage unit 31 based on the 3D information received from the MR terminal 100, whether or not there is a corresponding room. Is determined, and the determination result is returned to the MR terminal 100. Further, the room management unit 21 performs a process of passing information indicating which room the MR terminal 100 is in to the terminal state management unit 24, for example, every time 3D information is received from the MR terminal 100.
  • the room creation unit 22 When the room creation unit 22 receives a room creation request from the MR terminal 100, the room creation unit 22 performs a process of creating a room in response to the request.
  • the terminal status reference unit 23 searches the information stored in the room information storage unit 31 and performs a process of confirming which room the MR terminal 100 was in until just before. For example, every time the terminal state reference unit 23 receives a room creation request or 3D information from the MR terminal 100, it is assumed that the source MR terminal 100 may have moved the room. Performs the process of confirming that you were in the room.
  • the terminal state management unit 24 receives information indicating which room the MR terminal 100 is currently in, and performs a process of managing the information stored in the room information storage unit 31.
  • the terminal state update unit 25 accesses the room information storage unit 31 and performs a process of changing the room in which the MR terminal 100 is housed.
  • the terminal state update unit 25 may manage and update information in cooperation with the terminal state management unit 24.
  • the anchor information sharing unit 26 performs a process of associating with a corresponding room and storing it in the room information storage unit 31 so that the anchor information received from the MR terminal 100 can be shared among a plurality of MR terminals.
  • the adjacency setting unit 27 is different from the new room when it is determined that the MR terminal 100 has moved to a new room and there is a record that the MR terminal 100 has been in another room until immediately before that. It is presumed that there is an adjacency relationship with the room, and a process of setting the estimated adjacency relationship in the information stored in the room information storage unit 31 is performed.
  • the transmission control unit 28 receives various information, for example, information for identifying a room, information for identifying a real space, anchor information for a designated space, and anchor information for an adjacent space, in response to a request from the MR terminal 100. Etc. are sent.
  • rooms A, B, C, and D are created on the server 10 for each of the four rooms a, b, c, and d as real spaces. These rooms A, B, C, and D are stored in, for example, the room information storage unit 31.
  • the information possessed by each room includes 3D information on the shape of the corresponding room (real space), identification information of the MR terminal 100 in the room, anchor information, and adjacency between the rooms. It is a relationship. Further, the information possessed by the MR terminal 100 is 3D information of the space in which the MR terminal 100 is currently located, anchor information, and anchor information of an adjacent room.
  • MR terminal # 2 when a user in room b activates MR terminal 100-2 (hereinafter, MR terminal # 2) and connects to server 10, MR terminal # 2 has a room associated with room b. In order to confirm whether or not it exists on the server 10, 3D information regarding the shape of the room b is transmitted to the server 10 (arrow C1).
  • the server 10 collates the 3D information received from the MR terminal # 2 with the 3D information held by the server 10 and has a room having the largest 3D information in which the degree of shape similarity is equal to or higher than a predetermined threshold value (that is,). Search for the most similar room that exceeds a certain standard) and return the result to MR terminal # 2.
  • the server 10 determines that there is a room (room B) corresponding to the room in which the MR terminal # 2 is located, and returns the result to the MR terminal # 2. Further, the server 10 determines that the MR terminal # 2 is in the room B, and puts the MR terminal # 2 in the room B.
  • Anchor information (A, C) is also inquired and acquired (arrow C2).
  • the MR terminal # 2 in the room b moves from the room b to the room a
  • the MR terminal # 2 indicates that it has gone out of the room b. Detect based on the 3D information of.
  • the MR terminal # 2 transmits the 3D information of the current space (room a) to the server 10 (arrow C3).
  • the MR terminal # 2 already possesses the anchor information (A) of the room A, so that the room A is immediately provided. It is possible to start sharing the mixed reality space with another MR terminal 100-1 (MR terminal # 1) in.
  • FIGS. 8 to 10 show an example of the operation of the entire system for setting the adjacency relationship of rooms according to an embodiment of the present invention, respectively.
  • the MR terminal # 1 when the user activates the MR terminal 100-1 (MR terminal # 1) in the room a, the MR terminal # 1 first has a room associated with the room a on the server 10 as described above. In order to confirm whether or not to do so, the 3D information of the room a is acquired and transmitted to the server 10 (arrow C4). If the room does not exist, MR terminal # 1 transmits a room creation request and the anchor information calculated by itself to the server 10 (arrow C5). The server 10 that has received these creates the room (room A in FIG. 8), and associates the received 3D information with the anchor information (A). Further, the server 10 determines that the MR terminal # 1 is in the room A, and associates the room A with the MR terminal # 1.
  • the MR terminal # 1 when the MR terminal # 1 moves from the room a to the room b, the MR terminal # 1 transmits the 3D information of the room b to the server 10 in the same procedure as above (arrow C6). .. Similarly to the above, when there is no room corresponding to the room b, the MR terminal # 1 transmits a room creation request to the server 10 (arrow C7), and also transmits the calculated anchor information (arrow C7). ), The server 10 creates a room B accordingly. Here, the server 10 determines that the newly created room B and the room A in which the MR terminal # 1 is immediately adjacent are spatially adjacent to each other, and sets an adjacent relationship between the room A and the room B. To do. That is, "room B" is added as "adjacent" information associated with room A, and "room A” is added as "adjacent" information associated with room B.
  • room C and room D are created and an adjacency relationship is set for each, as shown in FIG. 10 by the same procedure.
  • the server 10 determines that there is a room (room C) corresponding to the room in which the MR terminal # 1 is located, and returns the result to the MR terminal # 1.
  • the room D and the room C, which the MR terminal # 1 was in until just before are spatially adjacent to each other, and the adjacent relationship is set.
  • the MR terminal 100 can acquire not only the anchor information of the room in which the MR terminal 100 is located but also the anchor information of the adjacent room. Further, it is possible to confirm which room the MR terminal 100 is currently in, and to set an adjacency relationship between the rooms on the server 10.
  • FIG. 11 is a diagram showing an example of such processing.
  • the MR terminal 100 When the MR terminal 100 as a client is started, it first connects to the server 10. The MR terminal 100 connected to the server 10 first confirms in the determination block D1 whether or not it is in any of the rooms. For example, whether or not there is a record that the MR terminal 100 is in any of the rooms by reading the information stored in the anchor information storage unit 131 (for example, the information of the last confirmed room). To confirm.
  • the MR terminal 100 acquires the 3D information of the real space in which it is present in the room confirmation unit 202 and transmits it to the server 10. It is confirmed whether or not there is already a room in the space (S1). On the other hand, when it is determined that the user is in a certain room (for example, room B) (D1-NO), under the control of the exit determination unit 210, for example, at regular intervals of a predetermined time, where in the 3D information of the self Check if there is a self-position (S2).
  • a certain room for example, room B
  • the exit determination unit 210 under the control of the exit determination unit 210, for example, at regular intervals of a predetermined time, where in the 3D information of the self Check if there is a self-position (S2).
  • the room confirmation unit 202 transmits the 3D information to the server. By transmitting to No. 10, it is confirmed whether or not there is a room corresponding to the current space (S1).
  • the self-position is in the target space of the room B (D2-NO)
  • the response (S3) received from the server 10 after transmitting the 3D information to the server 10 by the room confirmation unit 202 (S1) indicates that there is no room corresponding to the 3D information (D3-NO)
  • the room is created.
  • the request unit 203 requests the server 10 to create a room (S4).
  • the process proceeds to share the anchor information.
  • the room management unit 21 collates the received 3D information with the 3D information held by itself, and the degree of similarity in shape is increased. Find the room with the largest 3D information above the threshold. If there is a room, the server 10 returns the result to the MR terminal 100 (S3), and associates the received 3D information with the room. If the room does not exist, the server 10 returns the result to the MR terminal 100 (S3), and receives a room creation request from the room creation request unit 203 of the MR terminal 100 (S4).
  • the server 10 that has received the room creation request creates a new room by the room creation unit 22, associates it with the received 3D information, and stores it in the room information storage unit 31.
  • the server 10 receives the anchor information from the MR terminal 100, the server 10 further associates the anchor information with the created room and saves the anchor information.
  • the room creation unit 22 returns the information about the created room to the MR terminal 100 (S5), and notifies the terminal status reference unit 23 that the room has been created (S6). Then, in the terminal state reference unit 23, in order to estimate the adjacency relationship, information is acquired from the room management unit 21 (S7), or the information stored in the room information storage unit 31 is read out, and the process proceeds to the determination block D4. (S8). Then, in the determination block D4, the server 10 determines whether or not there is a record that the MR terminal 100 that transmitted the 3D information or the room creation request was in any room until immediately before that.
  • the adjacency setting unit 27 sets an adjacency between the currently entered room (room B) and room A, and also The terminal state update unit 25 updates the room containing the MR terminal 100 from A to B. If there is no record of being in another room in the determination block D4, the process ends.
  • FIG. 12 is a diagram showing an example of such processing.
  • the MR terminal 100 When the MR terminal 100 as a client is started and connected to the server 10, the MR terminal 100 acquires 3D in order to confirm whether or not there is already a room in the space to be shared by the room confirmation unit 202. Information is transmitted to the server 10 (S11).
  • the room creation request unit 203 causes the server 10 to create a room on the server 10. Request (S13).
  • the MR terminal 100 uploads the anchor information calculated on its own terminal to the room in the anchor information upload (UL) unit 205 (S15).
  • the anchor information management unit 204 determines whether or not the anchor information of the room is stored on the own terminal (for example, on the anchor information storage unit 131). The process proceeds to the determination block D12 for confirmation (S16).
  • the anchor information is read out and passed to the anchor information expansion unit 207.
  • the anchor information download (DL) unit 206 requests the anchor information of the room from the server 10 (S17), downloads the anchor information (S18), and anchors. It is passed to the information development unit 207 (S19).
  • the anchor information expansion unit 207 attaches the read or downloaded anchor information to the mixed reality space that it recognizes.
  • the MR terminal 100 entering the same room can acquire the same anchor information, and as a result, can see the same mixed reality space.
  • the mixed reality space can be shared without downloading the anchor information when the target mixed reality space is visited from the second time onward.
  • the MR terminal 100 further shifts to the determination block D13 in order to determine whether or not there is enough storage on the own terminal to store other anchor information (S20).
  • the adjacency information requesting unit 208 informs the server 10 about the adjacent room and the anchor information associated with the room. Is requested (S21), downloaded from the server 10 (S22), and stored on the own terminal in the adjacent information storage processing unit 209. After that, optionally, the determination block D13 may be returned again (S23), and if there is still free storage, information on another adjacent room and anchor information may be requested. If there is no free storage in the determination block D13, the process ends.
  • the room management unit 21 confirms the existence of the room and returns it to the MR terminal 100 (S12).
  • the server 10 sends the latest information on which room the MR terminal 100 is in from the room management unit 21 to the terminal state management unit 24 (S24), and the terminal state management unit 24 Adds this information to the room information storage unit 31.
  • the room creation unit 22 creates the requested room and transmits the information of the created room to the MR terminal 100 in order to receive the room creation request from the MR terminal (S13) (S14). ..
  • the anchor information sharing unit 26 stores the received anchor information in association with the created room. After that, when the server 10 receives the request for anchor information from another MR terminal 100 (for example, MR terminal # 2) in the same room, the server 10 can transmit the anchor information to the MR terminal # 2.
  • the adjacency setting unit 27 states that the MR terminal 100 has moved the room based on the information (S25) from the terminal state management unit 24 or the information (S26) from the room creation unit 22. If it is judged, check whether there is a record that you were in another room until just before that, and if there is a record that you were in another room, between the rooms based on that record Set adjacencies.
  • the server 10 When the server 10 receives the request for information about the adjacent room from the MR terminal 100 (S21), the server 10 determines whether or not there is an adjacent room in which the anchor information is not shared (D14), and if there is (D14-YES). ), The transmission control unit 28 transmits the information of the adjacent room and the anchor information associated with the room to the MR terminal 100 (S22). If there is no adjacent room in the determination block D14 where the anchor information is not shared, the process ends. At this time, a message indicating that there is no adjacent room may be generated and the server 10 may respond to the MR terminal 100.
  • FIG. 13 is a flowchart showing the processing procedure and the processing content.
  • step S11 the MR terminal 100 performs a process of establishing a connection to the server 10 under the control of the control unit 120.
  • step S12 the MR terminal 100 determines whether or not its own terminal is already in the room under the control of the control unit 120. If it is determined that the room has not been entered yet (NO), the process proceeds to the room confirmation process in step S15 in order to confirm which room the current room corresponds to. On the other hand, if it is determined that the room has already been entered (YES), the process proceeds to step S13.
  • step S13 under the control of the control unit 120, the MR terminal 100 confirms where its own position is in the 3D information it has by the exit determination unit 210.
  • step S14 the MR terminal 100 determines whether or not it is outside the target space of the room by the exit determination unit 210, and if it is determined that it is inside the target space (NO), for example, at a predetermined time interval. Then, the process of confirming whether or not the person has left is performed. On the other hand, when it is determined that the user is outside the target space (YES), the process proceeds to the room confirmation process in step S15 in order to confirm which room the current room corresponds to.
  • step S15 the MR terminal 100 performs a room confirmation process under the control of the control unit 120.
  • FIG. 14 is a flowchart showing an example of the room confirmation process in step S15.
  • step S1501 the MR terminal 100 acquires 3D information as spatial information representing the current real space by the spatial information acquisition unit 201 under the control of the control unit 120.
  • the 3D information can include, for example, space shape information.
  • step S1502 the MR terminal 100 transmits the acquired 3D information to the server 10 by the room confirmation unit 202 under the control of the control unit 120.
  • step S1503 the MR terminal 100 receives an answer regarding the presence or absence of a room from the server 10.
  • This answer includes, for example, information (room ID) that identifies the room if it exists.
  • step S1504 the MR terminal 100 determines whether or not the response received from the server 10 indicates that the room corresponding to the transmitted 3D information is on the server 10 by the room confirmation unit 202. If it is determined that there is a room (YES), the process proceeds to step S1505.
  • step S1505 the MR terminal 100 determines whether or not the necessary anchor information is stored in the own terminal by the anchor information management unit 204 under the control of the control unit 120.
  • the anchor information management unit 204 determines whether or not the anchor information corresponding to the room is stored in the anchor information storage unit 131 based on the room ID included in the response received from the server 10. .. If the anchor information is saved (YES), the process proceeds to step S1508. On the other hand, when the anchor information is not saved (NO), the process proceeds to step S1506 in order to acquire the necessary anchor information.
  • step S1506 the MR terminal 100 requests the server 10 for anchor information corresponding to the room ID by the anchor information DL unit 206 under the control of the control unit 120.
  • step S1507 the MR terminal 100 acquires (downloads) anchor information from the server 10.
  • step S1504 determines whether there is no room (NO) or not. If it is determined in step S1504 that there is no room (NO), the process proceeds to step S1509.
  • step S1509 the MR terminal 100 transmits a room creation request to the server 10 by the room creation request unit 203 under the control of the control unit 120.
  • the server 10 transmits, for example, a room ID that identifies the newly created room to the MR terminal 100.
  • step S1510 the MR terminal 100 calculates the anchor information under the control of the control unit 120 and stores it in the anchor information storage unit 131.
  • the calculated anchor information may be stored in association with the room ID of the newly created room that has been received, if any. Alternatively, the calculated anchor information may be stored in association with the acquired 3D information.
  • step S1511 the MR terminal 100 uploads the calculated anchor information to the server 10 by the anchor information UL unit 205 under the control of the control unit 120.
  • step S1507 After downloading the anchor information from the server 10 in step S1507, or after calculating the anchor information in step S1510 (or further uploading the anchor information calculated in step S1511 to the server 10), the MR terminal 100 moves to step S1508. Transition.
  • step S1508 the MR terminal 100 performs a process of attaching the acquired anchor information to the mixed reality space by the anchor information expansion unit 207 under the control of the control unit 120.
  • the anchor information expansion unit 207 passes the processed data to the output image generation unit 211, so that the output image generation unit 211 generates output data such as an image representing the mixed reality space at an arbitrary timing, for example. Then, it can be output to the output device 170.
  • step S16 the MR terminal 100 performs the adjacent room information acquisition process under the control of the control unit 120.
  • FIG. 15 is a flowchart showing an example of the adjacent room information acquisition process in step S16 shown in FIG.
  • step S1601 the MR terminal 100 determines whether or not storage capable of storing other anchor information is available under the control of the control unit 120. When it is determined that there is no free space in the storage (for example, the anchor information storage unit 131) (NO), the process ends. If it is determined that there is free storage (YES), the process proceeds to step S1602.
  • step S1602 under the control of the control unit 120, the MR terminal 100 receives information on an adjacent room (for example, a room ID) adjacent to the room currently in the room and anchor information of the adjacent room by the adjacent information requesting unit 208. To request. At this time, one adjacent room and its anchor information may be requested according to the free storage, or if there are a plurality of adjacent rooms, a plurality of adjacent rooms and their respective anchor information may be requested. It may be.
  • an adjacent room for example, a room ID
  • anchor information of the adjacent room by the adjacent information requesting unit 208.
  • the MR terminal 100 receives information on an adjacent room (for example, a room ID) adjacent to the room currently in the room and anchor information of the adjacent room by the adjacent information requesting unit 208. To request. At this time, one adjacent room and its anchor information may be requested according to the free storage, or if there are a plurality of adjacent rooms, a plurality of adjacent rooms and their respective anchor information may be requested. It may be.
  • the MR terminal 100 acquires the requested adjacent room information and the anchor information of the adjacent room under the control of the control unit 120, and under the control of the adjacent information storage processing unit 209, the anchor information storage unit 131. Save to.
  • the anchor information storage unit 131 can store, for example, the room ID and the anchor information in association with each other.
  • the anchor information storage unit 131 may further store all or part of the acquired spatial information in association with the room ID.
  • FIGS. 13 to 15 are not limited to the order shown in the drawings, and if the same effect is achieved, the order may be changed or a plurality of processes may be performed in parallel. You may do so. Further, some of the processes may be omitted or replaced with similar processes. Alternatively, the process shown in one step may be carried out in a plurality of steps, or the process shown in a plurality of steps may be carried out in one step.
  • FIG. 16 is a flowchart showing an example of the processing procedure and the processing content. It is assumed that the server 10 has established a connection with the MR terminal 100 in advance.
  • step S101 the server 10 monitors the reception of 3D information from the MR terminal 100 under the control of the control unit 20.
  • the process proceeds to step S102.
  • step S102 under the control of the control unit 20, the room management unit 21 determines whether or not the room corresponding to the 3D information received from the MR terminal 100 is in the room information storage unit 31. Do. As described above, the room management unit 21 collates, for example, 3D information to search for the room having the largest degree of similarity in shape within a certain level. If it is determined that there is a room (YES), the process proceeds to step S103.
  • step S103 the server 10 performs a process of returning a determination result to the MR terminal 100 under the control of the control unit 20.
  • the server 10 generates a message including information for identifying the room (for example, a room ID) and transmits it to the MR terminal 100.
  • step S104 the server 10 performs a process of associating the room with the MR terminal 100, which is the source of the 3D information, under the control of the control unit 20.
  • step S105 the server 10 determines whether or not a request for anchor information has been received from the MR terminal 100 under the control of the control unit 20.
  • the MR terminal 100 determines whether or not the anchor information corresponding to the room ID is stored on the own terminal based on the room ID included in the message transmitted by the server 10, and stores the anchor information. If not, request anchor information from the server 10.
  • the server 10 receives the message requesting the anchor information from the MR terminal 100 (YES)
  • the server 10 proceeds to step S106, and when it does not receive the message (NO), the server 10 proceeds to step S107 for the adjacency setting process.
  • the server 10 waits for a certain period of time after returning the determination result of the presence or absence of the room to the MR terminal 100, and if the request is not received within that time, the process proceeds to step S107. It is configured (progresses to NO in determination step S105).
  • step S106 the server 10 reads the anchor information requested from the MR terminal 100 from the room information storage unit 31 based on the room ID by the anchor information sharing unit 26 under the control of the control unit 20, and requests the request source. After transmitting to the MR terminal 100 of the above, the process proceeds to step S107 for the adjacency setting process.
  • step S102 if the room management unit 21 determines that there is no room (NO), the process proceeds to step S108.
  • step S108 the server 10 performs a process of returning a determination result to the MR terminal 100 under the control of the control unit 20. For example, the server 10 generates a message indicating that the room does not exist and sends it to the MR terminal 100.
  • step S109 the server 10 monitors the reception of the room creation request from the MR terminal 100 under the control of the control unit 20, and when the room creation request is received (YES), the process proceeds to step S110. If the room creation request is not received even after a certain period of time has elapsed in step S109, the server 10 may perform a process of returning the determination result to the MR terminal 100 again, or end the process. You may.
  • step S110 the server 10 that has received the room creation request from the MR terminal 100 performs a process of creating a new room by the room creation unit 22 under the control of the control unit 20. At this time, the server 10 associates the 3D information received in step S101 with the newly created room and stores it in the room information storage unit 31.
  • step S111 the server 10 monitors the reception of anchor information from the MR terminal 100 under the control of the control unit 20.
  • the process proceeds to step S112. If the anchor information is not received even after a certain period of time has elapsed in step S111, the server 10 may request the MR terminal 100 to upload the anchor information, or may end the process. Good.
  • step S112 under the control of the control unit 20, the anchor information sharing unit 26 associates the received anchor information with the newly created room and stores it in the room information storage unit 31. After that, the server 10 proceeds to step S107 for the adjacency setting process.
  • step S107 the server 10 performs the adjacency setting process under the control of the control unit 20.
  • FIG. 17 is a flowchart showing an example of the adjacency setting process of step S107 shown in FIG.
  • step S701 under the control of the control unit 20, the terminal status reference unit 23 records that the MR terminal 100, which is the source of the 3D information, is in another room in the room information storage unit 31 until just before. Check if there is. If there is a record of being in another room (YES), the process proceeds to step S702, and if there is no record of being in another room (NO), step S702 is skipped and the process proceeds to step S703.
  • step S702 under the control of the control unit 20, the adjacency setting unit 27 estimates that the room corresponding to the received 3D information and the other recorded room are adjacent to each other. Then, an adjacency relationship is set with the information stored in the room information storage unit 31 for each room.
  • step S703 the server 10 changes the room containing the MR terminal 100 to the room corresponding to the latest received 3D information by the terminal state update unit 25 under the control of the control unit 20.
  • the server program runs on a notebook PC (memory: 16 GB, CPU: Intel® Core i7, 2.8 GHz, OS: Windows® 10, 64 bits), and HoloLens and the notebook PC are Wi. -Connected by Fi.
  • communication between HoloLens and the notebook PC was performed by UDP.
  • Condition 1 It is assumed that 81 rooms are created on the server 10 and anchor information is uploaded to each of them.
  • Condition 2 The MR terminal 100 can recognize that it has gone out of the mixed reality space of one room and has entered another room.
  • Condition 3 The adjacency between rooms has already been set, and the adjacency has already been recognized by the MR terminal 100.
  • the process related to the download of anchor information used the method of downloading the anchor information of the room from the server 10 each time the room was entered, as in the conventional technique.
  • FIG. 18 shows the change in the delay time [seconds] with respect to the waiting time T [minutes] in each room
  • FIG. 19 shows the change in the number of anchor information requests with respect to the waiting time T [minutes] in each room. ing.
  • the information processing system 1 can reduce the delay time until the start of mixed reality space sharing by about half as compared with the conventional technique. This is because the information processing system 1 can download the anchor information of the current room and the adjacent room before moving to that room based on the adjacency relationship between the rooms constructed in the server 10. ..
  • the number of times the anchor information is requested from the server 10 is increased as compared with the conventional technique. This is because, as described above, not only the anchor information of the current room but also the anchor information of the adjacent room is downloaded.
  • FIG. 20 shows the change in the delay time [seconds] with respect to the number of stored anchors K
  • FIG. 21 shows the change in the number of requests for anchor information with respect to the number of stored anchors K.
  • FIG. 22 shows the change in the delay time [seconds] with respect to the number of adjacent rooms
  • FIG. 23 shows the change in the number of anchor information requests with respect to the number of adjacent rooms. Since the performance does not change even if N is changed in the prior art, only the performance value when the information processing system 1 according to the above embodiment is used is shown.
  • one mixed reality space can be shared among a plurality of MR terminals 100, and each user can see the same mixed reality space.
  • the MR terminal 100 cannot determine in which mixed reality space the MR terminal 100 is currently located, so that the MR terminal 100 is located on the server 10. I don't know if I should enter the room, and I can't share the mixed reality space.
  • each room managed on the server 10 is provided with 3D information of the corresponding real space shape, and is collated with the 3D information acquired by the MR terminal 100. ..
  • the MR terminal 100 can identify in which mixed reality space it is currently located (solving problems 1 and 3).
  • the MR terminal 100 can recognize whether the self-position is inside or outside the target space of the room in which the MR terminal 100 is located (solving problem 2).
  • a plurality of mixed reality spaces can be shared among a plurality of MR terminals 100.
  • the anchor information required for each room is different, if you simply try to share multiple mixed reality spaces (in the same way as in the conventional technology), the anchor information will be downloaded from the server 10 every time the room changes. Therefore, a large delay will occur before the start of sharing.
  • the information on the adjacency is utilized to download the anchor information of the adjacent rooms in advance. I did it. As a result, it is possible to reduce the delay that occurs until the mixed reality space is shared after the MR terminal 100 moves in the room (solving problem 4).
  • the MR terminal 100 that generated a certain room builds an adjacency between the rooms based on the information of the room in which the MR terminal 100 has stayed so far.
  • the space in which the user wearing the 100 moves next is narrowed down.
  • the amount of communication can reduce the delay required for sharing multiple mixed reality spaces.
  • the present invention is not limited to the above embodiment.
  • the functional units 201 to 211 included in the MR terminal 100 may be distributed and arranged in a plurality of devices, and the devices may cooperate with each other to perform processing.
  • the functional units included in the MR terminal 100 may be provided on the server 10, or it is also possible to provide some functional units on a user terminal (not shown) such as a smartphone.
  • each functional unit may be realized by using a circuit.
  • the circuit may be a dedicated circuit that realizes a specific function, or may be a general-purpose circuit such as a processor.
  • the functional units 21 to 28 included in the server 10 may be distributed and arranged in a plurality of devices.
  • the adjacency setting process by the adjacency setting unit 27 of the server 10 may use the building layout information stored in a database (not shown) or the information representing the positional relationship input by the operator.
  • the MR terminal 100 is not limited to the optical transmission type such as the above-mentioned HoloLens, and may be a video transmission type terminal using an image taken by a camera. Further, the MR terminal 100 is not limited to the head-mounted display, and may be a handheld display, a wearable computer of another format, a smartphone, a tablet terminal, or the like.
  • the MR terminal 100 may delete the last saved anchor information from the storage or retain it each time the main body is shut down.
  • the process of newly acquiring anchor information from the server 10 after starting can be omitted by retaining the last saved information in the storage.
  • the MR terminal 100 may determine the exit from the room by periodically transmitting 3D information to the server 10 and making an inquiry, or the acquired 3D information is held for a certain period of time and held by itself. The position of oneself may be estimated by comparison with the existing 3D information, and the exit from the room may be determined.
  • the MR terminal 100 may detect the movement of the room as a real space by receiving a signal from a beacon installed in each room. In this case, the MR terminal 100 may reacquire the 3D information every time the movement of the room is detected and transmit it to the server 10 for confirming the room.
  • a "room” is given as an example of the real space, but the real space that is the basis for constructing the mixed reality space is not limited to an indoor room surrounded by walls or the like. Absent.
  • the above embodiment can be applied to any space in which anchors for mapping virtual objects can be placed, and may be outdoors or may be a partial area of a room. Further, as described above, the above embodiment can be applied to share the same virtual information between different real spaces such as between classrooms in a school.
  • the above embodiment is not limited to the above-mentioned information processing system 1, server 10 or MR terminal 100, and other information processing systems and servers that share anchor information corresponding to the spatial information of the current space. It can also be applied to information processing devices or terminals.
  • the present invention is not limited to the above embodiment, and can be variously modified at the implementation stage without departing from the gist thereof.
  • each embodiment may be carried out in combination as appropriate, in which case the combined effect can be obtained.
  • the above-described embodiment includes various inventions, and various inventions can be extracted by a combination selected from a plurality of disclosed constituent requirements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, if the problem can be solved and the effect is obtained, the configuration in which the constituent requirements are deleted can be extracted as an invention.
  • Room confirmation unit 203 ... Room Creation request unit 204 ... Anchor information management unit 205 ; Anchor information upload (UL) unit 206 ... Anchor information download (DL) unit 207 ; Anchor information expansion unit 208 ... Adjacent information request unit 209 ... Adjacent information storage processing unit 210 ... Exit judgment Part 211 ... Output image generation part

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

複数の複合現実空間を端末間で共有するときの処理遅延を軽減するための技術を提供する。 現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する端末と、当該端末との間で通信が可能なサーバ装置とを備える情報処理システムにあって、サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、現実空間における仮想空間の重畳位置を規定するためのアンカー情報とを管理し、端末から第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、第1の現実空間に対応するアンカー情報と、第1の現実空間に隣接する第2の現実空間に対応するアンカー情報とを含む回答情報を端末に送信し、端末は、サーバ装置から受信した回答情報を記憶し、第2の現実空間に入った場合にそれに対応するアンカー情報に基づいて複合現実空間を表す画像を表示するようにした。

Description

情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム
 この発明の一態様は、複合現実(MR:Mixed Reality)空間の構築に用いられる情報処理のための情報処理システムと、このシステムで使用される情報処理端末およびサーバ、ならびに情報処理方法およびプログラムに関する。
 近年、拡張現実(AR:Augmented Reality)/仮想現実(VR:Virtual Reality)技術の進化に伴い、これらを統合した複合現実(MR:Mixed Reality)が注目されている。MRとは、仮想情報を現実空間上に投影することで、仮想空間と現実空間が混合した空間(以下、「複合現実空間」と言う。)を構築する技術のことを指し、その市場規模は年々増加している。
 このようなMRを実現する代表的なデバイスとして、Microsoft社のHoloLens(登録商標)が知られている(例えば、非特許文献1参照)。HoloLensには、現実空間を表す情報を3D情報として取得するためのセンサが搭載されており、このセンサが取得した情報に基づいて生成された現実空間の3Dモデルに対して仮想情報をマッピングすることによって、仮想空間と現実空間を混合する。このようにして構築された複合現実空間を、透過型のホログラムレンズに投影することによって、ユーザに複合現実空間を体験させている。
 また、HoloLensをはじめとするMR端末は、スマートフォンに代わる次世代モバイル端末としても注目を浴びつつある(例えば、非特許文献2,3,4参照)。したがって、将来的には上記の例に限らず、より汎用的に、かつ屋外屋内問わず様々な場所で使われるものと考えられる。
 MRの応用例として、「室内に3Dモデルを投影し、レイアウトをシミュレーションする」といった個人で完結するもの(例えば、非特許文献5参照)、「建設業や製造業において、オペレータからの指示を現場作業員の視界に仮想情報として提示するもの」(例えば、非特許文献6参照)、「不動産業において、ビルの建設予定地に完成後のビルの姿を3Dオブジェクトとして顧客の視界に提示するもの」(例えば、非特許文献7参照)などが提案されている。
 このように、MRは、複数人での協調作業や意思決定の際に現実空間内で仮想情報を共有するための技術として注目を浴びている。
 このような背景のもと、Microsoft社は「コラボラティブ・コンピューティング」を提唱している。コラボラティブ・コンピューティングとは、個々人がPCを介して見ている情報を現実空間に投影し、その情報とあたかも現実物体に触れるかのようにインタラクションしながら複数人で共有する、コンピューティングモデルである。このコンピューティングモデルが浸透すれば、情報を見たり共有したりする場所が、PCやスマートフォンのディスプレイではなく、現実空間そのものになる。このように、MRにおいて複合現実空間を複数人で共有する技術は、今後ますます重要になっていくものと考えられる。
 Microsoft社は、複合現実空間の共有を簡単に実現できるように、空間共有サービス(以下、「シェアリングサービス」と言う。)を提供している(例えば、非特許文献8参照)。このシェアリングサービスでは、仮想物体を複合現実空間内に固定するための情報(アンカー情報)を、サーバを介してMR端末間で共有する。アンカー情報を受け取った各MR端末は、アンカー情報をもとに計算された座標からの相対位置に仮想物体を表示する。これにより、各MR端末は現実空間内の同じ位置に仮想物体を表示できるため、複数のユーザが同じ複合現実空間を見ることができる。
 また、サーバプログラム内では、共有する複合現実空間に関する情報が「ルーム」として管理されており、アンカー情報もこのルーム内に保存されている。プログラム上では、同じルームに紐づけられたMR端末へ当該アンカー情報を送信することによって、複合現実空間の共有を実現している。
インターネット <URL: https://www.microsoft.com/ja-jp/hololens> Taleb, Tarik, et al. "PERMIT: Network slicing for personalized 5G mobile telecommunications," IEEE Communications Magazine, 55(5), pp.88-93, 2017. Debandi, Federico, et al. "Enhancing cultural tourism by a mixed reality application for outdoor navigation and information browsing using immersive devices," IOP Conference Series: Materials Science and Engineering, 364(1), pp.12-48, 2018. インターネット <URL: https://www.bloomberg.com/news/features/2017-05-03/microsoft-gets-hardware-religion> インターネット <URL: https://dynamics.microsoft.com/ja-jp/mixed-reality/layout/> インターネット <URL: https://dynamics.microsoft.com/ja-jp/mixed-reality/remote-assist/> インターネット <URL: https://www.nextscape.net/news/2017/05/20170523> インターネット <URL: https://github.com/Microsoft/MixedRealityToolkit/tree/c562ff9582cd10ea0448fd846f7b2bb261e8f551> インターネット <URL: https://www.nngroup.com/articles/response-times-3-important-limits/>
 従来のシステムにおいても、MR端末との間で通信可能なマシン上でサーバプログラムが起動している状態で、異なるMR端末間で複合現実空間を共有することができる。ここで、そのようなMR端末間で複合現実空間の共有を実施する従来の処理の一例について説明する。以下では、サーバプログラムが動作しているマシンを「サーバ」と言う。
 まず、従来のシステムに係るクライアント(MR端末)側の処理の一例について説明する。
 MR端末との間で通信可能なサーバ上でサーバプログラムが起動している状態で、サーバに接続したMR端末は、共有したい空間のルームが既にあるか否かの確認を行うために、当該ルームの名前をサーバへ送信する。該当するルームがサーバ内にない場合、MR端末は、サーバに対し、サーバ上にルームの作成を要求する。その後、MR端末は、自端末上で計算したアンカー情報をルームへアップロードする。
 一方、当該ルームがサーバ内に見つかった場合、MR端末は、サーバに対し、当該ルームのアンカー情報を要求し、アンカー情報をダウンロードする。
 その後、MR端末は、自身が認識している複合現実空間に、ダウンロードしたアンカー情報を取り付ける。これにより、同じルームに入ったMR端末は、同じアンカー情報を取得でき、結果として同じ複合現実空間をMR端末のユーザに体験させることができる。また一度取得したアンカー情報はローカルに保存できるので、2回目以降に対象の複合現実空間を訪れた場合、アンカー情報のダウンロードなしに複合現実空間を共有することができる。
 続いて、従来のシステムに係るサーバ側の処理の一例について説明する。
 サーバは、MR端末からルームの名前を含む確認メッセージを受信した場合、当該ルームの有無を確認し、MR端末へ返信する。このとき、当該ルームが存在すれば、サーバは、確認メッセージの送信元であるMR端末とそのルームを紐づける。以降ではこの処理を、「MR端末をルームに入れる」と表現する。当該ルームが存在しない場合、上述のようにMR端末からルーム作成要求が送信されるので、サーバは、このルーム作成要求の受信に応答して、要求されたルームを作成する。
 その後、サーバは、MR端末から受信したアンカー情報を、作成したルームに紐づけて保存する。以後、サーバは、同じルームに入っている別のMR端末からアンカー情報の要求を受信した場合、そのアンカー情報をMR端末へ送信する。
 このように、従来のシステムでも、複数人に1つの複合現実空間を共有させることができる。しかしながら、HoloLensをはじめとするMR端末がスマートフォンのように普及した場合、屋内屋外問わず様々な場所で複合現実空間を共有したいとの要望が増加するものと考えられる。このような状況を想定していない従来技術では、複数の複合現実空間の共有を実現するためには、以下のような課題がある。
  (課題1)従来技術では、ルーム名によって共有したいルームの存在を確認しているので、MR端末が今後自身の訪れるルーム名をすべて事前に把握しておく必要がある。
  (課題2)あるルーム(例えば、ルームA)に入っているMR端末が、ルームAの複合現実空間の外に出たことを検知できない。
  (課題3)複数存在する複合現実空間のうち、MR端末自身が今どの空間内に位置しているかが判断できない。そのため、上記課題1~2が解決されたとしても、どのルーム名をサーバに問い合わせればよいかが判断できない。
  (課題4)課題1~3が解決されたとしても、新しいルームに入るたびに、サーバからアンカー情報を取得しなおさなければならず、共有開始までに、ユーザに不快感を与えてしまうほどの遅延が発生する場合がある(例えば、非特許文献9参照)。例えば、検証実験により、MR端末の隣に設置したパーソナルコンピュータ(PC)とUDP(User Datagram Protocol)通信でアンカー情報を取得した場合や、都内のデータセンターにあるマシン上でシェアリングサービスを動作させ、同じく都内からモバイル網を用いてTCP通信でアンカー情報を取得した場合に、十数秒の遅延発生が計測された。
 これらの課題を解決するためには、MR端末が現実空間を移動するのに応じて、共有対象の複合現実空間、すなわちルームを切り替えることができ、かつ複数の複合現実空間を高速に共有できるようにするための技術が必要になる。
 この発明は上記事情に着目してなされたもので、その目的とするところは、複数の複合現実空間を複数の端末で共有するときに生じる情報処理の遅延を軽減する技術を提供することにある。
 上記課題を解決するために、この発明の第1の態様は、現実空間を表す空間情報を取得して、上記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、上記情報処理端末との間で通信が可能なサーバ装置とを備える情報処理システムにあって、上記サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、上記現実空間における上記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理する複合空間管理部と、上記情報処理端末から上記複数の現実空間のうち第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、上記第1の現実空間に対応する複合空間管理情報に基づいて、上記第1の現実空間に対応する第1のアンカー情報および上記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を含む回答情報を、上記要求元の情報処理端末へ送信する回答部とを備え、上記情報処理端末が、上記複数の現実空間のうち第1の現実空間に入った場合に、上記アンカー情報の取得要求を上記サーバ装置へ送信して、上記サーバ装置から上記回答情報を取得する回答情報取得部と、上記取得された回答情報を記憶媒体に記憶し、上記第2の現実空間に入った場合に、上記記憶媒体に記憶された回答情報に含まれる上記第2のアンカー情報に基づいて、上記第2の現実空間に上記仮想空間を重畳させた複合現実空間を表す情報を生成する複合空間情報生成部とを備えるようにしたものである。
 この発明の第2の態様は、上記現実空間を識別する情報が、上記情報処理端末により取得された上記現実空間を表す空間情報を含み、上記複合空間管理情報が、上記情報処理端末から受信した空間情報に基づいて推定された、当該情報処理端末がどの現実空間に位置するかを表す端末状態情報をさらに含むようにしたものである。
 この発明の第3の態様は、上記サーバ装置が、上記端末状態情報と、上記情報処理端末から新たに受信した空間情報とに基づいて、上記複数の現実空間に関する隣接関係を推定し、推定結果を上記複合空間管理部に出力する、隣接関係推定部をさらに備えるようにしたものである。
 この発明の第4の態様は、現実空間を表す空間情報を取得して上記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末との間で通信が可能な、プロセッサと、上記プロセッサに接続されたメモリとを備えるサーバ装置にあって、上記メモリが、複数の現実空間の各々について、当該現実空間を識別する情報と、上記現実空間における上記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報を記憶する記憶部を備え、上記プロセッサが、上記情報処理端末から上記複数の現実空間のうち第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、上記第1の現実空間に対応する複合空間管理情報に基づいて、上記第1の現実空間に対応する第1のアンカー情報および上記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を含む回答情報を、上記要求元の情報処理端末へ送信する処理を実行するように構成されるようにしたものである。
 この発明の第5の態様は、現実空間に仮想空間を重畳させた複合現実空間を構築するための重畳位置を規定するアンカー情報を管理するサーバ装置との間で通信が可能な、プロセッサと、上記プロセッサに接続されたメモリと、上記アンカー情報に基づいて構築された上記複合現実空間を表す画像を表示する表示部とを備える情報処理端末にあって、上記プロセッサが、上記情報処理端末が複数の現実空間のうち第1の現実空間に入った場合に、当該第1の現実空間を表す空間情報を取得し、上記取得した空間情報を上記サーバ装置へ送信して上記アンカー情報を要求し、上記アンカー情報の要求に対して上記サーバ装置から受信した回答に基づいて、上記第1の現実空間に対応する第1のアンカー情報および上記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を上記メモリに記憶させ、上記情報処理端末が上記第2の現実空間に入った場合に、上記メモリに記憶された上記第2のアンカー情報に基づいて、上記第2の現実空間に上記仮想空間を重畳させた複合現実空間を表す情報を生成し上記表示部に表示させるように構成されるようにしたものである。
 この発明の第1および第4の態様によれば、アンカー情報を管理するサーバ装置は、情報処理端末から第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、その取得要求に応答して、第1の現実空間に対応するアンカー情報と、第1の現実空間に隣接する第2の現実空間に対応するアンカー情報とを含む回答を情報処理端末に送信する。回答を受信した情報処理端末は、第1の現実空間に対応するアンカー情報と、第1の現実空間に隣接する第2の現実空間に対応するアンカー情報とを、第2の現実空間に入る前に取得し、記憶することができる。
 このように、情報処理端末は、複合現実空間を共有するために必要なアンカー情報を、現在入っている現実空間に対応するものだけでなく、次に移動する可能性のある他の現実空間に対応するアンカー情報もあらかじめ取得して記憶しておくことができる。したがって、情報処理端末は、他の現実空間に移動したときに、記憶されたアンカー情報に基づいて複合現実空間を表す画像を生成し表示することができ、他の現実空間に移動した後で必要なアンカー情報を取得する場合に比べて、複合現実空間を共有する際の処理遅延を大幅に軽減することができる。
 この発明の第2の態様によれば、サーバ装置は、複合空間管理部により管理される複合空間管理情報において、情報処理端末によって取得された現実空間を表す空間情報を、現実空間を識別する情報として管理し、またさらに、情報処理端末から受信した空間情報に基づいて情報処理端末がどの現実空間に位置するかの推定結果を表す端末状態情報も管理する。
 このように、サーバ装置は、情報処理端末から受信した空間情報と、アンカー情報を含む複合空間管理情報とを関連付けて管理しているので、情報処理端末からのアンカー情報の要求に対して、その要求に含まれる空間情報に基づき容易に応答することができる。また、サーバ装置は、情報処理端末が位置する現実空間の推定結果を管理しているので、情報処理端末からの要求に対し、位置関係を考慮した適切な情報を送信することができる。情報処理端末は、取得した空間情報をもとにサーバ装置に問い合わせることによって、自身がどの現実空間に位置するか、新たなアンカー情報を取得する必要があるかを確認することができ、複合現実空間の共有を円滑にすることができる。
 この発明の第3の態様によれば、サーバ装置は、管理している端末状態情報と、情報処理端末から新たに受信した空間情報とをもとに、現実空間の隣接関係を推定し、その推定結果を、上記アンカー情報を管理する複合空間管理部に出力する。これにより、あらかじめサーバ装置に現実空間の隣接関係を登録するなどの煩雑な操作を要することなく、サーバ装置は、現実空間の隣接関係を推定し、アンカー情報を適切に管理することができる。また情報処理端末は、適時にサーバ装置に問い合わせることによって隣接関係にあるアンカー情報だけを記憶することができ、複合現実空間の高速共有を実現しつつ、ストレージを節約し、通信量を抑えることもできる。
 この発明の第5の態様によれば、アンカー情報を管理するサーバ装置との間で通信可能な情報処理端末は、第1の現実空間に入ったとき、第1の現実空間を表す空間情報を取得し、サーバ装置にこの空間情報を送信してアンカー情報を要求する。そして、情報処理端末は、この要求に対してサーバ装置から得られた回答に基づいて、上記第1の現実空間に対応するアンカー情報と、第1の現実空間に隣接する第2の現実空間に対応するアンカー情報とをメモリに記憶させる。これにより、情報処理端末は、第2の現実空間に入ったときには、あらかじめ記憶していた第2の現実空間に対応するアンカー情報を用いて複合現実空間を表す情報を生成して表示させることができる。したがって、情報処理端末が第2の現実空間に入った後で必要なアンカー情報をサーバ装置から取得する場合に比べて、その処理に要する遅延をなくすことができ、複合現実空間の高速共有を実現することができる。
 すなわちこの発明の各態様によれば、複数の複合現実空間を複数の端末で共有するときに生じる情報処理の遅延を軽減する技術を提供することができる。
図1は、この発明の一実施形態に係る情報処理システムの全体構成を示す図である。 図2は、この発明の一実施形態に係る情報処理端末としてのMR端末のハードウェア構成を示すブロック図である。 図3は、この発明の一実施形態に係る情報処理端末としてのMR端末のソフトウェア構成を示すブロック図である。 図4は、この発明の一実施形態に係るサーバ装置のハードウェア構成を示すブロック図である。 図5は、この発明の一実施形態に係るサーバ装置のソフトウェア構成を示すブロック図である。 図6は、この発明の一実施形態に係る複合現実空間を共有する動作の第1の例を示す図である。 図7は、この発明の一実施形態に係る複合現実空間を共有する動作の第2の例を示す図である。 図8は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第1の例を示す図である。 図9は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第2の例を示す図である。 図10は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第3の例を示す図である。 図11は、この発明の一実施形態に係るルームの確認および作成ならびに隣接関係の設定の処理の一例を示す図である。 図12は、この発明の一実施形態に係る複合現実空間を共有する処理の一例を示す図である。 図13は、図5に示した情報処理端末による起動からルーム情報を取得するまでの処理手順と処理内容の一例を示すフローチャートである。 図14は、図13に示したフローチャートのうちルーム確認処理の一例を示すフローチャートである。 図15は、図13に示したフローチャートのうち隣接ルーム情報取得処理の一例を示すフローチャートである。 図16は、図3に示したサーバによる処理手順と処理内容の一例を示すフローチャートである。 図17は、図16に示したフローチャートのうち隣接関係設定処理の一例を示すフローチャートである。 図18は、待機時間を変化させたときの遅延時間の検証結果を示す図である。 図19は、待機時間を変化させたときのアンカー情報要求回数の検証結果を示す図である。 図20は、アンカーの保存数を変化させたときの遅延時間の検証結果を示す図である。 図21は、アンカーの保存数を変化させたときのアンカー情報要求回数の検証結果を示す図である。 図22は、ルームの隣接数を変化させたときの遅延時間の検証結果を示す図である。 図23は、ルームの隣接数を変化させたときのアンカー情報要求回数の検証結果を示す図である。
 以下、図面を参照してこの発明に係わる実施形態を説明する。
 [一実施形態]
(1)構成
(1-1)システム
 図1は、この発明の一実施形態に係る情報処理システムの全体構成の一例を示す図である。 
 このシステムは、ネットワークNWを介して互いに通信可能な、サーバ装置としてのサーバ10と、情報処理端末としての複合現実(MR)端末100-1,100-2,・・・(以下、まとめて「MR端末100」と言う)とを備えている。
 ネットワークNWは、例えば中継網と、この中継網に対しアクセスするための複数のアクセス網とから構成される。中継網としては、一般的なインターネットのような公衆網や限られた機器などからのみアクセスできるよう制御された閉域網が用いられる。アクセス網としては、例えば、無線LAN(Local Area Network)、携帯電話網、有線電話網、FTTH(Fiber To The Home)、CATV(Cable Television)網が用いられる。
 MR端末100は、現実空間を表す空間情報を3D情報として取得し、取得した3D情報に基づいて構築された複合現実空間をユーザに体験させるもので、例えば、Microsoft社のHoloLensのようなヘッドマウントディスプレイ型の情報処理端末である。
 サーバ10は、MR端末100と通信し、複合現実空間を複数のMR端末100に共有させるための情報の生成および管理を行うもので、例えば、ゲームやアプリケーションなどを開発/提供する事業者が運営管理するサーバコンピュータである。
 サーバ10は、複数のMR端末100に対し、複合現実空間に対して仮想物体を固定するために使用される「アンカー」の情報(「アンカー情報」)を共有させることにより、複合現実空間を共有させる。サーバ10は、このようなアンカー情報を、MR端末により取得された現実空間の3D情報とともに、各現実空間に対応する複合現実空間を表す「ルーム」として管理する。
(1-2)MR端末
(1-2-1)ハードウェア構成
 図2は、この発明の一実施形態に係る情報処理端末としてのMR端末100のハードウェア構成の一例を示すブロック図である。
 MR端末100は、例えば、CPU(Central Processing Unit)、GPU、ホログラフィ用のプロセッサ等のハードウェアプロセッサを組み合わせたハードウェアプロセッサ120Aを有する。そして、このハードウェアプロセッサ120Aに対し、プログラムメモリ120B、データメモリ130、通信インタフェース140、および入出力インタフェース150を、バス180を介して接続したものとなっている。
 通信インタフェース140は、例えば1つ以上の有線または無線の通信インタフェースユニットを含んでおり、ネットワークNWにより規定される通信プロトコルにしたがいサーバ10との間でデータ伝送を行う。有線インタフェースとしては、例えば有線LANが使用され、また無線インタフェースとしては、例えば無線LANやBluetooth(登録商標)などの小電力無線データ通信規格を採用したインタフェースが使用される。
 入出力インタフェース150には、MR端末100に付設された入力デバイス160および出力デバイス170が接続される。入出力インタフェース150は、例えば、入力デバイス160を通じて、MR端末100のユーザが入力した操作データや、センサを通じて計測された現実空間を表す3D情報を取り込むとともに、ハードウェアプロセッサ120Aにより作成された出力データを出力デバイス170へ出力する処理を行う。
 入力デバイス160は、例えば、センサ、タッチパネル、タッチパッド、マイクロフォン、キーボード、マウスである。センサは、例えば、加速度センサ、深度センサ、ジャイロスコープ、磁気センサ、赤外線センサ、カメラなどを含み得る。
 出力デバイス170は、例えば、ハードウェアプロセッサ120Aにより生成された、メニュー画面、GUI、オブジェクトなどを含む複合現実空間を表す画像を表示する、透過型の液晶または有機EL(Electro Luminescence)ディスプレイである。出力デバイス170はまた、ハードウェアプロセッサ120Aにより生成された音声情報を出力するスピーカを含むことができる。
 なお、入力デバイス160および出力デバイス170は、MR端末100に内蔵されたデバイスを使用してもよく、スマートフォンなど、ネットワークを介して通信可能な他の情報端末の入力デバイスおよび出力デバイスを使用してもよい。
 プログラムメモリ120Bは、記憶媒体として、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとを組み合わせて使用したもので、一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。
 データメモリ130は、記憶媒体として、例えば、HDDまたはSSD等の随時書込みおよび読出しが可能な不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとを組み合わせて使用したもので、情報処理の過程で取得および作成された各種データを記憶するために用いられる。
(1-2-2)ソフトウェア構成
 図3は、この発明の一実施形態に係るMR端末100のソフトウェア構成を、図2に示したハードウェア構成と関連付けて示したブロック図である。
 データメモリ130の記憶領域には、アンカー情報記憶部131が設けられている。
 アンカー情報記憶部131は、複合現実空間に仮想物体を固定するためのアンカー情報を、対応する複合現実空間を識別する情報に紐づけて格納する。なお、アンカー情報記憶部131は、必ずしもMR端末100に内蔵されている必要はなく、USBメモリなどの外付け記憶媒体であってもよい。
 制御ユニット120は、上記ハードウェアプロセッサ120Aと、上記プログラムメモリ120Bとから構成され、ソフトウェアによる処理機能部として、空間情報取得部201と、ルーム確認部202と、ルーム作成要求部203と、アンカー情報管理部204と、アンカー情報アップロード(UL)部205と、アンカー情報ダウンロード(DL)部206と、アンカー情報展開部207と、隣接情報要求部208と、隣接情報格納処理部209と、退出判定部210と、出力画像生成部211とを備えている。これらの処理機能部は、いずれもプログラムメモリ120Bに格納されたプログラムを、上記ハードウェアプロセッサ120Aに実行させることにより実現される。制御ユニット20は、また、ASIC(Application Specific Integrated Circuit)やFPGA(field-programmable gate array)などの集積回路を含む、他の多様な形式で実現されてもよい。
 空間情報取得部201は、入出力インタフェース150を通じて、深度センサやカメラなどの入力デバイス160により計測された、現実空間を表す空間情報としての3D情報を取得し、ルーム確認部202に渡す処理を行う。
 ルーム確認部202は、取得した3D情報をサーバ10に送信し、その3D情報を表す現実空間に対応する複合現実空間の情報を格納するための「ルーム」がすでに生成されているか否かを問い合わせる処理を行う。
 ルーム作成要求部203は、送信した3D情報に対応するルームがないと判定された場合に、サーバ10に対し、ルームの作成を要求する処理を行う。
 アンカー情報管理部204は、アンカー情報記憶部131内に格納されたアンカー情報を管理する処理を行う。
 アンカー情報アップロード(UL)部205は、共有したい空間のルームがサーバ10に見つからなかった場合に、取得した3D情報に基づいてアンカー情報を計算し、共有のためにサーバ10にアップロードする処理を行う。
 アンカー情報ダウンロード(DL)部206は、共有したい空間のルームがサーバ10に見つかった場合に、サーバ10から当該空間に対応するアンカー情報をダウンロードする処理を行う。
 アンカー情報展開部207は、認識された複合現実空間にアンカー情報を取り付ける処理を行う。
 隣接情報要求部208は、現在の空間に対応するルームと隣接関係にある他のルームの情報をサーバ10に対して要求する処理を行う。
 隣接情報格納処理部209は、サーバ10から受信した、現在の空間に対応するルームと隣接関係にある他のルームの情報をアンカー情報記憶部131に格納する処理を行う。
 退出判定部210は、自己位置がルームの対象となっている空間内にあるか否かを判定する処理を行う。退出判定部210は、例えば、所定の時間ごとに3D情報を取得し、サーバ10に送信して照合を要求することにより、自己位置がルームの対象となっている空間内にあるか否かを判定することができる。
 出力画像生成部211は、アンカー情報展開部207によって複合現実空間に取り付けられたアンカー情報に基づき、構築された複合現実空間を表す情報を含む出力データを生成して、出力デバイス170に渡す処理を行う。例えば、出力画像生成部211は、アンカー情報をもとに算出された座標に基づいて仮想物体が適切な位置および向きに配置された複合現実空間を表す画像データを生成し、出力デバイス170としてのディスプレイに表示させる。3D情報に基づく空間メッシュの生成、アンカー情報の計算、展開、画像データの生成など、複合現実空間を構築する詳細な処理は、一般的に知られている技術を使用できるので、ここでは詳細には説明しない(例えば、上記非特許文献1参照)。
(1-3)サーバ
(1-3-1)ハードウェア構成
 図4は、この発明の一実施形態に係るサーバ装置としてのサーバ10のハードウェア構成の一例を示すブロック図である。
 サーバ10は、例えば、CPU等のハードウェアプロセッサ20Aを有する。そして、このハードウェアプロセッサ20Aに対し、プログラムメモリ20B、データメモリ30、通信インタフェース11を、バス50を介して接続したものとなっている。
 通信インタフェース11は、例えば1つ以上の有線または無線の通信インタフェースユニットを含み、ネットワークNWにより規定される通信プロトコルにしたがいMR端末100との間でデータ伝送を行う。有線インタフェースとしては、例えば有線LANが使用され、また無線インタフェースとしては、例えば無線LANやBluetoothなどの小電力無線データ通信規格を採用したインタフェースが使用される。
 プログラムメモリ20Bは、記憶媒体として、例えば、HDDやSSD等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとを組み合わせて使用したもので、一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。
 データメモリ30は、記憶媒体として、例えば、HDDまたはSSD等の随時書込みおよび読出しが可能な不揮発性メモリと、RAM等の揮発性メモリとを組み合わせて使用したもので、情報処理の過程で取得および作成された各種データを記憶するために用いられる。
(1-3-2)ソフトウェア構成
 図5は、この発明の一実施形態に係るサーバ10のソフトウェア構成を、図4に示したハードウェア構成と関連付けて示したブロック図である。
 データメモリ30の記憶領域には、ルーム情報記憶部31が設けられている。
 ルーム情報記憶部31は、MR端末100から受信した3D情報およびアンカー情報を、対応する複合現実空間ごとに「ルーム」として格納する。ルーム情報記憶部31はまた、各ルームについて、隣接関係にあるルームを識別する隣接空間情報を格納することができる。ルーム情報記憶部31は、これらの3D情報、アンカー情報、および隣接空間情報を、各ルームを識別する情報に紐づけて格納することができる。なお、ルーム情報記憶部31は、外付け記憶媒体や、クラウドに配置されたデータベースサーバ等の記憶装置として設けられたものであってもよい。
 制御ユニット20は、上記ハードウェアプロセッサ20Aと、上記プログラムメモリ20Bとから構成され、ソフトウェアによる処理機能部として、ルーム管理部21と、ルーム作成部22と、端末状態参照部23と、端末状態管理部24と、端末状態更新部25と、アンカー情報共有部26と、隣接関係設定部27と、送信制御部28とを備えている。これらの処理機能部は、いずれもプログラムメモリ20Bに格納されたプログラムを、上記ハードウェアプロセッサ20Aに実行させることにより実現される。制御ユニット20は、また、ASICやFPGAなどの集積回路を含む、他の多様な形式で実現されてもよい。
 ルーム管理部21は、複合空間管理部として機能し、MR端末100から受信した3D情報をもとに、ルーム情報記憶部31に格納された情報を照合することにより、対応するルームがあるか否かを判定し、その判定結果をMR端末100に返す処理を行う。また、ルーム管理部21は、MR端末100がどのルームに入っているかを示す情報を、例えばMR端末100から3D情報を受信するたびに、端末状態管理部24に渡す処理を行う。
 ルーム作成部22は、MR端末100からルーム作成要求を受信した場合に、その要求に応じてルームを作成する処理を行う。
 端末状態参照部23は、ルーム情報記憶部31に格納された情報を検索し、MR端末100が直前までどのルームに入っていたかを確認する処理を行う。端末状態参照部23は、例えば、MR端末100からルーム作成要求または3D情報を受信するたびに、送信元のMR端末100がルームを移動した可能性があるものとして、MR端末100が直前までどのルームに入っていたかを確認する処理を行う。
 端末状態管理部24は、MR端末100が現在どのルームに入っているかを示す情報を受け取り、ルーム情報記憶部31に格納された情報を管理する処理を行う。
 端末状態更新部25は、MR端末100が移動したと判定されたときに、ルーム情報記憶部31にアクセスし、当該MR端末100が入っているルームを変更する処理を行う。なお、端末状態更新部25は、端末状態管理部24と連携して情報の管理および更新を行うようにしてもよい。
 アンカー情報共有部26は、MR端末100から受信したアンカー情報を複数のMR端末間で共有できるよう、対応するルームに紐づけてルーム情報記憶部31に格納する処理を行う。
 隣接関係設定部27は、MR端末100が新たなルームに移動したと判定され、かつ当該MR端末100がその直前まで別のルームに入っていたとの記録がある場合に、上記新たなルームと別のルームとの間に隣接関係があるものと推定し、ルーム情報記憶部31に格納された情報に推定された隣接関係を設定する処理を行う。
 送信制御部28は、MR端末100からの要求に応じて、種々の情報、例えば、ルームを識別する情報、現実空間を識別する情報、指示された空間のアンカー情報、および隣接する空間のアンカー情報などを送信する処理を行う。
(2)動作
(2-1)システムの動作の概要
 はじめに、システム全体の動作として、複数の複合現実空間を高速に共有するための動作の概要と、この複合現実空間の高速共有のために必要なルーム間の隣接関係を設定するための動作の概要について説明する。
(2-1-1)複合現実空間の共有
 図6および図7は、それぞれ、この発明の一実施形態に係る複合現実空間を共有するためのシステム全体の動作の例を示す。
 図6では、現実空間としての4つの部屋a,b,c,dに対し、それぞれルームA,B,C,Dがサーバ10に作成されている。これらのルームA,B,C,Dは、例えば、上記ルーム情報記憶部31に保存される。図6に示されるように、各ルームが持つ情報は、対応する部屋(現実空間)の形状の3D情報、当該ルームに入っているMR端末100の識別情報、アンカー情報、および各ルーム間の隣接関係である。また、MR端末100が持つ情報は、現在自分がいる空間の3D情報、アンカー情報、隣接するルームのアンカー情報である。
 まず図6において、部屋bにいるユーザがMR端末100-2(以下、MR端末#2)を起動し、サーバ10に接続した場合、MR端末#2は、部屋bに紐づけられたルームがサーバ10上に存在するか否かを確認するために、部屋bの形状に関する3D情報をサーバ10へ送信する(矢印C1)。
 サーバ10は、MR端末#2から受信した3D情報と自身が保持している3D情報との照合を行い、形状の類似度が所定の閾値以上の中で最も大きい3D情報を持つルーム(すなわち、一定の基準を上回る、最も類似するルーム)を探し、その結果をMR端末#2へ返す。図6では、サーバ10はMR端末#2がいる部屋に該当するルーム(ルームB)があると判断し、その結果をMR端末#2へ返す。また、サーバ10は、MR端末#2がルームBにいると判断し、ルームBにMR端末#2を入れる。
 ここで、MR端末#2がルームBに入った場合、MR端末#2は、サーバ10に対し、ルームBのアンカー情報(B)だけではなく、ルームBと隣接するルーム(ルームA,ルームC)のアンカー情報(A,C)も問合せ、取得する(矢印C2)。
 その後、図7に示したように、部屋bにいたMR端末#2が、部屋bから部屋aへ移動した場合、MR端末#2は、自身が部屋bの外に出たことを、部屋bの3D情報をもとに検知する。そして、現在いる空間について確認するために、MR端末#2は、現在いる空間(部屋a)の3D情報をサーバ10へ送信する(矢印C3)。その後、サーバ10からこの3D情報に対応するルームAが存在するというメッセージが返ってきた場合、MR端末#2は、ルームAのアンカー情報(A)をすでに所持しているため、すぐに部屋Aにいる他のMR端末100-1(MR端末#1)と複合現実空間の共有を開始することができる。
 なお、上記の動作例は、屋内や同一の現実空間内に限られるものではなく、屋外での複合現実空間の共有や、異なる現実空間で同じ仮想情報を共有する場合にも適用可能である。屋外への適用例としては、街を歩きながら、仮想化された広告を複数人で共有することなどが挙げられる。異なる現実空間の間での共有への適用例としては、学校の教室間で同じコンテンツを生徒に見せることなどが挙げられる。
(2-1-2)ルーム間の隣接関係の設定
 図8~図10は、それぞれ、この発明の一実施形態に係るルームの隣接関係を設定するためのシステム全体の動作の例を示す。
 図8において、ユーザが部屋aでMR端末100-1(MR端末#1)を起動した場合、MR端末#1は、上記と同様にまず部屋aに紐づけられたルームがサーバ10上に存在するか否かを確認するため、部屋aの3D情報を取得し、サーバ10に送信する(矢印C4)。当該ルームがない場合、MR端末#1は、ルームの作成要求および自身が計算したアンカー情報をサーバ10に送信する(矢印C5)。これらを受信したサーバ10は、当該ルーム(図8ではルームA)を作成し、受信した3D情報とアンカー情報(A)を紐づける。また、サーバ10は、ルームA内にMR端末#1がいると判断し、ルームAとMR端末#1を紐づける。
 その後、図9において、MR端末#1が部屋aから部屋bへ移動した場合、MR端末#1は、上記と同様の手順で部屋bの3D情報をサーバ10に対して送信する(矢印C6)。また上記と同様に、部屋bに対応するルームがない場合、MR端末#1は、サーバ10に対してルーム作成要求を送信し(矢印C7)、また計算したアンカー情報の送信を行い(矢印C7)、サーバ10はこれに応じてルームBを作成する。ここでサーバ10は、MR端末#1が直前に入っていたルームAと新たに作成したルームBが空間的に隣接しているものと判断し、ルームAとルームBの間に隣接関係を設定する。すなわち、ルームAに紐づけられた「隣接」情報として「ルームB」を追加し、ルームBに紐づけられた「隣接」情報として「ルームA」を追加する。
 さらに同様の手順で、図10に示したように、ルームC,ルームDが作成され、それぞれに隣接関係が設定されたとする。ここで、図10に示したように、MR端末#1が部屋dからcへ移動して部屋cのルームが存在するか否かを確認した場合(すなわち部屋cの3D情報をサーバ10に送信した場合)(矢印C8)、サーバ10は、MR端末#1がいる部屋に該当するルーム(ルームC)があると判断し、その結果をMR端末#1に返す。またこれと同時に、MR端末#1が直前までいたルームDとルームCが空間的に隣接しているものと判断し、隣接関係を設定する。
 上記により、隣接ルームのアンカー情報の事前取得に必要なルーム間の隣接関係の情報を構築することができる。
 このように、この発明の一実施形態に係る情報処理システムでは、MR端末100が自身の入っているルームのアンカー情報だけでなく、隣接するルームのアンカー情報も取得できるようにしている。さらに、MR端末100が現在どのルームに該当する空間にいるかを確認可能にするとともに、サーバ10においてルーム間に隣接関係を設定できるようにしている。
(2-1-3)ルームの確認および隣接関係設定処理の流れ
 続いて、ルームの確認および作成ならびにルーム間に隣接関係を設定するシステム全体の処理の流れについて説明する。図11は、そのような処理の一例を示す図である。
 クライアントとしてのMR端末100は、起動されると、まずサーバ10に接続する。サーバ10に接続したMR端末100は、はじめに、判定ブロックD1において、自身がいずれかのルームに入っているか否かを確認する。例えば、MR端末100は、アンカー情報記憶部131に格納された情報(例えば、最後に確認されたルームの情報)を読み出すことによって、いずれかのルームに入っているとの記録があるか否かを確認する。
 まだどのルームにも入っていないと判定された場合(D1-YES)、MR端末100は、ルーム確認部202において、自身が今いる現実空間の3D情報を取得してサーバ10に送信し、その空間のルームが既にあるか否かの確認を行う(S1)。一方、あるルーム(例えばルームB)に入っていると判定された場合(D1-NO)、退出判定部210の制御の下、例えば所定の時間間隔で定期的に、自身がもつ3D情報のどこに自己位置があるかを確認する(S2)。
 判定ブロックD2において、ルームBの対象となっている空間の外に自己位置があると判定された場合(D2-YES)、当該ルームを出たと判断し、ルーム確認部202において、3D情報をサーバ10に送信することにより、現在いる空間に該当するルームがあるか否かの確認を行う(S1)。ルームBの対象となっている空間内に自己位置があると判定された場合(D2-NO)、引き続き、退出判定部210の制御の下、所定の時間間隔で、対象空間内にいるか否かの判定を行う。
 ルーム確認部202により3D情報をサーバ10に送信した(S1)後、サーバ10から受け取った応答(S3)が、その3D情報に対応するルームがないことを示す場合(D3-NO)、ルーム作成要求部203は、サーバ10に対してルームの作成を要求する(S4)。ルームがあることを示す場合(D3-YES)、アンカー情報を共有するための処理に移行する。
 一方、サーバ10は、MR端末100から3D情報を受信した場合(S1)、ルーム管理部21において、受信した3D情報と自身が保持している3D情報との照合を行い、形状の類似度が閾値以上の中で最も大きい3D情報を持つルームを探す。当該ルームがある場合、サーバ10は、その結果をMR端末100へ返し(S3)、受信した3D情報とそのルームを紐づける。当該ルームがなかった場合、サーバ10がその結果をMR端末100へ返す(S3)と、MR端末100のルーム作成要求部203からルーム作成要求を受信する(S4)。
 ルーム作成要求を受信したサーバ10は、ルーム作成部22により新たなルームを作成し、受信した3D情報に紐づけて、ルーム情報記憶部31に保存する。またサーバ10は、MR端末100からアンカー情報を受信したら、作成したルームにこのアンカー情報をさらに紐づけて保存する。
 次いで、ルーム作成部22は、作成したルームに関する情報をMR端末100に返す(S5)とともに、端末状態参照部23に対してルームを作成した旨を通知する(S6)。そして、端末状態参照部23において、隣接関係を推定するため、ルーム管理部21から情報を取得し(S7)、またはルーム情報記憶部31に格納された情報を読み出して、判定ブロックD4に移行する(S8)。そして、判定ブロックD4において、サーバ10は、3D情報またはルーム作成要求を送信したMR端末100がその直前までいずれかのルームにいた記録があるか否かを判定する。別のルーム(例えばルームA)にいた記録がある場合(D4-YES)、隣接関係設定部27において、現在入っているルーム(ルームB)とルームAとの間に隣接関係を設定し、また端末状態更新部25において、当該MR端末100が入っているルームをAからBに更新する。判定ブロックD4において別のルームにいた記録がなければ処理を終了する。
(2-1-4)複合現実空間の共有処理の流れ
 続いて、複合現実空間を共有するシステム全体の処理の流れについて説明する。図12は、そのような処理の一例を示す図である。
 クライアントとしてのMR端末100が起動され、サーバ10に接続されると、MR端末100は、ルーム確認部202において、共有したい空間のルームが既にあるか否かの確認を行うために、取得した3D情報をサーバ10へ送信する(S11)。サーバ10から応答を受信(S12)したMR端末100は、該当するルームがサーバ内にない場合(D11-NO)、ルーム作成要求部203においてサーバ10に対してサーバ10上へのルームの作成を要求する(S13)。その後、サーバ10から作成されたルームの情報を受信すると(S14)、MR端末100は、アンカー情報アップロード(UL)部205において、自端末上で計算したアンカー情報をルームへアップロードする(S15)。
 一方、当該ルームがサーバ内で見つかった場合(D11-YES)、アンカー情報管理部204において、当該ルームのアンカー情報が自端末上(例えばアンカー情報記憶部131上)に保存されているか否かを確認するために判定ブロックD12へ移行する(S16)。
 アンカー情報が自端末上に保存されている場合(D12-YES)、当該アンカー情報を読み出し、アンカー情報展開部207に渡す。アンカー情報が保存されてない場合(D12-NO)、アンカー情報ダウンロード(DL)部206において、サーバ10へ当該ルームのアンカー情報を要求し(S17)、アンカー情報をダウンロードして(S18)、アンカー情報展開部207に渡す(S19)。
 その後、アンカー情報展開部207において、自身が認識している複合現実空間に、読み出したまたはダウンロードしたアンカー情報を取り付ける。これにより、同じルームに入ったMR端末100は同じアンカー情報を取得でき、結果として同じ複合現実空間を見ることができる。また一度取得したアンカー情報はローカルに保存できるため、2回目以降に対象の複合現実空間を訪れる場合、アンカー情報のダウンロードなしに複合現実空間を共有できる。
 ここでさらに、MR端末100は、自端末上に他のアンカー情報を格納できるだけのストレージが空いているかを判定するために判定ブロックD13へ移行する(S20)。判定ブロックD13において、ストレージに空きがあると判定された場合には(D13-YES)、隣接情報要求部208において、サーバ10に対し、隣接ルームの情報およびそのルームに紐づけられているアンカー情報を要求し(S21)、サーバ10からダウンロードし(S22)、隣接情報格納処理部209において、自端末上に保存する。その後任意で、再び判定ブロックD13に戻り(S23)、まだストレージに空きがあれば、さらに他の隣接ルームの情報およびアンカー情報を要求するようにしてもよい。なお、判定ブロックD13においてストレージに空きがなければ処理を終了する。
 続いて、サーバ10側のフローを説明する。サーバ10は、MR端末100から3D情報を含む確認メッセージを受信した場合(S11)、ルーム管理部21において、当該ルームの有無を確認し、MR端末100へ返信する(S12)。ここで、当該ルームが存在する場合、サーバ10は、ルーム管理部21から端末状態管理部24に対し、MR端末100がどのルームにいるかの最新の情報を送り(S24)、端末状態管理部24は、ルーム情報記憶部31にこの情報を追加する。当該ルームが存在しない場合、MR端末からルーム作成要求を受信するため(S13)、ルーム作成部22において、要求されたルームを作成し、MR端末100に作成したルームの情報を送信する(S14)。
 サーバ10は、MR端末100からアンカー情報を受信すると(S15)、アンカー情報共有部26において、受信したアンカー情報を、作成したルームに紐づけて保存する。その後、サーバ10は、同じルームに入っている別のMR端末100(例えばMR端末#2)からアンカー情報の要求を受信した場合、アンカー情報を当該MR端末#2へ送信することができる。
 なお、上述のように、隣接関係設定部27は、端末状態管理部24からの情報(S25)またはルーム作成部22からの情報(S26)をもとに、MR端末100がルームを移動したと判定された場合に、その直前まで別のルームに入っていたとの記録があるか否かを確認し、別のルームに入っていたとの記録がある場合にはその記録をもとにルーム間の隣接関係を設定する。
 サーバ10は、MR端末100から隣接ルームに関する情報の要求を受信すると(S21)、アンカー情報が共有されていない隣接ルームがあるか否かを判定し(D14)、ある場合には(D14-YES)、送信制御部28において、隣接するルームの情報とそのルームに紐づけられたアンカー情報をMR端末100へ送信する(S22)。判定ブロックD14においてアンカー情報が共有されていない隣接ルームがない場合、処理を終了する。このとき、隣接ルームがないことを示すメッセージを生成して、サーバ10からMR端末100へ応答するようにしてもよい。
(2-2)情報処理端末の動作
 次に、以上のように構成された情報処理端末としてのMR端末100による情報処理動作についてさらに説明する。図13は、その処理手順と処理内容を示すフローチャートである。
 まず、MR端末100が起動されると、ステップS11において、MR端末100は、制御ユニット120の制御の下、サーバ10への接続を確立する処理を行う。
 次いで、ステップS12において、MR端末100は、制御ユニット120の制御の下、自端末がすでにルームに入っているか否かを判定する。まだルームに入っていないと判定された場合(NO)、現在いる部屋がどのルームに対応するかを確認するために、ステップS15のルーム確認処理に移行する。他方、すでにルームに入っていると判定された場合(YES)、ステップS13に移行する。
 ステップS13において、MR端末100は、制御ユニット120の制御の下、退出判定部210により、自身がもつ3D情報のどこに自己位置があるかを確認する。
 そして、ステップS14において、MR端末100は、退出判定部210によりルームの対象空間外にいるか否かを判定し、対象空間内にいると判定された場合(NO)、引き続き、例えば所定の時間間隔で、退出したか否かを確認する処理を行う。一方、対象空間外にいると判定された場合(YES)、現在いる部屋がどのルームに対応するかを確認するために、ステップS15のルーム確認処理に移行する。
 ステップS15において、MR端末100は、制御ユニット120の制御の下、ルーム確認処理を行う。図14は、ステップS15のルーム確認処理の一例を示すフローチャートである。
 ステップS1501において、MR端末100は、制御ユニット120の制御の下、空間情報取得部201により、今いる現実空間を表す空間情報としての3D情報を取得する。3D情報は、例えば、空間の形状情報を含むことができる。
 ステップS1502において、MR端末100は、制御ユニット120の制御の下、ルーム確認部202により、取得した3D情報をサーバ10に送信する。
 ステップS1503において、MR端末100は、サーバ10からルームの有無に関する回答を受信する。この回答は、例えば、ルームがある場合には当該ルームを識別する情報(ルームID)を含む。
 ステップS1504において、MR端末100は、ルーム確認部202により、サーバ10から受信した回答が、送信した3D情報に対応するルームがサーバ10上にあることを示すか否かを判定する。ルームがあると判定された場合(YES)、ステップS1505に移行する。
 次いでステップS1505において、MR端末100は、制御ユニット120の制御の下、アンカー情報管理部204により、必要なアンカー情報が自端末に保存されているか否かを判定する。例えば、アンカー情報管理部204は、サーバ10から受信した応答に含まれていたルームIDをもとに、当該ルームに対応するアンカー情報がアンカー情報記憶部131に格納されているか否かを判定する。アンカー情報が保存されている場合(YES)、ステップS1508に移行する。他方、アンカー情報が保存されていない場合(NO)、必要なアンカー情報を取得するためにステップS1506に移行する。
 ステップS1506において、MR端末100は、制御ユニット120の制御の下、アンカー情報DL部206により、上記ルームIDに対応するアンカー情報をサーバ10に要求する。
 ステップS1507において、MR端末100は、サーバ10からアンカー情報を取得(ダウンロード)する。
 一方、ステップS1504においてルームがないと判定された場合(NO)、ステップS1509に移行する。
 ステップS1509において、MR端末100は、制御ユニット120の制御の下、ルーム作成要求部203により、ルーム作成要求をサーバ10に送信する。これに対し、サーバ10から、例えば、新たに作成されたルームを識別するルームIDが、MR端末100に対して送信される。
 ステップS1510において、MR端末100は、制御ユニット120の制御の下、アンカー情報を計算し、アンカー情報記憶部131に格納する。計算したアンカー情報は、受信した新たに作成されたルームのルームIDがあれば、それに紐づけて格納されてもよい。あるいは、計算したアンカー情報は、取得した3D情報に紐づけて格納されてもよい。
 ステップS1511において、MR端末100は、制御ユニット120の制御の下、アンカー情報UL部205により、計算したアンカー情報をサーバ10にアップロードする。
 ステップS1507においてアンカー情報をサーバ10からダウンロードした後、またはステップS1510においてアンカー情報を計算した後(もしくはさらにステップS1511において計算したアンカー情報をサーバ10にアップロードした後)、MR端末100は、ステップS1508に移行する。
 そして、ステップS1508において、MR端末100は、制御ユニット120の制御の下、アンカー情報展開部207により、取得したアンカー情報を複合現実空間に取り付ける処理を行う。この後、アンカー情報展開部207が処理後のデータを出力画像生成部211に渡すことによって、出力画像生成部211は、例えば、任意のタイミングで、複合現実空間を表す画像などの出力データを生成し、出力デバイス170に出力させることができる。
 以上のように、現在いるルームを確認し、必要なアンカー情報を取得した後、MR端末100は、図13のステップS16に移行する。ステップS16において、MR端末100は、制御ユニット120の制御の下、隣接ルーム情報取得処理を行う。図15は、図13に示したステップS16の隣接ルーム情報取得処理の一例を示すフローチャートである。
 ステップS1601において、MR端末100は、制御ユニット120の制御の下、他のアンカー情報を格納できるストレージが空いているか否かを判定する。ストレージ(例えばアンカー情報記憶部131)に空きがないと判定された場合(NO)、処理は終了する。ストレージに空きがあると判定された場合(YES)、ステップS1602に移行する。
 ステップS1602において、MR端末100は、制御ユニット120の制御の下、隣接情報要求部208により、現在入っているルームと隣接関係にある隣接ルームの情報(例えばルームID)およびその隣接ルームのアンカー情報を要求する。このとき、ストレージの空きに応じて、1つの隣接ルームおよびそのアンカー情報を要求するようにしてもよいし、複数の隣接ルームがある場合には複数の隣接ルームおよび各々のアンカー情報を要求するようにしてもよい。
 ステップS1603において、MR端末100は、制御ユニット120の制御の下、要求した隣接ルームの情報およびその隣接ルームのアンカー情報を取得し、隣接情報格納処理部209の制御の下、アンカー情報記憶部131に保存する。アンカー情報記憶部131は、例えば、ルームIDとアンカー情報を紐づけて記憶することができる。アンカー情報記憶部131は、さらに、取得された空間情報のすべてまたは一部をルームIDに紐づけて記憶するようにしてもよい。
 なお、図13~15に示した各処理は、図示した順序に限定されるものではなく、同じ効果が達成されるのであれば、順序を入れ替えて、または複数の処理を同時並行して実施するようにしてもよい。また処理のいくつかを省略し、または類似の処理に置換してもよい。あるいは、1つのステップで示した処理を複数のステップで実施してもよいし、複数のステップで示した処理を1つのステップで実施するようにしてもよい。
(2-3)サーバの動作
 次に、以上のように構成されたサーバ10による情報処理動作について説明する。図16は、その処理手順と処理内容の一例を示すフローチャートである。サーバ10は、あらかじめMR端末100との接続を確立しているものとする。
 まず、サーバ10は、ステップS101において、制御ユニット20の制御の下、MR端末100からの3D情報の受信を監視している。この状態で、MR端末100から3D情報を受信すると(YES)、ステップS102に移行する。
 次いでステップS102において、サーバ10は、制御ユニット20の制御の下、ルーム管理部21により、MR端末100から受信した3D情報に対応するルームがルーム情報記憶部31内にあるか否かの判定を行う。上述したように、ルーム管理部21は、例えば、3D情報の照合を行って、形状の類似度が一定レベル以上の中で最も大きいルームを探す。ルームがあると判定された場合(YES)、ステップS103に移行する。
 ステップS103において、サーバ10は、制御ユニット20の制御の下、MR端末100に対して判定結果を返す処理を行う。例えば、サーバ10は、ルームを識別する情報(例えばルームID)を含むメッセージを生成してMR端末100に送信する。
 次いでステップS104において、サーバ10は、制御ユニット20の制御の下、当該ルームと3D情報の送信元であるMR端末100とを紐づける処理を行う。
 ステップS105において、サーバ10は、制御ユニット20の制御の下、MR端末100からアンカー情報の要求を受信したか否かを判定する。上述したように、MR端末100は、サーバ10により送信されたメッセージに含まれるルームIDに基づいて、自端末上に当該ルームIDに対応するアンカー情報を保存しているかを判定し、保存していない場合にはサーバ10に対してアンカー情報を要求する。サーバ10は、MR端末100からアンカー情報を要求するメッセージを受信した場合(YES)、ステップS106に移行し、受信しなかった場合(NO)、隣接関係設定処理のためにステップS107に移行する。一実施形態では、サーバ10は、MR端末100に対してルームの有無の判定結果を返してから一定時間待機し、その時間内に要求を受信しなかった場合に、ステップS107に移行するように構成される(判定ステップS105においてNOに進む)。
 ステップS106において、サーバ10は、制御ユニット20の制御の下、アンカー情報共有部26により、MR端末100から要求されたアンカー情報を、ルームIDをもとにルーム情報記憶部31から読み出し、要求元のMR端末100に送信した後、隣接関係設定処理のためにステップS107に移行する。
 ここで、ステップS102において、ルーム管理部21によりルームがないと判定された場合(NO)、ステップS108に移行する。
 ステップS108において、サーバ10は、制御ユニット20の制御の下、MR端末100に対して判定結果を返す処理を行う。例えば、サーバ10は、該当ルームがなかったことを示すメッセージを生成してMR端末100に送信する。
 次いでステップS109において、サーバ10は、制御ユニット20の制御の下、MR端末100からルーム作成要求の受信を監視し、ルーム作成要求が受信されたら(YES)、ステップS110に移行する。ステップS109において一定時間経過してもルーム作成要求が受信されなかった場合、サーバ10は、再度MR端末100に対して判定結果を返す処理を行うようにしてもよいし、処理を終了するようにしてもよい。
 MR端末100からのルーム作成要求を受信したサーバ10は、ステップS110において、制御ユニット20の制御の下、ルーム作成部22により、新たなルームを作成する処理を行う。なお、このときサーバ10は、ステップS101で受信した3D情報を、新たに作成したルームに紐づけて、ルーム情報記憶部31に保存する。
 次いでステップS111において、サーバ10は、制御ユニット20の制御の下、MR端末100からのアンカー情報の受信を監視する。アンカー情報を受信したら(YES)、ステップS112に移行する。ステップS111において一定時間経過してもアンカー情報が受信されなかった場合、サーバ10は、MR端末100に対してアンカー情報のアップロードを要求するようにしてもよいし、処理を終了するようにしてもよい。
 次いでステップS112において、サーバ10は、制御ユニット20の制御の下、アンカー情報共有部26により、受信したアンカー情報を新たに作成したルームに紐づけてルーム情報記憶部31に保存する。その後、サーバ10は、隣接関係設定処理のためにステップS107に移行する。
 ステップS107において、サーバ10は、制御ユニット20の制御の下、隣接関係設定処理を行う。図17は、図16に示したステップS107の隣接関係設定処理の一例を示すフローチャートである。
 まずステップS701において、サーバ10は、制御ユニット20の制御の下、端末状態参照部23により、ルーム情報記憶部31内に3D情報の送信元であるMR端末100が直前まで別のルームにいた記録があるか否かを確認する。別のルームにいた記録があれば(YES)、ステップS702に移行し、別のルームにいた記録がなければ(NO)、ステップS702をスキップしてステップS703に移行する。
 ステップS702において、サーバ10は、制御ユニット20の制御の下、隣接関係設定部27により、受信した3D情報に対応するルームと、記録されていた上記別のルームとが隣接しているものと推定し、それぞれのルームについてルーム情報記憶部31に格納された情報に隣接関係を設定する。
 次いでステップS703において、サーバ10は、制御ユニット20の制御の下、端末状態更新部25により、MR端末100が入っているルームを、受信した最新の3D情報に対応するルームへと変更する。
(3)検証
 上記実施形態に係る情報処理システム1において、隣接するルームのアンカー情報を事前にダウンロードする処理の有効性を確認するために、以下の環境をHoloLens内で摸擬してシミュレーション実験を行った。
 なお、サーバプログラムはノートPC(メモリ:16GB、CPU:Intel(登録商標)Core i7,2.8GHz、OS:Windows(登録商標)10,64bit)上で動作しており、HoloLensとノートPCはWi-Fiで接続されている。また、HoloLensとノートPC間の通信はUDPで行った。
  (条件1)サーバ10上には81個のルームが作成されており、そのそれぞれにアンカー情報がアップロードされているものとする。
  (条件2)MR端末100は、あるルームの複合現実空間外に出たこと、および別のルームに入ったことを認識できるものとする。
  (条件3)ルーム間の隣接関係は設定済みであり、かつその隣接関係はMR端末100も認識済みである。あるルームに隣接するルームはN個あり、MR端末100がルームを移動する際は、自身が現在入っているルームと隣接するルームの中からランダムに1つ選んで移動するものとする。
  (条件4)ルーム移動後、MR端末100は、T秒待機した後に、次のルームへ移動する。この移動を計10回行う。
  (条件5)MR端末100上にはK個のアンカー情報を保存できるものとする。
 上記の環境は、同一建物内の各部屋や廊下を一つの共有対象の空間として、それぞれ別のルームに紐づけた状況を想定したものである。以上の環境において、乱数を毎回変えながら5回試行を行い、以下の指標の平均値を計算した。
  (指標1)遅延時間:MR端末100がルームに入ってからアンカー情報の取り付けが完了するまでに要した時間
  (指標2)アンカー情報要求回数:MR端末100がサーバ10に対してアンカー情報を要求した回数
 また、比較手法として、アンカー情報のダウンロードに関する処理は、従来技術と同様に、新しいルームに入るたびにそのルームのアンカー情報をサーバ10からダウンロードする手法を用いた。
 図18,図19は、アンカーの保存数を5(K=5)、ルームの隣接数を4(N=4)としたときに、各ルームでの待機時間Tを変化させた場合の結果を示す。図18は、各ルームでの待機時間T[分]に対する遅延時間[秒]の変化を示しており、図19は、各ルームでの待機時間T[分]に対するアンカー情報要求回数の変化を示している。
 図18の結果より、上記実施形態に係る情報処理システム1では、従来技術と比較して、複合現実空間共有開始までの遅延時間を約半分にできていることがわかる。これは、情報処理システム1では、サーバ10内で構築したルーム間の隣接関係をもとに、現在のルームと隣接しているルームのアンカー情報をそのルームに移動する前にダウンロードできるためである。
 一方、図19の結果より、上記実施形態に係る情報処理システム1では、サーバ10へアンカー情報を要求する回数が従来技術よりも増加していることがわかる。これは、上述の通り、現在のルームのアンカー情報だけでなく、隣接したルームのアンカー情報もダウンロードするためである。
 図20,図21に、各ルームでの待機時間を2分(T=2分)、ルームの隣接数を4(N=4)としたときに、MR端末100上に保存できるアンカー数Kを変化させた場合の結果を示す。図20は、アンカー保存数Kに対する遅延時間[秒]の変化を示しており、図21は、アンカー保存数Kに対するアンカー情報要求回数の変化を示している。
 図20の結果より、自端末上に保存できるアンカー数が増加するほど、複合現実空間共有開始までの遅延時間が短くなっていることがわかる。一方で、保存可能なアンカー数が1のときは従来技術と同程度の遅延時間が発生している。これは、MR端末100が自端末上に1つしかアンカー情報を保存できない場合、現在のルームのアンカー情報しか保存できず、隣接ルームのアンカーを取得できないためである。その結果、図21の通り、アンカー情報要求回数も従来技術とほぼ同等の値になっている。
 図22,図23に、アンカーの保存数をN+1(K=N+1)、各ルームにおける待機時間を2分(T=2分)としたときに、ルームの隣接数Nを変化させた場合の結果を示す。図22は、ルームの隣接数に対する遅延時間[秒]の変化を示しており、図23は、ルームの隣接数に対するアンカー情報要求回数の変化を示している。なお、従来技術ではNを変化させても性能が変わらないため、上記実施形態に係る情報処理システム1を用いた場合の性能値のみを示している。
 図22の結果より、隣接数が多くなるほど、複合現実空間共有開始までの遅延時間が長くなることがわかる。これは、ルーム内の待機時間に対して隣接数が多いと、隣接するルームのアンカー情報のダウンロードがルーム間の移動に間に合わない場合が発生するためである。また図23の結果より、隣接数が多くなるほどアンカー情報要求回数も増加することがわかる。
(4)効果
 従来技術を用いた場合でも、複数のMR端末100の間で1つの複合現実空間を共有でき、各ユーザが同じ複合現実空間を見ることができる。しかし、共有対象の複合現実空間が複数になった場合、従来技術では、MR端末100側で自身が今どの複合現実空間に位置しているかが判断できないため、MR端末100はサーバ10上のどのルームに入ればよいかがわからず、複合現実空間の共有ができない。
 そこで、上記一実施形態では、サーバ10上で管理している各ルームに、対応する現実空間の形状の3D情報を持たせておき、MR端末100が取得した3D情報と照合を行うようにした。これにより、MR端末100は、自身が今どの複合現実空間に位置しているかを識別することができる(課題1、3の解決)。
 さらに、MR端末100側で、自身がもつ3D情報のどこに自己位置があるかを定期的に確認するようにした。これにより、MR端末100は、自身が入っているルームの対象となっている空間の内側に自己位置があるのか、外側にあるのかを認識することができる(課題2の解決)。
 上記技術を用いることで、複数のMR端末100間で複数の複合現実空間が共有可能となる。しかし、ルームごとに必要となるアンカー情報が異なるため、単純に(従来技術と同様の方法で)複数の複合現実空間を共有しようとすると、ルームが変わるたびにサーバ10からアンカー情報をダウンロードすることになり、共有開始までに大きな遅延が発生してしまう。
 そこで上記一実施形態では、MR端末100の移動をもとにルーム間の隣接関係を構築しつつ、その隣接関係の情報を利活用して、事前に隣接するルームのアンカー情報をダウンロードしておくようにした。これによって、MR端末100がルームを移動した後、複合現実空間共有までに発生する遅延を軽減することができる(課題4の解決)。
 なお、上記課題1~3が解決された状態で複数の複合現実空間を共有する際に、複合現実空間の共有開始までの遅延を単純に削減する方法として、サーバ10に格納されているすべてのアンカー情報を事前にMR端末100に取得させる方法も考えられる。しかし、屋内外問わず複合現実空間を共有する環境では、アンカー情報の数が膨大になると考えられるため、MR端末100がすべてのアンカー情報を事前に取得することは非現実的である。
 この課題に対して、上記一実施形態では、あるルームを生成したMR端末100がこれまでに滞在していたルームの情報をもとに、ルーム間の隣接関係を構築することによって、そのMR端末100を装着したユーザが次に移動する空間を絞り込むようにしている。これにより、MR端末100(を装着したユーザ)が次に移動する可能性がある空間の情報のみを移動前に取得できるため、サーバ10に格納されているすべてのアンカー情報を取得するよりも少ない通信量で、複数の複合現実空間の共有に要する遅延を削減することができる。
 [他の実施形態]
 なお、この発明は上記実施形態に限定されるものではない。例えば、MR端末100が備える各機能部201~211を、複数の装置に分散配置し、これらの装置が互いに連携することにより処理を行うようにしてもよい。例えば、MR端末100が備える機能部のうちのいくつかをサーバ10に設けることも可能であり、あるいはスマートフォン等のユーザ端末(図示せず)にいくつかの機能部を設けることも可能である。また各機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
 同様に、サーバ10が備える各機能部21~28を複数の装置に分散配置してもよい。
 サーバ10の隣接関係設定部27による隣接関係設定処理は、図示しないデータベースに記憶された建物のレイアウト情報やオペレータにより入力された位置関係を表す情報を利用するものであってもよい。
 MR端末100は、上述のHoloLensのような光学透過式に限られるものではなく、カメラによって撮影された映像を用いるビデオ透過式の端末であってもよい。またMR端末100は、ヘッドマウントディスプレイに限定されるものではなく、ハンドヘルドディスプレイや、他の形式のウェアラブルコンピュータや、スマートフォン、タブレット端末などであってもよい。
 MR端末100は、本体をシャットダウンさせるたびに、最後に保存したアンカー情報をストレージから消去するようにしてもよいし、保持するようにしてもよい。シャットダウン後にMR端末100を再び同じ部屋で起動させる場合、最後に保存した情報をストレージに保持しておくことによって、起動後にサーバ10から新たにアンカー情報を取得する処理を省略することができる。
 またMR端末100は、定期的にサーバ10に3D情報を送信して問い合わせることによってルームからの退出を判定するようにしてもよいし、取得した3D情報を一定時間保持し、自身が保持している3D情報との対比によって自己の位置を推定し、ルームからの退出を判定するようにしてもよい。あるいは、MR端末100は、各部屋に設置されたビーコンから信号を受信することによって、現実空間としての部屋の移動を検知するようにしてもよい。この場合、MR端末100は、部屋の移動が検知されるたびに3D情報を取得し直し、ルーム確認のためにサーバ10に送信するようにしてもよい。
 なお、上記実施形態では、現実空間の一例として「部屋」を挙げて説明したが、複合現実空間の構築のベースとなる現実空間は、壁などで囲まれた屋内の部屋に限定されるものではない。上記実施形態は、仮想物体をマッピングするためのアンカーを配置可能な任意の空間に適用することができ、屋外であってもよいし、部屋の一部の領域であってもよい。また上述のように、学校の教室間など異なる現実空間の間で同じ仮想情報を共有するためにも上記実施形態を適用することができる。
 また上記実施形態は、上述の情報処理システム1、サーバ10またはMR端末100だけに限定されるものではなく、現在いる空間の空間情報に対応するアンカー情報を共有する、他の情報処理システム、サーバ、情報処理装置または端末等にも適用可能である。
 その他、MR端末100における複合現実空間の構築処理についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
 要するにこの発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
 1…情報処理システム
 10…サーバ
 11…通信インタフェース
 20…制御ユニット
 20A…ハードウェアプロセッサ
 20B…プログラムメモリ
 21…ルーム管理部
 22…ルーム作成部
 23…端末状態参照部
 24…端末状態管理部
 25…端末状態更新部
 26…アンカー情報共有部
 27…隣接関係設定部
 28…送信制御部
 30…データメモリ
 31…ルーム情報記憶部
 50…バス
 100…情報処理端末、MR端末、クライアント
 120…制御ユニット
 120A…ハードウェアプロセッサ
 120B…プログラムメモリ
 130…データメモリ
 131…アンカー情報記憶部
 140…通信インタフェース
 150…入出力インタフェース
 160…入力デバイス
 170…出力デバイス
 180…バス
 201…空間情報取得部
 202…ルーム確認部
 203…ルーム作成要求部
 204…アンカー情報管理部
 205…アンカー情報アップロード(UL)部
 206…アンカー情報ダウンロード(DL)部
 207…アンカー情報展開部
 208…隣接情報要求部
 209…隣接情報格納処理部
 210…退出判定部
 211…出力画像生成部

Claims (8)

  1.  現実空間を表す空間情報を取得し、前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、前記情報処理端末との間で通信が可能なサーバ装置と、を備える情報処理システムであって、
     前記サーバ装置は、
      複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理する複合空間管理部と、
      前記情報処理端末から前記複数の現実空間のうち第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第1の現実空間に対応する複合空間管理情報に基づいて、前記第1の現実空間に対応する第1のアンカー情報および前記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信する回答部と
     を備え、
     前記情報処理端末は、
      前記複数の現実空間のうち第1の現実空間に入った場合に、前記アンカー情報の取得要求を前記サーバ装置へ送信して、前記サーバ装置から前記回答情報を取得する回答情報取得部と、
     前記取得された回答情報を記憶媒体に記憶し、前記第2の現実空間に入った場合に、前記記憶媒体に記憶された回答情報に含まれる前記第2のアンカー情報に基づいて、前記第2の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成する複合空間情報生成部と
     を備える、
     情報処理システム。
  2.  前記現実空間を識別する情報は、前記情報処理端末により取得された前記現実空間を表す空間情報を含み、
     前記複合空間管理情報は、前記情報処理端末から受信した空間情報に基づいて推定された、当該情報処理端末がどの現実空間に位置するかを表す端末状態情報をさらに含む、
     請求項1に記載の情報処理システム。
  3.  前記サーバ装置は、
      前記端末状態情報と、前記情報処理端末から新たに受信した空間情報とに基づいて、前記複数の現実空間に関する隣接関係を推定し、推定結果を前記複合空間管理部に出力する、隣接関係推定部をさらに備える、
     請求項2に記載の情報処理システム。
  4.  現実空間を表す空間情報を取得して前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末との間で通信が可能な、プロセッサと、前記プロセッサに接続されたメモリとを備えるサーバ装置であって、
     前記メモリは、
      複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報を記憶する記憶部を備え、
     前記プロセッサは、
      前記情報処理端末から前記複数の現実空間のうち第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第1の現実空間に対応する複合空間管理情報に基づいて、前記第1の現実空間に対応する第1のアンカー情報および前記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信する処理を実行するように構成される、
     サーバ装置。
  5.  現実空間に仮想空間を重畳させた複合現実空間を構築するための重畳位置を規定するアンカー情報を管理するサーバ装置との間で通信が可能な、プロセッサと、前記プロセッサに接続されたメモリと、前記アンカー情報に基づいて構築された前記複合現実空間を表す画像を表示する表示部とを備える、情報処理端末であって、
     前記プロセッサは、
      前記情報処理端末が複数の現実空間のうち第1の現実空間に入った場合に、当該第1の現実空間を表す空間情報を取得し、
      前記取得した空間情報を前記サーバ装置へ送信して前記アンカー情報を要求し、
      前記アンカー情報の要求に対して前記サーバ装置から受信した回答に基づいて、前記第1の現実空間に対応する第1のアンカー情報および前記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を前記メモリに記憶させ、
      前記情報処理端末が前記第2の現実空間に入った場合に、前記メモリに記憶された前記第2のアンカー情報に基づいて、前記第2の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成し前記表示部に表示させる
     ように構成される、情報処理端末。
  6.  現実空間を表す空間情報を取得し、前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、前記情報処理端末との間で通信が可能なサーバ装置と、を備える情報処理システムが実行する情報処理方法であって、
     前記サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理することと、
     前記サーバ装置が、前記情報処理端末から前記複数の現実空間のうち第1の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第1の現実空間に対応する複合空間管理情報に基づいて、前記第1の現実空間に対応する第1のアンカー情報および前記第1の現実空間に隣接する第2の現実空間に対応する第2のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信することと
     前記情報処理端末が、前記複数の現実空間のうち第1の現実空間に入った場合に、前記アンカー情報の取得要求を前記サーバ装置へ送信して、前記サーバ装置から前記回答情報を取得ることと、
     前記情報処理端末が、前記取得された回答情報を記憶媒体に記憶し、前記第2の現実空間に入った場合に、前記記憶媒体に記憶された回答情報に含まれる前記第2のアンカー情報に基づいて、前記第2の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成することと
     を備える、情報処理方法。
  7.  請求項4に記載のサーバ装置により実行される各処理をプロセッサに実行させるためのプログラム。
  8.  請求項5に記載の情報処理端末により実行される各処理をプロセッサに実行させるためのプログラム。
PCT/JP2020/015127 2019-04-16 2020-04-02 情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム WO2020213405A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/603,551 US11721078B2 (en) 2019-04-16 2020-04-02 Information processing system, information processing terminal device, server device, information processing method and program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019077799A JP7163855B2 (ja) 2019-04-16 2019-04-16 情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム
JP2019-077799 2019-04-16

Publications (1)

Publication Number Publication Date
WO2020213405A1 true WO2020213405A1 (ja) 2020-10-22

Family

ID=72837769

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/015127 WO2020213405A1 (ja) 2019-04-16 2020-04-02 情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム

Country Status (3)

Country Link
US (1) US11721078B2 (ja)
JP (1) JP7163855B2 (ja)
WO (1) WO2020213405A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734477B2 (en) * 2018-03-08 2023-08-22 Concurrent Technologies Corporation Location-based VR topological extrusion apparatus
WO2022208612A1 (ja) * 2021-03-29 2022-10-06 京セラ株式会社 ウェアラブル端末装置、プログラムおよび表示方法
KR20220152736A (ko) * 2021-05-10 2022-11-17 삼성전자주식회사 시청자 환경 기반 ar 서비스 제공 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145614A1 (ja) * 2012-03-27 2013-10-03 パナソニック株式会社 情報処理装置、サーバ装置、情報処理方法、およびプログラム
US20170345167A1 (en) * 2016-05-31 2017-11-30 Microsoft Technology Licensing, Llc Systems and methods for utilizing anchor graphs in mixed reality environments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8502835B1 (en) * 2009-09-02 2013-08-06 Groundspeak, Inc. System and method for simulating placement of a virtual object relative to real world objects
US10115234B2 (en) * 2016-03-21 2018-10-30 Accenture Global Solutions Limited Multiplatform based experience generation
US10373381B2 (en) * 2016-03-30 2019-08-06 Microsoft Technology Licensing, Llc Virtual object manipulation within physical environment
US10140773B2 (en) * 2017-02-01 2018-11-27 Accenture Global Solutions Limited Rendering virtual objects in 3D environments
US11004270B2 (en) * 2018-09-11 2021-05-11 Houzz, Inc. Virtual item placement system
US10803669B1 (en) * 2018-12-11 2020-10-13 Amazon Technologies, Inc. Rule-based augmentation of a physical environment
US11263615B2 (en) * 2019-03-01 2022-03-01 Visa International Service Association System, method, and computer program product for authentication by augmented reality for fraud prevention

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145614A1 (ja) * 2012-03-27 2013-10-03 パナソニック株式会社 情報処理装置、サーバ装置、情報処理方法、およびプログラム
US20170345167A1 (en) * 2016-05-31 2017-11-30 Microsoft Technology Licensing, Llc Systems and methods for utilizing anchor graphs in mixed reality environments

Also Published As

Publication number Publication date
JP7163855B2 (ja) 2022-11-01
US11721078B2 (en) 2023-08-08
US20220189127A1 (en) 2022-06-16
JP2020177338A (ja) 2020-10-29

Similar Documents

Publication Publication Date Title
JP7425848B2 (ja) 複合現実システムのための位置特定の決定
WO2020213405A1 (ja) 情報処理システム、情報処理端末、サーバ装置、情報処理方法およびプログラム
CN102089776B (zh) 通过多个装置管理个人数字资源的方法和系统
US20210056762A1 (en) Design and generation of augmented reality experiences for structured distribution of content based on location-based triggers
US20130311566A1 (en) Method and apparatus for creating rule-based interaction of portable client devices at a live event
CN112074797A (zh) 用于将虚拟对象锚定到物理位置的系统和方法
CN106164934A (zh) 智能相机用户界面
TWI689200B (zh) 彈幕顯示方法和裝置
CN101904185A (zh) 移动虚拟和增强现实系统
WO2017054327A1 (zh) 确定图像的待叠加区域、叠加图像、图片呈现方法和装置
JP2007013704A (ja) データシェアリングシステム、コントローラ端末、プレーヤー端末、データシェアリング同時再生方法及びデータシェアリング同時再生プログラム
US20240154801A1 (en) System for Certificating and Synchronizing Virtual World and Physical World
KR20190028030A (ko) 디지털 사이니지 관리 시스템 및 방법
US20170060965A1 (en) System, server and method for managing contents based on location grouping
KR102637984B1 (ko) 메타버스와 메신저 채팅룸을 연동하여 사용자를 인증하고 동기화 하는 방법 및 장치
CN108200010A (zh) 虚拟场景与真实场景的数据交互方法、装置、终端及系统
US20170187720A1 (en) Sharing files based on recipient-location criteria
KR102571086B1 (ko) 가상공간을 이용한 다중 사용자 간 협업 지원 방법 및 시스템
JP7282222B2 (ja) コンピュータプログラム、方法及びサーバ装置
KR102660948B1 (ko) 메타버스와 메신저 채팅룸 간 커뮤니케이션 내용 전달 방법 및 장치
US20220335693A1 (en) Mixed reality space sharing system, sharing information management server, mixed reality terminal, mixed reality space sharing method, and sharing information management program
JP7038869B1 (ja) コンピュータプログラム、方法及びサーバ装置
Bravo-Torres et al. A platform to exploit short-lived relationships among mobile users: A case of collective immersive learning
US20160198454A1 (en) Systems and methods for ad hoc cellular communications
CN113784151B (zh) 一种数据处理方法、装置、计算机设备及存储介质

Legal Events

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

Ref document number: 20790999

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20790999

Country of ref document: EP

Kind code of ref document: A1