APP下载

基于机器学习的智能送药小车设计*

2022-06-24孟兆乐刘增林

山西电子技术 2022年3期
关键词:号码小车病房

孟兆乐,蒋 野,刘增林

(佳木斯大学信息电子技术学院,黑龙江 佳木斯 154007)

0 引言

如今,机器学习是一门研究如何设计算法利用数据使机器在特定任务上取得更优表现的学科,其中以深度学习为代表的相关技术已成为人们研究实现人工智能方法的重要手段之一。至今,机器学习研究已经取得大量令人瞩目的成就:在图像分类任务上的识别准确率超过人类水平;能够生成人类无法轻易识别的逼真图像和文本;机器学习成为热潮,成为解决一些特殊环境下人不方便介入时的解决办法。

受新冠肺炎疫情影响,医院的医护人员在给病人送药的过程中难免会有感染的风险,无接触送药的方式将减少医护人员与病人的交叉接触,减少了医护人员的工作量,从而降低医护人员被感染的概率。设计一款基于机器学习的智能送药小车将改变这种传统的接触式送药模式,智能送药小车利用OpenMV摄像头,通过采集病房号的数字信息,将带有病房号数字信息储存在内存中,当需要送药的指令发出后,配药医护人员将目标病房号的数字信息送给STM32单片机,单片机根据摄像头以及循迹路径规划路线,完成送药任务[1]。

1 系统方案设计

1.1 系统方案选择

智能送药小车制作的主要器件:STM32F429、HMI串口显示屏、HC05蓝牙模块、L298N电机驱动板、电源模块、18650电池电源、发光二极管、带编码器的直流电机、OpenMV摄像头、颜色识别模块、小车实物照片如图1所示。

图1 智能送药小车的实物照片

智能送药小车系统可以划分为四个阶段:病房数字号码进行机器学习阶段、目标病房号码数据采集阶段、送药阶段、返程阶段。

1)病房数字号码进行机器学习阶段:将数字病房号码多角度拍照,将其特征点录入到OpenMV摄像头的数据库中,待送药任务指令下达后,单片机进行目标病房号码的特征点比对工作。

2)目标病房号码数据采集阶段:智能送药小车通过OpenMV摄像头将采集到的数字病房号数据传入STM32单片机,单片机对采集到的数据进行数据特征点采样分析。单片机对采集到的数据与之前机器学习过的数据库进行NCC(模板匹配)、Hausdorff(距离匹配)算法比对,单片机运算处理后得到目标病房号码,并等待药品装填的指令下达。

3)送药阶段:当传感器检测到药品已放入,智能送药小车开始送药阶段。在送药的过程中,智能送药小车利用OpenMV摄像头、循迹模块来完成路线规划,进行送药任务,到达目标病房后点亮红色LED指示灯停车等待药品的取用。

4)返程阶段:当传感器检测到药品已取走后,智能送药小车完成送药阶段,进入返程阶段。智能送药小车原路返回,完成送药工作。

系统组成框图如图2所示。

图2 系统组成框图

1.2 病房地图规划

首先将固定的病房平面图建立直角坐标系进行位置规划,那么我们可以通过编码器累计里程,构建一个智能小车送药路径图。这个图共有14个节点,分别赋予与实际长度相对应的坐标值,将固定的坐标位置存储到单片机的Flash中。通过编码器即可到达地图中任意位置。算法描述如下:

Step1:构建地图,输入14个节点的坐标值、目标坐标值,如图3所示。

图3 节点坐标图

Step2:根据OpenMV的指令进行前进,左转,右转,记录到达的坐标编号。

Step3:构建路径堆栈,在返程时依次出栈。

例如小车要前往中部4号病房,途径1、3、6、9四个节点。当小车返回时,小车采用依次出栈的方法,依次途径的点为9、6、3、1四个节点返回药房。

1.3 摄像头数字识别算法

在小车的行驶过程中需要识别数字,从而判断小车行驶路径。我们在车头安装OpenMV摄像头在十字路口对标识数字进行识别,从而判断小车行驶路径。采用广角的OpenMV摄像头来抓取图像,为保证可以同时抓取四个数字,对摄像头抓取的图像在计算机上进行腐蚀膨胀、滤波、灰度化、二值化等图像预处理操作后储存到OpenMV的SD卡中作为模板匹配的样本,然后对图像进行单字符分割,让小车的摄像头能轻松的去寻找到数字的边框轮廓,将摄像头识别到的数字画外接矩形用于区分以及指示。同时利用模板匹配的NCC算法和Hausdorff算法提高识别精度,保证小车在快速运行的过程中识别到病房号信息,单片机为送药小车规划路线[2]。

1)NCC模板匹配算法

NCC归一化的交叉相关性,是数学上统计两组数据之间是否有关系的判断方法,可以匹配与模板图片大小和角度基本一致的图案。模板匹配适应于摄像头与目标物体之间距离确定,不需要动态移动的情况。

正常的计算公式如下:

(1)

所有像素点(x,y)∈M×N

其中

(2)

(3)

在OpenMV中,我们使用160*120分辨率的灰度图像进行识别。首先对1~8进行模板图像采集,然后使用OpenMV自带函数find_temple进行识别比对。设定相似度阈值为0.7让小车去动态识别数字病房号,送药小车可以完成预期的送药任务[3]。

2)Hausdorff距离匹配的算法

模板匹配适应于摄像头与目标物体之间距离确定,不需要动态移动的情况。在动态移动过程中就会出现错误匹配的情况,所以我们引入Hausdorff算法,从待识别数字图像中提取若干特征向量与模板对应的特征向量进行比较,计算图像与模板特征向量之间的距离,用最小距离法判定所属类别,同时增加粗检索,它不是让模板每次移动一个像素,而是每隔若干个像素把模板和图像重叠,并计算匹配的尺度,从而求出对象大致存在的范围。在以记录坐标为中心的3*3cm2的范围内,让模板每隔一个像素移动一次,根据求出的匹配尺度确定对象所在的位置,利用这条特征去进行固定位置的房间号码识别,让搭载摄像头的小车去寻找固定位置房间号码,然后传回房间号码去完成送药工作。

图4 Hausdorff算法流程图

1.4 PID控制算法

PID调节实质是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。PID控制是将误差信号e(t)的比例(P),积分(I)和微分(D)通过线性组合构成控制量进行控制,其输出信号为:

(4)

对此式进行拉普拉斯变换,并且整理后得到模拟PID调节器的传递函数为:

(5)

KP:比例系数;TI:积分时间常数;TD:微分时间常数;e(t):偏差;u(t):控制量[4]。

2 系统硬件设计

2.1 主控MCU

以STM公司的STM32F429IGT6作为主控芯片,该单片机采用cortex-M4高速内核、主频180 MHz、具有高性能、功耗低、最小系统板资源丰富、片内资源充足和处理能力较强[5]。

2.2 光敏电阻循迹组

在小车的行驶过程中需要判断小车行驶路径,以此来控制小车的行驶状态,对此我们在车头安装光敏电阻循迹组用以检测出地图上的红色标线,从而规划小车行驶路径。

2.3 动力系统——电机与电机驱动板

小车采用直流电机驱动,其转动力矩大、体积小、重量轻、装配简单、操作方便。电机可以通过改变电压来调节转速,也可以通过调节PWM来实现电机的调速。小车采用L298N双路电机驱动板来驱动直流电机。

2.4 蓝牙串口通讯

在两运动中的小车之间建立通讯方式,蓝牙串口模块(HC05)是基于SPP协议,能在蓝牙设备之间创建串口进行数据传输的一种设备。蓝牙串口的目的是针对如何在两个不同通信设备上保证一条完整的通信路径,从而实现双车协作并完成任务[6]。

3 系统软件设计

3.1 程序功能描述

软件部分主要实现通过视觉反馈及编码器控制小车行进,摄像头识别数字和规划小车路线按指示的数字将药送到固定的病房。

3.2 程序设计思路

程序设计主要从是否检测到要求送药的病房号为第一个开关,当检测到目标病房号后去检测第二个开关是否检测到放置药品,检测到放置药品就开始规划路线送药,送药过程检测第三个开关是否到达送药终点,如果到达的是十字路口,就采用摄像头识别房间号,智能送药小车规划路线;如果到达终点,就判断是否取走药品,待取走药品,开始返程。

3.3 程序流程图

图5 程序流程图

4 系统测试与结果分析

基于上述的地图规划情况,分别让送药小车去完成对近端、中端、远端病房的送药任务,其实际测试结果如表1所示。

表1 测试结果

5 结论

本设计制作的智能送药小车,模拟完成了医院病房药品的送达作业。智能小车可依据程序设定以及机器学习的数字病房号信息,实现了病房号的数字识别、循迹、双机交互送药的功能。此设计在一定程度上减少了病人与医护人员的接触几率,也缓解了医护人员劳动量大的问题。

猜你喜欢

号码小车病房
一种病房用24小时尿蛋白培养收集器的说明
大车拉小车
说号码 知颜色
一个号码,一个故事
猜出新号码
刘老师想开小车
两轮自平衡小车的设计与实现
病房
去修理厂
拯救世界的孩子们