?

基于ECG 的活體檢測與身份驗證SOC 設計

2023-10-28 07:29王永蘞陳子為楊玉航
成都信息工程大學學報 2023年5期
關鍵詞:特征值串口總線

王永蘞, 陳子為, 曹 坤, 楊玉航, 謝 帥

(成都信息工程大學電子工程學院,四川 成都 610225)

0 引言

身份識別在金融交易等安全應用領域中已經越來越重要, 傳統的密碼、智能卡等身份識別方式存在容易被破解、遺忘、復制和被盜竊等風險[1]。 為解決傳統身份識別方式存在的種種弊端,提出了根據人體獨特的生理特征的生物識別方法,大大加強了身份識別的安全性。 常用的生物識別方案有人臉識別、指紋識別、聲音識別等,但是這些常用的生物識別方法易受表示攻擊(presentation attacks)[2],如指紋可被乳膠復制,人臉可以被打印或帶人臉假體面具,聲音也可能被錄制。 由于每個人的皮膚電傳導性、體重、是否有先天性疾病、心臟和胸腔的位置、形狀、大小均不一樣,因此每個人的心電圖ECG(electrocardiogram)信號均不一樣,并且只能在體內測量,難以模擬或復制,具有很高的安全性[3-4]。 而且,心臟運動隨著人的生命開始而開始,隨著生命的結束而停止,ECG 信號僅能在活體上被采集到,可以作為人內在的活體檢測方式。 這樣使用人體獨特而復雜的心電圖信號進行身份識別可以解決目前生物識別中的表示攻擊問題。

隨著微電子技術飛速發展,IC 設計工藝不斷提升,集成度越來越大,出現了系統級SOC(system-on-chip)芯片,將整個電路系統集成到一個芯片上。 基于FPGA 的可編程SOC 由于充分利用了FPGA 的并行性、流水線操作以及軟硬件協同設計的優勢,目前廣泛應用在對智能信號處理算法進行硬件加速方面,以滿足其實時性需求[5-6]。 利用ARM 開源的Cortex-M3 微處理器軟核,在FPGA 上搭建了一個集心電圖采集接口電路、ECG 身份識別電路和串口屏顯示接口電路于一體的SOC。 該SOC 控制ADS1292 模塊采集心電圖數據,并傳輸到基于PCA 和歐幾里得距離度量的ECG 身份識別算法硬件加速器上獲得識別結果,再根據識別結果判斷被測者身份,將身份識別結果顯示在串口屏上。

1 身份識別算法

算法流程圖如圖1 所示。

圖1 身份識別算法流程圖

1.1 算法介紹

(1)數據獲取。 將ECG 訓練集存儲在大小為N×P的矩陣T中。 矩陣的每一列表示一段ECG 信號,共有P段。 每段ECG 信號采集N點。 所有ECG 信號必須有相同的長度和分辨率,并且都以R 波為中心點。

(2)預處理。 首先求出所有訓練集上每個采樣點的均值,即對T的每一行求均值:

然后,將訓練集上的采樣點減去該均值,得到矩陣A:

(3)計算矩陣A的協方差矩陣:

協方差矩陣的計算是運算密集型的,因此需要采取優化算法減少這個運算量。 由于對于N×P的矩陣,其非零特征值的最大數目為P-1 與N-1 中較小的一個。 一般P

計算代理矩陣L的特征向量V與特征值D。 其對角線元素即是L的特征值。

藏匿在英子宮里面的腫瘤細胞,從肆無忌憚的活躍一步步走向奄奄一息的死亡,從放療初期的極其不適,到放療中期的劇烈反應,再到放療后期的漸趨適應。英終究還是挺過來了。英竭力隱忍的經歷,再一次告訴她,身體的一切痛楚都是過眼云煙。

(4)選擇主成分并重新構造特征向量。 將小于給定門限值的特征值排除掉,這可以大大降低矩陣的維度。 一旦根據前面得到的特征值得到特征向量,就可以根據特征值從大到小(即特征的重要程度)對特征向量排序:

式中,p是大小為P×M的L的協方差矩陣。 由于L是C的代理矩陣,目的是計算C的協方差矩陣而不是L的協方差矩陣,這可以通過下面的方法得到:

式中,E即為協方差矩陣C的特征向量,大小為N×M,表示了訓練集T的ECG 信號的最重要的M個特征向量,其包含了訓練集中所有的主成分系數,并已在列上按照主成分方差大小降序排列。

(5)將采集的ECG 信號投影到ECG 空間中。 為了將采集的ECG 信號用它的主要特征值表示,需要將其投影到ECG 空間中。 方法是先將采集的待測試的ECG 信號減去均值向量mu,得到I矩陣,然后按照下面的方法投影到ECG 空間中:

其中y為投影到ECG 空間的測試向量。

(6)計算歐幾里得距離并比較。 測試向量y與保存在數據庫中的P段ECG 信號分別計算歐式距離:

從P個人中找到距離最近的那一個:

也就是找到最小的那個d(i),此時的i即為i*,代表身份識別出的結果ID。 設置一個閾值,并且d*小于設定的閾值時,則可判斷是這個人,若其最小值d*大于這個閾值,說明身份認證失敗。

1.2 算法實現

算法實現分為身份登記與身份識別(認證)兩個階段。 身份登記階段采用MATLAB 實現。 首先錄入每個人的ECG 數據信息,然后在MATLAB 中運行腳本“[coeff,score,latent,tsquared,explained,mu] =pca(A,'algorithm','svd',...);”得到的coeff 即為前面的E,score 即為前面的p,將Matlab 計算得到的兩個矩陣(coeff 與score)和一個列向量(mu)保存到數據庫中,然后存儲在FPGA 的存儲器中。

身份識別階段采用FPGA 實現,在FPGA 中將實時采集的ECG 信號按照1.1 節中的步驟(2)進行預處理得到x,然后應用硬件加速的方法實現矩陣相乘,實現Y=ET×x得到PCA 投影后的測試向量y,然后將該測試向量y與代表數據庫中P個不同人的P個投影訓練向量pi分別進行歐氏距離計算,并找出歐式距離最小的那一個,通過這個最小歐式距離值與設定的閾值比較,最終確定是否是已在數據庫中登記的人,到底是哪一個人。

由于計算歐式距離時,是否開平方根運算的結果并不影響歐式距離最小值的搜索,因此在FPGA 上用硬件實現歐式距離時,為減少運算量,降低硬件資源開銷,計算歐式距離時沒有進行開平方根運算[10]。

2 SOC 設計

2.1 軟硬件分工

本設計采用基于ARM 軟核[11]的軟硬件協同設計方式設計SOC。 其中軟件部分采用Cortex-M3 微處理器負責對程序進行控制,對SOC 系統中的ECG 數據進行讀取、調度和簡單的預處理,以及實現對串口屏的驅動及將身份識別結果顯示在串口屏上。 硬件部分(即FPGA 數字邏輯部分)負責將MATLAB 端訓練得的系數部署到FPGA 內的存儲器中,實現身份識別算法所需的矩陣相乘運算的硬件加速。

2.2 系統框架設計

本文SOC 采用ARM 公司提供的DesignStart Eval版本Cortex-M3 IP 核[12]作為微控制器核心,SOC 整體部署在FPGA 平臺上。 硬件電路部分還包括時鐘及復位管理模塊、硬件加速器、AHB 外設接口、AXI 橋接器、APB 橋接器和各個AHB、APB 外設接口等,片上系統設計框圖如圖2 所示。

圖2 片上系統設計框圖

Cortex-M3 內核使用AHB 總線與外設連接,所以該SoC 的設計采用AHB 總線將內核與片內存儲器和GPIO 進行連接,使用APB 總線連接UART、定時器、動作發生器等外設,而APB 總線上的外設通過AHBAPB 總線橋接器與內核進行數據交互與應答。

如圖2 所示,Cortex-M3 處理器通過3 根總線與其余部件通信。 其中的I-CODE 總線和D-CODE 總線是基于AHB-Lite 總線協議的32 位總線, 負責在0x00000000 ~0x0000ffff(64KB)之間的取指、數據訪問操作。 在使用keil 進行調試時,更新后的軟件代碼可以通過D-CODE 端寫進ITCM。 Cortex-M3 的系統總線控制了Cortex-M3 存儲模型的大部分地址區域,包括本系統的DTCM、AHB-AXI Convertor 及AHB、APB 外設部分。

在Cortex-M3 DesignStart Eval 開發套件中提供了一個相當有用的工具CMSDK(Cortex-M System Design Kit)[13],為開發SOC 應用提供了便利。 CMSDK 包含了許多關于AHB 總線的轉接模塊,例如在本系統用到的基本總線矩陣、AHB-to-APB 總線橋等。 存儲器控制器、I/O 接口、定時器以及UART 等,都可以從ARM 和其他IP 供應商處取得。 使用Verilog HDL 編寫其他組件可實現整個系統的集成。

由于Vivado 提供的IP 核大多數基于AXI 總線,而采用HLS 設計也能很方便地設計出具有AXI 接口的硬件加速器,為了加快設計進度,本設計采用開源代碼Verilog AXI Components[14],實現AXI 總線與AHB總線的相互轉換以及AXI 的互聯。

2.3 身份識別硬件加速器設計

本設計采用高層次綜合HLS(high-level synthesis)實現身份識別硬件加速器。 HLS[15]是Xilinx 推出的高層次綜合工具,是一種由更高抽象度的行為描述生產電路的技術。 通過HLS 的directive 添加對應的約束,可以設置接口的類型、時序、內部資源的占用等,實現對所設計的硬件的自動優化。采用HLS 后,FPGA 開發的時間大大降低,這加速了FPGA 的開發進程,使開發具有了更強的靈活性和高效性,HLS 的逐步完善使FPGA 的開發高效性更進一步。HLS 技術的發展使人們可以把精力放在設計上,而更少地去關注底層的具體實現。

2.3.1 投影ECG 測試信號到ECG 空間

將采集的ECG 測試信號先減去保存在FPGA 存儲器上的均值向量,然后投影到ECG 空間上,其代碼片段如下:

通過Pragma HLS UNROLL factor 可以對循環體展開成30 份,這可以大大提高算法執行的并行性,但同時使硬件資源消耗也相應提高。 實際使用時需要綜合考慮實時性與資源占有率,對factor 的取值進行折中設置。

2.3.2 計算歐式距離

計算歐式距離的代碼片段如下:

通過pragma HLS UNROLL 對內循環進行展開。由于主成分個數M一般較小,內循環可以完全展開,因此在進行循環展開優化時沒有指定展開因子factor的值,即默認采取完全展開的方式。 對于外循環,采用pragma HLS PIPELINE 進行流水線優化,這可以顯著提高系統的數據吞吐量。

2.4 APB 外設設計

APB 外設有UART、動作發生器( Igni- ter )、計時器(Timer)這3 個模塊,它們由APB 總線掛載到系統中,負責實現系統的輔助功能。

2.4.1 UART

本文SOC 系統使用了3 個UART,分別進行系統調試、ECG 數據采集和驅動串口屏顯示。 采用心電圖信號采集模塊ADS1292 采集心電圖信號,然后通過藍牙模塊無線發送給SOC。 SOC 采用UART1 連接藍牙模塊,接收ADS1292 模塊發送過來的心電圖信號。 在身份識別硬件加速器模塊對心電圖信號進行處理、身份識別之后,將識別的結果通過SOC 上UART2 接口相連的串口屏進行顯示,同時在調試時還可以通過SOC 上的UART0 連接到電腦上的串口調試助手中顯示識別結果。

2.4.2 動作發生器

動作發生器負責接收來自Cortex-M3 處理器的指令,根據具體的指令,喚醒身份識別硬件加速器或者ECG 采集模塊進入工作狀態。

動作發生器的物理地址為0x40003000,且與Cortex-M3 處理器、身份識別硬件加速器、ECG 采集模塊連接。 當Cortex-M3 處理器往該地址寫入0xAE 后,可以喚醒硬件加速器,同時Cortex-M3 處理器進入待機狀態,直至硬件加速器工作完畢。 當Cortex-M3 處理器往該地址寫入0xCE 后,可以喚醒ECG 采集模塊,同時Cortex-M3 處理器進入待機狀態,直至ECG 采集模塊已經將新的ECG 數據寫入BRAM 中。

2.4.3 計時器

為統計系統身份識別所需要耗費的時間,加入了獨立于處理器外部的計時器模塊。 計時器接入板載100 MHz晶振作為時鐘源,計時精度可以達到1 ms。在計時之前,可以通過軟件代碼將計時器歸零,同時啟動計時器,并在執行完相應的計算之后讀出計時器的計時結果,從而實現對算法執行時間的記錄功能。

3 系統測試

3.1 資源利用率與性能

設計采用Matlab2009a 在登記階段進行訓練,采用版本號為AT421-MN-80001-r0p0-02rel0 的Design-Start Eval 利用Vivado v2021. 1 進行硬件開發,采用MDK v5.23 進行軟件開發,最終在廉價的Ego1 開發板(FPGA 型號為XC7A35TCSG324-1)上實現。 所設計的SOC 系統硬件資源利用情況如表1 所示,可以看出消耗了82.32%的查找表資源和18%的觸發器資源。其中大部分資源用于創建所設計的SOC 結構,例如AXI-AHB 協議轉換器、乘法器等。 其運行性能最高可以達到90 MHz,滿足實時性需求。

表1 硬件資源利用情況

3.2 現場測試

5 位年齡在18 ~45 歲的志愿者進行現場測試。先錄入ECG 信號,Matlab 端將數據訓練好后,帶上心電圖測量設備開始實物測試,系統完成識別后結果顯示在串口屏上,如圖3 所示。 經過實驗,取歐幾里得距離閾值為5,得到的混淆矩陣如圖4 所示。 圖4 中每個小方格的數值表示識別測試者的次數。 如第1行表示對1 號測試者進行測試,其中有67 次正確檢測為1 號測試者,錯誤檢測為2 號、3 號測試者各2 次,檢測為4 號測試者0 次,檢測為5 號測試者4 次。 由圖4可知,這5 位測試者的平均識別正確率可以達到96.8%,識別結果滿足要求。

圖3 實物測試圖

圖4 實物測試混淆矩陣

4 結束語

由于每個人的ECG 數據具有獨特性和難復制性,使對活體利用ECG 進行身份識別具有很強的安全可靠性。 本設計根據ECG 身份識別場景的需求,利用FPGA 的靈活重構性定制化設計SOC,將負責系統控制的微處理器軟核和算法硬件加速器部署到同一個FPGA 上。 通過在FPGA 上搭建片上系統,ECG 身份識別用硬件電路實現,使身份識別更具有靈活性、高效性,可靠性等特點。

猜你喜歡
特征值串口總線
一類帶強制位勢的p-Laplace特征值問題
單圈圖關聯矩陣的特征值
淺談AB PLC串口跟RFID傳感器的通訊應用
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉以太網總線設計
USB接口的多串口數據并行接收方法探索
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
基于商奇異值分解的一類二次特征值反問題
多通道ARINC429總線檢查儀
關于兩個M-矩陣Hadamard積的特征值的新估計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合