OpenCV Course - Full Tutorial with Python
HTML-код
- Опубликовано: 10 май 2024
- Learn everything you need to know about OpenCV in this full course for beginners. You will learn the very basics (reading images and videos, image transformations) to more advanced concepts (color spaces, edge detection). Towards the end, you'll have hands-on experience building a Deep Computer Vision model to classify between the characters in the popular TV series "The Simpsons".
⭐️ Code ⭐️
🔗Github link: github.com/jasmcaus/opencv-co...
🔗The Caer Vision library: github.com/jasmcaus/caer
🎥 Course from Jason Dsouza:
- Check out his RUclips channel: / jasmcaus
- Follow him on Twitter: / jasmcaus
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Introduction
⌨️ (0:01:07) Installing OpenCV and Caer
Section #1 - Basics
⌨️ (0:04:12) Reading Images & Video
⌨️ (0:12:57) Resizing and Rescaling Frames
⌨️ (0:20:21) Drawing Shapes & Putting Text
⌨️ (0:31:55) 5 Essential Functions in OpenCV
⌨️ (0:44:13) Image Transformations
⌨️ (0:57:06) Contour Detection
Section #2 - Advanced
⌨️ (1:12:53) Color Spaces
⌨️ (1:23:10) Color Channels
⌨️ (1:31:03) Blurring
⌨️ (1:44:27) BITWISE operations
⌨️ (1:53:06) Masking
⌨️ (2:01:43) Histogram Computation
⌨️ (2:15:22) Thresholding/Binarizing Images
⌨️ (2:26:27) Edge Detection
Section #3 - Faces:
⌨️ (2:35:25) Face Detection with Haar Cascades
⌨️ (2:49:05) Face Recognition with OpenCV's built-in recognizer
Section #4 - Capstone
⌨️ (3:11:57) Deep Computer Vision: The Simpsons
⭐️ More ways to connect with Jason Dsouza ⭐️
- Medium: / jasmcaus
- Twitter: / jasmcaus
- LinkedIn: / jasmcaus
✏️ Check out Jason's Deep Learning Crash Course for Beginners: • Deep Learning Crash Co...
⭐️ Special thanks to our Champion supporters! ⭐️
🏆 Loc Do
🏆 Joseph C
🏆 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
Can't express my feelings when you get some of the awesome courses on internet for free of cost 🙏
same, thanks to all these cool guys i never had to buy a course when i wanted to learn something new.
Free Code Camp is the best!
Couldn’t agree more! We’re living in the matrix and everyone watching took the blue pill (or whichever one was the right choice lol)
Really?
@@foryoutube1975 lol that is what i thought too,
I was just clicking on random videos on YT and I somehow landed on this course and GOD THANK YOU!
Learned a lot and lots of things here that I could've learned nowhere better.
Thank you for this course, although there were somethings in the last part of this course that I was not able to understand but I got a glimpse of how things are and how they work, I'll definitely learn them.
Thank you guys for making such quality videos that has helped millions. I've benefited a lot from your previous tutorials and I'm excited to learn opencv as well!
Thank you!!
Thanks for all your efforts, spent times, and open source-free courses. Indeed, I've started OpenCV through that course, and it's been a superb starting point for me. And there are also different kinds of courses related to Data Science and am gonna benefit from them as well. Am grateful to know a such channel and a such course..
This is a goldmine of a resource. I have 3+ years experience with image processing in MATLAB. Totally into Python now and enjoying this awesome tutorial.
Hi aniruddh can i get your contact / email please? Have some work in your domain its urgent
Which is better to start with?
Python or MATLAB for ML?
@@dremr2038 From my experience, Matlab does not offer as much dynamism and flexibility, so I would definitely go with the former. I've used both but once I made the transition to Python, there was no looking back!
@@dremr2038 python is so good for ML, I don't think it has any rivals other than maybe R
Hi Jason,
I have been going through many courses for OpenCV (Not that I didn't understand them) but I should say even though the course is fast-paced but well explained and especially Chapter BITWISE operations Awesome!..keep it going very well explained and practically show.
omg your courses get released a moment after i start learning a new stuff! GREAT CONTENT! THANKS FCC!
I was desperately looking for an OpenCV tutorial and I saw this like a hero :)
Absolute lifesaving course! in the span of a few hours I was able to do my own computer vision projects!
Sidenote : the cat pictures were a bit too cute and sometimes distracting haha.
The exact thing I've been looking for
Thanks a lot
Finally, a 2020 updated opencv tutorial on the internet
You got that right boi
OMG I love this, soooo straight to the point and clear.
I wish all tutorials were like yours!!!!!
I've been waiting for this kind of tutorial here thank you
Can't express how grateful I am for this amazing content. Thanks guys
Yeeaah. I'm just starting my TFG about Image Processing with Python and this comes out. Love FCC!
ruclips.net/video/uNSxrWCwUqQ/видео.html ..
@@TheKing-ul5pw ?
It's amazing when you find the right tutorial all for free, Thanks Jason
thanks for the amazing lesson best opencv course ever!
Been needing this video since last christmas! lol Thank you! -- +9999pts for linking up concepts to examples in the video. Something abt the documentation just gets my mind wandering until I've forgotten what it was I was looking for in the first place. ;D
2:08:26 - actually everything was OK. You don't need to pass masked image to calcHist mask parameter. You can just pass white circle instead, as you did first time. You can compare both histogram plots and make sure, they are identical. It worked because cats-in-a-circle image is identical to white circle in bitwise operations (if those cats have no zero valued pixels in the circle region)
The course has been really confusing at times. Thankfully, I did the same before following him so I agree with your findings
you are right.
WAS WAITING FOR THISSS!!!!!
ruclips.net/video/uNSxrWCwUqQ/видео.html ..
this is nuts that this is free!
One of the best courses i've taken, thank you for this !
Perfect OpenCV course to start off! 👍🏼
I just comment so it reaches more people, because this helps THAT lot. Thank you for making this, and for making this free! It's greatly appreciated!
Thank you for the interesting content.
The error in the face recognizer is due to 3:04:44
It should be
for (x, y, w, h) in face_rects:
faces_roi = gray[y:y+h, x:x+w]
instead of:
for (x, y, w, h) in face_rects:
faces_roi = gray[y:y+h, x:x+h]
Just finished it's awesome course... It goes like begginer to advance..
Thank you ;)
Just gonna thank this channel and Sir you are the best teacher I have ever come across
Great Job, by the far it is the best video of OpenCV I have seen... keep sharing more please
Wow! More content in this than in my semester long Computer Vision course. Thanks!
Thank you for this course.
this course is so incredibly useful for me , thank you so much.
You are the best, thanks a lot, it helped a lot for my internship project.
Hey I see your effort. You all are putting so much effort and time in these videos. I think if you make the roadmaps videos like if you want to become a android developer watch this playlist in which you can mention all the videos that are related to the android development. Yes I know that you already had created playlists but they are kinda incomplete and are not roadmaps videos. And one more suggestion make a playlist of roadmaps videos for different learning paths like you had created pytorch and tensorflow tutorials if they both are mentioned in a roadmap video of data scientist and a pdf in description as if anyonnes wants to print and want the learning steps so he/she can download the pdf. I hope you will like my suggestion. Even I follows your tutorials but i didn't know whether the tutorial is for my path or not and then after researching and learning my own I find that you had made the tutorials but I was not able to identify that the tutorial is helpful or not. So if you do this it will save so much time and everyone will know what to do next.
Thanks For Reading My Suggestion :)
Nice!
u must check code with harry in that case. only if you know hindi
@@TechWithRushabh Yes know that but they have more audience than Code With Harry. So if they did this it will help more people.
@@RajvirSingh1313 Yea I know that would be cool.
@@TechWithRushabh Even I am learning c++ from him!
This is exactly what i'm looking for, thank you !
How can we use openCV in blender to do motion capture?
Thanks for the tutorial! A great way to start understanding open cv and computer vision. Well done!
1:30:00, I try a little tweak here by using ones() instead of zeros(), then multiple blank by 255, so I can get a white canvas. The results are interesting cause it display sort of CMYK.
Thank you for your effort. I' am going to watch it later: not that easy to reserve almost 4 hours :)
This is one great tutorial I have come across, thanks for the effort and time put into this.
2:44:26 When The Face was Detected
This moment gave me the most happiness to be able to detect a face.
THANK YOU FOR THIS COURSE
This video is really good for learning new things related to computers..🤩🤩🤩🤩🤩💮..good job guys....I learned almost the concepts...and making a project now..
2:41:06
Tutorial is awesome, the explanations are much better than other tutorials I have tried, only ran into one real issue so far and that was during the "Face detection with Haar Cascades". When referencing the xml file, I found out I needed to implement the full path to the file in order to get it working properly, just thought I would throw that out there in case anyone else runs into a similar problem.
Hi,
Does this course go deep into utilizing artificial intelligence?
Thanks a lot !
Are you talking about how to solve the xml parsing error that happens? because yes i'm suffering from that currently. What do you mean by full path? because my xml file is saved in the same directory as my face detection file
@@chinmayganguly457 I had the same issue. Just look at your explorer tab (it's on the left in VSCode), right click on your xml and then click 'Copy Path' (or 'Copy Relative Path', it also worked for me)
Yeah, same situation, in my case was because I created a file inside "resources" to have more order, so VS Code needed me to give the exact file path to run haar_face.xml.
Thanks for the tip
Omg dude you are amazing, thx for sharing your knowledge with us!
I'm learning a lot of thing here. Your a master in the matter. Congrats
"train_gen = datagen.flow(x_train, y_train, batch_size=BATCH_SIZE)" gives a ValueError:
"`x` (images tensor) and `y` (labels) should have the same length. Found: x.shape = (80, 80, 1), y.shape = (11047, 10)"
The tutorial is great. Everything is explained in a great way. The only thing that I felt could be improved is by using some constants instead of just writing them again and again like you did in draw.py. You could've specified constant like STARTING_POINT, ENDING_POINT, COLOR and many more which would've made the code much more readable and could've also reduced the tutorial length. I would be making a pull request for this soon. Thank you for this amazing tutorial :)
If you are using intellisense, it will also pop up what each parameter is! But yeah I agree, magic numbers are never good
Thanks for these extremely helpful videos man!
Excellent quality. Impressive making. Thank you.
I'M HALF DONE WITH THIS VIDEO, AND I MUST SAY THIS IS A GEM VIDEO❤
Thank you very much! I'm glad this video helped you :)
3:27:20
if you're following along with pycharm
from tensorflow.python.keras.utils.np_utils import to_categorical
should be used instead of
from tensorflow.keras.utils import to_categorical
Borned to teaching code!!!....excellent methods and speech...thanks for give us a lot against none trading off fee.....keep on that way my friend!!!
A well compiled video of opencv examples! :)
That was a nice course for starting machine learning but please look at (3:38:00) . We're larning to reach a conclusion . So why the model cannot work correctly?
I voted for this! Yayy!!!
🤚✌️
@@m4leopard635 Sup from 30 seconds ago
@@lucaslindgren3237 can't get u bro
@@m4leopard635 yo again
Same
Hi Jason!
Great work and i've had a blast following your course!
In the module "Face detection with Haar cascades" i'm having trouble with Visual studio code reading the xml file.
The error says "You don't have an extension for debugging XML. Should we find a XML extension in the Marketplace?" Then i click "Find XML extension" and download a few of the options i get here, but neither seem to work out for me.
Do you have any advice?
I never learned bitwise operation his much easily ❤️❤️
讲的非常详细, I like this video.
3:29:55 - `x` (images tensor) and `y` (labels) should have the same length - People who are getting this error, convert the list x_train and y_train to numpy arrays
x_train=np.array(x_train)
y_train=np.array(y_train)
Omg, having awesome tutorials free of cost, much much better than what programming learners expect.
Sorted it out eventually - now I can start learning...
Hi, I am using OpenCV in Ubuntu 20 and it is kinda weird to say but it is somewhat different from what is being shown in the video. When I hover my mouse over the image, I can see the X-Y coordinates as well as the R, G, B values of those pixels. Also, there are some hidden buttons that allow me to zoom in, zoom out, and save the image. Anybody else experiencing the same?
Hi Jason,
Your course is very detailed and oriented towards practical application of concepts taught. Loved it. I have a personal project which could really benefit from your skills. I am not sure if you do freelance work or are interested to have a listen... Please let me know if i can reach you somehow to discuss this further...
Tiết là anh ta quá bận để trả lời bạn:))
Thank you for making this available for everyone, really appreciate the good work!
Completed this in two weeks, what an amazing course! For the computer vision part on kaggle, you might have to use your own model, i recommend convolutional layers. The model used by the tutor is out of date and you might encounter roadblocks. Good thing is, every other line of code works well with any model of choice.
Really enjoyed this course and i look forward to doing advance stuff from here!
Awesome video, thanks a lot!
One very important question: how may I display those small explainations/suggestions of the parameters I can put into the functions? For example: I type in "cv.rectangle(" but there is no popup that shows which parameters I can put into the functions. In your case it's very nice and clearly visible! Do I need a vs code addon for opencv?
Thanks in advance!
I had the same issue as well but a stackoverflow post had the solution. Apparently sometimes the path to the file with those suggestions is in chinese and they don't show in the editor. All you had to do is use "from cv2 import cv2 as cv" rather than "import cv2 as cv", this fixed the issue for me, try it once.
pylance ;)
Thanks, I was looking for some free course for image processing for computer vision👌👌
This is really helpful. Thank you so much.
thank you Freecode camp i was waiting for this kind of videos thanks
I am getting this error: "x` (images tensor) and `y` (labels) should have the same length" when following the last tutorial. Does anybody know how to fix this?
same here
Hey, I know this is late but thought I would post here in case anyone else gets the issue. It's because of a library update - you need to convert them from python arrays to numpy arrays. Here is the code, run it after doing caer.train_val_split
x_train = np.array(x_train)
y_train = np.array(y_train)
You will also need to do this to the x & y_val lists too
@@stuffonthepark Thanks man you saved my ass
@@insanehum987 was your ass on the line
What is the extension to display those short descriptions of the functions?
Kite AI Code AutoComplete, I think
You can use "help()" and pass in the function. for example "help(print)"
Also, you can use "?? print" or any function you have in mind.
I wish I could like your efforts as many times as I watch your videos. God bless you guys.
Hi, this video is great to introduce opencv. I have a question how do you mask a picture of a specific area like blur, something like Mosaic? it looks not easy to implement with this .
Thank you ! Wonderful video.
I encountered problem when trying to run ' Face Recognition with OpenCV's built-in recognizer'
(Face Detection ' works)
at the line
face_recognizer = cv.face.LBPHFcaeRecognizer_create()
Attribute Error: module 'cv2.cv2' has no attribute face
Surfing the net, for solution, realized, many people have encountered this problem
Any help appreciated
I fixed this error, it took me some time to figure out, many users have been struggling with this error
by mistake, I had installed both opencv-python & opencv-contrib-python
Even after uninstalling opencv-contrib-python, I was continuing to get the following error
---------------------------
Successfully uninstalled opencv-contrib-python-4.5.2.52
python3 faces_train.py
Training done ---------------
Traceback (most recent call last):
File "faces_train.py", line 44, in
face_recognizer = cv.face.LBPHFaceRecognizer_create()
AttributeError: module 'cv2.cv2' has no attribute 'face'
---------------------------
Then it stuck me, it is picking the cv2 from some where else
I reconfirmed this with Python shell & pip list
------------------------------
python3
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.1'
pip list | grep opencv
opencv-python 4.5.1.48
----------------------------
Then once I uninstalled, opencv-python and reinstalled opencv-contrib-python, ONLY
the error message vanished and face_recognition started working
----------------------------
Successfully uninstalled opencv-python-4.5.1.48
Successfully installed opencv-contrib-python-4.5.2.52
python3 faces_train.py
Training done ---------------
@@sambathnarayananparthasara9403 thank you so much it worked for me....
The way he said Bleaaaa(blur), I fell for his channel
Thank you, I will watch the entire thing
Thanks, this tutorial was good and very quick introduction to image processing and video processing for beginners.
How close is this to the technology to the large scale commercial organsations are using such as Facebook, Apple etc? What percentage are the commercial organisations getting when they run their image identification systems?
ruclips.net/video/GnnFy0uFe3E/видео.html
Thank you so much! One question: Do I need to "normalise" the input image before send it into model.prediction in the Simpsons demo?
Depends what you mean by normalise. To train effectively, your input images will need to be structurally similar - this means that if one input image is 640x320, *all* the other images must be 640x320. If you expose one image to mean subtraction, it would be wise to do the same for the rest of the images. Hope this helps! Cheers :)
Good and entertaining video series.
The last video gave me a good lol in the middle of the night here.
I think I woke up my neighbors thinking about one of the ”classic quotes from known and unknown programmers”:
”Despite the fact that it doesn´t work - How do you like it?”
No affence man.
Every videos is top notch and the explanation was so good
3:09:05 a 110% "pretty sure there's an error somewhere" .... 3:39:15 "...definitely not the best model that we could've asked for..." this is learning the blind way, nothing replaces reading a good book, more cartesian, more precise.
You mean that reading books are much better, please suggest a book then plz
in arabic we have a proverb, make better or keep silent, I dont judge ur ability to do so but his work is great and I found it amazing , any books for suggestion!!!
Which extension is he using in vs code, which displays the function arguments etc. as soon as he types the function?
Should just be the Python extension made by Microsoft
Try kite
51:21 very useful and well-explained video. Keep up the good content sir
Ho man! You did a wonderful job about this free Open CV course, easy and smooth to follow up step by step. Thanks a lot!
Fun drinking game: Have a drink every time he says “bleu.”
And also "Essentially"😂
This joke is rouge
This is a good coas with lots of impotes
Plss. I need a detailed vannila js course plss
content is gold for one who is beginner in CV. with this tutorial i gor familiar with all the basic stuff.Thanks for the tut Jason
Sir at 1:10:39 , we used blur to find out Contours Drawn and the normal img to find canny , so they were so different . I used blur in both cases and then the Contours Drawn and Canny seemed to be quite same.
When i try to import cv2 it says that it cant import it, And I installed it, (I checked twice)
That is what the compiler says: "ImportError: numpy.core.multiarray failed to import"
Someone knows why?
check your numpy version:
print(np.__version__)
I've had issues with 1.19.4. Then downgrade to 1.19.3 in the terminal using:
pip install numpy==1.19.3
@@1980legend And then you tried to import cv2 and there was no error?
@@1980legendit still says it cant import cv2, after i downgrade the numpy version to 1.19.3
@@1980legend Oh never mind it is working
THANK YOU SO MUCH MY GOOD FRIEND!
If you are using VScode try
from cv2 import cv2
instead of
import cv2 as cv
this worked for me
Warning, the Simpsons deep learning part is having some difficulties as decay and learning rate are deprecated in Keras 2.3 above, might need to find a new way to overcome it.
Did you find the solution? Hit if you do, thx
Voted for it 🔥
Great, gonna spend the weekend on this.
In Face Recognition section, at 3:07:45 , in my case, model is always recognizing image with confidence of 0.0 . Could anyone please help me? Please?
How many images are you using to train your model?? If you use more images then confidence would also increase.
Same problem, but i assume the confidence is actually 100.0 and there is a problem due to data type because i always get the correct result.
I stucked an error at 3:30:00 and i surrendered to resolve. Finally, your Github resume back again together with "Fix Sklearn ImportError" which is inside simpsons.py then i follow the github to import sklearn.model_selection as skm and change x_train, x_val, y_train, y_val = caer.train_val_split(featureSet, labels, val_ratio=.2) to
split_data = skm.train_test_split(featureSet, labels, test_size=.2)
x_train, x_val, y_train, y_val = (np.array(item) for item in split_data)
So far, I don't find error at all. Thanks a lot
Thank you bruh!
Thanks!
Damn, never felt this confident on anything after just finishing the course. Kudos to you guys for bringing out this gem of a tutorial and channel as well. And all of it FREE OF COST🙏🙏
That's awesome. Thanks a lot for the effort put in the video.
Hey, got an error when creating the image training generator on line: train_gen = datagen.flow(x_train, y_train, batch_size=BATCH_SIZE)
Not sure why it gave the error below
ValueError: `x` (images tensor) and `y` (labels) should have the same length. Found: x.shape = (80, 80, 1), y.shape = (11047, 10, 10)
I'm having the same error
You can just continue and it will work
Okay, here's the shortcut I found about VS Code:
Ctrl + '/' -> Comments out a line
Alt + Up/Down Arrow -> To move text up and down
And this is personalized:
Alt + D -> Duplicates the lines
Please share your shortcuts as well.
Best OpenCV Course on youtube by far
I hope I can learn well with this video. I am now korean high school student, and I learn open cv because i want convert my school subject handwriting to word document. Thank you for nice video
if you have time to learn, don't go for "word" documents.
rather research about LaTeX (hard, but powerful) and markdown (easy), padoc (a converter)
you can do all kinds of cool and advance stuff with your text.