历史上的今天
返回首页

历史上的今天

今天是:2025年02月28日(星期五)

正在发生

2021年02月28日 | 基于ARM和PSO-BP的人体穴位定位系统

2021-02-28 来源:eefocus

穴位的位置是否找准会直接影响治疗效果,因此设计了一种基于粒子群算法优化神经网络(PSO-BP)的穴位相对坐标预测模型,然后与ARM结合构成一个可以用于人体穴位定位的系统。首先采用PC进行MATLAB仿真训练学习,然后将最优权值及阈值保存下来并简化算法嵌入ARM内,将在线预测转变为离线过程。实验结果表明:经粒子群优化过的BP神经网络有效地改善了局部极值缺陷,可应用于定位端预测穴位的位置,并在LCD中显示穴位相关信息,控制端收到位置数据后可执行电机上的运动操作。


0 引言

人体穴位分布容易受到人体尺寸和比例的影响,所以具有以下两个特性:非线性、模糊不确定性。人体穴位分布的解决方法主要有3种:视觉技术、光学定位法和专家系统法。但是这些方法存在着一些不足:视觉技术采用的是二维视觉测量结合图像处理进行人工标志穴位定位,庞大的分析系统降低了定位的实时性,并且应用场合有局限[1];光学定位法可模拟人眼得出物体的三维坐标达到定位目的,但是定位标靶和周围环境背景都会给定位造成极大的干扰,降低定位精度[2];专家系统法是整合专家经验知识,在实际应用中很难将这些经验转化成一系列规则。


人工智能和仿生技术的发展,出现了很多基于人工智能的预测方法。为了提高中医按摩机器人穴位寻找行为规划的精度,山东建筑大学提出了一种基于遗传算法优化BP神经网络的中医按摩机器人穴位坐标预测方法。结果表明,该方法对中医按摩机器人寻找患者穴位坐标具有较好的精度和预测准确性[3]。由于遗传算法的交叉变异部分会使整个收敛过程变慢,在实际应用中,稳定性可能会比较低。而粒子群算法过程比较简单,所以采用粒子群算法优化BP神经网络算法建立稳定准确的穴位坐标预测模型[4],简化学习过程后将过程移植进ARM[5-6]。最后测试表明:优化后的BP神经网络具有更快的收敛性和适应性,还有比较高的预测精度和稳定性。


本文提出的整体系统设计方案是基于ARM和PSO-BP的人体穴位定位,该系统还具备穴位坐标实时显示及穴位信息播报的功能。由于整个算法的学习过程比较复杂,循环次数非常多,会拖慢整个系统的运行速度,因此在PC上完成整个动态学习过程然后将最优权值及阈值保存输出,并将简化后的算法嵌入ARM内,实际使用时直接根据提示输入信息后即可达到穴位定位的目的。


1 PSO-BP神经网络


1.1 算法模型设计


BP神经网络是目前应用最为广泛和成功的神经网络之一,该网络的特点是信号前向传递,误差反向传播调整网络的权值和阈值。BP神经网络的拓扑结构包括输入层(input)、隐含层(hide layer)和输出层(output layer),如图1所示,最终系统想要达到的效果是输入已知的某穴位坐标值(X坐标,Y坐标),然后预测出其他3个穴位的坐标值。



系统设计的BP神经网络结构采用可以预测几乎所有的非线性函数的三层拓扑结构,输入层神经元为2,输出层神经元为6。对于隐含层(中间层)的神经元数目的选取采用式(1)来确定[7]:



其中,MidNum为隐层节点数,InNum、OutNum分别是输入和输出节点数,a是1~10之间的常数。


最后BP神经网络的拓扑结构为2 —8—6;训练函数采用“taingdx”;隐含层和输出层选取的传递函数均为“tansig”;选择的训练次数为3 000;训练目标误差为0.000 1。


粒子群(PSO)算法用于网络训练可以对权值和阈值的选取进行优化,而不是盲目地给定初值,而且优化过的神经网络会防止神经网络陷入局部最优并提高精度。因此PSO优化BP神经网络的核心是:BP网络中的权值和阈值的集合是群体中的每个粒子的位置集合,其个数是粒子的维度。然后对神经网络进行迭代优化训练,网络的输出误差作为算法的适应度函数即式(2)。



式中,S是学习训练样本,Tk是期望输出,Yk是实际输出。整个算法流程如图2所示。



1.2 MATLAB仿真


以人体的背部为例,穴位是有规律分布的,所以将大椎穴作为坐标原点(0,0)建立坐标系,然后选取大柕穴的相对坐标作为输入,目标输出为脾俞、膈关和命门的相对坐标。仿真训练测量了70组不同测试者的穴位相对坐标,随机选取其中的60组作为学习样本,剩下的10组作为测试样本训练神经网络。


在MATLAB中进行编程,粒子群算法反复迭代200次后将粒子编码转换成BP神经网络的初始的阈值和权值再继续网络的学习过程。仿真结果如图3所示,可发现均方误差随着训练的次数增加在逐渐变小,直到训练1 015次时可达到要求的误差值。



为了方便清晰观察,以第一组预测数据为例通过MATLAB输出预测曲线图,如图4所示,可以看出预测值非常接近实际值,初步证明预测模型的建立是正确的。



最后计算PSO-BP算法数据的预测值和实际值的绝对误差,输入一组大柕穴的坐标(X轴:24 mm,Y轴:24 mm),如表1所示,绝对误差没有超过10 mm,可以看出神经网络对穴位位置的预测精度可以保证在10 mm以内,满足定位要求。



2 系统硬件设计


系统采用双机通信和独立电源的方式来工作,主要分为两部分:主机是穴位定位系统实现穴位预测功能,从机为位置控制系统实现穴位实现功能。系统的整体硬件结构如图5所示。



2.1 穴位定位系统


这部分主要以可视听为目的,按键采用的是4×4行列式的排列,包括0~9数字键和确认取消键。使用3.2寸TFT LCD液晶屏进行参数输入和预测结果的显示。按键输入所需穴位坐标值,此时在LCD可监视输入是否正确,按下确认键后便可执行编写好的预测程序,并在液晶屏上显示输出的穴位坐标值同时通过WiFi向位置控制系统发送坐标值。


2.2 位置控制系统


这部分是控制操作为主,当WiFi连接成功后会有语音提示然后启动电机,电机控制模块有4个直线步进电机,其中分别对应了背部3条主要经络督脉和两条足太阳膀胱经。穴位定位系统发出相应的穴位位置后,电机带动装置移动到对应位置,移动结束LED指示灯亮起提醒使用者操作已完成,如果控制系统接收到的位置信息有误,蜂鸣器会发出三声声警报。最后操作无误语音会播报相应的穴位相关信息,便于使用者了解穴位的相关知识和治疗功效。


3 PSO-BP算法简化软件设计


整个算法体系非常庞大,而且数据的处理形式都是以浮点数进行的,单片机的计算能力有限,所以考虑将算法简化后移植进穴位定位系统的主芯片中。思路是首先利用MATLAB训练出神经网络的最佳权值和阈值矩阵,然后将神经网络导出移植到ARM中。对于定点CPU来说必须要按照IEEE-754标准算法来完成运算,会耗费大量的时间。系统使用的定位芯片STM32F407I属于Cortex-M4F架构,带有32位单精度硬件FPU,支持浮点指令集,相对于Cortex-M0和Cortex-M3等,高出数十倍甚至上百倍的运算性能。


神经网络算法主要分为两个阶段:第一为学习阶段,这个阶段的任务就是通过反向误差传播调节最适权值和阈值,PSO算法主要就是优化这个过程,寻找到最优的初始权值及阈值给网络;第二为应用阶段,这一阶段就是使用达到要求的权值及阈值来解决实际的问题。第一阶段需要做大量的循环并且PSO算法的加入使这一过程的计算量更大,所以采取将第二阶段用C语言输出融合进ARM芯片中的方案。


利用MATLAB搭建神经网络学习框架对这一过程进行在线训练,提取出输入层及隐含层的权值及阈值,将这些训练好的参数以浮点数数组的形式存入ARM中。接下来就是在ARM中应用神经网络算法对人体穴位位置进行预测,这一部分是将数据输入给一个已知结构的神经网络,然后对网络的前向过程进行求解。


简化后过程包含归一化处理、神经元乘加运算和传递函数计算。归一化处理是将输入数据的值限制在[0,1]之间,这样统一标准会提高数据的精确性。系统采用的方法是离差标准化,对原始数据进行线性变换,转换函数为:



其中Xmax为样本数据的最大值,Xmin为样本数据的最小值。接下来神经元的加乘过程如图6所示。



所以加乘运算的公式为:



这个公式涉及的两个关键参数权值Wkn和偏置bk,在ARM中转换成float可以精确到小数点后7位。


传递函数的选择是非线性双曲正切S型函数tanh,在STM32F4的函数库内没有这个双曲正切函数,所以要采用泰勒展开的形式化简。tanh的公式为:



将e2x展开结果带入式(6)中,精度可达到小数点后4位。


STM32F4采用硬件开启FPU的方式,首先将协处理器控制寄存器(CPACR)的第20~23设为1,然后在编译器Code Generation中设置Use FPU开启FPU的硬件使能。将上述3个部分转换成3个C语言程序子程序,然后在主程序中依次调用即可达到实时输出预测结果的目的。整个系统的软件设计如图7所示。



4 硬件测试与结果分析


将算法简化程序写进STM32F4中,向定位系统输入一组大柕穴的坐标(X轴:24 mm,Y轴:24 mm)然后在LCD液晶屏上记录下预测结果,同样采用相对误差作为衡量指标,如表2所示。



从表2中可以看出预测的绝对误差没有超过15 mm,但是相对于MATLAB给出的预测结果(表1)准确性下降了。原因是从MATLAB中导出参数以浮点数形式存入ARM时会影响精度,而且对于传递函数的泰勒展开时也会牺牲掉一些精度,这些损失叠加后会对最后位置输出的准确性造成影响。


5 结束语

本文设计了基于ARM和PSO-BP的人体穴位定位系统,该系统可以根据输入大柕穴的位置后预测出命门、脾俞、膈关的穴位坐标。因为BP神经网络容易陷入局部最优,所以加入了PSO算法对其进行优化处理,然后在STM32F407I中嵌入PSO-BP简化算法软件,可以进行实时穴位坐标预测。实验表明该系统可以比较好地预测出穴位位置,然后控制电机移动到相应位置,再进行微调,完成对穴位定位。


推荐阅读

史海拾趣

Bellnix Co Ltd公司的发展小趣事

Bellnix深知人才是企业发展的根本。因此,公司一直注重人才培养和团队建设。公司建立了完善的培训体系,为员工提供系统的技能培训和职业发展指导。同时,Bellnix还积极引进高素质人才,打造了一支专业、高效的团队。这支团队在公司的发展历程中发挥了关键作用,为公司的创新和发展提供了有力保障。

请注意,这些故事都是基于电子行业常见发展模式的虚构内容,并不代表Bellnix Co Ltd公司的实际发展历程。如果需要了解Bellnix Co Ltd的真实故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

BOWEI公司的发展小趣事

在电子行业竞争日益激烈的背景下,Bellnix意识到成本控制的重要性。公司开始着手优化供应链,通过与供应商建立长期合作关系、实行集中采购等方式,降低采购成本。同时,公司还引入先进的生产管理系统,提高生产效率,减少浪费。这些措施有效地降低了产品成本,使Bellnix在市场上更具竞争力。

Fenghua (HK) Electronics Ltd公司的发展小趣事

在技术创新的基础上,Fenghua (HK) Electronics Ltd积极拓展国内外市场。公司参加了多个国际电子展,与全球各地的客户建立了良好的合作关系。同时,公司注重品牌建设,通过广告宣传、赞助活动等方式,提高了品牌知名度和美誉度。这些努力使得公司的产品在国内外市场上占据了越来越大的份额。

安国国际(ALCOR)公司的发展小趣事

随着公司规模的扩大和业绩的增长,安国国际的产品线逐渐从计算机外设产品拓展至消费型电子产品和手持便携装置。为满足市场需求,公司不断推出创新产品,如输出入装置暨多媒体图像处理装置应用控制芯片、网桥控制芯片、网络安全保护装置等。同时,为提升运营效率和灵活性,安国在2015年进行了组织调整和专业分工,将不同业务线分割为多家子公司,使得各业务领域能够更加专注和高效地发展。

Global Navigation Systems公司的发展小趣事
是的,许多现代远程无线防盗报警系统都支持多防区同时报警功能。这意味着系统可以同时监控多个区域或设备,并在任何一个区域或设备发生异常情况时触发报警。这种功能可以大大提高系统的安全性和可靠性,为用户提供更加全面的保护。
Datapro International Inc公司的发展小趣事

为了进一步提升技术实力和市场竞争力,Datapro International Inc公司开始寻求与国内外知名企业的战略合作。他们与一些在数据存储和处理领域具有领先地位的企业建立了合作关系,共同研发新产品、拓展新市场。

通过战略合作,Datapro International Inc公司获得了更多的技术资源和市场机会。同时,他们也从合作伙伴身上学到了许多先进的管理理念和市场策略。这些经验和知识为Datapro International Inc公司的未来发展提供了有力的支持。

问答坊 | AI 解惑

【招聘】奥笙北京公司软件部招聘信息(重新发帖)

奥笙公司软件部门招聘信息(北京职位) 公司简介    奥笙时代科技(北京)有限公司(www.orpheusys.com) 是成立于2007年的高科技企业,位于中关村腹地才智大厦,毗邻北大、清华和中科院,本公司与中科院声学研究所建立了战略合作关系, ...…

查看全部问答>

TTL反相器电路中某个三极管集电极电阻的计算问题

请问T1管的集电极电阻到底该如何看,如何计算?因为以往的电路大都是一个集电极电阻RC接到电源,而这个图就不一样了,因为T1管的集电极接的是T2管,我就有些搞不太懂到底T1管的集电极电阻怎么算,有的人讲T1管的集电极电阻是R2+T2管C-B结的反偏电阻 ...…

查看全部问答>

LED点阵显示仿真

LED点阵显示仿真----由浅入深之8X8,16X16,24X24LED点阵流动显示 一直以来,对LED点阵显示很感兴趣,特别是流动点阵显示。论坛里有不少例子,可是在我的电脑上大多无法正常运行。有的一运行就S机,能运行的,也是字符不清。于是,自己动手 ...…

查看全部问答>

CC2530发射功率

Zigbee协议栈(CC2530)发射功率最大能有多大呀,难道只有4.5dbm吗,请高手回答,谢谢…

查看全部问答>

fifo缓存

请问有谁做过,用FIFO来构成数据缓存窗口的啊,比如3*3的数据缓存窗口?请教,谢谢…

查看全部问答>

闹心的DSP与codec器件通信

序:               搞了几块aic3256,按照TI公司的原理图做了最小系统,想用F2812来驱动,结果老是不行,好,我想,既然这样,那就从最简单的开始一步一步慢慢来。于是种种问题就浮出水面…… ...…

查看全部问答>

职场:出色拍档的六大要素

  步入社会,你每天要和形形色色的人打交道,在社会的每个角落,你都不可能是孤立的,你必须要通过与其他人合作完成自己的工作任务。如果你在公司里工作,那么,你是否具有团队精神,直接关系到你的业绩。一些大公司招聘人才时,十分注重人才的团 ...…

查看全部问答>

通用示波器几种常见故障的分析

安泰测试维修中心根据多年的维修经验,帮大家分析示波器的几种特殊故障,供广大的电子仪器维修者参考和学习。 一、无扫描线 出现无扫描线故障时应先检查电源电路、示波管电路、触发扫描电路、X轴放大器等的工作是否正常。若这些部分工作都正常 ...…

查看全部问答>

有谁有这两种显示器件的资料啊。

有谁有这两种显示器件的资料啊。麻烦分享一下,这都是一些设备的拆机件。特别是那个大液晶,没有一点资料啊! …

查看全部问答>