Crowd safety monitoring system, device, and method

KR1020260122774APending Publication Date: 2026-08-12KYONGGI UNIV IND & ACAD COOPERATION FOUND
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2026-01-08
Publication Date
2026-08-12

Smart Images

  • Figure PAT00001_ABST
    Figure PAT00001_ABST
Patent Text Reader

Abstract

The present disclosure relates to a crowd safety monitoring system, method, and apparatus. A crowd safety monitoring system according to one embodiment of the present disclosure may include: a data collection unit that receives video input and converts the location of a crowd into at least one point data; a clustering unit that forms at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and / or a risk detection unit that defines as a risk point an area in which an outlier point occurs that does not belong to any of the at least one crowd clusters among the at least one point data.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Crowd density estimation based on video footage in public spaces can be a highly effective tool for establishing overall situational awareness. Regression coefficient methods can estimate crowd density based on a holistic and collective description of crowd patterns, while intentionally avoiding the actual separation of individual objects or the tracking of feature points. Because explicit segmentation or tracking of individual objects is not required, regression coefficient methods can be a very practical method in crowded environments where detection and tracking are inherently very limited.

[0002] Existing regression coefficient-based devices and methods may require users to provide a vast amount of annotation samples for system learning, such as adding dotted line annotations to head or pedestrian positions across hundreds of frames. Given complex scenes and a large number of cameras, such thorough supervised learning requirements may be practically impossible. Therefore, efficient methods, frameworks, and systems capable of overcoming these challenges may be required.

[0003] In the analysis and understanding of dynamic scenes based on computer vision, there are generally two approaches to behavioral analysis. The first is the so-called 'object-based' detection and tracking approach, where the targets can be individual objects or small groups of objects existing within the monitoring space, such as people or vehicles. In this case, it may be necessary to reliably detect, segment, and track multiple moving objects simultaneously, despite all challenges such as scene complexity, lighting changes, and static and dynamic occlusion. The resulting sets of trajectories can then be utilized in spatiotemporal behavioral analysis based on domain models, such as Bayesian nets or Hidden Markov Models, to detect abnormal / normal events or trends in scene changes.

[0004] The second approach could be a so-called 'non-object-centered' approach aimed at analyzing (high-density) crowds. In contrast to the first method, the challenges faced by this approach can be quite unique. In crowded situations, such as typical public spaces (e.g., busy streets, subway platforms, train station plazas, shopping complexes, etc.), it can be difficult to automatically track dozens or hundreds of objects reliably and consistently over time due to difficult-to-overcome occlusion, unrestricted physical space, and uncontrolled and ever-changing environmental and local lighting. Therefore, new approaches and technologies may be required to address the specific and general challenges of this domain.

[0005] The citation or identification of any document in this application does not constitute an acknowledgment that such document is available as prior art of this disclosure. means of solving the problem

[0006] According to one embodiment of the present disclosure, a crowd safety monitoring system is proposed. A crowd safety monitoring system according to one embodiment of the present disclosure may include: a data collection unit that receives video input and converts the location of a crowd into at least one point data; a clustering unit that forms at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and / or a risk detection unit that defines as a risk point an area where an outlier point occurs that does not belong to any of the at least one crowd clusters among the at least one point data.

[0007] Additionally or generally, the data collection unit can detect the head position of each individual in the crowd in each frame of the video. Additionally or generally, the data collection unit can convert each head position into two-dimensional coordinates (x, y). Additionally or generally, the two-dimensional coordinates may be values ​​obtained by converting the pixel coordinate system of the frame into a meter coordinate system in real space. Additionally or generally, the conversion may be performed through a homography transformation based on the shooting angle and shooting height of the video.

[0008] Additionally or generally, when the data collection unit generates the point data for a plurality of consecutive frames of the video, it may assign a unique identifier to the point data corresponding to the same individual in the crowd. Additionally or generally, the data collection unit may calculate the movement vector of each point data by tracking the change in position of the point data between frames. Additionally or generally, the data collection unit may generate a crowd wave generation signal when the number of point data whose magnitude of the movement vector is greater than or equal to a preset threshold is greater than or equal to a preset ratio relative to the total point data.

[0009] Additionally or generally, the clustering unit may dynamically adjust the neighborhood radius parameter (ε). Additionally or generally, the clustering unit may calculate the neighborhood radius parameter (ε) using the formula √(A / N) × k, where N is the total number of point data and A is the area of ​​the space where the video is filmed. Additionally or generally, k may be a correction factor of 1 or more.

[0010] Additionally or generally, the clustering unit may set the minimum point count parameter (MinPts) for the total number N of the point data. Additionally or generally, the clustering unit may lower the minimum point count parameter (MinPts) to N × a first threshold ratio or less when the standard deviation of the density distribution of the point data is greater than or equal to a preset threshold. Additionally or generally, the clustering unit may raise the minimum point count parameter (MinPts) to N × a second threshold ratio or more when the standard deviation of the density distribution of the point data is less than the threshold.

[0011] Additionally or generally, the clustering unit may, after forming at least one crowd cluster, calculate the center point coordinates and radius of each crowd cluster based on the coordinates of the point data belonging to each crowd cluster. Additionally or generally, the clustering unit may merge the first crowd cluster and the second crowd cluster into a single crowd cluster when the distance between the center point of the first crowd cluster and the center point of the second crowd cluster is smaller than the sum of the radius of the first crowd cluster and the radius of the second crowd cluster.

[0012] Additionally or generally, the risk detection unit may detect the outlier point for each of a plurality of consecutive frames of the video. Additionally or generally, the risk detection unit may determine whether the outlier point occurs repeatedly in the same area in M ​​or more consecutive frames among the plurality of consecutive frames. Additionally or generally, the same area may be defined as an area where at least a third threshold ratio of the coordinates of the outlier points detected in M ​​or more consecutive frames is located within a radius R. Additionally or generally, if the outlier point occurs repeatedly in the same area, the risk detection unit may classify the area as a continuous risk point.

[0013] Additionally or generally, the risk detection unit can track the number of outlier points detected at the continuous risk point over time. Additionally or generally, the risk detection unit can generate a crowd collapse progress signal if the rate of increase in the number of outlier points per unit time exceeds a preset threshold rate of increase. Additionally or generally, when the crowd collapse progress signal is generated, the risk detection unit can transmit an emergency alert to an administrator terminal containing information on the coordinates of the risk point, the number of outlier points, and the rate of increase.

[0014] Additionally or generally, for each of the at least one crowd cluster, the risk detection unit may calculate the density of the crowd cluster by dividing the number of point data belonging to the crowd cluster by the area occupied by the crowd cluster. Additionally or generally, the risk detection unit may classify a crowd cluster whose density is greater than or equal to a first threshold density and less than a second threshold density as a warning crowd cluster. Additionally or generally, the risk detection unit may classify a crowd cluster whose density is greater than or equal to the second threshold density as a risk crowd cluster. Additionally or generally, if an area where the outlier point has occurred exists within a preset distance from the risk crowd cluster, the risk detection unit may classify that area as a top-priority risk point.

[0015] Additionally or generally, the risk detection unit can calculate a direction vector between the risk crowd cluster and the area where the outlier point occurred. Additionally or generally, if the ratio of point data having a movement vector that is identical to the direction vector or whose angle difference with the direction vector is within a threshold angle difference is greater than or equal to a threshold ratio relative to the total point data within the risk crowd cluster,

[0016] It can be determined that the above-mentioned dangerous crowd cluster is moving toward the area where the above-mentioned outlier point occurs. Additionally or generally, the risk detection unit may calculate the estimated arrival time of the moving dangerous crowd cluster based on the distance of the direction vector and the average speed of the movement vector and include it in the notification message.

[0017] Additionally or generally, the system may further include a preprocessing unit disposed between the data collection unit and the clustering unit to preprocess the point data. Additionally or generally, the preprocessing unit may filter and remove point data located in a preset exclusion area within the frame of the video. Additionally or generally, the exclusion area may be set as an area within the frame where a structure, vehicle, or obstacle is located. Additionally or generally, the coordinate information of the exclusion area may be pre-entered by an administrator or set as a structure area automatically detected through an object recognition algorithm.

[0018] Additionally or generally, the preprocessing unit may classify point data among the point data as static point data in which there is no change in position or the amount of change in position is less than a preset threshold in a plurality of consecutive frames. Additionally or generally, if the static point data is maintained at the same location for a preset time or longer, the preprocessing unit may determine the point data as a fallen person and generate fallen person location information separately from the outlier points. Additionally or generally, if the fallen person location information is located inside the risk point or within a preset distance, the preprocessing unit may increase the risk level of the risk point.

[0019] Additionally or generally, the risk detection unit may calculate the average distance between point data within each of the at least one crowd cluster. Additionally or generally, the risk detection unit may classify crowd clusters where the average distance is less than a first distance threshold as a crushing state cluster. Additionally or generally, the risk detection unit may classify an area as a crushing risk point if the outlier point occurs within the crushing state cluster. Additionally or generally, the risk detection unit may generate a highest priority emergency alert for the crushing risk point.

[0020] Additionally or generally, the risk detection unit may extract the outer boundary line of the pressure state cluster. Additionally or generally, the risk detection unit may determine whether the shape of the outer boundary line matches a preset shape pattern. Additionally or generally, the preset shape pattern may include at least one of a shape that is convex in one direction, an elliptical shape, or a circular shape. Additionally or generally, the risk detection unit may classify it as a normal crowd cluster if the outer boundary line matches the preset shape pattern. Additionally or generally, the risk detection unit may classify it as an abnormal crowd cluster if the outer boundary line is irregular in shape or if there are at least a preset number (3) of concave parts. Additionally or generally, the risk detection unit may increase the risk level of the outlier point area that occurred within the abnormal crowd cluster.

[0021] Additionally or generally, the risk detection unit may analyze the spatial relationship between the at least one crowd cluster and the area where the outlier point occurred. Additionally or generally, the risk detection unit may classify the outlier point area as a pressure concentration point if the outlier point area is located between the first crowd cluster and the second crowd cluster, and the movement vectors of the point data within the first crowd cluster and the movement vectors of the point data within the second crowd cluster are directed toward the outlier point area. Additionally or generally, the risk detection unit may calculate the expected pressure value at the pressure concentration point based on the number of point data, movement speed, and density of the first crowd cluster and the second crowd cluster, respectively. Additionally or generally, the risk detection unit may generate a crushing warning signal if the expected pressure value is greater than or equal to a preset threshold pressure value.

[0022] Additionally or generally, the clustering unit may, after forming the at least one crowd cluster, assign cluster identification information to each crowd cluster. Additionally or generally, the clustering unit may track the same crowd cluster in consecutive frames of the video. Additionally or generally, the clustering unit may determine the first crowd cluster and the second crowd cluster as the same crowd cluster and assign the same cluster identification information if the difference in center point coordinates between the first crowd cluster of the Nth frame and the second crowd cluster of the N+1th frame is within a preset distance threshold, and the difference in the number of point data belonging to the first crowd cluster and the second crowd cluster is within a fourth threshold ratio relative to the number of point data of the first crowd cluster.

[0023] Additionally or generally, the risk detection unit may generate a movement path over time for each crowd cluster based on the cluster identification information. Additionally or generally, the risk detection unit may classify a specific point on the movement path as a bottleneck point if the number of crowd clusters passing through that point exceeds a preset threshold. Additionally or generally, the risk detection unit may classify an area as a bottleneck collapse point if the outlier point occurs at the bottleneck point. Additionally or generally, the risk detection unit may generate an alert including location information of the bottleneck collapse point along with information on the estimated arrival times of other crowd clusters scheduled to pass through that point.

[0024] Additionally or generally, the system may further include a visualization unit that visualizes information generated from the data collection unit, the clustering unit, and the risk detection unit. Additionally or generally, the visualization unit may display the point data, the at least one crowd cluster, and the outlier points by overlaying them on the frames of the video. Additionally or generally, the at least one crowd cluster may be displayed in different colors depending on the density of the crowd cluster.

[0025] Additionally or generally, the visualization unit may generate a heatmap for the frames of the video. Additionally or generally, the heatmap may represent the point data density at each location as a color gradient. Additionally or generally, the visualization unit may extract the boundary lines of areas on the heatmap where the density exceeds a preset density threshold and mark them as high-risk areas. Additionally or generally, if the outlier point is located within the high-risk area, the visualization unit may highlight the outlier point with a blinking effect. Additionally or generally, the visualization unit may display the area of ​​the high-risk region and the number of point data points within that area together as text.

[0026] Additionally or generally, the risk detection unit may calculate a risk score for an area defined as the risk point. Additionally or generally, the risk score may quantify the number of outlier points in the area, the density of crowd clusters around the area, the speed of movement of crowd clusters heading toward the area, and the duration of the area, respectively. Additionally or generally, the risk score may be calculated by multiplying each value by a preset weight and then summing them. Additionally or generally, the risk detection unit may classify the risk score as a warning grade if it is above a first score threshold but below a second score threshold. Additionally or generally, the risk detection unit may classify the risk score as a risk grade if it is above the second score threshold.

[0027] According to one embodiment of the present disclosure, a method performed by a first device may be provided. For example, the first device may receive a video input and convert the location of a crowd into at least one point data. Based on the at least one point data, the first device may form at least one crowd cluster based on a neighborhood radius parameter and a minimum point count parameter. The first device may define an area where an outlier point occurs among the at least one point data that does not belong to any of the at least one crowd clusters as a risk point.

[0028] According to one embodiment of the present disclosure, a computer-readable recording medium may be provided. For example, the recording medium may store instructions that cause the processor to perform operations when executed by at least one processor. The operations may include: receiving a video input and converting the location of a crowd into at least one point data; forming at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and defining an area where an outlier point occurs that does not belong to any of the at least one crowd clusters among the at least one point data as a risk point. Brief explanation of the drawing

[0029] FIG. 1 is an overall configuration diagram of a crowd safety monitoring system according to one embodiment of the present disclosure. FIG. 2 is a diagram showing the operation process of the DBSCAN algorithm according to one embodiment of the present disclosure in steps. FIG. 3 is a diagram illustrating the process of converting from a pixel coordinate system to a real space coordinate system through homography conversion according to one embodiment of the present disclosure. FIG. 4 is a diagram illustrating the process of calculating a movement vector and generating a crowd waveform signal according to one embodiment of the present disclosure. FIG. 5 is a diagram illustrating a dynamic adjustment method for neighbor radius parameters and minimum point count parameters according to one embodiment of the present disclosure. FIG. 6 is a diagram showing the determination of merging conditions and the merging process of crowd clusters according to one embodiment of the present disclosure. FIG. 7 is a diagram illustrating a process for identifying continuous risk points through outlier point analysis in consecutive frames according to one embodiment of the present disclosure. FIG. 8 is a diagram illustrating the process of tracking the temporal increase rate of the number of outlier points and generating a crowd collapse progress signal according to one embodiment of the present disclosure. FIG. 9 is a diagram illustrating a method for calculating the density of crowd clusters and classifying risk levels according to one embodiment of the present disclosure. FIG. 10 is a diagram showing the visualization screen configuration of a crowd safety monitoring system according to one embodiment of the present disclosure. Specific details for implementing the invention

[0030] The present disclosure is subject to various modifications and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present disclosure to specific embodiments and should be understood to include all modifications, equivalents, and substitutions that fall within the spirit and scope of the present disclosure.

[0031] Terms such as "first," "second," etc., may be used to describe various components, but said components may not be limited by said terms. Such terms may be used solely for the purpose of distinguishing one component from another. For example, without departing from the scope of the rights of this disclosure, the first component may be named the second component, and similarly, the second component may be named the first component. The term "and / or" includes a combination of a plurality of related described items or any of a plurality of related described items, and is non-exclusive unless otherwise indicated. Where items are listed in this specification, they are merely illustrative descriptions to facilitate the explanation of the spirit of the invention and possible methods of implementation and are therefore not intended to limit the scope of the embodiments of this disclosure.

[0032] In this specification, "A or B" may mean "only A," "only B," or "both A and B." Alternatively, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "only A," "only B," "only C," or "any combination of A, B and C."

[0033] A slash ( / ) or a comma used in this specification may mean "and / or." For example, "A / B" may mean "A and / or B." Accordingly, "A / B" may mean "only A," "only B," or "both A and B." For example, "A, B, C" may mean "A, B or C."

[0034] In this specification, "at least one of A and B" may mean "only A," "only B," or "both A and B." Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted as synonymous with "at least one of A and B."

[0035] Additionally, in this specification, "at least one of A, B and C" may mean "only A," "only B," "only C," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."

[0036] Additionally, parentheses used in this disclosure may mean "for example." In the following description, 'when, if, in case of' may be replaced with 'based on'.

[0037] Technical features described individually within one drawing in this disclosure may be implemented individually or simultaneously.

[0038] When it is stated that one component is "connected" or "connected" to another component, it should be understood that while it may be directly connected or connected to that other component, there may also be other components in between. On the other hand, when it is stated that one component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.

[0039] The terms used herein are used merely to describe specific embodiments and are not intended to limit the disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this specification, terms such as “comprising” or “having” are intended to indicate the presence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.

[0040] Unless otherwise defined, all terms used herein, including technical or scientific terms, are used in the same sense as generally understood by those skilled in the art to which this disclosure pertains. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant technology, and should not be interpreted in an ideal or overly formal sense unless explicitly defined in this specification.

[0041] In describing the embodiments in this specification, the embodiments may be described or illustrated in terms of the described functions or unit blocks that perform the functions. The blocks may be expressed in this specification as one or more devices, units, modules, parts, etc. The blocks may be implemented in hardware by a method of implementing one or more logic gates, integrated circuits, processors, controllers, memory, electronic components, or information processing hardware, which are not limited thereto. Alternatively, the blocks may be implemented in software by a method of implementing application software, operating system software, firmware, or information processing software, which are not limited thereto. A single block may be implemented by being separated into multiple blocks that perform the same function, or conversely, a single block may be implemented to perform the functions of multiple blocks simultaneously. The blocks may also be implemented by being physically separated or combined according to any criteria. The blocks may be implemented to operate in an environment where their physical locations are not specified and they are spaced apart from each other by a communication network, the Internet, a cloud service, or a communication method not limited thereto. Since all of the above-mentioned methods of implementation fall within the scope of various embodiments that a person skilled in the art familiar with the field of information and communication technology can adopt to realize the same technical concept, any detailed methods of implementation should be interpreted as being included within the scope of the technical concept of the invention as set forth in this specification.

[0042] Hereinafter, preferred embodiments of the present disclosure will be described in more detail with reference to the attached drawings. To facilitate an overall understanding of the present disclosure, the same reference numerals are used for identical components in the drawings, and redundant descriptions of identical components are omitted. Furthermore, it is assumed that multiple embodiments are not mutually exclusive and that some embodiments may be combined with one or more other embodiments to form new embodiments.

[0043] FIG. 1 is an overall configuration diagram of a crowd safety monitoring system according to one embodiment of the present disclosure. The embodiment of FIG. 1 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0044] Referring to FIG. 1, according to one embodiment of the present disclosure, a crowd safety monitoring system may include a data collection unit, a clustering unit, and a risk detection unit. For example, the data collection unit may receive a video stream transmitted in real time from a CCTV (closed-circuit television). For example, the video stream may be transmitted at a speed of 30 to 60 frames per second with HD (high definition) resolution (e.g., 1920×1080 pixels) or FHD (full high definition) resolution (e.g., 3840×2160 pixels). For example, the data collection unit may analyze each frame of the video to detect the location of individuals included in the crowd. For example, the location detection may be performed using a P2PNet (point-to-point network) algorithm. For example, the P2PNet algorithm may recognize the head portion of a person within a frame as a feature point and extract the pixel coordinates (e.g., x=450, y=320) of each feature point. For example, the data collection unit can convert extracted pixel coordinates into point data. For example, if 100 crowds are detected in one frame, 100 point data can be generated. For example, each point data may include 2D coordinate information (e.g., (x1, y1), (x2, y2), ..., (x100, y100)).

[0045] For example, the clustering unit may receive at least one point data transmitted from the data collection unit as input. For example, the clustering unit may cluster the point data using the DBSCAN (density-based spatial clustering of applications with noise) algorithm. For example, the DBSCAN algorithm may operate based on a neighborhood radius parameter (ε, epsilon) and a minimum point count parameter (MinPts). For example, the neighborhood radius parameter may serve as a criterion for considering other points located within a radius (e.g., 1.5 meters) centered on a specific point as neighbors. For example, the minimum point count parameter may represent the minimum number of points (e.g., 5) required to form a cluster. For example, the clustering unit may select a specific point A and count the number of other points located within the neighborhood radius parameter from said point A. For example, if the counted number is greater than or equal to the minimum point count parameter, said point A and said neighbor points may be grouped into a single crowd cluster. For example, the clustering unit can form multiple crowd clusters by repeating the above process for all point data.

[0046] For example, the risk detection unit may receive crowd cluster information and point data information from the clustering unit. For example, the risk detection unit may identify point data that does not belong to any crowd cluster among the total point data as outlier points (noise points). For example, if 95 out of 100 point data belong to 3 crowd clusters respectively and 5 point data do not belong to any cluster, the 5 point data may be classified as outlier points. For example, the risk detection unit may analyze the coordinates of the outlier points to identify the area where the outlier points occurred. For example, if the 5 outlier points are located at coordinates (50, 30), (52, 32), (48, 29), (51, 31), and (49, 30), the risk detection unit may define an area within a radius of 3 meters based on the center coordinate (50, 30) as the outlier point occurrence area. For example, the risk detection unit may classify the outlier point occurrence area as a risk point. For example, the risk detection unit can generate risk information data including coordinate information of the risk point, time of occurrence information (e.g., 19:30:15 on December 24, 2025), and information on the number of outlier points (e.g., 5).

[0047] FIG. 2 is a diagram showing the operation process of a DBSCAN algorithm according to one embodiment of the present disclosure in steps. The embodiment of FIG. 2 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, proposals, methods, and / or operations of the embodiments may be omitted.

[0048] Referring to FIG. 2, for example, the DBSCAN algorithm is a density-based clustering method that, unlike existing clustering algorithms such as K-means and hierarchical clustering, does not require the number of clusters to be specified in advance, can detect clusters of arbitrary shapes, and can automatically identify noise points. For example, the clustering unit can receive a point data set detected in the current frame from the data collection unit. For example, the point data set can be expressed in the form D = {p1, p2, p3, ..., pN}, and each point data pi can have 2D coordinates (xi, yi). For example, N=180 point data were detected in a specific frame, and can be expressed in meter unit coordinates such as p1=(3.2, 8.5), p2=(3.5, 8.7), p3=(15.2, 20.1), ..., p180=(25.8, 32.4).

[0049] For example, the DBSCAN algorithm may require two core parameters. For example, the first parameter may be the neighborhood radius (epsilon, ε), which refers to the radius distance for searching for other points to be considered neighbors centered around a specific point. For example, if ε is set to 1.8 meters, all points located within 1.8 meters of a specific point p can be classified as neighbors of p. For example, the second parameter may be the minimum points (MinPts), which refers to the minimum number of points required to form a single clustered area. For example, if MinPts is set to 5, at least 5 points must exist within the radius ε of a specific point for that point to be classified as a core point. For example, the clustering unit may use the total number of point data N=180 and the area of ​​the imaging space A=400 square meters for setting the initial parameters. For example, ε can be calculated as √(A / N) × k = √(400 / 180) × 1.5 = √2.22 × 1.5 ≈ 2.23 meters. For example, MinPts can be set to N × 0.03 = 180 × 0.03 = 5.4, i.e., 5 (decimal places truncated).

[0050] For example, the first step of the DBSCAN algorithm may be the process of calculating the number of neighbor points within a radius ε for each point data. For example, the clustering unit may select point p1=(3.2, 8.5) and calculate the Euclidean distance from p1 for all other points p2, p3, ..., p180. For example, the distance between p1 and p2=(3.5, 8.7) can be calculated as d(p1, p2) = √((3.5-3.2)² + (8.7-8.5)²) = √(0.09 + 0.04) = √0.13 ≈ 0.36 meters. For example, since the distance of 0.36 meters is less than ε=2.23 meters, p2 can be classified as a neighbor of p1. For example, the distance between p1 and p3 = (15.2, 20.1) can be calculated as d(p1, p3) = √((15.2 - 3.2)² + (20.1 - 8.5)²) = √(144 + 134.56) = √278.56 ≈ 16.69 meters. For example, since the above distance of 16.69 meters is greater than ε = 2.23 meters, p3 can be classified as not being a neighbor of p1. For example, the clustering unit can generate the neighbor set Nε(p1) of p1 by performing the above distance calculation for all 180 points. For example, the neighbor set of p1 may include a total of 7 points: p1, p2, p4, p5, p7, p9, and p11.

[0051] For example, the second step of the DBSCAN algorithm may be the process of classifying each point into one of a core point, a border point, or a noise point. For example, if the size of the neighborhood set Nε(p) of a point p is greater than or equal to MinPts, p can be classified as a core point. For example, if the size of the neighborhood set of p1 is |Nε(p1)|=7 and MinPts=5, p1 can be classified as a core point because the condition 7≥5 is satisfied. For example, if the size of the neighborhood set of a point p50 is |Nε(p50)|=3, p50 may not be a core point due to the condition 3<5. For example, if p50 is included in the neighborhood set of another core point, p50 can be classified as a border point. For example, if p50 is not included in the neighborhood set of any core point, p50 can be classified as a noise point. For example, out of 180 point data points, 120 can be classified as core points, 50 as boundary points, and 10 as noise points.

[0052] For example, the third step of the DBSCAN algorithm may be the process of connecting core points to form clusters. For example, the clustering unit may create a new cluster C1 by selecting a core point p1 that has not yet been visited. For example, all points belonging to the neighborhood set Nε(p1) = {p1, p2, p4, p5, p7, p9, p11} of p1 can be added to cluster C1. For example, if p2 is a core point, the neighborhood set Nε(p2) = {p1, p2, p3, p4, p6, p8, p10} of p2 can be identified. For example, points (p3, p6, p8, p10) belonging to Nε(p2) that have not yet been added to C1 can be added to C1. For example, this expansion process can be repeated recursively for Nε(p1) and all neighborhood sets derived therefrom. For example, the formation of cluster C1 can be completed when there are no more points to add. For example, cluster C1 may ultimately contain 45 point data points.

[0053] For example, the clustering unit can create a new cluster C2 by selecting the next core point p25 that has not yet been visited. For example, C2 can be formed by expanding the set of neighbors of p25 in the same way as the process of forming C1. For example, C2 may contain 38 point data points. For example, the clustering unit can repeat the above process until all core points are visited. For example, finally, 5 clusters C1, C2, C3, C4, and C5 may be created. For example, C1 may contain 45 points, C2 38 points, C3 32 points, C4 28 points, and C5 27 points, and a total of 170 points may belong to the clusters. For example, the remaining 10 points may be classified as noise points that do not belong to any cluster.

[0054] For example, the clustering unit can utilize spatial indexing data structures to optimize the computational complexity of the DBSCAN algorithm. For instance, the time complexity of a naive approach to calculating distances for all pairs of points is O(N²), so for N=180, 180 × 180 = 32,400 distance calculations may be required. For instance, the clustering unit can perform neighbor search for each point in O(log N) time using k-dimensional tree or R-tree data structures. For instance, if a k-dimensional tree is used, the time complexity of the entire algorithm can be improved to O(N log N). For instance, for N=180, neighbor search can be completed with 180 × log₂(180) ≈ 180 × 7.49 ≈ 1,348 operations. For example, the clustering unit may use a grid indexing method that divides a 2D coordinate space into a grid. For example, the shooting space can be divided into grid cells of size ε×ε, and the neighbor search range can be limited by searching only the grid cell to which each point belongs and 8 adjacent cells.

[0055] For example, the output of the DBSCAN algorithm may be cluster label information for each point data. For example, points p1, p2, ..., p45 may be labeled cluster label 1, points p46, p47, ..., p83 may be labeled cluster label 2, and points p171, p172, ..., p180 may be labeled cluster label -1 (noise). For example, the clustering unit may calculate statistical information for each cluster. For example, the center point coordinates of cluster C1 may be calculated as the average of the x-coordinates and y-coordinates of the 45 points belonging to C1, resulting in (4.2, 9.3). For example, the radius of cluster C1 may be calculated as the maximum distance from the center point to the points within C1, resulting in 3.5 meters. For example, the area occupied by cluster C1 may be calculated as the convex shell area of ​​the points constituting the cluster, resulting in 28.6 square meters. For example, the density of cluster C1 can be calculated as the number of points divided by the area, which is 45 / 28.6 ≈ 1.57 people / square meter.

[0056] For example, the effectiveness of the DBSCAN algorithm can be quantitatively verified through experimental data. For instance, when the DBSCAN algorithm was applied to a 5-minute video of the 2022 Itaewon accident in Seoul (30 frames per second, 9,000 frames total), an average of 8.2 crowd clusters were detected per frame, with an average of 18.5 points per cluster and an average density of 4.8 people per square meter. For instance, a pattern was observed where the number of noise points increased sharply starting from the frame 60 seconds prior to the accident, rising from an average of 2.1 to 8.7 points per frame. For instance, in the frame 30 seconds prior to the accident, the number of noise points further increased to an average of 15.3 points per frame. For instance, in a comparative experiment with the K-means algorithm, it was difficult to obtain appropriate clustering results based on changes in crowd size because K-means requires the number of clusters to be specified in advance; however, DBSCAN can automatically determine an adaptive number of clusters. For example, in a comparison experiment with hierarchical clustering, hierarchical clustering took an average of 3.2 seconds to process 180 point data points, but DBSCAN can demonstrate approximately 17.8 times faster performance with an average processing time of 0.18 seconds by utilizing kd tree indexing.

[0057] For example, an experiment analyzing the parameter sensitivity of the DBSCAN algorithm can be performed. For instance, when clustering was performed on the same frame while varying the ε value to 1.0m, 1.5m, 2.0m, 2.5m, and 3.0m, a decreasing trend in the average number of clusters was observed: 15.2 at ε=1.0m, 10.8 at ε=1.5m, 8.2 at ε=2.0m, 6.4 at ε=2.5m, and 4.9 at ε=3.0m. For instance, if the ε value is too small, what is actually a single crowd group may be excessively divided into multiple small clusters, and if the ε value is too large, a problem may arise where distinct crowd groups are merged into a single cluster. For example, as a result of experiments conducted by varying the MinPts value to 3, 5, 7, and 10, a trend of increasing noise point ratios was observed: 3.2% when MinPts=3, 5.6% when MinPts=5, 8.1% when MinPts=7, and 12.4% when MinPts=10. For example, as the MinPts value increases, the criteria for distinguishing core points becomes stricter, so more points may be classified as noise.

[0058] For example, the noise detection performance of the DBSCAN algorithm can be evaluated by comparing it with ground truth data. For instance, when actual crowd collapse points are marked on a dataset of 100 frames manually labeled by experts, a total of 127 outlier regions can be identified. For instance, among the noise point regions detected by the DBSCAN algorithm, 112 correspond to the actual collapse points (precision = 112 / 135 ≈ 83.0%), and among the 127 actual collapse points, 112 were detected by DBSCAN (recall = 112 / 127 ≈ 88.2%). For instance, the F1 score is calculated as 2 × (precision × recall) / (precision + recall) = 2 × (0.830 × 0.882) / (0.830 + 0.882) ≈ 0.855, indicating excellent detection performance. For example, compared to the F1 score of 0.623 of the existing density threshold-based method (which simply identifies only high-density areas as risk), the DBSCAN-based method can show a 37.3% improvement in performance.

[0059] For example, the DBSCAN algorithm can effectively handle the diversity of crowd shapes. For instance, regarding crowds of various shapes—such as circular crowds, elliptical crowds, long ribbon-shaped lines, and L-shaped queues—DBSCAN can group high-density areas into a single cluster regardless of shape. For instance, since K-means assumes spherical clusters, it may incorrectly divide an L-shaped queue into two or more clusters, whereas DBSCAN can correctly recognize the entire L-shape as a single cluster. For instance, this characteristic of the DBSCAN algorithm enables it to adaptively respond to various spatial forms (narrow alleys, wide plazas, T-junctions, stairs, etc.) in real-world crowd safety monitoring environments.

[0060] For example, the stability of the DBSCAN algorithm can be evaluated through cluster consistency over consecutive frames. For instance, stable tracking performance can be demonstrated as the standard deviation of the change in center point coordinates of clusters corresponding to the same crowd group over 10 consecutive frames (0.33-second intervals) is measured at an average of 0.42 meters. For instance, the standard deviation of the change in the number of points belonging to a cluster between frames is measured at an average of 2.8 points (approximately 15% of the total number of points), indicating that the cluster size can also be maintained stably. For instance, even when point detection errors occur due to sudden changes in lighting or temporary occlusion, DBSCAN utilizes density information from surrounding points, thereby providing clustering results that are robust against errors in individual points.

[0061] FIG. 3 is a diagram illustrating the process of converting from a pixel coordinate system to a real space coordinate system through homography transformation according to one embodiment of the present disclosure. The embodiment of FIG. 3 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0062] Referring to FIG. 3, according to one embodiment of the present disclosure, a data collection unit can detect the location of individual members of a crowd by processing each frame of a video individually. For example, the data collection unit may apply an object detection algorithm to the frame images. For example, the object detection algorithm may include at least one of P2PNet, YOLO (You Only Look Once), or Faster R-CNN (region-based convolutional neural network). For example, the data collection unit may detect a region corresponding to a person's head in the frame images. For example, the head detection may be performed using a pre-trained deep learning model. For example, the deep learning model may be a convolutional neural network (CNN) trained on a dataset of crowd images ranging from tens of thousands to hundreds of thousands (e.g., ShanghaiTech dataset, UCF-QNRF dataset).

[0063] For example, the data acquisition unit can represent the center point of each detected head position as two-dimensional pixel coordinates. For example, if the frame resolution is 1920×1080 pixels, the detected head position can be represented as an integer value within the range where the x-coordinate is 0 or greater and 1920 or less, and the y-coordinate is 0 or greater and 1080 or less. For example, the head position of the first person can be represented as pixel coordinates (450, 320), and the head position of the second person can be represented as pixel coordinates (780, 510). For example, the data acquisition unit can convert the above pixel coordinate system into a coordinate system in real space. For example, the conversion can undergo a camera calibration process using the camera's shooting parameters (e.g., focal length, lens distortion coefficient, principal point position). For example, the data acquisition unit can receive information on the camera's installation height (e.g., 5 meters from the ground) and shooting angle (e.g., 45 degrees downward relative to the horizontal plane) when shooting video.

[0064] For example, the data acquisition unit can calculate a homography transformation matrix. For example, the homography transformation matrix can be represented as a 3×3 matrix and can represent the correspondence between a pixel coordinate system and a real space coordinate system. For example, the data acquisition unit can calculate the homography transformation matrix using four or more reference points. For example, the reference points can be composed of pairs of pixel coordinates and real coordinates of markers pre-installed in the shooting space. For example, the first reference point can be set to real coordinates (0, 0) corresponding to pixel coordinates (100, 900), the second reference point to real coordinates (20, 0) corresponding to pixel coordinates (1800, 900), the third reference point to real coordinates (5, 15) corresponding to pixel coordinates (400, 200), and the fourth reference point to real coordinates (15, 15) corresponding to pixel coordinates (1500, 200). For example, the data acquisition unit can apply the homography transformation matrix to the pixel coordinates of each head position to convert them into meter-unit coordinates in real space. For example, pixel coordinates (450, 320) can be converted into real coordinates (3.2 meters, 8.5 meters). For example, the converted 2D coordinates can represent the x-axis position and y-axis position in a coordinate system that projects the shooting space onto a plane.

[0065] FIG. 4 is a diagram illustrating a process for calculating a movement vector and generating a crowd waveform signal according to one embodiment of the present disclosure. The embodiment of FIG. 4 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0066] Referring to FIG. 4, according to one embodiment of the present disclosure, a data collection unit can track the movement of individual crowds by utilizing the temporal continuity of the video. For example, the data collection unit can analyze the correspondence between point data generated in the Nth frame (e.g., frame number 100) and point data generated in the N+1th frame (e.g., frame number 101). For example, the analysis of the correspondence may be performed using at least one of the Hungarian algorithm, the Kalman filter, or the DeepSORT algorithm. For example, the data collection unit can calculate the Euclidean distance between point data A (coordinates: (3.0, 8.0)) of the Nth frame and point data B (coordinates: (3.1, 8.2)) of the N+1th frame. For example, the above Euclidean distance can be calculated as √((3.1-3.0)² + (8.2-8.0)²) = 0.22 meters. For example, if the above Euclidean distance is less than a preset threshold (e.g., 0.5 meters), the data collection unit can determine that point data A and point data B correspond to the same person.

[0067] For example, the data collection unit may assign a unique identifier to point data determined to be the same person. For example, the unique identifier may be expressed as an integer index (e.g., ID=1, ID=2, ..., ID=100) or as a string (e.g., "PERSON_001", "PERSON_002"). For example, if there are 10 point data generated in the first frame, unique identifiers from ID=1 to ID=10 may be assigned to each point data. For example, if the coordinates of the point data corresponding to ID=1 in the second frame change from (3.0, 8.0) to (3.1, 8.2), the data collection unit may record the coordinate change as movement information for the corresponding ID. For example, the data collection unit may calculate the movement vector for each point data. For example, the above movement vector can be calculated as the difference between the start coordinates and the end coordinates, and the movement vector for ID=1 can be expressed as (3.1-3.0, 8.2-8.0) = (0.1, 0.2). For example, the magnitude of the above movement vector can be calculated as √(0.1² + 0.2²) = 0.22 meters.

[0068] For example, the data collection unit can count the number of point data points among the total point data points whose magnitude of the movement vector is greater than or equal to a preset threshold. For example, the threshold can be set within a range of 0.3 meters to 1.0 meters. For example, if 60 point data points out of a total of 100 point data points have a movement vector magnitude of 0.5 meters or more, the data collection unit can classify the 60 points as fast-moving point data points. For example, the data collection unit can calculate the ratio of the fast-moving point data points. For example, the ratio can be calculated as (number of fast-moving point data points / total number of point data points) × 100, and in the above example, it can be calculated as (60 / 100) × 100 = 60%. For example, if the ratio is greater than or equal to a preset ratio threshold (e.g., 50%), the data collection unit can generate a crowd wave generation signal. For example, the crowd waveform generation signal can be generated in the form of a digital signal (e.g., a logical value 1 or a flag bit setting) and transmitted to a subsequent processing unit to be used as a trigger for generating a warning message.

[0069] FIG. 5 is a diagram illustrating a dynamic adjustment method for a neighborhood radius parameter and a minimum point count parameter according to one embodiment of the present disclosure. The embodiment of FIG. 5 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0070] Referring to FIG. 5, according to one embodiment of the present disclosure, the clustering unit can dynamically adjust the neighborhood radius parameter of the DBSCAN algorithm. For example, the clustering unit may receive the total number of point data N detected in the current frame from the data collection unit. For example, if N=150 point data are detected in a specific frame, the clustering unit may store the value as a variable. For example, the clustering unit may receive area information A of the space where the video is filmed. For example, the area information may be pre-set by an administrator or automatically calculated during the camera calibration process. For example, if the filming space is a rectangular area with a width of 20 meters and a height of 15 meters, A may be set to 20×15=300 square meters. For example, if the filming space is an irregular polygonal shape, the area may be calculated using a shoelace formula utilizing the vertex coordinates of the polygon.

[0071] For example, the clustering unit can calculate the neighborhood radius parameter ε using the formula √(A / N) × k. For example, if A = 300 square meters and N = 150, √(300 / 150) = √2 ≈ 1.41 can be calculated. For example, the correction factor k can be set to a real value greater than or equal to 1. For example, if k is set to 1.5, ε = 1.41 × 1.5 = 2.12 meters can be calculated. For example, the clustering unit can use the calculated ε value as the neighborhood radius parameter of the DBSCAN algorithm. For example, other point data located within a radius of 2.12 meters centered on point data P can be considered as neighbors of P. For example, the clustering unit can dynamically recalculate the ε value as the number of point data N changes. For example, if N increases to 200 in the next frame, ε can be reduced to √(300 / 200) × 1.5 = 1.22 × 1.5 = 1.84 meters. For example, as N increases, the point data density increases, so sufficient neighbors can be secured with a smaller radius, which can be adjusted in the direction of decreasing ε.

[0072] For example, the correction factor k can be set differently depending on the characteristics of the shooting space. For example, the clustering unit may receive shape information of the shooting space (e.g., alleyway, plaza, indoor space). For example, the shape information may be a value selected by the administrator during the initial system setup or a value automatically determined by the space shape classification model. For example, if the shooting space is a narrow alleyway with a width of 3 meters or less, k may be set to a value in the range of 1.0 to 1.5. For example, if the shooting space is a wide plaza with a width of 50 meters or more, k may be set to a value in the range of 2.0 to 2.5. For example, if the shooting space is an indoor space with a width of 10 meters to 30 meters (e.g., subway station waiting room, inside a shopping mall), k may be set to a value in the range of 1.5 to 2.0. For example, the clustering unit may store the set k value in memory and apply the same k value to all frames. For example, the k value may remain a fixed value unless the shape of the shooting space changes.

[0073] According to one embodiment of the present disclosure, the clustering unit can dynamically adjust the minimum point count parameter MinPts according to the distribution characteristics of the point data. For example, the clustering unit may receive the total number of point data N of the current frame. For example, if N=150, the clustering unit may set the initial MinPts value to N × 0.03 = 150 × 0.03 = 4.5, i.e., 5 (rounded to the nearest whole number). For example, the clustering unit may analyze the density distribution of the point data. For example, the density distribution analysis may be performed by dividing the shooting space into a plurality of grid cells and counting the number of point data included in each grid cell. For example, if the shooting space is divided into grid cells of size 1 meter × 1 meter, a 300 square meter space may be divided into 300 grid cells. For example, the first grid cell may contain 10 point data, the second grid cell may contain 2 point data, and the third grid cell may contain 0 point data.

[0074] For example, the clustering unit may consider the number of point data in each grid cell as a single data set and calculate the standard deviation of the data set. For example, if the number of point data in 300 grid cells is {10, 2, 0, 5, 8, 1, ...}, the clustering unit may calculate the mean value and the standard deviation. For example, the mean value may be calculated as 0.5 (150 point data / 300 grid cells) and the standard deviation as 3.2. For example, the clustering unit may compare the standard deviation value with a preset threshold value. For example, the threshold value may be set within the range of 2.0 to 4.0. For example, if the threshold value is set to 2.5, the standard deviation of 3.2 corresponds to a value greater than or equal to the threshold value of 2.5, so the density distribution may be determined to be non-uniform. For example, if the standard deviation of the density distribution is greater than or equal to a threshold value, the clustering unit may reduce MinPts to N × the first threshold ratio or less. For example, if the first threshold ratio is 0.02, MinPts may be set to 150 × 0.02 = 3 or less. For example, the clustering unit may adjust MinPts to 3.

[0075] For example, if the standard deviation of the density distribution is below a threshold, the clustering unit may increase MinPts to N × a second threshold ratio or higher. For example, if the standard deviation is calculated to be 1.8 and is below the threshold of 2.5, the density distribution may be determined to be uniform. For example, if the second threshold ratio is 0.03, MinPts can be set to 150 × 0.03 = 4.5, i.e., 5 or more. For example, the clustering unit may adjust MinPts to 5 or a greater value (e.g., 6, 7). For example, if the density is uniform, the reliability of noise detection can be increased by requiring more neighbor points. For example, the clustering unit may perform clustering by applying the adjusted MinPts value to the DBSCAN algorithm. For example, if the number of neighbor points of a specific point P is 4, when MinPts=5, P is classified as an outlier point, but when MinPts=3, P can be included in a cluster.

[0076] FIG. 6 is a diagram illustrating the determination of merging conditions and the merging process of crowd clusters according to one embodiment of the present disclosure. The embodiment of FIG. 6 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0077] Referring to FIG. 6, according to one embodiment of the present disclosure, the clustering unit may perform a post-processing step of additionally merging the crowd clusters initially formed. For example, the clustering unit may generate five crowd clusters (C1, C2, C3, C4, C5) through the DBSCAN algorithm. For example, the clustering unit may calculate the center point coordinates of the corresponding cluster using the coordinates of the point data belonging to each crowd cluster. For example, if there are 10 point data belonging to cluster C1 and the coordinates of each point data are (x1, y1), (x2, y2), ..., (x10, y10), the center point coordinates may be calculated as ((x1+x2+...+x10) / 10, (y1+y2+...+y10) / 10). For example, the center point coordinates of C1 may be calculated as (5.0, 10.0), and the center point coordinates of C2 may be calculated as (8.0, 12.0).

[0078] For example, the clustering unit can calculate the radius of each crowd cluster. For example, the radius can be defined as the maximum value among the distances from the cluster center point to the point data within the cluster. For example, if the distances from the center point (5.0, 10.0) of C1 to the 10 point data belonging to C1 are {0.5, 1.2, 0.8, 1.5, 2.0, 1.1, 0.9, 1.8, 1.3, 1.6} meters, respectively, the radius of C1 can be set to the maximum value of 2.0 meters. For example, the radius of C2 can be calculated as 1.5 meters. For example, the clustering unit can calculate the distance between the center points of the first crowd cluster and the second crowd cluster. For example, the Euclidean distance between the center point of C1 (5.0, 10.0) and the center point of C2 (8.0, 12.0) can be calculated as √((8.0-5.0)² + (12.0-10.0)²) = √(9+4) = √13 ≈ 3.6 meters.

[0079] For example, the clustering unit can compare the distance between the center points with the sum of the radii of the two clusters. For example, the sum of the radius of C1 (2.0 meters) and the radius of C2 (1.5 meters) may be 3.5 meters. For example, since the distance between the center points (3.6 meters) is greater than the sum of the radii (3.5 meters), C1 and C2 may not be merged. For example, if the center point of C3 is (6.0, 11.0) and the radius is 1.0 meter, the distance between the center points of C1 and C3 can be calculated as √((6.0-5.0)² + (11.0-10.0)²) = √2 ≈ 1.4 meters. For example, the sum of the radius of C1 (2.0 meters) and the radius of C3 (1.0 meter) may be 3.0 meters. For example, since the distance between center points is 1.4 meters, the sum of the radii is less than 3.0 meters, the clustering unit may determine C1 and C3 as targets for merging. For example, the clustering unit may integrate the point data belonging to C1 and the point data belonging to C3 into a single cluster. For example, the new merged cluster may have a total of 18 point data, including 10 point data from C1 and 8 point data from C3. For example, the clustering unit may recalculate the center points and radii of the merged cluster. For example, the clustering unit may check the merge condition for all cluster pairs and merge all cluster pairs that satisfy the condition.

[0080] FIG. 7 is a diagram illustrating a process for identifying continuous risk points through outlier point analysis in consecutive frames according to one embodiment of the present disclosure. The embodiment of FIG. 7 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0081] Referring to FIG. 7, according to one embodiment of the present disclosure, a risk detection unit can determine a risk point by considering temporal continuity. For example, the risk detection unit can receive outlier point information from a clustering unit in a first frame of a video (e.g., frame number 100). For example, if three outlier points are detected in the first frame and the coordinates of each outlier point are (10.0, 20.0), (10.5, 20.2), and (9.8, 19.9), the risk detection unit can store the coordinate information in memory. For example, the risk detection unit can additionally detect outlier points in a second frame (e.g., frame number 101). For example, if four outlier points are detected in the second frame and each coordinate is (10.2, 20.1), (10.6, 20.3), (9.9, 19.8), (10.1, 20.0), the risk detection unit can store the coordinates together with the outlier point coordinates of the first frame.

[0082] For example, the risk detection unit can determine whether outlier points occur repeatedly in the same area across M consecutive frames. For example, M can be set to a natural number greater than or equal to 3, and if M is set to 5, outlier point information from 5 consecutive frames (e.g., frames 100, 101, 102, 103, 104) can be subject to analysis. For example, the risk detection unit can collect the coordinates of outlier points detected in each of the 5 frames as a single data set. For example, if 3 outlier points are detected in frame 100, 4 in frame 101, 5 in frame 102, 3 in frame 103, and 4 in frame 104, a total of 19 coordinate data can be collected. For example, the risk detection unit can calculate the center point of the 19 coordinates. For example, the center point coordinates can be calculated using the formula ((x1+x2+...+x19) / 19, (y1+y2+...+y19) / 19), and the result of the calculation can be (10.1, 20.0).

[0083] For example, the risk detection unit can count the number of outlier points located within a radius R from the center point. For example, R can be set within a range of 1 meter to 5 meters, and if R is set to 2 meters, outlier points located within 2 meters from the center point (10.1, 20.0) can be counted. For example, it can be confirmed that 16 out of 19 outlier points are located within the radius of 2 meters. For example, the risk detection unit can calculate the ratio of the 16 points to the total 19 points. For example, the ratio can be calculated as (16 / 19) × 100 ≈ 84.2%. For example, the risk detection unit can compare the ratio with a third threshold ratio. For example, if the third threshold ratio is set to 80%, the calculated ratio of 84.2% may correspond to a threshold ratio of 80% or more. For example, if the above conditions are satisfied, the risk detection unit may define an area within a radius of 2 meters based on the center point (10.1, 20.0) as the same area. For example, the risk detection unit may determine that an outlier point has repeatedly occurred for 5 consecutive frames in the same area and classify the area as a continuous risk point. For example, the risk detection unit may store information about the continuous risk point (e.g., center coordinates, radius, detection start time, duration) in a database.

[0084] FIG. 8 is a diagram illustrating the process of tracking the temporal increase rate of the number of outlier points and generating a crowd collapse progress signal according to one embodiment of the present disclosure. The embodiment of FIG. 8 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0085] Referring to FIG. 8, according to one embodiment of the present disclosure, a risk detection unit can monitor changes in the number of outlier points occurring at a continuous risk point. For example, the risk detection unit can track the number of outlier points over time for an area classified as a continuous risk point (e.g., center coordinates (10.1, 20.0), radius 2 meters). For example, a trend may be observed in which the number of outlier points within the area increases from 3 in Frame 100, 4 in Frame 101, 5 in Frame 102, 6 in Frame 103, and 8 in Frame 104. For example, the risk detection unit can calculate the increase in the number of outlier points between each frame. For example, when moving from frame 100 to 101, the increment is 4-3=1, when moving from frame 101 to 102, the increment is 5-4=1, when moving from frame 102 to 103, the increment is 6-5=1, and when moving from frame 103 to 104, the increment is 8-6=2.

[0086] For example, the risk detection unit can calculate the rate of increase in the number of outlier points per unit time. For example, if the frame rate of the video is 30fps (frames per second), the time interval between frames may be 1 / 30 ≈ 0.033 seconds. For example, since the number of outlier points increased by 2 while moving from frame 103 to frame 104, the rate of increase per second can be calculated as 2 points / 0.033 seconds ≈ 60 points / second. For example, the risk detection unit can evaluate the rate of increase in units of one second. For example, if the number of outlier points increased from 3 to 10 over 30 frames (corresponding to one second), the rate of increase per second can be calculated as (10-3) / 1 = 7 points / second. For example, the risk detection unit can compare the above rate of increase with a preset threshold rate of increase. For example, if the threshold growth rate is set to 5 per second, the calculated growth rate of 7 per second may exceed the threshold growth rate.

[0087] For example, the risk detection unit may generate a crowd collapse progress signal if the growth rate exceeds a threshold growth rate. For example, the crowd collapse progress signal may be expressed in the form of a Boolean value (e.g., True / False) or an integer flag (e.g., 0=Normal, 1=Warning, 2=Danger). For example, when the signal is generated, the risk detection unit may configure emergency notification data. For example, the emergency notification data may include coordinate information of the danger point (e.g., "Center coordinates: (10.1, 20.0), Radius: 2 meters"), information on the current number of outlier points (e.g., "Current outlier points: 10"), and growth rate information (e.g., "Growth rate: 7 / second"). For example, the emergency notification data may additionally include time of occurrence information (e.g., "2025-12-24 19:35:42"). For example, the risk detection unit may transmit the emergency notification data to an administrator terminal. For example, the transmission may be performed in at least one of the following methods: an HTTP (hypertext transfer protocol) request through a TCP / IP (transmission control protocol / internet protocol) network, a message publication using the MQTT (message queuing telemetry transport) protocol, or a real-time push through a WebSocket connection. For example, an administrator terminal may receive the emergency notification and display it on the screen in the form of a pop-up window or output an alarm sound.

[0088] FIG. 9 is a diagram illustrating a method for calculating the density of a crowd cluster and classifying the risk level according to one embodiment of the present disclosure. The embodiment of FIG. 9 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0089] Referring to FIG. 9, according to one embodiment of the present disclosure, a risk detection unit can evaluate the risk level by calculating the density of a crowd cluster. For example, the risk detection unit may receive information on the number of point data belonging to a first crowd cluster from a clustering unit. For example, if the first crowd cluster contains 30 point data, the risk detection unit may store the number as a variable. For example, the risk detection unit may calculate the area occupied by the first crowd cluster. For example, the area calculation may be performed by calculating the area of ​​a minimum bounding polygon surrounding the points using the coordinates of the point data belonging to the cluster. For example, if the point data of the first crowd cluster are distributed in a roughly circular shape and have a radius of 2 meters, the occupied area may be approximated as π × 2² ≈ 12.56 square meters. For example, if the point data of the first crowd cluster is distributed in an irregular shape, the risk detection unit can apply a convex hull algorithm to generate a convex polygon surrounding the points and calculate the area of ​​the polygon.

[0090] For example, the risk detection unit may define the value obtained by dividing the number of point data by the occupied area as the density. For example, if the point data of the first crowd cluster is 30 and the occupied area is 12.56 square meters, the density may be calculated as 30 / 12.56 ≈ 2.39 people / square meter. For example, the risk detection unit may compare the above density value with the first threshold density and the second threshold density. For example, the first threshold density may be set to 5 people / square meter and the second threshold density to 6 people / square meter. For example, if the density of the second crowd cluster is calculated to be 5.5 people / square meter, the density may correspond to the first threshold density of 5 people / square meter or more and the second threshold density of 6 people / square meter or less. For example, the risk detection unit may classify the second crowd cluster satisfying the above conditions as a warning crowd cluster. For example, if the density of the third crowd cluster is calculated to be 6.8 people / square meter, the said density may correspond to a second threshold density of 6 people / square meter or more. For example, the risk detection unit may classify the third crowd cluster satisfying the said condition as a risk crowd cluster.

[0091] For example, the risk detection unit can calculate the distance between the location of the risk crowd cluster and the location of the outlier point occurrence area. For example, if the center point coordinates of the third crowd cluster are (15.0, 25.0) and the center coordinates of the outlier point occurrence area are (18.0, 27.0), the Euclidean distance between the two points can be calculated as √((18.0-15.0)² + (27.0-25.0)²) = √(9+4) = √13 ≈ 3.6 meters. For example, the risk detection unit can compare the above distance with a preset distance threshold. For example, the distance threshold can be set within a range of 3 meters to 10 meters, and if set to 5 meters, the calculated distance of 3.6 meters may fall within the threshold. For example, the risk detection unit can determine that the outlier point occurrence area exists within 5 meters of the risk crowd cluster and classify the area as the highest risk point. For example, the risk detection unit may assign a high priority value (e.g., priority=1) to the highest risk point and a low priority value (e.g., priority=3) to the general risk point. For example, the above priority information may be used to determine the dispatch order of warning notifications or the display intensity.

[0092] According to one embodiment of the present disclosure, a risk detection unit may analyze the movement direction of a risk crowd cluster to evaluate additional risk. For example, the risk detection unit may receive the center point coordinates of a third crowd cluster classified as a risk crowd cluster (e.g., (15.0, 25.0)) and the center coordinates of an outlier point occurrence area (e.g., (18.0, 27.0)). For example, the risk detection unit may calculate a direction vector connecting the two coordinates. For example, the direction vector may be expressed as (18.0 - 15.0, 27.0 - 25.0) = (3.0, 2.0). For example, the risk detection unit may convert the direction vector into an angle. For example, the angle may be calculated as atan2(2.0, 3.0) ≈ 33.7 degrees using an arctangent function. For example, the angle may be a value measured in a counterclockwise direction relative to the positive x-axis direction.

[0093] For example, the risk detection unit can receive the movement vector of each point data belonging to the third crowd cluster from the data collection unit. For example, if there are 20 point data belonging to the third crowd cluster and the movement vector of each point data is calculated, the risk detection unit can receive 20 movement vector information inputs. For example, the movement vector of the first point data can be expressed as (0.3, 0.2), the movement vector of the second point data as (0.4, 0.3), and the movement vector of the third point data as (0.35, 0.25). For example, the risk detection unit can convert each movement vector into an angle. For example, the angle of the movement vector of the first point data can be calculated as atan2(0.2, 0.3) ≈ 33.7 degrees, the angle of the movement vector of the second point data as atan2(0.3, 0.4) ≈ 36.9 degrees, and the angle of the movement vector of the third point data as atan2(0.25, 0.35) ≈ 35.5 degrees. For example, the danger detection unit can calculate the angle difference between the angle of each movement vector and the angle of the direction vector (33.7 degrees). For example, the angle difference of the first point data can be calculated as |33.7 - 33.7| = 0 degrees, the angle difference of the second point data as |36.9 - 33.7| = 3.2 degrees, and the angle difference of the third point data as |35.5 - 33.7| = 1.8 degrees.

[0094] For example, the risk detection unit can count the number of point data points whose angle difference is within 30 degrees. For example, it may be confirmed that 15 out of 20 point data points have an angle difference of within 30 degrees relative to the direction vector. For example, the risk detection unit can calculate the ratio that the said 15 points account for of the total 20 points. For example, the ratio may be calculated as (15 / 20) × 100 = 75%. For example, the risk detection unit can compare the said ratio with a preset ratio threshold (e.g., 60%). For example, if the calculated ratio of 75% is greater than or equal to the threshold of 60%, the risk detection unit can determine that the third crowd cluster is moving toward the area where the outlier point occurred. For example, the risk detection unit can calculate the average movement speed of the third crowd cluster. For example, if the magnitudes of the movement vectors of 20 point data are each {0.36, 0.50, 0.43, ...} meters and the average value is 0.45 meters, considering that the frame interval is 0.033 seconds, the average movement speed per second can be converted to 0.45 / 0.033 ≈ 13.6 meters / second.

[0095] For example, the risk detection unit can calculate the estimated arrival time by dividing the distance (e.g., 3.6 meters) between the third crowd cluster and the outlier point occurrence area by the average movement speed (e.g., 13.6 meters / second). For example, the estimated arrival time can be calculated as 3.6 / 13.6 ≈ 0.26 seconds. For example, the risk detection unit can include the above estimated arrival time information in a notification message. For example, the notification message can be generated in the form of text such as "The risk crowd cluster is moving toward the outlier point area, expected to arrive in about 0.3 seconds." For example, the above notification message can be displayed on the screen of the administrator terminal or output as voice through text-to-speech technology.

[0096] According to one embodiment of the present disclosure, the system may include a preprocessing unit between a data collection unit and a clustering unit. For example, the preprocessing unit may receive point data from the data collection unit. For example, if the data collection unit detects 120 point data within a frame, the preprocessing unit may receive the 120 point data and coordinate information for each point data. For example, the preprocessing unit may store exclusion area information. For example, the exclusion area may represent an area where structures installed within the shooting space (e.g., pillars, walls, fences), vehicles (e.g., parked cars, motorcycles), or obstacles (e.g., trash cans, benches) are located. For example, when the system is initially configured, an administrator may upload a floor plan image of the shooting space and specify the boundaries of the exclusion area by clicking or dragging a mouse on the floor plan. For example, the exclusion area can be defined in the form of a polygon, and the vertex coordinates of the first exclusion area can be set to [(2.0, 5.0), (4.0, 5.0), (4.0, 8.0), (2.0, 8.0)].

[0097] For example, the preprocessing unit may automatically detect exclusion areas using an object recognition algorithm. For example, the preprocessing unit may apply instance segmentation algorithms such as Mask R-CNN or YOLOv8 to a representative frame of a video (e.g., the first frame or the median image of multiple frames). For example, the algorithm may detect objects such as pillars, benches, and vehicles within the frame and generate pixel masks for each object. For example, the pixel mask of a detected pillar may be converted into actual spatial coordinates and set as an exclusion area. For example, the preprocessing unit may determine whether the point data is located within the exclusion area by comparing the coordinates of the point data with the boundary of the exclusion area. For example, if the coordinates of point data P are (3.0, 6.0) and the boundary of the first exclusion area is in the range of x-coordinates 2.0 to 4.0 and y-coordinates 5.0 to 8.0, point P may be determined to be located within the exclusion area. For example, the preprocessing unit may remove point data located within the exclusion area. For example, if 8 of the 120 point data are located inside the exclusion area, the preprocessing unit can remove the 8 and pass only the remaining 112 point data to the clustering unit.

[0098] According to one embodiment of the present disclosure, the preprocessing unit can detect a fallen person by identifying static point data. For example, the preprocessing unit can track changes in the location of the same person using a unique identifier assigned to the point data. For example, if the coordinates of the point data with ID=25 are recorded as (10.0, 15.0) in frame 100, (10.05, 15.02) in frame 101, (10.03, 15.01) in frame 102, and (10.04, 15.0) in frame 103, the preprocessing unit can calculate the amount of change in location between each frame. For example, the change in position from frame 100 to 101 can be calculated as √((10.05-10.0)² + (15.02-15.0)²) ≈ 0.054 meters, and the change in position from frame 101 to 102 can be calculated as √((10.03-10.05)² + (15.01-15.02)²) ≈ 0.022 meters. For example, the preprocessing unit can compare the above change in position amounts with a preset threshold value (e.g., 0.1 meters). For example, if all change in position amounts are less than 0.1 meters, the preprocessing unit can classify the ID=25 point data as static point data.

[0099] For example, the preprocessor can measure the time that static point data remains at the same location. For example, if point data with ID=25 remains at the same location (coordinate change less than 0.1 meters) from frame 100 to frame 400, the retention time can be calculated as (400-100) / 30fps = 10 seconds. For example, the preprocessor can compare the retention time with a preset time threshold (e.g., 10 seconds). For example, if the retention time of 10 seconds is greater than or equal to the threshold of 10 seconds, the preprocessor can determine that the person corresponding to the point data with ID=25 is a fallen person. For example, the preprocessor can generate location information of the fallen person. For example, the location information may include the coordinates of the point data (e.g., (10.0, 15.0)), an identifier (e.g., ID=25), the time of falling (e.g., the timestamp of frame 100), and the retention time (e.g., 10 seconds).

[0100] For example, the preprocessing unit can compare location information of a fallen person with information of a danger point. For example, it can receive information from the danger detection unit that the center coordinates of the danger point are (10.5, 15.5) and the radius is 2 meters. For example, the preprocessing unit can calculate the distance between the coordinates of the fallen person (10.0, 15.0) and the center coordinates of the danger point (10.5, 15.5). For example, the distance can be calculated as √((10.5-10.0)² + (15.5-15.0)²) ≈ 0.71 meters. For example, since the distance is less than the radius of the danger point of 2 meters, it can be determined that the fallen person is located inside the danger point. For example, if the fallen person is found inside the danger point, the preprocessing unit can increase the risk level of the danger point. For example, for a danger point with a risk score of 70 points, an additional 20 points can be added to increase the risk score to 90 points. For example, upwardly adjusted risk information can be transmitted to the risk detection unit and reflected in the generation of emergency alerts.

[0101] According to one embodiment of the present disclosure, the risk detection unit can determine a pressure state by analyzing the interval of point data within a crowd cluster. For example, if there are 25 point data belonging to a fourth crowd cluster, the risk detection unit may receive coordinate information of the 25 point data. For example, the risk detection unit may calculate the distance between each point data and the nearest neighbor point data. For example, if the coordinates of point data A are (5.0, 10.0) and the coordinates of point data B closest to A are (5.2, 10.1), the distance between A and B may be calculated as √((5.2-5.0)² + (10.1-10.0)²) ≈ 0.22 meters. For example, the risk detection unit may obtain 25 distance values ​​by calculating the distance to the nearest neighbor for each of the 25 point data. For example, if the above 25 distance values ​​are {0.22, 0.18, 0.25, 0.20, 0.19, ...} meters, the risk detection unit can calculate the average value of these. For example, the average distance can be calculated as 0.21 meters.

[0102] For example, the risk detection unit can compare the above average distance with a first distance threshold. For example, the first distance threshold can be set to 0.3 meters. For example, if the average distance of 0.21 meters is less than the threshold of 0.3 meters, the risk detection unit can classify the fourth crowd cluster as a pressure state cluster. For example, a pressure state may refer to a condition where physical pressure can occur due to the very narrow spacing between people. For example, the risk detection unit can check whether outlier points have occurred within the pressure state cluster. For example, if three outlier points are detected within the area of ​​the fourth crowd cluster, the risk detection unit can classify that area as a crushing risk point. For example, a crushing risk point may indicate a situation where some people collapse or break away while people are extremely crowded.

[0103] For example, the risk detection unit can generate a highest-priority emergency alert regarding a point of risk of stampede. For example, the emergency alert may be set to priority level 1 (highest) and the alert type may be displayed as "Crushing Hazard". For example, the alert message may be generated in a form such as "Crushing Hazard Point Detected: Coordinates (5.0, 10.0), Average Interval 0.21m, 3 Outlier Points". For example, the emergency alert may be transmitted simultaneously to the manager's terminal as well as to the mobile device of the on-site safety officer. For example, upon receiving the alert, vibration and a warning sound at maximum volume may be output from the mobile device. For example, the manager may check the alert and immediately instruct the on-site safety officer to dispatch to the location, or request the crowd in the area to disperse via the broadcasting system.

[0104] According to one embodiment of the present disclosure, a risk detection unit can detect an abnormal state by analyzing the outer shape of a crowd cluster. For example, the risk detection unit can extract an outer boundary line for a fourth crowd cluster classified as a pressure state cluster. For example, the extraction of the outer boundary line may be performed using at least one of an alpha shape algorithm, a concave hull algorithm, or a convex hull algorithm. For example, if the alpha shape algorithm is applied to the coordinates of 25 point data belonging to the fourth crowd cluster, a polygonal boundary line surrounding the points may be generated. For example, the boundary line may be represented in the form of a decagon with 10 vertices. For example, the risk detection unit may compare the shape of the boundary line with a preset shape pattern.

[0105] For example, the preset shape patterns may include circular, elliptical, or unidirectional convex shapes. For example, the risk detection unit may determine whether a boundary line is circular or elliptical by calculating the curvature of the boundary line. For example, if the curvature is positive at all points on the boundary line and has similar values, the boundary line may be classified as circular or elliptical. For example, if the boundary line of the fourth crowd cluster has positive curvature at all points and the standard deviation of the curvature is small, the risk detection unit may classify the cluster as a normal crowd cluster. For example, if there are concave parts (negative curvature) on the boundary line, the risk detection unit may count the number of such parts. For example, if an inwardly concave shape is observed in 3 out of 10 line segments constituting the boundary line, the number of concave parts may be counted as 3.

[0106] For example, the risk detection unit can compare the number of concave areas with a preset threshold (e.g., 3). For example, if there are 3 or more concave areas, the risk detection unit can classify the corresponding crowd cluster as an abnormal crowd cluster. For example, an abnormal crowd cluster may indicate a state where the shape of the crowd is irregular, making it highly likely that internal pressure imbalances or local collapses have occurred. For example, the risk detection unit can increase the risk of outlier point areas occurring within an abnormal crowd cluster. For example, if the base risk score of an outlier point area within an abnormal crowd cluster is 60 points, the risk score can be increased by multiplying it by a weight of 1.5 to 60 × 1.5 = 90 points. For example, the increased risk information can be used to determine the severity level of a warning notification.

[0107] According to one embodiment of the present disclosure, a risk detection unit can determine an outlier point area located between a plurality of crowd clusters as a pressure concentration point. For example, if the center point coordinates of the fifth crowd cluster are (20.0, 30.0) and the center point coordinates of the sixth crowd cluster are (28.0, 34.0), the risk detection unit can calculate the midpoint coordinates of the two cluster center points. For example, the midpoint coordinates can be calculated as ((20.0+28.0) / 2, (30.0+34.0) / 2) = (24.0, 32.0). For example, if the center coordinates of the outlier point area are (24.5, 32.2), the risk detection unit can determine that the outlier point area is located near the midpoint (24.0, 32.0) between the two crowd clusters. For example, the distance between the outlier point area and the midpoint can be calculated as √((24.5-24.0)² + (32.2-32.0)²) ≈ 0.54 meters, which indicates that they are very close to each other.

[0108] For example, the risk detection unit can analyze the movement vectors of point data within the 5th crowd cluster and the movement vectors of point data within the 6th crowd cluster. For example, if the movement vectors of 15 point data belonging to the 5th crowd cluster point in the direction of (0.4, 0.2) on average, the angle can be calculated as atan2(0.2, 0.4) ≈ 26.6 degrees. For example, if the movement vectors of 18 point data belonging to the 6th crowd cluster point in the direction of (-0.3, -0.15) on average, the angle can be calculated as atan2(-0.15, -0.3) ≈ 206.6 degrees. For example, the risk detection unit can calculate the direction vector toward the outlier point area from each crowd cluster center point. For example, the direction vector from the center point of the 5th crowd cluster (20.0, 30.0) toward the center of the outlier point area (24.5, 32.2) is (24.5-20.0, 32.2-30.0) = (4.5, 2.2), and the angle can be calculated as atan2(2.2, 4.5) ≈ 26.0 degrees. For example, the direction vector from the center point of the 6th crowd cluster (28.0, 34.0) toward the outlier point area is (24.5-28.0, 32.2-34.0) = (-3.5, -1.8), and the angle can be calculated as atan2(-1.8, -3.5) ≈ 207.2 degrees.

[0109] For example, the risk detection unit can compare the average movement vector angle of each crowd cluster with the direction vector angle toward the outlier point area. For example, the difference between the average movement vector angle of 26.6 degrees and the direction vector angle of 26.0 degrees of the 5th crowd cluster is |26.6 - 26.0| = 0.6 degrees, which is very small and indicates that the 5th crowd cluster is moving toward the outlier point area. For example, the difference between the average movement vector angle of 206.6 degrees and the direction vector angle of 207.2 degrees of the 6th crowd cluster is |206.6 - 207.2| = 0.6 degrees, which is also very small and indicates that the 6th crowd cluster is also moving toward the outlier point area. For example, if both crowd clusters are moving toward the same outlier point area, the risk detection unit can classify that outlier point area as a point of pressure concentration.

[0110] For example, the risk detection unit can calculate the expected pressure value at the point of pressure concentration. For example, the expected pressure value can be calculated by combining the number of point data, average movement speed, and density of each crowd cluster. For example, if the number of point data for the 5th crowd cluster is 15, the average movement speed is 0.45 meters / second, and the density is 5.2 people / square meter, and the number of point data for the 6th crowd cluster is 18, the average movement speed is 0.38 meters / second, and the density is 4.8 people / square meter, the risk detection unit can calculate the expected pressure value as follows. For example, the pressure contribution from the 5th crowd cluster can be calculated as (number of point data × average movement speed × density) = (15 × 0.45 × 5.2) ≈ 35.1. For example, the pressure contribution from the 6th crowd cluster can be calculated as (18 × 0.38 × 4.8) ≈ 32.8. For example, the total estimated pressure value can be calculated as the sum of two contributions, 35.1 + 32.8 = 67.9. For example, the risk detection unit can compare the estimated pressure value with a preset threshold pressure value (e.g., 50.0). For example, if the calculated estimated pressure value of 67.9 is greater than or equal to the threshold pressure value of 50.0, the risk detection unit can generate a crushing warning signal. For example, the crushing warning signal can be included in a notification message transmitted to an administrator terminal, and the message can be generated in a form such as "Pressure concentration point detected: coordinates (24.5, 32.2), estimated pressure value 67.9, high risk of crushing."

[0111] According to one embodiment of the present disclosure, the clustering unit can track the same crowd cluster in consecutive frames of a video. For example, the clustering unit can form five crowd clusters through the DBSCAN algorithm in the Nth frame (e.g., frame 200) and assign cluster identification information to each cluster. For example, the five clusters may each be assigned a string identifier or an integer ID (e.g., 1, 2, 3, 4, 5) such as "CLUSTER_A", "CLUSTER_B", "CLUSTER_C", "CLUSTER_D", and "CLUSTER_E". For example, the center point coordinates of CLUSTER_A may be (10.0, 15.0) and the number of point data points may be 20. For example, the clustering unit may store the information in memory.

[0112] For example, the clustering unit may perform the DBSCAN algorithm again in the N+1 frame (e.g., frame 201) to form new crowd clusters. For example, six crowd clusters may be formed in the N+1 frame, and temporary identifiers "TEMP_1", "TEMP_2", "TEMP_3", "TEMP_4", "TEMP_5", and "TEMP_6" may be assigned. For example, the clustering unit may analyze the correspondence between each cluster in the N frame and each cluster in the N+1 frame. For example, the clustering unit may calculate the distance between the center point coordinates (10.0, 15.0) of CLUSTER_A and the center point coordinates (10.3, 15.2) of TEMP_1. For example, the distance may be calculated as √((10.3-10.0)² + (15.2-15.0)²) ≈ 0.36 meters. For example, the clustering unit can compare the above distance with a preset distance threshold (e.g., 2.0 meters). For example, since the calculated distance of 0.36 meters is within the threshold of 2.0 meters, the first condition can be satisfied.

[0113] For example, the clustering unit can calculate the difference between the number of point data points of CLUSTER_A (20) and the number of point data points of TEMP_1 (21). For example, the difference in number may be |21-20| = 1. For example, the clustering unit can calculate the ratio of the above difference to the number of point data points of CLUSTER_A. For example, the above ratio may be calculated as (1 / 20) × 100 = 5%. For example, the clustering unit can compare the above ratio with a fourth threshold ratio (e.g., 20%). For example, since the calculated ratio of 5% is within the threshold ratio of 20%, the second condition may also be satisfied. For example, if both conditions are satisfied, the clustering unit can determine that CLUSTER_A and TEMP_1 are the same cluster. For example, the clustering unit may assign the same cluster identification information to TEMP_1 as CLUSTER_A and name it "CLUSTER_A". For example, the clustering unit can establish a correspondence relationship by repeating the above process for all pairs of Nth frame clusters and N+1th frame clusters. For example, if TEMP_6 does not correspond to any cluster of the Nth frame, it is determined to be a newly created crowd cluster and may be assigned new identification information "CLUSTER_F".

[0114] According to one embodiment of the present disclosure, the risk detection unit can detect bottleneck points by generating a movement path of a crowd cluster. For example, the risk detection unit can receive crowd cluster information for each frame from the clustering unit. For example, if the center point coordinates of CLUSTER_A change from (10.0, 15.0) in frame 200, (10.3, 15.2) in frame 201, (10.6, 15.4) in frame 202, (10.9, 15.6) in frame 203, and (11.2, 15.8) in frame 204, the risk detection unit can generate a movement path by connecting the coordinates in chronological order. For example, the movement path of CLUSTER_A can be represented as a list of coordinates such as [(10.0, 15.0) → (10.3, 15.2) → (10.6, 15.4) → (10.9, 15.6) → (11.2, 15.8)]. For example, the risk detection unit can generate movement paths for other crowd clusters such as CLUSTER_B, CLUSTER_C, etc., in the same way.

[0115] For example, the risk detection unit can analyze the generated movement paths to count the number of crowd clusters that have passed through a specific point. For example, the risk detection unit can divide the shooting space into grid cells of size 0.5 meters × 0.5 meters and aggregate the crowd clusters that have passed through each grid cell. For example, if there are a total of 6 crowd clusters, CLUSTER_A, CLUSTER_B, CLUSTER_C, CLUSTER_D, CLUSTER_E, and CLUSTER_F, that have passed through the grid cell containing coordinates (10.5, 15.5), the risk detection unit can record the number of passes for that grid cell as 6. For example, the risk detection unit can compare the number of passes for each grid cell with a preset threshold number (e.g., 5). For example, if the number of passes for the grid cell at coordinates (10.5, 15.5), which is 6, is greater than or equal to the threshold number 5, the risk detection unit can classify that point as a bottleneck point. For example, a bottleneck can refer to a narrow passage or a concentrated area where large crowd clusters repeatedly pass through.

[0116] For example, the risk detection unit can determine whether outlier points have occurred at the bottleneck point. For example, if four outlier points are detected near coordinates (10.5, 15.5), the risk detection unit can classify the area as a bottleneck collapse point. For example, a bottleneck collapse point may indicate a state where a collapse phenomenon has occurred due to crowd density at the bottleneck point. For example, the risk detection unit can identify other crowd clusters moving toward the bottleneck point at the current time. For example, if the current location of CLUSTER_G is (8.0, 13.0) and the direction of movement is toward the bottleneck point (10.5, 15.5), the risk detection unit can classify CLUSTER_G as a cluster scheduled to pass through the bottleneck point. For example, the risk detection unit can calculate the estimated time of arrival using the average movement speed of CLUSTER_G (e.g., 0.5 meters / second) and the distance from the current location to the bottleneck point (e.g., √((10.5-8.0)² + (15.5-13.0)²) ≈ 3.2 meters). For example, the estimated time of arrival can be calculated as 3.2 / 0.5 = 6.4 seconds. For example, the risk detection unit can generate an alert including location information of the bottleneck collapse point (e.g., "Coordinates: (10.5, 15.5)") and estimated time of arrival information (e.g., "CLUSTER_G expected to arrive in about 6 seconds"). For example, the alert can be transmitted to an administrator terminal and displayed on the screen.

[0117] FIG. 10 is a diagram showing the configuration of a visualization screen of a crowd safety monitoring system according to one embodiment of the present disclosure. The embodiment of FIG. 10 may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the embodiments may be omitted.

[0118] Referring to FIG. 10, according to one embodiment of the present disclosure, the system may include a visualization unit to visually provide analysis results to an administrator. For example, the visualization unit may receive point data information, crowd cluster information, and outlier point information from a data collection unit, a clustering unit, and a risk detection unit, respectively. For example, the visualization unit may use the current frame image of a video as a background. For example, the frame image may be an RGB (red, green, blue) color image with a resolution of 1920×1080 pixels. For example, the visualization unit may display point data, crowd clusters, and outlier points as graphic elements superimposed on the frame image.

[0119] For example, the visualization unit can display each point data as a small circular marker. For example, the actual coordinates of the point data (e.g., (10.0, 15.0)) can be inversely transformed into the pixel coordinates of the frame to determine the position on the screen. For example, by applying an inverse homography transformation, the actual coordinates (10.0, 15.0) can be calculated to correspond to the pixel coordinates (850, 600). For example, the visualization unit can draw a circle with a radius of 3 pixels centered at the pixel coordinates (850, 600). For example, the color of the circle can be set to green (RGB: 0, 255, 0). For example, the visualization unit can display circular markers for all point data in the same way.

[0120] For example, the visualization unit can display each crowd cluster in the form of a polygon or an ellipse. For example, a polygonal boundary line can be generated by calculating a convex hull surrounding the coordinates of 20 point data points belonging to CLUSTER_A. For example, the convex hull may be an octagon with 8 vertices. For example, the visualization unit can display the octagon by filling it with a translucent color (e.g., blue with 50% transparency) over a frame image. For example, the visualization unit may apply different colors depending on the density of the crowd cluster. For example, if the density of CLUSTER_A is 2.5 people / square meter, it can be displayed in light blue (RGB: 100, 150, 255); if the density of CLUSTER_B is 5.5 people / square meter, it can be displayed in orange (RGB: 255, 150, 0); and if the density of CLUSTER_C is 7.0 people / square meter, it can be displayed in red (RGB: 255, 0, 0). For example, an administrator can intuitively understand the density level of each crowd cluster by color alone.

[0121] For example, the visualization unit can highlight outlier points with special markers. For instance, outlier points can be drawn as large X marks or star-shaped markers to distinguish them from point data. For instance, the marker color for outlier points can be set to bright yellow (RGB: 255, 255, 0) or magenta (RGB: 255, 0, 255) to make them highly visible. For instance, warning text (e.g., "Danger") can be displayed around the outlier points. For instance, the visualization unit can output a final image with all graphic elements superimposed on the monitor screen of the administrator terminal. For instance, the visualization image can be updated in real-time and refreshed 30 times per second.

[0122] According to one embodiment of the present disclosure, the visualization unit can visualize the crowd density distribution by generating a heatmap. For example, the visualization unit may receive coordinate information of all point data detected in the current frame of a video. For example, if 150 point data are distributed at various locations within the shooting space, the visualization unit may calculate the density distribution based on the 150 coordinates. For example, the visualization unit may divide the shooting space into grid cells of size 0.5 meters × 0.5 meters and count the number of point data contained in each grid cell. For example, if 8 point data are contained in a grid cell centered at coordinates (10.0, 15.0), the density of that cell may be calculated as 8 / (0.5 × 0.5) = 32 people / square meter. For example, if 2 point data are contained in a grid cell centered at coordinates (5.0, 8.0), the density may be calculated as 2 / 0.25 = 8 people / square meter.

[0123] For example, the visualization unit can map the density value of each grid cell to a color. For example, the color gradient can be defined in the order of blue (low density) → green (medium density) → yellow (high density) → red (very high density). For example, a cell with a density of 0 people / square meter can be displayed as dark blue (RGB: 0, 0, 255), a cell with a density of 5 people / square meter as green (RGB: 0, 255, 0), a cell with a density of 10 people / square meter as yellow (RGB: 255, 255, 0), and a cell with a density of 15 people / square meter or more as red (RGB: 255, 0, 0). For example, if the density value is a medium value, a medium color can be calculated through linear interpolation. For example, if the density is 7.5 people / square meter, it can be displayed in light green (RGB: 128, 255, 0), which is an intermediate color between green and yellow. For example, the visualization unit can generate a 2D heatmap image by applying the calculated color information to each grid cell.

[0124] For example, the visualization unit can extract areas on the heatmap where the density exceeds a preset density threshold. For example, if the density threshold is set to 8 people / square meter, all grid cells with a density of 8 people / square meter or higher can be classified as high-density cells. For example, the visualization unit can group adjacent high-density cells into a single connected area. For example, independent high-density areas can be identified by applying a connected component analysis algorithm. For example, a first high-density area may consist of 12 grid cells, and a second high-density area may consist of 8 grid cells. For example, the visualization unit can extract the boundary lines of each high-density area. For example, boundary line extraction can be performed using a contour detection algorithm. For example, the boundary line of the first high-density area may be extracted in the form of an irregular polygon.

[0125] For example, the visualization unit can display the extracted boundary line as a thick line (e.g., thickness 3 pixels, color white) on the frame image. For example, label text "High-risk area" may be displayed within the area inside the boundary line. For example, the visualization unit can check whether an outlier point is located within the high-risk area. For example, if the coordinates (10.2, 15.3) of an outlier point are included within the boundary of the first high-risk area, the visualization unit can highlight the outlier point with a blinking effect. For example, the blinking effect can be implemented by repeatedly showing and hiding the outlier point marker at intervals of 0.5 seconds. For example, the visualization unit can calculate the area of ​​the high-risk area. For example, if the first high-risk area consists of 12 grid cells (each 0.25 square meters), the area can be calculated as 12 × 0.25 = 3.0 square meters. For example, the visualization unit can count the number of point data points within the area. For example, if 25 point data points are included within the first high-risk area, the visualization unit can display text "Area: 3.0㎡, Personnel: 25 people" near the area.

[0126] According to one embodiment of the present disclosure, a risk detection unit may calculate a risk score to quantitatively evaluate the severity of a risk point. For example, the risk detection unit may collect various elements regarding a specific risk point (e.g., center coordinates (12.0, 18.0), radius 2 meters). For example, the risk detection unit may count the number of outlier points in the area. For example, if 7 outlier points are detected within the area, the risk detection unit may record the number of outlier points as 7. For example, the risk detection unit may normalize the number of outlier points and convert them into a score in the range of 0 to 100. For example, linear scaling may be applied to map 0 points when the number of outlier points is 0 and 100 points when there are 10 or more. For example, 7 outlier points may be quantified as (7 / 10) × 100 = 70 points.

[0127] For example, the risk detection unit can evaluate the crowd cluster density around the area. For example, it can detect all crowd clusters located within 5 meters of the center of the risk point. For example, CLUSTER_A (density 6.0 people / square meter, distance 3 meters from the center point) and CLUSTER_B (density 5.5 people / square meter, distance 4 meters) can be identified as being located within 5 meters. For example, the risk detection unit can calculate the average density of the surrounding crowd clusters. For example, the average density can be calculated as (6.0 + 5.5) / 2 = 5.75 people / square meter. For example, the risk detection unit can normalize the average density to a range of 0 to 100. For example, it can map a density of 0 people / square meter to 0 points and a density of 10 people / square meter or more to 100 points. For example, an average density of 5.75 people / square meter can be quantified as (5.75 / 10) × 100 = 57.5 points.

[0128] For example, the risk detection unit can evaluate the movement speed of a crowd cluster heading toward a danger point. For example, if the movement vector of CLUSTER_A is heading toward a danger point and the movement speed is 1.2 meters / second, the risk detection unit can record the speed. For example, if the movement speed of CLUSTER_B is 0.8 meters / second, the average movement speed can be calculated as (1.2 + 0.8) / 2 = 1.0 meters / second. For example, the risk detection unit can normalize the movement speed to a range of 0 to 100. For example, a speed of 0 meters / second can be mapped to 0 points, and a speed of 2.0 meters / second or more can be mapped to 100 points. For example, an average movement speed of 1.0 meters / second can be quantified as (1.0 / 2.0) × 100 = 50 points.

[0129] For example, the risk detection unit can measure the duration of a risk point. For example, if the area is classified as a risk point from frame 150 to frame 300 and the frame rate is 30fps, the duration can be calculated as (300-150) / 30 = 5 seconds. For example, the risk detection unit can normalize the duration to a range of 0 to 100. For example, a duration of 0 seconds can be mapped to 0 points, and a duration of 10 seconds or more can be mapped to 100 points. For example, a duration of 5 seconds can be quantified as (5 / 10) × 100 = 50 points. For example, the risk detection unit can multiply each quantified value by a preset weight. For example, the weight for the number of outlier points can be set to 0.4, the weight for surrounding density to 0.3, the weight for movement speed to 0.2, and the weight for duration to 0.1. For example, the weighted scores for each element can be calculated as follows: number of outlier points 70 points × 0.4 = 28 points, surrounding density 57.5 points × 0.3 = 17.25 points, movement speed 50 points × 0.2 = 10 points, and duration 50 points × 0.1 = 5 points. For example, the risk detection unit can calculate the final risk score by summing the above weighted scores. For example, the final risk score can be calculated as 28 + 17.25 + 10 + 5 = 60.25 points.

[0130] For example, the risk detection unit can compare the calculated risk score with predefined grade criteria. For example, a first score threshold can be set to 50 points and a second score threshold to 70 points. For example, if a risk score of 60.25 points is greater than or equal to the first score threshold of 50 points but less than the second score threshold of 70 points, the risk detection unit can classify the corresponding risk point as a warning grade. For example, if the risk score of another risk point is calculated to be 75 points, the score corresponds to the second score threshold of 70 points or higher, so it can be classified as a risk grade. For example, the risk detection unit can include grade information in a notification message. For example, for a risk point of the warning grade, a notification with a yellow background stating "Warning: Risk 60.25 points" can be generated, and for a risk point of the risk grade, a notification with a red background stating "Risk: Risk 75 points" can be generated. For example, the risk grade notification can be sent to the administrator terminal with a higher priority than the warning grade notification and displayed at the top of the screen.

[0131] Various embodiments of the present disclosure may be combined with one another. Devices to which various embodiments of the present disclosure may be applied are described below. Although not limited thereto, the various descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed in this document may be applied to various fields requiring processing within a device and / or wired / wireless communication / connection between devices. More specific examples are provided below with reference to the drawings. In the drawings and description below, the same reference numerals may represent the same or corresponding hardware blocks, software blocks, or function blocks unless otherwise noted.

[0132] The following describes an apparatus according to one embodiment of the present disclosure. The following embodiment may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the above embodiments may be omitted. Referring to the following, the first apparatus and the second apparatus may transmit and receive wired / wireless signals through various wired / wireless access technologies (e.g., BLE, Wi-Fi, LTE, NR).

[0133] The first device comprises one or more processors and one or more memories, and may additionally further comprise one or more transceivers and / or one or more antennas. The processor controls the memory and / or transceivers and may be configured to implement the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed herein. For example, the processor may process information in memory to generate a first information / signal and then transmit a wired / wireless signal containing the first information / signal through a transceiver. Additionally, the processor may receive a wired / wireless signal containing a second information / signal through a transceiver and then store information obtained from signal processing of the second information / signal in memory. The memory may be connected to the processor and may store various information related to the operation of the processor. For example, the memory may store software code containing instructions for performing some or all of the processes controlled by the processor, or for performing the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed herein. Here, the processor and memory may be part of a communication modem / circuit / chip designed to implement wired / wireless communication technology (e.g., LTE, NR). A transceiver may be connected to the processor and may transmit and / or receive wired / wireless signals through one or more antennas. The transceiver may include a transmitter and / or receiver. The transceiver may be interchangeably used with an RF unit. In this disclosure, the device may refer to a communication modem / circuit / chip.

[0134] The second device comprises one or more processors and one or more memories, and may additionally further comprise one or more transceivers and / or one or more antennas. The processor controls the memory and / or transceivers and may be configured to implement the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed herein. For example, the processor may process information in memory to generate a third information / signal and then transmit a wired / wireless signal containing the third information / signal through a transceiver. Additionally, the processor may receive a wired / wireless signal containing a fourth information / signal through a transceiver and then store information obtained from signal processing of the fourth information / signal in memory. The memory may be connected to the processor and may store various information related to the operation of the processor. For example, the memory may store software code containing instructions for performing some or all of the processes controlled by the processor, or for performing the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed herein. Here, the processor and memory may be part of a communication modem / circuit / chip designed to implement wired / wireless communication technology (e.g., LTE, NR). A transceiver may be connected to the processor and may transmit and / or receive wired / wireless signals through one or more antennas. The transceiver may include a transmitter and / or receiver. The transceiver may be interchangeably used with an RF unit. In this disclosure, the term "device" may refer to a communication modem / circuit / chip.

[0135] The hardware elements of the device are described in more detail below. Although not limited thereto, one or more protocol layers may be implemented by one or more processors. For example, one or more processors may implement one or more layers (e.g., functional layers such as PHY, MAC, RLC, PDCP, RRC, SDAP). One or more processors may generate one or more PDUs and / or one or more SDUs according to the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed in this document. One or more processors may generate messages, control information, data, or information according to the descriptions, functions, procedures, proposals, methods, and / or flowcharts of operation disclosed in this document. One or more processors may generate signals (e.g., baseband signals) containing PDUs, SDUs, messages, control information, data, or information according to the functions, procedures, proposals, and / or methods disclosed in this document and provide them to one or more transceivers. One or more processors may receive signals (e.g., baseband signals) from one or more transceivers and may obtain PDUs, SDUs, messages, control information, data, or information in accordance with the descriptions, functions, procedures, proposals, methods, and / or operation sequence diagrams disclosed in this document.

[0136] One or more processors may be referred to as a controller, microcontroller, microprocessor, or microcomputer. One or more processors may be implemented by hardware, firmware, software, or a combination thereof. For example, one or more ASICs, one or more DSPs, one or more DSPDs, one or more PLDs, or one or more FPGAs may be included in one or more processors. The descriptions, functions, procedures, proposals, methods, and / or flowcharts disclosed in this document may be implemented using firmware or software, and the firmware or software may be implemented to include modules, procedures, functions, etc. Firmware or software configured to execute the descriptions, functions, procedures, proposals, methods, and / or flowcharts disclosed in this document may be included in one or more processors or stored in one or more memories and driven by one or more processors. The descriptions, functions, procedures, proposals, methods, and / or flowcharts disclosed in this document may be implemented using firmware or software in the form of code, instructions, and / or sets of instructions.

[0137] One or more memories may be connected to one or more processors and may store various forms of data, signals, messages, information, programs, code, instructions, and / or commands. One or more memories may consist of ROM, RAM, EPROM, flash memory, hard drives, registers, cache memory, computer-readable storage media, and / or combinations thereof. One or more memories may be located inside and / or outside of one or more processors. Additionally, one or more memories may be connected to one or more processors through various technologies, such as wired or wireless connections.

[0138] One or more transceivers may transmit user data, control information, wired / wireless signals / channels, etc., as mentioned in the methods and / or operation flowcharts, etc., of this document to one or more other devices. One or more transceivers may receive user data, control information, wired / wireless signals / channels, etc., as mentioned in the descriptions, functions, procedures, proposals, methods and / or operation flowcharts, etc., disclosed in this document from one or more other devices. For example, one or more transceivers may be connected to one or more processors and may transmit and receive wired / wireless signals. For example, one or more processors may control one or more transceivers to transmit user data, control information, or wired / wireless signals to one or more other devices. Additionally, one or more processors may control one or more transceivers to receive user data, control information, or wired / wireless signals from one or more other devices. Additionally, one or more transceivers may be connected to one or more antennas, and one or more transceivers may be configured to transmit and receive user data, control information, wired / wireless signals / channels, etc., as described in the descriptions, functions, procedures, proposals, methods, and / or operation flowcharts disclosed in this document through one or more antennas. In this document, one or more antennas may be multiple physical antennas or multiple logical antennas (e.g., antenna ports). One or more transceivers may convert received wired / wireless signals / channels, etc., from RF band signals to baseband signals in order to process the received user data, control information, wired / wireless signals / channels, etc., using one or more processors. One or more transceivers may convert the processed user data, control information, wired / wireless signals / channels, etc., from baseband signals to RF band signals using one or more processors. To this end, one or more transceivers may include (analog) oscillators and / or filters.

[0139] The following describes an apparatus according to one embodiment of the present disclosure. The apparatus may be implemented in various forms depending on the use-example / service. The following embodiment may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the above embodiments may be omitted.

[0140] The device may be composed of various elements, components, units / parts, and / or modules. For example, the device may include a communication unit, a control unit, a memory unit, and additional elements. The communication unit may include a communication circuit and transceiver(s). For example, the communication circuit may include one or more processors and / or one or more memories. For example, the transceiver(s) may include one or more transceivers and / or one or more antennas. The control unit is electrically connected to the communication unit, the memory unit, and additional elements and controls the overall operation of the device. For example, the control unit may control the electrical / mechanical operation of the device based on programs / code / commands / information stored in the memory unit. Additionally, the control unit may transmit information stored in the memory unit to the outside (e.g., another communication device) via a wireless / wired interface through the communication unit, or store information received from the outside (e.g., another communication device) via a wireless / wired interface through the communication unit in the memory unit.

[0141] Additional elements may be configured in various ways depending on the type of device. For example, additional elements may include at least one of a power unit / battery, an input / output unit, a driving unit, and a computing unit. Depending on the use—e.g., service—the device may be movable or used in a fixed location.

[0142] Various elements, components, units / parts, and / or modules within the device may be interconnected entirely via a wired interface, or at least partially connected wirelessly via a communication unit. For example, within the device, the control unit and the communication unit may be connected via a wire, and the control unit and a first unit (e.g., a memory unit, an additional element) may be connected wirelessly via a communication unit. Additionally, each element, component, unit / part, and / or module within the device may include one or more additional elements. For example, the control unit may be composed of one or more sets of processors. For example, the control unit may be composed of a set of communication control processors, application processors, ECUs, graphics processing processors, memory control processors, etc. As another example, the memory unit may be composed of RAM, DRAM, ROM, flash memory, volatile memory, non-volatile memory, and / or combinations thereof.

[0143] The following describes an apparatus according to one embodiment of the present disclosure. The following embodiment may be combined with various embodiments of the present disclosure, and some descriptions, functions, procedures, suggestions, methods, and / or operations of the above embodiments may be omitted.

[0144] The device may include an antenna unit, a communication unit, a control unit, a memory unit, a power supply unit, an interface unit, and an input / output unit. The antenna unit may be configured as part of the communication unit.

[0145] The communication unit can transmit and receive signals (e.g., data, control signals, etc.) with other devices. The control unit can perform various operations by controlling the components of the wired / wireless device. The control unit may include an AP. The memory unit can store data, parameters, programs, code, or commands required for the operation of the wired / wireless device. Additionally, the memory unit can store input / output data / information, etc. The power supply unit supplies power to the wired / wireless device and may include wired / wireless charging circuits, batteries, etc. The interface unit can support the connection between the wired / wireless device and other external devices. The interface unit may include various ports (e.g., audio input / output ports, video input / output ports) for connection with external devices. The input / output unit can receive or output video information / signals, audio information / signals, data, and / or information input by a user. The input / output unit may include a camera, microphone, user input unit, display unit, speaker, and / or haptic module, etc.

[0146] For example, in the case of data communication, the input / output unit acquires information / signals (e.g., touch, text, voice, image, video) input by the user, and the acquired information / signals can be stored in the memory unit. The communication unit can convert the information / signals stored in the memory into wired / wireless signals, and can directly transmit the converted wired / wireless signals to other wired / wireless devices or to a base station. Additionally, the communication unit can receive wired / wireless signals from other wired / wireless devices or base stations, and then restore the received wired / wireless signals to their original information / signals. The restored information / signals are stored in the memory unit and can then be output in various forms (e.g., text, voice, image, video, haptic) through the input / output unit.

[0147] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined to be implemented as a device, and the technical features of the device claims in this specification may be combined to be implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a device, and the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a method.

Claims

Claim 1 A crowd safety monitoring system comprising: a data collection unit that receives video input and converts the location of a crowd into at least one point data; a clustering unit that forms at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and a risk detection unit that defines as a risk point an area where an outlier point occurs that does not belong to any of the at least one crowd clusters among the at least one point data. Claim 2 A crowd safety monitoring system according to claim 1, wherein the data collection unit detects the head position of each individual in the crowd in each frame of the video and converts each head position into a two-dimensional coordinate (x, y), wherein the two-dimensional coordinate is a value obtained by converting the pixel coordinate system of the frame into a meter unit coordinate system of actual space, and the conversion is performed through a homography transformation based on the shooting angle and shooting height of the video. Claim 3 A crowd safety monitoring system according to paragraph 2, wherein the data collection unit, when generating point data for a plurality of consecutive frames of the video, assigns a unique identifier to point data corresponding to the same individual in the crowd, tracks the amount of position change of the point data between frames to calculate a movement vector for each point data, and generates a crowd wave generation signal when the number of point data whose magnitude of the movement vector is greater than or equal to a preset threshold is greater than or equal to a preset ratio relative to the total point data. Claim 4 A crowd safety monitoring system according to claim 1, wherein the clustering unit dynamically adjusts the neighborhood radius parameter (ε), and when the total number of point data is N and the area of ​​the space where the video is filmed is A, the neighborhood radius parameter (ε) is calculated using the formula √(A / N) × k, where k is a correction coefficient of 1 or greater. Claim 5 A crowd safety monitoring system according to claim 4, wherein the clustering unit sets the minimum point count parameter (MinPts) for the total number N of the point data, lowers the minimum point count parameter (MinPts) to N × 1 threshold ratio or less when the standard deviation of the density distribution of the point data is greater than or equal to a preset threshold, and raises the minimum point count parameter (MinPts) to N × 2 threshold ratio or more when the standard deviation of the density distribution of the point data is less than the threshold. Claim 6 A crowd safety monitoring system according to claim 1, wherein the clustering unit, after forming at least one crowd cluster, calculates the center point coordinates and radius of each crowd cluster based on the coordinates of point data belonging to each crowd cluster, and merges the first crowd cluster and the second crowd cluster into a single crowd cluster when the distance between the center point of the first crowd cluster and the center point of the second crowd cluster is smaller than the sum of the radius of the first crowd cluster and the radius of the second crowd cluster. Claim 7 A crowd safety monitoring system according to claim 1, wherein the risk detection unit detects the outlier point for each of a plurality of consecutive frames of the video, determines whether the outlier point repeatedly occurs in the same area in M ​​or more consecutive frames among the plurality of consecutive frames, wherein the same area is defined as an area in which at least a third threshold ratio of the coordinates of the outlier points detected in M ​​or more consecutive frames is located within a radius R, and classifies the area as a continuous risk point when the outlier point repeatedly occurs in the same area. Claim 8 A crowd safety monitoring system according to claim 7, wherein the risk detection unit tracks the number of outlier points detected at the continuous risk point over time, generates a crowd collapse progress signal when the increase rate of the number of outlier points per unit time is greater than or equal to a preset threshold increase rate, and transmits an emergency notification including the coordinates of the risk point, the number of outlier points, and the increase rate information to an administrator terminal when the crowd collapse progress signal is generated. Claim 9 A crowd safety monitoring system according to claim 1, wherein the risk detection unit calculates, for each of the at least one crowd cluster, the density of the crowd cluster by dividing the number of point data belonging to the crowd cluster by the area occupied by the crowd cluster, classifies a crowd cluster with a density greater than or equal to a first threshold density and less than or equal to a second threshold density as a warning crowd cluster, classifies a crowd cluster with a density greater than or equal to the second threshold density as a risk crowd cluster, and classifies an area where an outlier point has occurred within a preset distance from the risk crowd cluster as a top priority risk point. Claim 10 A crowd safety monitoring system according to claim 9, wherein the risk detection unit calculates a direction vector between the risk crowd cluster and the area where the outlier point occurred, and if the ratio of point data having a movement vector that is the same as the direction vector or has an angle difference with the direction vector within a threshold angle difference is greater than or equal to a threshold ratio relative to the total point data within the risk crowd cluster, the risk crowd cluster determines that it is moving toward the area where the outlier point occurred, and calculates the estimated arrival time of the moving risk crowd cluster based on the distance of the direction vector and the average speed of the movement vector and includes it in a notification message. Claim 11 A crowd safety monitoring system according to claim 1, further comprising a preprocessing unit disposed between the data collection unit and the clustering unit for preprocessing the point data, wherein the preprocessing unit filters and removes point data located in a preset exclusion area within the frame of the video, wherein the exclusion area is set as an area within the frame where a structure, vehicle, or obstacle is located, and the coordinate information of the exclusion area is set as a structure area that is pre-entered by an administrator or automatically detected through an object recognition algorithm. Claim 12 A crowd safety monitoring system according to claim 11, wherein the preprocessing unit classifies point data among the point data as static point data in which there is no change in position or the amount of change in position is less than a preset threshold in a plurality of consecutive frames, and if the static point data is maintained at the same location for a preset time or longer, determines the point data as a fallen person and generates location information of the fallen person separately from the outlier point, and if the location information of the fallen person exists within the danger point or within a preset distance, the risk level of the danger point is increased. Claim 13 A crowd safety monitoring system according to claim 1, wherein the risk detection unit calculates the average distance between point data within each of the at least one crowd cluster, classifies a crowd cluster where the average distance is less than a first distance threshold as a compressed state cluster, classifies the area as a crushing risk point when an outlier point occurs within the compressed state cluster, and generates a highest priority emergency alert for the crushing risk point. Claim 14 A crowd safety monitoring system according to claim 13, wherein the risk detection unit extracts the outer boundary line of the pressure state cluster and determines whether the shape of the outer boundary line matches a preset shape pattern, wherein the preset shape pattern includes at least one of a shape convex in one direction, an elliptical shape, or a circular shape, and classifies it as a normal crowd cluster if the outer boundary line matches the preset shape pattern, and classifies it as an abnormal crowd cluster if the outer boundary line is irregular in shape or if there are at least a preset number (3) of concave parts, and increases the risk of an outlier point area that occurs within the abnormal crowd cluster. Claim 15 A crowd safety monitoring system according to claim 1, wherein the risk detection unit analyzes the spatial relationship between the at least one crowd cluster and the area where the outlier point occurs, wherein the outlier point area is located between the first crowd cluster and the second crowd cluster, and if the movement vectors of point data within the first crowd cluster and the movement vectors of point data within the second crowd cluster are directed toward the outlier point area, the outlier point area is classified as a pressure concentration point, the expected pressure value at the pressure concentration point is calculated based on the number of point data, movement speed, and density of the first crowd cluster and the second crowd cluster, respectively, and generates a crushing warning signal if the expected pressure value is greater than or equal to a preset threshold pressure value. Claim 16 A crowd safety monitoring system according to claim 1, wherein the clustering unit forms at least one crowd cluster, assigns cluster identification information to each crowd cluster, and tracks the same crowd cluster in consecutive frames of the video, wherein if the difference in center point coordinates between the first crowd cluster of the Nth frame and the second crowd cluster of the N+1th frame is within a preset distance threshold and the difference in the number of point data belonging to the first crowd cluster and the second crowd cluster is within a fourth threshold ratio relative to the number of point data of the first crowd cluster, the first crowd cluster and the second crowd cluster are determined to be the same crowd cluster and assigned the same cluster identification information. Claim 17 A crowd safety monitoring system according to claim 16, wherein the risk detection unit generates a movement path over time for each crowd cluster based on the cluster identification information, classifies a specific point on the movement path as a bottleneck point if the number of crowd clusters passing through that point on the movement path is greater than or equal to a preset threshold number, classifies the area as a bottleneck collapse point if an outlier point occurs at the bottleneck point, and generates a notification including location information of the bottleneck collapse point and information on the estimated arrival time of other crowd clusters scheduled to pass through the point. Claim 18 A crowd safety monitoring system according to claim 1, further comprising a visualization unit that visualizes information generated from the data collection unit, the clustering unit, and the risk detection unit, wherein the visualization unit superimposes the point data, the at least one crowd cluster, and the outlier points onto the frame of the video, and the at least one crowd cluster is displayed in different colors according to the density of the crowd cluster. Claim 19 In claim 18, the visualization unit generates a heatmap for a frame of the video, wherein the heatmap expresses the point data density at each location as a color gradient, extracts the boundary line of an area on the heatmap where the density is greater than or equal to a preset density threshold and marks it as a high-risk area, highlights the outlier point with a blinking effect when the outlier point is located within the high-risk area, and displays the area of ​​the high-risk area and the number of point data within the area together as text, a crowd safety monitoring system. Claim 20 A crowd safety monitoring system according to claim 1, wherein the risk detection unit calculates a risk score for an area defined as a risk point, wherein the risk score is calculated by quantifying the number of outlier points in the area, the density of crowd clusters around the area, the speed of movement of crowd clusters heading toward the area, and the duration of the area, respectively, multiplying each value by a preset weight, and summing the results, and classifying the risk score into a warning grade if it is greater than or equal to a first score threshold and less than a second score threshold, and into a risk grade if it is greater than or equal to the second score threshold. Claim 21 A method performed by a first device comprising: receiving a video input and converting the location of a crowd into at least one point data; forming at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and defining an area where an outlier point occurs that does not belong to any of the at least one crowd clusters among the at least one point data as a risk point. Claim 22 A non-transient computer-readable medium, wherein the non-transient computer-readable medium stores instructions that cause the at least one processor to perform operations when executed by at least one processor, said operations comprising: receiving a video input and converting the location of a crowd into at least one point data; forming at least one crowd cluster based on the at least one point data, based on a neighborhood radius parameter and a minimum point count parameter; and defining an area where an outlier point that does not belong to any of the at least one crowd clusters among the at least one point data occurs as a risk point.