You can master Computer Vision, Deep Learning, and OpenCV.
I’ve taken some of my best material from the past 5 years running PyImageSearch and designed a fully personalized, 17-lesson crash course on how to learn Computer Vision, Deep Learning, and OpenCV. Get instant access now.








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. And while I’ve been having a lot of fun doing…


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
An interview with Anthony Lowhur – Recognizing 10,000 Yugioh Cards with Computer Vision and Deep Learning
In this blog post, I interview computer vision and deep learning engineer, Anthony Lowhur. Anthony shares the algorithms and techniques that he used to build a computer vision and deep learning system capable of recognizing 10,000+ Yugioh trading cards. I…
Adversarial attacks with FGSM (Fast Gradient Sign Method)
In this tutorial, you will learn how to perform adversarial attacks using the Fast Gradient Sign Method (FGSM). We will implement FGSM using Keras and TensorFlow. Previously, we learned how to implement two forms of adversarial image attacks: Untargeted adversarial…
Contrastive Loss for Siamese Networks with Keras and TensorFlow
In this tutorial, you will learn about contrastive loss and how it can be used to train more accurate siamese neural networks. We will implement contrastive loss using Keras and TensorFlow. Previously, I authored a three-part series on the fundamentals…


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
COVID-19: Face Mask Detector with OpenCV, Keras/TensorFlow, and Deep Learning
In this tutorial, you will learn how to train a COVID-19 face mask detector with OpenCV, Keras/TensorFlow, and Deep Learning. Last month, I authored a blog post on detecting COVID-19 in X-ray images using deep learning. Readers really enjoyed learning…
OpenCV Age Detection with Deep Learning
In this tutorial, you will learn how to perform automatic age detection/prediction using OpenCV, Deep Learning, and Python. By the end of this tutorial, you will be able to automatically predict age in static image files and real-time video…
Blur and anonymize faces with OpenCV and Python
In this tutorial, you will learn how to blur and anonymize faces using OpenCV and Python. Today’s blog post is inspired by an email I received last week from PyImageSearch reader, Li Wei: Hi Adrian, I’m working on a…
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.
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.
An interview with Anthony Lowhur – Recognizing 10,000 Yugioh Cards with Computer Vision and Deep Learning
In this blog post, I interview computer vision and deep learning engineer, Anthony Lowhur. Anthony shares the algorithms and techniques that he used to build a computer vision and deep learning system capable of recognizing 10,000+ Yugioh trading cards. I…
Adversarial attacks with FGSM (Fast Gradient Sign Method)
In this tutorial, you will learn how to perform adversarial attacks using the Fast Gradient Sign Method (FGSM). We will implement FGSM using Keras and TensorFlow. Previously, we learned how to implement two forms of adversarial image attacks: Untargeted adversarial…
OpenCV Connected Component Labeling and Analysis
In this tutorial, you will learn how to perform connected component labeling and analysis with OpenCV. Specifically, we will focus on OpenCV’s most used connected component labeling function, cv2.connectedComponentsWithStats. Connected component labeling (also known as connected component analysis, blob extraction,…
Automatic color correction with OpenCV and Python
In this tutorial, you will learn how to perform automatic color correction with OpenCV using a color matching/balancing card. Last week we discovered how to perform histogram matching. Using histogram matching, we can take the color distribution of one image…
Using computer vision and OCR for immigration document classification (an interview with Vince DiMascio)
In this post, I interview Vince DiMascio, CIO/CTO of Berry Appleman & Leiden (BAL), a law firm specializing in corporate immigration. BAL is using computer vision, machine learning, and artificial intelligence to automatically classify immigration documents, thus helping expedite the…
Histogram matching with OpenCV, scikit-image, and Python
In this tutorial, you will learn how to perform histogram matching using OpenCV and scikit-image. Last week we discussed histogram equalization, a basic image processing technique that can improve the contrast of an input image. But what if you wanted…