filmov
tv
Lane Detection and Tracking using classical Computer Vision techniques
Показать описание
Lane Detection is a major challenge towards making the future of self-driving cars possible. It is highly important to localize yourself on urban roads and highways.
Recently, many deep learning techniques have been developed for lane detection, however, it comes at a higher computing cost. Lane detection can also be achieved with a very high confidence using classical computer vision techniques. Tracking of the lane can make the detection smooth and can save you a lot of computation per frame. Meaning, once you have performed a polynomial fitting for pixels corresponding to each lane, you can just keep track of that lane within some margin of the poly fit. Computing the confidence of newly found lane in each frame can also help you make decisions such as, whether to discard the current tracking and start detection from scratch.
Few things that can improve lane detections are:
1) Color Filtering: Explore all the color spaces and combines the ones that suit your needs the best. For example, "S" channel of HSL color space does a good job at detecting yellow lane, and "L" channel does a good job at detecting white lane. LUV color space is also very interesting and its "L" channel does a good job at filtering out both yellow and white lanes.
2) Edges: Combining edge gradients direction and magnitude could help finding the lane edges. Which then combined with color thresholded images would provide a very robust lane detection.
3) Lane Extrapolation: In many cases, one lane paint fades away which makes it really difficult to detect them. One can find the confidence in lane detection and if it either decreases below a certain threshold or starts diverging away dramatically, it can then be extrapolated based on a higher confidence lane and last known good lanewidth.
Recently, many deep learning techniques have been developed for lane detection, however, it comes at a higher computing cost. Lane detection can also be achieved with a very high confidence using classical computer vision techniques. Tracking of the lane can make the detection smooth and can save you a lot of computation per frame. Meaning, once you have performed a polynomial fitting for pixels corresponding to each lane, you can just keep track of that lane within some margin of the poly fit. Computing the confidence of newly found lane in each frame can also help you make decisions such as, whether to discard the current tracking and start detection from scratch.
Few things that can improve lane detections are:
1) Color Filtering: Explore all the color spaces and combines the ones that suit your needs the best. For example, "S" channel of HSL color space does a good job at detecting yellow lane, and "L" channel does a good job at detecting white lane. LUV color space is also very interesting and its "L" channel does a good job at filtering out both yellow and white lanes.
2) Edges: Combining edge gradients direction and magnitude could help finding the lane edges. Which then combined with color thresholded images would provide a very robust lane detection.
3) Lane Extrapolation: In many cases, one lane paint fades away which makes it really difficult to detect them. One can find the confidence in lane detection and if it either decreases below a certain threshold or starts diverging away dramatically, it can then be extrapolated based on a higher confidence lane and last known good lanewidth.