Method, apparatus and computer program product for determining sequence of program actions
By optimizing the candidate program actions and computing resources in the vehicle sensor system, a program action sequence with low leakage costs is determined, and the problem of personal identity information leakage in the vehicle sensor is solved, and information security and data capacity are optimized.
Patent Information
- Application Number
- CN202410913292.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-11
- Filing Date
- 2024-07-09
- Publication Date
- 2025-01-14
AI Technical Summary
In the on-board sensor system, as the information quality increases, the possibility of leakage of personal identity information also increases, resulting in an increase in data transmission and storage capacity, and the prior art is difficult to effectively reduce the leakage of personal identity information.
By distinguishing multiple candidate program actions, a data sample containing the first type of information and the second type of information is taken, the second type of information is reduced, and the leakage cost is allocated, and the total leakage cost is determined to be less than the threshold and the first type of information is rated as More than the data threshold program action sequence, select computing resources to reduce leakage of personal identity information.
It effectively reduces the leakage of personal identity information, optimizes data transmission and storage capacity, and improves information security.
Smart Images

Figure CN119316177A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to methods, apparatus, and computer program products for determining a sequence of program actions to reduce potential leakage of personally identifiable information. Background Art
[0002] Vehicle-mounted sensors are becoming more common. With the advent of autonomous driving, not only are conventional cameras being added to vehicles, but arrays of sensors such as GPS (Global Positioning System) and LiDAR (laser radar) are also being added to vehicles. Through the combination of these sensors, the vehicle can obtain a detailed display of the world around the vehicle. Most of the sensor data that makes up this display is overwritten due to storage issues, but a portion of the information is stored for the purpose of using real-time executable information or historical information to generate simulation environments for training and prediction of ADAS (Advanced Driver Assistance Systems), maps, etc. The usefulness of this information increases as its quality increases. Generally, as the quality of information increases, the requested data transmission and storage capacity also increases. Summary of the invention
[0003] The present disclosure provides methods, apparatus, and computer program products for determining a sequence of program actions to reduce potential leakage of personally identifiable information.
[0004] The method disclosed herein includes: identifying a plurality of candidate program actions, and performing the following processing on the plurality of candidate program actions: taking in a data sample, wherein the data sample includes first category information and second category information; and reducing the second category information of the data sample; allocating a leakage cost, wherein the leakage cost represents the potential leakage of personal identity information associated with each valid combination of a candidate program action among the plurality of candidate program actions and a computing resource among the plurality of computing resources; and applying an objective function to the valid combinations and the allocated leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that the total leakage cost is less than a threshold leakage cost and the amount of the first category information is greater than a data threshold.
[0005] The computer program product disclosed herein is a computer program product including instructions executable by a processor, the instructions causing the processor to perform an action, the action including: identifying a plurality of candidate program actions, the plurality of candidate program actions performing the following processing: taking in a data sample, wherein the data sample contains first category information and second category information; and reducing the second category information of the data sample; allocating a leakage cost, wherein the leakage cost represents the potential leakage of personal identity information associated with each valid combination of a candidate program action among the plurality of candidate program actions and a computing resource among the plurality of computing resources; and applying an objective function to the valid combinations and the allocated leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that the total leakage cost is less than a threshold leakage cost and the amount of the first category information is greater than a data threshold.
[0006] The device disclosed in the present invention has a controller, which includes a circuit configured to perform actions, wherein the actions include: identifying multiple candidate program actions, the multiple candidate program actions are processed as follows: taking in a data sample, wherein the data sample includes first-category information and second-category information; and reducing the second-category information of the data sample; allocating a leakage cost, wherein the leakage cost represents the potential leakage of personal identity information associated with each valid combination of a candidate program action among the multiple candidate program actions and a computing resource among the multiple computing resources; and applying an objective function to the valid combinations and the allocated leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that the total leakage cost is less than a threshold leakage cost and the amount of the first-category information is greater than a data threshold.
[0007] According to the present disclosure, a method, apparatus, and computer program product for determining a sequence of program actions for reducing potential leakage of personally identifiable information can be provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The scheme of the present disclosure can be best understood by using the accompanying drawings and reading the detailed description below. It should be noted that, in accordance with standard practice in the industry, various features are not depicted to scale. In fact, in order to make the description clear, the size of various features can be increased or decreased arbitrarily.
[0009] Figure 1 A schematic diagram of a system for accessing consulting content over a mobile computing network in accordance with at least some embodiments of the subject disclosure.
[0010] Figure 2A diagram of a graphical user interface (GUI) for querying content on a mobile computing network according to at least some embodiments of the subject disclosure.
[0011] Figure 3 A diagram of a data structure for a content acquisition task of at least some embodiments of the subject disclosure.
[0012] Figure 4 This is a schematic diagram of a system for acquiring consulting content according to at least a part of the embodiments of the subject disclosure.
[0013] Figure 5 The present invention is an operational flow for fetching consultation contents on a mobile computing network in accordance with at least a part of the embodiments of the disclosed subject matter.
[0014] Figure 6 An action flow that identifies a sequence of program actions for reducing potential leakage of personally identifiable information in accordance with at least some embodiments of the subject disclosure.
[0015] Figure 7 An action flow for identifying candidate program actions for at least some embodiments of the subject disclosure.
[0016] Figure 8 The present invention is an action flow for determining an ontology class for a content query according to at least some embodiments of the subject disclosure.
[0017] Fig. 9 An action flow for allocating costs for at least some embodiments of the subject disclosure.
[0018] Fig.10 An action flow of applying an objective function to at least a portion of the disclosed embodiments of the subject matter.
[0019] Fig.11 A diagram of a hardware configuration associated with determining a sequence of program actions to reduce potential leakage of personally identifiable information in accordance with at least some embodiments of the subject disclosure. DETAILED DESCRIPTION
[0020] The following disclosure provides many different embodiments or examples of various features of the subject matter provided. In order to simplify the present disclosure, the following records specific examples related to constituent elements, values, actions, materials, configurations or similar items. Of course, these are just examples and are not intended to be limiting. Other constituent elements, values, actions, materials, configurations or similar items can be assumed. For example, in the following description, forming a first feature above or on a second feature can include an embodiment in which the first feature is directly in contact with the second feature, and can also include an embodiment in which an additional feature can be formed between the first feature and the second feature in a manner that the first feature and the second feature are sometimes not directly in contact. In addition, the present disclosure can repeat reference numbers and / or reference texts in various examples. The repetition is for the purpose of simplification and clarification, and the relationship between the various embodiments and / or structures described is not specified by the repetition itself.
[0021] Furthermore, spatially relative terms such as "below", "below", "below", "above", "above", and similar terms may be used in this specification to facilitate the description of the relationship of a certain element or feature relative to another element or feature as shown in the figures. In addition to the orientations depicted in the figures, spatially relative terms are intended to include various orientations of the device when in use or in action. The device may also be oriented in other situations (rotated 90 degrees or in other orientations), and the spatially relative descriptions used in this specification may also be interpreted accordingly.
[0022] As the quality of information increases, the likelihood that the information is sufficient to identify a person increases, and the likelihood that irrelevant information is sent increases. For example, a full-quality image of a crowd can easily identify individuals, but even when facial information is removed / blurred, identity can sometimes be determined by a combination of height, clothing, location, time, etc. Depending on the query, only specific information is useful, and by filtering other information, the likelihood of retaining personally identifiable information (PII) or information that can regenerate PII is reduced.
[0023] In at least some embodiments of the subject matter disclosed herein, the effects of filtering and compression on PII are considered with respect to the overall determination of computation and location within the vehicle sensor to cloud network platforms, thereby balancing the levels of filtering and compression within the vehicle sensor to cloud network platforms.
[0024] In order to obtain useful information from vehicle sensors through the cloud, the samples detected by the sensors contain both useful first class information and unusable second class information. When the sample data passes through the platform, the second class information is reduced according to the sequence of program actions determined by at least some embodiments. The sequence of at least some embodiments attempts to minimize or remove the second class information as a whole based on the time when the sample data is stored in the cloud storage. In at least some embodiments, resources are allocated to detect, filter, compress, send, etc. information through the platform.
[0025] In at least some embodiments, various filters, compressors, and analyzers are determined for use in various platforms, where the computational complexity varies with respect to the platform. For example, removing color information from an image is relatively simple compared to object detection from a computational complexity perspective.
[0026] Computational costs and transmission costs also vary by platform. For example, adding processing resources to a sensor costs money, but sending data from the sensor to the next level does not cost money. In contrast, adding processing resources to the cloud does not cost money, but sending data from the vehicle storage to the cloud does cost money.
[0027] The likelihood of a PII leak also varies by platform. For example, in at least some embodiments, filtering or compression in the sensor is assigned a significantly low likelihood of a PII leak. In contrast, in at least some embodiments, filtering or compression in the cloud level is assigned a significantly high likelihood of a PII leak. In at least some embodiments, the likelihood assigned in relation to a PII leak also varies based on the level or type of compression or filtering. In at least some embodiments, the likelihood assigned in relation to a PII leak is maintained relatively high with respect to removing color information from an image compared to object detection that reduces the image to a number of encoded observations.
[0028] In at least some embodiments, the overall determination of computation and location within the vehicle sensor to cloud network platform is accompanied by evaluation of a set of computational resources and a set of program actions, where each action has a flow requirement representing the amount of data that needs to be processed by the resource and each resource has a capability representing the amount of data that each resource can process. In at least some embodiments, each pair of a given resource and a given action is associated with a cost for that pair. In at least some embodiments, the cost is expressed alone or in combination with previous transmission and computation costs from the perspective of the possibility of PII leakage.
[0029] Users such as software developers, insurance providers, market researchers, and law enforcement officers can use the On-Demand Data Retrieval (ODDR) system to input data requests into a user interface such as a graphical user interface (GUI). Software developers are, for example, software developers who develop applications, middleware, or OS (Operating Systems) executed on a vehicle. Exemplary applications include autonomous driving system applications, such as object recognition applications, road recognition applications, sensor fusion applications, positioning applications, route planning applications, controller applications, etc. The data request is analyzed and stored in the server, and then sent to the vehicle through the server. On the server side, the data request is stored in a storage unit, and a request queue is generated based on the stored requests. The user can confirm or request updates related to the status of the data request. For example, while the data request is still in the server before being sent to the vehicle, the status can be shown as "pending". When the server sends the data request to the vehicle, the status can be updated to "sent". Thus, the user can confirm and track the status of the data request made to the vehicle. Vehicles are referenced in the description for clarity, but those skilled in the art will recognize that the description may apply to groups of vehicles in addition to a single vehicle.
[0030] The user interface for generating a data request includes a form associated with vehicle identification information, the type of data requested, a start time, and an end time. In some embodiments, the start time and the end time are absolute times, such as UNIX times as the elapsed time from a UNIX epoch time. In some embodiments, the start time and the end time are relative times relative to the time when the data request is received by the vehicle. In some embodiments, the start time and the end time are relative times relative to a triggering event. The triggering event is an event that occurs in the vehicle or in the environment surrounding the vehicle for which the user requests data, or the receipt of a data request implemented by the vehicle. For example, a triggering event generated from the environment surrounding the vehicle includes sudden acceleration, sudden braking, the acquisition of an image of the target of the data request, the detection of the target of the data request, or other suitable occurrences. User information for monitoring the status of the data request includes identification information of the data request and the status of the data request, such as reserved or sent.
[0031] In some embodiments, when a data request is received by a vehicle, the data request is processed in a manner that makes the data request agnostic about the source of the data request. In some embodiments, data request identification information (ID) is assigned to the received data request by the vehicle, such as by a request extraction unit in the vehicle. In some embodiments, before the data request to the vehicle is sent, the data request ID is assigned to the data request. In some embodiments, the data request is generated by an application executed in the vehicle, and the application assigns the data request ID. In other words, the data is processed in a matching manner regardless of the program or system that sends the data request to the vehicle. In some embodiments, the data request is generated by a software component stored in the vehicle, and the data is processed matching the data request received from the external device. This helps to share the same data collection software component during the triggered data collection, where the application generates a data collection request to the logger and an external data collection request based on the ODDR.
[0032] In some embodiments, when a data request is received by a vehicle, the data request is processed in a manner that makes the data request agnostic to sensors and servers within the vehicle. In some embodiments, the data request is generated by an application executed in the vehicle. In some embodiments, an application programming interface (API) can be used to make the data request from the application agnostic to information from sensors or servers within the vehicle. This helps enable users to maximize data collection without having to program requests for specific sensor models. Next, the data request is transmitted to the data collection unit, and the requested data is collected in response to the occurrence of a triggering event. In the event that a triggering event such as a traffic accident has occurred, the data request is satisfied based on data stored in a storage device within the vehicle. The time frame for collecting data, i.e., the start time and the end time, is determined based on the data request. The collected data is transmitted back to the server.
[0033] Next, the collected data is stored in the server, and a notification about the completion of the data request is sent to the user. For example, the status of the data request is updated to "completed" on the user interface.
[0034] In some examples, a budget management system or payment system is implemented on the server side or the vehicle side in a manner that charges a user a fee for a data request. The fee can be paid at any time when the request is sent or when the data collection is completed. The fee can be adjusted based on the type and amount of data requested. In some embodiments, when the total amount of fees charged to the user reaches a maximum threshold of the user's budget, the data request from the user is rejected.
[0035] Through the ODDR system, users can access information collected by the vehicle in an on-demand manner. That is, data does not have to be collected continuously, and data can be collected in a manner that meets the specific needs of the user. In some embodiments, the ODDR system helps users such as software developers to collect data, and based on the collected data, update the design, installation, and parameter adjustment of the user's software in an experimental manner, with the result that the user can continuously improve the software by, for example, communicating updates from a server to the vehicle via a network as an over-the-air (OTA) update. In some embodiments, the ODDR system helps machine learning developers who develop machine learning models for applications to collect data, and use data that was not available when the model was initially developed to train the model, with the result that the machine learning developer can update the model and continuously modify the model's weaknesses and problems. In some examples, insurance providers can collect data associated with traffic accidents. In some examples, information associated with crimes or traffic accidents can be collected in law enforcement.
[0036] Figure 1 1 is a schematic diagram of a request acquisition system 100 of a partial embodiment. The request acquisition system 100 includes a user interface (UI: User Interface) 110. The UI 110 is configured to receive a user request for data from a vehicle 140. The request acquisition system 100 also includes a server 120, and the server 120 is configured to: receive the user request from the UI 110, send the user request to the vehicle 140, receive data from the vehicle 140, and provide the data to the user via an accessible console 150. The server 120 includes a communication component 130 that communicates with the UI 110 and the vehicle 140. The request acquisition system 100 also includes an accessible console 150, which is configured to send the data collected from the vehicle 140 to the user.
[0037] UI110 is configured to receive input commands from a user. In some embodiments, the user includes a software developer. In some embodiments, the user includes a machine learning model developer. In some embodiments, the user includes an insurance provider. In some embodiments, the user includes a law enforcement officer. In some embodiments, the user includes a market research company. UI110 provides the user with the option of selecting what type of vehicle and what type of data to request. In some embodiments, UI110 can generate a data request using a form associated with vehicle identification information, the type of data requested, a start time, and an end time. In some embodiments, the start time and the end time are absolute times, such as UNIX times as elapsed time from a UNIX time point. In some embodiments, the start time and the end time are relative times relative to the time when the data request is received by the vehicle. In some embodiments, the start time and the end time are relative times relative to a triggering event. In some embodiments, UI110 also provides the user with the option of selecting a triggering event and a duration of data collection relative to the triggering event. In some embodiments, UI110 includes information associated with the type of vehicle for which data is requested. In some embodiments, UI110 includes a vehicle ID that can uniquely identify the vehicle that is the target of the request. For example, the vehicle ID includes a universally unique identifier (UUID) format. In some embodiments, the UI110 includes data types that can identify the source of the data that the user wishes to collect. For example, the data types include the sensor ID of the sensor from which the sensor data is collected and the application ID of the application from which the application log is collected. In some embodiments, the format of the sensor ID and the application ID includes a universally unique identifier (UUID) format. In some embodiments, the UI110 includes a drop-down menu. In some embodiments, the UI110 includes an editable field that accepts information associated with the data request. In some embodiments, the UI110 provides information related to what data option types are available to the user. In some embodiments, the available data option types depend on the user. For example, in some embodiments, more data options can be selected in law enforcement than in insurance providers.
[0038] In some embodiments, UI110 includes a graphical user interface (GUI). In some embodiments, UI110 includes a mobile terminal that can be connected to server 120, such as a portable phone. In some embodiments, UI110 includes a network interface such as a RESTful API. In some embodiments, UI110 includes a computer that can be connected to server 120. In some embodiments, UI110 can be connected to server 120 wirelessly. In some embodiments, UI110 can be connected to server 120 via a wired connection. UI110 can also provide updates related to the status of data requests to the user. In some embodiments, UI110 provides status updates related to data requests in response to additional queries implemented by the user. In some embodiments, when update information is received from server 120, UI110 automatically provides status updates related to data requests without interaction with the user. In some embodiments, due to the status update, UI110 triggers a warning to the user. In some embodiments, the warning includes a voice warning or a visual warning.
[0039] In some embodiments, UI 110 includes a unit for accepting payment of fees from a user. In some embodiments, UI 110 includes a data entry field that enables a user to enter payment card information. In some embodiments, UI 110 includes a reader that detects payment card information, such as a magnetic stripe reader, a barcode reader, a chip reader, or other suitable reader.
[0040] The server 120 includes a communication component 130 configured to communicate with the UI 110 and the vehicle 140. The communication component 130 includes a receiver 131 configured to receive a data request from the UI 110. In some embodiments, the receiver 131 includes a wireless receiver. In some embodiments, the receiver 131 is configured to receive the data request via a wired connection. In some embodiments, the receiver 131 is also configured to initially process the received data request. In some embodiments, the received data request contains priority information. In some embodiments, the receiver 131 is configured to assign a priority to the data request based on the identity of the user who sent the data request or the fee paid by the user who sent the data request. In some embodiments, the receiver 131 is configured to assign a request identification information (ID) number to each received data request. In some embodiments, the server 120 is configured to limit access to specific sensors in the vehicle 140 based on the identity of the user. For example, in some embodiments, a third-party user cannot access sensors associated with the safety function of the vehicle 140.
[0041] The communication component 130 also includes a memory unit 132 configured to store data requests received by the receiver 131. In some embodiments, the memory unit 132 includes a random access memory, a solid-state memory, or other types of memory. In some embodiments, the memory unit 132 is configured to store the data request together with the status of the data request. In some embodiments, the status of the data request includes reserved (before sending the data request to the vehicle 140), sent (after sending the data request to the vehicle 140), and completed (after receiving the request data from the vehicle 140). In some embodiments, the memory unit 132 is accessible by a user. In some embodiments, an update to the information in the memory unit 132 triggers a notification to the user associated with the information updated in the memory unit 132. In some embodiments, the memory unit 132 stores the data request together with timestamp data indicating the time when the data request was received. In some embodiments, the memory unit 132 stores the data request in association with a priority. In some embodiments, the priority is determined based on the identity of the user. For example, in some embodiments, law enforcement has a higher priority than an insurance provider, which has a higher priority than a typical user such as a software developer. In some embodiments, the priority is determined based on a fee paid by the user. For example, in some embodiments, a user can pay a fee to increase the priority of the user's request so that the requested data is obtained more quickly. In some embodiments, the priority of a data request increases as the amount of time between the initial storage of the data request and the sending of the data request to the vehicle increases.
[0042] The communication component 130 also includes a transmitter 133. The transmitter 133 is configured to send the status of the data request to the UI 110. In some embodiments, the status of the data request is sent to the UI 110 wirelessly. In some embodiments, the status of the data request is sent to the UI 110 via a wired connection. In some embodiments, the transmitter 133 is configured to automatically provide updates to the data request in response to updates in the memory unit 132. In some embodiments, the transmitter 133 is configured to provide updates to the data request in response to an update request received from a user. In some embodiments, the transmitter 133 is configured to automatically send the request ID when the data request is initially saved in the memory unit 132. In some embodiments, the status of the data request includes a priority of the data request. In some embodiments, the status of the data request includes an estimated time until the data request is sent to the vehicle 140.
[0043] The communication component 130 also includes a query queue 134 configured to store data requests in a priority order for transmission to the vehicle 140. In some embodiments, the query queue 134 is embedded in the memory unit 132. In some embodiments, the query queue 134 is separate from the memory unit 132. In some embodiments, the query queue 134 is configured to obtain data requests from the memory unit 132 based on priority and timestamp information. In some embodiments, the query queue 134 is configured to sort the data requests based on priority, and in response to data requests having the same priority, sort the data requests according to the time since they were initially stored in the memory unit 132.
[0044] The communication component 130 also includes a transmitter 135 configured to send a data request from the query queue 134 to the vehicle 140. The transmitter 135 is configured to send the data request to the vehicle 140 based on the order of the data requests in the query queue 134. In some embodiments, the data request is sent to the vehicle 140 wirelessly. In some embodiments, the data request is sent to the vehicle 140 through a wired connection. The data request sent to the vehicle 140 includes: trigger event information; data duration information associated with the period before and after the trigger event when data should be collected; and sensor information indicating that a certain type of sensor of the vehicle 140 should collect data. In some embodiments, the data request sent to the vehicle 140 includes priority information. In some embodiments, the transmitter 135 is configured to: when the vehicle 140 sends a request to the server 120 to send the data request to the vehicle 140, the transmitter 135 sends the data request to the vehicle 140. In some embodiments, the transmitter 135 is configured to send a data request to the vehicle 140 at any time when the communication component 130 has sufficient connectivity to the vehicle 140 to send the data request, as long as the communication component 130 has not received information indicating that the vehicle 140 cannot accept a new data request. In some embodiments, the transmitter 135 is configured to send the data request to the vehicle 140 periodically, as long as the vehicle 140 can receive new data requests and the transmitter 135 has sufficient connectivity to the vehicle 140. In some embodiments, the transmitter 135 is configured to send the data request to the vehicle 140 in batches, such as in groups of five data requests, twenty data requests, or some other number of data requests. In some embodiments, the transmitter 135 is configured to request a confirmation of receipt of the data request from the vehicle 140. The transmitter 135 is configured to resend the data request in response to not receiving a confirmation of receipt from the vehicle within a specified period. In some embodiments, the status of the data request stored in the memory unit 132 is updated in response to the communication component 130 receiving an acknowledgment from the vehicle 140 regarding receipt of the data request to indicate transmission to the vehicle 140 .
[0045] The communication component 130 also includes a receiver 136 configured to receive a notification of the occurrence of a triggering event from the vehicle 140. In some embodiments, the occurrence of the triggering event is the receipt of a data request. In some embodiments, the receiver 136 is configured to receive the notification of the triggering event wirelessly. In some embodiments, the receiver 136 is configured to receive the notification of the triggering event via a wired connection. In some embodiments, the receiver 136 is configured to send a signal to the memory unit 132 to update the status of the data request associated with the notified triggering event.
[0046] The communication part 130 also includes a receiver 137 configured to receive data from the vehicle 140 in response to the data request sent by the transmitter 135. In some embodiments, the data is divided into data packets by the vehicle 140, which are units of transmission from the vehicle 140 to the server 120, and the receiver 137 receives the data packets from the vehicle 140. In some embodiments, the receiver 137 is configured to receive the data wirelessly. In some embodiments, the receiver 137 is configured to receive the data via a wired connection. In some embodiments, the receiver 137 is configured to send a signal to the memory unit 132 that updates the status of the data request associated with the reception of the request data. In some embodiments, the data in response to a single data request is received from the vehicle 140 in a single packet. In some embodiments, the data in response to a single data request is received from the vehicle 140 in multiple packets. The receiver 137 transmits the received data to the preprocessor 122.
[0047] The server 120 also includes a preprocessor 122 configured to receive data from the receiver 137 and preprocess the data to generate collected data. In some embodiments, the preprocessing includes modifying data from a plurality of packets in response to a data request in a manner that compiles the data. In some embodiments, the preprocessing includes deserializing the data in a manner that compiles structured data from a received byte array. In some embodiments, the preprocessing includes decompressing the data if the data is compressed by the vehicle 140 before transmission. In some embodiments, the preprocessing includes error correction implemented by an error correction code (ECC: Error Correction Code) such as a Reed-Solomon (RS) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a low-density parity-check (LDPC) code, and the like. In some embodiments, preprocessing includes smoothing the data by removing outliers to reduce the risk of reporting erroneous data to the user. In some embodiments, preprocessing includes associating data request ID information, priority information, or other suitable information with the received data from the receiver 137. In some embodiments, the data is preprocessed in such a way that the information is provided to the client in a format that is easily understood and does not rely on specialized knowledge or equipment to discern the information.
[0048] The server 120 also includes a data storage 126 configured to store the collected data generated by the preprocessor 122. In some embodiments, the data storage 126 is embedded in the memory unit 132. In some embodiments, the data storage 126 is separate from the memory unit 132. In some embodiments, the data storage 126 includes a solid state drive (SSD), a random access memory, or other suitable memory. In some embodiments, the data storage 126 can be accessed by a user using the UI 110 or an accessible console 150, for example. In some embodiments, the data storage 126 is configured to notify the user in response to the data associated with the data request being available. In some embodiments, the notification includes a warning to the user. In some embodiments, the warning includes a voice warning or a visual warning. In some embodiments, the data storage 126 is configured to cause the UI 110 or the accessible console 150 to automatically display a notification of the availability of the collected data. In some embodiments, the data storage 126 can be accessed by the user using the accessible console 150 without the user sending a data request. In some embodiments, the data in the data storage 126 can be retrieved by a user via an accessible console 150. In some embodiments, the collected data is visualized in the console 150.
[0049] The request acquisition system 100 also includes a vehicle 140. The vehicle 140 includes sensors for detecting both the internal conditions of the vehicle 140 and the external environment around the vehicle 140. In some embodiments, the sensors include cameras, light ranging (LiDAR) sensors, wireless ranging (RADAR) sensors, sound-based navigation and ranging (SONAR) sensors, accelerometers, steering wheel positions, speedometers, or other suitable sensors. The vehicle 140 can receive data requests through either wireless or wired connections.
[0050] In some embodiments, the vehicle 140 is configured to assign a data request ID to the received data request in response to receiving the data request, and the data request is processed in a manner that is agnostic to the system or program that generated the data request. In another embodiment, the communication component 130 assigns the data request ID on behalf of the vehicle 140, and the data request ID is included in the data request sent from the communication component 130 to the vehicle 140. Making the data request agnostic to the system or program that generated the data request helps expand the ability of the vehicle 140 to receive and process a wide range of data requests from various users and systems. The vehicle 140 includes a processor that processes the data request and determines the type of information that the sensors available in the vehicle 140 can satisfy the data request. In at least some embodiments, the vehicle 140 includes a mobile computing network, which is a network of processors, controllers, or a combination thereof, such as a controller area network (CAN: Controller Area Network). In at least some embodiments, each processor is an electronic control unit (ECU: Electronic Control Unit). The vehicle 140 also includes a memory that stores data from the sensor. In some embodiments, the processor accesses the memory to determine whether any stored data can satisfy the data request. The vehicle 140 can also send data deemed to satisfy the data request to the server 120 via either a wireless or wired connection. In some embodiments, the processor is configured to attempt to satisfy the received data requests in a priority order based on the received priority of the data requests. In some embodiments, the vehicle 140 is configured to preferentially send data to the server based on the received priority of the data requests.
[0051] In some embodiments, the memory and processor of the vehicle 140 are configured to store and execute software applications in an electronic control unit (ECU) within the vehicle 140. In some embodiments, the data request is generated by the software application stored in the ECU. In some embodiments, the data request is generated in response to a trigger event, such as sudden acceleration, sudden braking, the acquisition of sensor data of a specific object or a specific scene predetermined in the software application, a "crash" of the software application, an abnormality detected in the software application, or other suitable detection events. In some embodiments, the vehicle 140 is configured to generate a notification to the maintainer of the software application, such as a user, in response to the detection of a trigger event associated with the software application. In some embodiments, the notification is sent directly to the user, such as through the UI 110, through any one of wireless or wired connections. In some embodiments, the notification is sent to the user through the server 120, through any one of wireless or wired connections. In some embodiments, the notification includes a voice notification or a visual notification. In some embodiments, the notification is configured to cause the UI 110 to automatically display the notification without interaction with the user.
[0052] The request acquisition system 100 also includes an accessible console 150. The accessible console 150 enables a user to access the collected data stored in the data storage 126. In some embodiments, the accessible console 150 is embedded in the UI 110. In some embodiments, the accessible console 150 is separate from the UI 110. In some embodiments, the accessible console 150 includes another server separate from the server 120. In some embodiments, when the data storage 126 receives the collected data, the accessible console 150 automatically receives the collected data associated with the data request from the user. In some embodiments, the accessible console 150 enables the user to search the data storage 126 to determine whether any of the collected data stored in the data storage 126 is useful to the user without the user sending a data request.
[0053] Use of the request capture system 100 enables users to obtain information from one or more vehicles 140 in a format that is easily understood without relying on specialized equipment to request or read received data. Data requests can be prioritized in the request capture system 100, thereby facilitating users to pay to obtain data more quickly and ensuring that law enforcement or other users can obtain data. This flexibility helps improve the usefulness of the request capture system 100 to a wide range of users.
[0054] Figure 2FIG. 2 is a diagram of a graphical user interface (GUI) 200 and 250 for a request acquisition system according to some embodiments. In some embodiments, GUI 200 can be used as a graphical user interface for request acquisition system 100 ( Figure 1 ) in the UI 110. In some embodiments, the GUI 200 may be used to generate the receiver 131 ( Figure 1 ) to receive data requests. GUI 200 includes a plurality of information types 210 that identify the types of information that GUI 200 can receive from the user. GUI 200 also includes a plurality of fields 220 configured to receive information associated with the corresponding information types 210 of GUI 200. GUI 200 also includes a send button 230 that is configured to send the data request to a server, such as server 120 (based on the information in field 220). Figure 1 ). Those skilled in the art will recognize that the names and quantities of the plurality of information types 210 are merely examples, and that different quantities and types of information are also within the scope of the present disclosure.
[0055] In some embodiments, field 220 includes fields for a user to enter a vehicle ID, a data type, a start time, and an end time. In some embodiments, field 220 also includes a field for a user to enter a priority for a data request. In some embodiments, GUI 200 also includes information associated with a method by which a user can increase the priority of a data request, such as information indicating a fee associated with each available priority. In some embodiments, GUI 200 includes field 220 that enables a user to enter login information to establish the identity of the user. In some embodiments, GUI 200 is configured to display the priority of the user after receiving the login information. In some embodiments, GUI 200 also includes field 220 for accepting payment information associated with the fee used to establish the priority of the data request.
[0056] The GUI 250 is configured to be displayed to the user after the user selects the send button 230 on the GUI 200. In some embodiments, the GUI 250 can be used as an ODDR system 100 ( Figure 1 ) in the UI 110. The GUI 250 includes information indicating that the data request has been received. The GUI 250 includes a query ID tag 260 and a query ID field 270. After the server receives and stores the data request, the server, such as the server 120 ( Figure 1) receives information input into the query ID field 270. In some embodiments, the GUI 250 includes information about the vehicle ID. In some embodiments, the GUI 250 includes information associated with the priority of the data request. In some embodiments, the GUI 250 includes information related to the status of the data request, such as reserved, sent, completed, etc. In some embodiments, the GUI 250 includes information related to the status of the data request until the data request is sent to the vehicle, such as the vehicle 140 ( Figure 1 ). In at least some embodiments, GUI250 includes information associated with an estimated time until the requested data is received. In at least some embodiments, GUI250 includes information associated with an estimated energy consumption for receiving the requested data. In some embodiments, GUI250 is automatically displayed in response to receipt of query ID information from the server. In some embodiments, GUI250 is displayed in response to a user sending a request for an update to the uploaded data.
[0057] Figure 3 FIG. 1 is a diagram of a data structure 300 of a request acquisition instruction 310 in accordance with some embodiments. In some embodiments, the request acquisition instruction 310 is sent from the server 120 to the vehicle 140 ( Figure 1 ). The request acquisition instruction 310 includes a request for a vehicle, such as vehicle 140 ( Figure 1 ) data request contains information associated with the type of data requested.
[0058] The request to obtain instruction 310 includes a transmission priority parameter 311 indicating the priority of the data request. If so, the request to obtain instruction 310 also includes a log level parameter 312 indicating the type of data that should be obtained from other applications in the vehicle. For example, in some embodiments, the request to obtain instruction 310 obtains data from an object recognition application. The log level parameter 312 determines the type of data obtained from other applications, such as an error level or a major level. In some embodiments, the log level parameter 312 is omitted from the request to obtain instruction 310, or the log level parameter 312 is set to a null state. The request to obtain instruction 310 also includes a collection time range parameter 313 indicating the period before and / or after the triggering event for collecting data. The time range is consistent with the time range input by the user to the GUI 200 ( Figure 2) corresponds to the start time and end time of the data request. The request acquisition instruction 310 also includes a Uniform Resource Locator (URL) endpoint parameter 314 indicating the destination of the data collected in response to the data request. If so, the request acquisition instruction 310 also includes a frequency parameter 315 indicating the frequency at which the data should be sampled from the collection time range parameter 313. For example, when the event time is t=100 seconds, and the time range has a start time=-1 second and an end time=2 seconds, and the frequency is 10Hz (100 millisecond cycle), data at t=99.0 seconds, 99.1 seconds, 99.2 seconds,..., 101.9 seconds, and 102.0 seconds are collected by the request acquisition instruction. The request acquisition instruction 310 also includes a log ID parameter 316 indicating the type of sensor and / or application that can be used to collect the data requested by the data request. In some embodiments, a unique ID (such as a universal unique identifier (UUID)) is pre-assigned to all sensors and applications, and the unique ID of the user who wants to collect data is specified in the log ID parameter 316. The request acquisition instruction 310 also includes a requester ID parameter 317 indicating the identity of the user making the data request. The request acquisition instruction 310 also includes an event ID parameter 318 indicating a triggering event associated with the data request. The request acquisition instruction 310 also includes an event ID parameter 318 indicating the vehicle that should be assigned to satisfy the data request, such as vehicle 140 ( Figure 1 ) of the resource budget ID parameter 319. Those skilled in the art will appreciate that additional parameters may be included in the request acquisition instruction 310. For example, in some embodiments, the request acquisition instruction 310 includes a vehicle location parameter indicating a geographic area where the trigger event can occur. Those skilled in the art will also appreciate that the request acquisition instruction 310 does not always include Figure 3 For example, in some embodiments, the budget ID parameter 319 is omitted.
[0059] Figure 4 4 is a block diagram of a request acquisition system 400 according to a certain embodiment. In certain embodiments, the request acquisition system 400 is a block diagram of a request acquisition system 100 ( Figure 1 ) is a part of. In some embodiments, the request acquisition system 400 can be combined with the request acquisition system 100 ( Figure 1 In some embodiments, the request acquisition system 400 is used together with the request acquisition system 100 ( Figure 1 ) separated.
[0060] The request acquisition system 400 includes a detection vehicle system 410 configured to acquire information related to the vehicle or the surroundings of the vehicle. The detection vehicle system 410 acquires information related to the vehicle and the surroundings and sends the information to a server. The request acquisition system 400 also includes a server 440, which is configured to receive the information, encode the information, and transmit the information to a user terminal 460.
[0061] The detection vehicle system 410 includes an electronic control unit (ECU) 420 configured to receive data from a sensor 414, a global positioning system (GPS) 416, and a map 418. The ECU 420 includes a condition detector 422, a data designator 432, a log collector 434, and a log transmitter 436. The condition detector 422 includes a vehicle control monitor 424, an object detector 426, and a scene detector 428.
[0062] In some embodiments, the ECU 420 also includes a localization unit that is configured to receive data from the GPS 416 and the map 418 and determine the position of the vehicle relative to the position of detected and / or known objects and / or roads and the posture and state of the vehicle. The posture is the orientation of the vehicle relative to a reference point such as a lane. In some embodiments, the position of the vehicle also refers to the position vector of the vehicle. The posture and state of the vehicle refer to the speed and direction of travel of the vehicle. In some embodiments, the posture and state of the vehicle also refer to the velocity vector, acceleration vector, and jerk vector of the vehicle. In some embodiments, the position vector, velocity vector, acceleration vector, and jerk vector include an angular vector. In some embodiments, the state of the vehicle also refers to whether the engine or motor of the vehicle is working.
[0063] The sensor 414 is configured to take in information such as images of the environment around the vehicle. In some embodiments, the sensor 414 includes a visible light camera, an IR (Infrared) camera. In some embodiments, the sensor 414 is replaced by a light detection and ranging (LiDAR) sensor, a wireless detection and ranging (RADAR) sensor, a sound-based navigation and ranging (SONAR) sensor or other suitable sensors, or further accompanied by these sensors. In some embodiments, the sensor 414 includes additional cameras configured in other places in the vehicle. For example, in some embodiments, the additional camera is configured on the side of the vehicle to detect a larger part of the environment located on the left and right of the vehicle. The occupants of the vehicle can see outside from the side windows of the vehicle, so using an additional camera to detect a larger part of the environment around the vehicle helps to increase the accuracy of detecting objects or scenes around the vehicle. For example, in some embodiments, the additional camera is configured on the rear side of the vehicle to detect a larger part of the environment located behind the vehicle. This information helps to retrieve information related to the object. In some embodiments, the data from the sensor 414 includes a timestamp or other metadata to help synchronize the data from the sensor 414 with data from other components.
[0064] GPS 416 is configured to determine the location of the vehicle. Knowing the location of the vehicle being seen helps to associate an object or scene with the location determined on map 418.
[0065] Map 418 contains information associated with lanes and known objects along the lanes. In some embodiments, map 418 can be used with GPS 416 to determine the location and direction of travel of the vehicle. In some embodiments, map 418 is received from an external device such as server 440. In some embodiments, map 418 is regularly updated based on information from sensor 414 and / or GPS 416. In some embodiments, map 418 is regularly updated based on information received from an external device. In some embodiments, map 418 is generated from sensor data through a SLAM (Simultaneous Localization And Mapping) algorithm. Including map 418 helps determine whether an object is a known object. Including map 418 with known objects helps increase the accuracy of new object detection.
[0066] The condition detector 422 is configured to generate information associated with the performance of the vehicle and the performance of the systems within the vehicle. The condition detector 422 can collect information from components within the vehicle, such as sensors 414, braking systems, acceleration systems, and other suitable components. The condition detector 422 can use this information to determine the performance of the vehicle. In some embodiments, the condition detector 422 is also configured to monitor the performance of software and networking actions within the vehicle. For example, in some embodiments, the condition detector 422 is configured to receive information associated with a "crash" of software or applications within the vehicle. In some embodiments, the condition detector 422 is configured to collect information related to the storage capacity of a memory device within the vehicle. In some embodiments, the condition detector 422 is configured to receive information associated with the processing power of a processor within the vehicle.
[0067] The vehicle control monitor 424 is configured to receive sensor data and control logs associated with the current action of the vehicle. In some embodiments, the sensor data includes information associated with the vehicle's speed, acceleration, jerk, braking, steering, pitch, roll, yaw, flashing of hazard lights, sirens, or other suitable information. The vehicle control monitor 424 is configured to determine whether any of the received sensor data indicates that a benchmark for satisfying the request has been met, such as whether a triggering event has been detected.
[0068] The object detector 426 is configured to receive sensor data from the sensor 414 to determine whether any abnormal object is located in the lane. In some embodiments, the object detector 426 is also configured to determine whether any object exists along the lane or adjacent to the lane. In some embodiments, the sensor data from the sensor 414 includes an image, and the object detector 426 is configured to perform image recognition on the received image, for example, using a trained neural network, to identify abnormal objects. In some embodiments, the object detector 426 is configured to compare any identified object with information from the GPS 416 and the map 418, thereby helping to determine the type of the identified object. In some embodiments, the object detector 426 is configured to identify objects such as tires, car parts, animals, potholes, traffic control panels, emergency vehicles, vehicles with activated hazard lights, or other suitable objects as objects.
[0069] The scene detector 428 is configured to receive sensor data from the sensor 414 to determine whether any scene that satisfies the conditions for satisfying the request is located in the environment surrounding the vehicle. In some embodiments, the scene detector 428 is configured to determine that a vehicle accident has occurred in response to the detection of two or more vehicles in contact with each other or a vehicle surrounded by multiple dropped objects. In some embodiments, the scene detector 428 is configured to determine that construction is in progress based on the detection of multiple construction vehicles approaching. In some embodiments, the scene detector 428 is configured to determine that the vehicle is parked on the shoulder of the road based on a determination that the vehicle is located adjacent to a lane and is not moving or is moving significantly slower than other vehicles. In some embodiments, the scene detector 428 is configured to use image recognition, such as by a trained neural network, to determine the content of the scene surrounding the vehicle.
[0070] In some embodiments, object detector 426 and scene detector 428 are each activated during the entire period of vehicle operation, such as when the vehicle's engine or motor is operating. In some embodiments, at least one of object detector 426 or scene detector 428 is set to be activated in response to vehicle control monitor 424 determining a specific behavior, such as a trigger event being detected.
[0071] The data designation unit 432 is configured to receive a determination that the implementation of the request has been completed or a determination that a triggering event has been detected. The data designation unit 432 is configured to analyze the received information and determine what sensor data from the sensor 414 should be collected based on the received data. For example, in some embodiments where an abnormal steering behavior implemented by the driver is detected, the data designation unit 432 is configured to determine that image data from the front camera of the sensor 414 should be taken in. Moreover, the data designation unit 432 is configured to determine the period during which data from the determined sensor should be collected based on the time of the detection condition. In some embodiments, the data designation unit 432 is configured to determine the sensor 414 for collecting data based on a command in a request received from a user.
[0072] In some embodiments, the data designation unit 432 is configured to determine an area of received sensor data associated with a detected condition. In some embodiments, the area of received sensor data is identified based on, for example, object recognition of the sensor data by the object detector 426 or the scene detector 428. In some embodiments, the data designation unit 432 is configured to intercept a received image from the sensor data or remove data of a different nature from the sensor data if the sensor data is not an image to reduce the amount of information in the log of the abnormal condition. In some embodiments, the data designation unit 432 is configured to remove personal information, such as license plates, faces of people, etc., from the sensor data.
[0073] The log collector 434 is configured to receive data from the data designator 432. In some embodiments, the log collector 434 is configured to receive data directly from the sensor 414, GPS 416, or the condition detector 422 based on information provided by the data designator 432. The log collector 434 is also configured to determine what information is useful for identifying the type and location of the object, such as location information from the GPS 416 or the map 418, image information from the sensor 414, truncated or reduced information from the data designator 432, timestamp information associated with the time when the object or scene was detected, or other suitable information.
[0074] The log collector 434 generates log data based on received and related data, such as captured images and location data. In order to support synchronization of collected data and for queue priority within the server 440, the log collector 434 also associates timestamp information with the log data. In some embodiments, the log collector 434 generates log data in a manner that further includes world coordinates associated with the captured images. In some embodiments, the log collector 434 generates log data in a manner that further includes map locations associated with the captured images. In some embodiments, the log collector 434 includes additional information to support increased accuracy in determining objects or scenes.
[0075] The above description involves generating log data based on images from sensor 414, but those skilled in the art will appreciate that log collector 434 is not limited to generating log data based on images. In some embodiments, log collector 434 is configured to generate log data based on information from other sensors mounted on the vehicle, such as RADAR, LiDAR, or other suitable sensors. In some embodiments where the occupant wears smart glasses, log collector 434 is also configured to generate log data based on information received from the smart glasses.
[0076] The log sender 436 is configured to receive log data from the log collector 434 and send the log data to the server 440. In some embodiments, the log sender 436 is configured to send log data wirelessly. In some embodiments, the log sender 436 is configured to send log data via a wired connection. In some embodiments, the log sender 436 is configured to send log data directly to the user terminal 460. In some embodiments, the log sender 436 is configured to send log data to a mobile device that can be accessed by a user, and then the mobile device is configured to send the log data to the server 440. In some embodiments, the log sender 436 is configured to use Bluetooth (Bluetooth) (registered trademark) or other suitable wireless technologies to send log data to the mobile device. In some embodiments, the ECU 420 is configured to determine whether the data transmission speed from the mobile device to the server 440 is higher than the data transmission speed from the log sender 436 to the server 440. The log sender 436 is configured to send the log data to be sent to the server 440 to the mobile device in response to the determination that the data transmission speed from the mobile device to the server 440 is higher. The log sender 436 is configured to send the log data directly from the detection vehicle system 410 to the server 440 without transmitting the log data to the mobile device in response to the determination that the data transmission speed from the mobile device to the server 440 is not high.
[0077] In some embodiments, the detection vehicle system 410 also includes a memory configured to store sensor data from sensors mounted on the vehicle. In some embodiments, the memory is also configured to store information associated with previously detected objects or scenes. In some embodiments, the data designation unit 432 is configured to provide a result based on the consistent object or scene in response to detecting an object or scene consistent with a previous object or scene. In some embodiments, the detection vehicle system 410 is also configured to determine whether the detection vehicle has received information associated with an object or scene consistent with the object or scene determined from the condition detector 422 from the server 440. In some embodiments, the detection vehicle system 410 is configured to hinder the sending of log data to the server 440 in response to detecting that the detection vehicle has received information associated with the determined object or scene. Avoiding the sending of redundant information to the server 440 helps reduce the data sent to the server 440 and helps minimize the power consumption of the detection vehicle system 410. In some embodiments, the storage of previous requests is called a cache. Those skilled in the art will understand caching as the use of hardware or software to store data so that future requests for the data can be satisfied more quickly.
[0078] The server 440 includes a log data receiver 442 configured to receive log data from the log sender 436. In some embodiments, the log data receiver 442 is configured to receive log data from a mobile device. The server 440 also includes a log encoder 444 configured to encode the log data. The server 440 also includes a log transmitter 446 configured to send the encoded log data to the user terminal 460. The server 440 also includes a request / rule receiver 448 configured to receive a request or rule from the user terminal 460.
[0079] The log data receiver 442 is configured to receive log data from the log transmitter 436. In some embodiments, the log data receiver 442 is configured to receive log data from a mobile device. In some embodiments, the log data receiver 442 is configured to receive log data wirelessly. In some embodiments, the log data receiver 442 is configured to receive log data via a wired connection. In some embodiments, the log data receiver 442 is configured to attach a timestamp to the log data regarding the time when the log data was received.
[0080] The log encoder 444 is configured to encode the received log data according to a specified encoding protocol. Encoding the log data according to the specified encoding protocol helps to ensure that the user terminal 460 can reliably decode the log data for use by the user terminal 460. In some embodiments, the log encoder 444 is configured to perform compression, image encoding, thumbnail image generation or other suitable encoding protocols for the log data. In some embodiments, the log encoder 444 is configured to encrypt the log data. In some embodiments, the log encoder 444 is also configured to perform super-resolution so that the user can further identify the data. It should be understood by those skilled in the art that super-resolution is the process of receiving a high-resolution image from a low-resolution image. Improving the resolution of the log data helps to reduce false positives or false negatives.
[0081] In some embodiments, the server 440 also includes a database for storing received log data. In some embodiments, the log data is stored in the database before and / or after encoding by the log encoder 444. In some embodiments, the log data is stored in the database in a priority queue. In some embodiments, the priority of the priority queue is determined based on an object or scene, such as the time when the triggering event is detected, the time when the log data is received by the log data receiver 442, the type of object or scene, the identity of the driver of the detecting vehicle, or other suitable priority criteria.
[0082] The log transmitter 446 is configured to receive the encoded log data from the log encoder 444. The log transmitter 446 is configured to send the encoded log data to the user terminal 460. In some embodiments, the log transmitter 446 is configured to send the encoded log data to a mobile device that can be accessed by a user. In some embodiments, the log transmitter 446 is configured to send the encoded log data wirelessly. In some embodiments, the log transmitter 446 is configured to send the encoded log data via a wired connection. In some embodiments, the log transmitter 446 is configured to send the encoding protocol information together with the encoded log data. The transmission of the encoding protocol information about the encoded log data helps the mobile device or the user terminal 460 to accurately decode the encoded log data for use by the user terminal 460.
[0083] The request / rule receiver 448 is configured to receive new or updated rules or requests for data from a user. In some embodiments, the request / rule receiver 448 is configured to receive new or updated rules or requests wirelessly. In some embodiments, the request / rule receiver 448 is configured to receive new or updated rules or requests via a wired connection. In some embodiments, the request / rule receiver 448 is based on the UI 110 ( Figure 1 ) device.
[0084] In some embodiments, the server 440 is configured to receive formed locations from a plurality of vehicles. In some embodiments, the server 440 is configured to receive navigation plans from a plurality of vehicles. In some embodiments, the log transmitter 446 is configured to limit the transmission of the encoded log data only to vehicles within a specified distance of a detected triggering event.
[0085] In some embodiments, the server 440 is configured to send only log data associated with a newly detected triggering event. That is, if the triggering event has already been reported by the server 440, the triggering event is not reported again. Limiting repeated reporting of triggering events helps the server 440 reduce redundant data received by the user terminal.
[0086] The user terminal 460 is a user terminal accessible by a user and associated with a satisfied request. In some embodiments, the user terminal 460 includes a GUI. In some embodiments, the user terminal 460 is configured to automatically generate an alert in response to receiving data from the server 440. In some embodiments, the alert includes a voice alert or a visual alert.
[0087] Those skilled in the art will appreciate that modifications to the request acquisition system 400 are within the scope of the present disclosure. For example, in some embodiments, the detection vehicle system 410 can send log data directly to the user terminal 460 over a wireless network or the like. In some embodiments, the mobile device of the passenger in the detection vehicle can send log data directly to the user terminal 460 over a wireless network or the like.
[0088] By automatically identifying and transmitting information associated with satisfying rules or requests detected in or around the vehicle, a user can improve the performance of applications or software executed using the vehicle's processing system, such as ECU 420. In some embodiments, a user can object to information associated with an event such as an accident.
[0089] Figure 5 The present invention is an action flow for obtaining consulting content from a mobile computing network in accordance with at least some embodiments of the subject disclosure. The action flow provides a method for obtaining consulting content from a mobile computing network. In at least some embodiments, the method is to obtain consulting content from a mobile computing network by a server such as Figure 1 The server 120 or Figure 4 The method is performed by a server 440 shown. In at least some embodiments, the method is performed by a controller of the server, such as Fig.11 This is performed by the controller 1102 shown.
[0090] In S550, the controller receives a content query. In at least some embodiments, the controller receives a content query from an accessible console such as Figure 1 The console 150 shown as accessible receives the content query. In at least some embodiments, the controller Figure 2 The illustrated GUI 200 receives a content query. In at least some embodiments, the content query is a request for information discernible from data that can be collected using sensors mounted on one or more vehicles. In at least some embodiments, the content query is about one or more classes of an ontology.
[0091] In S552, the controller creates a sequence of program actions. In at least some embodiments, the controller creates a sequence of program actions, and the program actions perform the following processing: taking in a data sample, wherein the data sample includes a first type of information and a second type of information; and reducing the second type of information of the data sample. In at least some embodiments, the controller creates various program action sequences. In at least some embodiments, the various program action sequences target the same content but differ in program actions and / or combined computing resources. In at least some embodiments, the various program action sequences target different content for a single query. In at least some embodiments, the controller performs the following described Figure 6 action flow.
[0092] In S554, the controller sends the sequence to more than one vehicle. In at least some embodiments, the controller sends the sequence of program actions to more than one vehicle respectively. In at least some embodiments, the controller sends various sequence of program actions to multiple vehicles.
[0093] In S556, the controller receives the content generated as a result. In at least some embodiments, the controller receives the content from multiple vehicles at various times through various connections. In at least some embodiments, the controller receives the content in a uniform format. In at least some embodiments, the controller receives the content in various formats.
[0094] In S558, the controller sends the resulting content. In at least some embodiments, the controller sends the content to an accessible console or other terminal. The content query is received from the accessible console or other terminal. In at least some embodiments, the controller sends the content to a storage device for later retrieval by the accessible console or other terminal.
[0095] Figure 6 The disclosure of at least some embodiments of the subject matter is an action flow for determining a sequence of program actions for reducing potential leakage of personally identifiable information. The action flow provides a method for determining a sequence of program actions for reducing potential leakage of personally identifiable information. In at least some embodiments, the method is performed by a server such as Figure 1 The server 120 or Figure 4 In at least some embodiments, the method is performed by a controller of a server including components for performing specific actions, such as Fig.11 This is performed by the controller 1102 shown.
[0096] In S660, the identification component of the controller identifies candidate program actions. In at least some embodiments, the identification component identifies multiple candidate program actions, and the multiple candidate program actions perform the following processing: taking in a data sample, wherein the data sample includes a first type of information and a second type of information; and reducing the second type of information of the data sample. In at least some embodiments, the identification component distinguishes between required program actions and arbitrarily selected program actions. In at least some embodiments, the multiple candidate program actions include at least one detection action, at least one compression action, and at least one filtering action. In at least some embodiments, the identification component performs identification in response to receiving a content query from a client terminal. In at least some embodiments, the identification component performs the following described Figure 7 action flow.
[0097] In S664, the allocation component allocates the cost. In at least some embodiments, the allocation component allocates the cost to each valid combination of a candidate program action among a plurality of candidate program actions and a computing resource among a plurality of computing resources. In at least some embodiments, the allocation component allocates a leakage cost representing a potential leakage of personal identity information to each valid combination. In at least some embodiments, the allocation component allocates a cost representing a currency of at least one of a computing fee and a sending fee to each valid combination. In at least some embodiments, the allocation component allocates a leakage cost representing a potential leakage of personal identity information associated with each valid combination of a candidate program action among a plurality of candidate program actions and a computing resource among a plurality of computing resources. In at least some embodiments, the allocation component performs the following steps: Fig. 9 action flow.
[0098] In various embodiments, the possibility of PII leakage as a cost is calculated in various ways. In at least some embodiments, the possibility of PII leakage is calculated from the perspective of monetary cost. In at least some embodiments, the calculation of the possibility of PII leakage from the perspective of monetary cost has lower precision and accuracy, but can be combined with the previous transmission cost and calculation cost. In at least some embodiments, the possibility of PII leakage is expressed in a non-monetary perspective. In at least some embodiments, expressing the possibility of PII leakage from a non-monetary perspective has higher precision and accuracy, but is not compatible with the previous transmission cost and calculation cost. In at least some embodiments where the cost of the possibility of PII leakage is expressed from a non-monetary perspective, the cost is weighted to the previous calculation cost and transmission cost in a manner that takes into account an appropriate proportion. In other words, when a high weight is given to the possibility of PII leakage, the solution can better support the reduction of the possibility of PII leakage than the monetary cost. In contrast, when a high weight is given to the calculation cost and the transmission cost, the solution can better support the reduction of the monetary cost than the possibility of PII leakage.
[0099] In S668, the application component applies the objective function. In at least some embodiments, the application component applies the objective function to the valid combinations and the assigned costs to determine a sequence of program actions. In at least some embodiments, the application component applies the objective function to the valid combinations and the assigned leakage costs to determine a sequence of program actions, where each program action of the sequence is performed by one or more selected computing resources in a manner such that the total leakage cost is less than a threshold leakage cost and the amount of first category information is greater than a data threshold. In at least some embodiments, the application component determines a sequence of program actions, where the sequence is a sequence such that the total monetary cost is less than a threshold monetary cost. In at least some embodiments, the application component performs the following Fig.10 action flow.
[0100] In at least some embodiments, the objective function considers a set of constraints to maximize flow and minimize cost. In at least some embodiments, program actions have sequential constraints and computing resources also have sequential constraints. Therefore, the overall determination of at least some embodiments is a combinatorial optimization of a bipartite graph, which includes a set of computing resources and a set of program actions. In at least some embodiments, the solution includes a situation where the nodes are consistent in a way that minimizes cost and maximizes the amount of first-class information reaching the cloud server.
[0101] Figure 7 The action flow for identifying candidate program actions of at least some embodiments of the subject disclosure provides a method for identifying candidate program actions. In at least some embodiments, the method is to perform the identification of candidate program actions by a server such as Figure 1 The server 120 or Figure 4 In at least some embodiments, the method is performed by identifying components such as Fig.11 This is done by the identification component 1120 shown.
[0102] In S770, the identification component or its subcomponents determine the ontology class of the content query. In at least some embodiments, the identification component reads one or more ontology classes represented by the content query. In at least some embodiments, the identification component applies a model to the content query, the model being configured to output the ontology class in response to the input of the content query. In at least some embodiments, the identification component performs the following steps: Figure 8 action flow.
[0103] In S773, the identification component or its subcomponent identifies the candidate detection action. In at least some embodiments, the identification component identifies a program action, which is configured to command one or more sensors to take in raw data that includes at least a portion of the consultation content. In at least some embodiments, the identification component identifies a program action, which is configured to command one or more sensors to take in raw data that collectively includes the consultation content. In at least some embodiments, the identification component identifies a program action, which is configured to command one or more sensors to take in raw data from which at least a portion of the consultation content can be exported.
[0104] In S776, the identification component or its subcomponents identify the candidate compression action. In at least some embodiments, the identification component identifies a program action that is configured to compress the original data, the filtered data, or the previously compressed data. In at least some embodiments, the identification component identifies a program action that is configured to prevent or minimize the loss of data and reduce the capacity required to store the data.
[0105] In S779, the identification component or its subcomponents identify the candidate filtering actions. In at least some embodiments, the identification component identifies a program action that is configured to filter the original data, the compressed data, or the previously filtered data. In at least some embodiments, the identification component identifies a program action that is configured to reduce the capacity required to store data by removing data portions that are not associated with the consulting content.
[0106] Figure 8 The disclosure of at least some embodiments of the subject matter discloses an action flow for determining an ontology class for a content query. The action flow provides a method for determining an ontology class for a content query. In at least some embodiments, the method is performed by a server such as Figure 1 The server 120 or Figure 4 The method is performed by a server 440 shown. In at least some embodiments, the method is performed by a controller of the server, such as Fig.11 This is performed by the controller 1102 shown.
[0107] In S880, the controller determines whether the new ontology class exists. In at least some embodiments, the controller determines whether the new ontology class exists in response to receiving one or more content queries. In at least some embodiments, the controller determines whether the new ontology class exists in response to receiving a command to implement the new ontology class. If the controller determines that the new ontology class exists, the action flow enters ontology update in S884. If the controller determines that the new ontology class does not exist, the action flow ends.
[0108] In S884, the controller updates the ontology. In at least some embodiments, the controller adds the new class to the ontology database. In at least some embodiments, the controller associates one or more program actions with the new ontology class. In at least some embodiments, the controller associates one or more previous content queries with the new ontology class.
[0109] In S888, the generation component of the controller is, for example, Fig.11 The generation component 1126 shown generates more than one program action. In at least some embodiments, the generation component generates more than one program action associated with a new ontology input (ontology entry). In at least some embodiments, the generation component generates program actions in response to the updating of the ontology. In at least some embodiments, the generation component modifies more than one existing program action to generate new program actions. In at least some embodiments, the generation component generates program actions in a manner that detects, compresses or filters data associated with a new ontology class.
[0110] For a given ontology of classes, in at least some embodiments, program actions are generated in a manner that obtains useful information for various applications. In at least some embodiments, the ontology of classes is periodically updated in a manner that appends new classes and, in some cases, removes unused classes. When the ontology is changed, the program actions required to collect information about the classes of the ontology are also changed. Therefore, in at least some embodiments, updates are performed at regular intervals or in response to specific events, such as whenever the ontology is updated. In at least some embodiments, the controller updates the ontology at regular intervals or in response to a specific amount of content queries.
[0111] Fig. 9 The disclosure of at least some embodiments of the subject matter discloses an action flow for allocating costs. The action flow provides a method for allocating costs. In at least some embodiments, the method is to allocate costs by a server such as Figure 1 The server 120 or Figure 4 In at least some embodiments, the method is performed by distributing components such as Fig.11This is done by the allocation component 1122 shown.
[0112] In S990, the allocation component or its subcomponent selects a candidate program action. In at least some embodiments, the allocation component selects the candidate program action from among the plurality of candidate program actions identified by the identification component. In at least some embodiments, as the action S990 is repeated, the allocation component selects each candidate program action once.
[0113] In S992, the allocation component or its subcomponents are combined with computing resources. In at least some embodiments, the allocation component combines the candidate program actions selected in S990 with computing resources. In at least some embodiments, the allocation component combines the candidate program actions with computing resources among multiple computing resources available in a specific vehicle and any associated edge and cloud computing resources. In at least some embodiments, the multiple computing resources include at least one vehicle sensor, at least one vehicle processor, at least one vehicle memory, and at least one cloud server. In at least some embodiments, the multiple computing resources also include at least one vehicle storage and at least one edge computing node. In at least some embodiments, the specific vehicle is a vehicle of a certain brand (make) and model. In at least some embodiments, the computing resources include computing resources in each of multiple vehicles of multiple vehicle brands and models. In at least some embodiments, as action S992 is repeated, the allocation component combines each candidate program action with each computing resource among multiple computing resources.
[0114] In S994, the allocation component or its subcomponents allocates potential PII leakage costs. In at least some embodiments, the allocation component allocates leakage costs, and the leakage costs represent potential leakage of personal identity information associated with each valid combination of candidate program actions among multiple candidate program actions and computing resources among multiple computing resources. In at least some embodiments, the allocation component allocates leakage costs in units other than monetary values. In at least some embodiments, the allocation component allocates leakage costs in units of monetary values. In at least some embodiments, the allocation component allocates leakage costs according to the presumption of damage caused by the disclosure of PII. In at least some embodiments, as action S994 is repeated, the allocation component allocates leakage costs to each valid combination.
[0115] In S995, the allocation component or its subcomponents allocate the cost of the currency. In at least some embodiments, the allocation component further allocates the cost of the currency calculated and sent associated with each valid combination. In at least some embodiments, the allocation component allocates the calculation cost from the perspective of hardware cost and / or energy consumption. In at least some embodiments, the allocation component allocates the sending cost from the perspective of network usage cost and / or energy consumption. In at least some embodiments, as action S995 is repeated, the allocation component allocates the cost of the currency to each valid combination.
[0116] In S997, the allocation component determines whether the selected candidate program action has been combined with all computing resources. In the case where the allocation component determines that uncombined computing resources remain, the action flow returns to the combination of computing resources in S992. In the case where the allocation component determines that the selected candidate program action has been combined with all computing resources, the action flow enters the candidate processing determination in S998.
[0117] In S998, the allocation component determines whether all candidate program actions have been selected. If the allocation component determines that unselected candidate program actions remain, the action flow returns to the selection of candidate program actions in S990. If the allocation component determines that all candidate program actions have been selected, the action flow ends.
[0118] Fig.10 The disclosure of at least some embodiments of the subject matter discloses an action flow for applying a target function. The action flow provides a method for applying the target function. In at least some embodiments, the method is to perform a process of applying the target function by a server such as Figure 1 The server 120 or Figure 4 The method is performed by the server 440 shown. In at least some embodiments, the method is performed by an application component such as Fig.11 This is done using the application component 1124 shown.
[0119] In S1000, the application component or its subcomponent identifies the candidate sequence. In at least some embodiments, the application component causes the identification component to identify the candidate sequence. In at least some embodiments, the application component identifies possible sequences of valid combinations of candidate program actions and computing resources, wherein the candidate program actions perform the following processing: taking in a data sample, wherein the data sample includes a first type of information and a second type of information; and reducing the second type of information of the data sample before sending the resulting data to the server. In at least some embodiments, the candidate sequence includes various numbers of candidate program actions. For example, a candidate sequence includes many different types of filtering and compression in various computing platforms of a vehicle, while another candidate sequence discards most of the filtering and compression. In at least some embodiments, the application component identifies all paths of valid combinations from the taking in of the data sample to the sending of the resulting data as candidate sequences.
[0120] In S1003, the application component or its subcomponent applies the objective function to the candidate sequence. In at least some embodiments, the application component applies the objective function to the candidate sequence to calculate the total cost. In at least some embodiments, as action S1003 is repeated, the application component calculates the total cost of each candidate sequence.
[0121] In S1006, the application component determines whether all candidate sequences have been processed. In the case where the application component determines that unprocessed candidate sequences remain, the action flow returns to the application of the objective function in S1003 associated with the next candidate sequence. In the case where the application component determines that all candidate sequences have been processed, the action flow enters the sequence determination in S1009.
[0122] In S1009, the application component or its subcomponent determines a sequence. In at least some embodiments, the application component determines what sequence to send for execution by the vehicle. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total cost for execution. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total leakage cost for execution. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total monetary cost for execution. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total leakage cost among the candidate sequences with a cost of currency less than a threshold monetary cost for execution. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total monetary cost among the candidate sequences with a leakage cost less than a threshold leakage cost for execution. In at least some embodiments, the application component determines to send the candidate sequence with the lowest total cost for execution, where the leakage cost is expressed in the same unit as the cost of currency.
[0123] In at least some embodiments, the overall determination can be made for a single vehicle or a fleet of vehicles. In the case of a fleet in at least some embodiments, particularly in the case of groups with qualitatively different capabilities, the overall solution output from the objective function assigns actions in a fixed manner or in a weighted manner, e.g., high-performance vehicles are given a high probability of being assigned a complex action at a given start, but in addition, lower-performance vehicles are accompanied by a low probability of being assigned a complex action.
[0124] Fig.11 A diagram of a hardware configuration associated with determining a sequence of program actions to reduce potential leakage of personally identifiable information in accordance with at least some embodiments of the subject disclosure.
[0125] The preferred hardware configuration includes a server 1100 that interacts with an input device 1109, the server 1100 communicating with the input device 1109 via a network 1108. In at least some embodiments, the server 1100 is a computer or other computing device that receives input or instructions from the input device 1109. In at least some embodiments, the server 1100 is embedded in the input device 1109. In at least some embodiments, the server 1100 is a computer system that executes computer-readable instructions in a manner that performs a determined action with respect to a sequence of program actions that reduces the potential leakage of personally identifiable information.
[0126] The server 1100 includes a controller 1102, a storage unit 1104, an input / output interface 1106, and a communication interface 1107. In at least some embodiments, the controller 1102 includes a processor or a programmable circuit that executes commands, and the controller 1102 causes the processor or the programmable circuit to act according to the commands. In at least some embodiments, the controller 1102 includes an analog or digital programmable circuit or any combination thereof. In at least some embodiments, the controller 1102 includes a physically separate storage or circuit that interacts through communication. In at least some embodiments, the storage unit 1104 includes a non-volatile computer-readable medium that can store executable data and non-executable data accessed by the controller 1102 in the execution of commands. The communication interface 1107 sends and receives data with the network 1108. The input / output interface 1106 is connected to various input units and output units such as the input device 1109 via a parallel port, a serial port, a keyboard port, a mouse port, a monitor port, and similar ports to accept instructions and present information. In some implementations, the storage unit 1104 is located outside the server 1100 .
[0127] The controller 1102 includes a discriminating component 1120, an allocating component 1122, an applying component 1124, and a generating component 1126. The storage unit 1104 includes candidate actions 1130, cost parameters 1132, an objective function 1134, and a sequence 1136.
[0128] The identification component 1120 is a circuit or command of the controller 1102 configured to identify candidate program actions. In at least some embodiments, the identification component 1120 is configured to identify multiple candidate program actions, and the multiple candidate program actions perform the following processing: taking in a data sample, wherein the data sample includes a first type of information and a second type of information; and reducing the second type of information of the data sample. In at least some embodiments, the identification component 1120 records information such as the candidate action 1130 in the storage unit 1104. In at least some embodiments, the identification component 1120 includes subcomponents of functions that are added as described in the above flowchart. In at least some embodiments, such subcomponents are referenced by names associated with corresponding functions.
[0129] Allocating component 1122 is a circuit or command of controller 1102 configured to allocate costs. In at least some embodiments, allocating component 1122 is configured to allocate leakage costs representing potential leakage of personally identifiable information associated with each valid combination of a candidate program action from a plurality of candidate program actions and a computing resource from a plurality of computing resources. In at least some embodiments, allocating component 1122 utilizes information within storage unit 1104 such as candidate actions 1130 and cost parameters 1132. In at least some embodiments, allocating component 1122 includes subcomponents of additional functionality as described in the above flow charts. In at least some embodiments, such subcomponents are referenced by names associated with corresponding functionality.
[0130] Application component 1124 is a circuit or command of controller 1102 configured to apply the objective function. In at least some embodiments, application component 1124 is configured to apply the objective function to the valid combinations and the assigned leakage costs to determine a sequence of program actions, where each program action of the sequence is performed by one or more selected computing resources in a manner such that the total leakage cost is less than a threshold leakage cost and the amount of first type information is greater than a data threshold. In at least some embodiments, application component 1124 utilizes information in storage unit 1104 such as candidate actions 1130 and objective function 1134, and records information such as sequence 1136 in storage unit 1104. In at least some embodiments, application component 1124 includes subcomponents of functions that are added as described in the above flowchart. In at least some embodiments, such subcomponents are referenced by names associated with corresponding functions.
[0131] The generation component 1126 is a circuit or command of the controller 1102 configured to generate program actions. In at least some embodiments, the generation component 1126 is configured to generate program actions in response to updates to the ontology. In at least some embodiments, the generation component 1126 records information from the storage unit 1104, such as the candidate actions 1130. In at least some embodiments, the generation component 1126 includes subcomponents of additional functions as described in the above flowcharts. In at least some embodiments, such subcomponents are referenced by names associated with corresponding functions.
[0132] In at least some embodiments, the device is another device that can process logical functions to perform the actions of this specification. In at least some embodiments, the controller and the storage unit do not have to be completely separate devices. In some embodiments, the controller and the storage unit share circuits or one or more computer-readable media. In at least some embodiments, the storage unit includes a hard disk drive that stores both computer executable commands and data accessed by the controller, and the controller includes a combination of a central processing unit (CPU) and a RAM (Random Access Memory), where the computer executable commands can be copied in whole or in part in a manner that is executed by the CPU in the execution of the actions of this specification.
[0133] In at least some embodiments where the device is a computer, a program installed on the computer can cause the computer to function or perform actions associated with the device of the embodiments described in this specification. In at least some embodiments, such a program can be executed by a processor in a manner that causes the computer to perform specific actions associated with part or all of the functional blocks and block diagrams of the flowcharts described in this specification.
[0134] At least some embodiments are described with reference to flow charts and block diagrams, whose functional blocks represent (1) steps of a process for performing an action, or (2) components of a controller responsible for executing an action. In at least some embodiments, specific steps and components are implemented by dedicated circuits, programmable circuits supplied with computer-readable instructions stored on a computer-readable medium, and / or processors supplied with computer-readable instructions stored on a computer-readable medium. In at least some embodiments, the dedicated circuits include digital and / or analog hardware circuits, and include integrated circuits (ICs) and / or discrete circuits. In at least some embodiments, the programmable circuits include reconfigurable hardware circuits with logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logical operations, flip-flops, registers, memory elements, etc., such as field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), etc.
[0135] In at least some embodiments, the computer-readable storage medium includes a tangible device capable of holding and storing commands used by the command execution device. In some embodiments, the computer-readable storage medium includes, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above, but is not limited to these. A non-exhaustive list of more specific examples of computer-readable storage media includes the following, namely, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM: Read Only Memory), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD (Compact Disc)-ROM), a digital versatile disc (DVD: Digital Versatile Disc), a memory stick (memory stick), a floppy disk, a punch card with commands recorded or a mechanically encoded device such as a raised structure in a groove, and any suitable combination of the above. The computer-readable storage medium used in this specification should not be interpreted as temporary signals themselves such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (for example, light pulses passing through fiber optic cables), or electrical signals sent through wires.
[0136] In at least some embodiments, the computer-readable program commands recorded in this specification can be downloaded from a computer-readable storage medium to a respective computing / processing device, or can be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. In at least some embodiments, the network includes copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. In at least some embodiments, a network adapter card or network interface in each computing / processing device receives the computer-readable program commands from the network and transmits the computer-readable program commands to be stored in a computer-readable storage medium in the respective computing / processing device.
[0137] In at least some embodiments, the computer-readable program instructions for performing the above-mentioned actions may be any of source code or object code written in assembler commands, instruction-set-architecture (ISA) commands, machine commands, machine dependent instructions, microcode, firmware commands, state setting data, or any combination of one or more programming languages, wherein the programming language includes object-oriented programming languages such as Smalltalk, C++ or similar programming languages, and conventional procedural programming languages such as "C" programming language or similar programming languages. In at least some embodiments, the computer-readable program instructions are executed entirely on the user's computer, or partially on the user's computer, or as a stand-alone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In at least some embodiments, in the latter case, the remote computer is connected to the user's computer via any type of network including a local area network (LAN) or a wide area network (WAN), or is connected to an external computer (e.g., using an Internet service provider to connect to the Internet). In at least some embodiments, in order to carry out the disclosed scheme of the subject matter, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), utilizes state information of computer-readable program commands to individualize the electronic circuit, thereby executing the computer-readable program commands.
[0138] Although the disclosed embodiments of the subject matter are described, the technical scope of any subject matter for which protection is sought is not limited to the above-mentioned embodiments. It should be understood by those skilled in the art that various changes and improvements to the above-mentioned embodiments can be made. It should also be understood by those skilled in the art from the claims that the embodiments to which such changes or improvements are added are included within the technical scope of the present invention.
[0139] The actions, procedures, steps, and platforms of each process performed by the apparatus, system, program, and method described in the claims, embodiments, or drawings may be performed in any order, as long as the order is not indicated by "first," "before," or similar terms, and as long as the output from the previous process is not used in the subsequent process. Even if the process flow is described in the claims, embodiments, or drawings using phrases such as "first" or "next," such description does not necessarily mean that the processes must be performed in the described order.
[0140] In at least some embodiments, a sequence of program actions that reduces potential leakage of personally identifiable information is determined by: identifying a plurality of candidate program actions, the plurality of candidate program actions being processed by: taking in a data sample containing a first category of information and a second category of information; and reducing the second category of information in the data sample; allocating a leakage cost, the leakage cost representing the potential leakage of personally identifiable information associated with each valid combination of a candidate program action among the plurality of candidate program actions and a computing resource among the plurality of computing resources; and applying an objective function to the valid combinations and the allocated leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that a total leakage cost is less than a threshold leakage cost and an amount of the first category of information is greater than a data threshold.
[0141] Some embodiments include instructions within a computer program, methods performed by a processor executing the instructions of the computer program, and apparatus for performing the methods. In some embodiments, the apparatus includes a controller including circuitry configured to perform the actions within the instructions.
[0142] The features of several embodiments are summarized above in a manner that those skilled in the art can more fully understand the scheme of the present disclosure. It should be understood by those skilled in the art that they can easily use the present disclosure as a basis for designing or modifying other processes and structures, wherein the other processes and structures perform the same purposes and / or achieve the same advantages as the embodiments written in this specification. It should also be understood by those skilled in the art that such equivalent structures do not depart from the subject matter and scope of the present disclosure, and that those skilled in the art can make various changes, substitutions, and modifications to the present specification without departing from the subject matter and scope of the present disclosure.
Claims
1. A method for determining a sequence of program actions, wherein: The method comprises: Identifying a plurality of candidate program actions, the plurality of candidate program actions being processed by: taking in a data sample, wherein the data sample includes first type information and second type information; and reducing the second type information of the data sample; assigning a leakage cost representing a potential leakage of the personally identifiable information associated with each valid combination of a candidate program action from the plurality of candidate program actions and a computing resource from the plurality of computing resources; and An objective function is applied to the valid combinations and the assigned leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that a total leakage cost is less than a threshold leakage cost and an amount of first category information is greater than a data threshold.
2. The method for determining a program action sequence according to claim 1, wherein: The allocation includes further allocating the cost of the calculation and transmission of the currency associated with each valid combination, The sequence is such a sequence that the cost of the total currency is less than the cost of the threshold currency.
3. The method for determining a program action sequence according to claim 2, wherein: The plurality of computing resources include at least one vehicle sensor, at least one vehicle processor, at least one vehicle memory, and at least one cloud server.
4. The method for determining a program action sequence according to claim 3, wherein: The plurality of computing resources also include at least one vehicle storage and at least one edge computing node.
5. The method for determining a program action sequence according to any one of claims 1 to 4, wherein: The plurality of computing resources includes computing resources in each of a plurality of vehicles.
6. The method for determining a program action sequence according to any one of claims 1 to 5, wherein: The plurality of candidate program actions include at least one detection action, at least one compression action, and at least one filtering action.
7. The method for determining a program action sequence according to any one of claims 1 to 6, wherein: The identification is performed in response to receipt of a content query from a client terminal.
8. The method for determining a program action sequence according to claim 7, wherein: The content query is about one or more classes of the ontology.
9. The method for determining a program action sequence according to claim 8, further comprising: Program actions are generated in response to the updates to the ontology.
10. A computer program product comprising instructions executable by a processor, the instructions causing the processor to perform actions, The actions include: Identifying a plurality of candidate program actions, the plurality of candidate program actions being processed by: taking in a data sample, wherein the data sample includes first type information and second type information; and reducing the second type information of the data sample; assigning a leakage cost representing a potential leakage of the personally identifiable information associated with each valid combination of a candidate program action from the plurality of candidate program actions and a computing resource from the plurality of computing resources; and An objective function is applied to the valid combinations and the assigned leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that a total leakage cost is less than a threshold leakage cost and an amount of first category information is greater than a data threshold.
11. The computer program product according to claim 10, wherein: The allocation includes further allocating the cost of the calculation and transmission of the currency associated with each valid combination, The sequence is such a sequence that the cost of the total currency is less than the cost of the threshold currency.
12. The computer program product according to claim 11, wherein: The plurality of computing resources include at least one vehicle sensor, at least one vehicle processor, at least one vehicle memory, and at least one cloud server.
13. The computer program product of claim 12, wherein: The plurality of computing resources also include at least one vehicle storage and at least one edge computing node.
14. The computer program product according to any one of claims 10 to 13, wherein: The plurality of computing resources includes computing resources in each of a plurality of vehicles.
15. The computer program product according to any one of claims 10 to 14, wherein: The plurality of candidate program actions include at least one detection action, at least one compression action, and at least one filtering action.
16. The computer program product according to any one of claims 10 to 15, wherein: The identification is performed in response to receipt of a content query from a client terminal.
17. The computer program product of claim 16, wherein: The content query is about one or more classes of the ontology.
18. The computer program product of claim 17, further comprising: Program actions are generated in response to the updates to the ontology.
19. A device for determining a program action sequence, wherein: The device comprises a controller including a circuit configured to perform an operation. The actions include: Identifying a plurality of candidate program actions, the plurality of candidate program actions being processed by: taking in a data sample, wherein the data sample includes first type information and second type information; and reducing the second type information of the data sample; assigning a leakage cost representing a potential leakage of the personally identifiable information associated with each valid combination of a candidate program action from the plurality of candidate program actions and a computing resource from the plurality of computing resources; and An objective function is applied to the valid combinations and the assigned leakage costs to determine a sequence of program actions, wherein each program action of the sequence is performed by one or more selected computing resources in a manner such that a total leakage cost is less than a threshold leakage cost and an amount of first category information is greater than a data threshold.
20. The apparatus for determining a program action sequence according to claim 19, wherein: The allocation includes further allocating the cost of the calculation and transmission of the currency associated with each valid combination, The sequence is such a sequence that the cost of the total currency is less than the cost of the threshold currency.