信息速览
缩写撞车在这类数据里并不罕见。OPPD 这个四字母出现在检索结果里时,常被误认成一门海洋遥感产品,理由是另一端确实有一个名称形态相近的浮游植物物候数据集。实际情况相反:它是一份建在丹麦西兰岛露天苗床上的陆生杂草幼苗图库,拍摄者是奥胡斯大学的研究团队,任务是让机器在苗期把杂草一株一株地找出来、认出来。
它之所以值得单独成页,不在于规模有多大,而在于它同时做了两件同类数据很少一起做的事:一是把每一株苗的时间轨迹串了起来,二是把同一物种放在理想、干旱、自然三种生长条件下各养一遍。前者让数据可以做追踪与重识别,后者让数据可以做跨条件鲁棒性消融,两者合在一起,才使"苗期视觉识别"从单张分类问题变成了一个有时间、有对照的实验设计。
需要先说清的边界是分发方式:完整资产托管在校内代码仓库,网上能公开下载到的只是其中一个子目录的压缩包,体积不到百兆。这一点决定了绝大多数使用者拿到的是一份被截断的样本,而不是论文里那套七千余张、三十一万余个标注对象的全量。下面会反复回到这一点。
一屏速览见下表。
| 字段 | 内容 |
|---|---|
| 中文名 | 开放植物表型数据库(OPPD) |
| 英文全称 | Open Plant Phenotyping Database |
| 别名/简称 | OPPD;Open Plant Phenotype Database(论文标题用 singular 形式);不要与浮游植物物候产品、其他以 OPP 开头的缩写混用 |
| 对象 | 苗期的农田杂草(以西北欧常见种为主),另含被当作对照的作物幼苗 |
| 数据模态 | 俯拍 RGB 图像;整箱图与单株裁切图两类;附表格型标注 |
| AI 任务类型 | 植株实例检测(目标检测);物种单标签分类;跨帧个体追踪;开集识别 |
| 图像总数 | 七千五百九十张整箱图(论文口径) |
| 标注对象数 | 三十一万余个包裹框(论文正文与官网数字相差三个,见 §2) |
| 个体数 | 六万四千二百九十二株(经跨帧去重) |
| 物种数 | 47 个 EPPO 代码(播了 46 种,混种导致多出一类) |
| 生长条件数 | 3(理想、干旱、自然) |
| 图像分辨率 | 土壤平面约 44 像素/平方毫米;长约 6.6 像素/毫米的等效表述见正文 |
| 公开体积 | Zenodo 镜像 74.4 MB;完整包体积官方未公布 |
| 许可证 | CC BY-NC-SA 4.0(禁止商业使用,改编须同许可) |
| 访问级别 | 公开可下载(完整包依赖校内 GitLab,镜像在 Zenodo) |
| 首发日期 | 2020-04-16(Remote Sensing 第 12 卷第 8 期) |
| 发布机构 | 奥胡斯大学电气与计算机工程系,Flakkebjerg 研究中心 |
| 官方主页 | vision.eng.au.dk |
| 下载地址 | GitLab 仓库;Zenodo 子集 |
| DOI | 10.3390/rs12081246(论文);10.5281/zenodo.7501825(子集镜像) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 标注粒度细、有时间轴、有对照设计;扣分在分发分散、许可禁商用、近重复严重 |
| 页面状态 | published |
§1 它是什么:一箱一箱的苗,一株一株地数
这一节回答"这份数据到底装了什么"。对应的是第一次听说这个名字、需要判断要不要花时间下载的人。
1.1 一句话定位
OPPD 是把农田杂草的苗期生长过程,搬进一排排泡沫育苗箱里,用固定机位俯拍下来,再把每一张图里的每一株苗都用外接框圈出来、编上号、连成一条时间线的图像库。
它不是从田里"捡"来的数据,而是"种"出来的。研究者先把播了单一物种的育苗箱按三种水肥条件分组摆好,再在数天内反复拍摄同一批箱子。因此每一株苗都有出生后的多张快照,而同一物种又有三种不同处境下的样子。
1.2 为什么它不是一份普通的杂草图鉴
普通的杂草图鉴是一张图对一种草,干净、居中、背景一致。OPPD 的结构恰恰相反:一张图里同时有几十株,彼此遮挡、大小不一、有的刚破土有的已长开。这意味着它原生支持的是检测任务,而不是分类任务——分类只是把框内的裁切图再喂给另一个模型。
更关键的是那三种生长条件。干旱条件下的苗叶片更小、颜色更淡、茎更细,同一物种在不同条件下的外观差异可以大到让一个只看过理想条件训练的模型直接失灵。这一点在论文的基线实验里并没有被系统地做成对照,但对使用者来说,它提供了一个现成的域偏移实验台。
1.3 三十秒决策卡:你的处境对得上哪一行
| 你的处境 | 这份数据能帮你什么 | 需要你自己补什么 |
|---|---|---|
| 想复现一个农业目标检测基线 | 有官方定义的检测任务与评估口径,可直接对齐 | 需要自己重建按箱划分的切分 |
| 研究小样本或开集物种识别 | 47 个物种,单类样本量差异大,天然接近长尾 | 需要确认长尾类的实际样本分布 |
| 做领域自适应 | 三种生长条件构成现成的三域 | 缺跨地区、跨季节的第四域 |
| 做多目标追踪 | 有跨帧稳定的个体编号 | 需要按试验号逐箱取图,注意错配 |
| 想直接训练除草机器人 | 可以当预训练语料 | 必须重训并在真实地块另做独立验证 |
| 需要多光谱或深度信息 | 给不了 | 全库仅 RGB |
| 面向企业交付或收费服务 | 需要另行取得授权 | 许可禁止商业使用 |
这张表的左列只写处境,不写特性,因为特性在下面几节里都会有。第一列能对上哪一行,基本就决定了要不要继续往下读。
1.4 不适合谁:划界比罗列优点更有用
第一类不适合的是把它当作田间部署验证集的人。苗床是俯拍、有箱壁、光照均匀,田间是侧视、有风、有阴影叠影,两者之间的差距不是数据增强能抹平的。
第二类不适合的是想用它研究作物—杂草竞争的人。每一箱只播一个物种,箱与箱之间物理隔离,竞争关系被设计掉了。它能回答"这一株是什么",回答不了"这一片地里谁挤占了谁"。
第三类不适合的是需要地理多样性的生态学研究者。全部图像来自丹麦的一个试验点,物种名单是当地农田的常见杂草,跨区域的外推没有数据支撑。
第四类不适合的是无法接受非商业条款的商业团队。这一点必须放在最前面,因为一旦项目进入商业化路径,许可问题会比模型指标更难解决,而且往往在模型已经训练完之后才被发现,此前的投入全部要重新评估。
第五类不适合的是想做多季连续观测的人。全部拍摄集中在一次试验季内的数次批次,跨年重复的只有仓库层面的静态文件,没有第二个生长季的对照。想研究年际变化,这份数据从设计上就给不了。
还有一个容易被忽略的排除项:它不适合用来做杂草与作物的区分研究。虽然库里有作物幼苗作为对照,但每个箱子里只有一个物种,杂草和作物从来没有在同一帧里真正竞争过。真实田间的难点在于同一垄里两种苗形态接近、交错生长,这种场景在这份数据里是被设计消除的,而不是被采样不足掩盖的。
1.5 两个任务,两种读法
论文给了两组基线:一组是植株实例检测,把所有框统一压成"植物界"一个类,只考位置;另一组是物种分类,用裁切图考类别。这两组任务对数据的要求完全相反。
检测任务几乎不关心物种标签的准确度,关心的是密度——一张图里能有几十个框,密集重叠处的漏检才是难点。分类任务几乎不关心位置,关心的是类间可分性与类内方差——同一物种在三种条件下的样子要能被同一个模型认成同一类,这恰恰是这份数据最难的部分。
把这两组任务混在一起评价,是这份数据被误用最常见的方式。看到检测指标很高就推断分类也能做得好,或者反过来,都会得出错误结论。
还有一个层面值得说明:两组任务的失败模式不一样。检测失败的典型样貌是漏掉被大叶遮挡的小苗,以及把一株分裂成两个框;分类失败的典型样貌是把同一物种在干旱条件下的个体判成另一个物种,或者把双子叶粗类误判成某个具体阔叶种。前者是几何问题,后者是外观问题,两者的改进手段几乎不重叠——检测靠分辨率和后处理,分类靠数据增强与类别平衡。
这也解释了为什么论文要分开给两组基线。合在一起报一个总分,会掩盖掉这种结构性差异,让后来者误以为只要把一个数字刷上去就算改进。
1.6 它在一张更大的地图上的位置
如果把农业视觉的数据按"采集场景"排一条轴,最左端是实验室与温室里的受控拍摄,最右端是完全不受控的田间车载采集。OPPD 落在偏左但还没到最左的位置:露天地块、自然光照、真实土壤与杂草种子,但箱体隔离、机位固定、俯视无风。
这个位置不是妥协的产物,而是一种取舍。往左走,可控性更高但外推性更差;往右走,真实感更强但标注成本急剧上升,因为田间植株无法逐株追踪。OPPD 选择的是"可控但不完全受控",以便在同一份数据里同时获得干净标注与条件对照。
理解了这一步,就能判断它适合放进哪一段流程,也不容易被"看起来是田间照片"这一点误导。
§2 数据构成:七千五百九十张是怎么数出来的
这一节回答"规模到底多大、结构怎么分"。对应的是要写方法章节、需要交代样本量的人。
2.1 三组必须一起看的数字
| 层次 | 数量 | 含义 |
|---|---|---|
| 图像 | 七千五百九十 | 一张整箱俯拍图为一幅 |
| 标注对象 | 三十一万余个外接框 | 一次标注对应一个可见植株个体 |
| 个体 | 六万四千二百九十二 | 跨帧去重后的真实植株数 |
| 物种 | 四十七 | 按 EPPO 编码计的类别数 |
| 生长条件 | 三 | 理想、干旱、自然 |
图像数最小,个体数居中,标注对象数最大,这个排序说明了全部问题:同一株苗会被拍很多次,每一次都贡献一个框。所以三十一万余既不等于"三十一万株植物",也不等于"三十一万个独立样本"。凡是在论文里把这两个数混用的地方,统计口径都值得怀疑。
2.2 三个数字之间的换算关系
用标注对象数除以个体数,得到每株苗平均被多少次记录。这个比值是理解整份数据结构的关键:它既是追踪任务的信息来源,也是泄漏风险的来源。
对使用者而言,这个比值有一个直接后果:任何按图像随机的切分,都会让同一株苗的不同快照分别落进训练集和测试集。模型在测试时看到的其实是训练时见过的个体,只是长高了一点。这不是数据的问题,是切分方式的问题,而这份数据的结构决定它必然发生。
2.3 一箱一物种的设计
每一箱只播一个物种,箱内可能出现两种东西:播种的目标苗,以及土里自带的、或混进来的非目标幼苗。后者在标注时被压成单子叶与双子叶两个粗类,或者干脆并入杂草类。
这个设计的好处是物种标签几乎是确定的,不需要逐株判断;坏处是它把"真实田间的混合播种场景"整个拿掉了。田间一垄里作物和杂草混生、根系交错、叶片交叠,而这里的每一箱都是一个干净的单种小区。
2.4 三种生长条件怎么实施
三种条件对应三组箱子:理想组按常规水肥管理;干旱组在苗期刻意控制浇水,让苗处于水分胁迫;自然组不额外干预,随露天气候走。
这三种条件造成的形态差异,比多数人预期的更大。干旱组的幼苗在叶面积、色泽饱和度、茎的粗细上都会明显收缩,某些物种还会提前抽薹。论文的基线分类实验并没有把条件作为单独因素做消融,但数据本身是支持这种分析的,这也是它比同类单条件数据集更有用的一处。
2.5 官方数字里那处三的差额
官网与论文摘要写的是三十一万三千零三十八,论文正文的表格里写的是三十一万三千零四十一。三的差额通常来自标注修订后未同步位置,或统计时点不同。
处理办法很简单:引用时说明用的是哪个数、来源是哪一处,不要在两个数字之间来回跳。三这个量级对任何结论都不构成影响,但口径不交代会让审稿人认为没有认真读原文。
2.6 分辨率的两种表述
官网写的是土壤平面约 44 像素每平方毫米,论文摘要写的是约 6.6 像素每毫米。这两个表述描述的是同一个量纲换算后的结果,看起来矛盾只是因为口径不同:一个是面积密度,一个是线密度。
实际影响在于裁切。按 6.6 像素每毫米算,一株小苗在图像中可能只有几十个像素宽,做检测时下采样过度会让小目标直接消失。这也是为什么多数公开基线不会把输入缩得太小,而是保留较高分辨率再分块推理。
还有一个更细的后果和标注框的精度有关。像素级分辨能力受限于成像,框的坐标却以整数像素给出,因此在最小苗的阶段,框的相对误差可以很大:差一个像素,面积上就差了明显一截。评估时用交并比阈值一刀切,对小苗不公平——同样的绝对误差落在小框上,交并比掉得更快。做跨尺度比较时,建议按框面积分档报告,而不是只报一个总平均精度。
2.7 物种清单的分布形状
官网把四十七个代码逐一列出并附拉丁名与英文俗名,这在同类数据里是少见的细致。清单本身也透露了采集的偏好:以一年生禾本科与常见阔叶农田杂草为主,其中禾草类与菊科、十字花科的比例较高,因为它们在西北欧的冬小麦与玉米轮作制里出现频率最高。
这份清单的用途不只是查名字。把它与自己的目标田块杂草谱对照,能很快判断覆盖是否够用——如果目标田块里占优势的几个种不在名单里,那么即使模型在这份数据上表现很好,迁移过去也不会好。这一步通常比看总体指标更有决策价值。
清单里还有一处容易忽略的细节:作物幼苗只占很小一部分,绝大多数物种都是杂草。这意味着用它训出来的分类器在"识别作物"这件事上并不均衡,把作物与杂草当成对称的两类来处理,会在实际田块上出现明显偏差。
§3 标注体系:EPPO 编码与那条时间线
这一节回答"标签长什么样、靠什么把个体串起来"。对应的是要设计训练管线、需要理解标注语义的人。
3.1 EPPO 编码是什么
EPPO 是欧洲与地中海植物保护组织的简称,它维护一套给农业植物用的标准代码,每个物种一个短代码,形如四到五个大写字母。这套编码的好处是跨语言、跨数据集的名称统一,避免了俗名与学名之间的混乱。
OPPD 的每个框都带一个这样的代码。这意味着它的物种标签可以直接与植保文献、农药登记、检疫名录对齐,而不需要先做名称消歧。这一点在农业数据里并不普遍,多数图像库用的还是拉丁名或文献自定的类名。
3.2 两个粗类:单子叶与双子叶
不是所有框都能标到种。混进来的非目标幼苗,很多时候刚出土、形态特征还没出来,只能辨认出是单子叶还是双子叶。
这两类以外来代码的形式出现,含义是一个上层分类而不是一个具体物种。做分类时如果把它们当成普通类别,会在混淆矩阵里制造出一个语义混杂的类;做检测时会发现它们与多个物种框形态相似,需要单独处理。
3.3 外接框的标注粒度
标注粒度是逐株的外接矩形,不是多边形、不是掩膜、不是关键点。矩形在叶片交错时会包含大量邻近植株的像素,这对外接框回归来说是正常难度,对语义分割来说完全不够用。
如果任务需要叶级分割或器官级定位,这份数据用不上——它没有提供任何像素级标注,也没有提供叶片数量的计数。
3.4 时间追踪是怎么实现的
流程分三步。第一步,用育苗箱四个角的位置做仿射变换,把每一帧图像映射到一个统一的、轴对齐的坐标系里,尺寸固定。第二步,把时间上相邻两帧的框做匹配,交并比超过一个阈值的视为同一株的候选。第三步,候选多于一个时,用匈牙利算法在这个二部图上求最优配对,代价矩阵取一减去交并比。
这个流程的阈值是经验确定的,对应大约一半的重叠。箱子固定、机位固定、生长缓慢这三个前提让匹配在多数情况下可靠;但苗密度高、叶片伸展后大幅变形时,同一株在相邻帧的框形状会变化很大,错配就会发生。论文对这一点有讨论,但未做量化。
3.5 个体编号的使用纪律
plant id 是这份数据最有价值的字段,也是最容易被误用的字段。
正确用法是按试验号与箱号整箱划开,让同一箱的全时间序列落进同一侧。错误用法是按帧随机切分,此时同一株苗会跨集出现,任何追踪模型的指标都会虚高。这一点在数据文档里没有强制约束,需要使用者自己写进切分脚本。
3.6 标注质量能做到什么程度
这份数据的标注质量有一个容易理解的天花板:它由人来画框,而人面对一张有几十株苗、叶片交错的俯拍图时,判断"哪一片叶子属于哪一株"并不总是清楚的。
由此产生三类误差。第一类是切分误差:两株苗的叶子交叠,框的边界画在哪一边,不同的人会给出不同的答案。第二类是遗漏误差:被大叶完全遮住的小苗,画框时根本看不见,标注里就没有它。第三类是归类误差:混进来的非目标苗被归入粗类还是被忽略,边界并不严格。
论文对这三类误差都没有给出量化,这是元数据里最实在的一处空白。使用者在报指标时应说明自己没有做额外校验,而不是默认标注是金标准。
3.7 与外部编码体系的接续
EPPO 代码的价值在于它是一个活的标准,而不只是一个字符串。用它可以查到物种的学名、异名、寄主范围、在各地的检疫地位,这些信息能直接接入下游的业务规则。
但接续不是自动的。代码与学名的对应关系会随分类学修订变动,某些物种被拆分或合并后代码也随之调整。若下游系统依赖旧版名录,映射就会失败。稳妥的做法是在本地固化一份映射表并注明版本,而不是每次查询都走在线接口。
§4 完整集与公开子集:这本页最需要说清的一条
这一节回答"能拿到多少"。对应的是准备开题、需要评估取数可行性的人。
4.1 两种分发渠道
| 渠道 | 内容 | 体积 | 门槛 |
|---|---|---|---|
| 校内 GitLab 仓库压缩档 | 完整目录树:多个图像目录、标注表、文档 | 官方未公布 | 需能访问校外域名,机构网络可能受限 |
| Zenodo 记录 7501825 | 单个压缩包,只含一个图像子目录 | 74.4 MB | 无需注册,直接下载 |
| 第三方再托管 | 转载上述镜像,描述与许可各自标注 | 不稳定 | 视站点而定 |
三个渠道里,只有第二个是"点开就能下"的。第一个是真正的完整资产,但它托管在一所大学的代码服务上,访问稳定性不由使用者控制,也不保证长期存在。
4.2 子集到底截掉了什么
Zenodo 那份的描述里写得很直白:它是某个图像目录下 jpg 文件的子集。这意味着两件事被留在了完整包里:一是其他图像目录,二是标注表。
只有图像而没有标注表,是无法直接训练检测模型的。图像本身能用来做无监督预训练、能用来做裁切图分类的素材补充,但它不能支撑论文里那两组基线任务。这是"公开的是子集"这件事最实质的后果,而不只是"少了一些图"。
4.3 为什么会出现这种分发格局
这类学术数据集的分发格局通常由三件事决定:机构仓库的带宽与存储配额、许可条款对再分发的限制、以及作者对"数据被人拿去商用"的顾虑。
OPPD 选的是禁止商业使用的许可,再加上校内仓库托管,实际上是让完整数据停留在学术圈内部可达的状态。Zenodo 那份子集更像是给外界的一个可验证的切片——能证明数据是什么样,不足以让人完整复现。
这不是道德评价,是取数规划时必须计入的现实:如果你的项目需要完整标注,就要先确认能访问那个仓库;如果只能拿到 Zenodo 那份,就应当把它当"样本"而不是"数据集"来用。
4.4 用子集能做什么、不能做什么
| 任务 | 用子集能否支撑 |
|---|---|
| 无监督或自监督预训练 | 可以 |
| 粗略的物种识别试验 | 可以,但样本不全 |
| 论文级的检测基线复现 | 不可以,缺标注表 |
| 追踪算法验证 | 不可以,缺时间序列完整性 |
| 跨条件消融 | 部分可以,取决于子集是否覆盖三组条件 |
| 与其他数据做规模对比 | 不可以,子集规模不代表全量 |
这张表的作用是防止一个常见错误:拿子集的规模去描述整份数据集。两者的数量级差得很远,混用会直接导致方法章节的样本量写错。
4.5 一份诚实的取数清单
真正要复现工作,需要的清单大致是:完整仓库压缩档、逐帧标注表、按箱整理的时间序列索引、以及论文里那份按试验分组的切分说明。前两项在完整包里,后两项需要自己从标注表重建,因为数据本身没有提供官方切分文件。
4.6 三条替代路径的取舍
如果完整包确实拿不到,有三条路可走。
第一条是找已公开的派生物。有些论文在 OPPD 基础上做过重打包与再划分,发布在自己的补充材料里。这条路的坑在于派生物的许可状态往往不清,而且切分方式可能与原文不同,指标无法直接对照。
第二条是换同类数据。公共的杂草幼苗图库里还有若干份,有的作物与杂草混生、有的覆盖更多地区,但都没有三种条件与逐株追踪这两个特性。换了数据就要重做基线。
第三条是自采。用育苗箱加固定机位复刻这套设计并不难,难的是标注成本与追踪算法的调参。如果实验的核心是条件对照而不是检测精度,自采反而是最可控的路径。
三条路没有绝对优劣,判断依据是研究问题需要哪一项特性,而不是哪条路更省事。
§5 怎么拿到与怎么装载
这一节是工程层。对应的是要把它搬进管线的人。
5.1 先确认仓库可达
在动手写加载代码之前,先确认能否访问托管地址。机构网络与出口策略常会拦截校外域名,这一步失败后面全白做。
#-- 只做可达性探测,不下载;返回 200 才算通路
curl -s -o /dev/null -w "%{http_code}\n" \
https://gitlab.au.dk/AUENG-Vision/OPPD
#-- 镜像地址同样探一次,作为备选路径
curl -s -o /dev/null -w "%{http_code}\n" \
https://zenodo.org/records/7501825
两个地址返回的状态码含义不同:前者通了才有完整标注,后者通了只说明子集可用。看到第二个是 200 就以为取到全量,是最常见的误判。
5.2 子集的解包与清点
拿到压缩包后第一件事是数文件,不要直接导入训练框架。
#-- 解包并统计图像数,作为与官方口径对照的第一步
unzip -q seedlings.zip -d oppd_subset
find oppd_subset -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) | wc -l
find oppd_subset -type d | head -20
三行的打印结果里,最该看的是数量本身。它应当明显小于七千五百九十,因为这只是子集。如果某个目录下的图像数恰好等于全量,说明镜像已经更新,需要回头核对记录描述。
第二步是判断子集覆盖了哪几种生长条件。把目录名与官网的三种条件对照,如果只覆盖其中一种,那么跨条件消融这条路当场就走不通了,需要改去其他渠道取数。这一步的结论会直接决定后面几节能做什么。
5.3 从标注表重建索引
完整包里的标注表是把它变成可用数据的枢纽。按箱与日期聚合,才能得到时间序列。
import json
from pathlib import Path
from collections import defaultdict
#-- 读取整箱图像的元数据表,按箱号聚合时间序列
meta_path = Path("OPPD/DATA") / "image_info.json"
rows = json.loads(meta_path.read_text(encoding="utf-8"))
by_box = defaultdict(list)
for r in rows:
key = (r["trial_id"], r["box_id"])
by_box[key].append((r["date"], r["image_id"], r["growth_condition"]))
for key in sorted(by_box)[:3]:
seq = sorted(by_box[key])
print(key, len(seq), seq[0][2])
上面这段的关键不是输出格式,而是按试验号与箱号分组这一步。它决定了后面切分时会不会泄漏。
一段箱内序列的长度,等于这一箱被拍过几次。长度差异本身是有信息的:拍摄密集的箱子,其序列在追踪任务里更有价值;只拍过一两次的箱子,基本只能贡献单帧检测样本。装箱前按序列长度分层,比随机抽样更能控制实验的难度分布。
5.4 按箱切分而不是按图切分
import random
#-- 以箱为单位切分,保证同一株苗的全部快照落在同一侧
boxes = sorted(by_box)
random.Random(2020).shuffle(boxes)
n_val = max(1, int(len(boxes) * 0.2))
val_keys = set(boxes[:n_val])
train_ids = [i for k in boxes[n_val:] for _, i, _ in by_box[k]]
val_ids = [i for k in val_keys for _, i, _ in by_box[k]]
print("train", len(train_ids), "val", len(val_ids))
二十这个比例没有官方依据,只是与常见做法一致。真正要紧的是切分的单位是箱,而不是图。
5.5 一条可运行的最小检测基线
有了索引之后,用任何主流检测框架都能跑通。下面只演示数据组织,不绑定具体框架。
import json
from pathlib import Path
#-- 把逐帧标注转成 COCO 风格的单一类别标注,用于实例检测
ann = json.loads(Path("OPPD/DATA/box_annotations.json").read_text(encoding="utf-8"))
categories = [{"id": 1, "name": "plant", "supercategory": "Plantae"}]
images, annotations, next_id = [], [], 1
for img in ann["images"]:
if img["image_id"] not in train_ids:
continue
images.append({"id": img["_row"], "file_name": img["image_id"]})
for b in img["boxes"]:
annotations.append({
"id": next_id, "image_id": img["_row"], "category_id": 1,
"bbox": [b["xmin"], b["ymin"],
b["xmax"] - b["xmin"], b["ymax"] - b["ymin"]],
"iscrowd": 0,
})
next_id += 1
print(len(images), len(annotations))
检测任务把所有框压成一类,这是论文的做法,也是最省事的起点。要换成物种分类,只需把 category_id 映射到 EPPO 代码。
5.6 三个常见的装载陷阱
第一,文件扩展名大小写不统一。有的目录是小写 jpg,有的是大写 JPG,用单一通配符会漏掉一半文件。
第二,箱号与试验号在不同表里的字段名可能不一致。装箱前先打印表头,别照抄文档。
第三,裁切图的坐标是相对整箱图的,做检测时应当用整箱图加框坐标,而不是用裁切图的位置。混用会导致框位置整体偏移。
5.7 从哪里开始看代码
仓库里的文档与脚本是理解标注结构最直接的材料,优先级高于任何二手介绍。先读目录说明,再看标注表的字段定义,最后看基线脚本,这个顺序比从基线脚本反推要省时间。
§6 与站内其他页面的关系
OPPD 在站内的位置比较特殊:它是第一份以"单株个体"为基本单位、并且带时间轴的农业图像数据。五组关系值得写下来。
第一组是同类任务的镜像。PlantVillage 也是植物图像,也是单标签分类,但它的单位是"一片离体的叶",标签是作物—病害;OPPD 的单位是"一株活着的苗",标签是物种。前者回答"这叶子病了没有",后者回答"这株是哪种草"。两者在数据形态上恰好互为反面:一个干净、单主体、无时间轴;一个拥挤、多主体、有时间轴。
第二组是标签体系的对照。物种出现记录库(GBIF)用学名把全球观测串起来,OPPD 用的是 EPPO 的短代码。两者都是名称标准化,但一个面向生态记录、一个面向植保作业,编码体系各成一路,跨库使用需要一张映射表。
第三组是遥感与地面观测的分工。EuroSAT 是卫星视角的土地利用分类,一景覆盖几十公里;OPPD 是厘米级的地面视角,一帧只覆盖一个育苗箱。两者在空间尺度上差了六个数量级,但都服务于同一件事:把地表状态转成可计算的类别。
第四组是采集设计的借鉴。空气质量系统(AQS)的核心问题是站点之间的可比性,OPPD 的核心问题是箱子之间的可比性——三种生长条件让同一物种在受控差异下被并列观察。一个是空间上的站点校准,一个是处理上的条件对照。
第五组是合规与分发的对照。城市微生物组项目(MetaSUB)的数据分发走的是多平台并行,而 OPPD 完整资产停在校内仓库;核糖体参考库(SILVA)走的是集中托管与版本化发布,使用者能直接对照版本号取数。OPPD 在这一点上更接近项目制数据的常态:能拿到,但要有心理准备。
#-- 站内检索:按农业、植物、表型等词找同类条目
grep -iE "plant|agri|crop|weed|seedl|phenot|soil|farm" /tmp/online_slugs.txt
检索结果里与农业真正相关的记录很少,这也说明这份数据在站内目前更像一个孤点。农业方向的稀疏不是选择的结果,是覆盖的自然状态:作物基因组、土壤剖面、遥感农田、农机作业记录这几类都还空着。
§7 质量评估:用 DAIMS 一把尺子量到底
7.0 读这一节之前要先放下的一件事
最常见的评价错位,是把 OPPD 当作"数据量大不大"来打分。按规模排名,它在农业图像数据里并不突出,几千张图对一个检测数据集来说只能算中等。
正确的评价框架是把它当作实验设计的完整度来打分。按这个框架,它做得比多数同规模数据好:有对照条件、有跨帧个体编号、有官方定义的双任务、有明确的采集平台描述。
第二个错位是把"论文给了基线结果"当成"数据已经被充分验证"。官方基线只用了开箱模型,目的是把评估口径固定下来,不是在证明这套数据的上限。把那个数字当成可用性下界,会低估难度。
7.1 DAIMS 24 项逐条
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 整箱表与框表分离,天然关系型,透视方便 |
| 2 | 唯一标识 | ✅ | 图像编号、框编号、个体编号三层都唯一 |
| 3 | 特殊字符 | ⚠️ | 扩展名大小写混用,目录层数深,路径易出错 |
| 4 | 重复行 | ⚠️ | 同一株跨帧多次出现,统计上是不同记录,建模上是近重复 |
| 5 | 缺失编码 | ⚠️ | 粗类充当"无法细分"的兜底,但没有显式缺失标记 |
| 6 | 标签标识 | ✅ | EPPO 代码全覆盖,与外部编码体系对齐 |
| 7 | 罕见类分组 | ⚠️ | 单类样本量差异大,官方未给分组建议 |
| 8 | 偏倚评估 | ⚠️ | 三种条件是设计性对照,但没有系统量化各条件下的性能落差 |
| 9 | 数据字典 | ⚠️ | 字段含义散在文档与论文里,无单独字典文件 |
| 10 | 信息性缺失解释 | ❌ | 无缺失机制设计,缺即无 |
| 11 | 设备记录 | ⚠️ | 平台与分辨率有描述,相机型号与曝光参数未列出 |
| 12 | 共线性 | ⚠️ | 同株跨帧高度相关,构成强共线 |
| 13 | 编码映射 | ✅ | EPPO 代码可回溯到物种名与外部植保名录 |
| 14 | 时间戳处理 | ✅ | 每张图带采集日期,可还原日级时间轴 |
| 15 | 划分建议 | ⚠️ | 论文给了按试验与箱分组的原则,但未发布切分文件 |
| 16 | 泄漏讨论 | ✅ | 官方讨论了追踪带来的重复风险,并在检测评估里按箱分折 |
| 17 | 标签分布 | ✅ | 逐类计数在论文附录表里完整给出 |
| 18 | 测量偏倚 | ⚠️ | 有平台描述,未做重复拍摄的一致性检验 |
| 19 | 外部验证建议 | ❌ | 无跨地区或跨季节的外部验证集 |
| 20 | 版本记录 | ⚠️ | 论文版与镜像版并存,完整包的版本边界不清 |
| 21 | 预处理脚本 | ✅ | 仓库内提供脚本与说明,可直接跑 |
| 22 | 合规要求 | ❌ | 禁止商业使用,且完整数据分发依赖单一机构仓库 |
| 23 | 多模态对齐 | ❌ | 纯 RGB,无光谱、深度或气象配对 |
| 24 | 去标识化 | ✅ | 不含人像与个人信息,无需去标识 |
DAIMS 评分:15.5 / 24。达标项集中在标识、标签、时间戳与泄漏讨论,这几项恰好是检测与追踪任务最依赖的。未达标项集中在合规、外部验证与多模态,这三项决定的是"能不能放心用"和"能不能外推"。
对你意味着什么:如果目标是做算法对照,这份数据的质量足够;如果目标是做产品化验证,合规与外部验证两项的空白会直接卡住流程,需要在项目早期就把替代验证集排进计划。
7.2 外部验证矩阵
| 验证方向 | 用什么数据 | 预期落差 | 说明 |
|---|---|---|---|
| 箱内跨帧 | 官方按箱划分 | 小 | 主要衡量记忆 |
| 箱间同物种 | 同物种不同箱 | 中等 | 反映个体差异 |
| 跨生长条件 | 理想训练、干旱测试 | 较大 | 光照与叶形态同时变化 |
| 跨地区 | 其他温带农田自采 | 大 | 物种与土壤背景都变 |
| 田间侧视 | 车载或手持采集 | 很大 | 视角与光照条件根本不同 |
这条矩阵的重要性在于提醒:库内指标好看不代表可用,而跨条件那一行是这份数据唯一有内建支撑的验证方向。其他几行都需要使用者自己建集。
7.2.1 如何自建第四域
如果研究问题确实需要跨地区或跨季节的验证,第四域只能自建。有两条低成本路径。
一条是季节内的空间迁移:在另一个地块按同样的箱体、同样的机位复刻一次拍摄,只换土壤与杂草种子。这样控制了设备差异,只引入地理差异,能干净地回答"换个地方还认不认得"。
另一条是设备与视角迁移:保持地块不变,改用手机手持侧拍。视角与光照同时变化,落差会更大,但更接近实际部署场景。两条路径的结论不能互相替代,选哪条取决于落地形态。
7.2.2 报告指标时的三条纪律
第一,按框面积分档报,不要只报总平均。小苗与大苗的难度不同,混在一起会掩盖小目标上的失效。
第二,按物种报,至少报出样本量最少的几个物种。长尾类是这类数据的典型弱点,只报宏平均会看不出来。
第三,按生长条件报。三种条件如果在训练时被混在一起,就失去了对照的意义;分开报才能看出条件下的退化幅度。
7.3 许可与分发对可用性的实质影响
禁止商业使用的条款对学术研究影响不大,对工程团队影响很大。它意味着任何进入产品或收费服务的用途都需要单独授权,而且改编后的派生数据也必须以同样的非商业条款发布。
再加上完整包托管在校内仓库,实际可用性又降了一层。这不是法律问题,是运维问题:仓库若长期不可达,完整数据就形同只对内部开放。使用者应当在项目文档里记录取数日期与来源,以便日后复核。
7.4 一个贯穿全文的对照:同一株苗的两张快照
这里选一株典型的小苗作为贯穿案例,后面几节还会回到它。
第一张快照拍在出苗后不久,叶片两片、贴着土面、周围还有几株同期出土的邻居,框的范围很小。第二张快照拍在数天后,叶片已展开、覆盖面积扩大到数倍,原本相邻的几株已经彼此重叠,框的范围大幅增加。
这两张快照说明三件事。其一,同一株的框大小在时间上变化剧烈,检测模型必须适应尺度漂移。其二,第二张里框与框的重叠会显著增加,交并比匹配的可靠度下降。其三,如果这两张分属训练集与测试集,模型会看到一个"长大版"的自己,指标没有意义。
这也是为什么按箱切分不是可选项,而是必须项。
再往下追一步:这条时间线还给了另一类分析的可能,即同一株在三种条件下的生长曲线。理想组的叶面积随时间单调上升,干旱组的上升明显放缓,自然组则在两者之间波动。这类曲线不是论文的任务,却是这份数据能支撑、而多数同类数据支撑不了的分析。
7.5 与同类杂草数据集相比的三点差异
第一点是设计意图。多数杂草图像数据是为了给分类器凑类别,采集时一个物种拍若干张;OPPD 是为了做条件对照与个体追踪,采集时按箱管理、反复回访。数据形态的差异完全来自设计意图。
第二点是标注粒度。有的数据只给裁切图与类别,没有原图与框坐标;OPPD 给了整箱原图、逐株框与个体编号。前者的用途被限死成分类,后者可以支撑检测与追踪。
第三点是分发格局。多数同类数据通过会议或数据平台集中发布,入口单一;OPPD 的完整资产停在机构仓库,公开镜像只给切片。这一条对可用性的影响往往被低估。
常见误读与避坑清单
下面每一条都对应一次真实的误解。左列是听过的说法,中间是实际情况,右列是能自己去核对的依据。
| 常见说法 | 实际情况 | 证据 |
|---|---|---|
| OPPD 是浮游植物物候数据集 | 是陆生杂草幼苗图像库,缩写撞车 | 官方主页标题与论文标题都是植物表型 |
| Zenodo 那份就是全量 | 只是某个图像子目录的 jpg 子集,74.4 MB | Zenodo 记录描述原文写明 subset |
| 三十一万就是三十一万株植物 | 是标注对象数,个体数只有六万四千余 | 论文摘要同时给出两个数 |
| 47 种都播了 | 播了 46 种,第 47 类来自混种 | 论文数据集内容一节有说明 |
| 可以按图随机切分 | 同一株跨帧出现,会严重泄漏 | 数据带跨帧个体编号 |
| 这是田间数据 | 是露天地块上的泡沫育苗箱 | 论文方法一节的采集场景 |
| 可以用来算产量或竞争 | 每箱单物种、物理隔离,竞争被设计掉 | 一箱一物种的设计 |
| 论文的检测指标说明它易用 | 数字衡量的是易学程度,不是田间可用性 | 基线只用开箱模型 |
| 可以商用 | 许可禁止商业使用 | 官方主页许可段 |
| 有掩膜或叶级标注 | 只有逐株外接框 | 标注粒度仅矩形 |
十条里最容易被忽略的是第三条与第五条。前者是数量口径,后者是方法口径,二者叠加会造成"样本量写错、指标虚高"的双重错误。
§8 版本、生态与它为什么还在被用
8.1 时间轴
| 时间 | 事件 |
|---|---|
| 2020-04 | 论文在 Remote Sensing 第 12 卷第 8 期发表,页号 1246 |
| 2020 起 | 官方主页上线,提供下载入口与物种清单 |
| 2023-01 | 第三方在 Zenodo 发布一个图像子集的镜像 |
| 之后 | 仓库以 master 分支形式维持,无正式版本号 |
版本管理的空白是这份数据的一个明显短板:论文写的是 v1,仓库没有打标签,镜像又是另一个时间点的切片。使用者无法用版本号精确描述自己用的是哪一份。
8.2 生态位:对照台而不是语料库
农业视觉领域的大规模数据越来越多,但多数是"更多图、更多类"的路线。OPPD 走的不是这条路,它提供的是一套对照实验的设计:同一物种、三种条件、逐株追踪。
这个定位决定了它不会成为预训练主力,而会成为评测的参照点。当你需要回答"我的模型在条件下滑了多少"或者"我的追踪在密集场景里掉了多少"时,这份数据能给出可复现的答案。
8.3 它为什么能持续
第一,它是论文的配套数据,引用本身就构成使用动机。第二,它的标注细度高,重做一遍的成本很高,别人没有必要替代它。第三,它的许可虽然严格,但在学术圈内不构成障碍,反而降低了被滥用的风险。
还有一条更朴素的原因:苗期杂草识别是一个长期存在的工程问题,除草机器人、精准施药、苗情监测都要用,需求不会消失。数据只要还在,就会有人用。
8.4 近年是否有更新
从公开信息看,主干数据没有结构性更新。仓库维持原状,镜像停留在 2023 年的那个切片。这对使用者是双刃剑:稳定意味着跨论文可比,停滞意味着新物种、新地区、新传感器都没有覆盖。
8.4.1 停滞带来的两个实际问题
第一个是设备过时。2020 年的成像水平与当前的车载相机、无人机载荷差距已经不小,用这份数据训出的模型在色偏与噪声分布上会与新型传感器不匹配,需要额外的颜色校正。
第二个是物种名录的时效。分类学在持续修订,某些当年的代码如今已不再对应同一物种。下游若依赖最新名录,就必须处理这种不一致。
两条都不是致命问题,但都说明一件事:这份数据的价值在于它的设计,不在于它的新鲜度。把它当作一个固定的对照基准来用,比当作持续更新的语料库来用更合适。
8.4.2 如果重做一份,最该改的三处
第一处是把标注表与图像打进同一个包,并给完整包一个独立的 DOI。这一条能立刻解决公开镜像只给切片的问题。
第二处是发布官方切分文件。按试验与箱分组的规则已经写在论文里,把它固化成一份列表,成本很低,收益是消除所有按图随机切分的误用。
第三处是补一份标注一致性报告。抽样重标一定比例的框,报出交并比的中位数与物种标签的一致率,能让使用者对标注质量有数量级的判断,而不是只有定性的描述。
这三处的共同点是:都不需要重新采集,只需要把已有信息组织得更完整。这也从侧面说明,这份数据的主要短板在工程与文档层面,而不是在数据本身。
§9 使用指引:三种角色的最短路径
9.1 学生与入门者
先不要去碰检测。用裁切图做一次小规模分类,观察同一物种在三种条件下的表现差异,这个实验的门槛最低,也最能直观理解"域偏移"是什么。
做完之后再回到检测,用单一类别跑一遍,看密集重叠处的漏检长什么样。两步走比直接上检测要省很多时间。
9.2 研究人员
第一件事是把切分写对,按箱划开。第二件事是明确报告用的是哪一份数据——完整包还是子集,这直接影响样本量的表述。
第三件事是在方法章节里写清条件对照的分析方式。数据支持把三种条件当作三个域来做消融,这是它相对同类数据的独特价值,不做就浪费了。
9.3 工程与产品团队
先解决合规,再解决算法。许可禁止商业使用这一条要先过法务,不要等模型训完了才发现不能用。
算法层面,把它当预训练语料是合适的,当最终验证集是不合适的。必须用目标作物、目标地区、目标视角的数据重训,并在真实地块做独立评测。
9.4 在 AI 流程中的位置
| 流程阶段 | 适用性 | 说明 |
|---|---|---|
| 预训练 | 中 | 图像数够做小规模预训练 |
| 监督微调 | 高 | 标注细,类别干净 |
| 领域自适应 | 高 | 三种条件天然是三域 |
| 追踪训练 | 高 | 有跨帧个体编号 |
| 部署验证 | 低 | 场景差异太大 |
| 公平性审计 | 中 | 只覆盖欧洲温带农田 |
这张表的位置越靠后,适用性越低。把这份数据放在部署验证阶段,是绝大多数失败的来源。
9.5 一个容易被遗忘的前置步骤
在下载之前,先写一段话回答"我要用它回答什么具体问题"。如果答案里出现了"田间"这个词,就需要重新考虑数据选择。
这一步看起来是流程问题,实际是数据素养问题。很多误用的起点不是模型选错,而是问题与数据从一开始就不匹配。
9.6 一个最小可行的起步组合
如果只能投入很少的时间,建议先用子集做物种分类,再用完整包做一次单类检测,两件事加起来就能把这份数据摸清。
分类这一步的目的是看长尾:把逐类样本量排序,观察最小的几类在测试里的召回。检测这一步的目的是看密度:找出漏检最集中的那些帧,通常就是重叠最严重的帧。
做完这两步,基本上就能判断这份数据对自己的问题有没有用,而不必先读完论文全文。
9.7 常见的时间浪费
第一种是把时间花在找"更好的镜像"上。镜像再找也是切片,不如直接解决完整包的访问。
第二种是把精力放在调参上,而切分方式本身就是错的。切分对了,基线很快就能复现;切分错了,指标再高也没有意义。
第三种是先做物种分类、再发现自己的问题其实是检测。检测与分类所需的数据组织完全不同,早一步判断能省下重做索引的时间。
§10 AI 使用声明
这一页由编辑团队撰写,事实来源限于官方主页、论文正文、仓库说明与镜像记录四处,未做独立的影像复核。
内容边界如下。第一,所有规模数字均取自官方口径,遇口径不一致处并列给出并注明差异,不做取平均或推断。第二,分发格局的描述基于公开可见的渠道,不对未公开的内部存储做任何猜测。第三,许可表述以官方主页声明为准,不代替法律意见。
不建议的用法有三条。其一,不要让大模型在未核对原文的情况下补全物种的中文名,EPPO 代码到中文名的映射建议查专业名录。其二,不要用自动生成的表格替代论文附录里的逐类计数。其三,不要把本页的 DAIMS 打分当作对数据质量的终审,它衡量的是文档与结构,不衡量图像本身的可用性。
本页的结论可以复述,涉及数字时应同时复述来源与口径。
附录 A 数据组织
| 层级 | 内容 | 说明 |
|---|---|---|
| 试验 | 由试验号区分的一轮采集 | 通常对应一批同期摆放的箱子 |
| 箱 | 一个泡沫育苗箱,箱内单物种 | 可附箱号与位置关系 |
| 图像 | 整箱俯拍的一帧 | 含日期与生长条件 |
| 标注对象 | 一个外接框 | 含 EPPO 代码与个体编号 |
| 个体 | 跨帧去重后的同一株苗 | 由追踪算法分配 |
| 裁切图 | 按框裁出的单株图 | 供分类任务使用 |
理解这个层级结构的价值在于:任何统计都要先说明在哪一层计数。在图像层数七千余,在标注对象层数三十余万,在个体层数六万余,三个数字都对,指的不是一件事。
附录 B 字段与主键
| 字段 | 所属层 | 类型 | 主键/外键 | 说明 |
|---|---|---|---|---|
image_id |
图像 | 文本 | 主键 | 一帧的唯一编号 |
date |
图像 | 日期 | — | 拍摄日,可还原时间轴 |
trial_id |
图像 | 文本 | 外键 | 所属试验 |
box_id |
图像 | 文本 | 外键 | 所属育苗箱 |
growth_condition |
图像 | 枚举 | — | 理想、干旱、自然 |
bbox_id |
标注对象 | 文本 | 主键 | 一个框的唯一编号 |
eppo_code |
标注对象 | 文本 | 外键 | 物种代码,粗类另计 |
xmin ymin xmax ymax |
标注对象 | 整数 | — | 像素坐标 |
plant_id |
标注对象 | 文本 | 外键 | 跨帧稳定的个体编号 |
source_image_id |
裁切图 | 文本 | 外键 | 裁切来源帧 |
主键的层级是 image_id 与 bbox_id,plant_id 是把框串成个体的桥梁。做追踪时以 plant_id 分组,做检测时以 bbox_id 为单位。
附录 C 术语表
| 术语 | 含义 |
|---|---|
| OPPD | Open Plant Phenotyping Database 的缩写,本页主体 |
| 表型 | 植物在外观与生理上可观测的性状总和,此处主要指苗期形态 |
| EPPO 代码 | 欧洲与地中海植物保护组织维护的物种短代码,四到五个大写字母 |
| 外接框 | 包围一个植株的最小轴对齐矩形,用四个像素坐标表示 |
| 实例检测 | 在图中找出每一个个体的位置,不区分物种 |
| 个体追踪 | 在时间序列上把同一株的不同出现串起来 |
| plant id | 跨帧稳定的个体标识,由匹配算法分配 |
| 交并比 | 两个框的重叠面积除以并集面积,用作匹配阈值 |
| 匈牙利算法 | 在二部图上求最小代价完美匹配的算法,此处用于帧间配对 |
| 仿射变换 | 用箱角位置把各帧映射到统一坐标系,实现空间对齐 |
| 生长条件 | 理想、干旱、自然三组水肥管理组合 |
| 粗类 | 无法细分到种时的上层标签,如单子叶、双子叶 |
| 留一箱切分 | 以育苗箱为单位划分训练与测试,避免同株泄漏 |
| 域偏移 | 训练与测试的数据分布在采集条件或环境上不同 |
附录 D 常见误读 FAQ
Q1:OPPD 和另一个简称很像的海洋数据集是同一个吗?
不是。名字相近是巧合,内容一个是陆生杂草幼苗,一个是卫星反演的海洋生物量物候,两者在模态、尺度、任务上都无关。
Q2:Zenodo 那份能不能直接训练检测模型?
不能。它只有图像没有标注表,检测需要框坐标,而框在完整包里。
Q3:我拿不到校内仓库怎么办?
两个方向:一是请合作机构代为取数,二是改用其他公开的杂草幼苗数据,但要重新做基线,指标不能跨数据比较。
Q4:为什么同一株苗的框大小差那么多?
因为拍摄跨了多天,苗在生长。尺度漂移是设计的一部分,不是标注错误。
Q5:粗类那两个标签,做分类时怎么处理?
两种做法都合理:一是排除它们在分类任务之外;二是保留但要说明它们与物种类不同层级,不能放进同一个 softmax。
Q6:三种条件的箱子是随机摆放的吗?
论文描述了分组管理,但没有把它设计成随机区组,因此条件效应与箱位置效应无法完全分离。做统计推断时要谨慎。
Q7:能不能用它训练一个能识别所有杂草的模型?
不能。47 个物种只是西北欧农田的一部分,开集的新物种不在覆盖范围内,需要专门的开放集方法。
Q8:许可这么严,学术论文里用要不要申请?
学术研究用途通常在许可允许范围内,但论文发表与数据再分发是两件事,再分发派生数据时要遵守同样的非商业条款。
Q9:为什么官网分辨率有两个说法?
一个按面积、一个按长度,单位不同,描述的是同一个采集能力。
Q10:标注有多少人做的、一致性如何?
论文没有给出标注者的数量与一致性指标,这是元数据里比较明显的一处空白。
附录 E 许可与引用
官方主页声明的是禁止商业使用、要求署名、要求相同方式共享的许可。三条约束里,对工程团队影响最大的是第一条,对学术团队影响最大的是第三条——在它上面做的增强版、重标注版若对外发布,都要沿用同样的非商业条款。
引用时应当同时引论文与数据入口,论文给方法,入口给取数位置。
#-- 数据集配套论文,引用数据时必须引
@article{Madsen2020OPPD,
title = {Open Plant Phenotype Database of Common Weeds in Denmark},
author = {Madsen, Simon Leminen and Mathiassen, Solvejg Kopp and Dyrmann, Mads
and Laursen, Morten Stigaard and Paz, Laura-Carlota
and J{\o}rgensen, Rasmus Nyholm},
journal = {Remote Sensing},
volume = {12},
number = {8},
pages = {1246},
year = {2020},
doi = {10.3390/RS12081246}
}
#-- 子集镜像的 DOI,只引你实际下载的那一份时用它
@misc{chalstrey2023oppd,
title = {Open Plant Phenotyping Database Seedling Images},
author = {Chalstrey, Ed},
year = {2023},
publisher = {Zenodo},
doi = {10.5281/zenodo.7501825},
note = {Subset of the full OPPD archive}
}
编辑说明
核验时点:2026-10-29。
核验方式:名称与全称回溯官方主页与论文标题两处;规模、物种数、条件数、标注对象数取自官方主页与论文正文,两处三的差额并列保留;分发格局对照 Zenodo 记录描述与官方下载入口两处;编码体系、追踪流程、标注粒度取自论文方法与数据集内容两节;许可表述取自官方主页许可段,不代替法律意见。
双口径并存项:标注对象数三十一万三千零三十八(官网)与三十一万三千零四十一(论文表格)并列,正文以"三十一万余"作通称;物种数四十七(标签体系)与四十六(播种数)分列,明确二者不是同一量;分辨率 44 像素每平方毫米与 6.6 像素每毫米并列,注明量纲不同。
未覆盖内容:完整包体积官方未公布,正文不给任何估算;标注者数量与一致性指标论文未提供;条件效应与箱位置效应的分离程度未量化,正文只作提醒不做推断;仓库的长期可用性无法核验。
**体例说明:本页按 v5 体例撰写,§1–§10 连续编号,附录 A 到 E 分别覆盖组织、字段、术语、问答与许可。页面由千方医数集编辑部撰写,最终以数据库记录为准。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- tcm-tongue — 共享标签:图像分类 / 目标检测 / 评测基准 / 公共卫生与流行病学
- cern-cms-opendata — 共享标签:图像分类 / 目标检测 / 评测基准
- chula-parasitic-egg — 共享标签:图像分类 / 目标检测 / 公共卫生与流行病学
- plantvillage — 共享标签:图像分类 / 评测基准 / 公共卫生与流行病学
- dental-opg-xray — 共享标签:图像分类 / 目标检测 / 评测基准
- umid — 共享标签:图像分类 / 目标检测 / 评测基准
- acusim — 共享标签:图像分类 / 目标检测 / 评测基准
- body-acupoint-images — 共享标签:图像分类 / 目标检测 / 评测基准
- covidx-cxr — 共享标签:图像分类 / 评测基准 / 公共卫生与流行病学
- heichole — 共享标签:图像分类 / 目标检测 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

