省二【F题—河北科技大学】荣荣队—智能送药小车
智能送药小车以 STM32F103ZET6 单片机和 OpenMV 为控制核心,利用药品检测模块确定药品取放状态,基于机器视觉的图像处理单元完成病房门牌号数字识别以及寻径两个模块
标签
电赛
2021电赛
F题
河北科技大学
更新2022-01-12
河北科技大学
3307

摘要 :智能送药小车以 STM32F103ZET6 单片机和 OpenMV 为控制核心,利用药品检测模块确定药品取放状态,基于机器视觉的图像处理单元完成病房门牌号数字识别以及寻径两个模块,通过两个模块协调配合模拟完成在医院药房与病房间药品的送取作业。病房门牌号识别是将采集的门牌号样本集预处理,提取门牌号的参数区域对卷积神经网络进行训练,最后利用训练好的模型对采集的图像进行端到端的识别,实验表明该方法正确率高且速度较快。将 OpenMV 处理的数字结果传输到单片机中,对路径进行检测,通过图像处理完成路径的识别,将所有数据发送到主控系统中,主控系统利用数字信息以及路径信息规划接下来的路线规定位置。两小车之间通过蓝牙方式进行信息的交互处理,完成两车之间的协同作业。

关键词:STM32F103ZET6;OpenMV;机器视觉;卷积神经网络

一、系统方案设计与论证

本系统主要由药品装载检测模块、数字识别模块、图像识别寻径模块和小车电机驱动模块四部分组成,药品装载模块确定已装载药品以及确定病房号以后小车就可利用寻径线指引小车前进,在此过程中通过数字识别模块完成病房门牌号识别,确定需要完成送药的病房的具体位置,通过寻径到达需病房指定位置。利用药品装载模块确定药品已卸载,小车按照指定指令转弯,沿寻径线回到药房待命。此过程用 STM32F103ZET6 单片机和 OpenMV 作为控制核心。两小车之间通过蓝牙方式实现通信,进而完成协同工作。根据题目要求,对该系统的特点及其控制特性进行了分析,进行了几种不同设计方案的比较。

1.1 药品装载检测模块方案

方案一:采用光电开关法

利用药品对光束的遮挡或反射,由同步回路接通电路,从而检测药品的有无。所有能反射光线(或者对光线有遮挡作用)的物体均可以被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对药品进行探测。

方案二:采用压力传感器

压力传感器能感受压力信号,并能按照一定的规律将压力信号转换成可用的输出的电信号的器件或装置。在确定药品取放的同时还可确定药品的重量。

综合对比两个方案,方案一更加的简单方便,所以选择方案一。

1.2 数字识别模块方案

利用摄像头拍摄的图像,将图像内数字信息的提取以及识别有两种方案。

方案一:光学字符识别法

指相机检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。

方案二:基于卷积神经网络的图像数字识别

卷积神经网络(

Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一,CNN 降低了图像特征提取过程中的参数数量,大大提高了计算效率,其显著效果也成为了近年来图像特征提取任务的基石。在实际的应用过程中,可忽略恶劣的天气环境,强光等严酷的场景导致的传输图像画质模糊等问题,实现参数的特征提取,增加识别精度和速度。

综合对比两个方案,由于方案一中,如果在拍摄角度和测试环境灯光的变化可能存在数字扭曲、背景复杂等问题,会造成光学字符识别法识别准确率偏低,达不到应用要求。而 CNN 识别速度快、精度高,所以综上选用方案二。

1.3 电源模块方案

方案一:采用两节 7.5V 锂电池产生 15V 的电压,并通过 7812、7805 产生 5V 和 12V 的稳压供给电路使用。安全性能好,锂电池厚度小,重量轻,容量大,但是价格过于昂贵,会加大成本。

方案二:采用 12V 航模电池,经过一个自己搭建的电路可分别产生 3.3V、5V 以及 0~12V 之间任意调节的电压。

综合对比两个方案,方案一的成本较高,本系统使用方案二。

1.4 电机模块方案

方案一:采用步进电机作为小车的驱动电机。步进电机有个非常好的精度,有利于控制小车的定位。但步进电机力矩不足,不利于本系统中需要高速度的小车,所以舍弃步进电机这个方案。

方案二:采用直流电机作为小车的驱动电机,直流电机的转动力矩很大,使用起来也方便,其价格也比步进电机便宜很多,效果也很好,所以采用直流电机。

1.5 电机驱动模块方案

方案一:采用三极管驱动电机,滤波效果好,在单片机跟电机共用一个电源,其在电流较高的情况下,单片机仍能不受干扰而正常工作。优点:电路压降较小,所以在大电流的情况下,发热很小;缺点:电路连接较为复杂,驱动功率较小,不适于大功率驱动。该驱动电路的功率不能满足本系统小车的需求,故舍弃此方案。

方案二:使用专用芯片 TB6612 所组成的模块来驱动电机。是直流电机的专用芯片,利用它内部的桥式电路来驱动直流电机比较简单,电路简单,集成芯片简化了电路的复杂性,驱动功率大。

结合设计要求,本系统不需要精度太大,故采用此方案。

二、系统理论分析与计算

2.1 图像处理

    2.1.1 阈值分割

图像分割的目的就是在复杂空间条件背景下借助场景图像的特征信息将图像划分为一些有意义的区域,其操作相当于对图像进行目标前景提取,以确定图像中的某些特征像素点应该属于目标区域还是背景区域,从而产生对应的二值图像。

本项目采用固定阈值分割法。固定阈值分割法直接利用灰度化图像来进行精准定位,该方法存在如下优势:首先阈值计算过程相对简单、运算效率较高、速度较快。

    2.1.2 边缘检测

图像经过前面的阈值分割之后变为二值化的灰度图,也就是说经过滤波及阈值分割之后图像上只有黑色和白色,黑色是背景,还需要找出图像上白色区域的边界,本项目使用边缘检测的 Canny算法来实现边缘位置的框定。Canny 算法的本质是利用图像一阶导数的极值或者二阶导数的过零点信息来提取边缘。其中所利用到的边缘检测为式1:

FoPC0G_R5IfzVasH_-HDpCiCxSFM

求解梯度 G 和方向θ的计算为式 2,式 3:

FmstCxL9753ZOBRBFhg9Qe2eK6HE

其中σ表示标准方差,Gx表示X方向的梯度,Gy表示Y方向的梯度。

2.2 图像识别

    2.2.1 卷积神经网络

本项目在每个卷积层的结构基础上加入全局动态剪枝技术来提高整个神经网络对透镜样本数据集的识别速度,同时用响应速度更快、鲁棒性更好的 ELU 代替了传统的 RELU 激励函数,该方式不仅避免了在反向传播过程中产生梯度消失,还有效的提高了整个系统识别的准确率。通过摄像头获取大量样本图像,通过之前搭建的神经网络反复处理,输出识别过程中最佳的参数,提高识别的准确率。

    2.2.2 数据预处理

图像的预处理需要样本提纯,其目的是剔除不能被使用的数据。然后需要对提纯后的样本进行标准化或归一化处理,这样做既可以保留目标原始数据特性,又可以使图形中的目标特征信息更加鲜明,具体的标准化的数学表达式如式4,式5所示:

FpSgm0HYdCSKM6ULLLWL8K26GfTx

FtGnrZ6g3zDKVgtYc5QZ0s1eKSXJ

其中,μ表示图像的均值;x 表示图像矩阵;σ表示标准方差;N 表示图像 x 的像素数量。

    2.2.3 卷积神经网络主要架构

输入层的目的是将预处理之后批量标准化成 96×96×3 的 RGB 图像数据输入给神经网络。在CNN 神经网络识别过程中首先对于图片中的每一个特征局部感知,然后利用更深层次的卷积层对得到全局信息。卷积层的 Padding 设置为向上补零模式,步长设置为 1。激励层采用 ELU 函数作为非线性映射的激励函数。池化层完成对特征图数据信息的压缩。经过若干次卷积、激励、池化后,在输出层进行简单的对比分类,从而输出结果。卷积神经网络结构如图 1 所示。

FtUudTadCCcJlEGmhiWendGCfme_

    2.2.4 神经网络训练

卷积神经网络的训练过程分为两个阶段。一个是前向传播阶段,另外一个阶段是随机梯度下降的反向传播阶段,通过前向传播得出的结果与数据训练集真实值进行对比得到损失函数,再通过损失函数对权重求偏导数,完成误差数据从后向到前向的传播与更新。训练过程如附录 3 所示。

三、电路与程序设计

智能送药小车主要由药品装载检测模块、数字识别模块和图像识别寻径模块和等三部分组成,全部由控制模块进行控制。两车之间通过蓝牙通信实现信息互换,协同完成作业。

FutvAELBCudum9H7IF1lKBoZWCU1

3.1 药品装载检测模块

光电开关将输入电流在发射器上转换为光信号射出,利用药品对光束的遮挡或反射,接收器再根据接收到的光线的强弱或有无对药品进行探测。将最终的信号传输到主控模块,再将病房号输入主控模块,主控模块驱动电机实现智能小车的启动。

3.2 数字识别模块

数字识别模块包括 OpenMV 图像采集系统以及神经网络训练系统,神经网络训练系统应提前完成数字训练和识别。

    3.2.1 OpenMV 图像采集系统

将 OpenMV 固定在整个系统的前部,视场范围以及采集速率参考智能小车的速度和主控系统的计算速度,通过云台调整图像采集角度,将采集的图片传输到数字识别模块以及图像识别寻径模块中,以便后期处理。

    3.2.2 神经网络识别数字

利用 OpenMV 采集不同状态的数字集合,通过图像处理,生成合适的数据集输入神经网络训练系统,完成神经网络训练过程。将智能小车在运动过程中采集的图像进行图像处理后,输入训练好的系统中,完成数字的识别,将识别的数字同样传输到主控模块。

3.3 图像识别寻径模块

利用 OpenMV 模块上的摄像头采集的图像在 STM32 系列单片机上通过一系列图像处理,并与初始确定的红实线阈值进行对比分析出红色实现的中心位置,确定其与图像的中心位置的距离,当车身发生旋转时,红色实线图像的中心位置的距离出现偏差时,将误差传回单片机,调用 PID 算法程序得到输出值,然后通过输出 PWM 控制两个电机转动,进而控制小车行驶速度及方向,最终实现小车沿着预置路线行驶,电机驱动电路见附录 5。将识别结果通过 OpenMV 上的 LED 灯显示出来。将以上所有数据都传输到主控制器中,主控制器通过综合评估所有数据,确定智能小车接下来的运动轨迹,最终安全到达指定地点,通过药品装载检测模块判断药品被卸载后,掉头返回药房。两辆小车通过 HC05 蓝牙模块完成两车数据的交互,主控模块通过分析数据完成两辆小车的协同工作。

四、测试方案与测试结果

4.1 测试方案

本系统分为硬件调试和软件调试,硬件调试比较简单,主要是把 OpenMV 模块、电机驱动板、电机、按键输入模块和电池连接起来即可。本系统的主要内容在于软件设计,相较硬件部分的调试而言,软件部分调试显得较为复杂,软件调试主要包括主程序、巡线程序、颜色识别程序、追踪目标程序、小车控制程序、PID 算法程序、阈值自适应程序。经过测试可以很好地完成巡线、颜色识别、追踪目标等各种功能。整机连接完毕后,首先对硬件进行检查联线有无错误,在确定整机连接无误后,再逐步完成对各模块的调试。具体测试方案如下:

(1)小车体积测试: 将小车用直尺测量,保证小车长×宽×高不大于 25cm×20cm×25cm,确保整个结构符合题目要求。

(2)驱动部分测试:将驱动部分与单片机正确连接之后,在单片机中写入电机控制小程序,控制其转动与停止,用万用表测试输出电压正常。

(3)基本功能部分测试:测试小车于药房处识别病房号的时间不超过 20s。复键后开始计时,针对单个小车运送药品到达指定病房到返回起点的时间进行测试,确保运送时间少于 20s。观察小车投影落在黑实线的情况以及时间间隔,智能小车测试现场如图 3 所示。

FnJT37bgmLm4bhXb69UwcEcYdfhg

4.2 测试结果

FhwORX0e_BChubCkFHSBP82E_sE9

测试结果有个别稍有些误差,除此之外,测试结果基本良好。

参考文献

1 翁蒙.基于机器视觉的智能车自主导航方法研究[D].长春:长春工业大学,2020.

2 柴伟佳,王连明.卷积神经网络的多字体汉字识别[J].中国图像图形学报,2018,23(3):0410-0417.

3 潘炜深,金连文,冯子勇.基于多尺度梯度及深度神经网络的汉字识别[J] . 北京航空航天大学报,2015, 41(4): 751-756.

4 储开斌,郭俊俊.智能车运动轨迹跟踪算法的研究[J].电子测量与仪器学报,2020,34(6):131-137.

附录:

1、小车 1 件流程图

Fmm-3u1w1LzjsMLY0j7zw5OeF_EC

2、自动寻径流程图

FuAwCG6813M6TQ8izhyLn2JkNu0P

3、 神经网络训练流程图

FpkHCSIszi5bEFyWEjkRNahaWw5J

4、 硬件电路图

FhWsuvgWb3DUVCCPzt1UlBJeH3gc

FsFpUy1FBlYB7taCD2CiKCUC3l-9

5、 电机驱动电路图

FmSSa8mWv5LAS6Z8L0jlCZOAsNkY

团队介绍
河北科技大学
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号