Determination of program operation sequence for reducing potential leakage of personal identification information
A program operation sequence filters and compresses sensor data to minimize PII leakage and optimize resource usage, addressing the challenges of high-quality data transfer and storage in autonomous vehicles.
Patent Information
- Application Number
- JP2024074916
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-11
- Filing Date
- 2024-05-02
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2044-05-02
AI Technical Summary
The increasing quality of sensor data from vehicles, particularly in autonomous driving systems, leads to higher data transfer and storage demands, increasing the risk of personally identifiable information (PII) leakage and transmission of irrelevant data.
A program operation sequence is implemented to filter and compress sensor data across stages, minimizing PII leakage by allocating resources efficiently and optimizing computational and transmission costs.
This approach reduces PII leakage and irrelevant data transmission while optimizing resource usage, ensuring data quality and security in vehicle-to-cloud data transfer.
Smart Images

Figure 2025013165000001_ABST
Abstract
Description
[Background technology]
[0001] In-vehicle sensors are becoming more and more common. With the advent of autonomous driving, vehicles are being added with arrays of sensors such as GPS and LiDAR, as well as traditional cameras. The combination of these sensors allows the vehicle to obtain a detailed view of the world around the vehicle. While most of the sensor data that makes up this view is overwritten due to storage issues, some of the information is stored for the purpose of generating simulated environments for training and prediction of ADAS, maps, etc., using live actionable information or historical information. The usefulness of this information increases with its quality. Generally, as the quality of information increases, so does the required data transfer and storage capacity. [Brief description of the drawings]
[0002] Aspects of the present disclosure are best understood by reading the following detailed description in conjunction with the accompanying figures. It should be noted that, in accordance with standard industry practice, various features have not been drawn to scale. In fact, the dimensions of various features may be arbitrarily increased or decreased for clarity of illustration.
[0003] [Figure 1] FIG. 1 is a schematic diagram of a system for query content capture in a mobile computing network, according to at least some embodiments of the subject disclosure. [Diagram 2] FIG. 2 is an illustration of a graphical user interface (GUI) for querying content in a mobile computing network, according to at least some embodiments of the subject disclosure. [Diagram 3] FIG. 3 is an illustration of a data structure of a content acquisition task, according to at least some embodiments of the subject disclosure. [Figure 4] FIG. 4 is a schematic diagram of a query content acquisition system according to at least some embodiments of the subject disclosure. [Diagram 5]FIG. 5 is an operational flow for query content capture in a mobile computing network according to at least some embodiments of the subject disclosure. [Figure 6] FIG. 6 is an operational flow for determining a program operation sequence that reduces potential leakage of personally identifiable information, according to at least some embodiments of the subject disclosure. [Figure 7] FIG. 7 is an operational flow for identifying candidate program operations in accordance with at least some embodiments of the subject disclosure. [Figure 8] FIG. 8 is an operational flow for determining an ontology class for a content query according to at least some embodiments of the subject disclosure. [Figure 9] FIG. 9 is an operational flow for assigning costs according to at least some embodiments of the subject disclosure. [Figure 10] FIG. 10 is an operational flow for applying an objective function according to at least some embodiments of the subject disclosure. [Figure 11] FIG. 11 is a diagram of a hardware configuration for determining a program operation sequence that reduces potential leakage of personally identifiable information, according to at least some embodiments of the subject disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0004] The following disclosure provides a number of different embodiments or examples that implement various features of the provided subject matter. To simplify the disclosure, specific examples of components, values, operations, materials, arrangements, or the like are described below. Of course, these are merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, or the like are contemplated. For example, forming a first feature above or on a second feature in the following description may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which an additional feature may be formed between the first and second features such that the first and second features may not be in direct contact. In addition, the disclosure may repeat reference numbers and / or letters in various examples. This repetition is for the purposes of brevity and clarity, and does not, in itself, dictate a relationship between the various embodiments and / or configurations described.
[0005] Additionally, spatially relative terms such as "lower," "below," "below," "above," "above," and the like may be used herein for ease of description to describe the relationship of one element or feature to another element or feature as shown in the figures. The spatially relative terms are intended to encompass various orientations of the device during use or operation in addition to the orientation depicted in the figures. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptions used herein may be similarly interpreted accordingly.
[0006] As the quality of the information increases, so does the likelihood that the information is sufficient to identify a person, and so does the likelihood of transmitting irrelevant information. For example, a perfect quality image of a crowd may easily identify an individual, but even when facial information has been removed / blurred, it may still be possible to determine identity through a combination of height, clothing, location, time, etc. Depending on the query, only certain information is useful, and by filtering other information, the likelihood of retaining personally identifiable information (PII) or information that can recreate PII is reduced.
[0007] At least some embodiments of the subject disclosure described in this specification take into account the effects of filtering and compression on PII in the overall determination of calculation and location within a stage of the vehicle sensor to the cloud network, thereby balancing the levels of filtering and compression at each stage of the vehicle sensor to the cloud network.
[0008] To obtain useful information from vehicle sensors through the cloud, samples detected by the sensors include both a first class of information that is useful, and a second class of information that is not usable. As sample data passes through stages, the second class information is reduced according to a program operation sequence determined by at least some embodiments. The sequence according to at least some embodiments seeks to globally minimize or eliminate the second class information by the time the sample data is stored in cloud storage. In at least some embodiments, resources are allocated to detect, filter, compress, transmit, etc., information through the stages.
[0009] Different filters, compressors and analyzers are determined to be used at different stages in the sequence according to at least some embodiments, where the stages differ in terms of computational complexity, for example removing color information from an image is relatively simple in terms of computational complexity compared to object detection.
[0010] Computational and transmission costs also vary from stage to stage. For example, adding processing resources to a sensor incurs a cost, but transmitting data from the sensor to the next level does not. In contrast, adding processing resources to the cloud incurs no cost, but transmitting data from the vehicle storage to the cloud does.
[0011] The likelihood of PII leakage also varies by stage. For example, in at least some embodiments, filtering or compression at the sensor is assigned a significantly lower likelihood of PII leakage. In contrast, in at least some embodiments, filtering or compression at the cloud level is assigned a significantly higher likelihood of PII leakage. In at least some embodiments, the assigned likelihood of PII leakage further varies by the level or type of compression or filtering. In at least some embodiments, the assigned likelihood of PII leakage for removing color information from an image remains relatively high compared to object detection, which reduces an image to multiple encoded observational representations.
[0012] In at least some embodiments, the overall computation and location decision within the vehicle sensor's stage to the cloud network involves evaluating a set of computational resources and a set of programmatic operations, where each operation has a flow requirement that represents the amount of data that needs to be processed by the resource, and each resource has a capability that represents the amount of data that each resource can process. In at least some embodiments, each pair of a given resource and a given operation is associated with a cost for that pair. In at least some embodiments, the cost is expressed in terms of the likelihood of PII leakage, either alone or in combination with traditional transmission and computation costs.
[0013] Users, such as software developers, insurance providers, market researchers, and law enforcement officers, can use the on-demand data acquisition (ODDR) system to input data requests into a user interface, such as a graphical user interface (GUI). The software developer is, for example, a software developer developing an application, middleware, or an OS (operating system) that runs on the vehicle. Exemplary applications include automated driving system applications, such as object recognition applications, road recognition applications, sensor fusion applications, localization applications, path planner applications, controller applications, and the like. The data requests are analyzed and stored at the server and then sent by the server to the vehicle. At the server side, the data requests are stored in a storage unit, and a request queue is generated based on the stored requests. The user can see or request updates regarding the status of the data request. For example, while the data request is still in the server before sending to the vehicle, the status can be indicated as "pending". Once the server sends the data request to the vehicle, the status can be updated to "sent". This allows the user to see and track the status of the data request made to the vehicle. Although the description refers to a vehicle for clarity, one skilled in the art will recognize that the description is applicable to fleets of vehicles in addition to single vehicles.
[0014] The user interface for generating the data request includes a form associated with the vehicle that identifies the information, the type of data being requested, a start time, and an end time. In some embodiments, the start time and end time are absolute times, e.g., UNIX time, which is the time elapsed since UNIX epoch time. In some embodiments, the start time and end time are relative to the time the data request is received by the vehicle. In some embodiments, the start time and end time are relative to a trigger event. The trigger event is an event within the vehicle or in the environment surrounding the vehicle for which the user desires data, or receipt of a data request by the vehicle. For example, trigger events arising from the environment surrounding the vehicle include sudden acceleration, sudden braking, capturing an image of the target of the data request, detecting the target of the data request, or other suitable occurrences. The user information for monitoring the status of the data request includes identifying the information of the data request and the status of the data request, e.g., pending or sent.
[0015] In some embodiments, when a data request is received by the vehicle, the data request is processed to make the data request agnostic with respect to the source of the data request. In some embodiments, a data request identification (ID) is assigned to the received data request by the vehicle, for example by a request extractor in the vehicle. In some embodiments, the data request ID is assigned to the data request prior to sending the data request to the vehicle. In some embodiments, the data request is generated by an application running in the vehicle, and the application assigns the data request ID. In other words, the data is processed in a consistent 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 within the vehicle, and the data is processed consistent with data requests received from external devices. This helps to share the same data collection software components between triggered data collection, where the application generates data collection requests to the logger and ODDR-based external data collection requests.
[0016] In some embodiments, when the data request is received by the vehicle, the data request is processed to make the data request agnostic to the sensors and server in the vehicle. In some embodiments, the data request is generated by an application running 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 the sensors or server in the vehicle. This helps to maximize the user's ability to collect data without programming the request for a specific sensor model. The data request is then forwarded to the data collection unit, and the requested data is collected in response to the occurrence of a trigger event. In situations where a trigger event has already occurred, such as a traffic accident, the data request is fulfilled based on data stored in a storage device in the vehicle. The time frame, i.e., start time and end time, of the collected data is determined based on the data request. The collected data is forwarded back to the server.
[0017] The collected data is then stored on the server and a notification is sent to the user regarding the completion of the data request, e.g., the status of the data request is updated to "completed" on the user interface.
[0018] In some examples, a budgeting or payment system is implemented on the server side or vehicle side to charge the user for data requests. The fee can be paid either at the time of sending the request or at the completion of data collection. The fee can be adjusted based on the type and amount of data requested. In some embodiments, if the total fee charged to the user reaches a maximum threshold of the user's budget, the data request from the user is denied.
[0019] The ODDR system allows users to access information collected by the vehicle on an on-demand basis; that is, data is not necessarily collected continuously, but may be collected to meet the specific desires of the user. In some embodiments, the ODDR system helps users, such as software developers, to collect data and update their software design, implementation, and parameter adjustments in an experimental manner based on the collected data, so that the user can continuously improve the software by delivering updates from a server to the vehicle over a network as Over-the-Air (OTA) updates, for example. In some embodiments, the ODDR system helps machine learning developers developing machine learning models for applications to collect data to train the models with data that was not available when the models were originally developed, so that the machine learning developers can update the models to continuously correct weaknesses and problems in the models. In some examples, insurance providers can collect data related to traffic accidents. In some examples, law enforcement can collect information related to crimes or traffic accidents.
[0020] 1 is a schematic diagram of a request acquisition system 100 according to some embodiments. The request acquisition system 100 includes a user interface (UI) 110. The UI 110 is configured to receive a user request for data from a vehicle 140. The request acquisition system 100 further includes a server 120, which is configured to receive the user request from the UI 110, transmit 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 section 130 that communicates with the UI 110 and the vehicle 140. The request acquisition system 100 further includes the accessible console 150 that is configured to communicate data collected from the vehicle 140 to the user.
[0021] The UI 110 is configured to receive input instructions 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 law enforcement personnel. In some embodiments, the user includes a market research company. The UI 110 provides the user with an option to select which type of vehicle and which type of data are requested. In some embodiments, the UI 110 can generate a data request using a form associated with the vehicle that identifies the information, the data type being requested, a start time, and an end time. In some embodiments, the start time and end time are absolute times, e.g., UNIX times that are elapsed times since UNIX epoch time. In some embodiments, the start time and end time are relative times to the time the data request is received by the vehicle. In some embodiments, the start time and end time are relative times to a trigger event. In some embodiments, the UI 110 also provides the user with an option to select a trigger event and a data collection duration for the trigger event. In some embodiments, the UI 110 includes information related to the type of vehicle for which data is requested. In some embodiments, the UI 110 includes a vehicle ID that can uniquely identify a vehicle as a target of the request. For example, the vehicle ID includes a universally unique identifier (UUID) format. In some embodiments, the UI 110 includes a data type that can identify a source of data the user wants to collect. For example, the data type includes a sensor ID for a sensor from which sensor data is collected, and an application ID for an application from which application logs are collected. In some embodiments, the format of the sensor ID and application ID includes a universally unique identifier (UUID) format. In some embodiments, the UI 110 includes a drop-down menu. In some embodiments, the UI 110 includes editable fields that accept information related to the data request. In some embodiments, the UI 110 provides information about which data option types are available to the user.In some embodiments, the available data option types are user dependent, for example, in some embodiments law enforcement may have more data options to choose from than insurance providers.
[0022] In some embodiments, the UI 110 includes a graphical user interface (GUI). In some embodiments, the UI 110 includes a mobile terminal, e.g., a mobile phone, that can connect to the server 120. In some embodiments, the UI 110 includes a web interface, such as a RESTful API. In some embodiments, the UI 110 includes a computer that can connect to the server 120. In some embodiments, the UI 110 can connect to the server 120 wirelessly. In some embodiments, the UI can connect to the server 120 by a wired connection. The UI 110 can also provide updates to the user regarding the status of the data request. In some embodiments, the UI 110 provides a status update regarding the data request in response to further queries by the user. In some embodiments, the UI 110 provides a status update regarding the data request automatically without user interaction upon receiving the update information from the server 120. In some embodiments, the status update causes the UI 110 to trigger an alert to the user. In some embodiments, the alert includes an audio alert or a visual alert.
[0023] In some embodiments, the UI 110 includes a means for accepting payment of a fee from a user. In some embodiments, the UI 110 includes a data entry field that allows a user to enter payment card information. In some embodiments, the UI 110 includes a reader that detects the payment card information, such as a magnetic stripe reader, a bar code reader, a chip reader, or another suitable reader.
[0024] The server 120 includes a communication section 130 configured to communicate with the UI 110 and the vehicle 140. The communication section 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 is configured to receive the data request via a wired connection. In some embodiments, the receiver 131 is further configured to perform initial processing on the received data request. In some embodiments, the received data request includes priority level information. In some embodiments, the receiver 131 is configured to assign a priority level to the data request based on the identity of the user that sent the data request or a fee paid by the user that sent the data request. In some embodiments, the receiver 131 is configured to assign a request identification (ID) number to each received data request. In some embodiments, the server 120 is configured to restrict access to certain sensors in the vehicle 140 based on the identity of the user. For example, in some embodiments, a third party user cannot access sensors related to safety features of the vehicle 140.
[0025] The communication section 130 further includes a memory unit 132 configured to store data requests received by the receiver 131. In some embodiments, the memory unit 132 includes random access memory, solid state memory, or another type of memory. In some embodiments, the memory unit 132 is configured to store the data requests along with a status of the data request. In some embodiments, the status of the data request includes pending (before sending the data request to the vehicle 140), sent (after sending the data request to the vehicle 140), and completed (after receiving the requested data from the vehicle 140). In some embodiments, the memory unit 132 is accessible by a user. In some embodiments, updates to the information in the memory unit 132 trigger a notification to the user that is associated with the information updated in the memory unit 132. In some embodiments, the memory unit 132 stores the data requests along with timestamp data indicating the time the data request was received. In some embodiments, the memory unit 132 stores the data requests in association with a priority level. In some embodiments, the priority level is determined based on the identity of the user. For example, in some embodiments, law enforcement has a higher priority than insurance providers, which in turn have a higher priority than regular users, such as software developers. In some embodiments, the priority level 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 level of the user's request to obtain the requested data sooner. In some embodiments, the priority level of the data request increases as the amount of time between the initial storage of the data request and the transmission of the data request to the vehicle increases.
[0026] The communication section 130 further includes a transmitter 133. The transmitter 133 is configured to transmit a status of the data request to the UI 110. In some embodiments, the status of the data request is transmitted wirelessly to the UI 110. In some embodiments, the status of the data request is transmitted 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 transmit a request ID upon initially saving the data request to the memory unit 132. In some embodiments, the status of the data request includes a priority level of the data request. In some embodiments, the status of the data request includes an estimated time until the data request is transmitted to the vehicle 140.
[0027] The communications section 130 further includes a query queue 134 configured to store the data requests in a priority order for transmission to the vehicle 140. In some embodiments, the query queue 134 is incorporated within 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 retrieve the data requests from the memory unit 132 based on the priority level and the time stamp information. In some embodiments, the query queue 134 is configured to sort the data requests based on the priority level and, for data requests having the same priority level, sort the data requests by time since they were first stored in the memory unit 132.
[0028] The communication section 130 further includes a transmitter 135 configured to transmit the data requests from the query queue 134 to the vehicle 140. The transmitter 135 is configured to transmit the data requests to the vehicle 140 based on the order of the data requests in the query queue 134. In some embodiments, the data requests are transmitted to the vehicle 140 wirelessly. In some embodiments, the data requests are transmitted to the vehicle 140 by a wired connection. The data requests transmitted to the vehicle 140 include trigger event information, data duration information relating to a period before and after the trigger event during which data should be collected, and sensor information indicating that certain types of sensors of the vehicle 140 should collect data. In some embodiments, the data requests transmitted to the vehicle 140 include priority level information. In some embodiments, the transmitter 135 is configured to transmit the data requests to the vehicle 140 when the vehicle 140 transmits a request to the server 120 to transmit the data requests to the vehicle 140. In some embodiments, the transmitter 135 is configured to transmit a data request to the vehicle 140 any time the communication section 130 has sufficient connectivity to the vehicle 140 to transmit the data request, unless the communication section 130 has received information indicating that the vehicle 140 is unable to accept a new data request. In some embodiments, the transmitter 135 is configured to periodically transmit a data request to the vehicle 140, as long as the vehicle 140 is able to receive a new data request and the transmitter 135 has sufficient connectivity to the vehicle 140. In some embodiments, the transmitter 135 is configured to transmit data requests to the vehicle 140 in batches, for example, 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 an acknowledgement of receipt of the data request from the vehicle 140. In response to not receiving an acknowledgement of receipt from the vehicle for a predetermined period of time, the transmitter 135 is configured to retransmit the data request. In some embodiments, the status of the data request stored in memory unit 132 is updated to indicate transmission to vehicle 140 in response to communications section 130 receiving confirmation of receipt of the data request from vehicle 140.
[0029] The communications section 130 further includes a receiver 136 configured to receive notification of an occurrence of a trigger event from the vehicle 140. In some embodiments, the occurrence of the trigger event is the receipt of a data request. In some embodiments, the receiver 136 is configured to receive notification of the trigger event wirelessly. In some embodiments, the receiver 136 is configured to receive notification of the trigger event via a wired connection. In some embodiments, the receiver 136 is configured to transmit a signal to the memory unit 132 updating the status of the data request associated with the notified trigger event.
[0030] The communication section 130 further includes a receiver 137 configured to receive data from the vehicle 140 in response to a data request transmitted by the transmitter 135. In some embodiments, the data is divided by the vehicle 140 into data packets that 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 transmit a signal to the memory unit 132 updating the status of the data request related to receipt of the requested data. In some embodiments, data in response to a single data request is received from the vehicle 140 in a single packet. In some embodiments, data in response to a single data request is received from the vehicle 140 in multiple packets. The receiver 137 forwards the received data to the pre-processor 122.
[0031] The server 120 further includes a pre-processor 122 configured to receive data from the receiver 137 and perform pre-processing on the data to generate collection data. In some embodiments, the pre-processing includes modifying data from the multiple packets to compile the data in response to a data request. In some embodiments, the pre-processing includes deserializing the data to compile structured data from a received byte array. In some embodiments, the pre-processing includes decompressing the data if it was compressed by the vehicle 140 before transmission. In some embodiments, the pre-processing includes error correction with an error correcting code (ECC), such as a Reed-Solomon (RS) code, a Bose-Chaudhuri-Bockenhjem (BCH) code, a low-density parity check (LDPC) code, and the like. In some embodiments, the pre-processing includes smoothing the data by removing outliers to reduce the risk of reporting erroneous data to a user. In some embodiments, the pre-processing includes associating data request ID information, priority level information, or other suitable information with the received data from the receiver 137. In some embodiments, the data is pre-processed so that the information is presented to the user in a format that is easy to understand and does not rely on specialized knowledge or equipment to identify the information.
[0032] The server 120 further includes a data storage 126 configured to store the collected data generated by the data pre-processor 122. In some embodiments, the data storage 126 is incorporated into 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 another suitable memory. In some embodiments, the data storage 126 is accessible by a user, for example, using the UI 110 or the accessible console 150. In some embodiments, the data storage 126 is configured to notify a user in response to the availability of data related to a data request. In some embodiments, the notification includes an alert to the user. In some embodiments, the alert includes an audio alert or a visual alert. 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 is accessible by a user using the accessible console 150 without the user submitting a data request. In some embodiments, the data in the data storage 126 is searchable by a user via an accessible console 150. In some embodiments, the collected data is visualized in the console 150.
[0033] The request acquisition system 100 further includes a vehicle 140. The vehicle 140 includes sensors for detecting both the interior conditions of the vehicle 140 and the external environment around the vehicle 140. In some embodiments, the sensors include a camera, a light ranging (LiDAR) sensor, a radio ranging (RADAR) sensor, a sound navigation and ranging (SONAR) sensor, an accelerometer, a steering wheel position, a speedometer, or another suitable sensor. The vehicle 140 can receive the data request either wirelessly or via a wired connection.
[0034] In some embodiments, upon receiving a data request, the vehicle 140 is configured to assign a data request ID to the received data request, and the data request is processed to be agnostic to the system or program that generated the data request. In another embodiment, the communication section 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 section 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 to determine the type of information that sensors available in the vehicle 140 can satisfy the data request. In at least some embodiments, the vehicle 140 includes a mobile computing network that is a network of processors, controllers, or combinations thereof, for example, a controller area network (CAN). In at least some embodiments, each processor is an electronic control unit (ECU). The vehicle 140 further includes a memory that stores data from the sensors. In some embodiments, the processor accesses the memory to determine whether any stored data can satisfy the data request. The vehicle 140 can further transmit, either wirelessly or via a wired connection, data that it believes will satisfy the data request to the server 120. In some embodiments, the processor is configured to attempt to satisfy the received data requests in a priority order based on the received priority level of the data request. In some embodiments, the vehicle 140 is configured to transmit data to the server in a priority order based on the received priority level of the data request.
[0035] 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) in 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, capturing sensor data including a particular object or particular scene predefined in the software application, a "crash" of the software application, an anomaly detected in the software application, or another suitable detection occurrence. In some embodiments, the vehicle 140 is configured to generate a notification to a maintainer of the software application, such as a user, in response to detecting a trigger event associated with the software application. In some embodiments, the notification is sent directly to the user, for example, through the UI 110, either wirelessly or via a wired connection. In some embodiments, the notification is sent to the user through the server 120, either wirelessly or via a wired connection. In some embodiments, the notification includes an audio notification or a visual notification. In some embodiments, the notification is configured to cause the UI 110 to automatically display the notification without user interaction.
[0036] The request acquisition system 100 further includes an accessible console 150. The accessible console 150 allows a user to access the collected data stored in the data storage 126. In some embodiments, the accessible console 150 is incorporated into the UI 110. In some embodiments, the accessible console 150 is separate from the UI 110. In some embodiments, the accessible console 150 includes a separate server that is separate from the server 120. In some embodiments, the accessible console 150 automatically receives the collected data associated with a data request from a user when the data storage 126 receives the collected data. In some embodiments, the accessible console 150 allows a 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 submitting a data request.
[0037] Use of the request acquisition system 100 allows a user to obtain information from one or more vehicles 140 in a format that is easy to understand without relying on specialized equipment to request or read the received data. The ability to prioritize data requests in the request acquisition system 100 helps ensure that data is available to law enforcement or other users while also allowing users to pay a fee to obtain data more quickly. This flexibility helps improve the usability of the request acquisition system 100 to a wide range of users.
[0038] FIG. 2 is a diagram of graphical user interfaces (GUIs) 200 and 250 for a request acquisition system, according to some embodiments. In some embodiments, the GUI 200 is usable as the UI 110 in the request acquisition system 100 (FIG. 1). In some embodiments, the GUI 200 is usable to generate a data request to be received by the receiver 131 (FIG. 1). The GUI 200 includes a number of information types 210 that identify the types of information the GUI 200 can accept from a user. The GUI 200 further includes a number of fields 220 configured to receive information related to the corresponding information types 210 of the GUI 200. The GUI 200 further includes a send button 230 that is configured to send a data request to a server, for example, the server 120 (FIG. 1), based on the information in the fields 220. Those skilled in the art will recognize that the names and number of the number of information types 210 are merely exemplary, and that different numbers and types of information are within the scope of the present disclosure.
[0039] In some embodiments, the fields 220 include fields in which the user enters a vehicle ID, a data type, a start time, and an end time. In some embodiments, the fields 220 further include a field in which the user enters a priority level of the data request. In some embodiments, the GUI 200 further includes information related to how the user can increase the priority level of the data request, such as information indicating a fee associated with each available priority level. In some embodiments, the GUI 200 includes a field 220 that allows the user to enter login information to establish the identity of the user. In some embodiments, the GUI 200 is configured to display the priority level of the user after receipt of the login information. In some embodiments, the GUI 200 further includes a field 220 that accepts payment information related to a fee for establishing a priority level of the data request.
[0040] The GUI 250 is configured to be displayed to a user after the user selects the send button 230 on the GUI 200. In some embodiments, the GUI 250 is usable as the GUI 110 in the ODDR system 100 (FIG. 1). The GUI 250 includes information indicating that a data request has been received. The GUI 250 includes a query ID label 260 and a query ID field 270. The information entered in the query ID field 270 is received from a server, e.g., the server 120 (FIG. 1), after the server receives and stores the data request. In some embodiments, the GUI 250 includes information of a vehicle ID. In some embodiments, the GUI 250 includes information related to a priority level of the data request. In some embodiments, the GUI 250 includes information related to the status of the data request, e.g., pending, sent, completed, etc. In some embodiments, the GUI 250 includes information related to an estimated time until the data request is sent to the vehicle, e.g., the vehicle 140 (FIG. 1). In at least some embodiments, the GUI 250 includes information related to an estimated time until the requested data is received. In at least some embodiments, the GUI 250 includes information related to estimated energy consumption for receiving the requested data. In some embodiments, the GUI 250 is displayed automatically in response to receiving query ID information from a server. In some embodiments, the GUI 250 is displayed in response to a user submitting a request for an update to an uploaded data request.
[0041] 3 is a diagram of a data structure 300 for a get request command 310, according to some embodiments. In some embodiments, the get request command 310 is sent from the server 120 to the vehicle 140 (FIG. 1). The get request command 310 includes information related to the type of data sought by a data request for the vehicle, e.g., the vehicle 140 (FIG. 1).
[0042] The get request command 310 includes a transfer priority parameter 311 that indicates a priority level of the data request. The get request command 310 further includes a log level parameter 312 that indicates the type of data, if any, to be obtained from other applications in the vehicle. For example, in some embodiments, the get request command 310 obtains data from an object recognition application. The log level parameter 312 determines the type of data to obtain from other applications, such as an error level or a critical level. In some embodiments, the log level parameter 312 is omitted from the get request command 310 or the log level parameter 312 is nulled. The get request command 310 further includes a collection time range parameter 313 that indicates a period of time before and / or after a trigger event for collecting data. The time range corresponds to a start time and an end time entered by the user into the GUI 200 (FIG. 2). The get request command 310 further includes a uniform resource locator (URL) endpoint parameter 314 that indicates a destination for the data to be collected in response to the data request. The get request command 310 further includes a frequency parameter 315 indicating how often, if any, data should be sampled from the time range 313. For example, if the event time is t=100 seconds, the time range has a start time=-1 second and an end time=2 seconds, and the frequency is 10 Hz (100 millisecond cycles), then data at t=99.0 seconds, 99.1 seconds, 99.2 seconds, ..., 101.9 seconds, 102.0 seconds will be collected by the get request command. The get request command 310 further 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 universally unique identifier (UUID)) is pre-assigned to every sensor and application, and the unique ID from which the user wants to collect data is specified in the log ID parameter 316. The get request command 310 further includes a requester ID parameter 317 indicating the identity of the user making the data request. The get request command 310 further includes an event ID parameter 318 that indicates the triggering event associated with the data request.The get request command 310 further includes a budget ID parameter 319 that indicates the amount of resources of the vehicle, e.g., vehicle 140 (FIG. 1), that should be allocated to fulfill the data request. Those skilled in the art will appreciate that additional parameters are possible in the get request command 310. For example, in some embodiments, the get request command 310 includes a vehicle location parameter that indicates a geographic area in which a trigger event can occur. Those skilled in the art will also appreciate that the get request command 310 does not always include all of the parameters of FIG. 3. For example, in some embodiments, the budget ID parameter 319 is omitted.
[0043] 4 is a block diagram of a request acquisition system 400 according to some embodiments. In some embodiments, the request acquisition system 400 is part of the request acquisition system 100 (FIG. 1). In some embodiments, the request acquisition system 400 is usable together with the request acquisition system 100 (FIG. 1). In some embodiments, the request acquisition system 400 is separate from the request acquisition system 100 (FIG. 1).
[0044] The request acquisition system 400 includes a detection vehicle system 410 configured to capture information about the vehicle or the vehicle's surroundings. The detection vehicle system 410 captures information about the vehicle and surroundings and transmits the information to a server. The request acquisition system 400 further includes a server 440 configured to receive the information, encode the information, and stream the information to a user terminal 460.
[0045] The detection vehicle system 410 includes an electronic control unit (ECU) 420 configured to receive data from sensors 414, a global positioning system (GPS) 416, and a map 418. The ECU 420 includes a situation detector 422, a data specifier 432, a log collector 434, and a log transmitter 436. The situation detector 422 includes a vehicle control monitor 424, an object detector 426, and a scene detector 428.
[0046] In some embodiments, the ECU 420 further includes a localization unit configured to receive data from the GPS 416 and the map 418 to determine the vehicle's position relative to detected and / or known object and / or road positions, as well as the vehicle's attitude and state. Attitude is the vehicle's orientation relative to a reference point, such as a roadway. In some embodiments, the vehicle's position also refers to the vehicle's position vector. The vehicle's attitude and state refers to the vehicle's speed and heading. In some embodiments, the vehicle's attitude and state also refers to the vehicle's velocity vector, acceleration vector, and jerk vector. In some embodiments, the position vector, velocity vector, acceleration vector, and jerk vector include an angular vector. In some embodiments, the vehicle's state also refers to whether the vehicle's engine or motor is running.
[0047] The sensor 414 is configured to capture information, e.g., images, of the environment around the vehicle. In some embodiments, the sensor 414 includes a visible light camera, an IR camera. In some embodiments, the sensor 414 is replaced by or further accompanied by a Light Detection and Ranging (LiDAR) sensor, a Radio Detection and Ranging (RADAR) sensor, a Sound Navigation and Ranging (SONAR) sensor, or another suitable sensor. In some embodiments, the sensor 414 includes an additional camera located elsewhere in the vehicle. For example, in some embodiments, the additional camera is located on the side of the vehicle to detect a larger portion of the environment to the left and right of the vehicle being viewed. Because vehicle occupants can look out of the vehicle's side windows, using the additional camera to detect a larger portion 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 located on the rear of the vehicle to detect a larger portion of the environment behind the vehicle. This information helps to capture information about 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.
[0048] GPS 416 is configured to determine the location of the vehicle. Knowing the location of the viewing vehicle helps to associate objects or scenes with locations determined on map 418.
[0049] The map 418 includes information related to the roadway and known objects along the roadway. In some embodiments, the map 418 can be used in conjunction with the GPS 416 to determine the location and heading of the vehicle. In some embodiments, the map 418 is received from an external device, such as the server 440. In some embodiments, the map 418 is periodically updated based on information from the sensors 414 and / or the GPS 416. In some embodiments, the map 418 is periodically updated based on information received from an external device. In some embodiments, the map 418 is generated from sensor data by a simultaneous localization and mapping (SLAM) algorithm. The inclusion of the map 418 helps determine if an object is a known object. The inclusion of the map 418 with known objects helps increase the accuracy of new object detection.
[0050] The condition detector 422 is configured to generate information related to the performance of the vehicle and the performance of systems within the vehicle. The condition detector 422 may collect information from components within the vehicle, such as the sensors 414, the braking system, the acceleration system, and other suitable components. Using this information, the condition detector 422 may determine the performance of the vehicle. In some embodiments, the condition detector 422 is further configured to monitor the performance of software and networking operations within the vehicle. For example, in some embodiments, the condition detector 422 is configured to receive information related to 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 related to the processing power of a processor within the vehicle.
[0051] Vehicle control monitor 424 is configured to receive sensor data and control logs related to the current operation of the vehicle. In some embodiments, the sensor data includes information related to the vehicle's speed, acceleration, jerk, braking, steering, pitch, roll, yaw, flashing hazard lights, honking, or other suitable information. Vehicle control monitor 424 is configured to determine whether any of the received sensor data indicates that a criteria for satisfying a request is met, e.g., whether a trigger event has been detected.
[0052] The object detector 426 is configured to receive sensor data from the sensor 414 and determine whether any anomalous objects are located on the roadway. In some embodiments, the object detector 426 is further configured to determine whether any objects are present along or adjacent to the roadway. In some embodiments, the sensor data from the sensor 414 includes images, and the object detector 426 is configured to perform image recognition on the received images, for example using a trained neural network, to identify anomalous objects. In some embodiments, the object detector 426 is configured to compare any identified objects with information from the GPS 416 and the map 418 to help determine the type of identified object. In some embodiments, the object detector 426 is configured to identify objects, such as tires, car parts, animals, holes, traffic control boards, emergency vehicles, vehicles with active hazard lights, or other suitable objects as objects.
[0053] The scene detector 428 is configured to receive sensor data from the sensor 414 and determine whether any scenes that meet the conditions to satisfy the request are located in the environment surrounding the vehicle. In some embodiments, the scene detector 428 is configured to determine that a vehicle accident is occurring in response to detecting two or more vehicles in contact with each other or a vehicle being surrounded by multiple falling objects. In some embodiments, the scene detector 428 is configured to determine that construction is occurring based on detecting multiple construction vehicles in close proximity. In some embodiments, the scene detector 428 is configured to determine that a vehicle is parked on the shoulder based on determining that a vehicle is located adjacent to a roadway and is not moving or is moving significantly slower than other vehicles. In some embodiments, the scene detector 428 is configured to determine the content of the scene surrounding the vehicle using image recognition, such as through a trained neural network.
[0054] In some embodiments, each of the object detector 426 and the scene detector 428 is active during the entire operation of the vehicle, e.g., when the vehicle engine or motor is running. In some embodiments, at least one of the object detector 426 or the scene detector 428 is activated in response to the vehicle control monitor 424 determining that a particular behavior, e.g., a trigger event, has been detected.
[0055] The data specifier 432 is configured to receive a determination that fulfillment of the request has occurred or that a trigger event has been detected. The data specifier 432 is configured to analyze the received information and determine which sensor data from the sensors 414 should be collected based on the received data. For example, in some embodiments where an abnormal steering behavior by the driver is detected, the data specifier 432 is configured to determine that image data from the front camera of the sensor 414 should be captured. Furthermore, the data specifier 432 is configured to determine a period during which data from the determined sensors should be collected based on a time of the detection event. In some embodiments, the data specifier 432 is configured to determine the sensors 414 from which to collect data based on instructions in the request received from the user.
[0056] In some embodiments, the data designator 432 is configured to determine a region of the received sensor data that is associated with the detected situation. In some embodiments, the region of the received sensor data is identified based on object recognition performed on the sensor data, for example by the object detector 426 or the scene detector 428. In some embodiments, the data designator 432 is configured to crop the received image from the sensor data or remove extraneous data from the sensor data if the sensor data is not an image, to reduce the amount of information in the abnormal situation log. In some embodiments, the data designator 432 is configured to remove personal information, such as license plates, human faces, etc., from the sensor data.
[0057] The log collector 434 is configured to receive data from the data specifier 432. In some embodiments, the log collector 434 is configured to receive data directly from the sensor 414, the GPS 416, or the situation detector 422 based on information provided by the data specifier 432. The log collector 434 is also configured to determine what information is useful in 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 specifier 432, timestamp information relating to the time the object or scene was detected, or other suitable information.
[0058] The log collector 434 generates log data based on the received interrelated data, e.g., the cropped image and location data. The log collector 434 also associates timestamp information with the log data to aid in synchronization of collected data and for queue prioritization within the server 440. In some embodiments, the log collector 434 generates the log data to further include world coordinates associated with the cropped image. In some embodiments, the log collector 434 generates the log data to further include a map location associated with the cropped image. In some embodiments, the log collector 434 includes additional information to aid in increasing the accuracy of determining an object or scene.
[0059] Although the above description relates to generating log data based on images from the sensor 414, one skilled in the art will appreciate that the log collector 434 is not limited to only generating log data based on images. In some embodiments, the log collector 434 is configured to generate log data based on information from other sensors mounted on the vehicle, such as a RADAR, LiDAR, or other suitable sensor. In some embodiments in which the occupant wears smart glasses, the log collector 434 is further configured to generate log data based on information received from the smart glasses.
[0060] The log transmitter 436 is configured to receive the log data from the log collector 434 and transmit the log data to the server 440. In some embodiments, the log transmitter 436 is configured to transmit the log data wirelessly. In some embodiments, the log transmitter 436 is configured to transmit the log data via a wired connection. In some embodiments, the log transmitter 436 is configured to transmit the log data directly to the user terminal 460. In some embodiments, the log transmitter 436 is configured to transmit the log data to a mobile device accessible by a user, which then transmits the log data to the server 440. In some embodiments, the log transmitter 436 is configured to transmit the log data to the mobile device using Bluetooth or another suitable wireless technology. In some embodiments, the ECU 420 is configured to determine whether a data transfer rate from the mobile device to the server 440 is higher than a transfer rate from the log transmitter 436 to the server 440. In response to determining that the data transfer rate from the mobile device to the server 440 is higher, the log transmitter 436 is configured to transmit to the mobile device the log data to be transmitted to the server 440. In response to determining that the data transfer rate from the mobile device to the server 440 is not higher, the log transmitter 436 is configured to transmit the log data from the vehicle system 410 directly to the server 440 without transferring the log data to the mobile device.
[0061] In some embodiments, the detection vehicle system 410 further includes a memory configured to store sensor data from a sensor mounted on the vehicle. In some embodiments, the memory is further configured to store information associated with a previously detected object or scene. In some embodiments, in response to detecting an object or scene that matches a previous object or scene, the data specifier 432 is configured to provide a result based on the matching object or scene. In some embodiments, the detection vehicle system 410 is further configured to determine whether the detection vehicle has received information from the server 440 related to an object or scene that matches the object or scene determined from the situation detector 422. In some embodiments, in response to detecting that the detection vehicle has already received information related to the determined object or scene, the detection vehicle system 410 is configured to prevent sending log data to the server 440. Avoiding sending redundant information to the server 440 helps reduce data sent to the server 440 and helps minimize power consumption by the detection vehicle system 410. In some embodiments, the storage of previous requests is referred to as caching. Those skilled in the art will understand caching as using hardware or software to store data so that future requests for that data can be satisfied more quickly.
[0062] The server 440 includes a log data receiver 442 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. The server 440 further includes a log encoder 444 configured to encode the log data. The server 440 further includes a log forwarder 446 configured to transmit the encoded log data to the user terminal 460. The server 440 further includes a request / rule receiver 448 configured to receive requests or rules from the user terminal 460.
[0063] The log data receiver 442 is configured to receive the log data from the log transmitter 436. In some embodiments, the log data receiver 442 is configured to receive the log data from a mobile device. In some embodiments, the log data receiver 442 is configured to receive the log data wirelessly. In some embodiments, the log data receiver 442 is configured to receive the log data over a wired connection. In some embodiments, the log data receiver 442 is configured to add a timestamp to the log data for the time the log data was received.
[0064] The log encoder 444 is configured to encode the received log data according to a predefined encoding protocol. Encoding the log data according to a predefined encoding protocol helps 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 on the log data. In some embodiments, the log encoder 444 is configured to perform encryption on the log data. In some embodiments, the log encoder 444 is further configured to perform super-resolution to allow a user to better appreciate the data. Those skilled in the art will appreciate 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 reduce false positives or false negatives.
[0065] In some embodiments, server 440 further includes a database that stores the received log data. In some embodiments, the log data is stored in the database before and / or after encoding by log encoder 444. In some embodiments, the log data is stored in the database in priority queues. In some embodiments, the priority of the priority queues is determined based on the time an object or scene, e.g., a trigger event, was detected, the time the log data was received by log data receiver 442, the type of object or scene, the identity of the driver of the detected vehicle, or other suitable priority criteria.
[0066] The log transporter 446 is configured to receive the encoded log data from the log encoder 444. The log transporter 446 is configured to transmit the encoded log data to a user terminal 460. In some embodiments, the log transporter 446 is configured to transmit the encoded log data to a mobile device accessible by a user. In some embodiments, the log transporter 446 is configured to transmit the encoded log data wirelessly. In some embodiments, the log transporter 446 is configured to transmit the encoded log data over a wired connection. In some embodiments, the log transporter 446 is configured to transmit encoding protocol information along with the encoded log data. The transmission of the encoding protocol information for the encoded log data helps the mobile device or user terminal 460 to accurately decode the encoded log data for use by the user terminal 460.
[0067] The request / rules receiver 448 is configured to receive new or updated rules or requests for data from a user. In some embodiments, the request / rules receiver 448 is configured to receive new or updated rules or requests wirelessly. In some embodiments, the request / rules receiver 448 is configured to receive new or updated rules or requests over a wired connection. In some embodiments, the request / rules receiver 448 is by the UI 110 (FIG. 1).
[0068] In some embodiments, server 440 is configured to receive formation locations from a plurality of vehicles. In some embodiments, server 440 is configured to receive navigation plans from a plurality of vehicles. In some embodiments, log forwarder 446 is configured to limit transmission of encoded log data to only those vehicles that are within a predetermined distance of a detected trigger event.
[0069] In some embodiments, server 440 is configured to only transmit log data associated with a newly detected trigger event, i.e., if a trigger event has already been reported by server 440, the trigger event is not reported again. Limiting repeated reporting of a trigger event helps reduce redundant data received by the user terminal with respect to server 440.
[0070] User terminal 460 is a user terminal accessible by a user associated with a satisfying request. In some embodiments, user terminal 460 includes a GUI. In some embodiments, user terminal 460 is configured to automatically generate an alert in response to receiving data from server 440. In some embodiments, the alert includes an audio alert or a visual alert.
[0071] Those skilled in the art will appreciate that modifications to the request acquisition system 400 are within the scope of this disclosure. For example, in some embodiments, the detection vehicle system 410 can transmit log data directly to the user terminal 460 over a network, such as a wireless network. In some embodiments, a mobile device of an occupant in the detection vehicle can transmit log data directly to the user terminal 460 over a wireless network, etc.
[0072] By automatically identifying and streaming information related to satisfying rules or requirements detected within the vehicle or in the environment surrounding the vehicle, a user can improve the performance of applications or software executed using the vehicle's processing systems, such as ECU 420. In some embodiments, a user can object to information related to events, such as accidents.
[0073] 5 is an operational flow for ingesting query content in a mobile computing network, in accordance with at least some embodiments of the subject disclosure. The operational flow provides a method for ingesting query content in a mobile computing network. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by a controller of the server, such as controller 1102 shown in FIG.
[0074] At S550, the controller receives the content query. In at least some embodiments, the controller receives the content query from an accessible console, such as the accessible console 150 shown in FIG. 1. In at least some embodiments, the controller receives the content query through a user interface 200 shown in FIG. 2. In at least some embodiments, the content query is a request for information identifiable from data that may be collected using sensors mounted on one or more vehicles. In at least some embodiments, the content query relates to one or more classes of an ontology.
[0075] At S552, the controller creates a program operation sequence. In at least some embodiments, the controller creates a program operation sequence that includes capturing a data sample, the data sample including first class information and second class information, and reducing the second class information of the data sample. In at least some embodiments, the controller creates various program operation sequences. In at least some embodiments, the various program operation sequences target the same content but differ in program operations and / or combined computational resources. In at least some embodiments, the various program operation sequences target different content for a single query. In at least some embodiments, the controller performs the operation flow of FIG. 6 described below.
[0076] At S554, the controller transmits the sequence to one or more vehicles. In at least some embodiments, the controller transmits the program operation sequence to each of the one or more vehicles. In at least some embodiments, the controller transmits different program operation sequences to multiple vehicles.
[0077] At S556, the controller receives the resulting content. In at least some embodiments, the controller receives the content from each of the multiple vehicles over different connections at different times. 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 different formats.
[0078] At S558, the controller transmits the resulting content. In at least some embodiments, the controller transmits the content to the accessible console or other terminal from which the content query was received. In at least some embodiments, the controller transmits the content to storage for later retrieval by the accessible console or other terminal.
[0079] 6 is an operational flow for determining a program operation sequence that reduces potential leakage of personally identifiable information, according to at least some embodiments of the subject disclosure. The operational flow provides a method for determining a program operation sequence that reduces potential leakage of personally identifiable information. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by a controller of the server that includes a section that performs certain operations, such as controller 1102 shown in FIG.
[0080] At S660, the identification section of the controller identifies candidate program operations. In at least some embodiments, the identification section identifies a plurality of candidate program operations, including capturing a data sample, the data sample including first class information and second class information, and reducing the second class information of the data sample. In at least some embodiments, the identification section identifies a required program operation and an optional program operation. In at least some embodiments, the plurality of candidate program operations includes at least one detection operation, at least one compression operation, and at least one filtering operation. In at least some embodiments, the identification section performs the identification in response to receiving a content query from a client terminal. In at least some embodiments, the identification section performs the operation flow of FIG. 7 described below.
[0081] At S664, the allocation section assigns costs. In at least some embodiments, the allocation section assigns costs to each valid combination of candidate program operations among the plurality of candidate program operations and computational resources among the plurality of computational resources. In at least some embodiments, the allocation section assigns a leakage cost representing a potential leakage of personally identifiable information to each valid combination. In at least some embodiments, the allocation section assigns a monetary cost representing at least one of a computational cost and a transmission cost to each valid combination. In at least some embodiments, the allocation section assigns a leakage cost representing a potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computational resources among the plurality of computational resources. In at least some embodiments, the allocation section performs the operational flow of FIG. 9 described below.
[0082] The possibility of PII leakage as a cost is calculated in various ways in various embodiments. In at least some embodiments, the possibility of PII leakage is calculated in terms of monetary cost. In at least some embodiments, the calculation of the possibility of PII leakage in terms of monetary cost has lower precision and accuracy, but is combinable with traditional transmission and computation costs. In at least some embodiments, the possibility of PII leakage is expressed in non-monetary terms. In at least some embodiments, expressing the possibility of PII leakage in non-monetary terms has higher precision and accuracy, but is not compatible with traditional transmission and computation costs. In at least some embodiments where the cost of the possibility of PII leakage is expressed in non-monetary terms, the cost is weighted relative to traditional computation and transmission costs to take into account the appropriate proportions. In other words, if a higher weight is given to the possibility of PII leakage, the solution may favor reducing the possibility of PII leakage over monetary costs. In contrast, if a higher weight is given to computation and transmission costs, the solution may favor reducing the monetary costs over the possibility of PII leakage.
[0083] At S668, the application section applies the objective function. In at least some embodiments, the application section applies the objective function to the valid combinations and the assigned costs to determine a sequence of program operations. In at least some embodiments, the application section applies the objective function to the valid combinations and the assigned leakage costs to determine a sequence of program operations, where each program operation of the sequence is performed by the selected one or more computational resources such that the total leakage cost is less than a threshold leakage cost and the amount of first class information is greater than a data threshold. In at least some embodiments, the application section determines a sequence of program operations, where the sequence is such that the total monetary cost is less than a threshold monetary cost. In at least some embodiments, the application section performs the operational flow of FIG. 10 described below.
[0084] In at least some embodiments, the objective function considers a set of constraints, maximizing flow and minimizing cost. In at least some embodiments, the program operations have order constraints and the computational resources also have order constraints. Thus, the overall decision according to at least some embodiments is a combinatorial optimization of a bipartite graph, where the bipartite graph includes a set of computational resources and a set of program operations. In at least some embodiments, the solution includes matching nodes to minimize cost and maximize the amount of first class information that reaches the cloud server.
[0085] 7 is an operational flow for identifying candidate program operations, according to at least some embodiments of the subject disclosure. The operational flow provides a method for identifying candidate program operations. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by an identification section, such as identification section 1120 shown in FIG.
[0086] At S770, the identification section or a subsection thereof determines an ontology class of the content query. In at least some embodiments, the identification section reads one or more ontology classes indicated by the content query. In at least some embodiments, the identification section applies a model to the content query, the model configured to output an ontology class in response to the content query input. In at least some embodiments, the identification section performs the operational flow of FIG. 8 described below.
[0087] At S773, the identification section or a subsection thereof identifies a candidate detection operation. In at least some embodiments, the identification section identifies a program operation configured to instruct one or more sensors to capture raw data that includes at least a portion of the query content. In at least some embodiments, the identification section identifies a program operation configured to instruct one or more sensors to capture raw data that collectively includes the query content. In at least some embodiments, the identification section identifies a program operation configured to instruct one or more sensors to capture raw data from which at least a portion of the query content may be derived.
[0088] At S776, the identification section or a subsection thereof identifies candidate compression operations. In at least some embodiments, the identification section identifies program operations configured to compress raw data, filtered data, or previously compressed data. In at least some embodiments, the identification section identifies program operations configured to reduce the amount of capacity required to store the data while preventing or minimizing data loss.
[0089] At S779, the identification section or a subsection thereof identifies candidate filtering operations. In at least some embodiments, the identification section identifies program operations configured to filter raw data, compressed data, or previously filtered data. In at least some embodiments, the identification section identifies program operations configured to reduce the amount of space required to store the data by removing data portions that are not related to the query content.
[0090] 8 is an operational flow for determining an ontology class of a content query according to at least some embodiments of the subject disclosure. The operational flow provides a method for determining an ontology class of a content query. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by a controller of the server, such as controller 1102 shown in FIG.
[0091] At S880, the controller determines whether a new ontology class exists. In at least some embodiments, the controller determines whether a new ontology class exists in response to receiving one or more content queries. In at least some embodiments, the controller determines whether a new ontology class exists in response to receiving an instruction to implement the new ontology class. If the controller determines that a new ontology class exists, the operational flow proceeds to ontology update at S884. If the controller determines that a new ontology class does not exist, the operational flow ends.
[0092] At 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.
[0093] At S888, a generation section of the controller, e.g., generation section 1126 shown in FIG. 11, generates one or more program operations. In at least some embodiments, the generation section generates one or more program operations associated with the new ontology input. In at least some embodiments, the generation section generates the program operations in response to an ontology update. In at least some embodiments, the generation section modifies one or more existing program operations to generate new program operations. In at least some embodiments, the generation section generates the program operations to detect, compress, or filter data associated with the new ontology class.
[0094] For a given ontology of classes, in at least some embodiments, program operations are generated to obtain useful information that is applicable for each class. In at least some embodiments, the ontology of classes is periodically updated to add new classes and in some cases remove unused classes. As the ontology changes, the program operations required to gather information about the classes of the ontology also change. Thus, at least some embodiments perform updates at regular intervals or in response to certain events, for example, every time the ontology is updated. In at least some embodiments, the controller updates the ontology at regular intervals or in response to a certain amount of content queries.
[0095] 9 is an operational flow for allocating costs according to at least some embodiments of the subject disclosure. The operational flow provides a method for allocating costs. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by an allocation section, such as allocation section 1122 shown in FIG.
[0096] At S990, the allocation section or a subsection thereof selects a candidate program operation. In at least some embodiments, the allocation section selects a candidate program operation from among the plurality of candidate program operations identified by the identification section. In at least some embodiments, as the iterations of operation S990 proceed, the allocation section selects each candidate program operation once.
[0097] At S992, the allocation section or a subsection thereof pairs with computational resources. In at least some embodiments, the allocation section pairs the candidate program operations selected at S990 with computational resources. In at least some embodiments, the allocation section pairs the candidate program operations with computational resources among a plurality of computational resources available in a particular vehicle, along with any associated edge and cloud computational resources. In at least some embodiments, the plurality of computational resources includes 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 plurality of computational resources further includes at least one vehicle storage and at least one edge computational node. In at least some embodiments, the particular vehicle is a make and model. In at least some embodiments, the computational resources include computational resources in each of a plurality of vehicles, such as a plurality of vehicle makes and models. In at least some embodiments, as the iterations of operation S992 proceed, the allocation section pairs each candidate program operation with each computational resource among a plurality of computational resources.
[0098] At S994, the allocation section or a subsection thereof assigns potential PII leakage costs. In at least some embodiments, the allocation section assigns leakage costs representative of potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computational resources among the plurality of computational resources. In at least some embodiments, the allocation section assigns leakage costs in units other than monetary values. In at least some embodiments, the allocation section assigns leakage costs in units of monetary values. In at least some embodiments, the allocation section assigns leakage costs according to an estimate of damage resulting from disclosure of the PII. In at least some embodiments, as the iterations of operation S994 proceed, the allocation section assigns leakage costs to each valid combination.
[0099] At S995, the allocation section or a subsection thereof assigns monetary costs. In at least some embodiments, the allocation section further assigns computation and transmission monetary costs associated with each valid combination. In at least some embodiments, the allocation section assigns computation costs in terms of hardware costs and / or in terms of energy consumption. In at least some embodiments, the allocation section assigns transmission costs in terms of network usage costs and / or in terms of energy consumption. In at least some embodiments, as the iterations of operation S995 proceed, the allocation section assigns monetary costs to each valid combination.
[0100] At S997, the allocation section determines whether the selected candidate program operation has been combined with all computing resources. If the allocation section determines that uncombined computing resources remain, the operational flow returns to the combination of computing resources at S992. If the allocation section determines that the selected candidate program operation has been combined with all computing resources, the operational flow proceeds to the candidate processing decision at S998.
[0101] At S998, the allocation section determines whether all candidate program operations have been selected. If the allocation section determines that unselected candidate program operations remain, the operational flow returns to the selection of candidate program operations at S990. If the allocation section determines that all candidate program operations have been selected, the operational flow ends.
[0102] 10 is an operational flow for applying an objective function, according to at least some embodiments of the subject disclosure. The operational flow provides a method for applying an objective function. In at least some embodiments, the method is performed by a server, such as server 120 shown in FIG. 1 or server 440 shown in FIG. 4. In at least some embodiments, the method is performed by an applying section, such as applying section 1124 shown in FIG.
[0103] In S1000, the application section or a subsection thereof identifies a candidate sequence. In at least some embodiments, the application section causes the identification section to identify the candidate sequence. In at least some embodiments, the application section identifies possible sequences of valid combinations of candidate program operations and computational resources that involve capturing a data sample, the data sample including first class information and second class information, and reducing the second class information of the data sample before transmitting the resulting data to the server. In at least some embodiments, the candidate sequence includes a different number of candidate program operations. For example, one candidate sequence includes many different types of filtering and compression at various computational stages of the vehicle, while another candidate sequence dispenses with most filtering and compression. In at least some embodiments, the application section identifies all paths of valid combinations from capturing the data sample to transmitting the resulting data as the candidate sequence.
[0104] In S1003, the application section or a subsection thereof applies the objective function to the candidate sequences. In at least some embodiments, the application section applies the objective function to the candidate sequences to calculate a total cost. In at least some embodiments, as the iterations of operation S1003 proceed, the application section calculates a total cost for each candidate sequence.
[0105] At S1006, the application section determines whether all candidate sequences have been processed. If the application section determines that unprocessed candidate sequences remain, operational flow returns to application of the objective function at S1003 for the next candidate sequence. If the application section determines that all candidate sequences have been processed, operational flow proceeds to sequence determination at S1009.
[0106] At S1009, the application section or a subsection thereof determines a sequence. In at least some embodiments, the application section determines which sequence to transmit for execution by the vehicle. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total cost. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total leakage cost. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total monetary cost. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total leakage cost among candidate sequences having a monetary cost below a threshold monetary cost. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total monetary cost among candidate sequences having a leakage cost below a threshold leakage cost. In at least some embodiments, the application section determines to transmit for execution a candidate sequence having a lowest total cost, where the leakage cost is expressed in the same units as the monetary cost.
[0107] In at least some embodiments, a global decision may be made for a single vehicle or a population of vehicles. In at least some embodiments, for a population, particularly one with heterogeneous capabilities, the global solution output from the objective function assigns actions in a fixed or weighted manner, for example giving high-performing vehicles a higher probability of being assigned a complex action at a given start, while lower performing vehicles are associated with a lower probability of being assigned a complex action.
[0108] FIG. 11 is a diagram of a hardware configuration for determining a program operation sequence that reduces potential leakage of personally identifiable information, according to at least some embodiments of the subject disclosure.
[0109] A preferred hardware configuration includes a server 1100 that interacts with input device 1109 and communicates with the input device 1109 over a network 1108. In at least some embodiments, the server 1100 is a computer or other computing device that receives input or commands from the input device 1109. In at least some embodiments, the server 1100 is integrated into the input device 1109. In at least some embodiments, the server 1100 is a computer system that executes computer readable instructions to perform operations related to determining program operation sequences that reduce the potential leakage of personally identifiable information.
[0110] 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 programmable circuitry that executes instructions to cause the processor or programmable circuitry to perform operations according to the instructions. In at least some embodiments, the controller 1102 includes analog or digital programmable circuitry, or any combination thereof. In at least some embodiments, the controller 1102 includes physically separate storage or circuitry that communicates through communication. In at least some embodiments, the storage unit 1104 includes a non-volatile computer readable medium that can store executable and non-executable data accessed by the controller 1102 during execution of instructions. The communication interface 1107 transmits and receives data to and from a network 1108. The input / output interface 1106 connects to various input and output units, such as input devices 1109 via parallel ports, serial ports, keyboard ports, mouse ports, monitor ports, and the like, to accept commands and present information. In some embodiments, the storage unit 1104 is external to the server 1100 .
[0111] The controller 1102 includes an identification section 1120, an allocation section 1122, an application section 1124, and a generation section 1126. The storage unit 1104 includes candidate actions 1130, cost parameters 1132, an objective function 1134, and a sequence 1136.
[0112] The identification section 1120 is a circuit or instruction of the controller 1102 configured to identify candidate program operations. In at least some embodiments, the identification section 1120 is configured to identify a plurality of candidate program operations, including capturing a data sample, the data sample including first class information and second class information, and reducing the second class information of the data sample. In at least some embodiments, the identification section 1120 records information, such as candidate operations 1130, in the storage unit 1104. In at least some embodiments, the identification section 1120 includes subsections that perform additional functions as described in the flow charts above. In at least some embodiments, such subsections are referenced by names associated with the corresponding functions.
[0113] The allocation section 1122 is circuitry or instructions of the controller 1102 configured to assign costs. In at least some embodiments, the allocation section 1122 is configured to assign leakage costs representing potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computational resources among the plurality of computational resources. In at least some embodiments, the allocation section 1122 utilizes information in the storage unit 1104, such as the candidate operations 1130 and the cost parameters 1132. In at least some embodiments, the allocation section 1122 includes subsections that perform additional functions as described in the flowcharts above. In at least some embodiments, such subsections are referenced by names associated with the corresponding functions.
[0114] The applying section 1124 is a circuit or instruction of the controller 1102 configured to apply an objective function. In at least some embodiments, the applying section 1124 is configured to apply the objective function to the valid combinations and assigned leakage costs to determine a sequence of program operations, where each program operation of the sequence is performed by one or more selected computational resources such that the total leakage cost is less than a threshold leakage cost and the amount of first class information is greater than a data threshold. In at least some embodiments, the applying section 1124 utilizes information in the storage unit 1104, such as the candidate operations 1130 and the objective function 1134, to record information, such as the sequence 1136, in the storage unit 1104. In at least some embodiments, the applying section 1124 includes subsections that perform additional functions as described in the flowcharts above. In at least some embodiments, such subsections are referenced by names associated with the corresponding functions.
[0115] The generating section 1126 is circuitry or instructions of the controller 1102 configured to generate program operations. In at least some embodiments, the generating section 1126 is configured to generate program operations in response to updates to the ontology. In at least some embodiments, the generating section 1126 records information from the storage unit 1104, such as candidate operations 1130. In at least some embodiments, the generating section 1126 includes subsections that perform additional functions as described in the flowcharts above. In at least some embodiments, such subsections are referenced by names associated with the corresponding functions.
[0116] In at least some embodiments, the apparatus is a separate device capable of processing logical functions to perform the operations herein. In at least some embodiments, the controller and the storage unit need not be completely separate devices, and in some embodiments share circuitry or one or more computer-readable media. In at least some embodiments, the storage unit includes a hard drive that stores both computer-executable instructions and data accessed by the controller, and the controller includes a combination of a central processing unit (CPU) and RAM, where the computer-executable instructions can be copied in whole or in part to be executed by the CPU during the performance of the operations herein.
[0117] In at least some embodiments where the apparatus is a computer, a program installed on the computer can cause the computer to function as or perform operations associated with the apparatus embodiments described herein, and in at least some embodiments, such a program is executable by a processor to cause the computer to perform specific operations associated with some or all of the flowchart blocks and block diagrams described herein.
[0118] At least some embodiments are described with reference to flow charts and block diagrams, where the blocks represent (1) steps of a process in which an operation is performed, or (2) sections of a controller responsible for carrying out an operation. In at least some embodiments, certain steps and sections are implemented by dedicated circuitry, programmable circuitry provided with computer readable instructions stored on a computer readable medium, and / or a processor provided with computer readable instructions stored on a computer readable medium. In at least some embodiments, the dedicated circuitry includes digital and / or analog hardware circuitry, including integrated circuits (ICs) and / or discrete circuits. In at least some embodiments, the programmable circuitry includes reconfigurable hardware circuitry, e.g., field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), etc., comprising logical AND, OR, XOR, NAND, NOR, and other logic operations, flip-flops, registers, memory elements, etc.
[0119] In at least some embodiments, a computer-readable storage medium includes a tangible device capable of holding and storing instructions for use by an instruction execution device. In some embodiments, a computer-readable storage medium includes, for example, but is not limited to, 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. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memories (RAM), read-only memories (ROM), erasable and programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), portable compact disk read-only memories (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves with instructions recorded on them, and any suitable combination of the above. As used herein, computer-readable storage media should not be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over wires.
[0120] In at least some embodiments, the computer readable program instructions described herein can be downloaded from a computer readable storage medium into the respective computing / processing device or can be downloaded to an external computer or external storage device via a network, e.g., 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 fiber, wireless transmission, 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 instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing / processing device.
[0121] In at least some embodiments, the computer readable program instructions for performing the operations described above may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk, C++, or the like, and traditional procedural programming languages such as the "C" programming language or similar programming languages. In at least some embodiments, the computer readable program instructions execute completely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In at least some embodiments, in the latter scenario, the remote computer is connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or a connection to an external computer is made (e.g., through the Internet using an Internet Service Provider). In at least some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) executes computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to perform aspects of the subject disclosure.
[0122] Although disclosed embodiments of the subject matter have been described, the scope of any claimed subject matter is not limited to the above-described embodiments. Those skilled in the art will appreciate that various modifications and improvements to the above-described embodiments are possible. Those skilled in the art will also appreciate from the claims that additional embodiments with such modifications or improvements are included within the scope of the present invention.
[0123] The operations, procedures, steps, and stages of each process performed by the apparatus, systems, programs, and methods depicted in the claims, embodiments, or figures may be performed in any order, unless an order is indicated by "first," "before," or the like, and unless output from a previous process is used in a later process. Even if the claims, embodiments, or figures describe a process flow using phrases such as "first" or "then," such description does not necessarily imply that the processes must be performed in the order described.
[0124] In at least some embodiments, determining a sequence of program operations that reduces a potential leakage of personally identifiable information is performed by identifying a plurality of candidate program operations that acquire a data sample including first class information and second class information and reduce the second class information of the data sample, assigning a leakage cost representative of a potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computing resources among the plurality of computing resources, and applying an objective function to the valid combinations and the assigned leakage costs to determine a sequence of program operations, each program operation in the sequence being performed by one or more selected computing resources such that a total leakage cost is less than a threshold leakage cost and an amount of the first class information is greater than a data threshold.
[0125] Some embodiments include instructions in a computer program, a method performed by a processor executing the instructions of the computer program, and an apparatus for performing the method. In some embodiments, the apparatus includes a controller including circuitry configured to perform the operations in the instructions.
[0126] The above outlines features of some embodiments so that those skilled in the art may more fully appreciate aspects of the present disclosure. Those skilled in the art should understand that they may readily use this disclosure as a basis for designing or modifying other processes and structures which perform the same purposes and / or achieve the same advantages as the embodiments incorporated herein. Those skilled in the art should also understand that such equivalent structures do not depart from the spirit and scope of the present disclosure, and that those skilled in the art may make various changes, substitutions, and alterations thereto without departing from the spirit and scope of the present disclosure.
Claims
1. 1. A method, comprising: acquiring a data sample, the data sample including first class information and second class information; and Reducing the second class information of the data samples. identifying a plurality of candidate program actions that perform assigning a leakage cost representative of a potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computing resources among the plurality of computing resources; applying an objective function to the valid combinations and assigned leakage costs to determine a sequence of program operations, each program operation of the sequence being performed by one or more selected computational resources such that a total leakage cost is less than a threshold leakage cost and an amount of first class information is greater than a data threshold; A method comprising:
2. The allocation may be further assigning a computational and transmission monetary cost associated with each valid combination; The method of claim 1 , wherein the sequence is one such sequence that has a total monetary cost less than a threshold monetary cost.
3. The method of claim 2 , wherein the plurality of computing resources comprises at least one vehicle sensor, at least one vehicle processor, at least one vehicle memory, and at least one cloud server.
4. The method of claim 3 , wherein the plurality of computing resources further comprises at least one vehicle storage and at least one edge computing node.
5. The method of any one of claims 1 to 4, wherein the plurality of computational resources comprises a computational resource in each of a plurality of vehicles.
6. The method of any one of claims 1 to 4, wherein the plurality of candidate program operations includes at least one detection operation, at least one compression operation, and at least one filtering operation.
7. The method according to any one of claims 1 to 4, wherein said identifying is performed in response to receiving a content query from a client terminal.
8. The method of claim 7 , wherein the content query is for one or more classes of an ontology.
9. The method of claim 8 , further comprising generating program actions in response to updating the ontology.
10. A non-transitory computer-readable medium containing instructions executable by a processor, the non-transitory computer-readable medium comprising: acquiring a data sample, the data sample including first class information and second class information; and Reducing the second class information of the data samples. identifying a plurality of candidate program actions that perform assigning a leakage cost representative of a potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computing resources among the plurality of computing resources; applying an objective function to the valid combinations and assigned leakage costs to determine a sequence of program operations, each program operation of the sequence being performed by one or more selected computational resources such that a total leakage cost is less than a threshold leakage cost and an amount of first class information is greater than a data threshold; A non-transitory computer readable medium for causing operations to be performed, comprising:
11. The allocation may be further assigning a computational and transmission monetary cost associated with each valid combination; The computer-readable medium of claim 10 , wherein the sequence is one where the total monetary cost is less than a threshold monetary cost.
12. 12. The computer-readable medium of claim 11, wherein the plurality of computing resources comprises at least one vehicle sensor, at least one vehicle processor, at least one vehicle memory, and at least one cloud server.
13. The computer-readable medium of claim 12 , wherein the plurality of computing resources further comprises at least one vehicle storage and at least one edge computing node.
14. The computer-readable medium of any one of claims 10 to 13, wherein the plurality of computing resources comprises a computing resource in each of a plurality of vehicles.
15. The computer-readable medium of any one of claims 10 to 13, wherein the plurality of candidate program operations includes at least one detection operation, at least one compression operation, and at least one filtering operation.
16. The computer-readable medium of any one of claims 10 to 13, wherein the identifying is performed in response to receiving a content query from a client terminal.
17. The computer-readable medium of claim 16 , wherein the content query is for one or more classes of an ontology.
18. The computer-readable medium of claim 17 , further comprising generating program actions in response to updating the ontology.
19. An apparatus, comprising: a controller including circuitry configured to perform operations, the operations including: acquiring a data sample, the data sample including first class information and second class information; and Reducing the second class information of the data samples. identifying a plurality of candidate program actions that perform assigning a leakage cost representative of a potential leakage of personally identifiable information associated with each valid combination of candidate program operations among the plurality of candidate program operations and computing resources among the plurality of computing resources; applying an objective function to the valid combinations and assigned leakage costs to determine a sequence of program operations, each program operation of the sequence being performed by one or more selected computational resources such that a total leakage cost is less than a threshold leakage cost and an amount of first class information is greater than a data threshold; 13. An apparatus comprising:
20. The allocation may be further assigning a computational and transmission monetary cost associated with each valid combination; 20. The apparatus of claim 19, wherein the sequence is one such that a total monetary cost is less than a threshold monetary cost.
Citation Information
Patent Citations
On-demand data retrieval system and method of using
JP2023057533A
System, method, and apparatus for managing vehicle data collection
WO2022256742A1