news 2026/4/23 13:37:22

铁路智能巡检、异物入侵告警、无人机自动巡线 构建基于 YOLOv8 的无人机航拍铁道异物检测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
铁路智能巡检、异物入侵告警、无人机自动巡线 构建基于 YOLOv8 的无人机航拍铁道异物检测系统

无人机航拍铁轨铁铁路道异物检测数据集,

1285张,yolo和voc标注
图像尺寸:1080*1920
4类,训练集图像数量:901; 验证集图像数量:256; 测试集图像数量:128
类别名称: 每一类图像数 ,每一类标注数
poset 塑料袋: 282,341
bitki 植物: 375,1039
cubuk 长棍: 28,31
insan 人: 682,843
image num: 1285


1

1

1

1

无人机航拍图像铁道异物检测数据集


📊 一、数据集详细表格描述

✅ 总体信息

项目内容
总图像数量1,285 张
图像分辨率1080 × 1920(高 × 宽,竖屏航拍)
类别数量4 类
标注格式同时提供YOLO 格式(.txt)PASCAL VOC 格式(.xml)
数据划分- 训练集:901 张
- 验证集:256 张
- 测试集:128 张

🗂️ 类别分布统计表

类别 ID类别名称(土耳其语)类别名称(中文)包含该类的图像数标注框总数(instances)平均每图目标数
0poset塑料袋282341≈1.21
1bitki植物3751,039≈2.77
2cubuk长棍2831≈1.11
3insan682843≈1.24
总计(去重图像)1,2852,254

🔍 注:

  • 单张图像可包含多个类别(如“人+植物”),因此各类图像数之和 > 1,285。
  • “植物”类标注密集(常为灌木、杂草覆盖轨道),“长棍”样本极少(需重点处理类别不平衡)。
  • 图像为竖屏 1080×1920,适合铁路沿线纵向巡检场景。

🛠️ 二、构建基于 YOLOv8 的铁道异物检测系统(完整流程)

📁 1. 推荐项目结构

railway_obstacle_detection/ ├── data/ │ ├── images/ │ │ ├── train/# 901│ │ ├── val/# 256│ │ └── test/# 128│ ├── labels/# YOLO格式 .txt│ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ └── dataset.yaml# YOLOv8 数据配置├── weights/ │ └── yolov8s.pt# 官方预训练模型(自动下载)├── models/# 训练输出├── outputs/# 推理结果├── train.py# 训练脚本├── detect.py# 推理模块├── utils/ │ ├── balance_analysis.py# 分析类别不平衡│ └── visualize_labels.py# 可视化标注└── requirements.txt

📦 2. 环境依赖(requirements.txt

ultralytics==8.2.0 opencv-python==4.8.0 numpy==1.24.3 matplotlib tqdm scikit-learn # 如需分析

安装:

pipinstall-r requirements.txt

📄 3. 数据配置文件dataset.yaml

# data/dataset.yamltrain:../data/images/trainval:../data/images/valtest:../data/images/testnc:4names:['poset','bitki','cubuk','insan']

⚠️ 注意:类别顺序必须与标注.txt中 class_id 严格对应(0~3)


🚀 4. 模型训练(train.py

# train.pyfromultralyticsimportYOLOdeftrain_railway_detector():# 使用 yolov8s(兼顾精度与速度,适合小目标)model=YOLO("yolov8s.pt")results=model.train(data="data/dataset.yaml",imgsz=640,# 自动缩放 1080x1920 → 640(保持比例)epochs=150,# 增加 epoch 应对小样本batch=16,# 根据 GPU 调整device=0,name="railway_yolov8s",project="models",patience=50,save=True,augment=True,# 针对小目标 & 稀有类增强hsv_h=0.015,hsv_s=0.7,hsv_v=0.4,degrees=15.0,# 更大旋转(航拍角度多变)translate=0.2,scale=0.5,fliplr=0.5,mosaic=1.0,# Mosaic 增强提升“cubuk”检测mixup=0.2,copy_paste=0.3,# Copy-Paste 增强稀有类(如 cubuk))print(f"✅ 训练完成!最佳模型:{results.save_dir}/weights/best.pt")if__name__=="__main__":train_railway_detector()

💡关键优化点

  • 启用copy_paste增强:解决“长棍”(cubuk)样本极少问题
  • 使用mosaic+mixup:提升小目标(塑料袋、长棍)召回率
  • imgsz=640:YOLOv8 自动保持宽高比,避免形变

🔍 5. 推理检测(detect.py

# detect.pyimportcv2importosfromultralyticsimportYOLOclassRailwayObstacleDetector:def__init__(self,model_path="models/railway_yolov8s/weights/best.pt"):self.model=YOLO(model_path)self.class_names=["Plastic Bag","Vegetation","Long Rod","Person"]defdetect_image(self,image_path,conf=0.25,save_dir="outputs"):results=self.model(image_path,conf=conf)annotated=results[0].plot()os.makedirs(save_dir,exist_ok=True)out_path=os.path.join(save_dir,os.path.basename(image_path))cv2.imwrite(out_path,annotated)print(f"✅ 检测完成 →{out_path}")returnannotateddefdetect_video(self,video_path,conf=0.25):cap=cv2.VideoCapture(video_path)fps=int(cap.get(cv2.CAP_PROP_FPS))w,h=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))out_path="outputs/detected_"+os.path.basename(video_path)out=cv2.VideoWriter(out_path,cv2.VideoWriter_fourcc(*'mp4v'),fps,(w,h))whilecap.isOpened():ret,frame=cap.read()ifnotret:breakresult=self.model(frame,conf=conf)[0]out.write(result.plot())cap.release()out.release()print(f"✅ 视频检测完成 →{out_path}")defdetect_drone_stream(self,rtsp_url):"""支持 RTSP 流(如大疆无人机直播流)"""cap=cv2.VideoCapture(rtsp_url)whileTrue:ret,frame=cap.read()ifnotret:breakannotated=self.model(frame,conf=0.25)[0].plot()cv2.imshow("Railway Inspection",annotated)ifcv2.waitKey(1)==ord('q'):breakcap.release()cv2.destroyAllWindows()

▶️ 6. 使用示例

# 快速测试fromdetectimportRailwayObstacleDetector detector=RailwayObstacleDetector()# 检测单图detector.detect_image("test_images/rail1.jpg")# 检测视频detector.detect_video("railway_drone.mp4")# 实时 RTSP 流(需替换 URL)# detector.detect_drone_stream("rtsp://192.168.1.10:8554/main")

🛠️ 7. 部署与工程建议

场景建议
无人机端侧部署导出为 TensorRT:
yolo export model=best.pt format=engine imgsz=640
铁路巡检车集成到车载工控机,定时抓拍+告警
Web 监控平台用 Flask/FastAPI 提供 REST API,前端展示告警
处理类别不平衡cubuk使用Focal Loss(可通过 Ultralytics 自定义 loss)或过采样

铁路智能巡检、异物入侵告警、无人机自动巡线等关键任务。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 1:23:46

计算机里的“同步”不是“同时”——详解多线程数据混乱之谜

各类资料学习下载合集 链接:https://pan.quark.cn/s/7c8c391011eb 在多线程编程中,我们经常听到“同步”这个词。在现实生活中,比如阅兵方阵,同步意味着“大家一起做动作”(同时性);但在计算机科学中,同步(Synchronization)的意思恰恰相反——它强调的是协同步调,按…

作者头像 李华
网站建设 2026/4/23 10:41:48

百度Qianfan-VL全尺寸开源:重塑企业级多模态应用新范式

百度Qianfan-VL全尺寸开源:重塑企业级多模态应用新范式 【免费下载链接】Qianfan-VL-70B 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/Qianfan-VL-70B 导语:80亿参数模型填补企业级部署空白,多模态AI进入垂直落地新阶段 202…

作者头像 李华
网站建设 2026/4/23 12:55:17

保险理赔自动化审核:基于Llama-Factory的语义理解系统

保险理赔自动化审核:基于Llama-Factory的语义理解系统 在一家中型寿险公司的后台,每天有超过2000份理赔申请涌入系统。其中80%是感冒、阑尾炎等常见病,本应快速结案,却因人工逐条核对病历与条款而积压数日。审核员疲于应对重复性工…

作者头像 李华
网站建设 2026/4/23 11:28:36

突破 Flutter 列表性能瓶颈:打造智能预加载 + 缓存的高性能图片列表

欢迎大家加入[开源鸿蒙跨平台开发者社区](https://openharmonycrossplatform.csdn.net),一起共建开源鸿蒙跨平台生态。 在 Flutter 开发中,图片列表是最常见的业务场景之一 —— 电商商品列表、社交动态流、相册预览等都离不开它。但稍有不慎&#xff0…

作者头像 李华
网站建设 2026/4/23 11:35:25

7天重塑科研笔记系统:Obsidian模板库的颠覆性应用指南

7天重塑科研笔记系统:Obsidian模板库的颠覆性应用指南 【免费下载链接】obsidian_vault_template_for_researcher This is an vault template for researchers using obsidian. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian_vault_template_for_researc…

作者头像 李华
网站建设 2026/4/23 11:27:38

DeepSeek-V3大模型训练性能优化:从性能瓶颈排查到高效配置实践

还在为训练DeepSeek-V3时频繁出现的内存溢出而苦恼?是否尝试了各种批次大小配置,却始终无法在训练效率与稳定性之间找到最佳平衡点?本文将带你深入探索DeepSeek-V3训练过程中的性能瓶颈排查方法,通过场景化配置策略实现训练性能的…

作者头像 李华