Camera-sensor fusion module for surface detection and fleet vehicle control systems and methods
Techniques are disclosed for systems and methods for surface detection and fleet vehicle control. A method for controlling operations for a plurality of fleet vehicles, the method includes receiving, by a fleet vehicle of the plurality of fleet vehicles using camera-sensor fusion module, first image data of an operational surface in a field of view of the camera-sensor fusion module and inertial data of the fleet vehicle, determining, by the fleet vehicle using a fusion algorithm based on a neural network model, a surface classification of the operational surface based on the first image data and the inertial data, determining an operational parameter for the fleet vehicle based, at least in part, on the surface classification, and controlling an operation of the fleet vehicle based, at least in part, on the operational parameter.
Latest Lyft, Inc. Patents:
One or more embodiments of the present disclosure relate generally to image detection and more particularly, to systems and methods for camera-sensor fusion modules trained to detect surfaces and control a fleet vehicle's operation.
BACKGROUNDContemporary transportation services and vehicles rely on users to control the mode of transportation, including the speed of travel, the location of travel, and other operations associated with use of the vehicle. For example, users may be required to comply with local ordinances, laws, and other rules for use of the vehicle, such as a speed limit, specific lanes for certain vehicle types, and/or control of the vehicle around pedestrians. Micro-mobility fleet service providers may provide micro-mobility vehicles, such as bicycles, scooters, and the like, that the users do not own but may rent from the service providers. In order to operate, rent, and provide these vehicles to users within a location (e.g., a city), the service provider may require licenses from the local government and may further be required to enforce the local laws so that the micro-mobility vehicles are not operated in unlawful manners, which may endanger pedestrians or vehicles. This may further impact the reputation of the service provider based on dangerous use by some users. Further, the service provider may lose their licensing to operate within the location and/or be fined based on unlawful use by users, which the service provider may be unaware of or unable to control with certain micro-mobility vehicles.
Therefore, there is a need in the art for systems and methods to better limit and control fleet vehicles, particularly in the context of micro-mobility fleet vehicles operated within a location that has rules and laws regulating micro-mobility fleet vehicle use.
SUMMARYTechniques are disclosed for systems and methods to provide surface detection and fleet vehicle control. In accordance with one or more embodiments, a fleet vehicle control system for a plurality of fleet vehicles is provided, where the fleet vehicle control system includes one or more non-transitory computer-readable storage media embodying instructions and one or more processors coupled to the storage media and operable to execute the instructions. The instructions include receiving, by a fleet vehicle of the plurality of fleet vehicles, first image data of an operational surface on which the fleet vehicle is operated, the first image data captured by a camera associated with the fleet vehicle, determining, by the fleet vehicle using a neural network model trained for detection of operational surfaces associated with the plurality of fleet vehicles, a restricted mobility requirement or operational parameter for the fleet vehicle based, at least in part, on the first image data, and controlling an operation of the fleet vehicle based, at least in part, on the restricted mobility requirement.
In other embodiments, a method for controlling operations for a plurality of fleet vehicles is provided, the method including receiving, by a fleet vehicle of the plurality of fleet vehicles, first data (including image data) of an operational surface on which the fleet vehicle is operated, the first data captured by a sensor associated with the fleet vehicle, determining, by the fleet vehicle using a neural network model trained for detection of operational surfaces associated with the plurality of fleet vehicles, a restricted mobility requirement or operational parameter for the fleet vehicle based, at least in part, on the first image data, and controlling an operation of the fleet vehicle based, at least in part, on the restricted mobility requirement or operational parameter.
According to some embodiments, a non-transitory machine-readable medium may include a plurality of machine-readable instructions which when executed by one or more processors are adapted to cause the one or more processors to perform a method. The method may include receiving, by a fleet vehicle of the plurality of fleet vehicles, first data of an operational surface on which the fleet vehicle is operated, the first data captured by a sensor associated with the fleet vehicle, determining, by the fleet vehicle using a neural network model trained for detection of operational surfaces associated with the plurality of fleet vehicles, a restricted mobility requirement or operational parameter for the fleet vehicle based, at least in part, on the first image data, and controlling an operation of the fleet vehicle based, at least in part, on the restricted mobility requirement or operational parameter.
The scope of the invention is defined by the claims, which are incorporated into this section by reference. A more complete understanding of embodiments of the invention will be afforded to those skilled in the art, as well as a realization of additional advantages thereof, by a consideration of the following detailed description of one or more embodiments. Reference will be made to the appended sheets of drawings that will first be described briefly.
Embodiments of the invention and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures.
DETAILED DESCRIPTIONIn accordance with various embodiments of the present disclosure, surface detection and micro-mobility fleet vehicle control systems and methods provide a reliable and robust monitoring and control system to help in the management, operation, and use of fleet vehicles provided for hire by a fleet manager, such as a transportation services provider. For example, given a fleet of micro-mobility fleet vehicles managed by a service provider, a model for a neural network may be trained to identify certain operational surfaces on which the fleet vehicles may be driven, moved over, parked, or otherwise operated. These surfaces may include sidewalks, roads, particular driving lanes, streets, harbors, rivers, lakes, and other types of surfaces for operation of vehicles. These surfaces may also be utilized by other types of vehicles (e.g., cars, trucks, busses, water crafts, etc., including autonomous vehicles) and pedestrians. The surfaces may be associated with one or more restrictions, laws, regulations, or other operational requirements that limit the operating conditions and manner in which the micro-mobility fleet vehicles are operated. For example, fleet vehicles may be regulated based on certain regulatory and/or geo-spatial boundaries, locations, or areas. In some embodiments, the surfaces may be associated with parking, docking, or charging of the fleet vehicles or other vehicles. For example, with regard to fleet vehicles, a surface may correspond to a docking station or a soft docking station. A docking station may correspond to a location where a fleet vehicle may be left, rented, and/or charged by one or more users and/or a controller for the fleet vehicles. This may be a preset physical location, such as a visibly marked area or border or otherwise detectable by the fleet vehicle, and may have rules regarding how a vehicle is left, docked, and/or utilized (e.g., when driving to or leaving from the docking station). A soft docking station may correspond to a variable geo-location that may change or be established based on needs or requirements, such as a convention or crowd of users that may require use of the fleet vehicles. Soft docking stations may be identified through the fleet vehicle, such as through a display when the fleet vehicle is detected near or within the docking station. The fleet vehicle may also display nearby locations of soft docking stations, such that the user can navigate the vehicle to a desired soft docking station. Such locations may also have particular enforcement requirements for safety and the like. Once the neural network model (e.g., a surface detection model) is trained, it may be implemented on the fleet for the service provider. Thereafter, when a given fleet vehicle is being operated by a user, the operational surface that the fleet vehicle is operated on may be monitored to enforce those operational requirements specific for that surface. If the vehicle is being operated in a manner that violates the operational requirements or does not comply with an operational parameter for the surface, the mode and parameters of operation may be controlled and appropriate actions taken as needed.
In particular, to train a neural network model for use in surface detection for operational surfaces of fleet vehicles, initial training data may be required to be received by a neural network trainer for training a neural network. The training data may initially be captured by a micro-mobility fleet vehicle during a training route or path travelling through a location and may be updated as additional fleet vehicles operate within that location. For an initial model in a new location, such as a new city or county, the training data that is initially collected includes at least image data, including videos, still images, and/or environmental scans captured using a camera or other optical capture device of the fleet vehicle. The camera may be mounted on the fleet vehicle in a sensor package of the fleet vehicle, or the camera may be connectable to the fleet vehicle, such as a camera, mobile phone, or other device that can be connected to or used by a user operating the fleet vehicle during the travel route that captures the training data. The training data may further include additional sensor data or detectable data that may be captured using the sensor package. For example, the sensor package may be a camera-sensor fusion package that may includes one or more of a GPS locator or other global navigation satellite system (GNSS) transceiver, an accelerometer, an inertial measurement unit (IMU) detector, or other sensors. The sensors may each be capable of detecting properties of the operational surface of the fleet vehicle during the travel route, including images, properties, and location of the surfaces, such as streets, lanes, and sidewalks. Training data may also include other neural network models for different locations that may have previously been trained at other locations (e.g., neural network models for similar cities to a new city requiring a neural network model for surface detection within that new city). In this regard, one or more layers of the previous neural network models may be stripped away or removed to allow for re-training of those layers using the new image and/or sensor data, such as a first and/or last layer of those pre-trained models.
In various embodiments, the neural network model for the particular location may then be trained using the training data so as to allow determination and recognition of operational surfaces on which the fleet vehicles are operated. Training may be accomplished using a convolution neural network (CNN or ConvNet) architecture, such as one having four or more convolution networks, however, less convolution layers may also be used in some neural network models and training. CNNs are a type of deep neural networks whereby an input layer may be used to generate an output layer that allows specific classifications. In CNNs, weights and biases may be learned from input data or images so that importance or weights may be assigned to features within the images, thereby allowing classification of objects and other features within the images (e.g., an operational surface of a fleet vehicle when the fleet vehicle is operated). This may be done by proceeding over the input image to generate a convolution layer that extracts high level features of the input image. This may be done for multiple convolution layers until neurons of the neural network are trained and the neural network model is generated. Additional input data for the neural network may also include other training data that may affect the neural network so that the neural network can detect the operational surface of the fleet vehicle. For example, the other data may include sensor data captured by the sensor package (e.g., vibrational and/or movement data along the travel route), time of day, season, weather conditions, ambient or artificial lighting, acceleration parameters of the fleet vehicle, and/or crowd congestion models and parameters. For example, sidewalk detection through vibrational data or other data captured by one or more sensors (e.g., an accelerometer) is discussed in further detail in U.S. patent application Ser. No. 16/588,408, entitled “SYSTEMS AND METHODS FOR SIDEWALK DETECTION FOR PERSONAL MOBILITY VEHICLES,” filed Sep. 30, 2019, which is hereby incorporated by reference in its entirety.
Once the neural network model is trained, the model may be distributed to the fleet of the micro-mobility fleet vehicles. The distribution may be from a cloud computing architecture and/or controller for the service provider and/or the fleet. Each fleet vehicle may receive or access the neural network model, which may occur when the fleet vehicle is connected through a wired or wireless connection to the controller including in real-time over a cellular network or any suitable communication network. The controller may also provide or enable access of the neural network model to users' mobile phones or other devices for distribution when a user's device connects to the fleet vehicle for renting, hiring, and/or operating. Once loaded to or accessed by the fleet vehicle, the neural network model may control usage and operation of the fleet vehicle. For example, the fleet vehicle may use the camera and/or other sensors accessible to the fleet vehicle to determine what type of surface the vehicle is being operated on through the neural network model. The surface may correspond to a surface that has an operational restriction or requirement, such as a law that restricts certain usage (e.g., a speed limit, a requirement for only a certain vehicle type, a bar of any vehicles, such as a sidewalk only for pedestrians, and the like). The surface may also correspond to a desired operational mode, such as if the surface is wet, slick, icy, rough, or other condition that is not a typical or normal condition of the surface. In this case, a desired speed limit may be lower than the posted or legal speed limit, such that the operational parameter may be to limit the speed, either by braking or other means, to a desired speed limit less than the legal speed limit. If the surface has a mobility restriction requirement (which may also include one or more operational parameters) for the fleet vehicle, a vehicle controller or other device may enforce the mobility restriction by engaging a resistor to slow the fleet vehicle or bring the fleet vehicle to a stop, notify the user of the mobility restriction or the unintended/unlawful use, and/or fine the user for the use that violates the mobility restriction or the operational parameter. Additionally, the sensor package of each fleet vehicle may continue to collect training data, which may be used to further train the neural network model and/or update the neural network model for higher precision and accuracy of surface detection.
As shown in
Controller 112 may be implemented as any appropriate logic device (e.g., processing device, microcontroller, processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), memory storage device, memory reader, or other device or combinations of devices) that may be adapted to execute, store, and/or receive appropriate instructions, such as software instructions implementing a control loop for controlling various operations of fleet vehicle 110 and/or other elements of system 100, for example. Such software instructions may also implement methods for processing images and/or other sensor signals or data, determining sensor information, providing user feedback (e.g., through user interface 113 or 132), querying devices for operational parameters, selecting operational parameters for devices, or performing any of the various operations described herein (e.g., operations performed by logic devices of various devices of system 100). Controller 112 may also be utilized to engage a slowing, braking, or operational function of fleet vehicle 110, for example, to slow or bring fleet vehicle to a stop or otherwise control movement of fleet vehicle 110 based on an operational surface of fleet vehicle 110.
In addition, a non-transitory medium may be provided for storing machine readable instructions for loading into and execution by controller 112. In these and other embodiments, controller 112 may be implemented with other components where appropriate, such as volatile memory, non-volatile memory, one or more interfaces, and/or various analog and/or digital components for interfacing with devices of system 100. For example, controller 112 may be adapted to store sensor signals, sensor information, parameters for coordinate frame transformations, calibration parameters, sets of calibration points, and/or other operational parameters, over time, for example, and provide such stored data to a user via user interface 113 or 132. In some embodiments, controller 112 may be integrated with one or more other elements of fleet vehicle 110, for example, or distributed as multiple logic devices within fleet vehicle 110 and/or user device 130.
In some embodiments, controller 112 may be configured to substantially continuously monitor and/or store the status of and/or sensor data provided by one or more elements of fleet vehicle 110 and/or user device 130, such as the position and/or orientation of fleet vehicle 110 and/or user device 130, for example, and the status of a communication link established between fleet vehicle 110 and/or user device 130. Such communication links may be established and then provide for transmission of data between elements of system 100 substantially continuously throughout operation of system 100, where such data includes various types of sensor data, control parameters, and/or other data.
User interface 113 of fleet vehicle 110 may be implemented as one or more of a display, a touch screen, a keyboard, a mouse, a joystick, a knob, a steering wheel, a yoke, and/or any other device capable of accepting user input and/or providing feedback to a user. In various embodiments, user interface 113 may be adapted to provide user input (e.g., as a type of signal and/or sensor information transmitted by wireless communications module 134 of user device 130) to other devices of system 100, such as controller 112. User interface 113 may also be implemented with one or more logic devices (e.g., similar to controller 112) that may be adapted to store and/or execute instructions, such as software instructions, implementing any of the various processes and/or methods described herein. For example, user interface 132 may be adapted to form communication links, transmit and/or receive communications (e.g., infrared images and/or other sensor signals, control signals, sensor information, user input, and/or other information), for example, or to perform various other processes and/or methods described herein.
In one embodiment, user interface 113 may be adapted to display a time series of various sensor information and/or other parameters as part of or overlaid on a graph or map, which may be referenced to a position and/or orientation of fleet vehicle 110 and/or other elements of system 100. For example, user interface 113 may be adapted to display a time series of positions, headings, and/or orientations of fleet vehicle 110 and/or other elements of system 100 overlaid on a geographical map, which may include one or more graphs indicating a corresponding time series of actuator control signals, sensor information, and/or other sensor and/or control signals. In some embodiments, user interface 113 may be adapted to accept user input including a user-defined target heading, waypoint, route, and/or orientation, for example, and to generate control signals to cause fleet vehicle 110 to move according to the target heading, route, and/or orientation. In other embodiments, user interface 113 may be adapted to accept user input modifying a control loop parameter of controller 112, for example. In some embodiments, user interface 113 may also be used to display mobility restriction requirements and parameters of usage that violates those restrictions, including potential fines, excessive speed and/or speed limit, unlawful operation, operation on a restricted surface, and the like.
Orientation sensor 114 may be implemented as one or more of a compass, float, accelerometer, and/or other device capable of measuring an orientation of fleet vehicle 110 (e.g., magnitude and direction of roll, pitch, and/or yaw, relative to one or more reference orientations such as gravity and/or Magnetic North), camera 148, and/or other elements of system 100, and providing such measurements as sensor signals and/or data that may be communicated to various devices of system 100. Gyroscope/accelerometer 116 may be implemented as one or more electronic sextants, semiconductor devices, integrated chips, accelerometer sensors, accelerometer sensor systems, or other devices capable of measuring angular velocities/accelerations and/or linear accelerations (e.g., direction and magnitude) of fleet vehicle 110 and/or other elements of system 100 and providing such measurements as sensor signals and/or data that may be communicated to other devices of system 100 (e.g., user interface 132, controller 112). In some embodiments, orientation sensor 114 and/or gyroscope/accelerometer 116 may include an IMU sensor configured to detect inertial readings and measurements for use in surface detection. In such embodiments, a sensor package may include the IMU sensor with orientation sensor 114 and/or gyroscope/accelerometer 116, where the IMU sensor may include a gyroscope, an accelerometer, and/or a magnetometer that implements the fusion algorithm and neural network model for sidewalk detection.
GNSS 118 may be implemented according to any global navigation satellite system, including a GPS, GLONASS, and/or Galileo based receiver and/or other device capable of determining absolute and/or relative position of fleet vehicle 110 (e.g., or an element of fleet vehicle 110) based on wireless signals received from space-born and/or terrestrial sources (e.g., eLoran, and/or other at least partially terrestrial systems), for example, and capable of providing such measurements as sensor signals and/or data (e.g., coordinates) that may be communicated to various devices of system 100. In some embodiments, GNSS 118 may include an altimeter, for example, or may be used to provide an absolute altitude.
Wireless communications module 120 may be implemented as any wireless communications module configured to transmit and receive analog and/or digital signals between elements of system 100. For example, wireless communications module 120 may be configured to receive control signals and/or data from user device 130 and provide them to controller 112 and/or propulsion system 122. In other embodiments, wireless communications module 120 may be configured to receive images and/or other sensor information (e.g., still images or video images) and relay the sensor data to controller 112 and/or user device 130. In some embodiments, wireless communications module 120 may be configured to support spread spectrum transmissions, for example, and/or multiple simultaneous communications channels between elements of system 100. Wireless communication links formed by wireless communications module 120 may include one or more analog and/or digital radio communication links, such as WiFi, Bluetooth, NFC, RFID, and others, as described herein, and may be direct communication links established between elements of system 100, for example, or may be relayed through one or more wireless relay stations configured to receive and retransmit wireless communications. In various embodiments, wireless communications module 120 may be configured to support wireless mesh networking, as described herein. In various embodiments, wireless communications module 120 may be configured to support receiving neural network models for surface detection and updating those models, as described herein.
In some embodiments, wireless communications module 120 may be configured to be physically coupled to fleet vehicle 110 and to monitor the status of a communication link established between fleet vehicle 110 and/or user device 130. Such status information may be provided to controller 112, for example, or transmitted to other elements of system 100 for monitoring, storage, or further processing, as described herein. In addition, wireless communications module 120 may be configured to determine a range to another device, such as based on time of flight, and provide such range to the other device and/or controller 112. Communication links established by wireless communication module 120 may be configured to transmit data between elements of system 100 substantially continuously throughout operation of system 100, where such data includes various types of sensor data, control parameters, and/or other data, as described herein.
Propulsion system 122 may be implemented as one or more motor-based propulsion systems, and/or other types of propulsion systems that can be used to provide motive force to fleet vehicle 110 and/or to steer fleet vehicle 110. In some embodiments, propulsion system 122 may include elements that can be controlled (e.g., by controller 112 and/or user interface 113) to provide motion for fleet vehicle 110 and to provide an orientation for fleet vehicle 110. In various embodiments, propulsion system 122 may be implemented with a portable power supply, such as a battery and/or a combustion engine/generator and fuel supply.
For example, in some embodiments, such as when propulsion system 122 is implemented by an electric motor (e.g., as with many micro-mobility fleet vehicles), fleet vehicle 110 may include battery 124. Battery 124 may be implemented by one or more battery cells (e.g., lithium ion battery cells) and be configured to provide electrical power to propulsion system 122 to propel fleet vehicle 110, for example, as well as to various other elements of system 100, including controller 112, user interface 113, and/or wireless communications module 120. In some embodiments, battery 123 124 may be implemented with its own safety measures, such as thermal interlocks and a fire-resistant enclosure, for example, and may include one or more logic devices, sensors, and/or a display to monitor and provide visual feedback of a charge status of battery 124 (e.g., a charge percentage, a low charge indicator, etc.).
Other modules 126 may include other and/or additional sensors, actuators, communications modules/nodes, and/or user interface devices, for example, and may be used to provide additional environmental information related to operation of fleet vehicle 110, for example. In some embodiments, other modules 126 may include a humidity sensor, a wind and/or water temperature sensor, a barometer, an altimeter, a radar system, a proximity sensor, a visible spectrum camera or infrared camera (with an additional mount), and/or other environmental sensors providing measurements and/or other sensor signals that can be displayed to a user and/or used by other devices of system 100 (e.g., controller 112) to provide operational control of fleet vehicle 110 and/or system 100. In further embodiments, other modules 126 may include a light, such as a headlight or indicator light, and/or an audible alarm, both of which may be activated to alert passersby to possible theft, abandonment, and/or other critical statuses of fleet vehicle 110. In particular, and as shown in
Camera 148 may be implemented as an imaging device including an imaging module including an array of detector elements that can be arranged in a focal plane array. In various embodiments, camera 148 may include one or more logic devices (e.g., similar to controller 112) that can be configured to process imagery captured by detector elements of camera 148 before providing the imagery to wireless communications module 120. More generally, camera 148 may be configured to perform any of the operations or methods described herein, at least in part, or in combination with controller 112 and/or user interface 113 or 132. These operations may include or be associated with surface detection to limit or control fleet vehicle 110 based on operational surfaces on which fleet vehicle 110 is operated.
In various embodiments, air quality sensor 150 may be implemented as an air sampling sensor configured to determine an air quality of an environment about fleet vehicle 110 and provide corresponding air quality sensor data. Air quality sensor data provided by air quality sensor 150 may include particulate count, methane content, ozone content, and/or other air quality sensor data associated with common street level sensitivities and/or health monitoring typical when in a street level environment, such as that experienced when riding on a typical micro-mobility fleet vehicle, as described herein.
Fleet vehicles implemented as micro-mobility fleet vehicles may include a variety of additional features designed to facilitate fleet management and user and environmental safety. For example, as shown in
User interface 132 of user device 130 may be implemented as one or more of a display, a touch screen, a keyboard, a mouse, a joystick, a knob, a steering wheel, a yoke, and/or any other device capable of accepting user input and/or providing feedback to a user. In various embodiments, user interface 132 may be adapted to provide user input (e.g., as a type of signal and/or sensor information transmitted by wireless communications module 134 of user device 130) to other devices of system 100, such as controller 112. User interface 132 may also be implemented with one or more logic devices (e.g., similar to controller 112) that may be adapted to store and/or execute instructions, such as software instructions, implementing any of the various processes and/or methods described herein. For example, user interface 132 may be adapted to form communication links, transmit and/or receive communications (e.g., infrared images and/or other sensor signals, control signals, sensor information, user input, and/or other information), for example, or to perform various other processes and/or methods described herein.
In one embodiment, user interface 132 may be adapted to display a time series of various sensor information and/or other parameters as part of or overlaid on a graph or map, which may be referenced to a position and/or orientation of fleet vehicle 110 and/or other elements of system 100. For example, user interface 132 may be adapted to display a time series of positions, headings, and/or orientations of fleet vehicle 110 and/or other elements of system 100 overlaid on a geographical map, which may include one or more graphs indicating a corresponding time series of actuator control signals, sensor information, and/or other sensor and/or control signals. In some embodiments, user interface 132 may be adapted to accept user input including a user-defined target heading, waypoint, route, and/or orientation, for example, and to generate control signals to cause fleet vehicle 110 to move according to the target heading, route, and/or orientation. In other embodiments, user interface 132 may be adapted to accept user input modifying a control loop parameter of controller 112, for example.
Wireless communications module 134 may be implemented as any wireless communications module configured to transmit and receive analog and/or digital signals between elements of system 100. For example, wireless communications module 134 may be configured to transmit control signals from user interface 132 to wireless communications module 120 or 144. In some embodiments, wireless communications module 134 may be configured to support spread spectrum transmissions, for example, and/or multiple simultaneous communications channels between elements of system 100. In various embodiments, wireless communications module 134 may be configured to monitor the status of a communication link established between user device 130 and/or fleet vehicle 110 (e.g., including packet loss of transmitted and received data between elements of system 100, such as with digital communication links), and/or determine a range to another device, as described herein. Such status information may be provided to user interface 132, for example, or transmitted to other elements of system 100 for monitoring, storage, or further processing, as described herein. In various embodiments, wireless communications module 134 may be configured to support wireless mesh networking, as described herein.
Other modules 136 of user device 130 may include other and/or additional sensors, actuators, communications modules/nodes, and/or user interface devices used to provide additional environmental information associated with user device 130, for example. In some embodiments, other modules 136 may include a humidity sensor, a wind and/or water temperature sensor, a barometer, a radar system, a visible spectrum camera, an infrared camera, a GNSS receiver, and/or other environmental sensors providing measurements and/or other sensor signals that can be displayed to a user and/or used by other devices of system 100 (e.g., controller 112) to provide operational control of fleet vehicle 110 and/or system 100 or to process sensor data to compensate for environmental conditions. In some embodiments, other modules 136 may include an IMU sensor configured to detect inertial readings and measurements for use in surface detection. As shown in
Camera 138 may be implemented as an imaging device including an imaging module including an array of detector elements that can be arranged in a focal plane array. In various embodiments, camera 138 may include one or more logic devices (e.g., similar to controller 112) that can be configured to process imagery captured by detector elements of camera 138 before providing the imagery to wireless communications module 120. More generally, camera 138 may be configured to perform any of the operations or methods described herein, at least in part, or in combination with controller 112 and/or user interface 113 or 132. These operations may include or be associated with surface detection to limit or control fleet vehicle 110 based on operational surfaces on which fleet vehicle 110 is operated.
In general, each of the elements of system 100 may be implemented with any appropriate logic device (e.g., processing device, microcontroller, processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), memory storage device, memory reader, or other device or combinations of devices) that may be adapted to execute, store, and/or receive appropriate instructions, such as software instructions implementing a method for providing sensor data and/or imagery, for example, or for transmitting and/or receiving communications, such as sensor signals, sensor information, and/or control signals, between one or more devices of system 100.
In addition, one or more non-transitory mediums may be provided for storing machine readable instructions for loading into and execution by any logic device implemented with one or more of the devices of system 100. In these and other embodiments, the logic devices may be implemented with other components where appropriate, such as volatile memory, non-volatile memory, and/or one or more interfaces (e.g., inter-integrated circuit (I2C) interfaces, mobile industry processor interfaces (MIPI), joint test action group (JTAG) interfaces (e.g., IEEE 1149.1 standard test access port and boundary-scan architecture), and/or other interfaces, such as an interface for one or more antennas, or an interface for a particular type of sensor).
Sensor signals, control signals, and other signals may be communicated among elements of system 100 and/or elements of other systems similar to system 100 using a variety of wired and/or wireless communication techniques, including voltage signaling, Ethernet, WiFi, Bluetooth, Zigbee, Xbee, Micronet, Near-field Communication (NFC) or other medium and/or short range wired and/or wireless networking protocols and/or implementations, for example. In such embodiments, each element of system 100 may include one or more modules supporting wired, wireless, and/or a combination of wired and wireless communication techniques, including wireless mesh networking techniques. In some embodiments, various elements or portions of elements of system 100 may be integrated with each other, for example, or may be integrated onto a single printed circuit board (PCB) to reduce system complexity, manufacturing costs, power requirements, coordinate frame errors, and/or timing errors between the various sensor measurements.
Each element of system 100 may include one or more batteries, capacitors, or other electrical power storage devices, for example, and may include one or more solar cell modules or other electrical power generating devices. In some embodiments, one or more of the devices may be powered by a power source for fleet vehicle 110, using one or more power leads. Such power leads may also be used to support one or more communication techniques between elements of system 100.
In
Management system 240 may be implemented as a server with controllers, user interfaces, communications modules, and/or other elements similar to those described with respect to system 100 of
User device 130a in
In various embodiments, management system 240 may be configured to provide or suggest an optimal multimodal route to a user (e.g., initially and/or while traversing a particular planned route), and a user may select or make changes to such route through manipulation of user device 130a, as shown. For example, management system 240 may be configured to suggest a quickest route, a least expensive route, a most convenient route (to minimize modality changes or physical actions a user must take along the route), an inclement weather route (e.g., that keeps the user protected from inclement weather a maximum amount of time during route traversal), or some combination of those that is determined as best suited to the user, such as based on various user preferences. Such preferences may be based on prior use of system 200, prior user trips, a desired arrival time and/or departure time (e.g., based on user input or obtained through a user calendar or other data source), or specifically input or set by a user for the specific route, for example, or in general. In one example, origination point 260 may be extremely congested or otherwise hard to access by a ride-share fleet vehicle, which could prevent or significantly increase a wait time for the user and a total trip time to arrive at destination 272. In such circumstances, a planned multimodal route may include directing the user to walk and/or take a scooter/bike to an intermediate and less congested location to meet a reserved ride-share vehicle, which would allow the user to arrive at destination 272 quicker than if the ride-share vehicle was forced to meet the user at origination point 260. It will be appreciated that numerous different transportation-relevant conditions may exist or dynamically appear or disappear along a planned route that may make it beneficial to use different modes of transportation to arrive at destination 272 efficiently, including changes in traffic congestion and/or other transportation-relevant conditions that occur mid-route, such as an accident along the planned route. Under such circumstances, management system 240 may be configured to adjust a modality or portion of the planned route dynamically in order to avoid or otherwise compensate for the changed conditions while the route is being traversed.
In some embodiments, vehicle security device 144 may be implemented as a wheel lock configured to immobilizing rear wheel 322 of fleet vehicle 110b, such as by engaging pin 144b with spokes of rear wheel 322. In the embodiment shown in
Fleet vehicle 110c of
Fleet vehicle 110d of
In this regard, environment 400 includes a location 470, such as a city, county, or other area where a fleet of micro-mobility fleet vehicles may be utilized, which may include roads, lanes, and sidewalks specific to pedestrians, certain vehicles, and the like due to local laws, regulations and licensing, and/or safety issues. In order to map images and/or video of location 470 to train a neural network model in surface detection, identification, and/or classification, a training route 472 may be executed by a fleet vehicle 110. Training route 472 may correspond to a timed travel route through a sufficient amount or distance of location 470 to generate training data to first train the neural network model. This may be dependent on the complexity and differences between operational surfaces within location 470 (e.g., if the location has fairly uniform or consistent surfaces (smooth flat roads, for example), less training will be needed as compared with surfaces that show wide variation within the location (wide smooth flat roads to bumpy narrow streets), whether other neural network models for other locations may be utilized to also train the neural network model for location 470, and other factors.
A camera-sensor fusion module 422a may be used to capture training data 474 of the operational surfaces within location 470. Camera-sensor fusion module 422a may include at least a camera or other optical capture device that can image the operational surfaces of location 470. For example, camera-sensor fusion modules 422a-d may include camera 138 provided by user device 130 or camera 148 provided by fleet vehicle 110. The camera may therefore capture images and/or video, which may be processed to determine a neural network model for surface detection. Other capture devices may also be used to provide a more accurate representation of the surface, such as radar/lidar systems, infrared system (to detect heat signatures), and audio systems (to determine roughness of the road as the vehicle travels across). This camera or other capture device may therefore capture a field of view of an operational surface when camera-sensor fusion modules 422a-d capture image or video data.
Camera-sensor fusion module 422 a may also include a GPS module, an IMU module, an accelerometer, a gyroscope, and/or other sensors that may assist in detecting surfaces through various sensor inputs. For example, camera-sensor fusion modules 422 a-d may include orientation sensor 114, gyroscope/accelerometer 116, and/or other modules 126 when provided by fleet vehicle 110. However, camera-sensor fusion modules 422 a-d may also include components provided by user device 130 where user device 130 is used for operational surface detection, including other modules 136. In this regard, an accelerometer or gyroscope may be capable of detecting certain bumps, physical patterns, or other patterns, materials, or objects that constitute the surface. A sidewalk with a pattern of indented lines, for example, through placement of different sidewalk material blocks, may be detected through vibrations of fleet vehicle 110 and/or camera-sensor fusion module 422 a. Movement data may also be used to detect movement to and/or from a lane or sidewalk, and may be combined with other data (e.g., a GPS location) to determine an operational surface of location 470. Thus, training data 474 may include image data with additional sensor data captured of location 470 during training route 472. A sample of training data 474 is shown as image data 475. Image data 475 shows two different captured images during training route 472 that shows different operational surfaces of location 470. For example, a sidewalk 475 a is shown on the left, which captures an image of a sidewalk used for operation of fleet vehicle 110. In contrast, a lane 475 b (e.g., a road or bike lane, or “no sidewalk”) is shown on the right that corresponds to other operational surfaces of location 470.
Once training data 474 is generated, the data is transmitted to a neural network trainer 480 during training operations 476. Training operations 476 may stream, upload, or otherwise provide training data 474 to neural network trainer 480 for generation of the neural network module using a convolution neural network. A convolution neural network (CNN) takes, as input, one or more training images, applies filters (e.g., kernels) over the image to generate convolution layers, where the filters may correspond to weights or other functions applied over the input image and/or successive neural network layer. Between successive convolution layers or sets of convolution layers, a pooling layer is further provided that may assist in reducing the dimensions of the data in the convolution layers, for example, by reducing clusters of neurons at the convolution layer to single neurons at the pooling layer. After the last layer (dependent on number of convolution/pooling layers or other architecture of the particular CNN), a fully connected layer may be determined that allows for classification of input images or data into specific categories. For example, this may allow for a car, a boat, a bike, etc., for vehicle classification designation, or, with regard to operational surfaces of micro-mobility fleet vehicles, sidewalk or no sidewalk, vehicle lane or sidewalk, or other classifications associated with roads, streets, vehicle and/or pedestrian lanes, sidewalks, crosswalks, and the like.
Thus, using a CNN, a neural network model may be trained to classify operational surfaces as “sidewalk” or “no sidewalk.” Other classifications may also be generated depending on the requirements for location 470, such as “bike lane,” “road,” or “parking lot.” A fusion algorithm may also be utilized to combine camera detection of operational surfaces (e.g., using the trained CNN with camera 138 or camera 148) with one or more other operational surface detection processes, such as IMU detection and/or vibrational detection (e.g., using orientation sensor 114, gyroscope/accelerometer 116, other modules 126 and/or other modules 136) For example, an fusion algorithm for camera-sensor fusion modules 422a-d may correspond naive deterministic approach using the individual model detection probabilities pFused(sidewalk)=(pIMU(sidewalk)+pCV(sidewalk))/2 where IMU is the inertial measurement unit and CV is the camera vision (e.g., field of view). Another machine learning approach where camera image data and IMU data is captured simultaneously is to have both algorithms or models run in parallel and train a fusion model as such: pFused(sidewalk)=Model (pIMU, pCV, latitude, longitude, time of day, etc.). This fusion algorithm therefore provides different weights and combinations to the inertial measurement unit detection and the camera vision from camera-sensor fusion modules 422a-d so that multiple input types may be used for operational surface detection. Thus, the fusion model and algorithm may utilize signals from the camera (e.g., images or video within a field of view), signals from the accelerometer (e.g., vibrations or other movement), signals from a GPS locator (e.g., latitude, longitude, or other coordinate) and/or other signals from sensors. The fusion algorithm further provides logic to the controller of the corresponding fleet vehicle to switch between different detection models and states. For example, camera detection of operational surfaces may be utilized where accelerometer data is not being captured or does not indicate a particular surface. Conversely, camera-sensor fusion modules 422a-d may be switched to detect accelerometer data for operational surfaces where the camera may be obstructed by pedestrians, vehicles, or other objects. This allows for intelligent switching of detection modes, sensors, and models.
Once the neural network model is generated for location 470 using at least training data 474, as well a further use additional data such as other trained neural networks and/or additional non-image data (e.g., locations, vibrational/movement data, time of day, season, accelerations, etc.), the neural network model may be distributed to a distribution controller 490 through transmissions 482. Distribution controller 490 may correspond to various types of infrastructure and/or devices that may provide or access of the neural network model to the fleet vehicles of a location-based fleet 478 for location 470, where the fleet vehicles may then be operated using the neural network model for surface detection. For example, distribution controller 490 may correspond to charging stations or pods that charge the fleet vehicles, but may also correspond to user mobile devices that connect with fleet vehicles k-m for renting or hiring, as well as other devices that may load data to the fleet vehicles. In some embodiments, the fleet vehicles may include cellular, Wi-Fi, or other wireless connectivity where transmissions 482 and transmissions 292 492 correspond to single direct transmissions to the fleet vehicles.
Thereafter, location-based fleet 478 may be hired and/or rented by users within location 470 so that the fleet vehicles may be operated on surfaces of location 470. During operation of the fleet vehicles, operational data 494a-c may be captured by camera-sensor fusion modules 422b-d of the fleet vehicles (e.g., corresponding to camera-fusion module 422a), which may include at least camera or image data. This may further include other sensor data, such as movement, location, or vibrational data captured by camera-sensor fusion modules 422b-d. When capturing operational data 494a-c, the neural network module may be used to classify whether the fleet vehicles are being operated on allowable or restricted surfaces, such as those surfaces having a restricted mobility status or requirement (e.g., speed limit, ban on operation of certain vehicles, etc.). In this regard, fleet vehicle 110k may be operated on a sidewalk, which may be detected through operational data 494a and detected/classified using the neural network model. If fleet vehicle 110k is banned from operating on a sidewalk, or is restricted to 5 MPH, then the neural network model and a controller (e.g., controller 112) may be used to engage a resistor, brake, or other mechanism of fleet vehicle 110k to slow fleet vehicle 110k and/or bring fleet vehicle 110k to a stop. Fleet vehicle 110k may also output a notification (e.g., speed limit and/or current speed of fleet vehicle 110k, as well as a color-coded light or notice) and/or may provide operational data 494a to the user or another service provider to warn the user, fine the user, and/or take another adverse action against the user (e.g., banning the user's account, increasing rates to the user for using the a fleet vehicle within the system, or flagging for review). Thus, fleet vehicle 110k may be controlled based on the restricted mobility requirement for the current operation surface of fleet vehicle 110k.
Conversely, if fleet vehicle 110l is operated on a valid surface, such as “no sidewalk” or a “road” as classified based on operational data 494b and the neural network model, the controller of fleet vehicle 110l may not take an action to change operations or notify the user. The controller may output a positive notification associated with the valid surface, such as a green light or other indication that fleet vehicle 110l is being operated in conformity with the requirements of location 470. Additionally, image and/or other sensor data (e.g., operational data 494a-c) during operation of location-based fleet 478 may be provided back to neural network trainer 480 to revise weights, classifications, and/or layers of the neural network model for further training and updating of the neural network model, thereby increasing accuracy of classifications in image data. Similarly, fleet vehicle 110m may be operated on a sidewalk or other restricted mobility requirement surface but may be operated in conformity with such rules based on operational data 494c so that an action is not taken with fleet vehicle 110m.
In block 502 of process 500, training data is received for a neural network model for surface detection. For example, controller 112 and/or user device 130 may be configured to capture, record, or otherwise determine at least camera and image data of operational surfaces for fleet vehicles during a training route through a location. In some embodiments, controller 112 and/or user device 130 may be configured to capture other sensor data, including movement, acceleration, and/or vibrational data through an accelerometer and/or gyroscope, inertial motion data through an IMU detector, location data through a GPS module, acceleration and/or other data. The training route may correspond to a travel route of fleet vehicle 110 through the location that requires mapping and detection of operational surfaces, where the training data may be generated using one or more of orientation sensor 114, gyroscope/accelerometer 116, GNSS 118, camera 148, and/or other modules 126 when captured by controller 112. Where user device 130 is utilized during operation of fleet vehicle 110 on the training route, other modules 136 and/or camera 138 may be used. Thereafter, controller 112 and/or user device 130 provides the training data to a neural network trainer for a model used for surface detection, such as neural network trainer 480.
In block 504, the neural network model is trained using the training data. For example, neural network trainer 480 may utilize a CNN or other neural network to train a model utilized by imaging devices and processors to classify surfaces and provide surface detection of a type or class of operational surface on which fleet vehicles 110a-m are operated. Where the training data corresponds to video data, still image or frame samples may be taken at specific time intervals or the frames of the video data may be utilized for image data processing. Additionally, for surface classification, a balanced data set may be required having certain percentages of images and/or video of the different surfaces for classification. The data may be prelabeled for certain surface classes for data processing and classification. Additionally, environmental and/or conditional information may be used, or the training data may be captured in certain conditions so as to provide easier labeling and classification of the data.
Neural network trainer 480 may the convolve the initial image data input to determine one or more convolution layers, as required by the specific neural network architecture. This may involve running filters, weights, or other functions over areas of the image pixels to generate further layers, where each layer includes a feature map corresponds to neurons of the neural network model determined from the previous layer. Further, a fully connected layer may be generated to perform classification from input images. In some embodiments, the neural network model may be trained using one or more previous neural network models for other locations, where one or more layers may be removed and retrained using input training data from the current location. Thus, certain layers are retrained while keeping certain layers from the other locations for faster model generation and training. For example, the first and/or last layer(s) of a neural network model trained for surface detection at a different location may be removed from that trained model and retrained using new image data from the new location.
In block 506, the neural network model is distributed to the micro-mobility fleet vehicles. Neural network trainer 480 may utilize distribution controller 490 to distribute the neural network model to fleet vehicles 110a-m, such as through charging stations or pods that directly connect to fleet vehicles 110a-m and provide charging, maintenance, updates, and/or the neural network model to fleet vehicles 110a-m. In some embodiments, distribution controller 490 may also interact with user device 130, such as a mobile phone, to distribute the neural network model to one or more of fleet vehicles 110a-m. This may occur when fleet vehicles 110a-m are rented or hired by user device 130, within a proximity to user device 130, or otherwise interact with user device 130. Neural network trainer 480 may also or instead use WAN 250 to directly transmit the neural network model to fleet vehicles (e.g., over a cellular network where fleet vehicles 110a-m include cellular communication modules with wireless communications module 120).
In block 508, operation of one of the micro-mobility fleet vehicles is detected. For example, controller 112 and/or user device 130 may be configured to detect a renting or hiring of fleet vehicle 110, which may be linked to a user, an account of the user, and/or device of the user. In this regard, user device 130 may be used to rent or hire fleet vehicle 110 by interacting with fleet vehicle 110, which may use an account or payment instrument associated with user device 130. In some embodiments, a more conventional payment instrument may also be used to hire or rent fleet vehicle 110, such as input of a credit or debit card, which allows linking to a certain user and/or account. The operation of fleet vehicle 110 may also include movement of fleet vehicle 110 over or on a surface, such as driving a micro-mobility fleet vehicle on a street, road, lane, or sidewalk.
In block 510, operational data including, at least, image data of an operational surface is captured. This operational data includes images or video of the operational surface on which fleet vehicle 110 is operated and may be captured using controller 112 and/or user device 130. In some embodiments, the operational data may further include additional sensor data captured from one or more components of fleet vehicle 110 and/or user device 130. This additional sensor data may be associated with the data that the neural network model is trained to detect for surface detection and classification, including movement, location, vibrational, and/or inertial data. The image data for the operational data may include images, such as frames or image samples from video data, or periodically captured images. Using the operational data, the neural network model is applied to classify the current operational surface of fleet vehicle 110 using one of controller 112 or user device 130.
For example, image data may be processed by the neural network model to classify the surface detected in the image data, such as images captured of the surface while fleet vehicle 110 is in operation, moving, or being parked. In this regard, different operational surface may have different rules, such as a ban on powered scooters or bikes on sidewalks, a speed limit, a required parking area or surface (e.g., no sidewalks) for rentable fleet vehicles, and the like. Thus, the neural network model may perform classification on the operational surface to determine whether a corrective action to control fleet vehicle 110 is required. Classification may be done by determining an output class of the particular surface within the captured operational data. Based on the classification of the current operational surface of fleet vehicle 110, process 500 may proceed to either block 517 or block 514.
In block 517, the use is allowed, and operation is monitored. This may occur where the neural network model classifies the operational surface as one without restricted mobility statuses or requirements and the current operation of fleet vehicle 110 complies with any other restricted mobility requirements. For example, where fleet vehicle 110 is authorized to drive on areas not classified as sidewalks (e.g., roads, specific lanes, or other street routes), then the current operation of fleet vehicle 110 may be allowed and not impeded. Thus, a “no sidewalk” classification may allow use of fleet vehicle 110 on the surface. Moreover, continued operation of fleet vehicle 110 is monitored, for example, by capturing further image data, in order to detect whether fleet vehicle 110 moves to a surface having one or more restricted mobility requirement.
However, if the operational surface is instead classified as a sidewalk or one having restricted mobility statuses or requirements for the micro-mobility fleet vehicle, then in block 514, operation of the micro-mobility fleet vehicle is controlled based on the mobility requirement. For example, controller 112 and/or user device 130 may be configured to control fleet vehicle 110 according to the classified operational surface and one or more restricted mobility requirements for the operational surface. In some embodiments, controller 112 and/or user device 130 may be configured to control fleet vehicle 110 according to the restricted mobility requirement and/to or communicate the user notice to a user of fleet vehicle 110 via user interface 113 and/or 134. For example, the fleet vehicle directive may include a motor halt directive and/or an audible alarm directive, and controller 112 and/or user device 130 may be configured to control a propulsion system to impede motion of wheels of fleet vehicle 110, flash a light, or sound an audible alarm integrated with fleet vehicle 110.
More generally, the restricted mobility requirement may include any directive causing fleet vehicle 110 to enable or disable or otherwise operate an element of system 100 in
For example, during operation of fleet vehicle 110 on a training route, video image 675 may be captured using camera-sensor fusion module 622. Additional data may also be captured using camera-sensor fusion module 622, such as movement data, geo-location (e.g., GPS data), accelerometer data and/or vibrational data captured using an accelerometer or gyroscope, and/or internal measurements. This data may be utilized to train a neural network 680. For example, neural network 680 illustrates an example neural network that may be used to implement surface detection during operation of fleet vehicle 110. As shown, the neural network includes three layers—an input layer, a hidden layer, and an output layer having one or more nodes, however, different layers may also be utilized. For example, although only one hidden layer is shown, neural network 680 may include as many hidden layers as necessary or appropriate.
These nodes are connected to nodes in an adjacent layer. In this example, neural network 680 receives a set of input values and produces one or more output values, for example, in the case of sidewalk detection, “sidewalk” or “no sidewalk.” However, different, more, or less outputs may also be provided based on the training. When neural network 680 is used to, each node in the input layer may correspond to a distinct attribute or input data type derived from the training data collected by camera-sensor fusion module 622. In a non-limiting example, the input nodes may include image data, accelerometer data, and/or inertial measurements.
In some embodiments, each of the nodes in the hidden layer generates a representation, which may include a mathematical computation (or algorithm) that produces a value based on the input values of the input nodes. The mathematical computation may include assigning different weights to each of the data values received from the input nodes. The hidden layer nodes may include different algorithms and/or different weights assigned to the input data and may therefore produce a different value based on the input values. The values generated by the hidden layer nodes may be used by the output layer node to produce an output value for neural network 680. When neural network 680 is used to implement operational surface detection, the output values produced by neural network 680 may indicate a likelihood that an operational surface on which fleet vehicle 110 is operated corresponds to a sidewalk, no sidewalk, a road, a street, a specific lane (e.g., a bike lane, scooter lane, or the like), or other type of surface, such as a parking lot.
The neural network 680 may be trained by using training data, including video image 675. By providing training data to neural network 680, the nodes in the hidden layer may be trained (adjusted) such that an optimal output (e.g., a classification) is produced in the output layer based on the training data. By continuously providing different sets of training data and penalizing neural network 680 when the output of neural network 680 is incorrect (e.g., when the correct operational surface is not determined or output by neural network 680), neural network 680 (and specifically, the representations of the nodes in the hidden layer) may be trained (adjusted) to improve its performance in data classification. Adjusting the neural network 680 may include adjusting the weights associated with each node in the hidden layer.
CNN 700 may be based on a neural network architecture having four convolution layers (e.g., Conv 1-4). These four layers may be extended, or less layers may be used in different types of neural network models and training. As such, CNN 700 may have more or less layers as necessary for certain classifications and accuracy. In CNN 700, feature learning 776 includes the convolution layers that are determined for feature learning, and further include a max pooling layer between each convolution layer. A convolution layer of feature learning 776 is determined from input data 775 (or other convolution and/or pooling layer) by applying a filter or kernel corresponding to some weights, thereby allowing nearby input pixels or neurons to be connected to nearby output neurons that reduce the size and/or dimensionality of input data 775. This allows for extraction of the high-level features from input data 775. In some embodiments, additional operations may be performed, for example, based on the size and/or number of pixels in the input images and/or number of strides of pixel shifts when applying the filter over the input layer or the next convolution/pooling layer. Strides may allow for reduction of the output layer when applying a filter or kernel over the input image or layer. Image padding allows for addition of further pixel values (e.g., 0) to an image or instead to drop off edge pixels, which accounts for cases where the image size does not match the filter size. For example, it may be desirable to ensure that each pixel, including edge pixels, are adequately weighted by each filter. A Rectified Linear Unit (ReLU) operation may also be applied to prevent negative values in the convolution layer or otherwise introduce non-linearity.
A pooling layer (e.g., one of Maxpool 1-4, although more or less Maxpools may be utilized) may correspond to a Max pooling function where a cluster of neurons (e.g., values from the convolution layer in the matrix) is reduced to the highest value for the cluster. Thus, a filter is applied over the layer to reduce the dimensionality of the feature map of the convolution layer (e.g., Conv 1 or another layer) in the pooling layer (e.g., Maxpool 1). Sum pooling or Average pooling may instead be used. These processes for determining convolution layers and pooling layers provide the feature learning for the CNN based on the input image(s) and/or other data. Once the final pooling layer is generated within feature learning 776, a fully connected layer for classifications 778 of objects or features by the CNN is determined. These objects or features may correspond to the operational surface for a micro-mobility fleet vehicle. A flattening operation may convert the feature map matrix of the last layer into a single column or vector that is then input to the neural network for model training with backpropagation applied to the training A Softmax function may also be applied to the fully connected layer to allow for probabilistic classifications 778. This allows for generation of a neural network model that can classify objects and/or images by identifying features within the input images, and there provide output classification 778.
For example, training route 872 may correspond to a ride of a micro-mobility fleet vehicle through location 870, such as a 15-minute ride of a scooter or bike having the camera-sensor fusion module. Video or images of the training data may be captured of operational surfaces (e.g., sidewalks, streets, and the like) of location 870 using a camera of camera-sensor fusion module. Video may be converted to one or more images, such as by extracting video frames every 0.5 seconds or at another interface. Moreover, in order to receive balanced data, a balanced data set of the operational surfaces may be captured during training route 872 (e.g., 50% sidewalk and 50% no sidewalk images). The data may also be prelabeled so that a particular video corresponds to a particular output class or classification (e.g., the video corresponds to “sidewalk” images used to train the neural network model). In order to provide the training, the conditions during capture of the video may be important for training route 872. For example, the conditions may require marking bike lanes or other surfaces in a particular color, having lighting above a certain brightness threshold, and/or having appropriate weather (e.g., non-rainy, non-snowy, freezing temperatures, and any other measurable weather condition).
For example, in classifications 900a, an output classification 975a shows the result of a neural network model as detecting a sidewalk within an input image and other input data. Classifications 900a include different output classification 975a-c based on input image data and a trained neural network for sidewalk detection. In output classification 975a, a sidewalk is detected by the camera-sensor fusion module using the trained neural network. Similarly, in output classification 975b, the trained neural network may output a no sidewalk classification when a sidewalk is not detected in the input image (and/or other input data, such as vibrational data, inertial measurements, and the like) and/or a different operational surface (e.g., a street) is detected. This trained neural network may be trained based on a training route through a location, such as training route 472 through location 470 or training route 872 through location 870. However, in output classification 975c, a sidewalk is detected when the input image (and/or other data) does not include a sidewalk, which indicates error in classification and output surface detection by the neural network model. Thus, retraining, rebalancing, and/or reweighting of the nodes within the neural network may be required for proper output classification by the neural network.
In classification results 980a 900a of classification accuracies 900b, an accuracy of a neural network model trained for operational surface detection over a number of training epochs. These training epochs correspond to a number of times all of the training vectors from the input data are processed and then used to update the weights as applied to the nodes of the hidden layers. This may include passing the training data (e.g., data detected by the camera-sensor fusion module) through the neural network training algorithm before weights are updated, and then updating the weights based on the results so that further epochs are more refined based on the classifications. As a number of epochs increases the neural network model is shown as becoming more accurate in predicting and classifying input data. In classification results 900b, loss is shown as decreasing based on the number of training epochs. Thus, as additional iterations of training occur, the loss value decreases and therefore the model behaves in a better manner as detecting operational surfaces.
Embodiments of the present disclosure can thus provide a camera-sensor fusion module that uses a neural network model to assist in detection of operational surfaces on which micro-mobility fleet vehicle is operated. Moreover, embodiments may also provide micro-mobility fleet vehicle controllers to control, limit, or otherwise enforce restrictions on operation of the micro-mobility fleet vehicles based on the operational surface, for example, to prevent unlawful or dangerous fleet vehicle usage by users and maintain service provider licensing, as described herein.
Where applicable, various embodiments provided by the present disclosure can be implemented using hardware, software, or combinations of hardware and software. Also, where applicable, the various hardware components and/or software components set forth herein can be combined into composite components comprising software, hardware, and/or both without departing from the spirit of the present disclosure. Where applicable, the various hardware components and/or software components set forth herein can be separated into sub-components comprising software, hardware, or both without departing from the spirit of the present disclosure. In addition, where applicable, it is contemplated that software components can be implemented as hardware components, and vice-versa.
Software in accordance with the present disclosure, such as non-transitory instructions, program code, and/or data, can be stored on one or more non-transitory machine-readable mediums. It is also contemplated that software identified herein can be implemented using one or more general purpose or specific purpose computers and/or computer systems, networked and/or otherwise. Where applicable, the ordering of various steps described herein can be changed, combined into composite steps, and/or separated into sub-steps to provide features described herein.
Embodiments described above illustrate but do not limit the invention. It should also be understood that numerous modifications and variations are possible in accordance with the principles of the invention. Accordingly, the scope of the invention is defined only by the following claims.
Claims
1. A fleet vehicle control system for a fleet vehicle of a plurality of fleet vehicles, the fleet vehicle control system comprising:
- a camera-sensor fusion package configured to detect sensor data of an operational surface on which the fleet vehicle operates, wherein the camera-sensor fusion package includes at least (1) a first sensor of a first type and (2) a second sensor of a second type that is different from the first type;
- one or more non-transitory computer-readable storage media embodying instructions; and
- one or more processors coupled to the non-transitory computer-readable storage media and operable to execute the instructions to cause the fleet vehicle control system to perform operations comprising: receiving, using the camera-sensor fusion package of the fleet vehicle, (1) first data associated with the operational surface, wherein the first data is captured by the first sensor and comprises at least image data of the operational surface in a field of view of the first sensor, and (2) second data associated with the operational surface, wherein the second data is captured by the second sensor which is different from the first sensor; determining, by the fleet vehicle using a fusion algorithm based on a neural network model, a surface classification of the operational surface, wherein the fusion algorithm switches between a first detection model configured to perform surface classification using the first data and a second detection model configured to perform surface classification using the second data, wherein the switching is determined based on one or more criteria associated with the first and second data, wherein the fusion algorithm is trained for surface classifications of operational surfaces associated with the plurality of fleet vehicles; determining an operational parameter comprising a restricted movement requirement for the fleet vehicle based, at least in part, on the surface classification; and causing the fleet vehicle to come to a stop based, at least in part, on the restricted movement requirement determined based on the surface classification.
2. The fleet vehicle control system of claim 1, wherein prior to the receiving, the operations further comprise:
- gaining access to the fusion algorithm with a controller associated with the plurality of fleet vehicles, the neural network model of the fusion algorithm trained using, at least in part, the second data captured by at least one of the plurality of fleet vehicles prior to the first data.
3. The fleet vehicle control system of claim 2, wherein the neural network model comprises a convolution neural network (CNN), and wherein the neural network model is further trained using at least one other pre-trained neural network model for the surface classification of the operational surfaces in at least one other location different from a location of the plurality of fleet vehicles.
4. The fleet vehicle control system of claim 2, wherein the operations further comprise:
- transmitting the first data to the controller for an update to the neural network model; and
- receiving the update to the neural network model.
5. The fleet vehicle control system of claim 1, wherein the first detection model is based on the image data captured by the first sensor of the camera-sensor fusion package, wherein the first sensor comprises a camera, and wherein the second detection model comprises an inertial measurement model for the surface classifications in inertial data detected by the second sensor comprising an inertial measurement unit (IMU) detector of the camera-sensor fusion package.
6. The fleet vehicle control system of claim 1, wherein the operations further comprise:
- providing at least one of an audio notification or a visual notification of the causing the fleet vehicle to come to the stop through an interface of the fleet vehicle or a mobile device associated with the fleet vehicle.
7. The fleet vehicle control system of claim 6, wherein the camera-sensor fusion package further comprises an accelerometer, a gyroscope, or a magnetometer for the fleet vehicle, and wherein the second data comprises accelerometer data or vibrational data associated with the operational surface.
8. The fleet vehicle control system of claim 1, wherein the operations further comprise:
- transmitting a notification to a mobile device associated with the fleet vehicle based on a controlling of an operation of the fleet vehicle, wherein the notification is associated with the operational surface of the fleet vehicle.
9. The fleet vehicle control system of claim 1, wherein the camera-sensor fusion package further comprises a GPS sensor, wherein the second data further comprises a geo-location of the fleet vehicle, and wherein the neural network model is further trained for regulatory boundaries within a location associated with the plurality of fleet vehicles.
10. A method for controlling operations for a plurality of fleet vehicles, the method comprising:
- receiving, by a fleet vehicle of the plurality of fleet vehicles using camera-sensor fusion module, first image data of an operational surface in a field of view of the camera-sensor fusion module and inertial data of the fleet vehicle;
- determining, by the fleet vehicle using a fusion algorithm based on a neural network model, a surface classification of the operational surface, wherein the fusion algorithm switches between a first detection model configured to perform surface classification using the first image data and a second detection model configured to perform surface classification using the inertial data, wherein the switching is determined based on one or more criteria associated with the first image data and the inertial data;
- determining an operational parameter comprising a restricted movement requirement for the fleet vehicle based, at least in part, on the surface classification; and
- causing the fleet vehicle to come to a stop based, at least in part, on the restricted movement requirement determined based on the surface classification.
11. The method of claim 10, wherein prior to the receiving, the method further comprises:
- gaining access to the neural network model with a controller associated with the plurality of fleet vehicles, the neural network model trained using, at least in part, second image data captured by at least one of the plurality of fleet vehicles during a previous use on a training route through a location.
12. The method of claim 11, wherein the neural network model comprises a convolution neural network (CNN) trained using a plurality of input images from the second image data for input layers of the CNN.
13. The method of claim 11, wherein the surface classification comprises one of a street, a vehicle lane, or a sidewalk based on training images in the second image data and the first image data, wherein the second image data is generated and classified from a first-time travel on the training route through the location, and wherein the neural network model is further trained with additional neural network models.
14. The method of claim 11, further comprising:
- receiving an update to the fusion algorithm based on additional training data from the plurality of fleet vehicles; and
- updating, by the fleet vehicle, the fusion algorithm based on the update.
15. The method of claim 10, wherein the surface classification comprises a sidewalk and the operational parameter comprises a speed limit for the sidewalk, and wherein causing the fleet vehicle to come to the stop comprises:
- engaging a resistor of an electric motor for the fleet vehicle; and
- slowing the fleet vehicle to one of a lower speed than a present travel speed of the fleet vehicle until the stop using the engaging the resistor.
16. The method of claim 10, wherein the surface classification comprises a sidewalk and the operational parameter comprises a speed limit for the sidewalk, and wherein the operations further comprise:
- presenting an alert associated with the speed limit through an output device of the fleet vehicle; and
- monitoring a travel speed of the fleet vehicle for compliance with the speed limit prior to causing the fleet vehicle to come to the stop.
17. The method of claim 16, further comprising:
- determining that the travel speed exceeds the speed limit for a period of time based on the monitoring;
- determining a fee on an account of a user operating the fleet vehicle during the monitoring; and
- transmitting the alert to the user of the fee.
18. The method of claim 10, wherein the neural network model is specific to a geo-fenced area corresponding to micro-mobility vehicles that comprise the plurality of fleet vehicles, and wherein the plurality of fleet vehicles each comprises camera-sensor fusion modules having a camera, an accelerometer, an IMU detector, and a GPS detector.
19. The method of claim 18, further comprising:
- detecting, using the camera-sensor fusion modules of the plurality of fleet vehicles, additional operational data comprising at least one of movement data, vibrational data, or location data of the fleet vehicle based on the operational surface of the fleet vehicle,
- wherein the determining the operational parameter is further based on the additional operation data, and wherein the neural network model is further trained on at least one of a weather status, a time of day, a lighting status, or a crowd congestion model.
9246432 | January 26, 2016 | Keen |
10245937 | April 2, 2019 | Gillett |
10810445 | October 20, 2020 | Kangaspunta |
20190012551 | January 10, 2019 | Fung |
20190064360 | February 28, 2019 | Pearlman |
20190065945 | February 28, 2019 | Luo |
20190250619 | August 15, 2019 | Gillett |
20190303759 | October 3, 2019 | Farabet |
20190383627 | December 19, 2019 | Nangeroni |
20200034638 | January 30, 2020 | Brewington |
20200124430 | April 23, 2020 | Bradlow |
20210182704 | June 17, 2021 | Mamo |
2007037294 | February 2007 | JP |
Type: Grant
Filed: Dec 23, 2019
Date of Patent: Aug 27, 2024
Patent Publication Number: 20210191424
Assignee: Lyft, Inc. (San Francisco, CA)
Inventors: Garrett Korda Drayna (San Carlos, CA), Jens Paul Windau (San Francisco, CA)
Primary Examiner: Anne Marie Antonucci
Assistant Examiner: Kyle S Park
Application Number: 16/726,156