6178101: Introduction to Computer Vision for Image Understanding
Instructor: Dr. Nimol Thuon
Institution: University of Science and Technology of China
Semester: Fall 2024
Course Outline
Level: Foundation / Undergraduate
Duration: 10 weeks
Delivery: Lectures, Labs, Assignments, Capstone Project
Tools: Python, OpenCV, PyTorch or TensorFlow
Course Objectives
- Understand the principles of computer vision and image understanding
- Apply image processing techniques for feature extraction
- Implement basic machine learning and deep learning models for vision tasks
- Analyze and evaluate different computer vision pipelines
- Solve real-world problems using vision-based applications
Weekly Module Outline
Week 1: Introduction to Computer Vision
📄 Week Page | 💻 Code & Resources
- What is Computer Vision?
- Image Understanding vs. Image Processing
- Applications and Real-World Impact
- History and Evolution of the Field
Assignment: Research report on vision applications
Week 2: Image Formation and Representation
📄 Week Page | 💻 Code & Resources
- Digital Images and Color Spaces (RGB, HSV, Grayscale)
- Coordinate Systems and Image Resolution
- Image Acquisition and Sensors
- Image File Formats (JPEG, PNG, TIFF)
Lab: Load, display, and convert images using OpenCV
Week 3: Image Processing Fundamentals
📄 Week Page | 💻 Code & Resources
- Brightness, Thresholding
- Smoothing and Sharpening
- Edge Detection: Sobel, Prewitt, Canny
- Histogram Equalization and Contrast Adjustment
Lab: Apply basic filters and detect edges
Week 4: Feature Extraction and Matching
📄 Week Page | 💻 Code & Resources
- Interest Point Detection: Harris, FAST
- Descriptors: SIFT, SURF, ORB
- Feature Matching Techniques
- Applications: Object Tracking, Panorama Stitching
Lab: Feature matching between two images
Week 5: Geometric Vision and Camera Models
📄 Week Page | 💻 Code & Resources
- Pinhole Camera Model
- Intrinsic and Extrinsic Parameters
- Homographies and Epipolar Geometry
- Stereo Vision and Depth Estimation
Assignment: Camera calibration with OpenCV
Week 6: Classical Machine Learning for Vision
📄 Week Page | 💻 Code & Resources
- Supervised vs. Unsupervised Learning
- KNN, SVM, and Decision Trees
- Feature Engineering
- Evaluation Metrics
Lab: Image classification using Scikit-learn
Week 7: Deep Learning for Image Understanding
📄 Week Page | 💻 Code & Resources
- Neural Networks and CNNs
- LeNet, AlexNet, VGG
- Transfer Learning
- PyTorch or TensorFlow
Lab: Train a CNN on CIFAR-10 or MNIST
Week 9: Image Segmentation
📄 Week Page | 💻 Code & Resources
- Semantic vs. Instance Segmentation
- FCN, U-Net, DeepLab, Mask R-CNN
- Labeling Tools and Datasets
Lab: Semantic segmentation on sample dataset
Week 10: Applications and Ethics
📄 Week Page | 💻 Code & Resources
- OCR and Document Understanding
- Facial Recognition and Bias
- Medical Imaging and Privacy
- Ethical Implications in Vision AI
Assignment: Write a position paper on ethics in computer vision
Evaluation Breakdown
- Assignments & Quizzes: 25%
- Labs & Code Submissions: 25%
- Midterm Assessment: 20%
- Final Project: 30%