Academia.eduAcademia.edu

Self Driving Car using Deep Learning Technique

2020, International Journal of Engineering Research and

Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 Self Driving Car using Deep Learning Technique Chirag Sharma S. Bharathiraja G. Anusooya Vellore Institute of Technology, Chennai Tamil Nadu, India Vellore Institute of Technology, Chennai Tamil Nadu, India Vellore Institute of Technology, Chennai Tamil Nadu, India Abstract— The biggest challenge of a self-driving car is autonomous lateral motion so the main aim of this paper is to clone drives for better performance of the autonomous car for which we are using multilayer neural networks and deep learning techniques. We will focus to achieve autonomous cars driving in stimulator conditions. Within the simulator, preprocessing the image obtained from the camera placed in the car imitate the driver’s vision and then the reaction, which is the steering angle of the car. The neural network trains the deep learning technique on the basis of photos taken from a camera in manual mode which provides a condition for running the car in autonomous mode, utilizing the trained multilayered neural network. The driver imitation algorithm fabricated and characterized in the paper is all about the profound learning technique that is centered around the NVIDIA CNN model. Keywords— Deep learning, neural network, Convolutional neural network, stimulator, NVIDIA model. I. INTRODUCTION Going by means of vehicle is at present one of the most perilous kinds of transportation with over a million passing every year around the world. As nearly all car crashes (particularly fatal ones) are caused by driver error, driverless vehicles would viably dispose of about all dangers related to driving just as driver fatalities, road safety, mobility for everyone, and injuries. The self-driving vehicle is the dormant beast that can make a huge difference. The selfdriving vehicle is a vehicle outfitted with an autopilot framework and is equipped for driving without the help of human administrator. This innovation was fabricated initially using autonomy approach yet with the progress in the field of PC vision and ai we can utilize the deep learning approach. There are a couple of troubles that need to have been met before executing self-driving car. One of the most important functionalities of a self-driving vehicle is autonomous lateral control. Autonomous lateral motion traditionally depends on image processing. The process is divided into detecting byways, locating by way centers, track planning, track following, and a control logic. The precision of such frameworks depends essentially on how well-tuned the picture processing filters are. These strategies are amazingly sensitive to assortments in lighting and are slanted to false identification. An algorithm tuned to detect lane markings in a place where it is bright and sunny may not do well in a place where it is dark and gloomy. This framework utilizes a convolutional neural system to yield controlling points dependent on street images basically the model is set up to copy human driving behavior. Since an end-to-end model doesn't take a shot at truly described standards, it is less affected by changes in lighting conditions. IJERTV9IS060247 At the end of this paper, you will try to go in detail of how to control autonomous car, we will develop a model of a car motion and will test our control design in our stimulator. II. RELATED WORK Convolutional neural networks (CNNs) have painted a whole new picture of pattern recognition; moving forward to large scale adoption of CNNs, many of the pattern recognition projects were finished with an initial stage of self-created components which were extracted and further followed by classifiers. The features we used, acquired knowledge by using training examples of growth of CNNs. This method is mostly used in image recognition as the convolution activity captures 2d nature of the specific image. Likewise, the convolution kernel peruses the entire picture by including it few parameters that peruses contrasted with the complete number of operations. In recent time and light put on the features and discoveries of CNN they are used for commercial purpose more often than they were used 20 years from now. There are a few reasons to it they are: 1) huge data sets such as ImageNet Large Scale Visual Recognition Challenge (ILSVRC) have become more accessible and can be validated. 2) CNN’s learning algorithm have been put in parallel graphics processing units which promote fast-track learning DARPA Autonomous Vehicle (DAVE) established the potential of end-to-end learning and was used to validate starting the DARPA Learning Applied to Ground Robots (LAGR) program. However, DAVE’s success was not reliable enough to support a full alternative to more modular approaches to off-road driving: its average space between crashes was about 20 m. Recently, a new application has been started at NVIDIA, which aims to build on DAVE and create a strong system that is capable of learning the whole task of line and path monitoring, without the need for manual decomposition, marking, semantic abstraction, path planning, and control. The agenda for this project is to avoid the requirement to recognize certain features, such as lane markings, guardrails, or other cars. Pomerleau did a fabulous work by creating DAVE-2 which was done when he bought together autonomous land vehicle in neural network dated in 1989. It featured how a trained neural network could run a vehicle on roads. III. OBJECTIVE In this paper, we will do the writing overview of selfsufficient self-driving vehicles. We will probably comprehend and get settled with the activity of a self-driving www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 248 Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 vehicle utilizing deep learning calculations, for example, NN and CNN. The self-driving car is one of the biggest and the most interesting topic these days, the industry will continue to need outstanding engineers to produce innovative solutions for driving. In this paper, our objective is to train and test the manual functioning of the car which will be done with the help of image processing and will make a model which we will run in our stimulator, after successfully training the model will make our car run on the different track and will try to decrease the error rate as much as possible and make our vehicle run productively in the various track. pictures caught in a recreated situation (street, markers, scene) are a decent estimate of pictures that could be caught in reality. The stimulator additionally gives security and convenience. Information assortment isn't troublesome we can gather information effectively, and if the model fails then there is no risk to life. To study and improve different model structures a stimulator is the best stage. We can implement our model afterward in a real car with real cameras, but for that, we should have to make it successful run efficiently in our stimulator. [1] VI. IV. WORKING PRINCIPLE OF CONVOLUTIONAL NEURAL NETWORK (CNN) CNN every image is represented in the form of pixel values and it compares images piece by piece. It is commonly used to examine visual pictures by handling information with a grid-like topology. CNN has the following layers: BEHAVIORAL CLONING [1] Behavioral cloning is a technique by which subpsychological aptitudes like - perceiving objects, understanding while simultaneously performing an action can be captured and imitated in a computer program. The skills performed by human entertainers are recorded alongside the circumstance that offered rise to the activity. The learning program yields a lot of rules that reproduce skilled behavior. This method is used to create automated control structures for complex tasks where the classical control view is inadequate. In simple words, the work of behavioral cloning is to gather the information and train the model to impersonate the behavior with the data that has been collected. FIGURE 1: LAYERS OF CNN If any of the layers fail to perform their task then the process will never be executed. In the convolutional layer we first line up the feature along with picture and then multiply the pixel value with the corresponding value of filter and then adding them up and driving them with the absolute value of pixels. Relu layer represents rectified layer unit crafted by this layer is to expel all the negative qualities from the filter picture and afterward change it with zero. The node is activated if the image is above a particular quality and it is linearly dependent on the variable considering the input is above threshold value. Image received from Relu is shrunk in the pooling layer. The actual classification is done in a fully connected layer. We take the shrieked image and up that in a single list. And then we compare that image with our previously-stored list and judge the image. The last is the output layer which gives the output of the classified image. V. WHY WE USED STIMULATOR? Driving a vehicle in a stimulator is unquestionably not equivalent to driving a vehicle in reality, there are so many similarities. Given the present condition of game designs, IJERTV9IS060247 In summary, these include Deep Neural Network(DNN) we are essentially going to download a self-driving car simulator which is open source by Udacity, we will then use this stimulator to create our very own training data for our model for driving a car through the training track inside the stimulator, as we drive the car through the stimulator we are going to take images at each instance of the drive, these images are going to represent our training dataset and the label of each specific image is the angle on which the car will turn at that given point. After that we will show all the pictures on our CNN and let her learn how to drive independently by studying our behavior as a manual driver, this key difference that our model will learn to adjust is the car's steering ability at any time, it will learn to effectively turn the steering angle to the right level based on the stimulation it finds itself in. After preparing the model we test it performance on a unique test track where the car will be driven independently. This behavioral cloning technique is very helpful and plays a big role in a real-life self-driving car as well. After learning this behavioral cloning technique, you will effectively be able to understand and even apply the science of self-driving cars. VII. NETWORK ARCHITECTURE The algorithm comprises of modules that start from collecting data which contain images, steering angles, and speed. Then came the balancing part followed by processing which is very important for the proper preparation of data entering the neural network. www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 249 Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 The car built with three cameras is situated on the left, right and one on the center. Images are collected, they collect the value of the steering wheel and speed throttle and brake at the current image as sown in figure 3. FIGURE 3: EXAMPLE OF COLLECTED IMAGE FIGURE 2: BLOCK DIAGRAM OF DRIVER IMITATE ALGORITHM Three technique was used to preprocess the data 1. Normalization 2. Argumentation 3. Cropping the image so that unwanted data like the sky and hood of the car will remove. The multilayer neural network model which is the key part of the driver cloning algorithm. It consists of 5 convolutional layers, one leveling layer, flatten layer, and 3 fully connected layers. The first 5 layers are monitored with the ELU function. Then the MSE and Adam optimizer adjust the hyperparameters. The MSE (mean square error) limits the distinction among the predicted steering angle and the actual steering angle. The last is the training and the validation in which the data is divided into two sets, 80% training, and 20% validation. A. Collecting data We are going to drive our car through the stimulator using our keyboard keys. The more we drive the car precisely the more accuracy will come in our model i.e. cloning the behavior and hence the term called behavioral cloning. We downloaded the simulator provided by Udacity organization which is open-source. There is another opensource stimulator also which is available for this purpose for example air sim which is based on an unreal engine. We have to train the model by driving the car with the help of our keyboard button as we use to do in our video games. This track is organized in a manner to provoke the neural network to conquer sharp turns. The main thing to remember is to attempt to drive the car in the center of the road to ensure a balanced dataset. IJERTV9IS060247 FIGURE 4: EXAMPLE OF CSV FILE The steering angle is labeled from 1 to -1 where 1 is for the right turn, -1 is for the left turn, and 0 denotes that the car is moving in the straight path. Here the vertical axis specifies the values of our histogram i.e. frequency of each steering angle during stimulation. B. Balancing data In the chart, we can see that we have so many 0 steering angles i.e. the recursion of 0 is higher. This will create a problem by making our model biased toward driving down straight. This would cause data imbalance. To overcome this problem, we will improve this by eliminating all the samples above a given threshold so that the data will not be biased in driving straight all the time. www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 250 Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 FIGURE 7: PREPROCESSED IMAGE FIGURE 5: BAR GRAPH OF STEERING ANGLE C. Reprocessing data This is one of the important steps, as we can see that in our image there is a lot of areas which are not of our use or we can say that it isn't imperative to concentrate on, so we wiped out from the image. Features like sky mountain which is there in the picture and the hood on the vehicle in the base. These portions are not at all relevant for our car to determine steering angles. So, we cropped this by using simple NumPy array slicing. As we can clearly see in our image that the image of axis 160x300 in which the height from 160 to 135 is the hood of the car and the range from 60 to 0 is the sky and landscape which is not of any use so we removed that portion from the photo and set its axis from 60 to 135. This will allow to concentrate more on significant features. D. Model In behavioral cloning, our dataset is more complex than any other dataset because now we are dealing with images having dimensions 200x66. The popular model use foe behavioral cloning is the NVIDIA model and it also has to be implemented in real-time self-driving cars. FIGURE 8: OUR MODEL FOR BEHAVIORAL CLONING FIGURE 6: CROPPED IMAGE The next step is to change the color space of the image, this is important for preprocessing because the model we use recommends that we use YUV color space where Y stands for luminosity or brightness of the image and UV represent chromium which adds color. We show a processed image by adding gaussian blur technique which helps in smoothing and reducing noise of the image. IJERTV9IS060247 This model will work in the following steps. Step 1: Normalization layer (hard-coded) divided by 127.5 and subtract by 1. Step 2: Convolutional layers with 24,36,48 filters and 5x5 kernel and stride of 2. Step 3: 2 Convolutional layers with 64 filters, 3x3 kernel, and stride 1. Step 4: A flatten layer. Step 5: 3 fully connected layer with an output size of 100,50,10. Step 6: final output layer that gives the steering layer. www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 251 Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 to a conclusion that the model portrays more of general qualities. FIGURE 11: TRAINING AND VALIDATION FIGURE 9: MODEL SEQUENCE Next, we did the training process and validate by using the epochs. Here we perform cycle of 30 epochs and each batch contains 100 elements which helps in decreasing the loss which is shown in fig. 10. After applying the above method here are the results, the car is running on its track and the result which can observe that in the right-hand side corner there is a speedometer. The trained model can successfully control the car in different, unknown tracks. The model can do laps consistently without failing. With a bigger training dataset comprising of various scenarios, the models’ capacity to remain in autonomous mode will increase. Test runs can be found at https://youtu.be/H50cCrUiOqc . FIGURE 12: DRIVING IN AUTONOMOUS MODE CONCLUSION FIGURE 10: EPOCH WITH LOSS VALUE RESULT Behavioral cloning results in a simulated driving scenario behavioral cloning we stimulate driving scenarios which are implemented using CNN in which we use activation function which is Elu. Elu function uses mean square of error loss which is used for validating data. As we had expected, performance after the training of the data is better but the two values of trained and tested date are very close which lead us IJERTV9IS060247 This paper gives one methodology under the stimulated condition for self-governing driving the methodologies use deep learning strategies and end to end figuring out how to accomplish copying of vehicles. The Nvidia neural network is the main frame of the driver cloning algorithm. It is consisting of five convolutional layers one leveling layer and four fully connected layers. The output we receive is the steering angle. The result its use of autonomous mode is successful autonomous driving along a predefined stimulated path through which the model was trained using smaller data sets. It ought to be stressed that all the data expected to train the system are independently created in manual mode, thus creating their own databases. We can improve our method by using a better stimulus generalization. Deficient generalizability happens as an outcome of little database in www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 252 Published by : http://www.ijert.org International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 9 Issue 06, June-2020 which controls its application to a natural situation. As though now the car in autonomous mode is running really good along a predefined stimulator route. REFERENCES [1] Nicolas Gallardo, “Autonomous Decision Making for a Driver-less [2] [3] [4] [5] [6] [7] Car”, 2017. S. Liu et al., Creating Autonomous Vehicle Systems, Morgan Claypool Publishers, 2019 D. Bemstcin, and A. Kamhauser, (2012) “An Introduction to MapMatching far Personal Navigation Assistants”, Princeton University, Princeton, New Jersey, August 2012 Joshi and M. R. James, “Generation of accurate lane-level maps from coarse prior maps and lidar,” 2014 Qudsia Memon , Shahzeb Ali, Wajiha Shah, “Self-Driving and DriverRelaxing Vehicle”, 2016. Naveen S Yeshodara, 2Nikhitha Kishore, “Cloud Based Self Driving Cars”, 2014 https://medium.com/swlh/behavioural-cloning-end-to-end-learning-forself-driving-cars-50b959708e59 IJERTV9IS060247 www.ijert.org (This work is licensed under a Creative Commons Attribution 4.0 International License.) 253