• Stars
    star
    143
  • Rank 251,732 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This project is an aid to the blind. Till date there has been no technological advancement in the way the blind navigate. So I have used deep learning particularly convolutional neural networks so that they can navigate through the streets.

DeepWay

This project is an aid to the blind. Till date there has been no technological advancement in the way the blind navigate. So I have used deep learning particularly convolutional neural networks so that they can navigate through the streets. Watch the video

My Approach

Collecting Training Data

My project is an implementation of CNN's, and we all know that they require a large amount of training data. So the first obstruction in my way was a correclty labeled dataset of images. So I went around my college and recorded a lot of videos(of all types of roads and also offroads).Then I wrote a basic python script to save images from the video(I saved 1 image out of every 5 frames, because the consecutive frame are almost identical). I collected almost 10000 such images almost 3300 for each class(i.e. left right and center).
Left image: 274
Right Image: 11
Center Image: 146

Training the Model

I made a collection of CNN architectures and trained the model. Then I evaluated the performance of all the models and chose the one with the best accuracy. I got a training accuracy of about 97%. I got roughly same accuracy for all the trained model but I realized that the model in which implemented regularization performed better on the test set

Interfacing with the Arduino

The next problem was how can I tell the blind people in which direction to move . So I connected my python program to an Arduino. I connected the servo motors to arduino and fixed the servo motors to the sides of an spectacle. Using Serial communication I can tell the arduino which servo motor to move which would then press to one side of the blind person's head and would indicate him in which direction to move.
This is how the modified spectacles looked like
imag0397
screenshot 252

Other Features

Detection of stop signs.

This is done using opencv. I load in a pretrained stop sign haar cascade and then identify the location of the stop sign so that the device can steer the blind person.

screenshot 250

Face Detection

This is achieved using Dlibs face detector.(trying to implement face recognition)

screenshot 249

Requirements

  1. Python 3.x
  2. Tensorflow 1.5
  3. Keras
  4. OpenCV 3.4(for loading,resizing images)
  5. h5py(for saving trained model)
  6. pyttsx3
  7. A good grasp over convolutional neural networks. For online resources refer to standford cs231n, deeplearning.ai on coursera or cs231n by standford university
  8. A good CPU (preferably with a GPU).
  9. Time
  10. datetime
  11. Patience.... A lot of it.

Installing the requirements

  1. Start your terminal of cmd depending on your os.
  2. If you have a NVidia GPU then make sure you have the prerequisites for Tensorflow GPU installation (Refer to official site). Then use this commmand
pip install -r requirements_gpu.txt
  1. In case you do not have a GPU then use this command
pip install -r requirements_cpu.txt

Train your own classifier

To train your own classifier you need to gather data for all three type(.i.e images from left side of road, right side, and center region of the road) and then run model_trainer.py(you need to change the directories of images in model_trainer.py first).I used around 10000 images. It took me about 30 minutes to train each network.

My laptop Specifiactions

  1. intel core i3
  2. 4gb ram
  3. nvidia 930m graphics card

Run the complete thing

1)Upload the arduino file on the arduino
2)Change the com number and camera number in the blind runner.py
3)run blind_runner.py
4)Enjoy

Liked it

Tell me if you liked it by giving a star. Also check out my other repositories, I always make cool stuff. I even have a youtube channel "reactor science" where I post all my work.

Read About It At

1)GEOSPATIAL MAGAZINE BLOG
2)HACKSTER.IO 3)Anyline blog

More Repositories

1

Attendance-using-Face

Face-recognition using Siamese network
Python
199
star
2

DeepWay.v2

Autonomous navigation for blind people
Python
92
star
3

Image_deionising_auto_encoder

Noise removal from images using Convolutional autoencoder
Python
38
star
4

Maze-Solving-using-A-star-algorithm

In this repository, I have made a maze solving system. The system takes in input of an maze using a camera. This Image is converted into a grid. It lets you find the shortest path between any two points
Python
23
star
5

stone_paper_scissor_defeator_using_opencv_keras

In this repository i tried to replicate a cool project by a japanese scientist who made a machine which had 100 % accuracy in defeating humans in the game of stone-paper and scissors
Python
21
star
6

QR-code-detection

This is a small little project i made few days back for qr-code detection
Python
6
star
7

video-frame-interpolation

Python
5
star
8

SE-s-Class

The code is a python implementation of a basic genetic algorithm provided by Daniel Shiffman
Python
5
star
9

code-for-self-balancing-robot-using-arduino

code for self baacing robot
4
star
10

Video-Meme-Generator

A small application for swapping your friend faces in music video(Strictly for Memes).
Python
4
star
11

object-detection-and-tracking

in this i have shared my code of a colored object detection and tracking it's position using opencv and python
Python
4
star
12

Automatic-sentry-gun-using-image-processing

IN THIS RESPOSITORY I GIVEN THE CODE FOR AUTOMATIC SHOOTING GUN, WHICH AUTOMATICALLY DETECTS THE TARGET USING IMAGE PROCESSING AND THEN THE GUN SHOOTS
Python
3
star
13

c_plus_plus

C++
2
star
14

good_image_selector

Python
2
star
15

Learning-To-Kick-Using-Genetic-Algorithms

python
Python
2
star
16

Remote-code-execution

Codeforces like remote code execution.
HTML
2
star
17

sentiment--analysis

Sentence Sentiment Analysis
Python
2
star
18

bluetooth-controlled-fan-

with this you can remotely control you rooms fans and lights
1
star
19

expense-tracker

Python
1
star
20

arduino-based-bluetooth-car

this is the code to make a arduino based bluetooth car (tutorial available on youtube)
1
star
21

Image_quality_enhancement

Python
1
star
22

obstacle-avoiding-robot-using-arduino

1
star
23

website

My personal portfolio
HTML
1
star
24

guru

Python
1
star
25

face_filters-like-snapchat

Python
1
star
26

opencv-utilities

High level functionality using the opencv library
Python
1
star
27

cryptographyalgorithms

My implementation of various cryptography algorithms in c++ and python
C++
1
star
28

automatic-lights-using-PIR-sensor

in this i have given the code for operating a automatic lighting system using arduino and PIR
1
star
29

dolly_zoom

Dolly zoom application
Python
1
star
30

color_identification_using_processing

i have made an color identification system using image processing in processing software and connecting this software with arduino serially to do physical tasks
1
star