Preventing low speed kiss collisions with non-moving objects

By using an optical camera in the vehicle to identify points of interest, recognize multiple matches, and reject motion false alarms, the high cost and false alarm problems of existing technologies are solved, and accurate identification and collision avoidance of stationary objects are achieved.

CN114973171BActive Publication Date: 2026-01-23VOLVO CAR CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210160135.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-02-22
Filing Date
2022-02-22
Publication Date
2026-01-23
Estimated Expiration
2042-02-22

AI Technical Summary

Technical Problem

Existing vehicle-mounted object avoidance systems using radar or sonar sensors are costly and prone to false alarms. It is necessary to utilize existing vehicle-mounted optical cameras to accurately identify stationary objects in order to reduce costs and improve accuracy.

Method used

By identifying points of interest in the set of images captured by the optical camera, identifying multiple matches, rejecting false motion alarms, initiating collision avoidance to avoid stationary objects, and utilizing memory and processor to execute computer-executable components for the identification and collision avoidance of stationary objects.

Benefits of technology

This technology enables accurate identification of stationary objects using existing optical cameras, reducing the cost of object avoidance systems and improving the accuracy and efficiency of collision avoidance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114973171B_ABST
    Figure CN114973171B_ABST
Patent Text Reader

Abstract

A computer-implemented method can include determining, by a system operatively coupled to a processor, a point of interest comprising an image coordinate in a set of images captured by an optical camera of a moving vehicle; determining, by the system, whether a multiple match exists in the set of images; responsive to determining that a multiple match does not exist, rejecting, by the system, the point of interest; responsive to determining that a multiple match exists, determining, by the system, whether the point of interest represents a false positive determination of a stationary object; responsive to determining that the point of interest is in motion and corresponds to a false positive, rejecting, by the system, the point of interest; and responsive to determining that the point of interest is stationary and does not correspond to a false positive, initiating, by the system, collision avoidance to avoid a stationary object corresponding to the point of interest.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to computer-implemented methods, systems, and computer program products. Background Technology

[0002] One or more embodiments of this document relate to stationary object recognition, and more specifically, to stationary object recognition and collision avoidance. Summary of the Invention

[0003] The following overview is presented to provide a basic understanding of one or more embodiments of the present invention. This overview is not intended to identify key or essential elements or to depict any scope of a particular embodiment or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that follows. In one or more embodiments described herein, systems, devices, computer-implemented methods, and / or computer program products are provided to assist in avoiding collisions with stationary objects.

[0004] Traditionally, object avoidance systems utilize radar or sonar sensors to detect objects. However, implementing these sensors in vehicles can be costly. Many vehicles now include multiple optical cameras as part of an onboard 360° camera system. Therefore, further utilization of these existing optical cameras could reduce the cost of object avoidance systems. However, using such optical cameras can lead to false positives in object recognition. Therefore, it is necessary to use existing onboard optical cameras to accurately and efficiently identify stationary objects.

[0005] According to one embodiment, a computer-implemented method includes: a system operatively coupled to a processor determining a point of interest (POI) comprising image coordinates from a set of images captured by an optical camera of a moving vehicle; the system determining whether a multi-match exists in the set of images; the system rejecting the POI in response to determining that a multi-match does not exist; the system determining whether the POI represents a false alarm for a stationary object in response to determining that a multi-match exists; the system rejecting the POI in response to determining that the POI is in motion and corresponds to a false alarm; and the system initiating collision avoidance to avoid a stationary object corresponding to the POI in response to determining that the POI is stationary and does not correspond to a false alarm.

[0006] According to another embodiment, a system includes: a memory storing computer-executable components; and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components include: a point of interest (POI) identification component that determines a POI, the POI comprising image coordinates in a set of images captured by an optical camera of a moving vehicle; a matching component that determines whether multiple matches exist in the set of images; a motion determination component that determines whether the POI is stationary or in motion in response to the matching component determining that multiple matches exist, and rejects the POI in response to determining that the POI is in motion, wherein a moving POI corresponds to a false alarm; and a collision avoidance component that initiates collision avoidance to avoid stationary objects corresponding to the POI in response to the motion determination component determining that the POI is stationary.

[0007] According to another embodiment, a computer program product includes a computer-readable storage medium having program instructions embedded therein, the program instructions being executable by a processor to cause the processor to: determine a point of interest, the point of interest including image coordinates in a set of images captured by an optical camera of a moving vehicle; determine whether a multi-match exists in the set of images; reject the point of interest in response to determining that a multi-match does not exist; determine whether a false alarm indicates that the point of interest represents a stationary object in response to determining that a multi-match exists; reject the point of interest in response to determining that the point of interest is in motion and corresponds to a false alarm; and initiate collision avoidance to avoid a stationary object corresponding to the point of interest in response to determining that the point of interest is stationary and does not correspond to a false alarm. Attached Figure Description

[0008] Figure 1 A block diagram of an exemplary non-limiting system that facilitates the identification of stationary objects according to one or more embodiments described herein is shown.

[0009] Figure 2 A block diagram of an exemplary non-limiting system for facilitating stationary object identification and collision avoidance, which may be based on one or more embodiments described herein, is shown.

[0010] Figure 3 A block diagram of an exemplary non-limiting system for facilitating stationary object identification and collision avoidance, which may be based on one or more embodiments described herein, is shown.

[0011] Figures 4A-4C A flowchart is shown of an exemplary non-limiting process for collision avoidance of a stationary object according to one or more embodiments described herein.

[0012] Figures 5A-5C A schematic diagram of an exemplary non-limiting stationary object recognition and collision avoidance technique according to one or more embodiments described herein is shown.

[0013] Figure 6 A flowchart illustrating an exemplary non-limiting process for stationary object identification and collision avoidance according to one or more embodiments described herein is shown.

[0014] Figures 7-9 A schematic diagram of an exemplary non-limiting static object point of interest detection and matching technique according to one or more embodiments described herein is shown.

[0015] Figure 10 A schematic diagram illustrating an exemplary non-limiting stereo position recognition according to one or more embodiments described herein is shown.

[0016] Figure 11 A schematic diagram illustrating an exemplary, non-limiting triangulation of a fixed object over time according to one or more embodiments described herein is shown.

[0017] Figure 12 A schematic diagram illustrating an exemplary, non-limiting triangulation of a moving object over time according to one or more embodiments described herein is shown.

[0018] Figure 13 A schematic diagram illustrating an exemplary non-limiting special case according to one or more embodiments described herein is shown.

[0019] Figures 14A-14D A schematic diagram illustrating an exemplary non-limiting special case according to one or more embodiments described herein is shown.

[0020] Figures 15A-15D A schematic diagram illustrating an exemplary, non-limiting special case according to one or more embodiments described herein is shown.

[0021] Figure 16 A schematic diagram illustrating an exemplary non-limiting special case according to one or more embodiments described herein is shown.

[0022] Figure 17 A schematic diagram illustrating an exemplary non-limiting special case according to one or more embodiments described herein is shown.

[0023] Figure 18 A flowchart is shown of an exemplary non-limiting computer implementation method for mitigating collisions with stationary objects according to one or more embodiments described herein.

[0024] Figure 19 A flowchart is shown of an exemplary computer program product that can mitigate collisions with stationary objects according to one or more embodiments described herein.

[0025] Figure 20This is an exemplary, non-limiting computing environment in which one or more embodiments described herein may be implemented.

[0026] Figure 21 This is an exemplary, non-limiting network environment in which one or more embodiments described herein may be implemented. Detailed Implementation

[0027] The following detailed description is illustrative only and is not intended to limit the embodiments and / or their application or use. Furthermore, it is not intended to be limited by any express or implied information presented in the foregoing Background or Summary of the Invention or Detailed Description sections.

[0028] One or more embodiments are now described with reference to the accompanying drawings, wherein similar reference numerals are used throughout to refer to similar elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a more thorough understanding of one or more embodiments. However, it will be apparent that one or more embodiments may be practiced without these specific details in various circumstances.

[0029] It should be understood that when an element is referred to as being "coupled" to another element, it can describe one or more different types of coupling, including but not limited to chemical coupling, communication coupling, capacitive coupling, electrical coupling, electromagnetic coupling, inductive coupling, operational coupling, optical coupling, physical coupling, thermal coupling, and / or another type of coupling. As referred to herein, an "entity" can include a person, client, user, computing device, software application, agent, machine learning model, artificial intelligence, and / or another entity. It should be understood that such an entity may be implemented in accordance with one or more embodiments described herein to facilitate the implementation of the subject matter disclosed herein.

[0030] Figure 1 A block diagram of an exemplary non-limiting system 102 according to one or more embodiments described herein is shown. System 102 may include a memory 104, a processor 106, a point of interest (POI) identification (ID) component 108, a matching component 110, a motion determination component 112, a bus 114, and / or a camera 116. In various embodiments, one or more of the memory 104, processor 106, point of interest (POI) identification (ID) component 108, matching component 110, motion determination component 112, bus 114, and / or camera 116 may be communicatively or operatively coupled to each other to perform one or more functions of system 102.

[0031] POI ID component 108 determines points of interest (e.g., 3D points) in an image. Such points of interest may include image coordinates within a set of images (e.g., a set of at least three images). These images may be captured by an optical camera (e.g., camera 116) of a vehicle (e.g., a moving vehicle). POI ID component 108 may search for points of interest in the image (e.g., based on local variations of neighboring pixels) and convert these points of interest into descriptors that are easier to compare or match. To achieve the foregoing, POI ID component 108 may utilize, for example, Scale Invariant Feature Transform (SIFT) or Compact Descriptors for Visual Search (CDVS).

[0032] Matching component 110 can determine whether multiple matches exist in the set of images (e.g., a collection of images). According to one embodiment, multiple matches may include a set of three images. In this respect, multiple matches may correspond to triple matches. To determine whether a triple match exists in the set of images, matching component 110 can determine whether a first point of interest in a first image corresponds to a second point of interest in a second image, whether a first point of interest in a first image corresponds to a third point of interest in a third image, and whether a second point of interest in a second image corresponds to a third point of interest in a third image. In this respect, matching component 110 attempts to perform a triple match. In other words, matching component 110 attempts to match points in the first image with corresponding points in the second image. For a triple pair or triple match to exist, the third image must also contain points corresponding to points in the first and second images. The foregoing content... Figures 7-8 It is shown in the form of a diagram.

[0033] Other embodiments may utilize multiple matching in different combinations. For example, according to one embodiment, multiple matching may include double-matching. In double-matching, matching component 110 may extrapolate a third point from the double match (e.g., in another image besides the two images in the double match). Another embodiment may perform triple-matching, for example, from a set of four images. At this point, matching component 110 may identify triple-matching from a set of four (or more) images. Further embodiments may utilize quadruple-matching. At this point, matching component 110 may determine whether four points corresponding to four images all correspond to the same point. It is understood that the matching component 110 or system or method herein is not limited to double, triple, or quadruple matching, and other combinations may be utilized.

[0034] Matching component 110 can also reject points of interest in response to determining that multiple matches (e.g., triple matches) do not exist; or accept points of interest if multiple matches exist. Such matching by matching component 110 can occur for hundreds or thousands of points of interest in a set of images (e.g., a set of three images). At this point, hundreds or thousands of multiple matches can be performed to identify objects within the set of images.

[0035] Matching component 110 can further determine the geographic location of objects in the set of images. By calculating the movement of the car from a previous point to the current point, based on the vehicle's wheel rotation and steering angle, the positional differences of the camera (e.g., camera 116) can be determined, and the two images (from the current point and the previous point) can be considered as a stereo setup. At this point, a first position of camera 116 at a first time point and a second position of camera 116 at a second time point can be determined. This allows for depth calculation. However, this requires the object being located to remain in a fixed position, typically in a parked situation. If the object is moving, the calculated depth and / or position may be incorrect. At this point, the same optical camera (e.g., camera 116) can be used, using three images to obtain a triplet stereo view. The matching component can compare these pairs (1-2, 2-3, and 1-3) and calculate the 3D position. If all three pairs produce the same position, a stationary object is potentially present. If at least one pair produces a different position, it is determined that the object is moving and the point of interest is discarded.

[0036] However, there are several special motion scenarios where the aforementioned process can create the illusion of a stationary object, even when using three image pairs to identify a stationary object relative to a moving object (and thus potentially a fixed object). These special cases will be discussed in more detail later.

[0037] The motion determination component 112 can also determine whether a point of interest is stationary or in motion, and reject the point of interest in response to determining that it is in motion. False alarms may occur (e.g., defined special cases), therefore the 3D position undergoes a special case test (e.g., performed by the motion determination component 112). If the object is still determined to be stationary after the special case test (e.g., if the 3D position does not match a defined special case), then the 3D point and the associated object can be (e.g., by the motion determination component 112) considered stationary objects. The special case test may include subjecting the 3D position to a series of defined special cases, which may manifest as false alarms of stationary objects. Such defined special cases are... Figures 13-17 This is provided in [the document], so it will be discussed in more detail later.

[0038] According to one embodiment, camera 116 may be a camera system located on the side of the vehicle. Camera 116 may be located in or above a door handle, side mirror, door, fender, wheel well, pedal, roof, window frame, or other location on the side of the vehicle. In other embodiments, camera 116 may be located at the front or rear of the vehicle, such as on the bumper, grille, hood, tailgate, or roof. Camera 116 may include an optical camera and may capture images at, for example, 30 frames per second (fps) or 60 fps, but may also utilize other frame rates. It is understood that camera 116 may include a camera from a 360° camera system of the vehicle. Such existing 360° systems are frequently used to display blind spots when parked and are currently available on many vehicles. Camera 116 may provide images or video to system 102 or any other component of the systems described herein.

[0039] Memory 104 may store one or more computer / machine-readable and / or executable components and / or instructions that, when executed by processor 106 (e.g., a classical processor, a quantum processor, etc.), facilitate the performance of operations defined by the one or more executable components and / or instructions. For example, memory 104 may store computer and / or machine-readable, writable, and / or executable components and / or instructions that, when executed by processor 106, facilitate the performance of various functions described herein related to system 102, POI ID component 108, matching component 110, motion determination component 112, camera 116, or other components, which will be discussed in more detail later, such as collision avoidance component 204 and / or artificial intelligence component 304. Memory 104 may include volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), etc.) and / or non-volatile memory (e.g., read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), etc.), which may employ one or more memory architectures. It will be understood that memory 104 may store images, frames, pairs, points of interest, and / or other information utilized herein.

[0040] Processor 106 may include one or more types of processors and / or electronic circuitry (e.g., classical processors, graphics processors, quantum processors, etc.) capable of implementing one or more computer- and / or machine-readable, writable, and / or executable components and / or instructions that can be stored on memory 104. For example, processor 106 may perform various operations that can be specified by such computer- and / or machine-readable, writable, and / or executable components and / or instructions, including but not limited to logic, control, input / output (I / O), arithmetic, etc. In some embodiments, processor 106 may include one or more of the following: a central processing unit, a multi-core processor, a microprocessor, a dual microprocessor, a microcontroller, a system-on-a-chip (SoC), an array processor, a vector processor, a quantum processor, and / or another type of processor.

[0041] Bus 114 may include one or more of the following: memory bus, memory controller, peripheral bus, external bus, local bus, quantum bus, and / or another type of bus that may employ various bus architectures (e.g., Industry Standard Architecture (ISA), Extended ISA (EISA), Micro Channel Architecture (MSA), Intelligent Drive Electronic Devices (IDE), Advanced Graphics Port (AGP), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Card Bus, Small Computer System Interface (SCSI), FireWire (IEEE 1394), etc.).

[0042] Now go to Figure 2 This diagram illustrates a block diagram of an exemplary non-limiting system 202 according to one or more embodiments described herein. System 202 may be similar to system 102 and may include a memory 104, a processor 106, a point of interest (POI) identification (ID) component 108, a matching component 110, a motion determination component 112, a bus 114, and / or a camera 116. For brevity, repeated descriptions of similar elements and / or processes employed in the various embodiments are omitted.

[0043] System 202 may additionally include a collision avoidance component 204. The collision avoidance component 204 may initiate collision avoidance to avoid stationary (e.g., fixed) objects corresponding to the point of interest, in response to a determination by the motion determination component that the point of interest is stationary. In this regard, the collision avoidance component 204 may facilitate one or more collision avoidance actions or maneuvers, such as automatic braking to prevent an approaching impact, generating a visual warning for a predicted impact, generating a tactile feedback warning for a predicted impact, or other collision avoidance actions or warnings. Such actions or warnings may depend on a defined proximity of the collision (e.g., whether the collision is within a proximity threshold, such as within two seconds; or whether the vehicle will be on the path for a different defined amount of time in the future).

[0044] The collision avoidance component 204 can utilize vehicle trajectory projection, which may be based on front wheel angles and vehicle speed or wheel rotation speed. Additional embodiments may also project the vehicle trajectory based on rear wheel angles (e.g., for vehicles that utilize rear steering in addition to forward steering) and / or rear wheel rotation speed. Based on the trajectory projection, the collision avoidance component 204 can issue a warning to prevent additional steering toward an object (e.g., via haptic feedback), or facilitate automatic braking if the steering wheel is turned too far so that the path intersects with the object. This action or warning may depend on the proximity of the collision (e.g., whether the collision is imminent or whether the vehicle will be on the route for a defined amount of time in the future). For example, if a collision is imminent (e.g., predicted to occur within two seconds), the vehicle may initiate automatic braking, as understood by those skilled in the art. If a collision is predicted to occur, but the collision is not imminent (e.g., predicted to occur more than two seconds), the vehicle may generate a visual or auditory warning. As understood by those skilled in the art, such a warning may be broadcast via the vehicle's speakers or displayed on a vehicle display (e.g., a head-up display, infotainment screen, instrument cluster, or other location).

[0045] In various embodiments, one or more of the memory 104, processor 106, point of interest (POI) identification (ID) component 108, matching component 110, motion determination component 112, bus 114, camera 116 and / or collision avoidance component 204 are communicatively or operably coupled to each other to perform one or more functions of system 202.

[0046] Figure 3 A block diagram of an exemplary non-limiting system 302 according to one or more embodiments described herein is shown. System 302 may be similar to system 202 and may include a memory 104, a processor 106, a point of interest (POI) identification (ID) component 108, a matching component 110, a motion determination component 112, a bus 114, a camera 116, and / or a collision avoidance component 204. For brevity, repeated descriptions of similar elements and / or processes employed in the various embodiments are omitted.

[0047] System 302 may optionally include an artificial intelligence component 304. Artificial intelligence or machine learning systems and techniques can be employed to facilitate learning of user behavior, context-based scenarios, preferences, etc., in order to take automated actions with a high degree of confidence. Utility-based analysis can be used to consider the benefits of taking action versus the costs of taking incorrect action. Probability- or statistical analysis can be used in conjunction with the foregoing and / or the following.

[0048] Artificial intelligence component 304 can learn to determine points of interest (POIs) in a set of images (e.g., a set of at least three images) including the coordinates of images captured by an optical camera (e.g., camera 116) of a vehicle (e.g., a moving vehicle), learn to determine whether the POI is stationary or in motion, learn to determine whether multiple matches exist in the set of images, learn to initiate collision avoidance to avoid stationary objects corresponding to the POIs, and / or learn to determine appropriate collision mitigation actions and other functions of system 302. For example, artificial intelligence component 304 may include and / or employ artificial intelligence (AI) models and / or machine learning (ML) models that can (e.g., through training using historical training data and / or feedback data) learn to perform the functions described above or below.

[0049] In some embodiments, the artificial intelligence component 304 may include an AI and / or ML model trained using historical training data (e.g., via supervised and / or unsupervised techniques) to perform the functions described above. This historical training data includes various contextual conditions corresponding to collision mitigation operations based on an optical camera. In this example, such an AI and / or ML model may further learn to perform the functions described above using training data including feedback data (e.g., via supervised and / or unsupervised techniques), wherein such feedback data may be collected and / or stored by the artificial intelligence component 304 (e.g., in memory 104). In this example, such feedback data may include various instructions described above / below, which may respond to observed / stored context-based information input over time to, for example, system 302. In some embodiments, performing the functions described above based on learning, the artificial intelligence component 304 may perform these functions in the same manner and / or using the same resources as the point of interest (POI) identification (ID) component 108, matching component 110, motion determination component 112, bus 114, camera 116, and / or collision avoidance component 204.

[0050] The artificial intelligence component 304 can initiate vehicle-related operations based on a defined confidence level determined using information acquired from, for example, camera 116 (e.g., feedback data). For example, based on learning to perform the aforementioned functions using the feedback data defined above, if the artificial intelligence component 304 determines, based on such feedback data, that a collision with a stationary object is possible, it can initiate vehicle-related operations. For example, based on learning to perform the aforementioned functions using the feedback data defined above, the artificial intelligence component 304 can determine an appropriate action in response to determining that a collision with a stationary object will occur or may occur.

[0051] In one embodiment, the artificial intelligence component 304 may perform a utility-based analysis that considers the costs and benefits of initiating the aforementioned vehicle-related actions. In this embodiment, the artificial intelligence component 304 may use one or more additional contextual conditions to determine whether the current collision avoidance action should be taken. Such contextual conditions may include vehicle information, such as (but not limited to) wheel rotation speeds (e.g., vehicle speed) and wheel angles (e.g., steering angle).

[0052] To facilitate the aforementioned functions, the artificial intelligence component 304 can perform classification, association, inference, and / or expression related to artificial intelligence principles. For example, the artificial intelligence component 304 can employ an automatic classification system and / or automatic classification. In one example, the artificial intelligence component 304 can employ probability-based and / or statistical analysis (e.g., considering analytical utility and cost) to learn and / or generate inferences. The artificial intelligence component 304 can employ any suitable machine learning-based, statistical, and / or probability-based techniques. For example, the artificial intelligence component 304 can employ expert systems, fuzzy logic, support vector machines (SVM), hidden Markov models (HMM), greedy search algorithms, rule-based systems, Bayesian models (e.g., Bayesian networks), neural networks, other nonlinear training techniques, data fusion, utility-based analysis systems, systems employing Bayesian models, etc. In another example, the artificial intelligence component 304 can perform a collection of machine learning computations. For example, the AI ​​component 304 can perform a set of clustering machine learning computations, a set of logistic regression machine learning computations, a set of decision tree machine learning computations, a set of random forest machine learning computations, a set of regression tree machine learning computations, a set of least squares machine learning computations, a set of instance-based machine learning computations, a set of regression machine learning computations, a set of support vector regression machine learning computations, a set of k-means machine learning computations, a set of spectral clustering machine learning computations, a set of rule learning machine learning computations, a set of Bayesian machine learning computations, a set of deep Boltzmann machine learning computations, a set of deep belief network computations, and / or a set of different machine learning computations.

[0053] In various embodiments, one or more of the following components—memory 104, processor 106, point of interest (POI) identification (ID) component 108, matching component 110, motion determination component 112, bus 114, camera 116, collision avoidance component 204, and / or artificial intelligence component 304—may be communicatively or operably coupled to each other to perform one or more functions of system 302.

[0054] Figure 4AA flowchart of an exemplary non-limiting process 400 for stationary object recognition and collision avoidance according to one or more embodiments described herein is shown. At 402, triangulation of the coupling points (e.g., from three image frames) can be performed. Figure 4B This triangulation at 402 is discussed in more detail. At 404, if coupling points (e.g., multiple pairs or multiple matches, such as triple matches or other combinations) exist, then at 408, these points are considered to correspond to potentially fixed (e.g., potentially stationary) objects. Objects are considered potentially stationary here because if a potentially fixed object is identified as stationary based on a false positive, the potentially fixed object may still be in motion, which could occur before special case detection or matching. If at 404, these points do not correspond to the same location, then at 416, these points are considered to correspond to moving objects, and the process can terminate because, according to one embodiment, process 400 is configured to avoid stationary objects rather than moving objects. At 410, the potentially fixed object from 408 undergoes special case detection for moving objects. Special case testing may include subjecting the 3D position (corresponding to the potentially stationary object) to a series of defined special cases. Figures 13-17 The code provides special cases for this definition. At 412, if a potentially fixed object is determined to be a moving object based on a comparison with the special case, then at 416, these points are considered to correspond to the moving object, and the process can terminate. If at 412, a potentially fixed object is determined to be a fixed object based on a comparison with the special case, then at 414, the collision avoidance process can be facilitated. Figure 4C The collision avoidance at point 414 is discussed in more detail.

[0055] Figure 4B A flowchart illustrating an exemplary triangulation of the coupling points is shown. At 402, triangulation of the coupling points can be performed (e.g., across three frames). 402 may include using frames (e.g., from camera 116) at 418 as input for POI detection of the frames (e.g., at least three frames) at 420. POI detection may utilize, for example, Scale Invariant Feature Transform (SIFT) or Compact Descriptor for Visual Search (CDVS). At 424, triangulation can be performed on the set of matching points for each POI using the associated vehicle speed and vehicle steering angle as input from 422 and the POI detection from 420.

[0056] Figure 4CA flowchart of an exemplary collision avoidance 414 is shown. The steering angle α at 426 and the speed v at 428 can be input to 430, where the vehicle's trajectory and the vehicle's potential trajectory ±Δα(v) are determined or calculated. According to one embodiment, the potential variation of the steering angle Δα(v) can be smaller at higher speeds. At this point, at higher speeds, the expected Δα(v) can be smaller. In other words, the steering angle tends to be smaller at higher speeds. Therefore, collision avoidance does not take into account sharp turns at high speeds. Speed ​​can also help determine the proximity of a collision (e.g., speed can help determine the time required to pass a distance that could lead to a collision). At 434, the vehicle geometry (e.g., vehicle position and trajectory) is compared with the 3D position of one or more stationary objects (determined at 432) received from 432. Such 3D positions can be determined based on... Figure 4A and Figure 4B At 402, the risk of collision is determined. At 438, if a collision risk is imminent based on the comparison at 434, automatic braking can be facilitated at 436 to prevent an imminent impact. An imminent collision may include a predicted future collision, which is predicted to occur within a defined time frame (e.g., within two seconds). If a collision risk is predicted at 438 but is not imminent (e.g., predicted to occur but not within the aforementioned defined time frame), a risk of a non-imminent collision is determined at 442. If a collision risk exists (but is not imminent), a visual warning can be generated at 440. The visual warning may include a message or alert on a head-up display, infotainment screen, instrument cluster or digital instrument cluster, or other screens within the relevant vehicle. As those skilled in the art will understand, such a warning may be broadcast via the vehicle's speakers or may be displayed on a vehicle display (e.g., head-up display, infotainment screen, instrument cluster, or other location). If there is no collision risk on the current trajectory at 442, a collision risk at a potential trajectory is determined at 446. Depending on driver input, the potential trajectory may include a trajectory that the vehicle is not currently taking but may take in the future. In other words, the potential trajectory can include the trajectory if the driver makes a steering change. If there is a collision risk at the potential trajectory at point 446, a steering warning can be applied at point 444. The steering warning can include, for example, tactile feedback (e.g., in the steering wheel or seat of the relevant vehicle). According to one embodiment, tactile feedback can be applied if the vehicle driver steers towards the potential collision trajectory. Thus, the tactile feedback can remind or inform the driver not to enter such a collision trajectory. If there is no collision risk at the potential trajectory at point 446, nothing happens at point 448.

[0057] Now go to Figure 5AA diagram illustrating an exemplary automatic braking scenario 500 according to various embodiments described herein. As described above, automatic braking can be used (e.g., by collision avoidance component 204) to detect an impending collision. Figure 5A As shown, the predicted front wheel path 510 of vehicle 502 can avoid object 504. However, the predicted rear wheel path 508 of vehicle 502 may be on a collision path adjacent to object 504. An adjacent collision can be predicted to occur at 506. In this scenario, vehicle 502 can easily brake automatically, preventing the adjacent collision 506 from occurring.

[0058] refer to Figure 5B A diagram illustrating an exemplary visual warning scenario 520 according to various embodiments described herein. As described above, warnings (e.g., visual and / or auditory warnings) can be provided for collisions determined not to be nearby (e.g., via collision avoidance component 204). Figure 5B As shown, the front wheel predicted path 510 can avoid object 504. However, the rear wheel predicted path 508 of vehicle 502 may be on the collision route with object 504, even though the collision is not adjacent in this scenario 520 (e.g., not within the defined adjacent collision threshold). A non-adjacent collision can be predicted to occur at 506. In this scenario, vehicle 502 can generate a visual warning to alert the driver of vehicle 502 to collision 506.

[0059] Now go to Figure 5C A diagram illustrating an exemplary steering warning scenario 530 according to various embodiments described herein. As described, depending on driver input, the potential trajectory can include a trajectory that the vehicle is not currently taking but may take in the future. If there is a risk of collision at the potential trajectory, a steering warning can be applied. Figure 5C As shown, the front wheel predicted path 510 can avoid object 504. The rear wheel predicted path 508 of vehicle 502 can also avoid object 504. However, a sharp left turn of vehicle 502 may place vehicle 502 on a trajectory that would lead to a collision at 506. Therefore, a potential collision trajectory exists. If the driver of vehicle 502 attempts to make a sharp left turn (in this non-limiting example), haptic feedback can be applied (e.g., in the relevant steering wheel) to warn the driver against taking such a turning trajectory, thereby avoiding a collision at 506.

[0060] Figure 6A flowchart illustrating an exemplary non-limiting flowchart of a process 600 for special case detection of a moving object according to one or more embodiments described herein is shown. At 602, the locations of key points (e.g., points of interest) and their corresponding 3D positions in an image of a potential stationary object are determined. At 604, defined special cases are tested (exemplary defined special cases will be discussed in more detail later). At 606, if the potential stationary object matches a special case, then at 612, the object is considered a moving object and is therefore disregarded for stationary object collision warnings or avoidance purposes. If the potential stationary object does not match a special case, then at 608, the potential stationary object is considered a stationary object. At 610, the 3D position of the stationary object is output (e.g., to collision avoidance component 204).

[0061] Figure 7 and Figure 8 POI matching according to various embodiments described herein is illustrated. Figure 7 There exist two sets with triplets. For example, POI 702 in image 714, POI 704 in image 716, and POI 706 in image 718 all correspond to common locations among the three images. Similarly, POI 708 in image 714, POI 710 in image 716, and POI 712 in image 718 all correspond to common locations among the three images.

[0062] exist Figure 8 In the image, POI 808 in image 814, POI 810 in image 816, and POI 812 in image 818 all correspond to common locations across the three images. Therefore, these points exhibit multiple matching (triple matching in this example). However, while POI 802 in image 814 corresponds to POI 806 in image 818, and POI 822 in image 816 corresponds to POI 824 in image 818, POI 824 does not correspond to POI 802, and POI 806 does not correspond to POI 822. Therefore, there is no triple matching for these POIs, and they are therefore rejected and not considered for determining the 3D location of the object. Even if either POI 802 or POI 804 matches POI 806, this is not a triple pair. It is understood that the foregoing represents an exemplary triple matching, but other combinations can be utilized. For example, according to one embodiment, in the case of double matching, POI 804 can be extrapolated based on POI 802 and POI 806 (e.g., via matching component 110). In other embodiments, quadruple or more matching may be required.

[0063] Figure 93D position calculations according to various embodiments described herein are illustrated. Images 902 and 904 may be calibrated images such that each row and each column corresponds to the vertical and horizontal viewpoints, respectively, and then the X and Y values ​​can be converted into angles, and 3D points can be calculated using stereo image reconstruction (e.g., see...). Figure 10 In solid triangulation, when an object P is located between two cameras (C1 and C2), and the positions of the cameras relative to each other are known (T), the distance to P can be calculated using triangulation. At this point, triple pairs (e.g., using triple pair matching) can be used to determine the object's position, and false alarms can be removed (e.g., using special case matching), but it is understood that other combinations, such as double or quadruple matching (or other combinations), can be utilized. According to one embodiment, camera calibration can be used to convert pixel coordinates into angles. At this point, when an image is calibrated (e.g., corrected), all pixels in a column (or row) can have the same lateral angular deviation (or be vertical for rows) as the optical axis (e.g., a vector from the center of the camera to the center it is aiming at).

[0064] Figure 10 Exemplary solid triangulation measurements according to various embodiments herein are illustrated. In this non-limiting example, only α1 is negative, and according to the solution of the following equation, the positive directions of all angles can be outside the X-axis: In this example, O1 can be the angle of projection onto the plane spanned by the Y-axis and the optical axis of camera C1. The distance to the object can first be projected onto the optical axis, and then a triangle, similar to the two equations used to calculate Z and X, produces an equation to determine Y. This projection can be the denominator in the following equation:

[0065]

[0066] Note that O1 has not yet been used and may not need to be used, because the final coordinate Y can only be calculated from Equation 2. The following equation is generated using camera C2:

[0067]

[0068] The average value Y can be derived from equations 2 and 3.

[0069]

[0070] On this point:

[0071] Figure 11 An exemplary triangulation of the stationary object 1104 relative to the vehicle 1102 over time is shown, and Figure 12An exemplary triangulation of the moving object 1204 relative to the vehicle 1202 over time is shown.

[0072] Figures 13-17 An exemplary definition of a special case is shown, in which an object (e.g., a potentially stationary object) appears to be a stationary object but is actually a false alarm, thus representing a moving object. This special case can be tested to identify false alarms and to discard moving objects from further analysis and / or subsequent actions (e.g., collision avoidance).

[0073] Figure 13 Special case 1300 is shown, where object 1302 and car 1304 move parallel to each other in the same direction. When V... o =V c When the perceived fixed position is ∞, collision avoidance is not required when encountering the special case 1300. At this point, multi-point detection reveals a constant scale (e.g., the object maintains a constant but unknown distance). Multiple points of interest can correspond to a single object, and the scale of said object can be determined over time, for example, by backward linking to earlier, fully processed iterations across a set of three or more images. However, because the distance is constant, collision avoidance (e.g., mitigation) is not required. Therefore, the object can be appropriately treated as a moving object and thus ignored or rejected.

[0074] Figures 14A-14D This refers to the special case where car 1404 (e.g., vehicle) and object 1402 move parallel to each other in opposite directions. Figure 14A A special case 1400 is illustrated, in which object 1402 and car 1404 move at constant speeds in parallel, opposite directions. In this special case 1400, when V... o =-V c At this time, the object is detected as a stationary object that is actually closer than it is. However, no collision avoidance action (e.g., mitigation or warning) is required because the steering angle of the car 1404 gives the car 1404 a trajectory that will not cause the car 1404 to collide with the object 1402, even if the object 1402 is mistakenly perceived as closer than it is (as in special case 1400). Figure 14B Special case 1410, similar to special case 1400, is shown. In special case 1410, object 1402 is further forward than in special case 1400. In special case 1410, object 1402 is again perceived as closer than it actually is. Here, no action is required due to the steering angle of car 1404 (parallel movement will not result in a collision with object 1402). However, if the steering angle needs to be changed, such as... Figure 14CAs shown in special case 1420, car 1404 may begin to move towards object 1402. Nevertheless, when V o =-V c At this point, no action is required. If the steering angle changes, continuous observation will reveal the true position of the object by using multiple pair matching. Special case 1430 shows car 1404 and object 1402 moving in opposite directions at constant (but different) speeds. At this point, -kV o =V c , where k is a constant. Here, although object 1402 is detected as a stationary object that is actually closer than it is, no action is required. Because the steering angle threshold of car 1404 is not exceeded, no action is required.

[0075] Figure 15A A special case 1500 is shown, in which object 1502 and car 1504 have constant motion (same x-direction and opposite y-direction). Here, V xo =V c At this point, there exists a fixed (single-point) position of perception: ∞. No action is required (e.g., no collision avoidance is needed) because multi-point detection reveals that the scale (e.g., angle α) is decreasing, therefore the object is moving away.

[0076] Figure 15B A special case 1510 is shown, in which object 1502 and car 1504 have constant motion (the same x-direction and nearly identical y-direction). Here, V xo =V c At this point, there exists a fixed (single-point) location for perception: ∞. Multi-point detection reveals that the scale (e.g., angle α) is increasing, therefore an object must be approaching. The predicted collision time occurs when α = 180°. Therefore, if the predicted collision time is within a threshold, the system (e.g., system 102, 202, or 302) can issue a warning or take different collision mitigation actions. Otherwise, such a system can continue monitoring.

[0077] Figure 15C A special case 1520 is shown, in which object 1502 and car 1504 have constant motion (opposite x-directions and adjacent y-directions). Here, V o =V c Therefore, there is no fixed location for perception. This special case 1520 is identified as a moving object (and discarded before the special case is identified).

[0078] Figure 15D Special case 1530 is shown, in which object 1502 and car 1504 have constant motion (opposite x-direction and away y-direction). Here, Vo =V c Therefore, there is no fixed location for perception. This special case 1530 is identified as a moving object (and discarded before the special case is identified).

[0079] Figure 16 A special case 1600 is illustrated, in which object 1602 and car 1604 turn in opposite directions on similar curved trajectories. Here, although object 1602 is detected as a stationary object that is actually closer than it is, the steering angle of car 1604 causes the perceived object to be stationary in a position that will not pose a collision threat to car 1604, thus requiring no action.

[0080] Figure 17 Special case 1700 is illustrated, where object 1702 and car 1704 turn in the same direction along similar curved trajectories. Here, although the perceived location is very far, no action is required because multi-point detection reveals a constant scale (e.g., the object remains at a constant but unknown distance). For example, a perceived location of 20 meters or more can be considered very far, thus requiring no action; however, other thresholds greater than or less than 20 meters can be utilized. Furthermore, such thresholds can be modified or otherwise adapted (e.g., the optimal threshold distance can be determined based on settings or using machine learning).

[0081] Figure 18 A flowchart of an exemplary, non-limiting computer-implemented method 1800 according to one or more embodiments described herein, which can mitigate collisions with stationary objects, is shown. For brevity, repeated descriptions of similar elements and / or processes employed in the various embodiments are omitted. At 1802, the computer-implemented method 1800 may include a system operatively coupled to a processor determining a point of interest, the point of interest comprising image coordinates in a set of images captured by an optical camera of a moving vehicle. At 1804, the computer-implemented method 1800 may include the system determining whether a multi-match exists in the set of images. At 1806, the computer-implemented method 1800 may include the system rejecting the point of interest in response to determining that a multi-match does not exist. At 1808, the computer-implemented method 1800 may include the system determining whether a false alarm indicates that the point of interest represents a stationary object in response to determining that a multi-match exists. At 1810, the computer-implemented method 1800 may include the system rejecting the point of interest in response to determining that the point of interest is in motion and corresponds to a false alarm. At 1812, the computer-implemented method 1800 may include, in response to determining that the point of interest is in motion and corresponding to a false alarm, the system rejects the point of interest.

[0082] Figure 19A flowchart of exemplary non-limiting procedure instructions 1900 for mitigating collisions with stationary objects according to one or more embodiments described herein is shown. For brevity, repeated descriptions of similar elements and / or processes employed in the various embodiments are omitted. At 1902, a point of interest (POI) is determined from a set of images including the coordinates of images captured by an optical camera of a moving vehicle. At 1904, it is determined whether a multi-match exists in the set of images. At 1906, in response to determining that a multi-match does not exist, the POI is rejected. At 1908, in response to determining that a multi-match exists, a false alarm is determined to indicate whether the POI represents a stationary object. At 1910, in response to determining that the POI is in motion and corresponds to a false alarm, the POI is rejected. At 1912, in response to determining that the POI is stationary and does not correspond to a false alarm, collision avoidance is initiated to avoid the stationary object corresponding to the POI.

[0083] The system described herein can be coupled (e.g., communication ground, electrical ground, operability ground, optical ground, etc.) to one or more local or remote (e.g., external) systems, sources, and / or devices (e.g., electronic control systems (ECUs), classical and / or quantum computing devices, communication devices, etc.). For example, system 102 (or other systems, controllers, processors, etc.) can be coupled (e.g., communication ground, electrical ground, operability ground, optical ground, etc.) to one or more local or remote (e.g., external) systems, sources, and / or devices using data cables (e.g., High Definition Multimedia Interface (HDMI), Recommended Standard (RS), Ethernet cables, etc.) and / or one or more wired networks described below.

[0084] In some embodiments, the system described herein can be coupled to one or more local or remote (e.g., external) systems, sources, and / or devices (e.g., electronic control units (ECUs), classical and / or quantum computing devices, communication devices, etc.) via a network (e.g., communicative ground, electrical ground, operative ground, optical ground, etc.). In these embodiments, such a network may include one or more wired and / or wireless networks, including but not limited to cellular networks, wide area networks (WANs) (e.g., the Internet), and / or local area networks (LANs). For example, system 102 can communicate with one or more local or remote (e.g., external) systems, sources, and / or devices (e.g., computing devices using such a network), which may include virtually any desired wired or wireless technology, including but not limited to: Power Line Ethernet, Wireless Fidelity (Wi-Fi), etc. Fiber optic communication, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), WiMAX, Enhanced General Packet Radio Service (Enhanced GPRS), 3GPP Long Term Evolution (LTE), 3GPP2 Ultra Mobile Broadband (UMB), High-Speed ​​Packet Access (HSPA), Zigbee and other 802.XX wireless technologies and / or legacy telecommunications technologies, Session Initiation Protocol (SIP) RF4CE protocol, WirelessHART protocol, 6LoWPAN (IPv6 over low-power wireless LAN), Z-Wave, ANT, ultra-wideband (UWB) standard protocol and / or other proprietary and non-proprietary communication protocols. In this example, system 102 may therefore include hardware such as a central processing unit (CPU), transceiver, decoder, and antenna (e.g., ultra-wideband (UWB) antenna). Low-energy (BLE) antennas, quantum hardware, quantum processors, etc., software (e.g., collections of threads, collections of processes, executing software, quantum pulse scheduling, quantum circuits, quantum gates, etc.), or combinations of hardware and software that facilitate the transfer of information between the system here and remote (e.g., external) systems, sources and / or devices (e.g., computing and / or communication devices, such as smartphones, smartwatches, wireless earbuds, etc.).

[0085] The systems described herein may include one or more computer- and / or machine-readable, writable, and / or executable components and / or instructions that, when executed by a processor (e.g., processor 106, which may include a classical processor, a quantum processor, etc.), facilitate operations defined by such components and / or instructions. Furthermore, in many embodiments, as described herein with or without reference to the various accompanying drawings disclosed herein, any component associated with the systems herein may include one or more computer- and / or machine-readable, writable, and / or executable components and / or instructions that, when executed by a processor, facilitate operations defined by such components and / or instructions. For example, the Point of Interest (POI) identification (ID) component 108, the matching component 110, the motion determination component 112, the bus 114, the camera 116, the collision avoidance component 204, and / or the artificial intelligence component 304, and / or any other component associated with the system disclosed herein (e.g., communicatively, electronically, operatively, and / or optically coupled to and / or used by the system described herein), may include one or more such computer and / or machine-readable, writable, and / or executable components and / or one or more instructions. Therefore, according to various embodiments, as disclosed herein, the system and / or any component associated therewith may employ a processor (e.g., processor 106) to execute one or more such computer and / or machine-readable, writable, and / or executable components and / or one or more instructions to facilitate the performance of one or more operations described herein with reference to the system and / or any such component associated therewith.

[0086] The systems described herein may include any type of system, device, machine, apparatus, component, and / or instrument, including a processor and / or capable of communicating with one or more local or remote electronic systems and / or one or more local or remote devices via wired and / or wireless networks. All such embodiments are foreseeable. For example, a system (e.g., system 302 or any other system or controller described herein) may include computing devices, general-purpose computers, special-purpose computers, airborne computing devices, communication devices, airborne communication devices, server devices, quantum computing devices (e.g., quantum computers), tablet computing devices, handheld devices, server-type computing machines and / or databases, laptop computers, notebook computers, desktop computers, cellular phones, smartphones, consumer appliances and / or instruments, industrial and / or commercial equipment, digital assistants, telephones supporting multimedia internet, multimedia players, and / or other types of devices.

[0087] To provide additional context for the various embodiments described herein, Figure 20 The following discussion is intended to provide a brief overview of suitable computing environments 2000 for which various embodiments of the embodiments described herein may be implemented. While the embodiments have been described above in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that these embodiments may also be implemented in combination with other program modules and / or as a combination of hardware and software.

[0088] Typically, program modules include routines, programs, components, data structures, etc., that perform specific tasks or implement specific abstract data types. Furthermore, those skilled in the art will understand that the methods of this invention can be implemented using other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, and personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, each of which can be operatively coupled to one or more associated devices.

[0089] The illustrated embodiments described herein can also be practiced in a distributed computing environment, where some tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can reside in both local and remote memory storage devices.

[0090] Computing devices typically include a variety of media, which may include computer-readable storage media, machine-readable storage media, and / or communication media. These two terms are used interchangeably herein, as follows. A computer-readable storage media or a machine-readable storage media can be any available storage medium accessible by a computer and includes volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, a computer-readable storage media or a machine-readable storage media can be implemented using any method or technique for storing information such as computer-readable or machine-readable instructions, program modules, structured data, or unstructured data.

[0091] Computer-readable storage media may include, but is not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other storage technologies, optical disc read-only memory (CD-ROM), digital versatile optical disc (DVD), Blu-ray disc (BD) or other optical disc storage, magnetic tape cassettes, magnetic tape, disk storage or other magnetic storage devices, solid-state drives or other solid-state storage devices, or other tangible and / or non-transitory media that can be used to store desired information. In this context, the terms “tangible” or “non-transitory” are used herein to apply to storage, memory, or computer-readable media, and are understood to exclude the propagation of transient signals themselves as a modifier, without waiving the right to all standard storage, memory, or computer-readable media that do not merely propagate transient signals themselves.

[0092] The computer-readable storage medium can be accessed by one or more local or remote computing devices (e.g., via access requests, queries, or other data retrieval protocols) to perform various operations related to the information stored on the medium.

[0093] Communication media typically embody computer-readable instructions, data structures, program modules, or other structured or unstructured data in data signals (such as modulated data signals, carrier waves, or other transmission mechanisms), and include any medium for information transmission or delivery. The term "modulated data signal" or signal refers to a signal whose one or more characteristics are set or altered in a manner that encodes information in one or more signals. By way of example and not limitation, communication media include wired media (such as wired networks or direct wired connections) and wireless media (such as acoustic, RF, infrared, and other wireless media).

[0094] Refer again Figure 20 An example environment 2000 for implementing various embodiments of the aspects described herein includes a computer 2002, which includes a processing unit 2004, a system memory 2006, and a system bus 2008. The system bus 2008 couples system components, including but not limited to the system memory 2006, to the processing unit 2004. The processing unit 2004 can be any of a variety of commercially available processors. Dual microprocessors and other multiprocessor architectures can also be used as the processing unit 2004.

[0095] The system bus 2008 can be any of a variety of bus architectures, which can be further interconnected to memory buses, peripheral buses, and local buses (with or without memory controllers) using any of a variety of commercially available bus architectures. System memory 2006 includes ROM 2010 and RAM 2012. The Basic Input / Output System (BIOS) can be stored in non-volatile memory such as ROM, Erasable Programmable Read-Only Memory (EPROM), or EEPROM, containing basic routines that facilitate, for example, the transfer of information between components within the computer 2002 during startup. RAM 2012 may also include high-speed RAM, such as static RAM for caching data.

[0096] Computer 2002 also includes an internal hard disk drive (HDD) 2014 (e.g., EIDE, SATA), one or more external storage devices 2016 (e.g., floppy disk drive (FDD) 2016, memory stick or flash drive reader, memory card reader, etc.), and an optical disc drive 2020 (e.g., capable of reading from or writing to CD-ROMs, DVDs, BDs, etc.). While the internal HDD 2014 is shown as residing within computer 2002, it may also be configured for external use within a suitable chassis (not shown). Additionally, although not shown in environment 2000, a solid-state drive (SSD) may be used in addition to, or in place of, the HDD 2014. The HDD 2014, one or more external storage devices 2016, and optical disc drive 2020 may be connected to system bus 2008 via HDD interface 2024, external storage interface 2026, and optical disc drive interface 2028, respectively. The interface 2024 for the external driver implementation may include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1794 interface technologies. Other external driver connection technologies are also within the scope of consideration for the embodiments described herein.

[0097] Drives and their associated computer-readable storage media provide non-volatile storage of data, data structures, computer-executable instructions, etc. For Computer 2002, drives and storage media accommodate the storage of any data in a suitable digital format. Although the above description of computer-readable storage media refers to various types of storage devices, those skilled in the art will understand that other types of computer-readable storage media, whether currently existing or developed in the future, may also be used in the example operating environment, and furthermore, any such storage medium may contain computer-executable instructions for performing the methods described herein.

[0098] Multiple program modules can be stored in the drive and RAM 2012, including the operating system 2030, one or more application programs 2032, other program modules 2034, and program data 2036. All or part of the operating system, applications, modules, and / or data can also be cached in RAM 2012. The systems and methods described herein can be implemented using various commercially available operating systems or combinations of operating systems.

[0099] Computer 2002 may optionally include emulation technology. For example, a hypervisor (not shown) or other intermediary may emulate the hardware environment of operating system 2030, and the emulated hardware may optionally be different from that of operating system 2030. Figure 20 The hardware is shown. In such an embodiment, the operating system 2030 may include one of a plurality of virtual machines (VMs) hosted on the computer 2002. Furthermore, the operating system 2030 may provide a runtime environment for the application 2032, such as the Java Runtime Environment or the .NET Framework. A runtime environment is a consistent execution environment that allows the application 2032 to run on any operating system that includes a runtime environment. Similarly, the operating system 2030 may support containers, and the application 2032 may be in the form of a container, which is a lightweight, standalone, executable software package that includes, for example, code, runtime, system tools, system libraries, and application settings.

[0100] Furthermore, the Computer 2002 can enable security modules such as the Trusted Processing Module (TPM). For example, using a TPM, the boot component hashes the next boot component over time and waits for the result to match a security value before loading the next boot component. This process can occur at any layer of the Computer 2002's code execution stack (e.g., at the application execution level or the operating system (OS) kernel level), thus achieving security at any code execution level.

[0101] Users can input commands and information into computer 2002 through one or more wired / wireless input devices, such as keyboard 2038, touchscreen 2040, and pointing devices such as mouse 2042. Other input devices (not shown) may include microphones, infrared (IR) remote controls, radio frequency (RF) remote controls or other remote controls, joysticks, virtual reality controllers and / or virtual reality headsets, game controllers, styluses, image input devices (e.g., cameras), gesture sensor input devices, visual motion sensor input devices, emotion or face detection devices, biometric input devices (e.g., fingerprint or iris scanners), etc. These and other input devices are typically connected to processing unit 2004 via input device interface 2044, which may be coupled to system bus 2008, but may also be connected via other interfaces (e.g., parallel ports, IEEE 1394 serial ports, game ports, USB ports, IR interfaces, etc.). (Interfaces, etc.) connections.

[0102] Monitor 2046 or other types of display devices can also be connected to system bus 2008 via an interface (such as video adapter 2048). In addition to monitor 2046, the computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.

[0103] Computer 2002 can operate in a network environment to one or more remote computers, such as remote computers (one or more) 2050, via logical connections through wired and / or wireless communications. The remote computers (one or more) 2050 can be workstations, server computers, routers, personal computers, laptops, microprocessor-based entertainment devices, peer-to-peer devices, or other common network nodes, and typically include many or all of the elements described relative to computer 2002, although for brevity only memory / storage device 2052 is shown. The depicted logical connections include wired / wireless connections to a local area network (LAN) 2054 and / or a larger network (e.g., a wide area network (WAN) 2056). Such LAN and WAN network environments are common in offices and companies and facilitate enterprise-wide computer networks (e.g., intranets) that can connect to global communication networks such as the Internet.

[0104] When used in a local area network (LAN) environment, computer 2002 can connect to LAN 2054 via a wired and / or wireless communication network interface or adapter 2058. Adapter 2058 facilitates wired or wireless communication to LAN 2054, which may also include a wireless access point (AP) configured thereon for wireless communication with adapter 2058.

[0105] When used in a wide area network (WAN) networking environment, computer 2002 may include modem 2060, or may be connected to a communication server on WAN 2056 via other means (e.g., via the Internet) for establishing communication on WAN 2056. Modem 2060 may be an internal or external wired or wireless device, and it may be connected to system bus 2008 via input device interface 2044. In a network environment, program modules depicted relative to computer 2002 or parts thereof may be stored in remote memory / storage device 2052. It will be understood that the network connection shown is an example, and other means of establishing communication links between computers may be used.

[0106] When used in a LAN or WAN network environment, in addition to, or in place of, the external storage device 2016 described above, computer 2002 can access cloud storage systems or other network-based storage systems. Typically, the connection between computer 2002 and the cloud storage system can be established via LAN 2054 or WAN 2056 (e.g., via adapter 2058 or modem 2060, respectively). When computer 2002 is connected to an associated cloud storage system, external storage interface 2026 can manage the storage provided by the cloud storage system with the help of adapter 2058 and / or modem 2060, just as it manages other types of external storage. For example, external storage interface 2026 can be configured to provide access to cloud storage sources as if these sources were physically connected to computer 2002.

[0107] Computer 2002 can be used to communicate with any wireless device or entity operatively positioned in wireless communication, such as printers, scanners, desktop and / or portable computers, portable data assistants, communication satellites, any equipment or location associated with wirelessly detectable tags (e.g., kiosks, newsstands, shelves, etc.), and telephones. This can include Wi-Fi and Wireless technology. Therefore, communication can be a predefined structure like traditional networks, or simply self-organizing communication between at least two devices.

[0108] Now for reference Figure 21 The diagram illustrates a schematic block diagram of a computing environment 2100 according to this specification. System 2100 includes one or more clients 2102 (e.g., computers, smartphones, tablets, cameras, PDAs). Clients 2102 can be hardware and / or software (e.g., threads, processes, computing devices). For example, clients 2102 can use this specification to contain one or more cookies and / or associated contextual information.

[0109] System 2100 also includes one or more servers 2104. The servers 2104 may be hardware or hardware combined with software (e.g., threads, processes, computing devices). For example, server 2104 may house threads for converting media items by employing aspects of this disclosure. One possible communication between client 2102 and server 2104 may be in the form of data packets suitable for transmission between two or more computer processes, wherein the data packets may include encoded analytical headspace and / or input. For example, the data packets may include cookies and / or associated contextual information. System 2100 includes a communication framework 2106 (e.g., a global communication network such as the Internet) that can be used to facilitate communication between client 2102 and server 2104.

[0110] Communication can be facilitated via wired (including fiber optic) and / or wireless technologies. One or more clients 2102 are operatively connected to one or more client data stores 2108, which can be used to store information local to the one or more clients 2102 (e.g., one or more cookies and / or associated context information). Similarly, one or more servers 2104 are operatively connected to one or more server data stores 2110 that can be used to store information local to the server 2104.

[0111] In one exemplary implementation, client 2102 may transmit an encoded file (e.g., an encoded media item) to server 2104. Server 2104 may store the file, decode the file, or transmit the file to another client 2102. It should be understood that, according to this disclosure, client 2102 may also transmit an uncompressed file to server 2104, and server 2104 may compress and / or convert the file. Similarly, server 2104 may encode information and transmit it to one or more clients 2102 via communication framework 2106.

[0112] The illustrated aspects of this invention can also be practiced in a distributed computing environment, where certain tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can reside on both local and remote memory storage devices.

[0113] The foregoing description includes non-limiting examples of various embodiments. It is certainly not possible to describe every possible combination of components or methods in order to describe the disclosed subject matter, and those skilled in the art will recognize that further combinations and substitutions of various embodiments are possible. The disclosed subject matter is intended to cover all such changes, modifications, and variations that fall within the spirit and scope of the appended claims.

[0114] Regarding the various functions performed by the aforementioned components, devices, circuits, systems, etc., unless otherwise stated, the terminology used to describe these components (including references to "part") is also intended to include any structure (e.g., functional equivalent) that performs one or more of the specific functions of said components, even if it is not structurally equivalent to the disclosed structure. Furthermore, while specific features of the disclosed subject matter may be disclosed only for one of several implementations, such features may be combined with one or more other features of other implementations, which may be desirable and advantageous for any given or particular application.

[0115] The terms “exemplary” and / or “illustrative” as used herein are intended to mean as examples, instances, or illustrations. For the avoidance of doubt, the subject matter disclosed herein is not limited to these examples. Furthermore, any aspect or design described herein as “exemplary” and / or “illustrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor does it imply exclusion of equivalent structures and techniques known to those skilled in the art. Moreover, with regard to the extent to which the terms “comprising,” “having,” “including,” and other similar words are used in the Detailed Description or claims, these terms are intended to be included in a manner similar to the term “comprising” as an open transitional term, without excluding any additional or other elements.

[0116] The term “or” as used herein is intended to mean inclusive “or” rather than exclusive “or”. For example, the phrase “A or B” is intended to include instances of A, B, and both A and B. Furthermore, the articles “a” and “a” used in this application and the appended claims should generally be interpreted as meaning “one or more” unless otherwise stated or clearly indicated from the context to be in the singular form.

[0117] The term "set" as used herein does not include an empty set, i.e., a set containing no elements. Therefore, "set" in this subject disclosure includes one or more elements or entities. Similarly, the term "group" as used herein refers to an aggregation of one or more entities.

[0118] The description of the illustrated embodiments of the subject matter disclosed herein, including those described in the abstract, is not intended to be exhaustive or to limit the disclosed embodiments to the precise form disclosed. While specific embodiments and examples have been described herein for illustrative purposes, various modifications are possible within the scope of these embodiments and examples, as will be appreciated by those skilled in the art. In this regard, although the subject matter has been described herein in conjunction with various embodiments and corresponding drawings, it should be understood where applicable that other similar embodiments may be used, or modifications and additions may be made to the described embodiments to achieve the same, similar, alternative, or substitute functions of the disclosed subject matter without departing from the invention. Therefore, the disclosed subject matter should not be limited to any single embodiment described herein, but should be interpreted in accordance with the breadth and scope of the appended claims.

[0119] Other aspects of the invention are provided by the subject matter of the following provisions:

[0120] 1. A computer-implemented method comprising: determining a point of interest (POI) by a system operatively coupled to a processor, the POI comprising image coordinates in a set of images captured by an optical camera of a moving vehicle; determining by the system whether a multi-match exists in the set of images; rejecting the POI by the system in response to determining that the multi-match does not exist; determining by the system whether the POI represents a false alarm of a stationary object in response to determining that the multi-match exists; rejecting the POI by the system in response to determining that the POI is in motion and corresponds to a false alarm; and initiating collision avoidance by the system to avoid a stationary object corresponding to the POI in response to determining that the POI is stationary and does not correspond to a false alarm.

[0121] 2. A computer-implemented method according to any of the preceding provisions, wherein determining whether the multiple match exists comprises: the system determining whether a first point of interest in a first image of the set of images corresponds to a second point of interest in a second image of the set of images; the system determining whether the first point of interest in the first image corresponds to a third point of interest in a third image of the set of images; and the system determining whether the second point of interest in the second image corresponds to the third point of interest in the third image.

[0122] 3. The computer-implemented method according to any of the preceding clauses, wherein false alarms include a moving object, the moving object comprising a trajectory parallel to the trajectory of the moving vehicle.

[0123] 4. The computer-implemented method according to any of the preceding clauses, wherein the collision avoidance includes initiating automatic braking of the moving vehicle.

[0124] 5. The computer-implemented method according to any of the preceding clauses, wherein the collision avoidance includes displaying a message on a display of the moving vehicle.

[0125] 6. The computer-implemented method according to any of the preceding clauses, wherein the collision avoidance includes generating haptic feedback in the steering wheel or seat of the moving vehicle.

[0126] 7. Any combination of the computer-implemented methods of Clause 1 above and the computer-implemented methods of Clauses 2-6 above.

[0127] 8. A system comprising: a memory storing computer-executable components; and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components include: a point-of-interest (POI) identification component that determines a POI, the POI comprising image coordinates in a set of images captured by an optical camera of a moving vehicle; a matching component that determines whether multiple matches exist in the set of images; a motion determination component that determines whether the POI is stationary or in motion in response to the matching component determining that multiple matches exist, and rejects the POI in response to determining that the POI is in motion, wherein a moving POI corresponds to a false alarm; and a collision avoidance component that initiates collision avoidance to avoid stationary objects corresponding to the POI in response to the motion determination component determining that the POI is stationary.

[0128] 9. The system according to any of the preceding provisions, wherein the matching component: determines whether a first point of interest in a first image of the set of images corresponds to a second point of interest in a second image of the set of images, determines whether the first point of interest in the first image corresponds to a third point of interest in a third image of the set of images, and determines whether the second point of interest in the second image corresponds to the third point of interest in the third image, and rejects the point of interest in response to determining that multiple matches do not exist.

[0129] 10. The system according to any of the preceding provisions, wherein the collision avoidance includes determining the trajectory of the vehicle based on the vehicle's steering angle and the vehicle's speed, and determining the risk of collision with the stationary object.

[0130] 11. The system according to any of the preceding provisions, wherein determining whether the point of interest is stationary or in motion by the motion determination component includes determining whether a false alarm of the stationary object has occurred and rejecting the false alarm.

[0131] 12. The system according to any of the preceding clauses, wherein the false alarm includes a parallel trajectory, the parallel trajectory includes a moving object, the moving object includes a trajectory parallel to the trajectory of the moving vehicle, and wherein the parallel trajectory includes a parallel curved path.

[0132] 13. The system according to any of the preceding clauses, wherein the false alarm includes a parallel trajectory, the parallel trajectory includes a moving object, the moving object includes a trajectory parallel to the trajectory of the moving vehicle, and wherein the parallel trajectory includes a straight path.

[0133] 14. The system according to any of the preceding provisions, wherein the computer-executable component further comprises: an artificial intelligence component that learns to perform at least one of the following: determining whether multiple matches exist in the set of images, or determining whether the point of interest is stationary or in motion.

[0134] 15. The system of Clause 8 above and any combination of the systems of Clauses 9-14 above.

[0135] 16. A computer program product comprising a computer-readable storage medium having program instructions embedded therein, the program instructions being executable by a processor to cause the processor to: determine a point of interest, the point of interest including image coordinates in a set of images captured by an optical camera of a moving vehicle; determine whether a multi-match exists in the set of images; reject the point of interest in response to determining that a multi-match does not exist; determine whether the point of interest represents a false alarm determination of a stationary object in response to determining that a multi-match exists; reject the point of interest in response to determining that the point of interest is in motion and corresponds to a false alarm; and initiate collision avoidance to avoid a stationary object corresponding to the point of interest in response to determining that the point of interest is stationary and does not correspond to a false alarm.

[0136] 17. The computer program product according to any of the preceding clauses, wherein the set of images is captured by the same optical camera at different locations, each of the different locations appearing at a different point in time.

[0137] 18. A computer program product according to any of the preceding provisions, wherein determining whether the point of interest is stationary or in motion includes determining whether the point of interest corresponds to one or more of a set of defined special false alarm cases, and wherein the defined special false alarm cases are rejected because the point of interest is in motion.

[0138] 19. The computer program product according to any of the preceding clauses, wherein the special false alarm situation in the defined special false alarm situation includes parallel motion between the moving object and the vehicle.

[0139] 20. The computer program product according to any of the preceding clauses, wherein the special false alarm situation in the defined special false alarm situation includes linear motion between the moving object and the vehicle in opposite directions at a constant speed.

[0140] 21. The computer program product according to any of the preceding clauses, wherein the special false alarm situation in the defined special false alarm situation includes linear motion between the moving object and the vehicle at different speeds in opposite directions.

[0141] 22. The computer program product according to any of the preceding terms, wherein the optical camera is located on one side of the vehicle, or the side mirror of the vehicle includes the optical camera.

[0142] 23. The computer program product of Clause 16 above and any combination of the computer program products of Clauses 17-22 above.

Claims

1. A computer-implemented method, comprising: A system operatively coupled to a processor determines points of interest in a set of at least three images captured by an optical camera of a moving vehicle, wherein each point of interest comprises image coordinates in the image, and wherein the point of interest is associated with one or more objects in the image; The system determines whether multiple matches exist in the set of images based on the points of interest, wherein multiple matches include at least three points of interest in at least three different images being identified as identical points on objects in one or more of the objects; In response to determining that the multiple matches do not exist, the system rejects the point of interest; In response to determining the existence of the multiple matches: The system determines whether the at least three points of interest in the multiple matching indicate that the object is stationary; In response to determining that the at least three points of interest in the multiple match correspond to the object being in motion, the system rejects the multiple match because it corresponds to a false alarm; and In response to determining that the at least three points of interest in the multiple match correspond to the object being stationary and not to a false alarm, the system initiates collision avoidance to avoid the object.

2. The computer-implemented method according to claim 1, wherein, Determining whether the multiple matches exist includes: The system determines whether a first point of interest in a first image in the set of images corresponds to a second point of interest in a second image in the set of images. The system determines whether the first point of interest in the first image corresponds to a third point of interest in a third image in the set of images, and The system determines whether the second point of interest in the second image corresponds to the third point of interest in the third image.

3. The computer-implemented method according to claim 1, wherein, False alarms include moving objects, which include trajectories parallel to the trajectory of the moving vehicle.

4. The computer-implemented method according to claim 1, wherein, The collision avoidance includes activating the automatic braking of the moving vehicle.

5. The computer-implemented method according to claim 1, wherein, The collision avoidance includes displaying a message on the display of the moving vehicle.

6. The computer-implemented method according to claim 1, wherein, The collision avoidance includes generating tactile feedback in the steering wheel or seat of the moving vehicle.

7. A system for collision avoidance of stationary objects, comprising: Memory, which stores computer-executable components; and A processor that executes the computer-executable component stored in the memory, wherein the computer-executable component includes: A point of interest (POI) identification component that determines points of interest in an image from a set of at least three images captured by an optical camera of a moving vehicle, wherein each POI comprises image coordinates in the image, and wherein the POI is associated with one or more objects in the image; A matching component that determines, based on the points of interest, whether multiple matches exist in the set of images, wherein multiple matches include at least three points of interest in at least three different images being identified as identical points on objects in one or more of the objects; A motion determination component, which responds to the matching component determining the existence of the multiple matches: Determine whether the at least three points of interest in the multiple matching correspond to whether the object is in motion or stationary, and In response to determining that at least three points of interest in the multiple match correspond to the object being in motion, the multiple match is rejected because it corresponds to a false alarm; and A collision avoidance component that initiates collision avoidance to avoid the object in response to the motion determination component determining that the at least three points of interest of the multiple matching correspond to the object being stationary.

8. The system of claim 7, wherein the matching component: Determine whether a first point of interest in a first image in the set of images corresponds to a second point of interest in a second image in the set of images. Determine whether the first point of interest in the first image corresponds to the third point of interest in the third image in the set of images, and Determine whether the second point of interest in the second image corresponds to the third point of interest in the third image; In response to the determination that multiple matches do not exist, the point of interest is rejected.

9. The system according to claim 7, wherein, The collision avoidance includes determining the vehicle's trajectory based on the vehicle's steering angle and speed, and determining the risk of collision with the object.

10. The system according to claim 7, wherein, The motion determination component determines whether the at least three points of interest in the multiple match correspond to whether the object is stationary or in motion, including determining whether a false alarm occurs when the object is stationary and rejecting the multiple match corresponding to the false alarm.

11. The system of claim 10, wherein the false alarm includes a parallel trajectory, the parallel trajectory includes a moving object, the moving object includes a trajectory parallel to the trajectory of the moving vehicle, and wherein the parallel trajectory includes a parallel curved path.

12. The system of claim 10, wherein the false alarm includes a parallel trajectory, the parallel trajectory includes a moving object, the moving object includes a trajectory parallel to the trajectory of the moving vehicle, and wherein the parallel trajectory includes a straight path.

13. The system of claim 7, wherein the computer-executable component further comprises: Artificial intelligence components learn by performing at least one of the following: Determine whether multiple matches exist in the set of images; or Determine whether the at least three points of interest in the multiple matching correspond to whether the object is stationary or in motion.

14. A computer program product comprising a computer-readable storage medium having program instructions embedded therein, the program instructions being executable by a processor to cause the processor to: The processor determines the point of interest in a set of at least three images captured by the optical camera of the moving vehicle, wherein, The points of interest (POIs) include image coordinates in the image, wherein each POI is associated with one or more objects in the image. The processor determines whether multiple matches exist in the set of images based on the points of interest, wherein multiple matches include at least three points of interest in at least three different images being identified as identical points on objects in one or more of the objects; In response to determining that multiple matches do not exist, the processor rejects the point of interest. In response to the determination that multiple matches exist: The processor determines whether the at least three points of interest in the multiple matching indicate that the object is stationary; In response to determining that the at least three points of interest in the multiple match correspond to the object being in motion, the multiple match is rejected because it corresponds to a false alarm; and In response to determining that the at least three points of interest in the multiple match correspond to the object being stationary and not to a false alarm, the processor initiates collision avoidance to avoid the object.

15. The computer program product according to claim 14, wherein, The collection of images was captured by the same optical camera at different locations, each of which appeared at a different point in time.

16. The computer program product according to claim 14, wherein, Determining whether the at least three points of interest in the multiple match correspond to whether the object is stationary or in motion includes determining whether the at least three points of interest in the multiple match correspond to one or more of a defined set of special false alarm cases, wherein the defined special false alarm cases are rejected due to motion. Among the defined special false alarm situations are parallel movement between the moving object and the vehicle, or Among the defined special false alarm situations are those where the moving object and the vehicle are moving in opposite directions at a constant speed, or... Among the defined special false alarm situations, the special false alarm situation includes the linear motion of the moving object and the vehicle in opposite directions at different speeds.

17. The computer program product according to claim 14, wherein, The optical camera is located on one side of the vehicle, or the side mirror of the vehicle includes the optical camera.

Citation Information

Patent Citations

  • Safety system for vehicle to detect and warn of potential collision

    CN107428288A

  • Object recognition method and device

    CN109766953A

  • Pedestrian detection for vehicle driving assistance

    US20190259284A1