Hi and welcome back to the course.
So in this section, we'll take a look at a course overview because it's a very big course.
But firstly, before we begin, let's take a step back and let's ask the question how do we do computer
vision?
What makes it possible effectively?
So you will need a programming language?
That's how we actually put together our computer vision pipelines and algorithms.
So we will need a very good programming language to do this.
And the best one right now for computer vision is definitely Python.
Now you can do a lot of the things I discuss in this course in MATLAB or C++ or Java.
However, MATLAB isn't free, and C++ and Java are much more low level and a nightmare to work with,
in my opinion, sometimes at least compared to Python.
So Python is our language of choice, and the reason for that?
I'll give some more reasons now is because it's very easy to learn and it's accessible, allowing this
language of artificial intelligence, all of the modern day data science, deep learning libraries like
PyTorch or TensorFlow are basically built to work with Python or what Python in mind, actually, even
though they were coated in C++ that they're designed to work in Python, as the Python has rep that
basically executes the C++ code underneath.
So you don't even have to know that the C++ going on under the hood and open CV has a very good Python
library, which is what we'll be using for the classical computer vision part of this course.
So when I say classical computer vision, what what am I actually talking about?
Well, basically this encompasses all of the computer vision algorithms that don't involve machine learning.
There's a lot of different techniques, mathematical techniques that we can do things like edge detection,
even some simple cascade classifiers.
Basically, I mean, they do use machine learning, to be fair.
But there's a lot of things we can do within the open CV that is considered a classical computer vision,
and it's a very important for your foundational knowledge of computer vision.
So what about deep learning?
Well, deep learning change the game, as I mentioned in the previous section, because basically all
of these traditional classical computer vision algorithms, they could only get us so far.
There's a lot of things we could do, but it's a lot of things we couldn't do.
And deep learning made it possible.
Things like image classification, where we had much more classes than we were used to, like things
like even like handwritten digits, deep learning basically dominated those benchmarks for handwritten
digits.
Then there were things like the sofar image note datasets with thousands or hundreds of classes and
deep learning basically excelled at those types of objectives.
So the reason why deep learning is taken off so much right now is mainly because of two reasons.
And when I say taken off in the last maybe 10 to five years, especially in the last five years, deep
learning has had phenomenal success in industrial and everyday applications, not just research anymore.
And that's because of libraries like TensorFlow, Carrera's and Tierno.
They kicked off the basically the deep learning revolution.
Right now, though, it's only basically PyTorch and TensorFlow that are being used.
So those are the mature depleting libraries that we have right now.
PyTorch was made by Facebook.
TensorFlow was made by Google, and Keros was a layer that sat on top of TensorFlow.
And Google has recently incorporated Keras into TensorFlow to make it much more accessible.
In my opinion, it's easier to work with.
However, you don't get the fine grained control that PyTorch offers, and the big reason why deep learning
is taking off is actually because GPUs are now so accessible and video GPUs in particular.
Even though you can use M.D., there's some libraries like Vulkan that can support MDA M.D. ziplining,
but predominantly 99 percent of deep learning is done on video CUDA GPUs on ninety nine point ninety
nine percent.
And that's because CUDA libraries allow us to train our deep learning networks much, much quicker because
of all the low level coding that I've done to make CUDA such an important library for deep learning.
So here's here's some deep learning examples you have image classification.
You can have object detection.
These are all things that ziplining excels at even deepfakes to us, but especially deepfakes.
You can also use deep learning for things like tumor identification or any anomalies in medical imaging,
as well as air transfer things like body pools estimation segmentation.
Look how good this segmentation model has worked in the scene.
And then these are things like more advanced body pose estimation that we can get a mesh around the
GLISSON and get identify each limb.
It's quite good.
And see that being played here.
So if you were to if it were to separate what's deplaning and what's classical or deplaning basically
adapts to new images quite well, assuming that it's similar to the data it was trained on classical
in computer vision, small changes and image can have big negative effects because it's basically hardcoded.
A lot of it requires us to manually tune things on these algorithms, which isn't the best.
If you have a real world situation like what are you planning?
Will accelerate actually once it's trained on various lighting conditions, deep learning basically.
Also, as I said, it requires models to be trained.
However, classical computer vision is usually as a hard coded algorithm, so it doesn't require any
training, and it runs fairly well and should be used.
Can be run in GPUs, but traditionally it's always run into CPUs because it's easier and it lends itself
naturally to x86 processors.
However, deep learning definitely requires GPU, but that's a good thing because you can get so much
computational improvement in performance or speed up using GPU hardware.
So let's take a look at our open CV outline.
So as you can see, I'm not going to read all of this because it's 40 different topics in open TV,
but we cover a wide range.
We go through all of the basics here.
So you get all the four foundational knowledge here.
Then we saw do things like edge detection.
Contouring is quite important as well.
Sling and sickle and blood detection.
Then we use horror cascade classifiers.
Perspective transforms K means clustering for dominant colors.
Image similarity comparisons.
Then there's a bunch of other things here with little trucking, with optical flow means if facial landmark
and even some simple facial recognition algorithms can be used here.
Background removal We use some OCR libraries like patents, erect an easy OCR barcode reading we can
import YOLO into open TV, Eurovision tree and run.
That's quite easy and nice to use.
We can do a bunch of other things some computational photography as well.
So then we go into looking with video because this is a very important part of computer vision.
A lot of people don't know how they can work with images, but they don't know how to work with VIDEO.
So I go for a few topics on how to load video, how to implement functions on them, how to import R-S,
USB and IP streams, how to automatically reconnect to stream, how to capture like if you have a video
playing on your computer, you can capture screenshots live and bring it into open TV, as well as importing
YouTube videos.
So it's a very useful exception, in my opinion.
Then we have the deep learning outline, which is quite big.
So firstly, we do a deep dive into deep learning and computer vision covering all of these topics in
detail.
Then we take a look at basically building our own convolutional neural network models using both PyTorch
and TensorFlow cameras.
We do some basic with basically go for all of the processes you need to know to load data training model
and inference on that model.
Then we compare libraries, we analyze the performance of all models.
Then we learn how to improve all models with regularization and avoiding overfitting.
Then we go into understanding what CNN see so you can understand better idea of how your model is working
or how it's being trained and what it's responding to.
Next, we take a look at more advanced CNN topics.
We basically go over some design principles, then take a look at several modern CNN architectures.
Some of these on some models, basically traditional networks like these tree here.
However, we took a look at some modern ones resonates.
They're not that modern, but are one of the best dense, inert, efficient net.
Then we take a look at how to implement them, how to do a top one to five accuracy's implement callbacks
as well.
Then we take a look at a PyTorch library called Python's Lightning, which is a very useful library
and allows us to do some complicated things like training on multiple GPUs to use easy to implement
transfer learning on it.
It does auto batch selection, auto learning, read selection.
So it's a quite useful library.
Next, we take a look at transfer learning and both TensorFlow, Keras and PyTorch.
Then we do a Google Deep Dream Neural style transfer or to include is take a look at generative adversarial
networks when we do some pretty cool projects like generating anime characters or the Arcand project.
Then we take a look at Siamese networks, which directly lead to facial recognition, and we use deep
face as well to to enhance our facial recognition algorithms.
Then we take a look at a lot of different object detectors.
We cover basically the history and all of the give a good overview of object detectors.
Then we start using facial detection to assess these and the big one.
YOLO.
We actually took a look at your evolution in three, four and five, as well as PyTorch implementations
of darknet implementations.
And we do a number of different projects, as you can see here with all of these different GitHub to
set a very good, very true object detection outline.
Then we take a look at deep segmentation where we look at unit signet and deploy up Vision Tree, which
isn't mentioned here.
But it isn't, of course, as well as Mascaro CNN's.
Then we take a look at deep salt, which is deep tracking, which is a very important topic.
Then we take a look at some miscellaneous tutorials where we make deepfakes.
Take a look at vision transformers of depth, estimation, image similarity, image captioning, video
classification, point cloud classification and segmentation 3D image classification with CT scans and
X-ray and ammonia classification project OCR Model four captures as well as a web app.
We do a rest API and then a flask web app as well.
So that's it for the overview.
In the next section, I'll start picking off a basic introduction to computer vision, so stay tuned
for that.
Thank you for watching.