System and method for detecting convex mirrors in a current image - Patent Application 20070233333
Patent Information
- Application Number
- JP2023195724
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-11-23
- Filing Date
- 2023-11-17
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2043-11-17
AI Technical Summary
【0024】 本発明の例示的実施形態は、例にすぎない、下記のような図面に関する以下の説明文からよりよく理解され、当業者にとって容易に明らかになるであろう。
Smart Images

Figure 0007640650000001 
Figure 0007640650000002 
Figure 0007640650000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to a system and method for detecting convex mirrors in a current image. [Background technology]
[0002] Road traffic accidents tend to occur at and around road junctions and at points on roads, such as at sharp bends, where it is difficult for vehicles to see traffic coming from different directions. In particular, the number of accidents occurring at junctions without traffic lights is generally higher than at junctions with traffic lights.
[0003] In order to reduce the number of accidents occurring at intersections, especially at intersections without traffic lights, road safety mirrors, such as convex mirrors, are typically installed at intersections and at points on roads, such as at points with sharp curves. Such convex mirrors allow vehicles to see blind spots and the like that exist at these intersections and points, thereby allowing road users to feel safe and avoid or reduce the occurrence of accidents. Naturally, the convex mirrors are located outside the vehicle.
[0004] It has been proposed to provide vehicles with image capture devices, e.g. video cameras, in order to detect convex mirrors at certain points on the road, e.g. at intersections, sharp turns, etc. The detection of convex mirrors plays an important role in blind spot detection.
[0005] It has been recognized that improvements to existing Advanced Driver Assistance Systems (ADAS) are desirable. In particular, existing object recognition techniques can be improved to accommodate real-time convex mirror recognition for use in ADAS. For example, existing ADAS are unable to quickly detect convex mirrors in real-time. Furthermore, the accuracy of existing systems is also problematic, as some convex mirrors that are not detected are false negative detections. Accurate detection of convex mirrors is difficult, as convex mirrors simply reflect an image of the surroundings where they are located and do not have any fixed pattern.
[0006] Furthermore, the inventors have noticed that the computation speed of convex mirror detection can also affect collision risk prediction. The computation load increases with the complexity of the detection system, so the computation speed of convex mirror detection tends to be slower. One problem that may occur is that with current convex mirror detection, it may take a significant amount of time before the convex mirror is detected. [Prior art documents] [Non-patent literature]
[0007] [Non-Patent Document 1] Redmon, Joseph & Farhadi, Ali. (2018). Yolov3: An Incremental Improvement [Non-Patent Document 2] Ammar et.al. “Vehicle Detection from Aerial Images Using Deep Learning:A Comparative Study” [Non-Patent Document 3] Berthold KPHorn and Brian G.Rhunck,Determining Optical Flow(1980) [Non-Patent Document 4] Wang Shugen(2002)Framework of pattern recognition model based on trecognitive psychology,Geo-spatial Inforamtion Science,5:2,74-78,DOI:10.1007 / BF02833890 [Non-Patent Document 5] Bo et al. “DEEP AUTOENCODING GAUSSIAN MIXTURE MODEL FOR UNSUPERVISED ANOMALY DETECTION” Summary of the Invention [Problem to be solved by the invention]
[0008] Therefore, there is a need for a system and method for detecting convex mirrors in an image that attempts to address, or at least ameliorate, one of the problems discussed above. [Means for solving the problem]
[0009] According to one aspect of the present disclosure, a computer-implemented method for detecting convex mirrors in a current image is provided, the method comprising the steps of applying a machine learning object detection algorithm to the current image to detect one or more convex mirrors in the current image, extrapolating the one or more convex mirrors in the current image from a previous image containing the one or more convex mirrors, and augmenting the one or more convex mirrors detected by the machine learning algorithm with the one or more convex mirrors estimated by extrapolation from the previous image.
[0010] The step of estimating one or more convex mirrors in the current image by extrapolation may include the steps of: for each convex mirror in the past images, estimating the position of that convex mirror in the current image based on the past images; and detecting the convex mirror at the estimated position in the current image.
[0011] The step of estimating the position of the convex mirror may include applying an optical flow algorithm.
[0012] The optical flow algorithm may include steps of extracting feature points of the convex mirror in the past image, identifying the feature points in the current image, and obtaining a region of interest in the current image based on the positions of the feature points in the current image.
[0013] Detecting the convex mirror at an estimated location in the current image may include applying a template matching algorithm in the region of interest.
[0014] The step of applying a template matching algorithm may include the steps of extracting pixel information representing the convex mirror detected in the previous image as template pixel information from the previous image, and detecting the convex mirror in the region of interest in the current image based on the template pixel information.
[0015] A convex mirror can be detected in a region of interest if pixel information within the region of interest matches that of the template pixel information.
[0016] The step of expanding the one or more convex mirrors may include a step of considering the convex mirrors estimated by the one or more extrapolation methods as convex mirrors detected in the current image if the convex mirrors estimated by the one or more extrapolation methods are not detected in the current image by the machine learning object detection algorithm.
[0017] The past and current images may be image frames of a video.
[0018] According to another aspect of the present disclosure, there is provided a system for detecting convex mirrors in a current image, the system including: an image capture device for capturing a current image and a past image; and a processing unit coupled to the image capture device and configured to receive the current image and the past image, the processing unit being further configured to apply a machine learning object detection algorithm to the current image to detect one or more convex mirrors in the current image, extrapolate the one or more convex mirrors in the current image from a past image including the one or more convex mirrors, and augment the one or more convex mirrors detected by the machine learning algorithm with the one or more convex mirrors extrapolated from the past image.
[0019] To extrapolate one or more convex mirrors from the past images, the processing unit may be further configured to estimate, for each of the convex mirrors in the past images, a position of the convex mirror in the current image based on the past images, and detect the convex mirror at the estimated position in the current image.
[0020] To estimate the position of the convex mirror, the processing unit may be further configured to apply an optical flow algorithm including the steps of extracting feature points of the convex mirror in the past image, identifying the feature points in the current image, and obtaining a region of interest in the current image based on the positions of the feature points in the current image.
[0021] To detect the convex mirror at the estimated position in the current image, the processing unit may be further configured to apply a template matching algorithm including the steps of extracting pixel information representing the convex mirror detected in the previous image from the previous image as template pixel information, and detecting the convex mirror within the region of interest in the current image based on the template pixel information.
[0022] To expand the one or more convex mirrors, the processing unit may be further configured to consider the extrapolated convex mirrors as convex mirrors detected in the current image when the one or more extrapolated convex mirrors are not detected in the current image by the machine learning object detection algorithm.
[0023] According to another aspect of the present disclosure, there is provided a computer readable storage medium having software instructions stored thereon which, when executed by a processing unit of a system, cause the processing unit to perform the method for detecting one or more convex mirrors in a current image as defined in the first aspect.
[0024] Exemplary embodiments of the invention will be better understood and readily apparent to those skilled in the art from the following description, which is given by way of example only, and taken in conjunction with the drawings in which: [Brief description of the drawings]
[0025] [Figure 1] FIG. 1 is a schematic block diagram illustrating a system for detecting convex mirrors in a current image in an exemplary embodiment. [Diagram 2] 2 is a schematic flowchart 200 for illustrating a method for detecting convex mirrors in a current image in an exemplary embodiment; [Diagram 3] A series of images are presented that illustrate how to detect convex mirrors in a current image using detection results from previous images. [Figure 4] 1 is a schematic diagram of a computer system suitable for implementing the exemplary embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] Exemplary non-limiting embodiments may provide a system and method for detecting road safety mirrors, such as convex mirrors, in an image.
[0027] In various embodiments, the term "convex mirror," as used herein, refers broadly to a mirror having a curved reflective surface. In various embodiments, the convex mirror includes a curved mirror portion. In various embodiments, the surface is convex (i.e., convex outward). In various embodiments, the convex mirror is a convex mirror.
[0028] In various embodiments, the terms "image" or "image data," as used herein, broadly refer to any content or data that can be rendered for viewing by a user. In various embodiments, the image or image data includes computer-readable data. In various embodiments, the image or image data may be converted to computer-readable data. In various embodiments, the image or image data may be converted to a format suitable or compatible for use by components of the systems and methods disclosed herein. For example, the image or image data may be a frame from a video, a portion of a frame from a video, a still image, a portion of a still image, or otherwise.
[0029] 1 is a schematic block diagram illustrating a system 100 for detecting convex mirrors in a current image in an exemplary embodiment. The system 100 is mounted on a vehicle. The system 100 includes an image capture device 102 and a processing unit 104 coupled to the image capture device 102.
[0030] In this exemplary embodiment, image capture device 102 is configured to capture images, including current and historical images. The vehicle image capture device 102 may be a camera or video camera located at the front of the vehicle body near the rearview mirror or on the vehicle's front grille. The image capture device 102 is positioned to have an image capture area at a predetermined angle toward the front of the vehicle.
[0031] In this exemplary embodiment, the processing unit 104 may be configured to control the functions of the components of the system 100. In this exemplary embodiment, the processing unit 104, e.g., an electronic control unit (ECU) of a vehicle, is configured to apply a machine learning object detection algorithm to a current image to detect one or more convex mirrors in the current image, extrapolate the one or more convex mirrors in the current image from a past image that includes the one or more convex mirrors, and augment the one or more convex mirrors detected by the machine learning algorithm with the one or more convex mirrors extrapolated from the past image.
[0032] In this exemplary embodiment, to extrapolate one or more convex mirrors from the past images, the processing unit 104 may be configured to estimate, for each of the convex mirrors in the past images, the position of the convex mirror in the current image based on the detected convex mirror in the past images, and detect the convex mirror at the estimated position in the current image.
[0033] In this exemplary embodiment, to estimate the position of the convex mirror in the current image, the processing unit 104 may be configured to apply an optical flow algorithm, which may include extracting feature points of the convex mirror in the past image, identifying the feature points in the current image, and obtaining a region of interest in the current image based on the location of the feature points in the current image.
[0034] In this exemplary embodiment, to detect the convex mirror at the estimated location in the current image, the processing unit 104 may be configured to apply a template matching algorithm. The template matching algorithm may include extracting pixel information representing the detected convex mirror in the previous image as template pixel information from the previous image, and detecting the convex mirror in the region of interest in the current image based on the template pixel information. The convex mirror may be identified as detected in the current image when pixel information of the convex mirror in the current image substantially matches with that of the template pixel information.
[0035] In this exemplary embodiment, to expand the one or more convex mirrors, the processing unit 104 may be further configured to consider the extrapolated convex mirrors as convex mirrors detected in the current image when the one or more extrapolated convex mirrors are not detected in the current image by the machine learning object detection algorithm.
[0036] In this exemplary embodiment, the past image and the current image may be successive image frames of a video captured by image capture device 102. The past image and the current image are then transmitted to processing unit 104 for processing.
[0037] In an exemplary embodiment, the processing unit 104 may be further coupled to an object detection unit 106, which may be further coupled to an action unit 108. The object detection unit 106 may be configured to perform object detection on the convex mirror detected by the processing unit 104. The action unit 108 may be configured to receive one or more commands from the object detection unit 106, such as, but not limited to, to activate a braking function of the vehicle, and / or activate a warning system for a vehicle user, and / or perform steering control, or to not perform any action.
[0038] The operational unit 108 may also include a display device (not shown). The display device may be configured to have images (such as current and / or past images) displayed thereon. The display device may be configured to display a real-time current image, including a bounding box around each of the detected convex mirror(s). The display device may be mounted on the vehicle. The display device may be positioned within the vehicle near such that it is visible to a driver or passenger of the vehicle.
[0039] During operation, crossroads or intersections may be identified by image capture device 102. In some example embodiments, map information may be provided to processing unit 104, whereby processing unit 104 may use the map information to identify crossroads or intersections, for example by matching the map with Global Positioning System (GPS) coordinates. At such crossroads or intersections, processing unit 104 applies a machine learning object detection algorithm to the past images to detect convex mirrors in the past images. Processing unit 104 then applies an optical flow algorithm to estimate the position of the convex mirror in the current image based on the position of the convex mirror in the past images. Processing unit 104 then applies a template matching algorithm to detect the convex mirror at the estimated position in the current image.
[0040] 2 is a schematic flow chart 200 illustrating a computer-implemented method for detecting convex mirrors in a current image in an exemplary embodiment. In step 202, a machine learning object detection algorithm is applied to the current image to detect one or more convex mirrors in the current image. In step 204, one or more convex mirrors in the current image are extrapolated from a previous image containing one or more convex mirrors. In step 206, the one or more convex mirrors detected by the machine learning algorithm are augmented with one or more convex mirrors extrapolated from the previous image.
[0041] The method for detecting convex mirrors in a current image may be performed using the system 100 of Figure 1. For example, application of a machine learning object detection algorithm, extrapolation from past images, and augmentation of the convex mirrors detected by the machine learning algorithm with those extrapolated from past images may be performed by the processing unit 104.
[0042] In this exemplary embodiment, the step of extrapolating to estimate one or more convex mirrors in the current image may include, for each convex mirror in the past images, estimating the position of the convex mirror in the current image based on the past images, and detecting the convex mirror at the estimated position in the current image.
[0043] In this exemplary embodiment, estimating the position of the convex mirror in the current image may include applying an optical flow algorithm, which may include extracting feature points of the convex mirror in the past image, identifying the feature points in the current image, and obtaining a region of interest in the current image based on the location of the feature points in the current image.
[0044] In this exemplary embodiment, detecting the convex mirror at the estimated location in the current image may include applying a template matching algorithm in the region of interest. The template matching algorithm may include extracting template pixel information representing the detected convex mirror from the past image, and detecting the convex mirror in the region of interest in the current image based on the template pixel information. If the pixel information in the region of interest matches with that of the template pixel information, the convex mirror is deemed to have been detected in the region of interest in the current image.
[0045] In this exemplary embodiment, step 206 of expanding the one or more convex mirrors may include, if the one or more extrapolated convex mirrors are not detected in the current image by the machine learning object detection algorithm, considering the extrapolated convex mirrors as convex mirrors detected in the current image.
[0046] In this exemplary embodiment, no convex mirrors may be detected or identified in the image. In this exemplary embodiment, one or more convex mirrors may be identified or detected in the image. In this exemplary embodiment, one or more convex mirrors may be identified or detected from one or more candidate convex mirrors identified in a current or past image.
[0047] In this exemplary embodiment, the machine learning algorithm can be a real-time object detection system. The real-time object detection system can be a one-pass object detection system in which an image is analyzed only once. The real-time object detection system can be a You Only Look Once (YOLO) v3 system.
[0048] In this exemplary embodiment, the method 200 may further include a step of confirming that the detection of one or more convex mirrors in the past images is true positive. The confirmation may be based on an anomaly detection algorithm. The anomaly detection algorithm may be based on Deep Autoencoder Gaussian Mixture Model (DAGMM). In a video with a suitably high frame rate (e.g., 30 FPS), it is highly likely that at least one of the past images / frames contains a confirmed convex mirror. That is, once a convex mirror is detected and confirmed in one past image, the immediately following image (of that one past image) can apply a tracking / optical flow algorithm to estimate the position of the convex mirror in this subsequent image.
[0049] In this exemplary embodiment, one or more convex mirrors in the past images may be detected by applying the same machine learning object detection algorithms as for detecting convex mirrors in the current image, and these detected convex mirrors in the past images may also be augmented by convex mirrors extrapolated from earlier past images.
[0050] In this exemplary embodiment, the method may further include obtaining / acquiring images (e.g., current, past, and earlier past images) using an image capture device. The image capture device may be a camera or a video camera. The image capture device may be mounted on the vehicle and positioned in front of the vehicle body near the buckler or on the front grill of the vehicle. The image may be a forward view image taken towards the front of the vehicle. The image may be multiple images taken over different time instances. The past image may be an image taken at an earlier time than the current image. The images may be image frames from a video as a time sequence, with each frame representing an image taken at a particular time instance. The current image may be a real-time image. The current and past images may be frames taken from a real-time video. The past and current images may be successive image frames taken from a video. The video may be a real-time video.
[0051] In this exemplary embodiment, the method may further include displaying an image on a display device. The display device may display a current image, including a bounding box around each of the detected one or more convex mirrors. The display device may be mounted on the vehicle and positioned within the vehicle proximate to the driver or passengers of the vehicle so that it is visible to them.
[0052] In this exemplary embodiment, the method may further include activating a response to / in the vehicle upon detection of one or more convex mirrors in the current image. For example, the vehicle may be configured to slow down or stop upon approaching a convex mirror. The vehicle may also sound an alarm to alert the driver of the vehicle.
[0053] 3A to 3D show a series of images to illustrate a method for detecting convex mirrors in a current image using detection results from a past image.
[0054] 3A shows a past image 300a in an exemplary embodiment. The past image 300a is a past frame of a real-time video captured by an image capture device mounted on a vehicle. A machine learning object detection algorithm is applied to the past image 300a by an electronic control unit coupled to the image capture device. In this exemplary embodiment, the machine learning object detection algorithm used for road safety mirror detection is based on a real-time object detection system known as You Only Look Once (YOLO) v3.
[0055] As shown in Fig. 3A, two convex mirrors (or road safety mirrors) 302a, 304a are detected by a machine learning object detection algorithm. For user convenience, bounding boxes are drawn around the detected convex mirrors 302a, 304b.
[0056] In this exemplary embodiment, the machine learning object detection algorithm may also incorporate or further include a validation or anomaly detection algorithm to ensure that the detected mirror 302a, 304a is a true positive detection. The validation may be based on an anomaly detection algorithm. The anomaly detection algorithm may be based on a Deep Autoencoder Gaussian Mixture Model (DAGMM). In a video with a reasonably high frame rate (e.g., 30 FPS), it is highly likely that at least one of the past images / frames contains a confirmed convex mirror. That is, once a convex mirror is detected and confirmed in one past image, the immediately following image (of that one past image) can apply a tracking / optical flow algorithm to estimate the position of the convex mirror in the subsequent image.
[0057] 3B shows a current image 300b in an exemplary embodiment. With respect to the past image 300a (FIG. 3B), the current image 300b is a later frame of a real-time video captured by an image capture device mounted on a vehicle. That is, the current image 300b is captured at a later time than the past image 300a. The same machine learning object detection algorithm (e.g., YOLO) is applied to the current image 300b by an electronic control unit coupled to the image capture device.
[0058] As shown in Fig. 3B, in the current image 300b, only one convex mirror 302b is detected by the machine learning object detection algorithm. However, this is a false negative because there are actually two convex mirrors in Fig. 3B. To facilitate understanding of the present disclosure, the original positions of the convex mirrors 302a, 304a in Fig. 3A are retained in Fig. 3B. It should be understood that the positions of the convex mirrors 302a, 304b are not actually in the current image 300b.
[0059] In this example embodiment, in addition to machine learning object detection for convex mirrors, the processing unit also attempts to extrapolate convex mirrors in the current image 300b from the previous image 300a, which contains convex mirrors 302a, 304a. These extrapolated mirrors are then extended by the machine learning object detection algorithm to those detected in the current image 300b.
[0060] In this exemplary embodiment, the estimated positions of the convex mirrors 302b, 304b in the current image are estimated based on the positions of the convex mirrors 302a, 304a in the previous image 300a to extrapolate the convex mirrors 302a, 304a in the previous image 300a to the current image 300b. This can be done by applying an optical flow algorithm to the previous image 300a. In other words, by applying the optical flow algorithm, the processing unit can obtain the positions of the convex mirror features in the current image from the positions of the convex mirror features in the previous image.
[0061] In this exemplary embodiment, feature points 306a, 308a associated with the convex mirrors 302 and 304 are extracted from the past image 300a (FIG. 3A). In this exemplary embodiment, the feature points represent the positions of the poles on which the convex mirrors 302, 304 are attached. To facilitate understanding of the present disclosure, the feature points 306a, 308a in the past image 300a are also shown in the current image 300b (FIG. 3B). It should be understood that the feature points 306a, 308a do not actually exist in the current image 300b. The same feature points 306b, 308b associated with the convex mirrors 302 and 304 are then identified in the current image 300b. The flow path of the feature points as they move from the positions (306a, 308a) in the past image 300a to the positions (306b, 308b) in the current image 300b is shown in FIG. 3B.
[0062] Although this exemplary embodiment shows two features for the convex mirror, it should be understood that any number of features may be suitably suitable.
[0063] The relative positions of the convex mirrors 302, 304 with respect to the feature points 306 and 308 remain relatively constant in the past image 300a and the current image 300b. For example, in this exemplary embodiment, for a particular feature point 306, 308, the convex mirror 304b is likely to be in the area to the right of the feature point in the current image 300b.
[0064] Therefore, the optical flow algorithm can obtain or predict a region of interest 310 (FIG. 3C) in the current image 300b where the convex mirror 304b may be located. This region of interest 310 is obtained based on the locations of the feature points 306, 308 in the current image 300b. This region of interest 310 is larger than the expected bounding box for the expected convex mirror. This region of interest also represents a search area in the current image 300b where the convex mirror, e.g. 304, may be expected to be found.
[0065] In this exemplary embodiment, the processing unit then attempts to locate or detect the presence of a convex mirror in the current image 300b at a known estimated location in the current image (e.g., the region of interest 310). A template matching algorithm may be applied by the processing unit for this purpose.
[0066] In the template matching algorithm, the processor extracts template pixel information representing the detected convex mirror 304a from the past image 300a. It then tries to match the template pixel information with pixel information obtained from within the region of interest in the current image 300b. If the pixel information within the region of interest matches that of the template pixel information, the convex mirror is deemed to have been detected. In other words, the template pixel information obtained from the detected convex mirror 304a in the past image 300a is used as the target object for template matching.
[0067] 3D illustrates the detection of a convex mirror 304b in the current image 300b in this exemplary embodiment. A bounding box 312 is now drawn over the convex mirror 304b to illustrate its detection. The extrapolated convex mirror 304b is now considered as the convex mirror detected in the current image 300b, which was not detected in the current image 300b when using the machine learning object detection algorithm.
[0068] In an exemplary embodiment, YOLOv3 is described as being used as a real-time detection system for convex mirror candidate detection. YOLOv3 is a real-time object detection system that applies a single neural network to the entire image. The network divides the image into regions and predicts bounding boxes and probabilities for each region. These bounding boxes are weighted by the predicted probability. The YOLOv3 system has several advantages over classifier-based systems. Because it looks at the entire image at test time, predictions are usually based on the global context in the image. It also makes predictions in a single network evaluation, unlike systems like R-CNN, which require thousands for a single image. This makes it extremely fast, over 1000 times faster than R-CNN and 100 times faster than Fast R-CNN. Additional information about YOLOv3 can be found in (Non-Patent Document 1), which is incorporated herein by reference. An example of YOLOv3 can be found in (Non-Patent Document 2), an example of the architecture of YOLOv3 can be found at least in Section 3.2.1 and FIG. 2, and an example of training YOLOv3 can be found at least in Section 4.2. A first example of a dataset that can be used to train a machine learning model is the COCO dataset available at https: / / cocodataset.org / #home, which is a large-scale object detection, segmentation, and captioning dataset. A second example of a dataset that can be used to train a machine learning model is the CIFAR-10 or CIFAR-100 dataset available at http: / / www.cs.toronto.edu / ~kriz / cifar.html, which is a labeled subset of a small 80 million image dataset. It is contemplated that any other suitable dataset can be used.
[0069] In one exemplary embodiment, an optical flow algorithm is described as being applied / used to estimate the position of the convex mirror in the current image based on the detected position of the convex mirror in the past image. An exemplary optical flow algorithm can be found in (Non-Patent Document 3).
[0070] In one exemplary embodiment, a template matching algorithm is described as being applied / used to detect the convex mirror at its estimated position in the current image. An exemplary template matching algorithm can be found in (Non-Patent Document 4).
[0071] In one exemplary embodiment, the DAGMM algorithm is described as being applied / used to identify true positive detections of convex mirrors. An exemplary DAGMM algorithm can be found in (Non-Patent Document 5), published as a conference presentation at ICLAR 2018.
[0072] The exemplary embodiment described above has been verified using a front camera mounted on a vehicle in a feasibility study, and the effectiveness of the method has been demonstrated by experimental results on public roads.
[0073] The exemplary embodiments described above can advantageously reduce the occurrence of false negative results and increase the accuracy of convex mirror detection compared to approaches that use only known deep learning models.
[0074] The exemplary embodiments described above can advantageously provide faster computations and beneficially save time compared to approaches that use only known deep learning models.
[0075] The exemplary embodiments described above may be used for collision prediction and avoidance, for example, at road locations with blind spots and at intersections without traffic lights.
[0076] The exemplary embodiments described above may advantageously reduce the investment required to build new facilities at intersections and low visibility locations by utilizing a conventional piece of infrastructure already present on roadways: road safety mirrors.
[0077] The exemplary embodiments described above may be advantageously used to support Autonomous Driving (AD) systems at levels 1 and 2, such as Advanced Driver Assistance Systems (ADAS), and may be further extended to support AD systems above level 3. The exemplary embodiments described above may also be advantageously applied in other forms of vehicles, such as unmanned ground vehicles (uGVs), automated guided vehicles (AGVs), autonomous vehicles, drones, etc. The exemplary embodiments described above may also be advantageously used in the field of robotics.
[0078] The terms "coupled" or "connected," as used in this description, are intended to cover both direct connection and connection through one or more intermediary means, unless expressly stated otherwise.
[0079] Terms such as "configured to perform (a task / operation)", "configured for performing (a task / operation)", etc., as used in this description, include being programmable, programmed, connectable, wired, or otherwise configured to have the capability to perform the task / operation when arranged or installed as described herein. Terms such as "configured to perform (a task / operation)", "configured to perform (a task / operation)", etc. are intended to cover "when used, the task / operation is performed", e.g., specifically performing or performing the task / operation and / or being specifically configured and / or being specifically arranged and / or being specifically made to be so.
[0080] The term "and / or," e.g., "X and / or Y," should be understood to mean either "X and Y" or "X or Y," and should not be understood as expressly endorsing either or both meanings.
[0081] The terms "associated with," "related to," and the like, when used herein in reference to two elements, refer to a broad relationship between the two elements. This relationship includes, but is not limited to, a physical, chemical, or biological relationship. For example, if element A is associated with element B, elements A and B may be directly or indirectly attached to each other, or element A contains element B, or vice versa.
[0082] Terms such as "exemplary embodiment," "exemplary implementation," "exemplary," and the like, as used herein, are intended to provide an example of the subject matter described in the present disclosure. Such an example may relate to one or more features defined in the claims, and is not necessarily intended to highlight the best example or any fundamental importance of any feature.
[0083] Certain portions of the description herein may be explicitly or implicitly described in terms of algorithms and / or functional operations performed on data within a computer memory or electronic circuitry. These algorithmic descriptions and / or functional operations are typically used by those skilled in the information processing arts for efficient description. An algorithm generally relates to a self-consistent sequence of steps leading to a desired result. The steps of an algorithm may include physical manipulations of physical quantities, such as electrical, magnetic, or optical signals that can be stored, sent, transmitted, combined, compared, and otherwise manipulated.
[0084] Furthermore, unless expressly stated otherwise, and as will generally be apparent from the following, those skilled in the art will understand that discussions throughout this specification utilizing terms such as "scan," "calculate," "identify," "replace," "generate," "initialize," "output," and the like refer to operations and processes of an instruction processor / computer system or similar electronic circuits / devices / components that manipulate / process data represented as physical quantities within the described system and convert it into other data similarly represented as physical quantities in that system or other information storage, transmission, or display device, and the like.
[0085] This description also discloses devices / apparatus associated with performing the method steps described above. Such apparatus may be specially configured for this purpose, or may include a general-purpose computer / processor or other device selectively activated or reconfigured by a computer program stored in a memory member. The algorithms and displays described herein are not inherently related to any particular computer or other apparatus. It is to be understood that a general-purpose device / machine may be used in accordance with the teachings herein. Alternatively, the construction of a specialized device / apparatus to perform the method steps may be desired.
[0086] In addition, the description is also proposed to implicitly cover computer programs, in that it is clear that the steps of the methods described herein may be embodied by computer code. It will be appreciated that a variety of programming languages and encodings can be used to implement the teachings of the description herein. Furthermore, the computer program is not limited to any particular control flow, if applicable, and may use different control flows without departing from the scope of the present invention.
[0087] Furthermore, one or more of the steps of the computer program may be executed in parallel and / or sequentially, if applicable. Such a computer program may be stored on any computer-readable medium, if applicable. The computer-readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a suitable reader / general-purpose computer. In such a case, the computer-readable storage medium is non-transitory. Such storage media also covers any computer-readable medium, such as register memory, processor cache, and Random Access Memory (RAM), and others, if data is stored only for a short time and / or only when there is power. The computer-readable medium may also include wired media, such as exemplified in the Internet system, or wireless media, such as exemplified in Bluetooth technology. The computer-readable medium may be, for example, a cloud storage on the Internet or in an intranet. The computer program, when loaded into a suitable reader and executed therein, effectively results in an apparatus capable of implementing the steps of the above-mentioned method, for example in a physical embodiment. The computer readable medium is intended to be portable and reproducible in the sense that the computer program, if applicable, is reproducible.
[0088] Exemplary embodiments may also be implemented as hardware modules. A module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using digital or discrete electronic components, or may form part of an entire electronic circuit, such as an Application Specific Integrated Circuit (ASIC). Those skilled in the art will appreciate that exemplary embodiments may also be implemented as a combination of hardware and software modules.
[0089] Additionally, in describing some embodiments, the present disclosure may disclose methods and / or processes as a particular sequence of steps. However, unless otherwise required, it should be understood that the method or process should not be limited to the particular sequence of steps disclosed. Other sequences of steps may be possible. The particular order of steps disclosed herein should not be construed as unduly limiting. Unless otherwise required, the methods and / or processes disclosed herein should not be limited to the steps being performed in the order described. The sequence of steps may be varied and still remain within the scope of the present disclosure.
[0090] Further, in the description herein, whenever the term "substantially" is used, it should be understood to include, but not be limited to, "entirely", or "completely", etc. Additionally, whenever used, terms such as "comprising" are intended to be open-ended descriptive language in that they broadly include the elements / components listed following the term, as well as other components not explicitly listed. For example, when "comprising" is used, a reference to "a" feature is also intended to be a reference to "at least one" of that feature. Terms such as "consisting" may be considered subsets of terms such as "comprising" in the appropriate context. Thus, in embodiments disclosed herein using terms such as "comprising", it should be understood that these embodiments also provide teachings regarding corresponding embodiments using terms such as "consisting". Additionally, terms like "about," "approximately," and the like, whenever used, typically refer to a reasonable variation, such as a + / - 5% variation from the disclosed value, or a 4% variation from the disclosed value, or a 3% variation from the disclosed value, or a 2% variation from the disclosed value, or a 1% variation from the disclosed value.
[0091] Additionally, within the present description, certain values may be disclosed in ranges. The endpoints of a range are intended to exemplify the preferred range. Whenever a range is described, it is intended that the range covers and teaches all the individual values within the range, as well as all possible subdivisions. That is, the endpoints of a range should not be interpreted as inflexible limits. For example, a statement of a range of 1% to 5% is intended to specifically disclose the individual values within the range, e.g., 1%, 2%, 3%, 4%, 5%, as well as subdivisions such as 1% to 2%, 1% to 3%, 1% to 4%, 2% to 3%, etc. Individual values within a range should also be understood to include integers, fractions, and decimals. Additionally, whenever a range is described, it is intended that the range covers and teaches values up to two more decimal places or significant figures (where appropriate) from the endpoints of the numerical values specified. For example, a statement of a range of 1% to 5% is intended to specifically disclose ranges of 1.00% to 5.00% and 1.0% to 5.0% as well as all intermediate values therein (e.g., 1.01%, 1.02%, ..., 4.98%, 4.99%, 5.00% and 1.1%, 1.2%, ..., 4.8%, 4.9%, 5.0%, etc.). The above specific disclosure intent applies to any depth / breadth of a range.
[0092] Various exemplary embodiments may be implemented in terms of data structures, program modules, programs, and computer instructions executed within a computer-implemented environment. A specially configured general-purpose computing environment is briefly disclosed herein. One or more exemplary embodiments may be embodied in one or more computer systems, such as, for example, the one illustrated generally in FIG.
[0093] One or more of the exemplary embodiments may be implemented as software, such as a computer program executing within computer system 400 and instructing computer system 400 to perform the methods of the exemplary embodiments.
[0094] The computer system 400 includes a computer unit 402, an input module, such as a keyboard 404 and a pointing device 406, and multiple output devices, such as a display 408 and a printer 410. A user can interact with the computer unit 402 using the above-mentioned devices. The pointing device can be implemented as a mouse, a trackball, a pen device, or any similar device. One or more other input devices (not shown), such as a joystick, a game pad, a satellite dish, a scanner, a touch-sensitive screen, etc., can also be connected to the computer unit 402. The display 408 can include a cathode ray tube (CRT), a liquid crystal display (LCD), a field emission display (FED), a plasma display, or any other device that generates an image viewable by a user.
[0095] The computer unit 402 can be connected to a computer network 412 via a suitable transceiver device 414, thereby providing access to, for example, the Internet or other network systems such as a Local Area Network (LAN) or a Wide Area Network (WAN) or a personal network. The network 412 can include servers, routers, networked personal computers, peer devices or other common network nodes, wireless telephones or wireless personal digital assistants. Networking environments can be found in offices, company-wide computer networks, home computer systems, and the like. The transceiver device 414 can be a modem / router unit within the computer unit 402 or external to it, and can be any type of modem / router, such as a cable modem or a satellite modem.
[0096] It is to be understood that the illustrated network connections are exemplary and other methods of establishing a communications link between the computers may be used. Any of a variety of protocols may be assumed to be present, such as TCP / IP, Frame Relay, Ethernet, FTP, HTTP, etc., and the computer unit 402 may operate in a client-server configuration to allow a user to retrieve web pages from a web-based server. Additionally, any of a variety of web browsers may be used to display and manipulate data on the web pages.
[0097] The computer unit 402 in this example includes a processor 418, a Random Access Memory (RAM) 420, and a Read Only Memory (ROM). The ROM 422 may be a system memory that stores Basic Input / Output System (BIOS) information. The RAM 420 may store one or more program modules, such as an operating system, application programs, and program data.
[0098] The computer unit 402 further includes a number of input / output (I / O) interface units, such as an I / O interface unit 424 with the display 408 and an interface unit 426 with the keyboard 404. The components of the computer unit 402 are typically connected and communicate and interfaced / coupled via an interconnected system bus 428 and in a manner known to those skilled in the relevant art. The bus 428 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
[0099] It should be understood that other devices can also be connected to the system bus 428. For example, a video or digital camera can be coupled to the system bus 428 using a Universal Serial Bus (USB) interface. An IEEE 1394 interface can be used to couple additional devices to the computer unit 402. Other manufacturer interfaces can also be used, such as FireWire developed by Apple Computer and i.Link developed by Sony. Coupling of devices to the system bus 428 can also be done through a parallel port, a game port, a PCI board, or any other interface used to couple input devices to a computer. It should also be understood that a microphone and a speaker can be used to record and play back voice / audio, although these components are not shown. A sound card can be used to couple the microphone and the speaker to the system bus 428. It should be understood that several peripheral devices can be simultaneously coupled to the system bus 428 through alternative interfaces.
[0100] The application program can be provided to a user of the computer system 400 in a state encoded / stored on a data storage medium, such as a CD ROM or a flash memory carrier. The application program can be read using a corresponding data storage medium drive of the data storage device 430. The data storage medium is not limited to being portable and can include an example embedded within the computer unit 402. The data storage device 430 can include a hard disk interface unit and / or a removable memory interface unit (neither of which are shown in detail), which respectively couples a hard disk drive and / or a removable memory drive to the system bus 428. This allows data to be read and written. Examples of removable memory drives include magnetic disk drives and optical disk drives. The drives and their associated computer readable media, such as floppy disks, provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for the computer unit 402. It is to be understood that the computer unit 402 can include more than one of such drives. Additionally, the computer unit 402 can include drives for interfacing with other types of computer readable media.
[0101] Application programs are read and controlled by execution by the processor 418. Intermediate storage of program data may be provided using the RAM 420. The methods of the exemplary embodiments may be implemented as computer readable instructions, computer executable components, or software modules. One or more software modules may alternatively be used. These may include executable programs, data link libraries, configuration files, databases, graphic images, binary data files, text data files, object files, source code files, or the like. When one or more computer processors execute one or more of the software modules, the software modules interact to cause one or more computer systems to operate in accordance with the teachings herein.
[0102] The operation of the computer unit 402 can be controlled by various program modules. Examples of program modules are routines, programs, objects, components, data structures, libraries, etc. that perform particular tasks or implement particular abstract data types. The exemplary embodiments may also be implemented with other computer system configurations including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, personal digital assistants, mobile phones, etc. Moreover, the exemplary embodiments may also be implemented in distributed computing environments where tasks are performed by remote processing devices that are linked through a wireless or wired communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0103] The exemplary embodiments may also be implemented with other computer system configurations including handheld devices, multiprocessor systems / servers, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, personal digital assistants, mobile phones, etc. Moreover, the exemplary embodiments may also be implemented in distributed computing environments where tasks are performed by remote processing devices that are linked through a wireless or wired communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0104] In the above exemplary embodiment, the vehicle may be described as an automobile driven by a user. It should be understood that the exemplary embodiment is not so limited. For example, the vehicle may include any movable object capable of detecting a convex mirror.
[0105] Those skilled in the art will appreciate that various modifications and / or improvements may be made to the specific embodiments without departing from the scope of the invention as broadly described. For example, within the description herein, features of different exemplary embodiments may be mixed, combined, exchanged, incorporated, adopted, improved, included, etc., among different exemplary embodiments. For example, the exemplary embodiments are not necessarily mutually exclusive, since some may be combined with one or more embodiments to form new exemplary embodiments. Furthermore, although the present disclosure provides embodiments having one or more of the features / features discussed herein, one or more of these features / features may also be waived in other alternative embodiments, and the present disclosure supports such waiver and alternative embodiments related thereto. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive. This application relates to the invention described in the claims, but also includes the following as other aspects. 1. A computer-implemented method for detecting convex mirrors (302b, 304b) in a current image (300b), comprising: applying a machine learning object detection algorithm to the current image (300b) to detect one or more convex mirrors (302b, 304b) in the current image (300b); A step of extrapolating one or more convex mirrors (302a, 304a) in the current image (300b) from a past image (300a) including one or more convex mirrors; augmenting the one or more convex mirrors (302b, 304b) detected by the machine learning algorithm with the one or more convex mirrors estimated by extrapolation from the past image (300a); 23. A computer-implemented method comprising: 2. The step of extrapolating one or more convex mirrors (302b, 304b) in the current image (300b) includes: For each of the convex mirrors (302a, 304a) in the past image (300a), estimating a position of the convex mirror (304b) in the current image (300b) based on the past image (300a); detecting the convex mirror (304b) at the estimated position in the current image (300b); 2. The method according to claim 1, comprising: 3. 3. The method according to claim 2, wherein the step of estimating the position of the convex mirror (304b) comprises a step of applying an optical flow algorithm. 4. The optical flow algorithm includes: extracting feature points (306a, 308a) of the convex mirror (304a) in the past image (300a); identifying said feature points (306b, 308b) in said current image (300b); obtaining a region of interest (310) in the current image based on the locations of the feature points (306b, 308b) in the current image (300b); 4. The method according to claim 3, comprising: 5. 5. The method according to claim 4, characterized in that the step of detecting the convex mirror (304b) at the estimated position in the current image (300b) comprises the step of applying a template matching algorithm in the region of interest (310). 6. The step of applying a template matching algorithm comprises: extracting pixel information representing the detected convex mirror (304a) in the past image (300a) as template pixel information from the past image (300a); detecting the convex mirror (304b) within the region of interest (310) in the current image (300b) based on the template pixel information; 6. The method according to claim 5, comprising: 7. 7. The method of claim 6, wherein the curved mirror (304b) is detected in the region of interest (310) when pixel information within the region of interest matches that of the template pixel information. 8. The step of expanding the one or more convex mirrors includes: if the one or more extrapolated convex mirrors are not detected in the current image (300b) by the machine learning object detection algorithm, considering the extrapolated convex mirror (304b) as the convex mirror detected in the current image. 8. The method according to any one of 1 to 7 above, comprising: 9. 9. The method according to any one of claims 1 to 8, characterized in that the previous image (300a) and the current image (300b) are image frames of a video. 10. A system (100) for detecting convex mirrors (302, 304) in a current image (300b), comprising: an image capture device (102) for capturing the current image (300b) and the past image (300a); a processing unit (104) coupled to the image capture device (102) and configured to receive the current image (300b) and the past image (300a); The processing unit (104) further comprises: applying a machine learning object detection algorithm to the current image (300b) to detect one or more convex mirrors (302b, 304b) in the current image (300b); From a past image (300a) including one or more convex mirrors (302a, 302b), one or more convex mirrors (302b, 304b) in the current image (300b) are estimated by extrapolation; The one or more convex mirrors (302b, 304b) detected by the machine learning algorithm are expanded with the one or more convex mirrors estimated by extrapolation from the past image (300a). The system (100) is configured as follows. 11. To extrapolate one or more convex mirrors from the past image (300a), the processing unit (104) further comprises: For each of the convex mirrors (302a, 304a) in the past image (300a), estimating the position of the convex mirror (304b) in the current image (300b) based on the past image (300a); Detecting the convex mirror (304b) at the estimated position in the current image (300b). The system (100) according to claim 10, characterized in that it is configured as follows. 12. To estimate the position of the convex mirror, the processing unit (104) further comprises: Extracting feature points (306a, 308a) of the convex mirror (302a, 304a) in the past image (300a); identifying said feature points (306b, 308b) in said current image (300b); obtaining a region of interest (310) in the current image (300b) based on the positions of the feature points (306b, 308b) in the current image (300b); 12. The system (100) according to claim 11, characterized in that it is configured to apply an optical flow algorithm comprising: 13. To detect the convex mirror at the estimated position in the current image (300b), the processing unit (104) further comprises: extracting pixel information representing the curved mirror (304a) detected in the past image (300a) from the past image (300a) as template pixel information; detecting the convex mirror (304b) within the region of interest (310) in the current image (300b) based on the template pixel information; 13. The system (100) according to claim 12, characterized in that it is configured to apply a template matching algorithm including: 14. To extend the one or more convex mirrors, the processing unit (104) further comprises: The system (100) described in any one of claims 10 to 13, characterized in that when the convex mirror (304b) estimated by the one or more extrapolation methods is not detected in the current image (300a) by the machine learning object detection algorithm, the system (100) is configured to consider the convex mirror estimated by the extrapolation method as the convex mirror (304b) detected in the current image (300b). 15. A computer-readable storage medium having software instructions stored thereon which, when executed by a processing unit of a system, cause the processing unit to perform a method for detecting one or more convex mirrors (302b, 304b) in a current image (300b) as described in any one of 1 to 9 above. [Explanation of symbols]
[0106] 100 System for detecting convex mirrors in an image 102 Image capture device 104 Processing Unit 106 Object Detection Unit 108 Operating Unit 300a past images 300b Current image 302a Convex mirror in past images 304a Convex mirror in past images 302b Convex mirror in the current image 304b Convex mirror in the current image 306a Feature points in past images 308a Feature points in past images 306b Feature points in the current image 308b Feature points in the current image 310 Areas of Interest 312 Boundary Box 400 Computer Systems 402 Computer Unit 404 Keyboard 406 Pointing Device 408 Display 410 Printer 412 Computer Networks 414 Transceiver Device 418 Processor 420 Random Access Memory 422 Read-Only Memory 424 Input / Output Interface Unit 426 Interface Unit 428 System Bus 430 Data storage device
Claims
1. A computer-implemented method for detecting convex mirrors (302b, 304b) in a current image (300b), comprising: applying a machine learning object detection algorithm to the current image (300b) to detect one or more convex mirrors (302b, 304b) in the current image (300b); A step of extrapolating one or more convex mirrors (302a, 304a) in the current image (300b) from a past image (300a) including one or more convex mirrors; augmenting the one or more convex mirrors (302b, 304b) detected by the machine learning object detection algorithm with the one or more convex mirrors estimated by extrapolation from the past image (300a); 23. A computer-implemented method comprising:
2. The step of extrapolating one or more convex mirrors (302b, 304b) in the current image (300b) comprises: For each of the convex mirrors (302a, 304a) in the past image (300a), estimating a position of the convex mirror (304b) in the current image (300b) based on the past image (300a); detecting the convex mirror (304b) at the estimated position in the current image (300b); The method of claim 1 , comprising:
3. 3. The method of claim 2, wherein estimating the position of the convex mirror (304b) comprises applying an optical flow algorithm.
4. The optical flow algorithm includes: Extracting feature points (306a, 308a) of the convex mirror (304a) in the past image (300a); identifying said feature points (306b, 308b) in said current image (300b); obtaining a region of interest (310) in the current image based on the positions of the feature points (306b, 308b) in the current image (300b); The method of claim 3, comprising:
5. 5. The method of claim 4, wherein detecting the convex mirror (304b) at the estimated position in the current image (300b) comprises applying a template matching algorithm in the region of interest (310).
6. The step of applying a template matching algorithm comprises: extracting pixel information representing the detected curved mirror (304a) in the past image (300a) from the past image (300a) as template pixel information; detecting the convex mirror (304b) within the region of interest (310) in the current image (300b) based on the template pixel information; The method of claim 5, comprising:
7. 7. The method of claim 6, wherein the curved mirror (304b) is detected in the region of interest (310) if pixel information within the region of interest matches that of the template pixel information.
8. The step of expanding the one or more convex mirrors includes: If the one or more extrapolated convex mirrors are not detected in the current image (300b) by the machine learning object detection algorithm, the extrapolated convex mirror (304b) is considered to be the convex mirror detected in the current image. The method according to any one of claims 1 to 7, characterized in that it comprises:
9. The method according to claim 1 or 2, characterized in that the previous image (300a) and the current image (300b) are image frames of a video.
10. A system (100) for detecting convex mirrors (302, 304) in a current image (300b), comprising: an image capture device (102) for capturing the current image (300b) and the past image (300a); a processing unit (104) coupled to the image capture device (102) and configured to receive the current image (300b) and the past image (300a), The processing unit (104) further comprises: applying a machine learning object detection algorithm to the current image (300b) to detect one or more convex mirrors (302b, 304b) in the current image (300b); From a past image (300a) including one or more convex mirrors (302a, 302b), one or more convex mirrors (302b, 304b) in the current image (300b) are estimated by extrapolation; The one or more convex mirrors (302b, 304b) detected by the machine learning object detection algorithm are expanded with the one or more convex mirrors estimated by extrapolation from the past image (300a). The system (100) is configured to:
11. To extrapolate one or more convex mirrors from the past image (300a), the processing unit (104) further comprises: For each of the convex mirrors (302a, 304a) in the past image (300a), Estimating the position of the convex mirror (304b) in the current image (300b) based on the past image (300a); Detecting the convex mirror (304b) at the estimated position in the current image (300b). The system (100) of claim 10, configured to:
12. To estimate the position of the convex mirror, the processing unit (104) further comprises: Extracting feature points (306a, 308a) of the convex mirror (302a, 304a) in the past image (300a); identifying said feature points (306b, 308b) in said current image (300b); obtaining a region of interest (310) in the current image (300b) based on the positions of the feature points (306b, 308b) in the current image (300b); The system (100) according to claim 11, characterized in that it is configured to apply an optical flow algorithm comprising:
13. To detect the convex mirror at the estimated position in the current image (300b), the processing unit (104) further comprises: A step of extracting pixel information representing the curved mirror (304a) detected in the past image (300a) from the past image (300a) as template pixel information; detecting the convex mirror (304b) within the region of interest (310) in the current image (300b) based on the template pixel information; The system (100) according to claim 12, characterized in that it is configured to apply a template matching algorithm comprising:
14. To extend the one or more convex mirrors, the processing unit (104) further comprises: The system (100) according to any one of claims 10 to 13, characterized in that, when the convex mirror (304b) estimated by the one or more extrapolation methods is not detected in the current image (300a) from the machine learning object detection algorithm, the system (100) is configured to consider the convex mirror (304b) estimated by the extrapolation method as the convex mirror (304b) detected in the current image (300b).
15. A computer-readable storage medium having software instructions stored thereon which, when executed by a processing unit of a system, cause the processing unit to perform a method for detecting one or more convex mirrors (302b, 304b) in a current image (300b) as described in claim 1 or 2.
Citation Information
Patent Citations
Image processing device and method, and program
JP2007272733A
Vehicle detector, vehicle detection program, and vehicle detection method
JP2011039833A
Curve mirror detection device
JP2016110373A
Object following system, object following device, object following method, and object following program
JP2018045405A
Information processor, information processing method and program
JP2018106666A