鼾聲監測神經網路

来源:https://www.cnblogs.com/mcu-ai-QH/p/18193588
-Advertisement-
Play Games

具體的軟硬體實現點擊 http://mcu-ai.com/ MCU-AI技術網頁_MCU-AI 打鼾是一種普遍的癥狀,嚴重影響睡眠呼吸障礙患者(單純打鼾者)、阻塞性睡眠呼吸暫停(OSA)患者及其床伴的生活質量。研究表明,打鼾可用於OSA的篩查和診斷。因此,從夜間睡眠呼吸音頻中準確檢測打鼾聲一直是最重 ...


具體的軟硬體實現點擊 http://mcu-ai.com/ MCU-AI技術網頁_MCU-AI
打鼾是一種普遍的癥狀,嚴重影響睡眠呼吸障礙患者(單純打鼾者)、阻塞性睡眠呼吸暫停(OSA)患者及其床伴的生活質量。研究表明,打鼾可用於OSA的篩查和診斷。因此,從夜間睡眠呼吸音頻中準確檢測打鼾聲一直是最重要的部分之一。考慮到打鼾在世界各地被忽視的危險性,需要一種自動且高精度的打鼾檢測演算法。在這項工作中,我們設計了一種非接觸式數據採集設備來記錄受試者在私人卧室中的夜間睡眠呼吸音頻,並提出了一種用於自動打鼾檢測的混合捲積神經網路(CNN)模型。該模型由處理原始信號的一維(1D)CNN和表示通過可見性圖方法映射的圖像的二維(2D)CNN組成。在我們的實驗中,我們的演算法實現了89.3%的平均分類準確率、89.7%的平均靈敏度、88.5%的平均特異性和0.947的平均AUC,這超過了根據我們的數據訓練的一些最先進的模型。總之,我們的研究結果表明,本研究中提出的方法對日常生活中OSA患者的大規模篩查是有效和有意義的。我們的工作為時間序列分析提供了一個替代框架。

    打鼾是一種與呼吸有關的事件,它是由睡眠中上呼吸道解剖結構的振動產生的,如咽壁、軟齶、懸雍垂和扁桃體。流行病學研究表明,習慣性打鼾影響了全球9-17%的成年人口,包括約40%的男性和24%的女性。打鼾會嚴重擾亂打鼾者和共用同一睡眠空間的人的睡眠質量和數量。因此,它經常導致白天嗜睡和註意力不集中,從而增加事故風險,以及某些健康狀況,如睡眠障礙、系統性動脈高血壓和冠狀動脈疾病。然而,由於主觀忽視和有限的醫療資源,發達國家約有80-90%的OSA患者仍未得到診斷和治療,而這一問題的嚴重性在發展中國家更為明顯。一般來說,打鼾發生在仰卧睡覺的時候。對於沒有任何其他夜間呼吸道疾病的打鼾者(單純打鼾),側卧可以自然緩解。因此,一些小工具已經被開發出來,當打鼾發生時,通過向打鼾者提供某種通知來防止打鼾。此外,打鼾是最早和最普遍的夜間癥狀之一,70-90%的阻塞性睡眠呼吸暫停(OSA)患者出現打鼾11。研究表明,打鼾聲的特征,如強度12、頻譜13、音調相關特征14、15、時間和頻率相關參數16、規律性參數17和其他一些特征18、19,可以用來描述單純打鼾者和OSA患者之間的差異,以及OSA的嚴重程度。此外,與多導睡眠圖(PSG)相比,記錄音頻信號的設備方便、低成本、無接觸。因此,打鼾信號已成為評估打鼾者病情的主要生理指標之一。因此,打鼾聲的自動檢測在學術研究中引起了極大的關註,成為人們關註的一個突出領域。

鑒於OSA的社區流行率不斷上升,對醫護人員和用品的需求不斷增長20,在過去二十年中,研究人員致力於藉助電腦技術實現打鼾事件的自動檢測21。早期,對原始音頻信號進行物理或數學特征的人工提取,隨後將其應用於訓練分類器,例如基於12個梅爾頻率倒譜繫數(MFCC)的隱馬爾可夫模型(HMM)22,通過主成分分析(PCA)23,24,25基於共振峰頻率或低維特征的無監督聚類演算法,基於時間和譜域特征的AdaBoost分類器26,共振峰頻率的二次判別分析27,由MFCC訓練的K近鄰(KNN)模型和經驗模式分解28。由時間、能量和頻域中的40個特征訓練的高斯混合模型(GMM)29,基於子帶中的平均歸一化能量的線性回歸模型30,基於時域中的多個特征的支持向量機(SVM)31和基於時間和頻譜特征的人工神經網路(ANN)帶32,33。結果證明瞭這些方法在打鼾識別中的有效性。然而,由於打鼾聲音的多樣性和非線性,確定最佳特征集仍然具有挑戰性。

為了應對特征提取的挑戰,研究人員成功地將深度學習演算法應用於分析各種生理信號,包括心電圖(ECG)34、衝擊心電圖(BCG)35、心電向量圖(VCG)36、腦電圖(EEG)37、肌電圖(EMG)38等,深度學習演算法在圖像和自然語言的特征表示方面表現出了顯著的性能。這些演算法在隨後表徵夜間睡眠呼吸音頻信號方面產生了有希望的結果。例如,Nguyen等人39和Çavuşoğlu等人40分別利用多層感知器神經網路(MLP)來區分打鼾聲和非打鼾聲;Arsenali等人41在提取MFCC後,應用長短期記憶(LSTM)模型對打鼾和非打鼾聲音進行分類;Sun等人42提出了SnoreNet,這是一種一維CNN(1D CNN),它直接對原始聲音信號進行操作,而無需手動製作特征;Khan等人8開發了一種二維CNN(2D CNN)來分析MFCC的圖像,用於自動檢測打鼾,並將其應用於可穿戴小工具;薑等人43發現了Mel聲譜圖和CNN-LSTM-DNN的可選組合用於打鼾識別;Xie等人44使用CNN從恆定Q變換(CQT)頻譜圖中提取特征,然後使用遞歸神經網路(RNN)處理順序CNN輸出,將音頻信號分類為打鼾或非打鼾事件。

儘管大多數深度學習演算法在打鼾和非打鼾發作的分類中表現良好,但這些研究仍存在一些不足。首先,培訓數據的可用性有限,缺乏多樣性。到目前為止,大多數研究的數據採集都是在睡眠實驗室或醫院進行的,與家裡的私人卧室相比,那裡的睡眠環境往往相對安靜。這意味著所記錄的音頻信號的信噪比(SNR)可能更高。在一些在家裡進行實驗的研究中,只有不到10名參與者42。當使用來自同一時期和少量受試者的這些數據時,訓練魯棒分類器是負面的。其次,打鼾聲需要一種新的表現形式。一些研究表明,譜圖,特別是梅爾譜,在打鼾檢測中的有效性,同時對於包括單個CNN8、LSTM41和混合模型43、44在內的許多分類器獲得了幾乎相同的精度。可以推斷,目前打鼾檢測的挑戰之一是為原始音頻信號找到更好的特征表示。

在本研究中,我們針對上述問題提出了幾種解決方案。為了增加樣本的多樣性,我們設計了一個實驗,涉及80多名參與者,持續了十多個月。此外,本實驗中的數據採集是在受試者的習慣性睡眠環境下進行的。此外,還引入了可見性圖(VG)方法,利用映射圖像來表示打鼾聲的非線性。然後,提出了一種結合1D-CNN和2D-CNN結構的新型打鼾識別混合模型。其中,1D CNN用於原始信號分析,2D CNN用於VG映射的相應圖像。1D CNN和2D CNN生成的特征由下一個全連接層連接和分析。

本文的主要貢獻如下:

這項工作建立了一個更大、更多樣的夜間睡眠呼吸音頻信號數據集,這些信號記錄在受試者的私人住宅中。

首先引入VG方法來使用映射圖像來表示打鼾聲音。

提出了一種用於打鼾聲音識別的混合1D-2D CNN框架,該框架比我們數據集上最先進的深度學習模型更準確、更穩健。

我們在2019年3月至2019年12月的實驗中記錄了88名年齡在12歲至81歲之間的個體,其中包括23名女性和65名男性。在我們的研究之前,他們所有人或其監護人代表他們簽署了知情同意書。聲音採集設備由我們自己設計,包括以I.MX6ULL為核心的控制模塊、高解析度麥克風(NIS-80V,廣東峰火電子科技有限公司;20-2000Hz頻率範圍 45dB靈敏度)、電源模塊以及允許線上和離線數據存儲和傳輸的傳輸模塊。在實驗過程中,它被放置在受試者周圍,距離範圍為20–150釐米,並記錄採樣頻率為16000赫茲的單聲道夜間呼吸聲。最後,這些信號被保存為一些波形文件,每個文件都是100M。另一方面,攜帶型PSG以10Hz的採樣頻率記錄了各種生理信號,包括血氧飽和度、血壓和呼吸,這些信號由醫學專業人員用於診斷受試者的OSAHS。在我們的實驗中,受試者包括簡單打鼾者和不同嚴重程度的OSAHS患者。記錄的呼吸聲的平均持續時間為7小時26分鐘。

在本文中,有幾個預處理任務用於準備。所涉及的數據處理方法和工作流程如圖1所示。

對於我們實驗中記錄的音頻信號,我們使用具有適當寬度的時間視窗來捕捉連續的聲音片段。為了儘可能多地保留信息,相鄰的時間視窗可能具有一定百分比的重疊。將音頻信號幀化成幀的過程如圖所示2。值得註意的是,時間視窗的重疊率在不同的音頻信號組中有所不同,以防止我們的數據集中數據不平衡的潛在問題45。同時,較短的音頻信號幀可以保持CNN模型的緊湊性。在這項研究中,基於打鼾片段的最小持續時間,時間視窗的長度被設置為0.3秒。然後,通過z分數標準化對這些聲音片段進行歸一化,以提高我們的深度學習模型的精度和收斂速度。

Lacasa等人46提出的可見性圖(VG)方法基於可見性的幾何原理將時間序列轉換為圖。研究表明,映射可見性圖在結構上繼承了級數的幾個性質:周期級數轉化為正則圖,隨機級數轉化為隨機圖,分數級數轉化為無標度圖46,47。因此,它已被廣泛用於分析不同領域的時間序列,包括心理學、物理學、醫學和經濟學48,49,50,51。在本文中,我們將時間序列的關聯圖視為圖像,這使得能夠進行基於CNN的分析。

對於聲音片段及其相應的可見性圖,提出了一種結合1D CNN和2D CNN的深度神經網路來分別表示它們的特征。然後使用兩個完全連接的層來將這些統一的特征識別為打鼾聲或非打鼾聲。框架如圖3所示。

我們使用五重交叉驗證策略來訓練和測試所提出的模型。88名受試者被隨機分為5組,包括3個18歲受試者組和2個17歲受試組。在每項試驗中,四組用於訓練,其餘一組用於測試。通過確保受試者層面的獨立性,我們可以降低訓練集和測試集中來自同一受試者的數據所導致的高估風險。

在我們的實驗中,使用一批150個樣本來訓練我們的CNN模型,並對其進行了多達150個時期的訓練。學習速率遵循20步逐步預熱,從初始值1e−6開始,速率為1.6。之後,每20個時代,它的震級就降低到原來的10%。圖7顯示了我們的模型在追蹤中識別打鼾碎片的損失和準確性的變化。很明顯,我們的CNN模型隨著迭代次數的增加而逐漸收斂,併在70次迭代後達到穩定。為了避免過度擬合,在迭代過程中,訓練在90步處停止。在我們的實驗中,我們實現了86.4%至91.2%的準確度,88.1%至91.6%的靈敏度,83.0%至91.8%的特異性,0.908至0.973的AUC。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最小Linux系統,安裝Java環境 想想就生氣,去面試個運維,面試官讓我上機裝個centos7,還是個最小安裝包連界面都沒有,只有命令行模式,我都哭了,然後讓把一些環境裝一下,然後再部署個springboot項目,我他媽都多久沒用沒有界面的東西了,最後卡在安裝MySQL上,真想扇自己個 ...
  • 公司給的伺服器上面啥都沒有,自己動手吧,這種活屬於是乾一次以後都不管的 首先檢查Linux系統是多少位 uname -m 下載JDK Linux版本,打不開官網可以點下麵去鏡像網站 https://repo.huaweicloud.com/java/jdk/8u181-b13/ 下載之後傳到伺服器, ...
  • 「Pygors系列」一句話導讀: MinGW-w64只有編譯器,MSYS2帶著更新環境,WSL2實用性比較高 歷史與淵源 Windows平臺 Linux平臺 二進位相容 WSL2:運行Linux程式 Wine:運行Windows程式 介面相容 CygWin:編譯Linux程式 Winelib:編譯W ...
  • 文章目錄 一、進程 二、線程 三、進程和線程的區別與聯繫 四、一個形象的例子解釋進程和線程的區別 五、進程/線程之間的親緣性 六、協程 一、進程 進程,直觀點說,保存在硬碟上的程式運行以後,會在記憶體空間里形成一個獨立的記憶體體,這個記憶體體有自己獨立的地址空間,有自己的堆,上級掛靠單位是操作系統。操作系 ...
  • 使用Ansible來部署Apache服務是一個很好的選擇,因為它可以自動化部署過程,確保所有的伺服器上都有相同的配置。以下是一個簡單的步驟指南,展示如何使用Ansible來部署Apache服務: 1 安裝ansible 在基於Debian的系統中,你可以使用以下命令來安裝Ansible: sudo ...
  • 設置SSH免密登錄本機主要涉及生成密鑰對、將公鑰複製到本地(或遠程伺服器,如果是雙向免密)以及測試免密登錄等步驟。以下是一個基本的設置流程: 生成密鑰對: 打開終端或命令提示符,並執行以下命令來生成RSA密鑰對:ssh-keygen -t rsa 系統將會提示你指定保存密鑰文件的路徑和文件名。預設情 ...
  • 簡單回顧 在開始 lab3 的學習之前,我們先簡單回顧下 到目前為止,我們的內核能做了什麼: lab1中,我們學習了 PC啟動的過程,看到BIOS將我們編寫的boot loader 載入記憶體,然後通過bootloader 將內核載入記憶體。同時,使用了一個寫死的臨時頁表(entry_pgdir)完成了 ...
  • 要在Nginx中配置允許跨域(Cross-Origin Resource Sharing, CORS),你需要修改Nginx的配置文件(通常是nginx.conf或者某個包含在nginx.conf中的單獨的配置文件)。下麵是一個基本的例子,展示瞭如何在Nginx中設置CORS: 打開你的Nginx配 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...