Udacity is one of the most popular and trusted online learning platforms. In this Review, I will share my experience along with the syllabus, projects, curriculum, pros and cons of the Udacity Computer Vision Nanodegree.
Udacity is offering personalized discount.
In this Udacity Computer Vision Nanodegree Review, I will be reviewing the Udacity Computer Vision Nanodegree that I completed in July 2022.
First of all, I will explain my background and the circumstances that led me to take the Nanodegree.
I’m a senior electrical engineering student at UTEC, a Peruvian university, at the time of writing this article.
In my short professional experience, I’ve worked as a research intern in the Quantum Matter and Devices lab at Purdue University and also as a Software Developer at a Brazilian airline called Azul.
Also, I’ve co-founded two ventures while studying. The first one is a tutoring platform for freshmen STEM students called Luteach, here I’ve been mostly involved in the backend side of the product, such as developing server-side code in python and managing AWS services.
Working on it, I developed my python skills enough to be confident to take advanced courses like the one I’m reviewing.
I’m also involved in a startup that leverages computer vision to recognize vehicle license plates to secure Neighborhoods.
In my junior year I was required to make a project on my own about any topic I wanted, at that moment I took a Digital Image Processing class that really catch my attention.
This project led me to use classical image techniques to detect license plates, and later to propose that topic as my senior undergrad thesis.
If you buy the course through the links in this article, we can earn some affiliate commission. This helps us to keep OnlineCourseing up and running for your benefit.
Table of Contents
With this background, I realized that I needed to use advanced Machine Learning topics to achieve my goal, since classical Image Processing techniques don’t suffice the requirements for such a task, mainly, due to the dependence on feature engineering.
I started researching for online programs such as Coursera’s Deep Learning Specialization course.
I took the first week, and it was more theoretical and focused on fundamentals rather than a practical approach.
Also, one difference between both programs is that Coursera’s uses TensorFlow and Udacity, PyTorch, which both are popular python libraries used in the AI community.
I had a preference for PyTorch since according to some people that have used both, the latter has a better API for designing your neural nets for getting started in this world.
Don’t take my word for it! Listen to these guys and do more research.
Syllabus of the Udacity Computer Vision Nanodegree
There are several online courses accessible to study computer vision. Additionally, one of the well-liked courses to learn computer vision is the Udacity Computer Vision Nanodegree Program.
The Nanodegree has three modules. So let’s cover all of them one by one on this Udacity Computer Vision Nanodegree Review.
The first part of the course covers Computer Vision fundamentals and gives you a notion about how feature engineering works, it was a great refresher of how to apply common Image Processing techniques like segmentation, filtering, feature detection (all this with the OpenCV python library).
Some interesting topics covered are face detection using Haar Cascades and Image Segmentation using K-means Clustering.
Which are good Image Processing techniques that don’t require neural networks to work, just really well-thought algorithms which run unsurprisingly well on just CPU.
Then, it briefly introduces you to neural networks, since this is a prerequisite to taking the course.
You get to build two mini-projects before the main one. Additionally, there are really useful extra resources and more projects to build apart from the main syllabus.
This is great since the more projects and cases you are exposed to, you’ll get a better intuition on how to tackle future problems.
One thing I liked about the program was that they give you starting points for going deeper in your understanding, references of books, blog posts, and papers.
The last ones are quite important because you will need them to build your nets from scratch and have an intuition about how to design them.
Project 1: Facial Keypoint Detection.
The project of this module consists of detecting up to 68 key points in faces.
Before starting with this project, I took the elective of Training A Neural Network because I didn’t have enough background to start working with neural nets right off the bat.
If you don’t previous knowledge about the Nanodegree you still can make it with the extra modules but be mindful of the extra time it will take to learn that first and finishing the projects.
Udacity is great at giving you extra resources at the right time, before going through a complex subject there are many resources that you can get help from.
This project is a great test of your abilities up to this point, since it encourages you to apply the basic image processing techniques for preprocessing the dataset and neural networks to actually find the key points on faces.
Though it requires you to do your own research on which are the best network architectures for achieving this.
Completing the training of the model if this project took me around 3 days and 3 more to test it several times with different architectures.
If you want to get the best performance for your models, it may take you a little bit more time since training such a large net is slow even using a GPU.
Project 2: Automatic Image Captioning.
At this point of the Nanodegree, everything seemed to flow just fine, but some topics here felt rushed, like Hyperparameters and Image captioning.
Not all of them had practice notebooks such as the previous module and there were only short videos explaining complex neural nets, even though the animations were great I felt like a more practical approach would’ve been better for explaining them.
The rest of the topics presented formulas and good intuitions on the design of the network. You’ll learn about RNN’s, LSTM’s, GRU’s and attention mechanisms needed for the project.
These networks are special because they have memory, and because of that they are able to make relations between the data you feed them.
Some applications that may sound common to you are text recommendations and weather forecasting. But now you will apply them in the context of Image processing.
Before the project, you’ll have an explanation of how you can leverage a network used to translate text from one language to another to use as a net for translating images to text.
The Automatic Image Captioning is the most complicated project and the coolest (in my opinion), here you have to study the background of the project really well since there are some concepts that are not so intuitive (word embeddings) and I had to look from other sources and also the Knowledge platform which is something like Udacity’s own Stack Overflow, where only mentors answer your questions.
Knowledge is great because most of the problems you’ll face will be answered by a mentor on the same day (at least that’s what I saw) I didn’t take any questions because the ones I had were already answered.
Whenever a part of your program fails, there is a high chance that someone had that issue and asked it on the platform.
Also, probably you’ll run out of GPU compute time, but you can ask for more, I send them a request, and they kindly gave me 128 h of GPU compute time from the initial 24h.
So I suggest experimenting as much as you can and try the model after a few hours of training (2h to 3h).
There were a lot of subtleties that aren’t mentioned anywhere in the course (neither in the papers they give you) and you kind of have to stumble to the solution.
It took several tries and bugs before the model runs correctly and gave some answer other than a man standing in the snow in all the pictures.
It was really frustrating, but I would advise reaching for help as soon as you can, it took me around a 1 week and a half to get decent results.
Project 3: Landmark Detection & Tracking.
The last module of the Nanodegree didn’t make much sense to me, since the focus is changed from Computer Vision to Robotics and probabilities.
I really hoped for more content on LSTM’s, RNN’s, and other applications of that. It feels disconnected from what you’ve been doing with neural networks, but still is well explained and has lots of exercises for you to practice.
The content was by far the best explained, it’s done by one of the founders of Udacity Sebastian Thrun, who guides you through the implementation of Graph SLAM (short for Simultaneous Location and Mapping).
You will have time to revise the basic concepts of material algebra, which are used to compute predictions and algorithms like the Kalman Filter and SLAM.
I believe that the topics presented could be useful as an introduction of how to track objects in images, but that isn’t presented.
The project here is a bit more complex implementation of what they teach you in the lessons, you’ll locate a robot on a map using only the inputs of its movement and the landmarks it sees.
At this point, you would have already built a SLAM that works in 1D, and now they ask you to do the same but for 2D.
Once you get the basics, this project is like a walk in the park. Apart from that, gives you great information about best practices and how to debug applications with python.
Udacity Computer Vision Nanodegree Project experience
Talking about the projects in this Udacity Computer Vision Nanodegree Review. Overall I found the projects very challenging, especially if you want to go the extra mile and polish them, there are an infinite amount of improvements to make.
When you get the feedback of your projects (they take around 1 day to give you the results), the reviewer presents you with several resources and ways you could’ve improved your results, Let it be better preprocessing or changing completely the neural network.
They were all worthy since I learned a lot from them, but I still need to complete the extra material that covers much more topics and other projects such as the skin cancer detector or how to deploy your models in the cloud.
Thoughts on Course Pricing and Timeline
Coming to the course pricing in this Udacity Computer Vision Nanodegree Review, I enrolled in this program in December 2020, I got the bundle subscription at $254.25 with a 75% discount due to a promotion (I enrolled in the Cloud Developer Nanodegree too, but if I would advise you against enrolling in more than one at the time, I did it because I would only have time to do it on summer and not while attending college).
To finish this Nanodegree took me 7 months.
It could have been less, but I wasn’t 100% invested in it since I was working on two side projects as a backend and DevOps developer, enrolled in another Nanodegree, and then college started consuming most of my time.
You can’t pause a bundle subscription, but if you pay on a per-month basis you can. Luckily, I tried to cancel the subscription and the customer service of Udacity offered me to pay $75 per month if I needed more time.
So after my bundled subscription ended I paid for two months at $100 each, and after I tried to cancel it I got the offer at $75.
I would say that the price (at 75% discount, at full price is not worth it) is justified given the services they offer you like project mentor reviews, GitHub, and LinkedIn profile reviews, and career counseling (now deprecated, but I managed to have one meeting before they removed it).
Furthermore, there is more material inside apart from the main syllabus that you can follow when you want.
Most of the code inside the course can serve you as boiler plates for future projects, and there are very useful functions to get started with commonly used nets such as YOLO.
The bundle subscription gives you 3 months however considering that you have other obligations as myself you may need up to 4 months to finish this Nanodegree, otherwise, you should be able to complete it on time if you meet the requirements of the course such as having an understanding of python at an intermediate or advanced level, neural network architectures and worked with a framework like PyTorch, TensorFlow, or Keras.
Pros and Cons
Now, let’s discuss some of the pros and cons of this Computer Vision Nanodegree in this Udacity Computer Vision Nanodegree Review.
Pros of the Udacity Computer Vision Nanodegree
Gives you a great background on most of the topics of Computer vision and great material too.
Mentors give valuable resources after each review.
The knowledge community is always active and can have your questions answered really fast.
The extracurricular content covers much more than the core Nanodegree, and it is worth studying it.
Cons of the Udacity Computer Vision Nanodegree
The second module felt short of content. Being an advanced course, you could expect more detail on advanced networks and more examples (in the core syllabus), though that can be solved taking the extracurricular projects.
The last module felt disconnected from the course and may not interest you as much as the previous, part of your motivation is only about computer vision.
The bundled subscription only gives you three months, but for really diving deep into the most complex topics, they should bundle it for four months.
The course does a great job with the basics of computer vision and some advanced topics, but fails to deliver more profound explanations with practical exercises on its proposition as an advanced course.
Although, it contains valuable short videos and useful code and functions to get started with any project you’d like to make in the future.
I would recommend this course to anyone interested in Computer Vision and Robotics too, since the last module of the course covers robotics-related topics and the extracurricular modules make the overall investment worth it.
Udacity is offering personalized discount.
Sebastian Escalante Ccoyllo
Electrical Engineering Senior Student. I am deeply passionate about technology, innovation, and entrepreneurship.