Data transmission method and device and server
By disassembling data into multiple packets and using message queue management processing, the message is completed, and the problem of low data transmission efficiency in large -scale complex operations has been solved, and the resource utilization rate and computing efficiency are improved.
Patent Information
- Application Number
- CN202310932630.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-27
- Publication Date
- 2025-01-28
AI Technical Summary
In large and complex operations, the transmission of data between multiple servers consumes a lot of time and resources, resulting in waste of resources and reduced processing speed.
By disassembling the overall data into multiple packets, and generating the processing of the processing after each data packet processing is completed, the message queue is written to achieve orderly transmission and processing of the data flow.
Improving the turnover efficiency of data between multiple computing links, reducing the server waiting time, and improving the resource utilization and overall computing efficiency.
Smart Images

Figure CN119383229A_ABST
Abstract
Description
[Technical field]
[0001] The embodiments of the present application relate to the field of data processing technology, and in particular, to a data transmission method, device and server. [Background technology]
[0002] Large and complex calculations require the collaboration of multiple links. The servers in each link perform part of the tasks. When there is a logical relationship between output and input between different servers, data flows to multiple servers that perform different tasks. After the server that performs the current calculation task completes processing of all data, it is transmitted to the next server that uses the current result for subsequent processing. The next server receives the data after completing the calculation of the previous data transmitted to the local. If the data occupies a large space, the transmission of data between different servers will consume a lot of time, and the process waiting will also lead to a waste of resources and time.
[0003] For example, in the security and autonomous driving fields, radars, cameras and other sensors collect a large amount of data, and the backend processes the data to output prediction results, real-time traffic conditions, etc. The above output prediction results and real-time traffic conditions require the cooperation of multiple links of different people, such as image preprocessing, feature annotation, machine learning, etc., so the data takes up a large space. For example, videos of a specified time period need to flow between multiple services, and the server will consume a lot of time each time it uploads and downloads data. At the same time, the subsequent processes are also in the waiting process, which wastes time and idles resources. [Summary of the invention]
[0004] The embodiments of the present application provide a data transmission method, device, and server to accelerate the flow of data between various links of large-scale calculations that require the cooperation of multiple computing links to complete, thereby improving the utilization rate of computing resources in each link and the overall computing efficiency.
[0005] In a first aspect, an embodiment of the present application provides a data transmission method, which is applied to a first server of a data transmission system, wherein the data transmission system also includes a second server, and the method includes: obtaining multiple data packets; the multiple data packets constitute original data to be transmitted; when target calculation is completed for any data packet among the multiple data packets, a processing completion message is generated for the data packet that has completed the target calculation; the processing completion message carries a unique identifier of the corresponding data packet; when the data packet that has completed the target calculation is sent to the second server, the processing completion message is written into the message queues of the first server and the second server.
[0006] In the above data transmission method, the transmission of the overall data is converted into the formation process of the data stream; first, multiple data packets that can constitute the overall data are obtained, and each time the server of the current calculation link completes the processing of a data packet, a processing completion message corresponding to the data packet is generated; at the same time, the step of sending the data packet to the server executing the next calculation link and the step of writing the corresponding processing completion message into the message queue are performed, so as to achieve the purpose of sending a data packet to the server executing the next calculation link after the server processes a data packet, and informing the server executing the next calculation link that the data packet has been sent, so that after the server executing the next calculation link completes the previous local calculation, it can sequentially extract the processing completion message arranged according to the writing time based on the message queue, thereby obtaining the data packet that the server of the next calculation link needs to process this time. According to the above process, it can be known that the sequential access of multiple data packets is completed through the objective arrangement order of the processing completion message in the message queue, thereby breaking the data transmission into parts, allowing each link of the data flow to process part of the data in an orderly manner, and improving resource utilization and overall processing speed.
[0007] In one possible implementation, the original data is video data fused with sensor information and radar information. After splitting the original data, the method further includes:
[0008] Extracting key information preset to describe the video data from the original data to obtain metadata information corresponding to the multiple data packets;
[0009] The metadata information and unique identifiers of multiple data packets associated with the metadata information are stored in a database.
[0010] In one possible implementation, the data transmission system further includes a cloud server; when sending the data packet that has completed the target calculation to the second server, writing the processing completion message into the message queues of the first server and the second server includes:
[0011] When the data packet that has executed the target calculation is uploaded to the cloud server, the processing completion message is written into the message queues of the first server and the second server.
[0012] In one possible implementation, the raw data is video data fused with sensor information and radar information, and multiple data packets are obtained, including:
[0013] obtaining the original data to be transmitted from the first server to the second server;
[0014] Obtaining the acquisition time corresponding to each frame of the original data;
[0015] According to the size of the acquisition time corresponding to different frame images, the original data is divided into multiple video segments of preset sizes; and the multiple video segments are connected end to end.
[0016] In a second aspect, an embodiment of the present application provides a data transmission method, which is applied to a second server of a data transmission system, wherein the data transmission system also includes a first server, and the method includes:
[0017] When the last locally executed calculation is completed, a processing completion message corresponding to the data packet to be processed in this calculation is taken out from the message queues of the first server and the second server; the processing completion message carries a unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing;
[0018] According to the unique identifier, the data packet to be processed in the current calculation is retrieved.
[0019] In one possible implementation, after obtaining the data packet to be processed in the current calculation, the method further includes:
[0020] When the data packet to be processed in the current calculation does not contain the specific data required by the current calculation, metadata information associated with the unique identifier corresponding to the data packet to be processed in the current calculation is downloaded from the database.
[0021] In a third aspect, an embodiment of the present application provides a data transmission method, which is applied to a data transmission system, wherein the data transmission system includes a first server and a second server; the method includes:
[0022] The first server obtains a plurality of data packets; the plurality of data packets constitute original data to be transmitted;
[0023] When the target calculation is completed for any data packet among the multiple data packets, the first server generates a processing completion message for the data packet on which the target calculation is completed; the processing completion message carries a unique identifier of the corresponding data packet;
[0024] When the first server sends the data packet that has completed the target calculation to the second server, the first server writes the processing completion message into the message queues of the first server and the second server;
[0025] When the last locally executed calculation is completed, the second server takes out the processing completion message corresponding to the data packet to be processed in this calculation from the message queues of the first server and the second server; the processing completion message carries the unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing;
[0026] The second server obtains the data packet to be processed in the current calculation according to the unique identifier.
[0027] In a fourth aspect, an embodiment of the present application provides a data transmission device, which is arranged in a first server, and the device includes:
[0028] A data packet acquisition module, used to acquire a plurality of data packets; the plurality of data packets constitute the original data to be transmitted;
[0029] A message generating module, configured to generate a processing completion message for the data packet on which the target calculation has been executed when the target calculation has been executed for any data packet among the plurality of data packets; the processing completion message carries a unique identifier of the corresponding data packet;
[0030] A message writing module is used to write the processing completion message into the message queues of the first server and the second server when the data packet that has executed the target calculation is sent to the second server.
[0031] In one possible implementation, the device further includes:
[0032] An information extraction module, used to extract key information preset to describe the video data from the original data, and obtain metadata information corresponding to the multiple data packets;
[0033] The storage module is used to store the metadata information and the unique identifier of the data packet associated with the metadata information in a database.
[0034] In one possible implementation, the data transmission system also includes a cloud server; the message writing module is specifically used to write the processing completion message into the message queues of the first server and the second server when the data packet that has executed the target calculation is uploaded to the cloud server.
[0035] In one possible implementation, the data packet obtaining module includes:
[0036] an original data submodule, configured to obtain the original data to be transmitted from the first server to the second server;
[0037] A time acquisition submodule, used to obtain the acquisition time corresponding to each frame of the original data;
[0038] The splitting submodule is used to split the original data into multiple video segments of preset sizes according to the size of the corresponding acquisition time of different frame images; the multiple video segments are connected end to end.
[0039] In a fifth aspect, an embodiment of the present application provides a data transmission device, which is arranged in a second server, and the device includes:
[0040] A fetching module, used for fetching, when the last locally executed calculation is completed, a processing completion message corresponding to a data packet to be processed in this calculation from the message queues of the first server and the second server; the processing completion message carries a unique identifier of the corresponding data packet; the message queue has a plurality of data packets arranged in the order in which they were written;
[0041] The retrieving module is used to retrieve the data packet to be processed in the current calculation according to the unique identifier.
[0042] In one possible implementation, the device further includes:
[0043] The information download module is used to download metadata information associated with the unique identifier of the data packet to be processed in the current calculation from the database when the data packet to be processed in the current calculation does not contain the specific data required by the current calculation.
[0044] In a sixth aspect, an embodiment of the present application provides a server, comprising: at least one processor; and at least one memory communicatively connected to the processor, wherein: the memory stores program instructions executable by the processor, and the processor calls the program instructions to execute the method provided in the first aspect or the second aspect.
[0045] In a seventh aspect, an embodiment of the present application provides a non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores computer instructions, and the computer instructions enable the computer to execute the method provided in the first aspect.
[0046] It should be understood that the second to fourth aspects of the embodiments of the present application are consistent with the technical solutions of the first aspect of the embodiments of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here.
Brief Description of the Drawings
[0047] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0048] Figure 1 It is an application environment diagram where multiple links collaborate to complete computing tasks;
[0049] Figure 2 is a flowchart of the steps of the data transmission method proposed in the embodiment of the present application;
[0050] Figure 3 This is a schematic diagram of a data packet obtained by splitting raw data in an example of the present application;
[0051] Figure 4 This is a schematic diagram of an example of a first server sending a data packet to a second server in the present application;
[0052] Figure 5 is a flowchart of another data transmission method proposed in an embodiment of the present application;
[0053] Figure 6 is a schematic diagram of an exemplary method for executing data transmission in the present application;
[0054] Figure 7 is a flowchart of the steps of a data transmission method proposed in another embodiment of the present application;
[0055] Figure 8 This is a flowchart of the steps of a data transmission method proposed in another embodiment of the present application;
[0056] Fig. 9 It is an application environment diagram that illustrates multiple links to perform the data transmission method proposed in the embodiment of the present application to collaboratively complete a computing task;
[0057] Fig.10 It is a functional module diagram of the data transmission device proposed in the embodiment of the present application;
[0058] Fig.11 is a functional module diagram of a data transmission device proposed in another embodiment of the present application;
[0059] Fig.12 A schematic diagram of the structure of a server provided in an embodiment of the present application. [Specific implementation method]
[0060] In order to better understand the technical solution of this specification, the embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0061] It should be clear that the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this specification.
[0062] The terms used in the embodiments of the present application are only for the purpose of describing specific embodiments, and are not intended to limit this specification. The singular forms of "a", "said" and "the" used in the embodiments of the present application and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings.
[0063] For example, taking the field of autonomous driving as an example, the waste of resources and time caused by data transmission is explained. Figure 1 It is an application environment diagram where multiple links collaborate to complete computing tasks, such as Figure 1 As shown, in the field of autonomous driving, vehicles are equipped with cameras, lidars, biosensors, etc. Figure 1 The data flow links shown include vehicle computing equipment, data computer system (DCS), video annotation computing system, and machine learning computing system. Each link performs corresponding calculations to complete the prediction of road conditions.
[0064] The camera collects live video, and the vehicle computing device fuses the video data with the information collected by other sensors to obtain raw video data carrying multi-angle information. For example, the raw video data can carry information such as the distance between the vehicle and obstacles at different locations and the speed changes during the vehicle's driving process.
[0065] The vehicle obtains raw video data and uploads it to the cloud server. After the data computer system completes the previous computing task, it downloads the raw video data from the cloud server to the local computer to perform video preprocessing tasks on the raw video data. After the data computer system completes the processing of the raw video data, it uploads the raw video data to the cloud server. After the server of the video annotation computing system completes the previous computing task, it downloads the raw video data from the cloud server to the local computer to perform feature annotation on the raw video data. After the server of the video annotation computing system completes the processing of the raw video data, it uploads the raw video data to the cloud server again. After the server of the machine learning system completes the previous computing task, it downloads the raw video data from the cloud server to the local computer to perform model operations and output results on the raw video data.
[0066] It can be seen that the original video data passes through the data computer system, video annotation computing system and machine learning computing system in sequence from the vehicle computing equipment. The original video data occupies a large space, and repeated uploading and downloading of the original video data wastes a lot of time. In addition, there is a problem that the original video data cannot be transferred to other links due to the long computing time of the server in a certain link, causing the server to wait too long, thereby wasting computing resources.
[0067] In view of the above problems, an embodiment of the present application proposes a data transmission method, which breaks the whole into parts to obtain multiple data packets that can constitute the entire data, and converts the transmission of the entire data into grabbing the data packet transmission time, sorting and transmitting the data packets to meet the data processing needs between servers. Since the data packets occupy a small space, the data transmission time is saved; at the same time, the processing completion message is associated with the sending of the corresponding data packet. The server in the downstream link can download the data packet that needs to be processed this time according to the processing completion message during idle time. The server in the upstream link does not need to wait for the server in the downstream link to be idle, thereby reducing the waiting time of the server.
[0068] The data transmission method proposed in the embodiment of the present application is applied to a first server of a data transmission system, and the data transmission system also includes a second server. Figure 1 Taking the application environment shown as an example, if the data flow is transferred to the data computer system, the first server can be the server of the data computer system, and the second server can be the server of the video annotation computing system; if the data flow is transferred to the video annotation computing system, the first server can be the server of the video annotation computing system, and the second server can be the server of the machine learning system.
[0069] Figure 2 is a flowchart of the steps of the data transmission method proposed in the embodiment of the present application, such as Figure 2 As shown, the steps include:
[0070] Step S21: obtaining a plurality of data packets; the plurality of data packets constitute the original data to be transmitted.
[0071] Convert the transmission of the entire original data into the ordered transmission of multiple data packets.
[0072] by Figure 1 Taking the application environment shown as an example, the original data may be video data fused with sensor information and radar information.
[0073] The embodiment of the present application also proposes an optional method for obtaining multiple data packets, where step S21 includes sub-steps S211 to S213.
[0074] Step S211: Obtain the original data to be transmitted from the first server to the second server.
[0075] by Figure 1 Taking the application environment shown as an example, the vehicle computing device transmits the original data, i.e., the video data fused with the sensor information, to the data computer system, and the server of the data computer system obtains the original data. Alternatively, the server of the video annotation computing system receives multiple data packets sent by the data computer system, and the multiple data packets can constitute the video data, and the server of the video annotation computing system also obtains the original data.
[0076] Step S212: Obtaining the acquisition time corresponding to each frame of the original data.
[0077] Step S213: splitting the original data into multiple video segments of preset sizes according to the size of the acquisition time corresponding to different frame images; and connecting the multiple video segments end to end.
[0078] According to the preset size and the acquisition time corresponding to each frame of the image, the splitting node used when splitting the original data can be obtained.
[0079] Figure 3 This is a schematic diagram of a data packet obtained by splitting the original data in an example of this application. Figure 1 Taking the application environment shown as an example, the preset size is x1G, the vehicle computing device records video data occupying a space of XT, and the video data includes multiple video data within a period of time, and determines the position of the split node in the video data. The server of the data computer system obtains the video data, and according to the acquisition time of the image frame in the video data, the data recorded at different times are disassembled respectively, and split into multiple data packets occupying a space of x1G.
[0080] Step S22: When the target calculation is completed for any data packet among the multiple data packets, a processing completion message is generated for the data packet for which the target calculation has been completed; the processing completion message carries a unique identifier of the corresponding data packet.
[0081] After processing a data packet, the first server immediately generates a uniquely associated processing completion message for the processed data packet without waiting for all data packets corresponding to the original data to be processed.
[0082] For example, the original data may be video data, and the unique identifier may be time information corresponding to video segments obtained by splitting the video data.
[0083] Step S23: When the data packet that has completed the target calculation is sent to the second server, the processing completion message is written into the message queues of the first server and the second server.
[0084] Each time the first server finishes processing a data packet, it can immediately send the data packet to the second server without waiting for all data packets corresponding to the original data to be processed. At the same time, the processing completion message corresponding to the data packet is written into the message queues of the first server and the second server. The messages in the message queues are arranged in a first-in-first-out order, so that the data packets sent at different times also have the same arrangement order, thereby converting the transmission of the entire original data into the transmission of a data stream.
[0085] When there is an idle thread on the second server, it can extract the processing completion message from the message queue. Since the processing completion message extracted by the second server from the message queue is the earliest stored in all the messages currently stored in the message queue, the second server can directly download the earliest processed data packet of the first server from the cloud server based on the unique identifier carried by the processing completion message, so that the second server can process multiple data packets in the order in which they are collected in the original data.
[0086] An embodiment of the present application proposes that the method for sending the data packet of the target calculation of the first server to the second server includes: uploading the data packet to the cloud server, so that the second server can download the corresponding data packet from the cloud server when a data packet is to be processed.
[0087] The data transmission system further includes a cloud server; when sending the data packet that has completed the target calculation to the second server, writing the processing completion message into the message queues of the first server and the second server, including:
[0088] When the data packet that has executed the target calculation is uploaded to the cloud server, the processing completion message is written into the message queues of the first server and the second server.
[0089] Figure 4 This is a schematic diagram of an example of a first server sending a data packet to a second server in this application, refer to Figure 4 It can be obtained that the multiple processing completion messages of the message queue correspond one to one with the multiple data packets stored in the cloud service. The message queue includes processing completion message y1, processing completion message y2, processing completion message y3, and processing completion message y4, wherein y1, y2, y3, and y4 are unique identifiers of the data packets corresponding to each processing completion message, and the multiple data packets stored in the cloud service include data packet y1, data packet y2, data packet y3, and data packet y4; the first server splits the original data to obtain data packet y1, data packet y2, data packet y3, and data packet y4, and after processing data packet y1, generates processing completion message y1, uploads data packet y1 to the server, and writes processing completion message y1 to the message queue; the first server then processes data packet y2, uploads data packet y2 to the server, and writes processing completion message y2 to the message queue, and obtains Figure 4The message queue and multiple data packets stored in the cloud service are shown. The second server can select any time to sequentially extract the processing completion message corresponding to the data packet that should be currently processed from the message queue according to user instructions or local computing resource allocation, and download data packet y1 from the cloud service according to the unique identifier y1 corresponding to the processing completion message; since the second server obtains the processing completion message in the order of processing completion message y1, processing completion message y2, processing completion message y3, and processing completion message y4, the second server processes data in the order of data packet y1, data packet y2, data packet y3, and data packet y4, and this attribute is the same as the corresponding collection order of the data packets in the original data. In the above process, the first server does not need to upload all the original data after all the original data is processed, and the second server does not need to wait for the time for the first server to process all the original data, and a single data packet occupies a small space, which shortens the upload and download time.
[0090] The present application also proposes another data transmission method: Figure 5 is a flowchart of another data transmission method proposed in an embodiment of the present application, wherein the original data is video data fused with sensor information and radar information, such as Figure 5 As shown, the steps include:
[0091] Step S51: obtaining a plurality of data packets; the plurality of data packets constitute the original data to be transmitted.
[0092] Step S52: When the target calculation is completed for any data packet among the multiple data packets, a processing completion message is generated for the data packet for which the target calculation has been completed; the processing completion message carries a unique identifier of the corresponding data packet.
[0093] Step S53: When the data packet that has completed the target calculation is sent to the second server, the processing completion message is written into the message queues of the first server and the second server.
[0094] Step S54: extracting key information preset to describe the video data from the original data, and obtaining metadata information corresponding to the multiple data packets.
[0095] Deep learning methods such as video recognition and target detection can be used to extract the content of different frame images of the original video data, obtain key information describing the video data, and obtain metadata information corresponding to multiple data packets.
[0096] For example, if it is detected that the original video data includes video frames of a vehicle passing through a traffic light intersection, key information can be extracted: frames N1 to N2 record the vehicle passing through the traffic light intersection. If obstacle information collected by the laser radar is detected, key information can be extracted: whether the vehicle hits an obstacle; if it is detected that the original video information contains weather information uploaded by other sensors, key information can be extracted: whether the vehicle encounters rain or snow during driving.
[0097] In response to user instructions, the direction of detecting the original video information can be preset to obtain key information that presets the video data. For example, weather information can be preset as key information, and the preset information can be specifically extracted when extracting information from the original data to obtain weather information contained in the video.
[0098] Assuming that there are M kinds of key information describing the video data, the metadata information includes the M kinds of key information, which can comprehensively describe the original video data.
[0099] Step S55: storing the metadata information and the unique identifiers of multiple data packets associated with the metadata information in a database.
[0100] The metadata information is information that may be required by the second server to process the data in advance, thereby ensuring the integrity of the data processed by the second server.
[0101] Figure 6 is a schematic diagram of an exemplary method for executing data transmission in the present application, such as Figure 6 As shown, for example, the original video data A is split to obtain data packets y1, y2, y3, and y4, and after extracting the metadata information {message} of the original video data A, the metadata information of the original video data A is bound to the unique identifiers of the data packets y1, y2, y3, and y4 to obtain {message, y1, y2, y3, y4}, and {message, y1, y2, y3, y4} is stored in the database. The metadata information corresponding to the data packet can be extracted from the database at any time during the processing of the data packet by the second server.
[0102] When the second server needs certain specific data when processing a data packet, it can download metadata information from the database based on the unique identifier corresponding to the data packet being processed to obtain the required data.
[0103] The data that may not be included in the data packet currently processed by the second server may be obtained from the metadata information.
[0104] Figure 7is a flowchart of the steps of a data transmission method proposed in another embodiment of the present application, which is applied to a second server, and the data transmission system also includes a first server; Figure 7 As shown, the steps include:
[0105] Step S71: When the last locally executed calculation is completed, the processing completion message corresponding to the data packet to be processed in this calculation is taken out from the message queues of the first server and the second server; the processing completion message carries the unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing.
[0106] Step S72: According to the unique identifier, retrieve the data packet to be processed in the current calculation.
[0107] Step S73: when the data packet to be processed in the current calculation does not contain the specific data required for the current calculation, metadata information associated with the unique identifier corresponding to the data packet to be processed in the current calculation is downloaded from the database.
[0108] The optional examples of the landing control method implemented in the present application have been described in the embodiment applied to the first server side, and the embodiment of the second server side will not be repeated.
[0109] Figure 8 : is a flowchart of the steps of a data transmission method proposed in another embodiment of the present application, which is applied to a data transmission system, wherein the data transmission system includes a first server and a second server; Figure 8 As shown, the steps include:
[0110] Step S81: the first server obtains a plurality of data packets; the plurality of data packets constitute original data to be transmitted.
[0111] Step S82: When the target calculation is completed for any data packet among the multiple data packets, the first server generates a processing completion message for the data packet on which the target calculation has been executed; the processing completion message carries a unique identifier of the corresponding data packet.
[0112] Step S83: When the first server sends the data packet that has executed the target calculation to the second server, the first server writes the processing completion message into the message queues of the first server and the second server.
[0113] Step S84: When the last locally executed calculation is completed, the second server takes out the processing completion message corresponding to the data packet to be processed in this calculation from the message queues of the first server and the second server; the processing completion message carries the unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in chronological order according to the writing order.
[0114] Step S85: The second server obtains the data packet to be processed in the current calculation according to the unique identifier.
[0115] Fig. 9 This is an example of an application environment diagram in which multiple links perform the data transmission method proposed in the embodiment of the present application to collaboratively complete a computing task, such as Fig. 9 As shown, the video data collected by the vehicle flows to the data computer system. The server of the data computer system acts as the first server, splits the original data to obtain multiple data packets, generates a processing completion message containing its corresponding unique identifier after processing each data packet, uploads the data packet to the cloud server, and writes the processing completion message into the message queue; the server of the video annotation computing system acts as the second server, downloads the data packets from the cloud server in sequence according to the corresponding time size of the data packets according to the processing completion messages arranged in the message queue, and processes the data packets.
[0116] After the server of the video annotation computing system processes the data packet, it obtains the data packet as the first server, and sends the processed data packet to the server of the machine learning system in the above manner. The server of the machine learning system obtains the data packet as the second server in the above manner.
[0117] According to the above description and Fig. 9 As shown, the original video data is split into multiple data packets, and the data packets can flow independently in different links, that is, the data packets can flow independently between the data computer system, the video annotation computing system and the machine learning computing system, and the data packets are sorted through the processing completion message corresponding to the data packet, ensuring that each of the multiple data packets flows independently and orderly in different links. The server does not need to wait for the server in the previous link to process the original data. The data packet occupies a small space and has a fast upload and download speed, saving transmission time and computing resources.
[0118] The optional examples of the landing control method implemented in the present application have been described in the embodiment applied to the first server side, and the embodiments of the system will not repeat the contents.
[0119] Fig.10 is a functional module diagram of a data transmission device proposed in an embodiment of the present application, wherein the data transmission device is arranged in a first server, such as Fig.10 As shown, the device comprises:
[0120] The data packet acquisition module 101 is used to obtain a plurality of data packets; the plurality of data packets constitute the original data to be transmitted;
[0121] A message generating module 102 is used for generating a processing completion message for the data packet on which the target calculation is completed when the target calculation is completed for any data packet among the multiple data packets; the processing completion message carries a unique identifier of the corresponding data packet;
[0122] The message writing module 103 is used to write the processing completion message into the message queues of the first server and the second server when sending the data packet that has executed the target calculation to the second server.
[0123] Fig.10 The image processing device provided in the embodiment shown can be used to execute the Figures 1 to 6 The technical solution of the method embodiment shown, its implementation principle and technical effects can be further referred to the relevant description in the method embodiment.
[0124] Optionally, the device further comprises:
[0125] An information extraction module, used to extract key information preset to describe the video data from the original data, and obtain metadata information corresponding to the multiple data packets;
[0126] The storage module is used to store the metadata information and the unique identifier of the data packet associated with the metadata information in a database.
[0127] Optionally, the data transmission system also includes a cloud server; the message writing module is specifically used to write the processing completion message into the message queues of the first server and the second server when the data packet that has executed the target calculation is uploaded to the cloud server.
[0128] Optionally, the data packet obtaining module includes:
[0129] an original data submodule, configured to obtain the original data to be transmitted from the first server to the second server;
[0130] A time acquisition submodule, used to obtain the acquisition time corresponding to each frame of the original data;
[0131] The splitting submodule is used to split the original data into multiple video segments of preset sizes according to the size of the corresponding acquisition time of different frame images; the multiple video segments are connected end to end.
[0132] The device provided in the above-mentioned embodiment is used to execute the technical solution of the above-mentioned method embodiment. Its implementation principle and technical effect can be further referred to the relevant description in the method embodiment, which will not be repeated here.
[0133] Fig.11is a functional module diagram of a data transmission device proposed in another embodiment of the present application, wherein the data transmission device is arranged in the second server, such as Fig.11 As shown, the device comprises:
[0134] The fetching module 111 is used to fetch the processing completion message corresponding to the data packet to be processed in this calculation from the message queues of the first server and the second server when the last locally executed calculation is completed; the processing completion message carries the unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing;
[0135] The retrieving module 112 is used to retrieve the data packet to be processed in the current calculation according to the unique identifier.
[0136] Fig.11 The image processing device provided in the embodiment shown can be used to execute the Figure 7 The technical solution of the method embodiment shown, its implementation principle and technical effects can be further referred to the relevant description in the method embodiment.
[0137] Optionally, the device further comprises:
[0138] The information download module is used to download metadata information associated with the unique identifier of the data packet to be processed in the current calculation from the database when the data packet to be processed in the current calculation does not contain the specific data required by the current calculation.
[0139] The device provided in the above-mentioned embodiment is used to execute the technical solution of the above-mentioned method embodiment. Its implementation principle and technical effect can be further referred to the relevant description in the method embodiment, which will not be repeated here.
[0140] The device provided in the above embodiment can be, for example, a chip or a chip module. The device provided in the above embodiment is used to execute the technical solution of the above method embodiment. Its implementation principle and technical effect can be further referred to the relevant description in the method embodiment, which will not be repeated here.
[0141] Regarding the various modules / units included in the various devices described in the above embodiments, they can be software modules / units, or hardware modules / units, or they can be partially software modules / units and partially hardware modules / units. For example, for various devices applied to or integrated in a chip, the various modules / units included therein can all be implemented in the form of hardware such as circuits, or at least some of the modules / units can be implemented in the form of software programs, which run on a processor integrated inside the chip, and the remaining modules / units can be implemented in the form of hardware such as circuits; for various devices applied to or integrated in a chip module, the various modules / units included therein can all be implemented in the form of hardware such as circuits, and different modules / units can be located in the same component of the chip module (such as a chip, circuit module, etc.) or in different components, or at least some of the modules / units can be implemented in the form of software programs. The software program may be implemented in the form of a program, which runs on a processor integrated in the chip module, and the remaining modules / units may be implemented in the form of hardware such as circuits; for each device applied to or integrated in the electronic terminal device, each module / unit contained therein may be implemented in the form of hardware such as circuits, and different modules / units may be located in the same component (for example, a chip, a circuit module, etc.) or in different components in the electronic terminal device, or at least some modules / units may be implemented in the form of a software program, which runs on a processor integrated in the electronic terminal device, and the remaining (if any) modules / units may be implemented in the form of hardware such as circuits.
[0142] Fig.12 A structural diagram of a server provided in an embodiment of the present application, the server 1200 includes a processor 1210, a memory 1211, and a computer program stored in the memory 1211 and executable on the processor 1210, wherein the processor 1210 implements the steps in the aforementioned method embodiment when executing the program, and the electronic terminal device provided in the embodiment can be used to execute the technical solution of the method embodiment shown above, and its implementation principle and technical effects can be further referred to the relevant description in the method embodiment, which will not be repeated here.
[0143] The present application provides a non-transitory computer-readable storage medium storing computer instructions, which enable the computer to execute the instructions of the present invention. Figures 1 to 9 The data transmission method provided by the illustrated embodiment. Non-transitory computer readable storage media may refer to non-volatile computer storage media.
[0144] The above-mentioned non-transient computer-readable storage medium can adopt any combination of one or more computer-readable media. Computer-readable media can be computer-readable signal media or computer-readable storage media. Computer-readable storage media can be, for example, - but not limited to - electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or devices, or any combination of the above. More specific examples (non-exhaustive lists) of computer-readable storage media include: electrical connections with one or more wires, portable computer disks, hard disks, random access memories (RAM), read-only memories (read only memory, ROM), erasable programmable read-only memories (erasable programmable read only memory, EPROM) or flash memory, optical fibers, portable compact disk read-only memories (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. In this document, computer-readable storage media can be any tangible medium containing or storing programs, which can be used by instruction execution systems, devices or devices or used in combination with them.
[0145] Computer-readable signal media may include a data signal propagated in baseband or as part of a carrier wave, which carries a computer-readable program code. Such propagated data signals may take a variety of forms, including, but not limited to, electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than a computer-readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0146] The program code embodied on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wire, optical cable, radio frequency (RF), etc., or any suitable combination of the foregoing.
[0147] Computer program code for performing the operations of the present specification may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0148] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0149] In the description of the embodiments of the present application, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of this specification. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, without contradicting each other.
[0150] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include at least one of the features. In the description of this specification, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.
[0151] Any process or method description in a flowchart or otherwise described herein may be understood to represent a module, segment or portion of code that includes one or more executable instructions for implementing the steps of a custom logical function or process, and the scope of the preferred embodiments of this specification includes alternative implementations in which functions may not be performed in the order shown or discussed, including performing functions in a substantially simultaneous manner or in reverse order depending on the functions involved, which should be understood by technicians in the technical field to which the embodiments of this specification belong.
[0152] The word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrases "if it is determined" or "if (stated condition or event) is detected" may be interpreted as "when it is determined" or "in response to determining" or "when detecting (stated condition or event)" or "in response to detecting (stated condition or event)", depending on the context.
[0153] It should be noted that the terminals involved in the embodiments of the present application may include but are not limited to personal computers (PCs), personal digital assistants (PDAs), wireless handheld devices, tablet computers, mobile phones, MP3 players, MP4 players, etc.
[0154] In the several embodiments provided in this specification, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0155] In addition, each functional unit in each embodiment of this specification may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above integrated unit may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0156] The above-mentioned integrated unit implemented in the form of a software functional unit can be stored in a computer-readable storage medium. The above-mentioned software functional unit is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to perform some steps of the method described in each embodiment of this specification. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, and other media that can store program codes.
[0157] The above description is only a preferred embodiment of this specification and is not intended to limit this specification. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of this specification should be included in the scope of protection of this specification.
Claims
1. A data transmission method, characterized in that: A first server applied to a data transmission system, wherein the data transmission system further comprises a second server, wherein the method comprises: Obtaining a plurality of data packets; the plurality of data packets constitute original data to be transmitted; When the target calculation is completed for any data packet among the multiple data packets, a processing completion message is generated for the data packet for which the target calculation is completed; the processing completion message carries a unique identifier of the corresponding data packet; When the data packet that has completed the target calculation is sent to the second server, the processing completion message is written into the message queues of the first server and the second server.
2. The method according to claim 1, characterized in that The original data is video data fused with sensor information and radar information. After splitting the original data, the method further includes: Extracting key information preset to describe the video data from the original data to obtain metadata information corresponding to the multiple data packets; The metadata information and unique identifiers of multiple data packets associated with the metadata information are stored in a database.
3. The method according to claim 1, characterized in that The data transmission system further includes a cloud server; when sending the data packet that has completed the target calculation to the second server, writing the processing completion message into the message queues of the first server and the second server, including: When the data packet that has executed the target calculation is uploaded to the cloud server, the processing completion message is written into the message queues of the first server and the second server.
4. The method according to claim 1, characterized in that: The raw data is video data fused with sensor information and radar information, and multiple data packets are obtained, including: obtaining the original data to be transmitted from the first server to the second server; Obtaining the acquisition time corresponding to each frame of the original data; According to the size of the acquisition time corresponding to different frame images, the original data is divided into multiple video segments of preset sizes; and the multiple video segments are connected end to end.
5. A data transmission method, characterized in that: A second server applied to a data transmission system, wherein the data transmission system further comprises a first server, wherein the method comprises: When the last locally executed calculation is completed, a processing completion message corresponding to the data packet to be processed in this calculation is taken out from the message queues of the first server and the second server; the processing completion message carries a unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing; According to the unique identifier, the data packet to be processed in the current calculation is retrieved.
6. The method according to claim 5, characterized in that After obtaining the data packet to be processed in the current calculation, the method further includes: When the data packet to be processed in the current calculation does not contain the specific data required by the current calculation, metadata information associated with the unique identifier corresponding to the data packet to be processed in the current calculation is downloaded from the database.
7. A data transmission method, characterized in that: Applied to a data transmission system, the data transmission system includes a first server and a second server; the method includes: The first server obtains a plurality of data packets; the plurality of data packets constitute original data to be transmitted; When the target calculation is completed for any data packet among the multiple data packets, the first server generates a processing completion message for the data packet on which the target calculation is completed; the processing completion message carries a unique identifier of the corresponding data packet; When the first server sends the data packet that has completed the target calculation to the second server, the first server writes the processing completion message into the message queues of the first server and the second server; When the last locally executed calculation is completed, the second server takes out the processing completion message corresponding to the data packet to be processed in this calculation from the message queues of the first server and the second server; the processing completion message carries the unique identifier of the corresponding data packet; the message queue has multiple data packets arranged in the order of writing; The second server obtains the data packet to be processed in the current calculation according to the unique identifier.
8. A data transmission device, characterized in that: A first server is provided in a data transmission system, wherein the data transmission system further comprises a second server, and the device comprises: A data packet acquisition module, used to acquire a plurality of data packets; the plurality of data packets constitute the original data to be transmitted; A message generating module, configured to generate a processing completion message for the data packet on which the target calculation has been executed when the target calculation has been executed for any data packet among the plurality of data packets; the processing completion message carries a unique identifier of the corresponding data packet; A message writing module is used to write the processing completion message into the message queues of the first server and the second server when the data packet that has executed the target calculation is sent to the second server.
9. A data transmission device, characterized in that: A second server is provided in a data transmission system, the data transmission system further comprising a first server, the device comprising: A fetching module, used for fetching, when the last locally executed calculation is completed, a processing completion message corresponding to a data packet to be processed in this calculation from the message queues of the first server and the second server; the processing completion message carries a unique identifier of the corresponding data packet; the message queue has a plurality of data packets arranged in the order in which they were written; The retrieving module is used to retrieve the data packet to be processed in the current calculation according to the unique identifier.
10. A server, comprising: at least one processor; as well as At least one memory in communication with the processor, characterized in that: The memory stores program instructions executable by the processor, and the processor can execute the method according to any one of claims 1 to 4 by calling the program instructions; or, the processor can execute the method according to any one of claims 5 or 6 by calling the program instructions.