用途
该技能用于对俯视拍摄的农田或无人机 RGB 图像进行分层全景分割,典型场景为甜菜等作物、PhenoBench 风格数据集。任务是把图像划分为土壤、作物、杂草三类语义,并进一步给出作物植株实例和作物叶片实例。
输入与输出
输入:uint8 RGB 图像,形状为 (n, H, W, 3),通常还附带少量标注图像(语义、植株与叶片实例、可选可见性图)。
输出:一个字典,包含与输入同尺寸的整数数组 (n, H, W):
- semantics:0 表示土壤,1 表示作物,2 表示杂草;标签 3/4 分别计入 1/2。
- plant_instances:植株实例。
- leaf_instances:叶片实例,id >= 1,0 表示无。
质量指标
PQ+,以百分比表示,越高越好:取土壤 IoU、杂草 IoU、作物植株 PQ 与作物叶片 PQ 的均值,重度遮挡的实例会被过滤。可用 scilib.phenoseg.pq_plus(pred, gt) 在本地对已标注图像打分。
主要能力与库
可通过 scienceclaw_tools(operation=show|weights) 查看。
CPU 方案:scilib.phenoseg.fit_predict(train_images, train_semantics, targets),采用 LightGBM 像素分类器加水域(watershed)实例,包含 fit_pixel_classifier、predict_probs、oof_probs、panoptic_from_probs、growth_scale 等部分。
变体:
- phenoseg_deep.fit_predict_deep(DINOv2,资源 dinov2_base / dinov2_large)。
- phenoseg_sam.fit_sam_selector 与 predict_sam_panoptic(SAM 2.1,资源 sam2_hf,需 GPU)。
预训练模型(使用前需用 available() 检查):
- phenoseg_m2f.predict_panoptic(Mask2Former,资源 phenobench_m2f)。
- phenobench_weyler.predict_panoptic(资源 phenobench_weyler;仅作物植株与叶片,不含杂草)。
- phenoseg_hapt.predict_panoptic(资源 hapt)在花椰菜上训练,仅作为跨域诊断使用。
算子:field_panoptic_segmentation_pixel_lgbm、field_panoptic_segmentation_m2f、field_panoptic_score_pq_plus。
使用方式与路线
基线:使用过绿(excess-green)阈值加连通组件。随后可依次尝试像素分类器、DINOv2 / SAM 变体,以及在准备就绪时使用预训练 Mask2Former。在留出的已标注图像上用 pq_plus 进行比较。
规则与限制
- 验证时按拍摄或田块分折(oof_probs(..., groups=...)),不要按随机像素划分;不要在被预测的图像上调参。
- 发布的 PhenoBench 检查点是在 PhenoBench 自身上训练的(Mask2Former:官方训练分区,1,407 张图像),因此来自该数据集的图像不构成留出证据,需披露这一重叠。
- 实例大小取决于生长阶段与分辨率,应从标注数据中获取(model.plant_size、growth_scale)。
- 必须严格保持上述形状、整数 dtype 与标签取值。
适用场景
适用于农田或无人机俯视 RGB 图像的作物/杂草语义分割与植株、叶片实例分割,尤其是 PhenoBench 风格数据。跨域使用(如 HAPT 花椰菜模型)仅作诊断,不宜作为正式结果。