news 2026/7/7 1:24:06

铁路智能巡检、异物入侵告警、无人机自动巡线 构建基于 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/7/7 5:05:18

【万字长文】多智能体协作大模型实战:构建AIOps智能故障诊断系统!

简介 本文详细介绍了基于多智能体协作的AIOps根因分析系统,通过任务规划、指标分析、日志分析、拓扑感知等智能体协同工作,实现故障的自动化诊断。系统基于Dify平台构建,采用ReAct模式进行多轮迭代分析,整合监控、日志、链路等多源…

作者头像 李华
网站建设 2026/7/7 14:19:09

cv与CNN的技术与模块

1. CV技术的应用现状​- 工业领域:缺陷检测、无人质检、工业机器人视觉导航;​- 安防领域:人脸识别、行为分析、视频监控智能预警;​- 医疗领域:医学影像诊断(CT/MRI分析)、细胞识别、病理切片检…

作者头像 李华
网站建设 2026/7/7 18:06:12

GitHub 热榜项目 - 日榜(2025-12-12)

GitHub 热榜项目 - 日榜(2025-12-12) 生成于:2025-12-12 统计摘要 共发现热门项目: 13 个 榜单类型:日榜 本期热点趋势总结 本期GitHub热榜以AI应用开发和基础设施为核心,展现出强劲的技术趋势。AI编程助手(如cla…

作者头像 李华
网站建设 2026/7/7 17:15:56

SDXL VAE FP16修复:彻底解决黑色噪点与显存占用问题

SDXL VAE FP16修复:彻底解决黑色噪点与显存占用问题 【免费下载链接】sdxl-vae-fp16-fix 项目地址: https://ai.gitcode.com/hf_mirrors/madebyollin/sdxl-vae-fp16-fix 还在为SDXL模型在FP16精度下产生的黑色噪点图像而烦恼?是否因为使用--no-h…

作者头像 李华
网站建设 2026/7/7 15:04:59

告别 Shell 脚本:用 Laravel Envoy 实现干净可复用的部署

告别 Shell 脚本:用 Laravel Envoy 实现干净可复用的部署 如果你部署代码有段时间了,很可能某个地方有个叫 deploy.sh 的文件。 也许一开始只有几行: git pull origin main php artisan migrate --force一两年后,它变成了一堵 …

作者头像 李华
网站建设 2026/7/7 19:47:47

玩转 Flutter 动画:从基础显隐动效到自定义交错动画的全维度实践

欢迎大家加入[开源鸿蒙跨平台开发者社区](https://openharmonycrossplatform.csdn.net),一起共建开源鸿蒙跨平台生态。动画是 Flutter 应用 “活起来” 的灵魂 —— 一个恰到好处的动效能让界面交互更自然,用户体验提升一个档次。但很多开发者对 Flutter…

作者头像 李华