Upload
britton-mcgee
View
295
Download
0
Tags:
Embed Size (px)
Citation preview
Lane Detection in OpenCL
Implementation
• CPU Code– Using C/C++ and OpenCV
• CPU + OpenCL Device Code– CPU Code: Using C/C++ and OpenCV– OpenCL Device Code: OpenCL kernels
Implementation | CPU Code
Implementation | CPU Code | Original Image & Selected ROI
Implementation | CPU Code
•Sobel Edge-Detector
•Gradient Matrix
: value of an element in gradient matrix at a given
: pixel value at a given
•
Implementation | CPU Code
Implementation | CPU Code | Lane Detection | Lane Detection Schematic
Implementation | CPU Code | Lane Detection | Line Sampling
Implementation | CPU Code | Lane Detection
•Assigning Weight to a Line
: weight assigned to a line : Neighborhood : value of element chosen by in gradient matrix
•
Implementation | CPU Code | Lane Detection• Extract High-Weight Lines
Implementation | CPU Code | Lane Detection | Lane Detection Schematic
Implementation | CPU Code
Implementation | CPU Code | Lane Tracking
• Particle Filter developed in two phases
1. Particle Filter for Tracking a Robot in 2D
2. Particle Filter for Lane Tracking
Implementation | CPU Code | Lane Tracking
• Particle Filter developed in two phases
1. Particle Filter for Tracking a Robot in 2D
2. Particle Filter for Lane Tracking
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
•Lane Tracking Schematic
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
•Motion Update / Prediction Update
•
(X, Y, ϴ): Position and Orientation of a particle
(, , ): Translational and Angular Velocities of a particle
•
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
•Measurement Update / Correction Update
•Evidence
•Likelihoods are obtained from Normalization
•
•
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
•Lane Tracking Schematic
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
Implementation | CPU Code | Lane Tracking
• Particle Filter developed in two phases
1. Particle Filter for Tracking a Robot in 2D
2. Particle Filter for Lane Tracking
Implementation | CPU Code | Lane Tracking | Particle Filter for Lane
Tracking
•Lane Tracking Schematic
Implementation | CPU Code | Lane Tracking | Particle Filter for Tracking a Robot in
2D
Implementation
• CPU Code– Using C/C++ and OpenCV
• CPU + OpenCL Device Code– CPU Code: Using C/C++ and OpenCV– OpenCL Device Code: OpenCL kernels
Implementation | CPU + OpenCL Device Code | OpenCL
•OpenCL divides any given problem into
1. Platform Model
2. Execution Model
3. Memory Model
4. Programming Model
Implementation | CPU + OpenCL Device Code | Platform Model
Implementation | CPU + OpenCL Device Code | Execution Model
Implementation | CPU + OpenCL Device Code | Memory Model
Implementation | CPU + OpenCL Device Code | Programming Model
Implementation | CPU Code
Implementation | CPU + OpenCL Device Code
Implementation | CPU + OpenCL Device Code
• Kernel 1: Lane Detection’s Device Code – Creates Lines
• Kernel 2: Lane Tracking’s Device Code– Motion Update– Measurement Update
Implementation | CPU + OpenCL Device Code | OpenCL Execution
Schematic
Implementation | CPU + OpenCL Device Code | OpenCL Execution
Schematic
• Schematic for execution on Altera FPGA