SlideShare ist ein Scribd-Unternehmen logo
1 von 30
A VISION-BASED LANE TRACKING
SYSTEM FOR AUTONOMOUS DRIVING
USING KALMAN FILTER
Department of Information Engineering
University of Pisa
A. Biondi – .
F. Corucci – .
2011
Project for Digital Control class
Prof. A. Balestrino, Prof. A. Landi
Aim of the project
 Build a vision-based lane tracking system using
Kalman filter
 Test Kalman filter effectiveness in a practical noisy
scenario
 Experience with some computer vision algorithms
and techniques
Project for Digital Control class - University of Pisa 2
Why lane tracking is useful?
Lane
tracking
Steering
control to
follow the
road
Camera
view
 Vision-based lane
tracking is commonly
used to build
autonomous cars
capable of following a
road without human
intervention
Project for Digital Control class - University of Pisa 3
Video acquisition
 In order to collect a
dataset to work with, we
placed a netbook on an
hand-cart and recorded
a video from the
webcam while following
a realistic circuit as best
as possible
Project for Digital Control class - University of Pisa 4
Video acquisition
Project for Digital Control class - University of Pisa 5
RGB video frame grabbed from the webcam
Image preprocessing - Overview
Project for Digital Control class - University of Pisa 6
 Some preprocessing is needed on the RGB video frame
in order to perform feature discrimination:
RGB frame
Grayscale
Equalization Filtering
Binarization
Edge detection
Grayscale conversion
Project for Digital Control class - University of Pisa 7
Grayscale video frame
Color distribution
Floor
Lane
markers
Enhancing color separation
Project for Digital Control class - University of Pisa 8
Enhanced color
separation
Resulting color distribution
Floor
Lane
markers
This was achieved using the
decorrelation stretch method,
commonly used for feature
discrimination in images.
(Correlated images does not
usually have sharp contours)
Filtering floor components
Project for Digital Control class - University of Pisa 9
Image after filtering
Resulting color distribution
Floor
Lane
markers
FILTER
This was achieved enhancing the
image contrast through color
saturation (with appropriate
thresholds).
Floor is saturated to black
Image binarization
Project for Digital Control class - University of Pisa 10
Binarized image
 The image is now a matrix of 0 and 1
Edge detection
 Once the interesting features (i.e. lane marks) are
enhanced, we detect edges in the video frame, in
order to identify lane-marks contours to be
followed
 The Canny algorithm (a derivative filter) was used
for this purpose
Project for Digital Control class - University of Pisa 11
Edge detection - Canny
Project for Digital Control class - University of Pisa 12
Frame after Canny application
The linear contours are now clearly identifiable
Line detection
 We are now able to extrapolate the analytic
equations of the lane-mark borders
 At the first frame, we have no idea of where lane
marks could be, so we need to perform a global
scan
 We used the Hough Transformation in order to
detect lines in this situation
Project for Digital Control class - University of Pisa 13
Outline on Hough transformation
Project for Digital Control class - University of Pisa 14
θ
 Allows to discriminate features
described by an analytical
equation
 It has been generalized in order
to detect arbitrarily complex
shapes
 The problem of searching for a
feature is translated in a max
problem
Example of Hough
detection on a complex
shape
More on Hough transformation
Project for Digital Control class - University of Pisa 15
θ
 The equation that ties the curve parameters 𝑎𝑖 to the
coordinates 𝑥, 𝑦 looks like:
𝑓 𝑥, 𝑦 , 𝑎1, … , 𝑎 𝑛 = 0
 Every point 𝑥𝑖, 𝑦𝑖 of the image space generates a
hyper-curve in the parametric space
 A point in the parametric space identifies uniquely a
curve in the image space
 N points of the image space generate N curves in the
parametric space with a common intersection that is the
curve on which they possibly lie on
More on Hough transformation
Project for Digital Control class - University of Pisa 16
θ
 In our case the curves in the parametric space are still
lines
𝑦 = 𝑚𝑥 + 𝑞 → 𝑓 𝑥, 𝑦 , 𝑚, 𝑞 = 0
 Given a point 𝑥𝑖, 𝑦𝑖 , the parametric equation is
𝑞 = 𝑦𝑖 − 𝑚 ∗ 𝑥𝑖
 Every intersection in the parameter space is interpreted
as a vote for the corresponding curve
 A curve that has lot of votes identifies (with a certain
confidence) a relevant feature
Line detection
Project for Digital Control class - University of Pisa 17
Hough transform parameters space
Peaks identifiyng lines
Detected lines,
superimposed on the
original RGB frame
θ
Inverse perspective transform
 Work in perspective space is not convenient
 A common way to avoid it is performing an inverse
perspective transformation (→ Bird’s Eye view)
 The achieved «virtual» top view is much more
convenient in order to measure the distances and
the angles we need
 Various auxiliary operation in our application are
performed in this space
Project for Digital Control class - University of Pisa 18
Inverse perspective transform
Project for Digital Control class - University of Pisa 19
I → W map
Inverse perspective transform
Project for Digital Control class - University of Pisa 20
Bird’s eye view («virtual» top view)
I space
W space
Perspective view
So, where’s Kalman?
 The problem with this approach is that performing a
HoughTransformation on the whole image is
computationally heavy: with a reasonable video frame
rate for a driving application, there is no time to
perform Hough between two subsequent frames
We can exploit Kalman to drastically reduce the search
area in every frame and subsequently detect lane-markers
in a computationally efficient way
Project for Digital Control class - University of Pisa 21
Kalman – the intuition
 Once we have an idea of where the lane marks are at the
first frame, a Kalman filter is used in order to predict where
the lane marks will be in the next video frame
 The system then evolves step-by-step, frame after frame,
through Kalman predictions, until this is possible (i.e.
Kalman is able to lock-on the lane mark)
 Every Kalman prediction identifies a very thin region of the
next frame, in which we can perform a local search in a very
efficient way (preprocessing, binarization, pixels fit)
 If something goes wrong and we are not able to identify the
lane mark in the predicted band, a global Hough scan is
performed
Project for Digital Control class - University of Pisa 22
Algorithm overview
Project for Digital Control class - University of Pisa 23
1-st frame
• Hough detection
• Kalman initialization
• Kalman prediction for frame no. 2
k-th frame
• Fit inside Kalman predicted band
• If fit fails -> Perform Hough Detection and init. Kalman
• Kalman prediction for frame no. K+1
…
…
…
…
Model details
𝐴 𝑘+1= 𝐹𝐴 𝑘 + 𝐺𝑢 𝑘+ 𝑤 𝑘
𝑦 𝑘 = 𝐻𝐴 𝑘+ 𝑣 𝑘
Project for Digital Control class - University of Pisa 24
 𝑨 = state vector =
𝒎
𝒒
Where 𝑚 and 𝑞 are coefficients of a line expressed as: 𝑦 = 𝑚𝑥 + 𝑞
A linear model was sufficient for our short-range view
 𝑭 = autonomous dynamic
Models the evolution of the state when no input is applied. In order to simplify the
model, considered the low velocity and the high frame rate, we have taken 𝐹 = 𝐼
 𝒖 = input vector, models the vehicle steering (here simulated)
 𝑮 = maps the input on the state
 𝒘 𝒌 = process noise ~ 𝑵(𝟎, 𝑷)
 𝒗 𝒌 = measure noise (fit error due to pixel discretization) ~ 𝑵(𝟎, 𝑸)
 𝒚 𝒌 = output (for us, output = state)
 𝑯 = maps state on the output (for us, 𝐻 = 𝐼)
Kalman algorithm
Project for Digital Control class - University of Pisa 25
 𝑃𝑘 = covariance matrix of the process noise 𝒘
 𝑄 𝑘 = covariance matrix of the measurement noise 𝒗
 𝐾𝑘 = Kalman gain
Predicted state Estimated state
Kalman-based detection
Project for Digital Control class - University of Pisa 26
Left lane-mark Right lane-mark Legend:
- Green region:
Kalman predicted
band
- Blue line:
Fitted line
- White line:
Lane-mark
contour (real
pixels)
Experimental results
Project for Digital Control class - University of Pisa 27
<video simulation>
 As shown in the simulation, Kalman is able to track
lane-marks without problems, even:
 in presence of sudden anomalous car movements
 with a simplified linear model (the curve is well tracked!)
 with a simplified model that does not consider the autonomous
dynamic of the system
 Hough recalculation is triggered only when the left lane-
mark disappears from the camera-field: a polling mode
is triggered in this situation, and the lane-mark is
locked-on again when it returns in the camera-field
Future work
Project for Digital Control class - University of Pisa 28
 Use the tracking information in order to make a
vehicle autonomously follow the circuit (a simple
PID can be used to control the steering)
 Simulation
 Implementation
 Mounting a netbook running MATLAB on a toy car equipped with a
camera
 DSP + μcontroller based implementation
Bibliography
Project for Digital Control class - University of Pisa 29
 «A massively parallel approach to real-time
vision-based road markings detection»
Alberto Broggi – University of Parma
http://www.ce.unipr.it/people/broggi/publications/detroit.pdf
 «Lane detection and Kalman-based
linear-parabolic lane tracking»
Lim, Seng,Ang, Chin -The University of Nottingham Malaysia campus
Published at IHMSC’09 - Intelligent Human-Machine Systems and Cybernetics
 «La trasformata di Hough»
Padova University, Computer vision course 07/08
http://vision.unipv.it/corsi/VisioneArtificiale-ls/lucidi/VA-06.pdf
Thank you!
Project for Digital Control class - University of Pisa 30

Weitere ähnliche Inhalte

Andere mochten auch

Алексей Кутумов, Coroutines everywhere
Алексей Кутумов, Coroutines everywhereАлексей Кутумов, Coroutines everywhere
Алексей Кутумов, Coroutines everywhereSergey Platonov
 
Automated & Autonomous Driving
Automated & Autonomous DrivingAutomated & Autonomous Driving
Automated & Autonomous DrivingRoger Atkins
 
Mercedes-Benz Autonomous Driving / Shazam Project
Mercedes-Benz Autonomous Driving / Shazam ProjectMercedes-Benz Autonomous Driving / Shazam Project
Mercedes-Benz Autonomous Driving / Shazam ProjectEkrem Şişeci
 
HYVE autonomous driving report
HYVE autonomous driving reportHYVE autonomous driving report
HYVE autonomous driving reportMichael Bartl
 
Kalman filter - Applications in Image processing
Kalman filter - Applications in Image processingKalman filter - Applications in Image processing
Kalman filter - Applications in Image processingRavi Teja
 
Roadmap to Future Roads
Roadmap to Future RoadsRoadmap to Future Roads
Roadmap to Future RoadsAli Maleki
 
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов,  C++ без исключений, часть 3Алексей Кутумов,  C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3Platonov Sergey
 
Roadmap to the Future Roads
Roadmap to the Future RoadsRoadmap to the Future Roads
Roadmap to the Future RoadsAli Maleki
 
NVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA
 
Autonomous vehicles: becoming economically feasible through improvements in l...
Autonomous vehicles: becoming economically feasible through improvements in l...Autonomous vehicles: becoming economically feasible through improvements in l...
Autonomous vehicles: becoming economically feasible through improvements in l...Jeffrey Funk
 

Andere mochten auch (11)

Алексей Кутумов, Coroutines everywhere
Алексей Кутумов, Coroutines everywhereАлексей Кутумов, Coroutines everywhere
Алексей Кутумов, Coroutines everywhere
 
Automated & Autonomous Driving
Automated & Autonomous DrivingAutomated & Autonomous Driving
Automated & Autonomous Driving
 
Mercedes-Benz Autonomous Driving / Shazam Project
Mercedes-Benz Autonomous Driving / Shazam ProjectMercedes-Benz Autonomous Driving / Shazam Project
Mercedes-Benz Autonomous Driving / Shazam Project
 
HYVE autonomous driving report
HYVE autonomous driving reportHYVE autonomous driving report
HYVE autonomous driving report
 
Kalman filter
Kalman filterKalman filter
Kalman filter
 
Kalman filter - Applications in Image processing
Kalman filter - Applications in Image processingKalman filter - Applications in Image processing
Kalman filter - Applications in Image processing
 
Roadmap to Future Roads
Roadmap to Future RoadsRoadmap to Future Roads
Roadmap to Future Roads
 
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов,  C++ без исключений, часть 3Алексей Кутумов,  C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3
 
Roadmap to the Future Roads
Roadmap to the Future RoadsRoadmap to the Future Roads
Roadmap to the Future Roads
 
NVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press Conference
 
Autonomous vehicles: becoming economically feasible through improvements in l...
Autonomous vehicles: becoming economically feasible through improvements in l...Autonomous vehicles: becoming economically feasible through improvements in l...
Autonomous vehicles: becoming economically feasible through improvements in l...
 

Ähnlich wie Implementation of a lane-tracking system for autonomous driving using Kalman filter

Smart Control of Traffic Signal System using Image Processing
Smart Control of Traffic Signal System using Image Processing Smart Control of Traffic Signal System using Image Processing
Smart Control of Traffic Signal System using Image Processing Raihan Bin-Mofidul
 
Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigationguest90654fd
 
Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigationguest90654fd
 
Anomaly Detection of Human Movements in Pedestrian walkway
Anomaly Detection of Human Movements in Pedestrian walkwayAnomaly Detection of Human Movements in Pedestrian walkway
Anomaly Detection of Human Movements in Pedestrian walkwayGokul Nathan
 
Visual odometry & slam utilizing indoor structured environments
Visual odometry & slam utilizing indoor structured environmentsVisual odometry & slam utilizing indoor structured environments
Visual odometry & slam utilizing indoor structured environmentsNAVER Engineering
 
LANE DETECTION USING IMAGE PROCESSING IN PYTHON
LANE DETECTION USING IMAGE PROCESSING IN PYTHONLANE DETECTION USING IMAGE PROCESSING IN PYTHON
LANE DETECTION USING IMAGE PROCESSING IN PYTHONIRJET Journal
 
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEM
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEMAPPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEM
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEMAshik Ask
 
Cozzella presentation ICAPMMOMI 2010
Cozzella presentation ICAPMMOMI 2010Cozzella presentation ICAPMMOMI 2010
Cozzella presentation ICAPMMOMI 2010Lorenzo Cozzella
 
Portfolio - Ramsundar K G
Portfolio - Ramsundar K GPortfolio - Ramsundar K G
Portfolio - Ramsundar K GRamsundar K G
 
Automatism System Using Faster R-CNN and SVM
Automatism System Using Faster R-CNN and SVMAutomatism System Using Faster R-CNN and SVM
Automatism System Using Faster R-CNN and SVMIRJET Journal
 
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...Poo Kuan Hoong
 
eric-yilin cv presentation
eric-yilin cv presentationeric-yilin cv presentation
eric-yilin cv presentationYujia Huang
 
Efficient Traffic Control System Presentation
Efficient Traffic Control System PresentationEfficient Traffic Control System Presentation
Efficient Traffic Control System PresentationSyed Umaid Ahmed
 
Road signs detection using voila jone's algorithm with the help of opencv
Road signs detection using voila jone's algorithm with the help of opencvRoad signs detection using voila jone's algorithm with the help of opencv
Road signs detection using voila jone's algorithm with the help of opencvMohdSalim34
 
Driver drowsiness and lane detection screenshots
Driver drowsiness and lane detection screenshotsDriver drowsiness and lane detection screenshots
Driver drowsiness and lane detection screenshotsVenkat Projects
 

Ähnlich wie Implementation of a lane-tracking system for autonomous driving using Kalman filter (20)

Smart Control of Traffic Signal System using Image Processing
Smart Control of Traffic Signal System using Image Processing Smart Control of Traffic Signal System using Image Processing
Smart Control of Traffic Signal System using Image Processing
 
Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigation
 
Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigation
 
Parking lot
Parking lotParking lot
Parking lot
 
Anomaly Detection of Human Movements in Pedestrian walkway
Anomaly Detection of Human Movements in Pedestrian walkwayAnomaly Detection of Human Movements in Pedestrian walkway
Anomaly Detection of Human Movements in Pedestrian walkway
 
Densebox
DenseboxDensebox
Densebox
 
Visual odometry & slam utilizing indoor structured environments
Visual odometry & slam utilizing indoor structured environmentsVisual odometry & slam utilizing indoor structured environments
Visual odometry & slam utilizing indoor structured environments
 
mid_presentation
mid_presentationmid_presentation
mid_presentation
 
LANE DETECTION USING IMAGE PROCESSING IN PYTHON
LANE DETECTION USING IMAGE PROCESSING IN PYTHONLANE DETECTION USING IMAGE PROCESSING IN PYTHON
LANE DETECTION USING IMAGE PROCESSING IN PYTHON
 
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEM
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEMAPPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEM
APPLICATION OF IP TECHNIQUES IN TRAFFIC CONTROL SYSTEM
 
Cozzella presentation ICAPMMOMI 2010
Cozzella presentation ICAPMMOMI 2010Cozzella presentation ICAPMMOMI 2010
Cozzella presentation ICAPMMOMI 2010
 
Portfolio - Ramsundar K G
Portfolio - Ramsundar K GPortfolio - Ramsundar K G
Portfolio - Ramsundar K G
 
Automatism System Using Faster R-CNN and SVM
Automatism System Using Faster R-CNN and SVMAutomatism System Using Faster R-CNN and SVM
Automatism System Using Faster R-CNN and SVM
 
Basics Of Kalman Filter And Position Estimation Of Front Wheel Automatic Stee...
Basics Of Kalman Filter And Position Estimation Of Front Wheel Automatic Stee...Basics Of Kalman Filter And Position Estimation Of Front Wheel Automatic Stee...
Basics Of Kalman Filter And Position Estimation Of Front Wheel Automatic Stee...
 
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...
Towards Auto-Extracting Car Park Structures: Image Processing Approach on Low...
 
Fb4301931934
Fb4301931934Fb4301931934
Fb4301931934
 
eric-yilin cv presentation
eric-yilin cv presentationeric-yilin cv presentation
eric-yilin cv presentation
 
Efficient Traffic Control System Presentation
Efficient Traffic Control System PresentationEfficient Traffic Control System Presentation
Efficient Traffic Control System Presentation
 
Road signs detection using voila jone's algorithm with the help of opencv
Road signs detection using voila jone's algorithm with the help of opencvRoad signs detection using voila jone's algorithm with the help of opencv
Road signs detection using voila jone's algorithm with the help of opencv
 
Driver drowsiness and lane detection screenshots
Driver drowsiness and lane detection screenshotsDriver drowsiness and lane detection screenshots
Driver drowsiness and lane detection screenshots
 

Mehr von Francesco Corucci

Teleoperating a robotic arm through a gyroscopic helmet
Teleoperating a robotic arm through a gyroscopic helmetTeleoperating a robotic arm through a gyroscopic helmet
Teleoperating a robotic arm through a gyroscopic helmetFrancesco Corucci
 
Real-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumReal-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumFrancesco Corucci
 
Social Network Analysis Project
Social Network Analysis ProjectSocial Network Analysis Project
Social Network Analysis ProjectFrancesco Corucci
 
A wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkA wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkFrancesco Corucci
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key DistributionFrancesco Corucci
 
P-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsP-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsFrancesco Corucci
 

Mehr von Francesco Corucci (6)

Teleoperating a robotic arm through a gyroscopic helmet
Teleoperating a robotic arm through a gyroscopic helmetTeleoperating a robotic arm through a gyroscopic helmet
Teleoperating a robotic arm through a gyroscopic helmet
 
Real-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulumReal-time PID control of an inverted pendulum
Real-time PID control of an inverted pendulum
 
Social Network Analysis Project
Social Network Analysis ProjectSocial Network Analysis Project
Social Network Analysis Project
 
A wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor networkA wearable MIDI interface using a wireless sensor network
A wearable MIDI interface using a wireless sensor network
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key Distribution
 
P-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problemsP-Systems for approximating NP-Complete optimization problems
P-Systems for approximating NP-Complete optimization problems
 

Kürzlich hochgeladen

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Kürzlich hochgeladen (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Implementation of a lane-tracking system for autonomous driving using Kalman filter

  • 1. A VISION-BASED LANE TRACKING SYSTEM FOR AUTONOMOUS DRIVING USING KALMAN FILTER Department of Information Engineering University of Pisa A. Biondi – . F. Corucci – . 2011 Project for Digital Control class Prof. A. Balestrino, Prof. A. Landi
  • 2. Aim of the project  Build a vision-based lane tracking system using Kalman filter  Test Kalman filter effectiveness in a practical noisy scenario  Experience with some computer vision algorithms and techniques Project for Digital Control class - University of Pisa 2
  • 3. Why lane tracking is useful? Lane tracking Steering control to follow the road Camera view  Vision-based lane tracking is commonly used to build autonomous cars capable of following a road without human intervention Project for Digital Control class - University of Pisa 3
  • 4. Video acquisition  In order to collect a dataset to work with, we placed a netbook on an hand-cart and recorded a video from the webcam while following a realistic circuit as best as possible Project for Digital Control class - University of Pisa 4
  • 5. Video acquisition Project for Digital Control class - University of Pisa 5 RGB video frame grabbed from the webcam
  • 6. Image preprocessing - Overview Project for Digital Control class - University of Pisa 6  Some preprocessing is needed on the RGB video frame in order to perform feature discrimination: RGB frame Grayscale Equalization Filtering Binarization Edge detection
  • 7. Grayscale conversion Project for Digital Control class - University of Pisa 7 Grayscale video frame Color distribution Floor Lane markers
  • 8. Enhancing color separation Project for Digital Control class - University of Pisa 8 Enhanced color separation Resulting color distribution Floor Lane markers This was achieved using the decorrelation stretch method, commonly used for feature discrimination in images. (Correlated images does not usually have sharp contours)
  • 9. Filtering floor components Project for Digital Control class - University of Pisa 9 Image after filtering Resulting color distribution Floor Lane markers FILTER This was achieved enhancing the image contrast through color saturation (with appropriate thresholds). Floor is saturated to black
  • 10. Image binarization Project for Digital Control class - University of Pisa 10 Binarized image  The image is now a matrix of 0 and 1
  • 11. Edge detection  Once the interesting features (i.e. lane marks) are enhanced, we detect edges in the video frame, in order to identify lane-marks contours to be followed  The Canny algorithm (a derivative filter) was used for this purpose Project for Digital Control class - University of Pisa 11
  • 12. Edge detection - Canny Project for Digital Control class - University of Pisa 12 Frame after Canny application The linear contours are now clearly identifiable
  • 13. Line detection  We are now able to extrapolate the analytic equations of the lane-mark borders  At the first frame, we have no idea of where lane marks could be, so we need to perform a global scan  We used the Hough Transformation in order to detect lines in this situation Project for Digital Control class - University of Pisa 13
  • 14. Outline on Hough transformation Project for Digital Control class - University of Pisa 14 θ  Allows to discriminate features described by an analytical equation  It has been generalized in order to detect arbitrarily complex shapes  The problem of searching for a feature is translated in a max problem Example of Hough detection on a complex shape
  • 15. More on Hough transformation Project for Digital Control class - University of Pisa 15 θ  The equation that ties the curve parameters 𝑎𝑖 to the coordinates 𝑥, 𝑦 looks like: 𝑓 𝑥, 𝑦 , 𝑎1, … , 𝑎 𝑛 = 0  Every point 𝑥𝑖, 𝑦𝑖 of the image space generates a hyper-curve in the parametric space  A point in the parametric space identifies uniquely a curve in the image space  N points of the image space generate N curves in the parametric space with a common intersection that is the curve on which they possibly lie on
  • 16. More on Hough transformation Project for Digital Control class - University of Pisa 16 θ  In our case the curves in the parametric space are still lines 𝑦 = 𝑚𝑥 + 𝑞 → 𝑓 𝑥, 𝑦 , 𝑚, 𝑞 = 0  Given a point 𝑥𝑖, 𝑦𝑖 , the parametric equation is 𝑞 = 𝑦𝑖 − 𝑚 ∗ 𝑥𝑖  Every intersection in the parameter space is interpreted as a vote for the corresponding curve  A curve that has lot of votes identifies (with a certain confidence) a relevant feature
  • 17. Line detection Project for Digital Control class - University of Pisa 17 Hough transform parameters space Peaks identifiyng lines Detected lines, superimposed on the original RGB frame θ
  • 18. Inverse perspective transform  Work in perspective space is not convenient  A common way to avoid it is performing an inverse perspective transformation (→ Bird’s Eye view)  The achieved «virtual» top view is much more convenient in order to measure the distances and the angles we need  Various auxiliary operation in our application are performed in this space Project for Digital Control class - University of Pisa 18
  • 19. Inverse perspective transform Project for Digital Control class - University of Pisa 19 I → W map
  • 20. Inverse perspective transform Project for Digital Control class - University of Pisa 20 Bird’s eye view («virtual» top view) I space W space Perspective view
  • 21. So, where’s Kalman?  The problem with this approach is that performing a HoughTransformation on the whole image is computationally heavy: with a reasonable video frame rate for a driving application, there is no time to perform Hough between two subsequent frames We can exploit Kalman to drastically reduce the search area in every frame and subsequently detect lane-markers in a computationally efficient way Project for Digital Control class - University of Pisa 21
  • 22. Kalman – the intuition  Once we have an idea of where the lane marks are at the first frame, a Kalman filter is used in order to predict where the lane marks will be in the next video frame  The system then evolves step-by-step, frame after frame, through Kalman predictions, until this is possible (i.e. Kalman is able to lock-on the lane mark)  Every Kalman prediction identifies a very thin region of the next frame, in which we can perform a local search in a very efficient way (preprocessing, binarization, pixels fit)  If something goes wrong and we are not able to identify the lane mark in the predicted band, a global Hough scan is performed Project for Digital Control class - University of Pisa 22
  • 23. Algorithm overview Project for Digital Control class - University of Pisa 23 1-st frame • Hough detection • Kalman initialization • Kalman prediction for frame no. 2 k-th frame • Fit inside Kalman predicted band • If fit fails -> Perform Hough Detection and init. Kalman • Kalman prediction for frame no. K+1 … … … …
  • 24. Model details 𝐴 𝑘+1= 𝐹𝐴 𝑘 + 𝐺𝑢 𝑘+ 𝑤 𝑘 𝑦 𝑘 = 𝐻𝐴 𝑘+ 𝑣 𝑘 Project for Digital Control class - University of Pisa 24  𝑨 = state vector = 𝒎 𝒒 Where 𝑚 and 𝑞 are coefficients of a line expressed as: 𝑦 = 𝑚𝑥 + 𝑞 A linear model was sufficient for our short-range view  𝑭 = autonomous dynamic Models the evolution of the state when no input is applied. In order to simplify the model, considered the low velocity and the high frame rate, we have taken 𝐹 = 𝐼  𝒖 = input vector, models the vehicle steering (here simulated)  𝑮 = maps the input on the state  𝒘 𝒌 = process noise ~ 𝑵(𝟎, 𝑷)  𝒗 𝒌 = measure noise (fit error due to pixel discretization) ~ 𝑵(𝟎, 𝑸)  𝒚 𝒌 = output (for us, output = state)  𝑯 = maps state on the output (for us, 𝐻 = 𝐼)
  • 25. Kalman algorithm Project for Digital Control class - University of Pisa 25  𝑃𝑘 = covariance matrix of the process noise 𝒘  𝑄 𝑘 = covariance matrix of the measurement noise 𝒗  𝐾𝑘 = Kalman gain Predicted state Estimated state
  • 26. Kalman-based detection Project for Digital Control class - University of Pisa 26 Left lane-mark Right lane-mark Legend: - Green region: Kalman predicted band - Blue line: Fitted line - White line: Lane-mark contour (real pixels)
  • 27. Experimental results Project for Digital Control class - University of Pisa 27 <video simulation>  As shown in the simulation, Kalman is able to track lane-marks without problems, even:  in presence of sudden anomalous car movements  with a simplified linear model (the curve is well tracked!)  with a simplified model that does not consider the autonomous dynamic of the system  Hough recalculation is triggered only when the left lane- mark disappears from the camera-field: a polling mode is triggered in this situation, and the lane-mark is locked-on again when it returns in the camera-field
  • 28. Future work Project for Digital Control class - University of Pisa 28  Use the tracking information in order to make a vehicle autonomously follow the circuit (a simple PID can be used to control the steering)  Simulation  Implementation  Mounting a netbook running MATLAB on a toy car equipped with a camera  DSP + μcontroller based implementation
  • 29. Bibliography Project for Digital Control class - University of Pisa 29  «A massively parallel approach to real-time vision-based road markings detection» Alberto Broggi – University of Parma http://www.ce.unipr.it/people/broggi/publications/detroit.pdf  «Lane detection and Kalman-based linear-parabolic lane tracking» Lim, Seng,Ang, Chin -The University of Nottingham Malaysia campus Published at IHMSC’09 - Intelligent Human-Machine Systems and Cybernetics  «La trasformata di Hough» Padova University, Computer vision course 07/08 http://vision.unipv.it/corsi/VisioneArtificiale-ls/lucidi/VA-06.pdf
  • 30. Thank you! Project for Digital Control class - University of Pisa 30