马世欢,李 伟
(河南工业职业技术学院电子信息工程学院,河南 南阳 473000)
随着信息技术的发展和推广,人工智能技术逐渐渗透到各个传统产业领域,智能化水平成为衡量现代企业综合实力的重要标志[1]。过磅系统是现代企业称量的主要组成部分。特别对于涉及大宗商品、原材料和商品的流通领域,过磅系统的效率和准确性对企业的正常运转起着非常重要的作用[2-3]。
现代化的过磅系统充分利用信息技术的进步,以人工智能、物联网、云计算等先进科技对传统的过磅系统进行改造。
我国现有的过磅系统正处于向信息化过渡的起步阶段,其稳定性、兼容性以及用户体验都需要不断改善。充分利用信息技术的进步,将人工智能、物联网、云计算等先进科技应用于改造升级传统的过磅系统,已逐渐成为发展趋势。越来越多的科研工作者对此进行了深入的研究。本文以提升企业智能化水平为目标,设计、开发了基于计算机视觉的无人值守过磅系统。该系统改变了传统过磅系统的工作模式,降低了系统安装和维护的复杂度和成本,提高了过磅速度,保证了称重数据的准确性和系统的可扩展性,能够帮助企业实现过磅流程的智能化、数据管理的远程化。
目前广泛使用的无人值守过磅系统[4]主要通过传感器取代人工来观察、判断车辆的上磅情况,从而实现无人操作。工作时,系统自动进行称重工作,无需工作人员管理。无人值守过磅系统的工作流程如下。
过磅系统管理员先将卡号、驾驶员姓名、车牌号、货名等信息输入系统,然后向驾驶员发卡。汽车开近地磅时,驾驶员刷卡。系统验证其信息有效后,打开道闸供汽车驶上地磅。当汽车完全在地磅上时,对射系统检测到车尾上磅信号,放下道闸,禁止下一辆车上磅。当车辆停稳后,系统记录车辆的实时重量,同时将抓拍的车辆图像存入系统。如果有打印磅单的需要,则打印出磅单,并抬起道闸,让已过磅的车辆通过。最后,落下出口道闸,表明过磅流程结束。
传统的无人值守过磅系统主要利用地感线圈和红外线对射来检测车辆是否在合适的称重位置。当车辆驶入地磅时,地磅尾部和头部的红外线对射,检测车身是否完全在地磅上。地磅头部地感线圈检测车辆完全驶离称重平台后,关闭升降杆。
针对上述问题,基于计算机视觉的过磅系统通过人工智能技术进行车辆运行状态的识别和位置的判断,从而避免大量传感器的安装。以下就传统无人值守过磅系统和基于计算机视觉的无人值守过磅系统进行对比分析。两种过磅系统的对比如表1所示。
基于计算机视觉的无人值守过磅系统通过分析传统无人值守过磅系统的工作流程,采用计算机视觉技术、人工智能技术和物联网技术对过磅流程进行重构[5]。系统工作流程如图1所示。
图1 系统工作流程图
系统由地磅、Wi-Fi摄像头、称重数据采集模块、车牌识别模块、物联网平台、车辆运动跟踪模块和摄像头、计算机主控模块和云存储器组成。
系统总体架构如图2所示。
图2 系统总体架构图
以下分别介绍各模块的具体功能。
称重数据采集模块实时采集称重平台上的数据,并通过消息队列遥测传输(message queuing telemetry transport,MQTT)协议发布到物联网平台。计算机主控模块会订阅该消息,从而获得重量数据。称重数据采集模块主要包括称重传感器和物联网芯片。称重传感器可将测重平台传递过来的模拟信号转换成相应的数字信号,是系统中采集重量数据的基础组件。
车辆运动跟踪模块负责采集车辆通过地磅的状态信息,包括车辆的运动状态和位置,并将该信息传递给计算机主控模块,以便计算机主控模块进行后续的工作。跟踪模块和计算机主控模块都部署在安装了Android操作系统的嵌入式设备上,利用设备自带的摄像头采集图像信息,并使用卷积神经网络的目标检测算法确定车辆的位置[6]。
车牌识别功能模块负责保存车牌图片并识别车牌。它和物联网平台都部署在一个树莓派4(Raspberry Pi 4,RPI4)上。当车辆上磅并停稳后,模块首先根据车辆的运动方向,从相应的Wi-Fi摄像头获取车牌信息;然后利用计算机视觉算法识别车牌,并将该信息传递给计算机主控模块[7]。
计算机主控功能模块是系统的核心模块,负责整个流程的控制。该模块首先通过车辆运动跟踪模块传递过来的信息,结合事先设置的参照物信息,判断是否有车辆上磅并且已经停稳;然后,对称重数据采集模块传递过来的重量信息进行观测;当重量稳定后,模块记录该数据作为最终的重量数据,同时通知车牌识别功能模块保存车牌图片并识别车牌;最后,保存重量和车牌信息到本地并上传到云端。
系统工作时,先给称重传感器、物联网芯片、树莓派上电。树莓派启动成功后,用户启动Android设备上的自动过磅APP。APP启动成功后,使用手动过磅功能可以获得系统中一些关键软硬件的工作状况,包括物联网服务、树莓派Web服务、地磅传感器和物联网芯片等;同时,使用手动过磅功能也可以进行基本的过磅称重操作。
使用无人值守过磅功能时,首先通过触屏操作,确定地面基线和地磅基线。当车辆进入摄像头范围后,系统检测车辆并进行跟踪,在屏幕右侧实时显示车辆运行状态,状态包括左边上磅、右边上磅、左边下磅、右边下磅、等待上磅、开始称重和稳定等。当车辆的状态符合称重要求时,系统自动保存实时重量,并进行车牌识别和车牌截图。车牌截图为手动修改识别错误提供了依据。
在APP端和微信小程序端,管理员可查询过磅数据、修改识别错误的车牌,以及处理不合规的过磅数据(如车辆没有按照要求两次过磅等)。
地磅系统的部署安装位置比较特殊,有可能是在比较偏僻的采石场、矿场、矿山等地,没有固定的网络。因此,过磅数据需要根据情况采用不同的上传模式。根据这个特点,系统的数据存储分为本地存储和云端存储。本地数据库采用Android自带的SQLite数据库。云端使用Bmob后端云存储数据。
树莓派4具有强大的运算能力,体积小且价格低廉。所以本文选择树莓派4部署车牌识别程序、物联网服务和Web服务[8]。物联网服务使用EMQX。EMQX是发布订阅模式的开源MQTT消息服务器。它具备功能强大的管理控制台,并提供了基于树莓派平台的版本。Web服务使用Flask构建。Flask是由Python实现的Web微框架,可提供车牌图片的Web服务。
ESP8266是性价比较高的Wi-Fi模块,非常适合物联网领域的项目[9]。MicroPython已经实现了ESP8266基本硬件资源接口,所以系统使用在ESP8266上运行MicroPython,实现重量数据的采集,并向树莓派上的物联网服务发送消息。
从一辆车上磅到下一辆车上磅中间最快也有大约1 min的间隔,可以降低对车牌识别算法时间复杂度的要求。这允许使用树莓派这种计算能力有限的设备。HyperLPR是开源的、基于深度学习的中文车牌识别库。它基于端到端的Sequence模型,无需进行字符分割,具有识别速度快、识别率高和轻量的优势。所以,车牌识别使用HyperLPR。
算法需要能够运行在Android设备上,方便移植和部署。TensorFlow Lite是Google公司推出的针对移动设备的轻量级机器学习解决方案,允许在低延迟的移动设备上运行机器学习模型,还支持硬件加速Android神经网络应用程序接口。考虑到目标检测是在嵌入式Android设备上进行的,所以使用TensorFlow Lite框架。目标检测算法选择SSD,以满足系统对mAP和fps这两个指标的要求[10]。目标跟踪算法使用OpenCV自带的算法实现。
本文综合运用计算机视觉技术和物联网技术,开发了一种无人值守的自动过磅系统。计算机视觉技术主要用于车牌识别和车辆检测。物联网技术主要应用于控制指令的传输。该系统简化了过磅的工作流程,降低了系统安装和调试的工作量,减少了系统需要的硬件设备数,节省了布线材料和人力成本。
对于工矿企业,基于计算机视觉的无人值守过磅系统的使用提高了过磅效率,能将计量误差控制在3‰以内,降低了企业成本,提高了企业的信息化水平,为企业的智能化提供了有力支撑。