Self Driving Car FAQ
https://www.udacity.com/drive/faq
FERNANDO가 정리해준 자료
The main point of this course is not knowing everything, but knowing the basic concepts and how to apply it when necessary. Then you can work in the most varied areas of the self-driving car industry.
Project 1
Here is a brief pipeline for P1:
Load 1 image
Apply grayscale()
Apply gaussian_blur()
Apply canny()
Apply region_of_interest()
Apply draw_lines()
Apply hough_lines()
Then you apply to every frame of the video All these functions are taught in the lessons. Watch every step, show the image result from every function and you will see the transformation.
Project Q&A
Join Udacity Self-Driving Car Nanodegree instructors as they guide you through project roadblockers and answer your questions live! (RECORDED)
HOUGH TRANSFORM VIDEOS
IMPROVEMENTS
Here is a link that can help you to improve the model by pre-processing the image. This technique is not premised to be approved in the project, but it can improve your results.http://akash0x53.github.io/blog/2013/04/29/RGB-Normalization/
SMOOTH LINES
One thing that you can do is to draw the lines based not only on the current frame but also on the past frames. You can create a list of parameters of the past frames and draw the lines based on the mean of these parameters.
You can do it by creating a class or just using global variables.
Hi! I'm sending you a few interesting links. Let me know if you like it :-)
A great Ted Talk by David Silver:How Self-Driving Cars Work | David Silver | TEDxWilmingtonSalon
For P2, to inspire you,
here is a link that can help you define your model and pre-process the images. This technique is not premised to be approved in the project, but it can improve your results.http://navoshta.com/traffic-signs-classification/
Project Q&A
Join Udacity Self-Driving Car Nanodegree instructors as they guide you through project roadblockers and answer your questions live! (RECORDED)
TensorFlow
Did you see this tutorial:
It's very simple and straight to the point...
And this video is great!!!
Gradient Descent Method
Here are some good links to better understand the Gradient Descent Method:
What is an intuitive explanation of gradient descent?https://www.quora.com/What-is-an-intuitive-explanation-of-gradient-descent
An Introduction to Gradient Descent and Linear Regression.https://spin.atomicobject.com/2014/06/24/gradient-descent-linear-regression/
Gradient descent.https://en.wikipedia.org/wiki/Gradient_descent
Why the gradient is the direction of steepest ascent.https://www.youtube.com/watch?v=TEB2z7ZlRAw
Activation Functions
Here is some good links to better understand the Activation Function:
What is the role of the activation function in a neural network?https://www.quora.com/What-is-the-role-of-the-activation-function-in-a-neural-network
Neural Networks (1): Basics.https://www.youtube.com/watch?v=bH6VnezBZfI
Neural networks [1.2] : Feedforward neural network - activation function.https://www.youtube.com/watch?v=tCHIkgWZLOQ
Artificial Neural Networks/Activation Functions.https://en.wikibooks.org/wiki/Artificial_Neural_Networks/Activation_Functions
Activation function.https://en.wikipedia.org/wiki/Activation_function
PIPELINE
Here is a good pipeline to follow when training neural networks:
Select a smaller subset of the training data (about 20% after shuffling)
Start with a simple model & keep on increasing the complexity until you are able to overfit the training data (>90% accuracy on the smaller training set)
Then use the larger set with augmentation and dropout/maxpooling to reduce the over fitting
DATA AGUMENTATION
Data augmentation is used to balance your data set to reduce bias towards highly represented classes. It is also used when you have a model which overfits the training data i.e. training loss is low, training accuracy is high but not for validation data. In such cases you might want to generate more diverse training samples by randomly (and sensibly) augmenting your data.
WHEN IS AUGMENTED DATA USED?
Data augmentation is used when you observe overfitting in your model. If your model is not able to generalize well to new data then you may want to perform image augmentation to capture the characteristics of the test set. Example, brightness augmentation will ensure your model sees images of different lighting conditions during training. So it won't fit itself to any one lighting condition. So my point it is, you should incorporate augmented data for training once you achieve a model which overfits i.e. low training loss but high(er) validation loss.
If your model was performing very well - don't use augmented data
If your model was performing very poorly in the first place, then first get a model architecture which overfits your training data. Then incorporate augmented data.
MAKE SURE AUGMENTATION IS HAPPENING PROPERLY
Visualize the augmentation techniques on your data by plotting some images. Make sure its happening correctly. If augmentation is only messing up the images then such data won't help your model.
Here are some links that will help you understand more about CNN's, ok?
Visualizing and Understanding Deep Neural Networks by Matt Zeiler
Convolutional Neural Networks - Ep. 8 Deep Learning SIMPLIFIED
CES 2016 NVIDIA DriveNet vs YOLO Darknet comparison - Real-Time detection
1 LINKEDIN RECOMMENDATION AND ENDORSEMENT
If it is of your interest, add me on Linkedin (if you have not already done) and then send the link to your profile here that I will make a recommendation. Make sure you have added the skills you learned in this Nanodegree and I will be able to endorse them. These recommendations will be made according to the evolution and participation of each one.
I will be very happy if you can also make a recommendation and endorse my skills. This is my Linkedin profile: linkedin.com/in/fernando-damasio/
2 FEEDBACK TIME (This is very, very important!)
I really want to be a 5-starts mentor! Although every week you send the feedback, I come here to ask for your detailed comments regarding my work. The intention is to improve my service as a mentor, okay? Here it goes:
How can I improve my mentor services?
How can I help you with your studies?
Did I ever leave you helpless in relation to the course? If so, in what situation and how could I have helped more?
Please, send me tips and suggestions...
I'm sending you a few interesting links that I read this week:
A startup that is mixing Blockchain Technology and Vehicles data:https://vinchain.io
A curated list of deep learning resources for computer vision:https://github.com/kjw0612/awesome-deep-vision
New robots can see into their future:http://news.berkeley.edu/2017/12/04/robots-see-into-their-future/
The UK government has issued new cybersecurity guidelines for smart cars:https://www.theverge.com/2017/8/6/16104688/uk-government-issued-cybersecurity-guidelines-smart-autonomous-cars
Geoffrey Hinton talk "What is wrong with convolutional neural nets ?":https://www.youtube.com/watch?v=rTawFwUvnLE
Let me know what you think :-)
FEBRUARY 21, 2018
Hi again! If you did not check in this week, please do it. It is very important to keep track of your progress, okay?
Here are more very interesting and useful links. Enjoy!!! (and let me know what you think)
[VIDEO] How to Read a Research Paper:https://www.youtube.com/watch?v=SHTOI0KtZnU
[ARTICLE] Volvo just showcased its new Tesla-killer:https://nordic.businessinsider.com/volvo-just-showcased-its-new-tesla-killer-2017-10/
[GITHUB] Curated list of awesome lists:https://github.com/sindresorhus/awesome
[CHALLENGE] Robust Vision Challenge:http://www.robustvision.net
FEBRUARY 28, 2018
Hi again! If you did not check in recently, please do it. It is very important to keep track of your progress and this way I can help you more.
Let me know,
- Which lessons and projects you've completed this week?
- Are you stuck? How can I help you?
- Are you having problems with Time Management?
Here are more very interesting and useful links. Enjoy!!! (and let me know what you think)
- [VIDEO] How to Start an AI Startup
- [ARTICLE] Zero to Hero: Guide to Object Detection using Deep Learning: Faster R-CNN,YOLO,SSD
- [FUN!] TensorKart: self-driving MarioKart with TensorFlow
- [FREE BOOK] Deep Learning
Best regards,
MARCH 08, 2018
Dear student,
If you did not check in recently, please do it. It is essential to keep track of your progress and this way I can help you more. Let me know:
- Are you stuck (yes or no)? How can I help you with the lessons?
- Are you having problems with Time Management?
Two Important things:
1 LINKEDIN RECOMMENDATION AND ENDORSEMENT
If it is of your interest, add me on Linkedin (if you have not already done)
And send the link to your profile here in the chat. Make sure you have added the skills you learned in this Nanodegree and I will be able to endorse them.
These recommendations will be made according to the evolution and participation of each one. I will be pleased if you can also make a recommendation and endorse my skills.
2 FEEDBACK TIME
I want to be a 5-starts mentor! Please, send me your detailed comments regarding my work. The intention is to improve my service as a mentor, okay?
- How can I improve my mentor services? How can I help you with your studies?
- Did I ever leave you helpless on the course? If so, in what situation and how could I have helped more?
- Are you reading the links that I sent to you every week?
Best regards,
MARCH 14, 2018
Dear Student,
If you did not check in recently, please do it. It is essential to keep track of your progress and this way I can help you more.
Let me know,
- Which lessons and projects you've completed this week?
- Are you stuck? How can I help you?
- Are you having problems with Time Management?
-----LINK-----
And here is an exciting post from Udacity Blog:5 Must-Read AI Newsletter
The Algorithm: The Algorithm is sent out by the MIT Technology Review, and is read by virtually all AI professionals. It arrives in your inbox every weekday, providing brief, no-nonsense updates on AI news…
ODSC: The Open Data Science Conference (ODSC) is well known for its global events on the future of AI and Data Science. Their AccelerateAI newsletter is a great insider source of information on the commercial applications of AI…
Data Elixir: Data Elixir is put together by Lon Riesberg, a former NASA data scientist. It’s become an essential weekly read for anyone even remotely interested in AI, machine learning, or data…
AI Weekly: AI Weekly’s simple design means you can quickly scan through industry news and articles on AI tools and hardware. Its “Some Inspiration” section is an excellent…
Import AI: Written by Open AI’s Jack Clark, Import AI is a weekly, bare-bones text newsletter. Its succinct news summaries of major events are highly recommended, as is Jack’s commentary providing context on every story…
Don’t wait. Subscribe to these newsletters now! You’ll stay informed and you’ll always have a view on the latest AI developments.
MARCH 21, 2018
If you did not check in this week, please do it. It is essential to keep track of your progress and this way I can help you more.
Let me know,
- Which lessons and projects you've completed this week?
- Are you stuck? How can I help you?
- Are you having problems with Time Management?
And here is our weekly links. Enjoy!!! And let me know your opinion:
- [VIDEO] DensePose: Dense Human Pose Estimation In The Wild
- [ARTICLE] AI, Robotics, And The Future Of Precision Agriculture
- [VIDEO] Generative Artificial Intelligence
- [ARTICLE] What's the Difference? Agile vs Scrum vs Waterfall vs Kanban
- [POST] Building a Deep Neural Net In Google Sheets
Fernando's help for Behavior Cloning Project
TIPS FOR P3
- For every image, crop it, normalize it and resize it.
- Exclude something like 70% of the data that has angles near to zero, maybe steerings <= 0.85. We have a lot of data going straight, so the model will have bias associated with going straight.
- Duplicate all the data, mirroring the image and the steering angle, this way you will have double # of images.
- Run the sim in training mode and record a lot of data in the points that your car is getting out of the track.
- Record data going in the opposite direction too...
- You can try the Nvidia architecture
- I trained my model for hundred of epochs, but not every time. After training, I was saving the weights and after I recorded more data, I preloaded the weights so that the learning would run faster... I did it a few times, and it worked!
Project Q&A
Join Udacity Self-Driving Car Nanodegree instructors as they guide you through project roadblockers and answer your questions live! (RECORDED)
LESSONS LEARNED
Here is a link to some lessons learned about the Behavioral Cloning project:https://discussions.udacity.com/t/cant-access-helpful-guide-from-paul-heraty-oct-cohort/217945
INSPIRATION
And some inspiration...https://medium.com/@MSqalli/teach-a-car-how-to-drive-b54e921f64d2#.uu1enoz1c
CNN VIDEO
These videos are great for understanding CNN:https://www.youtube.com/watch?v=FmpDIaiMIeA,https://www.youtube.com/watch?v=JiN9p5vWHDY
FILE PATH
img_file = img_file.split('/')[-1]
img_file = 'data/IMG/'+img_file.split('\\')[-1]
I'm just returning the filename without the path by using .split function. I split using '/' and '\' because I was using two different OS's to generate the data. Then, I just added 'data/IMG/' to the start of the path.
RESIZING AND CROPPING
For resizing images inside the model you can use Lambda layer & tensorflow's resize. For cropping you can use Keras' Cropping2D Layer. Here is an example:
def my_resize_function(input):
from keras.backend import tf as ktf
return ktf.image.resize_images(input, (new_height, new_width)
model = Sequential()
# crop inside the model
model.add(Cropping2D(cropping=((70, 25), (1, 1)), input_shape=(160, 320, 3)))
# re-size inside the model
model.add(Lambda(lambda x: my_resize_function(x)))
With this you won't have to make changes to drive.py. But remember these 2 methods are known to have issues in certain Keras versions. So many students opt for doing these functions outside the model if it doesn't work for them.
DATA AUGMENTATION
- You can use random brightness adjustment as a augmentation technique.
- I would suggest you use a generator and randomly decide whether or not to flip an image in every forward pass. These random selections & adjustments will mean that the distribution of steering angles will be more balanced and the images will be more diverse.
DROP OUT
Here is the best explanations I know about it:https://www.youtube.com/watch?v=G3KUvHx9GDY
If you want to know th
If you want to know the math behind it, this 11min video is great:https://www.youtube.com/watch?v=UcKPdAM8cnI
MARCH 29, 2018
Hi! This week I prepared something different. I made a collection of the main blogs and websites I follow. Here it is! Please send me suggestions on more blogs and websites related to Self-driving Cars and Machine Learning, okay? I also appreciate your feedback regarding this collection.
If you did not check in recently, please do it. It is essential to keep track of your progress and this way I can help you more.
Let me know,
- Which lessons and projects you've completed this week?
- Are you stuck? How can I help you?
- Are you having problems with Time Management?
APRIL 07, 2018
If you did not check in this week, please do it. It is essential to keep track of your progress and this way I can help you more.
Let me know,
- Which lessons and projects you've completed this week?
- Are you stuck? How can I help you?
- Are you having problems with Time Management?
LINKS: Open Datasets for Deep Learning
Image Datasets
Natural Language Processing
Audio/Speech Datasets
Others
APRIL 12, 2018
Dear Student,
1 LINKEDIN ENDORSEMENT
If it is of your interest, add me on Linkedin (if you have not already done)
and send the link to your profile here in the chat. Make sure you have added the skills you learned in this Nanodegree and I will be able to endorse them.
These recommendations will be made according to the evolution and participation of each one.
2 FEEDBACK TIME
I want to be a 5-starts mentor! Please, send me your detailed comments regarding my work. The intention is to improve my service as a mentor, okay?
- How can I improve my mentor services? How can I help you with your studies?
- Did I ever leave you helpless on the course? If so, in what situation and how could I have helped more?
- Are you reading the links that I sent to you every week?
Best regards,