{"id":20556505,"url":"https://github.com/somjit101/self-driving-car","last_synced_at":"2026-04-29T13:36:35.326Z","repository":{"id":179926705,"uuid":"429551204","full_name":"somjit101/Self-Driving-Car","owner":"somjit101","description":"An implementation of a simple self-driving car control using the image feed from a single dashcam. ","archived":false,"fork":false,"pushed_at":"2021-11-23T05:21:44.000Z","size":18642,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-16T18:26:25.710Z","etag":null,"topics":["autonomous-driving","autonomous-vehicles","car","cnn","cnn-keras","convolutional-layers","convolutional-neural-networks","dash-cam","deep-learning","deep-neural-networks","feature-extraction","neural-network","self-driving-car","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/somjit101.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-18T19:17:10.000Z","updated_at":"2021-11-23T05:25:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb9a4798-f4dd-443f-ba25-a06e1f6f6590","html_url":"https://github.com/somjit101/Self-Driving-Car","commit_stats":null,"previous_names":["somjit101/self-driving-car"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somjit101%2FSelf-Driving-Car","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somjit101%2FSelf-Driving-Car/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somjit101%2FSelf-Driving-Car/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somjit101%2FSelf-Driving-Car/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/somjit101","download_url":"https://codeload.github.com/somjit101/Self-Driving-Car/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242163854,"owners_count":20082224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-driving","autonomous-vehicles","car","cnn","cnn-keras","convolutional-layers","convolutional-neural-networks","dash-cam","deep-learning","deep-neural-networks","feature-extraction","neural-network","self-driving-car","tensorflow"],"created_at":"2024-11-16T03:28:34.418Z","updated_at":"2026-04-29T13:36:30.305Z","avatar_url":"https://github.com/somjit101.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Self Driving Car\nA Tensorflow implementation of a simple self-driving car control using the image feed from a single dashcam, based on this [**Nvidia Research Paper**](https://arxiv.org/pdf/1604.07316.pdf) with some changes.\n\n## Overview\n\nHere, we use images, which are **frame-by-frame captures** from the dashcam of a car and the ideal **steering angle** (the angle by which the steering is rotated by an experienced driver, in degrees) at the corresponding moments of the captures to train a Deep Neural Network to predict the momentary steering angle in a self-driving car. The output steering angles have actually been **smoothened** using a fine-tuned exponential smoothing operation to avoid any sudden movements or 'jerks' in the real-world actuation of the output. \n\nWe have highly simplied the self-driving use case. There is no **speed control, braking, proximity sensors or multi-camera setup**. We have simply implemented the steering output from the autopilot system. \n\n## Data Collection\n\n**\"**Training data was collected by driving on a wide variety of roads and in a diverse set of lighting and weather conditions. Most road data was collected in central New Jersey, although highway data was also collected from Illinois, Michigan, Pennsylvania, and New York. Other road types include two-lane roads (with and without lane markings), residential roads with parked cars, tunnels, and unpaved roads. Data was collected in clear, cloudy, foggy, snowy, and rainy weather, both day and night. In some instances, the sun was low in the sky, resulting in glare reflecting from the road surface and scattering from the windshield.**\"** ([Source](https://arxiv.org/pdf/1604.07316.pdf))\n\nThe dataset can be downloaded from [here](https://github.com/SullyChen/driving-datasets). \n\nIn this implementation we have used the [training set](https://drive.google.com/file/d/1Ue4XohCOV5YXy57S_5tDfCVqzLr101M7/view?usp=sharing) with Approximately **45,500** images, 2.2GB. One of the original datasets made in 2017, the data was recorded around Rancho Palos Verdes and San Pedro California.\n\nData format is as follows: `filename.jpg angle`\n\n## Network Architecture\n\nThe network consists of **9 layers, including a normalization layer, 5 convolutional layers and 3 fully connected layers**. \n\nThe convolutional layers were designed to perform feature extraction and were chosen empirically. We use strided convolutions in the first 3 convolutional layers with a 2×2 stride and a 5×5 kernel and a non-strided convolution with a 3×3 kernel size in the last 2 convolutional layers.\n\nThe fully connected layers are designed to function as a controller for steering.\n\n### **The overall architecture of the network can be seen below :**\n\n![Model Architecture](model_architecture.jpg)\n\n## Usage\n\nDownload the dataset from [here](https://drive.google.com/file/d/1Ue4XohCOV5YXy57S_5tDfCVqzLr101M7/view?usp=sharing) and extract into the [driving_dataset](driving_dataset) repository folder.\n\nUse `python train.py` to train the model\n\nUse `python run.py` to run the model on a live webcam feed\n\nUse `python run_dataset.py` to run the model on the dataset\n\n## References\n\n* [End to End Learning for Self-Driving Cars](https://arxiv.org/pdf/1604.07316.pdf) - Nvidia\n* [Comma AI GitHub Repository](https://github.com/commaai/research)\n* [Udacity Self-Driving Car Dataset](https://github.com/udacity/self-driving-car/tree/master/datasets)\n* [Sully Chen's Autopilot Repository](https://github.com/SullyChen/Autopilot-TensorFlow)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomjit101%2Fself-driving-car","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomjit101%2Fself-driving-car","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomjit101%2Fself-driving-car/lists"}