Today is a big day — I’m formally announcing that I’m writing a brand new book on Computer Vision with the Raspberry Pi.
I’ve been wanting to write this book for years, arguably ever since I started playing around with the Raspberry Pi and OpenCV.
But the timing never worked out quite right.
I was either:
- Wrapping up other books or courses
- Busy with existing projects that needed to be completed
- Pulled in too many directions at once, not having the mental bandwidth and capacity to work with both the Raspberry Pi hardware and Computer Vision software at the same time
But deep down I wanted to write this book and make it come to life.
On my yearly retreat in late 2018/early 2019 the stars aligned. I looked at my project plans, my commitments for the year, and took stock of my mental bandwidth. All three were a “go” — I decided the Raspberry Pi + Computer Vision book would be written and published in 2019.
Since that decision, myself and the PyImageSearch team have been writing code and putting together projects for the book.
We’ve put together code for chapters that will enable you to:
- Build practical, real-world computer vision applications on the Raspberry Pi
- Create Computer Vision and Internet of Things (IoT) projects and applications with the Raspberry Pi
- Optimize your OpenCV code and algorithms on the resource constrained Pi
- Perform Deep Learning on the Raspberry Pi (including utilizing the Movidius NCS and OpenVINO toolkit)
- Create self-driving car applications with a Raspberry Pi
But before I can publish the book, I need your help first…
To start, I haven’t finalized the name of the book yet. I’ll be sending out an email with a survey to nail down the book title in the next few days, so if you’re interested in helping to name the book, keep an eye on your inbox.
After the book has been named I’ll be launching a Kickstarter campaign in mid-April 2019 to finish funding the Raspberry Pi + Computer Vision book.
I fully intend on not only completing the book but also publishing it in Autumn 2019.
To learn more about the upcoming Computer Vision and Raspberry Pi book, and more importantly, lend your opinion to help shape the future of the book, just keep reading.
I need your advice on my upcoming Raspberry Pi and Computer Vision book
I value your opinion, as a PyImageSearch reader, more than anything else — I want to create content that you’ll not only enjoy but also get tremendous value out of.
Any successful writer, entrepreneur, or business owner (especially in a highly technical field) will tell you the importance of sharing what you’re doing/building with your audience well before it’s finished so they can provide you with feedback, input, and insights.
The last thing you would want to do is build a product/write a book that no one wants, uses, or reads.
I’m no different — I want to make sure you get value out of everything I create.
In order to make this Computer Vision + Raspberry Pi book a success, I need your help.
In the remainder of this post I’ve included a rough outline/description of what I plan to cover in this upcoming book.
The outline is by no means complete and finalized but I believe it does accurately reflect what will be covered. Chapters will certainly be modified and added during the writing process.
Take a look at this list of topics. Then be sure to either send me an email, shoot me a message, or reply in the comments section at the bottom of this post with your feedback and suggestions.
What are the prerequisites for this book?
In an effort to keep this book as practical and hands-on as possible, I am trying to keep the prerequisites at a minimum.
At the very least you should:
- Have basic programming knowledge and experience
- Know the fundamentals of computer vision and the OpenCV library
Basically, if you have either (1) read through Practical Python and OpenCV or (2) can follow tutorials here on PyImageSearch, you have all the prerequisites you need.
If you’ve gone through the PyImageSearch Gurus course you’ll be able to pick up the algorithms used inside the text in a snap.
And if you’ve worked through my deep learning book, Deep Learning for Computer Vision with Python, you’ll be able to more easily train your own deep learning models (and then deploy them to the Pi).
If you haven’t worked through any of my books or courses, don’t worry, I’ll help get you the resources and guides you to need to be successful applying computer vision to the Raspberry Pi.
My point here is simple — don’t get too hung up on the book prerequisites. The simple fact is this:
Inside the text you’ll learn how to apply computer vision and deep learning concepts on the Raspberry Pi, regardless of your experience level.
It doesn’t matter if you are new to computer vision or a seasoned computer vision practitioner), you will find tremendous value in this book, I guarantee that.
What is going to be covered in the Raspberry Pi + Computer Vision book?
My general plan for the upcoming book is to focus on developing computer vision and deep learning applications for the Raspberry Pi (including IoT projects).
Inside the text you’ll not only learn how to develop the algorithms but also optimize them, ensuring you get every last little drop of performance out of the Raspberry Pi.
The book itself will be detailed, but also super hands-on and highly practical.
If you’re a follower of the PyImageSearch blog you know that I’m a big fan of “learning by doing”. Each chapter will include highly documented, thoroughly explained source code, giving you the tools and implementations you need to successfully create computer vision projects on the Raspberry Pi.
When appropriate I’ll also be including academic citations, references to current state-of-the-art work, and cross-references to other relevant PyImageSearch tutorials and blog posts.
By breaking the book into tiers I’ll be able to enable you (the reader) to select the tier that best fits:
- Your particular needs
- Your budget
This means that if you just want to test the waters of the Raspberry Pi and computer vision you’ll be able to purchase a cheaper, more affordable tier.
And if you already have a good amount of experience with computer vision (or if you simply want the complete package), and want to learn more advanced techniques, you’ll be able to purchase the higher tier bundles.
I haven’t fully defined where the “line” will be drawn separating the tiers/bundles (although I have a pretty good idea), but below you can find the list of topics I plan on covering.
If you have any suggestions on additional chapters, please either send me an email, shoot me a message, or simply comment on this post using the form at the bottom of the page.
Raspberry Pi and Computer Vision book topics
Here is the current rough outline/set of topics I plan on covering inside the new Computer Vision and Raspberry Pi book.
If you have any suggestions for topics to cover, please either (1) send me an email, (2) shoot me a message, or (3) leave a comment on this post using the form at the bottom of the page.
Working with the Raspberry Pi
- Why the Raspberry Pi?
- Configure your Raspberry Pi for computer vision + deep learning (including all libraries, packages, etc.)
- Or, skip the install process and use my pre-configured Raspbian .img file which comes with everything you need pre-installed! Just flash the .img file and boot.
- Streamline your development process and learn how to optimally write code on the Raspberry Pi (including suggested IDEs and recommended settings/configurations)
- Access both your USB webcam and/or Raspberry Pi camera module on the Pi
- Work with the NoIR camera module
- Learn how to utilize multiple cameras with the Raspberry Pi
Getting Started with Computer Vision on the Raspberry Pi
- Gain experience with OpenCV and your Raspberry Pi camera by creating time lapse videos on the Pi
- Build an automatic bird feed monitor that detects when birds are present
- Create a “delivery detector” that detects when mail has been delivered to your mailbox
- Build an automatic prescription pill identification system (and reduce the 1.2 million injuries and deaths each year that happen due to taking the incorrect pill)
- Learn how to stream frames from a Raspberry Pi to your web browser
- Pipe frames from the Raspberry Pi camera to your laptop, desktop, or cloud instance, process the frames, and then return the results to the Pi
Computer Vision and IoT projects with the Raspberry Pi
- Review hardware considerations and suggestions when using the Raspberry Pi in IoT applications
- Learn how to work in low light conditions, including camera and algorithm suggestions
- Build and deploy a remote wildlife monitor, capable of detecting wildlife and saving clips of wildlife activity
- Learn how to automatically run your computer vision applications on boot/reboot on the Pi
- Utilize multiple Raspberry Pis and learn how to efficiently perform Pi-to-Pi communication (including sharing images/frames between Pis)
- Send txt message (including messages with images and video) to your phone from the Pi
- Build a neighborhood vehicle speed monitor that detects cars, estimates their speed, and logs driver activity
- Create a traffic counting system capable of detecting and counting the number of vehicles on a road
- Reduce package theft by automatically recognizing delivery trucks and detecting package delivery
Servos and PID
- What’s a PID?
- Learn how to track faces and objects with pan/tilt servo tracking
- Create self-driving car applications with the Raspberry Pi (see “Self-driving Cars and the Raspberry Pi” section below for full list of topics)
Human Activity, Home Surveillance, and Facial Applications
- Build a basic video surveillance system and detect when people enter “unauthorized” zones
- Extend your video surveillance system to include deep learning-based object detection and annotated output video clips
- Track your family members and pets throughout the house using multiple cameras and multiple Raspberry Pi’s
- Utilize the Raspberry Pi to perform gesture recognition
- Deploy your Raspberry Pi to vehicles and detect tired, drowsy drivers (and sound an alarm to wake them up)
- Build an automatic people/footfall counter to count the number of people entering and leaving a store, house, etc.
- Perform face recognition on the Raspberry Pi
- Create a smart classroom and automatic attendance system capable of detecting which students are (and are not) present
Deep Learning on the Raspberry Pi
- Learn how to perform deep learning on resource constrained devices
- Utilize the Movidius NCS and OpenVINO for faster, more efficient deep learning on the Raspberry Pi
- Perform object detection using the TinyYOLO object detector on the Pi
- Utilize Single Shot Detectors (SSDs) on the Raspberry Pi
- Train and deploy a deep learning gesture recognition model on your Pi
- Reduce package theft by training and deploying a deep learning model to recognize delivery trucks
- Build your own traffic camera to count vehicles and estimate vehicle speed
- Use deep learning and multiple Raspberry Pis to create a network of “smart cameras”
Movidius NCS and OpenVINO
- Discover OpenVINO and how can it dramatically improve inference time on a Raspberry Pi
- Learn how to configure and install OpenCV with OpenVINO support
- Configure the Movidius NCS development kit on your Raspberry Pi
- Classify images using deep learning and the Movidius NCS on your Pi
- Perform object detection on the Movidius NCS to create a person counter and tracker
- Create a face recognition system using the Movidius NCS on the Raspberry Pi
Self-driving Cars and the Raspberry Pi
- Discover the GoPiGo3 and how it can facilitate studies in self-driving cars with the Raspberry Pi
- Learn how to drive your GoPiGo3 with a Raspberry Pi
- Drive a course using the GoPiGo3 and Raspberry Pi
- Recognize traffic lights with the Raspberry Pi
- Drive to specific objects using the GoPiGo3 and a Raspberry Pi
- Create a line/lane follower with the Raspberry Pi
Tips, Suggestions, and Best Practices
- Learn about OpenCV optimizations, including OpenCL and how to access all four cores of the Raspberry Pi, boosting your system performance
- Discover my blueprint on how to design your own computer vision + Raspberry Pi applications for optimal performance
- Increase your FPS throughput rate using threading and multiprocessing
- Review my guidelines and best practices on when to use the Pi CPU, Movidius NCS, or stream frames to a more powerful system
As of right now I have 40+ chapters planned out with more to come!
So, what do you think?
As you can see from the outline, this book is shaping up to be an in-depth, yet highly practical treatment of using the Raspberry Pi to build computer vision and deep learning applications.
If have any feedback or suggestions on the topics covered please feel free to contact me or leave a comment at the bottom of this blog post.
Why a Kickstarter campaign?
I’ll be sharing more details on the upcoming Kickstarter campaign for the new Raspberry Pi and Computer Vision book in the coming weeks, but since I know I’ll get asked “Why a Kickstarter campaign?” I thought I would address it now.
First, I’m a big fan of Kickstarter campaigns.
They are a great way to spread the word about a project beyond the PyImageSearch audience. This enables me to grow PyImageSearch and ensure I can continue creating content (both free and paid) for years to come.
Secondly, I have experience running two successful Kickstarter campaigns:
- Back in 2015 I launched a Kickstarter campaign to fund the creation of the PyImageSearch Gurus course.
- In 2017 I created a second Kickstarter, this one for Deep Learning for Computer Vision with Python.
Both were successfully funded and completed ahead of schedule.
Without the Kickstarter campaigns I would not have the funds necessary to dedicate my time to coding the examples, writing the text, editing it, and putting together the final product.
In the context of this computer vision and Raspberry Pi book, I’ll be running the Kickstarter campaign to help pay for my time, Raspberry Pi hardware, server costs, and editing costs.
While the Raspberry Pi and associated hardware are typically cheap (a Pi only costs $35), keep in mind that:
- I utilize many Raspberry Pi’s, making it faster and more efficient to put this book together (and ultimately get it in your hands faster).
- I’m purchasing, evaluating, and testing additional hardware for the Pi, ensuring I can give you the best possible recommendations to create successful computer vision and deep learning applications on the Pi.
- I have AWS/Azure cloud expenses. Some chapters inside the Raspberry Pi + Computer Vision book will utilize deep learning models. I’m training my own networks in the cloud which I will then give to you once the book is complete (but the cloud bill still needs to be paid).
- I have to pay for two sets of editors. It takes two editors to create successful technical book/courses here on PyImageSearch. The first editor addresses spelling and grammar while the second editor ensures the technical aspects of the text are not only correct but reproducible. The second type of editing in particular is what sets PyImageSearch apart from other websites and ensures super high quality books/courses (and that editing isn’t cheap either).
- I need to ensure my own time is paid for. It takes a lot of time to author a single (free) tutorial here on PyImageSearch. I put even more effort into content that I charge for (such as my books and courses). Funds from the Kickstarter will ensure that not only the book is completed successfully and on time, but that I can continue to produce free content on the PyImageSearch blog.
All these expenses really add up and up until this point I’ve been putting all of the book expenses on my credit card.
After authoring three successful books/courses, I can assure you, creating a high quality book is not cheap — I need the additional funds to pay for the rest of the book creation.
Interested in learning more?
To stay in the loop regarding my upcoming Computer Vision and Raspberry Pi book, just click the following button and enter your email address:
Along with updates on the Raspberry Pi + Computer Vision book, within the next few days I’ll also be sending out a short survey to help name the book — keep an eye on your inbox, I really need your input!
Keep in mind: I am writing this book for you.
Everything I do here on the PyImageSearch blog is for you, the reader.
Whether that’s authoring free tutorials or creating a brand new book/course, all of it is for YOU.
If you see any topics that you would like to be included in the book, either email me, send me a message, or post in the comments section at the bottom of this page.
I cannot guarantee that I’ll be able to accommodate all (or even most) of the requests and suggestions, but I will do my absolute best to consider all opinions/suggestions to help make this the BEST computer vision and Raspberry Pi book available today.
Keep an eye on your inbox for the book title survey email, otherwise I’ll be back in a couple weeks with the finalized details on the Kickstarter campaign and book topics list.