A low-altitude flight dynamic target continuous label placement method and system

CN122416408BActive Publication Date: 2026-08-18SU ZHOU KONG ZHONG TIAO DONG XIN XI KE JI YOU XIAN GONG SI
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610858828.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-06-15
Publication Date
2026-08-18
Estimated Expiration
2046-06-15

AI Technical Summary

Technical Problem

[0005]本发明提供一种低空飞行动态目标连续标签放置方法及系统,解决相关技术中低空飞行动态目标标签在连续帧间放置时存在的冲突避让能力不足、标签抖动明显、多目标优先级调度缺失以及屏幕边界处理不完善等技术问题

Benefits of technology

[0016]本发明采用基于缩放比例自适应的网格划分将冲突检测从全局两两比较转换为局部网格单元查询,降低了标签冲突检测的计算复杂度,使系统在目标数量较多的场景下能够满足逐帧实时处理的要求。采用阿基米德螺旋线轨迹从期望偏移方向起始按半径递增展开进行候选位置搜索,在存在可行位置时能以较少的搜索步数找到距锚点较近的放置位置,减少了标签与目标之间的视觉关联距离。帧间平滑处理根据目标运动速度和视图缩放变化自适应调节平滑因子,在保持标签位置帧间连续性的同时,避免了标签在目标快速运动时出现明显的跟随滞后。帧间最大位移限制对平滑后的标签位置施加逐帧位移上界约束,避免了标签位置在相邻帧间产生跳变。通过基于传感器精度参数和数据滞后时长的误差传播公式计算位置不确定性半径并转化为冲突检测矩形的扩展容忍边距,避免了传感器更新周期两侧放置状态的频繁翻转,维持了标签在连续帧间的位置稳定性。多级显示内容版本与不确定性扩展矩形的组合搜索,使标签在空间紧张时通过逐级缩减信息内容同步释放放置空间,保持标签以适当显示级别处于可放置状态。对高优先级目标的强制极简保底放置配合渲染层级提升,确保了高优先级目标的标签在目标密集区域中持续可见。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122416408B_ABST
    Figure CN122416408B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of low-altitude flight situation awareness, and discloses a low-altitude flight dynamic target continuous label placement method and system, which runs in a frame-by-frame iteration mode and comprises the following steps: acquiring a current frame label identification list, view objects and label context information; performing adaptive grid division based on a scaling ratio; extracting label geometric constraint parameters and sorting the label geometric constraint parameters according to priorities; processing label logical dependency relations; calculating preliminary candidate positions; determining final placement positions based on grid conflict detection and Archimedes spiral local search; performing inter-frame smoothing processing on the placement positions; executing speed limitation and screen boundary clamping; and outputting placement results and saving view context information. The application solves the problems of multi-target label overlapping, inter-frame position jitter and excessively high conflict detection calculation complexity in a dense scene.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of low-altitude flight situational awareness technology, and more specifically, to a method and system for placing continuous tags on dynamic targets in low-altitude flight. Background Technology

[0002] In a low-altitude flight situational awareness system, the view interface needs to display dozens to hundreds of real-time moving low-altitude flight targets simultaneously. Each target corresponds to an information tag whose position needs to be updated in real time. The tag content includes target number, flight altitude, speed and other attribute information.

[0003] Existing label placement methods typically employ rule-based fixed offset placement or global optimization placement strategies, performing pairwise collision detection on all labels within the view in each frame and adjusting the label positions based on the detection results.

[0004] However, existing tag placement methods have the following technical problems: First, when multiple flying targets are close in position in the view, the corresponding tags overlap, making the information unreadable. Second, due to the continuous movement of the targets, the tag positions are recalculated frame by frame, lacking the continuity constraint of inter-frame positions, causing the tags to jitter or jump in the view, affecting the operator's continuous perception of the target situation. Third, in dense target scenarios, the computational complexity of performing global pairwise collision detection on all tags in the view is too high, making it difficult to meet the frame rate requirements of real-time processing. In addition, existing methods perform collision detection with fixed pixel boundaries, failing to consider the uncertainty differences in position estimation from heterogeneous sensor data sources, causing tags of low refresh rate sensor targets to frequently trigger collision state flips on both sides of the sensor update cycle, disrupting placement continuity. Furthermore, the uniform downgrading or hiding of all priority targets may completely hide high-priority targets in dense areas, causing the operator to lose the ability to obtain tag information of key targets. Summary of the Invention

[0005] This invention provides a method and system for placing continuous tags for low-altitude dynamic targets, which solves the technical problems in related technologies such as insufficient conflict avoidance capability, obvious tag jitter, lack of multi-target priority scheduling, and imperfect screen boundary processing when placing low-altitude dynamic target tags between consecutive frames.

[0006] This invention discloses a method for placing continuous tags for low-altitude flying dynamic targets, including: obtaining a tag identifier list, a view object, a tag context information mapping, and a collision detector for the current frame. Each identifier in the tag identifier list uniquely corresponds to a low-altitude flying target, and the tag context information mapping includes service priority and smoothed screen coordinates from the previous frame. The grid cell size is calculated based on the scaling ratio of the view object, and a two-dimensional Boolean array is created based on the view size and the grid cell size. The grid cells corresponding to the known obstacle-occupied areas in the collision detector are pre-marked as occupied. Convert the geographic location of each tag's associated target into screen anchor point coordinates, extract geometric constraint parameters, and sort all tags according to business priority; Calculate preliminary candidate locations based on the historical location of the tag or the target anchor point and the expected offset; Grid conflict detection is performed on the preliminary candidate positions. If a conflict exists, candidate positions are generated with the target anchor point as the center and the Archimedes spiral trajectory. Grid conflict detection and rectangle intersection detection are performed one by one. The candidate positions that pass the detection are set as the final positions. An adaptive smoothing factor is used to perform an exponentially weighted moving average between the final position and the historical position to obtain the smoothed position. The smoothed position is subjected to maximum displacement velocity limitation and screen boundary clamping processing, the placement result is output and the label context information is updated.

[0007] Further, calculating the grid cell size based on the scaling ratio of the view object includes: The grid cell size is obtained by multiplying the base grid cell size by a scaling correction factor consisting of an adjustment coefficient and the logarithm of the current scaling ratio relative to the reference scaling ratio. The lower bound clamping process is performed on the grid cell size to ensure that the grid cell size is not less than a preset multiple of the average label size; The number of grid columns is obtained by rounding up the ratio of the view width to the grid cell size, and the number of grid rows is obtained by rounding up the ratio of the view height to the grid cell size.

[0008] Furthermore, the extraction of geometric constraint parameters and sorting of all tags according to business priority includes: Extract the expected relative offset, minimum distance constraint, maximum distance constraint, and prohibited placement sector angle range for each tag. The prohibited placement sector angle range is defined with the target anchor point as the center, indicating the direction sector where tags are not allowed to be placed. All tags are sorted in ascending order of business priority; if the priorities are the same, they are sorted in ascending order of identifier lexicographical order to obtain an ordered list. Iterate through the logical dependencies of each label in the ordered list. If a label is located before its main label in the ordered list, move the label to the position immediately following its main label. The desired placement position of the tag is obtained by adding the screen coordinates of the target anchor point of the main tag to the fixed offset of the tag relative to the main tag.

[0009] Further, the step of calculating the preliminary candidate position based on the historical position of the tag or the target anchor point and the expected offset includes: If the historical position of the tag is empty or the tag's forced refresh flag is true, then the target anchor point plus the expected relative offset is used as the initial candidate position. If the tag has a historical location, calculate the Euclidean distance between the historical location and the target anchor point in the current frame, and calculate the azimuth angle of the historical location relative to the target anchor point; When the Euclidean distance satisfies the minimum distance constraint and the maximum distance constraint, and the azimuth angle does not fall within the prohibited sector angle range, the historical position is used as the preliminary candidate position; otherwise, the preliminary candidate position is recalculated by adding the expected relative offset to the target anchor point. The azimuth angle is calculated using the arctangent function. Before comparing it with the prohibited sector angle range, the azimuth angle is uniformly converted to the range of zero to twice pi.

[0010] Furthermore, the step of generating candidate positions along an Archimedean spiral trajectory with the target anchor point as the center includes: The minimum distance constraint is used as the starting radius for the search. The preset fraction of the grid cell size is used as the radial step distance for each rotation. The angle of the desired offset direction is used as the starting angle offset for the search. The polar angle is increased from zero in a fixed increment. At each step, the distance from the current search point to the center of the circle is calculated according to the polar coordinate equation of the Archimedes spiral. The polar coordinates are converted to Cartesian coordinates and then superimposed on the target anchor point to obtain the candidate point. For each candidate point, perform distance constraint test, prohibited angle constraint test, grid cell and its eight neighboring empty state test, and intersection test between the label rectangle region and the obstacle and the rectangle with the placed label in sequence; If the search distance of a candidate point exceeds the maximum distance constraint, the search is terminated; if no candidate position that satisfies all the tests is found within the preset maximum number of search steps, the label is marked as invisible.

[0011] Furthermore, the fixed angle increment is adaptively adjusted according to the current search radius. The adjustment method is to use the grid cell size divided by the current search radius as the angle increment, so that the angle step is large at small radii and small at large radii, thereby keeping the arc length spacing of candidate points consistent at each radius.

[0012] Furthermore, the adaptive smoothing factor is calculated as follows: Based on the basic smoothing factor, the product of the velocity weight coefficient and the normalized value of the target motion velocity is added, along with the product of the scaling change weight coefficient and the normalized value of the scaling ratio change. The calculation result is clamped to limit the adaptive smoothing factor between a preset minimum value and a preset maximum value. The target motion speed is obtained by dividing the Euclidean distance between the target anchor point coordinates in the current frame and the target anchor point coordinates in the previous frame by the inter-frame time difference, and the scaling ratio change is the difference between the scaling ratio of the current frame and the scaling ratio of the previous frame. The maximum displacement speed limit is implemented as follows: calculate the displacement amplitude of the smoothed position relative to the historical position; if the displacement amplitude exceeds the maximum moving speed of the tag, keep the displacement direction unchanged and clamp the displacement amplitude to the maximum moving speed; the maximum moving speed is dynamically set according to the tag's service priority, and the smaller the service priority value, the larger the maximum moving speed.

[0013] Furthermore, prior to extracting the geometric constraint parameters, the process also includes: Obtain the data source type identifier and the most recent sensor update timestamp for each tag, and subtract the most recent sensor update timestamp from the current system timestamp to obtain the data lag time; Based on the data source type identifier, query the sensor accuracy parameter table to obtain the standard deviation of position measurement and the standard deviation of velocity measurement; The radius of uncertainty of the geographic coordinate system is obtained by adding the square of the product of the standard deviation of the position measurement and the product of the standard deviation of the velocity measurement and the data lag time using the error propagation formula and taking the square root. The geographic coordinate system position uncertainty radius is converted into an uncertainty circle radius at the screen pixel scale through the coordinate projection interface of the view object, and an upper bound clamp is applied to the uncertainty circle radius; Based on the full text content of the tag, three display content versions are generated: full version, summary version, and minimalist version. The tag pixel size is calculated for each display content version. The uncertainty tolerance margin is obtained by extending each side of the tag pixel rectangle outward by half the radius of the uncertainty circle. The extended conflict detection rectangle size corresponding to each display content version is then generated.

[0014] Furthermore, in the process of performing grid conflict detection on the preliminary candidate positions, for each candidate position, the corresponding extended conflict detection rectangle is tried in order of display content version from full to minimal. The highest display content version that can pass the detection and the corresponding candidate position coordinates are recorded. After the search is completed, the candidate position corresponding to the highest display content version that can pass the detection among all candidate positions is taken as the final position. For tags whose business priority is higher than or equal to the minimum threshold and whose search fails, the Archimedes spiral search is re-executed with the simplified version of the actual pixel size. If no conflict-free position is found, the candidate points are traversed around the minimum search radius, and the candidate point with the smallest sum of overlapping areas with the already placed tag rectangle is selected as the final position. The rendering level of the tag is then set to the highest value of the current frame. The next frame placement state is calculated based on the search results and the current placement state according to the seven-state transition rule. The seven states include fully visible, compressed display, summary display, minimalist display, fade-out, fade-in, and invisible. The state transition chain of tags with a business priority higher than or equal to the minimum threshold is truncated at the minimalist display state. An uncertainty modulation term is introduced into the calculation of the adaptive smoothing factor. The uncertainty modulation term is the negative of the product of the uncertainty modulation coefficient and the normalized value of the uncertainty circle radius, which strengthens the retention weight of historical position for target labels with greater uncertainty.

[0015] This invention provides a continuous tag placement system for low-altitude dynamic targets, comprising: The data acquisition module is used to acquire the list of tag identifiers, view objects, tag context information mapping, and conflict detector of the current frame; The grid division module is used to calculate the grid cell size according to the scaling ratio of the view object, create a two-dimensional boolean array, and pre-mark the grid cells corresponding to the obstacle-occupied area as occupied. The constraint extraction and sorting module is used to convert the geographical location of the target associated with each label into screen anchor point coordinates, extract geometric constraint parameters, and sort all labels according to business priority. The candidate position calculation module is used to calculate preliminary candidate positions based on the historical position of the tag or the target anchor point and the expected offset. The conflict detection and search module is used to perform grid conflict detection on the preliminary candidate positions. When a conflict exists, candidate positions are generated with the target anchor point as the center and the Archimedes spiral trajectory is followed, and conflict detection is performed one by one. The candidate positions that pass the detection are set as the final positions. The inter-frame smoothing module is used to perform an exponentially weighted moving average of the final position and the historical position using an adaptive smoothing factor to obtain the smoothed position. The post-processing and output module is used to perform maximum displacement velocity limiting and screen boundary clamping processing on the smoothed position, output the placement result and update the label context information.

[0016] This invention employs a scaling-adaptive mesh generation method to transform collision detection from global pairwise comparisons to local mesh cell queries, reducing the computational complexity of tag collision detection and enabling the system to meet the requirements of real-time frame-by-frame processing in scenarios with a large number of targets. An Archimedean spiral trajectory is used to search for candidate positions by expanding the radius incrementally from the desired offset direction. When feasible positions exist, a placement position closer to the anchor point can be found with fewer search steps, reducing the visual association distance between the tag and the target. Inter-frame smoothing adaptively adjusts the smoothing factor based on target movement speed and view scaling changes, maintaining the continuity of tag position between frames while avoiding significant lag when the target moves rapidly. An inter-frame maximum displacement limit imposes a frame-by-frame displacement upper bound constraint on the smoothed tag position, preventing jumps in tag position between adjacent frames. The position uncertainty radius is calculated using an error propagation formula based on sensor accuracy parameters and data lag time, and converted into the extended tolerance margin of the collision detection rectangle. This avoids frequent flips in the placement state on both sides of the sensor update cycle, maintaining the positional stability of the tag between consecutive frames. The combination of multi-level content version display and uncertain expanding rectangle search allows tags to release placement space by progressively reducing information content when space is tight, keeping tags in a placeable state at an appropriate display level. Forced minimalist placement of high-priority targets, coupled with improved rendering levels, ensures that tags for high-priority targets remain consistently visible in densely populated areas. Attached Figure Description

[0017] Figure 1 This is a flowchart of the method for placing continuous tags on low-altitude dynamic targets provided in an embodiment of the present invention; Figure 2 This is a schematic diagram of the comparison of uncertainty radii of various target locations (geographic coordinate system and screen pixels) provided in the embodiments of the present invention; Figure 3 This is a schematic diagram illustrating the relationship between data lag time and screen pixel uncertainty radius provided in an embodiment of the present invention; Figure 4 This is a schematic diagram comparing the area of ​​the conflict detection rectangles for each tag's multi-level display version provided in an embodiment of the present invention; Figure 5 This is a schematic diagram illustrating the relationship between the number of spiral search steps and the display level degradation provided in an embodiment of the present invention; Figure 6 This is a schematic diagram illustrating the relationship between the tag inter-frame smoothing factor and the radius of positional uncertainty provided in an embodiment of the present invention; Figure 7 This is a schematic diagram illustrating the transition of the placement state and the change in transparency of each label provided in an embodiment of the present invention; Figure 8This is a schematic diagram comparing the original size and the expanded size (width) of the full version provided in this embodiment of the invention. Detailed Implementation

[0018] In low-altitude flight situational awareness systems, the view interface needs to simultaneously display dozens to hundreds of real-time moving low-altitude flying targets. Each target corresponds to an information tag whose position needs to be updated in real time. The tag content includes attribute information such as target number, flight altitude, and speed. Existing tag placement methods have the following technical problems: First, when multiple flying targets are close in position in the view, the corresponding tags overlap, making the information unreadable. Second, because the targets are constantly moving, the tag positions are recalculated frame by frame, lacking the continuity constraint of inter-frame positions, causing the tags to jitter or jump in the view, affecting the operator's continuous perception of the target situation. Third, in dense target scenarios, the computational complexity of performing global pairwise collision detection on all tags in the view is too high, making it difficult to meet the frame rate requirements of real-time processing.

[0019] According to an embodiment of this invention, a method for continuous tag placement of dynamic targets flying at low altitudes is provided. This method operates in an iterative, frame-by-frame manner, receiving the latest target status data each frame and outputting the final placement positions and visibility status of all tags in the current frame. It should be understood that the method described in this embodiment is executed by a computer device, which includes at least a processor, memory, and a display interface. The processor performs the data processing operations in the following steps, the memory stores inter-frame tag context information, and the display interface outputs the tag placement results to the rendering module.

[0020] At least one embodiment of the present invention discloses a method for placing continuous tags on low-altitude dynamic targets, such as... Figure 1 As shown, it includes the following steps: Step 1: Obtain the input data required for label placement in the current frame; Get the list of tags that need to be processed in the current frame. ,in This represents the total number of tags in the current frame. List of label identifiers Each tag identifier in the system uniquely corresponds to a low-altitude flying target.

[0021] At the same time, obtain the current view object, which includes the view width. (Unit: pixels), View Height (Unit: pixels), Current zoom level It also provides the geographic coordinates of the view center and a projection interface to convert geographic coordinates into screen pixel coordinates.

[0022] Simultaneously, retrieve the tag context information mapping with the tag identifier as the key. The context information corresponding to each tag includes the following fields: business priority. (Values ​​are positive integers, with smaller values ​​indicating higher priority), smoothed screen coordinates from the previous frame. (This field is empty in the initial frame), visibility status of the previous frame. The text content and font size of the tag, as well as the logical dependencies (recording whether the tag is a child tag of a main tag and the corresponding main tag identifier).

[0023] Simultaneously, a collision detector is acquired. The collision detector maintains the occupied areas of all fixed obstacles in the current view (including text labels, POI icons, scale bars, and other interface elements on the map base map), as well as the label areas that have been placed by other modules in this frame, and provides a rectangular area intersection query interface.

[0024] Step 2: Perform adaptive grid division and initialization based on view size and scaling ratio; Calculate the grid cell size based on the zoom level of the current view. :

[0025] in, This is the basic grid cell size, with a default value of 100 pixels; To adjust the coefficient, the default value is 0.5, which is used to control the sensitivity of the grid size to changes in scaling level; The system's default initial scaling ratio is used as a reference. This is to prevent issues in extreme scaling scenarios. If a value is found to be too small, the calculation result is clamped to a lower bound to ensure... ,in Take 0.8 times the average label size.

[0026] In the above formula, and Both are dimensionless scaling values, and the ratio between them is a dimensionless quantity. The input for logarithmic operations meets the requirement of dimension consistency. and The units are all pixels, and the dimensions of all terms in the formula are consistent.

[0027] Calculate the number of columns in the grid based on the view size and grid cell size. and number of rows :

[0028] in This indicates rounding up to the nearest integer, ensuring the grid completely covers the entire view area.

[0029] create Two-dimensional Boolean array initialize all elements to (Indicates idle). Map the known obstacle-occupied areas from the collision detector to the grid coordinate system, and pre-label the corresponding grid cells as... (Indicates occupancy). Screen coordinates To grid coordinates The mapping relationship is as follows:

[0030] in This indicates rounding down to the nearest integer.

[0031] It should be noted that the logarithmic function in the above grid cell size formula can be either the natural logarithm or the logarithm to base 10, but it must be consistent with the parameters. The calibration remains consistent, meaning that under the same scaling change, different logarithmic bases correspond to different... The values ​​of both determine the magnitude of the grid size's response to scaling changes.

[0032] Step 3: Extract the geometric constraint parameters of the labels and sort them by priority; For the tag list Each tag in By using the coordinate projection interface of the view object, the geographical location of its associated target is converted into the screen anchor point coordinates of the current frame. Calculate the pixel size of the tag based on its font and content attributes. ,in For the label width, This is the label height.

[0033] Extract the following constraint parameters: desired relative offset This indicates the initial expected offset direction and distance of the label relative to the target anchor point; the default value is [value missing]. Pixels; Minimum Distance Constraint This represents the minimum allowed distance between the label center and the target anchor point, with a default value of 15 pixels; maximum distance constraint. This indicates the maximum allowed distance between the label center and the target anchor point, with a default value of 200 pixels; the prohibited fan-shaped angle range. Using the target anchor point as the center, define a directional sector where labels are not allowed to be placed. The angle is expressed in radians, and the value range is [value range missing]. Measured clockwise from due east.

[0034] Sort all tags according to the following rules to obtain an ordered list. First, prioritize by business function. Sort in ascending order; for tags with the same priority, sort them in ascending order according to the lexicographical order of the identifiers to ensure the determinism of the sorting results.

[0035] It should be noted that the aforementioned prohibited fan-shaped angle range refers to an arc-shaped interval centered on the target anchor point. Labels are not allowed to be placed in the direction corresponding to the azimuth angle falling within this interval. For example, when there are dense map markings directly in front of the target's flight direction, the corresponding angle interval can be set as the prohibited range to prevent labels from overlapping with map markings. When this field is empty, it indicates that there are no restrictions on any placement direction.

[0036] Furthermore, placement within a fan-shaped angle range is prohibited. middle, To prohibit the starting angle of the sector, To prevent the sector from terminating at its end angle, both values ​​are taken from... ; when At that time, the prohibited zone is ;when At that time, crossing the section is prohibited. Boundary is determined by the orientation corner. or This is considered to fall within the prohibited area.

[0037] In this embodiment of the application, in order to ensure system processing performance in high-density scenarios, after priority sorting is completed, if the system is configured with a maximum number of visible tags... Then, for the sorted items located at... Subsequent low-priority tags are directly marked as invisible and do not participate in subsequent position calculations, thus limiting the number of tags that need to be processed in a single frame to a controllable range.

[0038] Step 4: Handle the logical dependencies between tags and adjust their placement order; Traversal For each tag in the list, the logical dependency field in the tag context information is used to query whether the tag has a parent tag. If the tag... The main tag is Then it is called From the tag, Use it as its main tag.

[0039] For from the label Calculate its desired placement location :

[0040] in, main tag The target anchor point screen coordinates, This is a fixed offset from the main tag. If... Defined in the world coordinate system (geographic coordinates), it is then converted into the pixel offset of the current frame through the projection interface of the view object.

[0041] For sorted lists Perform a second adjustment: for each master-slave relationship ,like Located in the sorted list Previously, it was Move to Next, ensure that the main label is placed before the secondary label in the adjacent position.

[0042] Step 5: Calculate the preliminary candidate positions for each label; right Each tag is processed sequentially Calculate the preliminary candidate positions according to the following rules. .

[0043] If the label Historical position Empty (i.e., the tag is a newly appearing target in this frame), or its forced refresh flag. If true, then the target anchor point plus the desired relative offset is used as the initial position:

[0044] If the label Existing historical position Then, a constraint validity check is performed on the historical location: Calculate the distance between historical locations and the target anchor point in the current frame using Euclidean distance. Check whether it satisfies ; Calculate the azimuth angle of the historical position relative to the target anchor point ,test Does it fall outside the prohibited sector angle range? If both of the above constraints are satisfied, then let... If any constraint is not satisfied, the initial position is recalculated using the target anchor point plus the desired offset.

[0045] Furthermore, the aforementioned azimuth angle Depend on The function is calculated, and its range is... Within the prohibited sector angle range Before making a comparison, it is necessary to... Unified conversion to The range, conversion method is: if Then let This is to ensure consistency in angle judgment.

[0046] Step 6: Based on mesh collision detection and local search of the Archimedes spiral, determine the final placement location without collision; Preliminary position Mapping to grid coordinates :

[0047] Check if the following four conditions are met simultaneously: Mesh cells Its 8 neighboring units are all in an idle state; The top left corner, with a size of The tagged rectangular area does not intersect with the rectangular areas of all registered obstacles and tagged objects in the collision detector; The initial position satisfies the distance constraint. The azimuth of the initial position does not fall within the prohibited sector angle range.

[0048] If all four conditions above are met, then accept. For the final position , grid cells Mark as occupied, proceed to step 7.

[0049] If a collision is detected at the initial location, then the target anchor point will be used. Using the circle as the center, candidate positions are generated sequentially according to the Archimedean spiral trajectory for searching. The polar coordinate equation of the Archimedean spiral is:

[0050] in, This is the distance (in pixels) from the current search point to the center of the circle. The starting radius for the search (in pixels). Polar angle (unit: radians, starting from 0 and increasing, with a value range of...) ), For each rotation ( The radial step distance (in pixels) corresponding to radians is taken by default. In the above formula The unit is pixels per radian, and... Multiplying by (unit: radians) yields the pixel count, which is then multiplied by... The dimensions are consistent.

[0051] Starting from 0, incrementing at a fixed angle. (default value) (That is, rotating 22.5° each step) increments, generating candidate points each step:

[0052]

[0053] in To determine the starting angle offset for the search, take the angle in the desired offset direction. This allows the search to prioritize starting in the desired direction.

[0054] Furthermore, the coordinates of the aforementioned candidate points With target anchor point Using polar coordinates as the origin The result is obtained by converting to Cartesian coordinate offsets and then superimposing them. This is the horizontal offset. This represents the vertical offset, with units of pixels, consistent with the dimensions of the anchor point coordinates.

[0055] For each candidate point Perform the following four checks in sequence: check distance constraints (like (If the search is terminated immediately, check the forbidden angle constraint and the current polar angle.) The candidate point is not within the prohibited sector area; the candidate point is mapped to grid coordinates, and the corresponding grid cell and its 8 neighbors are checked to be free; the collision detector is called to check that the label rectangle does not intersect with any obstacles or already placed labels.

[0056] If a candidate point passes all four tests, then the candidate point is set as the final position. Mark the corresponding grid cell as occupied, stop the search, and proceed to step 7.

[0057] If within the preset maximum search steps If no candidate position that meets all the conditions is found within (default value is 360), then the label will be... Marked as invisible ( Skip steps 7 and 8 and proceed directly to step 9. Invisible tags do not occupy grid cells and are not registered with the collision detector to avoid affecting the placement of other tags.

[0058] It should be noted that, for the labels processed in step 4... The starting point for the local search of the Archimedes spiral is set as (i.e., the expected position calculated based on the main label position), rather than the target anchor point. Furthermore, the upper bound of the search radius is additionally subject to the maximum allowed distance from the tag to the main tag. This constraint ensures that the tag is always placed within the neighborhood of the main tag.

[0059] In this embodiment of the application, in order to improve the uniformity of directional coverage of candidate positions, the angle increment can be added based on step 6. Based on the current search radius Perform adaptive adjustments:

[0060] in and The units are both pixels, and the ratio between the two is a dimensionless radian value, with consistent dimensions. This adjustment allows for a larger angular step size at smaller radii to quickly cover near-distance directions, and a smaller angular step size at larger radii to finely cover far-distance directions. This keeps the arc length spacing of candidate points at each radius close without significantly increasing the number of search steps. This reduces the omission of feasible locations due to sparse angle sampling.

[0061] Step 7: Perform historical position smoothing on the final placement location; For the tags whose final location was successfully determined in step 6 The smoothed output position is calculated using the exponentially weighted moving average method. The input is the final position of the current frame. With historical position The output is the smoothed position:

[0062] in, Let be the smoothing factor. For newly appearing labels with no historical location, let The final position of the current frame is directly used as the smooth output.

[0063] Adaptive smoothing factor The calculation method is as follows:

[0064] The symbols are defined as follows: This is the base smoothing factor, with a default value of 0.3; For tags The motion speed of the associated target in the current frame (unit: pixels / frame) is calculated by the inter-frame displacement of the target anchor point, which is the Euclidean distance between the target anchor point coordinates in the current frame and the target anchor point coordinates in the previous frame divided by the inter-frame time difference (unit: frames). The preset maximum target speed (unit: pixels / frame) has a default value of 30 pixels / frame. The difference between the scaling ratio of the current frame and the scaling ratio of the previous frame (dimensionless), where the scaling ratio of the previous frame is read from the view context information saved in step 10. This is the preset maximum scaling change (dimensionless), with a default value of 0.5. This is the speed weighting coefficient, with a default value of 0.4; This is the scaling weight coefficient, with a default value of 0.3; As a clamping function, it restricts the calculation result to... Within the range, of which The default value is 0.1. The default value is 1.0. In the formula above... and All are ratios of quantities with the same dimension, and the result is a dimensionless value. The dimensions are the same after addition.

[0065] Furthermore, the aforementioned adaptive smoothing factor The physical meaning is: when the target's velocity Larger or larger view zoom changes When it is large, A higher value results in a smoother output position that is closer to the final position of the current frame. The label can quickly follow the target's movement; when the target's movement speed is low and the view scaling is stable... Lower values, historical positions As the weight increases, the label position changes become smoother, suppressing jitter caused by minor disturbances.

[0066] Step 8: Apply speed limiting and screen boundary clamping to the smoothed position; Calculate the displacement vector of the smoothed position relative to the historical position. and displacement amplitude .like More than the label Corresponding maximum movement speed (Unit: pixels / frame), then the displacement vector is scaled:

[0067] Maximum movement speed Dynamically set based on tag priority:

[0068] in, The maximum allowed movement speed for the highest priority tag, which defaults to 50 pixels per frame. This is the speed step size between adjacent priority levels, with a default value of 5 pixels per frame. The minimum allowed movement speed is set to 20 pixels per frame by default.

[0069] Furthermore, the mechanism by which the aforementioned speed limit works is: displacement vector direction Keep it unchanged, only clamp the magnitude of the displacement vector to This ensures that the label moves in the correct direction at a controlled speed. For high-priority business applications (… Labels with smaller numerical values Larger values ​​allow for faster responses to location changes; for tags with lower business priority, Smaller values ​​result in a smoother transition in label placement.

[0070] If the label The anchor point of the associated target is located inside the view (i.e.) and If the screen edge clamping option is enabled, then boundary constraints will be applied to the smoothed position:

[0071]

[0072] in This is the margin for the border, set to 5 pixels by default, to ensure the label is fully displayed within the view. If the target anchor point is outside the view, border clamping is not performed.

[0073] Step 9: Construct the placement result and update the label state; For each tag Construct the placement result object, which contains the following fields: tag identifier The final output position coordinates after speed limiting and boundary clamping processing Label size Rotation angle (default is 0), visibility flag , and a position record object containing the smoothed position, historical position, and current frame timestamp.

[0074] For visible labels ( The final placement rectangle of the visible label is registered to the collision detector so that other labels processed subsequently in the same frame can be aware of the label's occupancy.

[0075] Update the historical position of the visible labels to the smooth output position of this frame:

[0076] This update is stored in persistent storage of the tag context information. For tags marked as invisible in the current frame, the historical position is not updated; the historical position from the previous frame is retained so that when the target re-enters the view, the search starts from the vicinity of the previous position.

[0077] Assemble all the label placement results into an output list according to the label identifier order. This list serves as the final return result of the label placement method for this frame and is used by the upper-level rendering module.

[0078] Step 10: Save the current frame view context information; After all labels in this frame have been processed, the following view context information will be saved to the memory cache: current frame zoom level. Used for calculation in the next frame. Current frame timestamp , used to calculate the time difference between frames; the current frame view center coordinates, used to detect view translation operations.

[0079] The aforementioned view context information is stored in a hash table in the form of key-value pairs, with the key being the view identifier, ensuring that the context information of each view is independent when multiple views are running simultaneously.

[0080] This implementation uses a scaling-adaptive mesh partitioning method to discretize the view area into mesh cells, transforming collision detection from global pairwise comparisons to local mesh cell queries. This reduces the computational complexity of label collision detection, thus meeting the requirements for real-time frame-by-frame processing even in scenarios with a large number of targets. An Archimedean spiral trajectory is used to search for candidate positions around the target anchor point. The search path starts from the desired offset direction and expands incrementally with the radius. Therefore, when feasible positions exist, a placement position close to the anchor point can be found with fewer search steps, reducing the visual association distance between the label and the target. Inter-frame smoothing adaptively adjusts the smoothing factor based on target movement speed and view scaling changes. For targets with low movement speed, the weight of preserving historical positions is increased; for targets with high movement speed or rapid view scaling changes, the weight of preserving historical positions is decreased. This maintains the continuity of label positions between frames while avoiding significant lag when the label is moving rapidly. An inter-frame maximum displacement limit imposes a frame-by-frame displacement upper bound constraint on the smoothed label position. Therefore, even when the search position changes significantly, the actual output position of the label transitions at a controlled speed, preventing abrupt changes in label position between adjacent frames.

[0081] In low-altitude flight situational awareness systems, the position data of flying targets within the airspace comes from various heterogeneous sensors, including radar, ADS-B receivers, and electro-optical tracking devices. The data update cycles of each sensor range from tens of milliseconds to several seconds, resulting in significant differences in position measurement accuracy. The method described in Example 1 performs collision detection with fixed pixel boundaries, failing to consider the varying degrees of uncertainty in target position estimation: the true position of a target tracked by a low-refresh-rate sensor (such as a radar with an update cycle of 5 to 10 seconds) may deviate within a large range. The placement result obtained by performing collision detection with fixed boundaries based on the current estimated position may suddenly become invalid after the next sensor update, causing the tag to frequently trigger collision state flips on both sides of the sensor update cycle, disrupting placement continuity. Furthermore, Example 1 uses a uniform downgrading or hiding process for all priority targets. High-priority targets (such as unidentified flying objects intruding into no-fly zones) may be completely hidden in dense areas, just like ordinary targets, causing the operator to lose tag information when the target needs the most attention.

[0082] Based on Example 1, this implementation method introduces location uncertainty estimation based on sensor data features, combined search of multi-level display content versions and uncertainty expansion rectangles, and hierarchical state transition based on business priority to solve the above-mentioned technical problems.

[0083] This implementation operates in a frame-by-frame iterative manner. Each frame receives the latest target state data and outputs the final placement position, displayed content version, and visibility status of all tags in the current frame, including the following steps: Step 2-1: Obtain the input data required for label placement in the current frame; Get the list of tags that need to be processed in the current frame. ,in This represents the total number of tags in the current frame. List of label identifiers Each tag identifier in the system uniquely corresponds to a low-altitude flying target.

[0084] At the same time, obtain the current view object, which includes the view width. View height Current zoom level It also includes the geographic coordinates of the view center, and provides a projection interface to convert geographic coordinates to screen pixel coordinates, as well as the current system timestamp. .

[0085] Simultaneously, a tag context information mapping with the tag identifier as the key is obtained. Based on the fields defined in Example 1, the tag context information for each tag includes the following additional fields: data source type identifier. (Used to query sensor accuracy parameter table), most recent sensor update timestamp Flight speed vector (In geographic coordinate system, unit: meters per second), Current placement status indicator (The value is one of the seven state enumeration values, and the default state is invisible in the initial frame), the full text content of the tag (including all information lines).

[0086] Simultaneously, obtain the conflict detector (same as step 1 in Implementation Example 1) and the service priority minimum threshold configured by the system. (Values ​​are positive integers, and the business priority value is less than or equal to) The tag is "high-priority safety net target".

[0087] Step 2-2: Calculate the screen pixel-scale positional uncertainty radius for each target; For the list of tags Each tag in Using the current system timestamp Subtract the target's most recent sensor update timestamp Calculate the data lag time:

[0088] in The unit is seconds.

[0089] Based on data source type identifier Query the sensor accuracy parameter table to obtain the standard deviation of the position measurement for this data source. (Unit: meters) and standard deviation of speed measurement (Unit: m / s). Using the error propagation formula, calculate the radius of uncertainty of the target's geographic coordinate system position in the current frame. :

[0090] in The unit is meters. The unit is (meters per second) × seconds = meters, and the two quantities have the same dimensions. The unit is meters.

[0091] The radius of uncertainty in the geographic coordinate system is determined through the coordinate projection interface of the view object. Uncertainty circle radius converted to screen pixel scale (Unit: pixels).

[0092] Furthermore, the radius of uncertainty in the aforementioned geographic coordinate system location Radius of the circle with uncertainty at the screen pixel scale The transformation is achieved through the coordinate projection interface of the view object: offset along any horizontal direction at the geographic coordinates of the target anchor point. A reference geographic coordinate is obtained. After projecting the target anchor point's geographic coordinates and this reference geographic coordinate onto the screen pixel coordinates respectively, the pixel distance between the two is calculated, which is the radius of the screen pixel scale uncertainty circle. This method utilizes existing projection interfaces and does not require the introduction of additional map scale conversion parameters.

[0093] It should be noted that the radius of uncertainty in the above-mentioned geographic coordinate system is... It combines two types of error sources: one is the inherent position measurement error of the sensor, caused by... The second is the target position drift caused by data lag, which is the product of velocity measurement error and lag time. Characterization. The two are combined in root-mean-square form under the error propagation formula to obtain the comprehensive uncertainty radius. For extremely short update periods ( High refresh rate sensor (near zero), radius of uncertainty in geographic coordinate system position. Mainly composed of Decision; For low refresh rate sensors with long update cycles, the radius of uncertainty in the geographic coordinate system position. Follow The increase reflects the expansion of the possible offset range of the target's true position around the estimated position.

[0094] In this embodiment of the application, in order to prevent the uncertainty of screen pixel scale in extreme cases, the radius of the circle is specified. If the value is too large, the expanding rectangle may cover an excessively wide view area. Therefore, the calculation result is clamped at an upper bound to ensure... ,in The upper bound of the uncertainty radius configured for the system is set to twice the average pixel width of the full version of the label by default.

[0095] Steps 2-3: Generate multi-level display content versions and corresponding extended conflict detection rectangle sizes; For the list of tags Each tag in Based on the full version of the text content of the tag, the following three display content versions are generated: Full version Includes all information lines (target identifier, flight altitude, speed, threat level, etc.); summary version Only the target identifier and most critical attributes are retained (the target identifier and threat level are retained by default); minimalist version. Only retain the target identifier. characters, of which The number of characters configured for minimal display in the system, with a default value of 4.

[0096] For each of the three display content versions, calculate the tag pixel size based on the font and content attributes, denoted as . , , .

[0097] For each version of the displayed content, expand each side of the label pixel rectangle outwards. As an uncertainty tolerance margin, the size of the extended conflict detection rectangle corresponding to each version of the displayed content is generated:

[0098]

[0099]

[0100] All units in the above formula are pixels, and the dimensions are consistent.

[0101] In addition, corresponding compressed version expansion rectangles are generated for both the full version and the summary version: the compressed full version reduces the line spacing of the full version pixel rectangle to 0.75 times the default line spacing before expansion; the compressed summary version performs the same processing on the summary version, denoted as follows: and .

[0102] It should be noted that the expansion quantities of the above edges are taken as... Instead The reason is that both label rectangles have already expanded outwards during collision detection. The combined expansion between the two is... In a probabilistic sense, this covers the combined impact of the position estimation errors of the two targets.

[0103] Steps 2-4: Perform adaptive grid division and initialization based on view size and scaling ratio; Same as step 2 in Embodiment 1, complete the mesh cell size. Calculation, number of grid rows and columns and Calculations, two-dimensional Boolean arrays Initialization, and pre-marking of areas occupied by obstacles.

[0104] Steps 2-5: Extract the geometric constraint parameters of the labels and sort them by priority; For each tag The screen coordinates of the target anchor point are calculated through the coordinate projection interface of the view object. Extract the expected relative offset Minimum distance constraint Maximum distance constraint And the prohibited fan-shaped angle range, the processing logic is the same as steps 3 and 4 of embodiment 1.

[0105] All tags are prioritized by business function. Sort in ascending order, and if the priorities are the same, sort in ascending order according to the lexicographical order of the identifiers to obtain an ordered list. It also handles the master-slave tag dependency relationship and the placement order adjustment, and the processing logic is the same as step 4 of Implementation Example 1.

[0106] Steps 2-6: Based on the combined candidate positions of multi-level extended rectangles, determine the display level and placement position; right Each tag is processed sequentially First, calculate the preliminary candidate positions according to step 5 of Example 1. (Using historical location or target anchor point plus desired offset), then using the target anchor point Centered on the circle, candidate position sequences are generated sequentially according to the Archimedean spiral trajectory in step 6 of Example 1. For each candidate position, collision detection is performed on five expanded rectangles of the displayed content version in the following order: Step 2-6-1, to expand the rectangle size Perform mesh collision detection and rectangle intersection detection; Step 2-6-2: Expand the rectangle size using the compressed full version. Perform the test; Step 2-6-3, expand the rectangle size with the summary version. Perform the test; Step 2-6-4: Expand the rectangle size with the compressed summary version. Perform the test; Steps 2-6-5: Expand the rectangle size in a minimalist version. Perform the test.

[0107] For each candidate location, record the highest display content version number that passes collision detection and the corresponding candidate location coordinates. After the entire Archimedes spiral local search process is completed, take the highest display content version that passes collision detection from all candidate locations and set the corresponding candidate location as the final location. Set the corresponding content version to the display level of this frame. Let the corresponding extended rectangle size be denoted as The corresponding actual display pixel size is denoted as .

[0108] Grid occupancy markers indicate the actual display pixel size. The corresponding grid cell is used for marking. The extended rectangle is only used for collision detection and does not affect the grid occupancy record.

[0109] If the Archimedes spiral local search is within the preset maximum search steps If none of the five display content versions can find a conflict-free candidate position, then the backup processing for high-priority targets in steps 2-7 will be executed; for business priorities lower than the backup threshold (i.e. The tag is marked as a search failure, and the process proceeds to the state transition flow in steps 2-8.

[0110] It should be noted that in the above candidate location search, collision detection uses an extended rectangle (including uncertainty tolerance margins) instead of the actual pixel rectangle of the tag. The purpose is to ensure that the placement decision probabilistically covers the possible offset range of the target location. When the actual target location shifts within the uncertainty radius, the actual pixel rectangle of the placed tag can still maintain a spatially conflict-free state with other tags, thereby avoiding frequent flips in the placement state before and after sensor updates.

[0111] In this embodiment of the application, in order to further reduce unnecessary search calculations in high-density scenarios, an early stopping strategy can be introduced into the search process based on steps 2-6: if the local search of the Archimedean spiral is performed before... (default value) If the full-version expanded rectangle has passed the collision detection within a certain step, the search immediately stops, and the full version is used as the display level, without the need to generate subsequent candidate points. This strategy can reduce the number of candidate points generated in sparse target areas.

[0112] Steps 2-7: Perform forced minimalist backup placement on high-priority targets; For business priorities that are higher than or equal to the minimum threshold (i.e.) And the tags that failed to be searched in steps 2-6 Switch to no-tolerance margin mode to display the actual pixel size in the minimalist version. Re-execute the local search for the Archimedes spiral without adding uncertainty-based margin extension.

[0113] If a conflict-free candidate position cannot be found even with the original pixel size in the simplified version, then a forced simplified display state is entered: within the minimum search radius... , traversing For each candidate point generated by the angle increment, the sum of the overlapping areas of the simplified label rectangle and the already placed label rectangle at each candidate point is calculated. The candidate point with the smallest sum of overlapping areas is selected as the final position. This will set the display level to minimalist and adjust the rendering level of the tag. Set to the highest value among all labels in the current frame to ensure that the label visually covers other labels and remains visible.

[0114] It should be noted that the minimum overlapping area selection strategy in the forced minimalist placement refers to selecting the position with the least obstruction of the already placed tags when it is impossible to completely avoid conflicts, so as to minimize the impact on the readability of other tags, while ensuring the continued visibility of high-priority target tags.

[0115] Steps 2-8: Calculate the placement state of each tag in the next frame based on the seven-state transition rule; Based on the search results from steps 2-6 and 2-7, and the current placement status identifier of each tag. The placement state of the next frame is calculated according to the following seven-state transition rules. .

[0116] The seven states are defined in descending order of priority: fully visible ( ), compressed display ( Summary display () ), minimalist display ( ), fade out ( ), fade-in ( Invisible ).

[0117] The state transition rules are as follows: If the search in steps 2-6 is successful, the state is placed in the next frame. The visible state corresponds to the display level found in the search; if the current state is invisible and the search for this frame is successful, it first enters the fade-in state; if the current state is visible and the search for this frame fails (only for...), it enters the fade-in state. If the tag is displayed, it will first enter a fade-out state, and then transition to an invisible state; the fade-in and fade-out states each last for a preset number of frames. (6 frames by default) and then automatically switch to the target state.

[0118] For tags whose business priority is higher than the minimum threshold ( The state transition chain of the above seven state transition rules is truncated at the minimalist display state: even if the search fails, the next frame places the state. Minimum downgrade to It does not enter a fade-out or invisible state; for the labels that are forcibly placed at the bottom in steps 2-7, their state is fixed as follows. .

[0119] It should be noted that in the seven state transition rules mentioned above, the fade-in and fade-out states are used to generate a gradual transition effect during state switching, and the corresponding transparency values ​​are... The transition frame count increases linearly from 0 to 1 during the fade-in phase and linearly decreases from 1 to 0 during the fade-out phase, with the transition frame count changing from... control.

[0120] Steps 2-9: Dynamically calculate the inter-frame smoothing factor based on the uncertainty radius and perform smoothing processing; For tags whose final location was successfully determined in steps 2-6 or 2-7 Replace the adaptive smoothing factor formula in step 7 of Example 1 with the following calculation formula that includes an uncertainty modulation term:

[0121] in, , , , , , , , , The definition is consistent with step 7 of Example 1; This is the uncertain modulation coefficient, with a default value of 0.3; This is the upper bound of the uncertainty radius (unit: pixels) in step 2-2. In the above formula... The ratio of quantities with the same dimension is given by a dimensionless value, consistent with the dimensions of the other quantities.

[0122] Uncertainty modulation term Its function is to: when the target position is highly uncertain (the radius of the circle of uncertainty in screen pixel scale) (larger), reduce smoothing factor Strengthen the retention weight of historical positions to suppress tag jitter caused by position estimation fluctuations; when the target position uncertainty is small (the radius of the screen pixel scale uncertainty circle), (Approaching zero), the uncertainty modulation term approaches zero, the smoothing factor degenerates into the calculation result in step 7 of Example 1, and the tag can quickly respond to the real position changes of high-precision targets.

[0123] Based on this, the smoothed output position is calculated using the exponentially weighted moving average method. The input is the final position of the current frame. With historical position The output is the smoothed position:

[0124] For tags whose display level changes, the tag pixel size changes from the display size of the previous frame to the display size of the current frame. Through linear interpolation Intra-frame gradual transitions avoid visual abrupt changes caused by sudden size shifts.

[0125]

[0126] in, This is the actual rendered size of the previous frame (in pixels). The number of frames already passed in the current transition state (value ranges from 1 to...). ), This represents the total number of transition frames. In the formula above... These are dimensionless interpolation coefficients. and All units are pixels, and all dimensions are consistent.

[0127] Steps 2-10: Perform speed limiting and screen boundary clamping; Similar to step 8 of Embodiment 1, the smoothed position... Perform priority-based speed limiting and screen boundary clamping.

[0128] Step 2-11: Construct the placement result and update the label state; For each tag Construct the placement result object, and add the following field based on the fields defined in step 9 of Example 1: Display content version (Value can be one of the following: full version, compressed full version, digest version, compressed digest version, or minimalist version) Actual rendering size Transparency value Rendering levels .

[0129] For visible labels, the actual display rectangle area of ​​the visible label (based on the actual rendering size) is registered to the collision detector, and the placement status flag is updated to the placement status for the next frame. The historical position is updated to the smooth output position of the current frame, and the processing logic is the same as step 9 in Embodiment 1. For invisible tags, the historical position is not updated, and the historical position of the previous frame is retained.

[0130] Assemble all the label placement results into an output list according to the label identifier order. This list serves as the final return result of the label placement method for this frame and is used by the upper-level rendering module.

[0131] Step 2-12: Save the current frame view context information; Same as step 10 in Embodiment 1, scaling the current frame. Current frame timestamp The current frame view center coordinates are stored in a hash table with the view identifier as the key.

[0132] This implementation calculates the geographic coordinate system position uncertainty radius for each target using an error propagation formula based on sensor accuracy parameters and data lag time. This radius is then transformed into the extended tolerance margin of the collision detection rectangle, enabling tag placement decisions to probabilistically cover the possible offset range of the target's location. Therefore, when the target's true location shifts within the uncertainty range, the actual pixel rectangle of the placed tag remains spatially conflict-free with other tags, avoiding frequent flips in placement states on both sides of the sensor update cycle and maintaining tag position stability across consecutive frames.

[0133] The search combines multiple levels of content versions (full version, compressed full version, summary version, compressed summary version, and minimalist version) with their respective uncertain expansion rectangles. When space is tight, the absolute size of the expansion rectangle is reduced simultaneously by reducing the amount of information. Therefore, while the information content of the tag is reduced at each level, the placement space is released at each level. The joint optimization between information reduction and space adaptation ensures that the tag remains in a placeable state at an appropriate display level.

[0134] The forced minimalist placement of high-priority targets truncates the state transition chain of the seven-state transition rule at the minimalist display state. Combined with the rendering level enhancement, this ensures that the labels of high-priority targets remain visible under any density conditions. Therefore, operators can always obtain the identification information of high-priority targets through labels in dense target areas, maintaining the ability to track the situation of key targets.

[0135] The uncertainty modulation term introduced in the inter-frame smoothing factor reduces the smoothing factor of low-precision data source targets and strengthens the weighting of historical position retention, thereby suppressing tag position fluctuations caused by low refresh rate sensor data updates; simultaneously, it reduces the radius of the uncertainty circle at the screen pixel scale of high-precision data source targets. With a relatively small uncertainty modulation term approaching zero and a high smoothing factor, the tag can quickly respond to changes in the target's actual position. Therefore, in an environment where heterogeneous sensors coexist, the smoothness of motion of each target tag is adapted to the accuracy characteristics of its data source, ensuring the continuity and readability of dynamic target tag placement as a whole.

[0136] A city's low-altitude airspace management center deployed a low-altitude flight situational awareness system to monitor drones, helicopters, and general aviation aircraft within its jurisdiction. One afternoon in 20XX, a controller was on duty monitoring the area; the current view resolution was 1920×1080 pixels, and the zoom level was... Reference scaling ratio There are five active flying targets in the view, with data sources covering three types of heterogeneous sensors: ADS-B receivers, radar, and electro-optical tracking equipment. Among them, target UAV-003 is identified as a suspected unauthorized intrusion into the no-fly zone, with the highest service priority and minimum threshold. The system timestamp for this frame corresponds to 14:32:18 on this day.

[0137] like Figure 2-8 As shown, the method in this embodiment operates as follows: Step 2-1: Obtain the input data required for label placement in the current frame; The current frame's tag list contains tags corresponding to 5 flying targets. View width pixels, view height Pixels, current zoom level The system timestamp is 14:32:18. The data source type, most recent sensor update timestamp, flight speed vector, current placement status, and service priority of each tag are read from the tag context information mapping. The collision detector has pre-registered three POI icons and one scale bar occupied area on the map base map.

[0138] Table 1 Initial information of the current frame tag context:

[0139] Step 2-2: Calculate the screen pixel-scale positional uncertainty radius for each target; Calculate the data lag time for each tag. Then, the position standard deviation of each label was obtained by consulting the sensor accuracy parameter table. and speed standard deviation Substitute the values ​​into the error propagation formula to calculate the radius of uncertainty in the geographic coordinate system:

[0140] With tag 2 (HEL-011, radar, Second, rice, For example, (meters per second):

[0141] The geographic coordinate system radius is then converted to a screen pixel scale radius via the view projection interface. At the current view zoom level, approximately 0.85 pixels per meter (calculated in real-time by the projection interface). The system configuration has an upper bound on the uncertainty radius. Pixel.

[0142] Table 2: Calculation results of uncertainty at each target location:

[0143] Tag 1 (ADS-B) has a high refresh rate and a lag time of only 1 second. With only 6.8 pixels, the location is extremely precise; Tag 5 (radar, 13-second lag). The result reached 53.7 pixels, reflecting a large range of positional drift. All results were below the upper limit of 120 pixels, requiring no clamping.

[0144] Steps 2-3: Generate multi-level display content versions and corresponding extended conflict detection rectangle sizes For each tag, generate three basic versions: full version, summary version, and minimal version, as well as two compressed versions. Calculate the pixel size of each version, and then extend each side outwards. Generate an extended collision detection rectangle.

[0145] Label 2 (HEL-011, Taking pixels as an example, the full version has a width and height of [missing information]. Pixels, after expansion:

[0146] Table 3: Rectangle dimensions (in pixels) for conflict detection in multi-level version extensions of each tag:

[0147] Due to radar data lag, the expanded rectangles of tags 2, 3, and 5 show a significant increase in size compared to the original size. The width of the expanded rectangles in the full version is close to or exceeds 200 pixels, reflecting the impact of high positional uncertainty on placement space.

[0148] Steps 2-4: Adaptive mesh generation and initialization; Based on the current zoom level Reference scaling ratio , Pixels Calculate the mesh cell size:

[0149] Pick Pixels (not less than the lower bound of 0.8 times the average width of the label, approximately 104 pixels).

[0150] Number of grid columns Number of grid rows Create a 10×18 two-dimensional Boolean array, initializing all elements to unoccupied. Map the four known obstacle regions to grid coordinates and pre-mark them as occupied, occupying a total of 6 grid cells.

[0151] Steps 2-5: Extract the geometric constraint parameters of the labels and sort them by priority; The current geographic coordinates of the five targets are converted into screen anchor point coordinates through the view projection interface. The expected relative offset, distance constraints, and prohibited sector angle range of each label are extracted and sorted into an ordered list in ascending order of business priority. Label 4 (UAV-019) is a slave label of label 1 (UAV-003), and its master-slave dependency relationship is recorded to ensure that label 1 is placed before label 4.

[0152] Table 4. Label Geometric Constraint Parameters and Sorting Results:

[0153] The anchor coordinates of tag 1 (UAV-003) and tag 4 (UAV-019) are close (difference of approximately 27 pixels), and the anchor coordinates of tag 2 (HEL-011) are also close to both, forming a dense area, which is the main challenge for subsequent searches. Tag 4, as a secondary tag, has been adjusted to the position immediately following tag 1 based on dependency relationships.

[0154] Steps 2-6: Search for candidate positions based on a combination of multi-level extended rectangles; The tags in the ordered list are processed sequentially. Tag 1 (UAV-003, priority 1) has a historical location; after verifying its validity, its initial candidate location is set as the historical location. Map it to grid coordinates: column index row index Expand the rectangle by full extent The test is performed. The grid cell (8,3) and its 8-neighborhood are all free. The rectangle does not intersect with any obstacles. It passes all four tests and is directly accepted as the final position. The display level is full version, and the grid cell (8,3) is marked as occupied.

[0155] The desired position of tag 4 (UAV-019, from tag) is calculated based on the anchor point of main tag 1 plus a fixed offset. Expand the rectangle by full extent The test detected a conflict with the neighborhood of an already occupied grid cell (8, 3). An Archimedean spiral search was initiated with a minimum distance of 15 pixels and a spiral step size of... Pixels, initial angle offset Radius. After approximately 14 spiral searches, in the due north direction ( Candidate points are located at a radial distance of approximately 27 pixels (radians) to the x-axis. Extend the rectangle detection using the full version, set it to the final position, and display the full version level.

[0156] Tag 2 (HEL-011, Priority 3) Anchor Point It highly overlaps with the already occupied area. In the spiral search, the entire rectangle is expanded. Due to its large size (uncertainty) (pixels) all conflicted within the first 32 steps; as a last resort, we tried compressing the full version (reducing the line spacing to 0.75 times, expanding the rectangle by approximately...) The conflict persists; try expanding the rectangle in the summary version again. In step 38 The current optimal candidate has passed the test. The search continued until the step limit was reached, but no higher-level feasible location was found. The final display level was determined to be the summary version, and the final location was determined to be... .

[0157] Tag 3 (GA-027) Anchor Point Located in a relatively open area on the right side of the view, the second step of the spiral search involves expanding the rectangle to pass the detection using the full version, resulting in the final position. Displays the full version level.

[0158] Tag 5 (GA-034) Anchor Point Located in the lower left of the view, the third step of the search expands the rectangle to pass the detection with the full version, and the final position is... The display level will show the full version, and the status will change from invisible to fade-in.

[0159] Steps 2-7: Perform forced minimalist backup placement on high-priority targets; Of the five tags in this frame, tag 1 (priority 1, not higher than the minimum guarantee threshold 2) and tag 4 (priority 2, not higher than the minimum guarantee threshold 2) are both high-priority guarantee targets. Since both have successfully found their placement positions in steps 2-6, there is no need to trigger the forced minimal guarantee process, and steps 2-7 do not perform any additional operations on these two tags in this frame. Tags 2, 3, and 5 all have priorities higher than the minimum guarantee threshold. Although tag 2 is downgraded to the summary version, it is still considered successfully placed, and the minimum guarantee process is not triggered.

[0160] Steps 2-8: Calculate the placement state of the next frame based on the seven-state transition rule; Based on the search results from steps 2-6, and combined with the current placement status of each tag, the state of the next frame is calculated according to the seven-state transition rule.

[0161] Table 5. Placement state transition results:

[0162] Label 4 is in the 3rd frame of the fade-in transition (out of 6 frames), with an opacity of [value missing]. Tag 5 was successfully searched for the first time in this frame, transitioning from invisible to fade-in frame 1 with an opacity of [value missing]. Tag 2 was downgraded from fully visible to summary display, switching states directly (no fade-out required, as the search was successful); Tag 3 was upgraded from summary display to fully visible.

[0163] Steps 2-9: Dynamically calculate the inter-frame smoothing factor based on the uncertainty radius and perform smoothing processing; Taking tag 2 (HEL-011) as an example, the smoothing factor is calculated. The target anchor point in the current frame is 12 pixels away from the previous frame, meaning the target movement speed is 12 pixels per frame; the current scaling ratio is the same as the previous frame, and the scaling change is... ; Pixels Pixels. Substitute into the formula:

[0164]

[0165] Let the historical position be The final position of the current frame is Smooth output:

[0166] Tag 2 has significant uncertainties in radar data ( The uncertainty modulation term reduces the smoothing factor from approximately 0.46 (unmodulated) to 0.342, and the weight of historical position increases accordingly, making the output position closer to the historical position, effectively suppressing the tag position fluctuation caused by radar data updates.

[0167] Tag 3's display level has been upgraded from the summary version to the full version, and the rendering size transitions linearly over 6 frames; currently, it's the first frame of the transition.

[0168]

[0169] Steps 2-10: Speed ​​limiting and screen boundary clamping; Calculate the smoothed displacement amplitude for each tag and apply a speed limit. The maximum movement speed of tag 1 (priority 1) is... pixels / frame; Tag 2 (priority 3) maximum movement speed is Pixels / frame. The smoothed displacement of each label in this frame does not exceed the corresponding velocity limit, so velocity clamping is not required. All target anchor points are located inside the view. Boundary constraints (margin of 5 pixels) are applied to the smoothed positions of each label to ensure that the labels are fully displayed within the view. The coordinates of each label in this frame meet the boundary conditions and do not require adjustment.

[0170] Step 2-11: Construct the placement result and update the label state; Construct placement result objects for the 5 labels in this frame, including the final output position, actual rendering size, opacity value, rendering level, and display content version, and assemble them into an output list for use by the rendering module. Register the actual display rectangles of the visible labels to the collision detector, update the historical positions of each label to the smooth output position of this frame, and synchronously update the historical position of label 5 (invisible and fading in) to the position of this frame, providing a basis for smoothing the next frame.

[0171] Table 6 Summary of final placement results for this frame:

[0172] Step 2-12: Save the current frame view context information; Scale the current frame The timestamp 14:32:18 and the geographic coordinates of the view center are stored in a hash table with the view identifier as the key, for use in the next frame to calculate the scaling change and the time difference between frames.

[0173] The data flow throughout the implementation process embodies a complete logical chain: the sensor update timestamp read in step 2-1 flows into step 2-2, where the screen pixel scale uncertainty radius of each target is calculated; this radius is converted into the extended rectangle size of each version in step 2-3, driving the multi-level combination search in step 2-6; the display level in the search results enters step 2-8 to determine the state transition, and the transparency value in the state transition result is directly written into the placement result object in step 2-11; the final position coordinates determined in step 2-6 flow into step 2-9, where an adaptive smoothing factor is calculated in combination with the uncertainty radius, and after smoothing, the position is finally written into the output list of step 2-11 after speed limiting and boundary clamping in step 2-10, and the historical position of the label context is updated synchronously; the scaling ratio saved in step 2-12 will be read as a reference benchmark for scaling changes in the next frame in step 2-9, forming a closed-loop data flow of inter-frame iteration. Due to the high uncertainty of radar data, the expanded rectangle of tag 2 (HEL-011) in the dense area pushes the display level from the full version to the summary version in steps 2-6. At the same time, the smoothing factor is reduced in steps 2-9 to suppress position jitter. The two mechanisms work together to reflect the pervasive influence of uncertainty information in the entire processing flow.

[0174] The embodiments of the present invention have been described above. However, the embodiments are not limited to the specific implementation methods described above. The specific implementation methods described above are merely illustrative and not restrictive. Those skilled in the art can make more equivalent embodiments under the guidance of the present embodiments, and all of them are within the protection scope of the present embodiments.

Claims

1. A method for placing continuous tags on low-altitude flying dynamic targets, characterized in that, Includes the following steps: Obtain the current frame's tag identifier list, view object, tag context information mapping, and collision detector. Each identifier in the tag identifier list uniquely corresponds to a low-altitude flying target. The tag context information mapping includes service priority and smoothed screen coordinates from the previous frame. The grid cell size is calculated based on the scaling ratio of the view object, and a two-dimensional Boolean array is created based on the view size and the grid cell size. The grid cells corresponding to the known obstacle-occupied areas in the collision detector are pre-marked as occupied. Convert the geographic location of each tag's associated target into screen anchor point coordinates, extract geometric constraint parameters, and sort all tags according to business priority; Calculate preliminary candidate locations based on the historical location of the tag or the target anchor point and the expected offset; Grid conflict detection is performed on the preliminary candidate positions. If a conflict exists, candidate positions are generated with the target anchor point as the center and the Archimedes spiral trajectory. Grid conflict detection and rectangle intersection detection are performed one by one. The candidate positions that pass the detection are set as the final positions. An adaptive smoothing factor is used to perform an exponentially weighted moving average between the final position and the historical position to obtain the smoothed position. The smoothed position is subjected to maximum displacement velocity limitation and screen boundary clamping processing, the placement result is output and the label context information is updated.

2. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, The step of calculating the grid cell size based on the scaling ratio of the view object includes: The grid cell size is obtained by multiplying the base grid cell size by a scaling correction factor consisting of an adjustment coefficient and the logarithm of the current scaling ratio relative to the reference scaling ratio. The lower bound clamping process is performed on the grid cell size to ensure that the grid cell size is not less than a preset multiple of the average label size; The number of grid columns is obtained by rounding up the ratio of the view width to the grid cell size, and the number of grid rows is obtained by rounding up the ratio of the view height to the grid cell size.

3. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, The extraction of geometric constraint parameters and sorting of all tags according to business priority includes: Extract the expected relative offset, minimum distance constraint, maximum distance constraint, and prohibited placement sector angle range for each tag. The prohibited placement sector angle range is defined with the target anchor point as the center, indicating the direction sector where tags are not allowed to be placed. All tags are sorted in ascending order of business priority; if the priorities are the same, they are sorted in ascending order of identifier lexicographical order to obtain an ordered list. Iterate through the logical dependencies of each label in the ordered list. If a label is located before its main label in the ordered list, move the label to the position immediately following its main label. The desired placement position of the tag is obtained by adding the screen coordinates of the target anchor point of the main tag to the fixed offset of the tag relative to the main tag.

4. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, The calculation of preliminary candidate positions based on the historical position of the tag or the target anchor point and the expected offset includes: If the historical position of the tag is empty or the tag's forced refresh flag is true, then the target anchor point plus the expected relative offset is used as the initial candidate position. If the tag has a historical location, calculate the Euclidean distance between the historical location and the target anchor point in the current frame, and calculate the azimuth angle of the historical location relative to the target anchor point; When the Euclidean distance satisfies the minimum distance constraint and the maximum distance constraint, and the azimuth angle does not fall within the prohibited sector angle range, the historical position is used as the preliminary candidate position; otherwise, the preliminary candidate position is recalculated by adding the expected relative offset to the target anchor point. The azimuth angle is calculated using the arctangent function. Before comparing it with the prohibited sector angle range, the azimuth angle is uniformly converted to the range of zero to twice pi.

5. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, The process of generating candidate positions based on the Archimedean spiral trajectory with the target anchor point as the center includes: The minimum distance constraint is used as the starting radius for the search. The preset fraction of the grid cell size is used as the radial step distance for each rotation. The angle of the desired offset direction is used as the starting angle offset for the search. The polar angle is increased from zero in a fixed increment. At each step, the distance from the current search point to the center of the circle is calculated according to the polar coordinate equation of the Archimedes spiral. The polar coordinates are converted to Cartesian coordinates and then superimposed on the target anchor point to obtain the candidate point. For each candidate point, perform distance constraint test, prohibited angle constraint test, grid cell and its eight neighboring empty state test, and intersection test between the label rectangle region and the obstacle and the rectangle with the placed label in sequence; If the search distance of a candidate point exceeds the maximum distance constraint, the search is terminated; if no candidate position that satisfies all the tests is found within the preset maximum number of search steps, the label is marked as invisible.

6. The method for placing continuous tags on low-altitude dynamic targets according to claim 5, characterized in that, The fixed angle increment is adaptively adjusted according to the current search radius. The adjustment method is to divide the grid cell size by the current search radius as the angle increment, so that the angle step is large at small radii and small at large radii, thereby keeping the arc length spacing of candidate points consistent at each radius.

7. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, The adaptive smoothing factor is calculated as follows: Based on the basic smoothing factor, the product of the velocity weight coefficient and the normalized value of the target motion velocity is added, along with the product of the scaling change weight coefficient and the normalized value of the scaling ratio change. The calculation result is clamped to limit the adaptive smoothing factor between a preset minimum value and a preset maximum value. The target motion speed is obtained by dividing the Euclidean distance between the target anchor point coordinates in the current frame and the target anchor point coordinates in the previous frame by the inter-frame time difference, and the scaling ratio change is the difference between the scaling ratio of the current frame and the scaling ratio of the previous frame. The maximum displacement speed limit is implemented as follows: calculate the displacement amplitude of the smoothed position relative to the historical position; if the displacement amplitude exceeds the maximum moving speed of the tag, keep the displacement direction unchanged and clamp the displacement amplitude to the maximum moving speed; the maximum moving speed is dynamically set according to the tag's service priority, and the smaller the service priority value, the larger the maximum moving speed.

8. The method for placing continuous tags on low-altitude dynamic targets according to claim 1, characterized in that, Before extracting the geometric constraint parameters, the method further includes: Obtain the data source type identifier and the most recent sensor update timestamp for each tag, and subtract the most recent sensor update timestamp from the current system timestamp to obtain the data lag time; Based on the data source type identifier, query the sensor accuracy parameter table to obtain the standard deviation of position measurement and the standard deviation of velocity measurement; The radius of uncertainty of the geographic coordinate system is obtained by adding the square of the product of the standard deviation of the position measurement and the product of the standard deviation of the velocity measurement and the data lag time using the error propagation formula and taking the square root. The geographic coordinate system position uncertainty radius is converted into an uncertainty circle radius at the screen pixel scale through the coordinate projection interface of the view object, and an upper bound clamp is applied to the uncertainty circle radius; Based on the full text content of the tag, three display content versions are generated: full version, summary version, and minimalist version. The tag pixel size is calculated for each display content version. The uncertainty tolerance margin is obtained by extending each side of the tag pixel rectangle outward by half the radius of the uncertainty circle. The extended conflict detection rectangle size corresponding to each display content version is then generated.

9. The method for placing continuous tags on low-altitude dynamic targets according to claim 8, characterized in that, In the process of performing grid conflict detection on the preliminary candidate positions, for each candidate position, the corresponding extended conflict detection rectangle is tried in order of display content version from full to minimal. The highest display content version that can pass the detection and the corresponding candidate position coordinates are recorded. After the search is completed, the candidate position corresponding to the highest display content version that can pass the detection among all candidate positions is taken as the final position. For tags whose business priority is higher than or equal to the minimum threshold and whose search fails, the Archimedes spiral search is re-executed with the simplified version of the actual pixel size. If no conflict-free position is found, the candidate points are traversed around the minimum search radius, and the candidate point with the smallest sum of overlapping areas with the already placed tag rectangle is selected as the final position. The rendering level of the tag is then set to the highest value of the current frame. The next frame placement state is calculated based on the search results and the current placement state according to the seven-state transition rule. The seven states include fully visible, compressed display, summary display, minimalist display, fade-out, fade-in, and invisible. The state transition chain of tags with a business priority higher than or equal to the minimum threshold is truncated at the minimalist display state. An uncertainty modulation term is introduced into the calculation of the adaptive smoothing factor. The uncertainty modulation term is the negative of the product of the uncertainty modulation coefficient and the normalized value of the uncertainty circle radius, which strengthens the retention weight of historical position for target labels with greater uncertainty.

10. A continuous tag placement system for low-altitude dynamic targets, used to perform the continuous tag placement method for low-altitude dynamic targets as described in any one of claims 1 to 9, characterized in that, include: The data acquisition module is used to acquire the list of tag identifiers, view objects, tag context information mapping, and conflict detector of the current frame; The grid division module is used to calculate the grid cell size according to the scaling ratio of the view object, create a two-dimensional boolean array, and pre-mark the grid cells corresponding to the obstacle-occupied area as occupied. The constraint extraction and sorting module is used to convert the geographical location of the target associated with each label into screen anchor point coordinates, extract geometric constraint parameters, and sort all labels according to business priority. The candidate position calculation module is used to calculate preliminary candidate positions based on the historical position of the tag or the target anchor point and the expected offset. The conflict detection and search module is used to perform grid conflict detection on the preliminary candidate positions. When a conflict exists, candidate positions are generated with the target anchor point as the center and the Archimedes spiral trajectory is followed, and conflict detection is performed one by one. The candidate positions that pass the detection are set as the final positions. The inter-frame smoothing module is used to perform an exponentially weighted moving average of the final position and the historical position using an adaptive smoothing factor to obtain the smoothed position. The post-processing and output module is used to perform maximum displacement velocity limiting and screen boundary clamping processing on the smoothed position, output the placement result and update the label context information.

Citation Information

Patent Citations

  • Video scene content label determination method based on knowledge graph

    CN121456175A

  • Method for determining spatial position of three-dimensional pipeline model label

    CN121982247A