- Introduction
- Linux Kernel
- 1. Debugging
- 1.1. Understanding Kernel Oops
- 1.2. Tools & Techniques to Debug a LinuxSystem
- 1.3. Dynamic Program Analysis
- 1.4. Fuzzing Linux Kernel
- 1.5. How to use syzkaller
- 1.6. Reproducing bugs from syzkaller
- 1.7. Solving bugs from syzkaller
- 1.8. Event tracing
- 1.9. Event tracing for Debugging
- 2. Camera Driver
- 2.1. Introduction to Gstreamer
- 2.2. Color Formats RGB vs YUV
- 2.3. Internal Working of the camera Sensor
- 2.4. Image Processing Pipeline
- 2.5. Introduction to MIPI/CSI ports
- 2.6. Study of camera sensors
- 2.7. Introduction to Device Drivers
- 2.8. Hello World Device Driver
- 2.9. Introduction to Char driver
- 2.10. Camera driver Architecture
- 2.11. Structure of the camera device driver
- 2.12. Introduction to Device Trees
- 2.13. Write Device Tree for the camera module
- 2.14. Camera driver power and startup block
- 2.15. Camera driver Initialization
- 2.16. Combining all blocks
- Programming
- 3. Rust
- 3.1. Data Types
- 3.2. Variables & Imutability
- 3.3. Functions
- 3.4. Closures
- 3.5. Strings
- 3.6. Decision Making
- 3.7. Loops
- 3.8. Struct
- 3.9. Enums
- 3.10. Impl
- 3.11. Collections
- 3.12. Modules
- 3.13. Slices
- 3.14. Iterators
- Libraries
- 4. OpenCV
- 4.1. Understanding Types of Digital Image representation in computers
- 4.2. CMOS Camera Sensor and its performance parameters
- 4.3. Basics of Photography
- 4.4. OpenCV - Basics
- 4.5. Reading/Writing an Image
- 4.6. Image Processing - Accessing Pixels, Transform Color Spaces
- 4.7. Image Processing - Image Transforms
- 4.8. Image Processing - Scaling and Cropping
- 4.9. Image Processing - Filtering Images
- 4.10. Image Processing - Histograms
- 4.11. Contour detection
- 4.12. Thresholding
- 4.13. Features detection, extraction and matching
- 4.14. Object Detection
- 4.15. Motion and Tracking
- 4.16. Detecting Depth