Search the FAQ
Browse Questions
Questions are organized by category. If you can’t find your question in this list, take a look at the “Need more help?” section at the bottom of the page.
General Questions (6)
- Share a link to the tutorial on your favorite social media channel (Facebook, Twitter, LinkedIn, etc.)
- Share the tutorial with your colleagues at work.
- Share the tutorial with your research group or lab.
- Share the link with your friends who are also interested in computer vision and deep learning.
Hey there, I’m Adrian Rosebrock.
I started PyImageSearch back in 2014 and since then have authored 300+ free tutorials (along with 4 books and courses) on computer vision, deep learning, and OpenCV.
Besides me, you may interact with three other people here on the PyImageSearch team:
- Abhishek Thanki: Abhishek is a recent addition to the PyImageSearch team — he handles writing code (especially for the Raspberry Pi), Q&A, and sometimes answers support questions.
- Sayak Paul: Sayak is an Intel Software Innovator, Google Developer Expert in Machine Learning, and author. Sayak’s unique experience with not only embedded systems, but deep learning and data science, makes him a valuable asset to the team. Sayak helps me write code and provide Q&A support to PyImageSearch readers.
- Casey O’Brien: Casey is our Support Manager. When a new email comes in, Casey triages the email, and routes it to the appropriate party on the PyImageSearch team. She helps ensure customers and readers receive the best possible experience here at PyImageSearch.
The point is this:
- PyImageSearch is a small, intimate team
- We’re not a faceless company or a big publisher
- We’re real people with a passion for helping others study computer vision and deep learning
I sell the books and courses I have authored here on PyImageSearch to:
- Keep the blog running
- Ensure I can continue to create (free) tutorials
- Support my family
- Support my team and their families
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10167};
I started PyImageSearch during my final semester of my graduate school career.
Despite having completed my PhD dissertation, due to department regulations I was required to stay in the program for my final semester. I used this time to start PyImageSearch.
When I first started studying computer vision there were only a handful of textbooks. There were even fewer hands-on, practical books that covered OpenCV. And there were essentially zero blogs about them (especially with high quality tutorials + code).
Frustrated with my experience, I decided to create PyImageSearch to help others.
On this blog you will find hands-on tutorials and guides, including well documented source code that runs out-of-the-box, that will help you learn computer vision, deep learning, and OpenCV.
I hope you enjoy your time spent on PyImageSearch!
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10168};
When I first started PyImageSearch my area of expertise in the computer vision field was Content-based Image Retrieval (CBIR), which is basically building image search engines.
Python was also my favorite programming language and the one I used most often for computer vision research.
I decided to name my blog “PyImageSearch”, thinking I was going to write exclusively about CBIR using the Python programming language.
That obviously changed!
Now I write about OpenCV, the computer vision field as a whole, and the intersection of computer vision and deep learning.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10169};
Maybe.
Every now and then I do hire for new positions at PyImageSearch.
These positions are typically for either:
- Development and Q&A: There are over 300+ free tutorials on the PyImageSearch blog. After they are published I like to ensure that they are kept up to date (at least the most popular ones). This position type involves updating existing or writing new code to fix a problem caused my a newer version of a library. For this position you should have a strong understanding of OpenCV and the libraries we use here on PyImageSearch.
- Support: The PyImageSearch blog receives 100s of emails per day. I personally respond to as many of them as I can; however, I cannot get to them all. The support positions typically involve helping readers with questions about CV and DL and inquiries regarding my books and courses. This position requires that you are familiar with the PyImageSearch blog, know what I’ve written tutorials on, and know which books/courses cover a particular topic. Previous work in support or sales is definitely preferred.
- Administrative: There is only so much time in the day, and between writing new free tutorials, creating new books/courses, and helping others on PyImageSearch, sometimes I just run out of time. Administrative work could be anything from helping a customer who cannot login to a course, updating the database, or helping me with miscellaneous tasks.
Please note that each and every hire I have ever made is from the PyImageSearch community.
These people are familiar with myself, my tutorials, my books and courses, along with the PyImageSearch brand. Every hire I’ve ever made has gone through at least one of my books and courses (most hires have gone through all of them). Hiring from the PyImageSearch community ensures the super high quality support and content of the blog is retained.
I announce all new positions via email. If you’d like to be notified when a new position is announced, make sure you are on the PyImageSearch newsletter (you are already on the newsletter if you currently receive emails from me).
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10170};
Unless explicitly stated, all tutorials on the PyImageSearch blog, including my books and courses, adhere to the following license:
Copyright (c) 2020 PyImageSearch.com SIMPLE VERSION Feel free to use this code for your own projects, whether they are purely educational, for fun, or for profit. THE EXCEPTION BEING if you are developing a course, book, or other educational product. Under *NO CIRCUMSTANCE* may you use this code for your own paid educational or self-promotional ventures without written consent from Adrian Rosebrock and PyImageSearch.com. LONGER, FORMAL VERSION Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Notwithstanding the foregoing, you may not use, copy, modify, merge, publish, distribute, sublicense, create a derivative work, and/or sell copies of the Software in any work that is designed, intended, or marketed for pedagogical or instructional purposes related to programming, coding, application development, or information technology. Permission for such use, copying, modification, and merger, publication, distribution, sub-licensing, creation of derivative works, or sale is expressly withheld. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Additionally, if you use my code examples in a blog post, tutorial, book, chapter, paper, publication, presentation, etc., you need to properly cite the tutorial.
window.rmpanda = window.rmpanda || {}; window.rmpanda.cmsdata = {"cms":"wordpress","pageId":16683};Customer Questions (33)
I offer four books/courses on the PyImageSearch blog:
- PyImageSearch University — Learn computer vision, deep learning, and ML with on-demand videos, assessments, and certifications.
- Deep Learning for Computer Vision with Python — In-depth dive into the world of computer vision and deep learning
- OCR with OpenCV, Tesseract, and Python — Learn how to successfully and confidently apply Optical Character Recognition to your work, projects, and research.
- Practical Python and OpenCV — Gentle intro to the world of computer vision and image processing through OpenCV
- PyImageSearch Gurus — Similar to a college survey course in computer vision but much more hands-on, and practical. Includes 168 lessons.
- Raspberry Pi for Computer Vision — Teach your embedded devices, including the Raspberry Pi, Jetson Nano, or Google Coral to “see” using computer vision, deep learning, and OpenCV.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10171};
I offer six books and courses on PyImageSearch:
- PyImageSearch University (covers all topics)
- Deep Learning for Computer Vision with Python
- OCR with OpenCV, Tesseract, and Python
- Practical Python and OpenCV
- PyImageSearch Gurus
- Raspberry Pi for Computer Vision
The following figure concisely depicts what each book/course covers:
PyImageSearch University is our flagship offering covering all topics with assessments, certifications, on-demand videos, code downloads, and pre-configured Colab Notebooks.
Practical Python and OpenCV serves as a gentle introduction to the world of computer vision and image processing. If you’re new computer vision, you should go with this book.
If you’re interested in a more detailed review of the computer vision field as a whole, you should with the PyImageSearch Gurus course. The course covers 13 modules broken out into 168 lessons. It’s similar to a college survey computer in computer vision but much more hands-on and practical. Everything covered in Practical Python and OpenCV is also covered in the Gurus course (and in more detail).
Deep Learning for Computer Vision with Python is a deep dive into the world of computer vision and deep learning. This 900+ page book includes super practical walkthroughs, hands-on tutorials (with lots of code), and a no-nonsense teaching style that is guaranteed to help you master deep learning and computer vision. Approximately 15% of my deep learning book is used in the Gurus course.
My book, Raspberry Pi for Computer Vision, focuses on applying computer vision algorithms to embedded devices, such as the Raspberry Pi, Google Coral, and NVIDIA Jetson Nano. This book is 100% brand new content and does not overlap with my previous books and courses. I would recommend going with this book either (1) if you already have some experience in computer vision or (2) after reading one of my other books/courses so you can learn the fundamentals.
OCR with OpenCV, Tesseract, and Python is more than just a book it’s your complete training guide to mastering Optical Character Recognition.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10172};
Here is my typical recommendation to PyImageSearch readers:
- Try PyImageSearch University first. It is the most interactive and extensive course we offer. The odds are, it will have what you need in the most enjoyable and interactive format.
- If you want to study the intersection of computer vision and deep learning in-depth, you should go with Deep Learning for Computer Vision with Python (DL4CV). Whether this is the first time you’ve worked with machine learning and neural networks or you’re already a seasoned deep learning practitioner, DL4CV is engineered from the ground up to help you reach expert status.
- If you need to learn how to successfully and confidently apply Optical Character Recognition to your work, research, and projects, I suggest you go with OCR with OpenCV, Tesseract, and Python.
- If you’re brand new to the world of computer vision and image processing, go with Practical Python and OpenCV (PPaO) so you can learn the basics first.
- If you want an in-depth dive into the computer vision field, go with the PyImageSearch Gurus course. Everything covered in PPaO is covered in the Gurus course (and in more detail). This comprehensive computer vision course starts with the fundamentals and leads you all the way up to mastering advanced topics, enabling you to complete your work projects, perform novel research/finish your MSc or PhD, and even prepare you for the CV job market.
- If you want to perform computer vision and deep learning on embedded devices, such as the Raspberry Pi, Google Coral, or NVIDIA Jetson Nano, I would recommend Raspberry Pi for Computer Vision. This book teaches you how to solve real-world computer vision problems using embedded devices. It also covers applying state-of-the-art neural networks (classification, detection, segmentation, etc.) to resource constrained devices. After going through the text and code you will be able to develop CV, DL, and IoT applications of your own on embedded devices.
If you have any questions on my offerings, please email me or contact me.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10174};
Yes, but, I need to make sure we’re on the same page. If you are a customer and you have a question about the explicit content in your purchase, we’ll help you out.
If you are a customer looking for consulting services about your project or idea I will connect you with a trustworthy consultant who you may want to hire to consult on your project.
If you are not a customer you will not get a response unless you are asking a question about buying one of our products.
Sorry if this sounds harsh, but, I have grown to the point where I can’t answer reader questions or provide free consulting. I get more inbound requests than I can answer, so, I hope you’ll understand.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10175};
Physical, hardcopy editions of my books are included in:
- Deep Learning for Computer Vision with Python — ImageNet Bundle
- OCR with OpenCV, Tesseract, and Python — Expert Bundle
- Practical Python and OpenCV — Hardcopy Bundle
- Raspberry Pi for Computer Vision — Complete Bundle
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10176};
No.
As a self-published author, it’s not cheap to have copies of the books printed — I also manually fulfill all orders myself. In order to make the hardcopies feasible, I need to charge a little extra and provide a ton of added value through the high quality code, virtual tutorials, and pre-configured dev environments included in my books.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10177};
I stand by my books and courses. They’ve helped tens of thousands of developers, students, and researchers learn computer vision and deep learning.
I’m sorry to hear that you would like a refund. Simply send me an email and ask for a refund, up to 30 days after your purchase.
But to be honest, my readers are satisfied and I’m sure you will be too.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10178};
Yes.
On each of my book/course pages you will see a form on the bottom-right where you can enter your email address to obtain the table of contents and sample chapters/lessons.
Enter your email address in that form and your table of contents and sample chapters/lessons will be emailed to you automatically.
For reference, here are links to my current books and courses:
- PyImageSearch University
- Deep Learning for Computer Vision with Python
- OCR with OpenCV, Tesseract, and Python
- Practical Python and OpenCV
- PyImageSearch Gurus
- Raspberry Pi for Computer Vision
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10179};
Yes, after you purchase an invoice/receipt will be automatically generated and emailed to you.
If you need any additional information included on your invoice just reply to your purchase receipt and include any relevant information you need on the invoice (name, business, address, etc.).
From there I will generate your invoice for you.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10180};
I really appreciate your interest in my books and courses — I put a ton of effort into not only writing them, but keeping them updated and current as well.
And if currency conversion is a problem then I am truly sorry that you cannot afford to purchase them in your country.
That said, I do not give away free copies of my books and courses.
I feel that I give away enough of myself for free already. I have authored 400+ free blog posts and tutorials on the PyImageSearch blog. I have also personally answered over 14,000 comments on the PyImageSearch blog, again, for free.
There is a point where I need to charge for products to help justify my time spent on PyImageSearch and to further help others as well. I do hope you understand.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10181};
Sorry, no.
The first reason is because this privilege has been abused in the past.
The second reason is because I feel that I’ve already given enough of myself away for free already. You can find the 400+ free tutorials I’ve written on the PyImageSearch blog.
That said, if you are a student or teacher I can offer you a discount. To be eligible for the discount please confirm your academic status by either:
- Emailing me from your university, college, or school email address.
- Sending me an email with a copy of your student ID attached
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10182};
No, our material is published in PDF.
After you purchase you will be able to download the eBooks.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10183};
I offer discounts to students and teachers.
To be eligible for the discount please confirm your academic status by either:
- Emailing me from your university, college, or school email address
- Sending me an email with a copy of your student ID attached
If you are interested in placing a large order (i.e., multiple copies) for your organization I may be able to offer you a larger discount as well. Email me or contact me and we can discuss.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10184};
I currently accept credit card and PayPal as forms of payment for my books and courses.
For large orders I may be able to accept a wire transfer or cryptocurrency.
I do not accept AliPay at this time.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10185};
Yes, you can always upgrade from a lower tier bundle to a higher tier simply by paying the price difference between the two (you won’t have to “repurchase” the content you already own).
If you’d like to upgrade you should email me or use my contact form.
Make sure you include your previous purchase as well as what bundle you want to upgrade to.
From there I can ensure you can upgrade.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10186};
Several of our products offer certificates. Please refer to our sales page for more details.
window.rmpanda = window.rmpanda || {}; window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10187};I don’t generally runs sales, maybe once or twice a year at the very most.
If you’re serious about studying computer vision or deep learning you’re doing yourself a tremendous disservice waiting for a sale.
My books and courses are designed to pay you back on your investment of time and finances multiple times over.
Look at this way:
By waiting all you’re doing is delaying getting your start. The more you wait to get started, the less competent you’ll be in computer vision/deep learning a week from now, ultimately preventing you from reaching computer vision/deep learning mastery.
As James, a PyImageSearch reader and Deep Learning for Computer Vision with Python customer, puts it:
“Adrian takes months, perhaps even years, of research via trial and error, and condenses it into a single, information-packed book!”
My books and courses are the real deal and get results. You owe it to yourself to get started now.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10188};
The free tutorials you’ll find here on the PyImageSearch blog are of super high quality (some readers even say they are higher quality than most paid books and courses you’ll find online).
I put even more effort into my books and courses, including:
- Organizing all content, ensuring it’s convenient and easy to follow (i.e., no more hunting for tutorials on Google and trying to connect all the dots)
- More in-depth guides and chapters to ensure you have complete understanding
- Super high quality (and well documented) source code that you can use in your own projects
- Pre-configured development environments to get you up and running in minutes
- Free updates whenever a new edition is released
When you purchase one of my books/courses you not only have a clear, linear path to mastery, but all the tools you need to be successful (including myself and the PyImageSearch team by your side).
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10189};
When was the last time you emailed a book or course author with a question?
How long did it take for them to respond? A few days? Weeks?
More than likely they never responded at all.
My books and courses are different, and that’s primarily because I hold myself and PyImageSearch to an incredibly high standard.
When you buy a book or course from me, you’re not just getting the content itself — you’re also getting access to me and the PyImageSearch team.
Furthermore, when you purchase from me you’ll also be getting:
- The books and courses themselves (including any video tutorials)
- Convenient and easy to follow chapters and guides (i.e., no more hunting for tutorials on Google and trying to connect all the dots)
- In-depth tutorials and chapters to ensure you have complete understanding
- Super high quality (and well documented) source code that you can use in your own projects
- Pre-configured development environments to get you up and running in minutes
- Free updates whenever a new edition is released
When you purchase one of my books/courses you not only have a clear, linear path to mastery, but all the tools you need to be successful (including myself and the PyImageSearch team by your side).
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10190};
Absolutely!
Here are a few of my favorites:
- Case study with Paul Lee: Read Deep Learning for Computer Vision with Python and went through the PyImageSearch Gurus course, which educated Paul to the point where he could perform novel research and publish a paper in the prestigious American Heart Association journal. Paul’s research focused using CNNs to automatically analyze and interpret coronary angiograms, detect blockages in patient arteries, and ultimately help reduce and prevent heart attacks.
- Case study with Brandon Giles: Used Raspberry Pi for Computer Vision and Deep Learning for Computer Vision with Python to partner with the official OpenCV organization and develop the OpenCV AI Kit (OAK) which raised a record breaking $1.2 million on Kickstarter.
- Case study with David Austin: Took home 1st place (and $25,000) in Kaggle’s most competitive image classification competition of all time using techniques learned in Deep Learning for Computer Vision with Python and the PyImageSearch Gurus course.
- Case study with Jagadish Mahendran: Avid reader of all my books and courses. Won 1st place in the OpenCV Spatial AI Competition using the new OpenCV AI Kit (OAK).
- Case study with Saideep Talari: Started career as network tester, found first job in computer vision after completing the PyImageSearch Gurus course, and after completing Deep Learning for Computer Vision with Python, is now the CTO of a tech company with $2M in funding.
- Case study with Tuomo Hiippala: Awarded $30,500 grant for computer vision research after completing the PyImageSearch Gurus course.
- Case study with Kapil Varshney: Nailed his interview after going through Deep Learning for Computer Vision with Python and landed at job at Esri R&D.
I can’t promise you’ll win a Kaggle competition like David has or become the CTO of a computer vision company like Saideep did, but I can guarantee that the books and courses I offer on PyImageSearch are the best resources available today to master computer vision and deep learning.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10191};
You can buy my books and courses from their respective pages:
- PyImageSearch University — Learn computer vision, deep learning, and ML with on-demand videos, assessments, and certifications.
- Deep Learning for Computer Vision with Python — In-depth dive into the world of computer vision and deep learning
- OCR with OpenCV, Tesseract, and Python — Learn how to successfully and confidently apply Optical Character Recognition to your work, projects, and research.
- Practical Python and OpenCV — Gentle intro to the world of computer vision and image processing through OpenCV
- PyImageSearch Gurus — Similar to a college survey course in computer vision but much more hands-on, and practical. Includes 168 lessons.
- Raspberry Pi for Computer Vision — Teach your embedded devices, including the Raspberry Pi, Jetson Nano, or Google Coral to “see” using computer vision, deep learning, and OpenCV.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10192};
After purchasing you will be redirected to a page that contains your download links.
An email will also be sent to you with a link you can use to access your downloads.
If you used PayPal, keep in mind that the purchase confirmation email + download link may have been sent to your PayPal email address.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10193};
After purchasing you will be redirected to a page that contains your download links.
An email will also be sent to you with a link you can use to access your downloads.
If you used PayPal, keep in mind that the purchase confirmation email + download link may have been sent to your PayPal email address.
The service I use to handle payments and distribution of digital downloads utilizes a self-service system, so if you ever lose your purchase link, you can use the following link to login and access your purchases:
https://pyimagesearch.mykajabi.com/login/
If you run into any issues obtaining your downloads you can of course email me or use my contact form.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10194};
The service I use to handle payments and distribution of digital downloads utilizes a self-service system.
If you would ever like to access your downloads just use this link
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10196};
A unique device is defined as the IP address + browser of your system. You have 5 unique devices that you can download the files.
If you see this error it’s because you have exceeded your total number of unique devices for download.
You’ll need to email me or contact me so I can validate that the devices are legitimate and/or increase the number of allowed unique devices.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10198};
All prices listed on PyImageSearch are in United States Dollars (USD).
Payments can be made using credit card or PayPal that support international payments.
You do not need to convert your local currency to USD before purchasing (your credit card or PayPal account should do that for you automatically).
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10199};
Comparatively, my book/courses are more expensive than most other online books/courses.
But also comparatively, my content deliver far more results and a higher return of investment of both time and finances than other books/courses.
Instead of hearing from me (I’m biased, I wrote them), take a look at some of the reviews of my books and courses that land in my inbox each and every day:
“Deep Learning for Computer Vision with Python 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.” — François Chollet, AI researcher at Google and creator of the Keras deep learning library.
“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.” — Dr. Tomasz Malisiewicz, Principal Engineer in Deep Learning at Magic Leap.
“Today I passed my PhD candidacy exam and I have a big thanks to convey to you for that. I used your book on computer vision and deep learning and the concepts really helped me implement my solution faster” — Harsh Singh, a PhD student at the University of Ontario, (who successfully passed his candidacy exam after working through my deep learning book).
“PyImageSearch Gurus starts feeding tremendously accessible computer vision knowledge from day 0. It’s like learning how magic is done.” — Caio Iglesias, Computer vision + machine learning enthusiast
“I did deeplearning.ai, Udacity AI Nanodegree, and bunch of other courses…but for the last month I have always started the day by first finishing one day of your course. The projects are not too overwhelming but each project gets a key thing done, so they are super useful. I keep on finding myself getting back and looking at the source code from your projects, much more than I do from other courses.” — Igor Marjanovic, Researcher and business owner
Clearly my books and courses have helped these developers, researchers, and students, all with varying levels of experience, come to master deep learning for computer vision.
I even have a few case studies that you can review as well:
- Case study with Paul Lee: Read Deep Learning for Computer Vision with Python and went through the PyImageSearch Gurus course, which educated Paul to the point where he could perform novel research and publish a paper in the prestigious American Heart Association journal. Paul’s research focused using CNNs to automatically analyze and interpret coronary angiograms, detect blockages in patient arteries, and ultimately help reduce and prevent heart attacks.
- Case study with Brandon Giles: Used Raspberry Pi for Computer Vision and Deep Learning for Computer Vision with Python to partner with the official OpenCV organization and develop the OpenCV AI Kit (OAK) which raised a record breaking $1.2 million on Kickstarter.
- Case study with David Austin: Took home 1st place (and $25,000) in Kaggle’s most competitive image classification competition of all time using techniques learned in Deep Learning for Computer Vision with Python and the PyImageSearch Gurus course.
- Case study with Jagadish Mahendran: Avid reader of all my books and courses. Won 1st place in the OpenCV Spatial AI Competition using the new OpenCV AI Kit (OAK).
- Case study with Saideep Talari: Started career as network tester, found first job in computer vision after completing the PyImageSearch Gurus course, and after completing Deep Learning for Computer Vision with Python, is now the CTO of a tech company with $2M in funding.
- Case study with Tuomo Hiippala: Awarded $30,500 grant for computer vision research after completing the PyImageSearch Gurus course.
- Case study with Kapil Varshney: Nailed his interview after going through Deep Learning for Computer Vision with Python and landed at job at Esri R&D.
While my books and courses are certainly more expensive than most other computer vision deep learning books/courses, you’re getting a significantly higher return on both your finances and your time.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10200};
I do not offer my books or courses on Amazon, primarily because:
- Amazon takes over 50% of the sale price of self-published books (which would put me out of business).
- Amazon does not offer any control of the shopping cart experience.
- Amazon’s on-demand program to print and ship self-published author’s book is unreliable and deliveries sometimes never arrive
- Amazon does not notify me of your email address, ensuring I can deliver your free updates to the books/courses as new editions are released.
- Amazon does not provide me with any contact information so I would be unable to followup with you if you had any questions
- Amazon does not allow me to deliver my books in PDF format which is what most PyImageSearch readers prefer
I hope you understand my reasoning — it’s my goal to ensure you not only obtain the computer vision and deep learning knowledge you are seeking, but also have a great customer experience as well.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10201};
I do not offer my books or courses for free.
The primary reason is that I feel that I give away enough of myself for free already. I have authored 400+ free blog posts and tutorials on the PyImageSearch blog. I have also personally answered over 14,000 comments on the PyImageSearch blog, again, for free.
There is a point where I need to charge for products to help justify my time spent on PyImageSearch and to further help others as well.
I do hope you understand and I hope you continue to enjoy the free tutorials on the PyImageSearch blog.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10202};
I’m sorry to hear your payment is not working.
I use both Stripe (for credit card transactions) and PayPal, two of the most popular services online used for handling tractions. Both support safe, secure payment processing.
Here are the most common issues I see when a payment is not working:
- Is your credit card number, expiration, and security number correct? Double and triple-check the details just in case there is a typo.
- Could you try a different payment method? PayPal instead of a credit card or vice versa?
- Perhaps your bank or credit card blocked the transaction? Your bank or credit card company may have incorrectly blocked the transaction, thinking it was fraud (I’ve seen this happen a few times for larger payments or payments from outside the United States). You should call your bank/credit card company and have them unblock the charge.
- Have you tried pre-authorizing the charge? One sure-fire way to ensure your payment goes through is to call your bank/credit card and notify them of the payment you’re about to make. They will be able to pre-authorize the charge and ensure it goes through.
If you’re still having difficulty with the payment you can email me or contact me and I will try to help.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10203};
Yes.
I keep all of my books and courses updated and current.
After I update a book or a course, you will receive an email with a link to download/access the most recent edition.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10204};
Does the following error look familiar?
If so, you are getting this error because of the Hyper-V mode in Windows. There are two steps to fix this problem:
- The first is to disable Hyper-V mode from the Windows control panel. Take a look at the answers to this question, which is the same problem you are encountering. Disabling Hyper-V is different on different Windows versions, but following the answer to the question above you should be able to find your solution. That said, also make sure you do step 2 below as well.
- The second is to check your BIOS. The next time you boot your system, go into the BIOS and ensure that Virtualization is enabled (normally it’s under some sort of “advanced setting”). If virtualization is not enabled, then the VM will not be able to boot.
Some Windows systems can be a little finicky regarding virtualization. But by following the above two steps you’ll be good to go!
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10205};
Yes, if your question is specifically about the content in your purchase. I’m not able to assist if you are looking for help in your own code/project.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10207};
Help Me Questions (17)
Sorry, I don’t provide help or support over the phone — I just don’t have the time to.
I also don’t share my phone number so please don’t ask.
You can contact me directly via my contact form.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10208};
Sorry, no, I’m too busy to offer one-on-one coaching.
And furthermore, I receive 100+ emails per day along with another 100+ notifications on various social media platforms. It can be hard to keep track of them all.
To ensure I don’t lose track of your message (and so I can help you out), we need to stick to email.
If you don’t have my email you can use my contact form — your message will go straight to my inbox.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10209};
Yes, but please reference/cite it and provide a link back crediting the PyImageSearch blog.
You’ll want to include the following information when citing my content:
- The name of the author (i.e., “Adrian Rosebrock”)
- The title of the blog post, book, or course (i.e., “OpenCV Face Recognition”)
- The name of publisher (i.e., “PyImageSearch”)
- The URL of the blog post, book, or course
- The date you accessed the tutorial or code
Here’s an example citation that you can use as a template:
Adrian Rosebrock, OpenCV Face Recognition, PyImageSearch, https://pyimagesearch.com/2018/09/24/opencv-face-recognition/, accessed on 16 April 2019
If you are citing my work please contact me as well as I love seeing what others are doing with my work — emails like those really make my day!
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10210};
No.
I get a lot of requests like this, and while I’m more than happy to help, I cannot provide any customizations to the code.
Please keep in mind that I’ve already offered not only the code but an in-depth tutorial to you for free — I cannot take on any additional customizations. I’m sure you understand my position.
That said, here are a few suggestions:
- I’m a big fan of learning by doing. Take the time to try the customization yourself. Learning by doing gives you the deepest understanding and retention.
- Break the project into smaller pieces, solve it one step at a time (i.e., don’t type up 100s of lines of code and expect it to work right off the bat)
- Perhaps I’ve already authored a tutorial on the customization you’re looking for. Have you tried searching the PyImageSearch blog?
- Have you read the comments section to the tutorial? Perhaps another reader has already done the customization.
- Have you considered hiring a programmer or contractor to make the necessary changes?
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10212};
I’m truly flattered that you would like me to be your advisor.
However, I am not affiliated with a university and I do not advise students.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10213};
I do offer consulting and contracting work through PyImageSearch.
Instead of going it alone (like I used to do), I’ve teamed up with my former PhD advisor, Dr. Tim Oates, along with Stephen Sklarew, a product and technology executive and consultant.
Together, we’re offering PyImageSearch Consulting for Computer Vision, Deep Learning, and Artificial Intelligence, through their company, Synaptiq.
My primary day-to-day responsibilities still lie with authoring new blog posts, books, and courses, while Tim and Stephen manage the consulting side of the business with myself stepping in when necessary.
If you’re interested in our services, use this link to tell us about your project:
Click here to tell us about your project.
Keep in mind that our services are extremely competitive — the more details you can share regarding your project, budget, and timeline, the more likely we’ll be able to get back to you quickly and help you succeed in your project.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10214};
No.
Do you have a question about someone else’s paper, blog post, or code?
I love helping, but as you know, reading through someone’s paper or dissecting another programmer’s code is a tedious, time-consuming task — I just don’t have enough capacity for every request I get.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10215};
No.
I’ve written a number of tutorials on configuring your development environment on macOS, Linux (Ubuntu), and Raspbian. You can find all of them on this page.
I also provide downloadable, pre-configured development environments (i.e., Virtual Machines) inside my books and courses, including:
- Deep Learning for Computer Vision with Python
- OCR with OpenCV, Tesseract, and Python
- Practical Python and OpenCV
- PyImageSearch Gurus
- Raspberry Pi for Computer Vision (includes pre-configured Raspbian .img files)
These Virtual Machines (VM) are super easy to use and work across all major operating systems, including macOS, Linux, and Windows.
All you need to do is download the VM, install VirtualBox, and import the VM — the entire process takes only a few minutes and will save you hours and hours of time.
I also provide pre-configured Amazon AMI and Microsoft Azure instances if you’re interested in performing deep learning (especially with GPUs).
Since I offer so many free tutorials as well as paid pre-configured development environments I typically don’t offer too much help debugging your own personal environment.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10216};
PyImageSearch supports all major operating systems including Windows, macOS, Linux, and Raspbian. We provide native development environment configuration instructions for macOS, Linux, and Raspbian.
All users, in particular Windows users, are encouraged to utilize our pre-configured Jupyter Notebooks in Google Colab. These Jupyter Notebooks can be found inside PyImageSearch University.
Using our Jupyter Notebooks you can skip configuring your development environment and run all code examples in your web browser, allowing you to quickly learn new computer vision skills and techniques.
To learn more about PyImageSearch University, just click here.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10229};
No.
I love helping, but as you know, reading through someone’s paper or dissecting another programmer’s code is a tedious, time consuming task — I just don’t have enough capacity for every request I get.
Here are my suggestions:
- Cut your code down dramatically — narrow down on the issue by inserting “print” statements or using “pdb” , Python’s debugger.
- If you’re getting an error be sure to search Google, StackOverflow, and GitHub for it.
- If a specific library is throwing an error start with their GitHub and search for it, particularly in the “Issues” page of their GitHub).
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10230};
Sorry, I really don’t have the capacity for 1:1 coaching.
Furthermore, using chat/instant messenger applications takes me awhile from my primary goal in running PyImageSearch, which is authoring high quality tutorials for you to learn from.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10231};
Sorry, no, not at this time.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10232};
Do you already have an advisor at your school or university?
If so, you should talk with your advisor first.
It will be much easier for you to complete your research if you focus on areas your advisor already has expertise in. Look at what your advisor has published. What is their research interests? Could you align your own research interests with your advisors in some tangential way?
Not only will your advisor be more naturally interested in your research but they will be able to provide you additional help and guidance through their added domain knowledge.
If you don’t have an advisor I would suggest reading the most recent publications from popular computer vision and machine learning journals, including CVPR, ICML, NIPs, etc.
Read the abstracts and conclusions from these journals and keep track of the ones that interest you the most.
Then, when you’re done, go back to your short list and brainstorm how you might extend their works.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10233};
I’m sorry to hear the code is not working for you.
I test all code, images, datasets, etc. before I include them in a blog post and publish the code.
Here are a few suggestions you should try:
- Did you use the “Downloads” section of the tutorial to download the source code? (The downloads section can be found at the bottom of the post, just above the comments section).
- Did you copy and paste the code from a tutorial? If so, stop immediately and use the “Downloads” section — you may have introduced an error or bug when copying and pasting.
- Have you double and triple checked the paths to the input files are correct?
- Have you tried running the code from the command line and not an IDE or Jupyter Notebook?
- Have you verified you are passing in the proper command line arguments to the script?
- Have you searched StackOverflow for the error?
- If your error is related to a specific library, have you searched for the error on the library’s GitHub page?
- Have you read the comments section or at least did ctrl + f search on the page for your error? Most common errors are addressed in the comments.
If you think you found a bug in the tutorial, you should contact me.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10234};
To start, I would recommend searching the PyImageSearch blog first.
Head to Google and search for:
site:pyimagesearch.com your keywords here
The “site:pyimagesearch.com” will instruct Google to search only my blog for your particular topic.
Secondly, you should take a look at my books and courses:
- PyImageSearch University
- Deep Learning for Computer Vision with Python
- OCR with OpenCV, Tesseract, and Python
- Practical Python and OpenCV
- PyImageSearch Gurus
- Raspberry Pi for Computer Vision
Between my blog posts, books, and courses I’ve covered most of the popular computer vision topics.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10235};
Maybe.
I always love suggestions, and while I cannot guarantee if/when I will cover your topic, I would like to hear your suggestion.
To give a suggestion either send an email or use my contact form.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10236};
No.
One of the reasons I created PyImageSearch is to help students succeed.
However, I strongly believe that you need to do your own work.
Keep in mind that while I have a PhD in Computer Science, I only had one course in Computer Vision during my college career — I taught myself the rest.
I had plenty of self-assigned homework that I worked through when studying CV.
And yes, while PyImageSearch exists to help you avoid the same mistakes I made when studying CV and DL that does not excuse you from doing your own homework.
It may be challenging right now but that’s how we grow — we challenge ourselves; we push through barriers (painfully at times), and then we reap the rewards on the other side.
Your homework is your chance to breakthrough these barriers.
I did and I know you can do it too.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":11221};
Email Questions (7)
Yes, you can change the email address used to receive emails from PyImageSearch (including newsletter and purchase emails).
To have your email address updated please contact me (either via email or my contact form) and provide the following information:
- Your current email address you are receiving PyImageSearch emails to
- The new email address you would like to receive emails to
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10237};
Yes, but unless it’s either (1) a question regarding one of my books, courses, or tutorials, or (2) a sales question, it’s unlikely that I’ll be able to respond. I simply receive too many emails on a daily basis asking for free help, support, or consulting to keep up with them all.
Instead of spending all my time in my inbox, I’ve decided to build the best online computer vision and deep learning experience at PyImageSearch University. You’re very likely to find an easy-to-follow lesson inside there with an answer to your question. Why not join today?
window.rmpanda = window.rmpanda || {}; window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10238};No.
I can’t respond to email (because I get too much). However, I do my best to help customers by investing my time in building the best online learning platform, PyImageSearch University.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10239};
Do you need faster, more in-depth support from me?
If so, you should join the PyImageSearch Gurus course.
The Gurus course not only includes 168+ lessons on computer vision, but also private community forums that I personally participate in daily.
If you’re serious about getting my help then I ask that you invest in both yourself and your education. I’ll then be able to provide you with faster, more targeted help.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10240};
You may have signed up for too many of my courses/sample chapter offerings.
- My email newsletter comes out once per week
- The free 17-day email crash course I offer sends out 1 email per day (excluding weekends)
- If you signed up for the table of contents or sample chapters/lessons to my books/courses you may receive a few emails from those as well
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10241};
I’ve found that the vast majority of PyImageSearch readers really love email-based courses.
They enjoy having the lessons sent directly to them, that way the lessons are ready for them in their inbox.
I receive many emails per day from readers thanking me for the lessons in the crash course.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10242};
You can, but please don’t be offended if I ask you to send me an email instead.
I receive 100s of notifications per day across Facebook, Twitter, LinkedIn, and other social media — it can be hard to keep track of them all!
The best way to learn from me is actually inside PyImageSearch University where I’ve published tutorials on nearly every topic.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10243};
Website Questions (6)
Thank you for the offer.
But please do not translate my blog posts, books, or courses into another language.
While I really appreciate you offering:
- I prefer to retain complete control over my content
- I’m too busy to manage any type of translation process
- I keep my content up to date (and if it was translated I wouldn’t be able to do so)
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10244};
Unless you think there is a bug/problem with the tutorials, it’s unlikely that I’ll be able to respond.
I’m not able to answer blog post questions because I think my time is best spent serving students building PyImageSearch University
Here’s why:
For each hour I spend building PyImageSearch University I can help thousands of students with new videos, content, assessments, and certifications.
I hope you’ll join me inside the University today.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10245};
The best way to get a .zip archive of code, a pre-configured Jupyter Notebook running in Google Colab, and a video tutorial explaining each blog post is to join me inside our flagship offering, PyImageSearch University.
Why not join today?
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10246};
Thank you for being thoughtful and citing my content, I really appreciate that!
You’ll want to include the following information when citing my content:
- The name of the author (i.e., “Adrian Rosebrock”)
- The title of the blog post, book, or course (i.e., “OpenCV Face Recognition”)
- The name of publisher (i.e., “PyImageSearch”)
- The URL of the blog post, book, or course
- The date you accessed the tutorial or code
Here’s an example citation that you can use as a template:
Adrian Rosebrock, OpenCV Face Recognition, PyImageSearch, https://pyimagesearch.com/2018/09/24/opencv-face-recognition/, accessed on 16 April 2019
If you are citing my work please contact me as well as I love seeing what others are doing with my work — emails like those really make my day!
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10248};
I write a lot so I’m bound to make typos from time to time.
If you find a typo please email me or use the PyImageSearch contact form to alert me.
Please include the URL of where the typo exists including the typo itself.
I’ll then fix the typo ASAP.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10249};
I’m sorry to hear the code is not working for you.
I test all code, images, datasets, etc. before I include them in a blog post and publish the code.
The most common reason code doesn’t work is development environment issues.
The good news is you never need to struggle with your dev environment again. That’s one of the reasons we include pre-configured Jupyter Notebooks for Google Colab inside PyImageSearch University.
These notebooks automatically configure themselves when you run them, ensuring you won’t have to deal with the headache of configuring your environment.
window.rmpanda = window.rmpanda || {};
window.rmpanda.cmsdata = {"cms":"wordpress","pageId":10252};
Need more help?
I’m dedicated to helping you learn computer vision, deep learning, and OpenCV. If you could not find your question in the list above, here are a few more options:
- Join PyImageSearch University PyImageSearch University
- Brand new courses released every month, ensuring you can keep up with state-of-the-art techniques
- 19h 26m on-demand video
- 12 courses on essential computer vision, deep learning, and OpenCV topics
- 12 Certificates of Completion
- 304 tutorials and downloadable resources
- Pre-configured Jupyter Notebooks in Google Colab for 200+ PyImageSearch tutorials
- Run all code examples in your web browser — works on Windows, macOS, and Linux (no dev environment configuration required!)
- Access to centralized code repos for all 400+ tutorials on PyImageSearch
- Read through Deep Learning for Computer Vision with Python
- In-depth dive into the world of computer vision and deep learning.
- Whether this is the first time you’ve worked with machine learning and neural networks or you’re already a seasoned deep learning practitioner, DL4CV is engineered from the ground up to help you reach expert status.
- Go through OCR with OpenCV, Tesseract, and Python
- Learn how to successfully and confidently apply Optical Character Recognition to your work, projects, and research
- Take a look at Practical Python and OpenCV
- My gentle introduction to the world of computer vision and image processing through OpenCV.
- If you’re brand new to the world of computer vision and image processing, start with this book so you can learn the fundamentals first.
- Join the PyImageSearch Gurus course
- Similar to a college survey course in computer vision but much more hands-on, and practical.
- Covers 13 modules broken out into 168 lessons, with other 2,161 pages of content.
- Includes private community forums which I participate in daily.
- Great way to get faster, more detailed answers to your questions.
- Go through Raspberry Pi for Computer Vision
- Focuses on applying computer vision algorithms to embedded devices, such as the Raspberry Pi, Google Coral, and NVIDIA Jetson Nano