Lane Detection Adam Longoria

advertisement
Lane Detection
Adam Longoria
Introduction
• Project goal is to detect traffic lanes from a video feed captured
from forward facing camera on vehicle.
Previous work
• Google autonomous car
• Topic of many projects with various methods
▫
▫
▫
▫
▫
RANSAC line fitting
RANSAC Bezier spline fitting
Bezier spline rasterization and plotting
Bresenham's line rasterization
Inverse Perspective Mapping (IPM)
• Caltech Lanes
Caltech Lanes
• C++ OPEVCV real time lane detection system for single images by
fitting robust Bezier splines
• Two mode of operation
▫ Single lane mode
▫ Multiple lane mode
• 4 sequence dataset
▫ 1225 frames
http://vision.caltech.edu/malaa/software/research/caltech-lanedetection/
Caltech Lanes - DEMO
Assumptions / Constraints
•
•
•
•
•
Camera position relative to the vehicle is fixed.
Detection of lane the vehicle is currently in. (single mode)
Average lane width = 3.7m
Average car length = 4.5m
Correct internal MATLAB functions
Tasks
•
•
•
•
•
•
Inverse Perspective Mapping
Image Processing
Hough Lines Transform
Line Grouping Algorithm
Reverse Coordinate Transform
Image Post-processing
Inverse Perspective Mapping
GOAL: Bird’s eye view from gray scale image
• Control points from gray scale image are hard-coded
• Guess at pixels/meter scale
• Projective transform from control point
▫ used fitgeotrans()
▫ scaled using imref2d()
▫ imwarp()
• Output image after transform
▫ ~1.2 lanes wide x ~4 car lengths long
Inverse Perspective Mapping
Image Processing
GOAL: prepare IPM image for Hough transform
• Small Gaussian blur to reduce noise
• imadjust() to increase contrast
• Auto-thresholding using graythresh()
• im2bw() -> edge image using Prewitt filter
• imdialate() -> two structuring elements
▫ Small disk
▫ Vertical bar
Image Processing
Hough Lines Transform
GOAL: detect lane lines from processed edge image
• Use hough() to obtain rho and theta values of
lines
▫ Able to define angles of interest
• houghpeaks() to obtain top 10 peaks
• houghlines() to obtain specified lines
▫ Minlength of line = 50
▫ FillGap = 20
Hough Lines Transform
Line Grouping Algorithm
GOAL: group lines around/on
the lane to for single lines
• Bunch of math
• If statements
• Attempt to throw out bad lines
Reverse Coordinate Transform
GOAL: Convert coordinates from referenced scale bird’s eye view to
original image
• Use three sets of points for affine transform
• use maketform() to create transform matrix
• use tforminv() to get coordinates from one image to the other
Image Post-processing
GOAL: Plot line over detected lanes
on original images
• Minimal errors
• Indicate frame number
Results
Discussion
• Achievements
▫ Able to detect lanes in bird’s eye view
▫ Lines on original image needs some work
• Limitations
▫
▫
▫
▫
Camera parameters unknown
Image resolution
Contrast of lane color to road color
Weather and worldly objects
Future work
• Fix affine coordinate transfer function
• Create version to run in real time
• Modify to detect all lanes
Sources
M. Bertozzi and A. Broggi. Real-time lane and obstacle detection on
• the gold system. In Intelligent Vehicles Symposium, Proceedings of
• the IEEE, pages 213–218, 19-20 Sept. 1996.
M. Bertozzi, A. Broggi, G. Conte, and A. Fascioli. Obstacle and
• lane detection on argo. In Intelligent Transportation System, IEEE
• Conference on, pages 1010–1015, 9-12 Nov. 1997.
David A. Forsyth and Jean Ponce. Computer Vision: A modern
• approach. Prentice Hall, 2002.
U. Franke, D. Gavrila, S. Gorzig, F. Lindner, F. Puetzold, and
• C. Wohler. Autonomous driving goes downtown. Intelligent Systems
• and Their Applications, IEEE, 13(6):40–48, Nov.-Dec. 1998.
U. Franke and I. Kutzbach. Fast stereo based object detection for stop
• & go traffic. In Intelligent Vehicles Symposium, Proceedings of the
• IEEE, pages 339–344, 19-20 Sept. 1996.
end
Download