Vehicle navigation based on detected barriers

The system uses cameras and integrated data to analyze surroundings and determine safe navigation paths for autonomous vehicles, addressing the challenge of unexpected obstacles and pedestrians, thereby improving safety and maneuverability.

JP7601341B2Active Publication Date: 2024-12-17MOBILEYE VISION TECH LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023127102
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-10-11
Filing Date
2023-08-03
Publication Date
2024-12-17
Estimated Expiration
2037-06-22

AI Technical Summary

Technical Problem

Autonomous vehicles face challenges in navigating around unexpected obstacles or pedestrians in their vicinity, requiring systems that can quickly analyze the surrounding environment and determine a safe navigation path.

Method used

The system utilizes cameras to monitor the vehicle's surroundings, analyze images, and integrate GPS, sensor, and map data to identify drivable areas, barriers, and determine a navigation path that avoids impassable obstacles while traversing passable ones.

Benefits of technology

Enables autonomous vehicles to safely maneuver around obstacles and pedestrians by determining a navigation path that minimizes accidents and damage, enhancing their ability to navigate complex environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007601341000001
    Figure 0007601341000001
  • Figure 0007601341000002
    Figure 0007601341000002
  • Figure 0007601341000003
    Figure 0007601341000003
Patent Text Reader

Abstract

To provide systems and methods for navigating an autonomous vehicle.SOLUTION: A system for navigating a vehicle includes at least one processing device programmed to receive, from an image capture device, a plurality of images associated with an environment of the vehicle, analyze at least one of the plurality of images to identify a navigable region in the environment of the vehicle, identify, based on the at least one of the plurality of images, at least one barrier associated with an edge of the navigable region, and determine a type of the at least one barrier. The at least one processing device is also programmed to determine a navigational path of the vehicle based on the determined type of the at least one barrier, and cause the vehicle to travel on at least a portion of the determined navigational path.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of priority to U.S. Provisional Patent Application No. 62 / 406,604, filed October 11, 2016. The aforementioned application is incorporated herein by reference in its entirety.

[0002] background Technical Field

[0002] The present disclosure relates generally to autonomous vehicle navigation. In addition, the present disclosure relates to a system and method for steering a vehicle based on detected obstacles. [Background technology]

[0003] Background information

[0003] As technology continues to advance, the goal of a fully autonomous vehicle capable of traveling on roads is in sight. In order to safely and accurately reach its intended destination, an autonomous vehicle may need to take into account various factors and make appropriate decisions based on those factors. For example, an autonomous vehicle may need to process and interpret visual information (e.g., information captured from a camera), information from radar or lidar, and may also use information obtained from other sources (e.g., from a GPS device, speed sensor, accelerometer, suspension sensor, etc.). At the same time, to travel to its destination, an autonomous vehicle may need to identify its position within a particular road (e.g., a particular lane in a multi-lane road), travel alongside other vehicles, avoid obstacles and pedestrians, monitor traffic signals and signs, move from one road to another at appropriate intersections or interchanges, and respond to any other situations that arise or develop during the vehicle's travel. The unexpected appearance of an obstacle or pedestrian within a relatively short distance in front of the vehicle may be problematic for an autonomous vehicle. In such cases, an autonomous vehicle may need to quickly analyze the vehicle's surrounding environment and determine a viable drivable route for the vehicle to avoid accidents and / or minimize damage. Summary of the Invention [Means for solving the problem]

[0004] overview

[0004] Embodiments consistent with the present disclosure provide systems and methods for autonomous vehicle navigation. The disclosed embodiments may use cameras to provide autonomous vehicle navigation functions. For example, consistent with the disclosed embodiments, the disclosed system may include one, two, or more cameras that monitor the vehicle's surroundings. The disclosed system may provide a navigation response, for example, based on an analysis of images captured by one or more of the cameras. The navigation response may also take into account other data, including, for example, Global Positioning System (GPS) data, sensor data (e.g., from accelerometers, speed sensors, suspension sensors, etc.), and / or other map data.

[0005] In some embodiments, a system for steering a vehicle may include at least one processing device programmed to receive a plurality of images associated with an environment of the vehicle from an image capture device, analyze at least one of the plurality of images to identify a drivable area in the environment of the vehicle, identify at least one barrier associated with an edge of the drivable area and determine a type of the at least one barrier based on the at least one of the plurality of images, determine a navigation path for the vehicle based on the determined type of the at least one barrier, and cause the vehicle to travel over at least a portion of the determined navigation path.

[0006] In another embodiment, a system for maneuvering a vehicle includes at least one processing device programmed to receive a plurality of images associated with an environment surrounding the vehicle from an image capture device, analyze at least one of the plurality of images to identify a drivable area in the environment surrounding the vehicle, and identify a first barrier associated with at least one edge of the drivable area and a second barrier associated with at least one edge of the drivable area based on at least one of the plurality of images, and determine a type of the first barrier and a type of the second barrier. The determined type of the first barrier includes a traversable barrier and the determined type of the second barrier includes an impassable barrier. The at least one processing device is also programmed to determine a navigation path for the vehicle based on the determined types of the first barrier and the second barrier. The determined navigation path includes traversing the first barrier to avoid the second barrier. The at least one processing device is further programmed to cause the vehicle to travel on at least a portion of the determined navigation path.

[0007]

[0007] In another embodiment, a method for steering a vehicle includes receiving a plurality of images related to a surrounding environment of the vehicle from an image capture device, analyzing at least one of the plurality of images to identify a drivable area in the surrounding environment of the vehicle, identifying at least one barrier associated with an edge of the drivable area based on at least one of the plurality of images, determining a type of the at least one barrier, determining a navigation path for the vehicle based on the determined type of the at least one barrier, and causing the vehicle to travel on at least a portion of the determined navigation path.

[0008]

[0008] In yet another embodiment, a method for maneuvering a vehicle includes receiving a plurality of images associated with an environment of the vehicle from an image capture device, analyzing at least one of the plurality of images to identify a drivable area in the environment of the vehicle, identifying a first barrier associated with at least one edge of the drivable area and a second barrier associated with at least one edge of the drivable area based on at least one of the plurality of images, and determining a type of the first barrier and a type of the second barrier. The determined type of the first barrier includes a traversable barrier and the determined type of the second barrier includes an impassable barrier. The method also includes determining a navigation path for the vehicle based on the determined types of the first barrier and the second barrier. The determined navigation path includes negotiating the first barrier to avoid the second barrier. The method further includes causing the vehicle to travel over at least a portion of the determined navigation path.

[0009]

[0009] Consistent with other disclosed embodiments, a non-transitory computer-readable storage medium may store program instructions that, when executed by at least one processing device, perform any of the methods described herein.

[0010]

[0010] The foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the scope of the claims.

[0011] BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various disclosed embodiments. [Brief description of the drawings]

[0012] [Figure 1] 1 is a schematic representation of an exemplary system consistent with disclosed embodiments. [Figure 2A]

[0013] 1 is a schematic side view of an exemplary vehicle including a system consistent with disclosed embodiments. [Figure 2B]

[0014] FIG. 2B is a schematic top view of the vehicle and system shown in FIG. 2A consistent with disclosed embodiments. [Figure 2C]

[0015] 1 is a schematic top view of another embodiment of a vehicle including a system consistent with the disclosed embodiments. [Figure 2D]

[0016] 1 is a schematic top view of yet another embodiment of a vehicle including a system consistent with the disclosed embodiments. [Figure 2E]

[0017] 1 is a schematic top view of yet another embodiment of a vehicle including a system consistent with the disclosed embodiments. [Figure 2F]

[0018] FIG. 1 is a schematic diagram of an exemplary vehicle control system consistent with disclosed embodiments. [Figure 3A]

[0019] 1 is a schematic diagram of the interior of a vehicle including a rearview mirror and a user interface for a vehicle imaging system consistent with disclosed embodiments. [Figure 3B]

[0020] FIG. 2 is a diagram of an example of a camera mount configured to be placed behind a rearview mirror and against the windshield of a vehicle, consistent with disclosed embodiments. [Figure 3C]

[0021] 3C is a diagram of the camera mount shown in FIG. 3B from a different perspective, consistent with disclosed embodiments. [Figure 3D]

[0022] FIG. 2 is a diagram of an example of a camera mount configured to be placed behind a rearview mirror and against the windshield of a vehicle, consistent with disclosed embodiments. [Figure 4]

[0023] 1 is an example block diagram of a memory configured to store instructions for performing one or more operations consistent with the disclosed embodiments. [Figure 5A]

[0024] 1 is a flow diagram illustrating an example process for triggering one or more navigational responses based on monocular image analysis, consistent with disclosed embodiments. [Figure 5B]

[0025] 1 is a flow diagram illustrating an example process for detecting one or more vehicles and / or pedestrians in a set of images consistent with disclosed embodiments. [Figure 5C]

[0026] 1 is a flow diagram illustrating an example process for detecting road marks and / or lane shape information in a set of images consistent with disclosed embodiments. [Figure 5D]

[0027] 1 is a flow diagram illustrating an example process for detecting traffic lights in a set of images consistent with disclosed embodiments. [Figure 5E]

[0028] 1 is a flow diagram illustrating an example process for triggering one or more navigational responses based on a vehicle path, consistent with disclosed embodiments. [Figure 5F]

[0029] 4 is a flow diagram illustrating an example process for determining whether a leading vehicle is changing lanes, consistent with disclosed embodiments. [Figure 6]

[0030] 1 is a flow diagram illustrating an example process for triggering one or more navigational responses based on stereo image analysis, consistent with disclosed embodiments. [Figure 7]

[0031] 1 is a flow diagram illustrating an example process for triggering one or more navigational responses based on analysis of three sets of images, consistent with disclosed embodiments. [Figure 8]

[0032] 1 illustrates a navigation system for a vehicle consistent with disclosed embodiments. [Figure 9]

[0033] 1 illustrates an example memory for storing program modules consistent with disclosed embodiments. [Figure 10A]

[0034] 1 illustrates a schematic diagram of a bird's-eye view of an exemplary vehicle's surroundings consistent with disclosed embodiments; [Figure 10B]

[0035] 10B illustrates a schematic representation of an image of the surrounding environment of FIG. 10A captured by a forward-facing image capture device included in the exemplary vehicle shown in FIG. 10A. [Figure 11]

[0036] 1 is a flow diagram illustrating an example process consistent with disclosed embodiments. [Figure 12]

[0037] 1 is a flow diagram illustrating an example process consistent with disclosed embodiments. [Figure 13]

[0038] 1 is a flow diagram illustrating an example process consistent with disclosed embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Detailed Description

[0039] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. Although some exemplary embodiments are described herein, modifications, variations, and other implementations are possible. For example, the components shown in the drawings can be substituted, added, or modified, and the exemplary methods described herein can be modified by substituting, rearranging, deleting, or adding steps to the disclosed methods. Therefore, the following detailed description is not limited to the disclosed embodiments and examples. Instead, the appropriate scope is defined by the appended claims.

[0014]

[0040] Overview of Autonomous Vehicles

[0041] As used throughout this disclosure, the term "autonomous vehicle" refers to a vehicle that can make at least one navigation change without driver input. A "navigation change" refers to a change in one or more of the following: steering, braking, and acceleration / deceleration of the vehicle. To be autonomous, a vehicle need not be fully automatic (e.g., fully operable without a driver or driver input). Rather, an autonomous vehicle includes a vehicle that can operate under driver control during certain periods and without driver control during other periods. An autonomous vehicle may also include a vehicle that controls only some aspects of the vehicle navigation, such as steering (e.g., to keep the vehicle on course between the vehicle's lane constraints) or some steering actions under certain circumstances (but not all circumstances), but can leave other aspects (e.g., braking or braking under certain circumstances) to the driver. In some cases, an autonomous vehicle can handle some or all aspects of the vehicle's braking, speed control, and / or steering.

[0015]

[0042] Because human drivers typically rely on visual cues and observations to control the vehicle, traffic infrastructure is built accordingly, with lane markings, traffic signs, and traffic lights designed to provide visual information to the driver. Given these design features of traffic infrastructure, an autonomous vehicle may include a camera and a processing unit that analyzes visual information captured from the vehicle's surroundings. The visual information may include, for example, images depicting traffic infrastructure components (e.g., lane markings, traffic signs, traffic lights, etc.) and other obstacles (e.g., other vehicles, pedestrians, debris, etc.) observable by the driver. Additionally, an autonomous vehicle may use stored information during navigation, such as information that provides a model of the vehicle's surroundings. For example, while traveling, the vehicle may use GPS data, sensor data (e.g., from accelerometers, speed sensors, suspension sensors, etc.), and / or other map data to provide information related to its surroundings, which the vehicle (as well as other vehicles) can use to locate itself on the model. Some vehicles may also be able to communicate between each other to share information and detect dangerous other vehicles or changes in the vehicle's surroundings.

[0016]

[0043] System Overview

[0044] FIG. 1 is a block schematic representation of a system 100 consistent with exemplary disclosed embodiments. System 100 may include various components depending on the requirements of a particular implementation. In some embodiments, system 100 may include a processing unit 110, an image acquisition unit 120, a position sensor 130, one or more memory units 140, 150, a map database 160, a user interface 170, and a wireless transceiver 172. Processing unit 110 may include one or more processing devices. In some embodiments, processing unit 110 may include an application processor 180, an image processor 190, or any other suitable processing device. Similarly, image acquisition unit 120 may include any number of image capture devices and components depending on the requirements of a particular application. In some embodiments, image acquisition unit 120 may include one or more image capture devices (e.g., cameras, CCDs, or any other type of image sensor), such as image capture device 122, image capture device 124, and image capture device 126. The system 100 may also include a data interface 128 that communicatively connects the processing unit 110 to the image acquisition unit 120. For example, the data interface 128 may include any wired and / or wireless link for transmitting image data acquired by the image acquisition unit 120 to the processing unit 110.

[0017]

[0045] The wireless transceiver 172 may include one or more devices configured to exchange transmission signals over an air interface with one or more networks (e.g., cellular, Internet, etc.) by using radio frequencies, infrared frequencies, magnetic fields, or electric fields. The wireless transceiver 172 may use any known standard for transmitting and / or receiving data (e.g., Wi-Fi, Bluetooth, Bluetooth Smart, 802.15.4, ZigBee, etc.). Such transmissions may include communications from the host vehicle to one or more remotely located servers. Such transmissions may include communications (one-way or two-way) between the host vehicle and one or more target vehicles in the host vehicle's vicinity (e.g., to facilitate adjustments of the host vehicle's navigation in light of or in conjunction with the target vehicles in the host vehicle's vicinity), or may even include broadcast transmissions to unspecified recipients in the vicinity of the transmitting vehicle.

[0018]

[0046] Both application processor 180 and image processor 190 may include various types of hardware-based processing devices. For example, either or both of application processor 180 and image processor 190 may include a microprocessor, a preprocessor (such as an image preprocessor), a graphics processor, a central processing unit (CPU), support circuitry, a digital signal processor, an integrated circuit, memory, or any other type of device suitable for executing applications and suitable for image processing and analysis. In some embodiments, application processor 180 and / or image processor 190 may include any type of single-core or multi-core processor, mobile device microcontroller, central processing unit, etc. A variety of processing devices may be used, including, for example, processors available from manufacturers such as Intel®, AMD®, etc., and may include various architectures (e.g., x86 processor, ARM®, etc.).

[0019]

[0047] In some embodiments, the application processor 180 and / or the image processor 190 may include any of the EyeQ series of processor chips available from Mobileye®. Each of these processor designs includes multiple processing units with local memory and instruction sets. Such processors may include video inputs for receiving image data from multiple image sensors, and may also include video output capabilities. In one example, the EyeQ2® uses 90 nm-micron technology running at 332 MHz. The EyeQ2® architecture consists of two floating-point, hyper-threaded 32-bit RISC CPUs (MIPS32® 34K® cores), five Vision Computing Engines (VCEs), three Vector Microcode Processors (VMPs®), a Denali 64-bit Mobile DDR Controller, a 128-bit internal Sonics Interconnect, dual 16-bit video input and 18-bit video output controllers, a 16-channel DMA, and several peripherals. The MIPS34K CPU manages the 5 VCEs, 3 VMPs and DMA, the second MIPS34K CPU, and the multi-channel DMA and other peripherals. The 5 VCEs, 3 VMPs and MIPS34K CPU can perform the intensive vision calculations required by multi-function tie-in applications. In another example, the EyeQ3, which is a third generation processor and is 6 times more powerful than the EyeQ2, may be used in the disclosed embodiments. In another example, the EyeQ4 and / or EyeQ5 may be used in the disclosed embodiments. Of course, any newer or future EyeQ processing device may also be used with the disclosed embodiments.

[0020]

[0048] Any of the processing devices disclosed herein may be configured to perform a particular function. Configuring a processing device, such as any of the described EyeQ processors, or other controllers or microprocessors, to perform a particular function may include programming the processing device with computer-executable instructions and making these instructions available to the processing device for execution during operation of the processing device. In some embodiments, configuring a processing device may include directly programming the processing device with architectural instructions. In other embodiments, configuring a processing device may include storing executable instructions on a memory accessible to the processing device during operation. For example, the processing device may access the memory during operation to retrieve and execute the stored instructions. In either case, a processing device adapted to perform the sensing, image analysis, and / or navigation functions disclosed herein represents a specialized hardware-based system managing multiple hardware-based components of a host vehicle.

[0021]

[0049] 1 shows two separate processing units included within processing unit 110, more or fewer processing units may be used. For example, in some embodiments, a single processing unit may be used to accomplish the tasks of application processor 180 and image processor 190. In other embodiments, these tasks may be performed by three or more processing units. Additionally, in some embodiments, system 100 may include one or more processing units 110 without including other components, such as image acquisition unit 120.

[0022]

[0050] The processing unit 110 may include various types of devices. For example, the processing unit 110 may include various devices such as a controller, an image preprocessor, a central processing unit (CPU), support circuits, digital signal processors, integrated circuits, memory, or any other type of device for image processing and analysis. The image preprocessor may include a video processor for capturing, digitizing, and processing images from an image sensor. The CPU may include any number of microcontrollers or microprocessors. The support circuits may be any number of circuits commonly known in the art, including cache, power, clock, and input / output circuits. The memory may store software that, when executed by the processor, controls the operation of the system. The memory may include databases and image processing software. The memory may include any number of random access memories, read-only memories, flash memories, disk drives, optical storage devices, tape storage devices, removable storage devices, and other types of storage devices. In one example, the memory may be separate from the processing unit 110. In another example, the memory may be integral to the processing unit 110.

[0023]

[0051] Each memory 140, 150 may contain software instructions that, when executed by a processor (e.g., application processor 180 and / or image processor 190), may control the operation of various aspects of system 100. These memory units may contain various databases and image processing software, as well as trained systems, such as neural networks or deep neural networks. The memory units may include random access memory, read-only memory, flash memory, disk drives, optical storage devices, tape storage devices, removable storage devices, and / or any other type of storage device. In some embodiments, memory units 140, 150 may be separate from application processor 180 and / or image processor 190. In other embodiments, these memory units may be integral to application processor 180 and / or image processor 190.

[0024]

[0052] Position sensor 130 may include any type of device suitable for determining a position associated with at least one component of system 100. In some embodiments, position sensor 130 may include a GPS receiver. Such a receiver may determine the location and velocity of a user by processing signals broadcast by Global Positioning System satellites. Position information from position sensor 130 may be made available to application processor 180 and / or image processor 190.

[0025]

[0053] In some embodiments, system 100 may include components such as a speed sensor (e.g., a speedometer) for measuring the speed of vehicle 200. System 100 may also include one or more accelerometers (single-axis or multi-axis) for measuring the acceleration of vehicle 200 along one or more axes.

[0026]

[0054] The memory units 140, 150 may contain a database or data organized in any other format indicating the locations of known landmarks. Sensor information of the surrounding environment (such as images, radar signals, depth information from lidar, or stereo processing of two or more images) can be processed along with location information such as GPS coordinates, ego-motion of the vehicle, etc. to determine the current location of the vehicle relative to known landmarks to further refine the location of the vehicle. Certain aspects of this technology are included in a localization technology known as REM™, which is commercially available from the assignee of the present application.

[0027]

[0055] User interface 170 may include any device suitable for providing information to and receiving input from one or more users of system 100. In some embodiments, user interface 170 may include user input devices including, for example, a touch screen, a microphone, a keyboard, a pointer device, a track wheel, a camera, knobs, buttons, etc. Using such input devices, a user may provide information input or commands to system 100 by typing instructions or information, providing voice commands, selecting on-screen menu options using buttons, a pointer, or eye-tracking capabilities, or through any other suitable technique for conveying information to system 100.

[0028]

[0056] User interface 170 may include one or more processing devices configured to provide information to and receive information from a user and process the information, e.g., for use by application processor 180. In some embodiments, such processing devices may execute instructions for recognizing and tracking eye movements, receiving and interpreting voice commands, recognizing and interpreting touches and / or gestures made on a touchscreen, responding to keyboard entries or menu selections, etc. In some embodiments, user interface 170 may include a display, a speaker, a haptic device, and / or any other device for providing output information to a user.

[0029]

[0057] Map database 160 may include any type of database for storing map data useful to system 100. In some embodiments, map database 160 may include data regarding the locations in a reference coordinate system of various items, including roads, water features, geographic features, shops, points of interest, restaurants, gas stations, etc. Map database 160 may store not only the locations of such items, but also descriptors associated with those items, including, for example, a name associated with any of the stored features. In some embodiments, map database 160 may be physically located with other components of system 100. Alternatively or in addition, map database 160 or portions thereof may be located remotely with respect to other components of system 100 (e.g., processing unit 110). In such embodiments, information from map database 160 may be downloaded via a wired or wireless data connection to a network (e.g., via a cellular network and / or the Internet, etc.). In some cases, map database 160 may store sparse data models that include polynomial representations of specific road features (e.g., lane markings) or target trajectories of the host vehicle. The map database 160 may also contain stored representations of various recognized landmarks that can be used to determine or update the known position of the host vehicle relative to the target trajectory. The landmark representations may include data fields such as the landmark type, the landmark location, among other potential identifiers.

[0030]

[0058] Image capture devices 122, 124, and 126 may each include any type of device suitable for capturing at least one image from the surrounding environment. Additionally, any number of image capture devices may be used to obtain images for input to the image processor. Some embodiments may include only a single image capture device, while other embodiments may include two, three, or even four or more image capture devices. Image capture devices 122, 124, and 126 are further described below with reference to Figures 2B-2E.

[0031]

[0059] One or more cameras (e.g., image capture devices 122, 124, and 126) may be part of a sensing block included in the vehicle. A variety of other sensors may be included in the sensing block, any or all of which may be relied upon to develop a sensed navigation state of the vehicle. In addition to cameras (forward, side, rear, etc.), other sensors such as radar, lidar, and acoustic sensors may be included in the sensing block. Furthermore, the sensing block may include one or more components configured to communicate and transmit and receive information related to the vehicle's surroundings. For example, such components may include a radio transceiver (RF, etc.) capable of receiving sensor-based information from an information source located remotely relative to the host vehicle, or any other type of information related to the host vehicle's surroundings. Such information may include sensor output information received from vehicle systems other than the host vehicle, or related information. In some embodiments, such information may include information received from a remote computing device, a centralized server, etc. Furthermore, the cameras may take many different configurations, such as a single camera unit, multiple cameras, a cluster of cameras, long FOV, short FOV, wide angle, fisheye, etc.

[0032]

[0060] System 100, or various components thereof, may be incorporated into a variety of different platforms. In some embodiments, system 100 may be included in vehicle 200, as shown in FIG. 2A. For example, vehicle 200 may include processing unit 110 and any of the other components of system 100, as described above with respect to FIG. 1. In some embodiments, vehicle 200 may include only a single image capture device (e.g., a camera), while in other embodiments, such as those discussed with respect to FIGS. 2B-2E, multiple image capture devices may be used. For example, one of image capture devices 122 and 124 of vehicle 200, as shown in FIG. 2A, may be part of an Advanced Driver Assistance Systems (ADAS) imaging set.

[0033]

[0061] The image capture device included in vehicle 200 as part of image acquisition unit 120 may be located in any suitable location. In some embodiments, as shown in Figures 2A-2E and 3A-3C, image capture device 122 may be located near the rearview mirror. This location may provide a line of sight similar to that of the driver of vehicle 200, which may aid in determining what the driver can and cannot see. Image capture device 122 may be located anywhere near the rearview mirror, but placing image capture device 122 on the driver's side of the mirror may further aid in capturing an image representative of the driver's field of view and / or line of sight.

[0034]

[0062] Other locations may also be used for the image capture devices of the image acquisition unit 120. For example, the image capture device 124 may be located on or inside the bumper of the vehicle 200. Such a location may be particularly suitable for an image capture device with a wide field of view. The line of sight of an image capture device located on the bumper may be different from the line of sight of the driver, and thus the bumper image capture device and the driver do not always see the same objects. The image capture devices (e.g., image capture devices 122, 124, and 126) may also be located in other locations. For example, the image capture devices may be located on or inside one or both of the side mirrors of the vehicle 200, on the roof of the vehicle 200, on the hood of the vehicle 200, on the trunk of the vehicle 200, on the sides of the vehicle 200, mounted on or behind or in front of any of the windows of the vehicle 200, mounted inside or near the front and / or rear lighting fixtures of the vehicle 200, etc.

[0035]

[0063] In addition to the image capture device, vehicle 200 may include various other components of system 100. For example, processing unit 110 may be included in vehicle 200, either integral with or separate from the vehicle's engine control unit (ECU). Vehicle 200 may also be equipped with a location sensor 130, such as a GPS receiver, and may include a map database 160 and memory units 140 and 150.

[0036]

[0064] As previously discussed, the wireless transceiver 172 may transmit and / or receive data via one or more networks (e.g., a cellular network, the Internet, etc.). For example, the wireless transceiver 172 may upload data collected by the system 100 to one or more servers and download data from the one or more servers. Through the wireless transceiver 172, the system 100 may receive periodic or on-demand updates to data stored in, for example, the map database 160, the memory 140, and / or the memory 150. Similarly, the wireless transceiver 172 may upload any data from the system 100 (e.g., images captured by the image acquisition unit 120, the position sensor 130 or other sensors, data received by the vehicle control system, etc.) and / or any data processed by the processing unit 110 to one or more servers.

[0037]

[0065] System 100 may upload data to a server (e.g., the cloud) based on a privacy level setting. For example, system 100 may implement a privacy level setting to regulate or limit the type of data (including metadata) that may uniquely identify the vehicle and / or the driver / owner of the vehicle that is sent to the server. Such settings may be set by a user via wireless transceiver 172, for example, and may be initialized by factory default settings or by data received by wireless transceiver 172.

[0038]

[0066] In some embodiments, system 100 may upload data according to a "high" privacy level, under which system 100 may transmit data (e.g., location information associated with a route, captured images, etc.) without including details about the specific vehicle and / or driver / owner. For example, when uploading data according to a "high" privacy setting, system 100 may not include the vehicle identification number (VIN) or the name of the vehicle's driver or owner, and instead transmit data such as captured images and / or limited location information associated with a route.

[0039]

[0067] Other privacy levels are contemplated. For example, the system 100 may transmit data to the server according to a "medium" privacy level, which may include additional information not included under the "high" privacy level, such as the make and / or model of the vehicle, and / or type of vehicle (e.g., car, SUV, truck, etc.). In some embodiments, the system 100 may upload data according to a "low" privacy level. Under a "low" privacy level setting, the system 100 may upload data that includes enough information to uniquely identify a particular vehicle, the owner / driver, and / or some or all of the route traveled by the vehicle. Such "low" privacy level data may include, for example, one or more of the VIN, the driver / owner's name, the origin of the vehicle prior to departure, the intended destination of the vehicle, the make and / or model of the vehicle, the type of vehicle, etc.

[0040]

[0068] FIG 2A is a schematic side view of an exemplary vehicle imaging system consistent with disclosed embodiments. FIG 2B is a schematic top view of the embodiment shown in FIG 2A. As shown in FIG 2B, the disclosed embodiments may include a vehicle 200 that includes a system 100 therein, the system 100 including a first image capture device 122 disposed near a rearview mirror and / or near a driver of the vehicle 200, a second image capture device 124 disposed on or in a bumper area (e.g., one of the bumper areas 210) of the vehicle 200, and a processing unit 110.

[0041]

[0069] As shown in Figure 2C, both image capture devices 122 and 124 may be located near the rearview mirror and / or near the driver of vehicle 200. Additionally, while two image capture devices 122 and 124 are shown in Figures 2B and 2C, it will be appreciated that other embodiments may include three or more image capture devices. For example, in the embodiment shown in Figures 2D and 2E, system 100 of vehicle 200 includes first, second, and third image capture devices 122, 124, and 126.

[0042]

[0070] As shown in Figure 2D, image capture device 122 may be located near a rearview mirror and / or near a driver of vehicle 200, and image capture devices 124 and 126 may be located on or in a bumper area (e.g., one of bumper areas 210) of vehicle 200. As also shown in Figure 2E, image capture devices 122, 124, and 126 may be located near a rearview mirror and / or near a driver's seat of vehicle 200. The disclosed embodiments are not limited to any particular number and configuration of image capture devices, and image capture devices may be located in any suitable location in and / or on vehicle 200.

[0043]

[0071] It should be understood that the disclosed embodiments are not limited to vehicles and may be applied in other contexts, and that the disclosed embodiments are not limited to a particular type of vehicle 200, but may be applied to all types of vehicles, including cars, trucks, trailers, and other types of vehicles.

[0044]

[0072] The first image capture device 122 may include any suitable type of image capture device. The image capture device 122 may include an optical axis. In one example, the image capture device 122 may include an Aptina M9V024 WVGA sensor with a global shutter. In other embodiments, the image capture device 122 may provide a resolution of 1280×960 pixels and may include a rolling shutter. The image capture device 122 may include various optical elements. In some embodiments, one or more lenses may be included to provide a desired focal length and field of view for the image capture device, for example. In some embodiments, the image capture device 122 may be associated with a 6 mm lens or a 12 mm lens. In some embodiments, the image capture device 122 may be configured to capture an image having a desired field of view (FOV) 202, as shown in FIG. 2D. For example, image capture device 122 may be configured to have a regular FOV, such as in the range of 40 degrees to 56 degrees, including 46 degree FOV, 50 degree FOV, 52 degree FOV, or more. Alternatively, image capture device 122 may be configured to have a narrow FOV in the range of 23 degrees to 40 degrees, such as a 28 degree FOV or a 36 degree FOV. Additionally, image capture device 122 may be configured to have a wide FOV in the range of 100 degrees to 180 degrees. In some embodiments, image capture device 122 may include a wide angle bumper camera or a camera with up to 180 degree FOV. In some embodiments, image capture device 122 may be a 7.2M pixel image capture device with an aspect ratio of approximately 2:1 (e.g., H×V=3800×1900 pixels) with a horizontal FOV of approximately 100 degrees. Such an image capture device may be used in place of a three image capture device configuration. Due to significant lens distortion, the vertical FOV of such an image capture device may be significantly less than 50 degrees in embodiments in which the image capture device uses a radially symmetric lens, for example, such a lens may not be radially symmetric to allow a vertical FOV greater than 50 degrees with a horizontal FOV of 100 degrees.

[0045]

[0073] The first image capture device 122 may acquire a plurality of first images of a scene associated with the vehicle 200. Each of the plurality of first images may be acquired as a series of image scan lines that may be captured using a rolling shutter. Each scan line may include a plurality of pixels.

[0046]

[0074] The first image capture device 122 may have a scan rate associated with acquiring each of the first set of image scan lines. The scan rate may refer to the rate at which the image sensor can acquire image data associated with each pixel included in a particular scan line.

[0047]

[0075] Image capture devices 122, 124, and 126 may include any suitable type and number of image sensors, including, for example, CCD or CMOS sensors. In one embodiment, a CMOS image sensor may be employed with a rolling shutter, such that each pixel in a row is read out one at a time, and the rows are scanned row by row until the entire image frame is captured. In some embodiments, the rows may be captured sequentially from top to bottom for the frame.

[0048]

[0076] In some embodiments, one or more of the image capture devices disclosed herein (e.g., image capture devices 122, 124, and 126) may constitute high resolution imaging devices and may have a resolution of greater than 5M pixels, 7M pixels, 10M pixels, or more.

[0049]

[0077] With a rolling shutter, pixels in different rows are exposed and captured at different times, which can cause skew and other image artifacts in the captured image frame. On the other hand, if the image capture device 122 is configured to operate with a global shutter or a synchronous shutter, all pixels can be exposed for the same time and during a common exposure period. As a result, image data in a frame collected from a system employing a global shutter represents a snapshot of the entire FOV (e.g., FOV 202) at a particular time. In contrast, in a rolling shutter application, each row in a frame is exposed and the data is captured at a different time. Thus, moving objects can appear distorted in an image capture device with a rolling shutter. This phenomenon is described in more detail below.

[0050]

[0078] The second image capture device 124 and the third image capture device 126 may be any type of image capture device. Like the first image capture device 122, each of the image capture devices 124 and 126 may include an optical axis. In one embodiment, each of the image capture devices 124 and 126 may include an Aptina M9V024 WVGA sensor with a global shutter. Alternatively, each of the image capture devices 124 and 126 may include a rolling shutter. Like the image capture device 122, the image capture devices 124 and 126 may be configured to include various lenses and optical elements. In some embodiments, the lenses associated with the image capture devices 124 and 126 may provide a FOV (e.g., FOVs 204 and 206) that is the same as or narrower than the FOV (e.g., FOV 202) associated with the image capture device 122. For example, the image capture devices 124 and 126 may have an FOV of 40 degrees, 30 degrees, 26 degrees, 23 degrees, 20 degrees, or less.

[0051]

[0079] The image capture devices 124 and 126 may acquire a plurality of second and third images of a scene associated with the vehicle 200. Each of the plurality of second and third images may be acquired as a second and third set of image scan lines that may be captured using a rolling shutter. Each scan line or row may have a plurality of pixels. The image capture devices 124 and 126 may have second and third scan rates associated with the acquisition of each of the image scan lines in the second and third sets.

[0052]

[0080] Each image capture device 122, 124, and 126 may be disposed in any suitable position and orientation with respect to vehicle 200. The relative positioning of image capture devices 122, 124, and 126 may be selected to aid in fusing information obtained from the image capture devices. For example, in some embodiments, the FOV associated with image capture device 124 (e.g., FOV 204) may partially or completely overlap with the FOV associated with image capture device 122 (e.g., FOV 202) and the FOV associated with image capture device 126 (e.g., FOV 206).

[0053]

[0081] The image capture devices 122, 124, and 126 may be positioned at any suitable relative height on the vehicle 200. In one example, there may be a height difference between the image capture devices 122, 124, and 126, which may provide sufficient parallax information to enable stereo analysis. For example, as shown in FIG. 2A, the two image capture devices 122 and 124 are at different heights. There may also be a lateral displacement difference between the image capture devices 122, 124, and 126, which may provide additional parallax information for stereo analysis by the processing unit 110, for example. The lateral displacement difference may be calculated as d xIn some embodiments, a fore-aft displacement (e.g., range displacement) may exist between image capture devices 122, 124, and 126. For example, image capture device 122 may be positioned 0.5 to 2 meters or more behind image capture device 124 and / or image capture device 126. This type of displacement may allow one of the image capture devices to cover a potential blind spot of the other image capture devices.

[0054]

[0082] Image capture device 122 may have any suitable resolution capability (e.g., the number of pixels associated with the image sensor), and the resolution of the image sensor associated with image capture device 122 may be higher, lower, or the same as the resolution of the image sensors associated with image capture devices 124 and 126. In some embodiments, the image sensors associated with image capture device 122 and / or image capture devices 124 and 126 may have a resolution of 640×480, 1024×768, 1280×960, or any other suitable resolution.

[0055]

[0083] The frame rate (e.g., the rate at which an image capture device acquires a set of pixel data for one image frame before moving on to capture pixel data associated with the next image frame) may be controllable. The frame rate associated with image capture device 122 may be higher, lower, or the same as the frame rate associated with image capture devices 124 and 126. The frame rate associated with image capture devices 122, 124, and 126 may depend on various factors that may affect the timing of the frame rate. For example, one or more of image capture devices 122, 124, and 126 may include a selectable pixel delay period imposed before or after acquiring image data associated with one or more pixels of an image sensor in image capture devices 122, 124, and / or 126. Generally, image data corresponding to each pixel may be acquired according to a clock rate for that device (e.g., one pixel per clock cycle). Additionally, in embodiments including a rolling shutter, one or more of image capture devices 122, 124, and 126 may include a selectable horizontal blanking period that is imposed before or after acquiring image data associated with a row of pixels of an image sensor in image capture devices 122, 124, and / or 126. Additionally, one or more of image capture devices 122, 124, and / or 126 may include a selectable vertical blanking period that is imposed before or after acquiring image data associated with an image frame of image capture devices 122, 124, and 126.

[0056]

[0084] These timing controls can enable synchronization of frame rates associated with image capture devices 122, 124, and 126 even if the respective line scan rates are different. Additionally, as discussed in more detail below, these selectable timing controls, among other factors (e.g., image sensor resolution, maximum line scan rate, etc.), can enable synchronization of image capture from areas where the FOV of image capture device 122 overlaps with one or more of the FOVs of image capture devices 124 and 126, even if the field of view of image capture device 122 differs from the FOV of image capture devices 124 and 126.

[0057]

[0085] The timing of frame rates in image capture devices 122, 124, and 126 may depend on the resolution of the associated image sensors. For example, assuming similar line scan rates for both devices, if one device includes an image sensor with a resolution of 640×480 and the other device includes an image sensor with a resolution of 1280×960, more time will be required to acquire a frame of image data from the higher resolution sensor.

[0058]

[0086] Another factor that may affect the timing of image data acquisition in image capture devices 122, 124, and 126 is the maximum line scan rate. For example, it takes some minimum amount of time to acquire a row of image data from the image sensors included in image capture devices 122, 124, and 126. Assuming no pixel delay periods are added, this minimum amount of time to acquire a row of image data is related to the maximum line scan rate of a particular device. Devices that offer faster maximum line scan rates have the potential to provide higher frame rates than devices with slower maximum line scan rates. In some embodiments, one or more of image capture devices 124 and 126 may have a maximum line scan rate that is faster than the maximum line scan rate associated with image capture device 122. In some embodiments, the maximum line scan rate of image capture devices 124 and / or 126 may be 1.25 times, 1.5 times, 1.75 times, or 2 times or more than the maximum line scan rate of image capture device 122.

[0059]

[0087] In another embodiment, image capture devices 122, 124, and 126 may have the same maximum line scan rate, but image capture device 122 may operate at a scan rate that is equal to or less than its maximum line scan rate. The system may be configured such that one or more of image capture devices 124 and 126 operate at a line scan rate that is equal to the line scan rate of image capture device 122. In other examples, the system may be configured such that the line scan rate of image capture device 124 and / or image capture device 126 may be 1.25 times, 1.5 times, 1.75 times, or 2 times or more the line scan rate of image capture device 122.

[0060]

[0088] In some embodiments, image capture devices 122, 124, and 126 may be asymmetric; that is, they may include cameras with different fields of view (FOV) and focal lengths. The fields of view of image capture devices 122, 124, and 126 may include any desired area related to, for example, the surrounding environment of vehicle 200. In some embodiments, one or more of image capture devices 122, 124, and 126 may be configured to obtain image data from an environment in front of vehicle 200, an environment behind vehicle 200, an environment to the side of vehicle 200, or a combination thereof.

[0061]

[0089] Further, the focal length associated with each image capture device 122, 124, and / or 126 may be selectable (e.g., by including an appropriate lens) such that each device captures images of objects at a desired range of distances relative to vehicle 200. For example, in some embodiments, image capture devices 122, 124, and 126 may capture images of close-up objects within a few meters of the vehicle. Image capture devices 122, 124, and 126 may also be configured to capture images of objects at greater distance ranges from the vehicle (e.g., 25 m, 50 m, 100 m, 150 m, or more). Further, the focal lengths of image capture devices 122, 124, and 126 may be selected such that one image capture device (e.g., image capture device 122) can capture images of objects that are relatively close to the vehicle (e.g., within 10 m or within 20 m), while the other image capture devices (e.g., image capture devices 124 and 126) can capture images of objects that are further away from vehicle 200 (e.g., more than 20 m, 50 m, 100 m, 150 m, etc.).

[0062]

[0090] According to some embodiments, the FOV of one or more of image capture devices 122, 124, and 126 may have a wide angle. For example, it may be advantageous for image capture devices 122, 124, and 126, which may be used, among other things, to capture images of areas near vehicle 200, to have an FOV of 140 degrees. For example, image capture device 122 may be used to capture images of areas to the right or left of vehicle 200, and in such embodiments, it may be desirable for image capture device 122 to have a wide FOV (e.g., at least 140 degrees).

[0063]

[0091] The field of view associated with each of the image capture devices 122, 124, and 126 may depend on the respective focal length. For example, the longer the focal length, the narrower the corresponding field of view.

[0064]

[0092] Image capture devices 122, 124, and 126 may be configured to have any suitable field of view. In one particular example, image capture device 122 may have a horizontal FOV of 46 degrees, image capture device 124 may have a horizontal FOV of 23 degrees, and image capture device 126 may have a horizontal FOV between 23 degrees and 46 degrees. In another example, image capture device 122 may have a horizontal FOV of 52 degrees, image capture device 124 may have a horizontal FOV of 26 degrees, and image capture device 126 may have a horizontal FOV between 26 degrees and 52 degrees. In some embodiments, the ratio of the FOV of image capture device 122 to the FOV of image capture device 124 and / or image capture device 126 may vary from 1.5 to 2.0. In other embodiments, the ratio may vary between 1.25 to 2.25.

[0065]

[0093] System 100 may be configured such that the field of view of image capture device 122 at least partially or completely overlaps the field of view of image capture device 124 and / or image capture device 126. In some embodiments, system 100 may be configured such that the fields of view of image capture devices 124 and 126 are, for example, contained within (and narrower than) the field of view of image capture device 122 and share a common center with the field of view of image capture device 122. In other embodiments, image capture devices 122, 124, and 126 may capture adjacent FOVs or may have partially overlapping FOVs. In some embodiments, the fields of view of image capture devices 122, 124, and 126 may be aligned such that the center of image capture device 124 and / or 126 with the narrower FOV may be located in the bottom half of the field of view of image capture device 122 with the wider FOV.

[0066]

[0094] 2F is a schematic diagram of an example vehicle control system consistent with disclosed embodiments. As shown in FIG. 2F, vehicle 200 may include a throttle system 220, a brake system 230, and a steering system 240. System 100 may provide inputs (e.g., control signals) to one or more of throttle system 220, brake system 230, and steering system 240 via one or more data links (e.g., any wired and / or wireless link for transmitting data). For example, based on an analysis of images acquired by image capture devices 122, 124, and / or 126, system 100 may provide control signals to one or more of throttle system 220, brake system 230, and steering system 240 to steer vehicle 200 (e.g., by accelerating, turning, changing lanes, etc.). Additionally, system 100 may receive inputs indicative of operating conditions of vehicle 200 (e.g., speed, whether vehicle 200 is braking and / or turning, etc.) from one or more of throttle system 220, braking system 230, and steering system 24. Further details are provided in connection with Figures 4-7 below.

[0067]

[0095] As shown in FIG. 3A , the vehicle 200 may include a user interface 170 for interacting with a driver or passengers of the vehicle 200. For example, the user interface 170 in a vehicle application may include a touch screen 320, knobs 330, buttons 340, and a microphone 350. The driver or passengers of the vehicle 200 may use a steering wheel (e.g., located on or near a steering column of the vehicle 200, including a turn signal handle), buttons (located on a driving handle of the vehicle 200), etc. to interact with the system 100. In some embodiments, the microphone 350 may be located adjacent to the rearview mirror 310. Similarly, in some embodiments, the image capture device 122 may be located near the rearview mirror 310. In some embodiments, the user interface 170 may include one or more speakers 360 (e.g., a speaker of an in-vehicle audio system). For example, the system 100 may provide various notifications (e.g., alerts) via the speaker 360.

[0068]

[0096] 3B-3D are diagrams of an exemplary camera mount 370 configured to be positioned behind a rearview mirror (e.g., rearview mirror 310) and facing a vehicle windshield, consistent with disclosed embodiments. As shown in FIG. 3B, camera mount 370 may include image capture devices 122, 124, and 126. Image capture devices 124 and 126 may be positioned behind glare shield 380, which may be in direct contact with the vehicle windshield and may include a film and / or a composition of anti-reflective materials. For example, glare shield 380 may be positioned to align with the vehicle windshield with a matching slope. In some embodiments, image capture devices 122, 124, and 126 may each be positioned behind glare shield 380, for example, as shown in FIG. 3D. The disclosed embodiments are not limited to any particular configuration of image capture devices 122, 124, and 126, camera mount 370, and glare shield 380. Figure 3C is a view of camera mount 370 shown in Figure 3B from a front view.

[0069]

[0097] As will be appreciated by those skilled in the art having the benefit of this disclosure, numerous variations and / or modifications may be made to the disclosed embodiments above. For example, not all components are essential for system 100 to operate. Moreover, any component may be located in any suitable portion of system 100, and the components may be rearranged in various configurations while still providing the functionality of the disclosed embodiments. Thus, the above-described configurations are examples, and regardless of the configuration described above, system 100 may provide a wide range of functionality to analyze the surroundings of vehicle 200 and steer vehicle 200 in response to the results of the analysis.

[0070]

[0098] As discussed in further detail below, consistent with various disclosed embodiments, system 100 may provide various functions related to autonomous driving and / or driver assistance technology. For example, system 100 may analyze image data, location data (e.g., GPS location information), map data, speed data, and / or data from sensors included in vehicle 200. System 100 may collect data for analysis from, for example, image capture unit 120, location sensor 130, and other sensors. Additionally, system 100 may analyze the collected data to determine whether vehicle 200 should take a particular action and automatically take the determined action without human intervention. For example, when vehicle 200 is traveling without human intervention, system 100 may automatically control braking, acceleration, and / or steering of vehicle 200 (e.g., by sending control signals to one or more of throttle system 220, braking system 230, and steering system 240). Additionally, system 100 may analyze the collected data and issue warnings and / or alerts to vehicle occupants based on the analysis of the collected data. Further details regarding various embodiments provided by system 100 are provided below.

[0071]

[0099] As described above, system 100 can provide driver assistance features using a multi-camera system. The multi-camera system can use one or more cameras facing forward of the vehicle. In other embodiments, the multi-camera system can include one or more cameras facing the side of the vehicle or the rear of the vehicle. In one embodiment, for example, system 100 can use a two-camera imaging system, where a first camera and a second camera (e.g., image capture devices 122 and 124) can be located at the front and / or side of the vehicle (e.g., vehicle 200). Other camera configurations are consistent with the disclosed embodiments, and the configurations disclosed herein are examples. For example, system 100 can include any number of camera (e.g., one, two, three, four, five, six, seven, eight, etc.) configurations. Additionally, system 100 can include a "cluster" of cameras. For example, the cluster of cameras (including any suitable number of cameras, e.g., one, four, eight, etc.) may face forward relative to the vehicle, or may face in any other direction (e.g., facing toward the rear, facing to the side, at an angle, etc.). Thus, system 100 may include multiple camera clusters, each oriented in a particular direction to capture images from a particular region of the vehicle's surroundings.

[0072]

[0100] The first camera may have a field of view that is wider, narrower, or overlaps that of the second camera. Additionally, the first camera may be connected to a first image processor to perform monocular image analysis of the image provided by the first camera, and the second camera may be connected to a second image processor to perform monocular image analysis of the image provided by the second camera. The output (e.g., processed information) of the first and second image processors may be combined. In some embodiments, the second image processor may receive images from both the first and second cameras to perform stereo analysis. In another embodiment, the system 100 may use a three-camera imaging system, with each camera having a different field of view. Thus, such a system may make decisions based on information derived from multiple objects located at various distances both in front of and to the sides of the vehicle. Reference to monocular image analysis may refer to cases where image analysis is performed based on images captured from a single viewpoint (e.g., from a single camera). Stereo image analysis may refer to cases where image analysis is performed based on two or more images captured using one or more types of image capture parameters. For example, captured images suitable for performing stereoscopic analysis may include images captured from two or more different positions, images captured from different fields of view, images captured using different focal lengths, images captured with disparity information, etc.

[0073]

[0101] For example, in one embodiment, system 100 may implement a three camera configuration using image capture devices 122-126. In such a configuration, image capture device 122 may provide a narrow field of view (e.g., 34 degrees or other value selected from the range of about 20 degrees to about 45 degrees, etc.), image capture device 124 may provide a wide field of view (e.g., 150 degrees or other value selected from the range of about 100 degrees to about 180 degrees), and image capture device 126 may provide an intermediate field of view (e.g., 46 degrees or other value selected from the range of about 35 degrees to about 60 degrees). In some embodiments, image capture device 126 may act as a primary or lead camera. Image capture devices 122-126 may be positioned behind rearview mirror 310 and may be positioned substantially side-by-side (e.g., 6 cm apart). Additionally, in some embodiments, as discussed above, one or more of the image capture devices 122-126 may be mounted behind a glare shield 380 that is flush with the windshield of the vehicle 200. Such a shield may serve to minimize the effect of any reflections from the interior of the vehicle on the image capture devices 122-126.

[0074]

[0102] In another embodiment, as described above in connection with Figures 3B and 3C, the wide field of view camera (e.g., image capture device 124 in the example above) may be mounted lower than the narrow and main field of view cameras (e.g., image capture devices 122 and 126 in the example above). This configuration may provide a free line of sight from the wide field of view camera. To reduce reflections, the cameras may be mounted near the windshield of the vehicle 200 and may include polarizers on the cameras to attenuate reflected light.

[0075]

[0103] A three camera system may provide certain performance characteristics. For example, some embodiments may include the ability to verify detection of an object by one camera based on detection results from another camera. In the three camera configuration described above, processing unit 110 may include, for example, three processing devices (e.g., three EyeQ series processor chips as described above), each dedicated to processing images captured by one or more of image capture devices 122-126.

[0076]

[0104] In a three camera system, the first processing unit may receive images from both the main camera and the narrow FOV camera and may perform vision processing for the narrow FOV camera to detect, for example, other vehicles, pedestrians, lane markings, traffic signs, traffic lights, and other road features. Additionally, the first processing unit may calculate pixel disparity between the images from the main camera and the narrow camera to generate a 3D reconstruction of the surrounding environment of the vehicle 200. The first processing unit may then combine the 3D reconstruction with 3D information calculated based on 3D map data or information from another camera.

[0077]

[0105] The second processing device may receive images from the primary camera and perform vision processing to detect other vehicles, pedestrians, lane markings, traffic signs, traffic lights, and other road features. Additionally, the second processing device may calculate the camera displacement and, based on the displacement, calculate pixel disparity between successive images to generate a 3D reconstruction (e.g., structure-from-motion) of the scene. The second processing device may transmit this structure-based 3D reconstruction from the structure-from-motion to the first processing device for compositing with the stereoscopic 3D image.

[0078]

[0106] The third processing unit may receive images from the wide FOV camera and process the images to detect vehicles, pedestrians, lane markings, traffic signs, traffic lights, and other road features. The third processing unit may further execute additional processing instructions to analyze the images to identify objects moving in the images, such as vehicles changing lanes, pedestrians, etc.

[0079]

[0107] In some embodiments, having independently captured and processed streams of image-based information may provide an opportunity to provide redundancy in the system, which may include, for example, using a first image capture device and the images processed therefrom to verify and / or complement information obtained by capturing and processing image information from at least a second image capture device.

[0080]

[0108] In some embodiments, system 100 may use two image capture devices (e.g., image capture devices 122 and 124) to provide navigation assistance to vehicle 200, and a third image capture device (e.g., image capture device 126) to provide redundancy and to verify analysis results of data received from the other two image capture devices. For example, in such a configuration, image capture devices 122 and 124 may provide images for stereo analysis by system 100 to navigate vehicle 200, while image capture device 126 may provide images for monocular analysis by system 100 to provide redundancy and verification of information derived based on images captured from image capture devices 122 and / or image capture device 124. That is, image capture device 126 (and corresponding processing device) may be considered to provide a redundant subsystem to provide checks on analysis results derived from image capture devices 122 and 124 (e.g., to provide an automatic emergency braking (AEB) system). Additionally, in some embodiments, redundancy and validation of received data may be supplemented based on information received from one or more sensors (e.g., radar, lidar, acoustic sensors, information received from one or more transceivers outside the vehicle, etc.).

[0081]

[0109] Those skilled in the art will appreciate that the above camera configurations, camera placements, number of cameras, camera locations, etc. are merely examples. These components, and other components described with respect to the overall system, may be assembled and used in a variety of different configurations without departing from the scope of the disclosed embodiments. Further details regarding the use of multi-camera systems to provide driver assistance and / or autonomous vehicle functions are provided below.

[0082]

[0110] 4 is an example functional block diagram of memory 140 and / or 150 that may store / program instructions for performing one or more operations consistent with the disclosed embodiments. Although reference is made below to memory 140, those skilled in the art will understand that instructions may be stored in memory 140 and / or 150.

[0083]

[0111] As shown in FIG. 4, memory 140 may store monocular image analysis module 402, stereo image analysis module 404, velocity and acceleration module 406, and navigation response module 408. The disclosed embodiments are not limited to any particular configuration of memory 140. Furthermore, application processor 180 and / or image processor 190 may execute instructions stored in any of modules 402-408 included in memory 140. Those skilled in the art will appreciate that references to processing unit 110 in the following discussion may refer to application processor 180 and image processor 190 individually or collectively. Thus, any steps of the following processes may be performed by one or more processing devices.

[0084]

[0112] In one embodiment, the monocular image analysis module 402 may store instructions (e.g., computer vision software) that, when executed by the processing unit 110, perform monocular image analysis of a set of images acquired by one of the image capture devices 122, 124, and 126. In some embodiments, the processing unit 110 may combine information from the set of images with additional sensor information (e.g., information from radar) to perform the monocular image analysis. As described below in connection with FIGS. 5A-5D, the monocular image analysis module 402 may include instructions for detecting a set of features within the set of images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, hazards, and any other features associated with the vehicle's surroundings. Based on the analysis results, the system 100 (e.g., via the processing unit 110) may cause one or more navigational responses in the vehicle 200, such as a turn, a lane change, a change in acceleration, etc., as discussed below in connection with the navigation response module 408.

[0085]

[0113] In one embodiment, the monocular image analysis module 402 may store instructions (e.g., computer vision software) that, when executed by the processing unit 110, perform monocular image analysis of a set of images acquired by one of the image capture devices 122, 124, and 126. In some embodiments, the processing unit 110 may combine information from the set of images with additional sensor information (e.g., information from radar, lidar, etc.) to perform the monocular image analysis. As described below in connection with FIGS. 5A-5D, the monocular image analysis module 402 may include instructions for detecting a set of features within the set of images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, hazards, and any other features associated with the vehicle's surroundings. Based on the analysis results, the system 100 (e.g., via the processing unit 110) may cause one or more navigational responses in the vehicle 200, such as a turn, a lane change, a change in acceleration, etc., as discussed below in connection with determining a navigational response.

[0086]

[0114] In one embodiment, the stereo image analysis module 404 may store instructions (e.g., computer vision software) that, when executed by the processing unit 110, perform stereo image analysis of a first and second set of images captured by a combination of image capture devices selected from any of the image capture devices 122, 124, and 126. In some embodiments, the processing unit 110 may combine information from the first and second set of images with additional sensor information (e.g., information from radar) to perform stereo image analysis. For example, the stereo image analysis module 404 may include instructions for performing stereo image analysis based on a first set of images captured by the image capture device 124 and a second set of images captured by the image capture device 126. As described below in connection with FIG. 6, the stereo image analysis module 404 may include instructions for detecting a set of features within the first and second set of images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, hazards, etc. Based on the analysis results, processing unit 110 may cause one or more navigational responses in vehicle 200, such as turning, changing lanes, changing acceleration, etc., as discussed below in connection with navigational response module 408. Additionally, in some embodiments, stereo image analysis module 404 may implement techniques associated with a trained system (such as a neural network or a deep neural network) or an untrained system.

[0087]

[0115] In one embodiment, the speed and acceleration module 406 may store software configured to analyze data received from one or more computational electromechanical devices in the vehicle 200 configured to cause a change in the speed and / or acceleration of the vehicle 200. For example, the processing unit 110 may execute instructions associated with the speed and acceleration module 406 to calculate a target speed of the vehicle 200 based on data derived from execution of the monocular image analysis module 402 and / or the stereo image analysis module 404. Such data may include, for example, a target position, speed, and / or acceleration, the position and / or speed of the vehicle 200 relative to nearby vehicles or pedestrians or road features, position information of the vehicle 200 relative to lane markings of the road, etc. Additionally, the processing unit 110 may calculate a target speed of the vehicle 200 based on sensor inputs (e.g., information from a radar) and inputs from other systems of the vehicle 200, such as the throttle system 220, the braking system 230, and / or the steering system 240 of the vehicle 200. Based on the calculated target speed, the processing unit 110 can send electronic signals to the throttle system 220, the braking system 230, and / or the steering system 240 of the vehicle 200 to cause a change in speed and / or acceleration, for example, by physically applying the brakes or easing off the accelerator of the vehicle 200.

[0088]

[0116] In one embodiment, the navigation response module 408 may store software executable by the processing unit 110 to determine a desired navigation response based on data derived from execution of the monocular image analysis module 402 and / or the stereo image analysis module 404. Such data may include position and speed information associated with nearby vehicles and pedestrians and road features, target position information for the vehicle 200, etc. Additionally, in some embodiments, the navigation response may be based (partially or fully) on map data, a predetermined position of the vehicle 200, and / or a relative speed or relative acceleration between the vehicle 200 and one or more objects detected by execution of the monocular image analysis module 402 and / or the stereo image analysis module 404. The navigation response module 408 may also determine a desired navigation response based on sensor inputs (e.g., information from a radar) and inputs from other systems of the vehicle 200, such as the throttle system 220, the braking system 230, and the steering system 240 of the vehicle 200. Based on the desired navigational response, processing unit 110 may send electronic signals to throttle system 220, braking system 230, and steering system 240 of vehicle 200 to cause the desired navigational response, such as by turning a driving wheel of vehicle 200 to achieve a predetermined angle of rotation. In some embodiments, processing unit 110 may use the output of navigational response module 408 (e.g., the desired navigational response) as an input to execute velocity and acceleration module 406 to calculate a change in velocity of vehicle 200.

[0089]

[0117] Additionally, any of the modules disclosed herein (e.g., modules 402, 404, and 406) may implement techniques related to trained systems (such as neural networks or deep neural networks) or untrained systems.

[0090]

[0118] FIG. 5A is a flow diagram illustrating an example process 500A for triggering one or more navigational responses based on monocular image analysis, consistent with disclosed embodiments. At step 510, processing unit 110 may receive a plurality of images via data interface 128 between processing unit 110 and image acquisition unit 120. For example, a camera (e.g., image capture device 122 having field of view 202) included in image acquisition unit 120 may capture and transmit a plurality of images of an area in front of vehicle 200 (or, for example, to the side or rear of the vehicle) to processing unit 110 via a data connection (e.g., digital, wired, USB, wireless, Bluetooth, etc.). Processing unit 110 may perform an analysis of the plurality of images at step 520 by executing monocular image analysis module 402, as described in more detail below in connection with FIGS. 5B-5D. By performing the analysis, processing unit 110 may detect a set of features in the set of images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, etc.

[0091]

[0119] Processing unit 110 may also execute monocular image analysis module 402 in step 520 to detect various road hazards, such as, for example, parts of truck tires, fallen road signs, loose cargo, small animals, etc. Road hazards may vary in structure, shape, size, and color, making such hazards more difficult to detect. In some embodiments, processing unit 110 may execute monocular image analysis module 402 to perform multi-frame analysis on multiple images to detect road hazards. For example, processing unit 110 may estimate camera motion between successive image frames and calculate pixel disparity between frames to build a 3D map of the road. Processing unit 110 may then use the 3D map to detect the road surface as well as hazards present on the road surface.

[0092]

[0120] In step 530, processing unit 110 may execute navigation response module 408 to cause one or more navigation responses in vehicle 200 based on the analysis performed in step 520 and the techniques described above in connection with FIG. 4. The navigation responses may include, for example, a turn, a lane change, a change in acceleration, etc. In some embodiments, processing unit 110 may use data derived from execution of speed and acceleration module 406 to cause one or more navigation responses. Furthermore, multiple navigation responses may occur simultaneously, sequentially, or any combination thereof. For example, processing unit 110 may cause vehicle 200 to move into the opposite lane and then accelerate, for example, by sequentially sending control signals to steering system 240 and throttle system 220 of vehicle 200. Alternatively, processing unit 110 may cause vehicle 200 to brake and change lanes at the same time, for example, by simultaneously sending control signals to braking system 230 and steering system 240 of vehicle 200.

[0093]

[0121] FIG. 5B is a flow diagram illustrating an example process 500B for detecting one or more vehicles and / or pedestrians in a set of images, consistent with disclosed embodiments. Processing unit 110 may execute monocular image analysis module 402 to perform process 500B. In step 540, processing unit 110 may determine a set of candidate objects representing possible vehicles and / or pedestrians. For example, processing unit 110 may scan one or more images and compare the images to one or more predefined patterns to identify estimated locations within each image that may contain objects of interest (e.g., vehicles, pedestrians, or portions thereof). The predefined patterns may be designed to achieve a high rate of "false hits" and a low rate of "misses." For example, processing unit 110 may use a low threshold similarity to the predefined patterns to identify candidate objects as possible vehicles or pedestrians. Doing so may enable processing unit 110 to reduce the likelihood of missing (e.g., not identifying) candidate objects representing vehicles or pedestrians.

[0094]

[0122] In step 542, processing unit 110 may filter the set of candidate objects to eliminate certain candidates (e.g., irrelevant or less relevant objects) based on classification criteria. Such criteria may be derived from various characteristics associated with the object types stored in a database (e.g., a database stored in memory 140). The characteristics may include the object's shape, dimensions, texture, location (e.g., relative to vehicle 200), etc. Thus, processing unit 110 may use one or more sets of criteria to reject false candidates from the set of candidate objects.

[0095]

[0123] In step 544, processing unit 110 may analyze multiple image frames to determine whether objects in the set of candidate objects represent vehicles and / or pedestrians. For example, processing unit 110 may track detected candidate objects across successive frames and accumulate per-frame data associated with the detected objects (e.g., size, position relative to vehicle 200, etc.). Additionally, processing unit 110 may estimate parameters of the detected objects and compare the per-frame position data of the objects to predicted positions.

[0096]

[0124] In step 546, processing unit 110 may construct a set of measurements of the detected objects. Such measurements may include, for example, position (relative to vehicle 200), velocity, and acceleration values ​​associated with the detected objects. In some embodiments, processing unit 110 may construct the measurements based on estimation techniques using a series of time-based observations, such as a Kalman filter or linear quadratic estimation (LQE), and / or based on modeling data available for different object types (e.g., cars, trucks, pedestrians, bicycles, road signs, etc.). A Kalman filter may be based on a measurement of the scale of the object, which is proportional to the time to impact (e.g., the amount of time it takes vehicle 200 to reach the object). Thus, by performing steps 540-546, processing unit 110 may identify vehicles and pedestrians appearing in the set of captured images and derive information associated with the vehicles and pedestrians (e.g., position, velocity, magnitude). Based on the identification results and the derived information, the processing unit 110 may trigger one or more navigational responses in the vehicle 200, as described above in connection with FIG. 5A.

[0097]

[0125] In step 548, processing unit 110 may perform optical flow analysis of one or more images to reduce the chance of detecting "false hits" and overlooking candidate objects representing vehicles or pedestrians. Optical flow analysis may refer to analyzing patterns of movement relative to vehicle 200 in one or more images, associated with other vehicles and pedestrians, that are distinct from, for example, road surface movement. Processing unit 110 may calculate candidate object movement by observing different positions of the object across multiple image frames captured at different times. Processing unit 110 may use the position and time values ​​as inputs to a mathematical model for calculating candidate object movement. Thus, optical flow analysis may provide another method of detecting vehicles and pedestrians in the vicinity of vehicle 200. Processing unit 110 may perform optical flow analysis in combination with steps 540-546 to provide redundancy for vehicle and pedestrian detection and increase the reliability of system 100.

[0098]

[0126] FIG. 5C is a flow diagram illustrating an example process 500C for detecting road markings and / or lane shape information in a set of images, consistent with disclosed embodiments. Processing unit 110 may execute monocular image analysis module 402 to perform process 500C. In step 550, processing unit 110 may detect a set of objects by scanning one or more images. To detect lane marking areas, lane shape information, and other related road markings, processing unit 110 may filter the set of objects to exclude objects that are determined to be irrelevant (e.g., small potholes, small stones, etc.). In step 552, processing unit 110 may group together the areas detected in step 550 that belong to the same road marking or lane marking. Based on this grouping, processing unit 110 may build a model, such as a mathematical model, to represent the detected areas.

[0099]

[0127] In step 554, processing unit 110 may construct a set of measurements associated with the detected area. In some embodiments, processing unit 110 may generate a projection of the detected area from the image plane to the real world plane. The projection may be characterized using a third order polynomial with coefficients corresponding to physical properties such as position, slope, curvature, and curvature derivatives of the detected road. In generating the projection, processing unit 110 may take into account changes in the road surface, as well as pitch and roll rates associated with vehicle 200. Furthermore, processing unit 110 may model the elevation of the road by analyzing position and motion cues present on the road surface. Furthermore, processing unit 110 may estimate pitch and roll rates associated with vehicle 200 by tracking a set of feature points in one or more images.

[0100]

[0128] In step 556, processing unit 110 may perform a multi-frame analysis, for example, by tracking the detected area across successive image frames and accumulating frame-by-frame data associated with the detected area. As processing unit 110 performs the multi-frame analysis, the set of measurements constructed in step 554 becomes more reliable and is associated with an increasingly higher confidence level. Thus, by performing steps 550-556, processing unit 110 may identify road marks appearing in the set of captured images and derive lane shape information. Based on the identification results and the derived information, processing unit 110 may trigger one or more navigation responses in vehicle 200, as described above in connection with FIG. 5A.

[0101]

[0129] In step 558, the processing unit 110 may further build a safety model of the vehicle 200 in the context of its surroundings, taking into account additional information sources. The processing unit 110 may use this safety model to define situations in which the system 100 may execute autonomous control of the vehicle 200 in a safe manner. To build the safety model, in some embodiments, the processing unit 110 may take into account the positions and movements of other vehicles, detected road edges and barriers, and / or a description of the general road shape extracted from map data (such as data from the map database 160). By taking into account additional information sources, the processing unit 110 may provide redundancy for detecting road markings and lane shapes, increasing the reliability of the system 100.

[0102]

[0130] FIG. 5D is a flow diagram illustrating an example process 500D for detecting traffic lights in a set of images, consistent with disclosed embodiments. Processing unit 110 may execute monocular image analysis module 402 to perform process 500D. In step 560, processing unit 110 may scan the set of images and identify objects that appear at locations in the images that are likely to contain traffic lights. For example, processing unit 110 may filter the identified objects to exclude objects that are unlikely to correspond to traffic lights and build a set of candidate objects. Filtering may be based on various characteristics associated with traffic lights, such as shape, size, texture, location (e.g., relative to vehicle 200), etc. Such characteristics may be based on multiple examples of traffic lights and traffic control signals and may be stored in a database. In some embodiments, processing unit 110 may perform a multi-frame analysis on the set of candidate objects representing presumed traffic lights. For example, processing unit 110 may track the candidate objects across successive image frames, estimate the real-world locations of the candidate objects, and remove moving objects (that are unlikely to be traffic lights). In some embodiments, processing unit 110 may perform color analysis on the candidate objects to identify the relative location of detected colors that appear inside the presumed traffic light.

[0103]

[0131] In step 562, processing unit 110 may analyze the geometry of the intersection. This analysis may be based on any combination of (i) the number of lanes detected on either side of vehicle 200, (ii) marks (such as arrow marks) detected on the road, and (iii) a description of the intersection extracted from map data (such as data from map database 160). Processing unit 110 may perform this analysis using information derived from execution of monocular analysis module 402. Furthermore, processing unit 110 may determine a correspondence between the traffic lights detected in step 560 and lanes appearing near vehicle 200.

[0104]

[0132] As vehicle 200 approaches the intersection, processing unit 110 may update a confidence level associated with the analyzed intersection geometry and detected traffic lights in step 564. For example, the number of traffic lights estimated to appear at the intersection compared to the number of traffic lights that actually appear at the intersection may affect the confidence level. Thus, based on the confidence level, processing unit 110 may cede control to the driver of vehicle 200 to improve safety conditions. By performing steps 560-564, processing unit 110 may identify traffic lights appearing in the set of captured images and analyze the intersection geometry information. Based on the identification and analysis results, processing unit 110 may trigger one or more navigation responses in vehicle 200, as described above in connection with FIG. 5A.

[0105]

[0133] 5E is a flow diagram illustrating an example process 500E for triggering one or more navigational responses in vehicle 200 based on a vehicle path, consistent with disclosed embodiments. In step 570, processing unit 110 may construct an initial vehicle path associated with vehicle 200. The vehicle path may be represented using a set of points represented by coordinates (x, z), with distances d between any two points in the set of points being represented by coordinates (x, z). imay be in the range of 1 to 5 meters. In one embodiment, processing unit 110 may use two polynomials, such as left and right road polynomials, to construct an initial vehicle path. Processing unit 110 may calculate the geometric midpoint between the two polynomials and offset each point in the resulting vehicle path by a predetermined offset amount (e.g., smart lane offset) if there is an offset (a zero offset may correspond to driving in the center of the lane). The offset may be in a direction perpendicular to the area between any two points in the vehicle path. In another embodiment, processing unit 110 may use one polynomial and an estimated lane width to offset each point in the vehicle path by half the estimated lane width plus a predetermined offset (e.g., smart lane offset).

[0106]

[0134] In step 572, processing unit 110 may update the vehicle path constructed in step 570. Processing unit 110 may reconstruct the vehicle path constructed in step 570 using a higher resolution, such that the distance d k is the distance d i For example, the distance d k may be in the range of 0.1 to 0.3 meters. Processing unit 110 may reconstruct the vehicle path using a radial spline algorithm, which may generate a cumulative distance vector S that corresponds to the total length of the vehicle path (i.e., based on a set of points representing the vehicle path).

[0107]

[0135] In step 574, the processing unit 110 calculates the forward gaze point ((x l , z l) can be determined. Processing unit 110 can extract a look-ahead point from the cumulative distance vector S, which can be associated with a look-ahead distance and a look-ahead time. The look-ahead distance, which can have a lower limit in the range of 10-20 meters, can be calculated as the product of the speed of vehicle 200 and the look-ahead time. For example, as the speed of vehicle 200 decreases, the look-ahead distance can also decrease (e.g., until a lower limit is reached). The look-ahead time, which can range from 0.5 to 1.5 seconds, can be inversely proportional to the gain of one or more control loops associated with causing a navigation response in vehicle 200, such as a heading error tracking control loop. For example, the gain of the heading error tracking control loop can depend on the bandwidth of the yaw rate loop, the steering actuator loop, the lateral dynamics of the vehicle, etc. Thus, the higher the gain of the heading error tracking control loop, the shorter the look-ahead time.

[0108]

[0136] In step 576, processing unit 110 may determine a heading error and a yaw rate command based on the look-ahead point determined in step 574. Processing unit 110 may calculate the arctangent of the look-ahead point, e.g., arctan(x l / z l The heading error may be determined by calculating the heading error (yaw rate command). The processing unit 110 may determine the yaw rate command as the product of the heading error and a high level control gain. The high level control gain may be equal to (2 / look ahead time) if the look ahead distance is not at a lower limit. Otherwise, the high level control gain may be equal to (2×vehicle 200 speed / look ahead distance).

[0109]

[0137] FIG. 5F is a flow diagram illustrating an example process 500F for determining whether a leading vehicle is changing lanes, consistent with disclosed embodiments. In step 580, processing unit 110 may determine navigation information associated with a leading vehicle (e.g., a vehicle traveling ahead of vehicle 200). For example, processing unit 110 may determine a position, velocity (e.g., direction and speed), and / or acceleration of the leading vehicle using techniques described in connection with FIGs. 5A and 5B above. Processing unit 110 may also determine one or more road polynomials, a look-ahead point (associated with vehicle 200), and / or a snail trail (e.g., a set of points describing a path followed by a leading vehicle) using techniques described in connection with FIG. 5E above.

[0110]

[0138] In step 582, processing unit 110 may analyze the navigation information determined in step 580. In one embodiment, processing unit 110 may calculate a distance (e.g., along the trail) between the snail trail and the road polynomial. If the variation in this distance along the trail exceeds a predetermined threshold (e.g., 0.1-0.2 meters for a straight road, 0.3-0.4 meters for a road with gentle curves, and 0.5-0.6 meters for a road with sharp curves), processing unit 110 may determine that the leading vehicle is likely changing lanes. If multiple vehicles are detected traveling ahead of vehicle 200, processing unit 110 may compare the snail trails associated with each vehicle. Based on this comparison, processing unit 110 may determine that a vehicle whose snail trail does not match the snail trails of the other vehicles is likely changing lanes. Processing unit 110 may further compare the curvature of the snail trail (associated with the leading vehicle) to the expected curvature of the road section on which the leading vehicle is traveling. The expected curvature may be extracted from map data (e.g., data from map database 160), road polynomials, snail trails of other vehicles, prior knowledge about the road, etc. If the difference between the snail trail curvature and the expected curvature of the road section exceeds a predetermined threshold, processing unit 110 may determine that the leading vehicle is likely changing lanes.

[0111]

[0139] In another embodiment, processing unit 110 may compare the leading vehicle's instantaneous position to the look-ahead point (associated with vehicle 200) over a particular period of time (e.g., 0.5-1.5 seconds). If the distance between the leading vehicle's instantaneous position and the look-ahead point changes over the particular period of time, and the cumulative sum of the changes exceeds a predetermined threshold (e.g., 0.3-0.4 meters on a straight road, 0.7-0.8 meters on a gently curving road, and 1.3-1.7 meters on a sharply curving road), processing unit 110 may determine that the leading vehicle is likely changing lanes. In another embodiment, processing unit 110 may analyze the shape of the snail trail by comparing the lateral distance traveled along the trail to the expected curvature of the snail trail. The expected radius of curvature is calculated according to the formula: (δ z 2 +δ x 2 ) / 2 / (δ x ), where δ x represents the lateral distance traveled, and δ z represents the longitudinal distance traveled. If the difference between the lateral distance traveled and the expected curvature exceeds a predetermined threshold (e.g., 500-700 meters), processing unit 110 can determine that the leading vehicle is likely changing lanes. In another embodiment, processing unit 110 can analyze the position of the leading vehicle. If the position of the leading vehicle obscures the road polynomial (e.g., the leading vehicle overlays the road polynomial), processing unit 110 can determine that the leading vehicle is likely changing lanes. If another vehicle is detected ahead of the leading vehicle and the leading vehicle is positioned such that the snail trails of the two vehicles are not parallel, processing unit 110 can determine that the (closer) leading vehicle is likely changing lanes.

[0112]

[0140] At step 584, processing unit 110 may determine whether leading vehicle 200 is changing lanes based on the analysis performed at step 582. For example, processing unit 110 may make the determination based on a weighted average of the individual analyses performed at step 582. Under such a scheme, for example, a determination by processing unit 110 that the leading vehicle is likely changing lanes based on a particular type of analysis may be assigned a value of "1" (and a "0" to represent a determination that the leading vehicle is unlikely to be changing lanes). Different weights may be assigned to different analyses performed at step 582, and the disclosed embodiments are not limited to any particular combination of analyses and weights. Additionally, in some embodiments, the analysis may use a trained system (e.g., a machine learning or deep learning system) that may, for example, estimate a future path ahead of the vehicle's current position based on images captured at the current position.

[0113]

[0141] 6 is a flow diagram illustrating an example process 600 for triggering one or more navigational responses based on stereo image analysis, consistent with disclosed embodiments. In step 610, processing unit 110 may receive a first and second plurality of images via data interface 128. For example, a camera included in image acquisition unit 120 (such as image capture devices 122 and 124 having fields of view 202 and 204) may capture and transmit a first and second plurality of images of an area in front of vehicle 200 to processing unit 110 via a digital connection (e.g., USB, wireless, Bluetooth, etc.). In some embodiments, processing unit 110 may receive the first and second plurality of images via two or more data interfaces. The disclosed embodiments are not limited to any particular data interface configuration or protocol.

[0114]

[0142] In step 620, processing unit 110 may execute stereo image analysis module 404 to perform stereo image analysis of the first and second plurality of images to generate a 3D map of the road in front of the vehicle and detect features in the images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, road hazards, etc. Stereo image analysis may be performed in a manner similar to the steps described in connection with FIGS. 5A-5D above. For example, processing unit 110 may execute stereo image analysis module 404 to detect candidate objects (e.g., vehicles, pedestrians, road signs, traffic lights, road hazards, etc.) in the first and second plurality of images, filter out some of the candidate objects based on various criteria, perform multi-frame analysis, construct measurements, and determine confidence levels for the remaining candidate objects. In performing the above steps, processing unit 110 may consider information from both the first and second plurality of images, rather than information from a single set of images alone. For example, processing unit 110 may analyze differences in pixel-level data (or other subsets of data from the two streams of captured images) for a candidate object that appears in both the first and second multiple images. As another example, processing unit 110 may estimate the position and / or velocity of a candidate object (e.g., relative to vehicle 200) by observing an object that appears in one of the multiple images but not the other, or based on other differences that may exist associated with an object that appears in the two image streams. For example, the position, velocity, and / or acceleration relative to vehicle 200 may be determined based on trajectories, positions, motion characteristics, etc. of features associated with an object that appears in one or both of the image streams.

[0115]

[0143] In step 630, processing unit 110 may execute navigation response module 408 to cause one or more navigational responses in vehicle 200 based on the analysis performed in step 620 and the techniques described above in connection with FIG. 4. The navigational responses may include, for example, turning, changing lanes, changing acceleration, changing speed, braking, etc. In some embodiments, processing unit 110 may cause one or more navigational responses using data derived from execution of speed and acceleration module 406. Additionally, multiple navigational responses may occur simultaneously, sequentially, or any combination thereof.

[0116]

[0144] FIG. 7 is a flow diagram illustrating an example process 700 for triggering one or more navigational responses based on analysis of three sets of images, consistent with disclosed embodiments. At step 710, processing unit 110 may receive a first, second, and third plurality of images via data interface 128. For example, cameras included in image acquisition unit 120 (such as image capture devices 122, 124, and 126 having fields of view 202, 204, and 206) may capture and transmit a first, second, and third plurality of images of an area in front of and / or to the side of vehicle 200 to processing unit 110 via a digital connection (e.g., USB, wireless, Bluetooth, etc.). In some embodiments, processing unit 110 may receive the first, second, and third plurality of images via three or more data interfaces. For example, image capture devices 122, 124, 126 may each have an associated data interface for transmitting data to processing unit 110. The disclosed embodiments are not limited to any particular data interface configuration or protocol.

[0117]

[0145] At step 720, processing unit 110 may analyze the first, second, and third plurality of images to detect features within the images, such as lane markings, vehicles, pedestrians, road signs, highway exit ramps, traffic lights, road hazards, etc. The analysis may be performed in a manner similar to the steps described in connection with FIGS. 5A-5D and 6 above. For example, processing unit 110 may perform monocular image analysis (e.g., via execution of monocular image analysis module 402 and based on the steps described in connection with FIGS. 5A-5D above) on each of the first, second, and third plurality of images. Alternatively, processing unit 110 may perform stereo image analysis (e.g., via execution of stereo image analysis module 404 and based on the steps described in connection with FIG. 6 above) on the first and second plurality of images, the second and third plurality of images, and / or the first and third plurality of images. Processed information corresponding to the analysis of the first, second, and / or third plurality of images may be combined. In some embodiments, processing unit 110 may perform a combination of monocular image analysis and stereoscopic image analysis. For example, processing unit 110 may perform monocular image analysis (e.g., via execution of monocular image analysis module 402) on the first plurality of images and stereoscopic image analysis (e.g., via execution of stereoscopic image analysis module 404) on the second and third plurality of images. The configuration of image capture devices 122, 124, and 126, including the devices' respective positions and fields of view 202, 204, and 206, may affect the type of analysis performed on the first, second, and third plurality of images. The disclosed embodiments are not limited to a particular configuration of image capture devices 122, 124, and 126 or the type of analysis performed on the first, second, and third plurality of images.

[0118]

[0146] In some embodiments, processing unit 110 may perform tests on system 100 based on the images acquired and analyzed in steps 710 and 720. Such tests may provide an indication of the overall performance of system 100 for a particular configuration of image capture devices 122, 124, and 126. For example, processing unit 110 may determine the rate of "false hits" (e.g., when system 100 erroneously determines the presence of a vehicle or pedestrian) and "misses."

[0119]

[0147] At step 730, processing unit 110 may trigger one or more navigation responses in vehicle 200 based on information derived from two of the first, second, and third pluralities of images. The selection of two of the first, second, and third pluralities of images may depend on various factors, such as the number, type, and size of objects detected in each of the pluralities of images. Processing unit 110 may also make the selection based on image quality and resolution, the effective field of view reflected in the images, the number of frames captured, the degree to which one or more objects of interest actually appear in the frames (e.g., the percentage of frames in which an object appears, the proportion of objects appearing in each of such frames, etc.), and the like.

[0120]

[0148] In some embodiments, processing unit 110 may select information derived from two of the first, second, and third plurality of images by determining the extent to which information derived from one image source matches information derived from the other image source. For example, processing unit 110 may combine processed information derived from each of image capture devices 122, 124, and 126 (whether by monocular analysis, stereo analysis, or any combination of the two) to determine visual indications (e.g., lane markings, detected vehicles and their positions and / or paths, detected traffic lights, etc.) that are consistent across the images captured from each of image capture devices 122, 124, and 126. Processing unit 110 may also filter out information that is inconsistent across the captured images (e.g., vehicles changing lanes, lane models showing vehicles too close to vehicle 200, etc.). Thus, processing unit 110 may select information derived from two of the first, second, and third plurality of images based on the determination of consistent and inconsistent information.

[0121]

[0149] The navigational responses may include, for example, turning, changing lanes, changing acceleration, etc. Processing unit 110 may trigger one or more navigational responses based on the analysis performed in step 720 and techniques such as those described above in connection with FIG. 4. Processing unit 110 may also trigger one or more navigational responses using data derived from execution of velocity and acceleration module 406. In some embodiments, processing unit 110 may trigger one or more navigational responses based on a relative position, relative velocity, and / or relative acceleration between vehicle 200 and an object detected in any of the first, second, and third images. Multiple navigational responses may occur simultaneously, sequentially, or any combination thereof.

[0122]

[0150] Vehicle navigation based on detected barriers

[0151] Consistent with disclosed embodiments, the system may determine a navigation route for the vehicle based on at least one barrier detected from an image captured by the image capture device. The system may distinguish between traversable barriers (e.g., curbs, lane markings, or road edges, etc.) and non-traversable barriers (e.g., concrete barriers, lane dividing structures, other vehicles, tunnel walls, or bridge structures, etc.). In an emergency situation, such as when an obstacle (e.g., a pedestrian, an animal, debris, or an object other than a road feature) appears ahead of the vehicle, the system may determine a navigation route that travels through the traversable barrier to avoid an accident.

[0123]

[0152] Additionally, the system can distinguish between movable barriers (e.g., other vehicles, traffic cones, etc.) and fixed barriers (e.g., road edges, curbs, lane dividing structures, tunnel walls, or bridge structures, etc.) The system can determine the location of the fixed barriers and send updates to a remote server for autonomous vehicle navigation based on the determined locations of the fixed barriers.

[0124]

[0153] FIG. 8 illustrates a navigation system for a vehicle consistent with disclosed embodiments. For purposes of illustration, the vehicle is referred to as vehicle 800. The vehicle illustrated in FIG. 8 may be any other vehicle disclosed herein, including, for example, vehicle 200 illustrated in other embodiments. As illustrated in FIG. 8, vehicle 800 may be in communication with a remote server 850. Vehicle 800 may include at least one image capture device (e.g., cameras 812 and 814). Vehicle 800 may include a navigation system 820 configured to provide navigation guidance to vehicle 800 for traveling along roads. Vehicle 800 may be an autonomous vehicle, and navigation system 820 may be used to provide navigation guidance for autonomous driving. Alternatively, in other embodiments, vehicle 800 may be a non-autonomous, human-controlled vehicle, and navigation system 820 may still be used to provide navigation guidance.

[0125]

[0154] The navigation system 820 may include a communication unit 822 configured to communicate with a server 850 via a communication path 860. The navigation system 820 may include a Global Positioning System (GPS) unit 824 configured to receive and process GPS signals. The navigation system 820 may include at least one processor 826 configured to process data, such as GPS signals, images captured by the cameras 812 and 814, and / or map data from the server 850. The navigation system 820 may include a memory 828, which may store various modules that, when executed by the processor 826, may cause the processor to perform various methods 828 consistent with an embodiment.

[0126]

[0155] The remote server 850 may include a storage device 852 (e.g., a computer-readable medium) located on the remote server 850 in communication with the vehicle 800. The remote server 850 may store a map database 854 on the storage device 852. The map database 854 may include a map of a particular area. The vehicle 800 may communicate with the remote server 850 to receive data contained in the map database 854. The vehicle 800 may also communicate with the remote server 850 to send updates to the map data in the map database 854.

[0127]

[0156] 9 illustrates an example of a memory 900 consistent with disclosed embodiments. The memory 900 may be memory 828 included in a navigation system 820 of a vehicle 800. The memory 900 may include various modules that, when executed by a processor (e.g., processor 826), can cause the processor to perform various methods.

[0128]

[0157] For example, memory 900 may include a navigation area determination module 910. When executed by a processor, the navigation area determination module 910 may cause the processor to analyze at least one of a plurality of images received from an image capture device (e.g., one of cameras 812 and 814) to identify a drivable area in an environment surrounding a vehicle (e.g., vehicle 800).

[0129]

[0158] The memory 900 may also include a barrier identification module 920. The barrier identification module 920 may cause the processor to analyze at least one of a plurality of images received from the image capture device and identify at least one barrier associated with an edge of the drivable area based on the at least one of the plurality of images. The at least one barrier may include a curb, a lane marking, a road edge, a concrete barrier, a lane dividing structure, a tunnel wall, a bridge structure, etc. The barrier may include a physical object (e.g., a barrier) or a road marking, or any other indicia that indicates that an area beyond a particular edge is outside the drivable area. In one example, a particular physical object or road marking may be classified as a road barrier under certain circumstances or for a particular vehicle, while the same physical object or road marking may be considered a "non-barrier" for other vehicles or under different circumstances. One example of such a dynamically switching barrier is a lane assignment sign that assigns a lane to traffic traveling in one direction during certain times of day, and assigns the lane to traffic traveling in the opposite direction during a different time of day. A lane marking can be a barrier (preventing vehicles from entering the lane) or a normal lane marking, depending on the time of day and the direction of travel of the vehicles. In another example, a lane marking can be a barrier for vehicles traveling with less than a certain number of occupants, while at the same time, the same lane marking can be a normal lane marking for vehicles with more than a certain number of occupants or for public transportation.

[0130]

[0159] The barrier identification module 920 may also cause the processor to determine a type of at least one barrier. The type of barrier may be traversable or impassable. A traversable barrier may include a barrier through which a vehicle can pass without causing substantial damage to the vehicle, the barrier, or any other object near the barrier and located on the other side of the barrier. Examples of traversable barriers include curbs, lane markings, road edges, etc. An impassable barrier may include a barrier through which a vehicle cannot pass, i.e., a barrier that may cause substantial damage to the vehicle, the barrier, or any other object near the barrier. Examples of impassable barriers include concrete barriers, lane dividing structures, other vehicles, tunnel walls, or bridge structures, etc.

[0131]

[0160] The barrier identification module 920 may also be adapted to classify the area beyond the at least one barrier, particularly if the at least one barrier is a traversable barrier. For example, if a pedestrian is detected beyond a shallow sidewalk curb (which may be considered traversable), the barrier identification module 920 may classify the area beyond the at least one barrier as being hazardous or potentially containing pedestrians.

[0132]

[0161] In some embodiments, the type of barrier can be movable or fixed. Movable barriers may include barriers that change position and are not fixed. Examples of movable barriers include other vehicles, traffic cones, fallen trees, or the dynamically moving barriers mentioned above. Fixed barriers may include barriers that are part of the road or road environment. Examples of fixed barriers include road edges, curbs, lane dividing structures, tunnel walls, or bridge structures.

[0133]

[0162] The memory 900 may also include an obstacle identification module 930. The obstacle identification module 930 may cause the processor to analyze at least one of the multiple images received from the image capture device and identify an obstacle ahead of the vehicle based on the analysis of the at least one of the multiple images. The obstacle may be an object other than a road feature, i.e., an object that does not belong to the road. For example, the obstacle may be a pedestrian, an animal, or debris (e.g., a tree, a lamppost, etc.). The obstacle may be located in front of and near the vehicle. The obstacle may be located within a previously determined navigation path of the vehicle, such that if the vehicle does not steer away from the navigation path, the vehicle may collide with the obstacle and cause a traffic accident. In some other examples, the obstacle identification module 930 may cause the processor to analyze information from a radar or a lidar to identify an obstacle ahead of the vehicle.

[0134]

[0163] The memory 900 may further include a navigation route determination module 940. The navigation route determination module 940 may cause the processor to determine a navigation route for the vehicle based on at least one barrier type. For example, the processor may analyze the location of the destination, the current location of the vehicle, and determine a navigation route that leads the vehicle to the destination. The navigation route may be located within a drivable area that is partially surrounded by traversable or non-traversable barriers. When the processor identifies an obstacle in front of and near the vehicle, the processor may determine a navigation route to avoid the identified obstacle. If the identified obstacle is unavoidable, the processor may determine a navigation route to pass through the traversable barrier. In another example, if the identified obstacle is unavoidable, the processor may process sensor data related to the area beyond the barrier to determine whether it is safe to cross the traversable barrier, and may also calculate a safe route or even the safest route that at least includes the area beyond the traversable barrier.

[0135]

[0164] The memory 900 may further include a map update module 950. The map update module 950 may cause the processor to determine whether to send update data for the map (e.g., map database 854) to a remote server (e.g., remote server 850) based on the determined barrier type. If the determined barrier type is mobile, the processor may determine not to send update data. Otherwise, if the determined barrier type is fixed, the processor may determine to send map update data related to the fixed barrier to the remote processor. The map update data may include the location, shape, size, and / or identifier of the fixed barrier, and may also possibly include data regarding the area beyond the barrier (e.g., whether a hazard, such as a pedestrian, has been identified in the area beyond the barrier).

[0136]

[0165] 10A illustrates a schematic diagram of a bird's-eye view of a surrounding environment 1000 of an exemplary vehicle 1010 consistent with disclosed embodiments. The exemplary vehicle 1010 may be, for example, the vehicle 800 described above with reference to FIG. 8 and may include a navigation system, such as the navigation system 820 of the vehicle 800.

[0137]

[0166] As shown in Figure 10A, the surroundings 1000 of a vehicle 1010 includes a road area 1020 defined by a concrete barrier 1022 and a curb 1024, and a non-road area 1030 defined by a curb 1024 and a concrete barrier 1026. The road area 1020 includes a left lane 1020A and a right lane 1020B separated by a lane marking 1028. The vehicle 1010 is traveling in the right lane 1020B. Another vehicle (e.g., a truck) 1015 is traveling in the right lane 1020B ahead of the vehicle 1010. Multiple vehicles 1011, 1012, 1013, and 1014 are traveling in the left lane 1020A. A pedestrian 1018 is walking in the right lane 1020B.

[0138]

[0167] 10B illustrates a schematic of an image 1040 of the surrounding environment 1000 captured by a forward-facing image capture device on an exemplary vehicle 1010. The forward-facing image capture device may be, for example, one of the cameras 812 and 814 of the vehicle 800. A processor (e.g., processor 826 included in the navigation system 820 of the vehicle 800) may analyze the image 1040 to determine a drivable area 1050 having edges 1060. The edges 1060 may be located on the side of the vehicles 1011-1014 that is proximate to the vehicle 1010 (i.e., an observer of the image 1040), the rear side of the vehicle 1015, and along the curb 1024. A barrier (e.g., the vehicles 1011-1015 and the curb 1024) associated with at least a portion of the edge 1060 may be used to determine a navigation path 1070 for the vehicle 1010.

[0139]

[0168] 11 is a flow diagram illustrating an example process 1100 for steering a vehicle based on a detected barrier consistent with disclosed embodiments. Process 1100 may be performed by a processor (e.g., processor 826) onboard a vehicle (e.g., vehicle 800). Process 1100 may analyze at least one image acquired by a forward-facing image capture device (e.g., one of cameras 812 and 814) to determine a navigation path for the vehicle.

[0140]

[0169] In step 1110, the processor 826 may receive multiple images from the image capture devices related to the environment surrounding the vehicle 800. The image 1040 shown in FIG. 10B is an example of an image of the environment surrounding the vehicle 800 that may be received from an image capture device (e.g., one of the cameras 812 and 814) on the vehicle 800. In some embodiments, the multiple images may be captured by the image capture devices at different times (e.g., the images may be captured less than a second apart, one second apart, two seconds apart, etc.). In some embodiments, the vehicle 800 may include multiple image capture devices (e.g., the cameras 812 and 814), and the processor 826 may receive multiple images related to the environment surrounding the vehicle 800 from each image capture device. The multiple images received from each image capture device may be images captured by each image capture device at different times.

[0141]

[0170] In step 1120, the processor 826 may analyze at least one of the multiple images received from the image capture devices. In embodiments where a single multiple image is generated based on images received from multiple image capture devices, the processor 826 may analyze at least one image of the single multiple images. Alternatively, the processor 826 may analyze each image received from each image capture device individually.

[0142]

[0171] Processor 826 may also identify a drivable area in an environment surrounding vehicle 800 based on analysis of at least one of the plurality of images. For example, processor 826 may identify a drivable area 1050 having edges 1060 based on image 1040.

[0143]

[0172] In one embodiment, the processor 826 may determine the drivable region by using a convolutional neural network (CNN). For example, the processor 826 may be trained by using a number of training images that are manually labeled as free space pixels and non-free space pixels. As a result of the training, the processor 826 may label pixels in the image 1040 as free space pixels and non-free space pixels. The processor 826 may then determine a boundary between the free space pixels and the non-free space pixels. The processor 826 may identify an area enclosed or partially enclosed by the boundary as a drivable region.

[0144]

[0173] In step 1130, the processor 826 may identify at least one barrier associated with an edge of the drivable area. The at least one barrier may include a curb, a lane marking, a road edge, a concrete barrier, a lane dividing structure, a tunnel wall, or a bridge structure, etc. For example, the processor 826 may identify the vehicles 1011-1015 and the curb 1024 as barriers associated with the edge 1060 of the drivable area 1050.

[0145]

[0174] In one embodiment, a memory (e.g., memory 828) may store a plurality of training images of various barriers. The processor 826 may compare the image 1040 to the plurality of training images to identify an object in the image 1040 having at least one characteristic (e.g., shape, color, etc.) that matches a characteristic of a barrier in the training images. The processor 826 may determine the identified object as a barrier.

[0146]

[0175] In some embodiments, each barrier in the training images may be associated with a barrier identifier. Examples of barrier identifiers include "vehicle," "lane marking," "road edge," "concrete barrier," "lane dividing structure," "tunnel wall," or "bridge structure," etc. When processor 826 identifies an object that matches a barrier in the training images, processor 826 may label the identified object with the barrier identifier associated with the matching barrier.

[0147]

[0176] In step 1140, the processor 826 may determine a type of at least one barrier identified in step 1130. The barrier type may be passable or non-passable. Examples of passable barriers include curbs, lane markings, or road edges, etc. Examples of non-passable barriers include concrete barriers, lane dividing structures, other vehicles, tunnel walls, or bridge structures, etc. In the image 1040 shown in FIG. 10B, the processor 826 may identify the vehicles 1011-1015 as non-passable barriers and may identify the curb 1024 as a passable barrier. The barrier type may also be movable or fixed. Examples of movable barriers include other vehicles, traffic cones, fallen trees, etc. Examples of fixed barriers include road edges, curbs, lane dividing structures, tunnel walls, or bridge structures. In the image 1040 shown in FIG. 10B, the processor 826 may identify the vehicles 1011-1015 as movable barriers and may identify the curb 1024 as a fixed barrier.

[0148]

[0177] In one embodiment, a memory (e.g., memory 828 of vehicle 800) may store a database including a plurality of barrier identifiers, each corresponding to one or more barrier types. Once processor 826 identifies a barrier in an image and labels the barrier with a barrier identifier, processor 826 may refer to the database to identify one or more barrier types corresponding to the barrier identifier. The identified barrier type may be considered by processor 825 as the barrier type of the barrier identified in the image.

[0149]

[0178] In another embodiment for determining the barrier type, the processor 826 may be trained by a number of training images that are manually labeled as free space pixels, non-free space pixels, and various types of barrier pixels corresponding to various barriers, respectively. As a result of training by using these training images, the processor 826 may label pixels in the image 1040 as free space pixels, non-free space pixels, and various types of barrier pixels. Signatures generated by other types of sensors, such as lidar, radar, or ultrasonic sensors, may also be used to train the processor 826, such that the trained processor 826 may label free space pixels, non-free space pixels, and various types of barrier pixels based on inputs from corresponding sensing units. Data from different types of sensors may be fused, and the sensor 826 may be configured to label free space pixels, non-free space pixels, and various types of barrier pixels based on inputs from the different types of sensors.

[0150]

[0179] In step 1150, the processor 826 may identify an obstacle in front of the vehicle 800 based on the analysis of at least one image. The obstacle may be an object other than a road feature, i.e., an object not belonging to the road. The obstacle may be located in front of and near the vehicle. For example, the obstacle may be a pedestrian, an animal, a fallen object (e.g., a tree, a lamppost, etc.). In the image 1040, the processor 826 may identify a pedestrian 1018 as an obstacle.

[0151]

[0180] In one embodiment, a memory (e.g., memory 828) may store multiple training images of various obstacles. The processor 826 may compare the image 1040 to the multiple training images to identify objects in the image 1040 that have at least one characteristic (e.g., shape, color, etc.) that matches a characteristic of an obstacle in the training image. The processor 826 may determine the identified object as an obstacle. Alternatively, the multiple training images of various obstacles may be used to generate a trained system, such as a neural network or a deep neural network, that the processor 826 may use to detect obstacles in the image 1040 or to determine whether an object in the image 1040 is an obstacle and, in some cases, what type of obstacle it is.

[0152]

[0181] The processor 826 may also determine a location of the obstacle relative to the vehicle based on analysis of at least one image. For example, the processor 826 may determine the location of the obstacle based on the size of the obstacle when it appears in the image 1040, the typical size of that type of obstacle, and / or the relative location of the obstacle to a barrier along the road.

[0153]

[0182] The processor 826 can further determine, based on the location of the obstacle, whether the obstacle is located within a previously determined navigation path of the vehicle, and whether the vehicle may collide with the obstacle and cause a traffic accident if the vehicle is not steered away from the previously determined navigation path. In the example of FIG. 10B, the pedestrian 1018 is located on the previously determined navigation path 1080, and the distance between the pedestrian 1018 and the vehicle 1010 is less than the threshold distance, such that the vehicle 1010 may hit the pedestrian if the vehicle 1010 is not steered away from the previously determined navigation path 1080.

[0154]

[0183] In step 1160, the processor 826 may determine a navigation route for the vehicle based on the identified obstacle and the determined type of obstacle. For example, the processor 826 may determine a navigation route through the drivable area to avoid the obstacle. If such a navigation route is not available through the drivable area, the processor 826 may analyze the type of barrier associated with the edge of the drivable area. If the barrier is traversable, the processor 826 may determine a navigation route to pass through the traversable barrier. In the example of FIG. 10B, the processor 826 may determine a new navigation route 1070 that travels over the traversable barrier curb 1024 to avoid the pedestrian 1018.

[0155]

[0184] In step 1170, processor 826 may cause the vehicle to travel along at least a portion of the determined navigation path. In some embodiments, processor 826 may cause one or more navigation responses in vehicle 800 to travel along the determined navigation path. The navigation responses may include, for example, a turn, a lane change, a change in acceleration, and the like. Additionally, multiple navigation responses may occur simultaneously, sequentially, or any combination thereof to travel along the determined navigation path. For example, processor 826 may cause vehicle 800 to move laterally and then accelerate, for example, by sequentially sending control signals to a steering system (e.g., steering system 240) and a throttle system (e.g., throttle system 220). Alternatively, processor 826 may cause vehicle 800 to brake and move laterally simultaneously, for example, by simultaneously sending control signals to a braking system (e.g., braking system 230) and a steering system (e.g., steering system 240).

[0156]

[0185] 12 is a flow diagram illustrating an example process 1200 consistent with disclosed embodiments. Process 1200 may be performed by a processor (e.g., processor 826) onboard a vehicle (e.g., vehicle 800). Process 1100 may analyze at least one image acquired by a forward-facing image capture device (e.g., one of cameras 812 and 814) to obtain information for updating the map.

[0157]

[0186] In step 1210, the processor 826 may receive a plurality of images associated with the surrounding environment of the vehicle 800 from the image capture device. In step 1220, the processor 826 may analyze at least one of the plurality of images received from the image capture device to identify a drivable area in the surrounding environment of the vehicle 800. In step 1230, the processor 826 may identify at least one barrier associated with an edge of the drivable area. In step 1240, the processor 826 may determine a type of the at least one barrier. Steps 1210-1240 are substantially the same as steps 1110-1140 of the process 1100. Accordingly, a detailed description of steps 1210-1240 will not be repeated here.

[0158]

[0187] After determining the type of at least one barrier, the processor 826 may transmit updates to a map in a map database (e.g., map database 854) to a remote server (e.g., server 850) for autonomous vehicle navigation based on the determined barrier type. Specifically, at step 1250, the processor 826 may determine whether the barrier is fixed. As described above, a fixed barrier may include a barrier that is part of the road or road environment. Examples of fixed barriers include road edges, curbs, lane dividing structures, tunnel walls, or bridge structures. In the example of FIG. 10B, the processor 826 may determine the curb 1024 as a fixed barrier.

[0159]

[0188] If the barrier is fixed (step 1250: YES), the processor 826 may transmit update data for the map associated with the fixed barrier (i.e., map update data) to the remote server in step 1260. The map update data may include a barrier identifier, a barrier type, and a location of the fixed barrier.

[0160]

[0189] For example, the processor 826 may use the following method to determine the position of the fixed barrier: First, the processor 826 may obtain the position of the vehicle 800 based on GPS data received by a GPS unit (e.g., GPS unit 824). The processor 826 may also analyze at least one image to determine the relative position of the fixed barrier with respect to the vehicle 800. The processor 826 may then determine the position of the fixed barrier based on the position of the vehicle 800 and the relative position of the fixed barrier with respect to the vehicle 800.

[0161]

[0190] If the barrier is movable (step 1250: NO), processor 826 may decide not to update the map. Instead, processor 826 may end process 1200. Once the map is updated, it may be used by a navigation system in vehicle 800 or in other vehicles for autonomous navigation.

[0162]

[0191] 13 is a flow diagram illustrating an example process 1300 for steering a vehicle based on a detected barrier consistent with disclosed embodiments. Process 1300 may be performed by a processor (e.g., processor 826) onboard a vehicle (e.g., vehicle 800). Process 1300 may analyze at least one image acquired by a forward-facing image capture device (e.g., one of cameras 812 and 814) to determine a navigation path for the vehicle.

[0163]

[0192] In step 1310, processor 826 may receive, from an image capture device, a plurality of images related to an environment surrounding vehicle 800. In step 1320, processor 826 may analyze at least one of the plurality of images received from the image capture device. Steps 1310 and 1320 are substantially similar to steps 1110 and 1120 of process 1100. Accordingly, a detailed description of steps 1310 and 1320 will not be repeated here.

[0164]

[0193] In step 1330, the processor 826 may identify a first barrier associated with a first portion of the edge of the drivable area and a second barrier associated with a second portion of the edge of the drivable area. The first barrier may be a road edge or curb. The second barrier may be a lane dividing structure, another vehicle, a tunnel wall, or a bridge structure. In the example of FIG. 10B, the processor 826 may identify the curb 1024 associated with a right portion of the edge 1060 of the drivable area 1050 as the first barrier. The processor 826 may identify the vehicle 1015 associated with the forward portion of the edge 1060 as the second barrier.

[0165]

[0194] In step 1340, the processor 826 may determine a first barrier type and a second barrier type. In the example of Figure 10B, the processor 826 may identify the curb 1024 as a passable barrier and the vehicle 1015 as an impassable barrier.

[0166]

[0195] In step 1350, the processor 826 may determine a navigation route for the vehicle based on the first barrier type and the second barrier type. In the example of Figure 10B, the processor 826 may determine a navigation route 1070 that travels over the curb 1024, which is traversable, to avoid the vehicle 1015, which is not traversable.

[0167]

[0196] In step 1360, the processor 826 may cause the vehicle to travel along at least a portion of the determined navigation route. In the example of FIG. 10B, the processor 826 may cause the vehicle 1010 to travel along at least a portion of the navigation route 1070.

[0168]

[0197] The foregoing description has been presented for illustrative purposes. It is not intended to be exhaustive or to be limited to the precise form or embodiment disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of this specification and practice of the disclosed embodiments. Furthermore, while aspects of the disclosed embodiments are described as being stored in memory, those skilled in the art will appreciate that these aspects may also be stored in other types of computer readable media, such as secondary storage, e.g., a hard disk or CD ROM, or other forms of RAM or ROM, USB media, DVD, Blu-ray, 4K Ultra HD Blu-ray, or other optical drive media.

[0169]

[0198] Computer programs based on the descriptions and methods disclosed are within the skill of an experienced developer. Various programs or program modules can be generated using any of the techniques known to those skilled in the art, or can be designed in conjunction with existing software. For example, program sections or program modules can be designed in or using the .Net Framework, .Net Compact Framework (and related languages ​​such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML / AJAX combinations, XML, or HTML, including Java applets.

[0170]

[0199] Moreover, while exemplary embodiments have been described herein, the scope of any embodiment having equivalent elements, modifications, omissions, combinations (e.g., combinations of aspects across various embodiments), adaptations, and / or alterations will be understood by one of ordinary skill in the art based on this disclosure. Any limitations in the claims should be interpreted broadly based on the language used in the claims, and not limited to the examples described herein or described during prosecution of this application. Such examples should be interpreted as non-exclusive. Furthermore, the steps of the disclosed methods can be modified in any manner, including rearranging steps and / or inserting or deleting steps. It is therefore intended that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents. [Item 1] 1. A system for steering a vehicle, comprising: At least one processing device, receiving a plurality of images relating to an environment surrounding the vehicle from an image capture device; analyzing at least one of the plurality of images to identify a drivable area of ​​the environment for the vehicle; identifying at least one barrier associated with an edge of the drivable area based on the at least one of the plurality of images; determining a type of said at least one barrier; and determining a navigation route for the vehicle based on the determined type of the at least one barrier; and and causing the vehicle to travel along at least a portion of the determined navigation route. [Item 2] 2. The system of claim 1, wherein the at least one processing device is further programmed to identify an obstacle ahead of the vehicle based on analysis of at least one of the plurality of images, and wherein the determined navigation path of the vehicle avoids the identified obstacle. [Item 3] 3. The system of claim 2, wherein the obstacle comprises a pedestrian. [Item 4] 3. The system of claim 2, wherein the obstacle comprises another vehicle. [Item 5] 3. The system of claim 2, wherein the determined type of barrier includes a traversable barrier, and the determined navigation path includes traveling through at least a portion of the traversable barrier. [Item 6] 6. The system of claim 5, wherein the passable barrier comprises a curb or a lane marking. [Item 7] 2. The system of claim 1, wherein the at least one processing device is further programmed to determine whether to send update data for a map for autonomous vehicle navigation to a remote server based on the determined type of the barrier. [Item 8] 8. The system of claim 7, wherein the determined type of the barrier includes a fixed barrier, and the at least one processing device is further programmed to transmit a location of the fixed barrier to the remote server. [Item 9] 9. The system of claim 8, wherein the fixed barrier comprises at least one of a road edge, a curb, a lane dividing structure, a tunnel wall, or a bridge structure. [Item 10] 1. A system for steering a vehicle, comprising: At least one processing device, receiving a plurality of images relating to an environment surrounding the vehicle from an image capture device; analyzing at least one of the plurality of images to identify a drivable area of ​​the environment for the vehicle; identifying a first barrier associated with at least one edge of the drivable area and a second barrier associated with at least one edge of the drivable area based on the at least one of the plurality of images; determining a type of the first barrier and a type of the second barrier, the determined type of the first barrier including a passable barrier and the determined type of the second barrier including an impassable barrier; determining a navigation route for the vehicle based on the determined types of the first barrier and the second barrier, the determined navigation route including traveling through the first barrier to avoid the second barrier; and causing the vehicle to travel along at least a portion of the determined navigation route. [Item 11] Item 11. The system of item 10, wherein the first barrier comprises a road edge or curb. [Item 12] Item 11. The system of item 10, wherein the second barrier comprises a lane dividing structure, another vehicle, a tunnel wall, or a bridge structure. [Item 13] 1. A method for steering a vehicle, comprising: receiving a plurality of images relating to an environment surrounding the vehicle from an image capture device; Analyzing at least one of the images to identify a drivable area in the environment surrounding the vehicle; and identifying at least one barrier associated with an edge of the drivable area based on the at least one of the images. determining a type of said at least one barrier; and determining a navigation route for the vehicle based on the determined type of the at least one barrier; and and causing the vehicle to travel over at least a portion of the determined navigation route. [Item 14] 14. The method of claim 13, further comprising identifying an obstacle ahead of the vehicle based on analysis of at least one of the plurality of images, wherein the determined navigation path of the vehicle avoids the identified obstacle. [Item 15] 14. The method of claim 13, wherein the detected type of barrier includes a traversable barrier, and the determined navigation path includes traveling through at least a portion of the traversable barrier. [Item 16] 14. The method of claim 13, further comprising determining whether to send update data to a map for autonomous vehicle navigation to a remote server based on the detected type of the barrier. [Item 17] the detected type of barrier comprises a fixed barrier; 17. The method of claim 16, further comprising transmitting the location of the fixed barrier to the remote server. [Item 18] 1. A method for steering a vehicle, comprising: receiving a plurality of images relating to an environment surrounding the vehicle from an image capture device; analyzing at least one of the plurality of images to identify a drivable area of ​​the environment for the vehicle; identifying a first barrier associated with at least one edge of the drivable area and a second barrier associated with at least one edge of the drivable area based on the at least one of the plurality of images; determining a type of the first barrier and a type of the second barrier, the determined type of the first barrier including a passable barrier and the determined type of the second barrier including an impassable barrier; determining a navigation route for the vehicle based on the determined types of the first barrier and the second barrier, the determined navigation route including traveling through the first barrier to avoid the second barrier; and causing the vehicle to travel over at least a portion of the determined navigation route. [Item 19] 20. The method of claim 18, wherein the first barrier comprises a road edge or curb. [Item 20] 20. The method of claim 18, wherein the second barrier comprises a lane dividing structure, another vehicle, a tunnel wall, or a bridge structure.

Claims

1. 1. A system for updating a map, comprising: at least one processor having circuitry and a memory, the memory having instructions that, when executed by the circuitry, cause the at least one processor to: receiving a plurality of images related to an environment surrounding the vehicle, the images being captured by an image capture device; identifying at least one barrier in the environment of the vehicle based on at least one of the plurality of images; determining that the at least one barrier type is a predetermined type; transmitting an update for the map based on determining that the type of the at least one barrier is the predetermined type; the update relates to the at least one barrier or the type of the at least one barrier; system.

2. The system of claim 1 , wherein determining that the type of the at least one barrier is the predetermined type comprises determining that the type of the at least one barrier is a fixed barrier type.

3. The memory further comprises instructions that, when executed by the circuit, cause the at least one processor to identify a drivable area in the surrounding environment for the vehicle; The system of claim 1 or 2, wherein the at least one barrier is associated with an edge of the drivable area.

4. 4. The system of claim 3, wherein identifying the drivable area in the surrounding environment of the vehicle includes using a convolutional neural network.

5. The system of claim 1 , wherein the at least one barrier is part of at least one of a road or a road environment.

6. The system of claim 5 , wherein the at least one barrier is at least one of a road edge, a lane marking, a curb, a concrete barrier, a lane dividing structure, a tunnel wall, or a bridge structure.

7. the memory having further instructions that, when executed by the circuitry, cause the at least one processor to analyze the at least one of the plurality of images to determine a location of the at least one barrier; The system of claim 1 , wherein the updates to a map comprise the location of the at least one barrier.

8. analyzing the at least one of the plurality of images to determine the location of the at least one barrier; obtaining a position of the vehicle relative to the at least one of the plurality of images; and determining the position of the at least one barrier relative to the position of the vehicle; The system of claim 7 , comprising:

9. The memory further comprises instructions which, when executed by the circuit, cause the at least one processor to: determining a navigation route for the vehicle based on the determined type of the at least one barrier; The system of claim 1 , further comprising causing the vehicle to travel along at least a portion of the determined navigation route.

10. 10. The system of claim 1, wherein determining that the type of at least one barrier is of a predetermined type comprises determining that a first barrier is of a fixed type and a second barrier is of a passable type.

11. the memory having further instructions which, when executed by the circuitry, cause the at least one processor to determine a navigation route for the vehicle; The system of claim 10 , wherein the navigation path passes through at least a portion of the traversable barrier.

12. 12. The system of claim 11, wherein the memory comprises further instructions that, when executed by the circuitry, cause the at least one processor to determine information relating to an area beyond the traversable barrier.

13. The memory further comprises instructions which, when executed by the circuit, cause the at least one processor to: identifying an obstacle in front of the vehicle based on the analysis of the at least one of the plurality of images; determining a navigation path for the vehicle to avoid the identified obstacle; The system of claim 1 , further comprising causing the vehicle to travel along at least a portion of the determined navigation route.

14. The system of claim 1 , wherein the image capture device is located in the vehicle.

15. 1. A program having instructions executable by at least one processor to perform operations for updating a map, the operations comprising: receiving a plurality of images relating to an environment surrounding the vehicle, the images being captured by an image capture device; identifying at least one barrier in the surrounding environment of the vehicle based on at least one of the plurality of images; determining that the at least one barrier type is a predetermined type; and transmitting an update for the map based on determining that the type of the at least one barrier is the predetermined type, the update relating to the at least one barrier or the type of the at least one barrier. Equipped with program.

16. 16. The program of claim 15, wherein determining that the type of the at least one barrier is the predetermined type comprises determining that the type of the at least one barrier is a fixed barrier type.

17. The operation further includes identifying a drivable area in the surrounding environment of the vehicle; The program of claim 15 or 16, wherein the at least one barrier is associated with an edge of the drivable area.

18. 18. The program of claim 15, wherein the at least one barrier is part of at least one of a road or a road environment.

19. 20. The computer-implemented program of claim 18, wherein the at least one barrier is at least one of a road edge, a lane marking, a curb, a concrete barrier, a lane dividing structure, a tunnel wall, or a bridge structure.

20. the operations further including analyzing the at least one of the plurality of images to determine a location of the at least one barrier; 20. The program of claim 15, wherein the updates to the map comprise the location of the at least one barrier.

21. The operation further comprises: obtaining a position of the vehicle relative to the at least one of the plurality of images; and determining the position of the at least one barrier relative to the position of the vehicle; The program of claim 20 .

22. 1. A computerized method for updating a map, the method comprising: receiving a plurality of images relating to an environment surrounding the vehicle, the images being captured by an image capture device; identifying at least one barrier in the surrounding environment of the vehicle based on at least one of the plurality of images; determining that the at least one barrier type is a predetermined type; and transmitting an update for the map based on determining that the type of the at least one barrier is the predetermined type, the update relating to the at least one barrier or the type of the at least one barrier. Equipped with Computerized methods.

Citation Information

Patent Citations

  • Travel judgment assisting device

    JP2002220015A

  • Driving support system, driving support device, sign part, safety control device for vehicle, safety control system, and traffic safety control system

    JP2010055587A

  • Lane deviation prevention support device

    JP2015027837A

  • Method for detecting a clear path of travel for a vehicle enhanced by object detection

    US20100104199A1

  • Systems and methods for implementing a multi-segment braking profile for a vehicle

    US20150151725A1