Methods, computer programs, systems, and computer-readable storage media for collaborative data sharing regarding data anomalies.
The method and system facilitate collaborative data sharing and conversion of anomalies among vehicles, enhancing safety and operation by identifying and managing data anomalies across vehicle systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2023-02-22
- Publication Date
- 2026-06-23
Smart Images

Figure 0007878846000001 
Figure 0007878846000002 
Figure 0007878846000003
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to data anomalies, and more particularly to collaborative data sharing regarding data anomalies generated by various systems of a vehicle.
Background Art
[0002] By utilizing the data of the global automotive industry, an original equipment manufacturer (OEM) can accelerate the analysis and improvement of the products produced. In addition, as a means of providing an additional level of safety to each of the vehicles in the group, the OEM has started an investigation into the ability of vehicle-to-vehicle data sharing to bring about awareness among the vehicles running in the group. Each vehicle includes various systems for assisting the driver in safely operating the vehicle. These various systems can include numerous cameras, radars, light detection and ranging (LIDAR), sonar sensors, and ultrasonic sensors.
Summary of the Invention
[0003] Embodiments of the present invention disclose a method, a computer program product, and a computer system for cooperative data sharing regarding data anomalies, the method, the computer program product, and the computer system being able to identify data anomalies for a first system of a first vehicle. The method, the computer program product, and the computer system being able to identify a second vehicle in the vicinity of the first vehicle in response to determining that data associated with the anomaly can be captured by another vehicle. The vicinity is defined by the operational distance of the first system of the first vehicle. The method, the computer program product, and the computer system being able to capture data associated with the anomaly by a second system of a second vehicle. The method, the computer program product, and the computer system being able to convert data captured by a second system of a second vehicle to conform to the first vehicle in response to determining that data captured by a second system of a second vehicle requires conversion to conform to the first vehicle.
[0004] Preferred embodiments of the present invention are described herein by reference only, and with reference to the following drawings. [Brief explanation of the drawing]
[0005] [Figure 1] This is a functional block diagram showing a distributed data processing environment according to an embodiment of the present invention. [Figure 2] This is a flowchart illustrating the operation steps of a vehicle cooperation program for cooperative data sharing regarding data anomalies, according to an embodiment of the present invention. [Figure 3] This figure illustrates an example of cooperative data sharing regarding data anomalies in a moving vehicle, according to an embodiment of the present invention. [Figure 4] This is a block diagram of the components of a computer system, such as the server computer shown in Figure 1, according to an embodiment of the present invention. [Figure 5] This is a diagram of a cloud computing environment according to an embodiment of the present invention. [Figure 6] This is a diagram of an abstraction model layer according to an embodiment of the present invention. [Modes for carrying out the invention]
[0006] Embodiments of the present invention provide cooperative data sharing among multiple vehicles located near a vehicle having a system that is generating a data anomaly. Embodiments of the present invention identify data anomalies generated by a system in a moving vehicle, and the system facilitates the safe operation of the moving vehicle. Embodiments of the present invention identify the system generating the data anomaly and determine whether the data associated with the anomaly can be captured by a system in another vehicle. If the data associated with the anomaly can be captured by a system in another vehicle, embodiments of the present invention identify a nearby vehicle of the moving vehicle that has a system capable of capturing the data associated with the anomaly. Embodiments of the present invention have the identified vehicle capture the data associated with the anomaly of the moving vehicle and determine whether the data captured by the identified vehicle requires transformation to fit the moving vehicle. If the data captured by the identified vehicle requires transformation to fit the moving vehicle, embodiments of the present invention transform and display the captured data based on the viewpoint of the moving vehicle and the positions of the moving vehicle and the identified vehicle. Embodiments of the present invention improve technology in the field of transportation through coordination between vehicle coordination and safety data sharing, such as data anomalies generated by at least one safety system of the vehicles involved in the coordination. Furthermore, embodiments of the present invention transform collaborative safety data sharing between vehicles based on the perspective of the vehicle in which at least one safety system is generating a data anomaly.
[0007] Figure 1 is a functional block diagram showing a distributed data processing environment, collectively named 100, according to one embodiment of the present invention. The term “distributed” as used herein refers to a computer system comprising multiple physically distinct devices operating together as a single computer system. Figure 1 shows only one implementation and does not imply any limitation regarding the environments in which different embodiments may be carried out. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the present invention as enumerated in the claims.
[0008] The distributed data processing environment 100 includes a server computer 102, electronic device 104A, and electronic device 104B, all interconnected via a network 106. The server computer 102 can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In other embodiments, the server computer 102 can represent a server computing system that utilizes multiple computers as a server system, such as in a cloud computing environment. In yet another embodiment, the server computer 102 represents a computing system that utilizes clustered computers and components (e.g., a database server computer, an application server computer, etc.) that function as a single pool of seamless resources when accessed within the distributed data processing environment. In this embodiment, the server computer 102 has the ability to communicate with other computer devices, such as electronic devices 104A and 106B, to query computer devices for information. The server computer 102 includes a vehicle coordination program 108, a database 110, and vehicle data 112. The server computer 102 may also include internal and external hardware components, as will be depicted and described in more detail with reference to Figure 4.
[0009] Electronic device 104A is associated with the first vehicle, and electronic device 104B is associated with the second vehicle. Electronic devices 104A and 104B can each be a microprocessor, a microcontroller, or any computing device capable of integrating the functions of location modules 114A and 114B, communication modules 116A and 116B, user interfaces 118A and 118B, engine control units (ECUs) 120A and 120B, and transmission control units (TCUs) 122A and 122B, respectively. Alternatively, a first controller area network (CAN bus) can be used to facilitate communication between the positioning module 114A, communication module 116A, user interface 118A, engine control unit (ECU) 120A, and transmission control unit (TCU) 122A, in addition to the sensors 128A, camera 130A, and radar 132A of the first vehicle. A second controller area network (CAN bus) can be used to facilitate communication between the positioning module 114B, communication module 116B, user interface 118B, engine control unit (ECU) 120B, and transmission control unit (TCU) 122B, in addition to the sensors 128B, camera 130B, and radar 132B of the second vehicle. The user interfaces 118A and 118B of the respective electronic devices 104A and 104B enable the user (i.e., the vehicle operator) to interact and communicate with the vehicle coordination program 108 described above, as well as any one of the systems associated with the electronic devices 104A and 104B. Generally, the electronic devices 104A and 104B represent any programmable electronic device or combination of programmable electronic devices that have the ability to execute machine-readable program instructions and communicate with users of other electronic devices via the network 106.The electronic devices 104A and 104B may include components as described and explained in more detail with reference to Figure 4, according to embodiments of the present invention.
[0010] Generally, network 106 can be any combination of connections and protocols that support communication between the server computer 102 and the electronic devices 104A and 104B. Network 106 can include, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, or any combination thereof, and may further include wired connections, wireless connections, or fiber optic connections, or a combination thereof. Network 106 can include one or more wired or wireless networks, or both, that have the ability to receive and transmit data signals, voice signals, or video signals including multimedia signals including voice information, data information, and video information, or a combination thereof. In one embodiment, the vehicle coordination program 108 can be a web service accessible to users of the electronic devices 104A and 104B via network 106. Generally, the network 106 can be any combination of connections and protocols that support communication between the server computer 102, electronic devices 104A and 104B, and other computing devices (not shown) in the distributed data processing environment.
[0011] The vehicle coordination program 108 enables cooperative data sharing between the electronic device 104A of the first vehicle and the electronic device 104B of the second vehicle regarding data anomalies present in one of the vehicles (e.g., electronic device 104A). The vehicle coordination program 108 identifies a data anomaly in the first vehicle while it is moving, and the moving vehicle includes the electronic device 104A. The vehicle coordination program 108 identifies the system of the first vehicle associated with the anomaly (e.g., camera 130A) and determines whether the data associated with the anomaly can be captured by the other vehicle. If the vehicle coordination program 108 determines that the data associated with the anomaly cannot be captured by the other vehicle, the vehicle coordination program 108 displays a notification about the anomaly on the user interface 118A. If the vehicle coordination program 108 determines that the data associated with the anomaly can be captured by the other vehicle, the vehicle coordination program 108 identifies a second vehicle in the vicinity of the first vehicle while it is moving. The vehicle coordination program 108 captures data associated with anomalies in the first vehicle while it is moving, and determines whether the data captured by the second vehicle requires conversion. If the vehicle coordination program 108 determines that the data captured by the second vehicle requires conversion, the vehicle coordination program 108 converts the captured data according to the identified system of the first vehicle. The vehicle coordination program 108 displays the converted captured data on the user interface 118A of the first vehicle while it is moving.
[0012] Database 110 is a repository for data (e.g., vehicle data 112) used by the vehicle coordination program 108. In the described embodiment, database 110 resides on a server computer 102. In another embodiment, database 110 may reside on another device (not shown in Figure 1) in a distributed data processing environment, provided that the vehicle coordination program 108 can access database 110. Database 110 can be implemented on any type of storage device capable of storing data and configuration files that are accessible and available to the vehicle coordination program 108, such as a database server, a hard disk drive, or flash memory. In this embodiment, database 110 stores data used by the vehicle coordination program 108, including vehicle data 112. Vehicle data 112 includes manufacturer information for vehicles based on product name, model, or vehicle identification number (VIN), or a combination thereof. The vehicle data 112 may further include inspection interval information (e.g., distance to the next inspection) for one or more components of the vehicle (e.g., brakes), data collected for the vehicle during previous inspections (e.g., tire tread depth, remaining brake pad material), and one or more inspection codes generated by the vehicle (e.g., low brake pad warning, ABS failure).
[0013] A first vehicle associated with electronic device 104A, and a second vehicle associated with electronic device 104B, may each include safety equipment such as sensors 128A and 128B, cameras 130A and 130B, and radars 132A and 132B. The vehicle coordination program 108 has the ability to receive and analyze vehicle data 112 to determine whether data associated with an anomaly can be captured by other vehicles. The vehicle data 112 may include information collected from positioning modules 114A and 114B, communication modules 116A and 116B, engine control units (ECUs) 120A and 120B, transmission control units (TCUs) 122A and 122B, sensors 128A and 128B, cameras 130A and 130B, and radars 132A and 132B.
[0014] The positioning modules 114A and 114B enable the vehicle coordination program 108 to identify the positions of a first vehicle having electronic device 104A and a second vehicle associated with electronic device 104B. In this embodiment, the positioning modules 114A and 114B are Global Positioning Systems (GPS) used by the vehicle coordination program 108 to monitor the positions of the first and second vehicles. The communication modules 116A and 116B enable the electronic devices 104A and 104B to communicate with the vehicle coordination program 108 on the server computer 102 via the network 106. The user interfaces 118A and 118B enable the user to make requests or issue commands to electronic devices 104A and 104B, respectively, and to receive information and instructions in response. In one embodiment, user interfaces 118A and 118B are voice user interfaces (VUIs) for users of electronic devices 104A and 104B to access via voice commands in natural language. In one embodiment, user interfaces 118A and 118B may be graphical user interfaces (GUIs) or web user interfaces (WUIs) that can display text, documents, web browser windows, user options, application interfaces, and instructions for operation, and include information that the program presents to the user (such as graphics, text, and sound), as well as control sequences that the user employs to control the program. User interfaces 118A and 118B enable users of electronic devices 104A and 104B to interact with the vehicle coordination program 108, respectively.
[0015] The engine control units (ECUs) 120A and 120B, also known as engine control modules (ECMs), are electronic devices that control and monitor various actuators of engines 124A and 124B, respectively. ECUs 120A and 120B utilize software components capable of controlling and monitoring the performance output and operating parameters of engines 124A and 124B. The transmission control units (TCUs) 122A and 122B are electronic devices that control and monitor various parameters of transmissions 126A and 126B, respectively. Similar to ECUs 120A and 120B, TCUs 122A and 122B utilize software components capable of controlling and monitoring the performance output and operating parameters of transmissions 126A and 126B, respectively.
[0016] Sensors 128A and 128B, cameras 130A and 130B, and radars 132A and 132B represent hardware from which the vehicle cooperation program 108 receives and analyzes vehicle data 112 to determine whether data associated with anomalies can be captured by other vehicles. Sensors 128A and 128B may include electromagnetic, ultrasonic, sonar, lidar, laser, and camera detection systems integrated into various driver assistance systems such as parking assist systems, blind spot monitoring, lane keeping systems, and rear cross-traffic alert systems. Cameras 130A and 130B represent devices capable of capturing visible light or infrared images or video. Cameras 130A and 130B enable the detection of heat traces from humans, wildlife, and other vehicles, which is useful, for example, in poor visibility conditions (i.e., dense fog or debris on the roadside). Radar 132A and 132B represent devices capable of detecting objects within the radar's line of sight and are typically integrated into various driver assistance systems such as adaptive cruise control.
[0017] Figure 2 is a flowchart illustrating the operation steps of a vehicle cooperation program for cooperative data sharing regarding data anomalies, according to an embodiment of the present invention.
[0018] The vehicle coordination program 108 identifies anomalies in the data of a moving vehicle (202). For discussion purposes, a moving vehicle represents an internal combustion engine vehicle, an electric vehicle, or a hydrogen fuel vehicle, or a combination thereof, that is fueled and configured to run (e.g., idle, move fast). In the case of a moving vehicle, the vehicle coordination program 108 receives various data from various systems (e.g., cameras, sensors, and radar) based on user consent agreed upon in advance by the vehicle operator. For example, the vehicle coordination program 108 receives data from multiple cameras of the vehicle, and the data indicates the operating state of each of the multiple cameras. The operating state indicates whether each camera is functioning properly and producing an image viewable by the vehicle operator. The data that the vehicle coordination program 108 receives from each of the multiple cameras does not require the actual captured images or videos or both, and thus allows for the maintenance of the vehicle operator's privacy. Anomalies in the data represent changes in the operating state of the vehicle's systems that indicate a system failure that prevents the system from successfully performing a task. When a vehicle identifies a system failure, the vehicle coordination program 108 receives an alert from the vehicle regarding the system failure and identifies anomalies in the data being generated by the vehicle's systems while it is in motion. Anomalies may also represent irregularities in the data being generated by the vehicle's systems. Anomalies may include outlier values, corrupted values, missing values, or a combination thereof. When the vehicle sends data, the vehicle coordination program 108 receives data from various systems of the vehicle while it is in motion and identifies any anomalies (e.g., outlier values) in the data being generated by each of the vehicle's systems.
[0019] In one example, a moving vehicle includes a rear-facing camera system that produces a video feed on the vehicle's displays, such as a digital display rearview mirror. The vehicle coordination program 108 receives data from the vehicle regarding the rear-facing camera system indicating its operating status, and the vehicle identifies a malfunction in the rear-facing camera system and sends an alert to the vehicle coordination program 108 indicating that the operating status of the rear-facing camera system is faulty. Based on the alert received from the vehicle, the vehicle coordination program 108 identifies an anomaly in the data of the moving vehicle by the alert indicating that the operating status of the rear-facing camera system is faulty. Alternatively, the vehicle coordination program 108 receives data from the rear-facing camera system of the moving vehicle and determines that the received data contains missing data values. Based on the missing data values, the vehicle coordination program 108 identifies an anomaly in the data of the moving vehicle, and the missing data values indicate a possible intermittent problem with the rear-facing camera system of the moving vehicle.
[0020] In another example, a moving vehicle is equipped with a blind spot monitoring system that generates blind spot warnings to the vehicle operator via visual indicators. The vehicle coordination program 108 receives data from the vehicle regarding the blind spot monitoring system, indicating the operational status of a radar or ultrasonic sensor. The vehicle identifies a malfunction in the radar or ultrasonic sensor and sends an alert to the vehicle coordination program 108 indicating a malfunction in the blind spot monitoring system. Based on the alert received from the vehicle, the vehicle coordination program 108 identifies an anomaly in the data of the moving vehicle by the alert indicating a malfunction in the blind spot monitoring system. Alternatively, the vehicle coordination program 108 receives data from the rear-facing camera system of the moving vehicle and determines that the received data contains outlier data values. The data outliers are due to the accumulation of moisture (e.g., snow and ice) in the area where the radar or ultrasonic sensor is located on the vehicle. The vehicle coordination program 108 identifies anomalies in the data of a moving vehicle based on outlier data values, and these outlier data values indicate unreliable data readings from the blind spot monitoring system of the moving vehicle.
[0021] The vehicle coordination program 108 identifies the vehicle system associated with the anomaly (204). In one embodiment, the vehicle coordination program 108 identifies the vehicle system associated with the anomaly by querying the vehicle for various information about the system. In another embodiment, the vehicle coordination program 108 identifies the vehicle system associated with the anomaly based on metadata of the data associated with the anomaly, the metadata including various information about the system. The information may include, but is not limited to, the system type, location, manufacturer, part number, and serial number. The system type may include cameras, sensors, and radar on a moving vehicle. Since a vehicle may have multiple systems of each system type, the location indicates where the system generating the data associated with the anomaly is located on the vehicle. For example, if radar or ultrasonic sensors for a blind spot monitoring system are located on both sides of the vehicle, the vehicle coordination program 108 can identify anomalies in the data generated only by the radar or ultrasonic sensor located on the left side of the vehicle (i.e., the driver's side). In another example, a vehicle may include multiple cameras located in various places on the vehicle, and the vehicle coordination program 108 can identify anomalies in the data generated only by the rear-facing camera used by the digital display rearview mirror. The manufacturer, part number, and serial number of the identified system of the vehicle associated with the anomaly are used by the coordination program 108 to determine whether data captured by another vehicle needs to be converted to match the data of the vehicle in motion. The determinations and conversions by the vehicle coordination program 108 are discussed in more detail with reference to (determinations 214) and (216) below.
[0022] The vehicle cooperation program 108 determines whether data associated with an abnormality can be captured by other vehicles (determination 206). If the vehicle cooperation program 108 determines that the data associated with the abnormality cannot be captured by other vehicles (the "No" branch, determination 206), the vehicle cooperation program 108 displays a notification regarding the abnormality (208). If the vehicle cooperation program 108 determines that the data associated with the abnormality can be captured by other vehicles (the "Yes" branch, determination 206), the vehicle cooperation program 108 identifies vehicles in the vicinity of the moving vehicle (210).
[0023] The vehicle coordination program 108 determines, based on the identified system of the vehicle associated with the anomaly, whether the data associated with the anomaly can be captured by other vehicles. As described above, the moving vehicle may include various systems such as cameras, sensors, and radar. Another vehicle may include various similar systems, but the data captured by the similar systems of that other vehicle may not be applicable to or irrelevant to the operation of the moving vehicle, or neither. The vehicle coordination program 108 has the ability to determine whether the data associated with the anomaly is captureable and applicable to the moving vehicle. In one example, the system of the vehicle associated with the anomaly is a rear-facing camera, and the vehicle coordination program 108 determines that images or videos of the rear area of the moving vehicle can be captured by a rear-facing camera of one or more other vehicles. In another example, the system of the vehicle associated with the anomaly is a radar or ultrasonic sensor of a blind spot monitoring system, and the vehicle coordination program 108 determines that data regarding the blind spot of the moving vehicle can be captured by the radar or ultrasonic sensor of a blind spot monitoring system of one or more other vehicles, or by a camera of one or more other vehicles, or both. The data captured by the vehicle coordination program 108 with a camera on another vehicle is different from the data captured by the radar or ultrasonic sensor of the blind spot monitoring system, but the vehicle coordination program 108 can transform the data so that the transformed data is applicable to the moving vehicle. Details of this data transformation are discussed in more detail with reference to (216). In yet another example, the system of the vehicle associated with the anomaly is an internal camera that captures the eye movements of the operator of the moving vehicle, and the system of the other vehicle cannot capture the eye movements of the operator of the moving vehicle, so the vehicle coordination program 108 determines that the data associated with the anomaly is not captureable by one or more systems of the other vehicle.
[0024] The vehicle coordination program 108 displays a notification regarding an anomaly (208). For example, if the vehicle coordination program 108 determines that data associated with an anomaly cannot be captured by another vehicle, the vehicle coordination program 108 displays a notification regarding the anomaly on the user interface (e.g., infotainment system, dashboard). In one embodiment, the vehicle coordination program 108 displays a designated error icon on the dashboard corresponding to the system that produced the data anomaly. In another embodiment, the vehicle coordination program 108 displays an error message identifying the system and the generated data anomaly, in addition to a warning message to keep attention until the vehicle is inspected. In yet another embodiment, the vehicle coordination program 108 displays a notification on an electronic device used as a key by the vehicle operator (e.g., digital key, smartphone), the notification identifying the system and the generated data anomaly, as well as operator-selectable options for scheduling an inspection to resolve the data anomaly.
[0025] The vehicle coordination program 108 identifies (210) vehicles in the vicinity of the moving vehicle. In the case of a moving vehicle, the vehicle coordination program 108 continuously identifies nearby vehicles when the moving vehicle is driving beside another vehicle, when overtaking another vehicle, or when another vehicle overtakes the moving vehicle. The vehicle coordination program 108 defines the vicinity based on the operable distance of the system of the moving vehicle that produced data associated with an anomaly. The operable distance represents the distance at which the vehicle's system (e.g., camera, sensor, radar) can capture data usable by the moving vehicle. In one example, the vehicle coordination program 108 has pre-identified an anomaly in the data from the rear camera system of the moving vehicle. In this case, the video of the rear area of the moving vehicle is not being produced by the rear camera. The vehicle coordination program 108 determines that the operable distance of the rear camera system of the moving vehicle is 50 feet (15.24 meters), and thus, the vehicle coordination program 108 defines the vicinity as a circle with a diameter of 50 feet (15.24 meters) surrounding the moving vehicle. The vehicle coordination program 108 identifies vehicles located within a circle with a diameter of 50 feet (15.24 meters) surrounding the moving vehicle, and each identified vehicle includes a system for capturing data associated with an anomaly (i.e., the video of the rear area of the vehicle). In another example, the vehicle coordination program 108 has pre-identified an anomaly in the data from the blind spot monitoring system of the moving vehicle. In this case, the radar or ultrasonic sensor has produced outlier data values. The vehicle coordination program 108 determines that the operable distance of the blind spot monitoring system of the moving vehicle is 75 feet (22.86 meters), and thus, the vehicle coordination program 108 defines the vicinity as a circle with a diameter of 75 feet (22.86 meters) surrounding the moving vehicle. The vehicle coordination program 108 identifies vehicles located within a circle with a diameter of 75 feet (22.86 meters) surrounding the moving vehicle, and each identified vehicle includes a system for capturing data associated with an anomaly.
[0026] The vehicle coordination program 108 captures data associated with anomalies in the moving vehicle by the identified vehicles (212). Before the identified vehicles capture data associated with anomalies in the moving vehicle, the vehicle coordination program 108 allows each operator of the identified vehicles to establish privacy settings for data sharing with other vehicles. The vehicle coordination program 108 allows each operator of an identified vehicle to select which data from each system of the identified vehicle can be shared with other vehicles. Based on the privacy settings for each identified vehicle, the vehicle coordination program 108 captures data associated with anomalies in the moving vehicle by one or more systems of the identified vehicles. The vehicle coordination program 108 can instruct the identified vehicles to transmit data (e.g., sensor readings, video feeds from cameras) and can receive data from each of the identified vehicles. In one example, if an identified vehicle is driving alongside the moving vehicle, the vehicle coordination program 108 captures a video feed from the rear-facing camera of the identified vehicle. If the rear-facing camera of the moving vehicle is not functioning, the video feed from the rear-facing camera of the identified vehicle will represent data associated with an anomaly. In another example, if the vehicle coordination program 108 is driving ahead of the identified vehicle, it captures readings from the ultrasonic sensors of the identified vehicle's blind spot monitoring system. If the blind spot monitoring system of the moving vehicle is producing out-of-bounds data values, the readings from the ultrasonic sensors of the identified vehicle will represent data associated with an anomaly.
[0027] The vehicle coordination program 108 determines whether the captured data requires conversion (determination 214). If the vehicle coordination program 108 determines that the captured data does not require conversion ("no" branch, determination 214), the vehicle coordination program 108 displays the data captured by the moving vehicle (218). If the vehicle coordination program 108 determines that the captured data requires conversion ("yes" branch, determination 214), the vehicle coordination program 108 converts the captured data (216). The vehicle coordination program 108 determines whether the data captured by another vehicle requires conversion to match the data about the moving vehicle.
[0028] In one example, if an identified vehicle is driving alongside a moving vehicle, the identified vehicle's rear-facing camera system produces a video feed that is missing from the moving vehicle (i.e., a data anomaly). Vehicle coordination program 108 determines that the identified vehicle's rear-facing camera has a wide-angle lens with a 160-degree field of view and a perceptual range of 50 feet (15.24 meters). Vehicle coordination program 108 also determines that the viewpoint from the rear-facing camera of the identified vehicle is different from the viewpoint from the rear-facing camera of the moving vehicle. As a result, vehicle coordination program 108 determines that the video feed from the identified vehicle needs to be transformed to match the viewpoint from the rear-facing camera of the moving vehicle. In another example, if an identified vehicle is driving in front of a moving vehicle, the ultrasonic sensors in the identified vehicle's blind spot monitoring system produce data values that are missing from the moving vehicle (e.g., distance values to objects in the blind spot). The vehicle coordination program 108 determines that the ultrasonic sensor of the identified vehicle has a perception range of 75 feet (22.86 meters) from the right rear corner of the identified vehicle. The vehicle coordination program 108 also determines that the identified vehicle is traveling 20 feet (6.10 meters) ahead of the moving vehicle, which is 13 feet (3.96 meters) long. As a result, the vehicle coordination program 108 determines that the ultrasonic sensor data values from the identified vehicle need to be converted to take into account the variation in distance between the right rear corner of the identified vehicle and the right rear corner of the moving vehicle.
[0029] The vehicle coordination program 108 transforms the captured data (216). As described above, the vehicle coordination program 108 transforms the data captured from the identified vehicle to fit the moving vehicle. In one example, the vehicle coordination program 108 determines that the viewpoint of the rear-facing camera from the identified vehicle is different from the viewpoint of the rear-facing camera from the moving vehicle, and determines that the video feed from the identified vehicle needs to be transformed to fit the viewpoint of the rear-facing camera from the moving vehicle. Based on the location information of the identified vehicle and the moving vehicle, the vehicle coordination program 108 uses a machine learning generative adversarial network (GAN) class to transform the viewpoint of the video feed from the identified vehicle to the expected viewpoint of the video feed from the moving vehicle. If the vehicle coordination program 108 has captured video feeds from multiple identified vehicles in the vicinity of the moving vehicle, the vehicle coordination program 108 transforms the multiple video feeds into a single image from the expected viewpoint of the video feed from the moving vehicle, based on the location information of the multiple identified vehicles and the moving vehicle. In another example, the vehicle coordination program 108 determines that if the identified vehicle is traveling ahead of the moving vehicle, the ultrasonic sensor data values from the identified vehicle need to be converted to account for the variation in distance between the right rear corner of the identified vehicle and the right rear corner of the moving vehicle. From the above example, the vehicle coordination program 108 determines that the ultrasonic sensor of the identified vehicle has a perception range of 75 feet (22.86 meters) from the right rear corner of the identified vehicle, and that the identified vehicle is traveling 20 feet (6.10 meters) ahead of the moving vehicle, which is 13 feet (3.96 meters) long. The vehicle coordination program 108 converts the data values to account for the 33-foot (10.06-meter) distance variation between the viewpoint of the ultrasonic sensor of the identified vehicle and the viewpoint of the ultrasonic sensor of the moving vehicle.Therefore, if the ultrasonic sensor of the identified vehicle captures data of an object located 44 feet (13.41 meters) away (e.g., an approaching vehicle), the vehicle coordination program 108 converts the captured data to 11 feet (3.35 meters), taking into account a distance variation of 33 feet (10.06 meters) between the viewpoint of the ultrasonic sensor of the identified vehicle and the viewpoint of the ultrasonic sensor of the moving vehicle.
[0030] The vehicle coordination program 108 displays data captured in a moving vehicle (218). In one embodiment, the vehicle coordination program 108 displays the captured data in a moving vehicle as a user interface, such as an infotainment system, a digital display rearview mirror, a dashboard, or a designated visual indicator for a system associated with the captured data, or a combination thereof. In another embodiment, the vehicle coordination program 108 displays the converted captured data in a moving vehicle as a user interface, such as an infotainment system, a digital display rearview mirror, a dashboard, or a designated visual indicator for a system associated with the captured data, or a combination thereof. In one example, the vehicle coordination program 108 displays converted video feeds from multiple rearview-oriented cameras from multiple identified vehicles on the digital display rearview mirror of the moving vehicle. In another example, the vehicle coordination program 108 displays an alert for an object located in a blind spot based on converted ultrasonic sensor readings from an identified vehicle, using a designated visual indicator on the moving vehicle.
[0031] Figure 3 shows an example of cooperative data sharing regarding data anomalies in a moving vehicle according to an embodiment of the present invention. In this example, the moving vehicle 302 is traveling in the center lane of a main road, vehicle 304 is located behind the moving vehicle 302 in the center lane, vehicle 306 is in the leftmost lane and to the left of the moving vehicle 302, and vehicle 308 is in the rightmost lane and to the right of the moving vehicle 302. The moving vehicle 302 includes a rear-facing camera system that has the ability to produce a video feed of the rear area and display the image to the operator of the moving vehicle 302 on a digital display rearview mirror. The field of view of the rear-facing camera system of the moving vehicle 302 includes an area with a periphery 310, and vehicle 304 is located within the area with the periphery 310. The vehicle coordination program 108 receives data from the moving vehicle 302 regarding the operating status of the rear-facing camera system, while the vehicle identifies a malfunction in the rear-facing camera system and sends an alert to the vehicle coordination program 108 indicating that the operating status of the rear-facing camera system is faulty. Based on the alert received from the vehicle, the vehicle coordination program 108 identifies an anomaly in the data of the moving vehicle due to the alert indicating that the operating status of the rear-facing camera system is faulty.
[0032] In this example, the vehicle coordination program 108 determines that a video feed of the rear area of the moving vehicle can be captured by a rear-facing camera of one or more other vehicles, and identifies nearby vehicles to the moving vehicle 302. The vehicle coordination program 108 determines that the operating range of the rear-facing camera system of the moving vehicle is 75 feet (22.86 meters), and therefore defines the neighborhood as a circle with a radius of 75 feet (22.86 meters) surrounding the moving vehicle. The vehicle coordination program 108 identifies vehicles 306 and 308 located within the circle with a radius of 75 feet (22.86 meters) surrounding the moving vehicle as being able to capture data associated with an anomaly (i.e., video of the rear area of the vehicle). Vehicle 304 is located within a circle with a radius of 75 feet (22.86 meters), but the vehicle coordination program 108 determines that vehicle 304 does not have a system (e.g., a forward-facing camera system) capable of capturing data associated with an anomaly. The vehicle coordination program 108 captures video feeds from the rear-facing cameras of vehicles 306 and 308, but the field of view of the rear-facing camera system of moving vehicle 302 includes an area with a periphery 312, and the field of view of the rear-facing camera system of vehicle 308 includes an area with a periphery 314. The vehicle coordination program 108 determines that the viewpoint of the rear-facing camera from vehicle 306 or 308 is different from the viewpoint of the rear-facing camera system from moving vehicle 302. As a result, the vehicle coordination program 108 determines that the video feeds from vehicle 306 or 308 require conversion to match the viewpoint of the rear-facing camera from the moving vehicle.
[0033] The vehicle coordination program 108 utilizes a machine learning generative adversarial network (GAN) class to convert the viewpoints of video feeds from vehicles 306 and 308, respectively, to a predicted viewpoint of the video feed from the moving vehicle 302, based on the location information of the moving vehicle 302, vehicle 306, and vehicle 308. The vehicle coordination program 108 converts multiple video feeds into a single image from the predicted viewpoint of the video feed from the moving vehicle 302, but the field of view of the predicted viewpoint of the video feed from the moving vehicle 302 is defined by a region with a periphery 316. The region with a periphery 316 includes at least one overlapping field of view that can be captured by the rear-facing camera system of vehicle 306 or 308. Utilizing a machine learning generative adversarial network (GAN) class, the vehicle coordination program 108 converts multiple video feeds into a single video feed and displays the video feed on the digital display rearview mirror of the moving vehicle 302. The vehicle coordination program 108 enables the operator of the moving vehicle 302 to remain aware of any vehicle immediately behind it (i.e., vehicle 304). In addition to displaying a video feed, the vehicle coordination program 108 ensures that the operator recognizes that the replaced image was obtained from the surrounding vehicles (i.e., vehicles 306 and 308) by including indicators such as statements or color borders in the video feed.
[0034] Figure 4 depicts a computer system 400, where the server computer 102 is an example of the computer system 400, including a vehicle coordination program 108. The computer system includes a processor 404, a cache 416, memory 406, persistent storage 408, a communication unit 410, an input / output (I / O) interface 412, and a communication fabric 402. The communication fabric 402 provides communication between the cache 416, memory 406, persistent storage 408, the communication unit 410, and the input / output (I / O) interface 412. The communication fabric 402 can be implemented in any architecture designed to pass data or control information, or both, between processors (such as microprocessors, communication and network processors), system memory, peripheral devices, and any other hardware components in the system. For example, the communication fabric 402 can be implemented with one or more buses or crossbar switches.
[0035] Memory 406 and persistent storage 408 are computer-readable storage media. In this embodiment, memory 406 includes random-access memory (RAM). Generally, memory 406 can include any suitable volatile or non-volatile computer-readable storage media. Cache 416 is a high-speed memory that enhances the performance of processor 404 by holding recently accessed data and data close to recently accessed data from memory 406.
[0036] Program instructions and data used to implement embodiments of the present invention may be stored in persistent storage 408 and in memory 406 via cache 416 for execution by one or more of the respective processors 404. In embodiments, persistent storage 408 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 may include a solid-state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0037] The media used by persistent storage 408 may also be removable. For example, a removable hard drive may be used for persistent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards, which are inserted into the drive for transfer to another computer-readable storage medium that is also part of persistent storage 408.
[0038] In these examples, the communication unit 410 provides communication with other data processing systems or devices. In these examples, the communication unit 410 includes one or more network interface cards. The communication unit 410 may provide communication through the use of either or both physical communication links and wireless communication links. Program instructions and data used to implement embodiments of the present invention may be downloaded to persistent storage 408 through the communication unit 410.
[0039] The I / O interface 412 enables data input and output with other devices that may be connected to each computer system. For example, the I / O interface 412 may provide connection to an external device 418, such as a keyboard, keypad, touchscreen, or several other suitable input devices, or a combination thereof. The external device 418 may also include portable computer-readable storage media, such as a thumb drive, portable optical or magnetic disk, and memory card. Software and data used to practice embodiments of the present invention can be stored on such portable computer-readable storage media and loaded into persistent storage 408 via the I / O interface 412. The I / O interface 412 also connects to the display 420.
[0040] The display 420 provides a mechanism for displaying data to the user, and may be, for example, a computer monitor.
[0041] The programs described herein are identified based on the applications in which they are implemented in specific embodiments of the present invention. Nevertheless, it should be understood that any specific program terminology used herein is for convenience only, and therefore the present invention should not be limited to use in any specific application identified, suggested, or both by such terminology.
[0042] The present invention may be a system, method, or computer program product, or a combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or more mediums) having computer-readable program instructions for causing a processor to execute an aspect of the present invention.
[0043] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A less-than-exclusive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random-access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved-reinforced structures on which instructions are recorded, and any suitable combination thereof. Computer-readable storage media as used herein should not be interpreted as inherently transient signals, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0044] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to each computing / processing device, or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. The network adapter card or network interface of each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on computer-readable storage media within each computing / processing device.
[0045] The computer-readable program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuit equipment, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk(R), C++, or similar, and procedural programming languages such as the C programming language or similar programming languages. The computer-readable program instructions may be executed as a standalone software package, either entirely or partially on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, for example, electronic circuit equipment including programmable logic circuit equipment, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by individualizing the electronic circuit equipment using state information of computer-readable program instructions in order to carry out aspects of the present invention.
[0046] Aspects of the present invention will be described herein with reference to flowcharts or block diagrams, or both, of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block in a flowchart or block diagram, or both, and combinations of blocks in a flowchart or block diagram, or both, are executable by computer-readable program instructions.
[0047] These computer-readable program instructions may be provided to the processor of a computer or other programmable data processing device to generate a machine that generates means for instructions to be executed via the processor of the computer or other programmable data processing device to perform functions / actions specified in one or more blocks of a flowchart or block diagram or both. These computer-readable program instructions may also be stored on a computer-readable storage medium so that the computer-readable storage medium containing the instructions can provide a product containing instructions to perform a manner of function / action specified in one or more blocks of a flowchart or block diagram or both, and can instruct a computer, programmable data processing device, or other device, or a combination thereof, to function in a particular manner.
[0048] Computer-readable program instructions may also be loaded into a computer, another programmable device, or another device to perform a series of operational steps on the computer, another programmable device, or another device in order to generate computer execution processes in order to produce computer execution processes in order to perform functions / actions specified in one or more blocks of a flowchart or block diagram or both.
[0049] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions described in a block may be performed independently of the order shown in the diagram. For example, two consecutively shown blocks may actually be performed as a single step in a manner that overlaps in time, substantially simultaneously, partially or fully, or blocks may sometimes be executed in reverse order depending on the functions they contain. It should also be noted that each block in a block diagram or flowchart, or both, and combinations of blocks in a block diagram or flowchart, or both, may be executable by a dedicated hardware-based system that performs a specified function or action, or executes a combination of dedicated hardware and computer instructions.
[0050] While this disclosure includes a detailed description of cloud computing, it should be understood that the implementations of the teachings enumerated herein are not limited to cloud computing environments. Rather, embodiments of the present invention are capable of running in any other type of computing environment, whether currently known or to be developed later.
[0051] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly delivered and released with minimal administrative effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0052] The characteristics are as follows:
[0053] On-demand self-service: Cloud users can unilaterally provide computing power, such as server time and network storage, automatically and as needed, without the need for human interaction with service providers.
[0054] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0055] Resource pooling: A provider's computing resources are pooled to serve a large number of users using a multi-tenant model, with dynamic allocation and reallocation of various physical and virtual resources as needed. Location independence is significant in that users generally have no control or knowledge of the exact location of the resources provided, and can specify location at a higher level of abstraction (e.g., country, state, or data center).
[0056] Rapid Scaleability: Capabilities can be rapidly and flexibly provided, sometimes automatically, to quickly scale out, and rapidly released to quickly scale in. To the user, the available capacity for provision often appears unlimited and can be purchased at any quantity at any time.
[0057] Measured Services: Cloud systems automatically control and optimize resource utilization by leveraging metric capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource utilization can be monitored, controlled, and reported, bringing transparency to both service providers and users.
[0058] The service model is as follows:
[0059] Software as a Service (SaaS): The ability provided to the user is to use the provider's applications running on cloud infrastructure. The applications are accessible from various client devices through thin client interfaces, such as web browsers (e.g., web-based email). Users have no control over the underlying cloud infrastructure, including networks, servers, operating systems, storage, or possibly individual application capabilities, with the exception of limited user-specific application configuration settings.
[0060] Platform as a Service (PaaS): The ability provided to users is to deploy user-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. Users do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they do have control over the deployed applications and, in some cases, the configuration of the environment hosting those applications.
[0061] Infrastructure as a Service (IaaS): The capability provided to the user is to offer processing, storage, networking, and other basic computing resources that the user can deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has limited control over the operating system, storage, deployed applications, and, in some cases, the selection of networking components (e.g., host firewalls).
[0062] The deployment model is as follows:
[0063] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure may be managed by the organization or a third party, and may be located on or off-site.
[0064] Community Cloud: Cloud infrastructure is shared by several organizations and supports a unique community that shares concerns (e.g., mission, security requirements, policies, and compliance considerations). Cloud infrastructure may be managed by the organization or a third party and may be located on-site or off-site.
[0065] Public cloud: Cloud infrastructure is available to the general public or large industry groups and is owned by organizations that sell cloud services.
[0066] Hybrid Cloud: Cloud infrastructure remains a unique entity, but it is a combination of two or more clouds (private, community, or public) linked together by standard or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.
[0067] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure, which includes a network of interconnected nodes.
[0068] Referring here to Figure 5, an illustrative cloud computing environment 50 is depicted. As shown in the figure, the cloud computing environment 50 includes one or more cloud computing nodes 10 that can communicate with local computing devices used by cloud users, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automotive computer system 54N, or a combination thereof. The nodes 10 may communicate with each other. The nodes 10 may be physically or virtually grouped in one or more networks, such as a private, community, public, or hybrid cloud, or a combination thereof, as described below (not shown). This enables the cloud computing environment 50 to provide infrastructure, platform, or software as a service, or a combination thereof, without requiring cloud users to maintain resources on their local computing devices. The types of computing devices 54A-N shown in Figure 5 are intended to be illustrative only, and it is understood that the computing node 10 and the cloud computing environment 50 can communicate with any type of computerized device via any type of network or network addressable connection or both (e.g., using a web browser).
[0069] Referring here to Figure 6, a set of functional abstraction layers provided by the cloud computing environment 50 (Figure 5) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 6 are for illustrative purposes only, and embodiments of the present invention are not limited thereto. The following layers and corresponding functions are provided as described:
[0070] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include a mainframe 61, a RISC (Reduced Instruction Set Computer) architecture-based server 62, a server 63, a blade server 64, a storage device 65, and network and networking components 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0071] The virtualization layer 70 provides an abstraction layer that may provide examples of virtual entities, such as virtual servers 71, virtual storage 72, virtual networks 73 including virtual private networks, virtual applications and operating systems 74, and virtual clients 75.
[0072] In one example, the management layer 80 may provide the functions described below. Resource provision 81 dynamically procures computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 tracks costs as resources are used within the cloud computing environment and bills or invoices for the usage of these resources. In one example, these resources may include application software licenses. Security verifies the identity of cloud users and tasks, as well as protecting data and other resources. The user portal 83 provides users and system administrators with access to the cloud computing environment. Service level management 84 allocates and manages cloud computing resources to meet required service levels. Service level agreement (SLA) planning and fulfillment 85 pre-positions and procures cloud computing resources for anticipated future requirements in accordance with SLAs.
[0073] The workload layer 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom education delivery 93, data analysis processing 94, transaction processing 95, and vehicle coordination programs 108.
[0074] The programs described herein are identified based on the applications in which they are implemented in specific embodiments of the present invention. Nevertheless, it should be understood that any specific program terminology used herein is for convenience only, and therefore the present invention should not be limited to use in any specific application identified, suggested, or both by such terminology.
[0075] The present invention may be a system, method, or computer program product, or a combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or more mediums) having computer-readable program instructions for causing a processor to execute an aspect of the present invention.
[0076] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A less-than-exclusive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random-access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved-reinforced structures on which instructions are recorded, and any suitable combination thereof. Computer-readable storage media as used herein should not be interpreted as inherently transient signals, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0077] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to each computing / processing device, or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. The network adapter card or network interface of each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on computer-readable storage media within each computing / processing device.
[0078] The computer-readable program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuit equipment, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk(R), C++, or similar, and procedural programming languages such as the C programming language or similar programming languages. The computer-readable program instructions may be executed as a standalone software package, either entirely or partially on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, for example, electronic circuit equipment including programmable logic circuit equipment, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by personalizing the electronic circuit equipment using state information of computer-readable program instructions in order to carry out aspects of the present invention.
[0079] Aspects of the present invention will be described herein with reference to flowcharts or block diagrams, or both, of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block in a flowchart or block diagram, or both, and combinations of blocks in a flowchart or block diagram, or both, are executable by computer-readable program instructions.
[0080] These computer-readable program instructions may be provided to the processor of a computer or other programmable data processing device to generate a machine that generates means for instructions to be executed via the processor of the computer or other programmable data processing device to perform functions / actions specified in one or more blocks of a flowchart or block diagram or both. These computer-readable program instructions may also be stored on a computer-readable storage medium so that the computer-readable storage medium containing the instructions can provide a product containing instructions to perform a manner of function / action specified in one or more blocks of a flowchart or block diagram or both, and can instruct a computer, programmable data processing device, or other device, or a combination thereof, to function in a particular manner.
[0081] Computer-readable program instructions may also be loaded into a computer, another programmable device, or another device to perform a series of operational steps on the computer, another programmable device, or another device in order to generate computer execution processes in order to produce computer execution processes in order to perform functions / actions specified in one or more blocks of a flowchart or block diagram or both.
[0082] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions described in a block may be performed independently of the order shown in the diagram. For example, two consecutively shown blocks may actually be performed as a single step in a manner that overlaps in time, substantially simultaneously, partially or fully, or blocks may sometimes be executed in reverse order depending on the functions they contain. It should also be noted that each block in a block diagram or flowchart, or both, and combinations of blocks in a block diagram or flowchart, or both, may be executable by a dedicated hardware-based system that performs a specified function or action, or executes a combination of dedicated hardware and computer instructions.
Claims
1. A method performed by a computer, Identifying anomalies in the data of the first system of the first vehicle, This includes identifying a second vehicle in the vicinity of the first vehicle in response to determining that the data associated with the anomaly can be captured by another vehicle, wherein the vicinity is defined by the operating distance of the first system of the first vehicle. The second system of the second vehicle captures the data associated with the anomaly, In response to determining that data captured by the second system of the second vehicle requires conversion to be compatible with the first vehicle, the second system of the second vehicle converts the captured data to be compatible with the first vehicle. Methods that further include this.
2. The process further includes displaying the converted captured data on the user interface of the first vehicle, the user interface being selected from a group including an infotainment system, a digital display rearview mirror, a dashboard, and designated visual indicators. The method according to claim 1.
3. Converting the captured data Determining that the viewpoint of the second system of the second vehicle is different from the expected viewpoint of the first system of the first vehicle, Based on the first position of the first vehicle and the second position of the second vehicle, the viewpoint of the second system of the second vehicle is converted to the expected viewpoint of the first system. The method according to claim 2, further comprising:
4. The method according to claim 3, wherein the expected viewpoint of the first system is that of the first camera system of the first vehicle, and the viewpoint of the second system is that of the second camera system of the second vehicle.
5. The method according to claim 4, wherein converting the viewpoint of the second system of the second vehicle to the predicted viewpoint of the first system includes utilizing a class of machine learning generative adversarial networks (GANs).
6. The method according to claim 1, wherein the anomaly is selected from a group including outlier data values, corrupted data values, and missing data values.
7. The predicted viewpoint of the first system is that of the first ultrasonic sensor of the first vehicle, and the viewpoint of the second system is that of the second ultrasonic sensor of the second vehicle. By converting the viewpoint of the second system of the second vehicle to the expected viewpoint of the first system, variations in the distance between the first vehicle and the second vehicle are taken into consideration. The method according to claim 3.
8. A computer program that causes a computer to perform each step of the method according to any one of claims 1 to 7.
9. It is a system, One or more computer processors, Computer-readable storage media and Includes, The computer-readable storage medium stores the computer program described in claim 8, The computer program is provided from the computer-readable storage medium to one or more computer processors, and each of the steps is performed by the one or more computer processors. system.
10. A computer-readable storage medium on which the computer program described in claim 8 is recorded.