# thienhocdata/quality-aware-gan-augmentation architecture

> Architecture diagram of the GitHub repository thienhocdata/quality-aware-gan-augmentation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thienhocdata/quality-aware-gan-augmentation
- Repository: https://github.com/thienhocdata/quality-aware-gan-augmentation

## Overview

This is a research project skeleton for quality-aware GAN augmentation of imbalanced image datasets. Its documented workflow trains a GAN using training data, generates minority-class images, filters them for quality, class correctness, and diversity, then evaluates a classifier trained on a balanced set. The README also identifies baseline, oversampling, augmentation, and class-weighting comparisons. Source excerpts show package boundaries but not implementations or runtime wiring, so the graph reflects documented capabilities and workflow rather than verified calls.

Main entry points: [`src/data`](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/data) (Preprocessing and loaders), [`src/gan`](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/gan) (Minority GAN training), [`src/evaluation`](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/evaluation) (Metrics and comparison), [`configs/baseline.yaml`](https://github.com/thienhocdata/quality-aware-gan-augmentation/blob/main/configs/baseline.yaml) (Experiment settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data preparation"]
  node_raw_data[("Imbalanced images")]
  node_data_prep["Preprocessing and loaders"]
  node_experiment_config["Experiment settings<br/>[baseline.yaml]"]
end

subgraph group_generation["GAN generation"]
  node_gan_training["Minority GAN training"]
  node_generated_images[("Generated images")]
  node_checkpoints[("Model checkpoints")]
end

subgraph group_training["Filtering and training"]
  node_filtering["Quality and diversity filtering"]
  node_balanced_data[("Balanced training set")]
  node_classifier["Image classifier"]
  node_comparison_methods["Baseline and balancing methods"]
end

subgraph group_evaluation["Evaluation"]
  node_evaluation["Metrics and comparison"]
  node_reports["Results and reports"]
  node_logs[("Run logs")]
end

node_researcher(("Researcher"))

node_researcher -->|"sets experiment"| node_experiment_config
node_raw_data -->|"provides images"| node_data_prep
node_experiment_config -->|"configures"| node_data_prep
node_data_prep -->|"provides train data"| node_gan_training
node_experiment_config -->|"configures"| node_gan_training
node_gan_training -->|"writes images"| node_generated_images
node_gan_training -->|"saves model"| node_checkpoints
node_generated_images -->|"scores and filters"| node_filtering
node_data_prep -->|"provides class data"| node_filtering
node_filtering -->|"writes selected images"| node_balanced_data
node_data_prep -->|"provides original data"| node_balanced_data
node_balanced_data -->|"trains on"| node_classifier
node_data_prep -->|"provides evaluation data"| node_classifier
node_data_prep -->|"provides data"| node_comparison_methods
node_comparison_methods -->|"provides comparison results"| node_evaluation
node_classifier -->|"provides predictions"| node_evaluation
node_evaluation -->|"writes results"| node_reports
node_evaluation -->|"records metrics"| node_logs

click node_raw_data "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/data/raw"
click node_data_prep "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/data"
click node_experiment_config "https://github.com/thienhocdata/quality-aware-gan-augmentation/blob/main/configs/baseline.yaml"
click node_gan_training "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/gan"
click node_generated_images "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/generated"
click node_filtering "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/filtering"
click node_balanced_data "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/data/processed"
click node_classifier "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/classifier"
click node_comparison_methods "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/classifier"
click node_evaluation "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/evaluation"
click node_reports "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/reports"
click node_checkpoints "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/checkpoints"
click node_logs "https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/logs"

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_raw_data,node_data_prep,node_experiment_config toneBlue
class node_gan_training,node_generated_images,node_checkpoints toneAmber
class node_filtering,node_balanced_data,node_classifier,node_comparison_methods toneMint
class node_evaluation,node_reports,node_logs toneRose
class node_researcher toneIndigo
```

## Components

### Data preparation

- [Imbalanced images](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/data/raw): `data/raw`
- [Preprocessing and loaders](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/data): `src/data`
- [Experiment settings](https://github.com/thienhocdata/quality-aware-gan-augmentation/blob/main/configs/baseline.yaml): `configs/baseline.yaml`

### GAN generation

- [Minority GAN training](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/gan): `src/gan`
- [Generated images](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/generated): `outputs/generated`
- [Model checkpoints](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/checkpoints): `outputs/checkpoints`

### Filtering and training

- [Quality and diversity filtering](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/filtering): `src/filtering`
- [Balanced training set](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/data/processed): `data/processed`
- [Image classifier](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/classifier): `src/classifier`
- [Baseline and balancing methods](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/classifier): `src/classifier`

### Evaluation

- [Metrics and comparison](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/src/evaluation): `src/evaluation`
- [Results and reports](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/reports): `reports`
- [Run logs](https://github.com/thienhocdata/quality-aware-gan-augmentation/tree/main/outputs/logs): `outputs/logs`

### Other components

- **Researcher**

## Connections

- Researcher → Experiment settings: sets experiment
- Imbalanced images → Preprocessing and loaders: provides images
- Experiment settings → Preprocessing and loaders: configures
- Preprocessing and loaders → Minority GAN training: provides train data
- Experiment settings → Minority GAN training: configures
- Minority GAN training → Generated images: writes images
- Minority GAN training → Model checkpoints: saves model
- Generated images → Quality and diversity filtering: scores and filters
- Preprocessing and loaders → Quality and diversity filtering: provides class data
- Quality and diversity filtering → Balanced training set: writes selected images
- Preprocessing and loaders → Balanced training set: provides original data
- Balanced training set → Image classifier: trains on
- Preprocessing and loaders → Image classifier: provides evaluation data
- Preprocessing and loaders → Baseline and balancing methods: provides data
- Baseline and balancing methods → Metrics and comparison: provides comparison results
- Image classifier → Metrics and comparison: provides predictions
- Metrics and comparison → Results and reports: writes results
- Metrics and comparison → Run logs: records metrics
