# samy101/bd3-building-defects-detection-dataset architecture

> Architecture diagram of the GitHub repository samy101/bd3-building-defects-detection-dataset, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samy101/bd3-building-defects-detection-dataset
- Repository: https://github.com/samy101/bd3-building-defects-detection-dataset

## Overview

BD3 is a building-defect image dataset and benchmarking research repository, not a deployed inspection application. Its documented workflow runs from collected and annotated images through preprocessing, augmentation, train/validation/test splitting, model benchmarking, and result analysis. The README documents the benchmark models and dataset sizes; individual notebook internals and their exact data handoffs were not sampled, so those links are shown as unverified where necessary.

Main entry points: [`code/output analysis/output-analysis.ipynb`](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/output%20analysis/output-analysis.ipynb) (Output analysis), [`code/train-test-split/train-val-split.py`](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/train-test-split/train-val-split.py) (Dataset splitting), [`code/data-augmentation/dataset_augument.ipynb`](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-augmentation/dataset_augument.ipynb) (Dataset augmentation), [`code/model-train/alexnet/nn-alexnet.ipynb`](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/alexnet/nn-alexnet.ipynb) (AlexNet training)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dataset["Dataset preparation"]
  node_bd3[("BD3 image dataset")]
  node_video["Video frame extraction<br/>[vid-img.py]"]
  node_inventory["Image inventory<br/>[img_path.py]"]
  node_renaming["Image renaming<br/>[rename.py]"]
  node_resizing["Image resizing<br/>[resize512.py]"]
  node_augmentation["Dataset augmentation"]
  node_split["Dataset splitting<br/>[train-val-split.py]"]
end

subgraph group_benchmark["Model benchmarking"]
  node_alexnet["AlexNet training<br/>[nn-alexnet.ipynb]"]
  node_mobilenet["MobileNetV2 training"]
  node_resnet["ResNet18 training<br/>[nn-ResNet-18.ipynb]"]
  node_vgg["VGG16 training<br/>[nn-VGG16.ipynb]"]
  node_vit["ViT training<br/>[vt-model.ipynb]"]
end

subgraph group_evaluation["Results and evaluation"]
  node_analysis["Output analysis"]
  node_modelresults["Model comparisons<br/>[orig_results.csv]"]
  node_classresults["Class-wise reports"]
  node_confusion["Confusion matrices<br/>[orig_confu.tex]"]
end

node_researcher(("Dataset researcher"))

node_researcher -->|"collects and annotates"| node_bd3
node_video -.->|"extracts frames for"| node_bd3
node_inventory -.->|"lists images for"| node_bd3
node_renaming -.->|"renames images for"| node_bd3
node_resizing -.->|"resizes images for"| node_bd3
node_bd3 -->|"augments dataset"| node_augmentation
node_augmentation -.->|"splits augmented data"| node_split
node_split -.->|"supplies benchmark split"| node_alexnet
node_split -.->|"supplies benchmark split"| node_mobilenet
node_split -.->|"supplies benchmark split"| node_resnet
node_split -.->|"supplies benchmark split"| node_vgg
node_split -.->|"supplies benchmark split"| node_vit
node_alexnet -.->|"evaluates predictions"| node_analysis
node_mobilenet -.->|"evaluates predictions"| node_analysis
node_resnet -.->|"evaluates predictions"| node_analysis
node_vgg -.->|"evaluates predictions"| node_analysis
node_vit -.->|"evaluates predictions"| node_analysis
node_analysis -.->|"compares models"| node_modelresults
node_analysis -.->|"reports class metrics"| node_classresults
node_analysis -.->|"reports confusion"| node_confusion

click node_video "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/vid-img.py"
click node_inventory "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/img_path.py"
click node_renaming "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/rename.py"
click node_resizing "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/resize512.py"
click node_augmentation "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-augmentation/dataset_augument.ipynb"
click node_split "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/train-test-split/train-val-split.py"
click node_alexnet "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/alexnet/nn-alexnet.ipynb"
click node_mobilenet "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/mobilenet/nn-MobilenetV2.ipynb"
click node_resnet "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/resnet18/nn-ResNet-18.ipynb"
click node_vgg "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/vgg16/nn-VGG16.ipynb"
click node_vit "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/vit/vt-model.ipynb"
click node_analysis "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/output%20analysis/output-analysis.ipynb"
click node_modelresults "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/model_comparision/orig_results.csv"
click node_classresults "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/classification%20report/orig_best_report.tex"
click node_confusion "https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/confusion%20matrix/orig_confu.tex"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_bd3,node_video,node_inventory,node_renaming,node_resizing,node_augmentation,node_split toneBlue
class node_alexnet,node_mobilenet,node_resnet,node_vgg,node_vit toneAmber
class node_analysis,node_modelresults,node_classresults,node_confusion toneMint
class node_researcher toneIndigo
```

## Components

### Dataset preparation

- **BD3 image dataset**
- [Video frame extraction](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/vid-img.py): `code/data-process/vid-img.py`
- [Image inventory](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/img_path.py): `code/data-process/img_path.py`
- [Image renaming](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/rename.py): `code/data-process/rename.py`
- [Image resizing](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-process/resize512.py): `code/data-process/resize512.py`
- [Dataset augmentation](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/data-augmentation/dataset_augument.ipynb): `code/data-augmentation/dataset_augument.ipynb`
- [Dataset splitting](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/train-test-split/train-val-split.py): `code/train-test-split/train-val-split.py`

### Model benchmarking

- [AlexNet training](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/alexnet/nn-alexnet.ipynb): `code/model-train/alexnet/nn-alexnet.ipynb`
- [MobileNetV2 training](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/mobilenet/nn-MobilenetV2.ipynb): `code/model-train/mobilenet/nn-MobilenetV2.ipynb`
- [ResNet18 training](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/resnet18/nn-ResNet-18.ipynb): `code/model-train/resnet18/nn-ResNet-18.ipynb`
- [VGG16 training](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/vgg16/nn-VGG16.ipynb): `code/model-train/vgg16/nn-VGG16.ipynb`
- [ViT training](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/model-train/vit/vt-model.ipynb): `code/model-train/vit/vt-model.ipynb`

### Results and evaluation

- [Output analysis](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/code/output%20analysis/output-analysis.ipynb): `code/output analysis/output-analysis.ipynb`
- [Model comparisons](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/model_comparision/orig_results.csv): `Results/model_comparision/orig_results.csv`
- [Class-wise reports](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/classification%20report/orig_best_report.tex): `Results/classification report/orig_best_report.tex`
- [Confusion matrices](https://github.com/samy101/bd3-building-defects-detection-dataset/blob/main/Results/confusion%20matrix/orig_confu.tex): `Results/confusion matrix/orig_confu.tex`

### Other components

- **Dataset researcher**

## Connections

- Dataset researcher → BD3 image dataset: collects and annotates (evidence: `README.md`)
- Video frame extraction → BD3 image dataset: extracts frames for
- Image inventory → BD3 image dataset: lists images for
- Image renaming → BD3 image dataset: renames images for
- Image resizing → BD3 image dataset: resizes images for
- BD3 image dataset → Dataset augmentation: augments dataset (evidence: `README.md`)
- Dataset augmentation → Dataset splitting: splits augmented data
- Dataset splitting → AlexNet training: supplies benchmark split
- Dataset splitting → MobileNetV2 training: supplies benchmark split
- Dataset splitting → ResNet18 training: supplies benchmark split
- Dataset splitting → VGG16 training: supplies benchmark split
- Dataset splitting → ViT training: supplies benchmark split
- AlexNet training → Output analysis: evaluates predictions
- MobileNetV2 training → Output analysis: evaluates predictions
- ResNet18 training → Output analysis: evaluates predictions
- VGG16 training → Output analysis: evaluates predictions
- ViT training → Output analysis: evaluates predictions
- Output analysis → Model comparisons: compares models
- Output analysis → Class-wise reports: reports class metrics
- Output analysis → Confusion matrices: reports confusion
