File size: 3,972 Bytes
1ea7ba6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
license: mit
tags:
  - image-classification
  - domain-generalization
  - fine-grained
  - benchmark
  - shortcut-learning
  - pytorch
pretty_name: SpiceNet Reproducibility Archive
---

# SpiceNet: reproducibility archive

Artifacts for the paper **"SpiceNet: Measuring and Narrowing the Cross-Source Gap in
Fine-Grained Spice Recognition"** (Md. Noushad Jahan Ramim, Maisha Sameha,
Dr. Nazmun Nahid; University of Asia Pacific).

This repository contains everything needed to reproduce the paper **except the source
images**, which are not redistributed here (see Licensing). You reconstruct the
benchmark by downloading the two public image collections and applying the splits in
`manifests/`.

## Contents

| Folder | What it holds |
|---|---|
| `manifests/` | The deterministic manifests and 70/15/15 splits (seed 42): the 22-class unified benchmark, the 8-class overlap in each source, and the de-duplicated variants. Each entry references a source image by its original identifier. |
| `code/` | All training, evaluation, audit, and figure scripts, plus the `src/` package (dataset, model, domain-generalization methods). |
| `results/` | The computed result tables and per-sample/per-seed JSON behind every number and figure in the paper. |
| `checkpoints/` | Trained model weights (`best.pth`) for every experimental run reported in the paper: the cross-source SpiceFusionNet matrix, the eight benchmark backbones, the single-source ARC-V/RSC/SD study over three seeds, the invariance model, and GranuFormer. Smoke tests and the Paper-2 leave-one-source-out runs are excluded. |
| `DATASHEET.md` | Datasheet for the benchmark (provenance, licences, splits, dedup). |

## Download from the Hub

```python
from huggingface_hub import snapshot_download

local = snapshot_download(repo_id="Noushad999/SpiceNet", repo_type="model")
# manifests, code, results, and checkpoints are now under `local`
```

To pull a single checkpoint instead of the whole 6.5 GB:

```python
from huggingface_hub import hf_hub_download

ckpt = hf_hub_download(repo_id="Noushad999/SpiceNet", repo_type="model",
                       filename="checkpoints/arcv_sd_indian_s42/best.pth")
```

## The two source datasets (download these)

The images are **not** in this repository. Obtain them from their original sources:

- **Studio source** - Mendeley Indian Spice dataset, Thite et al., *Data in Brief*
  57:110936, 2024. **CC BY 4.0**. doi:10.1016/j.dib.2024.110936 (Mendeley `vg77y9rtjb`).
- **In-the-wild source** - SpiceSpectrum, Ramim et al., *Data in Brief* 63:112097,
  2025. Image deposit **CC BY-ND 4.0**. doi:10.17632/5v7w2hx8n5.2.

## Reconstructing the benchmark

1. Download both collections above and note the local root path of each.
2. The manifests in `manifests/` list, for every split, the source image identifiers
   and the normalized class label. Map those identifiers to your local image paths.
3. Apply the splits as given (do not reshuffle; the seed is 42).
4. Reproduce the headline numbers without retraining using the released checkpoints:
   - `code/eval_baseline_mcnemar.py` - single-source held-out accuracy and per-seed McNemar.
   - `code/eval_commodity_matched.py` - the collapse with the coriander label-mismatch class removed.
   - `code/eval_stats_hardening.py` - cluster bootstrap and seed-level paired tests.
   Paths at the top of each script may need to point at your checkpoint and manifest
   locations.

## Licensing

- **Code** in `code/` is released under the MIT License.
- **Manifests, splits, and result files** are released CC BY 4.0.
- **Checkpoints** are the authors' own trained weights and contain no source images.
- **Source images** retain their original licences (studio CC BY 4.0, in-the-wild
  CC BY-ND 4.0) and are obtained from the repositories above, not from this archive.

## Citation

Please cite the paper and both source datasets. See `DATASHEET.md` for the dataset
references and the paper for the full bibliography.