The fastest way to learn OpenCV, Object Detection, and Deep Learning.
– Discover the “hidden” face detector in OpenCV.
– Develop a super-simple object tracker.
– Use neural networks for object detection.
Learn how to do all this and more for free in 17 simple to follow, obligation free email lessons starting today.
“PyImageSearch’s course converted me from a Python beginner to a published computer vision practitioner.” – Dr. Paul Lee








Need help learning Computer Vision, Deep Learning, and OpenCV?Let me guide you.
Whether you’re brand new to the world of computer vision and deep learning or you’re already a seasoned practitioner, you’ll find tutorials for both beginners and experts alike. Here are some of the most popular categories and tutorials on the PyImageSearch blog.


How Do I Get Started?
You’re interested in Computer Vision, Deep Learning, and OpenCV…but you don’t know how to get started. Follow these tutorials to get OpenCV installed on your system, learn the fundamentals of Computer Vision, and graduate to more advanced topics, including Deep Learning, Face Recognition, Object Detection, and more!
Featured articles
pip install OpenCV
In this tutorial, you will learn how to pip install OpenCV on Ubuntu, macOS, and the Raspberry Pi. In previous OpenCV install tutorials I have recommended compiling from source; however, in the past year it has become possible to install…
OpenCV Tutorial: A Guide to Learn OpenCV
Whether you’re interested in learning how to apply facial recognition to video streams, building a complete deep learning pipeline for image classification, or simply want to tinker with your Raspberry Pi and add image recognition to a hobby project, you’ll…
Bubble sheet multiple choice scanner and test grader using OMR, Python, and OpenCV
Over the past few months I’ve gotten quite the number of requests landing in my inbox to build a bubble sheet/Scantron-like test reader using computer vision and image processing techniques. A dataset of filled-in bubble sheets is essential for this…


Deep Learning
Deep Learning algorithms are revolutionizing the Computer Vision field, capable of obtaining unprecedented accuracy in Computer Vision tasks, including Image Classification, Object Detection, Segmentation, and more. Follow these tutorials and you’ll have enough knowledge to start applying Deep Learning to your own projects.
Featured articles
AugMix with KerasCV Breakdown (Part 1): Introduction to AugMix
Table of Contents AugMix Breakdown (Part 1): Introduction to AugMix with KerasCV Configuring Your Development Environment Need Help Configuring Your Development Environment? Introduction: Augmentations But Wait, What Is KerasCV? The Dataset The Problem Mismatch Between Training and Test Data Data…
DETR Breakdown Part 3: Architecture and Details
Table of Contents DETR Breakdown Part 3: Architecture and Details DETR Architecture 🏗️ CNN Backbone 🦴 Transformer Preprocessing ⚙️ Transformer Encoder 🔄 Transformer Decoder 🔄 Prediction Heads: Feed-Forward Network ➡️🧠 Importance of DETR 🌟 🔁 End-to-End Trainability ⏩ Parallel Decoding…
DETR Breakdown Part 2: Methodologies and Algorithms
Table of Contents DETR Breakdown Part 2: Methodologies and Algorithms The DETR Model 👁️ Object Detection Set Prediction Loss 📉 Optimal Bipartite Matching 🔄 Optimal Bipartite Matching for Objects 🌐 Optimize Object Specific Losses 🔧 Quiz Time! 🤓 Summary Citation…


Face Applications
Computer Vision algorithms can be used to perform face recognition, enhance security, aid law enforcement, detect tired, drowsy drivers behind the wheel, or build a virtual makeover system. Follow these tutorials learn the basics of facial applications using Computer Vision.
Featured articles
OpenCV Eigenfaces for Face Recognition
In this tutorial, you will learn how to implement face recognition using the Eigenfaces algorithm, OpenCV, and scikit-learn. Our previous tutorial introduced the concept of face recognition — detecting the presence of a face in an image/video and then subsequently…
Face Recognition with Local Binary Patterns (LBPs) and OpenCV
In this tutorial, you will learn how to perform face recognition using Local Binary Patterns (LBPs), OpenCV, and the cv2.face.LBPHFaceRecognizer_create function. In our previous tutorial, we discussed the fundamentals of face recognition, including: The difference between face detection and face…
What is face recognition?
In this tutorial, you will learn about face recognition, including: How face recognition works How face recognition is different from face detection A history of face recognition algorithms State-of-the-art algorithms used for face recognition today Next week we will start…
Student Success Stories
What People Are Saying
Adrian has helped me with my Computer Vision journey more than anyone ever has. If I need to learn anything his courses or the blog are the first thing I refer to. And if still in doubt just comment on the blog and he is very likely to respond to each and every question. Thanks Adrian.
Adrian’s deep learning book book is a great, in-depth dive into practical deep learning for computer vision. I found it to be an approachable and enjoyable read: explanations are clear and highly detailed. You’ll find many practical tips and recommendations that are rarely included in other books or in university courses. I highly recommend it, both to practitioners and beginners.
I consider PyImageSearch the best collection of tutorials for beginners in computer vision. Adrian’s explanations are easy to get started with and at the same time cover enough depth to quickly feel at home in the official documentation. This combination is a rare treasure in today’s overload of carelessly written tutorials. I’ve recommended PyImageSearch already numerous times.
Adrian’s Practical Python and OpenCV is the perfect first step if you are interested in computer vision but don’t know where to start…You’ll be glued to your workstation as you try out just one more example.
I highly recommend grabbing a copy of Deep Learning for Computer Vision with Python. It goes into a lot of detail and has tons of detailed examples. It’s the only book I’ve seen so far that covers both how things work and how to actually use them in the real world to solve difficult problems. Check it out!
Practical Python and OpenCV is a non-intimidating introduction to basic image processing tasks in Python. While reading the book, it feels as if Adrian is right next to you, helping you understand the many code examples without getting lost in mathematical details.
Phenomenal. The concepts on deep learning are so well explained that I will be recommending this book [Deep Learning for Computer Vision with Python] to anybody not just involved in computer vision but AI in general.
PyImageSearch is the go to place for computer vision. The blog and books show excellent use cases from simple to more complex, real world scenarios. The step guides are all working out of the box. I use them as a perfect starting point and enhance them in my own solutions.
The PyImageSearch Gurus course is one of the best education programs I have ever attended. No matter whether you are a beginner or advanced computer vision developer, you’ll definitely learn something new and valuable inside the course. I highly recommend PyImageSearch Gurus to anyone interested in learning computer vision.
My Books & Courses
My books and courses work. Students of mine have gone on to land high profile jobs at R&D companies, land $100,000+ in grant funding, publish novel papers in reputable journals, win Kaggle competitions, and completely change their career from developer to Computer Vision/Deep Learning practitioner.
Pick up a copy of my books/courses today and join them in CV/DL mastery.
PyImageSearch University
Inside PyImageSearch University, you get access to centralised code repos of high-quality source code for all 500+ tutorials on the PyImageSearch blog, Jupyter Notebooks in pre-configured Google Colab instances, video tutorials, and new courses released every month!
Deep Learning for Computer Vision with Python
An in-depth dive into the world of computer vision and deep learning. Start by learning the basics of DL, move on to training models on your own custom datasets, and advance to implementing state-of-the-art models.
FREE CV, DL, and OpenCV Crash Course
You can learn the fundamentals of Computer Vision, Deep Learning, and OpenCV in this totally practical, super hands-on, and absolutely FREE 17-day email crash course.
Practical Python and OpenCV
A gentle introduction to the world of Computer Vision and Image Processing through the OpenCV library and Python programming language.
PyImageSearch Gurus Course
Similar to a college survey course in computer vision but far more hands on and practical. Includes 168 lessons covering 13 modules and 2,161 pages of content. Most comprehensive comptuer vision course available today.
Raspberry Pi for Computer Vision
Apply Computer Vision, Deep Learning, and OpenCV to resource constrained/embedded devices, including the Raspberry Pi, Movidius NCS, Google Coral, and NVIDIA Jetson Nano.
About Me
You’re stuck learning Computer Vision and Deep Learning. So was I.
Hi there, I’m Adrian Rosebrock, PhD.
I started the PyImageSearch community to help fellowdevelopers, students, and researchers:
- Get started with Computer Vision and OpenCV
(without a decade of mathematics and theory). - Learn how to successfully apply Computer Vision, Deep Learning, and OpenCV to their own projects and research.
- Avoid the same mistakes and pitfalls I made when studying Computer Vision and Deep Learning.
Recent Blog Posts and Tutorials
Every Monday for the past five years I published a brand new tutorial on Computer Vision, Deep Learning, and OpenCV. Here are my most recent tutorials and guides.
YouTube Video Recommendation Systems
Table of Contents YouTube Video Recommendation Systems Overview Candidate Generation Network Architecture and Feature Representation Training Ranking Network Feature Selection Architecture Toward Multi-Task Ranking System Multi-Task Learning Multi-Gate Mixture of Experts Learning Selection Bias Summary Citation Information YouTube Video Recommendation…
SAM from Meta AI (Part 2): Integration with CLIP for Downstream Tasks
Table of Contents SAM from Meta AI (Part 2): Integration with CLIP for Downstream Tasks SAM and CLIP Integration Configuring Your Development Environment Need Help Configuring Your Development Environment? Project Structure Getting Individual Objects from Image Downstream Tasks with SAM…
SAM from Meta AI (Part 1): Segmentation with Prompts
Table of Contents SAM from Meta AI (Part 1): Segmentation with Prompts Segment Anything Training SAM Inference with SAM Project Structure Configuring Your Development Environment Need Help Configuring Your Development Environment? Creating Our Configuration File Implementing Visualization Functions Segmentation with…
Getting Started with Docker for Machine Learning
Table of Contents Getting Started with Docker for Machine Learning Overview: Why the Need? What Are Containers? How Do Containers Differ from Virtual Machines? Most Popular Container Images TensorFlow PyTorch Python NGINX Install Docker Install Docker Manually Install Docker Desktop…
AugMix with KerasCV Breakdown (Part 1): Introduction to AugMix
Table of Contents AugMix Breakdown (Part 1): Introduction to AugMix with KerasCV Configuring Your Development Environment Need Help Configuring Your Development Environment? Introduction: Augmentations But Wait, What Is KerasCV? The Dataset The Problem Mismatch Between Training and Test Data Data…
People Counter on OAK
Table of Contents People Counter on OAK Introduction Configuring Your Development Environment Need Help Configuring Your Development Environment? Project Structure What Is a Script Node in DepthAI? Configuring the Prerequisites Defining the Utilities Setting Up Imports Video Detection Pipeline Tracker…