EP4677553A1 - Echtzeit-bildwiedergabe für grosse szenen - Google Patents

Echtzeit-bildwiedergabe für grosse szenen

Info

Publication number
EP4677553A1
EP4677553A1 EP24766152.3A EP24766152A EP4677553A1 EP 4677553 A1 EP4677553 A1 EP 4677553A1 EP 24766152 A EP24766152 A EP 24766152A EP 4677553 A1 EP4677553 A1 EP 4677553A1
Authority
EP
European Patent Office
Prior art keywords
feature
background
machine learning
learning model
camera
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24766152.3A
Other languages
English (en)
French (fr)
Inventor
Jeffrey Liu
Yun Chen
Ze YANG
Jingkang Wang
Sivabalan Manivasagam
Raquel URTASUN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Waabi Canada Inc
Original Assignee
Waabi Innovation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Waabi Innovation Inc filed Critical Waabi Innovation Inc
Publication of EP4677553A1 publication Critical patent/EP4677553A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Definitions

  • a virtual world is a computer-simulated environment, which interaction in a three-dimensional space as in the real world.
  • the virtual world is designed to replicate at least some aspects of the real world.
  • the virtual world may include objects and background reconstructed from the real world. The reconstructing of objects and background from the real world allows the system to replicate aspects of the real world.
  • the interaction with the virtual world is generally performed by rendering images for large-scale scenes.
  • the scenes are based on the camera placement of the virtual camera within the virtual world.
  • speed and realism is important.
  • the entity interacting with the virtual world should feel as if the entity is interacting in the real world in both relation to time and space.
  • the scene should appear photorealistic renderings at interactive frame rates for an immersive and seamless experience. Achieving both speed and realism in large-scale scene rendering has been a long-standing challenge.
  • one or more embodiments relate to a method that includes identifying a camera location of a camera in a geographic region, and rasterizing, using the camera location and a polygonal mesh, a UV feature map to obtain a feature buffer.
  • the method also includes processing, by a shading machine learning model, the feature buffer using a view direction of the camera to generate an image rendering that includes opacity values and color values.
  • the method further includes generating a rendered image from the opacity values and color values.
  • one or more embodiments relate to a system that includes memory and a computer processor that includes computer readable program code for performing operations.
  • the operations include identifying a camera location of a camera in a geographic region, and rasterizing, using the camera location and a polygonal mesh, a UV feature map to obtain a feature buffer.
  • the operations also include processing, by a shading machine learning model, the feature buffer using a view direction of the camera to generate an image rendering that includes opacity values and color values.
  • the operations further include generating a rendered image from the opacity values and color values.
  • the operations include identifying a camera location of a camera in a geographic region, and rasterizing, using the camera location and a polygonal mesh, a UV feature map to obtain a feature buffer.
  • the operations also include processing, by a shading machine learning model, the feature buffer using a view direction of the camera to generate an image rendering that includes opacity values and color values.
  • the operations further include generating a rendered image from the opacity values and color values.
  • FIG.2 shows a flowchart of the autonomous training and testing system in accordance with one or more embodiments.
  • FIG.3 shows a diagram of a rendering system in accordance with one or more embodiments.
  • FIG.4 shows a flowchart for generating a rendered image in accordance with one or more embodiments.
  • FIG. 5 shows a flowchart for using a UV code map in accordance with one or more embodiments.
  • FIG.6 shows a flowchart for processing background in accordance with one or more embodiments.
  • FIG.7 shows a flowchart for training the rendering system in accordance with one or more embodiments. [0015] FIG.
  • FIG. 8 shows an example of a rendering system to perform real time rendering of a large scene in accordance with one or more embodiments.
  • FIG.9 shows an example of vector quantization to generate a code map in accordance with one or more embodiments.
  • FIGs.10A and 10B show a computing system in accordance with one or more embodiments of the invention.
  • Like elements in the various figures are denoted by like reference numerals for consistency.
  • DETAILED DESCRIPTION [0019]
  • embodiments are directed to real time realistic renderings of large scenes.
  • one or more embodiments define a polygonal mesh for a virtual world and a UV feature map.
  • the UV feature map has neural features for locations in the virtual world.
  • the neural features are learned features that are generated through machine learning. Thus, neural features may not explicitly represent the appearance of objects in the virtual world.
  • the neural features in the UV feature map and the polygonal mesh are used by a rasterization engine that extracts the neural features corresponding to the location of the camera in the virtual world.
  • a shading machine learning model is configured to transform the neural features into an image rendering having opacity values and color values.
  • the shading machine learning model is a lightweight model that uses the neural features output from the rasterization engine along with the camera direction to generate the image rendering. For example, rather than using ray casting, the shading machine learning model may process feature vectors that include the neural features and the view direction through neural network layers. In one or more embodiments, by using lightweight machine learning model, the rendering may be performed in real time.
  • the rendering system may be used with virtual reality systems and with the training or testing of an autonomous system.
  • virtual reality systems the user interacts with the virtual world as if the user were in the real world.
  • the virtual world may be a computer-generated environment that may or may not be a virtualized version of the real world.
  • the virtual environment may have objects and background that does not exist in the real world.
  • the rendering system provides the rendered images to another component of an overall system, such as a display, another model, or other component, etc. Further, to simulate multiple cameras, the rendering system may operate in parallel for the different cameras.
  • the processing by system may be used to generate a virtual world that mimics the real world, but with different scenarios implemented.
  • Embodiments of the invention may be used as part of generating a simulated environment for the training and testing of autonomous systems.
  • An autonomous system is a self-driving mode of transportation that does not require a human pilot or human driver to move and react to the real-world environment. Rather, the autonomous system includes a virtual driver that is the decision-making portion of the autonomous system.
  • the virtual driver is an artificial intelligence system that learns how to interact in the real world.
  • the autonomous system may be completely autonomous or semi-autonomous.
  • the autonomous system is contained in a housing configured to move through a real-world environment.
  • autonomous systems include self-driving vehicles (e.g., self-driving trucks and cars), drones, airplanes, robots, etc.
  • the virtual driver is the software that makes decisions and causes the autonomous system to interact with the real-world including moving, signaling, and stopping or maintaining a current state.
  • the real-world environment is the portion of the real world through which the autonomous system, when trained, is designed to move.
  • the real- world environment may include interactions with concrete and land, people, animals, other autonomous systems, human driven systems, construction, and other objects as the autonomous system moves from an origin to a destination.
  • the autonomous system includes various types of sensors, such as LiDAR sensors amongst other types, which are used to obtain measurements of the real-world environment, and cameras that capture images from the real-world environment.
  • sensors such as LiDAR sensors amongst other types, which are used to obtain measurements of the real-world environment, and cameras that capture images from the real-world environment.
  • the testing and training of the virtual driver of the autonomous systems in the real-world environment is unsafe because of the accidents that an untrained virtual driver can cause.
  • a simulator (100) is configured to train and test a virtual driver (102) of an autonomous system.
  • the simulator may be a unified, modular, mixed-reality, closed- loop simulator for autonomous systems.
  • the simulator (100) is a configurable simulation framework that enables not only evaluation of different autonomy components in isolation but also as a complete system in a closed-loop manner.
  • the simulator reconstructs “digital twins” of real-world scenarios automatically, enabling accurate evaluation of the virtual driver at scale.
  • the simulator (100) may also be configured to perform mixed-reality simulation that combines real world data and simulated data to create diverse and realistic evaluation variations to provide insight into the virtual driver’s performance.
  • the mixed reality closed-loop simulation allows the simulator (100) to analyze the virtual driver’s action on counterfactual “what-if” scenarios that did not occur in the real-world.
  • the simulator (100) further includes functionality to simulate and train on rare yet safety-critical scenarios with respect to the entire autonomous system and closed-loop training to enable automatic and scalable improvement of autonomy.
  • the simulator (100) creates the simulated environment (104) which is a virtual world.
  • the virtual driver (102) is the player in the virtual world.
  • the simulated environment (104) is a simulation of a real-world environment, which may or may not be in actual existence, in which the autonomous system is designed to move.
  • the simulated environment (104) includes a simulation of the objects (i.e., simulated objects or assets) and background in the real world, including the natural objects, construction, buildings and roads, obstacles, as well as other autonomous and non-autonomous objects.
  • the simulated environment simulates the environmental conditions within which the autonomous system may be deployed. Additionally, the simulated environment (104) may be configured to simulate various weather conditions that may affect the inputs to the autonomous systems.
  • the simulated objects may include both stationary and nonstationary objects. Nonstationary objects are actors in the real-world environment.
  • the simulator (100) also includes an evaluator (110).
  • the evaluator (110) is configured to train and test the virtual driver (102) by creating various scenarios in the simulated environment. Each scenario is a configuration of the simulated environment including, but not limited to, static portions, movement of simulated objects, actions of the simulated objects with each other, and reactions to actions taken by the autonomous system and simulated objects.
  • the evaluator (110) is further configured to evaluate the performance of the virtual driver using a variety of metrics.
  • the evaluator (110) assesses the performance of the virtual driver throughout the performance of the scenario. Assessing the performance may include applying rules. For example, the rules may be that the automated system does not collide with any other actor, compliance with safety and comfort standards (e.g., passengers not experiencing more than a certain acceleration force within the vehicle), the automated system not deviating from executed trajectory), or other rule. Each rule may be associated with the metric information that relates a degree of breaking the rule with a corresponding score.
  • the evaluator (110) may be implemented as a data-driven neural network that learns to distinguish between good and bad driving behavior.
  • the various metrics of the evaluation system may be leveraged to determine whether the automated system satisfies the requirements of the success criterion for a particular scenario. Further, in addition to system level performance, for modular based virtual drivers, the evaluator may also evaluate individual modules such as segmentation or prediction performance for actors in the scene with respect to the ground truth recorded in the simulator.
  • the simulator (100) is configured to operate in multiple phases as selected by the phase selector (108) and modes as selected by a mode selector (106).
  • the phase selector (108) and mode selector (106) may be a graphical user interface or application programming interface component that is configured to receive a selection of phase and mode, respectively. The selected phase and mode define the configuration of the simulator (100).
  • the selected phase and mode define which system components communicate and the operations of the system components.
  • the phase may be selected using a phase selector (108).
  • the phase may be a training phase or a testing phase.
  • the evaluator (110) provides metric information to the virtual driver (102), which uses the metric information to update the virtual driver (102).
  • the evaluator (110) may further use the metric information to further train the virtual driver (102) by generating scenarios for the virtual driver.
  • the evaluator (110) does not provide the metric information to the virtual driver.
  • the evaluator (110) uses the metric information to assess the virtual driver and to develop scenarios for the virtual driver (102).
  • the mode may be selected by the mode selector (106).
  • the mode defines the degree to which real-world data is used, whether noise is injected into simulated data, the degree of perturbations of real-world data, and whether the scenarios are designed to be adversarial.
  • Example modes include open loop simulation mode, closed loop simulation mode, single module closed loop simulation mode, fuzzy mode, and adversarial mode.
  • an open loop simulation mode the virtual driver is evaluated with real world data.
  • a single module closed loop simulation mode a single module of the virtual driver is tested.
  • An example of a single module closed loop simulation mode is a localizer closed loop simulation mode in which the simulator evaluates how the localizer estimated pose drifts over time as the scenario progresses in simulation.
  • a training data simulation mode simulator is used to generate training data.
  • the simulator (100) includes the controller (112) which includes functionality to configure the various components of the simulator (100) according to the selected mode and phase. Namely, the controller (112) may modify the configuration of each of the components of the simulator based on the configuration parameters of the simulator (100).
  • the autonomous system model (116) is a detailed model of the autonomous system in which the virtual driver will execute.
  • the autonomous system model (116) includes model, geometry, physical parameters (e.g., mass distribution, points of significance), engine parameters, sensor locations and type, the firing pattern of the sensors, information about the hardware on which the virtual driver executes (e.g., processor power, amount of memory, and other hardware information), and other information about the autonomous system.
  • the various parameters of the autonomous system model may be configurable by the user or another system.
  • the modeling and dynamics may include the type of vehicle (e.g., car, truck), make and model, geometry, physical parameters such as the mass distribution, axle positions, type and performance of the engine, etc.
  • the vehicle model may also include information about the sensors on the vehicle (e.g., camera, LiDAR, etc.), the sensors’ relative firing synchronization pattern, and the sensors’ calibrated extrinsics (e.g., position and orientation) and intrinsics (e.g., focal length).
  • the vehicle model also defines the onboard computer hardware, sensor drivers, controllers, and the autonomy software release under test.
  • the autonomous system model includes an autonomous system dynamic model.
  • the autonomous system dynamic model is used for dynamics simulation that takes the actuation actions of the virtual driver (e.g., steering angle, desired acceleration) and enacts the actuation actions on the autonomous system in the simulated environment to update the simulated environment and the state of the autonomous system.
  • a kinematic motion model may be used, or a dynamics motion model that accounts for the forces applied to the vehicle may be used to determine the state.
  • embodiments may also optimize analytical vehicle model parameters or learn parameters of a neural network that infers the new state of the autonomous system given the virtual driver outputs.
  • the sensor simulation models (114) models, in the simulated environment, active and passive sensor inputs.
  • Passive sensor inputs capture the visual appearance of the simulated environment including stationary and nonstationary simulated objects from the perspective of one or more cameras based on the simulated position of the camera(s) within the simulated environment.
  • Examples of passive sensor inputs include inertial measurement unit (IMU) and thermal.
  • Active sensor inputs are inputs to the virtual driver of the autonomous system from the active sensors, such as LiDAR, RADAR, global positioning system (GPS), ultrasound, etc. Namely, the active sensor inputs include the measurements taken by the sensors, and the measurements being simulated based on the simulated environment based on the simulated position of the sensor(s) within the simulated environment.
  • the active sensor measurements may be measurements that a LiDAR sensor would make of the simulated environment over time and in relation to the movement of the autonomous system.
  • all or a portion of the sensor simulation models (114) may be or include the rendering system (300) shown in FIG. 3. In such a scenario, the rendering system of the sensor simulation models (114) may perform the operations of FIGs.4-6.
  • the sensor simulation models (114) are configured to simulate the sensor observations of the surrounding scene in the simulated environment (104) at each time step according to the sensor configuration on the vehicle platform. When the simulated environment directly represents the real-world environment, without modification, the sensor output may be directly fed into the virtual driver.
  • the sensor model simulates light as rays that interact with objects in the scene to generate the sensor data.
  • the asset representation e.g., of stationary and nonstationary objects
  • embodiments may use graphics-based rendering for assets with textured meshes, neural rendering, or a combination of multiple rendering schemes. Leveraging multiple rendering schemes enables customizable world building with improved realism. Because assets are compositional in 3D and support a standard interface of render commands, different asset representations may be composed in a seamless manner to generate the final sensor data. Additionally, for scenarios that replay what happened in the real world and use the same autonomous system as in the real world, the original sensor observations may be replayed at each time step.
  • Asset models (117) include multiple models, each model modeling a particular type of individual asset in the real world.
  • the assets may include inanimate objects such as construction barriers or traffic signs, parked cars, and background (e.g., vegetation or sky).
  • Each of the entities in a scenario may correspond to an individual asset.
  • an asset model, or instance of a type of asset model may exist for each of the objects or assets in the scenario.
  • the assets can be composed together to form the three-dimensional simulated environment.
  • An asset model provides all the information needed by the simulator to simulate the asset.
  • the asset model provides the information used by the simulator to represent and simulate the asset in the simulated environment.
  • Closely related to, and possibly considered part of the set of asset models (117) are actor models (118).
  • An actor model represents an actor in a scenario.
  • An actor is a sentient being that has an independent decision-making process. Namely, in the real world, the actor may be animate being (e.g., a person or animal) that makes a decision based on an environment. The actor makes active movement rather than or in addition to passive movement.
  • An actor model, or an instance of an actor model may exist for each actor in a scenario.
  • the actor model is a model of the actor. If the actor is in a mode of transportation, then the actor model includes the model of transportation in which the actor is located.
  • actor models may represent pedestrians, children, vehicles being driven by drivers, pets, bicycles, and other types of actors.
  • the actor model leverages the scenario specification and assets to control all actors in the scene and their actions at each time step.
  • the actor’s behavior is modeled in a region of interest centered around the autonomous system.
  • the actor simulation will control the actors in the simulation to achieve the desired behavior.
  • Actors can be controlled in various ways.
  • One option is to leverage heuristic actor models, such as an intelligent-driver model (IDM) that try to maintain a certain relative distance or time-to-collision (TTC) from a lead actor or heuristic-derived lane- change actor models.
  • IDM intelligent-driver model
  • TTC time-to-collision
  • Another is to directly replay actor trajectories from a real log or to control the actor(s) with a data-driven traffic model.
  • embodiments may mix and match different subsets of actors to be controlled by different behavior models. For example, far-away actors that initially may not interact with the autonomous system and can follow a real log trajectory, but when near the vicinity of the autonomous system may switch to a data-driven actor model.
  • actors may be controlled by a heuristic or data-driven actor model that still conforms to the high-level route in a real-log. This mixed-reality simulation provides control and realism.
  • actor models may be configured to be in cooperative or adversarial mode. In cooperative mode, the actor model models actors to act rationally in response to the state of the simulated environment.
  • the actor model may model actors acting irrationally, such as exhibiting road rage and bad driving.
  • the actor models (118), asset models (117), and background may be part of the rendering system (described below with reference to FIG. 3).
  • the system may be a bifurcated system whereby the operations (e.g., trajectories or positioning) of the assets and actors are defined separately from the appearance, which is part of the rendering system.
  • the latency model (120) represents timing latency that occurs when the autonomous system is in a real-world environment. Several sources of timing latency may exist.
  • a latency may exist from the time that an event occurs to the sensors detecting the sensor information from the event and sending the sensor information to the virtual driver.
  • Another latency may exist based on the difference between the computing hardware executing the virtual driver in the simulated environment as compared to the computing hardware of the virtual driver.
  • another timing latency may exist between the time that the virtual driver transmits an actuation signal to the autonomous system changing (e.g., direction or speed) based on the actuation signal.
  • the latency model (120) models the various sources of timing latency. [0043] Stated another way, in the real world, safety-critical decisions in the real world may involve fractions of a second affecting response time. The latency model simulates the exact timings and latency of different components of the onboard system.
  • the training data generator (122) is configured to generate training data.
  • the training data generator (122) may modify real-world scenarios to create new scenarios. The modification of real-world scenarios is referred to as mixed reality.
  • mixed-reality simulation may involve adding in new actors with novel behaviors, changing the behavior of one or more of the actors from the real-world, and modifying the sensor data in that region while keeping the remainder of the sensor data the same as the original log.
  • the training data generator (122) converts a benign scenario into a safety-critical scenario.
  • the simulator (100) is connected to a data repository (105).
  • the data repository (105) is any type of storage unit or device that is configured to store data.
  • the data repository (105) includes data gathered from the real world.
  • the data gathered from the real world include real actor trajectories (126), real sensor data (128), real trajectories of the system capturing the real world (130), and real latencies (132).
  • Each of the real actor trajectories (126), real sensor data (128), real trajectory of the system capturing the real world (130), and real latencies (132) is data captured by or calculated directly from one or more sensors from the real world (e.g., in a real-world log).
  • the data gathered from the real-world are actual events that happened in real life.
  • the autonomous system is a vehicle
  • the real-world data may be captured by a vehicle driving in the real world with sensor equipment.
  • the data repository (105) includes functionality to store one or more scenario specifications (140).
  • a scenario specification (140) specifies a scenario and evaluation setting for testing or training the autonomous system.
  • the scenario specification (140) may describe the initial state of the scene, such as the current state of the autonomous system (e.g., the full 6D pose, velocity and acceleration), the map information specifying the road layout, and the scene layout specifying the initial state of all the dynamic actors and objects in the scenario.
  • the scenario specification may also include dynamic actor information describing how the dynamic actors in the scenario should evolve over time which are inputs to the actor models.
  • the dynamic actor information may include route information for the actors, desired behaviors or aggressiveness.
  • the scenario specification (140) may be specified by a user, programmatically generated using a domain-specification- language (DSL), procedurally generated with heuristics from a data-driven algorithm, or adversarial-based generated.
  • DSL domain-specification- language
  • the scenario specification (140) can also be conditioned on data collected from a real-world log, such as taking place on a specific real-world map or having a subset of actors defined by their original locations and trajectories.
  • the interfaces between the virtual driver and the simulator match the interfaces between the virtual driver and the autonomous system in the real world.
  • the sensor simulation model (114) and the virtual driver match the virtual driver interacting with the sensors in the real world.
  • the virtual driver is the actual autonomy software that executes on the autonomous system.
  • the simulated sensor data that is output by the sensor simulation model (114) may be in or converted to the exact message format that the virtual driver takes as input as if the virtual driver were in the real world, and the virtual driver can then run as a black box virtual driver with the simulated latencies incorporated for components that run sequentially.
  • the virtual driver then outputs the exact same control representation that it uses to interface with the low-level controller on the real autonomous system.
  • the autonomous system model (116) will then update the state of the autonomous system in the simulated environment.
  • the various simulation models of the simulator (100) run in parallel asynchronously at their own frequencies to match the real- world setting.
  • FIG.2 shows a flow diagram for executing the simulator in a closed loop mode.
  • a digital twin of a real-world scenario is generated as a simulated environment state.
  • Log data from the real world is used to generate an initial virtual world.
  • the log data defines which asset and actor models are used in the initial positioning of assets.
  • the various asset types within the real world may be identified.
  • offline perception systems and human annotations of log data may be used to identify asset types.
  • corresponding asset and actor modes may be identified based on the asset types and add to the positions of the real actors and assets in the real world.
  • the asset and actor models create an initial three-dimensional virtual world.
  • the sensor simulation model is executed on the simulated environment state to obtain simulated sensor output.
  • the sensor simulation model may use beamforming and other techniques to replicate the view to the sensors of the autonomous system.
  • Each sensor of the autonomous system has a corresponding sensor simulation model and a corresponding system.
  • the sensor simulation model executes based on the position of the sensor within the virtual environment and generates simulated sensor output.
  • the simulated sensor output is in the same form as would be received from a real sensor by the virtual driver.
  • Block 203 may be performed as shown in FIGs. 4-6 (described below) to generate camera output and lidar sensor output, respectively, for a virtual camera and a virtual lidar sensor, respectively.
  • the operations of FIGs.4-6 may be performed for each camera and lidar sensor on the autonomous system to simulate the output of the corresponding camera and lidar sensor.
  • the simulated sensor output is passed to the virtual driver.
  • the virtual drive executes based on the simulated sensor output to generate actuation actions.
  • the actuation actions define how the virtual driver controls the autonomous system. For example, for an SDV, the actuation actions may be the amount of acceleration, movement of the steering, triggering of a turn signal, etc. From the actuation actions, the autonomous system state in the simulated environment is updated in Block 207.
  • the actuation actions are used as input to the autonomous system model to determine the actual actions of the autonomous system.
  • the autonomous system dynamic model may use the actuation actions in addition to road and weather conditions to represent the resulting movement of the autonomous system.
  • the same amount of acceleration action as in a dry environment may cause less acceleration than in the dry environment.
  • the autonomous system model may account for possibly faulty tires (e.g., tire slippage), mechanical based latency, or other possible imperfections in the autonomous system.
  • actors’ actions in the simulated environment are modeled based on the simulated environment state.
  • the actor models and asset models are executed on the simulated environment state to determine an update for each of the assets and actors in the simulated environment.
  • the actors’ actions may use the previous output of the evaluator to test the virtual driver. For example, if the actor is adversarial, the evaluator may indicate based on the previous action of the virtual driver, the lowest scoring metric of the virtual driver. Using a mapping of metrics to actions of the actor model, the actor model executes to exploit or test that particular metric.
  • the simulated environment state is updated according to the actors’ actions and the autonomous system state to generate an updated simulated environment state.
  • the updated simulated environment includes the change in positions of the actors and the autonomous system.
  • the update may reflect a deviation from the real world.
  • the autonomous system is tested with new scenarios.
  • a determination is made whether to continue. If the determination is made to continue, testing of the autonomous system continues using the updated simulated environment state in Block 203.
  • the evaluator provides feedback to the virtual driver.
  • the parameters of the virtual driver are updated to improve the performance of the virtual driver in a variety of scenarios.
  • the evaluator is able to test using a variety of scenarios and patterns including edge cases that may be safety critical.
  • one or more embodiments improve the virtual driver and increase the safety of the virtual driver in the real world.
  • FIG.3 shows a diagram of the rendering system (300) in accordance with one or more embodiments.
  • the rendering system (300) is a system configured to generate a rendered image based on a position of a virtual camera in a geographic region of the virtual world. In one or more embodiments, the geographic region is a subregion of the virtual world.
  • the subregion may be the area up to a threshold distance of from the virtual camera in the virtual world.
  • the geographic region may be an entire virtual world.
  • the rendering system (300) may inactively render the images as the point of view of the virtual camera changes or as objects move in the virtual world.
  • the rendering system (300) includes a data repository (302) connected to a model framework (304).
  • the data repository (302) may include one or more of sensor data (128), polygonal mesh (306), background feature maps (308), a UV feature map (310), and code map (312).
  • the sensor data (128) is the sensor data described above with reference to FIG. 1.
  • the sensor data (128) includes actual images (330).
  • Actual images (330) are images captured by one or more cameras of the geographic region.
  • the sensing vehicle may have cameras that gather sensor data from the geographic region.
  • the sensor data (128) is the time series of data that is captured along the trajectory of the sensing vehicle.
  • the polygonal mesh (308) is a mesh structure that maintains the geometry of a geographic region.
  • the polygonal mesh (308) as defined herein corresponds to the standard definition used in the art and may also be referred to as a polygon mesh.
  • the mesh has edges that connect vertices.
  • the vertices have specific locations that map to locations in the geographic region.
  • the combination of edges and vertices define faces.
  • the faces correspond to the surfaces of objects in the geographic region.
  • the faces are polygon faces, such as triangles, quadrilaterals, or other n-gons.
  • the number of vertices and correspondingly, faces, of the polygonal mesh (308) is configurable based on resolution and processing speed. For example, the polygonal mesh (308) may have fifty thousand vertices or five hundred thousand vertices.
  • the UV feature map (310) is a UV map that has neural features in the third dimension.
  • the term UV map corresponds to a standard definition used in the art.
  • the UV map maps locations of a three-dimensional object onto a two-dimensional plane. Thus, each location of the two-dimensional plane has a corresponding location on the three-dimensional object.
  • locations on the three-dimensional object each have a corresponding location on the two- dimensional plane.
  • Locations on the UV map may be defined by a horizontal value and a vertical value.
  • the horizontal value may be referred to as the U- axis and the vertical value may be referred to as a V-axis.
  • the position u,v, where u ⁇ U and v ⁇ V maps to a particular location on the three- dimensional object.
  • a UV feature map (310) is a UV map, but with a third dimension being a feature vector.
  • the feature vector has learned neural features that are features of the appearance of a corresponding object at the location corresponding to position u,v.
  • the third dimension is the feature vector with the neural features for the position defined by the first two dimensions.
  • the neural features are learned from the real sensor data (128) and, as such, may not include direct attributes of color, luminosity, etc., but rather encoded features learned through machine learning.
  • at least a portion of the virtual world is represented by a single UV feature map (310) and a single polygonal mesh (308).
  • a single UV feature map and a single polygonal mesh may have all of or several of the stationary objects in a geographic region of the virtual world.
  • nonstationary objects in the virtual world are represented by individual corresponding UV feature maps (310) and polygonal meshes (308).
  • the background feature maps (308) are one or more feature maps defined for the background of the geographic region.
  • the background region is a region that is greater than a threshold distance from a virtual camera.
  • Multiple background feature maps may be defined, whereby each background feature map corresponds to different distance range from locations in the geographic region.
  • a first background feature map may be for objects that would be 400-600 meters away from the camera in the virtual world if the virtual world were a real world
  • a second background feature map may be for objects 600-2000 meters
  • a third background feature map may be for objects, such as the sky, that are more than 2000 meters.
  • the ranges in the example are only for example purposes and not intended to limit the scope of the claims.
  • the background feature maps may be a set of neural skyboxes or skydomes, whereby the background is projected onto a cube.
  • the use of the term skybox or skydome corresponds to the standard definition as used in the art of computer graphics.
  • the value at a particular location is a feature vector.
  • the feature vector has neural features that may be similar to the feature vectors of the UV feature map.
  • the neural features of the background feature maps (308) are learned from the real sensor data (128) and, as such, may not include direct attributes of color, luminosity, etc., but rather encoded features learned through machine learning.
  • the neural sky boxes or sky domes represents a scene as a set of cuboid, spherical, or other three- dimensional layers that may be defined on a two-dimensional plane.
  • each layer may have six feature maps, where each feature map corresponds to a plane of the cuboid.
  • Each layer may be an individual feature map.
  • a code map (312) is used.
  • the UV feature map (310) or the background feature map (308) do not store feature vectors directly, but rather codes that map to the feature vectors.
  • the third dimension of the UV feature map is a code that maps to the neural features.
  • the code map (312) maintains a mapping between codes and feature vectors. Thus, the same stored feature vector may be used by multiple locations of the UV feature map, thereby reducing the size of the UV feature map.
  • the code map (312) is a learned through a machine learning process.
  • the code map (312) is a quantization of an actual UV feature map. Specifically, where multiple feature vectors are close, but not identical, the same code may be used, and a single feature vector may be stored for the multiple feature vectors. Thus, the size of the code map may be further reduced.
  • a separate code map may also or alternatively exist for the background feature map(s).
  • the code map may be specifically trained and generated for one or more of the background feature maps.
  • each background feature map may have a separate code map, or the collection of background feature maps may share the code map.
  • the code map for the background feature map may be the same as the code map for the UV feature map.
  • the code map and correspondingly, the background feature map using the code map may operate in a same or similar manner and be trained in a same or similar manner as the code map of the UV feature map.
  • the model framework (304) includes a rasterization engine (314), a shading machine learning model (316), a code map training engine (318), a compositor (320), and a loss function (322).
  • the rasterization engine is software configured to perform rasterization on the geographic region based on the camera. Rasterization is the process of taking the three-dimensional model (e.g., defined by the polygonal mesh) and converting the three-dimensional model into a raster image which is made up of pixels. The pixel is based on the location of the camera. In one or more embodiments, each pixel has a corresponding feature vector for the pixel. In one or more embodiments, the rasterization engine has multiple distinct processes.
  • the shading machine learning model (316) is a machine learning model that is configured to convert neural features into a color value and an opacity value.
  • the shading machine learning model (316) may be a lightweight machine learning model.
  • the shading machine learning model (316) may be a multilayer perceptron (MLP) model.
  • MLP multilayer perceptron
  • an MLP model is a feedforward artificial neural network having at least three layers of nodes. The layers include an input layer, a hidden layer, and an output layer. Each layer has multiple nodes. Each node includes an activation function with learnable parameters.
  • the shading model may include multiple machine learning models (e.g., MLP).
  • the multiple machine learning models may each be an independent MLP.
  • the shading machine learning model may include multiple individual machine learning models, whereby each machine learning model is for at least one of a particular background feature of the plurality of background feature maps, the UV feature map, and the object feature map.
  • the UV feature map may have an independent machine learning model that is separate from the machine learning model for one or more of the background feature maps.
  • the background feature maps may have independent machine learning models.
  • each nonstationary object may have an independent machine learning model for the object.
  • Each of the machine learning models may be independent of the other machine learning models in that the machine learning models may be at least in part individually trained. Further, the machine learning models may be separate in that at least one or more of the layers are not overlapping with the layers of the other models.
  • the code map training engine (318) is configured to train the code map (312). Specifically, the code map training engine (318) is configured to perform a training of which feature vectors should map to which codes in the code map.
  • the compositor (320) is configured to composite the image based on the output of the shading machine learning model. Compositing the image combines the different colors based on opacities of the parts of the image into a single image.
  • the loss function (322) is a function used to calculate the loss for the system.
  • the loss function (322) uses the various outputs of the model framework (304) to calculate a loss that is used to update, through backpropagation, the model framework (304). During the backpropagation, one or more layers may be frozen to calculate the loss of the other layers.
  • FIGs.4-7 show flowcharts in accordance with one or more embodiments.
  • FIG.5 shows a flowchart for generating a rendered image and FIG.5 shows a flowchart for using a code map.
  • Block 402 the camera location is identified.
  • the player may move around.
  • the player may be referred to as an ego system, autonomous system, or viewpoint of the display in the case of a human.
  • the player has a corresponding position in the virtual world.
  • the player has a corresponding position of at least one virtual camera.
  • the corresponding position of the virtual camera is the location of the player’s eye(s) in the virtual world.
  • the corresponding position of the camera is based on the location of the camera with respect to the autonomous system.
  • the camera location in the virtual world may be identified.
  • multiple virtual cameras may exist. If multiple virtual cameras exist, the processing of FIGs. 4-6 is repeated for each camera.
  • the UV feature map is rasterized to obtain a feature buffer.
  • the rasterization process obtains a u,v coordinate in the UV feature map for each pixel of the rendered image.
  • the UV feature map is sampled to obtain to obtain the feature vector at the UV coordinate.
  • the sampling may be performed as described in FIG. 5.
  • the process is repeated for each pixel in the rendered image to obtain the feature buffer that has the feature vectors.
  • Each feature vector is related to a corresponding pixel in the rendered image.
  • the rasterization engine may also generate an opacity mask from the polygonal mesh.
  • the opacity mask indicates, for each pixel, whether the pixel is covered by the polygonal mesh.
  • the opacity mask may be used at a compositing stage to composite the image. In other embodiments, the opacity mask may be used to determine whether to obtain the feature vector from the UV feature map.
  • a shading machine learning model processes the feature buffer using the view direction of the camera to generate a first set of opacity values and color values.
  • the shading machine learning model processes feature vectors for each pixel independently. For a feature vector, the view direction at the pixel is determined and combined with the feature vector to generate a combined feature vector. For example, the combination may be a concatenation. Other combinations may be used without departing from the scope of the claims.
  • the view direction indicates the angle of the camera origin to the particular pixel. The shading machine learning model then processes the combined feature vector.
  • the combined feature vector may be processed through one or more layers of the neural network to generate a color value and an opacity value for the pixel. The process is repeated for each pixel to generate an image rendering.
  • a rendered image is generated using the first set of opacity values and the color values.
  • the image rendering is the rendered image and may be used directly. In such a scenario, the rendered image is outputted from the rendering system.
  • the process of FIG. 4 may be performed for multiple cameras concurrently. Each camera may have a corresponding view direction and camera location. When performing the processing, the same polygonal mesh and UV feature map may be used for the multiple cameras. Thus, multiple rendered images may be concurrently generated and outputted.
  • FIG.5 shows a flowchart for using a code map.
  • the location in the UV feature map is identified. The location is obtained as described in Block 404.
  • the code from the location in the UV feature map is obtained. Instead of obtaining the feature vector from the UV feature map directly, the code is obtained from the UV feature map. The code is used as a lookup into the code map.
  • the feature set mapped to the code from the code map is obtained. In one or more embodiments, the feature set is a feature vector that is mapped to the code map. The feature set may be used to perform the processing described above with reference to FIG.4, Blocks 404 and 406.
  • FIG. 6 shows a flowchart for processing a background.
  • the background may have a different processing than the foreground to save processing time.
  • a polygonal mesh and a UV feature map may be used as described in FIG.4 to generate the background.
  • a camera location in a geographic region is identified. Identifying the camera location may be performed as described above with reference to Block 402 of FIG.4.
  • the background feature maps are rasterized to obtain background feature buffers. For each pixel of the image, a camera ray is projected from the camera to the locations in the background feature maps. The intersection location with each of the background feature maps are determined to identify the location in each of the background feature maps. The feature set for the location in each of the background feature maps is obtained and added to the corresponding feature buffer. Thus, in one or more embodiments, each background feature buffer has a feature set for each location that is related to the location. [0082] In Block 606, the shading machine learning model processes the background feature buffers to generate one or more background renderings. The processing is performed similar to the processing of Block 406 of FIG.4.
  • the processing of Block 606 is performed independently for each feature set for each background pixel, or each pixel, in the image.
  • the feature set is processed through one or more layers of a neural network model of the shading machine learning model.
  • the view direction is appended to the feature vector. In other embodiments, the view direction is not used when the shading machine learning model processes the feature sets.
  • the shading machine learning model may include includes multiple machine learning models. A separate machine learning model may exist for the foreground as for the background. Further, a separate machine learning model may exist for each layer of the background.
  • processing the background feature buffer(s) may include processing, by the trained neural network layers of the corresponding machine learning model, the feature set of each pixel in a layer of the background to obtain an opacity and color value for the pixel in the layer.
  • the process of FIG.6 may be extended to include nonstationary objects in the virtual world.
  • nonstationary objects may have corresponding feature maps that are trained and polygonal meshes (i.e., object polygonal meshes) that are trained.
  • object polygonal meshes i.e., object polygonal meshes
  • the shading machine learning model then processes the object feature buffer to obtain color values and opacity values for corresponding locations on the object in the image. The process may be repeated for each nonstationary object in the image.
  • the one or more background renderings are composited with first set of opacity and color values generated in Block 406 of FIG.4 to generate a rendered image.
  • each pixel may have one or more pairs of opacity value and color value defined for the pixel. If multiple pairs opacity values and color values are defined for the same pixel, then the relative distance to the camera is based on the layer in which the pixel is located is used to order the pair from closest to farthest from the camera.
  • the pair for the foreground are closer than the pairs for the background pixel, which are ordered according to the layers.
  • the pairs are processed in order.
  • the opacity value is used to determine the amount of color that is used for the pixel as compared to the amount of color from farther pairs.
  • the same pixel in the image may have a foreground color value and opacity value pair, a background color value and opacity value pair, and zero, one, or more object color value and opacity value pairs.
  • the pairs of values for the pixel are ordered according to distance from the camera.
  • the opacity value of each current pair is then used, in order of distance, to calculate the amount of color value from the farther pairs as compared to the color value for the current pair. For example, the opacity value of zero on the closest pair indicates that the color value of the closest pair is used. In another example, an opacity value of fifty percent indicates that fifty percent of the color values from the current pair is combined with fifty percent of farther pairs.
  • the combination may be a weighted combination of the current pair and the farther pairs, whereby the weights are determined by the opacity value of the current pair. Further, the combination may be independently performed for the Red, Green, Blue (RGB) portions of the color value. Although RGB is described, other color channels of other color models may be used in a same technique.
  • FIG.7 shows a flowchart for training the system in accordance with one or more embodiments.
  • the models are used to generate rendered images.
  • the UV feature maps, background feature maps, code maps, and shading models are trained.
  • Stored camera images are compared to the rendered images to generate a loss. Multiple comparisons may be performed, and the loss may be a combined loss.
  • a first comparison may be a direct comparison of color values of each pixel. Specifically, for each pixel, difference between the color value of the rendered image and the color value of the real camera image is calculated. The differences are combined across the different pixels to obtain the color loss.
  • a second loss may be a perceptual loss. The perceptual loss is the loss determined from the overall image.
  • a trained machine learning model For the perceptual loss, a trained machine learning model generates a first value from the rendered image and a second value from the real camera image. The difference between the first value and the second value is the perceptual loss.
  • a third loss may be based on the vector quantization. Namely, the third loss may be based on the amount of quantization of the code map.
  • the vector quantization loss may be calculated as the difference between the original feature and the nearest code in the code map.
  • the various losses may be combined to generate a combination loss, such as by performing a weighted averaging.
  • the combination loss may be back propagated through the network.
  • the loss updates the neural features. Namely, the system learns the neural network features that are referenced by codes in or directly in the UV feature map.
  • FIG. 8 and FIG. 9 show examples in accordance with one or more embodiments. The discussion of FIG. 8 and FIG. 9 is for example purposes and not intended to limit the scope of the claims.
  • One or more embodiments aims to perform real-time rendering of large- scale scenes. Given a set of posed images and a moderate-quality reconstructed mesh, our method generates a scene mesh with neural texture maps and view- dependent fragment shaders. Using the initial mesh, One or more embodiments first generate a UV parameterization to learn neural textures on.
  • FIG. 8 shows an example of a rendering system to perform real time rendering of a large scene in accordance with one or more embodiments.
  • FIG. 8 shows an example of a rendering system to perform real time rendering of a large scene in accordance with one or more embodiments.
  • FIG. 8 shows an example of rendering large-scale outdoor scenes.
  • a hybrid approach may be used.
  • the entire 3D scene may be partitioned into two regions: an inner cuboid region (foreground) modelled by a polygonal mesh textured with neural features, and an outer cuboid region (background) modelled by neural skyboxes.
  • an inner cuboid region foreground
  • an outer cuboid region background modelled by neural skyboxes.
  • Such a hybrid scene representation allows the modeling in fine-grained details in both close-by regions and far- away regions, and enables rendering with a remarkable degree of camera movement.
  • one or more embodiments may leverage an explicit geometry mesh scaffold to learn and render neural textures.
  • the reconstructed mesh may have over tens of millions of triangle faces, which represents the geometry well, but may have self- intersections and duplicate vertices.
  • One or more embodiments may preprocess the obtained polygonal mesh to reduce computational cost and improve UV mapping quality.
  • One or more embodiments may first cluster nearby vertices together and perform quadric mesh decimation to simplify the mesh while preserving structure, and then perform face culling to remove non-visible triangle faces (e.g., source camera views).
  • a UV map generation tool may be used to unfold the mesh to obtain the UV mappings for each of the polygonal mesh’s vertices.
  • the resulting triangle mesh ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ consists of vertex positions ⁇ ⁇ ⁇ ⁇ , vertex UV coordinates ⁇ ⁇ ⁇ ⁇ , and a set of triangle faces ⁇ .
  • one or more embodiments initialize a learnable UV feature map ⁇ ⁇ ⁇ ⁇ to represent the scene appearance covered by the mesh.
  • Using neural features instead of a color texture map enables modelling view-dependent effects during rendering.
  • a challenge may exist to model the far-away background regions with polygonal mesh because of the complexity and scale of that region.
  • one or more embodiments may use the concept of multi-plane images and multi-sphere images to represent the background region using neural skyboxes.
  • a neural skybox is an example of a background feature map.
  • the neural skyboxes may represents the scene as a set of cuboid layers. In the example, each layer ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ contains 6 individual feature maps that each represents one plane of the cuboid.
  • the background feature maps represent both geometry and view-dependent appearance of the scene in the example.
  • the neural skyboxes may represent a wide range of depths and may be integrated in existing graphics pipelines to enable efficient rendering. [0097] Turning specifically to the example of FIG. 8, the rendering pipeline is shown. By way of an overview of FIG.
  • the foreground mesh and neural skyboxes are rasterized with neural texture maps to the desired view point, producing a set of image feature buffers.
  • the feature buffers are then processed with MLPs to produce a set of rendering layers, which are composited to synthesize the final RGB image.
  • the process of FIG.8 is described below. [0098]
  • For the foreground given a camera pose and intrinsics, one or more embodiments first rasterize (808) the polygonal mesh (802) into screen space, obtaining a UV coordinate ⁇ ⁇ , ⁇ for each pixel ⁇ ⁇ , ⁇ on the screen.
  • One or more embodiments then sample the UV feature map ⁇ ⁇ ⁇ ⁇ ⁇ (804) using the rasterized UV coordinates and obtain a feature buffer ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (810): ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ , (1) where ⁇ ⁇ ⁇ is the UV feature map resolution, ⁇ ⁇ ⁇ is the rendering resolution, and ⁇ is the feature dimension.
  • the rasterization (808) may also generate an opacity mask ⁇ ⁇ ⁇ ⁇ ⁇ (not shown) to indicate whether a pixel is covered by the polygonal mesh (802).
  • one or more embodiments concatenate the rendered feature with the view direction ⁇ ⁇ , ⁇ (814) and pass through a learnable MLPs shader ⁇ ⁇ ⁇ (816): ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ , ⁇ , (2) where ⁇ ⁇ is the MLP parameters, ⁇ ⁇ ⁇ ⁇ , ⁇ is the rendered RGB color for pixel ⁇ ⁇ , ⁇ .
  • one or more embodiments project camera ray shooting each pixel ⁇ ⁇ , ⁇ and compute the ray’s intersection points ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ with layers 1 to ⁇ , from near to far.
  • one or more embodiments sample the features ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ corresponding to the intersection points on the neural skybox feature map (806) at each layer, generating a set of feature buffers ⁇ ⁇ ⁇ ⁇ ⁇ (812), where ⁇ ⁇ 1, ⁇
  • the processing can be efficiently performed with the OpenGL rasterizer (808).
  • One or more embodiments then use a learnable MLPs shader ⁇ ⁇ (816) to process the background feature buffers (812) and outputs the opacity map ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ and RGB color map ⁇ ⁇ ⁇ ⁇ ⁇ for each layer (820): ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ , ⁇ ⁇ ⁇ , (3) where ⁇ ⁇ represents the parameters of the MLPs (816).
  • the MLPs shader first processes the input feature ⁇ ⁇ ⁇ ⁇ , ⁇ , and outputs opacity ⁇ ⁇ ⁇ ⁇ , ⁇ and an intermediate feature vector.
  • the feature vector is then concatenated with ⁇ ⁇ , ⁇ , the view direction of camera ray, and passed to the last layers that output the view- dependent color ⁇ ⁇ ⁇ ⁇ , ⁇ . [00100]
  • the foreground and background are then composited.
  • one or more embodiments composite (822) the rendered layers from the foreground mesh ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ ⁇ , ⁇ and neural skyboxes ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ , ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ by repeatedly compositing the RGB and opacity layers, from near to far: ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ ⁇ ⁇ 1 ⁇ ⁇ ⁇ , ⁇ .
  • VQ vector quantization
  • One or more embodiments may maintain two codebooks ⁇ ⁇ and ⁇ ⁇ , each consists of ⁇ learnable latent code ⁇ ⁇ ⁇ ⁇ ⁇ , with ⁇ ⁇ 1, ⁇ , ⁇ .
  • one or more embodiments quantize the UV feature map ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ and neural skyboxes feature maps ⁇ ⁇ ⁇ ⁇ ⁇ by mapping each feature to its closest latent code in the codebook: ⁇ ⁇ ⁇ where ⁇ , ⁇ are the spatial coordinates of the feature map, and ⁇ is the layer index of the neural skyboxes.
  • Fig. 1 shows the feature map quantization process.
  • One or more embodiments use the quantized features to compute the synthesized image.
  • the training may be performed as follows.
  • the feature map ⁇ , ⁇ , the codebook ⁇ ⁇ , ⁇ ⁇ , and the parameters ⁇ ⁇ , ⁇ ⁇ of the MLP shaders may be jointly optimized by minimizing the photometric loss and perceptual loss between the rendered images and camera observations, as well as the VQ regularizer.
  • the full objective may be: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , (6)
  • Photometric loss may be calculated as follows.
  • ⁇ ⁇ measures the ⁇ ⁇ distance between the rendered and the observed images.
  • the photometric loss may be defined as: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , (7) where ⁇ is the rendered image from Eqn.4 and ⁇ ⁇ ⁇ is the corresponding observed camera image.
  • Perceptual loss may be calculated as follows. One or more embodiments use an additional perceptual loss to enhance the rendered image quality. The perceptual loss measures the “perceptual similarity" that is more consistent with human visual perception: where ⁇ ⁇ denotes the i-th layer with ⁇ ⁇ elements of the pre-trained VGG Network.
  • the VQ loss may be calculated as follows.
  • one or more embodiments may define the VQ loss term as: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , (9) where ⁇ ⁇ denotes the stop-gradient operator that behaves as the identity map at forward pass and has zero partial derivatives at backward pass.
  • ⁇ ⁇ denotes the stop-gradient operator that behaves as the identity map at forward pass and has zero partial derivatives at backward pass.
  • the first two terms form the alignment loss and encourage the codebook latents to follow the feature maps.
  • the last two terms form the commitment loss which stabilizes training by discouraging the features from learning much faster than the codebook.
  • the quantization step in Eqn.5 is non-differentiable.
  • FIG. 9 shows an example of vector quantization process to generate a code map (902) and a quantized UV feature map (904) in accordance with one or more embodiments.
  • the original UV feature map (906) having continuous feature values T(u,v) at location u,v is processed through a codebook (i.e., code map) function to generate the code map (902) and quantized feature map (904).
  • codebook i.e., code map
  • one or more embodiments convert our scene representations and multilayer perceptrons (MLPs) to be compatible with the graphics rendering pipeline.
  • the mesh, skyboxes, and texture representations may be directly compatible with the OpenGL, while the learned MLPs ⁇ ⁇ ⁇ and ⁇ ⁇ ⁇ are converted to fragment shaders in OpenGL.
  • the triangle mesh ⁇ and the skyboxes ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ may be rasterized to the screen as a set of fragments, and each fragment is associated with a feature vector that is bilinearly sampled from the neural texture maps.
  • the fragment shader then maps each fragment’s features to RGB color and opacity.
  • one or more embodiments use a scaffold mesh as input and incorporates a neural texture field to model view-dependent effects, which can then be exported and rendered in real-time with standard rasterization engines.
  • One or more embodiments may render urban driving scenes at 1920 ⁇ 1080 resolution at over 100 FPS while delivering comparable realism to existing neural rendering approaches.
  • one or more embodiments may be used for scalable and immersive experiences for self-driving simulation and virtual reality applications.
  • Embodiments may be implemented on a computing system specifically designed to achieve an improved technological result.
  • the features and elements of the disclosure provide a significant technological advancement over computing systems that do not implement the features and elements of the disclosure.
  • Any combination of mobile, desktop, server, router, switch, embedded device, or other types of hardware may be improved by including the features and elements described in the disclosure.
  • the computing system (1000) may include one or more computer processors (1002), non-persistent storage (1004), persistent storage (1006), a communication interface (1012) (e.g., Bluetooth interface, infrared interface, network interface, optical interface, etc.), and numerous other elements and functionalities that implement the features and elements of the disclosure.
  • the computer processor(s) (1002) may be an integrated circuit for processing instructions.
  • the computer processor(s) may be one or more cores or micro-cores of a processor.
  • the computer processor(s) (1002) includes one or more processors.
  • the one or more processors may include a central processing unit (CPU), a graphics processing unit (GPU), a tensor processing unit (TPU), combinations thereof, etc.
  • the input devices (1010) may include a touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device.
  • the input devices (1010) may receive inputs from a user that are responsive to data and messages presented by the output devices (1008).
  • the inputs may include text input, audio input, video input, etc., which may be processed and transmitted by the computing system (1000) in accordance with the disclosure.
  • the communication interface (1012) may include an integrated circuit for connecting the computing system (1000) to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, mobile network, or any other type of network) and/or to another device, such as another computing device.
  • a network not shown
  • the output devices (1008) may include a display device, a printer, external storage, or any other output device.
  • One or more of the output devices may be the same or different from the input device(s).
  • the input and output device(s) may be locally or remotely connected to the computer processor(s) (1002). Many different types of computing systems exist, and the aforementioned input and output device(s) may take other forms.
  • the output devices (1008) may display data and messages that are transmitted and received by the computing system (1000).
  • the data and messages may include text, audio, video, etc., and include the data and messages described above in the other figures of the disclosure.
  • Software instructions in the form of computer readable program code to perform embodiments may be stored, in whole or in part, temporarily or permanently, on a non-transitory computer readable medium such as a CD, DVD, storage device, a diskette, a tape, flash memory, physical memory, or any other computer readable storage medium.
  • the software instructions may correspond to computer readable program code that, when executed by a processor(s), is configured to perform one or more embodiments, which may include transmitting, receiving, presenting, and displaying data and messages described in the other figures of the disclosure.
  • the computing system (1000) in FIG.10A may be connected to or be a part of a network.
  • the network (1020) may include multiple nodes (e.g., node X (1022), node Y (1024)). Each node may correspond to a computing system, such as the computing system shown in FIG. 10A, or a group of nodes combined may correspond to the computing system shown in FIG. 10A.
  • embodiments may be implemented on a node of a distributed system that is connected to other nodes.
  • embodiments may be implemented on a distributed computing system having multiple nodes, where each portion may be located on a different node within the distributed computing system.
  • one or more elements of the aforementioned computing system (1000) may be located at a remote location and connected to the other elements over a network.
  • the nodes e.g., node X (1022), node Y (1024) in the network (1020) may be configured to provide services for a client device (1026), including receiving requests and transmitting responses to the client device (1026).
  • the nodes may be part of a cloud computing system.
  • the client device (1026) may be a computing system, such as the computing system shown in FIG.10A. Further, the client device (1026) may include and/or perform all or a portion of one or more embodiments.
  • the computing system of FIG.10A may include functionality to present raw and/or processed data, such as results of comparisons and other processing. For example, presenting data may be accomplished through various presenting methods. Specifically, data may be presented by being displayed in a user interface, transmitted to a different computing system, and stored.
  • the user interface may include a GUI that displays information on a display device.
  • the GUI may include various GUI widgets that organize what data is shown as well as how data is presented to a user.
  • GUI may present data directly to the user, e.g., data presented as actual data values through text, or rendered by the computing device into a visual representation of the data, such as through visualizing a data model.
  • connection may be direct or indirect (e.g., through another component or network).
  • a connection may be wired or wireless.
  • a connection may be temporary, permanent, or semi-permanent communication channel between two entities.
  • ordinal numbers e.g., first, second, third, etc.
  • an element i.e., any noun in the application.
  • the use of ordinal numbers is not to imply or create any particular ordering of the elements nor to limit any element to being only a single element unless expressly disclosed, such as by the use of the terms "before”, “after”, “single”, and other such terminology. Rather, the use of ordinal numbers is to distinguish between the elements.
  • a first element is distinct from a second element, and the first element may encompass more than one element and succeed (or precede) the second element in an ordering of elements.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Traffic Control Systems (AREA)
EP24766152.3A 2023-03-07 2024-03-07 Echtzeit-bildwiedergabe für grosse szenen Pending EP4677553A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363450623P 2023-03-07 2023-03-07
PCT/CA2024/050286 WO2024182905A1 (en) 2023-03-07 2024-03-07 Real time image rendering for large scenes

Publications (1)

Publication Number Publication Date
EP4677553A1 true EP4677553A1 (de) 2026-01-14

Family

ID=92673925

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24766152.3A Pending EP4677553A1 (de) 2023-03-07 2024-03-07 Echtzeit-bildwiedergabe für grosse szenen

Country Status (4)

Country Link
EP (1) EP4677553A1 (de)
JP (1) JP2026509817A (de)
KR (1) KR20250157425A (de)
WO (1) WO2024182905A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119937798B (zh) * 2025-04-07 2025-06-13 成都金杰利警用器材有限公司 基于多模态反馈的虚拟现实交互训练系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2605154B (en) * 2021-03-24 2023-05-24 Sony Interactive Entertainment Inc Image rendering method and apparatus
GB2605157B (en) * 2021-03-24 2023-08-23 Sony Interactive Entertainment Inc Image rendering method and apparatus

Also Published As

Publication number Publication date
KR20250157425A (ko) 2025-11-04
WO2024182905A1 (en) 2024-09-12
JP2026509817A (ja) 2026-03-25

Similar Documents

Publication Publication Date Title
US20250037298A1 (en) Systems and Methods for Simulating Dynamic Objects Based on Real World Data
US12037027B2 (en) Systems and methods for generating synthetic motion predictions
US20240303501A1 (en) Imitation and reinforcement learning for multi-agent simulation
US12415540B2 (en) Trajectory value learning for autonomous systems
US12586299B2 (en) Real world object reconstruction and representation
US20230410404A1 (en) Three dimensional object reconstruction for sensor simulation
US20250148725A1 (en) Autonomous system training and testing
US20240386656A1 (en) Deferred neural lighting in augmented image generation
US20240300527A1 (en) Diffusion for realistic scene generation
WO2025076074A1 (en) View synthesis for self-driving
WO2024182905A1 (en) Real time image rendering for large scenes
US20250148736A1 (en) Photorealistic synthesis of agents in traffic scenes
US20240411663A1 (en) Latent representation based appearance modification for adversarial testing and training
Bai et al. Cyber mobility mirror for enabling cooperative driving automation: A co-simulation platform
Gałązka et al. CiThruS2: open-source virtual environment for simulating real-time drone operations and piloting
JP2025539049A (ja) ニューラルハッシュグリッドベースのマルチセンサシミュレーション
Wang et al. Safely test autonomous vehicles with augmented reality
WO2025184744A1 (en) Gradient guided object reconstruction
US20250284973A1 (en) Learning to drive via asymmetric self-play
Burger et al. Virtual reality for enhanced computer vision
WO2025123133A1 (en) Mixed reality testing
US20260127819A1 (en) Diffusion-guided object insertion and light source manipulation for autonomous driving
Huang et al. Simulation Module of Autonomous Driving
Olivas et al. Sim-to-real transfer by hybrid Gaussian Splatting and geometric reconstruction for autonomous driving

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20250919

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: WAABI CANADA INC.