Karthik2509-git/qyro-data-engineering-pipeline
GitHub: Karthik2509-git/qyro-data-engineering-pipeline
一个端到端的自动化数据工程流水线,用于对多源皮肤科图像进行摄取、去重、质量审计和标准化导出,为医疗 AI 目标检测模型提供经验证的高保真训练数据。
Stars: 0 | Forks: 0

# QYRO 数据集工程 Pipeline
一个自动化、可复现的数据集筛选工厂,旨在处理来自多源的原始外部痤疮数据集,并为医疗 AI 目标检测模型编译一个经过验证的高质量训练池(**QYRO Dataset v2.0**)。
该系统充当质量把关者、摄取编排器和元数据索引器——将低质量和异常样本排除在训练池之外,防止数据污染。
## 📈 平台与筛选总结
### **摄取 Pipeline 产出**
| 指标 | 数量 | 百分比 / 平均值 |
| :--- | :--- | :--- |
| **总摄取图像数** | **16,653** | 100.0% |
| **接受的候选样本(精选池)** | **835** | **5.0% 产出率** |
| **识别并处理的重复项** | **1,577** | 9.5% |
| **严格拒绝(损坏/无效)** | **256** | 1.5% |
| **等待人工分类(审查)** | **13,985** | 84.0% |
| **精选边界框(痤疮病灶)** | **5,561** | 平均 **6.7 个病灶 / 图像** |
| **平均边界框面积** | — | 占图像帧的 **0.23%** |
### **数据集贡献明细**
| 数据集 ID | 来源名称 | 摄取数 | 接受数 | 审查队列 | 严格拒绝 | 重复项 | 总边界框数 | 产出率 % |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **DS001** | Roboflow Acne Detection Dataset v1 | 8,481 | **274** | 7,235 | 29 | 943 | 1,824 | 3.23% |
| **DS002** | Roboflow Pimples Detection Dataset v13 | 4,409 | **149** | 3,995 | 4 | 261 | 867 | 3.38% |
| **DS003** | Roboflow Acne Detection E97Ja Dataset v5 | 1,130 | **1** | 853 | 223 | 53 | 1 | 0.09% |
| **DS004** | Roboflow Acne Detection CHP6J Dataset v1 | 1,389 | **226** | 1,084 | 0 | 79 | 1,741 | 16.27% |
| **DS005** | Roboflow Acne Vulgaris Dataset v1 | 1,244 | **185** | 818 | 0 | 241 | 1,128 | 14.87% |
| **总计** | **合并来源** | **16,653** | **835** | **13,985** | **256** | **1,577** | **5,561** | **5.01%** |
## 📦 数据集划分 (v2.0 冻结版本)
数据集使用随机种子 (`42`) 进行打乱和拆分,并通过严格的验证测试来保证跨边界**零数据泄露**:
* **训练集 (70%)**: `584` 张图像 | `3,862` 个标注
* **验证集 (15%)**: `125` 张图像 | `839` 个标注
* **测试集 (15%)**: `126` 张图像 | `860` 个标注
* **图像分辨率**: `640 x 640` (使用灰色填充 `(114, 114, 114)` 进行 Letterbox 缩放)
## 🧬 数据集多样性指数(仅限精选池)
### **痤疮严重程度分布**
* **轻度 (< 5 个病灶)**: `693` 张图像 (83.0%)
* **中度 (5 到 20 个病灶)**: `128` 张图像 (15.3%)
* **重度 (> 20 个病灶)**: `14` 张图像 (1.7%)
### **光照与肤色类别**
* **最佳曝光**: `833` 张图像
* **类 Fitzpatrick 肤色代理指标**:
* **L2 (中等 / 棕褐色)**: `169` 张图像
* **L3 (深色 / 黝黑)**: `664` 张图像
## 🚀 核心特性
* **12 阶段自动化 Pipeline**: 通过 `run_pipeline.py` 统一编排,涵盖数据完整性检查、格式标准化、视觉与几何审计、去重以及最终的 letterbox 导出。
* **多源类别统一**: 根据配置中的规则,自动将各种痤疮标注方案(脓疱、丘疹、黑头等)映射到统一的目标类别 (`acne`)。
* **双重过滤质量评分**:
* *视觉指标*: 测量模糊度(Laplacian 方差)和光照曝光(亮度直方图分布)。
* *标签审计*: 捕捉越界的边界框、负数形状以及过度重叠的坐标。
* **全局去重与泄露预防**: 利用差异哈希 (dHash) 和 MD5 哈希在全局范围内解决近似重复项,确保没有相同或相似的主题图像污染 Train/Val/Test 划分。
* **模型在环共识审计**: 集成基于 YOLOv8 的共识审计引擎,以标记人工标注与模型预测之间的差异。
* **关系型元数据索引**: 在结构化的 SQLite 数据库中维护数据集、图像参数、质量评分和标注的完全可追溯记录。
## 🛠️ 技术栈
* **核心语言**: Python
* **图像处理**: OpenCV (`cv2`), Pillow (`PIL`)
* **AI 模型验证**: Ultralytics YOLOv8
* **数据库引擎**: SQLite
* **配置与策略管理**: YAML (PyYAML)
## 📁 仓库结构
```
workspace/
├── configs/
│ └── default_dataset_policy.yaml # Configures quality thresholds & folder paths
│
├── database/
│ └── (sqlite databases - gitignored)
│
├── datasets/
│ └── (raw/external/curated image sets - gitignored)
│
├── docs/
│ ├── dataset_acceptance_policy.md # The Dataset v2 Quality Constitution
│ ├── repository_structure.md # Detailed database schema maps
│ └── workflow.md # Explanation of the 12 pipeline stages
│
├── reports/
│ └── (markdown diagnostics and yield tracking report cards)
│
└── scripts/
├── import/ # Raw ingestion and lineage tracking
├── conversion/ # Annotation format harmonizers
├── audit/ # Coordinate geometric validators
├── scoring/ # Metric calculation engine
├── dedup/ # Image hashing (dHash/MD5) comparisons
├── review/ # Interface for human review queue
├── export/ # Dataset splitting, letterboxing, and packaging
└── utils/ # DB wrappers, loggers, orchestrators
```
标签:医学图像, 恶意代码分类, 数据工程, 数据清洗, 数据管道, 数据质量管理, 目标检测, 计算机视觉, 软件工程, 逆向工具