
简介这份铁路轨道物体实例分割数据集面向铁路安全监控、智能交通与计算机视觉算法研发人员用于构建轨道障碍物精准识别与分割模型。数据覆盖Cylinder、animal、human、train、tree、vehicle六类目标训练集873张、验证集55张共928张真实铁路场景图片均采用YOLO格式多边形实例分割标注可直接加载至主流深度学习框架训练。资源包共1858个文件以928个jpg图像与928个txt标注文件为主另含1个yaml数据配置和1份docx说明文档压缩包约58.15MB目录结构清晰便于快速接入训练流程。目前已有122人学习下载。数据集类别兼顾自然与人造物体场景多样适合开展实例分割算法优化、铁路异物检测与基础设施巡检等研究也可作为自动驾驶与监控平台开发的训练基础具有较高的工业应用与学术研究价值。1. 铁路轨道物体实例分割数据集从压缩包到可训练样本这条路值不值得走铁路轨道场景下的视觉检测很多人第一反应是画框。但真到了巡检车上线跑一圈就会发现框根本不够用——扣件压住钢轨的边界在哪、道砟和轨枕的交界怎么切、异物是搭在轨面上还是悬在轨腰旁这些靠矩形框说不清楚。铁路轨道物体实例分割数据集要解决的正是这种「既要认出是什么又要抠出像素轮廓」的问题。它面向的是做轨道巡检、异物侵限识别、扣件状态分析的工程团队也适合正在拿 yolo实例分割 练手、想找一个真实工业场景落地的开发者。这个压缩包本身只是原料真正决定成败的是你拿到它之后怎么清洗、怎么转格式、怎么配参数。下面我按自己踩过的顺序把这条路拆开讲。2. 铁路轨道实例分割的数据集长什么样类别、标注与选型判断2.1 轨道场景里到底要分割哪几类目标铁路轨道不是一个单一物体它是一条由多种部件和干扰物组成的带状结构。拿到一个轨道实例分割数据集第一件事不是急着训练而是把类别体系摸清楚。常见的类别划分大致落在这么几组钢轨本体、轨枕、扣件、道砟区域以及侵限异物比如落石、树枝、塑料布、行人。不同数据集的粒度差别很大有的把扣件和轨枕合成「轨道结构」一类有的把异物再细分成动物、人员、杂物。类别粒度直接决定你的模型能不能落地。如果只做「轨道区域 vs 背景」的二分类分割那模型学到的其实是轨道的大致走向遇到异物侵限它照样把异物当轨道的一部分。反过来如果类别拆得太细每个类别的样本量又不够训练时小类别会被大类别淹没mAP 看着还行但扣件这种小目标的 mask 一塌糊涂。我一般的判断顺序是先看类别清单再统计每类实例数量最后看最小目标的像素面积。轨道场景里扣件往往只有几十个像素宽如果数据集里扣件实例少于几百个那这一类的分割基本别指望不如先合并成大类别等数据补够了再拆。2.2 实例分割标注格式与轨道数据的适配性实例分割的标注主流是 COCO 的 polygon 格式每个实例一串多边形点加一个类别 id。铁路轨道数据用这个格式有个天然优势钢轨、轨枕这类目标边界相对规整多边形拟合误差小但道砟区域边界是碎的标注员画多边形时容易画成锯齿状点特别多训练时反而引入噪声。这里有个血泪经验拿到数据集先看 polygon 的点数分布。如果某个类别的平均点数超过一两百多半是标注员在碎石区域硬描边这种 mask 训练出来边缘会毛糙。处理办法是在转换阶段做多边形简化用 Douglas-Peucker 之类的算法把点抽稀阈值控制在 2 到 3 个像素既保留轮廓又不至于过拟合噪声。另外要确认标注是「实例级」还是「语义级」。有些号称实例分割的数据集实际是把同类目标连成一片扣件全糊在一起。这种数据拿去训实例分割模型学不会区分相邻实例推理时两个挨着的扣件会粘成一个。检查方法很简单看同一张图里同类目标的 polygon 是不是各自独立、有没有共享边界点。2.3 为什么轨道数据不适合直接套用通用数据集的经验很多人习惯拿 COCO 那套经验往轨道数据上搬结果翻车。COCO 里目标大、背景杂、类别均衡而轨道数据恰恰相反目标细长、背景高度重复就是轨道和道砟、类别极度不均衡。钢轨的实例可能占全图 80% 的像素异物可能就几十个像素。这种分布下通用的 anchor 尺寸、通用的数据增强策略都不好使。比如随机裁剪增强在 COCO 上能提升泛化在轨道数据上可能一刀把钢轨裁断模型学到的是「断掉的钢轨也是钢轨」推理时遇到完整钢轨反而犹豫。所以轨道实例分割的增强要克制翻转、亮度扰动可以大范围裁剪和旋转要慎用。选型上如果团队算力有限优先考虑 YOLOv8-seg 这类单阶段实例分割它在小目标和实时性之间平衡得不错如果追求 mask 精度且能接受离线推理Mask R-CNN 系列仍然稳。关键不是模型多新而是你的类别体系和数据量撑不撑得起这个模型。3. 把压缩包变成可训练数据解压、清洗与 COCO 转 YOLO 的完整流程3.1 解压后先做一次目录与标注完整性体检拿到铁路轨道物体实例分割数据集_20251118_191758.zip这种压缩包别急着解压完就开训。先解压到一个干净目录然后跑一遍体检脚本确认图片和标注能对上、没有零字节文件、没有标注缺失。# 解压到指定目录避免中文路径带来的编码问题 unzip -O UTF-8 铁路轨道物体实例分割数据集_20251118_191758.zip -d ./rail_seg_raw # 统计图片数量与标注文件数量 find ./rail_seg_raw -name *.jpg -o -name *.png | wc -l find ./rail_seg_raw -name *.json | wc -l # 找出零字节文件这类文件多半是解压中断或源数据损坏 find ./rail_seg_raw -type f -size 0这段命令的逻辑很直白先解压再分别数图片和标注最后揪出空文件。参数上-O UTF-8是为了防止压缩包内中文文件名解压后乱码轨道数据集里带中文路径的情况不少见。如果图片数和标注数对不上或者出现零字节文件先别往下走回去重新拿一份完整包否则后面训练报的错会让你怀疑人生。体检通过后把数据按训练集、验证集、测试集切分。轨道数据如果来自连续视频抽帧千万别随机切分否则相邻帧会同时出现在训练和验证里验证指标虚高。正确做法是按区段或按时间切比如前 70% 的区段做训练中间 15% 做验证最后 15% 做测试。3.2 COCO polygon 转 YOLO-seg 标签的脚本与边界处理YOLOv8-seg 用的是归一化的多边形标签每行格式是类别id x1 y1 x2 y2 ...坐标都除以图片宽高。COCO 的 polygon 是绝对坐标需要转换。下面这个脚本处理单张图的转换重点处理了多边形点数不足和坐标越界两种情况。import json import os from PIL import Image def coco_to_yolo_seg(coco_json, img_dir, out_dir): with open(coco_json, r, encodingutf-8) as f: data json.load(f) # 建立 image_id 到文件名的映射 img_info {img[id]: img for img in data[images]} # 建立 category_id 到连续索引的映射YOLO 要求类别从 0 开始连续 cat_ids sorted([c[id] for c in data[categories]]) cat_map {cid: idx for idx, cid in enumerate(cat_ids)} # 按 image_id 聚合标注 anns_by_img {} for ann in data[annotations]: anns_by_img.setdefault(ann[image_id], []).append(ann) os.makedirs(out_dir, exist_okTrue) for img_id, anns in anns_by_img.items(): info img_info[img_id] w, h info[width], info[height] lines [] for ann in anns: seg ann.get(segmentation, []) if not seg or not isinstance(seg[0], list): continue # 跳过 RLE 格式本流程只处理 polygon for poly in seg: # 多边形至少 3 个点才能构成面 if len(poly) 6: continue # 坐标裁剪到图像范围内防止越界导致归一化后超出 [0,1] coords [] for i in range(0, len(poly), 2): x min(max(poly[i], 0), w - 1) y min(max(poly[i 1], 0), h - 1) coords.append(f{x / w:.6f} {y / h:.6f}) cls_id cat_map[ann[category_id]] lines.append(f{cls_id} .join(coords)) # 写出同名 txt base os.path.splitext(info[file_name])[0] with open(os.path.join(out_dir, base .txt), w) as f: f.write(\n.join(lines)) if __name__ __main__: coco_to_yolo_seg(./rail_seg_raw/annotations.json, ./rail_seg_raw/images, ./rail_seg_labels)逻辑说明脚本先读 COCO json建立图片 id 和类别 id 的映射然后把每个实例的 polygon 坐标逐点裁剪到图像边界内再归一化。参数上len(poly) 6这个判断是过滤掉少于三个点的退化多边形这种标注在轨道数据里偶尔出现多半是标注员误点。坐标裁剪用min(max(...))夹到[0, w-1]是因为有些标注会略微超出图像边界不裁剪的话归一化后会出现大于 1 的值YOLO 训练时直接报错。转换完别急着训抽查几张可视化一下确认 mask 和原图对得上。我见过转换后类别索引错位的情况原因是 COCO 的 category_id 不连续直接拿来当 YOLO 类别用就会越界。3.3 数据集配置文件与训练命令的关键参数YOLO-seg 需要一个 yaml 描述数据路径和类别。轨道数据的类别名建议用英文避免训练日志乱码。# rail_seg.yaml path: ./rail_seg_dataset train: images/train val: images/val test: images/test names: 0: rail 1: sleeper 2: fastener 3: ballast 4: intrusion配置里path是数据集根目录train/val/test是相对路径。类别顺序必须和转换脚本里的cat_map一致否则模型学到的类别全是错的。训练命令yolo segment train modelyolov8s-seg.pt datarail_seg.yaml epochs100 imgsz1024 batch8参数上imgsz1024是轨道场景的关键。钢轨和扣件都是细长小目标用默认的 640 会把扣件缩到几个像素mask 根本学不出来。1024 起步显存够就上 1280。batch8是 1024 分辨率下的保守值显存 12G 左右可以试 16。epochs100配合早停轨道数据量通常不大过拟合来得快早停耐心值设 20 左右比较稳。4. 轨道实例分割训练避坑五条从翻车现场捞出来的经验4.1 现象mAP 很高但扣件 mask 全是糊的原因扣件在 1024 分辨率下仍然只有二三十像素模型的下采样倍数把它压没了mask 分支感受野覆盖不到这么小的实例。解决把 imgsz 提到 1280 或 1536同时在数据增强里关掉 mosaicmosaic 会把四张图拼一起小目标进一步缩小。如果显存不够改用切片推理把大图切成带重叠的小块分别推理再拼回来。4.2 现象训练 loss 正常下降验证 loss 震荡不收敛原因轨道数据按视频帧随机切分训练集和验证集里有大量近乎重复的相邻帧模型在验证集上看到的其实是训练时见过的场景指标虚高且不稳定。解决按区段或时间重新切分确保验证集的轨道区段在训练集里没出现过。切完再跑验证 loss 会平稳很多指标也更可信。4.3 现象推理时相邻扣件粘成一个 mask原因标注阶段同类实例边界不清或者训练时用了过强的形态学后处理。解决先回去检查标注确认相邻扣件的 polygon 是独立的。如果标注没问题检查推理后处理里有没有做闭运算闭运算会把挨着的 mask 连起来。轨道场景里扣件间距小后处理要克制宁可留点毛边也别粘连。4.4 现象模型把道砟误判成异物原因道砟区域纹理杂乱和某些异物比如碎石块在低分辨率下特征接近加上异物样本少模型倾向于把不确定的区域归到道砟。解决补充异物样本尤其是和道砟外观接近的负样本在损失函数里给异物类别加权或者用 focal loss 缓解类别不均衡。另外可以在推理阶段加一个面积阈值异物实例通常不会占满整个道砟区域。4.5 现象换一批新线路的图指标断崖式下跌原因轨道数据集的场景单一模型学到了特定线路的光照、道砟颜色、轨枕型号换线路就失效。解决训练时加强颜色扰动和亮度扰动模拟不同光照如果条件允许在新线路上补标少量样本做微调。别指望一个数据集训出来的模型能通吃所有线路轨道场景的域差异比想象中大。5. 让轨道实例分割真正可用切片推理与 mask 后处理的实战技巧训练指标好看不等于能上线。轨道图像往往是高分辨率的长条图直接缩到 1024 推理小目标全丢。我一般用切片推理把原图按 1024 大小、重叠 200 像素切成块逐块推理再把 mask 拼回原图。重叠是为了避免目标被切在边界上拼接时对重叠区域的 mask 做加权融合边缘过渡会自然很多。后处理这块轨道场景有两个具体技巧。一是按类别做不同的最小面积过滤异物和扣件的最小面积阈值要分开设扣件本来就小阈值设高了全被滤掉。二是对钢轨这类长条目标做连通域分析把断裂的 mask 合并因为钢轨在图像里应该是连续的断裂多半是推理噪声。验证方法上别只看 mAP。轨道巡检关心的是漏检和误检的实际代价漏掉一个侵限异物可能出事故误报一个扣件异常只是多一次人工复核。所以验证时要单独统计异物类别的召回率召回率不达标其他指标再高也不能上线。我自己的习惯是每次换模型或换参数都拿一段没参与训练的线路视频跑一遍人工数漏检和误报这个数字比任何指标都实在。希望帮到你。本文还有配套的精品资源点击获取