A method for quickly displaying POI information of a three-dimensional real scene model
By analyzing the motion state of the virtual camera and the scene sampling distance in the preset neighborhood window, the occlusion distance is calculated and corrected, which solves the problem of unstable POI information display in the existing technology and realizes efficient and accurate display of POI information in the 3D real scene model.
Patent Information
- Application Number
- CN202610403802.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-03-30
- Publication Date
- 2026-06-26
AI Technical Summary
Existing technologies cannot maintain sensitivity to solid occlusion while tolerating discrete occlusion, resulting in unstable and inaccurate display of POI information in 3D reality models.
By acquiring the rotation angle rate of the virtual camera and the scene sampling distance in the preset neighborhood window, the occlusion distance is calculated and corrected using discrete suppression weights. Combining the occlusion correction distance and the state update cost, the display state of the POI is dynamically adjusted.
It improves the stability and accuracy of POI information display, reduces visual flicker caused by high-speed movement and discrete occlusion, and achieves efficient and accurate display of POI information in complex scenes.
Smart Images

Figure CN122289505A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of 3D geometric modeling engine technology, specifically to a method for quickly displaying POI information of a 3D real-world model. Background Technology
[0002] When constructing a city-level digital twin foundation, oblique photogrammetry models and laser point cloud models are widely used. This type of real-world 3D data, in recreating the real world, retains complex geometric surface features, mainly falling into two typical structures: one is a solid structure with continuous surfaces (such as building walls and roofs), and the other is a discrete structure composed of numerous fragmented geometric shapes (such as tree canopies, fences, and scaffolding). When the system needs to overlay and display POI tags in such scenes, how to control the visibility of the tags in real time based on occlusion relationships is crucial to the accuracy of information transmission.
[0003] Existing occlusion culling methods primarily rely on the depth buffer of graphics hardware for depth testing, comparing the depth value at the POI's projected location with the scene's rendered depth at that point. However, this method, based on comparing single-pixel values, has significant technical limitations when dealing with real-world 3D data: First, geometric reconstruction errors on the surface of the real-world model and the non-linear precision distribution of the depth buffer can lead to random noise in pixel depth values. For critical solid occlusion areas such as building edges, this noise can cause incorrect perspective judgments. Second, discrete occlusion structures such as vegetation contain numerous tiny depth jumps. When the viewpoint moves slightly, the sampling point switches frequently between leaves (near depth) and gaps (far depth), causing POI tags to jump drastically between displayed and hidden states, resulting in visual flickering. Existing technologies cannot maintain sensitivity to solid occlusion while tolerating discrete occlusion, making it difficult to accurately and stably display POI information. Summary of the Invention
[0004] To address the technical problem that existing technologies cannot maintain sensitivity to solid occlusion while tolerating discrete occlusion, thus making it difficult to accurately and stably display POI information, the present invention aims to provide a method for rapidly displaying POI information from 3D reality models. The specific technical solution adopted is as follows: Obtain the rotation angle rate of the virtual camera at each time step; at each time step, within the preset neighborhood window of each POI, obtain the window state, the set of scene sampling distances from all pixels to the virtual camera, and the target reference distance from the POI to the virtual camera; The occlusion distance of each POI is obtained by comparing the difference between the target baseline distance and the corresponding scene sampling distance in the scene sampling distance set; the discrete suppression weight is determined based on the spatial distribution of all scene sampling distances in the scene sampling distance set; the occlusion correction distance is determined by using the discrete suppression weight; For each preset neighborhood window at any given time, iterate through and update all window states, and combine the occlusion correction distance to determine the set of state update costs for all state updates at each time. Then, determine the window state at the next time step based on the costs in the set of state update costs and the rotation angle rate. Display the POI information for each time step based on the window status at each time step.
[0005] Furthermore, the method for obtaining the occlusion distance includes: Within a preset neighborhood window, the scene sampling distance at the center point of the preset neighborhood window is obtained as the target sampling distance; the reference occlusion distance is determined based on the deviation between the target sampling distance and the target reference distance; and the occlusion distance is determined based on the magnitude of the reference occlusion distance.
[0006] Furthermore, the method for determining the occlusion distance includes: If the reference occlusion distance is greater than the preset occlusion threshold, then the reference occlusion distance will be used as the occlusion distance. If the reference occlusion distance is less than or equal to the preset occlusion threshold, then the preset occlusion threshold will be used as the occlusion distance.
[0007] Furthermore, the method for obtaining the discrete suppression weights includes: Within a preset neighborhood window, the scene distance fluctuation value is determined based on the discreteness of all scene sampling distances in the scene sampling distance set; the depth correlation coefficient is determined based on the spatial autocorrelation of all scene sampling distances in the scene sampling distance set. If the scene distance fluctuation value is less than the preset fluctuation threshold, then the positive integer 0 will be used as the discrete suppression weight. If the scene distance fluctuation value is greater than or equal to the preset fluctuation threshold, the depth correlation coefficient will be used as the discrete suppression weight.
[0008] Furthermore, the method for obtaining the scene distance fluctuation value includes: Within a preset neighborhood window, the variance of all scene sampling distances in the scene sampling distance set is calculated and used as the scene distance fluctuation value.
[0009] Furthermore, the method for obtaining the depth correlation coefficient includes: Within a preset neighborhood window, the Moran index of all scene sampling distances in the scene sampling distance set is statistically analyzed, and the Moran index is standardized to obtain the depth correlation coefficient.
[0010] Furthermore, the method for obtaining the occlusion correction distance includes: The standard deviation of the sampling distances of all scenes in the statistical scene sampling distance set is used to perform a negative correlation mapping between the standard deviation, the preset structure sensitivity coefficient and the discrete suppression weight, and to determine the weighting coefficient; the product of the weighting coefficient and the occlusion distance is used as the occlusion correction distance.
[0011] Furthermore, the process of obtaining the state update cost set includes: Based on the occlusion correction distance at each time step and the window state change between the current time step and the next time step, the state update cost for each state update at each time step is determined; all state update costs constitute the state update cost set.
[0012] Furthermore, the method for obtaining the state update cost includes: The window state includes a displayed state and a hidden state; each moment is taken as the target moment, and the next moment after the target moment is taken as the reference moment; When the window state at the target time is in the display state and the window state at the reference time is in the display state, the occlusion correction distance at the target time is used as the state update cost at the target time. When the window state at the target time is hidden and the window state at the reference time is displayed, the sum of the occlusion correction distance at the target time and the preset state switching cost is used as the state update cost at the target time. When the window state at the target time is hidden and the window state at the reference time is also hidden, the preset information loss cost is used as the state update cost at the target time. When the window is in the display state at the target time and the window is in the hidden state at the reference time, the sum of the preset information loss cost and the preset state switching cost is used as the state update cost at the target time.
[0013] Furthermore, the method for obtaining the window state at the next moment includes: If the rotation angle rate is greater than the preset rate threshold, then the window state at each moment will be used as the window state at the next moment. If the rotation angle rate is less than or equal to the preset rate threshold, then the updated window state corresponding to the state update with the lowest state update cost is selected from the state update cost set and used as the window state for the next moment.
[0014] The present invention has the following beneficial effects: This invention first analyzes the motion state of the virtual camera, utilizing the persistence of vision to reuse historical states during high-speed motion, effectively reducing screen jumps caused by high-speed sampling aliasing. Second, it obtains the original occlusion distance of each Point of Interest (POI), accurately quantifying the physical depth difference between the POI and the scene geometry. Then, by analyzing the spatial distribution within a preset neighborhood window, it obtains discrete suppression weights to correct the original occlusion distance, adaptively distinguishing between solid and discrete structures. While maintaining high sensitivity to building edge occlusion, it significantly reduces sensitivity to vegetation pore depth noise. Finally, based on the occlusion correction distance, it constructs the state update cost for all state updates, introducing hysteresis decision logic to set a potential energy threshold for switching display states, effectively reducing visual flickering of POIs in depth-critical regions and significantly improving the stability and accuracy of POI display. Attached Figure Description
[0015] To more clearly illustrate the technical solutions and advantages in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0016] Figure 1 This is a flowchart illustrating a method for rapidly displaying POI information of a 3D real-world model, as provided in one embodiment of the present invention. Detailed Implementation
[0017] To further illustrate the technical means and effects adopted by the present invention to achieve its intended purpose, the following, in conjunction with the accompanying drawings and preferred embodiments, details the specific implementation, structure, features, and effects of a method for rapidly displaying POI information of a three-dimensional real-scene model according to the present invention. In the following description, different "one embodiment" or "another embodiment" do not necessarily refer to the same embodiment. Furthermore, specific features, structures, or characteristics in one or more embodiments can be combined in any suitable form.
[0018] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains.
[0019] The following description, in conjunction with the accompanying drawings, details a specific scheme for a method of rapidly displaying POI information of a three-dimensional real-scene model provided by the present invention.
[0020] Please see Figure 1 The diagram illustrates a method flowchart for rapidly displaying POI information of a 3D reality model according to an embodiment of the present invention. The method includes: Step S101: Obtain the rotation angle rate of the virtual camera at each time step; at each time step, in the preset neighborhood window of each POI, obtain the window state, the set of scene sampling distances from all pixels to the virtual camera, and the target reference distance from the POI to the virtual camera.
[0021] Due to the persistence of vision effect in the human eye, the visual system naturally produces dynamic visual blurring when viewing fast-moving images. This means the eye becomes less sensitive to specific occlusion details. Conversely, when viewing slowly moving images, the eye focuses on the details, indicating fine observation. Therefore, the human eye's observation state differs depending on the motion state of the image. To quantify the intensity of motion at the current viewpoint, it is necessary to obtain the motion state of the virtual camera in the 3D reality model at each moment. The motion state of the virtual camera is closely related to the human eye's observation state: the more intense the virtual camera's motion, the faster the image moves, and the less detailed the human eye's observation; conversely, the smoother the virtual camera's motion, the slower the image moves, and the more detailed the human eye's observation. Therefore, the motion state index of the virtual camera can accurately assess and adapt to the visual perception characteristics of the human eye in different motion scenarios, providing support for the subsequent display logic based on the human eye's observation characteristics. In this embodiment of the invention, the motion state index uses the rotation angle rate.
[0022] In a 3D reality model, the larger the angle through which the virtual camera rotates per unit time, the more intense the motion; conversely, the smaller the angle through which the virtual camera rotates per unit time, the smoother the motion. In other words, the rate of change of the virtual camera's view frustum orientation can intuitively reflect the motion state of the virtual camera at each moment, objectively quantifying the state perceived by the human eye.
[0023] In one specific implementation of this invention, the process of obtaining the rotation angle rate of the virtual camera at each moment is as follows: First, in the rendering loop of each frame, the system reads the rotation quaternion of the current rendering frame (denoted as time t) from the rendering engine component, denoted as... Simultaneously, the system maintains a state cache, which stores the previous rendering frame (denoted as time). Rotation quaternions Secondly, calculate the dot product of the two quaternions. : ,in, , , and This represents the value of the rotation quaternion for the current rendered frame. , , and This represents the value of the rotation quaternion from the previous rendered frame; it is used to handle the double-overlay property of quaternions (i.e. and (representing the same rotation), take the absolute value of the dot product, denoted as . If the absolute value of the dot product is greater than a positive integer 1, then the value of the corresponding absolute value of the dot product is set to a positive integer 1 to ensure the stability of subsequent calculations; then, the rotation angle is calculated based on the inverse cosine function. : Finally, consider the rendering time interval between two frames. (i.e., frame generation time), calculate the rotation rate of the virtual camera. : The unit of this rotational angle rate is radians per second (rad / s), which directly reflects how fast the camera's line of sight sweeps across the scene.
[0024] On the one hand, analyzing each POI individually cannot accurately distinguish the geometric structure (i.e., whether it is a solid structure or a discrete structure) of the occluders on each POI, and individual POIs are too sensitive to noise. On the other hand, as the virtual camera moves continuously, the relative position between each POI and the virtual camera changes constantly, causing the occluders of the POIs to also change continuously. Therefore, in order to achieve accurate analysis of POI occlusion, it is necessary to construct a preset neighborhood window that includes the POI based on the spatial location of each POI. This window can accurately capture and represent the local geometric features and dynamic occlusion environment of each POI, providing a data analysis basis for subsequent differentiation between solid and discrete occlusion.
[0025] Due to the uniqueness of the line-of-sight path, each POI corresponds to a unique line of sight originating from the virtual camera and passing through the POI. Constructing a pre-defined neighborhood window centered on the pixel spatial coordinates of each POI ensures that the analysis location is at the core of the occlusion. If a pre-defined neighborhood window is constructed with a randomly offset center, the sampling area will deviate from the actual line-of-sight path where occlusion occurs, making the analysis object an irrelevant background or gap, leading to misjudgment of the results. Therefore, using the pixel spatial coordinates of the POI as the center can avoid introducing unnecessary deviations and improve the accuracy of subsequent calculations.
[0026] In one specific implementation of this invention, the process of constructing the preset neighborhood window is as follows: First, the system reads the world coordinates of the POI in the 3D reality model. Through standard graphics pipeline transformations (world coordinates) View coordinates Clipping coordinates Perspective division (Viewport transformation) to calculate the pixel space coordinates of the POI in the current screen space. Then, using the integer part of the pixel space coordinates as the center, construct a [structure / structure] on the screen depth buffer. A rectangular region (e.g., N=3) is defined as the preset neighborhood window. Choosing the integer part of the pixel space coordinates as the center ensures precise alignment between the preset neighborhood window and the pixel grid of the depth buffer. This is because the depth buffer is a two-dimensional array in memory, with each element storing a raw depth value. The array index corresponds to the integer space coordinates of the screen; therefore, only integer coordinates can accurately locate a specific storage unit in the depth buffer. The value of N is 3, chosen based on the graphics hardware (GPU) texture sampling efficiency, aiming to balance computational efficiency and feature capture capability. In actual implementation, this value can be set according to the specific implementation scenario and is not limited here. It should be noted that graphics pipeline transformations are well-known techniques to those skilled in the art and will not be elaborated upon here.
[0027] The reason for converting the world coordinates of POIs in the 3D reality model to pixel space coordinates in the current screen space is that in the 3D reality space, the position of each POI is fixed, that is, the 3D world coordinates of each POI are fixed. However, during the movement of the virtual camera, the position of the POI relative to the camera will change. At this time, using the fixed 3D world coordinates will produce a large deviation. Therefore, it is necessary to transform the 3D world coordinates into pixel space coordinates in the camera coordinate system. This can convert the absolute position of the POI into a unified reference relative to the current camera viewpoint, and accurately represent the instantaneous visual position of the POI in each frame.
[0028] First, whether a POI is occluded depends on whether there is an obstruction between the POI and the virtual camera, and the depth of the obstruction. If an obstruction exists, and the greater the obstruction, the more likely the POI is hidden. If there is no obstruction, or if an obstruction exists but the obstruction is shallow, the POI is likely visible. Second, since the raw depth data in the graphics rendering pipeline is non-linear (i.e., extremely high precision at near distances and extremely low precision at far distances), it cannot be directly used for subsequent spatial statistical analysis. Therefore, it is necessary to obtain the target reference distance between each POI and the virtual camera, as well as the scene sampling distance between each pixel in the preset neighborhood window and the virtual camera. This allows us to represent the actual straight-line distance between the POI and the virtual camera, and the actual straight-line distance between the obstruction and the virtual camera, providing a unified linear distance benchmark for analyzing local structural features.
[0029] As an example, in a specific implementation of this invention, the process of obtaining the scene sampling distance set and the target reference distance is as follows: For the scene sampling distance set: the system first obtains the perspective projection matrix of the virtual camera at the current moment; secondly, it iterates through each pixel in the preset neighborhood window. Read the raw depth value from its raw depth buffer. This value is within the range The depth values are distributed non-linearly (extremely high accuracy at near distances and extremely low accuracy at far distances). Then, the inverse transformation formula of the projection matrix is used to convert the original depth value of each pixel into the scene sampling distance in the camera coordinate system. For a standard perspective projection matrix, the inverse transformation formula is: ,in, This represents the scene sampling distance (in meters) of the i-th pixel in the preset neighborhood window. This indicates the distance to the near-cropping plane of the virtual camera (e.g., 0.1 meters). This indicates the distance from the virtual camera to the far clipping plane (e.g., 1000 meters). This represents the original depth value of the i-th pixel in the original depth buffer within the preset neighborhood window. Finally, the scene sampling distance of each pixel in the preset neighborhood window is calculated to construct a scene sampling distance set, where each value represents the actual straight-line distance (in meters) between the corresponding pixel and the virtual camera. For the target reference distance: the system obtains the view matrix M of the virtual camera at the current moment, and the world coordinates of the POI in the 3D reality model. The coordinates of the POI in view space are calculated using matrix multiplication: ,in, Represents the coordinates of the POI in view space; This represents the transformed world coordinates of a Point of Interest (POI) in a 3D reality model, expressed as a single coordinate. The matrix M, where a positive integer 1 is set and the transpose operation is intended to ensure that the view matrix M ( (the matrix) and the item To ensure the stability of product operations between matrix multiplication tables and avoid subsequent calculations being impossible due to non-compliance with matrix multiplication requirements; after calculating... Then, the first three components are extracted as the coordinates of the POI in the view space, denoted as... ; The absolute value of the Z component of the POI in the view space coordinates (i.e. The target reference distance (in meters) is used for each POI; the absolute value is taken to ensure that the distance is positive, and the Z component is taken to ensure that the target reference distance coincides with the viewing direction of the virtual camera. This is because in the view space (also known as camera space), the Z axis coincides with the viewing direction of the virtual camera (i.e., the line of sight of the human eye).
[0030] Step S102: Compare the difference between the target reference distance and the corresponding scene sampling distance in the scene sampling distance set to obtain the occlusion distance of each POI; determine the discrete suppression weight based on the spatial distribution of all scene sampling distances in the scene sampling distance set; use the discrete suppression weight to correct the occlusion distance and determine the occlusion correction distance.
[0031] Since only pixels on the straight line between the POI and the virtual camera actually occlude the POI, it is necessary to obtain the scene sampling distance at the pixel position corresponding to the POI in the preset neighborhood window. Based on the difference between the target reference distance and the corresponding scene sampling distance in the scene sampling distance set, an actual occlusion distance can be determined, which can represent the physical thickness of the POI being occluded.
[0032] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the occlusion distance includes: Within a preset neighborhood window, the scene sampling distance at the center point of the preset neighborhood window is obtained as the target sampling distance; a reference occlusion distance is determined based on the deviation between the target sampling distance and the target reference distance; and the occlusion distance is determined based on the magnitude of the reference occlusion distance. Specifically: if the reference occlusion distance is greater than a preset occlusion threshold, the reference occlusion distance is used as the occlusion distance; if the reference occlusion distance is less than or equal to the preset occlusion threshold, the preset occlusion threshold is used as the occlusion distance.
[0033] In one specific implementation of this invention, the preset occlusion threshold is set to 0.
[0034] During the construction of the preset neighborhood window, the pixel spatial coordinates of the POI are used as the center of the preset neighborhood window. Therefore, the pixel that actually occludes the POI is the pixel at the center of the preset neighborhood window. The scene sampling distance at the center of the preset neighborhood window is obtained. This scene sampling distance is used as the target sampling distance to represent the real straight-line distance (in meters) between the occluder and the virtual camera on the occlusion path between the virtual camera and the POI. The target reference distance represents the real straight-line distance between the POI and the virtual camera. Therefore, the difference between the target reference distance and the target sampling distance represents the distance occluded by the occluder, that is, the distance between the POI and the occluder.
[0035] In one specific implementation of this invention, the occlusion distance is calculated using the following formula: ,in, Indicates the occlusion distance; max() represents the function to find the maximum value; Indicates the target reference distance; This represents the scene sampling distance at the center point of the preset neighborhood window, i.e., the target sampling distance; This represents a preset constant with a value of 0.1 meters; 0 represents a preset occlusion threshold value; where, This value may be negative, which means that the occluder is not on the path between the POI and the virtual camera, i.e., it is not occluded. The max() function can limit the negative value to the preset occlusion threshold of 0. The occlusion distance represents the physical thickness of the occluded POI (in meters), which can accurately quantify the geometric occlusion thickness. If the result is 0, it means that the POI is not occluded.
[0036] The purpose of the preset constant is to eliminate minor misjudgments caused by depth errors. This is because when the POI is very close to or even completely overlaps with the occluder, the rendering engine cannot reliably determine which pixel should occlude another at the pixel level due to the limited floating-point precision of the depth buffer. This causes the pixel color to flicker at high frequency with the slight movement of the viewpoint. The preset constant can amplify the distance between the POI and the occluder to the bottom that the rendering engine can recognize, and can transform the small occlusion distance into a stable and clear occlusion distance, ensuring the stability of the subsequent decision-making process at the critical point.
[0037] In real-world 3D models, there are two types of occlusion structures: one is continuous solid surface edges (such as wall edges) that occlude POIs, and the other is discrete broken surfaces (such as leaves or fences) that occlude POIs. Although both types of occlusions serve an occlusion function, their occlusion effects differ. For discrete broken surfaces, the presence of numerous tiny deep gaps within them causes the occlusion distance to fluctuate frequently between maximum and minimum values, resulting in high-frequency flickering of POI tags. Therefore, to quantify the degree of fragmentation of occluders, the spatial distribution of the scene sampling distance set can be analyzed to represent the degree of fragmentation. The more disordered the spatial distribution of the scene sampling distance set, the more fragmented and discrete the surface of the occluder. Conversely, the more ordered and regular the spatial distribution of the scene sampling distance set, the more continuous and solid the surface of the occluder. Thus, a discrete suppression weight can be determined based on the spatial distribution, accurately representing the degree of discreteness of the occluder surface. This helps to fundamentally eliminate the flickering problem of POI tags caused by discrete objects such as vegetation and fences, laying the foundation for a highly stable visual experience.
[0038] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the discrete suppression weights includes: Within a preset neighborhood window, the scene distance fluctuation value is determined based on the discreteness of all scene sampling distances in the scene sampling distance set; the depth correlation coefficient is determined based on the spatial autocorrelation of all scene sampling distances in the scene sampling distance set. If the scene distance fluctuation value is less than the preset fluctuation threshold, then the positive integer 0 will be used as the discrete suppression weight. If the scene distance fluctuation value is greater than or equal to the preset fluctuation threshold, the depth correlation coefficient will be used as the discrete suppression weight.
[0039] There are significant differences in the geometric topology of solid and discrete structures. Solid structures exhibit stronger autocorrelation on their surfaces, indicating a smaller degree of fragmentation of the occluder. Discrete structures exhibit weaker autocorrelation on their surfaces, indicating a more severe degree of fragmentation of the occluder. By analyzing the spatial autocorrelation of all scene sampling distances in the scene sampling distance set, a depth correlation coefficient is determined. Through standardization, a discrete suppression weight is obtained, which can represent the degree of fragmentation of the occluder surface. Since the discreteness of all scene sampling distances in the scene sampling distance set can directly reflect the spatial distribution of occluders, i.e., the more discrete, the weaker the spatial autocorrelation, and the more clustered, the stronger the spatial autocorrelation, a scene distance fluctuation value is determined by the discreteness. The scene distance fluctuation value is compared with a preset fluctuation threshold. If it is greater than the preset fluctuation threshold, it indicates that its spatial autocorrelation is high, and the positive integer 0 is directly used as the discrete suppression weight. Conversely, if it is less than or equal to the preset fluctuation threshold, it indicates that its spatial autocorrelation is weak. At this time, the depth correlation coefficient is calculated based on the spatial autocorrelation to determine the discrete suppression weight.
[0040] In one specific implementation of this invention, the preset fluctuation threshold is set as follows: When the scene fluctuation value is less than When the value is 0, it indicates that the occluded area is absolutely flat and the depth value does not change, indicating complete autocorrelation.
[0041] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the scene distance fluctuation value includes: Within a preset neighborhood window, the variance of all scene sampling distances in the scene sampling distance set is calculated and used as the scene distance fluctuation value.
[0042] To quantify the geometric roughness of the occluded surface, the variance of all scene sampling distances in the scene sampling distance set is calculated. This variance has the following physical meaning: when it is extremely small (approaching 0), it indicates that the sampling area is very flat; when it is large, it indicates that the depth of the sampling area fluctuates drastically. This may correspond to two situations: one is the physical edge of a solid structure, such as the undulating edge of a building wall; the other is a discrete structure, such as the gaps between the leaves of vegetation. Using this variance as a scene distance fluctuation value can provide a key statistical feature to distinguish between the two depth jump modes of solid structure edges and discrete broken surfaces.
[0043] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the deep correlation coefficient includes: Within a preset neighborhood window, the Moran index of all scene sampling distances in the scene sampling distance set is statistically analyzed, and the Moran index is standardized to obtain the depth correlation coefficient.
[0044] To quantitatively measure the spatial autocorrelation of depth values within a preset neighborhood window, and thus transform the visual structural feature of whether a surface is continuous and solid or discrete and fragmented into a calculable and comparable numerical index, the Moran's index of all scene sampling distances in the scene sampling distance set is calculated. A larger Moran's index indicates stronger spatial autocorrelation, and vice versa. Therefore, this embodiment of the invention first defines the spatial adjacency relationship between pixels, targeting... The default neighborhood window uses the Queen Contiguity rule: for any two pixels within the window... and If they are spatially contiguous or share a common edge (i.e., the 8 neighboring pixels surrounding the center pixel), then a pixel is defined. and Spatial weights between ,otherwise ; Calculate the sum of spatial weights The formula for calculating the Moran index is: ,in, This represents the Moran index; M represents the number of sampling points in the preset neighborhood window, which is 9. , Let represent the sampling distance of the i-th scene in the scene sampling distance set and the sampling distance of the j-th scene in the scene sampling distance set, respectively. This represents the average of all scene sampling distances in the scene sampling distance set; This represents the variance of all scene sampling distances in the scene sampling distance set; Represents pixels and Spatial weights between them; This represents the sum of spatial weights; This represents a very small constant, designed to prevent the denominator from being zero and to ensure the stability of the value.
[0045] It should be noted that the Moran index typically ranges from [-1, 1]. To eliminate the influence of negative values, the Moran index is standardized to obtain the deep correlation coefficient. ,in, Indicates the depth correlation coefficient; This represents an interval-restricted function, designed to... This term is restricted to the range [0, 1], that is, if If it is greater than a positive integer 1, then force it to be set to a positive integer 1. If it is less than 0, then force it to be set to 0; The negative sign is intended to make the discrete suppression weight, represented by the depth correlation coefficient, positively correlated with the degree of fragmentation of the occluder. The larger the discrete suppression weight, the more fragmented the surface of the occluder, which may be a discrete structure. In this case, the discrete suppression weight plays a greater role in suppression. Conversely, the smaller the discrete suppression weight, the smoother the surface of the occluder, which may be a solid structure. In this case, the discrete suppression weight plays a weaker role in suppression.
[0046] In reality, regardless of the distance between a leaf and the human eye, or the extent of occlusion, the human eye can observe objects of interest through gaps in the leaf (or other discrete structures). However, in 3D reality models, regardless of the surface condition of the occluding object, as long as the occlusion distance is sufficient, the computer will indiscriminately hide the POI label. This does not conform to the actual observation habits and cognitive expectations of the human eye, leading to information transmission failure and a fragmented experience. Therefore, in the display of POIs in 3D reality models, in addition to considering the occlusion distance of the occluding object, it is also necessary to consider the degree of fragmentation of the occluding object. That is, the original occlusion distance is corrected by the discrete suppression weights, so that the corrected occlusion distance can take into account both the occlusion distance and the degree of fragmentation of the occluding object. Combining these two factors can simulate and approximate the human eye's intelligent perception ability in complex scenes in 3D reality models, achieving a POI display effect that conforms to visual cognition.
[0047] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the occlusion correction distance includes: The standard deviation of the sampling distances of all scenes in the statistical scene sampling distance set is used to perform a negative correlation mapping between the standard deviation, the preset structure sensitivity coefficient and the discrete suppression weight, and to determine the weighting coefficient; the product of the weighting coefficient and the occlusion distance is used as the occlusion correction distance.
[0048] Within a preset neighborhood window, the standard deviation of the sampling distance for all scenes is calculated. This standard deviation is positively correlated with the degree of fragmentation of the occluder surface. A larger standard deviation indicates that the occluder may have a discrete structure, while a smaller standard deviation indicates that the occluder may have a solid structure. Similarly, the discrete suppression weights obtained above are also positively correlated with the degree of fragmentation of the occluder surface. Therefore, the product of the standard deviation and the discrete suppression weights is positively correlated with the degree of fragmentation of the occluder surface. This product can amplify the suppression effect on regions with severe depth fluctuations and disordered spatial distribution (i.e., highly discrete structures), thereby achieving enhanced suppression of strongly discrete and highly fluctuating occlusion scenes. In a specific implementation of this invention, the product can be calculated using the following formula: Where H represents the product of the standard deviation, the preset structure sensitivity coefficient, and the discrete suppression weight; K represents the structure sensitivity coefficient; Indicates the depth correlation coefficient; This represents the standard deviation of all scene sampling distances in the scene sampling distance set; the structure sensitivity coefficient K aims to eliminate the influence of dimensions in the formula, and its unit is... This is because The unit is meters; only by multiplying by the unit... The product of the structural sensitivity coefficients becomes a dimensionless value. On the other hand, it can be used as an adjustment factor to control the response sensitivity of the weighting coefficients to different geometric structural features. Specifically, by adjusting the K value, the attenuation effect of depth noise generated by discrete structures (such as vegetation pores) on the occlusion response can be adaptively amplified, thereby achieving a balance between seeing through non-important discrete occlusions and accurately responding to solid physical occlusions.
[0049] The product is then subjected to negative correlation mapping to construct weighted coefficients. These weighted coefficients are used to correct for occlusion distance attenuation. In this embodiment, the negative correlation mapping is performed using the reciprocal method; therefore, the weighted coefficients are calculated using the following formula: ,in, This represents the weighting coefficient; the positive integer 1 in the denominator serves as a calculation benchmark to ensure that when a solid structure is detected (i.e., the discrete suppression weight or depth fluctuation approaches zero), the denominator reverts to 1. This allows the subsequent occlusion correction distance to be restored to the original geometric distance difference, maintaining a physically accurate response to solid object occlusion and providing numerical stability to prevent calculation errors due to a zero denominator. The formula for calculating the occlusion correction distance is: ,in, Indicates the occlusion correction distance; Indicates the occlusion distance; It should be noted that the specific value of the structural sensitivity coefficient is set according to the specific implementation scenario. In the city-level real-world model (unit: meters), the structural sensitivity coefficient is set to 2. Its physical meaning is: when a completely discrete structure is detected ( And the standard deviation of depth fluctuation reaches 0.5 meters (i.e. When ), the denominator of the weighting coefficients becomes This leads to the final occlusion correction distance. The occlusion rate is halved, meaning the system becomes less sensitive to occlusion in that area, thus tolerating depth noise caused by gaps in the leaves; conversely, for solid walls ( When the denominator of the weighting coefficients approaches 1, the system retains the original geometric occlusion distance and maintains high sensitivity in occlusion determination. In another specific implementation of this invention, in an indoor high-precision point cloud model scene (unit: meters), the scale is small, the main occlusions are furniture (solid) and decorative grilles (discrete), the occlusion thickness is usually thin (0.1~0.5 meters), the depth fluctuation is small (0.01~0.05 meters), and the structure sensitivity coefficient is set to 2. It is designed to improve sensitivity to detect minute fluctuations.
[0050] Step S103: For the preset neighborhood window at each time step, iterate through and update all window states, and combine the occlusion correction distance to determine the state update cost set for all state updates at each time step; determine the window state at the next time step based on the cost in the state update cost set and the rotation angle rate.
[0051] In the POI display process, the display state of each POI, i.e., the window state, needs to be determined at each moment to decide whether to show or hide the POI on the screen. Therefore, it is necessary to select the optimal window state from all window states as the actual POI display state. This is achieved by iterating through and updating all window states at each moment to obtain the cost of each state update. Constructing a set of state update costs can provide a decision-making basis for finding the optimal window state at the next moment. Since the occlusion distance of the occlusion object on the POI changes continuously during the continuous movement of the virtual camera, and the occlusion correction distance changes continuously at each moment, it is necessary to combine the occlusion correction distance at each moment when calculating the state update cost. This helps to improve the dynamic timeliness and accuracy of the decision-making basis.
[0052] Preferably, in some possible implementations of the embodiments of the present invention, the process of obtaining the state update cost set includes: Based on the occlusion correction distance at each time step and the window state change between the current time step and the next time step, the state update cost for each state update at each time step is determined; all state update costs constitute the state update cost set.
[0053] To obtain the optimal window state for the next time step, it is necessary to traverse and update all window states. Taking each state update as the analysis object, a complete decision space containing all candidate decision paths can be constructed, improving the completeness and reliability of subsequent decisions. Since the window state corresponding to each state update is different, that is, the window state at the current time step and the next time step is not fixed, it is necessary to determine the state update cost for each state update based on the changes in window state between adjacent time steps and in combination with the occlusion correction distance. This can provide accurate and quantitative cost calculation for each candidate decision, thus laying the foundation for selecting the unique optimal path.
[0054] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the state update cost includes: The window state includes a displayed state and a hidden state; each moment is taken as the target moment, and the next moment after the target moment is taken as the reference moment; When the window state at the target time is in the display state and the window state at the reference time is in the display state, the occlusion correction distance at the target time is used as the state update cost at the target time. This is because if the POI is actually deeply occluded (the occlusion correction distance is large), forcibly displaying it will incur a high cost. The larger the occlusion correction distance, the greater the cost. Therefore, the occlusion correction distance is used as the state update cost at this time. When the window state at the target time is hidden and the window state at the reference time is displayed, the sum of the occlusion correction distance at the target time and the preset state switching cost is used as the state update cost at the target time. In this case, besides the high cost of forcibly displaying the POI (i.e., the occlusion correction distance), updating from the hidden state to the displayed state also requires a cost representing the switch between the two states, i.e., the preset state switching cost. In this embodiment of the invention, the preset state switching cost is set to... The physical meaning is: in order to prevent the state from repeatedly jumping at the critical point, the system only allows the state to switch when the advantage of new occlusion evidence (or display evidence) is greater than 1.5 meters over maintaining the current state; and when the window state at the target time is the display state and the window state at the reference time is the display state, there is no need to switch the state, that is, there is no need to preset the state switching cost. When the window state at the target time is hidden, and the window state at the reference time is also hidden, a preset information loss cost is used as the state update cost at the target time. This is because hiding a POI always means that the user loses information, which is a fixed basic cost. Therefore, a preset information loss cost is required. In this embodiment of the invention, the preset information loss cost is set as follows: The physical meaning is: if a POI is obscured by a solid object (such as a wall) for more than 5 meters, the system considers it reasonable to hide the POI at this time. Conversely, if the obscuration depth is less than 5 meters, the system tends to consider it to be a misjudgment or a non-important obscuration, and thus tends to display it. Since the window is in a hidden state, that is, there is no need to display the POI, there is no need to consider the obscuration correction distance. At the same time, since the window state at the target time is in a hidden state and the window state at the reference time is in a hidden state, there is no state switch between two adjacent time points, so there is no state switch cost. When the window state at the target time is in the displayed state and the window state at the reference time is in the hidden state, the sum of the preset information loss cost and the preset state switching cost is used as the state update cost at the target time. This is because the window state at the target time is in the displayed state and the window state at the reference time is in the hidden state, and a switch between window states occurs at this time. Therefore, a preset state switching cost is required. In addition, since the window state at the reference time is in the hidden state, the fixed basic cost of hiding a POI, i.e., the preset information loss cost, also needs to be considered.
[0055] It should be noted that the calculated state update cost is the state update cost at each time step (target time step). This is because the window state update is caused by updating the window state at each time step (target time step) to the window state at the next time step (reference time step). The window state at the next time step (reference time step) has not yet been updated, that is, there is no state update cost.
[0056] Based on the above calculations of state update costs, the system constructs a decision interval with hysteresis characteristics: for example, when a POI changes from displayed to hidden, its occlusion correction distance must not only exceed the information loss cost, but also additionally exceed the state transition cost (i.e., the total occlusion depth must be greater than...). When it reverts from hidden to visible, its occlusion correction distance must be reduced to... The following (i.e., the occlusion depth must be less than) ); In between The buffer is called the hysteresis interval. Within this interval, the system will lock the state of the previous frame and not move it, thereby completely eliminating the flickering phenomenon near the critical point.
[0057] It should be noted that the specific values of information loss cost and state switching cost are set according to the specific implementation scenario. The value of the aforementioned state switching cost is set as follows: The value of the cost of information loss is set to Both refer to the set values under the city-level real-scene model; in another specific implementation of the present invention, under the indoor high-precision point cloud scenario, the values of state switching cost and information loss cost are respectively set as follows: and Designed to adapt to small indoor scales, the system narrows the hysteresis judgment interval to It can accurately respond to the obstruction of indoor furniture, while avoiding label jumping caused by scanning noise.
[0058] By using the state update costs calculated from all state updates of the POI at the current time, a set of state change costs is formed, which can show the complete cost of all potential decision paths, providing a complete and quantitative basis for determining the unique optimal window state at the next time step.
[0059] As explained in step S101, the human eye exhibits a visual persistence effect. For fast-moving images, the human visual system becomes less sensitive to specific occlusion details, while for slow-moving images, the human eye focuses on the details within the image. Therefore, when deciding the display state of a POI, in addition to considering the aforementioned state update cost set, the human eye's own observation state must also be taken into account. That is, the more turbulent the virtual camera's movement, the less sensitive the human eye is to observation, and in this case, the POI may not be displayed. Conversely, the more stable the virtual camera's movement, the more sensitive the human eye is to observation, and in this case, the POI details need to be displayed. In summary, the window state of the POI at the next moment needs to be determined by combining the virtual camera's rotation angle rate and the state update cost set, which can maintain the accuracy of the displayed information while matching the interaction rhythm of the human eye system.
[0060] Preferably, in some possible implementations of the embodiments of the present invention, the method for obtaining the window state at the next moment includes: If the rotation angle rate is greater than the preset rate threshold, then the window state at each moment will be used as the window state at the next moment. If the rotation angle rate is less than or equal to the preset rate threshold, then the updated window state corresponding to the state update with the lowest state update cost is selected from the state update cost set and used as the window state for the next moment.
[0061] The magnitude of the rotation angle rate is negatively correlated with the level of detail observed by the human eye. The larger the rotation angle rate, the less detailed the human eye's observation; conversely, the smaller the rotation angle rate, the more detailed the human eye's observation. Therefore, a preset rate threshold can be determined based on the visual persistence effect of the human eye system. This preset rate threshold can distinguish the observation state of the human eye and can serve as an intelligent switching threshold for the system's perception mode. This allows for dynamic adjustment of the display strategy based on the user's interaction intent, maximizing the effectiveness of information display while ensuring a smooth visual experience. In a specific implementation of this invention, the preset rate threshold is set to 1.5 rad / s. Other values can be set according to the specific implementation scenario, which will not be elaborated or limited here.
[0062] It should be noted that if it is the first frame of system startup, i.e. the start moment, there is no historical data in the system cache at this time. By default, the current POI window state is directly forced to be visible, i.e., the POI is displayed to ensure the integrity of human eye observation. At the same time, the above-mentioned calculation of rotation angle rate and state update cost is not performed. If it is the last frame of system termination, i.e. the end moment, the rotation angle rate and state update cost are no longer calculated. This is because there is no next moment after the end moment, and there is no need to update the state again.
[0063] Step S104: Display the POI information for each time step based on the window state at each time step.
[0064] By performing steps S101 to S103, the window state of the POI at each time point is obtained, including the initial time point, which is the display state of the POI on the screen. Displaying the information according to the display state can significantly improve the accuracy and stability of the POI information display.
[0065] During the display of a POI, there are two window states: showing the POI and hiding the POI, representing the POI being unobstructed and the POI being obstructed, respectively. In this embodiment of the invention, the window state feature value of showing the POI is recorded as 1, and the window state feature value of hiding the POI is recorded as 0. This can transform the complex occlusion geometry into mathematical parameters that are easy for computers to process, providing a simple and efficient data foundation for subsequent state caching, fast retrieval, and the execution of rendering instructions.
[0066] As an example, in a specific implementation of this invention, the method for displaying POI information is as follows: At the end of the rendering pipeline for each frame, the system iterates through all Points of Interest (POIs) within the current view frustum; for each POI, based on its calculated feature value of the window state for the next time step (0: hidden POI or positive integer 1: displayed POI), the following operations are performed: When the feature value of the window state in the next moment is a positive integer 1 (displaying the POI), the display instruction is executed: the system sets the rendering property of the primitive node corresponding to the POI (such as a Billboard, UI Canvas, or 3D Mesh) to enabled or visible (Active / Visible); at this time, the graphics engine submits the POI to the rasterization queue so that it is drawn on the screen. Furthermore, in order to improve the visual experience of human eyes, the system also performs an optional transparency gradient interpolation operation: if the POI was hidden in the previous frame and the POI is displayed in the current frame, the system does not display the POI instantly, but linearly increases the alpha transparency of the POI from 0 to 1 over the next few frames (for example, taking 0.2 seconds), which can soften the visual impact of the state transition; When the feature value of the window state in the next moment is 0 (hidden POI), the hiding instruction is executed: the system sets the rendering attribute of the primitive node corresponding to the POI to disabled or invisible (Inactive / Invisible); at this time, the graphics engine will skip the draw call of the object, thereby saving the GPU's pixel fill rate resources; similarly, if it was visible in the previous frame, the system can execute a fade-out animation from 1 to 0. Finally, in order to support the calculation of each frame, the system must store the calculation result of the current frame as historical data: the system accesses the state buffer dedicated to each POI, writes the feature value (0 or positive integer 1) of the window state calculated in the current frame, and overwrites the feature value data of the old window state. Through this frame-by-frame iterative feedback mechanism, the system establishes continuity in the time dimension, ensures the memory function of the algorithm, and improves the reliability and accuracy of the rapid display of POI information.
[0067] In summary: First, this invention analyzes the motion state of the virtual camera, utilizing the persistence of vision to reuse historical states during high-speed motion, effectively reducing screen jumps caused by high-speed sampling aliasing. Second, it obtains the original occlusion distance of each POI, accurately quantifying the physical depth difference between the POI and the scene geometry. Third, by analyzing the spatial distribution within a preset neighborhood window, discrete suppression weights are obtained to correct the original occlusion distance, adaptively distinguishing between solid and discrete structures. While maintaining high sensitivity to building edge occlusion, it significantly reduces sensitivity to vegetation pore depth noise. Finally, based on the occlusion correction distance, it constructs the state update cost for all state updates, introducing hysteresis decision logic to set a potential energy threshold for switching display states, effectively reducing visual flickering of POIs in depth-critical regions and significantly improving the stability and accuracy of POI display.
[0068] It should be noted that the order of the above embodiments of the present invention is merely for descriptive purposes and does not represent the superiority or inferiority of the embodiments. The processes depicted in the accompanying drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0069] The various embodiments in this specification are described in a progressive manner. The same or similar parts between the various embodiments can be referred to each other. Each embodiment focuses on describing the differences from other embodiments.
Claims
1. A method for rapidly displaying POI information of a 3D real-world model, characterized in that, The method includes: Obtain the rotation angle rate of the virtual camera at each time step; at each time step, within the preset neighborhood window of each POI, obtain the window state, the set of scene sampling distances from all pixels to the virtual camera, and the target reference distance from the POI to the virtual camera; The occlusion distance of each POI is obtained by comparing the difference between the target baseline distance and the corresponding scene sampling distance in the scene sampling distance set; the discrete suppression weight is determined based on the spatial distribution of all scene sampling distances in the scene sampling distance set; the occlusion correction distance is determined by using the discrete suppression weight; For each preset neighborhood window at any given time, iterate through and update all window states, and combine the occlusion correction distance to determine the set of state update costs for all state updates at each time. Then, determine the window state at the next time step based on the costs in the set of state update costs and the rotation angle rate. Display the POI information for each time step based on the window status at each time step.
2. The method for rapidly displaying POI information of a 3D real-scene model according to claim 1, characterized in that, The method for obtaining the occlusion distance includes: Within a preset neighborhood window, the scene sampling distance at the center point of the preset neighborhood window is obtained as the target sampling distance; the reference occlusion distance is determined based on the deviation between the target sampling distance and the target reference distance; and the occlusion distance is determined based on the magnitude of the reference occlusion distance.
3. The method for rapidly displaying POI information of a 3D real-scene model according to claim 2, characterized in that, The method for determining the occlusion distance includes: If the reference occlusion distance is greater than the preset occlusion threshold, then the reference occlusion distance will be used as the occlusion distance. If the reference occlusion distance is less than or equal to the preset occlusion threshold, then the preset occlusion threshold will be used as the occlusion distance.
4. The method for rapidly displaying POI information of a 3D real-scene model according to claim 1, characterized in that, The method for obtaining the discrete suppression weights includes: Within a preset neighborhood window, the scene distance fluctuation value is determined based on the discreteness of all scene sampling distances in the scene sampling distance set; the depth correlation coefficient is determined based on the spatial autocorrelation of all scene sampling distances in the scene sampling distance set. If the scene distance fluctuation value is less than the preset fluctuation threshold, then the positive integer 0 will be used as the discrete suppression weight. If the scene distance fluctuation value is greater than or equal to the preset fluctuation threshold, the depth correlation coefficient will be used as the discrete suppression weight.
5. The method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 4, characterized in that, The method for obtaining the scene distance fluctuation value includes: Within a preset neighborhood window, the variance of all scene sampling distances in the scene sampling distance set is calculated and used as the scene distance fluctuation value.
6. The method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 4, characterized in that, The method for obtaining the depth correlation coefficient includes: Within a preset neighborhood window, the Moran index of all scene sampling distances in the scene sampling distance set is statistically analyzed, and the Moran index is standardized to obtain the depth correlation coefficient.
7. The method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 1, characterized in that, The method for obtaining the occlusion correction distance includes: The standard deviation of the sampling distances of all scenes in the statistical scene sampling distance set is used to perform a negative correlation mapping between the standard deviation, the preset structure sensitivity coefficient and the discrete suppression weight, and to determine the weighting coefficient; the product of the weighting coefficient and the occlusion distance is used as the occlusion correction distance.
8. The method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 1, characterized in that, The process of obtaining the state update cost set includes: Based on the occlusion correction distance at each time step and the window state change between the current time step and the next time step, the state update cost for each state update at each time step is determined; all state update costs constitute the state update cost set.
9. A method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 8, characterized in that, The method for obtaining the state update cost includes: The window state includes a displayed state and a hidden state; each moment is taken as the target moment, and the next moment after the target moment is taken as the reference moment; When the window state at the target time is in the display state and the window state at the reference time is in the display state, the occlusion correction distance at the target time is used as the state update cost at the target time. When the window state at the target time is hidden and the window state at the reference time is displayed, the sum of the occlusion correction distance at the target time and the preset state switching cost is used as the state update cost at the target time. When the window state at the target time is hidden and the window state at the reference time is also hidden, the preset information loss cost is used as the state update cost at the target time. When the window is in the display state at the target time and the window is in the hidden state at the reference time, the sum of the preset information loss cost and the preset state switching cost is used as the state update cost at the target time.
10. A method for rapidly displaying POI information of a three-dimensional real-scene model according to claim 8, characterized in that, The method for obtaining the window state at the next moment includes: If the rotation angle rate is greater than the preset rate threshold, then the window state at each moment will be used as the window state at the next moment. If the rotation angle rate is less than or equal to the preset rate threshold, then the updated window state corresponding to the state update with the lowest state update cost is selected from the state update cost set and used as the window state for the next moment.