Course Code: ICT306

Synopsis

This course provides an introduction to deep learning techniques and their applications in computer vision. Deep learning is a subset of machine learning that uses artificial neural networks with multiple layers and complex operations. Training is typically conducted on large-scale datasets in a data-driven manner. This course introduces the fundamental principles of deep neural networks, training strategies, and progressively covers key computer vision tasks including image recognition, object detection, segmentation, and image generation. Students will gain hands-on experience with modern deep learning frameworks (e.g., PyTorch) and learn effective training strategies to apply these techniques to solve real-world vision problems.
Level: 3
Presentation Pattern: EVERY JULY

Topics

  • Introduction to Deep Learning and Vision
  • Basic Image Processing Techniques
  • Convolutional Neural Networks (CNNs)
  • CNN Architectures and Feature Visualization
  • Data Handling for Training
  • Hyper-parameter Tuning and Optimization
  • Overfitting and Regularization
  • Commonly used CNN Architectures
  • Transfer learning and fine-tuning with pretrained models
  • Popular Vision Applications: Object Detection
  • Popular Vision Applications: Semantic Segmentation
  • Image generation with Generative Adversarial Networks (GANs)

Learning Outcome

  • Compare deep learning principles with traditional machine vision techniques
  • Analyse the architecture and the operations of deep neural networks, including Convolutional Neural Networks (CNNs) and advanced models such as ResNet and Visual Transformers.
  • Explain essential components of the deep learning training pipeline, including data augmentation, optimization algorithms, and regularization techniques.
  • Construct a conceptual framework that integrates the principles of core computer vision tasks such as object detection, segmentation, and generative modelling.
  • Implement and train deep learning models using popular frameworks, e.g. Pytorch.
  • Apply practical techniques for training deep neural networks, including data preprocessing, augmentation, and regularization to enhance model performance.
  • Design and develop end-to-end computer vision pipelines tailored to specific application requirements.
  • Evaluate experimental results and iteratively refine models and training strategies based on performance metrics and observations.