Deep Learning for Image Analytics (CUML1022)

Teacher

Dr. Abhishek Das

Category

Course Attendees

Still no participant

Course Reviews

Still no reviews

Cedits (0+2+2 )

Introduction

"Deep Learning for Image Analytics" is a comprehensive course designed to explore the transformative
impact of deep learning on the field of image processing and computer vision. This course delves into the
fundamentals of neural networks, including convolutional and recurrent architectures, and their
applications in various image analytics tasks. Students will gain hands-on experience with state-of-the-art
deep learning frameworks like TensorFlow and PyTorch, learning to implement, train, and optimize
models for tasks such as image classification, object detection, and image segmentation. By bridging
theory with practical implementation, the course aims to provide a robust understanding of both the
technical and applied aspects of deep learning in image analytics. Additionally, the curriculum covers
advanced topics like transfer learning and generative adversarial networks (GANs), preparing students to
tackle real-world challenges and stay abreast of current trends and innovations in this rapidly evolving
field.

Course Objective

The objectives of the course are
• Understand deep learning fundamentals and CNN architectures.
• Develop and evaluate CNNs for image classification and object detection.
• Implement generative models and deploy deep learning applications using modern
frameworks.

Course Outcomes

After completion of the course students will be able to:
• CO1: Explain the basic concepts of neural networks, including activation functions and
backpropagation. (Understand, Remember)
• CO2: Design and implement CNN architectures for various image analytics tasks. (Apply, Create)
• CO3: Utilize advanced CNN architectures and transfer learning for enhanced performance. (Apply,
Analyze)
• CO4: Develop and evaluate models for image classification, object detection, and segmentation.
(Apply, Evaluate)
• CO5: Implement generative models and deploy deep learning applications using TensorFlow,
Keras, and PyTorch. (Apply, Create)

POs

  • PO1 Engineering knowledge: Apply knowledge of mathematics, science,     engineering fundamentals, and computerscience engineeringto the solution of engineeringproblems
  • PO2 Problem analysis: Identify, formulate, review literature and analyze Computer Science Engineering problems to design, conduct experiments, analyze data and interpret data
  • PO3  Design /development of solutions: Design solution for Computer Science Engineering problems and design system component of processes that meet the desired needs with appropriate consideration for the public health and safety, and the cultural, societal and the environmental considerations
  • PO4  Conduct investigations of complex problems: Use research based knowledge and research methods including design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid conclusions in Computer Science Engineering
  • PO5  Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern engineering and IT tools including prediction and modelling to Computer Science Engineering activities with an understanding of the limitations
  • PO6  The engineer and society: Apply reasoning informed by the contextual knowledge to assess societal, health, safety, legal and cultural issues and the consequent responsibilities relevant to Computer Science Engineering practice
  • PO7 Environment and sustainability: Understand the impact of the Computer Science Engineering solutions in societal and environmental contexts, and demonstrate the knowledge and need for sustainable development
  • PO8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of the Computer Science Engineering practice
  • PO9 Individual and team work: Function affectively as an individual, and as a member or leader in diverse teams, and in multidisciplinary settings in Computer Science Engineering
  • PO10 Communication: Communicate effectively on complex engineering activities with the engineering committee and with society at large, such as, being able to comprehend and write affective reports and design documentation, make effective presentations in Computer Science Engineering
  • PO11 Project Management and finance: Demonstrate knowledge & understanding of the Computer Science engineering principles and management principles and apply these to one’s own work, as a member and leader in a team, to manage projects and in multidisciplinary environments in Computer Science Engineering
  • PO12 Life- long learning: Recognize the need for, and the preparation and ability to engage in independent research and lifelong learning in the broadest contest of technological changes in Computer Science Engineering

PSOs

  • PSO1 Graduate will be able work on high-end technology at IT Services industries.
  • PSO2 Graduate can acquire industry certified level of competency and work on real time IT application projects viz; Health/Agriculture/Security/Data Management etc.
  • PSO3 Graduate can start its own IT service company to provide technical solution.

Experiments List

  1. Create a Neural Network In Python with Keras
  2. Implement various activation functions (Sigmoid, ReLU, Tanh) in Python and visualize their behavior using plots.
  3. Simulate Backpropagation: Create a script to manually calculate the backpropagation steps for a simple neural network on a toy dataset.
  4. Building a Basic CNN: Implement a CNN architecture with convolutional, pooling, and fully connected layers in Python on the MNIST handwritten digit dataset to classify digits.
  5. Visualize Filter Kernels: Visualize the learned filters (kernels) from the convolutional layers to understand how they extract features.
  6. Experiment with Pooling: Compare the impact of different pooling types (Max Pooling, Average Pooling) on the performance of a CNN for image classification.
  7. Fine-tuning a Pre-trained CNN: Load a pre-trained CNN model (AlexNet, VGG, ResNet, Inception) and fine-tune it on a smaller dataset to classify a different set of objects.
  8. Implement Residual Connections: Explore building a simple Resnet block in Python and observe how it addresses the vanishing gradient problem.
  9. Pretrained Models: Fine-tuning a Pre-trained CNN for Image Classification: Utilize a pre-trained CNN model to classify a new set of images with a smaller dataset.
  10. Transfer Learning: Compare training a model from scratch vs. fine-tuning a pre-trained model on a new classification task with a smaller dataset.
  11. Data Augmentation Techniques: Implement data augmentation techniques (random cropping, flipping, color jittering) in Python and observe their impact on model performance.
  12. Train-Validation Split: Conduct experiments with different train-validation split ratios to find an optimal balance for model training and evaluation.
  13. Monitor Training Progress: Visualize training and validation loss curves using libraries like Matplotlib to track model learning and identify potential overfitting or underfitting.
  14. Implement Non-Maxima Suppression (NMS): Develop a Python function for NMS, a technique used in object detection algorithms like R-CNN to remove redundant bounding boxes.
  15. Explore YOLO Object Detection: Implement a basic YOLO model in Python and compare its performance with R-CNN variants on a suitable object detection dataset (e.g., COCO).
  16. Semantic Segmentation with U-Net: Implement a U-Net architecture in Python for semantic segmentation tasks like pixel-wise classification (e.g., medical image segmentation).
  17. Visualize Segmentation Masks: Create code to visualize the output segmentation masks produced by your trained segmentation model to assess its accuracy.
  18. Train a Simple GAN: Implement a basic Generative Adversarial Network (GAN) in Python to generate synthetic images from a noise distribution (e.g., MNIST digits).
  19. Explore Conditional GANs: Investigate implementing a Conditional GAN that can generate images conditioned on additional input (e.g., generating images of specific object categories).
  20. Compare TensorFlow vs. Keras: Experiment with building the same model (e.g., a CNN) using both TensorFlow and Keras, exploring their high-level vs. low-level API differences.
  21. Load and Explore Pre-trained Weights: Load pre-trained weights from a model zoo (TensorFlow Hub, PyTorch Hub) and use them to fine-tune a model for a new task.
  22. Experiment with Transfer Learning: Experiment with transferring learning from a pre-trained model to a new classification task with a smaller dataset, comparing the performance to training from scratch.
  23. Hyperparameter Tuning: Train multiple models with different hyperparameter settings (learning rate, batch size) and evaluate them to find the best configuration for a specific task.
  24. Early Stopping and Model Checkpointing: Implement early stopping and model checkpointing techniques in Python to prevent overfitting and save the best performing model during training.
  25. Ensemble Learning for Classification: Experiment with combining predictions from multiple CNN models through techniques like averaging or weighted averaging to improve overall accuracy.
  26. Explore Class Activation Maps (CAMs): Implement CAMs to visualize which parts of the input image contribute most to the model's prediction

Projects list

(but not limited to)

  1. Students Attendance System: Based on face detection attendance of students will be generated for each hour. It may include uniform features also.
  2. Door Locking and Unlocking systems: Based on students’ face and proper uniform, door of the classroom will be opened.
  3. Medical Diagnosis: Develop a system to classify medical images (X-rays, CT scans) for disease detection (pneumonia in X-rays, tumor segmentation in MRI scans).
  4. Fashion Recommendation: Classify clothing items in images (shirts, dresses) to recommend outfits based on user preferences or weather conditions.
  5. Traffic Sign Recognition: Classify traffic signs in real-time video streams for autonomous vehicles or driver assistance systems.
  6. Fraud Detection: Analyze credit card images or transaction data to identify fraudulent activities using anomaly detection techniques.
  7. Multi-Disease Detection and Segmentation in Fruits/Leaves: This project would focus on developing a deep learning model that can detect and segment multiple diseases in fruits/leaves from images.
  8. Real-Time Weed Classification and Targeted Herbicide Application: This project would involve developing a system that classifies weeds in real-time using image analysis and edge computing.
  9. Self-Driving Car Scene Understanding: Classify objects and scenes in camera images for self-driving cars (pedestrians, vehicles, traffic lights).
  10. Satellite Image Analysis: Classify land cover types (forests, water bodies) in satellite imagery for environmental monitoring or resource management.
  11. Food Recognition: Classify food items in images (fruits, vegetables, dishes) for calorie counting applications or dietary recommendations.
  12. Gesture Recognition: Classify hand gestures in images or videos for human-computer interaction or sign language translation.
  13. Animal Species Identification: Identify animal species in images or videos for ecological research, wildlife conservation, or pet identification apps.
  14. Art Style Classification: Classify paintings or other artwork based on artistic style (impressionism, abstract expressionism) or artist identification.
  15. Image Captioning: Generate captions that describe the content of an image automatically.
  16. Weather Prediction: Predict future weather conditions based on historical weather data and satellite images.
  17. Stock Price Prediction: Predict future stock prices based on historical data, news articles, and social media sentiment analysis from images.
  18. Traffic Flow Prediction: Predict traffic congestion patterns in urban areas using real-time traffic camera images or historical data.
  19. Product Demand Forecasting: Predict future demand for products based on historical sales data and past image trends (e.g., clothing styles in fashion industry).
  20. Building Occupancy Prediction: Predict the occupancy of buildings using security camera footage to optimize energy consumption or security measures.
  21. Crop Yield Prediction: Predict crop yield based on satellite imagery and past agricultural data, potentially using drone images for localized monitoring.
  22. Movie Genre Prediction: Predict the genre of a movie based on movie posters or promotional images.
  23. Age and Gender Estimation: Estimate the age and gender of people in images for marketing applications or demographic analysis.
  24. Image Inpainting: Predict and fill missing parts of an image for restoration purposes (e.g., removing scratches or unwanted objects).

Session 1

 

Introduction to Neural Network

Study Material

https://drive.google.com/file/d/1qHsiOa-HvpA-xZSuE5BVEuDGtdHHCVFD/view?usp=sharing

Experiment 1. Create a Neural Network In Python with Keras

Manual

https://drive.google.com/file/d/1IgFeQ9yUoBzZmUVbJYfzMA3EMyg2XRU_/view?usp=sharing

Session 2

 

Activation Functions

Study Material

https://drive.google.com/file/d/1WQsD5qUvV06spKGBxUQzK2wZbQNSAHFc/view?usp=sharing

Experiment 2. Implement various activation functions (Sigmoid, ReLU, Tanh) in Python and visualize their behavior using plots.

Manual

https://drive.google.com/file/d/1dfGU-P3-B9UDLKNP0dQpHf-Q0QmxNmKi/view?usp=sharing

Session 3

 

Backpropagation

Study Material

https://drive.google.com/file/d/14LruO8t71F2KgPJn8MVrxK88NNmcwWOR/view?usp=sharing

Experiment 3. Simulate Backpropagation: Create a script to manually calculate the backpropagation steps for a simple neural network.

Manual

https://drive.google.com/file/d/1dSLeMV_YWGsq7JuNMbtxENXS9waGbj0l/view?usp=sharing

Our Main Teachers

Dr. Abhishek Das

Assistant Professor
VIEW PROFILE

  Dr. Abhishek Das is presently working as an Assistant Professor in the Department of Computer Science & Engineering, Centurion University of Technology & Management, Paralakhemundi, Odisha, India. He has completed his B.Tech degree from Biju Patnaik University of Technology and M.Tech degree from Siksha ‘O’ Anusandhan (Deemed to be University), Bhubaneswar, Odisha, India, in […]