correct driving direction according to lane marking arrows
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- VALEO SCHALTER & SENSOREN GMBH
- Filing Date
- 2024-12-16
- Publication Date
- 2026-08-04
Smart Images

Figure CN122514481A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to systems and methods for assisting vehicle navigation in parking areas. Background Technology
[0002] Modern motor vehicles are typically equipped with a variety of sensors. Whether inside or outside the passenger compartment, these sensors provide the foundation for driving automation and vehicle autonomy. Vehicles with autonomous or semi-autonomous driving or driver assistance features use these sensors and associated computer vision technologies to assist navigation within parking areas and provide parking assistance. Parking assistance systems can automatically or by providing guidance to the driver to help navigate through parking areas and park the vehicle in a parking space. Summary of the Invention
[0003] A method executed by a computing device configured to detect lane direction in a parking area where a vehicle is navigating, the method comprising: capturing at least one image of the vehicle's surrounding environment using an image capture device, the image including arrow markings on the ground of the parking area; generating a top-down image of the vehicle's surrounding environment including the arrow markings based on the captured at least one image; performing image analysis on the top-down image to determine the arrow direction of the arrow markings; detecting the lane direction of a lane occupied by the vehicle based on the determined arrow direction, based on the result of the image analysis; and generating and providing an output indicating the lane direction of the lane occupied by the vehicle.
[0004] Other aspects of the disclosed embodiments include a system configured to perform the steps and functions of the described methods, and a non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the steps and functions of the described methods. Attached Figure Description
[0005] These and other aspects of this disclosure are made known in the following detailed description of embodiments, the appended claims, and the accompanying drawings.
[0006] Figure 1 A block diagram depicting an example system for assisted navigation within a parking area, based on the principles of this disclosure, is shown.
[0007] Figure 2A , Figure 2B , Figure 2C and Figure 2D An example arrow mark is shown on the ground in a parking area or a non-parking area.
[0008] Figure 3 An example lane direction detection system based on the principles of this disclosure is shown.
[0009] Figure 4 , Figure 5 , Figure 6 and Figure 7 Example image analysis and processing performed by a lane direction detection system in accordance with the principles of this disclosure are shown in general.
[0010] Figure 8 A block diagram of a vehicle electronic control system based on the principles of this disclosure is shown.
[0011] Figure 9 A flowchart of an example method for performing lane direction detection according to the principles of this disclosure is shown. Detailed Implementation
[0012] This document describes embodiments of the present disclosure. However, it should be understood that the disclosed embodiments are merely examples, and other embodiments may take various and alternative forms. The drawings are not necessarily drawn to scale; some features may be exaggerated or minimized to show detail of particular components. Therefore, the specific structural and functional details disclosed herein should not be construed as limiting, but merely as a representative basis for teaching those skilled in the art to employ the embodiments in various ways. As will be understood by those skilled in the art, various features shown and described with reference to any of the drawings may be combined with features shown in one or more other drawings to produce embodiments not explicitly shown or described. The combinations of features shown provide representative embodiments for typical applications. However, for a particular application or implementation, various combinations and modifications of features consistent with the teachings of this disclosure may be desired.
[0013] Unless the context clearly specifies otherwise, the terms “one” and “the” as used herein refer to the singular and plural indicators, respectively. As an example, a “processor” programmed to perform various functions means one processor programmed to perform each function, or more than one processor collectively programmed to perform each of the various functions.
[0014] Some portions of this specification describe embodiments of the present disclosure in terms of algorithms and operations. These operations are understood to be implemented by computer programs or equivalent circuits, machine code, etc., examples of which are disclosed herein. Furthermore, without loss of generality, these operational arrangements may be referred to as modules or units. The described operations and their associated modules or units may be implemented in software, firmware, and / or hardware.
[0015] The described steps, operations, or processes can be performed or implemented individually or in combination with other devices using one or more hardware or software modules. Although the steps, operations, or processes are described in sequence, it should be understood that in some embodiments, the sequence order may differ from the sequence order already described; for example, certain steps, operations, or processes may be omitted or performed in parallel or simultaneously.
[0016] The term "parking area" as used herein should be interpreted to include parking lots, parking garages, streets with parking spaces (e.g., parallel or angled parking spaces alongside a driveway on a road), and other similar spaces where several parking spaces are grouped together. A parking area may include a physical area established for parking, storing, or holding a vehicle for a period of time. A parking area may include one or more markings, lines, signs, or other indications to facilitate parking or define aspects of the parking area, such as arrows used to indicate permitted driving directions or directions of travel (referred to herein as "lane directions"), as described herein. For example, a parking area may or may not include parking lines that define or allocate the physical area or space where a vehicle is to be parked. Parking lots may include signs providing parking restrictions, such as the types of vehicles that can be parked in the parking spaces (e.g., small vehicles, medium-sized vehicles, full-size vehicles, SUVs, trucks, hybrid vehicles, electric vehicles), requirements (e.g., disability stickers), or time limits (e.g., 1-hour parking, 2-hour parking).
[0017] Modern vehicles are almost universally equipped with a variety of sensors. Whether inside or outside the passenger compartment, these sensors provide the foundation for driving automation and vehicle autonomy. Vehicles with autonomous or semi-autonomous driving or driver assistance features can use these sensors and associated computer vision technologies to provide parking assistance. Parking assistance systems can help drivers park their vehicles in parking spaces, automatically or by guiding the driver to do so. However, in order to find available parking spaces in a parking area, the vehicle typically must enter the parking area, and then the vehicle's sensors or the driver must navigate back and forth within the parking area while visually scanning for unoccupied parking spaces.
[0018] Typically, to navigate a parking area, the permitted driving direction or lane direction can be determined based on sensors or other measurement data (e.g., data obtained from inertial measurement units or motion units or IMUs), wheel odometers, GPS data, pre-mapped data, etc., and the vehicle does not have the ability to learn the driving direction.
[0019] Therefore, a more robust vision sensor system is needed to identify the correct and incorrect lane directions in parking areas. Lane direction detection systems and methods according to the principles of this disclosure (which may be implemented by / within parking systems and methods) are configured to determine lane direction based on ground markings (such as arrows) in the parking area, and to assist and / or control navigation based on the determined lane direction indicated by the arrows.
[0020] For example, the systems and methods of this disclosure implement vehicle sensors and cameras to detect lane-based ground arrow markings and apply a lane direction detection model or algorithm (e.g., a geometric point algorithm) to the detected arrow markings to determine the arrow direction, the arrow direction relative to the vehicle's direction of travel, etc. For example, the geometric point algorithm according to this disclosure uses only ground arrow marking detection to determine the lane direction and provide the correct (i.e., permitted or desired) driving direction, and assists the vehicle driver and / or autonomous driving system by providing indications of whether the current and / or expected driving direction is correct or incorrect (e.g., by providing correct or incorrect lane indications on a display or other interface), providing indicators of the correct direction for moving forward or turning, etc.
[0021] The systems and methods described in this paper require only camera-based and / or other sensor-based images (e.g., from a single or multiple cameras, including but not limited to narrow-angle, pinhole, fisheye, panoramic, and / or wide-angle lens cameras). The images are fed to a model, such as a machine learning (ML) model, which is configured to detect arrow markers and their directions and determine lane directions accordingly.
[0022] In this way, lane direction can be determined as the vehicle moves without the need for GPS data, pre-mapped data (e.g., previously obtained lane direction data), or other mapping data.
[0023] In one example, a system configured to implement a lane direction detection model according to this disclosure acquires image data from one or more image capture devices, such as cameras, and processes the image data to obtain a top-down view or image of the environment surrounding the vehicle. For example, the image data can be projected onto a top-down scene or image (i.e., projected into a top-down domain) using an inverse perspective projection (IPP) technique. The system then analyzes the top-down image to detect and extract arrow markers from it. Detecting and extracting arrow markers may include feeding the top-down image to an image segmentation network or model configured to analyze the image, extract features, segment the image based on the extracted features, including identifying portions of the top-down image corresponding to arrow markers, and generating and outputting a segmented image. In some examples, only arrow markers are identified in the segmented image (e.g., the segmented image identifies arrow segments within the image).
[0024] The system determines the direction of the arrows (and therefore the lane direction) based on the segmented image. For example, the direction of each arrow is determined based on point density analysis. The lane direction is then generated and provided as an output. This lane direction may be provided, for example, to a vehicle interface or display, or to an autonomous driving system. In some examples, warnings or alerts (e.g., audio and / or visual alerts) may be provided to indicate that the vehicle's current driving direction is inconsistent with the lane direction.
[0025] Although this document describes the prediction of lane direction in parking areas, the principles of this disclosure can be incorporated to predict lane direction in non-parking areas, such as roads.
[0026] Figure 1 A block diagram depicting an example system 100 for assisting a vehicle in navigating within a parking area (and, in some examples, parking within a parking area) is shown. System 100 may include at least one computing system 102 configured to determine lane direction according to the principles of this disclosure. In some examples, computing system 102 is configured to generate and update map data based on sensor data, stored data, etc. Computing system 102 may implement one or more machine learning models to perform the various functions described herein.
[0027] The computing system may include at least one interface 104, at least one navigation system 106 configured to detect arrow markers and determine lane direction, and at least one controller 108. In some examples, the navigation system 106 is also configured to generate and update digital maps of parking areas. The computing system 102 may include hardware or a combination of hardware and software, such as communication buses, circuits, processors, communication interfaces, etc. The computing system 102 may reside on or within a corresponding vehicle (e.g., a host vehicle). For example, Figure 1 A first vehicle 110 with an onboard computing system 102 is shown, as well as a second vehicle 112 with another or similar onboard computing system 102. Alternatively (or additionally), all or part of the computing system 102 may reside on a remote server (e.g., the cloud) communicatively connected to vehicles 110, 112 via network 114. Each of the first vehicle 110 and the second vehicle 112 (or their corresponding computing system 102) may communicatively connect to network 114 (e.g., via vehicle-to-vehicle (V2V) communication), to the cloud (e.g., via vehicle-to-cloud (V2C) communication), and / or to one or more other systems (e.g., a Global Positioning System (GPS), or to one or more communication devices).
[0028] For example, a vehicle may include one or more transceivers configured to wirelessly establish a secure communication channel with another vehicle or a remote server using one or more communication protocols, such as, for example, vehicle-to-vehicle (V2V) communication protocols, wireless local area networks (WLANs) or wireless fidelity (WiFi, e.g., any variant of IEEE 802.11, including 802.11a / b / g / n), wireless personal area networks (WPANs, e.g., Bluetooth, Zigbee), cellular (e.g., LTE, 3G / 4G / 5G, etc.), wireless metropolitan area networks (WIMANs, e.g., WiMax) and other wide area network (WAN) technologies (e.g., iBurst, Flash-OFDM, EV-DO, HSPA, RTT, EDGE, GPRS), dedicated short-range communication (DSRC), near-field communication (NFC), Internet of Things (IoT) communication protocols (e.g., threads, matter, etc.). This enables the exchange of information and data described herein.
[0029] The computing system 102 may also include at least one data repository or data storage device 116. The data storage device 116 may include or store sensor / image data 118 (derived from the cameras / sensors described herein), digital maps or digital map data 120 (which may include global map data as described in more detail below), parking data 122, and lane direction data 124. A portion of the data stored in the data storage device 116 may be stored at a remote location (e.g., a remote server, cloud computing system, etc.). In other words, at least a portion of the data storage device 116 may be remotely located relative to the first vehicle 110.
[0030] Sensor / image data 118 may include information about available sensors / cameras, sensor / camera identification information, address information, Internet protocol information, unique identifiers, data formats, protocols used for communicating with sensors / cameras, or a mapping from information type to sensor / camera type or identifier. Sensor / image data 118 may also include or store information collected by vehicle sensors / cameras 126. Sensor / image data 118 may be stored along with corresponding timestamps and datestamps. Sensor / image data 118 may use location stamps to store sensor / image data. Sensor / image data 118 may be categorized based on parking areas or features of parking areas. As used herein, “sensor / image data” can be used to describe image data captured by one or more cameras for use in arrow marking and lane direction detection / prediction as described herein.
[0031] Various vehicle sensors / cameras 126 that generate sensor / image data 118 may include one or more sensing elements or transducers that capture, acquire, record, or convert information about the host vehicle or its environment into a processable form. Sensors / cameras 126 may acquire or detect information about parking areas. Sensors / cameras 126 may detect parking area conditions such as road features, boundaries, intersections, lanes, lane markings, or other conditions. Sensors / cameras 126 may also detect features of specific parking spaces, such as symbols indicating that the parking space is only for disabled persons, emergency vehicles, pregnant women (expectant mothers), etc. Sensors / cameras 126 may, for example, acquire one or more images of the parking area, and these images may be processed using image processing and object recognition to identify or detect features indicating the parking area, such as parking signs, stop signs, disabled parking signs, or surface markings on the parking area. As an example, sensors / cameras 126 may be or include image sensors such as photographic sensors (e.g., cameras), radar sensors, ultrasonic sensors, millimeter-wave sensors, infrared sensors, ultraviolet sensors, light detection sensors, lidar sensors, etc. Sensor / camera 126 can transmit sensed data, images, or recordings to computing system 102 for processing, which may include filtering, noise reduction, image enhancement, etc., followed by object recognition, feature detection, segmentation, etc. The raw data originating from sensor / camera 126 and the data processed by computing system 102 can be referred to as sensor / image data 118 or image data sensed by the associated sensor / camera 126.
[0032] Sensor / camera 126 may also include a Global Positioning System (GPS) device, which can use map data with indications of the parking area to determine the position of the host vehicle relative to the intersection. The GPS device can communicate with positioning system 130, as further described below. Computing system 102 can use the GPS device and map data to determine that the host vehicle (e.g., first vehicle 110) has arrived at the parking area. Computing system 102 can use the GPS device and map data to determine the boundaries of the parking area. Sensor / camera 126 can also detect (e.g., using motion sensing, imaging, or any other sensing capability described herein) the presence or proximity of any other vehicle or object in the parking area, and can, for example, track the position or movement of any such vehicle or object over time. Sensor / camera 126 can also detect the relative position between another vehicle and a parking space, for example, whether the parking space is occupied by a vehicle, as indicated by at least a portion of a vehicle located between the boundaries of two adjacent parking space lines.
[0033] In some examples, using any one or more of the aforementioned types of sensors / cameras 126, a vehicle (e.g., the first vehicle 110) is configured to virtually map a parking area. For example, sensors / cameras 126 acquire data for calculating the relative distance between detected objects and sensors / cameras 126, and the computing system 102 may utilize a visual simultaneous localization and mapping (SLAM) system. Visual SLAM is a position detection scheme in which the processes of generating a digital map of the environment (e.g., the parking area) and acquiring the position of the sensors or the vehicle itself are performed complementaryly. In other words, the characteristics of the environment surrounding the vehicle and the position of the vehicle itself are determined simultaneously.
[0034] Navigation system 106 is configured to detect ground arrow markings (i.e., arrow markings on the ground in the parking area) based on data sensed by one or more sensors / cameras 126, and to detect / predict lane direction (e.g., stored as lane direction data 124) based on the detected ground arrow markings. Navigation system 106 generates lane direction data 124 from, utilize, or use a neural network built, maintained, adjusted, or otherwise provided via one or more machine learning models 128. Machine learning models 128 may be configured, stored, or built on the computing system 102 of the first vehicle 110, on a remote server, etc. Navigation system 106 can detect arrow markings on surfaces within the parking area from a first neural network based on data sensed by one or more sensors / cameras 126. Navigation system 106 is configured to use the first neural network and perform scene segmentation of image data based on data sensed by one or more sensors / cameras 126 (e.g., image data). Navigation system 106 is configured to detect lane direction from a first neural network (e.g., a first neural network implemented by network 114, navigation system 106, controller 108, and / or other components of computing device 102) and based on scene segmentation of image data (e.g., based on arrow markers in segmented image data) using data sensed by one or more sensors / cameras 126. For example, navigation system 106 determines the direction of the arrows based on point density analysis of the arrows and predicts the lane direction based on the determined direction of the arrows. In this way, navigation system 106 is configured to construct lane direction data 124 based on detected arrow markers located in parking areas.
[0035] This document discloses various types of machine learning models 128. The machine learning models used by the navigation system 106 to generate the digital map 120 can include any type of neural network, including, for example, convolutional neural networks, deep convolutional networks, feedforward neural networks, deep feedforward neural networks, radial basis function neural networks, Kohonen self-organizing neural networks, recurrent neural networks, modular neural networks, long / short-term memory neural networks, etc. Each machine learning model 128 can maintain, manage, store, update, tune, or configure one or more neural networks, and can use different parameters, weights, training sets, or configurations for each neural network to allow the neural networks to efficiently and accurately process one class of inputs and generate one class of outputs. The machine learning models 128 disclosed herein can include at least one machine learning model configured to perform point density analysis to determine the direction indicated by detected arrow markers.
[0036] One or more of the disclosed machine learning models 128 can be configured as or include convolutional neural networks, such as segmentation neural networks. A convolutional neural network (CNN) can include one or more convolutional units (or pooling layers) and kernels, each capable of performing a different function. Convolutional kernels can process the input data, and pooling layers can use, for example, nonlinear functions (such as maximum values) to simplify the data, thereby reducing unwanted features. CNNs can facilitate image recognition. For example, sensed input data can be passed to convolutional layers forming a funnel, thereby compressing the detected features. A first layer can detect a first feature, a second layer can detect a second feature, and so on.
[0037] A convolutional neural network (CNN) can be a deep feedforward artificial neural network configured to analyze visual images. A CNN can include a multilayer perceptron designed to use minimal preprocessing. Based on its shared weight architecture and translation invariance properties, a CNN can include, or is referred to as, a shift-invariant or spatially invariant artificial neural network. Because CNNs can use relatively little preprocessing compared to other image classification algorithms, they can automatically learn filters that might be hand-designed for other image classification algorithms, thereby improving the efficiency associated with configuring, building, or setting up the neural network, thus providing a technical advantage over other image classification techniques.
[0038] One or more of the disclosed machine learning models 128 may include a CNN with an input layer and an output layer, and one or more hidden layers that may include convolutional layers, pooling layers, fully connected layers, or normalization layers. The one or more pooling layers may include local pooling layers or global pooling layers. Pooling layers can combine the outputs of a cluster of neurons in one layer into a single neuron in the next layer. For example, max pooling can use the maximum value from each of the neurons in the previous layer. Another example is average pooling, which can use the average value from each of the neurons in the previous layer. Fully connected layers can connect each neuron in one layer to each neuron in another layer.
[0039] In some examples, navigation system 106 is also configured to implement visual SLAM (or similar techniques) to generate a digital map 120 of the parking area. Navigation system 106 is configured to generate digital map data based on data sensed by one or more sensors / cameras 126. The digital map data structure (which may be referred to as digital map 120) is capable of generating the digital map from, utilizing, or using one or more machine learning models, or via neural networks built, maintained, tuned, or otherwise provided through one or more machine learning models 128 as described above. Navigation system 106 can detect objects located in the parking lot from a first neural network and / or a second neural network based on data sensed by one or more sensors / cameras 126. Navigation system 106 can perform scene segmentation using the first neural network based on data sensed by one or more sensors / cameras 126. Navigation system 106 can determine depth information of the parking area using the first neural network based on data sensed by one or more sensors / cameras 126. Navigation system 106 can identify one or more parking lines or parking spaces in the parking area from the first neural network based on data sensed by one or more sensors / cameras 126. The navigation system 106 can construct a digital map based on detected objects in the parking area, scene segmentation, depth information of the parking area, and one or more parking lines in the parking area.
[0040] Navigation system 106 can create a digital map 120 based on sensor / image data 118. As described above, the digital map 120 can be created via implemented visual SLAM. In one embodiment, the digital map 120 can include three dimensions on an xyz coordinate plane, and associated dimensions can include, for example, latitude, longitude, and range. The digital map 120 can be updated periodically, or reflect or indicate the motion, movement, or change of one or more objects detected in the parking area. For example, the digital map can include stationary objects associated with the scene, such as curbs, trees, lines, parking signs, or the boundaries of the parking area, as well as non-stationary objects, such as moving vehicles or moving people (e.g., walking, cycling, or running).
[0041] To generate lane direction data 124 (and / or digital map 120 and other data stored in data storage device 116), computing system 102 may interface with or communicate with positioning system 130 via interface 104 and network 114. Positioning system 130 may determine and transmit the location of one or more of vehicles 110, 112 during SLAM or similar mapping techniques performed when generating digital map 120. Positioning system 130 may include any device based on a positioning system such as a Global Navigation Satellite System (GNSS), which may include GPS, GLONASS, Galileo, BeiDou, and / or other regional systems. Positioning system 130 may include one or more cell towers to provide triangulation. Positioning system 130 may include wireless beacons, such as near-field communication beacons, short-range wireless beacons (e.g., Bluetooth beacons), or Wi-Fi modules.
[0042] Computing system 102 can be configured to receive and send information using interface 104. Interface 104 can use one or more protocols, such as network protocols, to receive and send information. Interface 104 may include a hardware interface, a software interface, a wired interface, or a wireless interface. Interface 104 can facilitate the conversion or formatting of data from one format to another. For example, interface 104 may include an application programming interface (API) that includes definitions for communication between various components, such as software components. Interface 104 can be designed, constructed, or operated to communicate with one or more sensors / cameras 126 to collect or receive information, such as image data. Interface 104 can be designed, constructed, or operated to communicate with controller 108 to provide commands or instructions to control a vehicle, such as first vehicle 110. Information collected from one or more sensors, such as sensor / image data 118, can be stored.
[0043] Interface 104 can receive image data about the environment or characteristics of the parking area sensed by one or more sensors / cameras 126. The sensed data received from the sensors / cameras 126 may include data detected, acquired, sensed, collected, or otherwise identified by the sensors / cameras 126. As mentioned above, the sensors / cameras 126 can be one or more sensors of various types; therefore, the data received by interface 104 for processing can be data from a camera, data from an infrared camera, lidar data, laser-based sensor data, radar data, transducer data, or ultrasonic sensor data. Because this data can visualize information about the parking area when processed, it can be referred to as image data.
[0044] Data sensed by sensor / camera 126 can be received by interface 104 and transmitted to navigation system 106 to detect various properties or characteristics of the parking area (e.g., arrow markings, parking lines, parking space types, etc.) using techniques such as segmentation, CNNs, and / or other machine learning models, as described above. For example, navigation system 106 may rely on one or more neural networks or machine learning models 128 to detect objects, scene segmentation, roads, terrain, trees, curbs, obstacles, depth or extent of parking lots, parking line detection, parking mark detection, parking signs, or other objects at or associated with parking areas. Computing system 102 is capable of training machine learning model 128 using historical data. Training can be performed using computing system 102 and / or a computing system located remotely from vehicles 110 / 112. In other words, all or part of computing system 102 may reside on a remote server. Once trained, the model can be transmitted to or loaded onto vehicles 110, 112 via network 114 for execution.
[0045] In some examples, once generated, data such as lane marking data 124 and digital map 120 can be stored in data storage device 116 and accessed by other vehicles. For example, the computing system 102 of the first vehicle 110 can be used to generate lane marking data 124, digital map 120, etc., which can then be accessed by the computing system 102 of the second vehicle 112. The computing system 102 of the second vehicle 112 (and other vehicles) can update the digital map 120 in real time based on more reliable data captured by the second vehicle 112. In addition, the computing systems 102 of both vehicles 110 and 112 can be used to generate and continuously update the stored data in real time.
[0046] As described above, one or more machine learning models 128 can be relied upon to perform the various functions described herein. Machine learning models 128 may include, but are not limited to, lane direction detection or prediction model 132, parking space classification model 134, object detection model 136, and / or other models. Lane direction detection model 132 is trained and configured to process image data to detect and recognize arrow markers, determine the orientation / direction of the arrow markers, and predict lane direction based on the direction of the arrow markers, as described in more detail below.
[0047] Parking space classification model 134 is trained and configured to perform image classification (e.g., segmentation) based on the aforementioned data to generate and update parking data related to parking spaces in the parking area. For example, parking space classification model 134 can be a machine learning model that determines whether each parking space is a normal parking space, a disabled parking space, a charging station for electric vehicles (and, for example, whether the charging station is for wireless charging or cable charging), whether each parking space has an allowed parking duration (e.g., 1 hour, 2 hours, etc.), etc. The output of parking space classification model 134 can be used to selectively update digital map 120 and parking data 122.
[0048] Object detection model 136 is trained and configured to detect objects or obstacles in the parking area based on the above data. This may include parking lines for determining the presence of parking spaces. Object detection model 136 may, for example, determine the presence of a vehicle in a parking space, thereby enabling the determination that the parking space is occupied. Object detection model 136 may also determine the presence of potholes, cones, debris, or other objects in the parking area, which may be stored in data storage device 116 and transmitted to other vehicles (e.g., vehicle 112) that subsequently enter the parking area.
[0049] Figure 2A , 2B Figures 2C and 2D illustrate exemplary arrow markings on the ground. Parking (and non-parking) areas can use various directional arrows 200 to indicate lane direction, permitted or desired driving direction, etc. Arrows 200 can have different shapes (e.g., such as...). Figure 2A and 2B The single arrow shown, such as Figure 2C and 2D (e.g., fused or multi-directional arrows) and / or colors (e.g., yellow, white, etc.). In some examples, arrow markings may include or be placed near other markings, such as lane markings, text, etc.
[0050] Typically, the correct or permissible driving direction is determined using data obtained through IMU data, wheel odometer data, GPS data, pre-mapped data, etc., which are not based on ground arrow markings. For example, IMU and wheel odometer data are obtained using low-resolution sensors, so this data cannot accurately indicate arrow markings and arrow directions, especially considering the various types of arrow markings, modifications to arrow markings (e.g., changes in arrow marking directions due to redesign of parking areas), etc.
[0051] Figure 3 An example lane direction detection system 300 according to the principles of this disclosure is illustrated. System 300 is configured to implement one or more cameras while the vehicle is moving. These cameras are configured to capture high-resolution image data (as opposed to low-resolution sensor data obtained by IMU sensors, wheel odometer sensors, etc.), detect arrow markings using the captured image data, determine lane direction based on the arrow markings, and assist and / or control navigation based on the determined lane direction. System 300 is also configured to identify and generate notification that the vehicle is traveling in the correct or incorrect direction relative to the lane direction. System 300 is configured to detect and respond to different types of arrow markings (i.e., different shapes, colors, arrangements, etc.) and can be implemented with one or more types of cameras, including but not limited to narrow-angle, pinhole, fisheye, panoramic, and / or wide-angle lens cameras. Because lane direction detection is performed in real-time or near real-time using image data captured while the vehicle is navigating a parking area, system 300 is responsive to any modifications made to the arrow markings within the parking area and is not limited to previously obtained data indicating lane direction within the parking area.
[0052] In one example, system 300 executes lane direction detection model 132 (or other model) to execute an algorithm (e.g., a geometric point algorithm) to perform point density analysis on the detected arrow markers, determine the arrow direction based on the point density analysis, and detect the lane direction based on the determined arrow direction.
[0053] One or more image capture devices (e.g., cameras) 304 capture / acquire one or more images 308 of the environment surrounding the vehicle. In this example, the vehicle includes four image capture devices 304, each arranged to capture one of four corresponding images of the environment surrounding the vehicle (e.g., images from the front, rear, and either side (left and right) of the environment surrounding the vehicle). In other examples, fewer or more than four image capture devices 304 may be used. The image capture devices 304 may include cameras such as narrow-lens, pinhole, fisheye, panoramic, wide-angle, and / or other types of cameras.
[0054] The captured image 308 is processed (e.g., at the inverse perspective projection (IPP) processing module or circuit 312) to generate a top-down image 316. The IPP processing module 312 is configured to project the image 308 from the image domain into the top-down view domain. Although the implementation of IPP is described herein, other techniques for generating the top-down image 316 can be used, such as various multi-view geometry techniques. In some examples, the image 308 may be provided as input to a CNN or other machine learning model, deep learning network, etc., which is configured to use the image 308 to generate the top-down image 316.
[0055] A top-down image 316 is provided as input to a model or neural network, such as a segmentation neural network 320 or other type of classification model, configured to detect and extract arrow markers in the top-down image 316. For example, the segmentation neural network 320 is configured to extract features from the top-down image 316, segment the top-down image 316 based on the extracted features, including identifying portions of the top-down image 316 corresponding to the arrow markers, and generating and outputting a segmented image 324. For example, the segmentation neural network 320 is configured to perform semantic, instance, and / or other types of segmentation to identify portions and locations of the top-down image including arrow markers.
[0056] Although described herein as using IPP processing, the principles of this disclosure can be implemented without IPP processing in other examples. For example, the captured image 308 can be directly provided to an image processing or other model configured to extract and label features in the captured image 308, and the segmentation neural network 320 can be configured to receive the captured image 308 as input, etc.
[0057] The segmented image 324 is provided as input to a lane direction detection module or circuitry 328, which is configured to determine the direction (i.e., indicated by) one or more arrow markers in the segmented image 324 and detect the lane direction based on the determined arrow marker direction. In one example, the lane direction detection module 328 is configured to perform point density analysis or other spatial analysis techniques that measure the density of points in one or more regions of the segmented image corresponding to the arrow markers in the segmented image 324. The lane direction detection module 328 then determines the direction of the arrow markers based on the results of the point density analysis. The output of the lane direction detection module 328 is the detected lane direction, which can be provided as input to a vehicle interface or display, autonomous driving system, etc. In some examples, warnings or alerts (e.g., audio and / or visual alerts) can be provided to indicate that the vehicle's current driving direction is inconsistent with the lane direction.
[0058] Figure 4 , Figure 5 , Figure 6 and Figure 7 Example image analysis and processing performed by the lane direction detection system 300 in accordance with the principles of this disclosure are shown in general. Figure 4 Multiple images 400 captured by cameras or other image-capturing devices arranged in or on vehicle 404 are shown. In this example, vehicle 404 includes four image-capturing devices arranged to capture images of the environment surrounding vehicle 404 from the front, rear, and either side. As shown, image 400 corresponds to an image captured by a fisheye lens camera. Images corresponding to the front and left-side views of vehicle 404 include arrow markers as shown at 408.
[0059] Figure 5 It shows the use of Figure 4 Image 400 generates a top-down image 500. For example, using the above... Figure 3 The IPP processing module 312 described herein processes image 400 to generate a top-down image 500. The top-down image 500 includes vehicle 404 and any arrow markings contained within image 400. In this example, the top-down image 500 includes arrow markings 504, which correspond to arrow markings 408 included in multiple images 400 (and shown from multiple perspectives) after IPP processing. In other words, as... Figure 5 The arrow marker 504 shown is a result of the system and method of this disclosure processing and analyzing image 400 to provide a top-down view of the environment surrounding vehicle 404, which accurately indicates the position and features of the arrow marker relative to vehicle 404. Furthermore, the top-down image 500 corrects for any distortion or distortion of the arrow markers 408 / 504 caused by capturing image 400 from various viewpoints.
[0060] Figure 6 An example segmented image 600 generated based on a top-down image 500 is shown. For example, the top-down image 500 is provided to a segmentation neural network 320, which is configured to extract and recognize features in the top-down image 500 to identify the arrow marker 604. For example, the segmentation neural network 320 is configured to identify regions or areas in the top-down image 500 that contain the arrow marker 604, and to identify pixels in the top-down image 500 that correspond to the arrow marker 604, etc. As shown, the segmented image 600 contains only the arrow marker 604 (i.e., features not corresponding to the arrow marker, such as vehicle 404, other vehicles, etc., are excluded). In other instances, the segmented image 600 may contain other features.
[0061] Figure 7Example results of a point density analysis performed on a segmented image 600 are shown. For example, the lane direction detection module 328 performs point density analysis or other spatial analysis techniques to generate a modified segmented image 700, which includes an overlay of arrow markers 704 and points 708. Points 708 can be provided at locations corresponding to the detected boundary between arrow markers 704 and surrounding regions 712. The lane direction detection module 328 is also configured to measure the concentration of points 708 within the modified segmented image 700. In the example, the portion of image 700 with higher concentrations of points 708 corresponds to the arrow direction of arrow markers 704. For example, the first end 716 of arrow marker 704 corresponding to the arrow direction typically includes a greater number of angles and other features leading to detectable points, and thus results in a higher concentration of points 708 (i.e., relative to the second end 720 of arrow marker 704). In this way, the lane direction detection module 328 is configured to determine the direction of the arrow marker 704 (i.e., the arrow direction) based on the measured concentration of point 708 in the result of point density analysis, and to detect the lane direction based on the arrow direction.
[0062] Figure 8 This is a block diagram of the internal components of an exemplary computing system 800 configured to perform lane direction detection according to the systems and methods of this disclosure. The computing system 800 may include or be used to implement the computing system and methods described above. In this embodiment, the computing system 800 may be at least partially implemented in a vehicle electronic control unit (VECU). It should be noted that... Figure 8 This is intended only to provide a general description of the various components; any or all of these components may be used where appropriate. It can be noted that in some cases, Figure 8 The components shown can be localized to a single physical device and / or distributed among various networked devices that can be located in different physical locations.
[0063] The computing system 800 has hardware components that can be electrically connected via a bus 802. These hardware components may include processing circuitry 804, which may include, but is not limited to, one or more processors, one or more dedicated processors (such as digital signal processing (DSP) chips, graphics accelerator processors, application-specific integrated circuits (ASICs), etc.) and / or other processing structures or means. The aforementioned processors may be specifically programmed to perform the operations disclosed herein, including image processing, data processing, and the implementation of the aforementioned machine learning models. Depending on the desired functionality, some embodiments may have a separate DSP 806. The computing system 800 may also include one or more display controllers 808 that can control the display devices disclosed above, such as automotive touchscreens, mobile device screens, etc.
[0064] The computing system 800 may also include a wireless communication hub 810 or connectivity hub, which may include a modem, network interface card (NIC), infrared communication device, wireless communication device and / or chipset (such as Bluetooth device, IEEE 802.11 device, IEEE 802.16.4 device, WiFi device, LTE device, cellular communication facilities including 4G, 5G, etc.). The wireless communication hub 810 may allow data exchange with network 114, wireless access point, other computing systems, etc. Communication may be performed via one or more wireless communication antennas 812 that transmit and / or receive wireless signals 814.
[0065] The computing system 800 may also include an engine control unit 816 or other controllers of the type described herein, or be configured to communicate with the engine control unit 816 or other controllers of the type described herein. In the case of a vehicle that does not have an internal combustion engine, the engine control unit may instead be a battery control unit or an electric drive control unit configured to command vehicle propulsion. In response to instructions received via a wireless communication hub 810, the engine control unit 816 may be operated to control the movement of the vehicle, for example, during a parking process.
[0066] The computing system 800 also includes vehicle sensors / cameras 126, such as those mentioned above. Figure 1 The sensors described herein may include, but are not limited to, one or more accelerometers, gyroscopes, cameras, radar, lidar, odometer sensors, and ultrasonic sensors, as well as magnetometers, altimeters, microphones, proximity sensors, light sensors, etc. These sensors may be controlled via an associated sensor / camera controller(s)127.
[0067] The computing system 800 may also include a GPS receiver 818 capable of receiving signals 820 from one or more GPS satellites using a GPS antenna 822. The GPS receiver 818 may use conventional techniques to extract the device's location from satellites of GPS systems such as Global Navigation Satellite Systems (GNSS) (e.g., Global Positioning System (GPS)), Galileo, GLONASS, Compass, Galileo, BeiDou, and / or other regional systems.
[0068] The computing system 800 may also include or communicate with memory 824. Memory 824 may include (but is not limited to) local and / or network-accessible storage devices, disk drives, drive arrays, optical storage devices, solid-state storage devices (e.g., programmable, flash-updatable RAM), and the like. Such storage devices may be configured to implement any suitable data storage device, including but not limited to various file systems, database structures, and / or the like. Memory 824 may also include software elements (not shown), including operating systems, device drivers, executable libraries, and / or other code embedded in a computer-readable medium, such as one or more application programs, which may include computer programs provided by various embodiments, and / or may be designed to implement methods and / or configure systems provided by other embodiments, as described herein. Subsequently, in one aspect, such code and / or instructions may be used to configure and / or adapt a general-purpose computer (or other device) to perform one or more operations according to the described methods, thereby creating a special-purpose computer.
[0069] The processes and logic flows described in this specification can be executed by one or more programmable processors, which execute one or more computer programs to perform functions by manipulating input data and generating output. The processes and logic flows can also be executed by special-purpose logic circuitry, and the apparatus can be implemented as special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). Devices suitable for storing computer program instructions and data can include non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROMs, EEPROMs, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROMs and DVD-ROMs. These memory devices can be non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more processors described herein, cause one or more processors to perform the techniques described herein. Processors and memory can be supplemented or incorporated into special-purpose logic circuitry.
[0070] Figure 9 A method 900 for performing lane direction detection according to the principles of this disclosure is shown. This method can be performed by... Figure 1 , Figure 3 and Figure 8One or more systems, components, or functions (including, for example, one or more computing systems 102) depicted in the flowchart perform or operate. In some alternative implementations, the functions mentioned in the flowchart blocks may not occur in the order shown in the figures. For example, two blocks shown consecutively may actually be performed substantially simultaneously, or these blocks may sometimes be performed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0071] At 904, one or more images are captured by the vehicle's corresponding image capture device. The captured images correspond to images of the vehicle's surrounding environment and may include markings, such as arrow markings, placed on the ground in the vehicle's surrounding environment. At 908, a top-down image is generated based on the captured images. At 912, a segmentation image is generated using the top-down image to detect arrow markings in the top-down image.
[0072] At point 916, point density analysis or another spatial analysis technique is performed on the segmented image. At point 920, at least one arrow direction of the arrow markers in the segmented image is determined based on the results of the point density analysis. For example, the concentration of points identified in the results of the point density analysis is measured, and the arrow direction is determined based on the measured concentration.
[0073] At point 924, lane direction is detected based on the determined arrow direction. Although the examples in this document describe the lane a vehicle is currently traveling in, other example systems and methods of this disclosure can determine the arrow direction for lanes the vehicle is not currently traveling in (e.g., intersecting lanes), lanes with opposite directions of travel (e.g., in an aisle of a parking area with two lanes), etc. Furthermore, although this document describes a single arrow marker, in other examples, multiple arrow markers and their corresponding arrow directions can be detected / determined. In these examples, the systems and methods of this disclosure can detect and generate notifications regarding multiple lane directions for different lanes, indicating permitted or prohibited turning directions at intersections, etc.
[0074] As described herein, in response to captured images, top-down images, and / or segmented images including two or more arrow markers, the systems and methods of this disclosure can eliminate, remove, ignore, or otherwise determine one or more arrow markers that are irrelevant to the vehicle's current direction of travel. For example, in the calculation of arrow direction and / or lane direction, only the arrow marker closest to the vehicle can be considered.
[0075] Therefore, at point 924, detecting lane direction may also include determining lane direction based on multiple arrow markers and arrow directions by selecting one or more arrow markers as relevant arrow markers, ignoring one or more arrow markers, and detecting lane direction based on relevant arrow markers.
[0076] At point 928, one or more actions are performed based on the detected lane direction, including but not limited to generating at least one output indicating the lane direction. For example, the detected lane direction is provided to a vehicle interface or display, or to an autonomous driving system. In some examples, a warning or alert (e.g., an audio and / or visual alert) may be provided to indicate that the vehicle's current driving direction is inconsistent with the lane direction. For example, system 100 is configured to compare the detected lane direction with the current vehicle direction and selectively generate and output a warning in response to determining that the detected lane direction does not match the current vehicle direction.
[0077] Despite Figure 9 While real-time or near-real-time lane direction detection has been described elsewhere in this document, the principles of this disclosure can be used to update stored map data, such as digital map 120, using arrow markers and lane direction data. In other words, arrow markers and lane direction data can be included in the digital map data and used by one or more other vehicles for parking area navigation and parking assistance. In one example, route planning through a parking area can be performed in part based on previously detected arrow markers and corresponding lane direction data. For example, detected arrow markers and / or corresponding routes or paths can be highlighted on a map display (e.g., in real-time or near real-time or for subsequent drivers navigating a parking area) to guide the driver in the correct lane direction. In another example, previously detected arrow markers can be used as checkpoints for route / path planning and navigation.
[0078] While exemplary embodiments have been described above, it is not intended that these embodiments describe all possible forms included in the claims. The terms used in this specification are descriptive rather than restrictive, and it should be understood that various changes may be made without departing from the spirit and scope of this disclosure. As previously stated, features of the various embodiments may be combined to form further embodiments of the invention, which may not be explicitly described or illustrated. While various embodiments may have been described as providing advantages or superiority over other embodiments or prior art implementations in one or more desired characteristics, those skilled in the art will recognize that one or more features or characteristics may be compromised to achieve desired overall system properties, depending on the specific application and implementation. These properties may include, but are not limited to, cost, strength, durability, lifecycle cost, marketability, appearance, packaging, size, maintainability, weight, manufacturability, ease of assembly, etc. Therefore, any embodiment described as less desirable than other embodiments or prior art implementations in one or more characteristics is not outside the scope of this disclosure and may be desirable for a particular application.
[0079] The word “example” is used herein to mean used as an example, instance, or illustration. Any aspect or design described herein as an “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the use of the word “example” is intended to present a concept in a specific manner. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless otherwise stated or clear from the context, “X comprises A or B” is intended to mean any natural inclusive arrangement. That is, if X comprises A; X comprises B; or X comprises both A and B, then “X comprises A or B” is satisfied in any of the foregoing cases. Furthermore, the articles used in this application and the appended claims should generally be interpreted as “one or more” unless otherwise stated or clearly indicated from the context to be in the singular form. Additionally, unless so described, the use of the terms “implementation” or “one embodiment” throughout the document is not intended to refer to the same embodiment or implementation.
[0080] The implementations of the systems, algorithms, methods, instructions, etc., described herein can be implemented in hardware, software, or any combination thereof. Hardware may include, for example, computers, intellectual property (IP) cores, application-specific integrated circuits (ASICs), programmable logic arrays, optical processors, programmable logic controllers, microcode, microcontrollers, servers, microprocessors, digital signal processors, or any other suitable circuitry. In the claims, the term "processor" should be understood to include any of the foregoing hardware, individually or in combination. The terms "signal" and "data" are used interchangeably.
[0081] As used herein, the term "module" can include packaged functional hardware units designed for use with other components, instruction sets executable by a controller (e.g., a processor executing software or firmware), processing circuitry configured to perform specific functions, and stand-alone hardware or software components that interface with a larger system. For example, a module can include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), circuits, digital logic circuits, analog circuits, combinations of discrete circuits, gates, and other types of hardware or combinations thereof. In other embodiments, a module can include memory storing instructions executable by a controller to implement the features of the module.
[0082] Furthermore, in one aspect, for example, the system described herein may be implemented using a general-purpose computer or general-purpose processor with a computer program that, when executed, performs any of the corresponding methods, algorithms, and / or instructions described herein. Alternatively or alternatively, for example, a special-purpose computer / processor may be utilized, which may contain additional hardware for performing any of the methods, algorithms, or instructions described herein.
[0083] Furthermore, all or part of the embodiments of this disclosure may take the form of a computer program product accessible from, for example, a computer-usable or computer-readable medium. A computer-usable or computer-readable medium may be any device that can, for example, tangibly contain, store, communicate, or transmit a program for use by or in conjunction with any processor. The medium may be, for example, an electronic, magnetic, optical, electromagnetic, or semiconductor device. Other suitable media are also available.
Claims
1. A method performed by a computing device configured to detect lane direction in a parking area being navigated by a vehicle, the method comprising: At least one image of the environment surrounding the vehicle is captured using an image capture device, wherein the at least one image includes arrow markings on the ground of the parking area; A top-down image of the environment surrounding the vehicle is generated based on at least one captured image, wherein the top-down image includes the arrow marker; Perform image analysis on the top-down image to determine the arrow direction of the arrow marker; Based on the results of the image analysis, the lane direction of the lane occupied by the vehicle is detected based on the determined arrow direction; and Generate and provide an output indicating the direction of the lane occupied by the vehicle.
2. The method according to claim 1, wherein, Generating the top-down image includes performing inverse perspective projection (IPP) processing on at least one captured image to generate the top-down image.
3. The method according to claim 2, wherein, The captured image comprises a plurality of captured images, and performing IPP processing comprises generating the top-down image using the plurality of captured images.
4. The method according to claim 3, wherein, The plurality of captured images includes at least four captured images corresponding to the front view, rear view, left view, and right view of the environment surrounding the vehicle.
5. The method according to claim 1, wherein, Performing image analysis on the top-down image includes performing segmentation on the top-down image to generate a segmented image that identifies the arrow marker.
6. The method according to claim 5, wherein, Performing the image analysis also includes performing point density analysis on the arrow markers.
7. The method according to claim 6, wherein, Performing the point density analysis includes: generating an overlay of points on the arrow markers in the segmented image, and measuring the concentration of points in the corresponding portions of the arrow markers.
8. The method according to claim 7, wherein, Determining the direction of the arrow includes determining the direction of the arrow based on the concentration at the measured point.
9. The method according to claim 7, wherein, Determining the lane direction includes determining the lane direction based on the portion of the arrow marker with the highest concentration of points.
10. The method according to claim 1, wherein, In response to the detected lane direction, the generation and provision of the output includes at least one of the following: The detected lane direction is provided to at least one of the vehicle's driver and the vehicle's autonomous driving system. The vehicle provides a notification that the vehicle's driving direction is incorrect to at least one of the vehicle's driver and the vehicle's autonomous driving system. and Instructions are provided to at least one of the driver of the vehicle and the autonomous driving system of the vehicle to correct the driving direction of the vehicle.
11. A system configured to detect lane direction in a parking area navigated by a vehicle, the system comprising: At least one image capturing device configured to capture at least one image of the environment surrounding the vehicle, wherein the at least one image includes arrow markings on the ground of the parking area; and The computing system is configured as follows: A top-down image of the environment surrounding the vehicle is generated based on at least one captured image, wherein the top-down image includes the arrow marker. Perform image analysis on the top-down image to determine the arrow direction of the arrow marker. Based on the results of the image analysis, the lane direction of the lane occupied by the vehicle is detected based on the determined arrow direction, and Generate and provide an output indicating the lane direction in which the vehicle occupies the lane.
12. The system according to claim 11, wherein, Generating the top-down image includes performing inverse perspective projection (IPP) processing on at least one captured image to generate the top-down image.
13. The system according to claim 12, wherein, The captured image comprises at least one plurality of captured images, and performing IPP processing comprises generating the top-down image using the plurality of captured images.
14. The system according to claim 13, wherein, The plurality of captured images include at least four of the captured images, which correspond to a front view, a rear view, a left view, and a right view of the environment surrounding the vehicle.
15. The system according to claim 11, wherein, Performing image analysis on the top-down image includes performing segmentation on the top-down image to generate a segmented image that identifies the arrow marker.
16. The system according to claim 15, wherein, Performing the image analysis also includes performing point density analysis on the arrow markers.
17. The system according to claim 16, wherein, Performing the point density analysis includes: generating an overlay of points on the arrow markers in the segmented image, and measuring the concentration of points in the corresponding portions of the arrow markers.
18. The system according to claim 17, wherein, Determining the direction of the arrow includes: determining the direction of the arrow based on the concentration of the measured point.
19. The system according to claim 11, wherein, In response to the detected lane direction, the generation and provision of the output includes at least one of the following: The detected lane direction is provided to at least one of the vehicle's driver and the vehicle's autonomous driving system. The vehicle provides a notification that the vehicle's driving direction is incorrect to at least one of the vehicle's driver and the vehicle's autonomous driving system. and Instructions are provided to at least one of the driver of the vehicle and the autonomous driving system of the vehicle to correct the driving direction of the vehicle.
20. A processor configured to execute instructions stored on a non-transitory computer-readable medium, wherein executing the instructions causes the processor to: Capture at least one image of the environment surrounding a vehicle in a navigation parking area, wherein the at least one image includes arrow markings on the ground in the parking area; A top-down image of the environment surrounding the vehicle is generated based on at least one captured image, wherein the top-down image includes the arrow marker; Perform image analysis on the top-down image to determine the arrow direction of the arrow marker; Based on the results of the image analysis, the lane direction of the lane occupied by the vehicle is detected based on the determined arrow direction; and Generate and provide an output indicating the lane direction in which the vehicle occupies the lane.