Advanced Computer Vision with Python - Full Course
Learn advanced computer vision using Python in this full course. You will learn state of the art computer vision techniques by building five projects with libraries such as OpenCV and Mediapipe. If you are a beginner, don't be afraid of the term advance. Even though the concepts are advanced, they are not difficult to follow.
✏️ This course was developed by Murtaza Hassan. Check out his Murtaza's Workshop KZread Channel: / @murtazasworkshop
💻 Get the code here: www.computervision.zone/cours...
🔗 Learn to build computer vision mobile apps from Murtaza: www.computervision.zone/cours...
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Intro
⌨️ (0:01:18) Chapter 1 - Hand Tracking - Basics
⌨️ (0:26:57) Chapter 1 - Hand Tracking - Module
⌨️ (0:49:20) Chapter 2 - Pose Estimation - Basics
⌨️ (1:08:25) Chapter 2 - Pose Estimation - Module
⌨️ (1:28:25) Chapter 3 - Face Detection - Basics
⌨️ (1:52:38) Chapter 3 - Face Detection - Module
⌨️ (2:12:55) Chapter 4 - Face Mesh - Basics
⌨️ (2:33:09) Chapter 4 - Face Mesh - Module
⌨️ (2:52:10) Project 1 - Gesture Volume Control
⌨️ (3:27:45) Project 2 - Finger Counter
⌨️ (4:05:43) Project 3 - AI Personal Trainer
⌨️ (4:52:55) Project 4 - AI Virtual Painter
⌨️ (6:01:26) Project 5 - AI Virtual Mouse
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
Пікірлер: 979
I regularly watched this channel .... This channel always committed ... Giving free .. costly materials...
@____-gy5mq
3 жыл бұрын
and a pajeet in the comments, as always.
This guy's journey from simple OpenCV tutorials to this is incredible!!
@rifathasan6017
3 жыл бұрын
What's his channel's name?
@shahsoftinc.2459
3 жыл бұрын
@@rifathasan6017 Murtaza's Workshop
@nocopyrightgameplaystockvi231
2 жыл бұрын
This guy seems to be creating what we see in TVs
Thank you so much! It's amazing how things are easy to do with OpenCV, Mediapipe, and... your explanations!
@ashwanirao9483
2 жыл бұрын
Can you please tell me all prerequisites of the course
@hoinhtrieu9637
Жыл бұрын
@@ashwanirao9483 I think basic Opencv course, also available in this channel
I just wanted to add that in chapter 1, when transforming the HandTrackingMin to a module, the Hands class from mediapipe, expects an argument for the parameter called model_complexity (at least it did for me, it did not seem to be a problem in the video). This argument should be passed right after the max number of hands is being passed. However in the video that is where the detectionCon is passed. This threw a TypeError for me because the model_complexity could not handle the non-int value it was getting from the detectionCon argument. So if you get a TypeError when dealing with the Hands class, this could be the reason. Hope it helps!
@ShivamPandey-mf9pu
2 жыл бұрын
Can you please send what is the exact code we need to add It's throwing an error for me
@ShivamPandey-mf9pu
2 жыл бұрын
Thank you for this help
@johanneschristensen9017
2 жыл бұрын
@@ShivamPandey-mf9pu I added a parameter, model_complexity to the __init__ function in the class handDetector: def __init__(self, mode=False, maxHands = 2, model_complexity = 1, detectionCon = 0.5, trackCon = 0.5): Declaring model_complexity to self like all the others: ... self.maxHands = maxHands self.model_complexity = model_complexity self.detectionCon = detectionCon ... Then when defining self.hands using the Hands class, I made sure to include the new argument. self.hands = self.mpHands.Hands(self.mode, self.maxHands, self.model_complexity, self.detectionCon, self.trackCon) This is the method I used, it is probably not the only one, and I encourage you, if you have time and will, to look for your own better way. But this should hopefully work.
@lorenzo6176
2 жыл бұрын
Wow I was trying to figure this out myself for 20 minutes until I finally did and just now i see your comment that would've saved my time haha
@robertrincado3169
2 жыл бұрын
I have been trying to solve my problem for almost 1 h. When I saw you comment I went directly to do what you did. I solved the problem in a minute! Thanks you so much!!!!
Good Lord! The incredibleness continues. This is fantastic. Thank you again!
This is invaluable material provided for free...I am so grateful to God that people like you exist.
Glad to see you here Murtza bro ❤
One more note, there is a separate library called mediapipe-silicone which is designed to be used on the M1 silicon chips from Apple since the normal library is built for a different architecture
@Scivator
3 ай бұрын
Thank you so much for this, I was unable to find the reason why it was not working on my laptop....... THANK YOU!!!
You sir are a god send. I tried many udemy courses but who knew that there's a free one that's actually understandable and right to the point. Thank you and I wish you a lifetime of happiness and joy !
Awesome course! I'm learning how AI is working right now and this was REALLY interesting. Thank you so much
@muhammadsharique8037
2 жыл бұрын
ide name
The channel always has what I need. I've boosted my knowledge of c++ and python skills after watching some of the videos. and now BOOOOOOM a computer vision course!!
@amazlin8271
2 жыл бұрын
why are you learning C++??
@diniaadil6154
2 жыл бұрын
I love this channel as well, however i'd prefer if they showed us computer vision algorithms rather than just tutorials on how to use already existing solutions
@firstname8078
2 жыл бұрын
@@diniaadil6154 I think that's too complex for individual lvl. And there would be much less audience for that.
@ashwanirao9483
2 жыл бұрын
Can you please tell me all prerequisites of the course
@jayeshlale1999
2 жыл бұрын
Hi, Lin how are you? 😄😅
You are really just in time! Recently I just think about why I still didn't make in my home option to turn on and off light by snap fingers and BOOM! You are published that course!!!!! AMAZING!!!
Really fantastic work man! Thank you! Please do a project on cure lane detection(for self driving cars)
I love this course, may God reward you all !
Amazing. Thanks alot. Excited for track the movement of the body video ❤👌. You are the best keep going.
aaaa... this is what i'm looking for. Thank you for this free course!!!
I just can't begin to describe how incredible this channel is. You guys are amazing!
Thank you so much. Well done . this is an amazing course on how to use the mp library
There are some arguments that we need to add in new version of python and mediapipe, i think : 1. In hand tracking (static image, max number of hands, model complexity, min detection confidence, min tracking confidence) 2. In pose estimation (static image , model_complexity, upper_body_only, smooth_landmarks, detection confidence, tracking confidence) 3. In face mesh (static image, max. no. of faces, redefine landmarks, min. detection confidence, min. tracking confidence) 4. To draw the landmarks in face mesh : mpDraw.draw_landmarks(img, faceLms, mpFaceMesh.FACEMESH_CONTOURS, drawSpec, drawSpec)
@scorpionkingcr4523
Жыл бұрын
bro can u paste the code for face mesh for redefined landmarks
@amansharmaS
Жыл бұрын
@@scorpionkingcr4523 # Face mesh module import cv2 import mediapipe as mp import time class faceMeshDetector() : def __init__(self, staticImage = False, maxFaces = 2, redefineLms = False, minDetectionCon = 0.5, minTrackingCon = 0.5 ) : self.staticImage = staticImage self.maxFaces = maxFaces self.redefineLms = redefineLms self.minDetectionCon = minDetectionCon self.minTrackingCon = minTrackingCon self.mpDraw = mp.solutions.drawing_utils self.drawSpecs = self.mpDraw.DrawingSpec(color = (0, 255, 0), thickness = 1, circle_radius = 1) self.mpFaceMesh = mp.solutions.face_mesh self.faceMesh = self.mpFaceMesh.FaceMesh(self.staticImage, self.maxFaces, self.redefineLms, self.minDetectionCon, self.minTrackingCon) def findFaceMesh(self, img, draw = True) : imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) self.results = self.faceMesh.process(imgRGB) faces = [] # List of all the faces if self.results.multi_face_landmarks : for faceLms in self.results.multi_face_landmarks : if draw : self.mpDraw.draw_landmarks(img, faceLms, self.mpFaceMesh.FACEMESH_CONTOURS, self.drawSpecs, self.drawSpecs) face = [] # To store landmark for a single face for id, lm in enumerate(faceLms.landmark) : ih, iw, ic = img.shape x, y = int(lm.x*iw), int(lm.y*ih) face.append([x, y]) faces.append(face) return img, faces def main () : pTime = 0 cap = cv2.VideoCapture(0) detector = faceMeshDetector() while True : success, img = cap.read() img = cv2.flip(img, 1) img = cv2.resize(img, (700, 420)) img, faces = detector.findFaceMesh(img) # if len(faces) != 0 : # print(len(faces)) cTime = time.time() fps = 1/(cTime - pTime) pTime = cTime cv2.putText(img, f'fps : {int(fps)}', (10, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 0, 255), 2) cv2.imshow("Video", img) if cv2.waitKey(1) & 0xFF == ord('q') : break if __name__ == "__main__" : main()
@scorpionkingcr4523
Жыл бұрын
Thank you brother❣️
@wafflesarebetterthanpancak2406
Жыл бұрын
How did you find out what the code should have been? I want to learn to get better at finding this stuff out on my own.
@amansharmaS
Жыл бұрын
@@wafflesarebetterthanpancak2406 I just googled the errors i was getting in my code
I did this course and showed my girlfriend what I've done. Now she's my wife.
@meditationalmusic610
2 жыл бұрын
haaha great comment
@rafaelojeda
2 жыл бұрын
Coding goes a long way!
@thetruth65756
2 жыл бұрын
uhhh
@milanradovanovic3693
2 жыл бұрын
Is there some cross-corelation(convolution) between those two events(you finishing course and marrying)...
@the_indian_boy3482
2 жыл бұрын
How
Glad to see you here Murtaza
i'm only 40 minutes in the course and WOW! thank you very much!
Here is the solution if you are stuck at the file - handtrackingmodule (27:35) - this is because the lastest version have added one parameter called complexity - so we need to add them: just copy the code I'm sure that will work for you: def __init__(self, mode=False, maxHands=2, complexity = 1, detectionCon=0.5, trackCon=0.5): self.mode = mode self.maxHands = maxHands self.complexity = complexity self.detectionCon = detectionCon self.trackCon = trackCon self.mpHands = mp.solutions.hands self.hands = self.mpHands.Hands(self.mode, self.maxHands, self.complexity, self.detectionCon, self.trackCon,) self.mpDraw = mp.solutions.drawing_utils
@moonlyrics5124
2 жыл бұрын
thank you so much
@DavidCampero26
2 жыл бұрын
Thank you so much!!
@be_b_47_parth_shringarpure28
2 жыл бұрын
thankyou so much man !!
@eeshaansethia5896
2 жыл бұрын
Thank you so much dude!
@entrop9831
2 жыл бұрын
SAVIOR
Murtaza Sir, excellent video. Loaded with tons tons of knowledge. No words to thank you for same. Keep it up Murtaza sir. Keep uploading videos.
Amazing content and very easy to understand. Thank you guys
Thank you for the work and the long time spent to make this video and bring us knowledge!
Please continue what you are doing. As for myself, I can definitely say you are saving/improving lives ❤️❤️
I just learned linear regression for computer vision. However, this is course is interesting.
@xx-jk1iq
3 жыл бұрын
Where did you learn it? I'm trying to get into machine learning but all these tutorials take so much installation that I can't do any.
@TheGothGaming
3 жыл бұрын
@@xx-jk1iq may I recommend Machine Learning A to Z from Udemy. very very complete course to get started into machine learning
@syedawaisalishah9435
3 жыл бұрын
@@TheGothGaming which one?
@syedawaisalishah9435
3 жыл бұрын
@@TheGothGaming link?
@ceylonroad3803
3 жыл бұрын
kzread.info/dash/bejne/i2WEo9Kgoq_Xlpc.html
Thank you so much! video like this must be on recommend for all people, especially student
What an amzing course!
can you make dynamic sign language recognizion using action recognition ?
Believe me or not I already knew whose course it is after seeing the thumbnail.
This is such a great course, my man just gave everyone the steps to a free working AI framework. That you can customize if you put your own time in. You sir deserve the recognition o7.
I don't know why some people say this video is useless. It's good samples for beginner. I have a master degree for computer vision and am working as computer vision and AI researcher. Computer vision is not that easy to explain all about it within 7 hours. But you can use it. This video is just a starting point.
@TheDiscoMole
Жыл бұрын
Because anyone who does this algorithmic stuff is going to be completely useless at a real ML position. None of these solutions would work for real world applications.
@chibuikeisrael7156
11 ай бұрын
Please can you recommend a course that deals with basic & advance? Or if you can kindly list the course outline
I was just looking for a Computer Vision course. Thank you ! 😸
1:28:20 I think you can average this tracked movement after complete capture or even durung the capture. It will eliminate jittery tracking lines/points. What do you think? Cheers
I finally finished. what an adventure it was! Thank you to everyone who contributed 🙏
@saintadel8902
Жыл бұрын
Hey man Most of the codes arent working in my side Can u tell me version of cv2,cvzone and mediapipe used?
@muhammetuzun3496
Жыл бұрын
@@saintadel8902 my friend, a lot of paremeters changed. i saw this. please check commands, other friends wrote a lot informations. check hand_truck module. because we are using in a lot of project. if u change argument in this module i think u will fix a lot problem. with peace ✌
Simply Incredible, thanks for a such tutorial !!!
@freeCodecamp, Can you kindly make some real time course on automation using python.
Can anyone tell me from where can we get the videos in the pose estimation module ??
Stunning! Thank you.
You are mUrtaza Hassan? Glad To see You sir Love from PK
Nice look's interesting
love to see murtaza workshop channel owner i am following his channel since 3 months best stuff i can say .. he was awesome
Great effort, amazing projects
Looking forward to complete it
what program is this being written in? Edit: Pycharm
from 27:25 to 36:31 do not forget to include the self.complexity for the complexity attribute in the updated mediapipe hands file.
@MrDarkYT56
7 ай бұрын
but how bro can you paste it
casualy uploads a 6 hour comp vision course brooo, thanks bhai !
this guy is amazing. Thank you so much!
Anyone knows why some people see the error messages of : "Trying to resolve path manually as GetResourceContents failed: ; Can't find file: mediapipe/modules/palm_detection/palm_detection.tflite" and hand_landmark.tflite???????????
@mitchellsylvia9665
3 жыл бұрын
It’s just showing you’re pushing into a fail safe. Basically couldn’t find the info it primarily needed, but was able to locate the fallback and still should execute
@kimjin3101
3 жыл бұрын
@@mitchellsylvia9665 ohhh, so it should still work without issues? Do you know how to get rid of it?
everytime fCC uploads new video: me: *knocks fingers* also me: well i guess i have nothing better to do in the next 6 hours thank you for the great content!
This is the best video that i was looking for :3
Helped me learn a lot by understanding each step. That's what is needed from a course!
i was literally waiting for this thank you very very much, this will be awesome.
@paulkiragu8120
3 жыл бұрын
check out his channel, all his videos are awesome
@maitreyakanitkar8742
3 жыл бұрын
@@paulkiragu8120 thanks i'll do it
I think #python is a god gifted language
@9Quotes
3 жыл бұрын
Guido van Rossum😍😍😍 is God
@bappi5702
3 жыл бұрын
@@9Quotes yes you are right. One thank goes to Rossum
@infotration2225
3 жыл бұрын
salam bro.this channel to who help us free project.
@daddyelon4577
3 жыл бұрын
there is no god although nice metaphor
@jetjet6560
3 жыл бұрын
I think Python is fantastic too, but always keep in mind the ideas and concepts are what matters. Get ready to jump ship when a better, newer language beats python lol 😉
How would you tackle a movement that is faster than a dumbbell curls, for example a pedal stroke or someone throwing a ball? Is there a way to keep the accuracy even though the movement is faster?
Amazing. Congratulations.
I completed the basic OpenCV course in the first lockdown and was really waiting for the next part and here it is. I just finished with it and really had a fun time learning this and building projects. Thank you so much for such an amazing course and you really explained every minor part in-depth! Funfact : COURSE IS FREE!!!! (now waiting for the next part....)
@toobasheikh106
2 жыл бұрын
Can you please send me the link to the basics of opencv course?
@photoninadoubleslit8405
2 жыл бұрын
@@toobasheikh106 kzread.info/dash/bejne/oYyg2bmbhZvSYtI.html
@ashwanirao9483
2 жыл бұрын
Can you please tell me all prerequisites of the course
@photoninadoubleslit8405
2 жыл бұрын
@@ashwanirao9483 Just basic data structures of Python, nothing more..
Hi! this course is generally really good and i got some new skills from it, but... you add an index column to hand landmarks but it's unnecessary. Why? MediaPipe always return 21 points and its a list with length = 21, so if you want point nr 20, you just get it from list where index = 20. I also implement it at numpy arrays, these have great features which helt us write better and simpler code.
@muma6962
2 жыл бұрын
If you want point 20 Im pretty sure you have to get index 19 because arrays start at 0, the first object id in an array is 0
In the gesture volume control program, you are changing the volume range [-65.25, 0] to percentage[0, 100] in a linear manner. But it does not match with the volume percentage shown by the speakers in windows. Does anyone know how to interpolate the volume range to percentage accurately, as done by windows volume control?
I already follow this channel 😁 amazing contents
Hi, Thanks for the great tutorial. In Project-1: Gesture volume control, I see that comtypes is only supported for Windows. Could you guide me how to do it on mac?
@anabelberumen
Жыл бұрын
it was a year ago, but can you resolve it?
@boghost2997
Жыл бұрын
I have the same problem, if anyone has the answer I would be glad to hear you
Being a computer vision expert, I recommend this course, you will clear all your basic and advance.
Yeahhhh my man Murtaza!!!
Hii Murtaza sir happy to see u here
wow i wonder, where technology will lead us.
@rahul2
3 жыл бұрын
Destruction if not used wisely & in harmony with nature .I think so
@040_faraz9
3 жыл бұрын
Singularity. Duh.
@shahsoftinc.2459
3 жыл бұрын
To greatness and beyond unless you are a dumb conspiracy theorist, then you will remain in the basement
@miguelrincon2083
3 жыл бұрын
Imho, if not properly regulated, to our demise. And also, if it was to become sentient, probably to our demise too, because why would super powerful systems even care to exist in the same planet as some puny feely apes.
@yusufuslu831
2 жыл бұрын
Maybe youtube watching you when you laughing at a video and recommend to you those. sometimes i guess he read my thinkings.
I dont think you understand how EXTREMELY GRATEFUL I AM FOR YOU GUYS. THANK YOU SO MUCH
Woah! This is an awesome tutorial to get for free! Thank you
omg this is so good. Thanks free code camp
Best video on Computer Vision ❤️
For those having trouble with the first step setting the camera, downgrade the package protobuf to 3.20.0. It installs with mediapipe but in the version 4.21.1 and the code does not work with that version. So manually downgrade this package and you will be OK.
@KageMaruMusic
2 жыл бұрын
Bro u're dbest I spent the whole day looking for a solution 🔥 Thnx
@hernanbermudez7959
2 жыл бұрын
@@KageMaruMusic glad to help!
@watchit9307
Жыл бұрын
It is saying attributeError
@JK-jt3lr
Жыл бұрын
I have problems when I run it in google colabs. I can get the videocapture, but it will not show the dots or connections of the hands
THANK YOU so much for this amazing content,,, thank you thank you thank you
Amazing! Thank you very much
Learn pose estimation - by calling the function that does everything for you.
@SemGabelko
3 жыл бұрын
You can inspect the function and learn more about it, read docs and see how complex it gets... This is literally bleeding edge of human technology. You can't just explain how everything works in 7 hours. And most likely this guy doesn't know it himself.
@astrolillo
3 жыл бұрын
@@SemGabelko So the video is useless then, you better spend your time reading the documentation instead of be baby-fed here to learn to use what basically amount to magic black-boxes
@gaurishagrawal9404
3 жыл бұрын
@@astrolillo No doing projects first is exiting. Then get into deeper and more ground based work.
I did this course and showed my boyfriend what I've done. Now he's my husband.
I need to use this for a web application, there is a javascript version of OpenCV. Can you find all features used in this video, in the js version also?
Great video, congratulations!! Can mediapipe be adapted to recognize the foot palm (like the hand) ?
That's best thing i ever seen today.....😍
very good, thanks!
you are the first Indian developer that I can learn somthing from thanks :)
@thewiredworld0617
Жыл бұрын
he is not indian bro.
ur teaching is incredible
This Guy is really amazing!!!
I was exploring about my new video,i see this video.It's excellent!
Awesome course!
What keyboard shortcut did you use at the end of a line that adds whitespaces around '=' and so on?
omg, this is what i looking for !!!
Davvero bello grazie a te ho imparato a fare tutto
very clear explanations, awesome!
Tnx man u help me a lot with your videos and your tutorials i wish you the best :D
Can you recommend what type of computer would be best for this? I purchases a Surface Laptop Studio last year and when following this course, the fps were around 20 (I a just started this video and I am around 15 minutes into it) so I was hoping you would have a recommendation for type type of computer I should use for CVOpen and object detection development. Thanks.
we all love you sir keep going
Amazing I loved it
Thank you so much for sharing.
Thank you very much 🤔👊🏽
this course is overkill thanks dude
I was expecting that video from this channel and I'm after it from almost 1.5 year.
This KZread channel is ready to change my life fingers crossed 🤞
Hello coders, I have one question- "Should we use the same grabcut program for different images? I have tried it but didn't work."
hey, coming from ur other videos, i have a question , how can i integrate in this multiple face detection,also the name of the people from images ? like matching the people from the vid/live webcam feed ?