Design, Development and
Analysis of a Self-Driving
Car Utilizing Artificial
Intelligence and Computer
Vision Techniques
GODWIN MUTHOMI
EN201/0204/2018
INTRODUCTION
Self-driving cars are the future of transportation.
They use advanced technologies like sensors, cameras, and
artificial intelligence to navigate roads.
Self-driving cars have the potential to reduce accidents caused by
human error.
They could also improve traffic flow and reduce congestion on
roads.
The development of self-driving cars is a rapidly advancing field
with exciting possibilities for the future.
Problem Statement
• Accidents
• Congestion
• Emissions
• Accessibility
• Efficiency
Justification
• Improved safety
• Increased accessibility
• Reduced traffic congestion
• Environmental benefits
• Technological advancement
• Competitive advantage
• Regulatory support
General Objective
The main objective of the proposed project is to
develop a self-driving car that utilizes artificial
intelligence and computer vision to accurately
perceive and understand the environment around it,
leading to improved safety, reduced traffic
congestion, and increased accessibility for
individuals who are unable to drive.
Specific Objective
Develop advanced camera for car's surroundings to
transmit data to AI for analysis.
Train AI system to accurately identify and respond
to different objects and environments.
Continuously update and improve AI system for
better performance and safe navigation.
• The Raspberry Pi is a popular and versatile microprocessor used in a
Literature Review wide range of engineering projects due to its low cost and ease of use.
Raspberry PI • In the context of self-driving cars, the Raspberry Pi is extensively
used as the control system for various components such as sensors,
cameras, and central processing units (CPUs).
• The Autopilot project by Gutiérrez S, Fuentes C, and the Donkey
Car project are two examples of self-driving car projects that utilize
the Raspberry Pi as the control system.
• The Autopilot project used machine learning algorithms to train a
neural network to control the vehicle, while the Donkey Car project
is an open-source platform for creating and training autonomous
vehicles.
• The Udacity Self-Driving Car Nanodegree program also uses the
Raspberry Pi to control a self-driving car in a simulated
environment.
• Despite the widespread use of the Raspberry Pi in self-driving car
control systems, challenges remain such as the need for robust data
processing algorithms and optimal hardware configurations.
• The proposed project aims to address these challenges by utilizing
the Raspberry Pi as the control system for sensors and cameras, with
data being processed by an artificial intelligence system to make
decisions about vehicle control.
• The project will incorporate new approaches and techniques to
improve the accuracy and reliability of the control system.
Raspberrypi-webcam, Webcams are an essential component for providing visual
data to the artificial intelligence system to analyze and make
Motor, LipoBattery decisions based on.
Power Supply DC motors are used to control the movement of the vehicle,
with the Raspberry Pi acting as the control system.
LiPo batteries are a common power source for self-driving
cars, providing a lightweight and high-capacity power source
for the vehicle.
The proposed project aims to build upon existing work in the
field of self-driving cars by incorporating new approaches
and techniques to improve the accuracy and reliability of the
control system.
The project will use machine learning algorithms to train the
artificial intelligence system, and advanced sensors and
cameras to enhance the accuracy of the control system.
The project will explore new methods for power
management and efficiency, including the use of advanced
LiPo batteries and power management algorithms.
SERVO MOTOR
The Raspberry Pi microprocessor is
often used as the control system for
servo motors.
Servo motors allow for precise and
accurate control of steering
movements in self-driving cars.
Some projects have explored the use
of multiple servo motors for more
complex steering control.
Ongoing research aims to improve
the durability and reliability of servo
motors for use in self-driving cars.
• L298N motor driver module is a widely used
L298N motor component in engineering projects,
providing bidirectional control of two DC
driver module motors.
• It operates on a wide range of voltage
inputs, from 5V to 35V, making it versatile
for various applications.
• The L298N module is easy to use, with
simple control signals and easy to connect to
a Raspberry Pi.
• Its high output current capability of up to
2A per channel makes it suitable for driving
high-power motors.
• The L298N module has been used in various
projects, including robotics, automation,
and electric vehicle applications.
CONVOLUTION
NEURAL
NETWORK
•Convolutional Neural Networks (CNNs) are
commonly used in computer vision applications,
• CNNs are a type of artificial neural network
that use mathematical operations called
convolutions to process image data.
•CNNs have shown high accuracy in tasks such
as object detection, lane detection, and
pedestrian detection, making them ideal for self-
driving car applications.
•Some popular CNN architectures for self-
driving cars include the NVIDIA End-to-End
Deep Learning Model and the MobileNet
architecture.
•To use a CNN in a self-driving car project, the
network must be trained on a large dataset of
labeled images and integrated with the vehicle's
control system to make decisions about vehicle
control based on visual input.
LANE
DETECTIO Lane detection is a crucial component of self-driving car
technology, enabling the vehicle to stay within the
N designated lanes and avoid collisions.
There are various lane detection algorithms, including
the Hough Transform, Sobel operator, and Canny edge
detector, each with its own advantages and limitations.
Deep learning approaches, such as convolutional neural
networks (CNNs), have shown promising results in lane
detection, achieving high accuracy rates and robustness
to varying lighting conditions.
Lane detection can be performed using various sensors,
including cameras, LIDAR, and ultrasonic sensors, with
cameras being the most commonly used due to their cost-
effectiveness and accessibility.
Improving the accuracy and reliability of lane detection
systems is an active area of research, with ongoing efforts
to develop more robust algorithms, incorporate multiple
sensors for redundancy, and optimize system
performance for real-world scenarios.
Control is a crucial aspect of self-driving car technology,
CONTROL enabling the vehicle to make decisions and navigate
autonomously.
There are various control systems and algorithms that
have been used in self-driving car projects, including PID
(Proportional Integral Derivative) controllers and
machine learning-based approaches.
PID controllers use feedback loops to adjust vehicle
control based on sensor data, while machine learning
algorithms can learn from data and make decisions based
on patterns.
The choice of control system depends on various factors,
including the type and quality of sensors used, the
complexity of the environment, and the desired level of
autonomy.
The development of more advanced control systems and
algorithms is a key area of research in the field of self-
driving cars, with the goal of improving safety, efficiency,
and accessibility of transportation.
METHODOLOGY
The project aims to develop a self-driving car system using computer vision and AI.
A literature review will be conducted to explore existing technologies and approaches.
Hardware and software setup will be acquired and assembled.
Data will be collected for training and validating CNN models for lane detection and traffic
sign recognition.
CNN models will be developed and optimized using transfer learning, data augmentation,
and hyperparameter tuning.
The CNN models will be integrated with the control system for testing in different
scenarios.
The system's performance will be improved and optimized by refining the CNN models and
adjusting the control parameters.
Design the system architecture using Raspberry Pi and necessary
hardware components
Program the lane detection algorithm using OpenCV
libraries in Python to detect lane markers and calculate
steering angle
Program the traffic sign detection algorithm using
OpenCV libraries in Python to detect and recognize
traffic signs
Develop the control algorithm using Python
programming language to take inputs from the lane and
traffic sign detection algorithms, calculate the
appropriate speed and steering angle, and control the DC
and servo motors
Test and debug the system to ensure it performs as
expected in a controlled environment
Optimize algorithms to perform accurately and reliably
in real-world scenarios
Incorporate machine learning techniques such as
convolutional neural networks to improve the accuracy of
the detection algorithms.
Implementation and testing
Setting up AWS services, including Amazon SageMaker, S3, and EC2, for training and deploying machine
learning models.
Collecting data from various sources, including open-source datasets and manual data collection using
hardware components.
Preprocessing data to remove noise, outliers, and irrelevant features and improve model accuracy.
Developing a model using Convolutional Neural Networks (CNNs) and fine-tuning it for desired accuracy.
Integrating hardware components, including Raspberry Pi, servo motor, DC motor, and camera module,
for real-time object detection and control.
Deploying the trained model to Amazon EC2 instances for real-time object detection, optimized for fast
inference time.
Testing and evaluating the system based on accuracy, inference time, and real-time control of hardware
components under different conditions, ensuring scalability and high performance using AWS services.
EXPECTED RESULTS
Lane detection aims to accurately detect and classify lanes in various driving conditions.
The design and development of cameras that can capture high-quality images is expected.
The successful training of an artificial intelligence system to accurately identify and
respond to various objects in different environments is expected.
Continual improvement of the artificial intelligence system's performance is expected.
Traffic sign detection can accurately identify and respond to various objects in different
environments, including traffic signs, enabling the self-driving car to follow traffic rules and
regulations.
Accurate detection and response to traffic signs will reduce the occurrence of accidents
caused by human error and improve traffic flow, leading to more efficient and safer
transportation systems.
PROJECT TIME PLAN
ACTIVITY JAN FEB MAR APR MAY JUNE JUL AUG
DOCUMENTATION
PROPOSAL WRITING
RESEARCH
DESIGN AND CODING
HARDWARE CONFIGURATION AND TESTING
-
-
-
FINAL PRESENTATION
PROPOSED BUDGET
S/No. ITEM QUANTITY RATE AMOUNT IN KSH.
Raspberry pi Microcomputer 1 4B - 8GB RAM 15000
LiPo Battery 1 2200mAh/35C- 2800
3S (11.1V)
Telephoto Lens for Raspberry Pi 1 16mm 10MP 8000
HQ Camera - 10MP
AWS Services 1 Sage Maker 3000
4WD RC Smart Car Chassis 1 Motor + Servo 6000
S3003 Metal Service Motor+Motor
Control
Track and Signs 2500
GRAND TOTAL 37,300
THANK
YOU🙂
QUESTIONS?