Essentials of Computer Vision
A math-first approach to learning computer vision in Python. The repository will contain all HTML, PDF, Markdown, Python Scripts, data, and media assets (images or links to supplementary videos). If you wish to contribute, I need translations for Bahasa Indonesia. Please submit a Pull Request.
Study Guide
Chapter 1
- Affine Transformation
- Definition
- Practical Examples
- Motivation
- Getting Affine Transformation
- Code Illustrations
- Summary and Key Points
- Optional video
- References and learn-by-building modules
Chapter 2
- Kernel Convolutions
- Definition
- Smoothing and Blurring
- A Note on Terminology
- Kernels or Filters?
- Correlations vs Convolutions?
- Code Illustrations: Mean Filtering
- Role in Convolution Neural Networks
- Handy Kernels for Image Processing
- Summary and Key Points
- References and learn-by-building modules
Chapter 3
- Edge Detection
- Definition
- Gradient-based Edge Detection
- Image Segmentation
- Canny Edge Detector
- References and learn-by-building modules
Chapter 4
- Digit Classification
Chapter 5
- Facial Recognition
Approach and Motivation
The course is foundational to anyone who wish to work with computer vision in Python. It covers some of the most common image processing routines, and have in-depth coverage on mathematical concepts present in the materials:
- Math-first approach
- Tons of sample python scripts (.py)
- 45+ python scripts from chapter 1 to 4 for plug-and-play experiments
- Multimedia (image illustrations, video explanation, quiz)
- 57 image assets from chapter 1 to 4 for practical illustrations
- 4 PDFs, and 4 HTMLs, one for each chapter
- Practical tips on real-world applications
The course's only dependency is OpenCV
. Getting started is as easy as pip install opencv-contrib-python
and you're set to go.
Question: What about deep learning libraries?
No; While using deep learning for images made for interesting topics, they are probably better suited as an altogether separate course series. This course series (tutorial series) focused on the essentials of computer vision and, for pedagogical reasons, try not to be overly ambitious with the scope it intends to cover.
There will be similarity in concepts and principles, as modern neural network architectures draw plenty of inspirations from "classical" computer vision techniques that predate it. By first learning how computer vision problems are solved, the student can compare that to the deep learning equivalent, which result in a more comprehensive appreciation of what deep learning offer to modern day computer scientists.
Course Materials Preview:
Python scripts
PDF and HTML
Workshops
I conduct in-person lectures using the materials you find in this repository. These workshops are usually paid because there are upfront costs to afford a venue and crew. Not just any venue, but a learning environment that is fully equipped (audio, desks, charging points for everyone, massive screen projector, walking space fo teaching assistants, dinner).
You can follow me on LinkedIn to be updated about the latest workshops. I also make long-form programming tutorials and lessons on computer vision on my YouTube channel
Introduction to AI in Computer Vision
- 4th January 2020, Jakarta
- Kantorkuu, Citywalk sudirman, Jakarta Pusat
- Time: 1300-1600
- 3 hour
- Fee: Free for Algoritma Alumni, 100k IDR for public
Computer Vision: Principles and Practice
-
21st and 22nd January 2020, Jakarta
- Accelerice, Jl. Rasuna Said, Jakarta Selatan
- Time: 1830-2130
- 6 Hour
- Fee: Free for Algoritma Alumni, 1.5m IDR for public
-
24th and 25th Feburary 2020, Bangkok
- JustCo, Samyan Mitrtown
- Time: 1830-2130
- 6 Hour
- Fee: Free for Algoritma Alumni, 9000 THB for public
Image Assets
-
car2.png
,pen.jpg
,lego.jpg
andsudoku.jpg
are under Creative Commons (CC) license. -
sarpi.jpg
,castello.png
,canal.png
and all other photography used are taken during my trip to Venice and you are free to use them. -
All assets in Chapter 4 (the
digitrecognition
folder) are mine and you are free to use them. -
All other illustrations are created by me in Keynote.
-
Videos are created by me, and Bahasa Indonesia voice over on my videos is by Tiara Dwiputri
New to programming? 50-minute Quick Start
Here's a video: Computer Vision Essentials 1 I created to get you through the installation and taking the first step into this lesson path.
If you need help in the course, attend my in-person workshops on this topic (Computer Vision Essentials, free) throughout the course of the year.