道路缺陷智能检测系统
2024-01-23罗怡辰王昕磊单帅迪张鹏鹏
罗怡辰,王昕磊,单帅迪,张鹏鹏
(1.上海电机学院 电子信息学院,上海 201306;2.上海电机学院 机械学院,上海 201306)
0 引 言
随着城市化的发展,各类路面多采用沥青这类材料铺设。因自然环境和功能性因素的影响,例如天气、货车压力对路面的伤害等,导致大量路面损伤,而且缺少后期维护工作,使得城市公路受损情况越来越严重。目前主流的检测方法为人工观察评定,但人工检测不仅耗时耗力,还容易疏漏。现有市场亟需高效的检测方式。
近年来,随着智能系统研究和应用的深入,路面缺陷检测向着智能化方向发展。其中,图像目标检测是发展最为迅速的领域之一。2015 年YOLOv1 算法[1]的发布,是一阶段检测算法的开山之作。在此之前,目标检测都是以R-CNN[2]为代表的两阶段方法。两阶段方法虽然准确率较高,但其运行速度慢,不符合实时应用的需求。YOLO 算法[1]简化了算法流程,将输入图像划分成S*S 的网格,当一个物体中心点落入某个网格内时,该网格负责预测该目标[3-5]。YOLO 算法具有高效、灵活和泛化性能好的优点,推动了智能化目标检测的发展和应用。
本文基于YOLO 算法,设计了一款全自动道路缺陷智能检测系统,分为硬件小车和可视化界面。该检测小车依靠搭载在树莓派上的摄像头进行图片采集。摄像头类似人的“眼睛”,将途中“看到”的内容按设置的帧数截图,然后将照片上传至上位机(客户端)。服务器中搭载YOLOX 算法[6]进行图片缺陷识别,客户只需连接服务器,并将照片上传,待管理员调用该算法后,则可在疑似的照片中标出缺陷,即裂缝和坑洞。管理员可将结果上传至客户端,供客户进行观测。与现有人工检测方式相比,本文设计的智能检测系统节约了人工成本,且大幅提升了检测效率。
1 道路缺陷智能检测系统结构
本文提出的道路缺陷智能检测系统可分为两个部分:即硬件部分和软件部分,其中后者包含服务器端和客户端。软件体系使用TOC 架构,确保服务器端允许多客户端接入。本文将多客户端分为两类角色:管理员和一般用户。
整体架构如图1 所示。首先,利用主控板Raspberry Pi 将摄像头采集到的图片,通过SSH 协议发送给目标电脑。电脑接收后,作为一般用户客户端连接登入服务器端,然后将原始图片上传给服务器端。管理员登入访问服务器端中用户子文件夹下所存图片,下载后调用架设在服务器端的YOLOX 检测算法。待页面上显示相关检测信息后,再将生成的检测信息上传至服务器端的指定用户文件夹。最后用户可在其文件夹中下载相关检测结果图片和技术文档。
图1 整体架构
2 系统硬件结构设计
道路缺陷智能检测系统硬件结构设计如图2 所示。模块之间使用通用串行总线(USB)协议进行连接。该协议可按照传输前制定的原则,在每次传送开始时,主机传送一个描述传输动作的种类、方向、USB 设备地址和终端号的USB数据包[7-8]。
2.1 主控板选取
对比ESP32、STM32、树莓派等主流的主控芯片,发现树莓派开发便捷、接口丰富、处理速度快[9],可以满足缺陷检测算法运行和硬件控制的需求。因此,本系统采用树莓派作为主控芯片。
主控板Raspberry Pi 3B+以及拓展模块如图3 所示。该模块为硬件部分的控制中心,负责程序的初始化、采集端运行以及通信。摄像头模块负责采集道路缺陷图片。WiFi 模块将小车接入已有局域网络,并实现数据上传。
图3 主控板 Raspberry Pi 3B+及拓展模块
2.2 采集功能模块
采集功能模块使用USB 摄像头,该传感器支持120 PFS帧率,120°广视角,拥有2 MP 像素。由于对采集图片的像素要求较高,选用该传感器作为采集端,可保证图片质量,为后续流程提供保证。另外,该主控板所支持的USB 接口较多,可代替传统的CSI 接口摄像头传感器。
2.3 传输功能模块
WiFi 模块是网络通信,是数据交互的基础。利用该模块可实现本地电脑对硬件检测系统的远程控制,如启动或关闭系统、发送图片等。
3 系统软件结构设计
服务器端利用Python 自带的pyftpdlib 包搭载基于FTP协议的服务器,允许多客户端接入。同时开发并实现相应传输、检测功能。FTP 协议允许用户以文件操作的方式与另一主机相互通信。用户并不需要真正登录到进行存取的计算机,可用FTP 程序访问远程资源,实现用户往返传输文件[10]。
服务器流程如图4 所示。为适应实际情况,用于接收不同客户端上传的图片和文档,并保证各个客户端之间通信正常,引入线程概念。这一概念是指管理人员有权查看服务器中所有文件夹,而一般用户权限仅包含在自己的文件夹中进行操作。该方法为后续上传数据及下载文档内容提供了技术支持。服务器正常启动实现后,先运行服务器,再允许客户端接入。
图4 服务器流程
4 多客户端设计
为使管理员和一般用户更直观、更方便地操作,使用PyQt5 搭建可视化界面。由于管理人员和用户的权限不同,故两者的操作页面也有所不同。服务器为实现客户端通信提供有力保障。此外,考虑到硬件资源的开销,将算法架设在服务器上,有效避免了可能因硬件设备和环境不兼容产生的问题。
管理者和一般用户都具有登入连接服务器权限,以及图片上传和下载权限。但管理者具有查询所有一般用户信息以及检测的权限,即对用户上传的图片调用算法模型进行识别,然后在指定用户文件夹目录下,上传检测后的结果图片和技术文档。一般用户则仅可查询和修改子目录下的文件,无法看到其他用户文件,这保证了用户数据的安全性。
由图2可知,鲜肉泥的红度值随腌制时间的延长而下降,因此,选取腌制3 h时红度值较高的生鲜肉泥用于制作肉脯。
5 基于YOLOX 的缺陷检测算法
YOLO 算法[1]仅通过一个CNN 网络直接预测不同目标的类别与位置。其核心思想是把目标检测转变成一个回归问题,放弃原来R-CNN[2]的候选框提取和分类思想,采用直接回归的思路,利用整张图作为网络的输入,只经过一个神经网络,得到目标边界框的位置及其所属的类别。
算法整体流程如图5 所示。为使用并配合YOLOX 算法,前期配置对应环境并搭建相应的依赖库,以便训练自主模型。本文选用best_ckpt 模型进行测试,并且进行模型评估。
图5 算法整体流程
后端模型输出结果如图6 所示。编写调试相应代码,在底层运行该算法,然后将测试通过的模型架设在服务器上。
图6 后端模型输出结果
6 实验结果与分析
搭建完成的硬件部分如图7所示。首先,主控板发出指令,检测传感器设备,如果找到设备则打开,获取该设备采集到的图片信息,并将采集到的图片命名后保存。具体流程如图8 所示。
图7 硬件部分
图8 摄像头传感器流程
主控板与本地电脑(用户)成功传输如图9 所示。先配置树莓派和本地电脑,使得两台设备位于同一局域网;然后打开SSH 功能,运行相关网络通信代码,利用WiFi 模块并配合SSH 协议,实现上位机和下位机图片传输。
图9 主控板与本地电脑(用户)成功传输
为使用检测功能,用户首先需输入登录名和口令(密码)以登入服务器,客户端(用户)显示界面如图10 所示。初始状态下,用户可使用查询、上传、退出这三个功能。由于文件目录列表没有任何文件,故下载功能处于未生效状态。待后续上传文档后,下载状态处于有效状态。
图10 客户端(用户)显示界面
用户通过验证连接服务器后,上传本地图片至个人文件夹,然后等待管理员上传检测结果图片和技术报告。待管理员上传后,用户有权在其子文件夹下下载相应文件并保存。
客户端(管理人员)显示界面如图11 所示。该界面相比一般用户界面,功能更丰富且齐全。连接服务器后,在文件目录中可查询不同用户上传在服务器中的图片,然后将相应的图片下载保存。上述功能步骤实现情况均可在服务器历史中查询。后台服务器检测管理员功能实现情况如图12所示。
图11 客户端(管理人员)显示界面
图12 服务器检测管理员功能实现情况
之后,管理员在本地点击识别按钮,调用底层缺陷识别算法模型。根据识别后的结果,计算获得裂缝和坑洞数量,并在后端将这些信息生成文本文件,同时在页面中显示。页面显示识别结果信息如图13 所示。最后由管理员上传输出后的检测图片和技术文档,供客户下载查看。
图13 识别结果信息
用户在其文件夹下发现目标文件,如图14 所示;然后选择具体想要下载的文件,点击下载按钮进行数据保存。后台服务器监测下载功能成功使用,如图15 所示。
图14 用户文件夹发现目标文件
图15 用户成功下载文件
7 结 语
本文主要介绍了道路缺陷智能检测系统的硬件和软件设计及每个部分对应的实现方案,用于检测道路的缺陷损伤。硬件部分采用树莓派与摄像头搭建,实现从传感器图片采集到网络传输,再到用户本地电脑成功接收。软件部分从服务器端搭建设计,实现多客户端通信,到管理员底层算法调用,实现多客户页面输出。该系统具有一定的可操作性和普适性。使用该系统,可以简化现有繁杂的人工缺陷检测操作流程,从而精简成本和劳动力。同时,为实现智能化社区提供了一定的基础。