A Label-Conflict-Aware, Pixel-Hash Curation and Reproducible Benchmarking Protocol for a Bangladeshi Chest X-ray Dataset

Published: 25 October 2026| Version 6 | DOI: 10.17632/wndbd5r26y.6
Contributors:
,

Description

A Primary Chest X-ray Dataset of Normal Bangladesh: Version 6 (curated release) This dataset contains chest X-ray (CXR) images from Epic Chittagong, Bangladesh (2025), labelled Normal or Pneumonia, for developing and benchmarking pneumonia-classification models. Version 6 is a curated derivative of Version 5 (doi: 10.17632/wndbd5r26y.5). Using exact decoded-pixel hashing, 25 redundant same-label duplicate copies were removed, and 96 images belonging to groups of identical images with conflicting class labels were excluded. 2,626 source images were audited, 0 were unreadable, and 2,505 were retained. Images are unchanged (original bytes and native resolution, no resizing, recompression or relabelling). The original train/test partition is preserved. Composition Train: Normal 991, Pneumonia 1,003 Test: Normal 256, Pneumonia 255 Total: 2,505 images (JPEG/PNG, variable resolution) Included files Images in train/test folders by class, plus manifest.csv (paths, hashes, sizes), benchmark_splits.csv (fixed train/validation/test assignment), data_dictionary.csv, a full audit of every Version 5 file and its keep/remove decision, near-duplicate review candidates, dataset card, checksums and changelog. Code The Python notebook that produces this release (LCA-PHC: Label-Conflict-Aware Pixel-Hash Curation) is available at: https://github.com/IntelliMed-AI-Research-Lab/LCA-PHC-Label-Conflict-Aware-Pixel-Hash-Curation-for-a-Bangladeshi-Chest-X-ray-Dataset Notes on Version 5 The Version 5 page text stated 3,355 images, but the Version 5 archive contained 2,626. Version 6 counts are computed from the files. Limitations Labels come from the source folder structure and are not independently clinically adjudicated; the label conflicts found indicate noise in the source labels. No patient identifiers exist, so splits are image-level and patient independence is unknown. Only exact duplicates were removed; perceptual-hash review flagged 115 near-duplicate candidate pairs (41 across train/test) that were NOT removed and may inflate test performance. Burned-in text and metadata were not reviewed. Ethics approval, consent and acquisition details: [AUTHOR TO FILL]. Not for clinical use. Intended uses Pneumonia vs. normal classification, transfer-learning benchmarks, label-noise and dataset-curation research, teaching. License: CC BY 4.0

Files

Steps to reproduce

Steps to Reproduce (Version 6 curation) Code: https://github.com/IntelliMed-AI-Research-Lab/LCA-PHC-Label-Conflict-Aware-Pixel-Hash-Curation-for-a-Bangladeshi-Chest-X-ray-Dataset Environment: Python 3 notebook (Kaggle; GPU only for the optional benchmark). Libraries: requests, Pillow, ImageHash 4.3.2, NumPy, pandas, SciPy, scikit-learn, matplotlib, seaborn, PyTorch/torchvision. 1. Download the Version 5 archive (doi: 10.17632/wndbd5r26y.5; 524,339,616 bytes). Verify SHA-256 = 3d07a6f0d3ba37c9a72edba45d05e307ab57ebf2ba2effe2b3373da448dcad0c; stop if it differs. If the direct download is refused, download manually from the DOI page. 2. Extract; locate train/test folders with Normal and Pneumonia subfolders. 3. For every image: open with Pillow, apply EXIF orientation, convert to RGB; record file SHA-256, format, size; compute pixel hash = SHA-256 of (width, height) + decoded RGB bytes. Exclude unreadable or multi-frame files. 4. Group by pixel hash. If a group has more than one class label, exclude ALL members. Otherwise keep one image (test copy first, then lexical path) and mark the rest as duplicates. 5. Check counts: 2,626 audited, 25 duplicates, 96 conflicting-label, 0 unreadable, 2,505 retained (train Normal 991 / Pneumonia 1,003; test Normal 256 / Pneumonia 255). Investigate any mismatch; never force totals. 6. Copy retained images byte-for-byte to images/<split>/<class>/<pixel_hash><ext>; verify each copy by SHA-256; confirm unique pixel hashes and no train/test overlap. 7. Write manifest.csv, data_dictionary.csv and the audit files (full inventory with decisions, removed duplicates, excluded conflicts). 8. Compute descriptive statistics on 256x256 grayscale previews (brightness, contrast, entropy, Laplacian variance, resolution flags). Descriptive only; no exclusions. 9. Near-duplicate review: 64-bit pHash, Hamming distance <= 4 gives 115 candidate pairs (41 cross-split). Review only; none removed. 10. Benchmark split: stratified 80/20 train/validation inside the training subset (seed 42); original test set held out (benchmark_splits.csv). 11. Optional benchmark: ImageNet-pretrained ResNet18, ResNet50, DenseNet121, EfficientNet-B0, MobileNetV3-Large; 224x224 padded resize, +/-5 degree rotation (train only), AdamW (lr 1e-4, wd 1e-4), cosine schedule, batch 16, 12 epochs, seeds 42-44. Select the epoch by validation macro-F1; no test-set tuning. 12. Package as ZIP with README, dataset card, changelog, SHA256SUMS.txt. Notes: Steps 1-10 and 12 need no GPU. Benchmark results show utility on this image-level split only, not clinical validity.

Institutions

Categories

Computer Science, Radiology, Health Sciences, Artificial Intelligence, Computer Vision, Medical Imaging, Machine Learning, Benchmarking, Pneumonia, Image Classification, Bangladesh, Deep Learning, Transfer Learning, Chest Radiograph

Licence