APP下载

基于神经网络结合模板匹配算法的送药系统研究

2022-10-18丁恒旺郑金和闫绍敏

自动化仪表 2022年9期
关键词:舵机卷积神经网络

丁恒旺,郑金和,闫绍敏

(曲阜师范大学工学院,山东 日照 276826)

0 引言

“人工智能+医疗”是目前社会广泛关注的领域,体现了人工智能与医疗行业的深度融合[1]。目前,世界各个国家及地区都在积极将人工智能应用到医学影像、疾病诊断、医疗辅助等技术中。近年来,我国大力促进“新工科”“新医科”建设,“人工智能+医疗”的价值不断显现,具有广阔的发展前景[2]。

为解决医疗辅助类送药小车因用药需求增加而导致的效率低、药品送错、资源浪费等问题,本文研究了一种以单次多边框检测(single shot multibox detector,SSD)为骨架的卷积神经网络目标检测算法,并将该算法与多模板匹配算法相结合,设计了一款目标检测速度快、准确度高的送药小车系统。

TensorFlow提供了梯度下降、损失函数改进、均方根传递(root mean square propagation,RMSprop)等多种神经网络优化方法[3-5],支持多种图形处理器(graphic processing unit,GPU)计算,可快速把神经网络模型布署到电脑。SSD目标检测算法采用一种端到端的目标检测网络。其骨干网络分为特征提取层和多尺度目标检测层两部分,能够大幅度提高小物体目标检测的准确度。但其目标检测标注框的大小需要人工确定,训练过程耗费人力[6]。同时,图像识别系统的OpenMv处理器需要实时运行目标检测算法处理目标数据,而其实际处理能力有限,无法处理大数据量的图像模型。多模板匹配算法能够在一幅图像里寻找特定目标,通过遍历图像中的每个可能位置,比较各处与采集的模板图像是否“相似”。但该算法只能匹配与模板相同状态下的目标,局限性较大[7]。

由此,本文研究了一种互补综合方案,将神经网络算法和多模板匹配算法相结合,使用多模板匹配算法标注目标图像、神经网络算法训练模型进行目标检测。基于神经网络结合模板匹配的方法可以得到快速、稳定的目标检测模型,提高了送药小车系统执行任务的效率。

1 系统总体设计方案

基于神经网络结合模板匹配算法的送药系统由搭载STM32 M7处理器的OpenMv目标检测系统和英飞凌公司基于统一TC264单片机的小车控制系统组成。两者通过串口通信完成送药任务。

系统结构如图1所示。

图1 系统结构框图Fig.1 Block diagram of system structure

系统整体设计方案分为三部分。

①图像识别系统。首先,OpenMv采集图像数据,并将采集到的目标图像像素值取反转化为灰度图。然后,OpenMv上的STM32芯片运行SSD目标检测模型,得到目标图像特征数据;同时,多模板匹配算法处理目标检测的图像数据。最后,将目标图像和模板图像比对,并根据重合率发送判断指令至TC264。

②车载控制系统。TC264接收到OpenMv的判断指令,采用增量式比例积分微分(proportional integral differential,PID)算法计算电机转速指令控制小车速度;采用位置式PID算法计算舵机角度指令,从而控制小车转弯。

③人机交互系统:采用蓝牙通信的方式构建手机和小车远程通信平台,通过手机应用(application,APP)实现一机多控远程操控送药小车,同时搭配彩色发光二极管(light emitting diode,LED)显示模块进行人机交互,以提高送药效率。

2 目标检测系统设计

2.1 SSD卷积神经网络

基于机器学习的目标检测神经网络算法,是指网络层数在三层或者三层以上的卷积神经网络结构模型。该模型主要由输入层、卷积层、池化层、全连接层和输出层五部分构成[8]。SSD卷积神经网络目标检测的核心是对图像进行卷积和池化处理,对输入的原始图像进行特征降维,并以此作为网络层的特征输入,得到不同目标的分类模型[9]。

卷积神经网络的输入层是将目标数据或使用数据增强等方法预处理后的数据输入卷积神经网络。对于多层神经网络模型而言,输入层就是特征向量。将此特征向量输入到卷积神经网络进行特征提取,进而得到期望的预测模型[10]。本系统在输入层对输入图像采用随机放缩的方法进行数据增强,能够在不增加计算量的同时扩充数据集,以提高模型准确度。

卷积层又称为特征提取层,利用卷积核在图像上滑动计算得到目标图像的局部特征深度。卷积核模仿人体的神经元,是一种线性的、滑动平均移动的数学算子。在卷积神经网络中,卷积核数据的选取是影响模型效果的核心要素。本系统针对送药小车的识别目标,设置了核大小为3×3、步长为2的卷积核。

卷积层的特征提取效果依赖感受野的大小。感受野越大,其模型精度越高。但感受野的增大提高了计算量。池化层的主要作用是在不改变图像特征的情况下对图像进行降维操作,以减小特征参数、降低网络的运算量,从而加快其运算速度。

多维特征输入到二维特征输出映射的过程中,经常出现数据特征丢失现象。全连接层将提取到的图像特征重新拟合,对提取到的特征采取加强算法,通过线性匹配减少数据的丢失。

卷积神经网络输入层接收到采集的目标数据集后,随机选取其中的80%作为训练集送入卷积层提取目标图像特征。经过模型训练,输出层将不同目标的特征分离出来。使用其余的20%作为测试集检测模型准确度,系统能够依据这些不同的目标特征验证模型效果。

2.2 多模板匹配

模板匹配是把目标数据作为匹配模板,利用归一化算法匹配扫描实时的图像数据,从而计算两者的匹配度,并根据匹配度进行目标的检测和跟踪[11]。本系统的多模板匹配使用摄像头采集目标图像,分别建立模板库,生成各自的模板ID。进行模板匹配时,将图像二值化处理后的目标图像分割提取,归一化到和模板目标相同的尺寸进行匹配[12]。通过计算待识别目标和模板目标的重合度,得到重合度最大的样本。该样本即最佳匹配结果。模板匹配算法重合度计算如式(1)所示。

式中:f为模板字符的二值化图像;g为待识别字符的二值化图像;f和g的尺寸均为M×N;Tf和Tg分别为对应图像中像素点为1(即白色点)的个数,为与运算[13];Cfg为模板图像和目标图像的重合度;X为重合度系数,范围为0~1,通常情况取值为1。

模板匹配算法的计算量与保存模板的数量有关。保存的模板数量越多,计算量越大,匹配时间越长。为提高算法匹配速度,本系统采用并行匹配方式,设置多个模板数组,针对不同的标志物遍历不同的模板,降低了算法的计算量。模板匹配算法的模板遍历速度与循环步长有关。循环步长越大,算法运行越快。但过高的步长会损失一定的匹配精度。本系统的最佳循环步长为4,即每次匹配时跳过像素的数量为4。经仿真测试,模板匹配时间约为649 ms。

2.3 目标检测系统

卷积神经网络模型训练的准确度依赖原始图像标注框的选择。标注框的标注精度越高,其准确度越高。模板匹配只能进行平移匹配。对于本系统采用放缩法数据增强的目标图像,模板匹配算法无效。本系统采用SSD目标检测模型结合多模板匹配算法,在输入层针对不同图层大小的图像使用不同的检测阈值提高计算速度,将卷积神经网络与模板匹配结合,提高目标检测的准确度。目标检测的具体步骤如下。

①首先,使用OpenMv模块上的摄像头分类采集视野内的图像并分组;然后,将采集到的图像按像素点进行像素值取反,再按照分类将图片放置到分类数据集;最后,将数据集上传到EDGE IMPULSE平台进行分类训练,设置系统卷积神经网络训练周期数为50次、学习率为0.001、验证集占比为20%、输入图像像素尺寸为96×96×3、模型训练权重为0.35,使用卷积神经网络算法经过一系列卷积池化输出目标检测模型。

②将OpenMv摄像头对准待检测的目标图像,在OpenMv IDE中截取图片保存为bmp格式,使用在线图片转换将图片转换为pgm格式,再将处理好的标志物的pgm文件保存到OpenMv的SD卡中。本系统设计的多模板匹配算法的特点是将SD卡内模板的文件名称存放在Templates数组中。当代码开始运行时,系统对每个模板进行遍历,根据匹配结果将数据实时反馈给TC264作出反应。

③程序运行时,目标检测模型识别并保存检测到的标志物名称,之后在程序运行中模板匹配算法对识别到的标志进行图像匹配。每次识别到的目标图像都与第一次保存的模板图像进行比较,并在找到正确目标图像时停车判断方向。

本系统采集数字1~8各400张图片合成分类数据集,在平台上将数据集按80%和20%的比例分为训练集和测试集训练模型。经测试集的模型预测,最终得到识别准确率为96.30%的模型。模型训练结果如表1所示。

表1 模型训练结果Tab.1 Model training results /%

SSD神经网络目标检测模型和多模板匹配算法相结合,并对比其目标识别速度、二者单独运行时的识别速度和基于现场可编程门阵列(field program gate array,FPGA)卷积神经网络模型的识别速度。各算法识别速度对比如表2所示。与神经网络算法单独检测相比,将神经网络和模板匹配结合后运行速度提高了约2倍,与模板匹配算法单独检测相比提高了近27倍,而与FPGA 卷积神经网络相比也有较高的提升。因此,SSD目标检测模型结合多模板匹配算法提高了目标检测的速度,配合车载控制系统具有较好的实时性。

表2 各算法识别速度对比Tab.2 Comparison of the recognition speed of each algorithm

3 车载控制系统设计

TC264通过串口通信接收到来自OpenMv的判断指令后,经PID算法输出脉冲宽度调制(pulse width modulation,PWM)信号控制电机转速和舵机角度。本送药系统电机的调控是结合编码器实时读取的转速来调节的,采用增量式PID结合比例积分(proportional integral,PI)控制的速度环,达到直道加速、弯道减速的效果。增量式PID算法是一种带有积分记忆元件的递推算法。其输出值是控制量的增量,具有良好的实时性[14]。增量式PID控制算法表达式为:

(2)

舵机用于前轮转向控制,运行时需要较快的反应速度。尤其是在电机高速运行时,偏差值的计算时间会影响舵机反应速度。基于电机的舵机控制是根据车身距中心线的偏差值以及电机的转速计算控制量。因此,普通PID算法的积分项和微分项不能准确计算。采用位置式PID算法数值逼近舵机角度,能够有效解决这种问题[15]。位置式PID算法表达式为:

(3)

依据标志物和轨道两侧循迹线判断速度,并根据目标图像坐标与中线坐标距离判断舵机角度,可控制小车方向。经调试得到稳定、灵敏的电机舵机控制系统,使系统按照指定路线稳定行驶。

本送药系统使用手机APP结合蓝牙模块与单片机通信进行人机交互,同时搭配蜂鸣器、LED灯和有机发光半导体(orgnic light-emitting diode,OLED)显示屏用于小车的调试和控制。基于此远程客户端,用户通过APP指令即可对小车进行调试和任务安排,从而达到一机多控的目的,实现智能控制的便携化、简便化。

4 结论

本文研究的送药系统将基于SSD的卷积神经网络目标检测算法与多模板匹配算法相结合,使用多模板匹配算法标注目标图像,通过神经网络算法训练模型进行目标检测,得到了快速、稳定的目标检测模型,提高了送药小车系统执行任务的效率。系统对电机和舵机使用不同的控制算法,针对其本身特点设计权重,提高系统智能控制的效率和稳定性;对电机采用增量式PID算法,实现弯道减速、直道加速的效果;对舵机采用位置式PID算法,依据系统偏转误差和电机转速计算舵机角度和方向。系统总体实现了目标检测、智能循迹、远程命令等功能,具有识别速度快、准确度高、实时性好等特点,解决了传统的送药系统识别效率低、稳定性低、任务过程存在高风险等问题,具有较高的应用价值。

猜你喜欢

舵机卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
基于深度卷积网络与空洞卷积融合的人群计数
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
海太克HS—1100WP数字舵机
超音速舵机保护器