US20170127023A1 - Virtual conference room - Google Patents
Virtual conference room Download PDFInfo
- Publication number
- US20170127023A1 US20170127023A1 US15/298,968 US201615298968A US2017127023A1 US 20170127023 A1 US20170127023 A1 US 20170127023A1 US 201615298968 A US201615298968 A US 201615298968A US 2017127023 A1 US2017127023 A1 US 2017127023A1
- Authority
- US
- United States
- Prior art keywords
- representation
- space
- dimensional model
- user
- computer system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/157—Conference systems defining a virtual conference space and using avatars or agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- H04N13/0059—
-
- H04N13/0278—
-
- H04N13/0479—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/275—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
- H04N13/279—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/378—Image reproducers using viewer tracking for tracking rotational head movements around an axis perpendicular to the screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Definitions
- This invention relates to systems and methods for providing virtual reality experiences.
- Video conferences may even have multiple participants in multiple locations.
- video conferencing provides many of the benefits of a face-to-face meeting, it is still limited in its ability to allow the same kinds of interactions that are permitted during an in-person conference.
- the systems and methods disclosed herein provide an improved approach for conducting meetings among remote participants using virtualization technologies.
- FIG. 1 is a schematic block diagram of a network environment suitable for implementing embodiments of the invention
- FIG. 2 is a schematic block diagram of an example computing device suitable for implementing methods in accordance with embodiments of the invention
- FIG. 3 is a process flow diagram of a method for scanning a space in accordance with an embodiment of the invention.
- FIG. 4 is a process flow diagram of a method for conducting a virtual conference in accordance with an embodiment of the present invention
- FIGS. 5A and 5B are diagrams illustrating remote spaces conducting a virtual conference in accordance with an embodiment of the present invention.
- FIG. 6 is a process flow diagram of a method for interacting with objects in a virtual conference in accordance with an embodiment of the present invention.
- FIGS. 7A and 7B are diagrams illustrating representations of an object in a virtual conference in accordance with an embodiment of the present invention.
- Embodiments in accordance with the present invention may be embodied as an apparatus, method, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
- a computer-readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device.
- a computer-readable medium may comprise any non-transitory medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the program code may execute entirely on a computer system as a stand-alone software package, on a stand-alone hardware unit, partly on a remote computer spaced some distance from the computer, or entirely on a remote computer or server.
- the remote computer may be connected to the computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- These computer program instructions may also be stored in a non-transitory computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- a network environment 100 may be used to implement methods as described herein.
- the environment 100 may include a server system 102 associated with one or both parties of a virtual conference. For example, all parties of a virtual conference as described herein may communicate with the server system 102 .
- separate server systems 102 may be remote from one another with each party of the virtual conference communicating through a separate server system 102 , the separate server systems 102 communicating with one another by means of a network 104 .
- the network 104 may be a local area network (LAN), wide area network (WAN), the Internet, or any other type of network.
- the server system 102 preferably has multiple processors and networking bandwidth sufficient to receive, transmit, and process the virtual conferencing data according to the methods disclosed herein.
- Each space participating in a virtual conference may include a set of virtualization devices 106 for facilitating sensing of the each space for virtualization elsewhere and for virtualizing a remote space in the each space.
- the virtualization devices 106 may include a three-dimensional (3D) scanner 108 a .
- the 3D scanner 108 a may advantageously be a laser scanner capable of performing a 360-degree scan of a space.
- the 3D scanner 108 a may be embodied as the FARO FOCUS 3D laser scanner or other type of laser scanner.
- the virtualization devices 106 may further include partial scanners 108 b .
- the partial scanners 108 b may have a smaller field of view than the 3D scanner 108 a but provide faster processing times to obtain a 3D model using captured data.
- the partial scanners 108 b may be optical scanners.
- multiple partial scanners 108 b are used such that the combined fields of view of the partial scanners 108 b are equal to all or substantially all (e.g., 90%) of the field of view of the 3D scanner.
- the partial scanners 108 b are embodied as the FARO FREESTYLE3D SCANNER or some other optical 3D scanner known in the art.
- the virtualization devices 106 may include one or more video cameras 108 c .
- the video cameras 108 c may be positioned and oriented to capture images of the same local region as the 3D scanner 108 a and partial scanners 108 b .
- the images captured by the cameras 108 c may then be mapped to three-dimensional point clouds measured using the scanners 108 a , 108 b to generate a three-dimensional model of the local region that overlays image date over the point cloud thereby providing a visually authentic representation of the local region.
- the manner in which the three-dimensional point clouds and image data is combined may be performed according to any method known in the art.
- the virtualization devices 106 may include audio devices 108 d , including a microphone for detecting sound in the local region and speakers for playing back sounds recorded in a remote region.
- the virtualization devices 106 may include haptic devices 108 e , including a haptic feedback device, such as a glove that is capable of one or both of detecting contact of an object with the glove and simulating contact with the glove.
- the haptic devices 108 e may include any haptic glove or other haptic feedback device known in the art.
- the virtualization devices 106 may include gustatory devices 108 f , including one or both of a device for detecting chemicals in the local region and a device for simulating the taste of chemicals in the local region.
- the gustatory devices 108 f may include the DIGITAL LOLLIPOP device.
- the virtualization devices 106 may include olfactory devices 108 g , including one or both of a device for detecting smells in the local region and a device for simulating smells in the local region.
- the olfactory devices 108 g may include any devices for detecting or simulating smells known in the art.
- a virtual reality headset 110 may also be coupled to the server system 102 .
- the headset 110 may include any virtual reality headset known in the art such as the OCCULUS RIFT, MICROSOFT HOLOLENS, ZEISS VR ONE, GOGGLE CARDBOARD, and the like.
- the virtual reality headset 110 may include a locator module 112 a including any location mechanism known in the art to determine the location and orientation of the headset 110 in the local region.
- the headset 110 may include a GPS receiver, compass, accelerometer, or other device enabling the headset 110 to detect its position and orientation and/or changes in its position and orientation.
- the headset 110 may also have one or more optically-recognizable targets affixed thereto that enable determination of the position and orientation of the headset 110 using one or more cameras (e.g. images captured using video cameras 108 c ).
- the position and orientation (hereinafter “viewpoint”) of the headset 110 may be transmitted to the server system 102 , which will then render images of a model according to the user's viewpoint in the local region.
- the headset 110 may further include a display module 112 b .
- a virtual reality headset 110 presents two images of a scene from two different viewpoints, e.g. from a left eye and a right eye. These two images are presented simultaneously to the right and left eye, which the brain will then interpret as viewing of a three-dimensional scene.
- the display module 112 b may receive a stream of image pairs and display each pair of images to the wearer of the headset 110 .
- the image pairs may be received from the server system 102 .
- the server system 102 may transmit a model to the headset 110 , which then determines the headset's position and orientation and renders the two images based on the model.
- the server system 102 may execute or access a virtual conference engine 114 .
- the virtual conference engine 114 may include a model module 116 a programmed to periodically receive point clouds from one or both of the 3D scanner 108 a and partial scanner 108 b and from the video camera 108 c .
- the model module 116 a then combines these to generate a model of the local region that simulates both the 3D shape of objects in the local region as well as their visual appearance (e.g. color).
- the partial scanners 108 b may provide scans more often than the 3D scanner 108 a and the outputs of the partial scans may be used to update a model created using a point cloud from the 3D scanner 108 a.
- the virtual conference engine 114 may include a mapping module 116 b .
- the mapping module 116 b maps at least one of a point and two or more dimensions in the local region to a point and one or more dimensions in a remote region.
- the model created by the model module 116 a may define a local coordinate space.
- the mapping module 116 b maps this local coordinate space to a remote coordinate space of a model generated of the remote region.
- the mapping may be accomplished by relating a single point in the local coordinate space to a single point in the remote coordinate space.
- the mapping may further include mapping two dimensions (e.g. vertical and horizontal) in the local coordinate space to corresponding dimensions in the remote coordinate space. In this manner, each point in the local coordinate space may then be related to or translated to a position in the remove coordinate space and vice-versa.
- the reference point may be specified by users of the system, e.g. by placing an optically recognizable target or a target having a recognizable 3D shape that is detected automatically in the model of the local region.
- the reference point may be specified manually by a user selection using a pointing device of a point in the model of the local region.
- the reference point may be automatically selected by analyzing the model of the region, e.g. a corner where the floor and two walls meet may be selected automatically as the reference point.
- the manner in which the reference point of the remote region is selected may be performed in the same manner as for the local region.
- the virtual conference engine 114 may include a filtering module 116 c .
- the model generated by the model module 116 a may be processed to remove objects that are not relevant. For example, walls, floors, and ceilings may be removed from the model to obtain a filtered model. The filtered model may then be transmitted to the remote region for display, thereby reducing the amount of data required to be transmitted.
- the filtering module 116 c may be programmed to receive user selection of objects and remove the selected objects from the model.
- the virtual conference engine 114 may include a viewpoint module 116 d .
- the viewpoint module 116 d determines and current viewpoint of the headset 110 and relates this viewpoint to the model. Specifically, the location and orientation of the headset 110 as determined using the locator module 112 a is mapped by the viewpoint module 116 d to a position and orientation within the local coordinate space. Using the mapping module 116 b , the position and orientation of the headset 110 is also determined with respect to the remote coordinate space.
- the virtual conference engine 114 may include a rendering module 116 e .
- the rendering module 116 e generates image pairs for display in the headset 110 .
- the image pairs are images of the model viewed from the point of view determined by the viewpoint module 116 e .
- the rendering module 116 e may incorporate people and objects from a model of one or more remote regions into the model prior to rendering as discussed in greater detail below with respect to FIGS. 3, 4, 5A and 5B .
- the virtual conference engine 114 may include an interaction module 116 f .
- the interaction module 116 f receives inputs from users in the local and remote regions. The inputs may be received by detecting movements of the user's hands, an input device (mouse, keyboard), motion sensing system (e.g. MICROSOFT KINECT), or other input device. In response to interactions, actions may be invoked, such as the manipulation of virtualized real objects (objects that are present in one of the local and remote regions but represented as a virtual object in the another region) or purely virtual objects that are not present in any region.
- the function of the interaction module 116 f is described in greater detail below with respect to FIGS. 6, 7A, and 7B .
- FIG. 2 is a block diagram illustrating an example computing device 200 .
- Computing device 200 may be used to perform various procedures, such as those discussed herein.
- the server system 102 , virtualization devices 106 , and headset 110 may have some or all of the attributes of the computing device 200 .
- Computing device 200 can function as a server, a client, or any other computing entity.
- Computing device can perform various monitoring functions as discussed herein, and can execute one or more application programs, such as the application programs described herein.
- Computing device 200 can be any of a wide variety of computing devices, such as a desktop computer, a notebook computer, a server computer, a handheld computer, a tablet computer and the like.
- a server system 102 may include one or more computing devices 200 each including one or more processors.
- Computing device 200 includes one or more processor(s) 202 , one or more memory device(s) 204 , one or more interface(s) 206 , one or more mass storage device(s) 208 , one or more Input/Output (I/O) device(s) 210 , and a display device 230 all of which are coupled to a bus 212 .
- Processor(s) 202 include one or more processors or controllers that execute instructions stored in memory device(s) 204 and/or mass storage device(s) 208 .
- Processor(s) 202 may also include various types of computer-readable media, such as cache memory.
- Memory device(s) 204 include various computer-readable media, such as volatile memory (e.g., random access memory (RAM) 214 ) and/or nonvolatile memory (e.g., read-only memory (ROM) 216 ). Memory device(s) 204 may also include rewritable ROM, such as Flash memory.
- volatile memory e.g., random access memory (RAM) 214
- ROM read-only memory
- Memory device(s) 204 may also include rewritable ROM, such as Flash memory.
- Mass storage device(s) 208 include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As shown in FIG. 2 , a particular mass storage device is a hard disk drive 224 . Various drives may also be included in mass storage device(s) 208 to enable reading from and/or writing to the various computer readable media. Mass storage device(s) 208 include removable media 226 and/or non-removable media.
- I/O device(s) 210 include various devices that allow data and/or other information to be input to or retrieved from computing device 200 .
- Example I/O device(s) 210 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capture devices, and the like.
- Display device 230 includes any type of device capable of displaying information to one or more users of computing device 200 .
- Examples of display device 230 include a monitor, display terminal, video projection device, and the like.
- Interface(s) 206 include various interfaces that allow computing device 200 to interact with other systems, devices, or computing environments.
- Example interface(s) 206 include any number of different network interfaces 220 , such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet.
- Other interface(s) include user interface 218 and peripheral device interface 222 .
- the interface(s) 206 may also include one or more peripheral interfaces such as interfaces for printers, pointing devices (mice, track pad, etc.), keyboards, and the like.
- Bus 212 allows processor(s) 202 , memory device(s) 204 , interface(s) 206 , mass storage device(s) 208 , I/O device(s) 210 , and display device 230 to communicate with one another, as well as other devices or components coupled to bus 212 .
- Bus 212 represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth.
- programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components may reside at various times in different storage components of computing device 200 , and are executed by processor(s) 202 .
- the systems and procedures described herein can be implemented in hardware, or a combination of hardware, software, and/or firmware.
- one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein.
- the illustrated method 300 may be executed by the server system 102 .
- the method 300 may include performing 302 a full 3D scan with the 3D scanner 108 a .
- the scanner 108 a is referenced throughout in the singular, in some embodiments the full 3D scan of step 302 may be performed by multiple scanners 108 a . Accordingly, references herein to the scanner 108 a may be interpreted as including one scanner 108 a or multiple scanners 108 a.
- Performing a full scan may include scanning a complete field of view of the 3D scanner 108 a although this may not include an entire room or local region in which the 3D scanner 108 a is located.
- the result of the scan 302 may be a point cloud received by the server system 102 from the scanner 108 a , including a set of three-dimensional coordinates measured using the scanner 108 a .
- the coordinates may be defined with respect to a scanner coordinate space and may be retained in that coordinate space or transformed to a different coordinate space.
- the method 300 may further include performing an image scan 304 , i.e. taking one or more images of the local region using one or more cameras 108 c .
- the fields of view of the one or more cameras 108 c preferably overlap substantially all (e.g. 90%) of the field of view of the scanner 108 a.
- the method 300 may include generating a model 306 using the full scan of step 302 and the image scan 304 . As noted above, this may include wrapping or overlaying the images of step 304 over the point cloud obtained from step 302 in order to obtain a model that has both the three-dimensional attributes of the point cloud and the visual attributes (e.g. color) of the images.
- the manner in which the point cloud and images are combined may be performed using any method known in the art.
- the method 300 may further include periodically performing 308 partial scans and updating 310 the model from step 306 according to the partial scans.
- Performing 308 the partial scans may include performing partial scans using the partial scanners 108 b .
- the partial scanners 108 b may be optical scanners or may output a point cloud that can be combined with image data to create a model.
- performing 308 partial scans may include taking one or more pictures of the field of view of the partial scanners 108 b and combining them to create the partial model.
- the partial scans may be performed 310 periodically according to a predetermined rate or may be performed in response to sensing of motion in the field of view of the partial scanner 108 b , such as using a motion sensor coupled to the partial scanner 108 b or server system 102 .
- the result of the partial scan 308 is a partial model in a partial coordinate space of the partial scanner 108 b .
- This partial model may be transformed to the coordinate space of the full model and added to the full model 306 .
- a partial scanner 108 b may have a volume of the local region in its field of view. Accordingly, the full model may be updated 310 by replacing the portion of the full model corresponding to this volume with the partial model.
- the mapping of the partial coordinate space to the scanner coordinate space may be performed based on prior calibration of the partial scanner 108 b and 3D scanner 108 a . Specifically, a target or other object may be placed in the local region and detected using both scanners 108 a , 108 b . By transforming the location of the object in the partial coordinate space to the location of the object in the scanner coordinate space, the transformation required to map one coordinate space to the other may be determined.
- Steps 308 , 310 may be repeated periodically throughout a virtual conference.
- full scans using the 3D scanner 108 may also be performed periodically but at a slower rate than the partial scans.
- the illustrated method 400 may be executed by a server system 102 to conduct a virtual conference.
- the method 400 may represent the functionality with respect to one location participating in a conference.
- a remote location participating may execute the method 400 simultaneously either using the same server system 102 or a separate server system 102 .
- the method 400 may include defining reference points 402 . This may include receiving or selecting a point in the local region and receiving points from one or more remote regions.
- the reference points may be defined as three-dimensional coordinates.
- the reference point for the local region may be a point in the scanner coordinate space and the reference points received from remote regions may be coordinates in scanner coordinate spaces of scanners located in the remote regions.
- the method 400 may further include generating 404 a local model of the local space, this may include executing the method 300 of FIG. 3 to obtain a full model or an updated full model using partial scans.
- the local model may also be filtered 406 . As noted above, this may include removing walls, floors, ceilings, and other mundane objects that are not relevant to the conference.
- the objects removed from the local model may be selected manually or identified automatically. For example, flours, walls, and ceilings may be identified by the server system based on their flat shape and large extent relative to the local region.
- the filtered model may then be transmitted 408 to a remote region for display to participants in the remote region.
- the server system 102 may likewise receive 410 a remote model from the remote region, the remote model being a model or filtered model generated with respect to the remote region in the same manner as the filtered model of steps 404 or 406 .
- the models transmitted and received at steps 408 , 410 may be partial models, i.e. only portions of the models that have changed relative to a previously transmitted model. In this manner, latency may be reduced.
- the method 400 may include mapping 412 the remote model to the filtered model using the reference points.
- a transformation required to transform the remote reference point to the local reference point is determined. This transformation is then applied to the remote model to map 412 it to the scanner coordinate space of the local region.
- the transformed remote model and filtered model are then combined to obtain a combined model.
- the method 400 may further include detecting 414 the viewpoint of one or more users in the local region. This may include detecting the viewpoint of one or more headsets 110 in the local region as discussed above.
- the combined remote and filtered model from step 412 is then rendered 416 for the users in the local region according to the viewpoints detected at step 414 .
- the viewpoint thereof is transformed to the scanner coordinate space and a pair of images of the combined model from that viewpoint in scanner coordinate space is rendered.
- the method 400 may be repeated throughout the conference. During execution of the method 400 , sounds detected in the local region may be transmitted to the remote region and vice-versa.
- FIG. 5A illustrates a local region with equipment and user's present
- FIG. 5B illustrates a remote region.
- the scanners 108 a , 108 b are arranged in the room to scan some or all of the room.
- the local region is an enclosed space in this example, open outdoor spaces or large indoor spaces exceeding the range if other scanners 108 a , 108 b may also be used. Accordingly, the local region may simply be defined as the space that is scanned by both types of scanners 108 a , 108 b.
- the video camera 108 c may be located in the region. As noted above, the video camera 108 c may include multiple cameras. Multiple video cameras 108 c may be arranged around the local region in order to capture substantially all of the fields of view of the scanner 108 a and scanners 108 b . In the illustrated embodiment, the video camera 108 c is a 360-degree camera mounted in an elevated position within the region.
- the walls 500 and floor 502 of the local region may be in the field of view of some or all of the scanners 108 a , 108 b but removed from any model transmitted for display in the remote region.
- Users 504 are located within the local region and wear headsets 110 .
- Users 506 are located in one or more remote regions and the dotted representations thereof shown in FIG. 5A indicate the location of virtual images of the users 506 that will be displayed in the headsets 110 of the users 504 .
- virtual images of the users 506 will be part of the remote model received and combined with the filtered model.
- Objects 508 may be located in the local region and be scanned and virtual models thereof transmitted to the remote region. Likewise, objects 510 in the remote region may be scanned and included in the remote model. Virtual representations of the objects 510 will therefore be rendered in the headsets 110 of the users when located within the field of view thereof as determined based on the viewpoint of the headsets 110 .
- the users 504 are represented as virtual objects in a combined model by headsets 110 worn by users 506 in the remote region.
- the object 510 is a real object in the remote region whereas the object 508 is now represented as a virtual object in the remote region.
- the illustrated method 600 may be executed by the server system 102 to facilitate interaction among remote participants in a conference.
- the method 600 may include scanning 602 an object in the remote region and rendering 604 a virtual object in the local region using data (point cloud and image data). Scanning 602 and rendering 604 may be performed as part of executing the method 400 of FIG. 4 .
- the method 400 may further include receiving 606 interaction with the virtual object. For example, motion of a user's hand in proximity to the virtual object (e.g. using MICROSOFT KINECT sensors), inputs to a keyboard, movement of a pointing device, or other interactions referencing the virtual object may be detected.
- the virtual object may be modified 608 .
- an interaction may include a user transferring a virtual representation of a part into proximity to a machine (the virtual object).
- the virtual object may then be modified by adding the part to the machine in a position and orientation instructed by the user, i.e. according to user movements of the virtual representation of the part.
- the virtual object as modified may be transmitted 610 to the remote region and rendered such that the modifications to the virtual object are superimposed 612 on the real object in the remote region, i.e. a user viewing the real object through a headset 110 will view the modifications to the virtual object superimposed on the real object in the images presented to the user.
- the method 600 may be used to implement the following use case.
- a first person (Bob) in the local region may be viewing a machine in the remote region and a part to the machine in the remote region in the hand of a second person (Sue).
- Bob can reach out to the holographic image of the part in Sue's hand.
- Bob could invoke copying of the part and thereby create a holographic image of the part “held” in Bob's hand and rendered in both the local and remote regions.
- Bob may then invoke movement of the holographic copy of the part to the virtual representation of the machine and place it on the representation.
- Sue will see the real machine in the remote region and the holographic image of the part on the machine as well as the real part still in her hand.
- Sue can now either manipulate the holographic image or the real part in her hand, both of of which can still be seen by Bob as virtual objects.
- interactions may be received with respect to virtual objects that are not present in either the local or remote regions.
- a user may invoke display of a virtual object stored in a storage device, where the virtual object is a result of a previous scanning of a real object or a purely computerized model.
- Interaction and modification with subsequent display of the modified object may then be performed in the same manner as described above with respect to the method 600 of FIG. 6 .
- a real object 700 is scanned in the remote region and rendered in the local region as virtual object 704 .
- Interactions are received in the local region that instruct the server system to add virtual modification 704 to the virtual object 704 .
- the virtual modification 704 is transmitted to the remote region and rendered in the remote region superimposed on the real object 700 in the same relation to the real object 700 as the virtual modification 704 has to the virtual object 702 in the local region.
- the systems and methods disclosed herein further enable the implementation of digital holographic assistive agents (HAA) that could interact with human participants in the conference.
- HAA digital holographic assistive agents
- the HAA could then help the conference participants bring in new human participants or engage available technology capabilities or reports into active conferences.
- the HAA could be humanoid or some other avatar that would represent an artificially intelligent program execution or data retrieval agent.
- an area or object of special interest in either region could be given a centralized focus.
- a participant perspective would provide the ability to “zoom in” or walk around a scanned or virtual object.
- Image enhancement would allow the resolution to be increased or decreased by changing proximity. For example a viewer could walk around to the back, move closer, zoom in to read a small label, examine texture or other detailed features.
- an audience perspective could move the object on stage with viewers appearing to remain stationary, like a car on a turnstile stage.
- Virtual whiteboards could be added allowing virtual writing or drawing. Supplemental, information, effects, objects, video, news headlines or various backdrops can be virtually added to facilitate collaboration, enhance presentation effectiveness or increase artistic value.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
- This application claims the benefit of U.S. Provisional Patent Application 62/248,986, filed Oct. 30, 2015, and titled “Virtual Conference Room”, the entire contents of which are hereby incorporated herein by reference.
- Field of the Invention
- This invention relates to systems and methods for providing virtual reality experiences.
- Background of the Invention
- The cost and time required by travel is avoided in many instances by having video conferences. Video conferences may even have multiple participants in multiple locations. Although video conferencing provides many of the benefits of a face-to-face meeting, it is still limited in its ability to allow the same kinds of interactions that are permitted during an in-person conference.
- The systems and methods disclosed herein provide an improved approach for conducting meetings among remote participants using virtualization technologies.
- In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through use of the accompanying drawings, in which:
-
FIG. 1 is a schematic block diagram of a network environment suitable for implementing embodiments of the invention; -
FIG. 2 is a schematic block diagram of an example computing device suitable for implementing methods in accordance with embodiments of the invention; -
FIG. 3 is a process flow diagram of a method for scanning a space in accordance with an embodiment of the invention; -
FIG. 4 is a process flow diagram of a method for conducting a virtual conference in accordance with an embodiment of the present invention; -
FIGS. 5A and 5B are diagrams illustrating remote spaces conducting a virtual conference in accordance with an embodiment of the present invention; -
FIG. 6 is a process flow diagram of a method for interacting with objects in a virtual conference in accordance with an embodiment of the present invention; and -
FIGS. 7A and 7B are diagrams illustrating representations of an object in a virtual conference in accordance with an embodiment of the present invention. - It will be readily understood that the components of the present invention, as generally described and illustrated in the Figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the invention, as represented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of certain examples of presently contemplated embodiments in accordance with the invention. The presently described embodiments will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout.
- Embodiments in accordance with the present invention may be embodied as an apparatus, method, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
- Any combination of one or more computer-usable or computer-readable media may be utilized. For example, a computer-readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device. In selected embodiments, a computer-readable medium may comprise any non-transitory medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a computer system as a stand-alone software package, on a stand-alone hardware unit, partly on a remote computer spaced some distance from the computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions or code. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a non-transitory computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- Referring to
FIG. 1 , anetwork environment 100 may be used to implement methods as described herein. Theenvironment 100 may include aserver system 102 associated with one or both parties of a virtual conference. For example, all parties of a virtual conference as described herein may communicate with theserver system 102. Alternatively,separate server systems 102 may be remote from one another with each party of the virtual conference communicating through aseparate server system 102, theseparate server systems 102 communicating with one another by means of anetwork 104. Thenetwork 104 may be a local area network (LAN), wide area network (WAN), the Internet, or any other type of network. - The methods disclosed herein provide large amounts of computing resources, accordingly the
server system 102 preferably has multiple processors and networking bandwidth sufficient to receive, transmit, and process the virtual conferencing data according to the methods disclosed herein. - Each space participating in a virtual conference may include a set of
virtualization devices 106 for facilitating sensing of the each space for virtualization elsewhere and for virtualizing a remote space in the each space. For example, thevirtualization devices 106 may include a three-dimensional (3D)scanner 108 a. The3D scanner 108 a may advantageously be a laser scanner capable of performing a 360-degree scan of a space. For example, the3D scanner 108 a may be embodied as the FARO FOCUS 3D laser scanner or other type of laser scanner. - The
virtualization devices 106 may further includepartial scanners 108 b. Thepartial scanners 108 b may have a smaller field of view than the3D scanner 108 a but provide faster processing times to obtain a 3D model using captured data. For example, thepartial scanners 108 b may be optical scanners. In some embodiments, multiplepartial scanners 108 b are used such that the combined fields of view of thepartial scanners 108 b are equal to all or substantially all (e.g., 90%) of the field of view of the 3D scanner. In some embodiments, thepartial scanners 108 b are embodied as the FARO FREESTYLE3D SCANNER or some other optical 3D scanner known in the art. - The
virtualization devices 106 may include one ormore video cameras 108 c. Thevideo cameras 108 c may be positioned and oriented to capture images of the same local region as the3D scanner 108 a andpartial scanners 108 b. The images captured by thecameras 108 c may then be mapped to three-dimensional point clouds measured using thescanners - The
virtualization devices 106 may includeaudio devices 108 d, including a microphone for detecting sound in the local region and speakers for playing back sounds recorded in a remote region. - The
virtualization devices 106 may includehaptic devices 108 e, including a haptic feedback device, such as a glove that is capable of one or both of detecting contact of an object with the glove and simulating contact with the glove. Thehaptic devices 108 e may include any haptic glove or other haptic feedback device known in the art. - The
virtualization devices 106 may include gustatory devices 108 f, including one or both of a device for detecting chemicals in the local region and a device for simulating the taste of chemicals in the local region. For example, the gustatory devices 108 f may include the DIGITAL LOLLIPOP device. - The
virtualization devices 106 may includeolfactory devices 108 g, including one or both of a device for detecting smells in the local region and a device for simulating smells in the local region. Theolfactory devices 108 g may include any devices for detecting or simulating smells known in the art. - A
virtual reality headset 110 may also be coupled to theserver system 102. Theheadset 110 may include any virtual reality headset known in the art such as the OCCULUS RIFT, MICROSOFT HOLOLENS, ZEISS VR ONE, GOGGLE CARDBOARD, and the like. Thevirtual reality headset 110 may include alocator module 112 a including any location mechanism known in the art to determine the location and orientation of theheadset 110 in the local region. For example, theheadset 110 may include a GPS receiver, compass, accelerometer, or other device enabling theheadset 110 to detect its position and orientation and/or changes in its position and orientation. Theheadset 110 may also have one or more optically-recognizable targets affixed thereto that enable determination of the position and orientation of theheadset 110 using one or more cameras (e.g. images captured usingvideo cameras 108 c). The position and orientation (hereinafter “viewpoint”) of theheadset 110 may be transmitted to theserver system 102, which will then render images of a model according to the user's viewpoint in the local region. - The
headset 110 may further include adisplay module 112 b. As known in the art, avirtual reality headset 110 presents two images of a scene from two different viewpoints, e.g. from a left eye and a right eye. These two images are presented simultaneously to the right and left eye, which the brain will then interpret as viewing of a three-dimensional scene. Accordingly, thedisplay module 112 b may receive a stream of image pairs and display each pair of images to the wearer of theheadset 110. The image pairs may be received from theserver system 102. Alternatively, theserver system 102 may transmit a model to theheadset 110, which then determines the headset's position and orientation and renders the two images based on the model. - The
server system 102 may execute or access avirtual conference engine 114. Thevirtual conference engine 114 may include amodel module 116 a programmed to periodically receive point clouds from one or both of the3D scanner 108 a andpartial scanner 108 b and from thevideo camera 108 c. Themodel module 116 a then combines these to generate a model of the local region that simulates both the 3D shape of objects in the local region as well as their visual appearance (e.g. color). As described in greater detail below, thepartial scanners 108 b may provide scans more often than the3D scanner 108 a and the outputs of the partial scans may be used to update a model created using a point cloud from the3D scanner 108 a. - The
virtual conference engine 114 may include amapping module 116 b. Themapping module 116 b maps at least one of a point and two or more dimensions in the local region to a point and one or more dimensions in a remote region. In particular, the model created by themodel module 116 a may define a local coordinate space. Themapping module 116 b maps this local coordinate space to a remote coordinate space of a model generated of the remote region. The mapping may be accomplished by relating a single point in the local coordinate space to a single point in the remote coordinate space. The mapping may further include mapping two dimensions (e.g. vertical and horizontal) in the local coordinate space to corresponding dimensions in the remote coordinate space. In this manner, each point in the local coordinate space may then be related to or translated to a position in the remove coordinate space and vice-versa. - The reference point may be specified by users of the system, e.g. by placing an optically recognizable target or a target having a recognizable 3D shape that is detected automatically in the model of the local region. The reference point may be specified manually by a user selection using a pointing device of a point in the model of the local region. The reference point may be automatically selected by analyzing the model of the region, e.g. a corner where the floor and two walls meet may be selected automatically as the reference point. The manner in which the reference point of the remote region is selected may be performed in the same manner as for the local region.
- The
virtual conference engine 114 may include afiltering module 116 c. In some embodiments, the model generated by themodel module 116 a may be processed to remove objects that are not relevant. For example, walls, floors, and ceilings may be removed from the model to obtain a filtered model. The filtered model may then be transmitted to the remote region for display, thereby reducing the amount of data required to be transmitted. In some embodiments, thefiltering module 116 c may be programmed to receive user selection of objects and remove the selected objects from the model. - The
virtual conference engine 114 may include aviewpoint module 116 d. Theviewpoint module 116 d determines and current viewpoint of theheadset 110 and relates this viewpoint to the model. Specifically, the location and orientation of theheadset 110 as determined using thelocator module 112 a is mapped by theviewpoint module 116 d to a position and orientation within the local coordinate space. Using themapping module 116 b, the position and orientation of theheadset 110 is also determined with respect to the remote coordinate space. - The
virtual conference engine 114 may include arendering module 116 e. Therendering module 116 e generates image pairs for display in theheadset 110. The image pairs are images of the model viewed from the point of view determined by theviewpoint module 116 e. Therendering module 116 e may incorporate people and objects from a model of one or more remote regions into the model prior to rendering as discussed in greater detail below with respect toFIGS. 3, 4, 5A and 5B . - The
virtual conference engine 114 may include aninteraction module 116 f. Theinteraction module 116 f receives inputs from users in the local and remote regions. The inputs may be received by detecting movements of the user's hands, an input device (mouse, keyboard), motion sensing system (e.g. MICROSOFT KINECT), or other input device. In response to interactions, actions may be invoked, such as the manipulation of virtualized real objects (objects that are present in one of the local and remote regions but represented as a virtual object in the another region) or purely virtual objects that are not present in any region. The function of theinteraction module 116 f is described in greater detail below with respect toFIGS. 6, 7A, and 7B . -
FIG. 2 is a block diagram illustrating anexample computing device 200.Computing device 200 may be used to perform various procedures, such as those discussed herein. Theserver system 102,virtualization devices 106, andheadset 110 may have some or all of the attributes of thecomputing device 200.Computing device 200 can function as a server, a client, or any other computing entity. Computing device can perform various monitoring functions as discussed herein, and can execute one or more application programs, such as the application programs described herein.Computing device 200 can be any of a wide variety of computing devices, such as a desktop computer, a notebook computer, a server computer, a handheld computer, a tablet computer and the like. Aserver system 102 may include one ormore computing devices 200 each including one or more processors. -
Computing device 200 includes one or more processor(s) 202, one or more memory device(s) 204, one or more interface(s) 206, one or more mass storage device(s) 208, one or more Input/Output (I/O) device(s) 210, and adisplay device 230 all of which are coupled to abus 212. Processor(s) 202 include one or more processors or controllers that execute instructions stored in memory device(s) 204 and/or mass storage device(s) 208. Processor(s) 202 may also include various types of computer-readable media, such as cache memory. - Memory device(s) 204 include various computer-readable media, such as volatile memory (e.g., random access memory (RAM) 214) and/or nonvolatile memory (e.g., read-only memory (ROM) 216). Memory device(s) 204 may also include rewritable ROM, such as Flash memory.
- Mass storage device(s) 208 include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As shown in
FIG. 2 , a particular mass storage device is ahard disk drive 224. Various drives may also be included in mass storage device(s) 208 to enable reading from and/or writing to the various computer readable media. Mass storage device(s) 208 include removable media 226 and/or non-removable media. - I/O device(s) 210 include various devices that allow data and/or other information to be input to or retrieved from
computing device 200. Example I/O device(s) 210 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capture devices, and the like. -
Display device 230 includes any type of device capable of displaying information to one or more users ofcomputing device 200. Examples ofdisplay device 230 include a monitor, display terminal, video projection device, and the like. - Interface(s) 206 include various interfaces that allow
computing device 200 to interact with other systems, devices, or computing environments. Example interface(s) 206 include any number of different network interfaces 220, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet. Other interface(s) include user interface 218 andperipheral device interface 222. The interface(s) 206 may also include one or more peripheral interfaces such as interfaces for printers, pointing devices (mice, track pad, etc.), keyboards, and the like. -
Bus 212 allows processor(s) 202, memory device(s) 204, interface(s) 206, mass storage device(s) 208, I/O device(s) 210, anddisplay device 230 to communicate with one another, as well as other devices or components coupled tobus 212.Bus 212 represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth. - For purposes of illustration, programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components may reside at various times in different storage components of
computing device 200, and are executed by processor(s) 202. Alternatively, the systems and procedures described herein can be implemented in hardware, or a combination of hardware, software, and/or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein. - Referring to
FIG. 3 , the illustratedmethod 300 may be executed by theserver system 102. Themethod 300 may include performing 302 a full 3D scan with the3D scanner 108 a. Although thescanner 108 a is referenced throughout in the singular, in some embodiments the full 3D scan ofstep 302 may be performed bymultiple scanners 108 a. Accordingly, references herein to thescanner 108 a may be interpreted as including onescanner 108 a ormultiple scanners 108 a. - Performing a full scan may include scanning a complete field of view of the
3D scanner 108 a although this may not include an entire room or local region in which the3D scanner 108 a is located. The result of thescan 302 may be a point cloud received by theserver system 102 from thescanner 108 a, including a set of three-dimensional coordinates measured using thescanner 108 a. The coordinates may be defined with respect to a scanner coordinate space and may be retained in that coordinate space or transformed to a different coordinate space. - The
method 300 may further include performing animage scan 304, i.e. taking one or more images of the local region using one ormore cameras 108 c. The fields of view of the one ormore cameras 108 c preferably overlap substantially all (e.g. 90%) of the field of view of thescanner 108 a. - The
method 300 may include generating amodel 306 using the full scan ofstep 302 and theimage scan 304. As noted above, this may include wrapping or overlaying the images ofstep 304 over the point cloud obtained fromstep 302 in order to obtain a model that has both the three-dimensional attributes of the point cloud and the visual attributes (e.g. color) of the images. The manner in which the point cloud and images are combined may be performed using any method known in the art. - The
method 300 may further include periodically performing 308 partial scans and updating 310 the model fromstep 306 according to the partial scans. Performing 308 the partial scans may include performing partial scans using thepartial scanners 108 b. Thepartial scanners 108 b may be optical scanners or may output a point cloud that can be combined with image data to create a model. In such embodiments, performing 308 partial scans may include taking one or more pictures of the field of view of thepartial scanners 108 b and combining them to create the partial model. The partial scans may be performed 310 periodically according to a predetermined rate or may be performed in response to sensing of motion in the field of view of thepartial scanner 108 b, such as using a motion sensor coupled to thepartial scanner 108 b orserver system 102. - The result of the
partial scan 308 is a partial model in a partial coordinate space of thepartial scanner 108 b. This partial model may be transformed to the coordinate space of the full model and added to thefull model 306. For example, apartial scanner 108 b may have a volume of the local region in its field of view. Accordingly, the full model may be updated 310 by replacing the portion of the full model corresponding to this volume with the partial model. - The mapping of the partial coordinate space to the scanner coordinate space may be performed based on prior calibration of the
partial scanner 3D scanner 108 a. Specifically, a target or other object may be placed in the local region and detected using bothscanners -
Steps - Referring to
FIG. 4 , the illustratedmethod 400 may be executed by aserver system 102 to conduct a virtual conference. Themethod 400 may represent the functionality with respect to one location participating in a conference. A remote location participating may execute themethod 400 simultaneously either using thesame server system 102 or aseparate server system 102. - The
method 400 may include definingreference points 402. This may include receiving or selecting a point in the local region and receiving points from one or more remote regions. The reference points may be defined as three-dimensional coordinates. The reference point for the local region may be a point in the scanner coordinate space and the reference points received from remote regions may be coordinates in scanner coordinate spaces of scanners located in the remote regions. - The
method 400 may further include generating 404 a local model of the local space, this may include executing themethod 300 ofFIG. 3 to obtain a full model or an updated full model using partial scans. The local model may also be filtered 406. As noted above, this may include removing walls, floors, ceilings, and other mundane objects that are not relevant to the conference. The objects removed from the local model may be selected manually or identified automatically. For example, flours, walls, and ceilings may be identified by the server system based on their flat shape and large extent relative to the local region. - The filtered model may then be transmitted 408 to a remote region for display to participants in the remote region. The
server system 102 may likewise receive 410 a remote model from the remote region, the remote model being a model or filtered model generated with respect to the remote region in the same manner as the filtered model ofsteps steps - The
method 400 may include mapping 412 the remote model to the filtered model using the reference points. In particular using the local reference point and remote reference point, a transformation required to transform the remote reference point to the local reference point is determined. This transformation is then applied to the remote model to map 412 it to the scanner coordinate space of the local region. The transformed remote model and filtered model are then combined to obtain a combined model. - The
method 400 may further include detecting 414 the viewpoint of one or more users in the local region. This may include detecting the viewpoint of one ormore headsets 110 in the local region as discussed above. The combined remote and filtered model fromstep 412 is then rendered 416 for the users in the local region according to the viewpoints detected at step 414. In particular, for eachheadset 110, the viewpoint thereof is transformed to the scanner coordinate space and a pair of images of the combined model from that viewpoint in scanner coordinate space is rendered. The pair of images rendered from slightly different viewpoints corresponding to a viewer's right and left eyes. This pair of images is then sent to theheadset 110 and displayed by theheadset 110. - The
method 400 may be repeated throughout the conference. During execution of themethod 400, sounds detected in the local region may be transmitted to the remote region and vice-versa. -
FIG. 5A illustrates a local region with equipment and user's present andFIG. 5B illustrates a remote region. As is apparent, thescanners other scanners scanners - The
video camera 108 c may be located in the region. As noted above, thevideo camera 108 c may include multiple cameras.Multiple video cameras 108 c may be arranged around the local region in order to capture substantially all of the fields of view of thescanner 108 a andscanners 108 b. In the illustrated embodiment, thevideo camera 108 c is a 360-degree camera mounted in an elevated position within the region. - The
walls 500 andfloor 502 of the local region may be in the field of view of some or all of thescanners -
Users 504 are located within the local region and wearheadsets 110.Users 506 are located in one or more remote regions and the dotted representations thereof shown inFIG. 5A indicate the location of virtual images of theusers 506 that will be displayed in theheadsets 110 of theusers 504. In particular, virtual images of theusers 506 will be part of the remote model received and combined with the filtered model. -
Objects 508 may be located in the local region and be scanned and virtual models thereof transmitted to the remote region. Likewise, objects 510 in the remote region may be scanned and included in the remote model. Virtual representations of theobjects 510 will therefore be rendered in theheadsets 110 of the users when located within the field of view thereof as determined based on the viewpoint of theheadsets 110. - As shown in
FIG. 5B , theusers 504 are represented as virtual objects in a combined model byheadsets 110 worn byusers 506 in the remote region. Likewise, theobject 510 is a real object in the remote region whereas theobject 508 is now represented as a virtual object in the remote region. - Referring to
FIG. 6 andFIGS. 7A and 7B , the illustratedmethod 600 may be executed by theserver system 102 to facilitate interaction among remote participants in a conference. Themethod 600 may include scanning 602 an object in the remote region and rendering 604 a virtual object in the local region using data (point cloud and image data). Scanning 602 andrendering 604 may be performed as part of executing themethod 400 ofFIG. 4 . - The
method 400 may further include receiving 606 interaction with the virtual object. For example, motion of a user's hand in proximity to the virtual object (e.g. using MICROSOFT KINECT sensors), inputs to a keyboard, movement of a pointing device, or other interactions referencing the virtual object may be detected. In response to the received 606 interactions, the virtual object may be modified 608. For example, an interaction may include a user transferring a virtual representation of a part into proximity to a machine (the virtual object). The virtual object may then be modified by adding the part to the machine in a position and orientation instructed by the user, i.e. according to user movements of the virtual representation of the part. - The virtual object as modified may be transmitted 610 to the remote region and rendered such that the modifications to the virtual object are superimposed 612 on the real object in the remote region, i.e. a user viewing the real object through a
headset 110 will view the modifications to the virtual object superimposed on the real object in the images presented to the user. - The
method 600 may be used to implement the following use case. A first person (Bob) in the local region may be viewing a machine in the remote region and a part to the machine in the remote region in the hand of a second person (Sue). Bob can reach out to the holographic image of the part in Sue's hand. Bob could invoke copying of the part and thereby create a holographic image of the part “held” in Bob's hand and rendered in both the local and remote regions. Bob may then invoke movement of the holographic copy of the part to the virtual representation of the machine and place it on the representation. Accordingly, Sue will see the real machine in the remote region and the holographic image of the part on the machine as well as the real part still in her hand. Sue can now either manipulate the holographic image or the real part in her hand, both of of which can still be seen by Bob as virtual objects. - In addition to interactions with real objects, interactions may be received with respect to virtual objects that are not present in either the local or remote regions. For example, a user may invoke display of a virtual object stored in a storage device, where the virtual object is a result of a previous scanning of a real object or a purely computerized model. Interaction and modification with subsequent display of the modified object may then be performed in the same manner as described above with respect to the
method 600 ofFIG. 6 . - Referring Specifically to
FIGS. 7A and 7B , areal object 700 is scanned in the remote region and rendered in the local region asvirtual object 704. Interactions are received in the local region that instruct the server system to addvirtual modification 704 to thevirtual object 704. Thevirtual modification 704 is transmitted to the remote region and rendered in the remote region superimposed on thereal object 700 in the same relation to thereal object 700 as thevirtual modification 704 has to thevirtual object 702 in the local region. - The systems and methods disclosed herein enable multiple beneficial uses such as:
-
- Conducting product reviews of merchandise without having to be physically present
- Viewing variations of physical products (modify size, shape, color, etc.)
- Collectively working on projects with objects even though not present
- Conducting training to demonstrate and simulate behaviors and actions
- Preventing the spread of colds or sickness but yet be present
- Conducting simulations without the risk of injury with the use of 3D animation
- Conducting gaming with unreal characters
- The systems and methods disclosed herein further enable the implementation of digital holographic assistive agents (HAA) that could interact with human participants in the conference. The HAA could then help the conference participants bring in new human participants or engage available technology capabilities or reports into active conferences. The HAA could be humanoid or some other avatar that would represent an artificially intelligent program execution or data retrieval agent.
- In some uses, an area or object of special interest in either region could be given a centralized focus. A participant perspective would provide the ability to “zoom in” or walk around a scanned or virtual object. Image enhancement would allow the resolution to be increased or decreased by changing proximity. For example a viewer could walk around to the back, move closer, zoom in to read a small label, examine texture or other detailed features. Alternatively an audience perspective could move the object on stage with viewers appearing to remain stationary, like a car on a turnstile stage. Virtual whiteboards could be added allowing virtual writing or drawing. Supplemental, information, effects, objects, video, news headlines or various backdrops can be virtually added to facilitate collaboration, enhance presentation effectiveness or increase artistic value.
- The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative, and not restrictive. The scope of the invention is, therefore, indicated by the appended claims, rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/298,968 US9654734B1 (en) | 2015-10-30 | 2016-10-20 | Virtual conference room |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562248986P | 2015-10-30 | 2015-10-30 | |
US15/298,968 US9654734B1 (en) | 2015-10-30 | 2016-10-20 | Virtual conference room |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170127023A1 true US20170127023A1 (en) | 2017-05-04 |
US9654734B1 US9654734B1 (en) | 2017-05-16 |
Family
ID=57139928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/298,968 Expired - Fee Related US9654734B1 (en) | 2015-10-30 | 2016-10-20 | Virtual conference room |
Country Status (3)
Country | Link |
---|---|
US (1) | US9654734B1 (en) |
CA (1) | CA2941333A1 (en) |
GB (1) | GB2543913B (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170150127A1 (en) * | 2015-11-23 | 2017-05-25 | Wal-Mart Stores, Inc. | Virtual Training System |
US9992449B1 (en) * | 2017-08-10 | 2018-06-05 | Everysight Ltd. | System and method for sharing sensed data between remote users |
WO2018226508A1 (en) * | 2017-06-09 | 2018-12-13 | Pcms Holdings, Inc. | Spatially faithful telepresence supporting varying geometries and moving users |
US10276210B2 (en) * | 2015-11-18 | 2019-04-30 | International Business Machines Corporation | Video enhancement |
US20190253667A1 (en) * | 2015-08-14 | 2019-08-15 | Pcms Holdings, Inc. | System and method for augmented reality multi-view telepresence |
US10438413B2 (en) * | 2017-11-07 | 2019-10-08 | United States Of America As Represented By The Secretary Of The Navy | Hybrid 2D/3D data in a virtual environment |
US20190371060A1 (en) * | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Re-creation of virtual environment through a video call |
WO2019243367A1 (en) * | 2018-06-18 | 2019-12-26 | Eyecon As | Video conferencing system |
US10701319B2 (en) * | 2016-12-20 | 2020-06-30 | Intracom Systems, Llc | Enhanced virtual and/or augmented communications interface |
DE102019208316A1 (en) * | 2019-06-07 | 2020-12-10 | Audi Ag | Method for operating a video conference system as well as a video conference system and a motor vehicle |
US10917613B1 (en) * | 2020-01-03 | 2021-02-09 | International Business Machines Corporation | Virtual object placement in augmented reality environments |
WO2021030328A1 (en) | 2019-08-12 | 2021-02-18 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US11012482B1 (en) | 2020-08-28 | 2021-05-18 | Tmrw Foundation Ip S. À R.L. | Spatially aware multimedia router system and method |
US11218522B1 (en) | 2020-08-28 | 2022-01-04 | Tmrw Foundation Ip S. À R.L. | Data processing system and method using hybrid system architecture for image processing tasks |
US20220070237A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method for virtually broadcasting from within a virtual environment |
US20220070238A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method for the delivery of applications within a virtual environment |
US20220070241A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method enabling interactions in virtual environments with virtual presence |
US11488364B2 (en) | 2016-04-01 | 2022-11-01 | Pcms Holdings, Inc. | Apparatus and method for supporting interactive augmented reality functionalities |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212437B2 (en) * | 2016-06-06 | 2021-12-28 | Bryan COLIN | Immersive capture and review |
US10554931B1 (en) | 2018-10-01 | 2020-02-04 | At&T Intellectual Property I, L.P. | Method and apparatus for contextual inclusion of objects in a conference |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495576A (en) * | 1993-01-11 | 1996-02-27 | Ritchey; Kurtis J. | Panoramic image based virtual reality/telepresence audio-visual system and method |
US20040125120A1 (en) | 2001-06-08 | 2004-07-01 | Michael Weiner | Method and apparatus for interactive transmission and reception of tactile information |
US8218903B2 (en) * | 2007-04-24 | 2012-07-10 | Sony Computer Entertainment Inc. | 3D object scanning using video camera and TV monitor |
US20090119604A1 (en) | 2007-11-06 | 2009-05-07 | Microsoft Corporation | Virtual office devices |
US9728006B2 (en) | 2009-07-20 | 2017-08-08 | Real Time Companies, LLC | Computer-aided system for 360° heads up display of safety/mission critical data |
US9325943B2 (en) * | 2013-02-20 | 2016-04-26 | Microsoft Technology Licensing, Llc | Providing a tele-immersive experience using a mirror metaphor |
KR20160044009A (en) * | 2013-08-19 | 2016-04-22 | 바스프 에스이 | Detector for determining a position of at least one object |
US9524588B2 (en) * | 2014-01-24 | 2016-12-20 | Avaya Inc. | Enhanced communication between remote participants using augmented and virtual reality |
US10810797B2 (en) * | 2015-05-22 | 2020-10-20 | Otoy, Inc | Augmenting AR/VR displays with image projections |
DE102016110902A1 (en) * | 2015-06-14 | 2016-12-15 | Facense Ltd. | Head-mounted devices for recording thermal readings |
-
2016
- 2016-09-07 GB GB1615187.0A patent/GB2543913B/en not_active Expired - Fee Related
- 2016-09-07 CA CA2941333A patent/CA2941333A1/en not_active Abandoned
- 2016-10-20 US US15/298,968 patent/US9654734B1/en not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190253667A1 (en) * | 2015-08-14 | 2019-08-15 | Pcms Holdings, Inc. | System and method for augmented reality multi-view telepresence |
US11962940B2 (en) | 2015-08-14 | 2024-04-16 | Interdigital Vc Holdings, Inc. | System and method for augmented reality multi-view telepresence |
US11363240B2 (en) | 2015-08-14 | 2022-06-14 | Pcms Holdings, Inc. | System and method for augmented reality multi-view telepresence |
US10701318B2 (en) * | 2015-08-14 | 2020-06-30 | Pcms Holdings, Inc. | System and method for augmented reality multi-view telepresence |
US11894023B2 (en) | 2015-11-18 | 2024-02-06 | International Business Machines Corporation | Video enhancement |
US10276210B2 (en) * | 2015-11-18 | 2019-04-30 | International Business Machines Corporation | Video enhancement |
US10582190B2 (en) * | 2015-11-23 | 2020-03-03 | Walmart Apollo, Llc | Virtual training system |
US20170150127A1 (en) * | 2015-11-23 | 2017-05-25 | Wal-Mart Stores, Inc. | Virtual Training System |
US11488364B2 (en) | 2016-04-01 | 2022-11-01 | Pcms Holdings, Inc. | Apparatus and method for supporting interactive augmented reality functionalities |
US10701319B2 (en) * | 2016-12-20 | 2020-06-30 | Intracom Systems, Llc | Enhanced virtual and/or augmented communications interface |
US10841537B2 (en) * | 2017-06-09 | 2020-11-17 | Pcms Holdings, Inc. | Spatially faithful telepresence supporting varying geometries and moving users |
US20200099891A1 (en) * | 2017-06-09 | 2020-03-26 | Pcms Holdings, Inc. | Spatially faithful telepresence supporting varying geometries and moving users |
CN110999281A (en) * | 2017-06-09 | 2020-04-10 | Pcms控股公司 | Spatially reliable telepresence supporting varying geometries and mobile users |
WO2018226508A1 (en) * | 2017-06-09 | 2018-12-13 | Pcms Holdings, Inc. | Spatially faithful telepresence supporting varying geometries and moving users |
US10419720B2 (en) | 2017-08-10 | 2019-09-17 | Everysight Ltd. | System and method for sharing sensed data between remote users |
US9992449B1 (en) * | 2017-08-10 | 2018-06-05 | Everysight Ltd. | System and method for sharing sensed data between remote users |
US10438413B2 (en) * | 2017-11-07 | 2019-10-08 | United States Of America As Represented By The Secretary Of The Navy | Hybrid 2D/3D data in a virtual environment |
WO2019231693A1 (en) * | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Re-creation of virtual environment through a video call |
US20190371060A1 (en) * | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Re-creation of virtual environment through a video call |
US11651555B2 (en) * | 2018-05-31 | 2023-05-16 | Microsoft Technology Licensing, Llc | Re-creation of virtual environment through a video call |
WO2019243367A1 (en) * | 2018-06-18 | 2019-12-26 | Eyecon As | Video conferencing system |
US11528451B2 (en) | 2018-06-18 | 2022-12-13 | Eyecon As | Video conferencing system |
DE102019208316A1 (en) * | 2019-06-07 | 2020-12-10 | Audi Ag | Method for operating a video conference system as well as a video conference system and a motor vehicle |
CN114222942A (en) * | 2019-08-12 | 2022-03-22 | 奇跃公司 | System and method for virtual and augmented reality |
EP4014468A4 (en) * | 2019-08-12 | 2022-10-19 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US11537351B2 (en) | 2019-08-12 | 2022-12-27 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
WO2021030328A1 (en) | 2019-08-12 | 2021-02-18 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US11928384B2 (en) | 2019-08-12 | 2024-03-12 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US10917613B1 (en) * | 2020-01-03 | 2021-02-09 | International Business Machines Corporation | Virtual object placement in augmented reality environments |
US20220070241A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method enabling interactions in virtual environments with virtual presence |
US20220070238A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method for the delivery of applications within a virtual environment |
US20220070237A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method for virtually broadcasting from within a virtual environment |
US11218522B1 (en) | 2020-08-28 | 2022-01-04 | Tmrw Foundation Ip S. À R.L. | Data processing system and method using hybrid system architecture for image processing tasks |
US11012482B1 (en) | 2020-08-28 | 2021-05-18 | Tmrw Foundation Ip S. À R.L. | Spatially aware multimedia router system and method |
Also Published As
Publication number | Publication date |
---|---|
GB2543913A (en) | 2017-05-03 |
GB201615187D0 (en) | 2016-10-19 |
GB2543913B (en) | 2019-05-08 |
CA2941333A1 (en) | 2017-04-30 |
US9654734B1 (en) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9654734B1 (en) | Virtual conference room | |
KR102581453B1 (en) | Image processing for Head mounted display devices | |
Tecchia et al. | 3D helping hands: a gesture based MR system for remote collaboration | |
RU2621644C2 (en) | World of mass simultaneous remote digital presence | |
CN112243583B (en) | Multi-endpoint mixed reality conference | |
US10726625B2 (en) | Method and system for improving the transmission and processing of data regarding a multi-user virtual environment | |
JP6683864B1 (en) | Content control system, content control method, and content control program | |
CN110568923A (en) | unity 3D-based virtual reality interaction method, device, equipment and storage medium | |
CN107274491A (en) | A kind of spatial manipulation Virtual Realization method of three-dimensional scenic | |
US20210166461A1 (en) | Avatar animation | |
WO2017139695A1 (en) | Multiuser telepresence interaction | |
US10582190B2 (en) | Virtual training system | |
US10955911B2 (en) | Gazed virtual object identification module, a system for implementing gaze translucency, and a related method | |
Adcock et al. | Visualization of off-surface 3D viewpoint locations in spatial augmented reality | |
US11282282B2 (en) | Virtual and physical reality integration | |
Schwede et al. | HoloR: Interactive mixed-reality rooms | |
WO2017147826A1 (en) | Image processing method for use in smart device, and device | |
Zainudin et al. | Implementing immersive virtual reality: Lessons learned and experience using open source game engine | |
Horst et al. | Avatar2Avatar: Augmenting the Mutual Visual Communication between Co-located Real and Virtual Environments. | |
JP6680886B2 (en) | Method and apparatus for displaying multimedia information | |
WO2024009653A1 (en) | Information processing device, information processing method, and information processing system | |
Harmsen | OpenIMPRESS: an open immersive telepresence system | |
EP3185103A1 (en) | A gazed virtual object identification determination module, a system for implementing gaze translucency, and a related method | |
小川航平 et al. | A Study on Embodied Expressions in Remote Teleconference | |
Lala et al. | Enhancing communication through distributed mixed reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: WALMART STORES, INC., ARKANSAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HIGH, DONALD;THOMPSON, JOHN PAUL;WINKLE, DAVID;AND OTHERS;SIGNING DATES FROM 20151025 TO 20151026;REEL/FRAME:040078/0575 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: WALMART APOLLO, LLC, ARKANSAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WAL-MART STORES, INC.;REEL/FRAME:045949/0126 Effective date: 20180321 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20210516 |