A method for determining passable space from a single image

A machine learning model trained from stereoscopic video sequences predicts both visible and occluded traversable surfaces, addressing the limitations of existing depth sensing methods by efficiently determining traversable space from a single RGB image, considering object occupancy and movement.

JP7763183B2Active Publication Date: 2025-10-31ナイアンティック スペイシャル インコーポレイテッド
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022554751
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-05
Filing Date
2021-03-09
Publication Date
2025-10-31
Estimated Expiration
2041-03-09

AI Technical Summary

Technical Problem

Existing depth sensing methods are limited to predicting the geometry of visible surfaces, failing to detect traversable surfaces obscured by objects in the scene, and require resource-intensive computational techniques or static training environments, which are not practical for real-world applications.

Method used

A machine learning model trained from stereoscopic video sequences predicts both visible and occluded traversable road surfaces using camera pose, semantic segmentation, and per-frame depth, enabling navigation beyond line-of-sight with a lightweight representation from a single RGB image.

Benefits of technology

The model efficiently determines traversable space from a single image, accounting for object occupancy and movement, overcoming computational and environmental limitations of previous approaches.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007763183000029
    Figure 0007763183000029
  • Figure 0007763183000030
    Figure 0007763183000030
  • Figure 0007763183000031
    Figure 0007763183000031
Patent Text Reader

Abstract

The model predicts the geometry of both visible and occluded traversable road surfaces from input images. The model may be trained from stereoscopic video sequences using camera pose, per-frame depth, and semantic segmentation to form training data, which is used to monitor the images against the image network. In various embodiments, the model is applied to a single RGB image depicting a scene to generate information describing the traversable space of the scene, including occluded traversable space. The information describing the traversable space may include a segmentation mask of traversable and non-traversable space (both visible and occluded) and a depth map indicating the estimated depth to the traversable road surface corresponding to each pixel determined to correspond to traversable space.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The described subject matter relates generally to machine vision, and more particularly to determining navigable space in a scene from a single image by training a machine learning model. [Background technology]

[0002] [problem] Depth sensing has applications in both navigation and scene understanding. It is useful for computerized agents (e.g., street-cleaning robots or augmented reality characters) to know how to explore both the visible and hidden worlds. However, most methods aim to predict the geometry of surfaces visible to a camera, limiting their use in planning paths for robots or augmented reality characters. Typically, the movement of such agents is limited to traversable surfaces, such as grass, sidewalks, and pavements. However, most scene analysis algorithms are line-of-sight based and therefore do not detect traversable surfaces obscured by objects in the scene. For example, even though real-world trees occupy a relatively small area on the ground, they may obscure a large portion of the traversable ground behind them in the scene. Existing models that predict beyond line-of-sight typically parameterize the scene with voxels or meshes, which can be expensive to use in machine learning frameworks. Summary of the Invention

[0003] The model predicts the geometry of both visible and occluded traversable road surfaces from input images. The model can be trained from stereoscopic video sequences using camera pose, per-frame depth, and semantic segmentation to form training data, which are used to monitor the images against an image network. The disclosed approach significantly lowers the hurdle for the spatial extent of the training scene to obtain a model with practical accuracy.

[0004] In various embodiments, the model is applied to a single RGB image depicting a scene to generate information describing the traversable space of the scene, including occluded traversable space (e.g., traversable surfaces occluded by objects in the scene). The information describing the traversable space can include a segmentation mask of pixels representing visible traversable space and visible non-traversable space, a depth map indicating the estimated depth to the surface represented by each pixel in the image from the camera, a segmentation mask of traversable and non-traversable space (e.g., both visible and occluded), and a depth map indicating the estimated depth to the traversable surface corresponding to each pixel determined to correspond to traversable space. Among other applications, this information can enable an agent to know where it can walk, roll, or otherwise move beyond the immediately visible surface. In addition to modeling the visible surface, the model can also identify areas where moving or stationary objects obstruct passage. These occupied areas on an otherwise drivable road surface are called footprints.

[0005] Many previous approaches rely on bounding box estimation but are limited to predicting cubic objects. Other approaches for estimating missing geometry require fully static training environments, which are either small-scale or synthetic to be computationally feasible. In contrast, the disclosed model can produce useful predictions for hidden road surfaces when given only a partial view of the real-world scene during training. The model may use a lightweight representation of hidden geometry derivable from a single color image, but can be trained using video depth data. The model can also be trained from video based on incomplete observations of moving objects or scenes through masking of moving objects, a predetermined probability that a space is traversable or impassable due to missing or unknown data, and the use of depth to provide additional information.

[0006] Some prior approaches further use resource-intensive computational techniques to predict traversable space at test time, such as voxel-based approaches. Furthermore, these and other prior approaches do not consider the location of objects in the scene, do not determine traversable space relative to the camera field of view in the input image, or do not consider object movement. In contrast, the disclosed model can efficiently determine traversable space from the field of view of the input image, taking into account the object's occupancy and movement at test time. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 illustrates a networked computing environment, according to one or more embodiments. [Figure 2] FIG. 1 depicts a representation of a virtual world with a geography that parallels the real world, according to one or more embodiments. [Figure 3] FIG. 1 depicts an exemplary game interface for a parallel reality game, according to one or more embodiments. [Figure 4]FIG. 1 illustrates a process for generating training data for training a traversable space estimation model, according to one or more embodiments. [Figure 5] 1 is a flowchart illustrating an overall process for training a traversable space model, according to one or more embodiments. [Figure 6] 1 is a flowchart describing an overall process for using a traversable space model, according to one or more embodiments. [Figure 7] FIG. 1 illustrates an exemplary computer system suitable for use in training or applying a navigable space model, according to one or more embodiments.

[0008] The drawings and the following description describe particular embodiments for purposes of illustration only. Those skilled in the art will readily recognize from the following description that alternative embodiments of structure and method may be used without departing from the principles described. Reference will now be made to certain embodiments, examples of which are illustrated in the accompanying drawings. DETAILED DESCRIPTION OF THE INVENTION

[0009] [An exemplary location-based parallel reality game system] Various embodiments are described in the context of a parallel reality game that includes augmented reality content in a virtual world geography that parallels at least a portion of the real world geography, such that a player's movement and actions in the real world affect actions in the virtual world, and vice versa. Using the disclosure provided herein, those skilled in the art will understand that the described subject matter is applicable to other situations in which it is desirable to determine depth information or navigable space from image data. Furthermore, the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functions among and within the system's components. For example, systems and methods according to aspects of the present disclosure can be implemented using a single computing device or across multiple computing devices (e.g., connected by a computer network).

[0010] FIG. 1 illustrates a networked computing environment 100 according to one or more embodiments. The networked computing environment 100 provides for player interaction in a virtual world having a geography that parallels the real world. In particular, geographic regions in the real world can be directly linked or mapped to corresponding regions in the virtual world. Players can move around in the virtual world by traveling to various geographic locations in the real world. For example, a player's location in the real world can be tracked and used to update the player's location in the virtual world. Typically, a player's location in the real world is determined by locating the client device 110 at which the player is interacting with the virtual world and assuming the player is in the same (or approximately the same) location. For example, in various embodiments, a player may interact with a virtual element if the player's location in the real world is within a threshold distance (e.g., 10 meters, 20 meters, etc.) of a real-world location that corresponds to the virtual location of the virtual element in the virtual world. For convenience, a player who is close enough to a virtual element in this manner to interact with the virtual element is said to be at the real-world location corresponding to the virtual element. Additionally, although various embodiments are described with reference to the "location of the player," those skilled in the art will understand that such reference may refer to the location of the player's client device 110.

[0011] Reference is now made to FIG. 2, which depicts a conceptual diagram of a virtual world 210 parallel to a real world 200 that can serve as a game board for players of a parallel reality game, according to one embodiment. As illustrated, virtual world 210 can include a geography that parallels the geography of real world 200. In particular, coordinate ranges that define geographic regions or spaces in real world 200 are mapped to corresponding coordinate ranges that define virtual spaces in virtual world 210. The coordinate ranges in real world 200 can be associated with towns, neighborhoods, cities, campuses, regions, countries, continents, the entire Earth, or other geographic regions. Each geographic coordinate in the geographic coordinate range is mapped to a corresponding coordinate in the virtual space of the virtual world.

[0012] The player's location in virtual world 210 corresponds to the player's location in real world 200. For example, player A, who is at location 212 in real world 200, has a corresponding location 222 in virtual world 210. Similarly, player B, who is at location 214 in the real world, has a corresponding location 224 in the virtual world. As a player moves around within a geographic coordinate range in the real world, the player also moves around within a coordinate range defining a virtual space in virtual world 210. In particular, a positioning system (e.g., a GPS system) associated with a mobile computing device carried by the player can be used to track the player's location as the player navigates within a geographic coordinate range in the real world. Data associated with the player's location in real world 200 is used to update the player's location within the corresponding coordinate range defining the virtual space in virtual world 210. In this way, a player can navigate along a continuous track within a coordinate range defining a virtual space in virtual world 210 simply by moving between corresponding geographic coordinate ranges in real world 200, without having to register or periodically update location information at specific discrete locations in real world 200.

[0013] Location-based games can include multiple game objectives that require a player to travel to or interact with various virtual elements or objects scattered throughout various virtual locations in a virtual world. A player can navigate to these virtual locations by moving to the corresponding locations of the virtual elements or objects in the real world. For example, a positioning system can continuously track a player's location such that the player continuously navigates a parallel virtual world as the player continuously navigates the real world. A player can then accomplish or complete one or more game objectives by interacting with the various virtual elements or objects at specific locations.

[0014] For example, game objectives may include players interacting with virtual elements 230 located at various virtual locations in the virtual world 210. These virtual elements 230 may be linked to landmarks, geographic locations, or objects 240 in the real world 200. The real-world landmarks or objects 240 may be works of art, monuments, buildings, businesses, libraries, museums, or other suitable real-world landmarks or objects. Interactions may include capturing, claiming ownership of, or using any virtual items, spending any virtual currency, etc. To obtain these virtual elements 230, players travel to the landmarks or geographic locations 240 linked to the virtual elements 230 in the real world and interact with the virtual elements 230 in the virtual world 210. For example, player A in FIG. 2 may need to travel to a landmark 240 in the real world 200 to interact with or obtain the virtual element 230 linked to a particular landmark 240. Interacting with the virtual element 230 may require a real-world action, such as taking a photograph or verifying, obtaining, or acquiring other information about a landmark or object 240 associated with the virtual element 230. In other embodiments, different or additional mechanisms for capturing the virtual element may be available. For example, an in-game item may allow a player to interact with the virtual element remotely (e.g., from a real-world location other than the location corresponding to the virtual element).

[0015] A game objective may require a player to use one or more virtual items collected by the player in a location-based game. For example, a player may travel through the virtual world 210 in search of virtual items (e.g., weapons, creatures, power-ups, or other items) that may be useful in achieving a game objective. These virtual items may be found or collected by traveling to various locations in the real world 200 or by completing various actions in either the virtual world 210 or the real world 200. In the example shown in FIG. 2 , a player captures one or more virtual elements 230 by using a virtual item 232. In particular, a player may deploy a virtual item 232 at a location in the virtual world 210 that is proximate to or within the virtual element 230. Deploying one or more virtual items 232 in this manner may result in the capture of the virtual element 230 for a particular player or for a particular player's team / faction.

[0016] In one particular implementation, a player may be required to collect virtual energy as part of a parallel reality game. As depicted in FIG. 2 , virtual energy 250 may be scattered at various locations in virtual world 210. A player can collect virtual energy 250 by traveling to the corresponding location of virtual energy 250 in real world 200. Virtual energy 250 can be used to enhance virtual items or to accomplish various game goals in the game. A player who loses all of their virtual energy 250 may be disconnected from the game.

[0017] According to aspects of the present disclosure, a parallel reality game can be a massively multiplayer, location-based game in which all participants in the game share the same virtual world. Players can be divided into separate teams or factions and can cooperate to achieve one or more game goals, such as acquiring or claiming ownership of virtual elements. In this way, a parallel reality game can essentially be a social game that promotes cooperation among players within the game. Players from opposing teams can compete against each other during the parallel reality game (or they may cooperate to achieve mutual objectives). Players can use virtual items to attack or impede the progress of players on opposing teams. In some cases, players are encouraged to meet at real-world locations for cooperative or interactive events in the parallel reality game. In such cases, the game server attempts to verify that players are actually physically present and not impersonating others.

[0018] A parallel reality game may include various features to enhance and encourage gameplay within the parallel reality game. For example, a player may accumulate virtual currency or other virtual rewards (e.g., virtual tokens, virtual points, virtual material resources, etc.) that can be used throughout the game (e.g., to purchase in-game items, to redeem other items, to craft items, etc.). As players accomplish one or more game objectives and gain experience within the game, they may progress through various levels. In some embodiments, players may communicate with each other through one or more communication interfaces provided in the game. Players may also earn enhanced "powers" or virtual items that can be used to accomplish game objectives within the game. Using the disclosure provided herein, one skilled in the art should understand that various other game features can be included in a parallel reality game without departing from the scope of the present disclosure.

[0019] Referring back to FIG. 1 , the networked computing environment 100 uses a client-server architecture, with the game server 120 communicating with the client devices 110 via a network 105 to provide a parallel reality game to players at the client devices 110. The networked computing environment 100 may also include other external systems, such as sponsor / advertiser systems or business systems. While only one client device 110 is illustrated in FIG. 1 , any number of client devices 110 or other external systems may be connected to the game server 120 via the network 105. Furthermore, the networked computing environment 100 may include different or additional elements, and functionality may be distributed between the client devices 110 and the game server 120 in ways different from those described below.

[0020] The client device 110 may be any portable computing device that can be used by a player to interact with the game server 120. For example, the client device 110 may be a wireless device, a personal digital assistant (PDA), a portable gaming device, a mobile phone, a smartphone, a tablet, a navigation system, a handheld GPS system, a wearable computing device, a display with one or more processors, or other such devices. In another example, the client device 110 includes a conventional computer system such as a desktop computer or a laptop computer. Furthermore, the client device 110 may be a vehicle equipped with a computing device. In short, the client device 110 may be any computing device or system that can enable a player to interact with the game server 120. As a computing device, the client device 110 may include one or more processors and one or more computer-readable storage media. The computer-readable storage media may store instructions that cause the processor to perform operations. The client device 110 is preferably a portable computing device, such as a smartphone or tablet, that can be easily carried or otherwise moved with the player.

[0021] The client devices 110 communicate with the game server 120 and provide the game server 120 with sensory data of the physical environment. The client devices 110 include a camera collection 125 that captures image data of a two-dimensional scene in the physical environment in which the client devices 110 reside. The client devices 110 also include a navigable space estimation model 130, which is, for example, a machine learning model trained by the game server 120. In the embodiment shown in FIG. 1 , each client device 110 includes additional software components, such as a game module 135 and a positioning module 140. The client devices 110 may include various other input / output devices for receiving information from or providing information to a player. Examples of input / output devices include a display screen, a touchscreen, a touchpad, data entry keys, a speaker, and a microphone suitable for voice recognition. Client device 110 may also include various other sensors for recording data from client device 110, including, but not limited to, motion sensors, accelerometers, gyroscopes, other inertial measurement units (IMUs), barometers, positioning systems, thermometers, light sensors, etc. Additionally, client device 110 may include a network interface for providing communication over network 105. The network interface may include any suitable components for interfacing with one or more networks, including, for example, a transmitter, a receiver, a port, a controller, an antenna, or other suitable components.

[0022] The camera ensemble 125 captures image data of scenes in the environment in which the client device 110 resides. The camera ensemble 125 may utilize a variety of variable photo sensors with variable capture rates and variable color capture ranges. The camera ensemble 125 may include a wide-angle lens or a telephoto lens. The camera ensemble 125 may be configured to capture multiple individual images or videos as image data. The camera ensemble 125 captures the image data and shares the image data with a computing device in the client device 110. The image data may include metadata describing other details in the image data, including sensory data (e.g., temperature, ambient brightness) or capture data (e.g., exposure, warmth, shutter speed, focal length, capture time, etc.). The camera ensemble 125 may include one or more cameras capable of capturing image data. In one example, the camera ensemble 125 includes one camera and is configured to capture monocular image data. In another example, the camera ensemble 125 includes two cameras and is configured to capture stereoscopic images. In various other implementations, the camera collection 125 includes multiple cameras each configured to capture image data.

[0023] The traversable space estimation model 130 receives an input image of a scene captured by a camera and outputs information describing the traversable space of the scene based on the input image. As used herein, traversable space refers to a traversable surface in the scene (e.g., the ground). Similarly, impassable space refers to a surface in the scene that cannot be traversed. For example, impassable space may be a non-traversable surface in the environment (e.g., a person, a wall, an uneven surface, or some other non-traversable object), or it may be a traversable surface where the occupancy of an object overlaps. In an image representing a field of view of the environment, some traversable space may be visible in the image, which is referred to as visible traversable space. Additionally or alternatively, some traversable space may be occluded by objects in the environment, which is referred to as occluded traversable space.

[0024] In one embodiment, the information output by traversable space estimation model 130 includes a segmentation mask of the input image that separates pixels in the input image representing visible traversable space from pixels representing visible non-traversable space, a depth map indicating the estimated depth to the road surface represented by each pixel in the input image from the camera, a segmentation mask that separates pixels corresponding to (e.g., visible and occluded) traversable space from pixels corresponding to non-traversable space, a depth map indicating the estimated depth to the traversable space for each pixel corresponding to traversable space, or some combination thereof. In other words, traversable space estimation model 130 is trained to determine information describing the location of traversable space occluded by an object in the scene and the distance from the camera to the occluded traversable space (e.g., the depth for pixels in the input image corresponding to the occluded traversable space if the object did not obstruct the camera's line of sight). The traversable space estimation model 130 may also learn the area occupied by the occluding object. Thus, robots, AR characters, and other agents that use the model's output for navigation can plan to pass through occluding spaces and behind occluding objects, but are unlikely to collide with them because the model also outputs estimates of the occlusion area of ​​those objects (i.e., the portions of otherwise passable road surface that are rendered impassable by the objects).

[0025] In one embodiment, the traversable space estimation model 130 is trained by, and can be updated or adjusted by, the traversable space estimation training system 170, which are discussed in more detail below. The received input image may be captured by a camera in the camera collection 125 or another camera from another client device 110. In some embodiments, the received input image has metadata added to the image that identifies eigenvalues ​​of the input image. The eigenvalues ​​of the image indicate one or more geometric properties of the camera at the time the image was captured, such as the camera's focal length, the camera's principal point offset, the camera's tilt, etc., when capturing the image. Using the eigenvalues, the traversable space estimation model 130 can generate an eigenmatrix that describes the eigenvalues. In some embodiments, the traversable space estimation model 130 determines whether the input image exceeds a threshold resolution. If not, the traversable space estimation model 130 can upsample the input image to a desired resolution before determining information describing the traversable space in the scene. The traversable space estimation model 130 inputs the image (as received or after pixel augmentation) and determines information describing the traversable space in the scene. Machine learning algorithms can be implemented in the traversable space estimation model 130 for training or inference.

[0026] The game module 135 provides an interface for players to participate in a parallel reality game. The game server 120 provides a local version of the game to players located remotely from the game server 120 by transmitting game data to the client device 110 over the network 105 for use by the game module 135 on the client device 110. The game server 120 may include a network interface for providing communication over the network 105. The network interface may include any suitable components for coupling with one or more networks, including, for example, a transmitter, a receiver, a port, a controller, an antenna, or other suitable components.

[0027] The game module 135 executed by the client device 110 provides an interface between the player and the parallel reality game. The game module 135 may present a user interface on a display device coupled to the client device 110 that displays a virtual world associated with the game (e.g., renders images of the virtual world) and allows the user to accomplish various game objectives by interacting in the virtual world. In some other embodiments, the game module 135 presents image data (e.g., captured by the camera ensemble 125) from the real world augmented with virtual elements from the parallel reality game. In these embodiments, the game module 135 may generate or adjust virtual content according to other information received from other components on the client device. For example, the game module 135 may adjust virtual objects to be displayed on the user interface according to a depth map (e.g., determined by the navigable space estimation model 130) of the scene captured in the image data.

[0028] The game module 135 may also control various other outputs to allow a player to interact with the game without having to look at a display screen. For example, the game module 135 may control various sound, vibration, or other notifications that allow a player to play the game without looking at a display screen. The game module 135 may provide an accurate representation of the game to the user by accessing game data received from the game server 120. The game module 135 may receive and process player input and provide updates to the game server 120 via the network 105. The game module 135 may also generate or adjust game content to be displayed by the client device 110. For example, the game module 135 may generate virtual elements based on information describing the traversable space of the scene (e.g., as determined by the traversable space estimation model 130). For example, the game module 135 may determine a path for a virtual element in the scene on the traversable space.

[0029] Positioning module 140 can be any device or circuitry for monitoring the location of client device 110. For example, positioning module 140 can determine actual or relative location by using a satellite navigation positioning system (e.g., GPS system, Galileo positioning system, Global Navigation Satellite System (GLONASS), BeiDou satellite navigation and positioning system), an inertial navigation system, a dead reckoning system, based on an IP address, by using triangulation or proximity to cell towers or Wi-Fi hotspots, or other suitable techniques for location determination. Positioning module 140 can further include various other sensors that can assist in accurately determining the location of client device 110.

[0030] As a player moves around with the client device 110 in the real world, the positioning module 140 tracks the player's location and provides the player's location information to the game module 135. The game module 135 updates the player's location in the virtual world associated with the game based on the player's actual location in the real world. Thus, a player can interact with the virtual world simply by carrying or moving the client device 110 in the real world. In particular, the player's location in the virtual world can correspond to the player's location in the real world. The game module 135 can provide the player's location information to the game server 120 over the network 105. In response, the game server 120 can implement various techniques to verify the location of the client device 110, thereby preventing cheaters from spoofing the location of the client device 110. It should be understood that location information associated with a player will only be used with permission, after informing the player of the access to the player's location information and how the location information will be utilized in connection with the game (e.g., to update the player's location in the virtual world). Furthermore, any location information associated with a player will be stored and maintained in a manner that protects the player's privacy.

[0031] The game server 120 may be any computing device and may include one or more processors and one or more computer-readable storage media. The computer-readable storage media may store instructions that cause the processor to perform operations. The game server 120 may include or be in communication with a game database 115. The game database 115 stores game data used in the parallel reality game to be served or provided to the client devices 110 over the network 105.

[0032] The game data stored in the game database 115 may include: (1) data associated with the virtual world in the parallel reality game (e.g., image data used to render the virtual world on a display device, geographic coordinates of locations in the virtual world, etc.), (2) data associated with the player of the parallel reality game (e.g., player profile including, but not limited to, player information, player experience level, player currency, player's current location in the virtual / real world, player energy level, player preferences, team information, faction information, etc.), (3) data associated with game goals (e.g., data associated with current game goals, game goal status, past game goals, future game goals, desired game goals, etc.), and (4) data associated with virtual elements in the virtual world (e.g., location of virtual elements, type of virtual element, (4) game data (e.g., game objectives associated with virtual elements, corresponding real-world location information for virtual elements, virtual element actions, virtual element relevance, etc.), (5) data associated with real-world objects, landmarks, and locations linked to virtual world elements (e.g., real-world object / landmark locations, real-world object / landmark descriptions, virtual element relevance linked to real-world objects, etc.), (6) game status (e.g., current number of players, current status of game objectives, player leaderboard, etc.), (7) data associated with player actions / inputs (e.g., current player location, past player locations, player movements, player inputs, player queries, player communications, etc.), and (8) any other data used, relevant, or captured during the implementation of the parallel reality game. The game data stored in the game database 115 can be populated either offline or in real time by a system administrator or by data received from users / players of the system 100, such as from client devices 110 over the network 105.

[0033] Game server 120 may be configured to receive requests for game data from client devices 110 (e.g., via remote procedure calls (RPCs)) and respond to those requests over network 105. For example, game server 120 may encode game data into one or more data files and provide the data files to client devices 110. Additionally, game server 120 may be configured to receive game data (e.g., player positions, player actions, player inputs, etc.) from client devices 110 over network 105. For example, client devices 110 may be configured to periodically send player inputs and other updates to game server 120, which game server 120 uses to reflect any and all changing conditions for the game by updating the game data in game database 115.

[0034] In the illustrated embodiment, server 120 includes general game module 145, commercial game module 150, data collection module 155, event module 160, and navigable space estimation training system 170. As described above, game server 120 communicates with game database 115, which may be part of game server 120 or may be accessed remotely (e.g., game database 115 may be a distributed database accessed via network 105). In other embodiments, game server 120 includes different or additional elements. Furthermore, functionality may be distributed among elements in a manner different from that described. For example, game database 115 may be integrated into game server 120.

[0035] The general game module 145 hosts the parallel reality game for all players and serves as the authoritative source of information regarding the current status of the parallel reality game for all players. As the host, the general game module 145 generates game content for presentation to players, for example, via their respective client devices 110. The general game module 145 may retrieve or store game data as it hosts the parallel reality game by accessing the game database 115. The general game module 145 also receives game data (e.g., depth information, player input, player location, player actions, landmark information, etc.) from the client devices 110 and incorporates the received game data into the overall parallel reality game for all players in the parallel reality game. The general game module 145 may also manage the distribution of game data to the client devices 110 over the network 105. The general game module 145 may also regulate security aspects of the client devices 110, including, but not limited to, securing connections between the client devices 110 and the game server 120, establishing connections between various client devices 110, and verifying the locations of various client devices 110.

[0036] Commercial game module 150, in embodiments where it is included, can be separate from or part of general game module 145. Commercial game module 150 can manage the inclusion of various game features within the parallel reality game that are linked to commercial activity in the real world. For example, commercial game module 150 can include game features linked to commercial activity in the parallel reality game by receiving a request from an external system, such as a sponsor / advertiser, business, or other entity, over network 105 (via a network interface). Commercial game module 150 can then arrange for the inclusion of these game features in the parallel reality game.

[0037] Game server 120 may further include a data collection module 155. In embodiments where data collection module 155 is included, data collection module 155 may be separate from or part of general game module 145. Data collection module 155 may manage the inclusion of various game features within the parallel reality game that are linked to data collection activities in the real world. For example, data collection module 155 may include game features linked to data collection activities in the parallel reality game by modifying game data stored in game database 115. Data collection module 155 may also analyze data collected by players pursuant to data collection activities and provide the data for access by various platforms.

[0038] Event module 160 manages player access to events in a parallel reality game. While the term "event" is used for convenience, it should be understood that the term does not necessarily refer to a specific event at a specific location or time. Rather, it may refer to any offering of access-controlled game content, where one or more access criteria are used to determine whether a player may access that content. Such content may be part of a larger parallel reality game that includes game content with less or no access control, or it may be an access-controlled, standalone parallel reality game.

[0039] The traversable space estimation training system 170 trains a traversable space estimation model, e.g., the traversable space estimation model 130 provided to the client device 110. The traversable space estimation training system 170 receives image data for use in training the traversable space estimation model. Generally speaking, the traversable space estimation training system 170 processes the image data, inputs the image data into the traversable space estimation model, and iteratively adjusts parameters of the traversable space estimation model. In one embodiment, the traversable space estimation training system 170 uses stereoscopic video data to generate training data for training the model, which is described in more detail below with reference to FIG. 4. The traversable space estimation training system 170 may further define an error threshold for the traversable space estimation model that can be used to determine whether the traversable space estimation model is sufficiently accurate in estimating information describing the traversable space of a scene. Training by the traversable space estimation training system 170 will be described further below.

[0040] Once the traversable space estimation model is trained, it receives image data and outputs information describing the traversable space of the scene depicted in the image data. The traversable space estimation training system 170 provides the trained model to the client device 110. The client device 110 uses the trained model to estimate the traversable space of the scene depicted in the image (e.g., captured by a camera on the device). Estimating traversable space has a variety of uses, such as assisting in rendering virtual content that interacts with the real world, assisting robot navigation, and detecting potential hazards for autonomous vehicles.

[0041] Network 105 can be any type of communications network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof. The network can also include a direct connection between client device 110 and game server 120. Generally, communications between game server 120 and client device 110 can be performed using various communications protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encoding, or file transfer. It can be transported over a network interface using any type of wired or wireless connection, using any format (e.g., HTML, XML, JSON) or protection scheme (e.g., VPN, Secure HTTP, SSL).

[0042] The techniques discussed herein make reference to servers, databases, software applications, and other computer-based systems, as well as actions taken on and information transmitted to such systems. Those skilled in the art will recognize that the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functionality among and within components. For example, the server processes discussed herein may be implemented using a single server or multiple servers operating in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.

[0043] Furthermore, in situations where the systems and methods discussed herein access and analyze personal information about a user or utilize personal information, such as location information, the user may be provided with an opportunity to control whether the program or feature collects the information and whether or how it receives content from the system or other applications. Such information or data will not be collected or used unless the user is provided with meaningful notice regarding what information will be collected and how it will be used. Information will not be collected or used unless the user provides consent, which the user can revoke or modify at any time. Thus, users have control over how information about them is collected and used by an application or system. Furthermore, certain information or data may be treated in one or more ways to remove personally identifiable information before it is stored or used. For example, a user's identity may be treated so that personally identifiable information about the user cannot be determined.

[0044] [Example game interface] 3 depicts one embodiment of a game interface 300 that may be presented on the display of the client device 110 as part of an interface between a player and the virtual world 210. The game interface 300 includes a display window 310 that may be used to display the virtual world 210 and various other aspects of the game, such as the player's position 222 in the virtual world 210, the positions of virtual elements 230, virtual items 232, and virtual energy 250. The user interface 300 may also display other information, such as game data information, game communications, player information, client location verification instructions, and other information associated with the game. For example, the user interface may display player information 315, such as the player's name, experience level, and other information. The user interface 300 may include a menu 320 for accessing various game settings and other information associated with the game. The user interface 300 may also include a communication interface 330 that enables communication between the game system and the player, as well as between one or more players of a parallel reality game.

[0045] According to aspects of the present disclosure, a player can interact with a parallel reality game simply by carrying a client device 110 around the real world. For example, a player can access an application associated with the parallel reality game on a smartphone and play the game simply by moving around the real world with the smartphone. In this regard, a player does not need to continuously view a visual representation of the virtual world on a display screen to play a location-based game. As a result, the user interface 300 can include multiple non-visual elements that allow a user to interact with the game. For example, the game interface can provide audible notifications to a player when the player is approaching a virtual element or object in the game or when an important event occurs in the parallel reality game. The player can control these audible notifications using the audio controls 340. Different types of audible notifications can be provided to the user depending on the type of virtual element or virtual event. The audible notifications can increase or decrease in frequency or volume depending on whether the player is in proximity to a virtual element or virtual object. Other non-visual notifications and signals, such as vibration notifications or other suitable notifications or signals, can be provided to the user.

[0046] Those skilled in the art will recognize using the disclosure provided herein that numerous game interface configurations and underlying functionalities will be apparent in light of the present disclosure, which is not intended to be limited to any one particular configuration.

[0047] [Training for estimating passable space] The traversable space estimation training system 170 trains the traversable space estimation model 130. In some embodiments, the traversable space estimation model 130 is trained using stereoscopic video data. The following paragraphs describe a training method 400 for training an image-to-image traversable space estimation model by processing the stereoscopic video data to generate training data. However, other embodiments may generate training data using other methods or train the model using various other model structures and architectures. For example, the traversable space estimation training system 170 may train the model using images labeled by human raters, images of a static training environment, synthetic image data, or geometric information describing a scene.

[0048] 1 , navigable space estimation training system 170 includes stereo vision module 175, training image synthesis module 180, training loss module 185, object occupancy estimation module 190, and movement estimation module 195. In other embodiments, navigable space estimation training system 170 may include different or additional components, such as, for example, a data store, a feedback module, a smoothing module, etc. For example, a data store may store training data or trained parameters when training one or more models of stereo vision module 175 or training image synthesis module 180. In another example, a smoothing module may process a depth map, such as smoothing depth values ​​in the depth map.

[0049] FIG. 4 illustrates one embodiment of a process 400 for generating training data for training a traversable space estimation model. In the embodiment shown in FIG. 4, the traversable space estimation training system 170 can determine information describing the traversable space of a scene depicted by a target image 465 by training a traversable space estimation model 470. In this embodiment, the target image 465 is provided as input, and the traversable space estimation model 470 has four output channels, specifically, a predicted visible traversable space partition mask 475, a predicted visible space depth map 480, a predicted traversable space partition mask 485, and a predicted traversable space depth map 490. In other embodiments, the traversable space estimation model 470 may output a subset of these four output channels (e.g., the partition mask 485 and the depth map 490) or may have additional or otherwise different output channels.

[0050] To train the traversable space estimation model 470, the traversable space estimation training system 170 generates or derives a set of training target images (e.g., left target image 465) having pixels labeled with target values ​​for each of the output channels of the traversable space estimation model 470. As depicted in FIG. 4 , the target values ​​for labeling the pixels of the left target image 465 are the pixels of the target visible traversable space partition mask 445, the target visible space depth map 450, the target traversable space partition mask 455, and the target traversable space depth map 460.

[0051] The navigable space estimation training system 170 can generate a set of labeled training target images from the training image data 405. For example, the training data can include frames of video data captured using a stereoscopic camera. While the training process depicted in FIG. 4 relates to a single left target image 465 in the training image data 405, this is done for illustrative purposes only, and those skilled in the art will understand that the training process can be repeated for any number of target images, for example, included in the training image data 405. Furthermore, while the segmentation mask and depth map are generated from the field of view of the left image of the training image data 405 as described herein, those skilled in the art will understand that similar techniques can be applied to the right image of the training image data 405.

[0052] The stereoscopic module 175 and the training image synthesis module 180 use the set of multi-view stereo image pairs for the target image 410 to generate target values ​​for labeling the target image 465. The set of multi-view stereo image pairs 410 includes a target image stereo image pair including a left target image 465 and a right target image, and a set of source stereo image pairs including a left source image and a right source image, respectively. The set of multi-view stereo image pairs 410 depicts a scene from multiple perspectives. In particular, the left source image and the right source image in the source stereo image pair depict a scene from a different perspective than the left target image and the right target image, respectively. For example, the source stereo image pair may be frames that appear at a point in time before or after the frames of the target stereo image pair in video captured using a stereoscopic camera, where the stereoscopic camera has moved between the capture of the target stereo image pair and the capture of the source stereo image pair.

[0053] In step 415, the stereo module 175 uses the set of multi-view stereo image pairs 410 to determine a visible space depth map and a visible traversable space partition mask for the left target image 465 and the left source image. As one example, the visible space depth map may include depth values ​​for all pixels in the input image, representing the distance from the camera to the visible road surface represented by the pixel. As another example, the visible traversable space partition mask may be a binary partition mask, in which pixels representing visible traversable space have a value of 1 and pixels representing visible non-traversable space have a value of 0. In particular, the stereo module 175 determines the visible space depth map and partition mask by processing the set of multi-view stereo image pairs 410 using one or more stereo models or algorithms. For example, the stereo module 175 may determine the visible space depth map for the left image of a given stereo image pair using a geometric stereo matching algorithm (e.g., disparity map estimation) or a stereo matching depth estimation model (e.g., pyramid stereo matching network). In a similar manner, the stereo vision module 175 can determine the visible space segmentation mask using various ground segmentation techniques, such as a trained image-to-image ground segmentation model. The navigable space estimation training system 170 labels the left target image 465 by using the target visible navigable space segmentation mask 445 and target visible space depth map 450 determined for the left target image 465. The stereo vision module 175 provides the segmentation mask and depth map for the left source image to the training image synthesis module 180 to generate the target navigable space segmentation mask 455 and target navigable space depth map 460, as described in more detail below.

[0054] The training image synthesis module 180 uses the segmentation mask and depth map for the left source image in the set of multi-view stereo image pairs to generate a target navigable space segmentation mask 455 and a target navigable space depth map 460. In particular, the training image synthesis module 180 calculates eigenvalues ​​and non-eigenvalues ​​for the target stereo image pair and the source stereo image pair to determine the relative camera positions of the left target image and the left source image. The image eigenvalues ​​refer to the geometric characteristics of the camera used to capture the images, including, for example, the camera's focal length, the camera's principal point offset, and the camera's tilt. In some cases, the eigenvalues ​​may be constant for each camera across all captured images, or the eigenvalues ​​may vary as the camera adjusts its parameters when capturing various images. The image non-eigenvalues ​​refer to the camera's position and orientation in three-dimensional space. The training image synthesis module 180 can calculate the eigenvalues ​​and non-eigenvalues ​​for the stereo image pairs by using various camera calibration methods or simultaneous localization and mapping (SLAM) techniques, such as ORB-SLAM2.

[0055] Using the relative camera positions determined from the non-unique values, training image synthesis module 180 generates 430 warped navigable space depth maps 435 for each of the source stereo image pairs by warping the navigable depth values ​​onto the field of view of the left target image 465. For example, training image synthesis module 180 may forward-warp, reverse-warp, or otherwise project pixels representing depth values ​​for visible navigable space in navigable space depth map 435 onto the left target image 465. Training image synthesis module 180 identifies navigable depth values ​​from pixels in source visible space depth map 425 using the corresponding source visible space segmentation mask 420. If the source visible space depth map represents depth values ​​for a scene from a different perspective than the left target image 465, the distorted traversable space depth map 435 may include depth values ​​for traversable space that is obscured by objects in the left target image 465 but is not obscured in the left source image that corresponds to the distorted traversable space depth map 435. As such, the distorted traversable space depth map provides depth values ​​for pixels in the target image that represent traversable space that is not visible in the target image.

[0056] In step 440, the training image synthesis module 180 uses the distorted traversable space depth map 435 to generate a target traversable space segmentation mask 455 and a target traversable space depth map 460. In some embodiments, the training image synthesis module 180 aggregates the distorted traversable space depth map 435 to aggregate depth values ​​from each of the fields of view represented by the left source stereo image. Such aggregation increases the likelihood that hidden traversable space for the left target image 465 will be identified. Furthermore, such aggregation reduces inaccuracies in the individual distorted traversable space depth maps due to inaccuracies in the segmentation, depth, or camera position estimation processes described above. The distorted traversable space depth map 435 may be aggregated using various methods. In some embodiments, the target traversable space division mask 455 is generated by designating pixels from the left target image 465 as traversable if a threshold number of the distorted traversable space depth map 435 have non-zero depth values, and as impassable otherwise. For example, the target traversable space division mask 455 may be determined using the following equation:

[0057]

number

[0058] where:

[0059]

number

[0060] is the target traversable space division mask 455, J is the set of indices of all pixels in the left target image, P is the set of distorted traversable space depth maps 435, and P i is the i-th distorted traversable spatial depth map, and p j HA P i is the jth pixel in , where [ ] is the bracket in Iverson notation, and k is pj is the threshold number for the distorted navigable spatial depth map to have non-zero depth values ​​for

[0061] As another example, the target navigable space depth map 460 may be generated by performing one or more statistical operations on the depth values ​​of the distorted navigable space depth map 435, such as determining the mean or median depth value. For example, the target navigable space depth map 460 may be determined using the following equation:

[0062]

number

[0063] where:

[0064]

number

[0065] is the target navigable spatial depth map 460, P is the set of distorted navigable spatial depth maps 435, and P i is the i-th distorted traversable spatial depth map, where target traversable spatial depth map 460 may ignore distorted traversable spatial depth maps that have a value of zero for the depth value when determining the median value.

[0066] The navigable space estimation training system 170 labels the left target image 465 by using the determined target navigable space segmentation mask 455 and the target navigable space depth map 460 .

[0067] The training loss module 185 determines a training loss for the traversable space estimation training system 170. In the embodiment shown in FIG. 4 , in step 495, the training loss module 185 determines an overall training loss by comparing the target visible traversable space partition mask 445, the target visible space depth map 450, the target traversable space partition mask 455, and the target traversable space depth map 460 to each predicted output 475, 480, 485, and 490 of the traversable space estimation model 470. The overall training loss may be derived from a combination of multiple training loss values, such as a combination of the training loss values ​​for each of the outputs 475, 480, 485, and 490 predicted by the traversable space estimation model 470. For example, the training loss module 185 may determine the contribution of the predicted traversable space partition mask 485 to the training loss by comparing the target traversable space partition mask 455 to the predicted traversable space partition mask 485. For example, the training loss module 185 may determine a contribution to the overall training loss that increases the likelihood that the traversable space estimation model 470 will predict that pixels in the left target image 465 are traversable if they are designated as traversable by the target traversable space partition mask 460. In other words, the overall training loss may encourage the traversable space estimation model 470 to predict that pixels in the target image that correspond to traversable space in the traversable space partition mask are traversable. Similarly, the training loss module 185 may determine individual contributions to the training loss by comparing the target partition mask 445 to the predicted partition mask 475, by comparing the target depth map 450 to the predicted depth map 480, or by comparing the target depth map 460 to the predicted depth map 490. Examples of loss functions that can be used to determine the contribution to these or other training losses include cross-entropy loss, hinge loss, mean absolute error (L1) loss, mean squared error (L2) loss, or some combination thereof.

[0068] In some embodiments, the overall training loss function is:

[0069]

number

[0070] where L is the overall training loss, J is the set of indices of all pixels in the left target image 465,

[0071]

number

[0072] is the loss value for the jth pixel of the predicted visible traversable spatial segmentation mask 475,

[0073]

number

[0074] is the loss value for the jth pixel of the predicted traversable spatial depth map,

[0075]

number

[0076] is the loss value for the jth pixel of the predicted traversable spatial segmentation mask 485,

[0077]

number

[0078] is the loss value for the jth pixel of the predicted navigable spatial depth map 490.

[0079] The traversable space estimation training system 170 uses the overall training loss determined by the training loss module 185 to update the parameters of the traversable space estimation model 470 used to determine the predictive model output. For example, the traversable space estimation training system 170 may determine updates (e.g., gradients) for the parameters of the traversable space estimation model 470 by performing backpropagation using the overall loss value. Furthermore, the traversable space estimation training system 170 may apply the updates to the model parameters using various techniques. For example, the traversable space estimation training system 170 may apply the updates by using various learning rates or update functions.

[0080] The object occupancy estimation module 190 determines an object occupancy segmentation mask for the target image (e.g., the left target image 465) that indicates pixels corresponding to object occupancies in the target image. As an example, the object occupancy segmentation mask may be a binary segmentation mask in which pixels corresponding to object occupancies have a value of 1 and pixels not corresponding to object occupancies have a value of 0. The object occupancy segmentation mask may identify the entire object occupancy in the target image, or it may identify a portion of the object occupancy. For example, the object occupancy estimation module 190 may determine pixels that have a relatively high probability of corresponding to an object occupancy, such as pixels representing a portion of the object occupancy under a side of an object visible in the image. Among other uses, the object occupancy segmentation mask can be used to address inaccuracies in the traversable space segmentation mask or depth map determined by the training image synthesis module 180. For example, as described above, the target traversable space segmentation mask 455 or depth map 460 determined by the training image synthesis module 180 may include inaccurate depth or segmentation values. As such, segmentation mask 455 or depth map 460 may indicate that pixels correspond to traversable space if the pixels actually correspond to non-traversable space, such as traversable space overlaid by an object occupancy. To minimize the impact of such inaccuracies in the training process, traversable space estimation training system 170 may adjust segmentation mask 455 or depth map 460 used to label left target image 465. For example, traversable space estimation training system 170 may designate pixels in segmentation mask 455 as non-traversable if the pixels in segmentation mask 455 correspond to pixels designated as object occupancy in the object occupancy segmentation mask, regardless of whether the pixels in segmentation mask 455 were originally designated as traversable or non-traversable.

[0081] The object occupancy estimation module 190 may determine the object occupancy segmentation mask for the target image using various techniques. In one embodiment, the object occupancy estimation module 190 projects pixels of the target visible space depth map 450 from camera space to world space. Then, the object occupancy estimation module 190 fits a plane to a first subset of the projected points designated as traversable by the target visible traversable space segmentation mask 445, using, for example, a random sample consensus (RANSAC) process. Next, a second subset of the projected points designated as impassable by the target visible traversable space segmentation mask 445 is displaced along the plane's normal vector until they intersect with the plane. Finally, the object occupancy estimation module 190 reprojects the points on the plane to camera space and processes the reprojected points to identify points corresponding to the object occupancy.

[0082] In some embodiments, the training loss module 185 uses the target occupancy segmentation mask for the target image in determining an overall training loss for the traversable space estimation model 470. For example, the training loss module 185 may determine a loss contribution for the target traversable space segmentation mask 455 to the overall training loss that increases the likelihood that the traversable space estimation model 470 will predict that pixels in the left target image 465 are impassable if they are designated as corresponding to object occupancies by the object occupancy segmentation mask for the left target image 465. In other words, the overall training loss may encourage the traversable space estimation model to predict that pixels in the target image that correspond to object occupancies in the object occupancy segmentation mask are impassable. Additionally or alternatively, the training loss module 185 may determine an overall training loss that accounts for pixels not designated as traversable by the target traversable space segmentation mask 455 or not designated as corresponding to object occupancies by the object occupancy segmentation mask (i.e., “unknown pixels”). For example, the training loss module 185 may determine a contribution for the target traversable space partition mask 455 to the overall training loss that encourages the traversable space estimation model 470 to predict that pixels of the left target image 465 are impassable if they are unknown pixels. In these cases, the training loss module 185 may determine a loss contribution for the unknown pixels using a predetermined prior probability value (i.e., a "prior distribution") that encourages the traversable space estimation model 470 to predict that the unknown pixels are impassable.

[0083] The motion estimation module 195 estimates which pixels in a target image (e.g., the left target image 465) represent visible moving objects to generate a moving object segmentation mask for the target image. In particular, the moving object segmentation mask indicates whether pixels represent visible moving objects or visible stationary objects. As an example, the moving object segmentation mask may be a binary segmentation mask in which pixels representing stationary objects have a value of 1 and pixels representing moving objects have a value of 0. In some embodiments, the training loss module 185 uses the moving object segmentation mask for the target image to remove or otherwise ignore loss contributions to the overall training loss from pixels corresponding to moving objects for the predicted traversable space segmentation mask 485. The motion estimation module 195 may identify pixels associated with moving objects in the left target image 465 by using various techniques, such as object detection, semantic segmentation, image processing techniques, or some combination thereof. In some embodiments, the motion estimation module 195 estimates the guided flow and optical flow between pixels in the left target image 465 and corresponding pixels in an adjacent left source image (e.g., an earlier or later frame in the video). The motion estimation module 195 designates pixels whose guided flow and optical flow differ by a threshold amount as moving objects.

[0084] In one embodiment, the loss value determined for the predicted traversable space segmentation mask 485 is determined by the following loss function using the object occupancy segmentation mask and the moving object segmentation mask:

[0085]

number

[0086] Here,

[0087]

number

[0088] is the loss value for the jth pixel in the predicted traversable space segmentation mask 485, and u j is the j-th pixel in the moving object segmentation mask,

[0089]

number

[0090] is the j-th pixel in the predicted traversable space division mask 485,

[0091]

number

[0092] is the target passable space division mask 455,

[0093]

number

[0094] is the object occupancy area segmentation mask, and γ is

[0095]

number

[0096] is the prior distribution.

[0097] In the same or a different embodiment, the following loss function is used to determine loss values ​​for other outputs in the traversable space estimation model 470:

[0098]

number

[0099]

number

[0100]

number

[0101] Here,

[0102]

number

[0103] is the loss value for the jth pixel in the predicted visible traversable spatial division mask 475,

[0104]

number

[0105] is the loss value for the jth pixel in the predicted traversable spatial depth map,

[0106]

number

[0107] is the loss value for the jth pixel in the predicted traversable spatial depth map 490,

[0108]

number

[0109] is the binary cross-entropy loss function,

[0110]

number

[0111] is the jth pixel in the predicted visible traversable space division mask 475,

[0112]

number

[0113] is the jth pixel in the target visible traversable space division mask 445,

[0114]

number

[0115] is the jth pixel in the predicted viewfinder depth map 480,

[0116]

number

[0117] is the jth pixel in the target viewfinder depth map 450,

[0118]

number

[0119] is the jth pixel in the predicted traversable spatial depth map 490,

[0120]

number

[0121] is the jth pixel in the target navigable space depth map 460.

[0122] After training the traversable space estimation model, the traversable space estimation training system 170 can receive color input images by providing parameters for the traversable space estimation model and generate one or more outputs (e.g., outputs 475, 480, 485, or 490) based on the parameters trained by the traversable space estimation training system 170. While the traversable space estimation training system 170 is illustrated as part of the game server 120 for convenience, some or all of the functionality of the traversable space estimation training system 170 described above may be performed by other computing devices and provided to the client devices 110 in various ways, including being part of an operating system, being incorporated into a game application, or being accessed on-demand from the cloud. Furthermore, while FIG. 4 depicts both a process for generating labeled training data and a process for applying the labeled training data to the traversable space estimation model, these processes are depicted together for illustrative purposes only, and one skilled in the art will understand that some or all of the various steps included in these processes may be performed at different times or in parallel.

[0123] 5 is a flowchart illustrating a general process 500 for training a navigable space estimation model, according to one or more embodiments. The process 500 yields a number of parameters that, given an input image, enable the navigable space estimation model to generate a segmentation mask and depth map for the navigable space.

[0124] The process 500 begins in step 510 with the traversable space estimation training system 170 acquiring training image data, including a combination of a target stereo image pair and one or more source stereo image pairs. The target stereo image pair includes left and right target images representing a left target field of view and a right target field of view, respectively, in a scene. The one or more source stereo image pairs include left and right source images representing a left source field of view and a right source field of view, respectively, that are different from the left and right target fields of view. In an exemplary scenario, the scene may include an object that occludes traversable space from one or both of the left target field of view and the right target field of view. In this case, the traversable space occluded from the target field of view may be visible from one or more source fields of view. The training image data may be received from a camera on an external device, such as the camera collection 124 on the client device 110. In one embodiment, the network interface 160 receives the training image data. The traversable space estimation training system 170 may store the training image data in various data stores, such as a stereo image data store.

[0125] In step 520, the traversable space estimation training system 170 generates a visible traversable space depth map for each source image (e.g., the left source image) of the source stereo image pair. The visible traversable space depth map indicates the distance to the visible traversable road surface represented by the pixels of the source image. For example, as described above, the stereoscopic module 175 may determine the visible traversable space depth map for the source image by generating a source visible space depth map for the source image and a source visible traversable space segmentation mask. Continuing with the example scenario described above with reference to step 510, the visible traversable space depth map for the source image from a source view in which the occluded traversable space is visible includes pixels having a first depth value that represents the depth from the source view to the occluded traversable space.

[0126] Using the visible navigable space depth map for the source image, in step 530, navigable space estimation training system 170 generates a distorted navigable space depth map for the source image by warping the navigable space depth map onto a target image (e.g., the left target image) of the target stereo image pair. For example, as described above, training image synthesis module 180 may forward warp each of the navigable space depth maps onto the target field of view of the target image. Continuing with the example scenario described above with reference to step 520, the distorted navigable space depth map for the source image from the source field of view in which the occluded navigable space is visible includes pixels having a second depth value representing the depth from the target field of view to the occluded navigable space.

[0127] In step 540, the traversable space estimation training system 170 uses the one or more distorted traversable space depth maps to generate a target segmentation mask that indicates whether pixels of the target image correspond to traversable space or non-traversable space. In step 550, the traversable space estimation training system 170 further uses the one or more distorted traversable space depth maps to generate a target depth map that indicates the distance to a traversable road surface for pixels in the target image that correspond to traversable space. For example, as described above, the training image synthesis module 180 may aggregate the distorted traversable space depth maps by determining the target segmentation mask and target depth map using various techniques. Continuing with the example scenario described above with reference to step 530, the target segmentation mask designates pixels in the target image that correspond to the occluded traversable space as traversable space determined using the second depth value. Additionally, the target depth map includes pixels having a third depth value that represents the depth from the target field of view to the occluded traversable space. For example, the third depth value may be an average depth value for the associated pixel across multiple distorted navigable spatial depth maps.

[0128] In step 560, the traversable space estimation training system 170 trains a traversable space estimation model using the target images, the target depth map, and the target segmentation mask. For example, the traversable space estimation training system 170 may generate a training dataset including target images labeled with the target depth map and the target segmentation mask. In this case, the traversable space estimation training system 170 trains the traversable space estimation model to output a predicted traversable space segmentation mask and a predicted traversable space depth map for a given target image in the training dataset. During training, the traversable space estimation training system 170 may compare the predicted segmentation mask and depth map for the target image with the target segmentation mask and depth map. For example, the target values ​​and predicted values ​​may be compared using one or more loss functions, as described above with reference to the training loss module 185. Based on the comparison, the traversable space estimation training system 170 updates the parameters of the traversable space estimation model.

[0129] In some embodiments, the navigable space estimation training system 170 may determine only one of the target segmentation mask or the target depth map. For example, the navigable space estimation training system 170 predicts only one of the navigable space depth map or the navigable space segmentation mask by training a navigable space estimation model. In other embodiments, the navigable space estimation training system 170 determines additional target outputs for training the navigable space estimation model, such as a target visible navigable space segmentation mask or a target visible space depth map, as described above with reference to FIG. 4 .

[0130] [Passable space estimation model] FIG. 6 is a flowchart illustrating a general process 600 for using a traversable space estimation model, according to one or more embodiments. Given an input image, process 600 results in a predicted traversable space segmentation mask and a predicted traversable space depth map. Process 600 may be accomplished by a client device (e.g., client device 110) having a trained traversable space estimation model. The client device may be a general computing device and may have a camera thereon. In some embodiments, the client device is implemented in the parallel reality game described in FIGS. 1-4 above. While the following description is in the context of a client device, process 600 may be performed on other computing devices.

[0131] Process 600 includes, at step 610, a client device receiving an image of a scene including an object. The image of the scene may be captured by a camera that is a component of the client device or that is external to the client device. In the context of parallel reality games, the scene may be a real-world location that may be mapped to a virtual location in the virtual world. The image of the scene also includes intrinsic values ​​corresponding to geometric properties of the camera that captured the image. The image may be a single image captured by the camera. Alternatively, the image may be a frame from a video feed being captured by the camera.

[0132] Process 600 includes a client device inputting an image of a scene into a trained traversable space estimation model at step 620. The traversable space estimation model may be trained by traversable space estimation training system 170, for example, via process 500 in FIG.

[0133] At step 630, the process 600 includes the client device generating, using the trained traversable space estimation model, a segmentation mask of the scene, with each pixel of the segmentation mask having a value indicating whether the pixel corresponds to traversable space or non-traversable space. For example, the value for a pixel may be 1 if the pixel corresponds to traversable space and 0 otherwise. Non-traversable space includes areas occupied by objects in the scene. Traversable space includes traversable space occluded by objects in the input image.

[0134] At step 640, process 600 includes the client device generating a depth map of the scene corresponding to the image of the scene using the trained traversable space estimation model. Each pixel of the depth map has an estimated depth value that describes the relative distance to a traversable surface for pixels in the image of the scene that correspond to the traversable space. For example, the depth map may include depth values ​​corresponding to each pixel of a segmentation mask representing the traversable space. The depth values ​​may describe the relative distance to a visible traversable surface in the scene (e.g., as depicted in the input image) or the relative distance to an occluded traversable surface in the scene (e.g., occluded by an object in the input image).

[0135] At step 650, process 600 includes the client device determining a location in the occluded traversable space by applying the segmentation mask and depth map. For example, the client device may determine a path for an agent to navigate through a scene that includes a location in the occluded traversable space. In this case, the agent may be a physical agent (e.g., a robot) or a virtual agent (AR object). As another example, the client device may use the location to generate various virtual content related to the scene. The virtual content may be sourced, for example, from content related to a parallel reality game stored in game database 115. The virtual content may be augmented reality content that can be extended onto an image of the scene. For example, a virtual character or object may be generated that can be placed at a location in the occluded space or that can move around the scene with an understanding of the traversable space and object occupancy of the scene. For example, the virtual content may be occluded in an image of the scene when the virtual content moves into a traversable space occluded by an object. Similarly, when virtual content moves out from behind an object into visible, passable space, the virtual content may become visible in another image of the scene. As an example of a parallel reality game scenario, when a virtual character is partially behind a tree, the virtual character may dodge back and forth from behind the tree, with the portion of the virtual character occluded by the tree.

[0136] Following the example above, a parallel reality game may provide for the purpose of interacting with a virtual character. To interact with the virtual character, a user of a mobile device may need to move their mobile device around while keeping the virtual character in the camera's field of view. As the user moves the mobile device around, the scene changes as the user's mobile device moves, and the mobile device can continuously capture video or image data that can be used to repeatedly generate navigable space information for the scene. The mobile device can update the image presented on the screen while also updating the virtual character based on the generated navigable space information, so that the user perceives the virtual character as always interacting appropriately within the scene, e.g., not walking through objects, not being cropped without any objects occluding those portions, etc.

[0137] [Example of a computing system] Figure 7 is an exemplary architecture for a computing device, according to one embodiment. Figure 7 depicts a high-level block diagram illustrating the physical components of a computer that may be used as part or all of one or more of the entities described herein, according to one embodiment, although a computer may have more, fewer, or variations of the components provided in Figure 7. While Figure 7 depicts a computer 700, the diagram is intended as a functional description of various features that may be present in a computer system, rather than as an architectural diagram of the implementations described herein. In practice, and as will be recognized by those skilled in the art, separately illustrated items may be combined and some items may be separated.

[0138] 7 illustrates at least one processor 702 coupled to a chipset 704. Also coupled to the chipset 704 are memory 706, storage 708, keyboard 710, graphics adapter 712, pointing device 714, and network adapter 716. A display 718 is coupled to the graphics adapter 712. In one embodiment, the functionality of the chipset 704 is provided by a memory controller hub 720 and an I / O hub 722. In another embodiment, the memory 706 is coupled directly to the processor 702 instead of the chipset 704. In some embodiments, the computer 700 includes one or more communication buses for interconnecting these components. The one or more communication buses optionally include circuitry (sometimes referred to as a chipset) that interconnects and controls communication between multiple system components.

[0139] Storage device 708 is any non-transitory computer-readable storage medium, such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or solid-state or other optical storage device, magnetic cassette, magnetic tape, magnetic disk or other magnetic storage device, magnetic disk storage device, optical disk storage device, flash memory device, or other non-volatile solid-state storage device. Such storage device 708 is sometimes referred to as persistent memory. Pointing device 714 may be a mouse, trackball, or other type of pointing device and is used in combination with keyboard 710 to input data into computer 700. Graphics adapter 712 displays images and other information on display 718. Network adapter 716 couples computer 700 to a local or wide area network.

[0140] The memory 706 holds instructions and data used by the processor 702. The memory 706 may be non-persistent memory, examples of which include high-speed random access memory such as DRAM, SRAM, DDRRAM, ROM, EEPROM, flash memory, etc.

[0141] As is known in the art, computer 700 may have different or other components than those shown in Figure 7. Additionally, computer 700 may lack certain components shown. In one embodiment, computer 700 functioning as a server may lack keyboard 710, pointing device 714, graphics adapter 712, or display 718. Additionally, storage device 708 may be local or remote from computer 700 (e.g., embodied in a storage area network (SAN)).

[0142] As is known in the art, computer 700 is adapted to execute computer program modules to provide the functionality described herein. As used herein, the term "module" refers to computer program logic utilized to provide particular functionality. As such, a module may be implemented in hardware, firmware, or software. In one embodiment, the program modules are stored in storage device 708, loaded into memory 706, and executed by processor 302.

[0143] [Other considerations] Some portions of the above description describe embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. These operations, while described in functional, computational, or logical terms, will be understood to be implemented by computer programs, including instructions for execution by a processor or equivalent electrical circuitry, microcode, or the like. Further, without loss of generality, it has proven convenient at times to refer to arrangements of these functional operations as modules.

[0144] As used herein, any reference to "one embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. The appearances of the phrase "in one embodiment" in various places in this specification are not necessarily all referring to the same embodiment.

[0145] Some embodiments may be described using the terms "coupled" and "connected," along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term "connected" to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term "coupled" to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term "coupled" may also mean that two or more elements are not in direct contact with each other, but yet still cooperate or interact with each other. The embodiments are not limited to these relationships.

[0146] As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements and may include other elements not expressly listed or inherent in such process, method, article, or apparatus. Furthermore, unless expressly stated to the contrary, "or" refers to an inclusive or, not an exclusive or. For example, condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or absent), A is false (or absent) and B is true (or present), or A and B are both true (or present).

[0147] Furthermore, the use of "a" or "an" is applied to describe elements and components of an embodiment. This is done for convenience and only to give a general sense of the disclosure. This description should be read to include one or at least one, and the singular also includes the plural unless otherwise clearly meant. When values ​​are described as "approximate" or "substantially" (or their derivatives), such values ​​should be interpreted as + / - 10% approximations unless otherwise clearly meant from the context. From the example, "approximately 10" should be understood to mean "within the range of 9 to 11."

[0148] After reading this disclosure, those skilled in the art will recognize still other alternative structural and functional configurations for systems and processes for verifying that online service provider accounts correspond to genuine businesses. Therefore, while specific embodiments and applications have been illustrated and described, it should be understood that the subject matter described is not limited to the exact structure and components disclosed herein, and that various modifications, changes, and variations that will be apparent to those skilled in the art may be made in the arrangement, operation, and details of the disclosed methods and apparatus. The scope of protection should be limited only by any claims as granted.

Claims

1. When executed by a computing device, the computing device receiving an image of a scene including a first object in the scene; inputting the image into a trained model, the trained model outputting a first segmentation mask and a first depth map, the first segmentation mask indicating whether pixels of the image correspond to passable space or non-passable space, the first depth map indicating estimated depths to one or more passable surfaces for pixels corresponding to passable space, the non-passable space including an area occupied by the first object, and the passable space including passable space occluded by the first object in the image; determining a location in the occluded navigable space by applying the first segmentation mask and the first depth map; and A non-transitory computer-readable storage medium storing instructions for performing operations including:

2. The non-transitory computer-readable storage medium of claim 1 , wherein the first segmentation mask or the first depth map is represented from a perspective of the image of the scene.

3. The operation is determining a traversable path through the scene for the agent including a location in the occluded traversable space; 10. The non-transitory computer-readable storage medium of claim 1, further comprising:

4. 2. The non-transitory computer-readable storage medium of claim 1, wherein the trained model further outputs a second segmentation mask and a second depth map, the second segmentation mask indicating whether the group of pixels corresponds to visible traversable space or visible non-traversable space, and the second depth map indicating an estimated depth to one or more visible road surfaces represented by the group of pixels.

5. The trained model is acquiring training image data including a target stereo image pair and a first source stereo image pair of a training range scene, the target stereo image pair including a target image from a target field of view of a second object in the training range scene that occludes a passable surface in the training range scene, and the first source stereo image pair including a first source image from a first source field of view in which the occluded passable space is visible; using the first source stereo image pair to generate a first visible navigable space depth map for the first source image of the first source stereo image pair, the first visible navigable space depth map indicating first pixels in the first source image that indicate the occluded navigable space corresponds to a navigable space; generating a first distorted navigable spatial depth map for the first source image of the first source stereoscopic image pair by projecting the first visible navigable spatial depth map onto the target field of view; generating a target segmentation mask for the target image using the first distorted traversable space depth map, the target segmentation mask indicating pixels in the target image that represent a portion of a second object that occludes the traversable surface corresponding to the traversable space; generating a target navigable spatial depth map for the target image using the first distorted navigable spatial depth map, the target navigable spatial depth map indicating depth to the occluded navigable road surface; training the model using the target image, the target segmentation mask, and the target navigable spatial depth map; 10. The non-transitory computer-readable storage medium of claim 1, trained by a process comprising:

6. generating the first visible navigable spatial depth map; generating a visible traversable space division mask using the first source stereo image pair, the visible traversable space division mask indicating whether pixels of the first source image correspond to visible traversable space or visible non-traversable space; using the first source stereo image pair to generate a viewable space depth map for the first source image, the viewable space depth map indicating an estimated depth to one or more visible road surfaces represented by the pixels of the first source image; generating the first visible navigable space depth map from the visible navigable space division mask and the visible space depth map for the first source image; 6. The non-transitory computer-readable storage medium of claim 5, comprising:

7. The training image data further includes a second source stereo image pair including a second source image from a second source field of view in which the occluded drivable road surface is visible, and training the model further includes: using the second source stereo image pair to generate a second visible navigable spatial depth map for the second source image in the second source stereo image pair, the second visible navigable spatial depth map including second pixels in the second source image that represent the occluded navigable road surface corresponding to navigable space; generating a second distorted navigable spatial depth map for the second source image in the second source stereoscopic image pair by projecting the second visible navigable spatial depth map onto the target field of view; generating the target segmentation mask and target depth map for the target image by aggregating the first distorted navigable spatial depth map and the second distorted navigable spatial depth map; 6. The non-transitory computer-readable storage medium of claim 5, comprising:

8. The step of training the model comprises: inputting the target image into the model, the model outputting a predicted traversable space segmentation mask and a predicted traversable space depth map for the target image; determining a first training loss value by comparing the predicted traversable space segmentation mask with the target segmentation mask; determining a second training loss value by comparing the predicted navigable spatial depth map with a target depth map; updating parameters of the model using the first training loss value and the second training loss value; 6. The non-transitory computer-readable storage medium of claim 5, comprising:

9. The step of training the model comprises: generating an object occupation region segmentation mask for the target image, the object occupation region segmentation mask including the pixels in the target image that indicate that a portion of the second object corresponds to an occupation region of the second object; determining the target segmentation mask using the object occupancy segmentation mask prior to determining the first training loss value, the determining step including indicating the pixels in the target image that represent the portion of the second object as impassable; 9. The non-transitory computer-readable storage medium of claim 8, further comprising:

10. The step of determining the first training loss value comprises: In response to the target segmentation mask indicating that pixels in the target image correspond to traversable space, determining a loss contribution to a first training loss value for pixels in the target image that prompts the model to predict that the pixels in the target image are traversable; determining a loss contribution for pixels in the target image relative to the first training loss value that prompts the model to predict that the pixels in the target image are impassable in response to the object occupancy segmentation mask indicating that the pixels in the target image correspond to the occupancy of the second object; 10. The non-transitory computer-readable storage medium of claim 9, further comprising:

11. The step of training the model comprises: generating a moving object segmentation mask for the target image, the moving object segmentation mask indicating whether pixels in the target image represent visible moving objects or visible stationary objects; ignoring pixels in the target image when determining the first training loss value and the second training loss value in response to the moving object segmentation mask indicating that pixels in the target image correspond to moving objects in the moving object segmentation mask; 9. The non-transitory computer-readable storage medium of claim 8, further comprising:

12. 6. The non-transitory computer-readable storage medium of claim 5, wherein the training image data includes stereoscopic video data, and the first source stereoscopic image pair corresponds to frames of the stereoscopic video data that appear before or after frames of the stereoscopic video data that correspond to the target stereoscopic image pair.

13. receiving an image of a scene including a first object in the scene; inputting the image into a trained model that outputs a first segmentation mask and a first depth map, the first segmentation mask indicating whether pixels of the image correspond to passable space or non-passable space, the first depth map indicating estimated depths to one or more passable surfaces for pixels corresponding to passable space, the non-passable space including an area occupied by the first object, and the passable space including passable space occluded by the first object in the image; determining a location in the occluded navigable space by applying the first segmentation mask and the first depth map; 1. A computer-implemented method comprising:

14. determining a traversable path through the scene for an agent that includes the location in the occluded traversable space; 14. The computer-implemented method of claim 13, further comprising:

15. The trained model is acquiring training image data including a target stereo image pair and a first source stereo image pair of a training range scene, the target stereo image pair including a target image from a target field of view of a second object in the training range scene that occludes a passable surface in the training range scene, and the first source stereo image pair including a first source image from a first source field of view in which the occluded passable space is visible; using the first source stereo image pair to generate a first visible navigable space depth map for the first source image of the first source stereo image pair, the first visible navigable space depth map indicating first pixels in the first source image that indicate the occluded navigable space corresponds to a navigable space; generating a first distorted navigable spatial depth map for the first source image of the first source stereoscopic image pair by projecting the first visible navigable spatial depth map onto the target field of view; generating a target segmentation mask for the target image using the first distorted traversable space depth map, the target segmentation mask indicating pixels in the target image that represent a portion of a second object that occludes the traversable surface corresponding to the traversable space; generating a target navigable spatial depth map for the target image using the first distorted navigable spatial depth map, the target navigable spatial depth map indicating depth to the occluded navigable road surface; training the model using the target image, the target segmentation mask, and the target navigable spatial depth map; 14. The computer-implemented method of claim 13, trained by a process comprising:

16. generating the first visible navigable spatial depth map; generating a visible traversable space division mask using the first source stereo image pair, the visible traversable space division mask indicating whether pixels of the first source image correspond to visible traversable space or visible non-traversable space; using the first source stereo image pair to generate a viewable space depth map for the first source image, the viewable space depth map indicating an estimated depth to one or more visible road surfaces represented by the pixels of the first source image; generating the first visible navigable space depth map from the visible navigable space division mask and the visible space depth map for the first source image; 16. The computer-implemented method of claim 15, comprising:

17. The training image data further includes a second source stereo image pair including a second source image from a second source field of view in which the occluded drivable road surface is visible, and training the model further includes: using the second source stereo image pair to generate a second visible drivable space depth map for the second source image in the second source stereo image pair, the second visible drivable space depth map including second pixels in the second source image that represent the occluded drivable road surface corresponding to an addable space; generating a second distorted navigable spatial depth map for the second source image in the second source stereoscopic image pair by projecting the second visible navigable spatial depth map onto the target field of view; generating the target segmentation mask and target depth map for the target image by aggregating the first distorted navigable spatial depth map and the second distorted navigable spatial depth map; 16. The computer-implemented method of claim 15, comprising:

18. The step of training the model comprises: inputting the target image into the model, the model outputting a predicted traversable space segmentation mask and a predicted traversable space depth map for the target image; determining a first training loss value by comparing the predicted traversable space segmentation mask with the target segmentation mask; determining a second training loss value by comparing the predicted navigable spatial depth map with a target depth map; updating parameters of the model using the first training loss value and the second training loss value; 16. The computer-implemented method of claim 15, comprising:

19. The step of training the model comprises: generating an object occupation region segmentation mask for the target image, the object occupation region segmentation mask including the pixels in the target image that indicate that a portion of the second object corresponds to an occupation region of the second object; determining the target segmentation mask using the object occupancy segmentation mask prior to determining the first training loss value, the determining step including indicating the pixels in the target image that represent the portion of the second object as impassable; 20. The computer-implemented method of claim 18, further comprising:

20. A non-transitory computer-readable storage medium storing a computer program, wherein when the computer program is executed on a computer, a passable space estimation model configured as a machine learning model is implemented in the computer, and parameters of the passable space estimation model are determined by a training process executed by a passable space estimation training system, i.e., acquiring training image data including a target stereo image pair and a source stereo image pair of a training range scene, the target stereo image pair including target images from a target view of an object in the training range scene that occludes a passable surface in the training range scene, and the source stereo image pair including source images from a source view in which the occluded passable space is visible; using the source stereo image pair to generate a visible navigable space depth map for the source image of the source stereo image pair, the visible navigable space depth map indicating pixels in the source image that represent the occluded navigable space corresponding to navigable space; generating a distorted navigable spatial depth map for the source image of the source stereo image pair by projecting the visible navigable spatial depth map onto the target field of view; generating a target segmentation mask for the target image using the distorted traversable space depth map, the target segmentation mask indicating pixels in the target image that represent portions of objects occluding the traversable surface corresponding to the traversable space; generating a target navigable spatial depth map for the target image using the distorted navigable spatial depth map, the target navigable spatial depth map indicating depth to the occluded navigable road surface; training the navigable space estimation model using the target image, the target segmentation mask, and the target navigable space depth map; 1. A non-transitory computer-readable storage medium characterized in that it is updated or adjusted by a process including:

Citation Information

Patent Citations

  • Travelable area detection device and travel assistance system

    CN110088801A

  • Collision avoidance system for autonomous vehicle

    JP2019008796A

  • Method and storage medium for applying bokeh effect to one or more images

    KR1020200020646A