Industrial video multi-path concurrent inference scheduling method and system based on heterogeneous computing
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHANGHAI DINGGE INFORMATION TECH CO LTD
- Filing Date
- 2026-05-08
- Publication Date
- 2026-06-02
Smart Images

Figure CN122134547A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the fields of edge computing and computer vision technology, and in particular to a method and system for scheduling multi-channel concurrent inference of industrial video based on heterogeneous computing. Background Technology
[0002] In industrial manufacturing scenarios such as quality inspection and safety monitoring, it is often necessary to access multiple high frame rate video streams through industrial cameras and run multiple deep learning models (such as target localization, defect segmentation, attribute classification, etc.) in parallel for the same frame image.
[0003] Existing edge computing video inference systems face the following significant technical bottlenecks when dealing with such high-concurrency scenarios: (1) Coarse scheduling of heterogeneous computing power and limited throughput: Traditional architectures often use serial processing or coarse-grained concurrency based on thread pools. When multiple models are parallel, the GPU often idles while waiting for CPU preprocessing, or the CPU postprocessing waits for GPU inference, resulting in serious pipeline stalls, making it impossible to fully utilize heterogeneous computing power and leading to low overall throughput.
[0004] (2) Rigid caching mechanism leads to uncontrolled latency and memory overflow: The frame rate of industrial camera acquisition is constant (e.g., 60fps), while the time consumed by AI inference fluctuates dynamically. Conventional dynamic expansion queues will quickly accumulate historical frames when encountering computing power troughs, which not only easily causes memory overflow (OOM), but also causes the detection results output by the system to lag far behind the current state of the physical world, losing the meaning of real-time control.
[0005] (3) Strong coupling between backbone services and bypass streaming: Existing systems often mix network streaming (such as WebRTC / RTSP forwarding) with core inference computing in the same service flow. Once the network jitter at the external monitoring end or the streaming media server is blocked, the network I / O delay will be transmitted in reverse and block the core inference backbone, endangering the stability of industrial production.
[0006] (4) Business post-processing logic is solidified: Traditional systems hardcode volatile business logic such as result parsing, target tracking and drawing frames in the compiled host program. Once the factory adjusts the judgment threshold or detection rules, it is necessary to recompile and shut down for deployment. Summary of the Invention
[0007] The purpose of this application is to address the problems of low utilization of heterogeneous resources and difficulties in post-processing of industrial video multi-channel processing in existing technologies. Therefore, this application provides a method and system for scheduling concurrent inference of industrial video multi-channel based on heterogeneous computing. By constructing fine-grained DAG heterogeneous task flow scheduling, introducing a fixed-length circular buffer managed by a state machine, separating bypass push stream threads, and introducing a scripted post-processing sandbox, it achieves high throughput, strong real-time performance, and high decoupling for industrial-grade video detection.
[0008] This application provides a method for scheduling multi-channel concurrent inference in industrial video based on heterogeneous computing, including: Create a one-to-one data processing pipeline based on the number of industrial cameras; In each of the data processing pipelines, a video acquisition pipeline, an intelligent detection pipeline, and a result processing pipeline are created sequentially, and a circular buffer pool is created between adjacent pipelines; The result processing pipeline processes data by loading result processing scripts; and... The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel sub-streams and / or serial sub-streams are constructed for the multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task, a GPU-based model inference task, and a CPU-based result post-processing task. The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors. The image preprocessing task and the result post-processing task perform data processing by loading the image preprocessing script and the inference result post-processing script, respectively.
[0009] In some embodiments, constructing parallel substreams and / or serial substreams for the plurality of detection models according to the result processing script includes: Parallel substreams are constructed for all the aforementioned detection models, and the first processing time of the intelligent detection pipeline is estimated. The result processing script determines whether there is a dependency relationship among the multiple detection models. If there is, a serial sub-stream is constructed for the detection models with dependencies, and a parallel sub-stream is constructed for the detection models without dependencies. The second processing time of the intelligent detection pipeline is estimated. If the second processing time exists, the second processing time and the first processing time are compared, and a sub-stream is constructed based on the smaller one; Otherwise, construct a parallel sub-stream.
[0010] In some embodiments, it also includes: Based on the number of data processing pipelines, a one-to-one corresponding bypass thread is created. The bypass thread is used to obtain the latest frame and debugging information from the data processing pipeline and independently push the stream to the external streaming media distribution server.
[0011] In some embodiments, the circular cache pool has a depth of 3 and is defined as three mutually exclusive slot states: write-locked, ready, and read-locked. The upstream always overwrites the oldest slot, and the downstream always retrieves the ready slot.
[0012] This application also provides an industrial video multi-channel concurrent inference scheduling system based on heterogeneous computing, which applies any of the methods described above and includes: The pipeline creation module is used to create a one-to-one data processing pipeline based on the number of industrial cameras; The pipeline creation module is used to sequentially create a video acquisition pipeline, an intelligent detection pipeline, and a result processing pipeline in each of the data processing pipelines, and to create a circular buffer pool between adjacent pipelines. The result processing pipeline processes data by loading result processing scripts; and... The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel sub-streams and / or serial sub-streams are constructed for the multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task, a GPU-based model inference task, and a CPU-based result post-processing task. The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors. The image preprocessing task and the result post-processing task perform data processing by loading the image preprocessing script and the inference result post-processing script, respectively.
[0013] In some embodiments, it also includes: The bypass thread creation module is used to create a one-to-one corresponding bypass thread based on the number of data processing pipelines. The bypass thread is used to obtain the latest frame and debugging information from the data processing pipeline and independently push the stream to the external streaming media distribution server.
[0014] This application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement any of the methods described above.
[0015] This application also provides a computer-readable storage medium storing a computer program that performs any of the methods described above.
[0016] Beneficial effects: (1) DAG-based heterogeneous computing power overlap scheduling: In the intelligent detection pipeline, independent parallel subflows are built for concurrent models, and the execution of a single model is decoupled into three atomic tasks with hardware affinity: image preprocessing task (Task1@CPU), model inference task (Task2@GPU), and result postprocessing task (Task3@CPU). The atomic tasks between different Subflows are executed in an interleaved manner on the time axis by the underlying task scheduler (such as the GPU task of SubFlow1 and the CPU task of SubFlow2 overlap), which fully utilizes heterogeneous computing power and improves the overall throughput. (2) Decoupling of high-level business through scripting: Independent scripts are loaded through the result processing pipeline. The tensor decoding data output by the intelligent detection pipeline is structured and sent into the script environment. The script executes specific rule judgment and target tracking logic, and finally issues the detection result. This improves the flexibility of result processing and does not require downtime deployment, thus controlling costs.
[0017] (3) General model inference support: By loading the image preprocessing task and the result postprocessing task into independent scripts, the image frames and inference results are structured and sent into the script environment, and the script executes specific processing rules, which greatly improves the program's support for various structured inference models.
[0018] (4) Fixed-length buffer mechanism with a depth of 3 based on state machine: By setting up a ring buffer with a fixed size of 3 at the physical boundary of the data processing pipeline, i.e. between adjacent pipelines, and defining three mutually exclusive state slots: "write lock", "ready (latest)" and "read lock", the upstream always overwrites the oldest slot and the downstream always extracts the latest "ready" slot, realizing zero copy and deterministic frame loss of data flow, and ensuring real-time control; (5) Main-bypass isolation: By creating independent main data processing pipelines and bypass threads, and the bypass threads only obtain the latest frames and debugging information from the data processing pipeline in observer mode, and independently push the stream to the external streaming media distribution server, it is ensured that network congestion does not affect the main computing link.
[0019] Other features and corresponding beneficial effects of this application will be described in the latter part of the specification, and it should be understood that at least some of the beneficial effects will become obvious from the description in this application. Attached Figure Description
[0020] Figure 1 This is a flowchart of the method in this application; Figure 2 This is a system block diagram of this application; Figure 3 This is a schematic diagram of the architecture of an embodiment of this application; Figures 4(a) and 4(b) are schematic diagrams of two different task pipelines according to embodiments of this application; Figure 5 This is a schematic diagram of the script-based topology. Detailed Implementation
[0021] The following specific embodiments illustrate the implementation of this application. Those skilled in the art can easily understand other advantages and effects of this application from the content disclosed in this specification. Although the description of this application is presented in conjunction with preferred embodiments, this does not mean that the features of this application are limited to this embodiment. On the contrary, the purpose of describing the application in conjunction with embodiments is to cover other options or modifications that may be derived based on the claims of this application. To provide a thorough understanding of this application, many specific details will be included in the following description. This application may also be implemented without using these details. Furthermore, to avoid confusion or obscuring the focus of this application, some specific details will be omitted in the description. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this application can be combined with each other.
[0022] It should be noted that in this specification, similar reference numerals and letters in the following figures indicate similar items. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures.
[0023] In the description of this application, it should be noted that the terms "center," "upper," "lower," "left," "right," "vertical," "horizontal," "inner," and "outer," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are used solely for the convenience of describing this application and for simplification, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this application. Furthermore, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Therefore, features defined with "first," "second," etc., may explicitly or implicitly include one or more of that feature. In the description of this application, unless otherwise stated, "a plurality of" means two or more. Unless otherwise explicitly specified and limited, the terms "installed," "connected," and "linked" should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral connection; a mechanical connection or an electrical connection; a direct connection or an indirect connection through an intermediate medium; or a connection within two elements. Those skilled in the art can understand the specific meaning of the above terms in this application based on the specific circumstances.
[0024] Please see Figure 1 , Figure 1 This is a flowchart of the method in this application.
[0025] This application provides a method for scheduling multi-channel concurrent inference in industrial video based on heterogeneous computing, including: Create a one-to-one data processing pipeline (Pipeline 1~N) based on the number of industrial cameras.
[0026] In each data processing pipeline, a video acquisition pipeline (Pipe1), an intelligent detection pipeline (Pipe2), and a result processing pipeline (Pipe3) are created sequentially, and a circular buffer pool is created between adjacent pipelines.
[0027] The results processing pipeline processes data by loading results processing scripts. These scripts can be written by users, allowing for flexible modification of detection rules and other aspects to quickly adapt to changes in production needs, and supporting hot updates without downtime. Preferably, interpreted scripts are used, requiring no compilation, offering good dynamic adaptability, and enabling rapid execution.
[0028] The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel subflows and / or serial subflows are constructed for multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task (Task1@CPU), a GPU-based model inference task (Task2@GPU), and a CPU-based result postprocessing task (Task3@CPU). The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors. For example, the GPU task of SubFlow1 overlaps with the CPU task of SubFlow2.
[0029] This approach, by forcibly disassembling CPU / GPU atomic tasks and utilizing directed acyclic graphs to achieve cross-hardware execution timing overlap of multiple models, fully utilizes heterogeneous computing power and improves overall throughput. By calling scripts to replace hard-coded result processing, volatile business logic such as result parsing, target tracking, and drawing can be easily adjusted without downtime deployment, improving the flexibility of result processing and controlling costs.
[0030] Preferably, the image preprocessing task and the result postprocessing task perform data processing by loading the image preprocessing script and the inference result postprocessing script, respectively. That is, the image preprocessing task loads the image preprocessing script, and the result postprocessing task loads the inference result postprocessing script. The two scripts can perform customized processing on the input and output of the detection model and can be written by the user, so as to flexibly adapt to different detection models, support hot updates without downtime, require no compilation, have good dynamic adaptability, and can be executed quickly.
[0031] Although the processing efficiency is improved by executing overlapping time sequences, the detection rules in some result processing scripts have sequential dependencies, and full parallelism may affect the overall efficiency.
[0032] Therefore, in one implementation, constructing parallel substreams and / or serial substreams for multiple detection models according to a result processing script includes: Parallel substreams are constructed for all detection models, and the first processing time of the intelligent detection pipeline is estimated.
[0033] The result processing script determines whether there is a dependency relationship among multiple detection models. If so, a serial sub-stream is constructed for the detection models with dependencies, and a parallel sub-stream is constructed for the detection models without dependencies. The second processing time of the intelligent detection pipeline is also estimated.
[0034] If a second processing time exists, the second processing time is compared with the first processing time, and a substream is constructed based on the smaller one.
[0035] Otherwise, construct a parallel sub-stream.
[0036] It should be noted that the script has a standard writing format. Specific fields in the format, such as "->" and ";", can be used to determine whether there are dependencies, thus allowing the construction of the corresponding topology. For example: Sequential script content: digraph flow { "subflow1" -> "subflow2"; "subflow1" -> "subflow3"; "subflow4" -> "subflow5"; } According to the script, its topology scheduling is as follows: Figure 5 As shown.
[0037] In one embodiment, the method further includes: Based on the number of data processing pipelines, a one-to-one corresponding bypass thread is created. The bypass thread is used to obtain the latest frames and debugging information from the data processing pipelines and push the stream independently to the external streaming media distribution server, thereby ensuring that network congestion does not affect the main computing link.
[0038] In one implementation, the circular cache pool has a depth of 3 and is defined as three mutually exclusive slot states: write-locked, ready, and read-locked. The upstream always overwrites the oldest slot, and the downstream always extracts the ready slot. That is, by forcibly eliminating historical frames, the queuing backlog phenomenon is eliminated. No matter how the computing load fluctuates, the latency of the detection instructions output by the system always converges within a single processing cycle.
[0039] Please see Figure 2 , Figure 2 This is a system block diagram of this application.
[0040] This application also provides an industrial video multi-channel concurrent inference scheduling system based on heterogeneous computing, which applies any of the above methods and includes: The pipeline creation module is used to create a one-to-one data processing pipeline based on the number of industrial cameras.
[0041] The pipeline creation module is used to sequentially create video acquisition pipeline, intelligent detection pipeline, and result processing pipeline in each data processing pipeline, and to create a circular buffer pool between adjacent pipelines.
[0042] The results processing pipeline processes results by loading result processing scripts.
[0043] The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel sub-streams and / or serial sub-streams are constructed for multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task, a GPU-based model inference task, and a CPU-based result post-processing task. The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors.
[0044] In one implementation, constructing parallel substreams and / or serial substreams for multiple detection models according to a result processing script includes: Parallel substreams are constructed for all detection models, and the first processing time of the intelligent detection pipeline is estimated.
[0045] The result processing script determines whether there is a dependency relationship among multiple detection models. If so, a serial sub-stream is constructed for the detection models with dependencies, and a parallel sub-stream is constructed for the detection models without dependencies. The second processing time of the intelligent detection pipeline is also estimated.
[0046] If a second processing time exists, the second processing time is compared with the first processing time, and a substream is constructed based on the smaller one.
[0047] Otherwise, construct a parallel sub-stream.
[0048] In one implementation, the circular cache pool has a depth of 3 and is defined as slots in three mutually exclusive states: write-locked, ready, and read-locked. The upstream always overwrites the oldest slot, and the downstream always fetches the ready slot.
[0049] In one implementation, it further includes: The bypass thread creation module is used to create a one-to-one bypass thread based on the number of data processing pipelines. The bypass thread is used to obtain the latest frames and debugging information from the data processing pipelines and push the stream independently to the external streaming media distribution server.
[0050] This application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement any of the methods described above.
[0051] This application also provides a computer-readable storage medium storing a computer program that performs any of the above methods.
[0052] Please see Figure 3 And Figure 4(a) and Figure 4(b). Figure 3 Figure 4 is a schematic diagram of the architecture of an embodiment of this application; Figure 4(a) and Figure 4(b) are schematic diagrams of two different task pipelines of an embodiment of this application.
[0053] Figure 4(a) illustrates a task pipeline with the highest data throughput when the processing time of each stage of the pipeline is consistent, i.e. there is no downtime. Compared with serial processing, this task pipeline can improve the data throughput by three times.
[0054] Figure 4(b) illustrates a situation where the execution times of different stages of the pipeline are inconsistent, i.e., a task pipeline with a gap period. When the processing time of pipe1 is twice that of other stages, the task pipeline will have a gap period, but it can still improve the data throughput by two times compared to serial processing.
[0055] Taking a defect detection scenario on a precision manufacturing production line as an example, it is necessary to simultaneously perform two models, "target localization" and "surface scratch segmentation," on the footage from a single 60fps camera.
[0056] Step 1: Pipeline and Cache Initialization The main program starts and creates or assigns Pipeline 1 for the camera. Two circular buffer pools with a depth of 3 are established (between Pipe1-Pipe2 and Pipe2-Pipe3, respectively).
[0057] The video capture pipeline (Pipe1) receives streaming media signals through the network communication module and calls the underlying multimedia decoding component to perform hardware decoding, continuously overwriting the signals into the memory slots in the first buffer that are in a "non-read-locked and oldest" state.
[0058] Step 2: Obtain the latest frame to trigger calculation When the intelligent detection pipeline Pipe2 is idle, it immediately requests data from the first buffer. The buffer state machine returns a pointer to the image currently marked as "latest ready," and Pipe2 marks that slot as "read locked."
[0059] During this process, new frames generated by Pipe1 will automatically overwrite the remaining free slots, preventing queue backlog.
[0060] Step 3: Instantiation and Overlapping Execution of DAG Computation Graph Pipe2 internally instantiates a DAG graph through a task graph scheduling engine.
[0061] (1) SubFlow1 (target localization): Task1_Loc@CPU (image scaling and normalization) → Task2_Loc@GPU (calling the deep learning inference engine to perform calculations) → Task3_Loc@CPU (NMS non-maximum suppression).
[0062] (2) SubFlow 2 (surface scratch segmentation): Task1_Seg@CPU (channel conversion) → Task2_Seg@GPU (call deep learning inference engine to perform calculation) → Task3_Seg@CPU (contour extraction).
[0063] Execution timing scheduling: The underlying graph scheduler constructs the topology based on the result processing script. In this embodiment, the two models "target localization" and "surface scratch segmentation" in the result processing script have no dependency relationship. Therefore, parallel sub-streams are constructed, and the concurrency of the two sub-streams is controlled. After Task1_Loc@CPU finishes and copies the data to the video memory, Task2_Loc@GPU operation is triggered. During the period when Task2_Loc@GPU is triggered and enters an asynchronous waiting state, the scheduler allocates the released CPU resources to Task1_Seg@CPU, thereby maximizing hardware utilization on the physical timeline.
[0064] Step 4: Scripted Logic Response and Bypass Distribution (1) After the CPU has finished calculating all the Task3 of the two sub-streams, the standardized coordinates and contour arrays are pushed into the second buffer.
[0065] (2) Pipe3 extracts the data and injects it into the internal interpreter environment. The script written by the field engineer (i.e. the result processing script) performs business judgment (such as whether the scratch area exceeds 5 square millimeters). If it exceeds the threshold, the drawing interface is called to overlay a red alarm box on the image.
[0066] (3) At the same time, the independently running bypass thread P1 captures the image frame with the alarm box, packages it into a standard real-time video stream (e.g., but not limited to RTSP / WebRTC format) and pushes it to the streaming media distribution server of the remote monitoring node. Any network fluctuations in this streaming process will not interfere with the high-speed operation of the next frame in steps 1 to 3.
[0067] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for scheduling multi-channel concurrent inference in industrial video based on heterogeneous computing, characterized in that, include: Create a one-to-one data processing pipeline based on the number of industrial cameras; In each of the data processing pipelines, a video acquisition pipeline, an intelligent detection pipeline, and a result processing pipeline are created sequentially, and a circular buffer pool is created between adjacent pipelines; The result processing pipeline processes data by loading result processing scripts; and... The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel sub-streams and / or serial sub-streams are constructed for the multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task, a GPU-based model inference task, and a CPU-based result post-processing task. The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors. The image preprocessing task and the result postprocessing task perform data processing by loading the image preprocessing script and the inference result postprocessing script, respectively.
2. The industrial video multi-channel concurrent inference scheduling method based on heterogeneous computing according to claim 1, characterized in that, The step of constructing parallel substreams and / or serial substreams for the multiple detection models according to the result processing script includes: Parallel substreams are constructed for all the aforementioned detection models, and the first processing time of the intelligent detection pipeline is estimated. The result processing script determines whether there is a dependency relationship among the multiple detection models. If there is, a serial sub-stream is constructed for the detection models with dependencies, and a parallel sub-stream is constructed for the detection models without dependencies. The second processing time of the intelligent detection pipeline is estimated. If the second processing time exists, the second processing time and the first processing time are compared, and a sub-stream is constructed based on the smaller one; Otherwise, construct a parallel sub-stream.
3. The industrial video multi-channel concurrent inference scheduling method based on heterogeneous computing according to claim 1, characterized in that, Also includes: Based on the number of data processing pipelines, a one-to-one corresponding bypass thread is created. The bypass thread is used to obtain the latest frame and debugging information from the data processing pipeline and independently push the stream to the external streaming media distribution server.
4. The industrial video multi-channel concurrent inference scheduling method based on heterogeneous computing according to claim 1, characterized in that, The circular cache pool has a depth of 3 and is defined as slots in three mutually exclusive states: write-locked, ready, and read-locked. The upstream always overwrites the oldest slot, and the downstream always retrieves the ready slot.
5. An industrial video multi-channel concurrent inference scheduling system based on heterogeneous computing, characterized in that, The application is the method as described in any one of claims 1-4, and includes: The pipeline creation module is used to create a one-to-one data processing pipeline based on the number of industrial cameras. The pipeline creation module is used to sequentially create a video acquisition pipeline, an intelligent detection pipeline, and a result processing pipeline in each of the data processing pipelines, and to create a circular buffer pool between adjacent pipelines. The result processing pipeline processes data by loading result processing scripts; and... The intelligent detection pipeline includes multiple detection models, which are concurrent models. Parallel sub-streams and / or serial sub-streams are constructed for the multiple detection models according to the result processing script. Each detection model is decoupled into a CPU-based image preprocessing task, a GPU-based model inference task, and a CPU-based result post-processing task. The parallel detection models are executed interleaved on the time axis based on the processing tasks of different processors. The image preprocessing task and the result post-processing task perform data processing by loading the image preprocessing script and the inference result post-processing script, respectively.
6. The industrial video multi-channel concurrent inference scheduling system based on heterogeneous computing according to claim 5, characterized in that, Also includes: The bypass thread creation module is used to create a one-to-one corresponding bypass thread based on the number of data processing pipelines. The bypass thread is used to obtain the latest frame and debugging information from the data processing pipeline and independently push the stream to the external streaming media distribution server.
7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method of any one of claims 1-4.
8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that performs the method of any one of claims 1-4.