智能铁路巡检机器人系统设计与实现
2022-03-26李小明
李小明
(广州铁路职业技术学院,广东 广州 510430)
0 引言
由于铁路轨道常年暴露在自然环境中,自然老化和恶劣天气都会造成铁路设备损坏或松动,同时闲杂人员、动物、石头等异物入侵会对铁路正常运行造成重大隐患。因此项目组开发了一款巡检卫士机器人主要解决车站及铁轨周边安全问题。
铁路轨道损坏及周边异物入侵不能被及时发现时会造成重大安全事故;巡检卫士可以执行7*24小时自动巡逻任务且风雨无阻,通过事前配置的巡检任务,巡检卫士可以每天定时出发对轨道及周边异物进行巡查,能有效降低事故发生的概率。使用基于yolov5的多重迁移学习算法训练了铁轨探伤及异物入侵检测模型,可以有效识别铁轨、闲杂人员、动物、火焰、轨道周边异物(石头、砖块)等,通过机器视觉算法对轨道掉块、裂纹、连接件异常等情况进行检查判断可以第一时间发现异常情况并及时处理。
巡检卫士配置了高清云台摄像机和4路巡检摄像机,可以全方位监控四周环境信息,巡检卫士内部加装了5G模块可以通过流媒体服务器实时传送现场画面给车站后台监控人员,当监控人员发现异常时可以通过高保真喇叭喊话,驱赶闲杂人员和动物离开铁路轨道。针对巡检卫士在巡检过程中由于路面凹凸不平引起的视频抖动等问题,使用opencv技术开发了一款视频防抖稳定器,有效解决了视频抖动的问题。
1 巡检卫士系统架构设计
1.1 整体架构设计
巡检卫士系统主要包括三层:感知层、网络层和应用层。感知层负责铁路周边环境数据及异常数据采集,巡检卫士在巡检过程中会实时传回现场画面,当识别感知到异常信息时会及时反馈给监控人员进行处理;网络层负责将感知到的数据通过网络传输,通过发布订阅消息(topic)、定制服务(service)和定义动作(action)等多种方式进行单向异步、双向同步及双向异步通信,通过kafka中间件与外系统通信,巡检卫士配置了高清云台摄像机和4路巡检摄像机同时加装了5G模块,可以通过流媒体服务器将现场全方位画面实时传送给车站后台监控人员;应用层负责数据的展示,通过WEB网页端和手机APP端可以管理和配置机器人相关软、硬件及参数信息,车站监控人员可以在监控大厅实时监控巡检卫士传回的现场画面[1-2]。系统架构图如图1所示。
图1 智能铁路巡检机器人系统架构图
1.2 功能设计
巡检卫士系统分为三个子系统:巡检机器人子系统、WEB管理子系统和APP子系统。其中巡检机器人子系统又分为:巡检卫士硬件子系统设计和巡检卫士软件子系统,巡检卫士软件子系统部署在机器人实体内部的工控机里,操作系统为ubuntu16.04,ros版本为ROS Kinetic,各子系统及功能如图2所示。
图2 智能铁路巡检机器人各子系统及功能图
1.3 流程设计
智能铁路巡检机器人巡检任务处理流程如下。
(1)配置管理员在WEB管理子系统中配置巡检任务,在巡检任务中指定巡检频率、时间、地点、巡检内容及跟班人员,巡检内容包括铁轨探伤、异物入侵等,跟班人员做为本次巡检任务的责任人,负责本次巡检任务跟进及处理相关工作,巡检任务配置后信息自动保存在mysql数据库中。
(2)巡检卫士机器人软件子系统部署在机器人内部工控机内,由定时程序触发执行巡检任务,当满足巡检条件即达到巡检任务里配置的时间等要求时,触发初始化操作,调用机器人启动脚本启动雷达、巡检摄像机等硬件设备,并按任务配置要求开始自动导航执行巡检任务,在巡检过程中完成铁轨探伤、异物入侵报警等功能,发现异物入侵时调用语音合成功能,通过高保真喇叭驱离闲杂人员、动物等。当驱离无效或发现铁轨掉块、裂纹、连接件异常或铁轨上有石块、砖头等异物时立即进行抓拍并发送异常通知给监控人员,监控人员在监控大厅可以实时观看现场画面,并可以远程控制机器人,控制云台摄像机进行近距离查看,并指派专人及时进行处理;同时监控人员也可以使用手机APP查看异常信息。巡检流程如图3所示。
图3 智能铁路巡检机器人巡检流程图
1.4 技术路线
智能铁路巡检机器人系统软件功能技术路线如下:
软件功能通过在ROS机器人系统上进行二次开发实现,通过发布订阅消息(topic)、定制服务(service)和定义动作(action)等多种方式进行单向异步、双向同步及双向异步通信,通过kafka中间件及微服务接口与WEB及APP等系统进行通信,通过ROS主题消息发布机器人状态数据(速度、位置、角度等)和传感器数据(激光雷达、摄像头、超时波等);通过ROS订阅主题消息获取信息,并进行数据融合处理,通过Kafka生产者进程将处理后的信息放入队列,由kafka消费者进程从队列中获取,然后通过微服务接口和流媒体服务器对外提供数据信息,供手机APP和WEB端使用。技术路线如图4所示。
图4 智能铁路巡检机器人技术路线图
2 巡检机器人子系统
2.1 巡检卫士硬件子系统设计
巡检卫士硬件子系统结构包括[3]:全地形越野轮底盘、高清云台摄像机、四路巡检摄像机、红外热成像仪、单线激光雷达、多线激光雷达、3D摄像头、防撞传感器、环绕超声波、高保真喇叭、减震系统、循环散热系统、铝型材拓展板等;高清云台摄像机、四路巡检摄像机、红外热成像仪通过USB线连接到底盘工控主机,巡检卫士硬件结构如图5所示。
图5 智能铁路巡检机器人硬件结构图
2.2 巡检卫士软件子系统设计
巡检卫士软件子系统主要完成铁轨探伤、异物入侵报警等软件功能,发现异物入侵时触发程序调用语音合成接口,播放异物入侵语音警告信息。通过机器视觉算法检测铁轨掉块、裂纹、连接件异常、石块、砖头等异物入侵信息并生成现场图片和异常通知信息,通过微服务接口发送给后台监控人员,监控人员在监控大厅通过WEB系统里视频监控功能观看现场画面,并且可以通过设备管理功能通过键盘和鼠标控制机器人,当在机器人控制界面按键盘上下左右键时会触发处理程序执行如下操作,通过调用微服务接口做为kafka生产者向服务器队列发送机器人移动消息、当kafka消费端获取消息后向ros主题发布消息控制机器人移动,还可以控制云台转向使摄像机聚焦,近距离查看铁轨异常信息,监控人员也可以使用手机APP软件里面的异常信息通知功能查看异常信息。
巡检卫士软件子系统的核心功能是对入侵物及铁轨损耗的精准识别和判断,由于在巡检过程中地面坑洼导致巡检视频抖动,因此在设计过程中加入了视频防抖功能,结合多重迁移算法对模型进行训练,达到了巡检异物识别和检测效果[4-6],巡检卫士主要完成的软件功能包括:
(1)设计开发了一款基于opencv点特征匹配的视频防抖稳定器;
(2)通过基于yolov5的多重迁移算法训练了一款铁轨探伤及入侵检测模型,可以精准识别铁轨掉块、裂纹、连接件异常、石块、砖头等铁轨异物。处理流程图如图6所示。
图6 视频防抖及异物识别流程图
2.2.1 视频稳定器设计
采用基于opencv点特征匹配的视频防抖技术实现了一款视频稳定器,解决了巡检卫士在巡检过程中遇到凹凸不平地面时视频产生严重抖动影响识别效果,降低识别率等问题。
视频防抖技术主要使用到了光流算法(Lucas-Kanade),光流是一种运动模式,例如,一个物体、表面、边缘在某种视角由观察者和背景之间形成的明显移动。Lucas-Kanade光流算法是一种两帧差分的光流估计算法,通过梯度下降方法来寻找局部最优解。
光流算法主要的公式如下所示:
(1)设置输入和输出视频;
(2)读取第一帧并转换为灰度图,捕捉视频的两帧,估计帧之间的运动并校正运动;
(3)寻找帧之间的移动,遍历所有的帧,找到当前帧和前一帧之间的移动。可以使用opencv的特征检测器;使用Lucas-Kanade光流算法在下一帧中跟踪它们。使用opencv的CalcOpticalFlowPyrLK()函数实现。calcOpticalFlowPyrLK可能无法计算出所有点的运动。当前帧的特征点被下一帧的另一个对象遮挡时CalcOpticalFlowPyrLK()函数无法计算出该点的运动。
(4)计算帧之间的平滑运动,通过估算上一步微分运动找到运动轨迹,增加运动之间的帧来计算轨迹,使用移动平均滤波器(将某一点上的值替换为窗口定义的其相邻函数的平均值)使得轨迹变得平滑。然后通过找到平滑轨迹和原始轨迹之间的差异将这些差异加回到原始的变换中使得视频变得稳定,然后循环应用到视频的整个过程。处理流程如图7所示。
图7 视频稳定器处理流程图
2.2.2 铁轨探伤及入侵检测模型开发
采用基于yolov5的多重迁移学习算法识别入侵物,通过机器视觉算法检测铁轨掉块、裂纹、连接件异常、石块、砖头等入侵物。
开发过程如下。
(1)获取铁轨入侵物监测模型。
首先通过网络爬虫、人工拍照等多种手段收集到入侵物图片约1200张并对特征点进行标注;然后对入侵物数据进行增强;最后采用多重迁移学习算法使用coco数据集结合上一步的入侵物增强数据,使用yolov5框架对数据进行训练得到铁轨入侵物监测模型。
(2)获取铁轨探伤及入侵物监测模型。
采用迁移学习算法对收集到的铁轨掉块、裂纹等图片约1500张及上一步获取的铁轨入侵物监测模型进行训练,最终得到铁轨探伤及入侵物监测模型。多重迁移学习算法流程如图8所示。
图8 多重迁移学习算法流程图
在实际环境使用效果如图9所示。
图9 实际检测效果图
3 结语
巡检卫士机器人已在铁路沿线等实际环境中进行了测试,各项数据指标达到了行业标准。在研发过程中也存在一些待解决和优化的问题:(1)当外部环境较复杂时导致视频严重抖动,视频稳定效果需要进一步改善和优化;(2)目前只能通过视觉对铁轨外部损伤进行监测,无法监测铁轨内损,这些问题都需要进一步研究、升级和优化。