Computer Vision (CV) - Notes¶
Quick Reference¶
- Definition: Computer vision is a field of artificial intelligence that enables computers to interpret and make decisions based on visual data (images, videos).
- Key Use Cases: Object detection, facial recognition, autonomous driving, medical image analysis, and visual search.
- Prerequisites: Basic understanding of programming (e.g., Python), familiarity with linear algebra and basic probability is helpful but not required.
Table of Contents¶
- Introduction
- Key Concepts
- Applications
- Computer Vision Problem & Challenges
- Computer Vision Pipeline Architecture
- Computer Vision Sub-fields/domains
- CV Algorithms & Applications
- Computer Vision & Deep Learning
- Computer Vision & Generative AI
- Computer Vision & Multimodality
- CV Datasets
- Hello World!
- Lab: Zero to Hero Projects
- Computer Vision Projects in Industry
- Top Computer Vision Conferences
- Computer Vision Roadmap
- Computer Vision Researcher - Starting Resources
- References
Introduction¶
- Computer Vision is a field of artificial intelligence that enables computers to interpret and make decisions based on visual data from the real-world.
Key Concepts¶
- Image Processing: Manipulating raw images to enhance or extract meaningful information.
- Feature Extraction: Identifying essential patterns or characteristics from visual data (e.g., edges, textures, shapes).
- Object Detection: Locating and identifying objects within an image or video.
- Convolutional Neural Networks (CNNs): A type of neural network specifically designed to process and analyze visual data.
- Common Misconception: Many believe that computer vision only involves recognizing objects in images, but it also encompasses tasks like image generation, segmentation, and video analysis.
Applications¶
- Self-driving cars use computer vision for detecting pedestrians, traffic signals, and other vehicles.
- Healthcare applies computer vision for analyzing medical images (e.g., MRI, X-rays) to diagnose diseases.
- Retail benefits from facial recognition and in-store customer behavior analysis.
- Manufacturing employs vision systems for quality control and defect detection.
- Robotics relies on vision for navigation and manipulation in dynamic environments.
- Augmented Reality (AR) uses computer vision for overlaying digital information on the real world.
- Remote Sensing involves analyzing data from sensors to understand the Earth's surface and atmosphere.
- And more ...
Computer Vision Problem & Challenges: Why Computer Vision is a Hard problem in AI?¶
| Challenge Category | Description |
|---|---|
| Ambiguity and Interpretation | - Contextual understanding: Objects require context for interpretation. - Occlusions: Objects can be partially hidden. - Illusions: Visual illusions can mislead algorithms. |
| Variability and Diversity | - Object variations: Objects can appear differently due to lighting, pose, scale, or deformation. - Background clutter: Images often have distracting backgrounds. - Real-world complexity: The real world is diverse and complex. |
| Data Challenges | - Data acquisition: Collecting large, diverse, and high-quality datasets is difficult. - Annotation: Labeling images accurately is time-consuming and error-prone. - Data bias: Datasets can be biased, leading to biased models. |
| Computational Complexity | - Computational resources: Computer vision algorithms can be computationally demanding. - Real-time processing: Many applications require real-time performance. |
| Generalization | - Domain adaptation: Models may not generalize well to new, unseen data. - Out-of-distribution data: Models can struggle with data that is significantly different from their training data. |
- Resources:
- Why Computer Vision Is a Hard Problem for AI - Alexei Efros UC Berkeley
- The state of Computer Vision and AI: we are really, really far away (Must Read!) - Karpathy Blog
Computer Vision Pipeline Architecture¶
graph LR
A[Image Acquisition fa:fa-camera-retro] --> B[Preprocessing fa:fa-cogs ]
B --> C[Feature Extraction]
C --> D[Model Training / Classification]
D --> E[Post-processing / Interpretation]
style A font-weight:bold, fill:#CCC,stroke:#333,stroke-width:2px
style B font-weight:bold, fill:#F88,stroke:#333,stroke-width:2px
style C font-weight:bold, fill:#4F4,stroke:#333,stroke-width:2px
style D font-weight:bold, fill:#99F,stroke:#333,stroke-width:2px
style E font-weight:bold, fill:#FFF,stroke:#333,stroke-width:2px
- Image Acquisition: Collecting raw images.
- Preprocessing: Preparing data by resizing, noise reduction, etc.
- Feature Extraction: Identifying key visual elements.
- Model Training: Teaching models to classify or recognize features.
- Post-processing: Interpreting results and making decisions.
How Computer Vision Works¶
- Step 1: Images or videos are captured from sensors (camera, etc.).
- Step 2: Data is preprocessed—resized, normalized, or enhanced to make it suitable for analysis.
- Step 3: Key features are extracted through techniques like edge detection, filtering, or using CNNs.
- Step 4: Models, often neural networks, are trained on labeled datasets to classify, detect, or segment objects.
- Step 5: Results are interpreted, visualized, or fed into decision-making systems.
Methods, Types & Variations¶
- Image Classification: Categorizing images into predefined labels.
- Object Detection: Locating objects in images and bounding them with boxes.
- Semantic Segmentation: Assigning a label to every pixel in an image.
- Instance Segmentation: Identifying distinct objects and outlining each separately.
- Contrasting Example: While classification gives a global label (e.g., cat/dog), segmentation offers pixel-level understanding.
Tools & Frameworks¶
| Category | Tools | Description |
|---|---|---|
| Data | - Roboflow - LandingAI - Encord - Albumentations - Kangas |
Tools for data preparation, augmentation, and management in computer vision projects. |
| Build/Evaluate | - OpenCV - Scikit-Image - Pillow (PIL Fork) - TorchVision - MMCV - TensorFlow - Keras - MATLAB - PyTorch - Hugging Face - Caffe - Detectron2 - Anomalib - Ultralytics - Pythae - SimpleCV - BoofCV - CUDA - NVIDIA CUDA-X - NVIDIA Performance Primitives |
Libraries and frameworks for building, training, and evaluating computer vision models. |
| Deploy & Monitoring | - OpenVINO - Comet - Viso Suite - DeepFace |
Tools for deploying computer vision models and monitoring their performance in production environments. |
- Pros & Cons: OpenCV is fast but limited for deep learning; TensorFlow/PyTorch offer flexibility but require more setup.
Computer Vision Sub-fields/domains¶

Src: Rui Nobrega
Sub-domains of computer vision include :
- scene reconstruction,
- object detection,
- event detection,
- activity recognition,
- video tracking,
- object recognition,
- 3D pose estimation,
- learning, indexing,
- motion estimation,
- visual servoing,
- 3D scene modeling,
- image restoration
- ...
Computer Vision Algorithms & Applications¶
Structure from motion algorithms - Can reconstruct a sparse 3D point model of a large complex scene from hundreds of partially overlapping photographs
Stereo matching algorithms - Can build a detailed 3D model of a building façade from hundreds of differently exposed photographs taken from the Internet
Person tracking algorithms - Can track a person walking in front of a cluttered background
Face detection algorithms - Coupled with color-based clothing and hair detection algorithms, can locate and recognize the individuals in this image
Computer Vision & Deep Learning¶
Non-exhautive list of Conv Nets (CNN) Archictectures
- AlexNet, BN-AlexNet, BN-INI, ENet, GoogLeNet (Inception-v1), ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 , Inception-v3 , Inception-v4, VGG-16, VGG-19, ViT, ...
Deep Learning Research Notes
- Deep Learning Neural Nets
- Deep Learning Neural Nets Architectures
- Convolutional Neural Network (CNN) - Notebook
- The State of Computer Vision at Hugging Face
- Computer Vision & Keras resources
Computer Vision & Generative AI (VLMs, LVMs, ...)¶
Vision GenAI - Generative Adversarial Network (GAN) - OpenAI DALL-E - Midjourney - Stable Diffusion - Blog articles: - GenAI in Computer Vision: Transforming business with visual intelligence - crayon.com
Large Vision Models (LVMs)
- Large Vision Models (LVMs) - LandingAI
- Sequential Modeling Enables Scalable Learning for LVMs - paper
Vision-LLMs (LLMs handling Visual tasks): Text-To-Image, ... - LLM-in-Vision - Yong-Lu Li(@DirtyHarryLYL) - Computer vision and Large Language Models (LLM) - How do Large Language Models (LLMs) Integrate with Computer Vision? - How do LLMs work with Vision AI? | OCR, Image & Video Analysis - It's not just words: LLMs in Computer Vision - Microsoft Reactor
Computer Vision & Multimodality¶
- Multimodal Models and Computer Vision: A Deep Dive - Roboflow
- Multimodal Deep Learning: Definition, Examples, Applications - v7
- Understanding the Role of Multimodal Models in Computer Vision - Inveniam
- Multimodal embeddings - Microsoft
- V-JEPA: The next step toward Yann LeCun’s vision of advanced machine intelligence (AMI)
- What is Meta’s new V-JEPA model? [Explained] - GFG
- How to use I-JEPA for image classficiation
- vit-large-patch16-v-jepa - @elsr
Vision-Language Models (VLMs): Image-To-Text, ... - A Dive into Vision-Language Models - HF - Vision Language Models Explained - HF
Computer Vision Datasets (Non-exhautive list)¶
List of datasets in computer vision and image processing - Wikipedia
SOTA Computer Vision Dataset - @paperwithcode
Top 10 Open-Source Datasets for Computer Vision in 2023 - analyticsinsight.net
- ImageNet
- COCO (Common Objects in Context)
- Open Images
- Pascal VOC (Visual Object Classes)
- Cityscapes
- SUN (Scene Understanding)
- LFW (Labeled Faces in the Wild)
- CelebA
- CIFAR-10 and CIFAR-100
- MNIST
Automotive datasets:
- Top 7 Automotive Datasets for in Computer Vision Projects
- Stanford Cars Dataset
- Top Self Driving Datasets
Healthcare
- Google search: some resouces & ideas
- National Library of Medicine, National Center for Biotechnology Information (NCBI)
Hello World!¶
The example below shows how to read an image, convert it to grayscale, and display it using OpenCV.
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
- Check out the Computer Vision Challenge (CVC) and dive into exciting projects that will help you master the fundamentals.
Lab: Zero to Hero Projects¶
- Classify images from CIFAR-10 or MNIST datasets using a simple CNN.
- Build an object detection model using YOLO (You Only Look Once) to detect objects in real-time videos.
- Apply edge detection filters (e.g., Sobel, Canny) on images to enhance boundaries.
- Segment a medical image (e.g., brain scan) using a basic segmentation model.
- Train a GAN to generate synthetic images based on real-world datasets.
Please refer to the lab repository.
Computer Vision in Industry¶
- Meta Research Computer Vision Projects
- Google Vision AI Framework
- Microsoft Vision AI Framework
- NVIDIA Computer Vision Products and Services
- Amazon & AWS Computer Vision Frameworks
- Apple vision Frameworks
- OpenAI Vision Tools & Framework
- The State of Computer Vision at Hugging Face
- Langchain & Computer Vision Tooling
Top Computer Vision Conferences¶
- Conference on Neural Information Processing Systems (NeurIPS)
- International Conference on Learning Representations (ICLR)
- Computer Vision and Pattern Recognition (CVPR)
- European Conference on Computer Vision (ECCV)
- International Conference on Computer Vision (ICCV)
- Conference on Robot Learning (CoRL)
- British Machine Vision Conference (BMVC)
- ...
Src: The Ultimate Guide to Top Computer Vision Conferences: Where Tech Visionaries Unite
Computer Vision Roadmap: Becoming a World-Class Computer Vision Engineer¶
Notes: How To Become A World-Class Computer Vision Engineer - The Ultime Guide
Resources: - Introduction to Computer Vision / Roadmap to CV Developer in 2022 - Computer Vision Tutorial for Beginners | Learn Computer Vision - Complete RoadMap To Learn Computer Vision - @Krish Naik - Computer vision roadmap | How to become a computer vision engineer - @computer vision engineer
Computer Vision Researcher - Starting Resources¶
- Quora - great feed
- Reddit - great feed
- International Journal of Computer Vision
- Must read CV papers
- Vision and Learning Lab - Old Website
- Vision and Learning Lab (SVL) - New Website
- Car dataset in multiple scenes for AI & Computer Vision
References¶
Biology & Neuroscience & Anatomy: - Optics - Human Eye - Visual System - Visual Cortex - Human Brain
Physics - Environment (Wikipedia): - Light - Color Theory - Electromagnetic Radiation - Electromagnetic Spectrum
Mathematics: - Signal Processing - Multidimensional Signal Processing - Image Processing - Video Processing - Geometry Processing - Content Based Image Retrieval - (CBIR)
Essential notes (Wikipedia): - Computer Vision - Machine Perception - Depth Perception - Understanding Depth Perception in Computer Vision - Nasscom
-
Deep Learning Models:
Imaging sensors - Camera Sensor: - Image Sensor - Wikipedia - How does a camera work? - Branch Education - The Science of Camera Sensors - Filmmaker IQ - Understanding The Digital Image Sensor - Types Of Camera Sensor - The ultimate image sensor guide: EMCCD vs. SCMOS vs. CMOS vs. CCD - Types of camera: RGB, IR, LiDAR, Thermal, UV, X-ray, Panoramic, Action, 360-Degree - Optical sensors: - Electro-optical sensor - Optical Sensor Basics and Applications - LiDAR: - Lidar - Wikipedia
Machine Vision - Machine Vision - A Practical Guide to Machine Vision Lighting - Google Machine Perception
Lectures & Tutorials:
- Stanford
- Stanford Vision Lab Resources - Advanced topics in computer vision: from CS231n, CS131 and more ...
-
UC Berkeley:
- CS280: Graduate Computer Vision (UC Berkeley, Spring 2024)
- CS 198-126: Modern Computer Vision Fall 2022 (UC Berkeley)
- UC Berkeley CS 280: Advanced Topics in Computer Vision
- MIT CSAIL (MIT Computer Science and Artificial Intelligence Laboratory):
- 6.8300/6.8301: Advances in Computer Vision - Spring 2024
- 6.869 Advances in Computer Vision: Learning and Interfaces
-
Jitendra Malik - The Three R's of Computer Vision: Recognition, Reconstruction, Reorganization
-
University of Toronto:
-
CSC2541:Visual Perception for Autonomous Driving - Winter 2016
-
Udemy Course:
-
The Complete Self-Driving Car Course Applied Deep-Learning - Udemy - Notes
-
Inria:
- https://www-sop.inria.fr/members/Francois.Bremond/MSclass/deepLearningWinterSchool21Fall/UCA_master/
- https://www-sop.inria.fr/members/Francois.Bremond/MSclass/deepLearningWinterSchool/index.html
- https://learninglab.inria.fr/cours/
- https://astra-vision.github.io
- CentralSupelec - Université Paris-Saclay:
- https://www.centralesupelec.fr/fr/cvn-centre-de-vision-numerique
-
https://cvn.centralesupelec.fr/
-
FreeCodeCamp:
- OpenCV Course - Full Tutorial with Python - 4H - FreeCodeCamp
- Deep Learning for Computer Vision with Python and TensorFlow – Complete Course
- Pytorch:
- Torchvision in 5 minutes
IBM: - IBM - What is computer vision?
MISC: - v7labs - 27+ Most Popular Computer Vision Applications and Use Cases in 2022 - viso.ai - The 12 Most Popular Computer Vision Tools in 2022 - Computer Vision Tutorial - GeeksForGeeks - Lines Detection with Hough Transform - What are the different subfields in computer vision? - Quora
Google Ecosystem: - Machine Learning Glossary: Image Models - ML Practicum: Image Classification - xploring Computer Vision content - Build your first Computer Vision App on Android or iOS - Seeing the World: Vertex AI Vision Developer Toolkit - Build a computer vision model with TensorFlow - Computer Vision Fundamentals with Google Cloud - 10 Essential Tools Every Beginner & Advanced Computer Vision Developer Should Master - Computer Vision Fundamentals with Google Cloud - Extract insights from images, documents, and videos
Computer Vision & Transportation
- Tesla Vision vs Lidar:
- Tesla autonomy neural networks How AI neural networks function in Tesla - By Andrej Karpathy
- Tesla Vision vs LIDAR
- How Tesla Is Using Artificial Intelligence to Create The Autonomous Cars Of The Future
- LiDAR vs Computer Vision: Does Waymo Have A Better Strategy Than Tesla? - Joe Scott
-
Tesla AI Day:
- Tesla Autonomy Day - 2019
- Tesla Battery Day - 2020 - during covid
- Tesla AI Day - 2021
- Tesla AI Day - 2022
Computer Vision & Space Exploration - Computer Vision & Space Explorations - Notes - Space Imagery Data - Nasa earthdata - Computer Vision and Remote Sensing - Computer Vision in Google Maps - Beyond Human Sight: How AI Computer Vision Reimagines Space Exploration. - Sophisticated Satellite Vision
Research Notes resources: - Computer Science Notebook - cv resources - CONVOLUTIONAL NEURAL NETWORK (CNN) - Notes - Convolutional Neural Network(CNN) - notebook
Papers - LeNet5 - 1998 - Wiki: https://en.wikipedia.org/wiki/LeNet - ImageNet Classification with Deep Convolutional Neural Networks - Wiki: https://en.wikipedia.org/wiki/AlexNet - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE - Wiki: https://en.wikipedia.org/wiki/ViT_(vision_transformer) - Scaling Vision Transformers to 22 Billion Parameters - Blog release - Generative Adversarial Networks (GAN) - Wiki: https://en.wikipedia.org/wiki/Generative_adversarial_network - OpenAI Dall-E - Wiki: https://en.wikipedia.org/wiki/DALL-E - More Research Papers
Books - Computer Vision - Resources
"Vision is a picture of the future that produces passion" ~ Bill Hybels¶