This repository (code base) contains the documentation and code to train and use a model for damage segmentation of advanced composite laminate micro-computed tomography slices. For example, this is a properly segmented 3-class slice (image):
To accomplish this, there are six workflows that this repository supports. Before completing any of these workflows, you'll need to set up your local machine and set up your GCP bucket. You may also want to look through assumed knowledge.
- data ingestion: copying the raw data into a cloud bucket and logically structuring it
- dataset preparation: preparing a dataset for use in training and testing
- training: training a damage segmentation model on a dataset
- training prediction thresholds: training the prediction threshold(s) of a pretrained damage segmentation model on a dataset
- testing: testing the performance of a pretrained damage segmentation model on a dataset
- inference: segmenting the damage of an image stack or stack subset
For significant code changes to any files except configs
and .md
's, users must:
- Create new branch on github web browser
- Refresh the local desktop client and switch to the new branch,
- Make the significant change in new branch
- Commit change in local desktop client,
- Push commit to remote git (i.e., web browser) using local client
- Create pull request in web browser with Josh Joseph as reviewer
- Once approved, complete merge and then delete branch
- You can only run a single workflow at a time on a VM (due to different runs possibly stepping on each other through the temp directory). #27 will address this.
- You cannot run multi-GPU at max efficiency due to computation graph of python objects (custom metrics) being rebuilt for each batch. #35 will address this.