SullyChen / Caffe-Autopilot

Car autopilot software that uses C++, BVLC Caffe, OpenCV, and SFML

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Caffe-Autopilot

This software is for video demonstration purposes only. Please DO NOT use this to pilot a car!

A car autopilot system developed using C++, BVLC Caffe, OpenCV, and SFML

The model in this repository has only been trained on roads with a visible, solid yellow line divider. More models are being trained for different road types and driving conditions. These models will be uploaded when they are ready.

Video here

Datasets and models

How it works

Deep convolutional neural nets are powerful.

First, a dataset is collected using a webcam and an Arduino with a CANBUS shield to read the steering wheel angles from the OBD-II port of the car.

The images are preprocessed with Canny edge filtering and a certain threshold operation as they are collected. The purpose of the preprocessing is to make less work for the convolutional neural network by extracting the important features with image processing algorithms ahead of time.

Then, BVLC Caffe is used to train a deep convolutional neural network (specifically AlexNet).

To predict steering angles based on input images, a weighted sum of the BVLC Caffe classifier outputs is used to calculate the final angle. Some smoothing algorithms are also used to smooth the motion of the predicted steering wheel angle.

About

Car autopilot software that uses C++, BVLC Caffe, OpenCV, and SFML

License:MIT License


Languages

Language:C++ 100.0%