news 2026/3/16 5:27:41

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

Wan2.2-T2V-A14B模型在核电站应急疏散视频中的路线规划

Wan2.2-T2V-A14B模型在核电站应急疏散视频中的路线规划 在核电站这类高风险工业设施中,一次有效的应急响应可能决定成百上千人的生死。传统上,应急预案以文档形式存在,依赖人工解读和定期实地演练来验证其可行性。然而,这些方式不…

作者头像 李华
网站建设 2026/3/14 12:44:38

核反应堆安全控制系统中的Agent技术:如何构建永不宕机的智能防护网

第一章:核反应堆安全控制系统中Agent技术的演进与挑战随着核电站自动化水平的不断提升,传统集中式控制架构在应对复杂故障场景时逐渐暴露出响应延迟、容错能力弱等问题。在此背景下,基于Agent的技术因其分布式智能、自主决策和协同交互的特性…

作者头像 李华
网站建设 2026/3/13 0:13:22

基于单片机的宠物自动喂食器(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4302310M设计简介:本设计所研究的是实现一宠物自动喂食器,即先将宠物饲料放入其中,通过设定5个喂食时间点,…

作者头像 李华
网站建设 2026/3/14 10:32:26

Java Stream API 实战:电商业务高频操作全解析

Java Stream API 实战:电商业务高频操作全解析 在电商系统开发中,Stream API 是处理集合数据的利器。本文将深入探讨各种Stream操作在实际业务中的应用场景,帮助您写出更优雅高效的代码。 一、基础操作:数据转换与提取 1. map() -…

作者头像 李华
网站建设 2026/3/13 0:16:13

基于微信小程序的日常活动记录系统毕业设计项目源码

基于微信小程序的日常活动记录系统,直击用户“生活碎片难整合、目标进度难追踪、回忆瞬间难留存”的核心痛点,依托微信小程序“免安装、随时记、易同步”的优势,构建“多场景记录智能管理个性化复盘”的一体化生活服务平台。传统模式下&#…

作者头像 李华
网站建设 2026/3/15 12:29:36

Lottie动画实战手册:从AE设计到Web渲染的避坑指南

Lottie动画实战手册:从AE设计到Web渲染的避坑指南 【免费下载链接】lottie-web 项目地址: https://gitcode.com/gh_mirrors/lot/lottie-web 是不是经常遇到这样的场景?设计师在After Effects里精心制作的动画,到了开发这边就变成了&q…

作者头像 李华