Alignment and merging of 3D gaussian models
By splitting scenes into regions for parallel training, aligning and merging gaussian pairs, the method addresses memory and computational challenges in 3DGS, ensuring efficient and high-fidelity 3D reconstruction of large-scale scenes.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-09
- Publication Date
- 2026-03-12
AI Technical Summary
Existing 3D gaussian splatting (3DGS) techniques face challenges in reconstructing large-scale scenes due to high GPU memory consumption and computational time, leading to incomplete coverage or loss of detail when reducing input images or gaussians, and integrating parallel trained models results in degraded visual fidelity without proper alignment and merging of conflicting gaussian pairs.
The technique involves splitting a large-scale scene into overlapping regions, training models in parallel on multiple GPUs, aligning them to a common coordinate system, identifying conflicting gaussian pairs, and merging their properties during rendering using inverse distance weighing to create a high-fidelity integrated model.
This approach reduces memory usage and computational time while maintaining high visual fidelity by effectively aligning and merging conflicting gaussian pairs, resulting in a seamless and detailed 3D reconstruction.
Smart Images

Figure CN2024117661_12032026_PF_FP_ABST
Abstract
Description
ALIGNMENT AND MERGING OF 3D GAUSSIAN MODELSBackground
[0001] Three-dimensional reconstruction of a scene is a technique in computer vision and computational geometry that aims to recreate a three-dimensional (3D) model of the scene from multiple two-dimensional (2D) camera images or other sensor data. One technique is called three-dimensional gaussian splatting (3DGS) . Techniques such as 3DGS can create detailed 3D models from 2D data. The techniques have applications in areas like virtual reality, robotics, architectural preservation, and film production.Brief Description of the Drawings
[0002] Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
[0003] FIG. 1 illustrates the process implemented for 3DGS, according to some embodiments of the disclosure.
[0004] FIG. 2 illustrates splitting a scene into multiple regions, according to some embodiments of the disclosure.
[0005] FIG. 3 illustrates parallel processor training for 3DGS, according to some embodiments of the disclosure.
[0006] FIG. 4 illustrates alignment of trained models, according to some embodiments of the disclosure.
[0007] FIG. 5 illustrates identifying conflicting gaussian pairs, according to some embodiments of the disclosure.
[0008] FIG. 6 illustrates rendering with conflicting gaussian pair merging, according to some embodiments of the disclosure.
[0009] FIG. 7 depicts a flowchart illustrating a method for 3DGS, according to some embodiments of the disclosure.
[0010] FIG. 8 is a block diagram of an exemplary computing device, according to some embodiments of the disclosure.Detailed Description
[0011] Overview
[0012] 3DGS is a powerful technique for three-dimensional reconstruction using multiple input images. 3DGS uses 3D gaussians as a flexible and expressive scene representation. 3DGS achieves efficient rendering by rasterizing the gaussians into pixels of an image. 3DGS involves initializing a model having many 3D gaussians based on a sparse point cloud generated by a structure from motion process. The model may then be trained or optimized to better fit the scene. Reconstructing a large-scale scene can mean that a large number of input images are stored in memory and processed in the training process. Also, reconstructing a large-scale scene can mean that a large number of 3D gaussians are used to represent the scene and are updated during the training process. Using 3DGS to reconstruct large-scale scenes can utilize large amounts of graphical processing unit (GPU) memory and take a long time to complete. When training a model for a scene using just 98 images, GPU memory consumption can reach a peak of 15 gigabytes (GB) . A sparse initial point cloud for large-scale scene can be produced with over 1, 000 images and can include 400, 000 feature points.
[0013] GPU memory consumption when training a model using a single GPU can be reduced. In one example, the number of input images may be reduced (e.g., reduced to a subset of input images being used) . However, while using fewer input images can conserve memory, doing so may result in incomplete coverage in certain areas of the reconstructed model. In another example, the resolution of input images may be lowered (e.g., the images may be downsampled or downscaled to a lower resolution) . However, while using lower resolution images can save memory usage, doing so can lead to a loss of detail, particularly when zooming into the reconstructed model. In another example, the number of 3D gaussians of the model (which is a hyperparameter of 3GDS) can be limited to a certain number. However, while having to use and update fewer 3D gaussians can save memory consumption, doing so can lead to a loss of rendering quality. Various approaches to reduce GPU memory can compromise the visual fidelity of the reconstructed model.
[0014] Splitting the large-scale scene into multiple (overlapping) regions and applying 3DGS to train or optimize the models of the regions on multiple GPUs in parallel can reduce memory usage and improve computational time. However, it is not trivial to obtain an integrated model based on the training models produced by the parallel GPUs. In one approach, separately trained models can be aligned and concatenated into a single trained model. However, without additional measures to handle 3D gaussians in locations where different regions overlap, the visual fidelity in those locations can be significantly degraded.
[0015] To address this technical challenge, the training models are aligned, conflicting gaussian pairs are identified, and properties of the conflicting gaussian pairs are merged during the rendering process. The result is a solution that can execute 3DGS on parallel GPUs and can produce a usable and high fidelity integrated model for 3D reconstruction of a large-scale scene.
[0016] After the parallel GPUs produce multiple trained models, one of the trained models may be designated as the reference model, and one or more other trained models may be designated as one or more registering models. Alignment of trained models may include applying normal-distribution transform to align one or more registering models to a reference model, so that the trained models can be aligned to a same or consistent coordinate system. Aligning the one or more registering models to the trained model may involve finding a transformation estimate (e.g., having rotation and translation) that maximizes a match score between the reference model and a registering model. The transformation estimate can be applied to the registering model to align the coordinate system of the registering model to the coordinate system of the reference model.
[0017] The aligned and trained models can form an integrated model. The aligned and trained models can have one or more overlapping regions. A location in an overlapping region can be represented by similar 3D gaussians from different trained models. A pair of 3D gaussians, one first 3D gaussian from one trained model, and another 3D gaussian from another trained model, may be referred to as a conflicting gaussian pair. A conflicting gaussian pair may have a first conflicting 3D gaussian, and a second conflicting 3D gaussian. One or more conflicting gaussian pairs may be identified through feature matching of a first 3D gaussian from one trained model and the second 3D gaussian from another trained model. In some embodiments, a feature distance quantifying similarity between the first 3D gaussian and the second 3D gaussian can be determined. The feature distance can be based on one or more of: an appearance feature distance, and a color distance. If the feature distance crosses a threshold (e.g., is less than a threshold) , then the first 3D gaussian and the second 3D gaussian can be considered conflicting. In other words, the first 3D gaussian and the second 3D gaussian can be considered the first conflicting 3D gaussian and the second conflicting 3D gaussian of a conflicting gaussian pair. Conflicting gaussian pairs may be flagged as conflicting in the integrated model.
[0018] During rendering, e.g., generating of a pixel value, 3D gaussians are projected into 2D splats. Properties may be computed for one or more 2D splats that intersect a ray. Properties can include color, opacity, 2D covariance, and a 2D splat value. Properties are used in a calculation to blend the intersecting 2D splats to produce the pixel value. One or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian can be merged to obtain one or more merged properties. The merging may be based on inverse distance weighing. A first weight associated with the first conflicting gaussian may be inversely related to a first distance of the first conflicting gaussian to an origin of a ray. A second weight associated with the second conflicting gaussian may be inversely related to a second distance of the second conflicting gaussian to the origin of the ray. This means that the weight is higher when a conflicting gaussian is closer to the origin of the ray. The pixel value may be determined using the one or more merged properties, as opposed to using the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian. This blending technique does not ignore the conflicting gaussian pairs, and instead creates a merged gaussian from the conflicting gaussian pair. The merged gaussian combines duplicative information appropriately. Blending using a merged gaussian can improve visual fidelity and rendering quality in the overlapping areas.
[0019] Understandinq 3DGS
[0020] FIG. 1 illustrates the process implemented for 3DGS, according to some embodiments of the disclosure. The 3DGS process may include one or more of: structure from motion 102, convert to gaussian 104, training 106, and rendering 108.
[0021] Structure from motion 102 receive and process input images 120 and produce point cloud 160. Structure from motion 102 may implement computer vision and 3D reconstruction techniques to create a 3D model of a scene (e.g., point cloud 160) from a series of 2D images (e.g., input images 120) . Input images 120 may include a series of camera images or a video captured of a scene. Input images 120 may include overlapping photos of the scene taken from different angles. Structure from motion 102 may implement feature detection to identify features in (each) input images 120. Structure from motion 102 may perform feature matching across different images in input images 120. Structure from motion 102 may calculate relative positions of the cameras for each image in input images 120. Structure from motion 102 may generate a sparse point cloud, e.g., point cloud 160, by triangulating the 3D positions of the matched features. Point cloud 160 may offer an initial estimate of the 3D model of the scene, and may not be sufficient for high fidelity reconstruction.
[0022] Convert to gaussian 104 may receive point cloud 160 from structure from motion 102. Points in point cloud 160 are converted to initial 3D gaussians of initial model 110. Information from input images 120 may be used to convert points in point cloud 160 into the 3D gaussians of initial model 110. A 3D gaussian is defined by one or more parameters, e.g., a position (alocation within a three-dimensional space) or mean, covariance matrix (defining covariance in three dimensions, and determines shape and orientation of the 3D gaussian) , opacity, and color. Color may be defined by one or more spherical harmonic coefficients. Some of the parameters of the 3D gaussians in initial model 110 may be incomplete or not optimized.
[0023] Training 106 implements an optimization process to update the one or more parameters of the 3D gaussians to increase the fidelity of the model and produce trained model 130 having 3D gaussians that have updated parameters. In some embodiments, training 106 may implement a training procedure based on stochastic gradient descent to update the parameters of the 3D gaussians iteratively to reduce a difference between one or more pixels of a rendered image produced from the 3D gaussians and one or more pixels of a ground truth image (e.g., one or more images in input images 120) . The difference may be referred to a loss. The parameters of the 3D gaussians may be updated in a manner to reduce the loss. The parameters of the 3D gaussians may be iteratively refined to better represent the underlying geometry and appearance of the scene. The parameters may be updated to perform one or more of: adjust the position (or mean) , modify the covariance matrix to change the shape and / or orientation, and updating the color information (e.g., the spherical harmonic coefficients) . In some cases, training 106 may perform densification and / or pruning to adjust the number of 3D gaussians used in trained model 130 or density of 3D gaussians over unit volume to represent the scene. For example, training 106 may densify gaussians when an average magnitude of gradients exceeds a threshold. Training 106 may clone a small gaussian with Iow variance into multiple gaussians. Training 106 may split a large gaussian with high variance into multiple gaussians. Training 106 may remove gaussians whose opacity is below a threshold.
[0024] Rendering 108 implements a rasterization approach to determine one or more pixel values of image 150 based on the trained 3D gaussians of the trained model 130 and view and projection matrices 180. Image 150 may be a 2D image, which can be displayed on an output device. 3D gaussians may be projected or transformed into 2D splats using view and projection matrices 180. The 2D splats are also 2D gaussians. A pixel value can be determined based on 2D splats that intersect a ray that is traced from the camera′sperspective (the origin of the ray) to a location in the scene. The 2D splats, e.g., the 2D splats that intersect the ray can be sorted by depth (e.g., the distance from the origin of the ray) . The properties of the 2D splats at the intersection with the ray can be determined and blended in depth order to produce the pixel value.
[0025] Training 106 can be implemented on a single processor, such as a single GPU. When executing training 106 for reconstructing a large-scale scene, memory usage and computational time can be very high.
[0026] Splittin. q a scene into reqion and traininq multiple models in parallel
[0027] To address the memory usage concerns, a scene can be split into multiple regions, and the training process can be executed in parallel on separate GPUs. The number of input images to be processed by an individual GPU would be significantly lower. The number of 3D gaussians to update would be significantly lower. Due to parallel processing, the amount of time it takes to complete training would be much faster.
[0028] FIG. 2 illustrates splitting a scene into multiple regions, according to some embodiments of the disclosure. An example of point cloud 160 of FIG. 1 is shown, along with locations corresponding to input images 120 within the scene. The scene can be split into N number of regions, as shown by ovals in FIG. 2. The N regions may have overlap each other, or two regions may overlap each other. One or more considerations can be taken into account when splitting the scene into N regions. N may be based on the number of GPUs available for the training process. In some cases, N is equal to the number of GPUs. In some cases, N is greater than the number of GPUs. Data overhead to access and transfer data (e.g., input images and 3D gaussians in initial model) for a GPU to train a model for a given region may be considered. Even distribution of work to be performed by parallel GPUs, e.g., load balancing, may be considered to ensure efficient utilization of the parallel GPUs and avoid bottlenecks. N can be equal to or greater than 2.
[0029] In some cases, a GPU may perform training for one or more regions. A GPU in the N parallel GPUs may perform training for one of the regions. A GPU in the N parallel GPUs may perform training for a subset of the regions (e.g., two or more regions) . Each parallel GPU may process the same number of regions. Each parallel GPU may process a different number of regions.
[0030] Each parallel GPU may process a corresponding subset of the regions, where the subset may be assigned to ensure the parallel GPUs are load balanced. Each parallel GPU may process a corresponding subset of the regions, where the subset may be assigned to ensure that that the data for the corresponding subset of the regions can be accessed quickly by the parallel GPU.
[0031] FIG. 3 illustrates parallel processor training for 3DGS, according to some embodiments of the disclosure. The training process for 3DGS may include one or more of: split images and gaussians 302, N instances of training 106, align models 304, identify conflicting gaussian pairs 306, and rendering with conflicting gaussian pair merging 308.
[0032] Split images and gaussians 302 can split a scene into two or more regions, e.g., a first region and a second region. One example of splitting a scene into two or more regions is illustrated in FIG. 2. Split images and gaussians 302 may receive input images 120 and initial model 110. Split images and gaussians 302 may identify a first subset of input images 120 and a first subset of 3D gaussians in initial model 110 that correspond to the first region of the scene. Split images and gaussians 302 may identify a second subset of input images 120 and a second subset of 3D gaussians in initial model 110 that correspond to the second region of the scene. Because the first region and the second region may overlap with each other, the first subset of input images 120 and the second subset of input images 120 may include one or more of the same images. The first subset of 3D gaussians in initial model 110 and the second subset of 3D gaussians in initial model 110 may include one or more of the same 3D gaussians.
[0033] N instances of training 106 may be included to implement training 106 on N parallel GPUs (e.g., GPU: 1, GPU: 2, . . . GPU: N) . For simplicity, suppose N=2, and training 106 may be executed by GPU: 1 and training 106 may be executed by GPU: 2 in parallel. The first subset of input images 120 may be provided as input images 320 to training 106 executing on GPU: 1. The first subset of 3D gaussians in initial model 110 may be provided as initial model 310 to training 106 executing on GPU: 1. The second subset of input images 120 may be provided as input images 322 to training 106 executing on GPU: 2. The second subset of 3D gaussians in initial model 110 may be provided as initial model 312 to training 106 executing on GPU: 2. Training 106 executing on GPU: 1 may produce a first trained model, e.g., trained model 330. Training 106 executing on GPU: 2 may produce a second trained model, e.g., trained model 332. If more than 2 GPUs are used to carry out more than two instances of training 106, the training process may produce one or more additional trained models.
[0034] A plurality of trained models, e.g., trained model 330 and trained model 332, being trained across parallel GPUs, the 3D gaussians of a particular trained model would be based on a coordinate system that is unique to the particular trained model. The coordinate system for one trained model would be different from the coordinate system of another trained model. To properly combine the 3D gaussians from the trained model to build integrated model 340 with a unified coordinate system and 3D gaussian representation, the trained models can be aligned to follow a consistent or reference coordinate system. Alignment may involve finding a transformation estimate using normal-distributions transform, and applying the transformation estimate to produce aligned 3D gaussians. The transformation estimate can include rotation and / or translation to align parameters to a reference coordinate system.
[0035] Align models 304 may receive a first model (e.g., trained model 330) comprising one or more first 3D gaussians, and a second model (e.g., trained model 332) comprising one or more second 3D gaussians. The first model may be produced by a first GPU implementing training 106 (e.g., GPU: 1) for a first region of the scene. The second model may be produced by a second GPU implementing training 106 (e.g., GPU: 2) for a second region of the scene. Align models 304 may align the second model to the first model (or vice versa) to obtain integrated model 340 having one or more first 3D gaussians and one or more second transformed 3D gaussians. The one or more second transformed 3D gaussians may be determined by applying a transformation to the one or more second 3D gaussians of the second model. The one or more first 3D gaussians and one or more second transformed 3D gaussians may be coherently defined within the same coordinate system. The one or more first 3D gaussians and one or more second transformed 3D gaussians may be combined to form integrated model 340. Exemplary implementations of align models 304 are described in FIG. 4.
[0036] Near or in an overlapping area of the first region and the second region, one or more ones of the one or more first 3D gaussians and one or more ones of the one or more second transformed 3D gaussians (e.g., 3D gaussians corresponding to different models) may express duplicative or similar information. A 3D gaussian associated with the first trained model and a 3D gaussian (post-alignment) associated with the second trained model may express similar appearance and / or geometric features. A feature distance can be calculated based on the parameters of the 3D gaussians to determine whether two 3D gaussians express duplicative or similar information. If the feature distance is below a threshold, the two 3D gaussians are considered to be a conflicting gaussian pair. A 3D gaussian associated with the first trained model and a 3D gaussian (post-alignment) associated with the second trained model may be referred to as a conflicting gaussian pair.
[0037] Identify conflicting gaussian pairs 306 may identify one or more conflicting gaussian pairs after alignment of the trained models. Identify conflicting gaussian pairs 306 may identify a first conflicting gaussian selected from one or more the first 3D gaussians (associated with the first model) and a second conflicting gaussian selected from the one or more second transformed 3D gaussians (associated with the second model) . Exemplary implementations of identify conflicting gaussian pairs 306 are described in FIG. 5.
[0038] A conflicting gaussian pair are handled differently during rendering. A ray is emitted from the origin of the ray (e.g., an observation point) , and passes through a center of a pixel. The pixel value for the pixel can be obtained by blending the properties of 2D splats that intersect with the ray. 3D gaussians in integrated model 340 can be projected into 2D splats. For 2D splats that correspond to a conflicting gaussian pair (e.g., referred to a conflicting 2D splat pair) , the properties at the intersection with the ray are interpolated or merged according to inverse distance weighing. The blending of properties of the intersecting 2D splats are then performed based on the merged properties.
[0039] Rendering with conflicting gaussian pair merging 308 may merge one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties. The one or more first properties of the first conflicting gaussian may include one or more first properties of the first conflicting gaussian projected into a first 2D splat. The one or more first properties of the first 2D splat may be calculated at the intersection of the first 2D splat with the ray. The one or more second properties of the second conflicting gaussian may include one or more second properties of the second conflicting gaussian projected into a second 2D splat. The one or more second properties of the second 2D splat may be calculated at the intersection of the second 2D splat with the ray. Rendering with conflicting gaussian pair merging 308 may determine a pixel value based on the one or more merged properties. Exemplary implementations of rendering with conflicting gaussian pair merging 308 are described in FIG. 6. Rendering with conflicting gaussian pair merging 308 may produce image 352. Image 352 may be displayed or output to a user via an output device or a display device.
[0040] Alignment of separately trained models
[0041] FIG. 4 illustrates alignment of trained models, according to some embodiments of the disclosure. Operations in align models 304 are illustrated. The operations may include identifying or assigning one of the trained models as reference model 402. The operations may include identifying or assigning one or more other trained models that are not assigned as the reference model 402 as one or more registering models 404. Reference model 402 may serve as the fixed baseline or chosen coordinate system to which one or more registering models are to align. One or more registering models 404 may be aligned to reference model 402 or transformed in a manner to align to reference model 402 by align models 304. Each reference model 402 may be aligned or transformed to align with the coordinate system of reference model 402.
[0042] As an illustration, a first model (e.g., trained model 330) may be selected as reference model 402, and a second model (e.g., trained model 332) may be selected as a registering model in one or more registering models 404.
[0043] Reference model 402 and one or more registering models 404 may be provided to find transformation estimate 406. Optionally, reference model 402 may be downsampled before being provided as input to find transformation estimate 406. Optionally, one or more registering models 404 may be downsampled before being provided as input to find transformation estimate 406.
[0044] Align models 304 may include find transformation estimate 406. Find transformation estimate 406 may determine a transformation estimate that can align a coordinate system of a registering model in one or more registering models 404 to reference model 402. Find transformation estimate 406 may iteratively update a transformation estimate of the second model (e.g., a registering model in one or more registering models 404) to increase a match score between the first model (e.g., reference model 402) and the second model.
[0045] Find transformation estimate 406 may include a process that can be performed for each registering model in one or more registering models 404 to align a given registering model to reference model 402.
[0046] In 410, a voxel grid for reference model 402 may be created. To create a voxel grid, one or more specifications such as dimensions and bounds of the voxel grid in world space of reference model 402 may be defined.
[0047] In 420, a probability density function (PDF) for each voxel or cell of the voxel grid can be estimated as a normal distribution (hence applying a normal-distribution transform) . For each voxel or cell of the voxel grid, a center point of the voxel in the world space may be calculated. One or more (asubset of all or all) 3D gaussians in the reference model 402 that influences the center point of the voxel may be identified. A 3D gaussian may be considered to have an influence on the center point of the voxel if the distance of the 3D gaussian to the center point is below a threshold. Statistics, such as position / mean and covariance matrix, of the identified 3D gaussians that influence the center point of the voxel may be used to compute a PDF for the voxel. In some cases, the PDF of a voxel may represent the density of 3D gaussians in the voxel.
[0048] A further voxel grid can be created and PDFs of each voxel or cell of the further voxel grid can be determined for the registering model in a manner similar to 410 and 420.
[0049] In 430, a match score between reference model 402 and a transformed registering model can be calculated. More specifically, a match score can between the voxel grid of the reference model 402, and a transformed voxel grid of the registering model can be calculated. An initial educated guess for a transformation estimate (e.g., with rotation and / or translation) may be applied to the PDFs of the further voxel grid. The voxel grid and the transformed further voxel grid can be compared to determine a match score. In some embodiments, the match score is based on similarity of the PDFs associated with one or more comparable voxels from the two voxel grids. Comparable voxels may include voxels that are in both the voxel grid and the further voxel grid. Similarity of the PDFs may be calculated using a Mahalanobis distance metric, which can tale into account the covariance of the two PDFs. Similarity of the PDFs of comparable voxels, e.g., absolute values of the Mahalanobis distances, may be accumulated as the match score.
[0050] In 440, an optimization technique can be applied to update the transformation estimate to increase the match score. The transformation estimate can be updated based on the gradients between the voxel grid and the transformed further voxel grid.
[0051] 430 and 440 may be repeated to find an optimized transformation estimate that maximizes the match score between the voxel grid and the transformed further voxel grid. The optimized transformation estimate can represent that rotation and / or translation to be applied to align the coordinate system of reference model 402 and the registering model of one or more registering models 404.
[0052] Align models 304 may include apply transformation estimate 408, which may take the determined transformation estimate from find transformation estimate 406 and apply the transformation estimate to align or transform parameters of the 3D gaussians in a registering model of one or more registering models 404 to align the 3D gaussians to the coordinate system of reference model 402. Apply transformation estimate 408 may apply the transformation estimate to the one or more second 3D gaussians (of the registering model in one or more registering models 404) to obtain the one or more second transformed 3D gaussians. The coordinate system of the one or more second transformed 3D gaussians, after transformation, would be coherent with the coordinate system of the one or more first 3D gaussians of the first model.
[0053] One or more first 3D gaussians of the first model and one or more second transformed 3D gaussians of the second model can be combined together to form integrated model 340.
[0054] Finding conflicting gaussian pairs
[0055] FIG. 5 illustrates identifying conflicting gaussian pairs, according to some embodiments of the disclosure. After alignment, one or more conflicting gaussian pairs, such as 3D gaussians in or near overlapping areas can be identified in identify conflicting gaussian pairs 306. Identify conflicting gaussian pairs 306 may receive 3D gaussians of integrated model 340. Identify conflicting gaussian pairs 306 may include feature-based matching 502 to identify one or more conflicting gaussian pairs in the 3D gaussians of integrated model 340. Two 3D gaussians from different trained models are considered conflicting, or considered as conflicting gaussian pair, if they express similar features, such as appearance features and geometric features. Feature-based matching 502 can be performed for one or more pairs of 3D gaussians from different trained models to determine whether a pair of 3D gaussians from different trained models are a conflicting gaussian pair.
[0056] In some cases, a search process in identify conflicting gaussian pairs 306 may identify various pairs of 3D gaussians from different trained models and evaluate an overall feature distance for each pair. In some cases, the search process is exhaustive. In some cases, the search process may use a heuristic to determine whether two 3D gaussians from different trained models are likely to be a conflicting gaussian pair. The heuristic may include a lightweight distance calculation (e.g., based on position / mean) between two 3D gaussians. The heuristic may include determining whether the two 3D gaussians are in or sufficiently near an overlapping area.
[0057] In 520, feature-based matching 502 may determine an overall feature distance, Dfeature, quantifying similarity between a first conflicting 3D gaussian and a second conflicting 3D gaussian.
[0058] In 530, feature-based matching 502 may compare the overall feature distance against a threshold. Feature-based matching 502 may determine that the overall feature distance crosses (e.g., is less than) a distance threshold. A smaller feature distance may indicate a higher degree of similarity. A larger feature distance may indicate a lower degree of similarity.
[0059] In 510, feature-based matching 502 may determine an appearance feature distance quantifying appearance similarity between the first conflicting gaussian and the second conflicting gaussian.
[0060] In some embodiments, determining the appearance feature distance in 510 may include determining a color distance, Dcolor, between the first conflicting gaussian and the second conflicting gaussian. The color distance, Dcolor, can be determined by calculating a sum of squares of one or more differences between one or more first spherical harmonic coefficients of the first conflicting gaussian and one or more second spherical harmonic coefficients of the second conflicting gaussian and calculating a square root of the sum of squares. The color of a 3D gaussian can be represented by a spherical harmonic function, which is expressed as one or more spherical harmonic coefficients, ci. Calculating the sum of squares of the difference between the two sets of spherical harmonic coefficients, ci1 and ci2, and then taking the square root to determine Dcolor can be expressed as follows:
[0061] n is the number of spherical harmonic coefficients of the spherical harmonic function. The number of coefficients can depend on the order of the spherical harmonic function used to express color.
[0062] In some embodiments, determining the appearance feature distance in 510 may include determining an opacity distance, Dopacity, between the first conflicting gaussian and the second conflicting gaussian. The opacity distance, Dopacity, can be determined by calculating an absolute difference between a first opacity value o1 of the first conflicting gaussian and a second opacity value o2 of the second conflicting gaussian. The calculation for the opacity distance, Dopacity, , can be expressed as follows: Dopacity = |o1-o2| (eq. 2)
[0063] In 512, feature-based matching 502 may determine determining a geometry feature distance quantifying geometry similarity between the first conflicting gaussian and the second conflicting gaussian.
[0064] In some embodiments, determining the geometry feature distance in 512 may include determining a scale distance, Dscale, between the first conflicting gaussian and the second conflicting gaussian. The scale distance, Dscale, can be determined by calculating a Euclidean distance between a first scale factor of the first conflicting gaussian and a second scale factor of the second conflicting gaussian. The first scale factor may be expressed as three components, and The second scale factor may be expressed as three components, and Ascale factor of a 3D gaussian refers to the standard deviation of the 3D gaussian in each dimension. The calculation of the scale distance, Dscale, can be expressed as follows:
[0065] In some embodiments, determining the geometry feature distance in 512 may include determining a rotation quaternion distance, Drotation, between the first conflicting gaussian and the second conflicting gaussian. The rotation quaternion distance, Drotation, can be determined by calculating an angle between a first quaternion q1 of the first conflicting gaussian and a second quaternion q2 of the second conflicting gaussian. A quaternion associated with a 3D Gaussian represents its orientation in 3D space and specifies the rotation of the 3D gaussian′s principal axes relative to a reference coordinate system. The angle θ between two quaternions is θ = 2 *arccos (|q1·q2|) , and can indicate how far apart in rotation two quaternions are. For rotation quaternion distance, it suffices to find arccos (|q1·q2|) to represent the distance. The calculation of the rotation quaternion distance, Drotation, can be expressed as follows: Drotation = arccos (|q1·q2|) (eq. 4)
[0066] In some embodiments, one or more distances calculated in 510 and 512 may be combined or aggregated to form the overall feature distance in 520. In some embodiments, determining the overall feature distance comprises calculating a weighted sum of an appearance feature distance (as determined in 510) and a geometry feature distance (as determined in 512) . In some embodiments, determining the appearance feature distance comprises calculating a (weighted) sum of a color distance Dcolor and an opacity distance, Dopacity. In some embodiments, determining the geometry feature distance comprises calculating a (weighted) sum of a scale distance Dscale and a rotation quaternion distance Drotation.
[0067] In 520, determining the overall feature distance, Dfeature, can be expressed as follows: Dfeature = wappearance * (Dcolor + Dopacity) + wgeometry * (Dscale + Drotation) (eq. 5) wappearance + wgeometry = 1 (eq. 6)
[0068] wappearance is the weight corresponding to the appearance feature distance, and wgeometry is the weight corresponding to the geometry feature difference.
[0069] In some embodiments, wappearance and wgeometry can be set based on the application or task downstream of 3DGS. In some cases, if visual fidelity is more important for the application or downstream task, then wappearance > wgeometry. One example of a downstream task that may value visual fidelity may involve production of a high resolution video clip for a movie. In some cases, if geometric fidelity is more important for the application or downstream task, then wappearance < wgeometry. One example of a downstream task may value geometric fidelity may involve rendering images of a virtual world in a video game. In some cases, if visual fidelity and geometric fidelity are equally important, then wappearance = wgeometry = 0.5. One example of a downstream task that may value both visual fidelity and geometric fidelity may involve object segmentation.
[0070] In some embodiments, the threshold used in 530 may be configurable or adjustable. A higher threshold may find more 3D gaussians to be conflicting gaussian pairs. A lower threshold may find fewer 3D gaussians to be conflicting gaussian pairs. It may be more difficult for a 3D gaussian pair to be considered a conflicting gaussian pair. The threshold can depend on the brightness of the scene captured in the input images. The threshold can depend on the amount of noise in the input images. The threshold can depend on the uncertainty in the 3D gaussians in the trained model. The threshold can depend on the density of the 3D gaussians in the trained model. The threshold can vary depending on whether the scene is indoors or outdoors.
[0071] Feature-based matching 502 may identify one or more conflicting gaussian pairs in 340 and may flag one or more gaussian pairs as the one or more conflicting gaussian pairs. Identify conflicting gaussian pairs 306 may produce integrated model with conflicting gaussian pairs 350.
[0072] Rendering with conflicting gaussian pair merging
[0073] FIG. 6 illustrates rendering with conflicting gaussian pair merging, according to some embodiments of the disclosure. Once the coordinate systems are aligned and conflicting gaussian pairs are identified, integrated model with conflicting gaussian pairs 350 can be provided as input for rendering with conflicting gaussian pair merging 308. Rendering with conflicting gaussian pair merging 308 may receive view and projection matrices 180.
[0074] Rendering involves determining one or more pixel values of one or more pixels of an image and producing the image. For simplicity, the following description describes the rendering with conflicting gaussian pair merging process for rendering one pixel or determining one pixel value. To render one pixel, a ray from an observation point (an origin of the ray) can be traced to the location of the scene. 2D splats that intersect the ray may be used to produce the pixel value. It is envisioned that the rendering with conflicting gaussian pair merging process can be performed to render other pixels.
[0075] During rendering, the process described with rendering 108 of FIG. 1 is augmented and implemented in rendering with conflicting gaussian pair merging 308 to account for one or more conflicting gaussian pairs. Specifically, properties associated with a conflicting gaussian pair are merged or interpolated based on inverse distance weighing, and the merged properties are used in blending to determine the final pixel value.
[0076] In 602, 3D gaussians in integrated model with conflicting gaussian pairs 350 are projected into 2D splats using view and projection matrices 180. The 2D splats are also 2D gaussians.
[0077] In 604, 2D splats that intersect the ray may be identified or selected. The properties of the 2D splats
[0078] In 606, for each 2D splat that intersect the ray, one or more properties of the 2D splat can be determined, such as color c, opacity o, 2D covariance ∑., and 2D splat value v. color c, opacity o, and 2D covariance ∑. can be determined from the 2D splat. The 2D spat value v can be determined for the intersection point (where the 2D splat intersects the ray) , based on the 2D covariance ∑. and the distance between the origin of the ray and the position of the intersection point.
[0079] In 608, one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian are merged to obtain one or more merged properties (of a merged gaussian) . The one or more first properties of the first conflicting gaussian may include one or more first properties of the first conflicting gaussian projected into a first 2D splat (or one or more first properties are associated with the first 2D splat) . The one or more first properties of the first 2D splat may be determined and / or calculated at the intersection of the first 2D splat with the ray as described in 606. The one or more second properties of the second conflicting gaussian may include one or more second properties of the second conflicting gaussian projected into a second 2D splat (or one or more second properties are associated with the second 2D splat) . The one or more second properties of the second 2D splat may be determined and / or calculated at the intersection of the second 2D splat with the ray as described in 606.
[0080] A particular property of the first conflicting gaussian projected into the first 2D splat may be merged with a particular property of the second conflicting gaussian projected into the second 2D splat to obtain a particular merged property. The merging may be performed through inverse distance weighing.
[0081] In some embodiments, determining a first one of the one or more merged properties may include calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.
[0082] For example, a weighted sum can be calculated to determine a merged property using a property determined in 606 of the first 2D splat, e.g., color c1, opacity o1, and 2D splat value v1, a first weight w1 associated with the first conflicting gaussian, a property determined in 606 for the second 2D splat, e.g., color c2, opacity o2, and 2D splat value v2, and a second weight w2 associated with the second conflicting gaussian. The different weighted sums can be expressed as follows:
[0083] is a merged color property of a merged gaussian. is a merged opacity property of the merged gaussian. is a merged 2D splat value property of the merged gaussian.
[0084] In some embodiments, the first weight w1 is inversely related to a first distance d1 of the first conflicting gaussian (e.g., the first 2D splat) to the origin of the ray, and the second weight w2 is inversely related to a second distance d2 of the second conflicting gaussian (e.g., the second 2D splat) to the origin of the ray. In some embodiments, the first weight w1 is inversely related to a first distance of the first conflicting gaussian (e.g., the first 2D splat) to the origin of the ray raised to a first power, and the second weight w2 is inversely related to a second distance d2 of the second conflicting gaussian (e.g., the second 2D splat) to the origin of the ray raised to the first power. In some cases, the first power is a hyperparameter that is configurable or adjustable. In some cases, the first power is two. The weights, wk, used for the merging can be expressed as follows:
[0085] wk can be determined based on each 2D splat′s position to the origin of the ray (expressed as and ) . dk is the distance of the 2D splat to the origin of the ray. xk, yk, zk is the position of the 2D splat in the view space, p corresponding to the first power can be a hyperparameter. Using the formulation for dk and wk above, the first weight w1 and the first weight w1 can be calculated.
[0086] Advantageously, a 2D splat associated with a first conflicting 3D gaussian of a conflicting gaussian pair that is closer to the origin of the ray (e.g., the camera) than a 2D splat associated with a second conflicting 3D gaussian of the conflicting gaussian pair would have a greater contribution to the final pixel value by means of having a higher weight.
[0087] Inverse distance weighing advantageously offers a smooth and appropriate interpolation of the properties associated with the two 2D splats. Interpolating along the ray (which is a core operation of rendering) to merge the properties of the 2D splats can result in better visual quality and a more visually natural result.
[0088] In 610, a pixel value, cpixel, is calculated based on the one or more merged properties, including one or more of: color opacity and a 2D splat value of the merged gaussian. Obtaining the pixel value cpixel involves blending properties of the 2D splats that intersect the ray in depth order. Blending of properties of the 2D splats that intersect the ray to determine a final pixel value can be expressed as follows: Tl = ∏Tl-1* (1-ol*ul) , T0 = 1 (eq. 13)
[0089] For calculating transmittance Tl, the 2D splats are sorted by depth order first, then transmittance Tl is calculated according to the depth order. The one or more merged properties, e.g., color opacity and a 2D splat value can be blended with one or more properties of one or more other 2D splats that intersects the ray (2D splats that were not associated with conflicting gaussian pairs) to produce the pixel value cpixel. Phrased differently, one or more merged properties, e.g., color opacity and a 2D splat value are used in the calculations of transmittance Tl and pixel value cpixel. The properties associated with the first 2D splat (color c1, opacity o1, and 2D splat value v1) and the properties associated with the second 2D splat (color c2, opacity o2, and a 2D splat value v2) are not used in the calculations of transmittance Tl and pixel value cpixel. The merged gaussian participates in the blending while the 2D splats associated with the conflicting gaussian pair do not participate in the blending.
[0090] Rendering with conflicting gaussian pair merging 308 may produce image 352 by calculating one or more pixel values as described above. Image 352 may be displayed or output to a user via an output device or a display device.
[0091] Methods for allowing parallel training in 3DGS
[0092] FIG. 7 depicts a flowchart illustrating a method for 3DGS, according to some embodiments of the disclosure. Method 700 can be performed using a computing device, such as computing device 800 in FIG. 7. Method 700 may be performed using or by one or more parts illustrated in FIGS. 3-6.
[0093] In 702, a first model comprising one or more first three-dimensional gaussians and a second model comprising one or more second three-dimensional gaussians are received.
[0094] In 704, the second model is aligned to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians.
[0095] In 706, a first conflicting gaussian selected from one or more the first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians are identified.
[0096] In 708, one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian are merged to obtain one or more merged properties.
[0097] In 710, a pixel value is determined based on the one or more merged properties.
[0098] Exemplary computing device
[0099] FIG. 8 is a block diagram of an apparatus or a system, e.g., an exemplary computing device 800, according to some embodiments of the disclosure. One or more computing devices 800 may be used to implement the functionalities described with the FIGS. and herein. A number of components illustrated in FIG. 8 can be included in computing device 800, but any one or more of these components may be omitted or duplicated, as suitable for the application. In some embodiments, some or all of the components included in computing device 800 may be attached to one or more motherboards. In some embodiments, some or all of these components are fabricated onto a single system on a chip (SoC) die. Additionally, in various embodiments, computing device 800 may not include one or more of the components illustrated in FIG. 8, and computing device 800 may include interface circuitry for coupling to the one or more components. For example, the computing device 800 may not include display device 806, and may include display device interface circuitry (e.g., a connector and driver circuitry) to which a display device 806 may be coupled. In another set of examples, computing device 800 may not include audio input device 818 or an audio output device 808 and may include audio input or output device interface circuitry (e.g., connectors and supporting circuitry) to which an audio input device 818 or audio output device 808 may be coupled.
[0100] Computing device 800 may include processing device 802 (e.g., one or more processing devices, one or more of the same types of processing device, one or more of different types of processing device) . Processing device 802 may include electronic circuitry that process electronic data from data storage elements (e.g., registers, memory, resistors, capacitors, quantum bit cells) to transform that electronic data into other electronic data that may be stored in registers and / or memory. Examples of processing device 802 may include a central processing unit (CPU) , a GPU, a quantum processor, a machine learning processor, an artificial intelligence processor, a neural network processor, an artificial intelligence accelerator, an application specific integrated circuit (ASIC) , an analog signal processor, an analog computer, a microprocessor, a digital signal processor, a field-programmable gate array (FPGA) , a tensor processing unit (TPU) , a data processing unit (DPU) , etc.
[0101] The computing device 800 may include a memory 804, which may itself include one or more memory devices such as volatile memory (e.g., DRAM) , nonvolatile memory (e.g., read-only memory (ROM) ) , high bandwidth memory (HBM) , flash memory, solid state memory, and / or a hard drive. Memory 804 includes one or more non-transitory computer-readable storage media. In some embodiments, memory 804 may include memory that shares a die with the processing device 802.
[0102] In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with the FIGS. and herein, such as the methods and operations illustrated in the FIGS. The instructions stored in the one or more non-transitory computer-readable media may be executed by processing device 802.
[0103] In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with split images and gaussians 302. In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with align models 304. In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with identify conflicting gaussian pairs 306. In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with rendering with conflicting gaussian pair merging 308.
[0104] In some embodiments, memory 804 includes one or more non-transitory computer-readable media storing instructions executable to perform operations of method 700 of FIG. 7.
[0105] In some embodiments, memory 804 may store data, e.g., data structures, binary data, bits, metadata, files, blobs, etc., as described with the FIGS. and herein. For example, memory 804 may store one or more of: input images 120, trained model 330, trained model 332, integrated model 340, integrated model with conflicting gaussian pairs 350, view and projection matrices 180, and image 352.
[0106] In some embodiments, the computing device 800 may include a communication device 812 (e.g., one or more communication devices) . For example, the communication device 812 may be configured for managing wired and / or wireless communications for the transfer of data to and from the computing device 800. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a nonsolid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not. The communication device 812 may implement any of a number of wireless standards or protocols, including but not limited to Institute for Electrical and Electronic Engineers (IEEE) standards including Wi-Fi (IEEE 802.10 family) , IEEE 802.16 standards (e.g., IEEE 802.16-2005 Amendment) , Long-Term Evolution (LTE) project along with any amendments, updates, and / or revisions (e.g., advanced LTE project, ultramobile broadband (UMB) project (also referred to as "3GPP2" ) , etc. ) . IEEE 802.16 compatible Broadband Wireless Access (BWA) networks are generally referred to as WiMAX networks, an acronym that stands for worldwide interoperability for microwave access, which is a certification mark for products that pass conformity and interoperability tests for the IEEE 802.16 standards. The communication device 812 may operate in accordance with a Global System for Mobile Communication (GSM) , General Packet Radio Service (GPRS) , Universal Mobile Telecommunications System (UMTS) , High Speed Packet Access (HSPA) , Evolved HSPA (E-HSPA) , or LTE network. The communication device 812 may operate in accordance with Enhanced Data for GSM Evolution (EDGE) , GSM EDGE Radio Access Network (GERAN) , Universal Terrestrial Radio Access Network (UTRAN) , or Evolved UTRAN (E-UTRAN) . The communication device 812 may operate in accordance with Code-division Multiple Access (CDMA) , Time Division Multiple Access (TDMA) , Digital Enhanced Cordless Telecommunications (DECT) , Evolution-Data Optimized (EV-DO) , and derivatives thereof, as well as any other wireless protocols that are designated as 3G, 4G, 5G, and beyond. The communication device 812 may operate in accordance with other wireless protocols in other embodiments. The computing device 800 may include an antenna 822 to facilitate wireless communications and / or to receive other wireless communications (such as radio frequency transmissions) . The computing device 800 may include receiver circuits and / or transmitter circuits. In some embodiments, the communication device 812 may manage wired communications, such as electrical, optical, or any other suitable communication protocols (e.g., the Ethernet) . As noted above, the communication device 812 may include multiple communication chips. For instance, a first communication device 812 may be dedicated to shorter-range wireless communications such as Wi-Fi or Bluetooth, and a second communication device 812 may be dedicated to longer-range wireless communications such as global positioning system (GPS) , EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, or others. In some embodiments, a first communication device 812 may be dedicated to wireless communications, and a second communication device 812 may be dedicated to wired communications.
[0107] The computing device 800 may include power source / power circuitry 814. The power source / power circuitry 814 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 800 to an energy source separate from the computing device 800 (e.g., DC power, AC power, etc. ) .
[0108] The computing device 800 may include a display device 806 (or corresponding interface circuitry, as discussed above) . The display device 806 may include any visual indicators, such as a heads-up display, a computer monitor, a projector, a touchscreen display, a liquid crystal display (LCD) , a light-emitting diode display, or a flat panel display, for example.
[0109] The computing device 800 may include an audio output device 808 (or corresponding interface circuitry, as discussed above) . The audio output device 808 may include any device that generates an audible indicator, such as speakers, headsets, or earbuds, for example.
[0110] The computing device 800 may include an audio input device 818 (or corresponding interface circuitry, as discussed above) . The audio input device 818 may include any device that generates a signal representative of a sound, such as microphones, microphone arrays, or digital instruments (e.g., instruments having a musical instrument digital interface (MIDI) output) .
[0111] The computing device 800 may include a GPS device 816 (or corresponding interface circuitry, as discussed above) . The GPS device 816 may be in communication with a satellite-based system and may receive a location of the computing device 800, as known in the art.
[0112] The computing device 800 may include a sensor 830 (or one or more sensors) . The computing device 800 may include corresponding interface circuitry, as discussed above) . Sensor 830 may sense physical phenomenon and translate the physical phenomenon into electrical signals that can be processed by, e.g., processing device 802. Examples of sensor 830 may include: capacitive sensor, inductive sensor, resistive sensor, electromagnetic field sensor, light sensor, camera, imager, microphone, pressure sensor, temperature sensor, vibrational sensor, accelerometer, gyroscope, strain sensor, moisture sensor, humidity sensor, distance sensor, range sensor, time-of-flight sensor, pH sensor, particle sensor, air quality sensor, chemical sensor, gas sensor, biosensor, ultrasound sensor, a scanner, etc.
[0113] The computing device 800 may include another output device 810 (or corresponding interface circuitry, as discussed above) . Examples of the other output device 810 may include an audio codec, a video codec, a printer, a wired or wireless transmitter for providing information to other devices, haptic output device, gas output device, vibrational output device, lighting output device, home automation controller, or an additional storage device.
[0114] The computing device 800 may include another input device 820 (or corresponding interface circuitry, as discussed above) . Examples of the other input device 820 may include an accelerometer, a gyroscope, a compass, an image capture device, a keyboard, a cursor control device such as a mouse, a stylus, a touchpad, a bar code reader, a Quick Response (QR) code reader, any sensor, or a radio frequency identification (RFID) reader.
[0115] The computing device 800 may have any desired form factor, such as a handheld or mobile computer system (e.g., a cell phone, a smart phone, a mobile Internet device, a music player, a tablet computer, a laptop computer, a netbook computer, a personal digital assistant (PDA) , a personal computer, a remote control, wearable device, headgear, eyewear, footwear, electronic clothing, etc. ) , a desktop computer system, a server or other networked computing component, a printer, a scanner, a monitor, a set-top box, an entertainment control unit, a vehicle control unit, a digital camera, a digital video recorder, an Internet-of-Things device, or a wearable computer system. In some embodiments, the computing device 800 may be any other electronic device that processes data.
[0116] 5elect examples
[0117] Example 1 provides a method, including receiving a first model including one or more first three-dimensional gaussians and a second model including one or more second three-dimensional gaussians; aligning the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians; identifying a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians; merging one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; and determining a pixel value based on the one or more merged properties.
[0118] Example 2 provides the method of example 1, where aligning the second model to the first model includes iteratively update a transformation estimate of the second model to increase a match score between the first model and the second model; and applying the transformation estimate to the one or more second three-dimensional gaussians to obtain the one or more second transformed three-dimensional gaussians.
[0119] Example 3 provides the method of example 1 or 2, where identifying the first conflicting gaussian and the second conflicting gaussian includes determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; and determining that the feature distance crosses a distance threshold.
[0120] Example 4 provides the method of example 3, where determining the feature distance includes determining an appearance feature distance quantifying appearance similarity between the first conflicting gaussian and the second conflicting gaussian.
[0121] Example 5 provides the method of example 4, where determining the appearance feature distance includes determining a color distance by calculating a sum of squares of one or more differences between one or more first spherical harmonic coefficients of the first conflicting gaussian and one or more second spherical harmonic coefficients of the second conflicting gaussian and calculating a square root of the sum of squares.
[0122] Example 6 provides the method of example 4 or 5, where determining the appearance feature distance includes determining an opacity distance by calculating an absolute difference between a first opacity value of the first conflicting gaussian and a second opacity value of the second conflicting gaussian.
[0123] Example 7 provides the method of any one of examples 4-6, where determining the appearance feature distance includes calculating a sum of a color distance and an opacity distance.
[0124] Example 8 provides the method of any one of examples 3-7, where determining the feature distance includes determining a geometry feature distance quantifying geometry similarity between the first conflicting gaussian and the second conflicting gaussian.
[0125] Example 9 provides the method of example 8, where determining the geometry feature distance includes determining a scale distance by calculating a Euclidean distance between a first scale factor of the first conflicting gaussian and a second scale factor of the second conflicting gaussian.
[0126] Example 10 provides the method of example 8 or 9, where determining the geometry feature distance includes determining a rotation quaternion distance by calculating an angle between a first quaternion of the first conflicting gaussian and a second quaternion of the second conflicting gaussian.
[0127] Example 11 provides the method of any one of examples 8-10, where determining the geometry feature distance includes calculating a sum of a scale distance and a rotation quaternion distance.
[0128] Example 12 provides the method of any one of examples 3-11, where determining the feature distance includes calculating a weighted sum of an appearance feature distance and a geometry feature distance.
[0129] Example 13 provides the method of any one of examples 1-12, where merging the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian to obtain the one or more merged properties includes determining a first one of the one or more merged properties by calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.
[0130] Example 14 provides the method of example 13, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray.
[0131] Example 15 provides the method of example 13 or 14, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray raised to a first power, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray raised to the first power.
[0132] Example 16 provides the method of example 15, where the first power is two.
[0133] Example 17 provides the method of any one of examples 1-16, where determining the pixel value includes blending the one or more merged properties with one or more properties of one or more two-dimensional splats that intersected a ray.
[0134] Example 18 provides one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to: receive a first model including one or more first three-dimensional gaussians and a second model including one or more second three-dimensional gaussians; align the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians; identify a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians; merge one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; and determine a pixel value based on the one or more merged properties.
[0135] Example 19 provides the one or more non-transitory computer-readable media of example 18, where aligning the second model to the first model includes iteratively update a transformation estimate of the second model to increase a match score between the first model and the second model; and applying the transformation estimate to the one or more second three-dimensional gaussians to obtain the one or more second transformed three-dimensional gaussians.
[0136] Example 20 provides the one or more non-transitory computer-readable media of example 18 or 19, where identifying the first conflicting gaussian and the second conflicting gaussian includes determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; and determining that the feature distance crosses a distance threshold.
[0137] Example 21 provides the one or more non-transitory computer-readable media of example 20, where determining the feature distance includes determining an appearance feature distance quantifying appearance similarity between the first conflicting gaussian and the second conflicting gaussian.
[0138] Example 22 provides the one or more non-transitory computer-readable media of example 21, where determining the appearance feature distance includes determining a color distance by calculating a sum of squares of one or more differences between one or more first spherical harmonic coefficients of the first conflicting gaussian and one or more second spherical harmonic coefficients of the second conflicting gaussian and calculating a square root of the sum of squares.
[0139] Example 23 provides the one or more non-transitory computer-readable media of example 21 or 22, where determining the appearance feature distance includes determining an opacity distance by calculating an absolute difference between a first opacity value of the first conflicting gaussian and a second opacity value of the second conflicting gaussian.
[0140] Example 24 provides the one or more non-transitory computer-readable media of any one of examples 21-23, where determining the appearance feature distance includes calculating a sum of a color distance and an opacity distance.
[0141] Example 25 provides the one or more non-transitory computer-readable media of any one of examples 20-24, where determining the feature distance includes determining a geometry feature distance quantifying geometry similarity between the first conflicting gaussian and the second conflicting gaussian.
[0142] Example 26 provides the one or more non-transitory computer-readable media of example 25, where determining the geometry feature distance includes determining a scale distance by calculating a Euclidean distance between a first scale factor of the first conflicting gaussian and a second scale factor of the second conflicting gaussian.
[0143] Example 27 provides the one or more non-transitory computer-readable media of example 25 or 26, where determining the geometry feature distance includes determining a rotation quaternion distance by calculating an angle between a first quaternion of the first conflicting gaussian and a second quaternion of the second conflicting gaussian.
[0144] Example 28 provides the one or more non-transitory computer-readable media of any one of examples 25-27, where determining the geometry feature distance includes calculating a sum of a scale distance and a rotation quaternion distance.
[0145] Example 29 provides the one or more non-transitory computer-readable media of any one of examples 20-28, where determining the feature distance includes calculating a weighted sum of an appearance feature distance and a geometry feature distance.
[0146] Example 30 provides the one or more non-transitory computer-readable media of any one of examples 18-29, where merging the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian to obtain the one or more merged properties includes determining a first one of the one or more merged properties by calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.
[0147] Example 31 provides the one or more non-transitory computer-readable media of example 30, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray.
[0148] Example 32 provides the one or more non-transitory computer-readable media of example 30 or 31, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray raised to a first power, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray raised to the first power.
[0149] Example 33 provides the one or more non-transitory computer-readable media of example 32, where the first power is two.
[0150] Example 34 provides the one or more non-transitory computer-readable media of any one of examples 18-33, where determining the pixel value includes blending the one or more merged properties with one or more properties of one or more two-dimensional splats that intersected a ray.
[0151] Example 35 provides an apparatus including one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to: receive a first model including one or more first three-dimensional gaussians and a second model including one or more second three-dimensional gaussians; align the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians; identify a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians; merge one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; and determine a pixel value based on the one or more merged properties.
[0152] Example 36 provides the apparatus of example 35, where aligning the second model to the first model includes iteratively update a transformation estimate of the second model to increase a match score between the first model and the second model; and applying the transformation estimate to the one or more second three-dimensional gaussians to obtain the one or more second transformed three-dimensional gaussians.
[0153] Example 37 provides the apparatus of example 35 or 36, where identifying the first conflicting gaussian and the second conflicting gaussian includes determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; and determining that the feature distance crosses a distance threshold.
[0154] Example 38 provides the apparatus of example 37, where determining the feature distance includes determining an appearance feature distance quantifying appearance similarity between the first conflicting gaussian and the second conflicting gaussian.
[0155] Example 39 provides the apparatus of example 38, where determining the appearance feature distance includes determining a color distance by calculating a sum of squares of one or more differences between one or more first spherical harmonic coefficients of the first conflicting gaussian and one or more second spherical harmonic coefficients of the second conflicting gaussian and calculating a square root of the sum of squares.
[0156] Example 40 provides the apparatus of example 38 or 39, where determining the appearance feature distance includes determining an opacity distance by calculating an absolute difference between a first opacity value of the first conflicting gaussian and a second opacity value of the second conflicting gaussian.
[0157] Example 41 provides the apparatus of any one of examples 38-40, where determining the appearance feature distance includes calculating a sum of a color distance and an opacity distance.
[0158] Example 42 provides the apparatus of any one of examples 37-41, where determining the feature distance includes determining a geometry feature distance quantifying geometry similarity between the first conflicting gaussian and the second conflicting gaussian.
[0159] Example 43 provides the apparatus of example 42, where determining the geometry feature distance includes determining a scale distance by calculating a Euclidean distance between a first scale factor of the first conflicting gaussian and a second scale factor of the second conflicting gaussian.
[0160] Example 44 provides the apparatus of example 42 or 43, where determining the geometry feature distance includes determining a rotation quaternion distance by calculating an angle between a first quaternion of the first conflicting gaussian and a second quaternion of the second conflicting gaussian.
[0161] Example 45 provides the apparatus of any one of examples 42-44, where determining the geometry feature distance includes calculating a sum of a scale distance and a rotation quaternion distance.
[0162] Example 46 provides the apparatus of any one of examples 37-45, where determining the feature distance includes calculating a weighted sum of an appearance feature distance and a geometry feature distance.
[0163] Example 47 provides the apparatus of any one of examples 35-46, where merging the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian to obtain the one or more merged properties includes determining a first one of the one or more merged properties by calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.
[0164] Example 48 provides the apparatus of example 47, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray.
[0165] Example 49 provides the apparatus of example 47 or 48, where the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray raised to a first power, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray raised to the first power.
[0166] Example 50 provides the apparatus of example 49, where the first power is two.
[0167] Example 51 provides the apparatus of any one of examples 35-50, where determining the pixel value includes blending the one or more merged properties with one or more properties of one or more two-dimensional splats that intersected a ray.
[0168] Example A provides an apparatus comprising means to carry out or means for carrying out any one of the methods provided in examples 1-17 and methods / processes described herein.
[0169] Example B provides a 3DGS system as described herein.
[0170] Example C provides the 3DGS system of example B, where trained models are produced using a plurality of GPUs.
[0171] Example D provides align models 304 as described herein.
[0172] Example E provides identify conflicting gaussian pairs 306 as described herein.
[0173] Example F provides rendering with conflicting gaussian pair merging 308 as described herein.
[0174] Variations and other notes
[0175] Although the operations of the example method shown in and described with reference to FIGS. 3-7 are illustrated as occurring once each and in a particular order, it will be recognized that the operations may be performed in any suitable order and repeated as desired. Additionally, one or more operations may be performed in parallel. Furthermore, the operations illustrated in FIGS. 3-7 may be combined or may include more or fewer details than described.
[0176] The above description of illustrated implementations of the disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. While specific implementations of, and examples for, the disclosure are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize. These modifications may be made to the disclosure in light of the above detailed description.
[0177] For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the illustrative implementations. However, it will be apparent to one skilled in the art that the present disclosure may be practiced without the specific details and / or that the present disclosure may be practiced with only some of the described aspects. In other instances, well known features are omitted or simplified in order not to obscure the illustrative implementations.
[0178] Further, references are made to the accompanying drawings that form a part hereof, and in which are shown, by way of illustration, embodiments that may be practiced. It is to be understood that other embodiments may be utilized, and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense.
[0179] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the disclosed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order from the described embodiment. Various additional operations may be performed or described operations may be omitted in additional embodiments.
[0180] For the purposes of the present disclosure, the phrase “A or B” or the phrase "A and / or B" means (A) , (B) , or (A and B) . For the purposes of the present disclosure, the phrase “A, B, or C” or the phrase "A, B, and / or C" means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B, and C) . The term "between, " when used with reference to measurement ranges, is inclusive of the ends of the measurement ranges.
[0181] The description uses the phrases "in an embodiment" or "in embodiments, " which may each refer to one or more of the same or different embodiments. The terms "comprising, " "including, " "having, " and the like, as used with respect to embodiments of the present disclosure, are synonymous. The disclosure may use perspective-based descriptions such as "above, " "below, " "top, " "bottom, " and "side" to explain various features of the drawings, but these terms are simply for ease of discussion, and do not imply a desired or required orientation. The accompanying drawings are not necessarily drawn to scale. Unless otherwise specified, the use of the ordinal adjectives “first, ” “second, ” and “third, ” etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.
[0182] In the following detailed description, various aspects of the illustrative implementations will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art.
[0183] The terms “substantially, ” “close, ” “approximately, ” “near, ” and “about, ” generally refer to being within + / -20%of a target value as described herein or as known in the art. Similarly, terms indicating orientation of various elements, e.g., “coplanar, ” “perpendicular, ” “orthogonal, ” “parallel, ” or any other angle between the elements, generally refer to being within + / -5-20%of a target value as described herein or as known in the art.
[0184] In addition, the terms “comprise, ” “comprising, ” “include, ” “including, ” “have, ” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a method, process, or device, that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such method, process, or device. Also, the term “or” refers to an inclusive “or” and not to an exclusive “or. ”
[0185] The systems, methods and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for all desirable attributes disclosed herein. Details of one or more implementations of the subject matter described in this specification are set forth in the description and the accompanying drawings.
Claims
1.A method, comprising:receiving a first model comprising one or more first three-dimensional gaussians and a second model comprising one or more second three-dimensional gaussians;aligning the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians;identifying a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians;merging one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; anddetermining a pixel value based on the one or more merged properties.2.The method of claim 1, wherein aligning the second model to the first model comprises:iteratively update a transformation estimate of the second model to increase a match score between the first model and the second model; andapplying the transformation estimate to the one or more second three-dimensional gaussians to obtain the one or more second transformed three-dimensional gaussians.3.The method of claim 1, wherein identifying the first conflicting gaussian and the second conflicting gaussian comprises:determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; anddetermining that the feature distance crosses a distance threshold.4.The method of claim 3, wherein determining the feature distance comprises:determining a color distance by calculating a sum of squares of one or more differences between one or more first spherical harmonic coefficients of the first conflicting gaussian and one or more second spherical harmonic coefficients of the second conflicting gaussian and calculating a square root of the sum of squares.5.The method of claim 3, wherein determining the feature distance comprises:determining an opacity distance by calculating an absolute difference between a first opacity value of the first conflicting gaussian and a second opacity value of the second conflicting gaussian.6.The method of claim 3, wherein determining the feature distance comprises:determining a scale distance by calculating a Euclidean distance between a first scale factor of the first conflicting gaussian and a second scale factor of the second conflicting gaussian.7.The method of claim 3, wherein determining the feature distance comprises:determining a rotation quaternion distance by calculating an angle between a first quaternion of the first conflicting gaussian and a second quaternion of the second conflicting gaussian.8.The method of claim 1, wherein merging the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian to obtain the one or more merged properties comprises:determining a first one of the one or more merged properties by calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.9.The method of claim 8, wherein the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray.10.The method of claim 8, wherein the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray raised to a first power, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray raised to the first power.11.One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:receive a first model comprising one or more first three-dimensional gaussians and a second model comprising one or more second three-dimensional gaussians;align the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians;identify a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians;merge one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; anddetermine a pixel value based on the one or more merged properties.12.The one or more non-transitory computer-readable media of claim 11, wherein aligning the second model to the first model comprises:iteratively update a transformation estimate of the second model to increase a match score between the first model and the second model; andapplying the transformation estimate to the one or more second three-dimensional gaussians to obtain the one or more second transformed three-dimensional gaussians.13.The one or more non-transitory computer-readable media of claim 11, wherein identifying the first conflicting gaussian and the second conflicting gaussian comprises:determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; anddetermining that the feature distance crosses a distance threshold.14.The one or more non-transitory computer-readable media of claim 13, wherein determining the feature distance comprises:determining an appearance feature distance quantifying appearance similarity between the first conflicting gaussian and the second conflicting gaussian; anddetermining a geometry feature distance quantifying geometry similarity between the first conflicting gaussian and the second conflicting gaussian.15.The one or more non-transitory computer-readable media of claim 14, wherein determining the feature distance comprises calculating a weighted sum of the appearance feature distance and the geometry feature distance.16.An apparatus comprising:one or more processors; andone or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to:receive a first model comprising one or more first three-dimensional gaussians and a second model comprising one or more second three-dimensional gaussians;align the second model to the first model to obtain an integrated model having the one or more first three-dimensional gaussians and one or more second transformed three-dimensional gaussians;identify a first conflicting gaussian selected from the one or more first three-dimensional gaussians and a second conflicting gaussian selected from the one or more second transformed three-dimensional gaussians;merge one or more first properties of the first conflicting gaussian and one or more second properties of the second conflicting gaussian to obtain one or more merged properties; anddetermine a pixel value based on the one or more merged properties.17.The apparatus of claim 16, wherein identifying the first conflicting gaussian and the second conflicting gaussian comprises:determining a feature distance quantifying similarity between the first conflicting gaussian and the second conflicting gaussian; anddetermining that the feature distance crosses a distance threshold.18.The apparatus of claim 16, wherein merging the one or more first properties of the first conflicting gaussian and the one or more second properties of the second conflicting gaussian to obtain the one or more merged properties comprises:determining a first one of the one or more merged properties by calculating a weighted sum of a first one of the one or more first properties of the first conflicting gaussian and a first one of the one or more second properties of the second conflicting gaussian using a first weight corresponding to the first conflicting gaussian and a second weight corresponding to the second conflicting gaussian.19.The apparatus of claim 18, wherein the first weight is inversely related to a first distance of the first conflicting gaussian to an origin of a ray, and the second weight is inversely related to a second distance of the second conflicting gaussian to the origin of the ray.20.The apparatus of claim 16, wherein determining the pixel value comprises:blending the one or more merged properties with one or more properties of one or more two-dimensional splats that intersected a ray.
Citation Information
Patent Citations
Image rendering method and device based on three-dimensional Gaussian model segmentation
CN118229859A
Image rendering method, image rendering device and computer readable storage medium
CN118505872A
Large-scene high-fidelity live-action three-dimensional modeling method capable of realizing unbounded expansion
CN118608706A
Image aligning neural network
US20210133990A1