All Projects → apreddyy → LaneandYolovehicle-DetectionLinux

apreddyy / LaneandYolovehicle-DetectionLinux

Licence: AGPL-3.0 License
Lane depertaure and Yolo objection detection C++ Linux

Programming Languages

C++
36643 projects - #6 most used programming language
Cuda
1817 projects
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to LaneandYolovehicle-DetectionLinux

copilot
Lane and obstacle detection for active assistance during driving. Uses windowed sweep for lane detection. Combination of object tracking and YOLO for obstacles. Determines lane change, relative velocity and time to collision
Stars: ✭ 95 (+493.75%)
Mutual labels:  lane-finding, lane-detection, adas, lane-tracking
AdvancedLaneLines
Lane identification system for camera based systems.
Stars: ✭ 61 (+281.25%)
Mutual labels:  lane-finding, lane-detection, adas
dynamic-occupancy-grid-map
Implementation of A Random Finite Set Approach for Dynamic Occupancy Grid Maps with Real-Time Application
Stars: ✭ 89 (+456.25%)
Mutual labels:  cuda, adas
Self Driving Car
Udacity Self-Driving Car Engineer Nanodegree projects.
Stars: ✭ 2,103 (+13043.75%)
Mutual labels:  lane-finding, lane-detection
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (+1162.5%)
Mutual labels:  cuda, yolo
Lanenet Lane Detection
Unofficial implemention of lanenet model for real time lane detection using deep neural network model https://maybeshewill-cv.github.io/lanenet-lane-detection/
Stars: ✭ 1,690 (+10462.5%)
Mutual labels:  lane-finding, lane-detection
Viseron
Self-hosted NVR with object detection
Stars: ✭ 192 (+1100%)
Mutual labels:  cuda, yolo
lane-detection
Lane detection MATLAB code for Kalman Filter book chapter: Lane Detection
Stars: ✭ 21 (+31.25%)
Mutual labels:  lane-finding, lane-detection
conde simulator
Autonomous Driving Simulator for the Portuguese Robotics Open
Stars: ✭ 31 (+93.75%)
Mutual labels:  lane-detection, lane-tracking
Advanced-lane-finding
Advanced lane finding
Stars: ✭ 50 (+212.5%)
Mutual labels:  lane-finding, lane-detection
Virtual-Lane-Boundary-Generation
Virtual Lane Boundary Generation for Human-Compatible Autonomous Driving
Stars: ✭ 22 (+37.5%)
Mutual labels:  lane-detection, lane-tracking
lane detection
Lane detection for the Nvidia Jetson TX2 using OpenCV4Tegra
Stars: ✭ 15 (-6.25%)
Mutual labels:  cuda, lane-detection
pyRender
Lightweight Cuda Renderer with Python Wrapper.
Stars: ✭ 49 (+206.25%)
Mutual labels:  cuda
Arch-Data-Science
Archlinux PKGBUILDs for Data Science, Machine Learning, Deep Learning, NLP and Computer Vision
Stars: ✭ 92 (+475%)
Mutual labels:  cuda
rbcuda
CUDA bindings for Ruby
Stars: ✭ 57 (+256.25%)
Mutual labels:  cuda
rust-inline-cuda-tutorial
Let's jump into CUDA development with Rust
Stars: ✭ 17 (+6.25%)
Mutual labels:  cuda
YoloV3-ncnn-Raspberry-Pi-4
MobileNetV2_YOLOV3 for ncnn framework
Stars: ✭ 20 (+25%)
Mutual labels:  yolo
Fat-Clouds
GPU Fluid Simulation with Volumetric Rendering
Stars: ✭ 81 (+406.25%)
Mutual labels:  cuda
JetScan
JetScan : GPU accelerated portable RGB-D reconstruction system
Stars: ✭ 77 (+381.25%)
Mutual labels:  cuda
GPU-Pathtracer
GPU Raytracer from scratch in C++/CUDA
Stars: ✭ 326 (+1937.5%)
Mutual labels:  cuda

Advanced Lane Finding Project and Yolo Objection Detection.

Tabel of Content

1 - Algorithm Details.
2 - YOLO Object Detection.
3 - Video Output.
4 - Dependencies and Compiling.
5 - Tensorflow Static Build.

Algorithm Details.

Distortion corrected calibration image.

The code for this step is contained in the calibration.cpp Here.
Start by preparing "object points", which will be the (x, y, z) coordinates of the chessboard corners in the world. Here we are assuming the chessboard is fixed on the (x, y) plane at z=0, such that the object points are the same for each calibration image. Thus, objp is just a replicated array of coordinates, and objpoints will be appended with a copy of it every time I successfully detect all chessboard corners in a test image. imgpoints will be appended with the (x, y) pixel position of each of the corners in the image plane with each successful chessboard detection. Then use the output objpoints and imgpoints to compute the camera calibration and distortion coefficients using the calibrateCamera() function.
Example:

Pipeline.

At First, resize the image and then convert frame as Bird view and then use a combination of color and gradient thresholds to generate a binary image.
Step 1: Undisort Image.
Step 2: Binary Image.
Step 3: Take a histogram along all the columns in the lower half of the image and split histogram for two sides for each lane.
Step 4: Use the two highest peaks from histogram as a starting point for determining where the lane lines are, and then use sliding windows moving upward in the image to determine where the lane lines go.
Example:

Step 5: Identify lane-line pixels.
Find all non zero pixels.
Example:

Step 6: Fit their positions with a polynomial.
After performing 2nd order polynomial fit for nonzero pixels, drawing polyline and unwrap image the final output.
Example:

Radius of curvature of the lane and the position of the vehicle with respect to center.

Get the left and right cordinates and calculate the midpoint of lanes and use the image center as reference to calculate distance away from center.
1- LANEDETECTION::center_dist – Distance of Vechicle from center.
2- LANEDETECTION::left_curverad – Left Lane Curvature.
3- LANEDETECTION::right_curverad – Right Lane Curvature.

YOLO Object Detection.

The Tensorflow Model is trained for five classes of objects: cars, pedestrians, truck, cyclists and traffic lights.
Example:

Video Output.

The Video output can be found Here.

Dependencies and Compiling.

Environment Linux (Ubuntu 16.04 LTS).

1- CUDA 9.0. For Linux installation Guide and Requirements Here.
2- Tensorflow 1.5.0. For Building a static Tensorflow C++ library on Linux Section.
3- OpenCV 3.4 or Greater. More information can be found Here.
4- Tensorflow trained model (graph-vehicledetection.pb) is included in repository.

Tensorflow Static Build.

Prerequisite.

sudo apt-get install openjdk-8-jdk
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
wget https://github.com/bazelbuild/bazel/releases/download/0.5.4/bazel-0.5.4-installer-linux-x86_64.sh
./bazel-0.5.4-installer-linux-x86_64.sh.

Clone Tensorflow.

wget https://github.com/tensorflow/tensorflow/archive/v1.5.0.tar.gz
tar -zxf v1.5.0.tar.gz

Build Tensorflow

cd tensorflow-1.5.0 && ./configure
bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.1 --copt=-msse4.2 --config=monolithic //tensorflow:libtensorflow_cc.so.
./tensorflow/contrib/makefile/download_dependencies.sh.

Compiling.

Run ./buildlane.sh.

For Windows version Pytorch YOLO5s and trained with 24 classes Version Click Here

Thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].