《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于PSO-BP神經(jīng)網(wǎng)絡(luò)的人體穴位定位系統(tǒng)設(shè)計(jì)
基于PSO-BP神經(jīng)網(wǎng)絡(luò)的人體穴位定位系統(tǒng)設(shè)計(jì)
2018年電子技術(shù)應(yīng)用第9期
楊向萍,,吳玉丹
東華大學(xué) 機(jī)械工程學(xué)院,,上海201600
摘要: 穴位的位置是否找準(zhǔn)會(huì)直接影響治療效果,因此設(shè)計(jì)了一種基于粒子群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)(PSO-BP)的穴位相對(duì)坐標(biāo)預(yù)測(cè)模型,,然后與ARM結(jié)合構(gòu)成一個(gè)可以用于人體穴位定位的系統(tǒng),。首先采用PC進(jìn)行MATLAB仿真訓(xùn)練學(xué)習(xí),,然后將最優(yōu)權(quán)值及閾值保存下來(lái)并簡(jiǎn)化算法嵌入ARM內(nèi),將在線預(yù)測(cè)轉(zhuǎn)變?yōu)殡x線過(guò)程,。實(shí)驗(yàn)結(jié)果表明:經(jīng)粒子群優(yōu)化過(guò)的BP神經(jīng)網(wǎng)絡(luò)有效地改善了局部極值缺陷,,可應(yīng)用于定位端預(yù)測(cè)穴位的位置,并在LCD中顯示穴位相關(guān)信息,,控制端收到位置數(shù)據(jù)后可執(zhí)行電機(jī)上的運(yùn)動(dòng)操作,。
中圖分類(lèi)號(hào): TN4
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180900
中文引用格式: 楊向萍,吳玉丹. 基于PSO-BP神經(jīng)網(wǎng)絡(luò)的人體穴位定位系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2018,,44(9):75-78.
英文引用格式: Yang Xiangping,Wu Yudan. Acupoint positioning system based on PSO-BP neural network[J]. Application of Electronic Technique,,2018,,44(9):75-78.
Acupoint positioning system based on PSO-BP neural network
Yang Xiangping,Wu Yudan
College of Mechanical Engineering,,Donghua University,,Shanghai 201600,China
Abstract: The location of acupoints will directly affect the therapeutic effect, so we designed a prediction model of relative coordinates based on particle swarm optimization and neural network(PSO-BP), and then combined with ARM to form a system for locating human acupuncture points. Firstly, PC machine is used for MATLAB simulation training and learning. After that, the optimal weights and thresholds are saved, and the algorithm is embedded in ARM, and online prediction is transformed into offline process. The experimental results show that the BP neural network optimized by particle swarm optimization can effectively improve the local extreme defects. It can be applied to locate the location of the acupoints at the location end, and display the information of the points in LCD. After the control terminal receives the location data, it can perform the movement operation on the motor.
Key words : acupoint coordinates,;location,;particle swarm optimization;BP neural network,;ARM

0 引言

    人體穴位分布容易受到人體尺寸和比例的影響,,所以具有以下兩個(gè)特性:非線性,、模糊不確定性。人體穴位分布的解決方法主要有3種:視覺(jué)技術(shù),、光學(xué)定位法和專(zhuān)家系統(tǒng)法,。但是這些方法存在著一些不足:視覺(jué)技術(shù)采用的是二維視覺(jué)測(cè)量結(jié)合圖像處理進(jìn)行人工標(biāo)志穴位定位,龐大的分析系統(tǒng)降低了定位的實(shí)時(shí)性,,并且應(yīng)用場(chǎng)合有局限[1],;光學(xué)定位法可模擬人眼得出物體的三維坐標(biāo)達(dá)到定位目的,但是定位標(biāo)靶和周?chē)h(huán)境背景都會(huì)給定位造成極大的干擾,,降低定位精度[2],;專(zhuān)家系統(tǒng)法是整合專(zhuān)家經(jīng)驗(yàn)知識(shí),在實(shí)際應(yīng)用中很難將這些經(jīng)驗(yàn)轉(zhuǎn)化成一系列規(guī)則,。

    人工智能和仿生技術(shù)的發(fā)展,,出現(xiàn)了很多基于人工智能的預(yù)測(cè)方法。為了提高中醫(yī)按摩機(jī)器人穴位尋找行為規(guī)劃的精度,,山東建筑大學(xué)提出了一種基于遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的中醫(yī)按摩機(jī)器人穴位坐標(biāo)預(yù)測(cè)方法,。結(jié)果表明,該方法對(duì)中醫(yī)按摩機(jī)器人尋找患者穴位坐標(biāo)具有較好的精度和預(yù)測(cè)準(zhǔn)確性[3],。由于遺傳算法的交叉變異部分會(huì)使整個(gè)收斂過(guò)程變慢,,在實(shí)際應(yīng)用中,穩(wěn)定性可能會(huì)比較低,。而粒子群算法過(guò)程比較簡(jiǎn)單,,所以采用粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法建立穩(wěn)定準(zhǔn)確的穴位坐標(biāo)預(yù)測(cè)模型[4],簡(jiǎn)化學(xué)習(xí)過(guò)程后將過(guò)程移植進(jìn)ARM[5-6],。最后測(cè)試表明:優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)具有更快的收斂性和適應(yīng)性,,還有比較高的預(yù)測(cè)精度和穩(wěn)定性。

    本文提出的整體系統(tǒng)設(shè)計(jì)方案是基于ARM和PSO-BP的人體穴位定位,,該系統(tǒng)還具備穴位坐標(biāo)實(shí)時(shí)顯示及穴位信息播報(bào)的功能,。由于整個(gè)算法的學(xué)習(xí)過(guò)程比較復(fù)雜,循環(huán)次數(shù)非常多,,會(huì)拖慢整個(gè)系統(tǒng)的運(yùn)行速度,,因此在PC上完成整個(gè)動(dòng)態(tài)學(xué)習(xí)過(guò)程然后將最優(yōu)權(quán)值及閾值保存輸出,并將簡(jiǎn)化后的算法嵌入ARM內(nèi),,實(shí)際使用時(shí)直接根據(jù)提示輸入信息后即可達(dá)到穴位定位的目的,。

1 PSO-BP神經(jīng)網(wǎng)絡(luò)

1.1 算法模型設(shè)計(jì)

    BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最為廣泛和成功的神經(jīng)網(wǎng)絡(luò)之一,該網(wǎng)絡(luò)的特點(diǎn)是信號(hào)前向傳遞,,誤差反向傳播調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,。BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱含層(hide layer)和輸出層(output layer),如圖1所示,,最終系統(tǒng)想要達(dá)到的效果是輸入已知的某穴位坐標(biāo)值(X坐標(biāo),,Y坐標(biāo)),然后預(yù)測(cè)出其他3個(gè)穴位的坐標(biāo)值,。

qrs5-t1.gif

    系統(tǒng)設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)采用可以預(yù)測(cè)幾乎所有的非線性函數(shù)的三層拓?fù)浣Y(jié)構(gòu),,輸入層神經(jīng)元為2,輸出層神經(jīng)元為6,。對(duì)于隱含層(中間層)的神經(jīng)元數(shù)目的選取采用式(1)來(lái)確定[7]

    qrs5-gs1.gif

其中,,MidNum為隱層節(jié)點(diǎn)數(shù),InNum,、OutNum分別是輸入和輸出節(jié)點(diǎn)數(shù),,a是1~10之間的常數(shù)。

    最后BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為2 —8—6,;訓(xùn)練函數(shù)采用“taingdx”,;隱含層和輸出層選取的傳遞函數(shù)均為“tansig”;選擇的訓(xùn)練次數(shù)為3 000,;訓(xùn)練目標(biāo)誤差為0.000 1。

    粒子群(PSO)算法用于網(wǎng)絡(luò)訓(xùn)練可以對(duì)權(quán)值和閾值的選取進(jìn)行優(yōu)化,,而不是盲目地給定初值,,而且優(yōu)化過(guò)的神經(jīng)網(wǎng)絡(luò)會(huì)防止神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)并提高精度。因此PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的核心是:BP網(wǎng)絡(luò)中的權(quán)值和閾值的集合是群體中的每個(gè)粒子的位置集合,,其個(gè)數(shù)是粒子的維度,。然后對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代優(yōu)化訓(xùn)練,網(wǎng)絡(luò)的輸出誤差作為算法的適應(yīng)度函數(shù)即式(2),。

    qrs5-gs2.gif

式中,,S是學(xué)習(xí)訓(xùn)練樣本,Tk是期望輸出,,Yk是實(shí)際輸出,。整個(gè)算法流程如圖2所示。

qrs5-t2.gif

1.2 MATLAB仿真

    以人體的背部為例,,穴位是有規(guī)律分布的,,所以將大椎穴作為坐標(biāo)原點(diǎn)(0,0)建立坐標(biāo)系,,然后選取大柕穴的相對(duì)坐標(biāo)作為輸入,,目標(biāo)輸出為脾俞、膈關(guān)和命門(mén)的相對(duì)坐標(biāo),。仿真訓(xùn)練測(cè)量了70組不同測(cè)試者的穴位相對(duì)坐標(biāo),,隨機(jī)選取其中的60組作為學(xué)習(xí)樣本,剩下的10組作為測(cè)試樣本訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

    在MATLAB中進(jìn)行編程,,粒子群算法反復(fù)迭代200次后將粒子編碼轉(zhuǎn)換成BP神經(jīng)網(wǎng)絡(luò)的初始的閾值和權(quán)值再繼續(xù)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程,。仿真結(jié)果如圖3所示,可發(fā)現(xiàn)均方誤差隨著訓(xùn)練的次數(shù)增加在逐漸變小,,直到訓(xùn)練1 015次時(shí)可達(dá)到要求的誤差值,。

qrs5-t3.gif

    為了方便清晰觀察,以第一組預(yù)測(cè)數(shù)據(jù)為例通過(guò)MATLAB輸出預(yù)測(cè)曲線圖,,如圖4所示,,可以看出預(yù)測(cè)值非常接近實(shí)際值,初步證明預(yù)測(cè)模型的建立是正確的,。

qrs5-t4.gif

    最后計(jì)算PSO-BP算法數(shù)據(jù)的預(yù)測(cè)值和實(shí)際值的絕對(duì)誤差,,輸入一組大柕穴的坐標(biāo)(X軸:24 mm,Y軸:24 mm),,如表1所示,,絕對(duì)誤差沒(méi)有超過(guò)10 mm,可以看出神經(jīng)網(wǎng)絡(luò)對(duì)穴位位置的預(yù)測(cè)精度可以保證在10 mm以內(nèi),,滿足定位要求,。

qrs5-b1.gif

2 系統(tǒng)硬件設(shè)計(jì)

    系統(tǒng)采用雙機(jī)通信和獨(dú)立電源的方式來(lái)工作,主要分為兩部分:主機(jī)是穴位定位系統(tǒng)實(shí)現(xiàn)穴位預(yù)測(cè)功能,,從機(jī)為位置控制系統(tǒng)實(shí)現(xiàn)穴位實(shí)現(xiàn)功能,。系統(tǒng)的整體硬件結(jié)構(gòu)如圖5所示。

qrs5-t5.gif

2.1 穴位定位系統(tǒng)

    這部分主要以可視聽(tīng)為目的,,按鍵采用的是4×4行列式的排列,,包括0~9數(shù)字鍵和確認(rèn)取消鍵。使用3.2寸TFT LCD液晶屏進(jìn)行參數(shù)輸入和預(yù)測(cè)結(jié)果的顯示,。按鍵輸入所需穴位坐標(biāo)值,,此時(shí)在LCD可監(jiān)視輸入是否正確,按下確認(rèn)鍵后便可執(zhí)行編寫(xiě)好的預(yù)測(cè)程序,,并在液晶屏上顯示輸出的穴位坐標(biāo)值同時(shí)通過(guò)WiFi向位置控制系統(tǒng)發(fā)送坐標(biāo)值,。

2.2 位置控制系統(tǒng)

    這部分是控制操作為主,當(dāng)WiFi連接成功后會(huì)有語(yǔ)音提示然后啟動(dòng)電機(jī),,電機(jī)控制模塊有4個(gè)直線步進(jìn)電機(jī),,其中分別對(duì)應(yīng)了背部3條主要經(jīng)絡(luò)督脈和兩條足太陽(yáng)膀胱經(jīng)。穴位定位系統(tǒng)發(fā)出相應(yīng)的穴位位置后,,電機(jī)帶動(dòng)裝置移動(dòng)到對(duì)應(yīng)位置,,移動(dòng)結(jié)束LED指示燈亮起提醒使用者操作已完成,如果控制系統(tǒng)接收到的位置信息有誤,,蜂鳴器會(huì)發(fā)出三聲聲警報(bào),。最后操作無(wú)誤語(yǔ)音會(huì)播報(bào)相應(yīng)的穴位相關(guān)信息,,便于使用者了解穴位的相關(guān)知識(shí)和治療功效。

3 PSO-BP算法簡(jiǎn)化軟件設(shè)計(jì)

    整個(gè)算法體系非常龐大,,而且數(shù)據(jù)的處理形式都是以浮點(diǎn)數(shù)進(jìn)行的,,單片機(jī)的計(jì)算能力有限,所以考慮將算法簡(jiǎn)化后移植進(jìn)穴位定位系統(tǒng)的主芯片中,。思路是首先利用MATLAB訓(xùn)練出神經(jīng)網(wǎng)絡(luò)的最佳權(quán)值和閾值矩陣,,然后將神經(jīng)網(wǎng)絡(luò)導(dǎo)出移植到ARM中。對(duì)于定點(diǎn)CPU來(lái)說(shuō)必須要按照IEEE-754標(biāo)準(zhǔn)算法來(lái)完成運(yùn)算,,會(huì)耗費(fèi)大量的時(shí)間,。系統(tǒng)使用的定位芯片STM32F407I屬于Cortex-M4F架構(gòu),帶有32位單精度硬件FPU,,支持浮點(diǎn)指令集,,相對(duì)于Cortex-M0和Cortex-M3等,高出數(shù)十倍甚至上百倍的運(yùn)算性能,。

    神經(jīng)網(wǎng)絡(luò)算法主要分為兩個(gè)階段:第一為學(xué)習(xí)階段,,這個(gè)階段的任務(wù)就是通過(guò)反向誤差傳播調(diào)節(jié)最適權(quán)值和閾值,PSO算法主要就是優(yōu)化這個(gè)過(guò)程,,尋找到最優(yōu)的初始權(quán)值及閾值給網(wǎng)絡(luò),;第二為應(yīng)用階段,這一階段就是使用達(dá)到要求的權(quán)值及閾值來(lái)解決實(shí)際的問(wèn)題,。第一階段需要做大量的循環(huán)并且PSO算法的加入使這一過(guò)程的計(jì)算量更大,,所以采取將第二階段用C語(yǔ)言輸出融合進(jìn)ARM芯片中的方案。

    利用MATLAB搭建神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)框架對(duì)這一過(guò)程進(jìn)行在線訓(xùn)練,,提取出輸入層及隱含層的權(quán)值及閾值,將這些訓(xùn)練好的參數(shù)以浮點(diǎn)數(shù)數(shù)組的形式存入ARM中,。接下來(lái)就是在ARM中應(yīng)用神經(jīng)網(wǎng)絡(luò)算法對(duì)人體穴位位置進(jìn)行預(yù)測(cè),,這一部分是將數(shù)據(jù)輸入給一個(gè)已知結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),然后對(duì)網(wǎng)絡(luò)的前向過(guò)程進(jìn)行求解,。

    簡(jiǎn)化后過(guò)程包含歸一化處理,、神經(jīng)元乘加運(yùn)算和傳遞函數(shù)計(jì)算。歸一化處理是將輸入數(shù)據(jù)的值限制在[0,,1]之間,,這樣統(tǒng)一標(biāo)準(zhǔn)會(huì)提高數(shù)據(jù)的精確性。系統(tǒng)采用的方法是離差標(biāo)準(zhǔn)化,,對(duì)原始數(shù)據(jù)進(jìn)行線性變換,,轉(zhuǎn)換函數(shù)為:

    qrs5-gs3.gif

其中Xmax為樣本數(shù)據(jù)的最大值,Xmin為樣本數(shù)據(jù)的最小值,。接下來(lái)神經(jīng)元的加乘過(guò)程如圖6所示,。

qrs5-t6.gif

    所以加乘運(yùn)算的公式為:

    qrs5-gs4.gif

這個(gè)公式涉及的兩個(gè)關(guān)鍵參數(shù)權(quán)值Wkn和偏置bk,在ARM中轉(zhuǎn)換成float可以精確到小數(shù)點(diǎn)后7位。

    傳遞函數(shù)的選擇是非線性雙曲正切S型函數(shù)tanh,,在STM32F4的函數(shù)庫(kù)內(nèi)沒(méi)有這個(gè)雙曲正切函數(shù),,所以要采用泰勒展開(kāi)的形式化簡(jiǎn)。tanh的公式為:

qrs5-gs5-7.gif

    將e2x展開(kāi)結(jié)果帶入式(6)中,,精度可達(dá)到小數(shù)點(diǎn)后4位,。

    STM32F4采用硬件開(kāi)啟FPU的方式,首先將協(xié)處理器控制寄存器(CPACR)的第20~23設(shè)為1,,然后在編譯器Code Generation中設(shè)置Use FPU開(kāi)啟FPU的硬件使能,。將上述3個(gè)部分轉(zhuǎn)換成3個(gè)C語(yǔ)言程序子程序,然后在主程序中依次調(diào)用即可達(dá)到實(shí)時(shí)輸出預(yù)測(cè)結(jié)果的目的,。整個(gè)系統(tǒng)的軟件設(shè)計(jì)如圖7所示,。

qrs5-t7.gif

4 硬件測(cè)試與結(jié)果分析

    將算法簡(jiǎn)化程序?qū)戇M(jìn)STM32F4中,向定位系統(tǒng)輸入一組大柕穴的坐標(biāo)(X軸:24 mm,,Y軸:24 mm)然后在LCD液晶屏上記錄下預(yù)測(cè)結(jié)果,,同樣采用相對(duì)誤差作為衡量指標(biāo),如表2所示,。

qrs5-b2.gif

    從表2中可以看出預(yù)測(cè)的絕對(duì)誤差沒(méi)有超過(guò)15 mm,,但是相對(duì)于MATLAB給出的預(yù)測(cè)結(jié)果(表1)準(zhǔn)確性下降了。原因是從MATLAB中導(dǎo)出參數(shù)以浮點(diǎn)數(shù)形式存入ARM時(shí)會(huì)影響精度,,而且對(duì)于傳遞函數(shù)的泰勒展開(kāi)時(shí)也會(huì)犧牲掉一些精度,,這些損失疊加后會(huì)對(duì)最后位置輸出的準(zhǔn)確性造成影響。

5 結(jié)束語(yǔ)

    本文設(shè)計(jì)了基于ARM和PSO-BP的人體穴位定位系統(tǒng),,該系統(tǒng)可以根據(jù)輸入大柕穴的位置后預(yù)測(cè)出命門(mén),、脾俞、膈關(guān)的穴位坐標(biāo),。因?yàn)锽P神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu),,所以加入了PSO算法對(duì)其進(jìn)行優(yōu)化處理,然后在STM32F407I中嵌入PSO-BP簡(jiǎn)化算法軟件,,可以進(jìn)行實(shí)時(shí)穴位坐標(biāo)預(yù)測(cè),。實(shí)驗(yàn)表明該系統(tǒng)可以比較好地預(yù)測(cè)出穴位位置,然后控制電機(jī)移動(dòng)到相應(yīng)位置,,再進(jìn)行微調(diào),,完成對(duì)穴位定位。

參考文獻(xiàn)

[1] 馬哲文,,于豪光.基于視覺(jué)定位的按摩機(jī)器人穴位跟蹤系統(tǒng)[J].機(jī)器人技術(shù)與應(yīng)用,,2010(6):33-35.

[2] 林雪華.光學(xué)定位法人體經(jīng)絡(luò)可視化中提高精度方法的研究[D].福州:福州大學(xué),2014.

[3] 張秋云,,張營(yíng),,李臣.遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)在中醫(yī)按摩機(jī)器人中的應(yīng)用[J].應(yīng)用科技,,2017,44(2):73-77.

[4] 徐順,,盧文科,,左鋒.基于PSO-BP神經(jīng)網(wǎng)絡(luò)的光纖壓力傳感器溫度補(bǔ)償研究[J].儀表技術(shù)與傳感器,2016(10):1-5,,9.

[5] 李銳,,熊杰.基于BP神經(jīng)網(wǎng)絡(luò)的原油持水率檢測(cè)儀[J].儀表技術(shù)與傳感器,2017(10):29-32.

[6] 趙延軍,,程守光,,高承彬,等.基于BPNN的固相質(zhì)量流量軟測(cè)量方法[J].儀表技術(shù)與傳感器,,2014(7):103-105.

[7] 黃家才,,李宏勝,滕福林,,等.BP網(wǎng)絡(luò)在阻抗式原油含水率測(cè)量?jī)x中的應(yīng)用[J].儀表技術(shù)與傳感器,,2011(12):24-26.



作者信息:

楊向萍,吳玉丹

(東華大學(xué) 機(jī)械工程學(xué)院,,上海201600)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。