[go: up one dir, main page]

US20230356734A1 - Multi-sensor sequential calibration system - Google Patents

Multi-sensor sequential calibration system Download PDF

Info

Publication number
US20230356734A1
US20230356734A1 US18/349,783 US202318349783A US2023356734A1 US 20230356734 A1 US20230356734 A1 US 20230356734A1 US 202318349783 A US202318349783 A US 202318349783A US 2023356734 A1 US2023356734 A1 US 2023356734A1
Authority
US
United States
Prior art keywords
sensor
road
vehicle
camera
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US18/349,783
Inventor
Shane David GRIFFITH
Chenghao GONG
Chenzhe Qian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tusimple Inc
Original Assignee
Tusimple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tusimple Inc filed Critical Tusimple Inc
Priority to US18/349,783 priority Critical patent/US20230356734A1/en
Assigned to TUSIMPLE, INC. reassignment TUSIMPLE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GONG, CHENGHAO, GRIFFITH, SHANE DAVID, QIAN, Chenzhe
Publication of US20230356734A1 publication Critical patent/US20230356734A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/23Testing, monitoring, correcting or calibrating of receiver elements
    • G01S19/235Calibration of receiver components
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • G06V10/422Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation for representing the structure of the pattern or shape of an object therefor
    • G06V10/426Graphical representations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • B60W2420/42
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2552/00Input parameters relating to infrastructure
    • B60W2552/53Road markings, e.g. lane marker or crosswalk
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30256Lane; Road marking

Definitions

  • This document describes techniques to perform multi-sensor calibration for sensors located in a vehicle with pre-defined and/or endurable markers.
  • a vehicle may include cameras attached to the vehicle for several purposes. For example, cameras may be attached to a roof of the vehicle for security purposes, for driving aid, or for facilitating autonomous driving. Cameras mounted on a vehicle can obtain images of one or more areas surrounding the vehicle. These images can be processed to obtain information about the road or about the objects surrounding the vehicle. For example, images obtained by a camera can be analyzed to determine distances of objects surrounding the autonomous vehicle so that the autonomous vehicle can be safely maneuvered around the objects.
  • This patent document describes example multi-sensor sequential calibration techniques to calibrate multiple sensors located on or in a vehicle.
  • An example method of calibrating one or more sensors for an autonomous vehicle comprises receiving, from a first camera located on a vehicle, a first image comprising at least a portion of a road comprising lane markers, where the first image is obtained by the camera at a first time; obtaining a calculated value of a position of an inertial measurement (IM) device at the first time; obtaining an optimized first extrinsic matrix of the first camera by adjusting a function of a first actual pixel location of a location of a lane marker in the first image and an expected pixel location of the location of the lane marker, where the expected pixel location is based at least on a previously known first extrinsic matrix of the first camera and the position of the IM device; and performing autonomous operation of the vehicle using the optimized first extrinsic matrix of the first camera when the vehicle is operated on another road or at another time.
  • IM inertial measurement
  • the above-described methods are embodied in the form of processor-executable code and stored in a non-transitory computer-readable storage medium.
  • the non-transitory computer readable storage includes code that when executed by a processor, causes the processor to implement the methods described in the embodiments.
  • a device that is configured or operable to perform the above-described methods is disclosed.
  • FIG. 1 shows a top view of a tractor unit of an autonomous semi-trailer truck comprising sensors for performing the example multi-sensor sequential calibration process.
  • FIG. 2 shows an example scenario where a vehicle driven on a road performs the multi-sensor sequential calibration process.
  • FIG. 3 shows an example flow diagram of performing multi-sensor sequential calibration.
  • FIG. 4 shows an example block diagram of a computer that may be located in a vehicle to perform an example multi-sensor sequential calibration process.
  • FIG. 5 shows an example factor graph representation for the multi-sensor sequential calibration process described herein.
  • FIG. 6 shows an example of two images obtained by two cameras that are setup for Epipolar geometry.
  • An autonomous vehicle may include sensors such as cameras, Radars, and Light Detection and Ranging (LiDAR) sensors mounted on the autonomous vehicle to obtain sensor data items (e.g., an image from camera, point cloud map from LiDAR sensor, or radar points from Radar) of one or more areas surrounding the autonomous vehicle.
  • sensor data items e.g., an image from camera, point cloud map from LiDAR sensor, or radar points from Radar
  • sensor data items can be analyzed by a computer which may be on-board the autonomous vehicle to obtain information about the road (e.g., location of lane markers on the road) or about the objects surrounding the autonomous vehicle (e.g., distance to objects located around the autonomous vehicle).
  • the sensors on the autonomous vehicle need to be calibrated so that a computer on-board the autonomous vehicle can precisely or accurately detect, for example, locations of the lane markers on the road or a location of an object in front of the autonomous vehicle.
  • FIG. 1 shows a top view of a tractor unit of an autonomous semi-trailer truck comprising sensors for performing the example multi-sensor sequential calibration process (also known as multi-sensor sequential extrinsic calibration technique).
  • sensors e.g., cameras 102 a - 102 g
  • cameras 102 a , 102 c , 102 d may be oriented in a direction facing the front of the vehicle 104
  • camera 102 f may be oriented in a direction facing the rear left of the vehicle 104
  • camera 102 g may be oriented in a direction facing the rear right of the vehicle 104 .
  • the vehicle 104 may also include LiDAR sensors 110 a , 110 b located in a front region of the vehicle 104 .
  • the vehicle 104 also includes an inertial measurement unit (IMU) sensor 106 in the vehicle 104 . Since the IMU sensor 106 may perform best when the vehicle 104 is moving, the vehicle 104 moves through at least some part of the example multi-sensor sequential calibration process to calibrate the sensors onboard the vehicle 104 as further described in this patent document.
  • the IMU sensor 106 may provide measurements (e.g., speed, direction, acceleration, angular velocity, etc.,) at a pre-determined frequency (e.g., 40 Hz or 50 Hz).
  • the vehicle 104 includes a global positioning system (GPS) device 108 that provides information about a location of the vehicle 104 . Since the GPS device 108 and the IMU sensor 106 are installed or located in the vehicle 104 , the location of the IMU sensor 106 relative to the GPS device 108 is previously known. And, since the GPS device 108 and the multiple sensors (e.g., cameras 102 a - 102 g ) are installed or located in the vehicle 104 , the location of each of the multiple sensors relative to the GPS device 108 is also previously and approximately known. Thus, a location information provided by the GPS device 108 can be used to obtain the approximate locations of the IMU sensor 106 and/or the multiple sensors on the vehicle 104 .
  • GPS global positioning system
  • the approximate locations of the IMU sensor 106 and/or the multiple sensors are provided as initial values that can be fine-tuned with the example multi-sensor sequential calibration process described herein.
  • the GPS device 108 may provide measurements (e.g., location) at a pre-determined frequency (e.g., 5 Hz or 10 Hz).
  • the IMU sensor 106 may provide measurements at a frequency that is higher than that of the measurements provided by the GPS device 108 .
  • the example multi-sensor sequential calibration process described herein can calibrate multiple sensors at least based on: (1) an association determined between sequential sensor data of a road obtained from the multiple sensors (e.g., at least two cameras 102 a , 102 d located on the vehicle 104 ) and previously stored map information of the road; (2) IMU sensor's 106 measurements; and (3) GPS device's 108 measurements.
  • the use of the IMU sensor 106 can make the example multi-sensor sequential calibration process an asynchronous process at least because the sequential sensor data (e.g., images) obtained by the multiple sensors (e.g., cameras 102 a - 102 g ) may not be synchronized with the measurement data provided by the IMU sensor 106 .
  • FIG. 2 shows an example scenario where a vehicle driven on a road performs the multi-sensor sequential calibration process.
  • the vehicle 202 includes multiple sensors such as a plurality of cameras and/or a plurality of LiDAR sensors.
  • a first camera 204 and a second camera 206 is shown for ease of description.
  • multiple additional camera and/or multiple LiDAR sensors can be located on or positioned on the vehicle 202 (e.g., as shown in FIG. 1 on vehicle 104 ) to obtain sensor data items of a calibration road segment 212 towards which the vehicle 202 can be driven.
  • the calibration road segment 212 may be located next to or behind the vehicle 202 .
  • the example multi-sensor sequential calibration process described herein for the first camera 204 and second camera 206 can be applied to other sensors (e.g., at least two cameras, at least two LiDAR sensors, at least two Radars, etc.,) that are located on the vehicle 202 and can obtain sensor data items of the calibration road segment 212 .
  • the vehicle 202 can be an autonomous vehicle.
  • the road 208 includes a calibration road segment 212 that has lane markers that can be affixed on either side of the road 208 .
  • the lane markers include a first set of lane blocks 210 a located on a first side of the road 208 , and a second set of lane blocks 210 b located on a second side of the road 208 opposite to the first side.
  • one lane block can be separated from another lane block by a pre-determined distance to form a set of broken lines on the road.
  • a lane block 210 a , 210 b can have a rectangular shape and can have a white color. As shown in FIG.
  • the first and second set of lane blocks 210 a , 210 b can be parallel to each other and can extend for a length of 100 meters, 150 meters, or 200 meters to enable a computer located in the vehicle 202 to perform the multi-sensor calibration techniques described in some embodiments.
  • the road 208 can be straight (as shown in FIG. 2 ) and can have an even top surface so that the sensors located on the vehicle 202 can easily obtain sensor data items of the calibration road segment 212 .
  • the road 208 with a calibration road segment 212 can be a built as a private road outside or in a facility where the vehicle 202 is parked so that when the vehicle 202 is turned on to drive to a destination, the multiple sensors on the vehicle 202 can be calibrated on the private road.
  • the road 208 can be a public road where the calibration road segment 212 may exclude an area where broken lines are absent.
  • a computer which may be located in the vehicle 202 , may store a map database (shown as 415 in FIG. 4 ).
  • the map database includes the three-dimensional (3D) world coordinates of each corner 212 a - 212 d of each lane block.
  • the computer may include a calibration module (shown as 420 in FIG. 4 ) that performs operations related to the example multi-sensor sequential calibration process by using measured data from the IMU as a constraint between consecutive camera poses as the vehicle is driven between a pre-defined starting location on the road and a pre-defined ending location on the road.
  • the calibration module can determine that the vehicle is at the pre-defined starting and ending locations by comparing the location of the vehicle (obtained by the GPS device) with the two pre-determined locations of the starting and ending locations.
  • the calibration module can provide an optimized estimate of a camera-IMU sensor transform, T c , which describes extrinsic parameters between the camera and the IMU sensor by using Equation (1) and measurements obtained by the GPS device.
  • the calibration module obtains a location of the vehicle at time t from the GPS device located on the vehicle.
  • the calibration module can determine a position (also known as pose) of the multiple sensors (e.g., cameras) located on the vehicle and the IMU sensor located on the vehicle based on the location of the vehicle provided by the GPS device and previously known distances from the GPS device to the IMU sensor and the multiple sensors.
  • the calibration module can obtain both the pose of the camera, T t c and the pose of the IMU sensor, X t at time t.
  • the camera-IMU sensor transform, T c can be determined by the calibration module by using Equation (1):
  • the LaTeX symbols ⁇ and ⁇ denote the composition and the inverse composition operation for a Lie Group.
  • the Lie group is SE3.
  • the compose operator for the SE3 Lie group is the composition of 6D transforms.
  • a 6D transform includes (roll, pitch, yaw) information of the sensor (e.g., IMU sensor or camera), e.g., R that belongs to a three-dimensional coordinate space 3 and (x, y, z) position information of the sensor (e.g., IMU sensor or camera), e.g., T in a three-dimensional coordinate space 3 .
  • Equation (1) only describes IMU sensor pose X t and camera pose T t c . Although the IMU sensor pose, X t , and the camera pose, T t c , change over time, the camera-IMU sensor transform, T c , between them can remain consistent.
  • the camera-IMU sensor transform, T c belongs to a SE(3) matrix, where SE(3) is a Lie group.
  • FIG. 5 shows an example factor graph representation for the multi-sensor sequential calibration process described herein.
  • the optimization technique in FIG. 5 is performed by the calibration module.
  • the factor graph is a model used to represent the optimization problem.
  • the calibration module applies optimization to the factor graph to solve the value of the variables shown in circles in FIG. 5 in order to minimize all the loss that is defined by the factors shown in squares or triangles.
  • the columns shown in FIG. 5 (shown with subscripts 0 to n ⁇ 1 and n in the circles) indicate the variables that are solved by the factor graph for times 0 to n.
  • the section headings in this patent document are meant to facilitate an ease of understanding. Accordingly, one or more features from one section can be combined with one or more features of another section.
  • the variable X t indicates IMU sensor pose at time t, where X t belongs to a SE(3) matrix, where SE(3) is a Lie group.
  • the calibration module can determine the IMU sensor pose X t based on location information provided by the GPS at time t and based on a previously known location of the IMU relative to the GPS device.
  • the variable V t indicates the velocity of the vehicle at time t, where V t belongs to a three-dimensional coordinate space 3 .
  • the variable B t indicates an IMU accelerometer (or accel)+gyro bias at time t, where B t belongs to a six-dimensional coordinate space 6 .
  • the variable ⁇ t indicates an angular velocity of the vehicle at time t, where ⁇ t belongs to a three-dimensional coordinate space 3 .
  • the variable T c is camera-IMU sensor transform or camera extrinsic parameters of a camera, where T c belongs to a SE(3) matrix.
  • the variable K c is an intrinsic matrix of the camera, where the intrinsic matrix includes parameters that describe optical characteristics (e.g., focal length, distortion, optical center, etc.,) of the camera.
  • the variables T c and K c can be separately determined for each of the multiple cameras located on the vehicle.
  • the squares located on top of the factor graph are location information provided by the GPS device to the calibration module at time 1 to time n.
  • the top two squares located to left of the left-most column are location information provided by the GPS to the calibration module at time 0 .
  • FIG. 5 also shows that the bottom two squares located to left of the left-most column are identity prior information that are obtained by the calibration module prior to time 0 .
  • An identity prior can be a constraint for which the values, B 0 , ⁇ 0 , are zero vectors so that the identity for a 3 vector, ⁇ 0 , can be (0,0,0), and the identity for the 6 vector, B 0 , can be (0,0,0,0,0,0).
  • the values for B 0 and ⁇ 0 can enable the optimization to be fully constrained.
  • FIG. 5 shows an IMU factor that is obtained by the calibration module based the GPS measurements and based on IMU accelerometer and gyroscope measurements between the states at time X t-1 , V t-1 , and X t , V t , B t .
  • the calibration module obtains from the GPS device measured data with which the calibration module can determine a pose X t of the IMU sensor, and the calibration module can obtain from the IMU sensor a velocity V t and a bias value B t .
  • the IMU bias, B t can also be part of the optimization.
  • the accelerometer and the gyroscope in the IMU can be susceptible to systematic measurement error.
  • That error consists of gaussian noise and a bias to the actual acceleration and angular velocity being measured.
  • the bias can be slowly varying and the IMU sensor can change the bias due to changes in, for example, temperature.
  • the bias can be solved for as part of the optimization to improve the accuracy of the constraint.
  • the calibration module obtains the measured data from the IMU sensor at a pre-determined frequency indicated by the IMU factor triangles labeled 502 a , 502 b , and so on as indicated in FIG. 5 .
  • the IMU acceleration measurement, a t relates to an estimate of the true acceleration, â t , according to Equation (2).
  • R t describes the rotation of the device at time t
  • g is the 3D vector for gravity
  • b(a) t is the bias of the acceleration
  • H (a) t is white noise.
  • the IMU factor constrains the device rotation and the bias to be consistent with the measured acceleration.
  • the IMU angular velocity measurement, w t relates to an estimate of the true angular velocity, â t , according to Equation (3).
  • the IMU factor constrains the gyroscope bias to match the measurement.
  • the IMU factor uses the estimates of the true angular velocity to constrain the device rotation according to Equation (4).
  • R i , R j represent the orientation of the device at times i, j
  • Exp ( ⁇ ) is the exponential map function
  • ⁇ t is the change in time.
  • the exponential map defines a conversion from a vector in 3 to a 3 3 ⁇ 3 rotation matrix.
  • the IMU factor uses the estimates of the true acceleration to constrain the device velocity and position according to Equations (5)-(6).
  • v i , v j represent the device velocity at times i, j, and p i , p j , the device positions.
  • the IMU factor also constraints consecutive IMU bias terms to change slowly by minimizing the error according to Equation (7).
  • the calibration module can obtain the gaussian process factor.
  • the calibration module obtains the gaussian factor, which can be a set of at least three values that describe the pose, velocity, and angular velocity between X t-1 , V t-1 , ⁇ t-1 and X t , V t , ⁇ t so that the calibration module can obtain the gaussian factor between two states as a measurement.
  • the calibration module can obtain gaussian factor 504 a (at least three values that includes a value between X 1 and X 2 , a value between V 1 and V 2 , and a value between ⁇ 1 and ⁇ 2 ), and the calibration module can obtain gaussian factor 504 b , and so on as indicated in FIG. 5 .
  • One of the functions of treating the camera trajectory as a gaussian process in this way is that asynchronous camera measurements can be incorporated into the factor graph as further explained in below for the 3D-2D factor determined by the calibration module.
  • the sensor data e.g., images
  • poses, velocities, and angular velocities between states can be interpolated by the calibration module so that measurements from asynchronous images can be added to the factor graph for the 3D-2D factor.
  • the interpolation of X t may require two sets of pose variables, velocity variables, and angular velocity variables.
  • the interpolation of X t may include six variables in order to solve for the pose at the time t between the two states.
  • the calibration module can determine an expected pixel locations (p′′) of a location (e.g., corner) of a lane block on the road using an IMU sensor pose X t , that may be interpolated between X j and X k ) using Equation (8) for each of the multiple cameras:
  • K c is the intrinsic camera matrix for a camera that obtained the image
  • X t is IMU sensor pose
  • T c is the extrinsic matrix of the camera that obtained the image
  • P is the 3D world coordinates of the lane block in the image, where P is the 3D world coordinates of the location (e.g., corner) of the lane block obtained by the calibration module from the map database.
  • the loss function for each 3D-2D factor (also known as localization factor) can be determined by subtracting the expected pixel location p′′ from the actual pixel location p′ using a L2 Euclidian norm as shown in Equation (9):
  • the calibration module minimizes the difference between p′ and p′′ by adjusting the extrinsic matrix T c of the camera to obtain an optimized extrinsic matrix T c of the camera.
  • the multi-sensor sequential extrinsic calibration technique for the cameras can be performed by the calibration module as follows: the vehicle drives on a road (e.g., as shown in FIG. 2 ) collecting sensor data (e.g., camera images) along the way; the collected sensor data is uploaded to a computer (e.g., 400 in FIG. 4 ), which can be accessed by the calibration module.
  • the calibration module obtains the collected sensor data and constructs the constraints of the factor graph as described herein, which represents the sequence of constraints from the sensor data captured along the calibration route.
  • the calibration module can apply a non-linear optimization to the factor graph of constraints.
  • the calibration module can apply non-linear optimization on the constraints obtained from the IMU, the GPS, and the results of image process to render the pose transforms, which can solves for values of the variables that minimizes the total error to all the constraints.
  • the result is applicable to the vehicle that obtained the sensor data. The same calibration procedure can be repeated for different vehicles.
  • the calibration module can determine whether a 2D-2D image-to-image factor can be applied for two cameras that have at least some overlapping field of views.
  • the identity of the two cameras having at least some overlapping field of views is previously known and may be stored in a table on the computer (e.g., 400 in FIG. 4 ), where the calibration module can access the stored table.
  • a table on the computer e.g., 400 in FIG. 4
  • the calibration module can apply a 2D-2D image-to-image factor to images obtained by cameras 102 a and 102 b , or 102 c and 102 d , etc., If the calibration module determines that a first image obtained by a first camera comprises a lane block that is the same as the lane block in a second image obtained from the second camera, where the calibration module determines that the first camera and the second camera are pre-determined to have overlapping field of views, then the calibration module can obtain a 2D-2D image-to-image factor 506 .
  • Each lane block may include four map points (e.g., for four corners), each of which has an identifier (ID).
  • the calibration module After the calibration module acquires the data association of 2D pixel locations and 3D world coordinates between the lane blocks in an image and the map, the calibration module uses the map point IDs to identify 2D-2D pixel pairs between two images obtained from two cameras for which a 2D-2D factor can be defined.
  • a 2D-2D image-to-image factor describes a constraint between cameras for images captured at the same time, which can enable a 2D-2D correspondences of a same lane block in two images of the two cameras to match Epipolar geometry.
  • FIG. 6 shows an example of two images 602 , 604 obtained by two cameras that are setup for Epipolar geometry.
  • X 606 is a location (e.g., corner) of a lane block that is captured by the two images at pixel locations x 608 and x′ 610 in images 602 and 604 , respectively.
  • the calibration module can determine the Essential matrix E constraint between a pair of corresponding 2d points x 608 and x′ 610 using Equations (10) to (14).
  • the Essential matrix describes a relationship between the location of a pixel in one image and the location of another pixel in another image.
  • the 2D-2D factor enables the pixel coordinate to lie on Epipolar lines between the two cameras. This 2D-2D factor constraint is useful at least because the map points may have some slight errors so that this constraint avoids the use of the 3D world coordinates in the map; and because the cameras can be consistent with one another even if they cannot match the map points exactly.
  • the calibration module applies a 2D-2D factor constraint between T c , K c , p r c and T d , K d , p s d using Equations (10) to (14), where p r c is the measured pixel coordinates of a location (e.g., corner) of a lane block obtained from an image from camera_c and p s d is the measured pixel coordinates of the same location (e.g., corner) of the same lane block obtained from an image from camera_d, where T c and T d are the camera-IMU sensor transform or the camera extrinsic parameters of camera_c and camera_d, respectively, and, where K c and K d are the intrinsic parameters of camera_c and camera_d, respectively:
  • ⁇ P describes the pose transform in SE3 between the two cameras at poses T c and T d .
  • Equation (11) denotes the mapping from the unit vector to the skew symmetric matrix.
  • H r is a matrix that describes a 3D camera ray from the camera through the pixel p r c .
  • H s is a matrix that describes a 3D camera ray from the camera through the pixel p s d .
  • Equation (14) defines the Epipolar constraint. Since the extrinsic matrix T c of the camera_c can be determined using the techniques described in Section V of this patent document, the calibration module can adjust the extrinsic matrix T d of the camera_d such that the matrix multiplication shown in Equation (14) equals zero.
  • the calibration module can determine whether an asynchronous 2D-2D image-to-image factor can be applied for two cameras that are pre-determined to have overlapping or non-overlapping field of views. For example, for the example camera setup in FIG. 1 , the calibration module can apply an asynchronous 2D-2D image-to-image factor to images obtained by cameras 102 a and 102 g , or 102 c and 102 f , etc., In some embodiments, the calibration module can apply an asynchronous 2D-2D image-to-image factor to apply a constraint between a pair of cameras having overlapping or non-overlapping field of views for images captured at different times.
  • the calibration module can apply the asynchronous 2D-2D factor when the calibration module determines that a same block is included in two images obtained by two cameras at, for example, two different times.
  • the calibration module can also compute the essential matrix constraint, but because the calibration module applies to asynchronous cameras, the constraint is applied between 16 total variables: the same four above (i.e., T c , K c , T d , K d ) plus four sets of X t , V t , w t .
  • Four sets X t , V t , w t are used by the calibration module to describe the asynchronous 2D-2D factor, where the calibration module uses two sets used to interpolate the first camera pose and two sets to interpolate the second camera pose.
  • the IMU sensor pose X m is interpolated from X j , V j , ⁇ j and X k , V k , ⁇ k .
  • the only change in the constraint is shown in Equation (15):
  • the calibration module can apply ⁇ P from Equation (15) into Equations (11) to (14) to optimize (or adjust) the extrinsic matrices of camera_c and/or camera_d at the same time by minimizing the error function described in Equations (11) to (14).
  • the calibration module determines that the extrinsic matrix of camera_c has been optimized (e.g., by using the techniques described in Section V or VI), then the calibration module can minimize the error function described in Equations (10) to (14) by adjusting the extrinsic matrix of camera_d.
  • the calibration module can also apply an image-to-3D factor to a camera.
  • the image-to-3D factor replaces an exact 2D correspondence to a lane block with an image mask of lane markings. The distance transform between a re-projected point and the mask defines the error.
  • the calibration module can include a general lane mark constraint between a whole image and a map. This technique enables the formation of constraints to solid lines, in addition to dashed ones.
  • the HD-map includes 3D world coordinates at an interval.
  • the 3D world coordinates are the locations (e.g., corners) of the lane dashes, as previously specified.
  • the calibration module projects a map point of a location of a solid line or dashed line to a region of the image with a lane marking detected from the image.
  • the calibration module forms a constraint from a map point to an image by first applying image processing to the image. Lane marks are found in the camera image with image processing.
  • the result is a binary image that indicates which pixels are lane marks and which are not.
  • the calibration module projects the map point according to Equation (8), which can fall within a lane mark of the image mask and can provide an expected pixel location p′′ of the lane mark. Given an expected pixel location p′′ as defined in Equation (8), the calibration module determines a nearest pixel (lm) of a lane marker in the image obtained by the camera.
  • the calibration module applies the constraint as defined in Equation (16) to adjust the extrinsic matrix of the camera (e.g., using Equation (8)) to minimize the difference between the expected pixel location and the determined nearest pixel of the lane marker (lm):
  • FIG. 3 shows an example flow diagram of performing a sensor sequential calibration.
  • Operation 302 includes a calibration module receiving, from a first camera located on a vehicle, a first image comprising at least a portion of a road comprising lane markers, where the first image is obtained by the camera at a first time.
  • Operation 304 includes the calibration module obtaining a calculated value of a position of an inertial measurement (IM) device at the first time.
  • IM inertial measurement
  • Operation 306 includes the calibration module obtaining an optimized first extrinsic matrix of the first camera by adjusting a function of a first actual pixel location of a location of a lane marker in the first image and an expected pixel location of the location of the lane marker, where the expected pixel location is based at least on a previously known first extrinsic matrix of the first camera and the position of the IM device.
  • Operation 308 includes an autonomous operation module performing autonomous operation of the vehicle using the optimized first extrinsic matrix of the first camera when the vehicle is operated on another road or at another time.
  • the method of FIG. 3 further comprises receiving, from a second camera located on the vehicle, a second image comprising at least a second portion of the road, where the second portion at least partially overlaps with the portion obtained by the first image received from the first camera; in response to determining that the second image comprises the lane marker that is same as the lane marker in the first image: determining, from the second image, a second actual pixel location of the location of the lane marker; determining, based at least on the first actual pixel location, a first matrix that describes a first three-dimensional (3D) camera ray from the first camera to the location of the lane marker; determining based at least on the second actual pixel location, a second matrix that describes a second 3D camera ray from the second camera to the location of the lane marker; and obtaining an optimized second extrinsic matrix of the second camera by adjusting a previously known second extrinsic matrix of the second camera based on a matrix multiplication of the first matrix, the second matrix,
  • the previously known second extrinsic matrix of the second camera is adjusted so that the matrix multiplication is equal to zero.
  • the second image is obtained by the second camera at the first time.
  • the essential matrix is based at least on the optimized first extrinsic matrix and the second extrinsic matrix.
  • identities of the first camera and the second camera that have at least some overlapping field of view is previously known.
  • the first matrix for the first 3D camera ray is determined by multiplying an inverse of a first intrinsic matrix of the first camera with the first actual pixel location
  • the second matrix for the second 3D camera ray is determined by multiplying an inverse of a second intrinsic matrix of the second camera with the second actual pixel location.
  • a system for calibration of one or more sensors on or in a vehicle comprising a processor configured to perform the operations described at least in FIG. 3 and in this patent document.
  • the adjusting the function of the first actual pixel location and the expected pixel location comprises minimizing a difference between the first actual pixel location and the expected pixel location to zero by adjusting the first extrinsic matrix of the first camera.
  • the calculated value of the position of the IM device is obtained based at least on location measurements provided by a global positioning system (GPS) device on the vehicle for a second time and for a third time as the vehicle is driven on the road, the first time is in between the second time and the third time, and the measurement provided by the GPS device at the third time is immediately adjacent to that provided by the GPS device at the second time.
  • GPS global positioning system
  • the calculated value of the position of the IM device at the first time is based on: a first location provided by the GPS device for the second time, a second location provided by the GPS device at the third time, and a previously known location of the IM device relative to that of the GPS device.
  • the calculated value of the position of the IM device is an interpolated value in between a second position of the IM device at the second time and a third position of the IM device at the third time
  • the second position of the IM device is based on the second location provided by the GPS device and the previously known location of the IM device relative to that of the GPS device
  • the third position of the IM device is based on the third location provided by the GPS device and the previously known location of the IM device relative to that of the GPS device.
  • a non-transitory computer readable storage medium having code stored thereon, the code, when executed by a processor, causing the processor to implement a method disclosed at least in FIG. 3 and/or in this patent document.
  • the expected pixel location is based on a first intrinsic matrix of the first camera, the position of the IM device, the previously known first extrinsic matrix of the first camera, and three-dimensional (3D) world coordinates of the location of the lane marker.
  • the location of the lane marker includes a corner of the lane marker.
  • 3 further comprises receiving, from a third camera located on the vehicle, a third image comprising at least a third portion of the road, where the third image is obtained by the third camera at a time that is different from the first time; in response to determining that the third image comprises the lane marker that is same as the lane marker in the first image: determining, from the third image, a third actual pixel location of the location of the lane marker; determining, based at least on the first actual pixel location, a first matrix that describes a first three-dimensional (3D) camera ray from the first camera to the location of the lane marker; determining based at least on the third actual pixel location, a third matrix that describes a third 3D camera ray from the third camera to the location of the lane marker; and obtaining an optimized third extrinsic matrix of the third camera by adjusting a previously known third extrinsic matrix of the third camera or by adjusting the optimized first extrinsic matrix of the first camera using at least the first matrix and a second matrix.
  • the adjusting of the previously known third extrinsic matrix of the third camera or the optimized first extrinsic matrix of the first camera is based on a matrix multiplication of the first matrix, the second matrix, and an essential matrix so that the matrix multiplication is equal to zero, and the essential matrix describes a relationship of the first actual pixel location and the third actual pixel location.
  • the essential matrix is based at least on a second position of the IM device when the third image is obtained by the third camera, the position of the IM device when the first image is obtained by the first camera, the optimized first extrinsic matrix, and the third extrinsic matrix.
  • the first camera has a field of view that at least partially overlaps with that of the third camera.
  • the method of FIG. 3 further comprises receiving, from a fourth camera located on the vehicle, a fourth image comprising at least a fourth portion of the road; determining a fourth actual pixel location of a first location of a first lane marker in the fourth image; applying an image mask comprising a second lane marker to the fourth image; determining an expected pixel location of a second location of the second lane marker; and obtaining an optimized fourth extrinsic matrix of the fourth camera by adjusting a previously known fourth extrinsic matrix of the fourth camera so that a difference between the fourth actual pixel location and the expected pixel location of the second location of the second lane marker is minimized.
  • FIG. 4 shows an example block diagram of a computer that may be located in a vehicle to perform multi-sensor sequential calibration processes described in some embodiments.
  • the computer 400 includes at least one processor 410 and a memory 405 having instructions stored thereupon. The instructions upon execution by the processor 410 configure the computer 400 to perform the operations described for the multiple sensors and various modules (e.g., calibration module 420 and/or autonomous operation module 425 ) as described in FIGS. 1 to 3 and 5 to 6 , and/or the operations described in the various embodiments.
  • various modules e.g., calibration module 420 and/or autonomous operation module 425
  • the autonomous operation module 425 can receive sensor data (e.g., images, PCD, radar data) of an environment in which the autonomous vehicle is operating, where the sensor data is obtained from the multiple sensors onboard the vehicle.
  • the autonomous operation module 425 can instruct the autonomous vehicle to operate on a road (e.g., determine distance to vehicles in front of the autonomous vehicle, turn, apply brakes) based on the sensor data and based on the sensor data adjusted using the optimized extrinsic matrix obtained from the calibration module.
  • the autonomous operation module can determine a location of an object located in front of or next to or behind the autonomous vehicle based on a presence of the object on an image obtained by a camera onboard the autonomous vehicle and based on the optimized extrinsic matrix of the camera.
  • This patent document describes example sequential techniques for performing extrinsic camera calibration of a multi-sensor equipped vehicle.
  • the calibration module in this patent document can use an IMU, a GPS, and an HD map of 3D lane markers to resolve the pose transforms between cameras and the IMU.
  • Image processing techniques can be applied by the calibration module to register views of map points, views of lane lines, and/or shared views of map points between images obtained by different cameras. Shared views include any image pair of cameras that shares an overlapping field of view, whether the images were acquired at the same time or at different times, whether the cameras are of the same type or not, or whether the lenses have the same focal length or not.
  • Constraints between shared views can maximize the agreement of the extrinsic calibration to Epipolar geometry, which can be better than HD map-only calibration due to the fact that map points may have errors.
  • Non-linear optimization that may be performed by the calibration module on the constraints obtained from the IMU, the GPS, and the results of image process can render the pose transforms.
  • the example multi-sensor sequential calibration methods can yield precise extrinsic calibration of multi-view, standard, wide-angle, and telephoto lens cameras with perception up to 1000 m, for an automotive application.
  • a computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Therefore, the computer-readable media can include a non-transitory storage media.
  • program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • Computer- or processor-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
  • a hardware circuit implementation can include discrete analog and/or digital components that are, for example, integrated as part of a printed circuit board.
  • the disclosed components or modules can be implemented as an Application Specific Integrated Circuit (ASIC) and/or as a Field Programmable Gate Array (FPGA) device.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • DSP digital signal processor
  • the various components or sub-components within each module may be implemented in software, hardware or firmware.
  • the connectivity between the modules and/or components within the modules may be provided using any one of the connectivity methods and media that is known in the art, including, but not limited to, communications over the Internet, wired, or wireless networks using the appropriate protocols.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

Techniques for performing a sensor calibration using sequential data is disclosed. An example method includes receiving, from a first camera located on a vehicle, a first image comprising at least a portion of a road comprising lane markers, where the first image is obtained by the camera at a first time; obtaining a calculated value of a position of an inertial measurement (IM) device at the first time; obtaining an optimized first extrinsic matrix of the first camera by adjusting a function of a first actual pixel location of a location of a lane marker in the first image and an expected pixel location of the location of the lane marker; and performing autonomous operation of the vehicle using the optimized first extrinsic matrix of the first camera when the vehicle is operated on another road or at another time.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This patent document is a continuation of and claims priority to U.S. patent application Ser. No. 17/150,271, filed on Jan. 15, 2021. The aforementioned application is incorporated herein by reference in its entirety.
  • TECHNICAL FIELD
  • This document describes techniques to perform multi-sensor calibration for sensors located in a vehicle with pre-defined and/or endurable markers.
  • BACKGROUND
  • A vehicle may include cameras attached to the vehicle for several purposes. For example, cameras may be attached to a roof of the vehicle for security purposes, for driving aid, or for facilitating autonomous driving. Cameras mounted on a vehicle can obtain images of one or more areas surrounding the vehicle. These images can be processed to obtain information about the road or about the objects surrounding the vehicle. For example, images obtained by a camera can be analyzed to determine distances of objects surrounding the autonomous vehicle so that the autonomous vehicle can be safely maneuvered around the objects.
  • SUMMARY
  • This patent document describes example multi-sensor sequential calibration techniques to calibrate multiple sensors located on or in a vehicle.
  • An example method of calibrating one or more sensors for an autonomous vehicle, comprises receiving, from a first camera located on a vehicle, a first image comprising at least a portion of a road comprising lane markers, where the first image is obtained by the camera at a first time; obtaining a calculated value of a position of an inertial measurement (IM) device at the first time; obtaining an optimized first extrinsic matrix of the first camera by adjusting a function of a first actual pixel location of a location of a lane marker in the first image and an expected pixel location of the location of the lane marker, where the expected pixel location is based at least on a previously known first extrinsic matrix of the first camera and the position of the IM device; and performing autonomous operation of the vehicle using the optimized first extrinsic matrix of the first camera when the vehicle is operated on another road or at another time.
  • In another example aspect, the above-described methods are embodied in the form of processor-executable code and stored in a non-transitory computer-readable storage medium. The non-transitory computer readable storage includes code that when executed by a processor, causes the processor to implement the methods described in the embodiments.
  • In yet another example embodiment, a device that is configured or operable to perform the above-described methods is disclosed.
  • The above and other aspects and their implementations are described in greater detail in the drawings, the descriptions, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWING
  • FIG. 1 shows a top view of a tractor unit of an autonomous semi-trailer truck comprising sensors for performing the example multi-sensor sequential calibration process.
  • FIG. 2 shows an example scenario where a vehicle driven on a road performs the multi-sensor sequential calibration process.
  • FIG. 3 shows an example flow diagram of performing multi-sensor sequential calibration.
  • FIG. 4 shows an example block diagram of a computer that may be located in a vehicle to perform an example multi-sensor sequential calibration process.
  • FIG. 5 shows an example factor graph representation for the multi-sensor sequential calibration process described herein.
  • FIG. 6 shows an example of two images obtained by two cameras that are setup for Epipolar geometry.
  • DETAILED DESCRIPTION
  • An autonomous vehicle may include sensors such as cameras, Radars, and Light Detection and Ranging (LiDAR) sensors mounted on the autonomous vehicle to obtain sensor data items (e.g., an image from camera, point cloud map from LiDAR sensor, or radar points from Radar) of one or more areas surrounding the autonomous vehicle. These sensor data items can be analyzed by a computer which may be on-board the autonomous vehicle to obtain information about the road (e.g., location of lane markers on the road) or about the objects surrounding the autonomous vehicle (e.g., distance to objects located around the autonomous vehicle). However, the sensors on the autonomous vehicle need to be calibrated so that a computer on-board the autonomous vehicle can precisely or accurately detect, for example, locations of the lane markers on the road or a location of an object in front of the autonomous vehicle.
  • FIG. 1 shows a top view of a tractor unit of an autonomous semi-trailer truck comprising sensors for performing the example multi-sensor sequential calibration process (also known as multi-sensor sequential extrinsic calibration technique). For autonomous driving, there are multiple sensors (e.g., cameras 102 a-102 g) mounted on the vehicle 104 at different positions with specified orientation. For example, cameras 102 a, 102 c, 102 d may be oriented in a direction facing the front of the vehicle 104, camera 102 f may be oriented in a direction facing the rear left of the vehicle 104, and camera 102 g may be oriented in a direction facing the rear right of the vehicle 104. The vehicle 104 may also include LiDAR sensors 110 a, 110 b located in a front region of the vehicle 104. The vehicle 104 also includes an inertial measurement unit (IMU) sensor 106 in the vehicle 104. Since the IMU sensor 106 may perform best when the vehicle 104 is moving, the vehicle 104 moves through at least some part of the example multi-sensor sequential calibration process to calibrate the sensors onboard the vehicle 104 as further described in this patent document. The IMU sensor 106 may provide measurements (e.g., speed, direction, acceleration, angular velocity, etc.,) at a pre-determined frequency (e.g., 40 Hz or 50 Hz).
  • The vehicle 104 includes a global positioning system (GPS) device 108 that provides information about a location of the vehicle 104. Since the GPS device 108 and the IMU sensor 106 are installed or located in the vehicle 104, the location of the IMU sensor 106 relative to the GPS device 108 is previously known. And, since the GPS device 108 and the multiple sensors (e.g., cameras 102 a-102 g) are installed or located in the vehicle 104, the location of each of the multiple sensors relative to the GPS device 108 is also previously and approximately known. Thus, a location information provided by the GPS device 108 can be used to obtain the approximate locations of the IMU sensor 106 and/or the multiple sensors on the vehicle 104. The approximate locations of the IMU sensor 106 and/or the multiple sensors (e.g., cameras 102 a-102 g) are provided as initial values that can be fine-tuned with the example multi-sensor sequential calibration process described herein. The GPS device 108 may provide measurements (e.g., location) at a pre-determined frequency (e.g., 5 Hz or 10 Hz). In some embodiments, the IMU sensor 106 may provide measurements at a frequency that is higher than that of the measurements provided by the GPS device 108.
  • The example multi-sensor sequential calibration process described herein can calibrate multiple sensors at least based on: (1) an association determined between sequential sensor data of a road obtained from the multiple sensors (e.g., at least two cameras 102 a, 102 d located on the vehicle 104) and previously stored map information of the road; (2) IMU sensor's 106 measurements; and (3) GPS device's 108 measurements. The use of the IMU sensor 106 can make the example multi-sensor sequential calibration process an asynchronous process at least because the sequential sensor data (e.g., images) obtained by the multiple sensors (e.g., cameras 102 a-102 g) may not be synchronized with the measurement data provided by the IMU sensor 106.
  • FIG. 2 shows an example scenario where a vehicle driven on a road performs the multi-sensor sequential calibration process. The vehicle 202 includes multiple sensors such as a plurality of cameras and/or a plurality of LiDAR sensors. A first camera 204 and a second camera 206 is shown for ease of description. However, multiple additional camera and/or multiple LiDAR sensors can be located on or positioned on the vehicle 202 (e.g., as shown in FIG. 1 on vehicle 104) to obtain sensor data items of a calibration road segment 212 towards which the vehicle 202 can be driven. In some embodiments, the calibration road segment 212 may be located next to or behind the vehicle 202. The example multi-sensor sequential calibration process described herein for the first camera 204 and second camera 206 can be applied to other sensors (e.g., at least two cameras, at least two LiDAR sensors, at least two Radars, etc.,) that are located on the vehicle 202 and can obtain sensor data items of the calibration road segment 212. The vehicle 202 can be an autonomous vehicle.
  • The road 208 includes a calibration road segment 212 that has lane markers that can be affixed on either side of the road 208. The lane markers include a first set of lane blocks 210 a located on a first side of the road 208, and a second set of lane blocks 210 b located on a second side of the road 208 opposite to the first side. In each set of lane blocks, one lane block can be separated from another lane block by a pre-determined distance to form a set of broken lines on the road. A lane block 210 a, 210 b can have a rectangular shape and can have a white color. As shown in FIG. 2 , the first and second set of lane blocks 210 a, 210 b can be parallel to each other and can extend for a length of 100 meters, 150 meters, or 200 meters to enable a computer located in the vehicle 202 to perform the multi-sensor calibration techniques described in some embodiments.
  • The road 208 can be straight (as shown in FIG. 2 ) and can have an even top surface so that the sensors located on the vehicle 202 can easily obtain sensor data items of the calibration road segment 212. In some embodiments, the road 208 with a calibration road segment 212 can be a built as a private road outside or in a facility where the vehicle 202 is parked so that when the vehicle 202 is turned on to drive to a destination, the multiple sensors on the vehicle 202 can be calibrated on the private road. In some other embodiments, the road 208 can be a public road where the calibration road segment 212 may exclude an area where broken lines are absent.
  • A computer, which may be located in the vehicle 202, may store a map database (shown as 415 in FIG. 4 ). The map database includes the three-dimensional (3D) world coordinates of each corner 212 a-212 d of each lane block. The computer may include a calibration module (shown as 420 in FIG. 4 ) that performs operations related to the example multi-sensor sequential calibration process by using measured data from the IMU as a constraint between consecutive camera poses as the vehicle is driven between a pre-defined starting location on the road and a pre-defined ending location on the road. The calibration module can determine that the vehicle is at the pre-defined starting and ending locations by comparing the location of the vehicle (obtained by the GPS device) with the two pre-determined locations of the starting and ending locations.
  • The calibration module can provide an optimized estimate of a camera-IMU sensor transform, Tc, which describes extrinsic parameters between the camera and the IMU sensor by using Equation (1) and measurements obtained by the GPS device. The calibration module obtains a location of the vehicle at time t from the GPS device located on the vehicle. The calibration module can determine a position (also known as pose) of the multiple sensors (e.g., cameras) located on the vehicle and the IMU sensor located on the vehicle based on the location of the vehicle provided by the GPS device and previously known distances from the GPS device to the IMU sensor and the multiple sensors. For example, if the vehicle included at least one camera and an IMU sensor, the calibration module can obtain both the pose of the camera, Tt c and the pose of the IMU sensor, Xt at time t. The camera-IMU sensor transform, Tc can be determined by the calibration module by using Equation (1):

  • T c =X t ⊖T t c  Equation (1)
  • In this patent document, the LaTeX symbols ⊕ and ⊖ denote the composition and the inverse composition operation for a Lie Group. In Equation (1), the Lie group is SE3. The compose operator for the SE3 Lie group is the composition of 6D transforms. A 6D transform includes (roll, pitch, yaw) information of the sensor (e.g., IMU sensor or camera), e.g., R that belongs to a three-dimensional coordinate space
    Figure US20230356734A1-20231109-P00001
    3 and (x, y, z) position information of the sensor (e.g., IMU sensor or camera), e.g., T in a three-dimensional coordinate space
    Figure US20230356734A1-20231109-P00001
    3. The composition of two transforms, A=Ra, Ta, B=Rb,Tb in SE3 for C=A⊕B is Rc=Ra*Rb, and Tc=RaTb+Ta. The inverse composition reverses a composition. Equation (1) only describes IMU sensor pose Xt and camera pose Tt c. Although the IMU sensor pose, Xt, and the camera pose, Tt c, change over time, the camera-IMU sensor transform, Tc, between them can remain consistent. The camera-IMU sensor transform, Tc, belongs to a SE(3) matrix, where SE(3) is a Lie group.
  • FIG. 5 shows an example factor graph representation for the multi-sensor sequential calibration process described herein. The optimization technique in FIG. 5 is performed by the calibration module. The factor graph is a model used to represent the optimization problem. The calibration module applies optimization to the factor graph to solve the value of the variables shown in circles in FIG. 5 in order to minimize all the loss that is defined by the factors shown in squares or triangles. The columns shown in FIG. 5 (shown with subscripts 0 to n−1 and n in the circles) indicate the variables that are solved by the factor graph for times 0 to n. The section headings in this patent document are meant to facilitate an ease of understanding. Accordingly, one or more features from one section can be combined with one or more features of another section.
  • I. Variables of the Factor Graph
  • The variable Xt indicates IMU sensor pose at time t, where Xt belongs to a SE(3) matrix, where SE(3) is a Lie group. The calibration module can determine the IMU sensor pose Xt based on location information provided by the GPS at time t and based on a previously known location of the IMU relative to the GPS device. The variable Vt indicates the velocity of the vehicle at time t, where Vt belongs to a three-dimensional coordinate space
    Figure US20230356734A1-20231109-P00001
    3. The variable Bt indicates an IMU accelerometer (or accel)+gyro bias at time t, where Bt belongs to a six-dimensional coordinate space
    Figure US20230356734A1-20231109-P00001
    6. The variable ωt indicates an angular velocity of the vehicle at time t, where ωt belongs to a three-dimensional coordinate space
    Figure US20230356734A1-20231109-P00001
    3. The variable Tc is camera-IMU sensor transform or camera extrinsic parameters of a camera, where Tc belongs to a SE(3) matrix. The variable Kc is an intrinsic matrix of the camera, where the intrinsic matrix includes parameters that describe optical characteristics (e.g., focal length, distortion, optical center, etc.,) of the camera. The variables Tc and Kc can be separately determined for each of the multiple cameras located on the vehicle.
  • II. Information Provided for the Factor Graph
  • As indicated by the legend in FIG. 5 , the squares located on top of the factor graph are location information provided by the GPS device to the calibration module at time 1 to time n. The top two squares located to left of the left-most column are location information provided by the GPS to the calibration module at time 0. FIG. 5 also shows that the bottom two squares located to left of the left-most column are identity prior information that are obtained by the calibration module prior to time 0. An identity prior can be a constraint for which the values, B0, ω0, are zero vectors so that the identity for a
    Figure US20230356734A1-20231109-P00001
    3 vector, ω0, can be (0,0,0), and the identity for the
    Figure US20230356734A1-20231109-P00001
    6 vector, B0, can be (0,0,0,0,0,0). The values for B0 and ω0 can enable the optimization to be fully constrained.
  • III. IMU Factor for the Factor Graph
  • FIG. 5 shows an IMU factor that is obtained by the calibration module based the GPS measurements and based on IMU accelerometer and gyroscope measurements between the states at time Xt-1, Vt-1, and Xt, Vt, Bt. For example, as indicated by the IMU factor triangles in FIG. 5 , the calibration module obtains from the GPS device measured data with which the calibration module can determine a pose Xt of the IMU sensor, and the calibration module can obtain from the IMU sensor a velocity Vt and a bias value Bt. The IMU bias, Bt, can also be part of the optimization. The accelerometer and the gyroscope in the IMU can be susceptible to systematic measurement error. That error consists of gaussian noise and a bias to the actual acceleration and angular velocity being measured. The bias can be slowly varying and the IMU sensor can change the bias due to changes in, for example, temperature. The bias can be solved for as part of the optimization to improve the accuracy of the constraint. The IMU sensor's accelerometer can provide acceleration at in
    Figure US20230356734A1-20231109-P00001
    3, and gyroscope measurements, ωt in
    Figure US20230356734A1-20231109-P00001
    3 at time t between two times j, k (e.g., j<=t<k) to provide a constraint on Xj, Vj, Bj and Xk, Vk, Bk as further described below. The calibration module obtains the measured data from the IMU sensor at a pre-determined frequency indicated by the IMU factor triangles labeled 502 a, 502 b, and so on as indicated in FIG. 5 .
  • In some embodiments, the IMU acceleration measurement, at, relates to an estimate of the true acceleration, ât, according to Equation (2).

  • a t =R t(â t −g)+b(a)t +H(a)t  Equation (2)
  • where Rt describes the rotation of the device at time t, g is the 3D vector for gravity, b(a)t is the bias of the acceleration, and H (a)t is white noise. The IMU factor constrains the device rotation and the bias to be consistent with the measured acceleration.
  • In some embodiments, the IMU angular velocity measurement, wt, relates to an estimate of the true angular velocity, ât, according to Equation (3).

  • w t t +b(g)t +H(g)t  Equation (3)
  • where b(g)t and H(g)t are the bias and the white noise of the gyroscope. The IMU factor constrains the gyroscope bias to match the measurement.
    The IMU factor uses the estimates of the true angular velocity to constrain the device rotation according to Equation (4).
  • R j = R i k = i j - 1 Exp ( w ˆ t Δ t ) Equation ( 4 )
  • where Ri, Rj represent the orientation of the device at times i, j, Exp (·) is the exponential map function, and Δt is the change in time. The exponential map defines a conversion from a vector in
    Figure US20230356734A1-20231109-P00001
    3 to a
    Figure US20230356734A1-20231109-P00001
    3 3×3 rotation matrix.
  • The IMU factor uses the estimates of the true acceleration to constrain the device velocity and position according to Equations (5)-(6).
  • v j = v i + g Δ t i , j + k = i j - 1 a ^ t Δt Equation ( 5 ) p j = p i + k = i j - 1 v k Δ t + 1 2 g Δ t i , j 2 + 1 2 k = i j - 1 a ^ t Δ t 2 Equation ( 6 )
  • where vi, vj represent the device velocity at times i, j, and pi, pj, the device positions.
  • The IMU factor also constraints consecutive IMU bias terms to change slowly by minimizing the error according to Equation (7).

  • b(g)j −b(g)i2 and ∥b(a)j −b(a)i2  Equation (7)
  • IV. Gaussian Process Factor for the Factor Graph
  • Once the calibration module obtains IMU sensor measured data for at least two consecutive times (e.g., 502 a, 502 b), the calibration module can obtain the gaussian process factor. The calibration module obtains the gaussian factor, which can be a set of at least three values that describe the pose, velocity, and angular velocity between Xt-1, Vt-1, ωt-1 and Xt, Vt, ωt so that the calibration module can obtain the gaussian factor between two states as a measurement. Thus, for example, the calibration module can obtain gaussian factor 504 a (at least three values that includes a value between X1 and X2, a value between V1 and V2, and a value between ω1 and ω2), and the calibration module can obtain gaussian factor 504 b, and so on as indicated in FIG. 5 . One of the functions of treating the camera trajectory as a gaussian process in this way is that asynchronous camera measurements can be incorporated into the factor graph as further explained in below for the 3D-2D factor determined by the calibration module. The sensor data (e.g., images) obtained by cameras on a vehicle may not be synchronous with the measured data provided by the IMU sensor. Thus, poses, velocities, and angular velocities between states can be interpolated by the calibration module so that measurements from asynchronous images can be added to the factor graph for the 3D-2D factor.
  • V. 3D-2D Factor for the Factor Graph
  • The calibration module obtains an image from each of multiple cameras (e.g., a first camera and a second camera located on the vehicle) at time t=m where the image comprises one or more lane blocks (shown as 210 a, 210 b in FIG. 2 ). The calibration module determines a 3D-2D factor which is determined as a set of values for Tc, Kc and a set of values (e.g., interpolated values) between Xj, Vj, ωj and Xk, Vk, ωk, respectively, for the image captured at time t=m, where j≤m≤k. The interpolation of Xt may require two sets of pose variables, velocity variables, and angular velocity variables. Thus, the interpolation of Xt may include six variables in order to solve for the pose at the time t between the two states. The calibration module can determine an expected pixel locations (p″) of a location (e.g., corner) of a lane block on the road using an IMU sensor pose Xt, that may be interpolated between Xj and Xk) using Equation (8) for each of the multiple cameras:

  • p″=K c X t T c P  Equation (8)
  • where Kc is the intrinsic camera matrix for a camera that obtained the image, Xt is IMU sensor pose, Tc is the extrinsic matrix of the camera that obtained the image, and P is the 3D world coordinates of the lane block in the image, where P is the 3D world coordinates of the location (e.g., corner) of the lane block obtained by the calibration module from the map database.
  • The loss function for each 3D-2D factor (also known as localization factor) can be determined by subtracting the expected pixel location p″ from the actual pixel location p′ using a L2 Euclidian norm as shown in Equation (9):

  • P′−p″∥ 2=0  Equation (9)
  • where p′ is the actual pixel location of a location (e.g., corner) of the lane block in an image in two-dimensional coordinate space. Thus, the calibration module minimizes the difference between p′ and p″ by adjusting the extrinsic matrix Tc of the camera to obtain an optimized extrinsic matrix Tc of the camera.
  • The multi-sensor sequential extrinsic calibration technique for the cameras can be performed by the calibration module as follows: the vehicle drives on a road (e.g., as shown in FIG. 2 ) collecting sensor data (e.g., camera images) along the way; the collected sensor data is uploaded to a computer (e.g., 400 in FIG. 4 ), which can be accessed by the calibration module. The calibration module obtains the collected sensor data and constructs the constraints of the factor graph as described herein, which represents the sequence of constraints from the sensor data captured along the calibration route. The calibration module can apply a non-linear optimization to the factor graph of constraints. The calibration module can apply non-linear optimization on the constraints obtained from the IMU, the GPS, and the results of image process to render the pose transforms, which can solves for values of the variables that minimizes the total error to all the constraints. The result is applicable to the vehicle that obtained the sensor data. The same calibration procedure can be repeated for different vehicles.
  • VI. 2D-2D Factor for the Factor Graph
  • In some embodiments, the calibration module can determine whether a 2D-2D image-to-image factor can be applied for two cameras that have at least some overlapping field of views. The identity of the two cameras having at least some overlapping field of views is previously known and may be stored in a table on the computer (e.g., 400 in FIG. 4 ), where the calibration module can access the stored table. For example, for the example camera setup in FIG. 1 , the calibration module can apply a 2D-2D image-to-image factor to images obtained by cameras 102 a and 102 b, or 102 c and 102 d, etc., If the calibration module determines that a first image obtained by a first camera comprises a lane block that is the same as the lane block in a second image obtained from the second camera, where the calibration module determines that the first camera and the second camera are pre-determined to have overlapping field of views, then the calibration module can obtain a 2D-2D image-to-image factor 506. Each lane block may include four map points (e.g., for four corners), each of which has an identifier (ID). After the calibration module acquires the data association of 2D pixel locations and 3D world coordinates between the lane blocks in an image and the map, the calibration module uses the map point IDs to identify 2D-2D pixel pairs between two images obtained from two cameras for which a 2D-2D factor can be defined.
  • A 2D-2D image-to-image factor describes a constraint between cameras for images captured at the same time, which can enable a 2D-2D correspondences of a same lane block in two images of the two cameras to match Epipolar geometry. FIG. 6 shows an example of two images 602, 604 obtained by two cameras that are setup for Epipolar geometry. In FIG. 6 , X 606 is a location (e.g., corner) of a lane block that is captured by the two images at pixel locations x 608 and x′ 610 in images 602 and 604, respectively. The calibration module can determine the Essential matrix E constraint between a pair of corresponding 2d points x 608 and x′ 610 using Equations (10) to (14). The Essential matrix describes a relationship between the location of a pixel in one image and the location of another pixel in another image. The 2D-2D factor enables the pixel coordinate to lie on Epipolar lines between the two cameras. This 2D-2D factor constraint is useful at least because the map points may have some slight errors so that this constraint avoids the use of the 3D world coordinates in the map; and because the cameras can be consistent with one another even if they cannot match the map points exactly.
  • The calibration module applies a 2D-2D factor constraint between Tc, Kc, pr c and Td, Kd, ps d using Equations (10) to (14), where pr c is the measured pixel coordinates of a location (e.g., corner) of a lane block obtained from an image from camera_c and ps d is the measured pixel coordinates of the same location (e.g., corner) of the same lane block obtained from an image from camera_d, where Tc and Td are the camera-IMU sensor transform or the camera extrinsic parameters of camera_c and camera_d, respectively, and, where Kc and Kd are the intrinsic parameters of camera_c and camera_d, respectively:

  • ΔP=T c −1 ⊕T d  Equation (10)
  • ΔP describes the pose transform in SE3 between the two cameras at poses Tc and Td.
  • E = Δ P . R × [ Δ P . T "\[LeftBracketingBar]" Δ P . T "\[RightBracketingBar]" ] ^ Equation ( 11 )
  • where R and T are the rotation and translation components of the transform and the [ ]{circumflex over ( )} operator in Equation (11) denotes the mapping from the unit vector to the skew symmetric matrix.

  • H r =K c −1 ×p r c  Equation (12)
  • where Hr is a matrix that describes a 3D camera ray from the camera through the pixel pr c.

  • H s =K d −1 ×p s d  Equation (13)
  • where Hs is a matrix that describes a 3D camera ray from the camera through the pixel ps d.

  • H rT ×E×H s=0  Equation (14)
  • Equation (14) defines the Epipolar constraint. Since the extrinsic matrix Tc of the camera_c can be determined using the techniques described in Section V of this patent document, the calibration module can adjust the extrinsic matrix Td of the camera_d such that the matrix multiplication shown in Equation (14) equals zero.
  • VII. Asynchronous 2D-2D Factor for the Factor Graph
  • In some embodiments, the calibration module can determine whether an asynchronous 2D-2D image-to-image factor can be applied for two cameras that are pre-determined to have overlapping or non-overlapping field of views. For example, for the example camera setup in FIG. 1 , the calibration module can apply an asynchronous 2D-2D image-to-image factor to images obtained by cameras 102 a and 102 g, or 102 c and 102 f, etc., In some embodiments, the calibration module can apply an asynchronous 2D-2D image-to-image factor to apply a constraint between a pair of cameras having overlapping or non-overlapping field of views for images captured at different times. The calibration module can apply the asynchronous 2D-2D factor when the calibration module determines that a same block is included in two images obtained by two cameras at, for example, two different times. The calibration module can also compute the essential matrix constraint, but because the calibration module applies to asynchronous cameras, the constraint is applied between 16 total variables: the same four above (i.e., Tc, Kc, Td, Kd) plus four sets of Xt, Vt, wt. Four sets Xt, Vt, wt are used by the calibration module to describe the asynchronous 2D-2D factor, where the calibration module uses two sets used to interpolate the first camera pose and two sets to interpolate the second camera pose. For an image captured by a camera at time t=m, between states t=j and t=k, the IMU sensor pose Xm is interpolated from Xj, Vj, ωj and Xk, Vk, ωk. For two such IMU sensor poses Xm and Xn (for another image from another camera captured at time t=n), the only change in the constraint is shown in Equation (15):

  • ΔP=T c −1⊕(X m ⊖X n)⊕T d  Equation (15)
  • The calibration module can apply ΔP from Equation (15) into Equations (11) to (14) to optimize (or adjust) the extrinsic matrices of camera_c and/or camera_d at the same time by minimizing the error function described in Equations (11) to (14). In some embodiments, if the calibration module determines that the extrinsic matrix of camera_c has been optimized (e.g., by using the techniques described in Section V or VI), then the calibration module can minimize the error function described in Equations (10) to (14) by adjusting the extrinsic matrix of camera_d.
  • VIII. Image-3D Factor for the Factor Graph
  • In some embodiments, the calibration module can also apply an image-to-3D factor to a camera. The image-to-3D factor replaces an exact 2D correspondence to a lane block with an image mask of lane markings. The distance transform between a re-projected point and the mask defines the error.
  • In some embodiments, the calibration module can include a general lane mark constraint between a whole image and a map. This technique enables the formation of constraints to solid lines, in addition to dashed ones. For each solid lane, the HD-map includes 3D world coordinates at an interval. For each dashed lane, the 3D world coordinates are the locations (e.g., corners) of the lane dashes, as previously specified. The calibration module projects a map point of a location of a solid line or dashed line to a region of the image with a lane marking detected from the image. The calibration module forms a constraint from a map point to an image by first applying image processing to the image. Lane marks are found in the camera image with image processing. The result is a binary image that indicates which pixels are lane marks and which are not. The calibration module projects the map point according to Equation (8), which can fall within a lane mark of the image mask and can provide an expected pixel location p″ of the lane mark. Given an expected pixel location p″ as defined in Equation (8), the calibration module determines a nearest pixel (lm) of a lane marker in the image obtained by the camera. The calibration module applies the constraint as defined in Equation (16) to adjust the extrinsic matrix of the camera (e.g., using Equation (8)) to minimize the difference between the expected pixel location and the determined nearest pixel of the lane marker (lm):

  • p″−lm∥ 2=0  Equation (16)
  • FIG. 3 shows an example flow diagram of performing a sensor sequential calibration. Operation 302 includes a calibration module receiving, from a first camera located on a vehicle, a first image comprising at least a portion of a road comprising lane markers, where the first image is obtained by the camera at a first time. Operation 304 includes the calibration module obtaining a calculated value of a position of an inertial measurement (IM) device at the first time. Operation 306 includes the calibration module obtaining an optimized first extrinsic matrix of the first camera by adjusting a function of a first actual pixel location of a location of a lane marker in the first image and an expected pixel location of the location of the lane marker, where the expected pixel location is based at least on a previously known first extrinsic matrix of the first camera and the position of the IM device. Operation 308 includes an autonomous operation module performing autonomous operation of the vehicle using the optimized first extrinsic matrix of the first camera when the vehicle is operated on another road or at another time.
  • In some embodiments, the method of FIG. 3 , further comprises receiving, from a second camera located on the vehicle, a second image comprising at least a second portion of the road, where the second portion at least partially overlaps with the portion obtained by the first image received from the first camera; in response to determining that the second image comprises the lane marker that is same as the lane marker in the first image: determining, from the second image, a second actual pixel location of the location of the lane marker; determining, based at least on the first actual pixel location, a first matrix that describes a first three-dimensional (3D) camera ray from the first camera to the location of the lane marker; determining based at least on the second actual pixel location, a second matrix that describes a second 3D camera ray from the second camera to the location of the lane marker; and obtaining an optimized second extrinsic matrix of the second camera by adjusting a previously known second extrinsic matrix of the second camera based on a matrix multiplication of the first matrix, the second matrix, and an essential matrix that describes a relationship of the first actual pixel location and the second actual pixel location.
  • In some embodiments, the previously known second extrinsic matrix of the second camera is adjusted so that the matrix multiplication is equal to zero. In some embodiments, the second image is obtained by the second camera at the first time. In some embodiments, the essential matrix is based at least on the optimized first extrinsic matrix and the second extrinsic matrix. In some embodiments, identities of the first camera and the second camera that have at least some overlapping field of view is previously known. In some embodiments, the first matrix for the first 3D camera ray is determined by multiplying an inverse of a first intrinsic matrix of the first camera with the first actual pixel location, and the second matrix for the second 3D camera ray is determined by multiplying an inverse of a second intrinsic matrix of the second camera with the second actual pixel location.
  • In some embodiments, a system for calibration of one or more sensors on or in a vehicle is described, where the system comprising a processor configured to perform the operations described at least in FIG. 3 and in this patent document. In some embodiments, the adjusting the function of the first actual pixel location and the expected pixel location comprises minimizing a difference between the first actual pixel location and the expected pixel location to zero by adjusting the first extrinsic matrix of the first camera. In some embodiments, the calculated value of the position of the IM device is obtained based at least on location measurements provided by a global positioning system (GPS) device on the vehicle for a second time and for a third time as the vehicle is driven on the road, the first time is in between the second time and the third time, and the measurement provided by the GPS device at the third time is immediately adjacent to that provided by the GPS device at the second time.
  • In some embodiments, the calculated value of the position of the IM device at the first time is based on: a first location provided by the GPS device for the second time, a second location provided by the GPS device at the third time, and a previously known location of the IM device relative to that of the GPS device. In some embodiments, the calculated value of the position of the IM device is an interpolated value in between a second position of the IM device at the second time and a third position of the IM device at the third time, the second position of the IM device is based on the second location provided by the GPS device and the previously known location of the IM device relative to that of the GPS device, and the third position of the IM device is based on the third location provided by the GPS device and the previously known location of the IM device relative to that of the GPS device.
  • In some embodiments, a non-transitory computer readable storage medium having code stored thereon, the code, when executed by a processor, causing the processor to implement a method disclosed at least in FIG. 3 and/or in this patent document. In some embodiments, the expected pixel location is based on a first intrinsic matrix of the first camera, the position of the IM device, the previously known first extrinsic matrix of the first camera, and three-dimensional (3D) world coordinates of the location of the lane marker. In some embodiments, the location of the lane marker includes a corner of the lane marker. In some embodiments, the method of FIG. 3 further comprises receiving, from a third camera located on the vehicle, a third image comprising at least a third portion of the road, where the third image is obtained by the third camera at a time that is different from the first time; in response to determining that the third image comprises the lane marker that is same as the lane marker in the first image: determining, from the third image, a third actual pixel location of the location of the lane marker; determining, based at least on the first actual pixel location, a first matrix that describes a first three-dimensional (3D) camera ray from the first camera to the location of the lane marker; determining based at least on the third actual pixel location, a third matrix that describes a third 3D camera ray from the third camera to the location of the lane marker; and obtaining an optimized third extrinsic matrix of the third camera by adjusting a previously known third extrinsic matrix of the third camera or by adjusting the optimized first extrinsic matrix of the first camera using at least the first matrix and a second matrix.
  • In some embodiments, the adjusting of the previously known third extrinsic matrix of the third camera or the optimized first extrinsic matrix of the first camera is based on a matrix multiplication of the first matrix, the second matrix, and an essential matrix so that the matrix multiplication is equal to zero, and the essential matrix describes a relationship of the first actual pixel location and the third actual pixel location. In some embodiments, the essential matrix is based at least on a second position of the IM device when the third image is obtained by the third camera, the position of the IM device when the first image is obtained by the first camera, the optimized first extrinsic matrix, and the third extrinsic matrix. In some embodiments, the first camera has a field of view that at least partially overlaps with that of the third camera.
  • In some embodiments, the method of FIG. 3 further comprises receiving, from a fourth camera located on the vehicle, a fourth image comprising at least a fourth portion of the road; determining a fourth actual pixel location of a first location of a first lane marker in the fourth image; applying an image mask comprising a second lane marker to the fourth image; determining an expected pixel location of a second location of the second lane marker; and obtaining an optimized fourth extrinsic matrix of the fourth camera by adjusting a previously known fourth extrinsic matrix of the fourth camera so that a difference between the fourth actual pixel location and the expected pixel location of the second location of the second lane marker is minimized.
  • FIG. 4 shows an example block diagram of a computer that may be located in a vehicle to perform multi-sensor sequential calibration processes described in some embodiments. The computer 400 includes at least one processor 410 and a memory 405 having instructions stored thereupon. The instructions upon execution by the processor 410 configure the computer 400 to perform the operations described for the multiple sensors and various modules (e.g., calibration module 420 and/or autonomous operation module 425) as described in FIGS. 1 to 3 and 5 to 6 , and/or the operations described in the various embodiments.
  • The autonomous operation module 425 can receive sensor data (e.g., images, PCD, radar data) of an environment in which the autonomous vehicle is operating, where the sensor data is obtained from the multiple sensors onboard the vehicle. The autonomous operation module 425 can instruct the autonomous vehicle to operate on a road (e.g., determine distance to vehicles in front of the autonomous vehicle, turn, apply brakes) based on the sensor data and based on the sensor data adjusted using the optimized extrinsic matrix obtained from the calibration module. In an example implementation, the autonomous operation module can determine a location of an object located in front of or next to or behind the autonomous vehicle based on a presence of the object on an image obtained by a camera onboard the autonomous vehicle and based on the optimized extrinsic matrix of the camera.
  • This patent document describes example sequential techniques for performing extrinsic camera calibration of a multi-sensor equipped vehicle. The calibration module in this patent document can use an IMU, a GPS, and an HD map of 3D lane markers to resolve the pose transforms between cameras and the IMU. Image processing techniques can be applied by the calibration module to register views of map points, views of lane lines, and/or shared views of map points between images obtained by different cameras. Shared views include any image pair of cameras that shares an overlapping field of view, whether the images were acquired at the same time or at different times, whether the cameras are of the same type or not, or whether the lenses have the same focal length or not. Constraints between shared views can maximize the agreement of the extrinsic calibration to Epipolar geometry, which can be better than HD map-only calibration due to the fact that map points may have errors. Non-linear optimization that may be performed by the calibration module on the constraints obtained from the IMU, the GPS, and the results of image process can render the pose transforms. The example multi-sensor sequential calibration methods can yield precise extrinsic calibration of multi-view, standard, wide-angle, and telephoto lens cameras with perception up to 1000 m, for an automotive application.
  • Some of the embodiments described herein are described in the general context of methods or processes, which may be implemented in one embodiment by a computer program product, embodied in a computer-readable medium, including computer-executable instructions, such as program code, executed by computers in networked environments. A computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Therefore, the computer-readable media can include a non-transitory storage media. Generally, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer- or processor-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
  • Some of the disclosed embodiments can be implemented as devices or modules using hardware circuits, software, or combinations thereof. For example, a hardware circuit implementation can include discrete analog and/or digital components that are, for example, integrated as part of a printed circuit board. Alternatively, or additionally, the disclosed components or modules can be implemented as an Application Specific Integrated Circuit (ASIC) and/or as a Field Programmable Gate Array (FPGA) device. Some implementations may additionally or alternatively include a digital signal processor (DSP) that is a specialized microprocessor with an architecture optimized for the operational needs of digital signal processing associated with the disclosed functionalities of this application. Similarly, the various components or sub-components within each module may be implemented in software, hardware or firmware. The connectivity between the modules and/or components within the modules may be provided using any one of the connectivity methods and media that is known in the art, including, but not limited to, communications over the Internet, wired, or wireless networks using the appropriate protocols.
  • While this document contains many specifics, these should not be construed as limitations on the scope of an invention that is claimed or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination. Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results.
  • Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this disclosure.

Claims (20)

What is claimed is:
1. A method of calibrating sensors, comprising:
obtaining, from a first sensor located on a vehicle, a first sensor data comprising at least a first portion of a road comprising a lane marker;
obtaining, from a second sensor located on the vehicle, a second sensor data comprising at least a second portion of the road; and
calibrating the first sensor and the second sensor based on an association between the first sensor data and the second sensor data, a stored map information of the road, and one or more values based on one or more measurements provided by one or more sensors on the vehicle.
2. The method of claim 1,
wherein the calibrating the first sensor includes obtaining a first set of parameters of the first sensor,
wherein the first set of parameters include extrinsic parameters of the first sensor, and
wherein the first set of parameters are obtained by minimizing a difference between a first pixel location of a location of the lane marker on the road determined from the first sensor data and a first expected pixel location of the location of the lane marker on the road determined from the stored map information of the road.
3. The method of claim 2, wherein the difference between the first pixel location and the first expected pixel location is minimized by adjusting a previously known third set of parameters of the first sensor.
4. The method of claim 2, wherein the first expected pixel location is determined from the stored map information of the road, a pose value of an inertial measurement (IM) device based on measurements provided by the IM device and a global positioning system (GPS) device, a matrix that describes optical characteristics of the first sensor, and a previously known third set of parameters of the first sensor.
5. The method of claim 1,
wherein the calibrating the second sensor includes obtaining a second set of parameters of the second sensor,
wherein the second set of parameters include extrinsic parameters of the second sensor, and
wherein the second set of parameters are obtained by adjusting a previously known fourth set of parameters of the second sensor that causes a matrix multiplication of an equation to equal zero, and
wherein the equation describes a constraint between the first sensor and the second sensor.
6. The method of claim 5, wherein the equation is based on:
a first matrix that describes a first ray from the first sensor to a first pixel location of a location of the lane marker on the road determined from the first sensor data,
a second matrix that describes a second ray from the second sensor to a second pixel location of the location of the lane marker on the road determined from the second sensor data, and
a third matrix that describes a relationship between the first pixel location and the second pixel location.
7. The method of claim 6,
wherein the first sensor data and the second sensor data are obtained at a same time, and
wherein the third matrix is based on a previously known third set of parameters of the first sensor and the previously known fourth set of parameters of the second sensor.
8. The method of claim 6,
wherein the first sensor data and the second sensor data are obtained at different times, and
wherein the third matrix is based on a previously known third set of parameters of the first sensor, the previously known fourth set of parameters of the second sensor, a first pose value of an inertial measurement (IM) device when the first sensor data is obtained, and a second pose value of the IM device when the second sensor data is obtained.
9. The method of claim 6, wherein the first matrix is based on intrinsic parameters of the first sensor and the first pixel location.
10. The method of claim 6, wherein the second matrix is based on intrinsic parameters of the second sensor and the second pixel location.
11. A system for calibrating sensors, the system comprising a processor configured to:
obtain, from a first sensor located on a vehicle, a first sensor data comprising at least a first portion of a road comprising a lane marker;
obtain, from a second sensor located on the vehicle, a second sensor data comprising at least a second portion of the road; and
calibrate the first sensor and the second sensor based on an association between the first sensor data and the second sensor data, a stored map information of the road, and one or more values based on one or more measurements provided by one or more sensors on the vehicle.
12. The system of claim 11, wherein the obtain the first sensor data, the obtain the second sensor data, and the calibrate the first sensor and the second sensor are performed while the vehicle is driven on the road.
13. The system of claim 12, wherein the vehicle is driven between a pre-defined starting location and a pre-defined ending location on the road.
14. The system of claim 11, wherein the first sensor and the second sensor include a first camera and a second camera, respectively.
15. The system of claim 14, wherein the first camera and the second camera have overlapping field of views.
16. A non-transitory computer readable storage medium having code stored thereon, the code, when executed by a processor, causing the processor to implement a method comprising:
obtaining, from a first sensor located on a vehicle, a first sensor data comprising at least a first portion of a road comprising a lane marker;
obtaining, from a second sensor located on the vehicle, a second sensor data comprising at least a second portion of the road; and
calibrating the first sensor and the second sensor based on an association between the first sensor data and the second sensor data, a stored map information of the road, and one or more values based on one or more measurements provided by one or more sensors on the vehicle.
17. The non-transitory computer readable storage medium of claim 16, wherein the lane marker includes a solid line on the road.
18. The non-transitory computer readable storage medium of claim 17, wherein the stored map information includes world coordinates of the solid line at an interval.
19. The non-transitory computer readable storage medium of claim 16, wherein the lane marker includes a lane block from a plurality of lane blocks on the road.
20. The non-transitory computer readable storage medium of claim 19,
wherein a first pixel location of a location of the lane marker on the road determined from the first sensor data, and
wherein the first pixel location of the location of the lane marker includes the first pixel location of a corner of the lane block.
US18/349,783 2021-01-15 2023-07-10 Multi-sensor sequential calibration system Pending US20230356734A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/349,783 US20230356734A1 (en) 2021-01-15 2023-07-10 Multi-sensor sequential calibration system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/150,271 US11702089B2 (en) 2021-01-15 2021-01-15 Multi-sensor sequential calibration system
US18/349,783 US20230356734A1 (en) 2021-01-15 2023-07-10 Multi-sensor sequential calibration system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US17/150,271 Continuation US11702089B2 (en) 2021-01-15 2021-01-15 Multi-sensor sequential calibration system

Publications (1)

Publication Number Publication Date
US20230356734A1 true US20230356734A1 (en) 2023-11-09

Family

ID=82365431

Family Applications (2)

Application Number Title Priority Date Filing Date
US17/150,271 Active 2041-07-18 US11702089B2 (en) 2021-01-15 2021-01-15 Multi-sensor sequential calibration system
US18/349,783 Pending US20230356734A1 (en) 2021-01-15 2023-07-10 Multi-sensor sequential calibration system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US17/150,271 Active 2041-07-18 US11702089B2 (en) 2021-01-15 2021-01-15 Multi-sensor sequential calibration system

Country Status (2)

Country Link
US (2) US11702089B2 (en)
CN (1) CN114764138A (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3819665B1 (en) * 2019-11-06 2022-01-19 Yandex Self Driving Group LLC Method and computer device for calibrating lidar system
AU2021204030A1 (en) 2020-06-28 2022-01-20 Beijing Tusen Weilai Technology Co., Ltd. Multi-sensor calibration system
US12172638B2 (en) * 2021-07-19 2024-12-24 Embark Trucks, Inc. Dynamically modifiable map
US20230049084A1 (en) * 2021-07-30 2023-02-16 Gopro, Inc. System and method for calibrating a time difference between an image processor and an intertial measurement unit based on inter-frame point correspondence
US11898873B2 (en) * 2021-08-31 2024-02-13 Zoox, Inc. Calibrating multiple inertial measurement units
US12391265B2 (en) * 2021-09-30 2025-08-19 Zoox, Inc. Pose component
US12112506B2 (en) * 2022-03-07 2024-10-08 GM Global Technology Operations LLC System for calibrating extrinsic parameters for a camera in an autonomous vehicle
US12447992B2 (en) * 2022-07-07 2025-10-21 Gm Cruise Holdings Llc Multiple sensor calibration in autonomous vehicles performed in an undefined environment
CN116758169A (en) * 2023-08-01 2023-09-15 北京地平线信息技术有限公司 Multi-camera external parameter calibration methods, devices, storage media and electronic equipment
US20250347519A1 (en) * 2024-05-08 2025-11-13 Zoox, Inc. Vehicle localization and mapping based on sensor data eliability determinations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190385360A1 (en) * 2018-06-14 2019-12-19 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for updating a high-resolution map based on binocular images
US20200027241A1 (en) * 2018-07-19 2020-01-23 GM Global Technology Operations LLC Auto-calibration for vehicle cameras
US20200193643A1 (en) * 2018-12-13 2020-06-18 Lyft, Inc. Camera Calibration Using Reference Map
US20230206500A1 (en) * 2020-09-04 2023-06-29 Huawei Technologies Co., Ltd. Method and apparatus for calibrating extrinsic parameter of a camera
US11908163B2 (en) * 2020-06-28 2024-02-20 Tusimple, Inc. Multi-sensor calibration system
US12189036B2 (en) * 2020-06-28 2025-01-07 Tusimple, Inc. Multi-sensor calibration system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840352B2 (en) * 2006-09-05 2010-11-23 Honeywell International Inc. Method and system for autonomous vehicle navigation
TW201025217A (en) * 2008-12-30 2010-07-01 Ind Tech Res Inst System and method for estimating state of carrier
US20100235129A1 (en) 2009-03-10 2010-09-16 Honeywell International Inc. Calibration of multi-sensor system
US20130030811A1 (en) * 2011-07-29 2013-01-31 Panasonic Corporation Natural query interface for connected car
JP6107081B2 (en) * 2012-11-21 2017-04-05 富士通株式会社 Image processing apparatus, image processing method, and program
US8913791B2 (en) * 2013-03-28 2014-12-16 International Business Machines Corporation Automatically determining field of view overlap among multiple cameras
JP6034775B2 (en) * 2013-11-29 2016-11-30 クラリオン株式会社 Camera calibration device
US9804594B2 (en) 2014-11-07 2017-10-31 Clearpath Robotics, Inc. Self-calibrating sensors and actuators for unmanned vehicles
US9916703B2 (en) 2015-11-04 2018-03-13 Zoox, Inc. Calibration for autonomous vehicle operation
US10176596B1 (en) 2017-07-06 2019-01-08 GM Global Technology Operations LLC Calibration verification methods for autonomous vehicle operations
US10983199B2 (en) 2017-08-11 2021-04-20 Zoox, Inc. Vehicle sensor calibration and localization
US10816354B2 (en) 2017-08-22 2020-10-27 Tusimple, Inc. Verification module system and method for motion-based lane detection with multiple sensors
US11067693B2 (en) 2018-07-12 2021-07-20 Toyota Research Institute, Inc. System and method for calibrating a LIDAR and a camera together using semantic segmentation
GB2579843A (en) * 2018-12-18 2020-07-08 Continental Automotive Gmbh Method and apparatus for calibrating the extrinsic parameter of an image sensor
FR3091777B1 (en) * 2019-01-11 2020-12-18 Thales Sa Method for determining a protection radius of a vision-based navigation system
CN112180362B (en) * 2019-07-05 2024-04-23 北京地平线机器人技术研发有限公司 Method and device for determining conversion pose between radar and camera and electronic equipment
TWI778368B (en) * 2020-06-08 2022-09-21 威盛電子股份有限公司 Automatic correction method of vehicle lens and vehicle lens device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190385360A1 (en) * 2018-06-14 2019-12-19 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for updating a high-resolution map based on binocular images
US20200027241A1 (en) * 2018-07-19 2020-01-23 GM Global Technology Operations LLC Auto-calibration for vehicle cameras
US20200193643A1 (en) * 2018-12-13 2020-06-18 Lyft, Inc. Camera Calibration Using Reference Map
US11908163B2 (en) * 2020-06-28 2024-02-20 Tusimple, Inc. Multi-sensor calibration system
US12189036B2 (en) * 2020-06-28 2025-01-07 Tusimple, Inc. Multi-sensor calibration system
US20230206500A1 (en) * 2020-09-04 2023-06-29 Huawei Technologies Co., Ltd. Method and apparatus for calibrating extrinsic parameter of a camera

Also Published As

Publication number Publication date
CN114764138A (en) 2022-07-19
US20220227380A1 (en) 2022-07-21
US11702089B2 (en) 2023-07-18

Similar Documents

Publication Publication Date Title
US20230356734A1 (en) Multi-sensor sequential calibration system
JP7301909B2 (en) Determination of yaw error from map data, lasers, and cameras
US10354151B2 (en) Method of detecting obstacle around vehicle
US12189036B2 (en) Multi-sensor calibration system
US11908163B2 (en) Multi-sensor calibration system
TWI695181B (en) Methods and systems for color point cloud generation
CN106462968B (en) Method and device for calibrating a camera system of a motor vehicle
US11810322B2 (en) Camera pose estimation techniques
EP2034271B1 (en) Positioning device
US20200232800A1 (en) Method and apparatus for enabling sequential groundview image projection synthesis and complicated scene reconstruction at map anomaly hotspot
CN107180215A (en) Figure and high-precision locating method are built in parking lot based on warehouse compartment and Quick Response Code automatically
US20230334696A1 (en) Camera orientation estimation
Baehring et al. Detection of close cut-in and overtaking vehicles for driver assistance based on planar parallax
EP3452780B1 (en) A method for improving position information associated with a collection of images
KR102195040B1 (en) Method for collecting road signs information using MMS and mono camera
Musleh et al. Continuous pose estimation for stereo vision based on UV disparity applied to visual odometry in urban environments
Chawla et al. Monocular vision based crowdsourced 3d traffic sign positioning with unknown camera intrinsics and distortion coefficients
WO2022133986A1 (en) Accuracy estimation method and system
Van Hamme et al. Robust visual odometry using uncertainty models
EP4300423A1 (en) Robust stereo camera image processing method and system
Duthay et al. Improving monocular visual odometry localization with wheel and inertial measurements
CN117805866A (en) Multi-sensor fusion positioning method, device and medium based on high-precision map
CN114265081A (en) Data fusion method of 2D camera and laser radar
WO2006123438A1 (en) Method of detecting planar road region and obstruction using stereoscopic image
Musleh Lancis et al. Continuous pose estimation for stereo vision based on UV disparity applied to visual odometry in urban environments

Legal Events

Date Code Title Description
AS Assignment

Owner name: TUSIMPLE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRIFFITH, SHANE DAVID;GONG, CHENGHAO;QIAN, CHENZHE;REEL/FRAME:064203/0630

Effective date: 20210112

Owner name: TUSIMPLE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNORS:GRIFFITH, SHANE DAVID;GONG, CHENGHAO;QIAN, CHENZHE;REEL/FRAME:064203/0630

Effective date: 20210112

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION COUNTED, NOT YET MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED