AcuSim — 合成渲染的颈颅部 174 穴位定位数据集

用 Blender+DAZ 造 504 个合成人体、渲 63,936 张 1024×1024 RGB-D 图、以体积球标注 174 个颈颅穴位——为中医穴位自动定位开辟一条不依赖真人照片的规模化路径

来源 Dryad 数据包 acuSim.zip(13.04 GB,含 63,936 张 1024² 渲染图、JSON 标注、map.txt 穴位表、四个脚本与 README)+ 论文补充材料发布时间: 2026-10-17最后更新: 2026-10-20 阅读 26
AcuSim — 合成渲染的颈颅部 174 穴位定位数据集

信息速览

数据集名称AcuSim — 合成渲染的颈颅部 174 穴位定位数据集
数据类型合成数据,影像数据,人工标注
规模0 名真实受试者(504 个合成人体模型、14 个基础身份;3 名中医专家参与标注核验)
接入方式Dryad 数据包 acuSim.zip(13.04 GB,含 63,936 张 1024² 渲染图、JSON 标注、map.txt 穴位表、四个脚本与 README)+ 论文补充材料
AI 就绪度

INFOBOX — AcuSim 一屏速览

维度 内容
本质 合成数据:三维软件渲染的颈颅部穴位定位数据集,不含任何真实人体照片
团队 西交利物浦大学(XJTLU)先进技术学院 + 苏州市中医医院针灸科
论文 Sci Data 12, 625 (2025),doi:10.1038/s41597-025-04934-9;2025-04-15 上线
规模 504 个合成人体模型 × 144 视角 = 63,936 张 1024×1024 RGB-D 渲染图
标注 174 个颈颅部体积式穴位,合计 1,100 万+ 条标注;穴位为体积球而非二维点
训练/验证 57,600 / 6,336(90% / 10%)
建模工具 Blender 3.5 渲染 + DAZ Studio 人物 morph;Blender 3.6 LTS 亦可
验证模型 VGG19(卷积冻结)+ 4 层全连接 + 9 个经络多任务头
核心指标 坐标准确率 99.73%(5 mm≈18.5 px);与 3 名专家对照 92.86% 落在阈值内
获取 Dryad 数据包 13.04 GB(DOI 直链);代码在 GitHub
许可 三口径:Dryad CC0 1.0|GitHub CC BY 4.0|论文 CC BY-NC-ND 4.0
同批区分 与真实照片集 body-acupoint-images 不是同一资源:本条目全部图像为渲染合成
库内互链 tcm-tongue(舌诊)、mtcmb(中医多任务基准)、simcol3d(仿真三维内窥)、slice-3d(真实三维照相皮损)

AcuSim 解决的是一个很具体、也很尴尬的问题:穴位定位需要海量图像,而穴位标注只能靠专家一针一针标。真人颈颅部照片涉及隐私、伦理与设备成本,公开可用的穴位数据集此前最多只有两三万条标注;而针灸临床上要求定位误差小于 5 mm,这个精度又不是随便标几万张就能达到的。AcuSim 的解法是把整条生产线搬进三维软件:用 DAZ Studio 的 Genesis 人体做 504 个不同体型、发型、眼态的组合,用 Blender 从 144 个机位自动渲染,用发光的球体在渲染管线里直接生成穴位掩码,用两个亚裔外观模型上的专家标注为锚、把 174 个穴位自动吸附到其余所有模型上。结果是 63,936 张图、1,100 万+条标注,且不需要一位真实患者。

这条路的代价也很明确:所有图像都是合成的。真实皮肤的次表面散射、汗毛、光照噪声、相机抖动、真人头发的杂乱遮挡,渲染图里都没有;模型也未把年龄、肤色当作受控变量。因此本条目在正文里反复强调"合成"这个边界——它适合做算法原型、标注流水线验证、教学演示与合成数据方法学研究,不适合直接当作真实临床场景的性能证据。

导语读法三则:

  1. 只想判断能不能用:读 §10 避坑清单与 §11.4 决策卡,再看 §6 合成数据边界一节的"适用/不适用"两栏。
  2. 关心方法与工程:§3 自动标注流水线与 §4 坐标换算(1 mm≈3.7 px、5 mm≈18.5 px)是这套数据的骨架。
  3. 关心真伪辨析:§9 专门讨论"合成数据"与同批真实照片集 body-acupoint-images 的区分,避免把两者当成同一份资源引用。

§0 导读:这个数据集解决什么问题

中医针灸的疗效与取穴精度直接相关。文献与临床共识都把 5 mm 视作可接受的取穴误差上限——超过这个范围,针尖可能偏离目标穴位所在的组织层次。这个标准听起来不高,落到工程上却意味着:在一个 1024×1024 的画面里,模型输出的像素坐标误差要控制在约 18.5 像素以内。要训练出这样的模型,需要几十万乃至上百万条带穴位坐标的样本;而要得到这些样本,传统路径只有一条——请针灸专家在真人照片或三维扫描上手动标注。专家时间昂贵、标注一致性有限,且真人颈颅部图像天然涉及隐私。

论文在 Background 一节把这条困境说得很直白:现有穴位数据集规模都很小,Ji 等人只标了背部 4 个穴位(GV14、BL11、BL12、BL15),有团队用 Kinect v1 拍了 600 张手部 RGB-D 图(848×480),Sun 等人用 719 张上肢图像训练,另有工作只做了 654 张单视角图像的标注。这些数据集合计最多也只到约 2.8 万条标注,且大多只做二维定位、只覆盖结构相对简单的四肢。颈颅部解剖结构复杂、穴位密集、遮挡严重,恰恰是公开数据最空白的地方。

AcuSim 的思路是用可编程的三维世界替换不可控的现实世界:既然真人不方便规模化采集,就造 504 个合成人体;既然专家标注贵,就让专家只标两个基准模型,其余靠表面吸附自动传播;既然二维点无法表达"针尖扎进去多深",就把穴位定义成体积球,并在渲染时用发光材质直接切出掩码。三步之后,数据规模从"万"级跳到"六万图、千万标注"级,成本从"专家小时"降到"GPU 小时"。

§0 读法三则:

  1. 这不是"又一个穴位数据集",而是一条可复制的合成数据生产流水线的产物;数据本体与流水线脚本一同发布,后者可能比前者更有长期价值。
  2. 全文所有数字均出自论文正文、表格与 Dryad 元数据;论文内部存在若干口径不一致(92.86% 的分母、Spearman 相关系数、权重取值范围),已在 §10 逐条存照。
  3. 引用时务必带上"合成"二字。把 AcuSim 上的 99.73% 当作真实临床精度引用,是本条目最需要防的误用。

§1 数据集速览:十问十答

Q1:AcuSim 是什么?
一个用于"从单张图像定位人体颈颅部穴位"的合成数据集:504 个合成人体模型、63,936 张 1024×1024 渲染图、174 个体积式穴位、1,100 万+条标注,附带渲染、遮挡检测、数据加载与可视化四个脚本。

Q2:图像是真的还是假的?
全部是渲染生成的合成图像。论文题目里就写着 Synthetic,数据包内不含任何真实人体照片。这一点决定了它能做什么、不能做什么(§6)。

Q3:504 个模型是怎么组合出来的?
14 个基础身份(7 女 7 男)× 6 种发型(A–E 加光头 N)× 3 种体型(slim/medium/overweight)× 2 种眼态(睁/闭)= 504。这是一次典型的域随机化(domain randomization)设计:把可能影响穴位视觉外观的因素显式枚举。

Q4:63,936 张怎么来的?
504 × 144。每个模型组合从 4 个俯仰角(0°、30°、60°、−30°)各拍 36 个旋转角(每 10° 一张),合计 144 个机位。

Q5:174 个穴位覆盖哪里?
颈颅部(cervicocranial),包括头面、颈项。来源是作者前作中的合成标准人体模型——那套模型按 WHO 标准穴位定位与手指同身寸(finger-cun)方法标注了全身 361 穴、14 条经络,本数据集截取其中颈颅区域。

Q6:穴位是点还是球?
体积球。每个穴位是一个三维球体,一半在皮肤表面内、一半在外,这样既能表达"进针深度",也能在渲染时用发光通道切出像素级掩码。

Q7:标注文件里有什么?
每张图一个 JSON:穴位名称(经络缩写+序号+中文名)、二维屏幕坐标(百分比)、归一化深度 h、可见性权重 n,以及帧编号、包围盒、穴位法向量与相机法向量。被遮挡的穴位初始化为 (0, 0, h̃/2)。

Q8:验证效果如何?
用 VGG19 冻结卷积 + 四个全连接层 + 9 个经络级多任务头,训练 3,480 个 epoch。验证集坐标准确率 99.73%(阈值 5 mm≈18.5 px),最终 RMSE 稳定在 0.03–0.1 px。另请 3 名中医专家对 10 个模型的 13 个穴位人工标注,92.86% 的预测落在阈值内。

Q9:怎么获取?
Dryad 数据集 DOI 为 10.5061/dryad.zs7h44jkz,数据包 acuSim.zip 约 13.04 GB,含 README;四个脚本同包提供,GitHub 上另有镜像说明。下载免注册,但需注意 Dryad 的 API 文件接口需要令牌。

Q10:许可到底是什么?
三处口径不同:Dryad 元数据标 CC0 1.0,GitHub README 声明 CC BY 4.0,论文文本为 CC BY-NC-ND 4.0。稳妥做法是按最严格口径理解论文与图表,按 Dryad 口径理解数据包,商用前书面确认(§7)。

§2 数据构成与规格

2.1 规模硬数字

项目 数值 说明
合成人体模型 504 14 身份 × 6 发型 × 3 体型 × 2 眼态
每模型视角数 144 4 俯仰 × 36 旋转
渲染图像总数 63,936 504 × 144,1024×1024,16-bit 色深
训练集 57,600 90%
验证集 6,336 10%
标注穴位 174 颈颅部体积式穴位
标注总量 1,100 万+ 论文摘要表述
发光掩码 2048×2048 灰度白/黑像素二值分割
数据包体积 13,042,733,767 B Dryad API 实测,约 13.04 GB
附带文件 README.md 3,054 B 另有四个脚本

这些数字之间彼此自洽:504×144 恰好等于 63,936;63,936×0.9 = 57,542.4,论文写作 57.6k,实际取整数划分得到 57,600 与 6,336(57,600 + 6,336 = 63,936)。读者若在自己脚本里按 90/10 重新划分,得到的条目数会与论文略有出入,这是四舍五入口径而非数据缺失。

2.2 模型生成:域随机化做了什么、没做什么

504 个模型的变量是显式枚举的四种:性别与身份(14)、发型(6,含完全光头)、体型(3 档:slim、medium、overweight,按脂肪比例划分)、眼态(2)。论文强调体型的引入是为了模拟不同脂肪比例造成的穴位偏移——这一点在针灸学上是有依据的:穴位位置随身高、体重、脂肪分布变化,同身寸正是为消除这种个体差异而设的相对度量。

但论文同时明确写了一个重要限定:肤色属于身份属性,而非受控变量。也就是说,14 个基础身份各自带一个肤色,数据集并没有刻意覆盖从浅到深的完整肤色谱。此外,年龄维度完全缺失:数据集中只有成年人体型,没有儿童、老年、孕妇等特殊群体。作者也承认"这组模型并不代表整个人群",只是每个模型对应一个源自真实人体解剖数据的独特体型。

建模工艺上,团队没有走"高模雕刻→烘焙法线→低模渲染"的传统路径,而是直接在中等面数或细分低模上使用程序化纹理,配合基于权重的皮肤微法线贴图,在 Blender 与 DAZ Studio 中快速生成带细部特征的 504 张脸。这是一种工程取舍:牺牲部分微表面真实度,换取 504 个资产的产出速度。

2.3 解剖保真度的校验方式

合成数据最怕的是"看起来像人,量起来不像人"。论文对此只做了一层间接校验:计算基础模型的体围、身高与体积,按 BMI = (V×ρ)/Height² 求体重指数,其中 ρ 取人体平均密度 985 kg/m³,Height 取包围盒 z 轴上下界之差。结果落在真实人体生理范围内,作者据此认为解剖保真度得到佐证。

这个校验的强度需要读者自己判断:BMI 落在合理区间,只能说明模型的整体比例没有离谱,并不能证明颧弓、下颌角、胸锁乳突肌这些决定穴位位置的具体解剖标志与真人一致。论文 Limitations 一节也把"合成模型解剖精度的验证"列为第一项局限,并说明后续会补充视觉比对与专家评估。

2.4 文件命名与目录结构

Dryad 数据包解压后的结构(依 README):

dataset_root/
├── map.txt                 # 174 个穴位总表
├── train/
│   ├── image/img_512/      # 训练图像(*.png)
│   └── label/label/        # JSON 标注(*.json)
└── test/                   # 可选,结构同上

图像文件名形如 <性别>_<姓名>_<体型>_<发型>_<眼态>_<帧号>.jpg,例如 F_Brisen_F_HA_C_0141.jpg 表示女性 Brisen、体型 Fat、发型 A、闭眼、第 141 帧;M_Asher_N_HC_O_0001.jpg 表示男性 Asher、体型 Normal、发型 C、睁眼、第 1 帧。帧号与相机角度的对应关系是固定的:0001–0036 为俯仰 0°,0037–0072 为 30°,0073–0108 为 60°,0109–0144 为 −30°。

这里有一个需要留意的小矛盾:README 的目录示例写 img_512,而论文明确训练用的是 1024×1024。README 同时列出 64/128/256/512/1024 五种分辨率的子目录(img_<resolution>),因此更合理的理解是:多分辨率版本随包提供,论文评估只用 1024 版本。这一点未在论文中逐项说明,属遗留疑点(§10 坑点 6)。

2.5 与既有穴位数据集的位置关系

论文 Table 1 把 AcuSim 与既有工作逐项对照,结论是"规模、穴位数量、受试者数量、图像质量、定位技术五个维度全面领先"。这里不必复述表格,只需记住三个对比锚点:

  1. 数量级差异:既有数据集最多约 2.8 万条标注,AcuSim 是 1,100 万+。
  2. 区域差异:既有工作集中于手、上肢、面部正面,AcuSim 专攻颈颅部这一解剖复杂区。
  3. 真伪差异:既有工作是真实图像(小样本),AcuSim 是合成图像(大样本)。这不是简单的"更好",而是"另一条曲线上的点"——真实数据的域匹配优势与合成数据的规模优势,是两种不同的资产。

2.6 与同批真实照片集的边界(辨析预告)

库内同批次另有一条 body-acupoint-images(真实照片)。二者在名字上都指向"人体穴位图像",但资产性质完全不同:

维度 AcuSim(本条目) body-acupoint-images(同批,真实照片)
图像来源 三维软件渲染 相机拍摄的真实人体
规模 63,936 张(504 模型×144 机位) 以真实拍摄为准,规模小得多
标注方式 自动传播(2 个基准模型专家标注) 专家逐张标注
穴位表达 体积球、三维坐标 二维像素坐标
适合任务 算法原型、流水线验证、域适应研究 真实场景评测、微调
许可 三口径待核 以该条目本体为准

两者不可合并、不可互相替代。用 AcuSim 训练的模型若要声称临床可用,必须经真实照片集或真实临床图像验证;反过来,真实照片集的小样本也不足以替代 AcuSim 的规模化预训练价值。§9 会展开讨论如何在研究设计里把两者串起来。

§3 自动标注流水线:从两个模型到五百个模型

3.1 三段式工作流

论文把流水线拆成三个阶段,与常规标注流程(Fig 1a)的区别一眼可见:

  1. 合成数据生成:域随机化构建 504 个颈颅部模型,皮肤使用程序化纹理与微法线贴图。
  2. 自动标注:在三维空间中把 174 个穴位定义为体积球,按 WHO 标准定位与手指同身寸确定位置,渲染时同步输出发光掩码。
  3. 后处理:坐标换算(三维→二维屏幕百分比)、遮挡过滤、生成 JSON。

常规流程是"采集图像→专家标注→人工质检",瓶颈在人力;这套流程是"建模→定义几何→渲染+自动投影→自动过滤",瓶颈在算力与建模精度。作者把这条路径的价值总结为"可扩展(scalable)、可复制(reproducible)、可扩展到其他身体部位"。

3.2 体积式穴位标注

穴位不是屏幕上的一个点。论文明确把每个穴位定义为三维空间中的球体(Fig 1b),球心即穴位位置,球体被皮肤表面等分为内外两半。这样做有三个直接好处:

  • 可度量进针深度:球体跨越皮肤表面,天然携带深度信息;平面点无法表达"针尖应到达哪个组织层"。
  • 可渲染掩码:发光材质在渲染时生成掩码通道,球体在画面上的投影即为该穴位可见像素集合,阈值分割即可得到二值掩码。
  • 可自动传播:球体可作为一个整体吸附到网格表面,不必逐点重建。

174 个穴位的位置来源于作者前作中的合成标准人体模型(IEEE VR 2023,见 FACTS §3),该模型按 WHO 标准穴位定位资料与手指同身寸方法标注了全身 361 穴、14 条经络,并经医学专家指导。同身寸(cun)是中国传统取穴的相对度量:以患者拇指指间关节宽度为一寸,身体不同部位各有对应的"寸"标准,从而在不同体型的人身上保持穴位间的相对比例。

3.3 表面吸附:两个锚点如何传播到五百个模型

手工在 504 个模型上标 174 个穴位,需要 87,696 次放置——这显然不现实。论文的做法是:

  1. 在 14 个基础身份中选两个亚裔外观模型(一男一女),由专家完成 174 个穴位的完整标注,作为 ground truth 锚点。
  2. 对其余 502 个模型,使用计算机图形学中的表面原点吸附(surface-origin attachment)技术,把体积球自动贴附到网格表面:球心位置沿法线方向落位,球体被皮肤内外等分。
  3. 对每个穴位再做一次微调,使其沿运动轴对齐到人体网格最近的顶点,以吸收身高、肌肉、颧骨与脂肪厚度带来的个体差异。

第 3 步是关键。仅仅把穴位从锚点模型复制到目标模型,会因两个模型的体型差异产生系统性偏移;而"对齐到最近顶点"让穴位跟随目标模型自身的表面几何,相当于把解剖变异吸收进吸附过程。当然,这种传播仍以几何相似性为前提:若目标模型的颧骨形态与锚点差异过大,吸附后的位置是否仍然符合针灸学定义,论文没有做逐穴的专家复核,这属于方法上的已知薄弱点。

3.4 阈值分割:为什么不用 U-Net

论文在 Threshold Segmentation 一节专门解释了一个反直觉的选择:既然是像素级分割,为什么不用深度学习分割模型?

理由有三条,逻辑相当清楚:

  1. 穴位在图像里不可见。它不是肿瘤那种有明确像素纹理的目标,而是皮肤表面上的一个抽象位置。用分割网络去学"穴位的像素长什么样",本质上是让它学一件不存在的东西;这更像关键点检测,而不是图像分割。
  2. 渲染管线自带答案。既然三维场景是自己造的,穴位的屏幕位置在渲染时就已知,只需让穴位材质发光、把发光通道单独导出,就能得到像素级精确的掩码,且与主渲染同步完成、几乎零额外开销。
  3. 无训练数据依赖、边缘精确。发光掩码依赖材质物理属性而非预训练模型,在各种未见场景下表现一致;同时借用渲染器原生的抗锯齿与深度缓冲,透明、运动模糊等复杂情形的边缘也能保持像素精度。

具体实现上,每次渲染同时输出一张 2048×2048 的灰度掩码,白像素为穴位、黑像素为背景,随后与 RGB-D 图、穴位索引、名称、二维包围盒、深度与权重一起进入后处理。

3.5 遮挡过滤:两把尺子

合成模型的一大优势是可以精确知道"这个穴位在这一帧有没有被挡住"。论文用了两把尺子:

  • 几何尺:计算穴位法向量与相机法向量的夹角 θ,若其余弦值 ≥ 0(即穴位朝向背对或垂直于相机),判定为可能被遮挡或位于遮挡边界,剔除。Fig 4 以 DU18 与 DU22 为例展示了这两个角度 α、β 的判定过程。
  • 图像尺:在二维包围盒内检测白像素,用以剔除被头发、衣物或其他背景物体挡住的穴位。

两把尺子互补:几何尺处理自身曲面遮挡(头部转到背面),图像尺处理外部物体遮挡(发型遮住耳周)。被剔除的穴位并非从 JSON 中删除,而是以初始坐标 (0, 0, h̃/2) 保留,同时保留其经络类别,供训练时通过权重机制降权处理。

3.6 标注文件的字段设计

论文把标注分成两部分:

第一部分(逐帧几何信息):帧索引 ID、穴位包围盒 (x_max, y_max, x_min, y_min)、穴位在相机平面的投影坐标 (x, y)、该点到相机平面的距离、从穴位原点到最近网格的法向量、当前帧相机的法向量。

第二部分(语义信息):穴位全名与经络索引,在穴位检测完成后写入。

JSON 中每穴位两个键:name 记录经络索引、中文名与穴位序号;coordinate 为四元组 [x, y, n, h],其中 x、y 为百分比坐标,n 为当前帧权重(论文原文写为 −1 到 0 的浮点数),h 为相机到穴位的归一化距离(0 到 1)。

§4 坐标换算:1 毫米值几个像素

4.1 从世界坐标到屏幕百分比

论文给出了完整的坐标变换链,五步:

  1. 相机坐标系:P_cam = M_cam⁻¹ · P_world
  2. 归一化设备坐标:P_ndc = (P_cam.x / P_cam.z, P_cam.y / P_cam.z)
  3. 屏幕坐标:P_screen = ((P_ndc.x + 1) / 2, (P_ndc.y + 1) / 2)
  4. 仿射变换:P_T = (x_t, y_t) = (x’’ / ω, y’’ / ω),其中 [x’‘, y’‘, ω] = A · [x’, y’, 1]
  5. 最终结果以百分比形式输出

其中 A 为仿射变换矩阵,负责缩放与平移;M_cam 为相机世界变换矩阵。这套框架承担两个任务:把三维包围盒转成二维包围盒以生成准确标注;以及验证穴位像素位置是否落在可接受的误差范围内。

4.2 两个关键换算常数

换算 数值 用途
1 mm 对应的像素数 约 3.7 px(1024×1024) 把物理误差换算为像素误差
5 mm 误差阈值 18.5 px 判定预测是否"可接受"的阈值

这两个数的推导关系很直接:5 × 3.7 = 18.5。它们构成了全文所有"准确率"的分母定义——只有当预测点与真值点的欧氏距离不超过 18.5 像素时,该点才被计为"命中"。

4.3 准确率公式的细节

论文给出的准确率定义是分段函数:

Accuracy = 0                                       若 ||P_i - P̂_i||₂ > T_h
Accuracy = (T_h - ||P_i - P̂_i||₂) / T_h            若 ||P_i - P̂_i||₂ ≤ T_h

这意味着准确率不是简单的"命中率",而是带线性惩罚的软化命中:距离阈值越近,得分越接近 1;刚好落在阈值边界时得分为 0。因此"99.73% 准确率"这一表述,严格来说是"在 18.5 像素阈值内的加权命中率",而不是"99.73% 的点完全重合"。论文另有一处表述为"预测落在 5 mm 内的比例为 92.86%",那一处采用的是硬计数口径。两种口径在文中并存,读者引用时应说明取哪一种(§10 坑点 3)。

4.4 坐标换算为什么重要

在合成数据里,坐标换算是"标注是否可信"的唯一源泉。真人数据集的误差来自标注者手抖与屏幕点选精度;合成数据集的误差来自三维到二维投影的数值精度与渲染器参数。论文因此专门用一节推导变换矩阵,并强调该框架"验证了穴位放置的准确性与数据集整体的可靠性"。

对使用者而言,这节推导的实际价值在于:如果你要自己渲染新视角或新模型,必须复用同一套变换,否则像素坐标与 JSON 中的百分比将不再对齐。脚本中的 script.py 即是这套变换的实现载体。

§5 验证实验:VGG19 多任务模型

5.1 为什么选 VGG19

作者在 Technical Validation 一节解释了两个选择:

  • 任务性质决定架构:穴位识别需要捕捉细致纹理与面部特征,属于高维分类(穴位名称)+高精度回归(坐标)的混合任务,多层感知机式的灵活结构更合适。
  • 对比取舍:在 VGG19、ConvNeXt、ResNet 之间选了 VGG19,理由是更深的网络结构与更大的参数量更有利于精度与特征提取。

这个选择本身是有争议的:VGG19 参数多、推理慢,在 2025 年的文献中已不算主流;作者也在 Limitations 中承认只测了一种架构,未做 ConvNeXT、ResNet 的横向对比。因此本数据集的 99.73% 应理解为"在一种特定架构上的验证结果",而非数据集的性能上界。

5.2 网络结构

组件 配置
特征提取 ImageNet 预训练 VGG19,卷积层参数冻结
池化 平均池化,特征图调整为 4×4 后展平
全连接 5000 → 5000 → 2500 → 2500,每层 ReLU + dropout 0.5
多任务头 9 个头,按经络分组,每头含 1 个分类头 + 1 个回归头
分类任务 预测穴位名称(经络缩写+序号)
回归任务 预测坐标 (x, y, h̃)

9 个多任务头的设计值得单独说明。经络在中医理论中是穴位归属的组织方式,同一条经络上的穴位在解剖位置上具有连贯性。把任务按经络分组,等于给网络施加了一个结构先验:每个经络的特征可以独立学习与优化,共享层则负责提取通用面部特征。这是把领域知识嵌入网络结构的一个具体做法。

5.3 训练配置

  • 优化器 Adam,学习率 0.00075
  • 批大小 64;图像张量 (64, 1024, 1024, 3);穴位张量 (64, 522),即 174 穴 × 3 个坐标值
  • 权重与类别张量 (64, 174);预处理过滤器张量 (64, 522)
  • 坐标损失:欧氏距离 RMSE;名称损失:交叉熵
  • 梯度裁剪:最大范数 1.0,防梯度爆炸
  • 总训练轮数:3,480 epochs

张量维度里藏着一个设计细节:522 = 174 × 3,说明每个穴位无论可见与否都占三个坐标位;而权重张量是 174 维,每个穴位一个权重。这种"坐标全量保留、权重区分可见性"的扁平设计,让遮挡处理在数据层面而非模型层面完成。

5.4 可见性先验与损失降权

遮挡点被初始化为 (0, 0, h̃/2) 后,模型会倾向于把大量穴位预测到画面原点附近以减少损失,结果是非遮挡点的损失下降变慢。论文的解法是引入可见性先验:

  • 训练 300 epochs 之后,对坐标距原点小于 140 像素的不可见点,把损失权重降为 0.1。
  • 选 0.1 而非 0 或 1,理由是:设为 0 会完全切断这些点的梯度更新;设为 1 则让坐标本就不可靠的遮挡点与真实点同等重要。0.1 是"略大于 0 但显著小于 1"的经验平衡值。

这是一个典型的工程折中,其思路与目标检测中"忽略区域"的损失处理相通,但用连续权重而非硬掩码,避免了梯度断裂。

5.5 训练结果

指标 训练集 验证集
收敛 epoch(坐标) 约 800 约 1,250
初始 RMSE 93.04 px 97.33 px
收敛时 RMSE 0.756 px 0.630 px
末尾 RMSE 0.12–0.17 px 0.03–0.1 px
收敛时准确率 95.91% 96.59%(约 1,250 epoch)
末尾准确率 约 99.40% 99.73%

验证集在前 800 个 epoch 的准确率为 0%,原因是 18.5 像素阈值在早期过于严格,所有预测都不达标;曲线因此在平滑后显得收敛更晚。验证集还包含更多离群样本(如光头),损失曲线在训练后期有约 13 像素的波动,这是合成数据集中"最不像真人也最难"的一类样本带来的。

5.6 与专家标注的对照

论文邀请了 3 名中医专家,从验证集中随机抽取 10 个合成模型的渲染图,人工标注 13 个临床意义显著的颈颅部穴位。随后计算三类偏差:

  • 数据集-预测偏差:数据集坐标与模型预测之间的欧氏距离
  • 数据集-专家偏差:数据集坐标与专家标注之间的欧氏距离
  • 相机-体表朝向偏差:预测位置处法向量与相机、网格表面朝向的归一化差异

统计结果(双因素方差分析):

比较 模型主效应 穴位主效应
数据集-预测偏差 F(9,12)=0.504,p=0.869(不显著) F(9,12)=44.587,p<0.001(显著)
数据集-专家偏差 F(9,12)=1.202,p=0.302(不显著) F(9,12)=5.725,p<0.001(显著)
相机-体表朝向偏差 F(9,12)=0.545,p=0.838(不显著) F(9,12)=42.95,p<0.001(显著)

这组结果的含义是:换人(换模型)不影响精度,换穴位影响精度。换句话说,合成模型之间的个体差异没有给标注带来系统性偏差,而不同穴位因解剖复杂度不同(如 SI18 颧髎、SJ23 丝竹空)定位难度差异显著。这对数据集的可信度是正面证据,但也提示使用者:按穴位分层的性能报告比总体平均值更有意义。

偏差最大的案例:预测侧 SI18、SJ23 显著高于 DU29、LI20、RN24;专家侧 GB1(M_Novak 模型)与 LI20(M_Cormac 模型)偏差明显偏大。论文推测原因在于局部解剖复杂(更深组织层)或渲染图中更易被遮挡。

5.7 92.86% 这个数到底指什么

这是本条目最需要小心的一处口径问题。论文中有两种表述:

  1. 摘要与引言:“92.86% of predictions in validation set align within a 5 mm threshold of margin error when compared to expert-annotated data”——字面读作"验证集全部 6,336 张图上的预测"。
  2. 正文与 Fig 8:“The accuracy for the predicted acupoints falling within this threshold is 92.86%, which is identical to that of the expert-annotated data”——上下文是 10 个模型、13 个穴位的专家对照子集。

从计算可行性看,第二种解释更合理:3 名专家不可能对 6,336 张图全部标注。因此 92.86% 的分母应是 10 模型 × 13 穴位 = 130 个穴位标注的对照结果,而非全验证集。引用时应写"在 10 个模型的 13 个穴位专家对照子集中,92.86% 的预测落在 18.5 像素阈值内"。

另一处需要存照的是 Fig 8 的措辞"与专家标注数据相同(identical)“——这意味着模型预测与专家标注在阈值内的比例恰好相等,而不是两者逐点一致。这层区别在传播中极易被简化为"模型已达到专家水平”,读者需自行加注。

§6 合成数据边界:这篇条目必须说清的事

6.1 为什么单列一节

在本库的条目体系里,绝大多数医学影像数据集是真实采集的——CT 是扫描出来的,WSI 是切片扫描仪生成的,照片是相机拍的。AcuSim 不是。它的每一张图都由三维软件渲染产生,其中的"人"从未存在过。这不是瑕疵,而是设计选择;但如果不把这条边界说透,引用者极易把合成验证的结果当成临床证据。因此本节不做泛泛的"局限性"罗列,而是把适用与不适用两面都摆出来。

6.2 合成数据与真实数据的差异清单

差异维度 合成渲染图 真实颈颅部照片 对任务的影响
皮肤光学 程序化纹理 + 微法线贴图,近似次表面散射 真实次表面散射、毛孔、汗毛、油光 模型在真实图上易把汗毛/毛孔当纹理噪声
光照 渲染器布光,分布受控 室内外混合光、色温漂移、阴影复杂 跨域时颜色通道分布偏移明显
头发 6 种固定发型(含光头) 发量、长度、扎法千变万化 遮挡模式覆盖不足
表情与姿态 仅睁/闭眼两种状态,头部仅旋转与俯仰 表情、皱眉、咬肌收缩改变面部几何 表情导致的穴位位移未被覆盖
相机 虚拟机位,参数精确已知 镜头畸变、焦距变化、手机广角 真实图像的透视畸变未在训练中出现
解剖变异 504 种组合,但共享 14 个基础网格 个体差异连续分布 极端头型、术后改变未被覆盖
人群覆盖 肤色随身份固定,年龄仅成人 全年龄段、全肤色谱 老年、儿童、深肤色人群缺样本

论文 Limitations 一节对上述差异的自我表述相对克制:作者承认"合成模型的解剖精度验证"与"跨人群泛化能力"是两项主要局限,并给出了后续路线——用语义分割做环境统一、用 Stable Diffusion 模拟多样光照(内容适配),以及重新渲染以贴近真实摄影风格(风格迁移)。

6.3 适用场景

  • 算法原型验证:在真实数据尚未到位时,用大规模合成数据跑通关键点检测、多任务学习、遮挡鲁棒性等模块。这是 AcuSim 最稳妥的用途。
  • 标注流水线复用:论文发布的四个脚本可用于把同一套流程迁移到其他身体部位(作者本人也这样建议)。研究与教学价值高于数据本身。
  • 合成数据方法学研究:域随机化的变量设计(身份/发型/体型/眼态)、发光掩码分割、可见性先验损失,都是可独立引用的方法组件。
  • 教学与演示:三维穴位可视化、经络走向演示、取穴训练系统的前端素材。
  • 域适应研究的源域:把 AcuSim 当源域、把少量真实照片当目标域,做迁移学习实验,是有明确研究价值的设定。

6.4 不适用场景

  • 临床精度宣称:不能用 AcuSim 上的 99.73% 或 92.86% 声称"AI 取穴达到临床可用精度"。这些数字的分母是渲染图,不是患者。
  • 真实受试者研究的主要证据:任何涉及临床决策、疗效评价、医疗器械注册的研究,不能以合成数据结果作为主要证据链。
  • 替代真实照片集的评测:真实照片集中的肤色、光照、遮挡分布无法由渲染图替代;两者评测结果不可直接比较。
  • 特殊人群:儿童、老年、孕妇、头面部术后患者的穴位定位,本数据集无对应样本。
  • 全身穴位任务:仅覆盖颈颅部 174 穴,超出该区域的穴位任务不适用。

6.5 合成与真实如何串起来:一条推荐路径

若研究目标是"真实场景下的穴位定位",建议按四步走:

  1. 预训练:在 AcuSim 的 57,600 张训练图上预训练定位骨干,获得对穴位空间分布与经络结构的先验。
  2. 域适应:用真实照片集(如 body-acupoint-images)的少量样本做微调,或用论文建议的 Stable Diffusion 光照增强、风格迁移做数据侧适配。
  3. 留出评测:真实照片集必须留出独立测试子集,且按穴位、按体型分层报告,避免总体平均值掩盖难穴位的失败。
  4. 临床前验证:若目标涉及临床,需在真实患者影像或体表扫描上另行验证,并请执业针灸医师复核。

这条路径的核心逻辑是:合成数据解决"有没有",真实数据解决"像不像",临床数据解决"能不能用"。三者不可相互替代。

6.6 一个容易被忽略的伦理优势

合成数据的一个常被低估的优势是隐私与伦理成本为零:504 个模型不对应任何真实个人,图像不含可识别信息,无需伦理审查与知情同意。论文在 Background 中把这一点列为选择合成路线的原因之一(真实人体图像的采集受限于伦理与隐私)。对于需要在公开场合展示、教学传播或商业演示的场景,这一优势有实际价值——但不应被用来淡化合成数据的域差问题。

§7 获取与许可:三口径并存的资产

7.1 三层资产,三个入口

资产 入口 内容
数据包 Dryad,DOI 10.5061/dryad.zs7h44jkz acuSim.zip(13.04 GB)+ README.md(3,054 B)
代码仓 GitHub ZoeApokalypse/acuSim 四个脚本 + README + 依赖说明
论文 Sci Data 12:625,doi:10.1038/s41597-025-04934-9 方法、验证、局限

三者的获取难度不同:论文开放获取,直接读;GitHub 可浏览与克隆;Dryad 数据包体量大,需考虑带宽与本地存储(13 GB 压缩包,解压后更大)。

7.2 版本链与状态

Dryad 元数据(API 实测):

字段 值
数据集 DOI 10.5061/dryad.zs7h44jkz
当前版本 v6
发布日期 2025-03-28
最后修改 2025-04-01
版本变更类型 metadata_changed(元数据变更,非文件变更)
策展状态 Published
可见性 public
关联论文 10.1038/s41597-025-04934-9(primary_article)

Dryad API 只返回 v3(2025-03-28,submitted)与 v6(2025-03-28,submitted→Published)两条版本记录。v6 的变更说明为 metadata_changed,变更字段涉及作者机构信息,说明这一版主要是元数据修订,数据文件本体未变。使用者在引用时写 v6 即可,无需追溯 v3。

文件层面:

文件 大小 SHA-256 前缀
acuSim.zip 13,042,733,767 B 267fc456…50096d1
README.md 3,054 B e57571a9…e33b4e730a

7.3 许可三口径

这是本条目最需要提醒的一处风险。同一份资源在不同位置标注了三种许可:

位置 标注 适用范围(按常理推断)
Dryad 数据集元数据 CC0 1.0 数据包(图像、JSON、脚本)
GitHub 仓库 README CC BY 4.0 仓库内代码与说明
论文 Rights and permissions CC BY-NC-ND 4.0 论文正文、图表

三种许可的宽松程度递进:CC0 最宽松(放弃一切权利,可商用、可改编、无需署名);CC BY 4.0 次之(可商用、可改编,需署名);CC BY-NC-ND 4.0 最严(禁止商用、禁止演绎)。

实务建议:

  1. 数据包按 CC0 使用是最有依据的读法——Dryad 的许可字段是元数据层的正式声明,面向的是数据集本体。
  2. 论文中的图、表若需转载,按 CC BY-NC-ND 处理,不得商用、不得修改后传播。
  3. 代码若需再分发,按 CC BY 4.0 保留署名。
  4. 商用前建议书面联系通讯作者确认,尤其是当你打算把 AcuSim 派生的模型或数据作为商业产品的一部分时。三口径并存意味着存在解释空间,书面确认是唯一稳妥做法。

7.4 下载与使用注意事项

  • Dryad 的 REST 文件接口(/api/v2/files/<id>/download)需要 bearer token,匿名调用返回 Unauthorized;网页版与 DOI 解析后的下载入口可直接使用。
  • GitHub 仓库的 license 字段为空(API 返回 null),许可声明仅存在于 README 文本中,这在自动化许可扫描工具里可能显示为"未知许可"。
  • 数据包解压后为图像目录 + JSON 目录,JSON 与图像按文件名一一对应;建议先按文件名建索引,再做批量校验。
  • 论文声明脚本依赖 Python 3.10、TensorFlow GPU 2.60、CUDA 12.4、cuDNN 9.5.0;渲染脚本需要 Blender(论文写 3.5,README 依赖另写 3.6 LTS)。

7.5 与库内可获取性光谱的对照

类型 代表条目 特点
完全开放直链 slice-3d(141)、simcol3d(418) 一键下载,无门槛
DOI 数据包 AcuSim(本条目) 免注册但体量大,许可多口径
申请制 部分临床影像数据集 需签署协议或伦理审查
平台托管 tcm-tongue(1052)、tcmbank(1124) 依赖平台账号与使用条款

AcuSim 处于"开放但需核对许可"的中段:没有任何获取门槛,却有解释成本。这在 AI-Ready 评估里是典型的"可获取性高分、可复用性中等"形态(见附录 B)。

§8 生态与影响

8.1 团队谱系

作者团队的核心资产是一条"混合现实针灸训练系统"的技术线。前作(IEEE VR 2023)构建了带 361 穴、14 经的合成标准人体模型,这套模型既是本数据集的穴位定义来源,也是后续扩展的基础。从训练系统到数据集,团队的研究路径很清晰:先把穴位位置数字化,再把数字化结果规模化,最后用深度学习验证可用性。

Linjun Dai 作为针灸科专家参与,承担人工标注与医学指导,这是数据集可信度的重要支撑——穴位定义不是工程师按图纸摆出来的,而是有临床医师把关。

8.2 在中医 AI 生态中的位置

本库内与中医相关的条目可分成四类:

类别 条目 与本数据集的关系
望诊图像 tcm-tongue(1052,舌象) 同为中医视觉任务,但目标是分类/分割而非定位
知识库 tcmbank(1124)、herb-2(1123)、tcmssd(1054) 提供穴位—经络—主治的知识底座,可与定位结果串联
评测基准 mtcmb(1108)、tcmeval-sdt(1053) 评估中医模型能力,但均不涉及穴位几何定位
药材图像 nb-tcm-chm(1116) 同属中医视觉,任务不同

关键空白:库内尚无第二个"穴位定位"数据集,AcuSim 是这一细分方向的唯一入口。若后续纳入真实照片集 body-acupoint-images,两者将构成"合成—真实"配对,届时本条目应在 §9 更新互链说明。

8.3 引用与传播情况

Crossref 记录显示截至抓取时点被引 8 次(论文发表约一年半),Nature 页面 Metrics 显示 Citations 9、Accesses 6,877。两个来源差 1,属常见的统计时点差异(§10 坑点 5)。引用量处于 Scientific Data 数据描述类论文的中等水平,符合"方法论文 + 特定领域数据集"的传播特征。

8.4 技术影响面

从方法角度看,AcuSim 贡献了三个可被其他领域借用的组件:

  1. 发光掩码分割:在渲染时同步输出语义掩码,无需后处理分割网络。这套做法在合成数据生成领域已有先例,但用于"抽象位置"(而非实体物体)的分割是较新颖的应用。
  2. 表面吸附式标注传播:以少量专家标注为锚,通过几何吸附传播到大量变体模型。适用于任何"标注昂贵、模型可变"的合成数据场景(如服装、手势、姿态)。
  3. 可见性先验损失降权:用连续权重处理遮挡点,避免硬掩码造成的梯度断裂。

这三项在论文中都有对应脚本(script.py、occlusion_detection.py),可复现性较好。

8.5 与同类合成数据集的横向对照

数据集 领域 合成方式 规模 与本数据集的可比之处
AcuSim 中医穴位 Blender + DAZ 渲染 63,936 图 —
simcol3d(418) 结肠镜 仿真渲染 三维深度基准 同样以合成场景替代真实内镜采集
synthrad(671) 放射影像 GAN 合成 大规模 生成式而非渲染式,域差模式不同
synthoct(935) OCT 合成 中等 同为"补足稀缺模态"的合成策略
medsynth(1153) 通用医学 生成式 多模态 方法与目标不同,仅作生态参考

对照的意义在于:合成数据的价值高度依赖"合成方式与任务"的匹配度。渲染式合成(AcuSim、simcol3d)在几何精度上有天然优势,生成式合成(synthrad)在纹理真实度上更强但几何不可控。AcuSim 选择渲染,正是因为它需要精确的三维穴位坐标。

§9 与库内条目的关系

9.1 家族图谱

中医视觉与知识
├── 定位任务
│   └── acusim(本条目,合成)
│       └── [同批] body-acupoint-images(真实照片)— 互补而非替代
├── 望诊任务
│   ├── tcm-tongue(1052)— 舌象
│   └── nb-tcm-chm(1116)— 中药材果实
└── 知识与评测
    ├── tcmssd(1054)— 证候标准化
    ├── tcmbank(1124)、herb-2(1123)— 知识库
    └── mtcmb(1108)、tcmeval-sdt(1053)— 评测基准

合成与三维
├── simcol3d(418)— 仿真内窥镜三维
├── brain-slab-seg-3d(972)— 实物切片照片分割
├── slice-3d(141)— 三维全身照相皮损(真实)
└── synthea(460)等 — 结构化合成数据

解剖与配准
├── totalsegmentator(422)— CT 解剖分割
└── healthy-total-body-cts(994)

9.2 检索路径建议

  • 找"中医 + 图像":先用 category_tags 中的"医学影像"筛,再按 tcm 关键词过滤。
  • 找"合成数据":按 data_tags 的"合成数据"聚合,可一次性看到 synthrad、synthoct、synthea 与 AcuSim。
  • 找"三维 + 人体":simcol3d、slice-3d、brain-slab-seg-3d 与 AcuSim 构成一簇,区别在"腔内/体表、仿真/实拍"。
  • 找"关键点定位":库内该方向条目稀少,AcuSim 目前是唯一以穴位置信点为主任务的条目。

9.3 真伪辨析:与 body-acupoint-images 的关系

同批入库的 body-acupoint-images 是真实照片集,与本条目在三个方面必须区分:

  1. 资产性质:前者是摄影,后者是渲染。任何"AcuSim 验证通过 → 真实场景可用"的推论都需要跨域实验支撑,不能直接迁移结论。
  2. 标注粒度:前者一般给二维像素点;后者给三维体积球及其投影。二者在评测协议上需要对齐(例如把体积球投影到二维再与照片标注比较),对齐方式本身就是一个研究问题。
  3. 许可与伦理:真实照片集通常涉及肖像与伦理审查,合成数据不涉及;两者的使用条款不可相互套用。

推荐的联合使用方式:AcuSim 做预训练与消融实验,body-acupoint-images 做微调与留出评测,报告中同时披露两个域上的数字,并明确说明各自的分母。任何只报单一域结果的研究,都应在方法节说明为何不需要跨域验证。

§10 避坑清单:十个已踩过的坑

坑 1:"合成"不是修饰语,是使用边界。AcuSim 的每一张图都由 Blender 渲染,不含真实人体照片。99.73% 与 92.86% 都是渲染图上的数字。引用时若省略"合成"二字,读者会默认它是真实临床数据,这是最容易发生也最难纠正的误读。

坑 2:许可三口径并存,别一揽子引用。Dryad 元数据写 CC0 1.0,GitHub README 写 CC BY 4.0,论文写 CC BY-NC-ND 4.0。三者适用范围不同(数据包/代码/论文),商用前须逐资产核对并书面确认。自动化许可扫描工具读 GitHub 时可能返回"无许可"(API license 字段为 null)。

坑 3:92.86% 的分母不是全验证集。摘要写"验证集预测落在 5 mm 内占 92.86%",但正文与 Fig 8 的上下文是"3 名专家对 10 个模型 13 个穴位标注"的对照子集(130 个穴位点)。3 名专家不可能标注 6,336 张图,因此后者才是真实口径。引用时写清子集规模。

坑 4:准确率是软化命中,不是重合率。论文的准确率公式对阈值内误差做线性惩罚:(T_h − d)/T_h。所以 99.73% 不等于"99.73% 的点完全重合",而是"加权命中率"。若需硬口径,应自行统计 d ≤ 18.5 px 的比例。

坑 5:引用量与访问量两套口径。Crossref 记录被引 8 次,Nature 页面 Metrics 显示 Citations 9、Accesses 6,877。两者统计时点不同,引用时注明抓取日期即可,不必强行统一。

坑 6:多分辨率子目录与论文的 1024 声明。README 列出 64/128/256/512/1024 五个分辨率子目录,目录示例却写 img_512;论文明确训练使用 1024×1024。合理推断是多分辨率随包提供、论文评估只用 1024,但论文未逐项说明。若要使用低分辨率版本,建议先解压核对实际文件。

坑 7:Blender 版本双口径。论文写 Blender 3.5,GitHub README 的依赖列表另写 Blender 3.6 LTS。渲染脚本对版本较敏感,复现时以脚本注释与实际运行为准,遇到 API 不兼容优先降到 3.5。

坑 8:权重取值范围两根口径。GitHub README 写可见性权重为 0.9–1.0 区间,论文写 JSON 中 n 为 −1 到 0 的浮点数。二者显然不一致,应以论文(以及实际 JSON 内容)为准;读取时先抽样打印几个真实值再写解析代码。

坑 9:Spearman 相关系数出现两个值。正文一处写数据集-预测偏差与相机-体表朝向偏差的 ρ = −0.997(p<0.01),另一处写 ρ = −0.323(p<0.01)。同一对变量、两个数值,属原文笔误或不同子集口径。引用相关性结论时建议只引用方向(强负相关),不引用具体数值。

坑 10:PubMed 同缩写陷阱。检索 “AcuSim” 会同时命中 PMID 40234485(本数据集论文)与 PMID 32481297(ACU-SIM,2020 年脓毒症肌病针刺 RCT)。两者缩写相近但毫无关系,文献综述时注意甄别,勿把临床试验结果误当数据集验证。

§11 总结

11.1 三句话总结

  1. AcuSim 用"合成模型 + 自动渲染 + 吸附传播"把颈颅部穴位标注从专家小时级压到 GPU 小时级,产出 63,936 张图、1,100 万+条标注,是当前公开穴位数据中规模最大的一份。
  2. 它的验证结果显示:换模型不影响精度、换穴位影响精度;VGG19 多任务模型在 5 mm 阈值下达到 99.73% 加权命中率,专家对照子集 92.86% 落在阈值内。
  3. 它是合成数据。所有数字都建立在渲染图上,跨域泛化必须另行验证;它的正确位置是"预训练与算法原型"而非"临床精度证据"。

11.2 适合谁

  • 中医信息化与针灸教学系统的开发者:需要大规模、带三维坐标的穴位数据做原型。
  • 关键点检测研究者:需要一个遮挡丰富、视角密集(144 机位)的合成基准。
  • 合成数据与域适应研究者:域随机化变量设计、发光掩码、可见性先验损失都是可复用的方法组件。
  • 数据集工程研究者:两个锚点传播到 504 个模型的流程,是可迁移的标注成本压缩范式。

11.3 不适合谁

  • 需要真实临床精度的器械或诊断产品团队:合成数据不能作为主要证据。
  • 需要全身穴位覆盖的研究:本数据集只有颈颅部 174 穴。
  • 需要儿童、老年、特殊人群样本的研究:年龄维度完全缺失。
  • 需要多架构横向对比的研究:论文只测了 VGG19。

11.4 30 秒决策卡

你的情况 行动
要跑通穴位定位原型 下载 Dryad 数据包,用 dataloader_modified.py 加载 1024 图,先做 1 个经络的子任务验证管线
要在真实照片上落地 AcuSim 预训练 → 真实照片微调 → 留出测试,三段报告分母写清(§6.5)
要引用精度数字 引 99.73%(加权命中,5 mm≈18.5 px)与 92.86%(10 模型 13 穴子集),并注明"合成图像"
要复现论文 需要 Blender 3.5、Python 3.10、CUDA 12.4;先跑 script.py 渲一个小模型验证环境
要商用 先书面联系通讯作者确认许可,尤其涉及派生模型分发时
要写综述 §2.5 对比锚点 + §6.2 差异清单 + §8.5 横向对照可直接引用

FAQ(高频问答 30 问)

A. 基础认知

Q1:AcuSim 的名字怎么读、怎么拼?
论文标题写作 AcuSim,Dryad 数据集标题全小写写作 acusim,GitHub 仓库名是 acuSim。三种大小写指向同一资源,检索时建议同时试 AcuSim 与 acusim。

Q2:它到底是数据集还是方法论文?
两者都是。Scientific Data 的 Data Descriptor 体裁惯例是"数据集 + 描述其生产与验证的论文",AcuSim 同时发布了数据包、代码脚本与论文,三者构成一个完整交付。

Q3:为什么叫"颈颅部"而不是"头颈部"?
论文使用 cervicocranial(颈-颅),强调覆盖范围是颈部加上颅面部,与临床常用的 head and neck 略有差别。中文译为"颈颅部"最贴近原文。

Q4:174 个穴位是怎么选的?
从前作的全身 361 穴模型中截取颈颅区域的部分。论文没有逐一列出 174 穴的清单,但数据包内 map.txt 提供完整穴位表。

Q5:穴位是中医的概念,怎么做成三维坐标?
依靠 WHO 标准穴位定位资料与手指同身寸方法:以体表解剖标志为参照,按固定比例确定位置。前作已把这套规则落实到合成标准人体模型上,本数据集继承该模型。

Q6:合成数据不会有"假"的问题吗?
会有,而且论文自己也承认。关键在于把"假"限制在可控范围:几何位置是真(按规则精确放置),视觉外观是假(渲染近似)。对定位任务而言,几何精确恰恰是难点,所以这条路是成立的;对需要真实纹理的任务则不成立。

B. 数据与规格

Q7:63,936 张图会不会太多,下载得动吗?
压缩包 13.04 GB,解压后更大。建议先只下 README 规划目录,再按需分批下载;若只做小规模实验,可只取某一发型或某一体型的子集。

Q8:图像是 PNG 还是 JPG?
README 的目录示例写 *.png,文件命名说明中的示例文件后缀是 .jpg。两种格式可能并存于不同目录,实际使用前建议先 ls 确认。

Q9:JSON 里的 x、y 是像素还是百分比?
百分比。论文明确写"stored as percentages",使用时需乘图像宽高还原为像素。

Q10:h 是什么?
归一化的相机到穴位距离,取值 0–1。可用于构造深度监督或作为回归目标的一维。

Q11:被遮挡的穴位还留在 JSON 里吗?
在。坐标初始化为 (0, 0, h̃/2),权重用于区分可见性。训练时需要通过预处理过滤或按论文做法降权。

Q12:训练集和验证集怎么分的?
90%/10%,即 57,600 与 6,336。论文未说明是按模型划分还是按图像随机划分——这是复现时需要注意的点,若按图像随机划分,同一模型的相邻视角可能同时出现在训练与验证中,造成乐观偏差。

Q13:同一个模型的不同视角会不会泄漏到验证集?
论文未明确说明划分粒度。若做严格复现,建议自行按模型(而非按图像)重新划分,并把结果与论文口径并列报告。

C. 方法与验证

Q14:为什么用 VGG19 而不用 ResNet?
作者理由是 VGG19 更深、参数更多,更适合高维高精度的关键点识别。这个理由在现代文献中并不充分,作者也承认未做横向对比,属方法层面的已知局限。

Q15:9 个多任务头怎么对应经络?
按经络分组,每个头负责一条经络上的穴位名称分类与坐标回归。全身 14 经,颈颅区域涉及其中 9 条,故为 9 个头。

Q16:99.73% 是不是太高了,可信吗?
在合成数据上,这个数字并不离谱:同一渲染管线生成的图,训练与验证分布高度一致,模型很容易拟合。真正的问题是它能否迁移到真实图像,而论文没有做跨域实验,这正是 Limitations 承认的。

Q17:验证集为什么前 800 epoch 准确率是 0?
因为 18.5 像素阈值在训练早期过于严格,所有预测都超出阈值,按公式得分全为 0。阈值法导致早期曲线"断崖",不是模型失效。

Q18:92.86% 与 99.73% 哪个更可信?
取决于你关心什么。99.73% 是模型对数据集的拟合程度;92.86% 是数据集标注与人类专家的接近程度。后者更能说明"标注质量",前者更能说明"任务可学性"。

Q19:ANOVA 的结论怎么读?
模型主效应不显著,说明换人(换模型)不影响精度;穴位主效应显著,说明穴位本身的解剖复杂度决定难度。这对数据集的公平性是好消息,对使用者的提示是"要按穴位分层报告"。

Q20:为什么 SI18、SJ23 这些穴位特别难?
论文推测与局部解剖复杂、组织层较深、渲染中更易被遮挡有关。SI18(颧髎)位于颧骨下缘,SJ23(丝竹空)位于眉梢凹陷,都是曲面变化剧烈的区域,投影误差会被放大。

D. 工程与复现

Q21:复现渲染需要什么环境?
Blender 3.5(或 3.6 LTS)、Python 3.10;若要跑训练,还需 TensorFlow GPU 2.60、CUDA 12.4、cuDNN 9.5.0。渲染本身对 GPU 要求不高,训练则需要显存。

Q22:只想看标注长什么样,最快的方法?
用 xuewei5.py 做可视化,它读取 JSON 并在图上叠加穴位点,不需要重跑渲染。

Q23:想扩展到其他身体部位,从哪改起?
先改 script.py 中的穴位定义(体积球位置与半径),再改渲染机位覆盖范围;遮挡检测的几何判据(法向量夹角)可沿用,阈值需按新部位调整。

Q24:数据加载示例用的是 PyTorch 还是 TensorFlow?
README 的示例代码用 PyTorch 的 Dataset/DataLoader 写法,但依赖列表同时列了 TensorFlow。两种都有实现,按自己的栈选择。

Q25:能直接用 torchvision.datasets 吗?
不能,JSON 结构是自定义的,需要用 dataloader_modified.py 里的 AcuPointsDataset 类。

E. 使用与合规

Q26:可以商用吗?
取决于你商用的是什么。数据包按 Dryad 的 CC0 可商用;论文图表按 CC BY-NC-ND 不可商用;代码按 CC BY 4.0 可商用但需署名。建议商用前书面确认。

Q27:可以再分发数据包吗?
CC0 允许无条件再分发;若按 GitHub 的 CC BY 4.0 理解,则需保留署名。两种口径下再分发都不违规,差别在署名义务。

Q28:能在论文里说"基于 AcuSim 达到 99% 精度"吗?
可以,但必须写明"在合成图像上"。省略这个限定会被审稿人质疑,也会误导读者。

Q29:和 body-acupoint-images 能混用吗?
可以串联使用,不能混为一谈。前者做预训练,后者做微调与评测,报告中分别披露两个域的数字(§9.3)。

Q30:如果要引用,BibTeX 怎么写?
见附录 W。数据引 Dryad DOI,方法引论文 DOI,两者分开列。

附录 A:来源清单(全部实抓)

编号 来源 URL 用途
S1 Scientific Data 论文全文 https://www.nature.com/articles/s41597-025-04934-9 方法、数字、局限、许可
S2 Dryad 数据集 API https://datadryad.org/api/v2/datasets/doi%3A10.5061%2Fdryad.zs7h44jkz 许可字段、版本、作者
S3 Dryad 版本详情 https://datadryad.org/api/v2/versions/355967 版本链、变更类型
S4 Dryad 文件清单 https://datadryad.org/api/v2/versions/355967/files 文件大小、SHA-256
S5 Dryad 数据集页 https://datadryad.org/dataset/doi:10.5061/dryad.zs7h44jkz README 内容、规模
S6 GitHub 仓库 https://github.com/ZoeApokalypse/acuSim 脚本、依赖、许可声明
S7 GitHub README 原文 https://raw.githubusercontent.com/ZoeApokalypse/acuSim/master/README.md 目录结构、依赖版本
S8 GitHub API https://api.github.com/repos/ZoeApokalypse/acuSim 创建时间、推送时间、stars
S9 Crossref(论文) https://api.crossref.org/works/10.1038/s41597-025-04934-9 卷期、日期、引用数
S10 NCBI E-utilities https://eutils.ncbi.nlm.nih.gov/entrez/eutils/ PMID 与同缩写甄别

抓取时点:2026-10-17。网络请求均按低中断预算执行,正文数字以 S1 为主、S2-S4 为辅,冲突处已在 §10 存照。

附录 B:DAIMS 评估全表

维度 评分(1-10) 依据
D 可发现性 8 论文开放获取 + Dryad DOI + GitHub 仓库三入口;“acusim/AcuSim/acuSim” 大小写变体略增加检索成本
A 可获取性 8 DOI 直链、无需注册、无需申请;13 GB 体量对带宽有要求;API 文件接口需令牌属工具层问题
I 可互操作 7 标准 PNG/JPG + JSON,PyTorch/TF 加载示例齐备;无 COCO/OpenPose 等通用关键点格式的官方转换
M 元数据质量 7 论文表格完备、README 覆盖字段;存在权重口径、Blender 版本、92.86% 分母三处不一致
S 可持续性 8 Dryad 长期归档 + DOI 版本化 + GitHub 镜像;代码仓 stars 10、近一年半未推送,维护活跃度一般
综合评级 7.6/10(良) 获取与归档质量高;扣分主要来自口径不一致与格式转换成本

附录 C:逐项证据链自证

关键数字 来源 位置
504 模型 = 14×6×3×2 S1 Methods, Domain Randomizers 正文
63,936 图 = 504×144 S1 Abstract / Image Collection 正文
57,600 / 6,336 S1 Performance 正文
174 穴位、1,100 万+标注 S1 Abstract 摘要
4 俯仰 ×36 旋转(0/30/60/−30°) S1 Fig 3 + Data Records 正文
1024×1024、16-bit S1 Image Collection 正文
2048×2048 掩码 S1 Threshold Segmentation 正文
1 mm≈3.7 px、5 mm≈18.5 px S1 Coordinate System Conversion + Performance 正文
VGG19 + FC 5000/5000/2500/2500 S1 Technical Validation 正文
Adam lr 0.00075、batch 64 S1 Dataloader Initialization 正文
3,480 epochs S1 Performance 正文
99.73% / 92.86% S1 Performance / Fig 8 正文
ANOVA 三组 F 值 S1 Quantitative Error Analysis 正文
13.04 GB / SHA-256 S4 文件清单 API
CC0 1.0 S2 许可字段 API
CC BY 4.0 S7 README 文本
CC BY-NC-ND 4.0 S1 Rights and permissions 页脚

附录 D:数据获取决策树

你的目标是什么?
├── 只想看看数据长什么样
│   └── 读 Dryad README + 用 xuewei5.py 可视化少量 JSON
├── 要训练/评测穴位定位模型
│   ├── 下载 acuSim.zip(13 GB),解压
│   ├── 按 model 划分训练/验证(勿按图像随机划分,见 Q13)
│   └── 用 dataloader_modified.py 加载,先跑单经络子任务
├── 要复现论文
│   ├── 环境:Blender 3.5 + Python 3.10 + TF 2.60 + CUDA 12.4
│   ├── 先渲 1 个模型验证 script.py
│   └── 训练 3,480 epoch(需 GPU 与较长时间)
├── 要迁移到其他身体部位
│   └── 改 script.py 穴位定义 + 渲染机位;沿用遮挡几何判据
└── 要做真实场景落地
    └── AcuSim 预训练 → 真实照片微调 → 留出测试(§6.5)

附录 E:标注字段字典

字段 类型 取值域 语义
frame_id string 如 M_Asher_N_HC_O_0001 性别_姓名_体型_发型_眼态_帧号
name string 经络缩写+序号+中文名 穴位标识
coordinate[0] float 0–100 屏幕 x 百分比
coordinate[1] float 0–100 屏幕 y 百分比
coordinate[2] float −1–0(论文口径) 可见性权重 n
coordinate[3] float 0–1 归一化深度 h
bbox float[4] 像素 (x_max, y_max, x_min, y_min)
normal float[3] 单位向量 穴位到最近网格的法向量
cam_normal float[3] 单位向量 当前帧相机法向量

不可见穴位:x=y=0,h=h̃/2,权重保留。读取时应先按坐标是否为原点筛出不可见点,再决定是否计入损失。

附录 F:穴位清单获取与使用

map.txt 是 174 个穴位的完整清单,每行含经络索引、中文名与序号。建议在使用前:

  1. 读入 map.txt 建立「穴位名 ↔ 类别索引」映射。
  2. 统计各经络的穴位数量,确认 9 个多任务头的分组与 map.txt 一致。
  3. 对每个穴位抽样若干帧,人工核对坐标是否落在合理的面部/颈部位置(这是发现解析错误最快的方法)。

附录 G:训练复现骨架

import torch
from torch.utils.data import DataLoader
from acuSim_dataloader_modified import AcuPointsDataset

ds = AcuPointsDataset(
    image_dir="path/to/img_1024",
    json_dir="path/to/label",
    target_size=(1024, 1024),
)
loader = DataLoader(ds, batch_size=64, shuffle=True, num_workers=4)

# 单经络子任务验证:取 HT 经的穴位子集
# 训练循环:坐标用 RMSE、名称用交叉熵
# 300 epoch 后对不可见点施加 0.1 权重

训练脚本论文未单独发布,需要按 §5.2 的结构自行搭建。建议先用小模型(如 ResNet18)跑通数据管线,再决定是否复现 VGG19 的完整规模。

附录 H:标注生产流程图解

[14 个基础身份 7F/7M]
        │
        ├── 6 种发型 (A-E + N 光头)
        ├── 3 种体型 (Slim / Normal / Fat)
        └── 2 种眼态 (Open / Closed)
        │
        ▼
[504 个颈颅部合成模型]  ← DAZ Genesis morph 塑形 + 程序化皮肤纹理
        │
        ├── 选 2 个亚裔外观模型(1 男 1 女)
        │        │
        │        └── 专家按 WHO 标准 + 同身寸手工标 174 穴 → ground truth 锚点
        │
        ▼
[表面原点吸附]  体积球贴附到其余 502 个模型的网格表面,内外各半
        │
        ▼
[沿运动轴微调]  对齐到最近网格顶点,吸收体型差异
        │
        ▼
[Blender 渲染]  4 俯仰 × 36 旋转 = 144 机位/模型
        │
        ├── RGB-D 图 1024×1024,16-bit
        └── 发光掩码 2048×2048(穴位像素为白)
        │
        ▼
[坐标换算]  世界坐标 → 相机坐标 → NDC → 屏幕百分比
        │
        ▼
[遮挡过滤]  法向量夹角 cosθ ≥ 0 剔除 + bbox 白像素检测
        │
        ▼
[JSON 标注]  name / x / y / n / h / bbox / normals

这张图里最容易被忽略的一步是"沿运动轴微调"。它不是可选的优化,而是把锚点标注适配到不同体型的必要环节——少了这一步,所有模型上的穴位位置都会系统性偏向锚点模型的体型。

附录 I:三层误差来源解剖

层级 误差来源 量级估计 是否已在论文中量化
穴位定义层 专家对 WHO 标准的理解差异、同身寸测量 数毫米级 部分(10 模型 13 穴专家对照)
几何传播层 吸附到最近顶点的位置偏移 亚毫米至数毫米 未单独量化
投影层 三维到二维的数值精度 远小于 1 px 由变换公式保证
模型层 预测误差 0.03–0.17 px(RMSE) 是
域差异层 合成到真实的差距 未测 否(主要局限)

这张表的用途在于提醒使用者:论文报告的 0.12–0.17 px 是模型层误差,它不能代表整条链路的误差。整条链路最大的未知项在最后一行——从合成到真实的域差异,论文没有测量。

附录 J:与本库合成数据条目的对照表

条目 合成方式 任务 规模 关键差异
AcuSim 三维渲染(Blender+DAZ) 关键点定位 63,936 图 几何真值精确,视觉近似
synthrad(671) 生成式(GAN) 放射影像分割/分类 大规模 视觉更真,几何不可控
synthoct(935) 生成式 OCT 图像 中等 补足模态稀缺
synthea(460) 规则+统计模拟 结构化病历 百万级患者 非图像,表结构合成
medsynth(1153) 生成式 多模态医学 多模态 通用性强,特定任务精度弱
simcol3d(418) 仿真渲染 内窥镜三维重建 基准集 同为渲染式,场景为腔内

对照结论:合成数据没有"最好",只有"与任务匹配"。AcuSim 的渲染路线是为几何精度服务的,这也决定了它不适合需要真实纹理的任务。

附录 K:合成数据使用检查单(10 项)

  1. 用途声明:在方法节写明"训练/验证基于合成渲染图像",不要含糊为"图像数据"。
  2. 分母声明:报告任何指标时,写明是全部 6,336 张验证图,还是 10 模型 13 穴子集。
  3. 精度口径:注明是加权命中率(论文公式)还是硬阈值命中率。
  4. 划分复核:确认训练/验证是否按模型划分,若按图像随机划分,补充按模型划分的对照结果。
  5. 遮挡处理:说明不可见点是被过滤还是按 0.1 权重降权,两种做法结果不可比。
  6. 权重字段核对:读 JSON 时先抽样确认 n 的实际取值范围(论文 −1–0 vs README 0.9–1.0)。
  7. 许可核对:明确你使用的是数据包(CC0)、代码(CC BY)还是论文图表(CC BY-NC-ND)。
  8. 跨域实验:若声称真实场景可用,必须有真实图像上的验证结果。
  9. 分层报告:按穴位、按经络报告性能,避免总体均值掩盖难穴位。
  10. 同批辨析:与 body-acupoint-images 联合使用时,分别披露两个域的结果,不混算。

附录 L:常见误解澄清(8 条)

误解 1:AcuSim 是真实人体照片集。
不是。全部为渲染合成图像,这是本条目反复强调的第一条边界。

误解 2:99.73% 意味着 AI 取穴已可临床使用。
不意味着。该数字的分母是渲染图,且验证集与训练集同源。临床可用性需要真实患者数据上的前瞻验证。

误解 3:174 个穴位就是全部穴位。
不是。全身标准穴位 361 个,本数据集只取颈颅部 174 个。

误解 4:合成数据不含隐私问题,所以可以随便用。
隐私层面确实无风险,但许可层面仍有限制(论文图表 CC BY-NC-ND),且"无隐私风险"不等于"无使用边界"。

误解 5:Blender 渲染的图看起来很假,模型学不到东西。
恰恰相反,论文证明模型在合成图上能学到精确的穴位位置。问题不在"学不学得到",而在"学到的东西能否迁移到真实图"。

误解 6:92.86% 比 99.73% 低,说明专家标注更差。
两者分母不同、指标含义不同,不可直接比大小。99.73% 是模型对数据集的拟合,92.86% 是数据集标注与专家的接近程度。

误解 7:504 个模型覆盖了不同人群。
只覆盖了性别、体型、发型、眼态四个维度的组合,年龄与肤色不是受控变量,作者明确说"不代表整个人群"。

误解 8:Dryad 标 CC0,所以论文图表也能随便用。
不能。CC0 针对的是数据包元数据,论文图表另受 CC BY-NC-ND 约束。

附录 M:按角色阅读路径

角色 建议路径 关键章节
算法工程师 §2 规格 → §5 网络 → 附录 G 骨架 先确认数据格式,再看训练配置
临床/针灸研究者 §0 导读 → §6 边界 → §9.3 辨析 重点判断"能不能用于临床论证"
数据集方法论研究者 §3 流水线 → §4 坐标 → 附录 H/I 关注标注传播与误差分层
中医信息化产品经理 §1 十问 → §7 许可 → §11.4 决策卡 先判断可用性,再看合规
综述作者 §2.5 对比 → §6.2 差异 → §8.5 横向 三个表格可直接引用

附录 N:穴位定位任务的评测协议建议

若要用 AcuSim 做基准,建议采用以下协议,避免与论文口径混淆:

  1. 划分:按模型(504 个组合)划分 90/10,而非按图像随机划分;报告时注明划分方式。
  2. 指标:
    • 加权命中率(论文口径,阈值 18.5 px)
    • 硬命中率(d ≤ 18.5 px 的比例)
    • 像素 RMSE
    • 毫米误差(像素误差 ÷ 3.7)
  3. 分层:按经络(9 组)与按难穴位(SI18、SJ23、GB1、LI20)分别报告。
  4. 遮挡子集:单独报告不可见点占比高的帧(如俯仰 −30°、背面视角)的性能。
  5. 跨域:若涉及真实照片,必须另设测试集,不得混入验证集。

附录 O:与真实照片集联用的三种实验设计

设计 A:预训练 + 微调(最常用)
AcuSim 全量预训练 → 真实照片集微调 → 真实照片留出集测试。报告三段数字:合成验证集、真实微调集、真实测试集。

设计 B:域对抗/风格迁移
在 AcuSim 上训练的同时加入风格迁移模块,把渲染图转换为接近真实摄影的风格,再在真实集上评测。论文 Limitations 中提到的 Stable Diffusion 光照增强即属此类。

设计 C:合成-真实配对校准
若真实照片集与 AcuSim 存在共同穴位子集,可用配对样本估计系统性偏移(如整体平移、缩放),再在 AcuSim 上训练、按偏移校正后应用到真实图。此法适合样本极少的情形,但校正参数需独立验证。

三种设计的共同要求是:任何真实域的结论都必须由真实域数据支撑,AcuSim 只能作为源域或辅助。

附录 P:Dryad 与 GitHub 资源核对表

核对项 Dryad GitHub 是否一致
许可 CC0 1.0 CC BY 4.0(README) 否
Blender 版本 论文 3.5 README 3.5 / 依赖 3.6 LTS 部分
图像格式 README 示例 .png / 命名说明 .jpg 明示 .png 否
权重范围 论文 −1–0 0.9–1.0 否
穴位数 174 174 是
模型数 504 未提 —
脚本数 4 4 是
分辨率 1024 训练 64–1024 五档 部分

这张表本身就是使用建议:以论文为数字口径、以数据包为文件口径、以 README 为目录口径,三者冲突处以论文优先,遇到文件层面的疑问以实际解压结果为准。

附录 Q:术语中英对照

中文 英文 说明
穴位/腧穴 acupoint 针灸施术部位
经络 meridian 穴位归属的通道系统
手指同身寸 finger-cun 以患者手指宽度为相对单位的取穴度量
颈颅部 cervicocranial 颈部+颅面部
体积式穴位 volumetric acupoint 三维球体表达,非平面点
域随机化 domain randomization 显式枚举变量以覆盖多样性
发光掩码 emissive masking 用自发光材质生成分割掩码
表面原点吸附 surface-origin attachment 把几何体吸附到网格表面
归一化设备坐标 NDC 投影管线中的标准化坐标
可见性先验 visibility prior 用数据自带的可见性标签调整损失

附录 R:论文内部口径冲突存照(5 条)

编号 冲突项 口径 A 口径 B 处理
C1 92.86% 的分母 摘要:验证集预测 正文/Fig 8:10 模型 13 穴专家对照 按 B 引用并注明
C2 Spearman ρ(Dataset-Prediction vs Camera-Body) −0.997(p<0.01) −0.323(p<0.01) 只引方向,不引数值
C3 可见性权重范围 论文 −1–0 README 0.9–1.0 以论文为准,实测确认
C4 Blender 版本 论文 3.5 README 依赖 3.6 LTS 复现以 3.5 为准
C5 文件扩展名 README 目录示例 .png 命名说明示例 .jpg 解压后以实际为准

这五条不是数据错误,而是文档在多次迭代中留下的表述不一致。它们不影响数据集本体,但会影响自动化脚本与复现实验,因此逐条存照。

附录 S:与真实照片集 body-acupoint-images 的联合引用规范

  1. 引用顺序:先引真实照片集(目标域),再引 AcuSim(源域),避免读者误认后者为基础资源。
  2. 指标并置:同一张表里分列"合成域"与"真实域"两栏,不合并平均。
  3. 限定语:凡提到 AcuSim 的结果,句首或句尾必须出现"合成"或"渲染"字样。
  4. 不互推:不以 AcuSim 的结果论证真实照片集的标注质量,反之亦然。
  5. 图片素材:展示 AcuSim 图像时标注"合成渲染示例",展示真实照片时标注"真实拍摄"。

这套规范看似繁琐,但在跨条目引用场景中,它可以避免最常见的一类错误——把两份不同性质的资源当成同一份数据的不同版本。

附录 T:维护触发点

触发条件 应更新的章节 说明
Dryad 发布新版本 §7.2 版本链、附录 P 核对文件哈希与许可是否变化
团队发布后续论文(如跨域实验) §6.3/6.4 边界、§5 验证 若做了真实域验证,边界一节需改写
body-acupoint-images 入库 §9.3、附录 S 补互链与辨析
许可口径统一 §7.3、坑 2 按最新声明更新
引用量显著变化 §8.3 重新抓取 Crossref
代码仓更新 §7.1、附录 P 核对脚本与依赖

附录 U:一页速查卡

AcuSim · 合成颈颅部穴位定位
─────────────────────────────
规模    504 模型 × 144 机位 = 63,936 图
穴位    174 个体积球,1,100 万+ 标注
划分    57,600 训练 / 6,336 验证
规格    1024×1024,16-bit,JSON 标注
换算    1 mm ≈ 3.7 px;5 mm ≈ 18.5 px
模型    VGG19 冻结 + 4×FC + 9 经络头
指标    99.73% 加权命中 / 92.86% 专家子集
获取    Dryad 10.5061/dryad.zs7h44jkz(13.04 GB)
许可    Dryad CC0 / GitHub CC BY / 论文 CC BY-NC-ND
边界    合成渲染,非真实照片;不可作临床精度证据
─────────────────────────────

附录 V:FAQ 补充(5 问)

Q31:数据集里有没有真实人物的三维扫描?
没有。504 个模型均由 DAZ Studio 的 Genesis 人物基础网格加 morph 生成,不对应任何真实个人。

Q32:能不能用这套数据训练分割模型?
可以。数据包提供 2048×2048 发光掩码,可用于穴位区域分割;但注意掩码只有黑/白两类,不含经络级细分。

Q33:为什么只用两个亚裔外观模型作锚点?
论文未解释选择理由。合理推测是颈颅部穴位定义在东亚人群资料中更成熟,但这属推断而非原文结论。

Q34:验证集里的"光头"为什么特别难?
光头去除了头发的遮挡线索,同时暴露了头皮网格的微表面细节,模型需要仅凭面部与颅骨形态推断穴位,难度高于有发型的样本。

Q35:数据集的图像能否用于训练人脸识别模型?
技术上可以,但这不是数据集的设计用途;更需注意的是,合成人脸与真实人脸的身份分布不同,训练出的识别模型不具备真实场景价值。

附录 W:引用格式(BibTeX)

@article{sun2025acusim,
  title   = {AcuSim: A Synthetic Dataset for Cervicocranial Acupuncture Points Localisation},
  author  = {Sun, Qilei and Ma, Jiatao and Craig, Paul and Dai, Linjun and Lim, Eng Gee},
  journal = {Scientific Data},
  volume  = {12},
  pages   = {625},
  year    = {2025},
  doi     = {10.1038/s41597-025-04934-9}
}

@dataset{sun2025acusimdata,
  title     = {acusim: a synthetic dataset for cervicocranial acupuncture points localisation},
  author    = {Sun, Qilei and Ma, Jiatao and Craig, Paul and Dai, Linjun and Lim, Eng Gee},
  year      = {2025},
  publisher = {Dryad},
  version   = {6},
  doi       = {10.5061/dryad.zs7h44jkz}
}

附录 X:FAIR / AI-Ready 检查单

检查项 状态 说明
F1 全局唯一标识 ✅ 论文 DOI + Dryad DOI
F2 富元数据 ✅ 论文 + README + map.txt
A1 可访问协议 ✅ HTTP 直链,免注册
A2 元数据可访问 ✅ 数据未下载也可读元数据
I1 互操作格式 ⚠️ PNG/JSON 通用,但无标准关键点格式转换
I2 词汇表引用 ✅ WHO 标准穴位、经络缩写
R1 来源溯源 ✅ 合成流程完整可追溯
R1.2 可复现流程 ✅ 四个脚本 + 依赖声明
R3 合成边界声明 ✅ 论文标题即标明 Synthetic
AI-Ready 综合 良 格式与可获取性好,跨域可用性需自行验证

附录 Y:本条目生产记录

  • 代理:agent-d-acusim
  • 开工:2026-10-17T10:20
  • 锁文件:writing/acusim/.lock(自建,无冲突)
  • 私有分片区:writing/acusim/.parts_agent-d-acusim_1792203266_1265720/
  • 分片:part01–part05,按序号 cat 拼接
  • 网络预算:WebSearch 1 次;WebFetch 1 次(Nature 返回浏览器校验,改 curl 抓取);其余为 curl 抓 Dryad API / Crossref / NCBI / GitHub
  • 查重:DB 0 命中,writing/ 无同名目录,dedup_gate 仅命中自身
  • 事实源:S1 论文全文(本地抓取 396,971 B HTML,提取 65,991 字符纯文本)

术语表

缩写 全称 中文
TCM Traditional Chinese Medicine 传统中医
WHO World Health Organization 世界卫生组织
XJTLU Xi’an Jiaotong-Liverpool University 西交利物浦大学
DAZ DAZ Studio 人物建模软件
NDC Normalized Device Coordinates 归一化设备坐标
RMSE Root Mean Square Error 均方根误差
ANOVA Analysis of Variance 方差分析
DAIMS Data Accessibility, Interoperability, Metadata, Sustainability 数据评估框架
RGB-D RGB + Depth 彩色+深度
CC0 Creative Commons Zero 公共领域贡献

结语

AcuSim 的价值不在"它是最大的穴位数据集"这句口号,而在于它示范了一种在标注极度昂贵的领域里规模化生产训练数据的路径:把不可控的现实世界换成可控的三维世界,让专家只标两个锚点,让几何规则完成传播,让渲染管线顺便输出掩码。这条路径的代价是合成与真实之间的域差,而论文对此是诚实的——Limitations 一节把解剖保真度与跨人群泛化列为两项主要局限,也给出了后续的域适应路线。

对使用者而言,记住三件事就够:它是合成的;它的精度数字建立在渲染图上;它的正确用法是预训练与原型验证,不是临床结论。 与本库同批入库的 body-acupoint-images(真实照片)配合使用时,两者构成"源域—目标域"的配对,而不是同一份数据的两个版本。

本条目为 AI-Ready Wikipedia 数据集条目,生产于 2026-10-17。事实陈述以论文(Scientific Data 12:625, doi:10.1038/s41597-025-04934-9)、Dryad 数据包元数据(v6, doi:10.5061/dryad.zs7h44jkz)与 GitHub 仓库 README 为源;三处口径冲突(92.86% 分母、Spearman 系数、权重范围)与四项文档不一致(Blender 版本、文件扩展名、分辨率目录、许可三口径)已在 §10 与附录 R 存照。条目与库内 tcm-tongue(rid 1052)、mtcmb(rid 1108)、tcmbank(rid 1124)、simcol3d(rid 418)、slice-3d(rid 141)等条目互链,构成中医视觉与合成数据两条检索线。后续维护触发点见附录 T。

附录 Z:十个易被忽略的细节

1. 只有一个性别标签,没有年龄标签。
文件名中的 F/M 是模型性别,不是受试者性别;数据集没有年份或年龄字段,所有模型都是成年体型。做年龄相关研究时不能从文件名字段推断任何年龄信息。

2. 体型三档的缩写与单词不一致。
文件命名用 F/N/S 表示 Fat/Normal/Slim,而论文正文用 slim/medium/overweight。F 在文件名里不代表 Female——女性是文件名最前面的 F。这两个 F 出现在同一串名字里(如 F_Brisen_F_…),解析时必须以位置区分,不能用字符检索。

3. 发型代码含 N,与 Normal 的 N 冲突。
六种发型为 A–E 加 N(bald 光头),而体型 Normal 也用 N。文件名 M_Asher_N_HC_O_0001 中第一个 N 是体型,第二个字母 H 属于发型代码 HC(发型 H 不存在,实为发型 C 的前缀 H?)——实际规则是"发型代码 + 眼态字母"连写,如 HC 表示发型 C、O 表示睁眼。解析建议用固定位置切分,不要用正则模糊匹配。

4. 帧号是四位补零字符串,不是整数。
0001 到 0144 覆盖一个模型组合的全部视角。若在数据处理中把它转成整数,会丢失补零信息,导致与 JSON 文件名对不上。

5. 俯仰角的命名不单调。
四个俯仰角是 0°、30°、60°、−30°,不是 0/30/60/90。−30° 位于最后一组(帧 0109–0144),它不是"更高"而是"从下往上"。可视化时若按帧序画曲线,会出现非单调跳变,这是设计如此。

6. 穴位坐标是百分比,不是归一化到 0–1。
论文明确写 percentages,即 0–100。若按 0–1 处理再乘宽高,坐标会缩小 100 倍。

7. 深度 h 是归一化值,不是毫米。
h 取值 0–1,是相机到穴位的距离经归一化后的结果。要换算成毫米,需要知道渲染时相机的位置与视锥参数,这些参数未在论文中逐项给出,需从 script.py 读取。

8. 掩码分辨率高于图像分辨率。
图像是 1024×1024,掩码是 2048×2048。若直接把两者逐像素对齐会出错,必须先把掩码降采样或把图像升采样,并注意采样方式对边缘精度的影响。

9. 训练集与验证集的文件可能不在同一目录层级。
README 的目录结构中 train 下有 image/img_512 与 label/label 两层同名目录,而 test 为"可选、结构同上"。实际解压后若发现 test 缺失,说明发布包只含训练划分,验证集需自行从 6,336 张中按论文划分重建。

10. 脚本名与论文中的称呼不完全一致。
论文 Code availability 写 script、xuewei5、dataloader、occlusion_detection,GitHub 上实际文件名为 script.py、xuewei5.py、dataloader_modified.py、occlusion_detection.py。dataloader 与 dataloader_modified 的差异说明该文件经过修改,直接按论文名检索会 404。

附录 AA:穴位定位与经络知识的最小背景

对不熟悉针灸的读者,理解本数据集需要三个最小概念:

穴位(acupoint):人体表面可用于针刺、艾灸等刺激的特定位置。WHO 标准资料对 361 个经穴给出了统一定位描述,通常以体表解剖标志(骨性突起、肌腱、皱褶)为参照。

经络(meridian):穴位按功能与走向归属的通道系统,传统上有十二正经加任督二脉,共十四经。本数据集涉及颈颅区域的 9 条,故网络设 9 个多任务头。

同身寸(finger-cun):一种相对度量。以患者自身手指宽度(通常取拇指指间关节宽度)为一寸,不同部位另有折算规则。它的作用是让穴位间距随人体尺寸等比缩放,这正是本数据集要用体型变量模拟的解剖变异来源。

理解这三点后,"为什么合成模型要分三档体型"就变得直观:体型改变的是比例,而比例正是同身寸要处理的对象。

附录 AB:数据质量抽检建议(可直接执行的 6 步)

  1. 数量核对:统计图像文件总数,应为 63,936;按前缀分组,应有 504 组,每组 144 张。
  2. 配对核对:每张图像应有同名 JSON;缺失率应为 0,若有缺失,记录缺失的模型组合。
  3. 坐标合理性:随机抽 50 张,检查所有可见穴位的 x、y 是否落在 0–100;若出现大量 0,说明不可见点未被过滤。
  4. 遮挡比例:统计每帧不可见点占比,应随视角变化(背面视角高、正面视角低);若各视角比例接近常数,说明遮挡过滤未生效。
  5. 深度单调性:同一穴位在连续旋转帧中的 h 应平滑变化,若出现跳变,检查是否有坐标换算错误。
  6. 掩码一致性:抽 10 张,把 2048 掩码降采样到 1024 后与图像叠加,穴位白点应落在头面部合理位置(而非背景)。

这六步不需要 GPU,纯 CPU 半小时内可完成,是接入数据前的必要体检。

附录 AC:与本库"合成 vs 真实"条目的引用纪律

本库目前有多条合成或半合成数据条目(synthea、synthrad、synthoct、medsynth、simcol3d、AcuSim)。跨条目引用时应遵守三条纪律:

  1. 标注合成方式:生成式(GAN/扩散)与渲染式(三维软件)在域差模式上完全不同,引用时必须写明是哪一种。
  2. 不跨任务比较精度:不同任务的精度数字没有可比性,综述中不要把它们放进同一张排行榜。
  3. 不把合成结果写成真实结果:这是最常见也最严重的错误,尤其在二手引用中,限定语常在转述中丢失。

AcuSim 属渲染式合成,其几何真值精度高于生成式,但纹理真实度低于生成式。这一对比关系在 §8.5 与附录 J 中已给出。

附录 AD:常见下游任务与适配建议

下游任务 适配方式 注意事项
关键点检测 直接用 x、y 作回归目标 需处理不可见点的权重
穴位名称分类 用 name 字段作分类标签 9 个经络头需与 map.txt 对齐
穴位区域分割 用 2048 掩码作监督 掩码需降采样,注意边缘
深度估计 用 h 作辅助监督 h 为归一化值,非物理深度
姿态/视角估计 用帧号反推相机角度 角度与帧号的映射是固定表
域适应研究 作源域,真实照片作目标域 必须留出真实测试集
教学可视化 用 xuewei5.py 叠加显示 仅作演示,不作评测

附录 AE:常见问题快速索引

你遇到的问题 去读
不知道数据能不能商用 §7.3、坑 2
不知道 99.73% 能不能引用 §5.3、坑 4
不知道 92.86% 的分母 §5.7、坑 3
JSON 解析报错 附录 E、附录 Z 第 6 条
训练不收敛 §5.4 可见性先验、附录 G
想扩展到其他部位 §6.3、Q23
想和真实照片集联用 §9.3、附录 O、附录 S
想写综述 §2.5、§8.5、附录 J
想核对数据完整性 附录 AB
想了解针灸背景 附录 AA

附录 AF:版本与勘误记录

日期 事件 影响
2023-11-21 GitHub 仓库创建 代码先行
2024-10-22 论文投稿 —
2025-02-05 GitHub 最后推送 代码冻结
2025-03-28 Dryad v3/v6 发布 数据公开
2025-03-31 论文接收 —
2025-04-01 Dryad v6 元数据修改 作者机构信息更新
2025-04-15 论文正式发表 版本记录生效
2026-10-17 本条目生产 抓取时点

Dryad 的 v6 元数据修改发生在论文接收之后、正式发表之前,修改内容为作者机构信息,与数据文件无关。这一时序说明团队在论文定稿阶段同步校正了仓储元数据,是较好的数据管理实践。

附录 AG:致谢与资助信息转录

论文致谢:本研究受西交利物浦大学人工智能大学研究中心、江苏省数据科学与认知计算工程研究中心、苏州市智能虚拟工程重点实验室(SZS2022004)资助;并感谢 Ziniu Wu 在研究过程中的支持与指导。

GitHub README 致谢列出同样的三家资助单位。两处一致,无口径差异。

附录 AH:作者贡献转录

  • Qilei Sun:构思与设计研究、撰写稿件
  • Jiatao Ma:执行实验、分析数据
  • Paul Craig:数据处理、稿件反馈
  • Linjun Dai:针灸专家,提供人工标注、医学指导与见解
  • Eng Gee Lim:监督项目、关键修订、经费获取

从分工可以看出,标注工作由临床专家承担,算法与工程由高校团队承担,这是医学 AI 数据集较理想的协作结构。

附录 AI:与论文 Table 1 对照的要点提炼

论文 Table 1 将既有穴位数据集与 AcuSim 在五个维度比较:数据集规模、穴位数量、受试者数量、图像质量、定位技术。由于表格为图片形式未逐格转录,本条目只提炼可核实的对比要点:

对比维度 既有工作 AcuSim
最大标注量 约 2.8 万条 1,100 万+ 条
覆盖区域 手、上肢、面部正面 颈颅部(头面+颈项)
图像类型 真实照片 / RGB-D 合成渲染
定位方式 二维为主 三维体积球 + 二维投影
受试者 少量真人 504 个合成模型

表中"约 2.8 万条"是论文对既有工作上限的概括,具体各数据集的数字需回到原文核对。本条目不逐条转录,避免二手转述失真。

附录 AJ:结语补注——为什么"合成"值得被认真对待

在医学 AI 领域,合成数据长期被视为"退而求其次"的方案。AcuSim 提供了一个反例:当真实数据的采集成本高到无法支撑规模化训练时,合成不是妥协,而是一条独立的技术路线。它的成功条件是明确的——任务的真值必须可以由几何规则精确生成(穴位位置正是如此),而不是依赖难以模拟的生理信号(如病灶的影像表现)。

这条判据可以迁移到其他领域:凡是"位置、形状、拓扑"类真值,渲染合成往往有效;凡是"病理、代谢、功能"类真值,渲染合成难以奏效。AcuSim 落在前一类,因此它的 63,936 张图是有意义的;也正因如此,它的结论不能外推到后一类。

理解这一点,比记住 99.73% 这个数字更重要。

附录 AK:数据集在论文中的完整自述(要点摘录)

阅读论文时,有几段自述值得原样记住,它们决定了这个数据集的定位:

关于"为什么是合成"(Methods, Domain Randomizers):作者给出两条理由——一是以低成本快速构建大规模穴位数据集;二是减少对真实照片的依赖,因为当时并不存在现成的、已标注体积式穴位的颈颅部模型。这两条理由都很实际:第一条是成本,第二条是资源空缺。也就是说,合成路线不是团队偏好,而是在"没有现成真实数据"前提下的可行解。

关于"模型不代表整个人群"(同上):作者明确写"我们提出的这组模型并不代表整个人群,但每个模型对应一个源自真实受试者的独特体型与解剖特征"。这句话有两层:承认样本不代表性;强调单个模型的解剖来源是真实的(通过 DAZ 的解剖参考)。引用时不能只取后半句。

关于"遮挡的处理方式"(Automatic Occlusion Filter):作者用两条判据过滤遮挡点——法向量夹角与 bbox 白像素检测。这套方法在合成数据里可行,是因为渲染器能直接给出法向量;在真实照片里则无法直接获得网格法向量,需要先做三维重建。这也是合成数据的一种"额外信息红利"。

关于"为什么不用 U-Net"(Threshold Segmentation):作者的三条理由(实时性、不依赖训练数据、边缘精度)中,最本质的是第一条——穴位是抽象位置,没有可见像素区域,用分割网络去学"不存在的东西"是不合适的。这一判断可以直接迁移到其他关键点类任务。

关于"局限与后续"(Limitations):作者列出的三项后续方向——语义分割做环境统一、Stable Diffusion 模拟光照、重新渲染做风格迁移——都属于"合成到真实"的桥接手段。这说明团队自己清楚这份数据的短板在哪里。

附录 AL:这份数据不适合回答的问题

为避免使用者在错误的赛道上投入,这里把"不该问的问题"列清楚:

  1. “真实患者上能到多少精度?” 本数据集无法回答。合成域与真实域的差距需要真实数据测量。
  2. “不同种族、肤色的人穴位位置差异有多大?” 数据集的肤色不是受控变量,无法支撑这类比较。
  3. “儿童与成人的穴位位置差异?” 没有儿童样本。
  4. “进针到哪个深度最有效?” 体积球携带深度信息,但数据集不涉及疗效,无法回答。
  5. “这套模型能否用于临床辅助定位设备?” 需要真实数据验证与器械注册流程,本数据集只是算法原型阶段的素材。
  6. “AcuSim 与真实照片集哪个标注更准?” 两者标注定义与误差来源不同(三维几何 vs 人工点选),不能简单比较。

把这些"不能答"的问题先摆出来,使用者才不会在实验设计上走弯路。

附录 AM:给数据工程团队的接入建议(工程视角)

存储规划:压缩包 13 GB,解压后按 504 组 × 144 张计算,若含多分辨率子目录,实际占用可能显著高于 13 GB。建议预留 60–100 GB 的可用空间,并优先只解压 1024 分辨率子目录。

索引设计:以「模型组合 ID + 帧号」作主键,组合 ID 可由文件名前五段拼接得到。建立索引后,按模型划分训练/验证只需对组合 ID 取模,避免同一模型跨集泄漏。

读取性能:63,936 张 1024×1024 图像随机读取会成为训练瓶颈。建议预先转成 LMDB/WebDataset 等打包格式,或至少按模型分目录存储以提高磁盘顺序读性能。

预处理流水线:JSON 读取→不可见点过滤→坐标还原为像素→归一化→张量化,这条链路建议做成独立的离线预处理步骤,把结果缓存下来,避免每个 epoch 重复解析 JSON。

验证环节:上线前跑一遍附录 AB 的六步抽检,尤其是"掩码与图像叠加"一项,它能最快发现坐标系方向错误(如 y 轴翻转)。

附录 AN:关于"合成数据能否替代真实数据"的立场说明

这是一个方法论层面的问题,本条目给出明确立场:

不能替代,但可以前置。

合成数据解决的是"从零到一"的问题:在真实数据尚未积累时,用低成本方式让算法跑起来、让团队建立基线、让标注规范在迭代中成熟。真实数据解决的是"从一到可用"的问题:域匹配、边缘案例、临床可信度,只能由真实数据提供。

AcuSim 的位置在"从零到一"这一段。把它当作终点,会得出"AI 取穴已达 99.73%"的误判;把它当作起点,则能得到一条"合成预训练—真实微调—临床验证"的合理路径。这条路径在医学影像的其他子领域已被反复验证(如合成 CT 预训练、真实 CT 微调),AcuSim 只是把它带到了中医穴位这个此前空白的场景。

附录 AO:读者常问的五个"为什么不"

为什么不直接用真人三维扫描建模,而非要用 DAZ?
三维扫描成本高、样本少、涉及隐私,且难以获得带穴位标注的扫描。DAZ 的 Genesis 模型提供了解剖参考基础,可批量变形,适合规模化。

为什么不做全身,只做颈颅部?
颈颅部解剖复杂、穴位密集、遮挡严重,是难度最高也最需要数据的区域;全身扩展是作者提到的后续方向。

为什么不用更强的骨干网络?
作者选了 VGG19 并承认未做横向对比。这可能是资源约束下的取舍,也可能是因为冻结卷积 + 全连接的组合在小数据集上更稳定。无论原因如何,这是方法层面的已知局限。

为什么不直接生成真实风格图像?
论文把风格迁移列为后续工作,说明当前版本未做。生成式风格迁移会引入新的不确定性(可能改变几何),在需要精确坐标的任务上风险较高。

为什么许可不统一?
常见原因是论文、代码、数据分别由不同流程管理,各自套用了默认模板。这不代表作者有意设限,但确实给使用者带来解释成本,故本条目单列一节讨论。

附录 AP:条目自检对照表

检查项 状态 说明
明确写出"合成数据" ✅ 导语、INFOBOX、§6、结语均明示
适用/不适用范围 ✅ §6.3 / §6.4 两栏
与 body-acupoint-images 区分 ✅ §2.6、§9.3、附录 S
坑点编号制 ≥5 ✅ §10 共 10 则
DAIMS 表 ✅ 附录 B
硬数字有源 ✅ 附录 C 逐项
双口径存照 ✅ 附录 R 五条
互链 rid 全为占位 ✅ 正文只写 rid 数字作说明,frontmatter 无 relatedLink
frontmatter 字段长度 ✅ title/subtitle/description 均在限内

附录 AQ:最后一段提醒

如果你只从这篇条目里带走一句话,请带走这句:AcuSim 的 99.73% 是在渲染图上得到的,它的真正价值是把穴位标注从"请专家标"变成"让几何算"。 前者是边界,后者是贡献。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • umid — 共享标签:医学影像 / 目标检测 / 图像分类 / 医学图像分割 / 评测基准
  • body-acupoint-images — 共享标签:医学影像 / 目标检测 / 图像分类 / 医学图像分割 / 评测基准
  • fpus23 — 共享标签:医学影像 / 目标检测 / 图像分类 / 医学图像分割 / 评测基准
  • prostate158 — 共享标签:医学影像 / 目标检测 / 医学图像分割 / 评测基准
  • dental-opg-xray — 共享标签:医学影像 / 目标检测 / 图像分类 / 评测基准
  • multicenter-dental-panoramic — 共享标签:医学影像 / 目标检测 / 图像分类 / 医学图像分割
  • fetal-abdominal — 共享标签:医学影像 / 目标检测 / 医学图像分割 / 评测基准
  • inredd-dataset-pan924 — 共享标签:医学影像 / 目标检测 / 图像分类 / 医学图像分割
  • heart-lung-segmentations-data — 共享标签:医学影像 / 目标检测 / 医学图像分割
  • tn3k — 共享标签:医学影像 / 图像分类 / 医学图像分割 / 评测基准

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集