信息速览
INFOBOX — BCCD 一屏速览
维度 内容 本质 外周血涂片(blood smear)目标检测数据集——RBC/WBC/Platelets 三类边界框(非分割、非计数表) 发布 GitHub 仓库 Shenggan/BCCD_Dataset,首次提交 2017-12-07(引用串署 2018,双口径)维护 个人/社区项目(shenggan 等),无研究机构署名、无原始论文 规模 364 张图像 / 364 份 XML / 4,888 个目标框 类别计数 RBC 4,155(85.0%)/ WBC 372(7.6%)/ Platelets 361(7.4%) 规格 640×480 RGB JPEG;PASCAL VOC XML 边界框;无分割掩码 划分 ImageSets 口径 train 205 / val 87 / test 72(trainval 292);TFDS 口径完全一致 许可 MIT License(Copyright © 2017 shenggan)——可商用、可再分发 获取 GitHub 直下 / TensorFlow Datasets( tfds.load('bccd'))/ Kaggle / Roboflow / Dataset Ninja生态 TFDS 官方收录;下游衍生 CBC、TXL-PBC;YOLOv5/Faster R-CNN/DETR/MFDS-DETR 等复现基准 库内互链 acevedo-blood(722)、nih-malaria(502)、herlev-pap(483)、sipakmed(490)、pannuke(218)、consep(228)、medmnist(716)、cdetector(849)
BCCD(Blood Cell Count and Detection)是计算机视觉与医学显微图像交界处最常见的一张"入门门票":364 张外周血涂片、4,888 个手工边界框、红细胞/白细胞/血小板三个类别,全仓 MIT 许可、GitHub 直下、还被 TensorFlow Datasets 收录为 bccd 官方数据集。它没有论文、没有挑战赛、没有排行榜,却几乎出现在每一篇"血细胞检测"教学与原型论文里——正因为简单、干净、许可宽松,它成了从 YOLO 到 Faster R-CNN 各类检测器的第一块试验田。
导语读法三则:
- 只想下数据跑通检测器:直奔 §6 获取与许可——MIT、GitHub 直下、TFDS 一行加载,是全库最省事的入口之一。
- 关心"为什么这么小的数据集还这么有名":直奔 §4 数据构成与 §7 生态——它胜在许可宽松 + 血缘清晰 + 被框架官方收录,而非规模。
- 要引用作基线:直奔 §5 标注规范与 §7 评估——务必注明"BCCD 无官方 test 服务器,各论文数字口径不一",别把不同论文的 mAP 直接横比。
§0 导读:这个数据集解决什么问题
血常规(Complete Blood Count,CBC)是临床上最基础的检验之一:红细胞、白细胞、血小板的计数与形态直接关联贫血、感染、凝血异常等一大类疾病。传统血细胞计数依赖血液分析仪与人工镜检,而显微图像中的血细胞检测——在血涂片上定位并分类每一个红细胞、白细胞与血小板——是自动化计数与形态学前置的关键一步。
BCCD 正是为这一任务提供的第一个被广泛采用的公开图像数据集:它把显微镜下的血涂片切成 640×480 的小图,用最朴素的矩形框标出每个细胞的位置和类别,使得任何目标检测模型都能立刻上手训练与评测。它的价值不在于规模(364 张在今天是"迷你"数据集),而在于三点:血缘清晰(每张图有明确来源与标注)、许可干净(MIT,商用无忧)、接口标准(VOC XML 是检测界通用语)。
§0 读法三则:
- 这是一份"细胞级"数据集:它不回答"这位患者是否有病",只回答"这张图里哪里有细胞、是什么细胞"——所有临床解读都需下游模型自行完成(§4.5)。
- 全文硬数字以 GitHub master 独立重数为准:364 图 / 4,888 框(RBC 4,155 / WBC 372 / Platelets 361),与 TensorFlow Datasets 官方口径逐项吻合(§4 存照)。
- BCCD 没有原始论文,检索时别去找"BCCD 数据集论文"——引它要引 GitHub 仓库 + 其下游代表作 CBC(坑 1、坑 2)。
§1 数据集速览:十问十答
Q1:BCCD 是什么的缩写,做什么用?
Blood Cell Count and Detection——外周血细胞计数与检测。用途:在血涂片显微图像上做红细胞、白细胞、血小板的目标检测(定位 + 分类),是自动血细胞计数流水线的视觉前端。
Q2:一共多少张图、多少个框?
364 张图像、364 份标注、合计 4,888 个边界框。其中红细胞 RBC 4,155 个、白细胞 WBC 372 个、血小板 Platelets 361 个(三项相加恰为 4,888)。
Q3:图像什么规格?
640×480 像素、RGB、JPEG 格式,单张图约 20 KB 量级;整仓 master 压缩包约 7.15 MiB(≈7.5 MB)。
Q4:标注是什么格式?
PASCAL VOC 风格的 XML:每个 <object> 含 <name>(类别名)与 <bndbox>(xmin/ymin/xmax/ymax 四个整数坐标)。只有矩形框,没有多边形或像素级掩码。
Q5:有几个类别?
三个:RBC、WBC、Platelets。没有背景类、没有亚型(如不区分中性粒细胞/淋巴细胞,也不分血小板亚群)。
Q6:谁做的、什么时候发布的?
GitHub 用户 shenggan 及其协作者(Nicolas Chen、cosmicad、akshaylamba),首次提交 2017-12-07。这是一个个人/社区开源项目,没有研究机构或论文背书。
Q7:许可是什么,能商用吗?
MIT License(版权年 2017)。可以商用、可以修改、可以再分发,只需保留版权与许可声明——在本库众多 NC(非商用)医学数据集里属于最宽松的一档。
Q8:从哪下载?
主入口 GitHub 仓库 Shenggan/BCCD_Dataset(master 分支可直下 tar/zip);也可用 TensorFlow Datasets:tfds.load('bccd') 自动下载;Kaggle、Roboflow Universe、Dataset Ninja 均提供镜像与格式转换。
Q9:有官方划分吗?
有。仓库 ImageSets/Main 给出 train 205 / val 87 / test 72(trainval = train+val = 292)。TensorFlow Datasets 采用完全相同的划分(train 205 / validation 87 / test 72),二者互证。
Q10:它和真实临床血液分析仪数据一样吗?
不一样。BCCD 是图像检测数据集,只提供细胞位置与三分类标签,不含任何患者、计数结果或临床诊断信息;它也不等同于血常规报告数值数据集。要用它做临床计数,需自行把"检测框数"换算为计数估计(§4.5)。
Q11:BCCD 和 CBC 数据集是同一个吗?
不是。BCCD 是父级(检测 + 三分类),CBC 是它的下游衍生(白细胞亚型分类,Alam & Islam 2019)。CBC 从 BCCD 图像派生子集并重新标注,规模与任务都不同(§7.1)。
Q12:它有多少个文件,压缩包多大?
GitHub master 压缩包 7,495,829 字节(≈7.15 MiB),解压后含 364 张 JPEG + 364 份 XML + 划分清单。TFDS 口径记为 download 7.51 MiB / dataset 7.34 MiB(重编码差异,§3.1)。
Q13:图像里红细胞的分布有什么特点?
典型血涂片形态:大量淡红圆形红细胞铺满视野,白细胞少而醒目,血小板小而稀。这种"一类极多、两类极少"的分布是 BCCD 检测难点的根源(§3.4)。
Q14:BCCD 提供训练好的模型吗?
不提供。它只提供数据。训练好的检测模型散见于各下游论文与开源仓库,需自行寻找或复现。
Q15:BCCD 有数据卡(dataset card)吗?
没有正式的 dataset card。仓库只有 README 描述结构;TFDS 目录页提供基本的加载接口说明。这是它元数据薄弱的体现(附录 B)。
Q16:它是多中心、多设备采集的吗?
不是。无任何采集机构、设备或染色协议元数据,无法判断成像一致性,也无法做设备泛化分析(§4.3)。
Q17:BCCD 的图像是彩色的还是灰度?
彩色 RGB(三通道)。血涂片经染色后红细胞偏红、白细胞核偏蓝紫,颜色信息对分类有实际价值,故不宜简单转灰度。
Q18:为什么入门教程都爱用它?
三条:VOC 通用格式、MIT 宽松许可、TFDS 一行加载——接入成本几乎为零(§7.5)。
Q19:它有测试服务器或 leaderboard 吗?
没有。BCCD 无官方评测服务器,test 72 张只是静态划分,指标由使用者自行计算(坑 7)。
Q20:如果我要把它用于白细胞五分类研究,该怎么做?
BCCD 本身只有单一 WBC 类,不能直接做五分类。可行路径是换用带亚型标签的数据集(如 acevedo-blood),或把 BCCD 的 WBC 框裁出后自行补充亚型标注(§3.5、§3.6)。
§2 身份与来源:一个没有论文的经典数据集
2.1 名字、别名与"无论文"事实
BCCD 的正式名称是 Blood Cell Count and Detection,社区中常见的别名包括 “BCCD Dataset”、“Blood Cell Count Dataset”、仓库名 “BCCD_Dataset”,以及口语化的 “blood-cell-detection”。需要特别强调的第一件事是:BCCD 至今没有同行评审的原始数据集论文。它 2017 年以 GitHub 仓库形式发布,靠 README 说明结构、靠被下游论文广泛引用而获得影响力。这带来两个检索后果——其一,任何人若声称"BCCD 的论文发表在某某期刊"都是误记(坑 1);其二,正式引用应引仓库本身(BibTeX @dataset)或其下游代表作 CBC(坑 2)。
官方推荐的引用串形如:
@dataset{BCCD,
author = {shenggan and Nicolas Chen and cosmicad and akshaylamba},
title = {BCCD: Blood Cell Count and Detection},
year = {2018},
url = {https://github.com/Shenggan/BCCD_Dataset}
}
2.2 时间线的双口径
BCCD 有两个"出生年份"并存:GitHub 仓库首次提交为 2017-12-07,MIT 许可证的版权年也写 2017;而官方 @dataset 引用串署名 year={2018},TensorFlow Datasets 目录页的年代元数据则记 2017。本条目以 2017 为发布年(首发提交 + 版权年一致),并保留"引用串署 2018"作双口径存照(坑 3)。这是引用时最容易踩的年份混淆点。
2.3 血缘:从 cosmicad / akshaylamba 到 shenggan
BCCD 的图像并非原创拍摄,而是整理自更早的公开血细胞图像集合:GitHub 用户 cosmicad 的 dataset 仓库与 akshaylamba 的 all_CELL_data 仓库提供了原始血涂片图像素材,shenggan 在此基础上组织、切分并补上三分类边界框标注,形成 BCCD。因此 BCCD 在血缘上是一份"二次整理 + 标注"的数据集——它的图片来源与标注来源可分离,这一点在追溯数据出处时应说明(§3.2)。
2.4 与"挑战赛数据集"的定位差异
不同于 PANDA、HECKTOR 等本库中的挑战赛数据集,BCCD 没有组织方、没有比赛、没有评分服务器。它的影响力来自"被生态采用":TensorFlow Datasets 把它列为官方目录条目、Roboflow 提供多格式导出、大量教学仓库以它为例。可以说它是"基础设施型"而非"竞技型"数据集——用户不是来比分数的,而是来接入一个标准接口的(§7.3)。
2.5 命名歧义与消歧
检索 BCCD 时最容易遇到的歧义有三类。其一,“BCCD” 作为缩写可指多种事物(如某些硬件/通信代号),故检索务必加 “blood cell” 或 “dataset” 限定。其二,“blood cell count dataset” 是一个通用短语,多个数据集都可用它自称,精确匹配应使用仓库名 BCCD_Dataset 或官方全称 “Blood Cell Count and Detection”。其三,“CBC” 既是 BCCD 下游数据集之名,又是临床"血常规"(Complete Blood Count)的缩写,二者语义相近但实体不同——前者是数据集,后者是检验项目,检索时须靠上下文区分(坑 1 延伸)。
2.6 版本形态:没有版本号的数据集
BCCD 没有显式版本号(无 v1/v2、无 semver、无 Zenodo DOI)。它是一份"持续更新式"发布的仓库:使用者引用时通常写 "BCCD(master 分支,抓取日期 YYYY-MM-DD)"或直接以仓库 URL 指代。这与 pannuke、medmnist 等有明确版本与 DOI 的数据集形成对照。后果是:不同时间下载的 BCCD 理论上有微小差异风险,但就抓取时点(2026-10-04)核验,master 的图像与框数与下游引用口径一致(364/4,888)。
2.7 与 raabin-wbc 的定位区分
本库同 cycle 另有一份白细胞数据集 raabin-wbc(由 agent-d-raabinwbc 编写,属独立数据集,非 BCCD 衍生)。两者都是"血细胞图像数据集",但定位不同:raabin-wbc 聚焦白细胞(数量更大、带亚型/形态梯度),BCCD 是红细胞/白细胞/血小板三类的检测集。它们的关系是同域互补而非上下游——BCCD 是"检测入门集",raabin-wbc 是"白细胞专项集"。由于 raabin-wbc 尚未入库,本条目暂将其列作外部生态提及(§7.4、§8)。
2.8 一份"教学友好型"数据集的画像
综合以上,BCCD 可以画出一幅清晰画像:个人/社区出品、2017 年首发、无论文无机构、VOC 格式、MIT 许可、TFDS 收录、364 张规模、三分类极不均衡。它的每一个"缺点"(小、无论文、无元数据)都被"优点"(易用、许可宽松、框架内置、血缘清晰)在入门与原型场景中抵消。理解这幅画像,就理解了这个数据集为何在十余年后仍被反复采用——它不是最好的血细胞数据集,而是门槛最低的那一个。
2.9 血缘链的精确还原
BCCD 的"血缘"是理解它的关键——它不是凭空诞生的,而是把若干上游公开素材整理 + 补齐标注后的产物。精确的链条如下:
- 上游图像源:cosmicad 的公开数据集(github.com/cosmicad/dataset)与 akshaylamba 的细胞图像集合(github.com/akshaylamba/all_CELL_data)——提供了原始血细胞图像素材。
- 整理与标注:shenggan 及其协作者(Nicolas Chen 等)在这些素材基础上筛选、命名并补齐 VOC 边界框标注,形成 BCCD。
- 发布与固化:以 GitHub 仓库
Shenggan/BCCD_Dataset形式发布,MIT 许可。 - 生态扩散:被 TensorFlow Datasets 收录、被 Kaggle/Roboflow 镜像、被 CBC/TXL-PBC 等下游派生。
这条链说明两点:其一,BCCD 的"作者"应理解为"整理标注者",上游图像另有来源;其二,MIT 覆盖的是 BCCD 的整理与标注成果,若对上游素材许可另有疑问,应一并追溯(§6.5)。这也是引用时署名串包含 cosmicad 与 akshaylamba 的原因。
2.10 与"挑战赛数据集"的进一步区分
BCCD 常被误当作"某个比赛的官方数据集",实际上并非如此。把它与典型的挑战赛数据集对照:
| 维度 | BCCD | 典型挑战赛数据集 |
|---|---|---|
| 发布主体 | 个人/社区 | 会议/学会/机构 |
| 配套论文 | 无 | 有(数据集论文) |
| 评测方式 | 无官方服务器 | 有固定提交与 leaderboard |
| 划分性质 | 静态 205/87/72 | 常含隐藏测试集 |
| 版本管理 | 无 semver | 常按年份版本化 |
BCCD 属于"静态发布、自行评测"的一类。使用者必须自行保证比较公平(§7.6、坑 7)。把它误当挑战赛数据集,会期待一个并不存在的官方排名,从而在引用时出错。
2.11 为什么它是"被引用出来"而非"被宣传出来"的
BCCD 的走红没有营销推力:无论文、无机构、无比赛。它的流行完全来自被引用惯性——早期教程用它演示检测管线,后续论文顺手以它为基线,新生代研究者循引用找到它。这种"自下而上的采纳"路径,与"自上而下的比赛推广"截然不同,也解释了为何它文档薄弱却能长期活跃:使用者要的是"能跑",而非"能引一篇漂亮的数据集论文"。理解这条机制,就能理解本条目为何反复强调"接入摩擦最低"才是它的核心竞争力(§7.5)。
§3 数据构成与规格
3.1 规模硬数字(独立重数 + 三源互证)
BCCD 的核心数字可以压缩成三行:
| 指标 | 数值 | 占比 |
|---|---|---|
| 图像数 | 364 张 | — |
| 标注文件数 | 364 份 XML | — |
| 目标框总数 | 4,888 个 | 100% |
| 其中 RBC(红细胞) | 4,155 个 | 85.0% |
| 其中 WBC(白细胞) | 372 个 | 7.6% |
| 其中 Platelets(血小板) | 361 个 | 7.4% |
正交校验:4,155 + 372 + 361 = 4,888,与目标框总数一致;364 份 XML 与 364 张 JPEG 一一对应,不存在零标注的空图。这三个层次(图数 / 文件数 / 框数)同时自洽,是本条目数字可信度的基础。
三源互证过程如下:
- GitHub master 独立重数:下载
master.tar.gz(7,495,829 字节,≈7.15 MiB),用脚本独立统计 JPEG 数、XML 数及逐类<object>计数,得 364 / 364 / 4,888(RBC 4,155、WBC 372、Platelets 361)。 - TensorFlow Datasets 官方目录:记载 download 7.51 MiB / dataset 7.34 MiB、图像形状 (480, 640, 3)、3 个类别、划分 train 205 / validation 87 / test 72。
- 下游/cite 口径:Roboflow Universe 的 BCCD 工作区亦记 364 图像 / 4,888 标签;多篇论文(CBC、TXL-PBC)以 364 张为基数引用。
三源在图数(364)、框数(4,888)与划分(205/87/72)上完全一致;唯一的小差异是压缩体积(GitHub tarball 7.15 MiB vs TFDS 记 7.51 MiB download / 7.34 MiB dataset),系打包与重编码口径不同所致,不影响核心计数(坑 4 存照)。
3.2 目录结构与文件布局
BCCD 仓库采用典型 VOC 风格布局:
JPEGImages/:364 张 640×480 RGB JPEG 血涂片图像。Annotations/:364 份同名 PASCAL VOC XML,每份对应一张图像,内含该图全部<object>。ImageSets/Main/:划分清单文件(train / val / test / trainval),给出各集合的图像 id 列表。- 其它辅助文件(README、数据集描述、license 等)。
命名上,图像与 XML 通过同名主键(image_id)关联,这是后续任何格式转换(YOLO / COCO)都必须先解析的核心关系(§5.3)。
3.3 图像规格与成像特点
图像为 640×480、RGB、JPEG,属中等分辨率的显微视野切图。其成像特点是血涂片镜检的典型形态:大量淡红色圆形红细胞铺满背景,白细胞因体积大、胞质与核着色不同而相对醒目,血小板小而淡、分布稀疏。这种"一类极多、两类极稀"的分布(§3.4)直接决定了检测模型在 BCCD 上的主要难点——密集红细胞区容易漏检与重叠,而白细胞/血小板因样本量小、形态多变,往往是分类错误的高发类(§7.2)。
3.4 类别分布:85 / 7.6 / 7.4 的不均衡
三类严重不均衡是 BCCD 的第一特征:红细胞占了近 85% 的框,而白细胞与血小板各自不到 8%。后果有三。其一,训练时模型天然偏向红细胞,白细胞与血小板的召回率往往成为识别性能的分水岭(§7.2 复现数字正是按类拆分报告)。其二,评估时若只看总体 mAP,会被占大头且有大量相似样本的红细胞类"拉高",掩盖少数类的短板。其三,任何"计数"应用(§4.5)都必须在类别层面分别处理,不能用一个统一阈值套三类。
3.5 类别体系与粒度边界
BCCD 的类别体系极为精简,只有三个标签:
| 标签 | 中文 | 形态粒度 | 说明 |
|---|---|---|---|
| RBC | 红细胞 | 单细胞级框 | 数量最多、形态最均一 |
| WBC | 白细胞 | 单细胞级框 | 不细分亚型(不分叶/淋巴/单核) |
| Platelets | 血小板 | 单细胞级框 | 每图数量少、体积小 |
边界说明:BCCD 不做白细胞五分类(中性/淋巴/单核/嗜酸/嗜碱),也不做细胞分割,更不提供计数结果。若研究需要白细胞亚型,需要换用带亚型标签的数据集(如本库的 acevedo-blood、herlev-pap、sipakmed 等细胞学数据集);若需要实例分割,则 BCCD 不适用(§3.6)。
3.6 BCCD 不是什么:三个边界
- 不是分割数据集:只有矩形框,没有细胞轮廓掩码。需要像素级核分割的研究应改看 PanNuke、CoNSeP 等核实例分割基准。
- 不是临床血常规数据集:不含患者、无检验数值(RBC/WBC/PLT 计数、血红蛋白等),无法直接做临床诊断任务。
- 不是白细胞亚型数据集:WBC 仅是单一类别,白细胞五分类需另寻数据(如 acevedo-blood 等外周血分类集)。
3.7 逐图目标数的分布特征
BCCD 不同图像的目标数差异极大:红细胞稀少的图可能只有十几个框,而红细胞密集的图可达数十个甚至更多。这种"图间框数高度不均"带来两个工程后果:其一,训练时的梯度贡献不均——密集图主导损失,稀疏图(往往含白细胞/血小板)易被淹没,需用采样或加权缓解;其二,评估时的指标敏感度差异——密集图对召回影响大,稀疏图对精确率影响大,报告时应分层看。
3.8 血小板的特殊难点
三类中数字最小的血小板(361 个框)实际是检测难点之最:体积小、与背景红细胞对比弱、且常贴附于红细胞或聚集成团。这使得血小板召回率普遍偏低,也是下游论文常把类间性能拆开报告的原因之一(§7.2)。任何声称"在 BCCD 上全面检测血细胞"的作品,都应单独交代血小板的表现。
3.9 图像分辨率的取舍
640×480 是一个"够用但不高"的分辨率:对红细胞与白细胞足够,对血小板的微小形态则偏紧。低分辨率既降低了存储与训练成本(全仓仅约 7 MB),也限制了细粒度形态分析(如血小板颗粒、红细胞变形)。因此 BCCD 不适合做高倍形态学研究,只适合做中等粒度的检测与计数。
3.10 类别占比的量化拆解
把 4,888 个框按类拆开,可以得到一张更直观的分布表:
| 类别 | 框数 | 占比 | 相对红细胞 | 每图均框数(364 图) |
|---|---|---|---|---|
| RBC(红细胞) | 4,155 | 85.00% | 1 : 1 | ≈ 11.4 |
| WBC(白细胞) | 372 | 7.61% | 1 : 11.2 | ≈ 1.02 |
| Platelets(血小板) | 361 | 7.39% | 1 : 11.5 | ≈ 0.99 |
| 合计 | 4,888 | 100% | — | ≈ 13.4 |
这张表读出三条关键结论。其一,红细胞是数量层面的主导类:平均每张图有十余个红细胞框,构成检测任务的"背景主体"。其二,白细胞与血小板近乎 1:11 的稀少比:平均每图各约 1 个,意味着大量图像可能完全不含某一少见类——这直接导致"某些类别在部分图中无实例"的正样本稀疏问题。其三,"每图均框数"只是均值,掩盖了图间方差(§3.7):实际分布远比均值集中来得分散。
3.11 每图实例数方差的工程含义
如果进一步按图统计实例数,会得到一个高度右偏(right-skewed)的分布:少数红细胞密集的图贡献了远超均值的框数,而多数图集中在低框数区间。这一分布形态带来四个具体的工程后果:
- 批(batch)内不均衡:若随机组批,一个 batch 内可能混入 2–3 张密集图,使该批的损失被密集类主导,梯度噪声大;建议按框数分层采样(stratified sampling)。
- 少类学习信号薄弱:含 WBC 或 Platelets 的图占比有限,若不做处理,模型对少类的反向传播信号远少于红细胞;可对含少类图做重复采样或提高少类损失权重(§4.8)。
- 评估方差偏大:由于 test 仅 72 张且图间差异大,单次评估的 mAP 波动可能较大;报告时应给出多次运行或交叉验证的区间,而非单点数字。
- 可视化抽样易误导:若从图中随机抽几张展示,很可能抽到"满屏红细胞"的典型图,从而高估模型对少类的实际表现;展示时应刻意包含含 WBC/Platelets 的样本。
3.12 规模数字的常见误读与澄清
围绕 BCCD 的"364 / 4,888"两个数字,社区中流传若干误读,逐一澄清如下:
- 误读一:“364 张对应 4,888 个细胞”。严格说,4,888 是标注框数,而非经复核的细胞数;重叠框与漏标使"框数 ≈ 细胞数"只是近似(§4.3)。规范表述是"4,888 个边界框"。
- 误读二:“BCCD 有 3 个类别所以是分类数据集”。BCCD 的标注是框,任务是检测;三个类别指的是框的类别体系,不是整图分类标签(§3.5)。
- 误读三:“364 张就够训练 SOTA”。364 张对检测任务明显偏小,多数报告的高指标或依赖强增强、迁移学习,或基于自定义划分(§7.2);不宜据此断言"小数据足够"。
- 误读四:“TFDS 记的体积更大所以数据更多”。7.51 MiB 与 7.15 MiB 的差异来自打包与图像重编码,图像数与框数三源一致(§3.1),不可据此推断版本不同(坑 4)。
- 误读五:“BCCD 的数字会随更新变化”。仓库为持续维护式发布、无显式版本号(§2.6),引用硬数字必须带抓取时点,否则后续核对时可能对不上。
§4 标注、划分与质量控制
4.1 VOC XML 标注的结构
BCCD 采用 PASCAL VOC 事实标准。每份 XML 的基本结构为:
<annotation>
<filename>BloodImage_00000.jpg</filename>
<size><width>640</width><height>480</height><depth>3</depth></size>
<object>
<name>RBC</name> (类别取值:RBC / WBC / Platelets)
<bndbox>
<xmin>…</xmin><ymin>…</ymin>
<xmax>…</xmax><ymax>…</ymax>
</bndbox>
</object>
… 更多 <object> …
</annotation>
一份 XML 可含任意多个 <object>(红细胞密集的图可达数十个),坐标均为绝对像素整数,图像尺寸恒定 640×480,因此无需归一化即可直接换算到任意框架。这种"一图一 XML、多个 object"的组织方式与后来的 YOLO 单文件列表、COCO 单 JSON 不同,转换时需要按 image_id 聚合(§5.3)。
4.2 官方划分与 TFDS 划分的一致性
BCCD 仓库自带 ImageSets/Main 划分:
| 集合 | 图像数 | 说明 |
|---|---|---|
| train | 205 | 训练集 |
| val | 87 | 验证集 |
| trainval | 292 | train + val 合并清单 |
| test | 72 | 测试集 |
校验:205 + 87 = 292 = trainval,292 + 72 = 364,自洽。TensorFlow Datasets 采用完全相同的划分(train 205 / validation 87 / test 72),二者相互印证。这一点很重要:它意味着使用 TFDS 加载 BCCD 时得到的分区与原始仓库一致,下游复现时不必担心"版本换了划分也变了"。
4.3 标注质量:已知争议与诚实的边界
BCCD 的标注由社区手工完成,未经专家逐像素复核。社区长期反映的主要问题包括:
- 红细胞重叠框:红细胞密集处两个框部分重叠,或同一细胞被重复框选;
- 漏标:视野边缘或密集区的红细胞未被框出,尤其血小板遗漏较多;
- 形态歧义:个别细胞(如处于变形或边缘状态的红细胞)归类主观。
截至抓取时点,BCCD 没有官方发布的标注修正版或 errata。本条目如实记录这一局限,并建议使用者:(a)把 BCCD 的标注视为"够用的入门级真值"而非金标准;(b)在要求高精度的应用上做人工抽检或引入更强标注集;(c)引用其指标时说明标注质量背景。
4.4 数据清洗:几乎没有的"清洗故事"
与 panda-plus 那种"删除 <1600px 伪迹"式的精细清洗不同,BCCD 没有公开的清洗协议或剔除记录——它是一份比较"原生"的数据集:图像直接来自上游素材,标注一次性补齐,未见官方记录的剔除/修版本。这既是它许可与获取简单的代价,也是它标注质量争议的来源之一。使用者应把它理解为"经过整理但未经严格质检"的数据。
4.5 从"检测框"到"计数":用途的边界
BCCD 的名字里带 “Count”,但它本身不提供计数。要把检测结果变成计数估计,需自行处理若干工程问题:
- 框——细胞一一对应假设:默认一个框=一个细胞,但重叠/漏标会破坏该假设,密集区尤甚;
- 视场—体积换算:显微视野的面积并不等于标准化体积,真实血细胞计数(cells/μL)需另配标定与体积换算,BCCD 不含任何此类元数据;
- 类别分别处理:三类分布极不均衡,计数与置信阈值须逐类设定(§3.4)。
因此,BCCD 更适合作为"检测前端"来用;把它直接当"血常规计数数据集"是对其能力的过度延伸(坑 5)。
4.6 标注一致性的客观约束
由于 BCCD 未公开标注者身份、数量与培训过程,我们无法量化其标注者间一致性(inter-annotator agreement)。这意味着:没有任何 kappa 类数字可以引用来评估 BCCD 标注可靠性。对比 panda-plus 有明确的 agreement/kappa 报告,BCCD 在这方面的"信息真空"本身就是一条重要事实——引用其标注质量时只能定性描述(§4.3)。
4.7 划分的稳定价值
尽管标注质量存疑,BCCD 的 205/87/72 划分本身是稳定且有价值的:它公开、固定、且被 TFDS 沿用。这为"在同一划分下比较不同模型"提供了最低限度的公平性。凡使用 BCCD 做方法比较的研究,都应明确声明是否采用官方划分——若自行重划分,则结果与采用官方划分的报告天然不可比(坑 7 的技术根源)。
4.8 类别不平衡的处理建议
针对 85/7.6/7.4 的不均衡,常见处理策略包括:(a)按类分开评估,不看总体 mAP 下结论;(b)过采样/复制少数类图像,但注意 BCCD 中三类常共图,难以纯按类采样;(c)损失加权,提高 WBC/Platelets 的损失权重;(d)数据增强,对含少数类的图做旋转/翻转/色彩扰动。这些策略的有效性高度依赖具体任务,无统一最优解。
4.9 抽检复核的可操作建议
若要把 BCCD 用于对精度有要求的场景,建议做如下抽检:随机抽取 30-50 张图,人工复核 RBC 重叠框与漏标、WBC/Platelets 是否漏检,统计错标率;若错标率超出可接受阈,则考虑只把 BCCD 用作预训练或改换标注质量更高的数据集。这套流程简单但能有效暴露 BCCD 的质量边界。
4.10 标注工作量的粗略估算
BCCD 未公开标注投入,但可据框数反推一个量级参考:4,888 个框 / 364 张图,若按一张图含十余个框、每个框数秒计,则总量是一个"个人可在数周内完成"的规模——这与它作为个人/社区项目的性质一致(§2.3)。这一估算的意义在于:BCCD 的规模决定了它不可能承受专家级逐像素复核,因此其标注质量的上限是可以预判的。引用其精度时,应把这一背景纳入考量,而非把框视为金标准(§4.3)。
4.11 使用前的标注抽检协议(可落地)
针对 §4.9 的建议,这里给出一份可执行的抽检协议,供对精度有要求的使用者参考:
- 抽样:从 364 张中以固定随机种子抽 30–50 张(建议按"含 WBC/Platelets 的图"分层,确保覆盖少见类)。
- 复核维度:逐张核对(a)红细胞是否有明显重复框;(b)密集区是否有漏框;(c)WBC/Platelets 是否被漏标或错类;(d)框是否显著偏离细胞边界。
- 量化:对每类记录错标数,计算"估计错标率 = 错标实例数 / 该图该实例总数"。
- 判读:若红细胞错标率 <5% 且少见类漏标率可接受,则 BCCD 可用于对精度要求中等的任务;若超出,则只用作预训练或换数据。
- 留痕:记录抽样种子、抽样清单与复核日期,便于他人重复或质疑。
该协议的价值不在于"证明 BCCD 好或坏",而在于把主观的"标注质量存疑"转化为可复现的量化证据,这正是 BCCD 自身缺失、而使用者可以补上的部分。
4.12 BCCD 原始标注与下游重标注的差异
BCCD 的框是"起点"而非"终点",许多下游工作在其上做了重标注,理解这些差异有助于正确引用:
| 版本 | 出处 | 对 BCCD 的改动 | 任务变化 |
|---|---|---|---|
| BCCD 原始 | GitHub master | — | 三分类检测 |
| CBC | Alam & Islam 2019,doi 10.1049/htl.2018.5098 | 派生白细胞子集、剔除问题文件 | 白细胞(4 类)分类 |
| TXL-PBC | arXiv 2407.13214 | 保留 160 张、转 YOLO、约 18,143 标签、划分 882/252/126 | 血小板/血细胞检测 |
| Roboflow 镜像 | Roboflow Universe | 多格式导出 + 数据增强/重划分 | 检测(可自定义) |
引用要点:若你的实验结果来自上述任一衍生版本,不能直接标称"在 BCCD 上"——因为类别体系、划分与实例数都已改变。规范做法是明确写出所用衍生版本与其出处,并交代改动内容(§7.2、坑 7 的延伸)。
§5 格式转换与模型接入
5.1 从 VOC 到 YOLO / COCO
BCCD 的原生格式是 VOC,但主流检测器(尤其是 YOLO 系列)多用 YOLO 格式(每图一个 .txt,每行 class cx cy w h 归一化坐标)。转换要点:
- 类别映射:
RBC→0、WBC→1、Platelets→2(常见约定;不同镜像可能不同,务必核对); - 坐标归一化:
cx=(xmin+xmax)/2/640、cy=(ymin+ymax)/2/480、w=(xmax-xmin)/640、h=(ymax-ymin)/480; - 聚合与配对:按 image_id 把每份 XML 的多个
<object>展开为多行,图像与标签文件同名配对; - 划分沿用:建议沿用
ImageSets/Main的 205/87/72,以保持跨论文可比性(§4.2)。
COCO 格式同理:把所有 XML 汇总成一个 JSON,images 记 364 条、annotations 记 4,888 条、categories 记 3 条。
5.2 TensorFlow Datasets 一行加载
BCCD 被 TFDS 官方收录,加载极为简单:
import tensorflow_datasets as tfds
ds = tfds.load("bccd", split="train") # 或 validation / test
TFDS 会自动下载、校验并返回 (image, objects) 结构的样本,图像张量形状 (480, 640, 3),object 含 bbox 与 label。TFDS 的划分与仓库完全一致(205/87/72),因此用 TFDS 是最省心的复现路径——前提是不介意它默认的图像重编码(§3.1 的体积差异即源于此)。
5.3 多框架入口:Roboflow / Kaggle / Dataset Ninja
除 GitHub 与 TFDS,BCCD 还有多个社区镜像:
- Roboflow Universe:提供 BCCD 工作区,可一键导出 YOLO / COCO / VOC / TFRecord 等格式,并自带数据增强选项;
- Kaggle:多个镜像数据集(如 blood cell detection 类),通常需 Kaggle 账号;
- Dataset Ninja:可视化浏览、统计与格式转换。
镜像风险提示:第三方镜像可能对图像做二次重划分、去重、重命名或类别重排。若你的实验需与论文数字对齐,请回到 GitHub master 或 TFDS 的官方划分(205/87/72);若只是自己训练,镜像的便利性可以接受,但应记录你用的是哪一个镜像与日期。
5.4 典型模型接入
BCCD 是各类检测器的"标配试验田",已见诸报告的模型包括:YOLOv3/v5/v8 系列、Faster R-CNN、SSD、RetinaNet、DETR、Deformable DETR,以及专门针对血细胞设计的方法(MFDS-DETR、NBCDC-YOLOv8 等)。接入门槛低的原因正是前文三点:VOC 通用格式、MIT 许可、TFDS 一行加载。
5.5 转换脚本的可复现性要点
无论用哪种格式,转换脚本都应满足三点可复现性:(a)确定性——同一输入必得同一输出,类别映射写死、不依赖字典遍历顺序;(b)可校验——转换后统计总框数应仍为 4,888、每类计数不变,任何漂移立即报警;(c)留痕——记录源仓库快照日期与脚本版本。这三条能避免"转换过程悄悄丢框/换类"的隐蔽错误。
5.6 常见转换陷阱
- 坐标越界:个别框的 xmax 或 ymax 可能触及或略超图像边界,归一化后需 clip 到 [0,1];
- 单复数与大小写:标签
Platelets(复数、首字母大写)若在映射表中写成Platelet会导致该类全部落空; - 空图处理:本数据集无零标注图,但若你自行过滤出某些图,需处理"只有图无标签"的配对断裂;
- 中文路径/编码:在部分环境下 XML 的编码声明与实际不符,解析时显式指定 UTF-8。
5.7 TFDS 使用中的注意点
用 tfds.load('bccd') 时应注意:返回的 label 已按 TFDS 约定映射为整数,类别名顺序须以 TFDS 的 ClassLabel 元数据为准(不要想当然按 RBC/WBC/Platelets 假设);图像张量形状为 (480, 640, 3),与原始 640×480 是"高×宽"的转置表达。若你的模型期望特定输入尺寸,需自行 resize。
5.8 VOC → COCO 的字段级映射
若需把 BCCD 转为 COCO 格式(用于 MMDetection、Detectron2、COCO API 等),关键是"一图一 XML → 单 JSON"的字段映射。下表给出可直接对照的映射关系:
| VOC 字段 | COCO 字段 | 说明 |
|---|---|---|
<filename> |
images[].file_name |
图像文件名,作为关联主键 |
<size><width>/<height> |
images[].width / .height |
恒为 640 / 480 |
| (文件名去扩展) | images[].id |
需自建整数 id 映射 |
<name> |
categories[].name |
RBC / WBC / Platelets 三值 |
| (类别排序) | categories[].id |
常约定 1/2/3 或 0/1/2,须与训练配置一致 |
<bndbox> xmin/ymin/xmax/ymax |
annotations[].bbox [x, y, w, h] |
COCO bbox 为左上角 + 宽高,w=xmax−xmin、h=ymax−ymin |
| (计数) | annotations[].id |
全局唯一,通常 1…4888 |
| (图像 id) | annotations[].image_id |
回指 images id |
| (类别 id) | annotations[].category_id |
回指 categories id |
| — | annotations[].area |
建议 = w×h,供 COCO 评估使用 |
| — | annotations[].iscrowd |
全部置 0(BCCD 无 crowd 标注) |
三条易错点:(a)COCO 的 bbox 是 xywh 而非 VOC 的 xyxy,直接搬会导致框整体偏移;(b)categories[].id 未必从 0 开始,许多框架要求 id 连续,需显式约定并与代码一致;(c)images[].id 与 annotations[].image_id 必须严格对应,否则评估时会静默丢样例。
5.9 主流检测框架的接入清单
BCCD 因格式通用,几乎可接入所有主流检测框架。下表汇总常见框架的接入路径与注意点:
| 框架 | 数据入口 | 注意点 |
|---|---|---|
| TensorFlow / TFDS | tfds.load('bccd') |
最省心;label 为整数,类别顺序以 ClassLabel 元数据为准(§5.7) |
| YOLOv5 / v8(Ultralytics) | YOLO txt(每图一行 cls cx cy w h) |
需写 data.yaml;类别映射与单复数核对(§5.6) |
| MMDetection | COCO JSON | 用 §5.8 映射;配 num_classes=3 |
| Detectron2 | COCO JSON | 注册数据集 + 类别名注册;注意 bbox 格式 |
| torchvision(Faster R-CNN/RetinaNet) | 自定义 Dataset 解析 VOC | 直接读 XML,返回 target dict(boxes/labels) |
| 自研 PyTorch 管线 | VOC XML 或 YOLO txt | 注意坐标越界 clip(§5.6) |
共性建议:无论用哪个框架,都应先跑一次"加载后统计框数 = 4,888、逐类计数不变"的断言(§5.5),把转换正确性作为前置门槛,而不是等到模型不收敛才回头查数据。
5.10 评估脚本的四个必要检查
写 BCCD 的评估脚本时,以下四项检查能挡掉绝大多数"看似模型差其实是评估错"的坑:
- 类别对齐检查:预测的类别索引与真值的类别索引必须用同一映射表;BCCD 三类若一处用 0/1/2、另一处用 1/2/3,会得到荒谬的低 mAP。
- 图像尺寸检查:BCCD 恒为 640×480,若评估时又做了一次 resize 而真值未同步缩放,IoU 会普遍偏低(§5.7 的 (480,640,3) 转置也在此列)。
- 空预测 vs 无真值检查:某些图可能不含某少见类(§3.10),评估器需正确处理"该类该图为空"的情形,避免除零或假阴/假阳计数错位。
- 口径一致性检查:mAP@0.5 与 mAP@0.5:0.95 不可混用对比;报告时明确所用 IoU 阈值与是否按类拆分(§7.6)。
这四项本质上是把"§5.5 可复现三原则"落到评估环节。做到后,BCCD 上的结果至少在自洽性上站得住脚。
§6 获取与许可:全库最宽松的入口之一
6.1 许可:MIT 意味着什么
BCCD 采用 MIT License,许可证原文署 “Copyright © 2017 shenggan”。MIT 是宽松型(permissive)许可,授予使用者:
- 商用:可将 BCCD 用于商业产品与闭源流水线;
- 修改:可改造图像、重标、再训练;
- 再分发:可转载、打包、镜像。
唯一义务是保留版权声明与许可文本。这在医学影像数据集里相当罕见——本库多数数据集(PANDA、CoNSeP 等)带 CC BY-NC 类非商用限制或请求制。因此 BCCD 常被选作"可以放心商用与再分发的入门基准"。
注意:MIT 只覆盖 BCCD 本体。第三方镜像(Kaggle/Roboflow)可能在平台条款下附加约束;商用前若走镜像获取,建议回 GitHub 主仓核对原始许可文本(坑 6)。
6.2 五个获取入口
| 入口 | 地址 | 特点 |
|---|---|---|
| GitHub 主仓 | github.com/Shenggan/BCCD_Dataset | 权威原始,master 直下 |
| TensorFlow Datasets | tensorflow.org/datasets/catalog/bccd | 一行加载,自动校验 |
| Kaggle | 社区镜像 | 需账号,可能二次处理 |
| Roboflow | Universe BCCD 工作区 | 多格式导出 + 增强 |
| Dataset Ninja | 可视化浏览 | 统计与转换 |
主仓直下命令示例:
curl -L -o bccd.tar.gz https://github.com/Shenggan/BCCD_Dataset/archive/refs/heads/master.tar.gz
6.3 AI-Ready 评估:干净许可 + 标准格式的典范
从 AI-Ready 视角看,BCCD 的可获取性是本库中最高的档次之一:公开直链 + 宽松许可 + 通用格式,三项齐备。相比之下,它的短板在元数据与文档——没有论文、没有数据卡(dataset card)、没有版本号、没有明确的标注协议说明。因此它适合"拿来即用",但不适合作为"需要严谨引用的临床研究主数据"。这一"获取易、文档薄"的组合,正是它作为教学与原型数据集广受欢迎、而较少作为医学结论唯一依据的原因。
6.4 与库内可获取性光谱的对照
- 比它更"开放"的极少:MIT + 直链是顶格;多数同类只有 CC BY-NC 或请求制。
- 比它"更规范"的很多:本库中带完整论文、数据卡、版本谱系的数据集(如 medmnist 的系统化文档、pannuke 的分割协议)在可追溯性上远超 BCCD。
- 定位差异:BCCD 属于"基础设施型入门集",追求的是接入成本最低;规范研究型数据集追求的是可复现与可审计。两者是不同用途的互补,非优劣之分(§7.3)。
6.5 商业使用的合规清单
若将 BCCD 用于商业产品,建议核验:(a)保留版权声明——在发行物中包含 “Copyright © 2017 shenggan” 与 MIT 许可全文;(b)溯源确认——BCCD 图像源自 cosmicad/akshaylamba 的公开素材,MIT 覆盖的是 BCCD 的整理与标注,若对上游素材的许可另有要求应一并确认;(c)镜像条款——若经 Kaggle/Roboflow 获取,回 GitHub 核对原始 MIT 文本,避免以平台条款替代本体许可。总体上,MIT 为商业使用扫清了主要障碍,是本库中最不需要法务沟通的数据集之一。
6.6 无网环境下的获取
BCCD 体积极小(约 7 MB),非常适合离线分发:一次下载 master 压缩包即可长期保存,无需像大数据集那样依赖在线流式读取。这对教学机房、内网训练环境尤为友好——拷贝一个几兆的文件即可让全班跑通检测基线。
6.7 与请求制数据集的对照
把 BCCD 与 panda-plus 这类"请求制"数据集对照,差异一目了然:panda-plus 的核心掩码需邮件申请、有用途与机构门槛,BCCD 则"点开即得"。这一对照正说明本库 AI-Ready 光谱的两端——一端是高门槛高价值,另一端是零门槛够用。研究者在选数据时,应据任务对"严谨性"与"上手速度"的权重要求,在这条光谱上择位(§6.3)。
6.8 许可与"上游素材"的边界
MIT 是 BCCD 本体的许可,但严格说,它覆盖的是 shenggan 对图像的整理与标注(§2.9)。若使用者对"图像本身的来源合法性"有更高要求(如用于敏感商业场景),规范做法是:
- 回溯上游:查看 cosmicad 与 akshaylamba 原始仓库的许可状态;
- 保留全部署名:在发行物中同时保留 BCCD 的 MIT 声明与其上游贡献者信息(§6.5);
- 记录判断:把"为何认为可用于目标场景"的理由写入内部文档,以备审计。
对多数教学、研究与非敏感商业用途,MIT 已足够;上述步骤主要针对合规要求较高的场景。
6.9 五个入口的选择建议
面对 §6.2 的五个入口,如何选?给一份决策建议:
| 你的目标 | 推荐入口 | 理由 |
|---|---|---|
| 要权威原始、用于正式引用 | GitHub 主仓 | 一手来源,硬数字以此为准 |
| 要最快跑通训练 | TensorFlow Datasets | 一行加载、自动校验 |
| 要现成 YOLO/COCO 格式 | Roboflow Universe | 多格式一键导出 |
| 要在笔记本里浏览浏览 | Dataset Ninja | 可视化与统计 |
| 要 Kaggle 生态内做实验 | Kaggle 镜像 | 与 Notebook 集成 |
通用原则:无论用哪个入口,引用硬数字时都回 GitHub master 口径(364/4,888),并记录你实际使用的入口与日期(§6.2、附录 T)。
6.10 与请求制数据集对照的实操含义
§6.7 指出 BCCD 属"零门槛够用"一端。这一差异在实操中意味着:
- 无等待:不需要填表、等审批、签协议,当天即可开始实验;
- 无用途限制:MIT 允许商用,无需为"能否用于产品"单独沟通法务;
- 无配额:可无限次下载与再分发,适合教学批量分发(§6.6);
- 代价是元数据薄:省去的"申请流程"里,往往也包含了数据卡、标注协议与版本管理(§6.3)。
换句话说,BCCD 用"元数据的薄弱"换来了"获取的极致便利"——这正是它在本库 AI-Ready 光谱上占据独特位置的原因。
§7 生态与评估:被采用出来的影响力
7.1 下游衍生数据集
BCCD 最直接的影响力体现在"被派生":
- CBC 数据集(Alam & Islam 2019,Healthcare Technology Letters 6(4):103-108,doi 10.1049/htl.2018.5098):从 BCCD 图像派生的白细胞分类子集,剔除个别问题文件后用于白细胞亚型分类研究。这是 BCCD 最著名的一次"再标注升级"。
- TXL-PBC(arXiv 2407.13214):保留 BCCD 364 张中的 160 张,转为 YOLO 格式(约 18,143 条标签),划分 882/252/126,面向血小板/血细胞检测。
- Roboflow 工作区:社区在其上做多种格式与增强版本,是"衍生镜像"的最大聚集地。
这些衍生品的共同点是:它们都在 BCCD 的"检测框 + 三分类"基础上,或换分类任务、或换格式、或换划分——印证了 BCCD 作为基础素材的地位。
7.2 评估数字:可引用但要带口径警示
大量论文在 BCCD 上报告检测性能。集中列出若干有出处的结果(均非 BCCD 官方基准):
| 方法 | 来源 | 结果口径 |
|---|---|---|
| YOLOv5 | journal.ubaya.ac.id | 全类 mAP@0.5 93.8%;RBC 89.9%、WBC 99.4% |
| NBCDC-YOLOv8 | IET Computer Vision,doi 10.1049/cvi2.12341 | mAP@0.5 0.947 |
| 多策略主动学习 YOLOv5 | IEEE Access,doi 10.1109/ACCESS.2025.3579918 | BCCD 上 mAP@0.5 86.7% |
| Zhao/Cheng/Ma 2022 | IEEE EEBDA,doi 10.1109/EEBDA53927.2022.9744842 | 346 张子集,mAP 0.96,推理 16 ms |
| MFDS-DETR 论文基准表 | arXiv 2401.00926,Table 5 | Faster R-CNN 61.0 / SSD 55.8 / RetinaNet 54.0 / DETR 63.6 / Deformable DETR 59.0 / MFDS-DETR 63.7(AP 口径) |
关键警示:BCCD 没有官方 leaderboard 或固定测试服务器。上表各行的划分、指标定义与训练配置很可能不同,数字之间不可直接横向比较。例如同一"YOLOv5"在 BCCD 上可以报 93.8% mAP@0.5,也可以在 MFDS-DETR 论文的 AP 口径下报低得多——差异来自口径而非方法优劣(坑 7)。
7.3 框架收录:TFDS 是影响力的放大器
BCCD 进入 TensorFlow Datasets 官方目录,是它从"一个 GitHub 仓库"升级为"生态基础设施"的关键一步。TFDS 收录意味着:全球任何用 TF/TFDS 的研究者都可以一行 tfds.load('bccd') 拿到标准格式数据,无需关心原始仓库的 VOC 解析。与本库中同样被框架收录的 medmnist 类似,这种"框架内置"地位显著放大了数据集的复用率与可见度。
7.4 在血细胞/细胞学数据集景观中的位置
把 BCCD 放进"血细胞与细胞学图像"的坐标系:
- 同域外周血类:acevedo-blood(外周血细胞检测/分类,本库 rid 722)、raabin-wbc(白细胞,同 cycle 编写、独立数据集)——BCCD 是其中最经典、许可最宽松、规模最小的。
- 血涂片疾病类:nih-malaria(疟疾血涂片,本库 rid 502)——同属"血涂片显微图像",任务从检测/计数转为感染细胞识别。
- 细胞学分类类:herlev-pap(483)、sipakmed(490)——宫颈细胞学,与 BCCD 共享"细胞级显微图像分类"的问题结构。
- 核分割类:pannuke(218)、consep(228)——提供像素级核分割,是 BCCD"只有框"的直接对照。
在这个景观里,BCCD 的独特生态位是"最易上手的血细胞检测入门集":它不追求最大规模或最高标注质量,而以许可、格式与可获得性取胜(§7.5)。
7.5 生态影响力的三个来源
总结 BCCD 为何"小而不倒":其一,先发——2017 年即公开,早于多数血细胞检测数据集;其二,易用——VOC 格式 + MIT + TFDS 收录,接入成本近乎为零;其三,被引用惯性——大量入门教程、课程与原型论文以它为例,形成自我强化的引用网络。它是一份"因为好用所以有名"的数据集。
7.6 评估协议的建议
若要在 BCCD 上做可被他人复现的评估,建议固定以下协议并完整披露:(a)划分——采用官方 205/87/72,或明确声明自定义划分;(b)指标——报告 mAP@0.5 与 mAP@0.5:0.95,并按类拆分(RBC/WBC/Platelets);(c)预处理——输入尺寸、归一化、增强策略;(d)IoU 阈值——检测匹配阈值。缺任一项,结果的可比性都会大打折扣(§4.7、坑 7)。
7.7 计数任务的下游扩展
尽管 BCCD 不含计数真值,它仍被用于计数方法的开发与验证:研究者把检测框数按类聚合成"每图细胞数",再与人工计数对照,或评估计数误差随密度的变化。这类扩展任务的关键风险是重叠与漏标在密集图上被放大成计数偏差,故常需引入去重、密度回归等后处理。BCCD 在此扮演的是"受控测试场",而非计数金标准。
7.8 与血常规临床应用的距离
从"检测框"到"临床血常规报告"之间隔着数道工程与法规门槛:标准化涂片制备、视野体积标定、参考区间、质量控制与医疗器械认证。BCCD 只覆盖最前端的一小块(细胞检测),把它与临床计数直接挂钩会严重高估其适用性。规范的表述是:BCCD 可用于开发与验证检测算法,其输出需经额外标定与验证才能进入临床计数流程(§4.5、坑 5)。
7.9 引用策略:三种场景的规范写法
BCCD 的引用是使用中最容易出错的一环。按用途分三种场景:
- 作为数据来源引用:使用官方推荐
@dataset(年份双口径见坑 2/§2.2),作者串为shenggan and Nicolas Chen and cosmicad and akshaylamba,URL 指向 GitHub 仓库。不要编造期刊或会议出处(坑 1)。 - 作为方法对标引用:若你引用的指标来自某篇论文,应引该论文,而非把论文的结果标为"BCCD 官方基准";同时注明该论文的划分与指标口径(§7.2、坑 7)。
- 作为下游衍生引用:若使用 CBC 或 TXL-PBC,应引其各自的出处(CBC: doi 10.1049/htl.2018.5098;TXL-PBC: arXiv 2407.13214),并说明它派生自 BCCD(§4.12)。
三种场景的共同纪律是:谁的工作引谁,不把上游数据与下游结果混为一谈。
7.10 抗"年份混淆"的操作清单
BCCD 的年份是本条目最易踩的引用坑之一(坑 2)。为避免混淆,建议按以下清单操作:
- 写条文正文时:用"2017 年发布"(首发提交 + MIT 版权年一致)。
- 写 BibTeX/引用串时:照官方
year={2018}原样,不自作主张改年。 - 若两种口径在同一文档出现:显式加一句说明"首发 2017 / 引用串署 2018",避免读者误以为笔误。
- 与 TFDS 元数据核对时:其记 2017,与正文口径一致,可作佐证。
- 不要因为看到 2018 就断言"有两个 BCCD"——是同一数据集的双口径,非两个版本。
7.11 生态影响力的可量化侧面
除定性描述(§7.5),BCCD 的影响力还可从几个可量化侧面观察:
- 框架收录:进入 TensorFlow Datasets 官方目录,使全球 TF 生态用户可一行加载(§7.3)。
- 下游派生数量:至少两个有出处的公开衍生(CBC、TXL-PBC),另有 Roboflow 社区大量镜像(§7.1)。
- 论文引用广度:从方法论文(MFDS-DETR、NBCDC-YOLOv8)到应用论文(主动学习、EEBDA)均以其为实验数据(§7.2),说明它跨越了"方法验证"与"任务应用"两类用途。
- 教学渗透:大量入门教程与课程以 BCCD 为例演示检测管线,形成持续的使用惯性。
这些侧面共同解释了"364 张的小数据集为何长期活跃"——它的价值不在规模,而在极低的接入摩擦。
7.12 相似数据集的选择树
当研究者带着具体需求来找血细胞数据时,可按以下选择树定位:
- 要"框 + 三分类 + 最快上手" → BCCD(本条目)。
- 要"白细胞亚型分类" → acevedo-blood(本库 rid 722)或 raabin-wbc(生态同类)。
- 要"像素级核分割" → PanNuke(rid 218)/ CoNSeP(rid 228)。
- 要"血涂片疾病识别" → nih-malaria(rid 502)。
- 要"细胞学(非血液)分类" → herlev-pap(rid 483)/ SIPaKMeD(rid 490)。
- 要"框架内置的通用医学基准" → MedMNIST(rid 716)。
这张树的意义是把 BCCD 放回它的生态位:它是入口节点,几乎所有相邻需求都有对应的"下一步"数据集(§8.5)。理解这一点,比孤立地评价"BCCD 好不好"更有用。
§8 与库内条目的关系
8.1 家族图谱
- acevedo-blood(rid 722):最贴切的同域互链。同样是外周血细胞检测/分类数据集,可作"检测前端(BCCD)—分类细化(acevedo)"配对参考。
- nih-malaria(rid 502):同属血涂片显微图像;一个做血细胞检测计数,一个做疟疾感染识别,共享"血涂片视觉分析"的应用语境。
- herlev-pap(rid 483)/ SIPaKMeD(rid 490):细胞学显微图像分类的经典基准,与 BCCD 同处"细胞级图像 + 公开 + 教学友好"生态位,是跨器官(血液 vs 宫颈)的方法对照。
- PanNuke(rid 218)/ CoNSeP(rid 228):核实例分割基准,恰好是 BCCD"只有框、无掩码"的升级对照——凡研究涉及细胞轮廓时,从 BCCD 转向此二者。
- MedMNIST(rid 716):同被框架收录的"标准接口型"数据集,是"框架内置 → 高复用率"这一生态逻辑的平行案例。
- CDetector(rid 849):少样本宫颈细胞检测基准,与 BCCD 在"细胞检测"任务上同构,且同为检测范式(框),可作病灶/细胞检测的方法互参。
8.2 检索与引用路径建议
- 检索词组合:“BCCD”(精确)+ “blood cell” + “object detection”;仓库名 “BCCD_Dataset” 可精确定位 GitHub。
- 要数据:GitHub master → TFDS
tfds.load('bccd')→ Roboflow(需格式转换时)。 - 要引用:引 GitHub 仓库
@dataset(年份双口径见坑 3);需要论文级引用时引下游代表作 CBC(doi 10.1049/htl.2018.5098)。 - 要基线数字:优先引你所用划分下的复现结果,并注明"BCCD 无官方基准,跨论文不可横比"(坑 7)。
- 要白细胞亚型/分割:明确 BCCD 不适用,改道 acevedo-blood / pannuke / consep(§3.6)。
8.3 跨任务互链矩阵
| 库内条目 | rid | 关系轴 | 一句话区分 |
|---|---|---|---|
| acevedo-blood | 722 | 同域外周血 | 检测/分类对照,BCCD 为检测入门、acevedo 更细 |
| nih-malaria | 502 | 同血涂片 | 一为血细胞检测,一为疟疾感染识别 |
| herlev-pap | 483 | 细胞学分类 | 跨器官对照(血液 vs 宫颈) |
| sipakmed | 490 | 细胞学分类 | 同上,宫颈细胞五类 |
| pannuke | 218 | 核分割 | BCCD"有框无掩码"的升级对照 |
| consep | 228 | 核分割 | 结直肠核实例分割基准 |
| medmnist | 716 | 框架内置 | "标准接口型数据集"平行案例 |
| cdetector | 849 | 细胞检测 | 少样本宫颈细胞检测,检测范式同构 |
8.4 检索者路线图
- 入门者:读 §1 十问 → §5 接入 → 直接
tfds.load('bccd')跑基线。 - 方法研究者:读 §3 硬数字 + §4 划分/质量 → 在官方划分上复现并对比。
- 数据集工程:读 §2 身份 + §6 许可 + 附录 B DAIMS,作为"轻量基础设施型数据集"的样本。
- 临床相关者:读 §4.5 与 §7.8,明确 BCCD 与临床计数之间的距离。
8.5 家族定位结论
在"血细胞—细胞学—核分割—框架内置"四条互链轴中,BCCD 处于入口与枢纽位置:它是进入血细胞检测的第一站,也是通往更精细分类(acevedo/herlev)、更细粒度分割(pannuke/consep)与更规范框架数据(medmnist)的起点。它的价值不在深度,而在接入宽度。
8.6 互链的三种实操场景
互链不只是"列出相关条目",在实际使用中有三种落地方式:
- 方法迁移:把在 BCCD 上验证的检测管线(如 YOLO 系列)迁到 cdetector(rid 849,少样本宫颈细胞检测)上——同为"框检测",架构可直接复用,只需换数据集与类别数(§5.9)。
- 任务升级:当研究从"检测"走向"分割",从 BCCD 转向 pannuke(rid 218)/ consep(rid 228)——须把框标注替换为掩码标注,评估指标也从 mAP 换为 IoU/Dice(§3.6)。
- 生态论据:在写"数据集生态"类研究时,把 BCCD 与 medmnist(rid 716)并置,作为"框架内置 → 高复用率"逻辑的两个平行案例(§7.3)。
这三种场景对应研究者从"用数据"到"用数据讲方法"再到"用数据讲生态"的递进。
8.7 与 raabin-wbc 的互链待办
本库同 cycle 的 raabin-wbc(白细胞数据集)目前尚未入库,因此本条目只能将它列为外部生态提及(§2.7),无法挂 rid。待办:若 raabin-wbc 后续入库,应在 §8.1 家族图谱与 §11.2 关联条目导航中补一条库内互链,并把两者关系从"生态同类"升级为"库内互链"(§9 附录 K 维护触发点亦记此项)。
8.8 跨库检索的推荐词表
为便于在本库内定位相邻条目,给出一张检索词对照:
| 想找什么 | 检索词 |
|---|---|
| 血细胞检测 | BCCD、blood cell、detection、血涂片 |
| 白细胞专项 | raabin-wbc、WBC、leukocyte |
| 核分割 | pannuke、consep、nuclei、instance segmentation |
| 细胞学分类 | herlev-pap、sipakmed、cytology |
| 框架内置基准 | medmnist、TFDS、framework |
| 血液疾病 | nih-malaria、malaria、blood smear |
这张词表的价值在于:当你不确定"该找哪个数据集"时,先用需求词在库内检索,再沿命中的条目进入其互链(§7.12 选择树)。
§9 避坑清单:七个已踩过的坑
坑 1:BCCD 没有原始论文。它是 GitHub 仓库形式发布的社区数据集,不存在"BCCD 数据集论文"。任何声称其"发表于某期刊"的说法都是误记;正式引用应引仓库(@dataset)或其下游代表作 CBC。
坑 2:citation 年份署 2018,首发实为 2017。官方 @dataset 引用串写 year={2018},而 GitHub 首次提交(2017-12-07)与 MIT 版权年(2017)均为 2017。本条目以 2017 为发布年,引用时须注明双口径,避免"同一年份两种说法"的困惑。
坑 3:规模数字以 GitHub master 为准。github master 独立重数 = 364 图 / 364 XML / 4,888 框(RBC 4,155 / WBC 372 / Platelets 361);TFDS 与镜像可能有重编码导致的体积差异(7.15 MiB vs 7.51 MiB),但图像数与框数三源一致。引用硬数字时回 master 口径。
坑 4:压缩体积口径不同不等于数据不同。GitHub tarball 7,495,829 B(≈7.15 MiB)与 TFDS 记 download 7.51 MiB / dataset 7.34 MiB 的差异来自打包与图像重编码,不是图像数量差异。不要据此推断"两个版本数据集不同"。
坑 5:它叫 Count 但不提供计数。BCCD 只给检测框,不含计数结果、不含患者级/体积标定元数据。把它当"血常规计数数据集"用会误导——从框到临床计数需自行处理重叠、漏标与视场标定(§4.5)。
坑 6:MIT 只覆盖本体,镜像另有条款。BCCD 本体是 MIT(可商用),但 Kaggle/Roboflow 等镜像受平台条款约束。商用前应回 GitHub 核对原始许可文本,勿以镜像页面为准。
坑 7:无官方基准,跨论文数字不可横比。BCCD 没有 leaderboard 或固定测试服务器;同一方法在不同论文可报出差异很大的 mAP(口径、划分、预处理各异)。引用任何 BCCD 指标时须标明划分与指标定义,禁止把不同论文的数字直接对比(§7.2)。
§10 总结
10.1 三句话总结
- BCCD 是 364 张血涂片、4,888 个 VOC 框的红细胞/白细胞/血小板三分类目标检测数据集,MIT 许可、GitHub 开源、被 TensorFlow Datasets 官方收录。
- 它没有论文、没有挑战赛、规模很小,却因"许可宽松 + 格式通用 + 框架内置"成为血细胞检测与医学图像检测入门的事实标准。
- 用它要记住三条边界:不是分割集、不是临床计数集、没有官方基准——按"检测前端 / 教学原型"定位使用最稳妥。
10.2 适合谁
- 医学图像目标检测的入门者与教学者:最低接入成本的公开血细胞检测集。
- 需要可商用、可再分发训练数据的团队:MIT 是其核心吸引力。
- 血细胞检测方法的快速原型验证:VOC/TFDS 双入口,几分钟即可跑通基线。
- 数据集工程与 AI-Ready 研究:一份"获取易、文档薄"的典型样本。
10.3 不适合谁
- 需要像素级细胞分割的项目(改用 PanNuke / CoNSeP)。
- 需要白细胞亚型(五分类)的项目(改用 acevedo-blood 等)。
- 需要临床血常规数值或患者级分析的项目(BCCD 无此类信息)。
- 需要大规模训练集或严谨引用体系的临床研究(364 张 + 无论文,均不满足)。
10.4 30 秒决策卡
| 你的情况 | 行动 |
|---|---|
| 想立刻跑通一个血细胞检测基线 | tfds.load('bccd') 或 GitHub 直下 master(§6.2) |
| 要商用或再分发训练数据 | 直接用:MIT 许可,保留版权声明即可(§6.1) |
| 要引用 BCCD | 引 GitHub @dataset(年份双口径,坑 2)+ 下游 CBC 论文 |
| 要报 BCCD 检测指标 | 标明划分与指标口径,禁止跨论文横比(坑 7) |
| 要白细胞亚型/细胞分割 | BCCD 不适用,改道 acevedo-blood / pannuke / consep(§3.6) |
| 要写数据集综述 | §3 硬数字表 + §7 景观定位 + 附录可整段引用 |
10.5 一句话记住 BCCD
如果只能记住一句话:BCCD 是"364 张血涂片、4,888 个框、MIT 许可、TFDS 一行加载"的血细胞检测入门集——它用最低的接入成本,换来了最多的引用。
10.6 使用 BCCD 的"三要三不要"
三要:
- 要带抓取时点引用硬数字(364/4,888 非版本化,§2.6、附录 T);
- 要按类拆开报告指标,尤其单独交代 WBC 与 Platelets(§3.4、§3.11);
- 要声明划分与口径,采用官方 205/87/72 或明确说明自定义(§7.6)。
三不要:
- 不要把它当临床计数金标准(它只有框、无标定,§4.5、坑 5);
- 不要跨论文横比 mAP(BCCD 无官方基准,§7.2、坑 7);
- 不要伪造数据集论文出处(它没有原始论文,§2.1、坑 1)。
这三条"要"与"不要",覆盖了使用 BCCD 时绝大多数会出问题的地方。把它当作一张随身核对卡,可以避开本条目罗列的大部分坑。
§11 导航与延伸
11.1 本条目章节导航
| 章节 | 主题 | 直达要点 |
|---|---|---|
| §0 | 导读 | 解决什么问题、三则读法 |
| §1 | 速览十问 | 规模/格式/许可/划分一张表说清 |
| §2 | 身份与来源 | 无论文事实、年份双口径、血缘(§2.9-2.11 血缘链与机制) |
| §3 | 数据构成 | 364/4,888 硬数字、类别不均衡、边界(§3.10-3.12 分布拆解与误读澄清) |
| §4 | 标注与划分 | VOC 结构、205/87/72、质量争议(§4.10-4.12 抽检协议与重标注差异) |
| §5 | 格式与接入 | VOC→YOLO/COCO、TFDS 一行加载(§5.8-5.10 字段映射、框架清单、评估检查) |
| §6 | 获取与许可 | MIT 含义、五入口、AI-Ready 评估(§6.8-6.10 上游边界与入口选择) |
| §7 | 生态与评估 | 衍生数据集、指标口径警示、景观定位(§7.9-7.12 引用策略与选择树) |
| §8 | 库内关系 | 家族图谱与检索路径(§8.6-8.8 互链实操) |
| §9 | 避坑清单 | 七个坑 |
| §10 | 总结 | 三句话、适合/不适合、决策卡(§10.5-10.6 一句话记忆与三要三不要) |
| §11 | 导航 | 本表 + 关联条目导航 |
| FAQ | 高频问答 | Q1–Q36(Q25–Q36 为接管补充) |
| 附录 A–W | 速查与工具 | A 速查卡、B DAIMS、C 证据链、…、Q 打印版、R 复现清单、S 报错排查、T 快照模板、U 补充索引、V 对比表、W 术语补遗 |
11.2 关联条目导航
- 同域外周血:acevedo-blood(722)、raabin-wbc(同 cycle,尚未入库)
- 血涂片疾病:nih-malaria(502)
- 细胞学分类:herlev-pap(483)、SIPaKMeD(490)
- 核实例分割:PanNuke(218)、CoNSeP(228)
- 框架内置型:MedMNIST(716)、CDetector(849)
FAQ(高频问答)
Q1:BCCD 有论文吗?
没有原始数据集论文。它是 GitHub 社区项目;引用请引仓库或其下游代表作 CBC(Alam & Islam 2019)。
Q2:364 张会不会太少?
对本任务(血细胞检测)而言规模确实小,但 BCCD 的定位是入门与原型,配数据增强或迁移学习仍可训练可用模型;追求规模的应另寻更大血细胞数据集。
Q3:能商用吗?
能。MIT 许可允许商用、修改与再分发,只需保留版权与许可声明(§6.1)。
Q4:为什么不同论文的 mAP 差这么多?
BCCD 无官方基准,划分、指标定义与预处理各不相同(§7.2、坑 7),数字不可直接横比。
Q5:BCCD 能直接给出红细胞/白细胞计数吗?
不能。它只给检测框,计数需下游自行换算,且受重叠/漏标影响(§4.5、坑 5)。
Q6:Platelets 还是 Platelet?
标签为 Platelets(复数)。转换类别映射时须与所用镜像核对,避免单复数不一致导致的类别错位。
Q7:BCCD 的图像可以随意商用吗?
可以(MIT),但需保留版权与许可声明,并在经镜像获取时回 GitHub 核对原始条款(§6.5、坑 6)。
Q8:我需要患者信息,BCCD 有吗?
没有。BCCD 是细胞级数据集,无任何患者 ID、性别、年龄或诊断信息(§3.6)。
Q9:BCCD 支持分割训练吗?
不支持。它只有矩形框,无像素掩码;分割需改用 PanNuke/CoNSeP 等。
Q10:为什么说它是"基础设施型"数据集?
因为它靠标准化接口(VOC + TFDS)被生态广泛接入,而非靠比赛或排名吸引使用(§2.4、§7.3)。
Q11:BCCD 的 test 集有多少张,能改吗?
官方 test 72 张。你可以自定义划分,但必须声明,否则结果与采用官方划分的报告不可比(§4.7)。
Q12:用 BCCD 训练的模型能迁移到别的血细胞数据集吗?
可以作预训练起点,但要注意域差异(成像设备、染色、分辨率)与类别体系差异,通常需再微调。
Q13:BCCD 与 raabin-wbc 谁更大?
raabin-wbc 聚焦白细胞、规模更大、带亚型信息;BCCD 更小、只三类、但许可与接入更简单。二者互补(§2.7)。
Q14:BCCD 有标注者间一致性数据吗?
没有公开数据。这本身就是其元数据薄弱的一条证据(§4.6)。
Q15:我能把 BCCD 上传到我自己的仓库吗?
可以。MIT 允许再分发,保留版权与许可声明即可;但建议注明来源仓库,避免他人误认原创。
Q16:BCCD 里有没有重复图像?
上游素材可能含少量相似图,官方未提供去重清单;若有去重需求需自行处理(§4.3)。
Q17:TFDS 的 bccd 与 GitHub 的 BCCD 是同一份吗?
是同一份数据的两种分发:划分一致(205/87/72),仅体积因重编码略异(§3.1)。
Q18:BCCD 适合做目标检测的 benchmark 吗?
可作入门基准,但因规模小、无官方服务器、标注存疑,不适合作为权威 benchmark(§7.2、坑 7)。
Q19:我想引用 BCCD 的具体框数,怎么写?
写"364 张图像、4,888 个边界框(RBC 4,155 / WBC 372 / Platelets 361)",并注明数据来自 GitHub master 抓取时点。
Q20:BCCD 有中文名吗?
没有官方中文名。可译作"血细胞计数与检测数据集",但学术引用应使用英文原名与仓库名。
Q21:它的图像是同一个放大倍率吗?
无元数据可考,无法确认倍率一致性——这是它不能用于严格形态学比较的原因之一。
Q22:BCCD 能用于联邦学习或隐私研究吗?
由于其无患者信息、纯图像,不存在隐私问题,可作为非隐私基线;但它也不提供联邦场景所需的机构标签。
Q23:为什么有论文在 BCCD 上报很高的 mAP?
因划分/口径/预处理不同,且 BCCD 无官方评测约束,高数字须结合协议解读,不可横比(坑 7)。
Q24:我在哪里能核对 BCCD 的许可原文?
仓库根目录 LICENSE 文件(见附录 L URL 清单)。
Q25:BCCD 的 4,888 个框能直接当细胞数用吗?
不能严格等同。框数是标注计数,重叠框与漏标使它与真实细胞数存在偏差;规范表述是"4,888 个边界框"(§3.12、§4.3)。
Q26:为什么说 BCCD 是"入口节点"?
因为它处于血细胞检测生态的起点,几乎所有相邻需求(亚型分类、核分割、疾病识别)都能从它出发指向更专门的数据集(§7.12、§8.5)。
Q27:BCCD 能不能做实例分割?
不能。它只提供矩形框,无掩码。要做分割需换 PanNuke/CoNSeP,或自行基于框生成弱掩码(效果有限)(§3.6)。
Q28:不同论文用了不同划分,我该跟哪个?
若要与论文对齐,先确认该论文所用的划分与口径,再照其复现;若只自用,建议采用官方 205/87/72 并明确声明(§4.7、§7.6)。
Q29:BCCD 的图像有重复或近乎重复的吗?
官方未提供去重清单,上游素材可能含少量相似图;若有去重需求须自行处理并记录(§4.3、Q16)。
Q30:我想用 BCCD 训练后迁移到临床数据,可行吗?
可作预训练起点,但存在域差异(染色、设备、分辨率)与类别体系差异,且 BCCD 无患者/倍率元数据,迁移后务必在目标域重新验证(§7.8、Q12)。
Q31:BCCD 的 test 集只有 72 张,评估可信吗?
72 张的绝对量偏小,且图间差异大,单次 mAP 波动可能较大;建议多次运行给区间,或交叉验证(§3.11、§7.6)。
Q32:类别极度不平衡,训练时最该做什么?
优先"按类分开评估",再考虑损失加权或对含少类图过采样;不要只看总体 mAP(§4.8、§3.10)。
Q33:BCCD 的框坐标是绝对像素还是归一化值?
VOC XML 中为绝对像素整数;转 YOLO 时才归一化,转 COCO 时用 xywh(§5.1、§5.8)。
Q34:我可以只取 BCCD 的红细胞做单类检测吗?
可以(MIT 允许改造),但那就不是"用 BCCD 原设定",引用时应说明你做了子集/改类(§4.12)。
Q35:BCCD 未来会扩容或有官方版本号吗?
截至抓取时点为持续维护式发布、无显式 semver,是否扩容无官方承诺;引用时带抓取时点即可(§2.6、§3.12)。
Q36:哪里能一键可视化检查 BCCD 的框?
可用 Dataset Ninja 的可视化浏览,或自行用 Python 画框叠加图;后者更可控,适合抽检(§4.11、附录 S)。
附录 A:条目信息速查卡
| 项 | 值 |
|---|---|
| 条目名 | BCCD |
| url_name | bccd |
| 类型 | 目标检测数据集(细胞级) |
| 发布 | GitHub Shenggan/BCCD_Dataset,2017-12-07 首发 |
| 维护者 | shenggan 等(个人/社区,无机构) |
| 规模 | 364 图 / 364 XML / 4,888 框 |
| 类别 | RBC 4,155 / WBC 372 / Platelets 361 |
| 划分 | train 205 / val 87 / test 72 |
| 许可 | MIT License(Copyright © 2017 shenggan) |
| 抓取时点 | 2026-10-04 |
| 库内互链 | acevedo-blood(722)/nih-malaria(502)/herlev-pap(483)/sipakmed(490)/pannuke(218)/consep(228)/medmnist(716)/cdetector(849) |
附录 B:DAIMS 评估全表
| 维度 | 评分(1-10) | 依据 |
|---|---|---|
| D 可发现性 | 9 | GitHub 主仓 + TFDS 官方目录 + Kaggle/Roboflow/Dataset Ninja 多入口,检索极易命中 |
| A 可获取性 | 10 | 公开直链 + MIT 许可 + TFDS 一行加载,无注册、无请求制、无付费——本库顶格 |
| I 可互操作 | 9 | PASCAL VOC 通用格式 + TFDS/COCO/YOLO 多格式转换;仅缺官方 COCO JSON 与原图元数据 |
| M 元数据质量 | 5 | 最大短板:无论文、无数据卡、无版本号、无标注协议、无患者/成像元数据 |
| S 可持续性 | 8 | GitHub 长期托管 + TFDS 收录 + 大量镜像,单点风险低;但无正式版本发布机制 |
| 综合评级 | 8.2/10(优) | 可获取性与可发现性突出(MIT+框架收录),元数据薄弱拖累——典型"基础设施型入门集" |
附录 C:逐项证据链自证
| 关键数字 | 来源 | 位置 |
|---|---|---|
| 364 图 / 364 XML / 4,888 框 | GitHub master tarball 独立重数 | 实抓 2026-10-04 |
| RBC 4,155 / WBC 372 / Platelets 361 | 同上逐类 <object> 计数 |
实抓 2026-10-04 |
| 划分 train 205 / val 87 / test 72 | 仓库 ImageSets/Main + TFDS 目录 | 双源互证 |
| 图像 640×480 / RGB | 仓库图像规格 + TFDS image shape (480,640,3) | 双源互证 |
| MIT License(Copyright 2017) | 仓库 LICENSE 原文 | 实抓 |
| 首发 2017-12-07 | GitHub 提交历史 | 实抓 |
| citation year 2018 | 官方 @dataset 引用串 |
双口径存照 |
| TFDS 体积 7.51/7.34 MiB | TensorFlow Datasets 目录页 | 实抓 |
| 下游 CBC(360 图衍生) | Alam & Islam 2019,doi 10.1049/htl.2018.5098 | 论文 |
| 下游 TXL-PBC(保留 160 张) | arXiv 2407.13214 | 论文 |
| YOLOv5 全类 mAP@0.5 93.8% | journal.ubaya.ac.id | 论文 |
| NBCDC-YOLOv8 mAP@0.5 0.947 | doi 10.1049/cvi2.12341 | 论文 |
| MFDS-DETR 基准表 | arXiv 2401.00926 Table 5 | 论文 |
附录 D:数据获取决策树
需求是什么?
├── 只想跑通检测基线
│ └── tfds.load('bccd')(一行,划分 205/87/72)
├── 想要原始 VOC 文件
│ └── GitHub master.tar.gz(364 图 + 364 XML)
├── 想要 YOLO/COCO 格式
│ └── Roboflow Universe 导出(注意镜像可能重划分)
├── 只想引用 BCCD
│ └── 引 @dataset(年份双口径)+ 下游 CBC 论文
└── 需要亚型/分割/临床计数
└── BCCD 不适用 → acevedo-blood / pannuke / consep(§3.6)
附录 E:文件与标注字典
| 字段/路径 | 类型 | 取值域 | 语义 |
|---|---|---|---|
| JPEGImages/*.jpg | Image | 640×480 RGB | 血涂片图像 |
| Annotations/*.xml | VOC XML | — | 对应图像的标注 |
| object/name | string | RBC / WBC / Platelets | 细胞类别 |
| object/bndbox | int×4 | xmin,ymin,xmax,ymax | 绝对像素边界框 |
| size/width,height | int | 640 / 480 | 图像尺寸 |
| ImageSets/Main/train.txt | list | 205 行 | 训练集 id |
| ImageSets/Main/val.txt | list | 87 行 | 验证集 id |
| ImageSets/Main/test.txt | list | 72 行 | 测试集 id |
附录 F:检索路径示范(关键词组合)
| 目标 | 推荐查询式 | 预期命中 |
|---|---|---|
| 主仓 | site:github.com Shenggan BCCD_Dataset | GitHub 仓库 |
| 官方目录 | tensorflow datasets bccd | TFDS catalog/bccd |
| 引用串 | “BCCD” “Blood Cell Count and Detection” citation | @dataset BibTeX |
| 下游论文 | “BCCD” AND (“blood cell” OR “WBC”) AND “YOLO” | 多篇检测论文 |
| 衍生集 | CBC dataset Alam Islam blood cell | Healthcare Technology Letters |
| 反例(勿用) | “BCCD dataset paper” | 无原始论文命中(坑 1) |
附录 G:常见任务与推荐做法
| 任务 | 是否适用 BCCD | 推荐做法 |
|---|---|---|
| 血细胞目标检测 | ✅ 适用 | 官方划分 + VOC/YOLO,按类报告指标 |
| 血细胞计数估计 | ⚠ 需后处理 | 检测框→按类计数,注意重叠/漏标(§7.7) |
| 白细胞亚型分类 | ❌ 不适用 | 改用 acevedo-blood 等带亚型标签数据集 |
| 细胞实例分割 | ❌ 不适用 | 改用 PanNuke / CoNSeP |
| 临床血常规诊断 | ❌ 不适用 | BCCD 无患者/检验数值信息 |
| 检测模型教学入门 | ✅ 最优 | TFDS 一行加载,体量小、格式标准 |
| 数据增强/半监督研究 | ✅ 适用 | 小规模 + 干净许可,适合受控实验 |
附录 H:加载与转换代码骨架
# 方式一:TensorFlow Datasets 直接加载
import tensorflow_datasets as tfds
ds, info = tfds.load("bccd", split="train", with_info=True)
# info.features 给出 ClassLabel 映射;图像张量形状 (480, 640, 3)
# 方式二:解析 VOC XML
import xml.etree.ElementTree as ET
tree = ET.parse("Annotations/BloodImage_00000.xml")
for obj in tree.getroot().findall("object"):
name = obj.find("name").text # RBC / WBC / Platelets
box = obj.find("bndbox")
xmin = int(box.find("xmin").text); ymin = int(box.find("ymin").text)
xmax = int(box.find("xmax").text); ymax = int(box.find("ymax").text)
# 方式三:VOC → YOLO 归一化
W, H = 640, 480
cls = {"RBC": 0, "WBC": 1, "Platelets": 2}[name]
cx = (xmin + xmax) / 2 / W; cy = (ymin + ymax) / 2 / H
w = (xmax - xmin) / W; h = (ymax - ymin) / H
print(f"{cls} {cx:.6f} {cy:.6f} {w:.6f} {h:.6f}")
附录 I:与其它血细胞数据集对照
| 数据集 | 规模 | 任务 | 类别 | 许可 | 备注 |
|---|---|---|---|---|---|
| BCCD | 364 图 / 4,888 框 | 检测 | RBC/WBC/Platelets | MIT | 本条目 |
| acevedo-blood | 外周血细胞 | 检测/分类 | 血细胞类型 | 见本库 722 | 同域更细 |
| nih-malaria | 血涂片 | 二分类 | 感染/未感染 | 见本库 502 | 疟疾识别 |
| CBC(衍生) | BCCD 子集 | 分类 | 白细胞亚型 | 见原论文 | BCCD 下游 |
| TXL-PBC(衍生) | 保留 BCCD 160 图 | 检测 | 血细胞/血小板 | 见 arXiv 2407.13214 | YOLO 格式 |
| herlev-pap | 宫颈细胞 | 分类 | 多类 | 见本库 483 | 跨器官 |
附录 J:关键概念小词典
| 术语 | 英文 | 含义 |
|---|---|---|
| 血涂片 | blood smear | 将血液涂布于载玻片并染色后供镜检的样本 |
| 红细胞 | RBC / erythrocyte | 数量最多,携带氧气 |
| 白细胞 | WBC / leukocyte | 免疫细胞,BCCD 中不细分亚型 |
| 血小板 | platelet | 参与凝血,体积小、检测难 |
| VOC 格式 | PASCAL VOC XML | 目标检测通用标注格式,含 bndbox |
| mAP | mean Average Precision | 检测常用指标,需注明 IoU 阈值 |
| 类别不平衡 | class imbalance | BCCD 中 RBC 占 85% 的核心特征 |
附录 K:维护触发点
| 触发事件 | 影响 | 动作 |
|---|---|---|
| 仓库发布官方修正标注 | 标注质量争议消解 | 更新 §4.3、附录 B/C |
| 出现 BCCD 原始论文 | "无论文"事实改变 | 更新 §2、附 citation |
| raabin-wbc 入库 | 库内互链补齐 | 增 §8 互链与 relatedLink |
| TFDS 更新划分/版本 | 划分一致性变化 | 更新 §4.2、附录 C |
| 下游新 SOTA | 生态数字更新 | 更新 §7.2 表 |
附录 L:来源 URL 清单
- GitHub 主仓:https://github.com/Shenggan/BCCD_Dataset
- master 压缩包:https://github.com/Shenggan/BCCD_Dataset/archive/refs/heads/master.tar.gz
- TensorFlow Datasets:https://www.tensorflow.org/datasets/catalog/bccd
- LICENSE(MIT):https://github.com/Shenggan/BCCD_Dataset/blob/master/LICENSE
- CBC 论文:https://doi.org/10.1049/htl.2018.5098
- TXL-PBC:https://arxiv.org/abs/2407.13214
- MFDS-DETR:https://arxiv.org/abs/2401.00926
- NBCDC-YOLOv8:https://doi.org/10.1049/cvi2.12341
- 上游图像源:https://github.com/cosmicad/dataset、https://github.com/akshaylamba/all_CELL_data
附录 M:术语与缩写总表
| 缩写 | 全称 | 中文 |
|---|---|---|
| BCCD | Blood Cell Count and Detection | 血细胞计数与检测 |
| RBC | Red Blood Cell | 红细胞 |
| WBC | White Blood Cell | 白细胞 |
| PLT | Platelet | 血小板 |
| CBC | Complete Blood Count(临床)/ CBC dataset(本域下游数据集) | 血常规 / CBC 数据集 |
| VOC | Visual Object Classes | 视觉目标类别(标注格式) |
| COCO | Common Objects in Context | 通用目标检测标注格式 |
| YOLO | You Only Look Once | 单阶段检测器系列 |
| TFDS | TensorFlow Datasets | 框架官方数据集库 |
| mAP | mean Average Precision | 平均精度均值 |
| IoU | Intersection over Union | 交并比 |
附录 N:检测模型在 BCCD 上的适配要点
| 模型族 | 输入格式 | BCCD 适配要点 |
|---|---|---|
| YOLO 系列 | YOLO txt | 需 VOC→YOLO 转换,注意类别顺序与坐标 clip |
| Faster R-CNN | VOC/COCO | 直接吃 VOC 或转 COCO JSON |
| SSD / RetinaNet | COCO | 转 COCO,注意小目标(血小板)漏检 |
| DETR / Deformable DETR | COCO | 需较长训练,类别不平衡下 WBC/Platelets 更敏感 |
| 两阶段 vs 单阶段 | — | BCCD 小目标多,单阶段在速度上有优势,两阶段在精确率上常更稳 |
附录 O:数据质量核查清单(使用前自检)
- 框数核对:转换后总框数应为 4,888,逐类 RBC 4,155 / WBC 372 / Platelets 361;
- 图像—标注配对:364 图对 364 XML,无孤儿文件;
- 划分核对:train 205 / val 87 / test 72;
- 类别标签:确认
Platelets拼写与映射; - 坐标范围:无越界框(clip 后校验);
- 分辨率:全部 640×480;
- 抽检:随机 30-50 张人工复核重叠/漏标(§4.9)。
附录 P:引用模板
@dataset{BCCD,
author = {shenggan and Nicolas Chen and cosmicad and akshaylamba},
title = {BCCD: Blood Cell Count and Detection},
year = {2018},
url = {https://github.com/Shenggan/BCCD_Dataset}
}
若需论文级引用(因 BCCD 无原始论文),可引其下游代表作:
@article{alam2019cbc,
title = {White blood cell classification},
journal = {Healthcare Technology Letters},
volume = {6}, number = {4}, pages = {103--108}, year = {2019},
doi = {10.1049/htl.2018.5098}
}
附录 Q:一页速查(打印版)
- 是什么:血涂片血细胞目标检测数据集(RBC/WBC/Platelets 三类边界框)。
- 规模:364 图 / 364 XML / 4,888 框(4,155 / 372 / 361)。
- 规格:640×480 RGB JPEG;VOC XML。
- 划分:205 / 87 / 72。
- 许可:MIT(可商用)。
- 获取:GitHub 直下 /
tfds.load('bccd')/ Kaggle / Roboflow。 - 三个坑:无论文、叫 Count 但不计数、无官方基准不可横比。
- 定位:血细胞检测的入门与基础设施型数据集。
附录 R:复现实验清单(从下载到出指标)
一份从零到出指标的检查清单,按序执行即可得到可复现的 BCCD 基线:
- [ ] 1. 获取:
curl -L -o bccd.tar.gz https://github.com/Shenggan/BCCD_Dataset/archive/refs/heads/master.tar.gz,记录下载日期与文件字节数。 - [ ] 2. 校验规模:解压后统计 JPEG 数(应 364)、XML 数(应 364)、逐类
<object>数(应 4155 / 372 / 361,合计 4888)。 - [ ] 3. 划分确认:读
ImageSets/Main,核对 train 205 / val 87 / test 72 / trainval 292。 - [ ] 4. 格式转换:按目标框架转 YOLO 或 COCO(§5.1、§5.8),转换后再断言一次框数不变(§5.5)。
- [ ] 5. 类别映射冻结:把
RBC/WBC/Platelets → id的映射写成常量并写入配置,避免运行期歧义。 - [ ] 6. 训练:固定随机种子;记录输入尺寸、增强、优化器、epoch。
- [ ] 7. 评估:报告 mAP@0.5 与 mAP@0.5:0.95,并按类拆分(RBC/WBC/Platelets)。
- [ ] 8. 复现声明:在结果旁注明划分来源、指标口径、预处理与抓取时点(§7.6)。
- [ ] 9. 留档:保存脚本版本与源快照日期,便于他人复跑。
这条清单的每一项都对应本条目前文的一个"坑"或"建议"——把它当作把知识落地的操作版。
附录 S:常见报错与排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 训练 loss 不下降 | 类别索引错位 / 坐标未归一化 | 核对类别映射;YOLO 需归一化到 [0,1](§5.1) |
| 血小板类 mAP 接近 0 | 类别名写成 Platelet(漏 s) |
与镜像核对标签原文(§5.6) |
| 框整体偏移 | VOC xyxy 直接当 COCO xywh | 转 w=xmax−xmin、h=ymax−ymin(§5.8) |
| 评估 mAP 异常低 | 预测与真值类别映射不一致 | 用同一映射表(§5.10) |
| 图像张量形状对不上 | TFDS 返回 (480,640,3) 为高×宽 | 需要时转置/reshape(§5.7) |
| XML 解析乱码 | 编码声明与实际不符 | 显式指定 UTF-8 解析(§5.6) |
| 边框越界报警 | xmax/ymax 触及图像边界 | 归一化后 clip 到 [0,1](§5.6) |
附录 T:版本与快照记录模板
由于 BCCD 无显式版本号(§2.6),每次使用都建议填写如下快照记录,附于实验日志:
数据集:BCCD(Blood Cell Count and Detection)
获取入口:GitHub master / TFDS / Kaggle / Roboflow(勾选其一)
抓取日期:YYYY-MM-DD
tarball 字节数:7,495,829(如经镜像请另记)
图像数:364 XML 数:364 总框数:4,888
逐类:RBC 4,155 / WBC 372 / Platelets 361
划分:train 205 / val 87 / test 72
许可:MIT(Copyright (c) 2017 shenggan)
备注:是否做过二次处理(去重/重划分/重命名)
这份模板把"不可追溯"的风险降到最低——即便日后仓库内容变动,凭此记录仍可说明当时所用为何。
附录 U:本条目补充章节索引(接管版)
为便于检索,接管补充的章节位置如下:
| 章节 | 标题 | 主题 |
|---|---|---|
| §3.10 | 类别占比的量化拆解 | 分布表 + 三条结论 |
| §3.11 | 每图实例数方差的工程含义 | 采样/评估/可视化影响 |
| §3.12 | 规模数字的常见误读与澄清 | 五条误读逐一澄清 |
| §4.10 | 标注工作量的粗略估算 | 规模上限推断 |
| §4.11 | 使用前的标注抽检协议 | 可落地五步 |
| §4.12 | 原始标注与下游重标注的差异 | 版本对照表 |
| §5.8 | VOC → COCO 的字段级映射 | 映射表 + 三易错点 |
| §5.9 | 主流检测框架的接入清单 | 六框架对照 |
| §5.10 | 评估脚本的四个必要检查 | 自洽性门槛 |
| §7.9 | 引用策略:三种场景 | 规范写法 |
| §7.10 | 抗"年份混淆"操作清单 | 双口径处理 |
| §7.11 | 生态影响力的可量化侧面 | 四个侧面 |
| §7.12 | 相似数据集的选择树 | 六分支定位 |
附录 V:BCCD 与相近数据集逐项对比
下表把 BCCD 与本库/生态中若干相近数据集逐项对照,便于选型:
| 数据集 | 任务 | 类别/粒度 | 规模 | 许可 | 本库 rid |
|---|---|---|---|---|---|
| BCCD | 检测 | 3 类血细胞(框) | 364 图 / 4,888 框 | MIT | 本条目 |
| acevedo-blood | 检测/分类 | 外周血细胞 | 中等 | 见其条目 | 722 |
| nih-malaria | 分类 | 疟疾感染血涂片 | 中等 | 见其条目 | 502 |
| herlev-pap | 分类 | 宫颈细胞 | 中等 | 见其条目 | 483 |
| sipakmed | 分类 | 宫颈细胞五类 | 中等 | 见其条目 | 490 |
| pannuke | 分割 | 核实例(掩码) | 大 | 见其条目 | 218 |
| consep | 分割 | 结直肠核实例 | 中等 | 见其条目 | 228 |
| medmnist | 分类 | 多任务通用医学基准 | 大(多子集) | 见其条目 | 716 |
| cdetector | 检测 | 少样本宫颈细胞 | 小 | 见其条目 | 849 |
读表要点:BCCD 的独特组合是"检测 + 三类 + 极小规模 + 最宽松许可"。凡需求落在"分割"或"多类分类"上,都应沿表向右寻找更专门的条目(§7.12)。
附录 W:术语补遗
针对本条目补充章节中出现、而未在前文术语表(附录 M)列出的名词,作简明解释:
- 分层采样(stratified sampling):按某种属性(此处为每图框数或是否含少类)分层后再抽样/组批,以缓解不均衡。
- 右偏分布(right-skewed):多数样本集中在低值、少数样本拖长高值尾部的分布形态(此处指每图实例数)。
- 空图/空类实例:某张图不含某类实例的情形;评估时须正确处理该类为空的分母(§5.10)。
- 抓取时点(snapshot date):对无版本号数据集记录"何时获取"的时间标记,用于回溯(§2.6、附录 T)。
- 双口径(dual-caliber):同一事实有两种并存表述(此处指发布年 2017 vs 引用串 2018),条目须并存注明(§2.2、坑 2)。
- 接入摩擦(integration friction):把数据集接进流程所需的成本(格式转换、申请、许可沟通等);BCCD 的摩擦极低(§7.11)。
这些术语在本条目中反复出现,理解它们有助于准确理解"为什么 BCCD 的定位是入门型基础设施数据集"。
尾注
本条目为 AI-Ready Wikipedia 数据集条目,生产于 2026-10-04,抓取与核验时点见附录 A。事实陈述以 GitHub Shenggan/BCCD_Dataset master 实抓独立重数、TensorFlow Datasets 官方目录与多篇下游论文为源;年份双口径、体积口径差异、标注质量争议等均已在前文与附录 C 存照。条目与库内 acevedo-blood(722)、nih-malaria(502)、herlev-pap(483)、SIPaKMeD(490)、PanNuke(218)、CoNSeP(228)、MedMNIST(716)、CDetector(849)等条目互链,构成"血细胞—细胞学—核分割—框架内置"的完整检索面。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- cdetector — 共享标签:医学影像 / 目标检测 / 病理图像 / 评测基准
- livecell — 共享标签:医学影像 / 目标检测 / 病理图像 / 评测基准
- cephalometric-isbi — 共享标签:医学影像 / 目标检测 / 评测基准
- bbbc — 共享标签:医学影像 / 病理图像 / 评测基准
- kpis — 共享标签:医学影像 / 目标检测 / 病理图像 / 评测基准
- midog — 共享标签:医学影像 / 目标检测 / 病理图像
- 3dteethland — 共享标签:医学影像 / 目标检测 / 评测基准
- acevedo-blood — 共享标签:医学影像 / 病理图像 / 评测基准
- bbbc051 — 共享标签:医学影像 / 病理图像 / 评测基准
- cariesxrays — 共享标签:医学影像 / 目标检测 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

