29 Final Projects
This chapter provides two options for a culminating final project. Both projects ask you to propose a research question, design a computational experiment to answer it, and report your findings. The first focuses on comparing semantic segmentation models implemented with the Segmentation Models library and is reported as a research article. The second is broader and allows you to undertake a scene classification, semantic segmentation, or anomaly detection task and report your experiment as an HTML webpage rendered from a Quarto file. Your instructor will indicate which option to complete.
Both projects draw on the full set of skills developed throughout this text, including preparing DataSets and DataLoaders (Chapter 5), training and assessing models (Chapter 6 and Chapter 11), potentially improving models (Chapter 7), transfer learning (Chapter 13), and semantic segmentation with Segmentation Models (Chapter 21).
29.1 Final Project 1: Semantic Segmentation Model Comparison
29.1.1 Introduction
The goal of this final project is to use the Segmentation Models library to build and compare two different semantic segmentation models. You can choose to compare two different base architectures using different or the same encoder. Alternatively, you could choose to train the same architecture but with different encoders. Another option is to train the same architecture with the encoder pre-trained and frozen, pre-trained and unfrozen, or initialized with random weights.
You must propose a specific research question and design an experiment to answer this question. Your instructor must approve your proposed research question.
You will need to determine the following:
- The semantic segmentation dataset to use (your instructor can help you find an appropriate dataset)
- The training routine including the number of training epochs, mini-batch size, loss metric, optimizer, learning rates, schedulers, metrics to monitor, etc.
29.1.2 Deliverables
- A Quarto (.qmd) file that contains all of the code to implement your experiment, and the HTML webpage rendered from it.
- A research article, delivered as a Word document or PDF, with associated figures and tables that explains your experiment and presents and discusses your results.
29.1.3 Grading
- Your code is correct and commented throughout, and the experiment is correctly implemented.
- Research paper:
- The paper includes an Introduction section that clearly explains the purpose of the study.
- A Background section is provided that describes the architectures/encoders implemented. You should also discuss at least five other related studies.
- A Methods section clearly explains the methods used to conduct the experiment including input data characteristics, data partitioning, architecture configuration, training and assessment routines, and assessment metrics.
- A Results and Discussion section is aligned with your research question.
- Quality figures and tables are included throughout to enhance the text. They should be polished and of publication quality. All figures and tables must include captions and be cited in the text.
- A Conclusion clearly summarizes the findings.
- A references section and citations throughout are included.
- Overall, the paper is polished, coherent, and grammatically/stylistically professional.
You can choose to use your own data for this final project. However, please discuss the data/project with your instructor beforehand to make sure they are suitable.
You can also propose an alternative final project. If so, you will need to submit an official proposal to your instructor that describes the research question being explored, the input data being used, and the general methods to implement. Alternative final projects must be approved by your instructor.
29.2 Final Project 2: Deep Learning Computational Experiment
29.2.1 Introduction
The goal of this final project is to design, execute, and report on a computational experiment that makes use of deep learning models, methods, and workflows. You can choose to undertake a scene classification, semantic segmentation, or anomaly detection task. You must propose a specific research question and design an experiment to answer this question. Your instructor must approve your proposed research question. You must also select an appropriate dataset to use in your experiment, which also must be approved by your instructor. You can use the example datasets from this text or find an alternative dataset. Awesome Satellite Imagery Datasets is a great list of remote sensing and geospatial deep learning datasets.
Example experiments include:
- Compare different base architectures (for example, UNet vs. DeepLabv3+ vs. UNet++ for semantic segmentation).
- Compare different encoder backbones with the same base architecture for a semantic segmentation task (for example, ResNet-34 vs. ResNet-50 vs. MobileNet-v2).
- Augment a base architecture, such as by using alternative activation functions or adding additional module(s) (for example, replace ReLU with leaky ReLU or swish or add attention gates to UNet).
- Compare different training strategies (for example, create/compare DataLoader samplers or means to balance the training set).
- Compare different loss functions (for example, Dice vs. Tversky vs. cross entropy vs. weighted cross entropy).
- Compare different learning rates or learning rate schedulers (constant learning rate vs. one cycle vs. cyclic).
- Experiment with augmentation methods (for example, varying the number and intensity of augmentations).
- Incorporate dropouts.
- Experiment with transfer learning.
29.2.2 Deliverables
- A Quarto (.qmd) file that contains all of the code to implement your experiment.
- The HTML webpage rendered from the Quarto file. The website should read like a research paper and include a title, list of authors, Introduction, Background, Methods, Results/Discussion, Conclusion, and list of references. The code will primarily be included in the Methods section and should be accompanied by text, written in Markdown, that explains all components of the experiment. You should include tables and figures throughout to explain your workflow, experiment, and results. All tables and figures should be of publication quality.
29.2.3 Grading
Code
- Your code is correct and commented throughout, and the experiment is correctly implemented. We suggest first creating a version of your Quarto file that contains your code with comments throughout but no text. You can then create another version that includes all the text and with the code cleaned and simplified.
Website
- The website includes an Introduction section that clearly explains the purpose of the study.
- A Background section is provided that describes the architectures, encoders, or general architecture components implemented. You should also discuss at least five other related studies.
- A Methods section clearly explains the methods used to conduct the experiment including input data characteristics, data partitioning, architecture configuration, training and assessment routines, and assessment metrics. This section should include your code.
- A Results and Discussion section is aligned with your research question.
- Quality figures and tables are included throughout to enhance the text. They should be polished and of publication quality. All figures and tables must include captions and be cited in the text.
- A Conclusion clearly summarizes the findings.
- A references section and citations throughout are included.
- Overall, the paper is polished, coherent, and grammatically/stylistically professional.
You can choose to use your own data for this final project. However, please discuss the data/project with your instructor beforehand to make sure they are suitable.
You can also propose an alternative final project. If so, you will need to submit an official proposal to your instructor that describes the research question being explored, the input data being used, and the general methods to implement. Alternative final projects must be approved by your instructor.