铁路轨道安全监测是轨道交通运维中的核心环节。传统人工巡检方式存在效率低、成本高、覆盖范围有限等问题,尤其在偏远山区或恶劣天气条件下难以保障巡检质量。近年来,随着无人机技术的成熟,基于航拍图像的轨道巡检方案逐渐成为行业新趋势。
这个数据集正是针对铁路轨道异物检测任务而构建的专业图像库。包含1196张无人机拍摄的轨道场景图像,涵盖4类典型异物(石头、倒树等),采用labelme格式标注,可直接用于训练目标检测与语义分割模型。这类数据集的稀缺性使其具有以下核心价值:
原始图像通过大疆M300 RTK无人机搭载H20T混合传感器采集,具体参数配置:
提示:低空飞行需提前报备并获得铁路部门许可。建议选择天窗期(无列车通行时段)作业,确保飞行安全。
四类异物的定义与标注规范:
| 类别 | 判定标准 | 标注要点 |
|---|---|---|
| 石头 | 直径>15cm的孤立石块 | 需标注完整轮廓 |
| 倒树 | 倒伏树干或大型树枝 | 包含主干与主要分枝 |
| 金属物 | 铁轨上的金属零件/工具 | 忽略道钉等固定件 |
| 其他 | 塑料制品/动物尸体等 | 需完全覆盖异物 |
标注时特别注意:
典型标注文件结构:
json复制{
"version": "5.1.1",
"flags": {},
"shapes": [
{
"label": "stone",
"points": [[x1,y1], [x2,y2], ...],
"shape_type": "polygon"
}
],
"imagePath": "DJI_20230512_134502.jpg",
"imageData": null
}
关键字段说明:
shape_type:多边形标注需闭合imageData:建议设为null减小文件体积labelme2coco.py脚本转换时自动检查:
推荐使用Albumentations库的增强组合:
python复制import albumentations as A
train_transform = A.Compose([
A.HorizontalFlip(p=0.5),
A.RandomBrightnessContrast(p=0.3),
A.RandomRain(p=0.1), # 模拟雨天效果
A.RandomShadow(p=0.2),
A.Cutout(max_h_size=30, max_w_size=30, p=0.5)
], bbox_params=A.BboxParams(format='pascal_voc'))
特殊处理技巧:
测试三种主流架构的表现(RTX 3090环境):
| 模型 | mAP@0.5 | 推理速度(FPS) | 显存占用 |
|---|---|---|---|
| YOLOv8s | 0.83 | 56 | 4.2GB |
| Mask R-CNN | 0.87 | 22 | 6.8GB |
| Faster R-CNN | 0.85 | 28 | 5.1GB |
实测建议:轻量化部署选YOLOv8,需要像素级分割选Mask R-CNN
YOLOv8示例配置:
yaml复制# yolov8_custom.yaml
train: ../train/images
val: ../valid/images
nc: 4
names: ['stone', 'fallen_tree', 'metal', 'other']
# 训练命令
yolo detect train data=yolov8_custom.yaml model=yolov8s.pt epochs=100 imgsz=576
调参经验:
针对Jetson Xavier NX的优化方案:
bash复制yolo export model=yolov8s.pt format=engine device=0
python复制# 使用多进程处理
cap = cv2.VideoCapture(rtsp_url)
while True:
ret, frame = cap.read()
if not ret:
break
results = model(frame, stream=True) # 流式推理
Q:标注时道砟被误标为石头?
A:采用以下过滤策略:
not_rock负样本类别Q:小目标检测效果差?
Q:无人机视频流检测延迟高?
基于该数据集的进阶开发建议:
实际部署中,我们发现在隧道出口处设置重点监测区域可提升30%的异常发现率。同时建议将检测结果与铁路工务管理系统对接,实现从发现到处置的闭环管理。