Computer Vision Beginner Resources
December 9, 2018
Contents
If We Want Machines to Think, We Need to Teach Them to See - Fei Fei Li, Director of Stanford AI Lab and Stanford Vision Lab.
Computer Vision is a broad field that has gained massive attraction after AlexNet competed in ImageNet Large Scale Visual Recognition Challenge (2012). Below you can see the Google trend of Computer Vision keyword being searched over the past 5 years.
Just like any other domain in Artificial Intelligence, Computer Vision is a challenging domain as it involves making computers understand and extract meaning from the outside world. Knowledge on Computer Vision makes one to solve problems in key areas such as Agriculture, Healthcare, Banking, Automotive, Retail, Industrial usecases and Security - read more.
In this blog post, you will find resources such as lectures, libraries, blogs, courses and educational content related to applying Artificial Intelligence in Computer Vision for beginners. If you find out any interesting or valuable content, kindly add it in the comment section below so that we will add it here.
Note: This blog post is for absolute beginners who are new to Computer Vision and Artificial Intelligence.
CV Lectures
Computer Vision (CV) lectures taught by top universities such as Stanford, UCF etc., are provided for free in YouTube for people interested to learn. A beginner in Computer Vision can start here to understand the core concepts.
- Introduction to Computer Vision | Udacity
- UCF Computer Vision Video Lectures 2014
- EENG 512 - Computer Vision - Colorado School of Mines
- Stanford - Convolutional Neural Networks for Visual Recognition (Spring 2017)
- Stanford - CS231n Winter 2016
- Machine Learning for Computer Vision - Dr. Rudolph Triebel
- Lecture: Multiple View Geometry (Prof. D. Cremers)
- Computer Vision for Visual Effects (ECSE-6969) Lectures Spring 2014
Python Courses
Majority of CV problems are currently solved using Python, although production-level deployment might involve C++ as well. Hence, knowledge on Python is crucial for beginners to launch their career in CV. OpenCV is the de facto standard when it comes to solving Computer Vision problems.
- Python Programming - Resources
- OpenCV 3 with Python 3 Tutorial
- The Python Mini-Degree: Learn Computer Vision and Machine Learning
- OpenCV with Python for Image and Video
- OpenCV Basics
ML/DL Courses
Currently, to solve Computer Vision problems, Machine Learning (ML) and Deep Learning (DL) techniques are highly preferred. This is due to the accuracy these algorithms bring in solving current state-of-the-art CV problems. Hence, learning CV requires you to learn ML and DL concepts too!
- Machine Learning - Coursera
- Deep Learning - Coursera
- Machine Learning A-Z™: Hands-On Python & R In Data Science
- Machine Learning with Python: A Practical Introduction
- Deep Learning Fundamentals with Keras
- Deep Learning with Python and PyTorch
- Deep Learning with Tensorflow
- Machine Learning, Data Science and Deep Learning with Python
- NPTEL - Deep Learning
PyImageSearch
To learn practical computer vision using Python and OpenCV, Adrian Rosebrock has excellent courses and books which I felt is completely worth it. I highly encourage beginners to enroll in his courses, buy his valuable books on CV and follow his amazing CV blog.
- PyImageSearch - Practical Python and OpenCV
- PyImageSearch - Deep Learning for Computer Vision
- PyImageSearch - Gurus
Blogs
There are so many CV blogs that deliver top-notch tutorials on how to use a specific library or how to solve a CV problem using code or describing current state-of-the-art research in CV. Reading blogs is one of the ways to catch up with the fast-moving CV industry.
Individual Blogs
- Pyimagesearch - Adrian Rosebrock
- Learn OpenCV - Satya Mallick
- Tombone’s Computer Vision Blog
- Machine Learning Mastery
- Zbigatron
- Gil’s CV Blog
- The Serious Computer Vision Blog
- Computer Vision Talks
- AI Shack
- Computer Vision Basics with Python Keras and OpenCV
- Andrej Karpathy - Tesla
- Chris Olah - Google
- Avi Singh
- Aaditya Prakash (Adi)
Organization Blogs
- Google AI
- Facebook Computer Vision Research
- NVIDIA Computer Vision Blog
- Qualcomm Computer Vision Research
- Clarifai Blog
- Wolfram Image Processing
- Orbital Insight
- Mighty AI
- Wide Eyes Technologies
- Tyro Labs
Libraries
When it comes to code, libraries becomes handy! Python is the programming language of choice which has rich ecosystem of libraries for CV, ML, DL and other data science techniques such as Data Manipulation and Data Visualization.
- OpenCV
- SimpleCV
- TensorFlow
- Tensorflow JS
- Keras
- PyTorch
- NumPy
- SciPy
- matplotlib
- Python Imaging Library
- Mahotas
- scikit-learn
- ilastik
- scikit-image
Datasets
When it comes to making a computer learn images/videos, we need datasets. There are publicly available datasets around the internet to benchmark algorithms for a specific problem.
Bulk Dataset Links
- CV Datasets on the Web
- Yet Another Computer Vision Index To Datasets (YACVID)
- Computer Vision Datasets
- Databases or Datasets for Computer Vision Applications and Testing
- VisualData
- Google Dataset Search
Image Classification
Scene Recognition
Image Captioning
Pedestrian Detection
Fine-grained Classification
Books
Some of the books that I read regularly and refer, related to Computer Vision, Deep Learning and Machine Learning are as follows.
- Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville.
- Deep Learning Review by Yaan LeCun, Yoshua Bengio and Geoffrey Hinton.
- Deep Learning with Python by François Chollet.
- Neural Networks and Deep Learning by Michael Nielsen.
- Computer Vision: Algorithms and Applications by Richard Szeliski.
- Hands–On Machine Learning with Scikit–Learn and TensorFlow by Aurelien Geron.
Bonus Resources
Below are some additional resources that you could use to learn more about Computer Vision, Machine Learning and Deep Learning.