Submitting the Computer Vision Capstone Project | Udacity AI Nanodegree | Learning Intelligence 20

Daniel Bourke submits his Udacity AI Nanodegree capstone on facial keypoint detection using CNNs, achieving 82% accuracy. He walks through his architecture iterations, debugging process, and first Stack Overflow question, then outlines next steps including a tutorial and deeplearning.ai's sequence-model course.
Chapters
Hey Future Dan, don't you think that all cars are already self-driving cars? Like, you know, because I'm driving it by myself, it's already a self, myself, I myself is driving the car? No one cares. Work harder. Yeah, you're right. We've got plenty of work to do. You're so wise, future Dan. What's up guys? Welcome to Learning Intelligence 20, a video log series where I document my self-created AI master's degree and journey into the world of AI. Today's been all about convolutional neural networks. So that's been the theme of probably the last 2 weeks or 3 weeks of Learning Intelligence. I'll show you what I was reading this morning. Now this is a great blog post. It's on the Data Science Blog, and it's an intuitive explanation of convol— neural networks. And I went through all of this this morning, taking some pretty extensive notes. I won't go through all of them here, but some great takeaways. I definitely have a much better understanding of CNNs after reading this. So I'll be sure to link that in the description. And then I went over to Siraj's video, which is How to Make an Image Classifier, Intro to Deep Learning #6, which is also on convolutional neural networks. Now I did watch this a while ago, but I didn't know as much about neural networks and deep learning and convolutional neural networks since watching it. And definitely after reading that blog post, taking notes, and going back over that video by Siraj, I have a much better understanding of it. And then once I got onto that, once I had a deeper understanding, I went back to my computer vision capstone project on the Udacity term 2 of the artificial intelligence Nanodegree, and I went through a whole bunch of different iterations with different convolutional neural network architectures. So here, for example, there's iteration 27, and what do we have here? Let's see if you can see it. We have layer 1, convolutional layer, max pooling, layer 2, convolutional, max pooling, layer 3, same again, and then we had a fully connected layer, some dropout, and then some flatten, and then some fully connected layers to finish it out. And I'll show you what the project is. It's essentially trying to use computer vision to recognize some key points. I'll see if you can see on this face. How cool is that face? He's pretty shocked, hey? We got here 7 major key points, and what we're trying to do is map them as accurately as possible to those pictures. And I'll show you here what my model accuracy is at the moment. It's about 82%, and I'm pretty happy with that. I'm actually really happy with that. And we see the validation loss is— the loss is just, just under 0.1%. 0.001, and if we look up here, we have a very good model will achieve about 0.015 loss, though it's possible to get better. So I'm in the range of a very good model, which I'm pretty proud of, and I'm going to keep iterating and try and improve it for tomorrow. That's my goal for, for tomorrow. And now I've left myself some steps here of what to do next. So I've got to revise Andrew Ng's lectures on overfitting and underfitting for one of the questions there, and then I'm going to go through step 7 and see what is actually being plotted on these two graphs. Kind of went went through the blog post tutorial that they linked and didn't really have an in-depth understanding of what's happening here. So I'm gonna re-go over that and then fix it up. We'll see what that's like. And I'll check back in tomorrow with my progress. My first ever question on Stack Overflow. I don't know how I have never used, or I've used it to read it, but I've never used it to ask a question. So here's what I did. I'm trying to crop some faces from an image using OpenCV in Python. I posted some code and I don't know how quick it was, but it was definitely within, let's say 20 minutes or so, I got a reply back with an exact solution for the problem I had. So let me show you where I'm up to in the computer vision project. That's something cool I've got to work on next. So applying little filters, this is how Snapchat works. It detects key points in your face and then it applies filters such as sunglasses to your face. So maybe I could build a clone of Snapchat. This is where I got my model to do. You see, I could definitely do with some improving around these points. That point should be in the corner of the mouth. Same with that point. Uh, that point should be on the edge of the eyebrow, not below it. Same with this one here on Barack's face. It needs to be down on the bottom lip, and that could be more in the corner. So definitely some room for improvement. I've left myself a list of what to do for tomorrow. That's what I do every day once I've finished my work, just so I have some momentum and I can start the day off. So I've got here, comment over code in step 8, what's happening, rewrite it from scratch to further understand it, see if CNN can be improved, etc., etc. And I've also got a checklist over here on the Trello board. By the way, the Trello board's in the in the description if you want to check it out, of what I have to do. So I finished all the 8 steps, all the 8 steps that are required in the project. I could submit it now because I've technically done it all, but I want to go through and make sure it's robust. So I want to see if the CNN architecture could be improved, check to see if improved architecture improves the facial keypoint detection, aka those points, does it improve them? And then I want to revise over each of the steps, comment appropriately, submit to Udacity, and upload to GitHub when it's complete. Of course, you you'll be seeing it when it's on GitHub. And then afterwards, once I've fully done it, once it's submitted and done, I'm going to be way ahead of schedule. It's actually due in about a month from now. So we're going to have 3 weeks to play around with either the next stage of the AI Nanodegree or to do up a tutorial video on how to build one of these facial keypoint detection models yourself, as well as a blog post. So I'm actually most excited about that rather than diving into the next stage of the AI Nanodegree, because if I write about it or make a video about it, it means I understand it more. And also you get the benefit of being able to watch the video and learn for yourself, which is, which is ideally what I want to do as well. I don't want to just show you what I'm doing. I want to give back to you guys as well. Oh yeah, check out that amazing photo. Guys, if you haven't used this before, this is the Momentum Chrome extension. And look at this, you put in one major goal for the day. For example, mine was AI Nanodegree project submitted. And we can tick that off because check it out, we got it on my GitHub. I'll put the link in the description. AI Nanodegree, AINDCV Facial Keypoints, aka Facial Keypoint Detection System from Start to End, is now live on my GitHub. I've submitted the first iteration of the project to Udacity and it is currently being reviewed. Check this out. Your project is currently being, or is currently in review by Udacity reviewer. It's been a big day. And I'm very happy that I've got it submitted. There is a whole bunch of extensions that I can try on it, but I haven't gone through them yet. So what I'm doing is making sure that I've got the requirements fulfilled. And then once the requirements are fulfilled, I'm going to move on to the extensions. And once the extensions are fulfilled, or once I sort of dive into it deeper and try and build something, build something fun out of it, maybe even try and replicate a Snapchat filter or something like that, or or something along those lines. I'll show you it when it comes out. You'll see it in the near future. I'm really stoked to have submitted that. Tomorrow's plan will be a whole bunch of reading. I want some, I'm going, I've got some AI papers I want to catch up on, even Alan Turing's original artificial intelligence paper. I want to educate myself on these things and learn about kind of the history of AI so I can, I don't know, use that as a foundation to build upon in the future. I'm going to go to gym and work out. My brain needs a reset. Actually, I think I've got yoga tonight. Yes! Check it out, guys. Look at this. Meet specifications on the facial keypoint detection and real-time filtering system. Oh yeah! So I just got the email that said that my project had been reviewed and and I checked it out, I passed the first project of the Artificial Intelligence Nanodegree. Term 2, deep learning for computer vision to detect facial key points. I'm stoked. Check out this, already looking through it, there is such valuable information here from the reviewer. So thank you to Leticia from Udacity, Letty Rodri on Slack. Letty Rodri has helped me out in the past on the forums before as well. So thank you so much, Letty. Guys, I'm really, really stoked. So that means, what that means is I can go on to the next chapter of the Artificial Intelligence Nanodegree. But before I'm going to do that, I'm going to go back through the project that I did and do up a blog post/video on how you can implement a simpler— a similar, sorry, not simpler, maybe simpler, I'm not sure. I might refine my model. Similar model to what I did for the project. So you can work on these things as well. So that'll be my project over the next few weeks or so. Stay tuned for that. Otherwise, really cool thing just came out as well. If we look on here, Lex just dropped a video on artificial general intelligence. So I'll leave a link in the description to that. In the past 2 days, I checked out these videos, computer vision and deep learning for human sensing. Both very valuable from MIT and free on YouTube. Make sure you check both of those out. One last thing, my boy Andrew Ng and the team at Deep Learning AI, deeplearning.ai, sorry, have just released Course 5 of the Coursera deep learning course. This is a sequence models course. So it goes through NLP, speech recognition, all that sort of good stuff. So look, recurrent neural networks. What else do we have here? Let's find out. Natural language processing, word embeddings, all this, all these goodies, sequence models and attention mechanism. It's exciting times, guys. Exciting times. There is so much available on the internet to learn. You just have to put yourself out there and give it a go. Start building these models. I know I myself, I need to improve my model building ability, my ability to take a dataset and extract features from that before using deep learning on it. Because putting deep learning on a clean dataset is probably the easy step. So I need to step up my game in terms of the the data cleaning skills and the data extracting skills, but I'm having so much fun. And now that's going to be it for Learning Intelligence 20. What a week it's been. Next week, I'll let you know what my next steps are. I probably will go through the NLP section on the Coursera course, as well as start building out a blog post/video for computer vision pipeline. That's what I'm keen for. Time for some shoutouts of the week. Alrighty then. So these beautiful people reached out to me via one way or another on YouTube or email. I think all of these actually were YouTube comments, so thank you so much, guys. If you want to leave a comment, ask me a question, wish me good luck, I really appreciate it. It really drives me forward to keep making these videos. If you'd like to reach out to me, you can find me at daniel@mrdbourke.com or on Twitter @mrdbourke. I'll respond to you as soon as I can and do my best to answer any questions you have. First of all, in no particular order, thank you to Tamul, Tamil Nadu. Now, I hope, as always, I pronounce these names correctly. Tamil, you're a 15-year-old web developer. That is incredible, as well as working on machine learning, and you've built your own social media network. That's incredible. I checked it out briefly, and you've, you've blown me away. You're definitely inspiring me to, to keep progressing my own learning journey and build things like you are. Akhil, thank you so much, and in answering to your question so everyone else knows, I wake up about 6:30 6:30 to 7:30 between that. I don't usually set an alarm because I go to bed at a certain time and I know I'll wake up in a, in a rough window of that hour period. I spend the first couple of hours of my day reading. At the moment, I'm reading a few books. Charles Bukowski, Ham on Rye, and Homo Deus by Yuval Noah Harari. This is an incredible book. I'll put both links to these in the description. This is a fiction book on Charles Bukowski, from Charles Bukowski, amazing writer. And this one is— look at it. Can you see the thumbprint? That's essentially— it's what's next for the species of Homo sapiens. Are we going to create our next evolution? Stay tuned. After reading, I jump into coding and I go through my daily routine of at least doing 3 to 4 hours of deep work, which means focusing on one task at a time, taking no breaks, and not looking at things like my phone or whatever. So, I'm strictly focused on what's in front of me. Jade and Graham, thank you. Thank you so much for watching, guys. And as you heard previously, next week's video, probably jumping into the deeplearning.ai specialization to finish that off. That's the final course in that specialization. I'm really excited. Andrew Ng is such a great teacher, and it's all about sequence-to-sequence models, which is also another project coming up in the future in the artificial intelligence Nanodegree program term 2. I'll, of course, I'll show you guys what I'm building then. Otherwise, all the links I've talked about in the show will be in the description, and You know what to do. Keep learning. Messed that up, didn't I?
More from Daniel

Small Language Models (SLMs) Are the Future: Fine-Tuning AI That Runs on Your iPhone

Introducing Sunny - A MedGemma-Powered Skin Health Tracking App (Kaggle Competition Entry)

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 4 - Comparing the results

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 3 - Running LLMs on the RTX 4090

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 2 - Formalizing the tests

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 1 - Creating a series of tests

Local Multimodal RAG on the NVIDIA DGX Spark | Part 4 - Publishing our demo to Hugging Face

Local Multimodal RAG on the NVIDIA DGX Spark | Part 3 - Putting it all together


