論文解讀:《基于TinyML毫米波雷達的座艙檢測、定位與分類》

摘要

? ? ? ?本文提出了一種實時的座艙檢測、定位和分類解決方案,采用毫米波(mmWave)雷達系統芯片(SoC),CapterahCAL60S344-AE,支持微型機器學習(TinyML)。提出了波束距離-多普勒(BRD)特征,以減輕干擾的影響,便于成人和嬰兒的分類。我們開發了兩個輕量級卷積神經網絡(CNNs)與標簽平滑技術來克服噪聲標簽和增強模型的通用性。大量的實驗表明,在最壞的情況下,該實現可以達到96%以上的檢測精度和90%以上的定位和分類準確率,只有76 KB的模型大小和大約44 ms的推理時間。比較分析還強調了模型的通用性和魯棒性對實際應用程序的重要性,并證明了即使使用一個簡單的CNN模型也可以獲得令人滿意的性能。

引言

? ? ? 座艙內乘客檢測在各種安全應用中發揮著至關重要的作用,如安全帶提醒、安全氣囊部署優化和兒童在場檢測(CPD),以防止中暑事件。雖然相機被廣泛用于檢測和識別,但它們可能會侵犯個人隱私,并在檢測隱藏在障礙物背后的物體時面臨挑戰。壓力傳感器也可以用于檢測乘客的存在,但將物體放置在座位上可能會導致傳感器的假警報。相比之下,mmWave雷達有潛力克服這些限制,并提供準確的乘客探測,即使是在具有挑戰性的情況下,如低光環境或陽光眩光。它能夠檢測小的運動,比如兒童的呼吸,使它特別適合滿足EuroNCAP 2025路線圖規定的嚴格安全要求,該路線圖強調了CPD在車輛中預防事故的重要性。最近的研究探索了使用毫米波雷達進行座艙檢測,使用信號處理或新興的機器學習技術。Chen等人[1]提出了一種基于雷達的由Capon和CFAR生成的點云處理的艙內乘員監測。Abedi等人[2]利用機器學習方法處理范圍-方位角(RA)熱圖,以確定被占據座位的位置。雖然基于capon的方法可以實現更高的角度分辨率,并有助于檢測和定位汽車中的人,但它們可能對復雜的干擾很敏感,如手機的振動、風扇和汽車的小運動。

????????這些干擾將產生高頻分量,并且不能通過在基于RAMAP的處理流程中采用的零多普勒去除來消除。此外,由Capon生成的RAMAP需要大量的矩陣乘法和轉置,這使得在mmWave雷達soc上難以實現。Cruz等人[3],Song等人[4]提出利用時頻特征來減少推斷的影響,提高檢測的魯棒性。然而,獲得時頻特征也需要大量的計算和內存。此外,以往的工作在開發深度學習模型時很少考慮內存和計算復雜性,這可能導致在嵌入式雷達系統上不可行的實現。

????????在本文中,我們提出了一種新的處理流程,利用BRD特征而不是使用RA域的功率分布,以克服干擾的影響,并提供了利用它們不同的范圍-多普勒特征對成人和嬰兒進行分類的能力。在mmWave雷達SoC上開發并部署了具有8位整數后量化的小型CNN模型。除了檢測車內是否有一個人外,我們還通過采用深度學習模型來同時確定這個人坐在哪個座位上,以及這個人是成年人還是嬰兒。此外,我們演示了在Caltah雷達SoC上的實時實現,并通過廣泛的實驗驗證。

方法

處理流程

????????圖1顯示了所提出的座艙內檢測、定位和分類的處理流程。輸入的是模數轉換后的數據,稱為ADC數據。首先對ADC數據進行沿快速時間采樣軸的快速傅里葉變換(FFT),也稱為快速時間處理,以獲得距離信息。隨后,進行零多普勒去除,然后沿慢時間軸進行另一個FFT,以獲得所有虛擬MIMO信道的距離-多普勒(RD)圖。傳統的雷達處理采用非相干集成、恒定誤警率(CFAR)檢測和到達方向(DOA)估計,我們直接采用N-Point二維數字波束形成(DBF),如下所示:

其中,是對于虛擬通道c,距離下標 r,多普勒下標 v的慢時間FFT結果。為通道c和波束i的導向向量。是n點DBF冪。每束光束都指向我們感興趣的區域,以便在艙內應用。例如,我們執行一個6點的DBF,這些光束指向第二行的三個座位和它們對應的腳槽區域。由于在我們的設計中有相對較大的波束寬,所以第二排的整個區域,包括兩個座位之間的區域,都被有效地覆蓋了。

????????在N-Point DBF之后,將得到一個具有范圍、多普勒和角度尺寸的數據立方體,其中每個元素代表一個特定范圍、多普勒頻率和角度對應的功率。我們選擇了數據立方體的一部分,特別是在本文中顯示的實現中的24×64×6,并使用非對稱的8位整數格式來量化冪值,如等式所示 2:

????????其中,b0和a0分別表示輸入的假設偏差和比例因子,round表示舍入操作,clip(x,xmin,xmax)是在xmin和xmax范圍內剪輯輸入的函數。圖2顯示了沒有seat-A移動的成年人和沒有安全seat-B的嬰兒的BRD特征。在圖中可以觀察到一個視覺上的差異,這承諾了所提出的方法來定位和分類成人和嬰兒。

????????然后將得到的三維 int8 數據輸入到已開發的 CNN 模型中。在這項工作中,CNN 執行了七類分類任務,分別對應以下場景:有或無干擾的空車位、座位 A/B/C(第二排的右/中/左座位)被成人占用、座位 A/B/C 被嬰兒占用。

深度傾模型開發和部署

????????座艙內雷達CNN模型的開發和部署過程如圖3所示。CNN模型在初始化后,通過對多個時期的梯度下降優化進行訓練。執行驗證,以評估驗證損失,并確定是否應盡早停止訓練過程。來自所有7個Case的35個獨立實驗的數據,每個案例包含1000幀,并將它們分割成訓練和驗證數據集。分割比是0.3。雖然數據可以標記為艙內應用,但噪聲數據仍然存在。例如,一個人可以坐在一個座位的邊緣,并占據相鄰座位的一小部分。此外,一個人的運動也可能侵入另一個座位區域。因此,直接使用這些標簽會混淆CNN模型,降低其性能。此外,數據分布漂移可以在實際應用中觀察到,如第四節所示。為了解決噪聲標簽和提高模型的通用性,我們采用了標簽平滑[5]。標簽平滑使用一個小的非零概率α,而不是使用one-hot編碼標簽,而非其他類的概率為0,如等式所示:

????????TinyML 技術對于在內存和計算能力有限的邊緣設備上部署已建立的 CNN 模型至關重要。這項工作主要采用訓練后量化來減少內存占用并加速推理。在此過程中,訓練數據集用作代表性數據集。在此數據集上運行已建立的模型,并收集每層參數的最小值、最大值和標準偏差值。基于這些統計數據,將參數從 32 位浮點數縮放到 8 位整數范圍,類似于等式 2 所示的 CNN 輸入量化。最后,使用 TensorFlow Lite Micro 框架將量化模型與雷達平臺 SDK 一起部署,生成可閃存到 mmWave 雷達 SoC 的艙內雷達二進制文件。

補充

????????我們在CaalterahCAL60S344-AE平臺上實現了我們提出的方法,也被稱為RhinePro。這種4T4R雷達SoC在59 GHz到64 GHz的頻率范圍內工作,并配備了一個雷達基帶加速器(BBA)來加速信號處理。它的特點是一個300MHz的雙CPU核心和3MB的SRAM。我們采用半波長均勻陣列,利用TDM生成一個4×4的矩形虛擬陣列。SoC芯片和天線如圖4所示。

????????如圖1所示,FFT和n點DBF在RhinePro的BBA中實現。然后,CPU將訪問DBF的結果,并執行隨后的推斷。RhinePro的BBA顯著加速了信號處理,在0.4 ms內獲得DBF結果。由于快速處理與波形傳輸并行化,快速處理的處理時間較大。

我們開發了兩種類型的 CNN 模型。

第一種是簡單的3 層順序 CNN,本文中稱為 SimpleNet。它包含三個卷積層,具有最大池化和 ReLu6 激活,然后是全連接層

第二種是 MobileNetV2 [6],它比 SimpleNet 復雜得多,被認為是最好的輕量級 CNN 架構之一。SimpleNet 和 MobileNetV2 的大小分別約為 275KB 和 5.3MB。量化后,它們的大小減小到78KB 和 1.6MB 左右。我們在 RhinePro 平臺上實現了 int8 后量化后的 SimpleNet,并將在下一節中展示評估結果,而開發的 MobileNetV2 僅部署在桌面上以供比較。在我們的實現中,int8量化的SimpleNet的推理時間約為44毫秒,而沒有量化的相同模型則需要大約855毫秒。通過將CNN推理與波形傳輸并行化,我們開發的艙內雷達可以實現高達20Hz的更新率

實驗結果分析

????????為了驗證我們提出的方法和實現,我們進行了一系列全面的實驗。圖5顯示了實驗測試用例的例子。雷達平臺安裝在車輛的頂部中心位置。我們評估了三種不同類型的場景: (1)有干擾場景的空車,如操作風扇、座位上的手機振動或外部車輛振動;(2)成年人坐著有或沒有身體運動;(3)在座位上有模擬呼吸的娃娃,兒童安全座椅安裝在向前或向后的配置,或沒有安全座椅。

????????圖6給出了三種沒有量化的CNN模型的訓練和驗證精度:不帶標簽平滑的SimpleNet,帶標簽平滑的Simple網,以及帶標簽平滑的MobileNetV2。很明顯,兩個簡單網絡的訓練準確率超過了95%,而MobileNetV2的訓練準確率約為99.6%。此外,與SimpleNets相比,MobileNetV2表現出明顯更快的收斂速度。我們使用一個獨立的測試數據集對這些模型進行了評估,結果如圖7所示。一個性能差距在驗證結果和測試結果之間進行了觀察。在最壞的情況下,沒有標簽平滑的SimpleNet的性能比驗證結果下降了約15%,而其他兩種模型的最壞情況下的精度仍超過89%。這種差異可以歸因于訓練和驗證數據集中的數據來自相同的實驗,而測試數據集來自一個獨立的實驗。這可能引入了數據分布偏移,而沒有標簽平滑的SimpleNet的過擬合導致了嚴重的性能惡化。

????????為了進一步評估兩種標簽平滑和量化模型的泛化能力,我們進行了一個額外的獨立實驗,略微修改了安裝位置和不同的測試人員和嬰兒模型。其目的是模擬在實際應用程序中遇到的實際條件。如圖8所示的結果表明,雖然由于測試環境的變化,本實驗中模型的性能與測試數據集上的性能有所不同,但兩種模型的平均精度仍約為94%。通過比較驗證數據集上的量化模型的結果,我們發現,量化后幾乎沒有導致性能下降,相反,性能略有提高。這主要可以歸因于后量化引入了一定程度的噪聲,這類似于訓練過程中的正則化,從而防止過擬合和增強泛化。

????????圖8和圖7中的結果也強調了在現實應用中存在的個案波動,這表明深度學習模型的通用性將是一個主要關注的問題。此外,與在本研究中使用一個簡單、緊湊的CNN,如SimpleNet相比,使用一個相對復雜的模型,如MobileNetV2,可能會產生有限的改進。

????????為了證明所提出的方法的魯棒性,我們給出了一個推理案例的詳細結果簡單網絡,一個人從外面搖晃空車來模擬汽車的外部振動。圖9(a)展示了CNN輸入特征的一個例子,(b)和(c)描述了本案例研究的預測分數和分類結果。通過圖9(a)和圖2的比較,可以看出干擾、成人和嬰兒對BRD特征的差異,可以用來區分它們。雖然在這種情況下會了兩個錯誤警報,但它們可以通過使用時間平滑等邏輯策略來減輕

結論

????????本文提出了一種基于Cinterah雷達SoC平臺和TinyML的實時座艙檢測、定位和分類應用解決方案。我們提出并實現了一種新的處理流程,它利用了多波束方向的BRD特性。為了解決有噪聲的標簽和提高所開發的CNN的通用性,采用了標簽平滑技術。此外,量化被用于減少內存占用和加速推理。廣泛的實驗表明,在實踐中存在數據分布波動,因此模型的通用性將是一個主要關注的問題。無論波動如何,結果表明,我們的實現的檢測準確率超過96%,最壞情況下的準確率超過定位和分類的90%。開發的微型CNN模型占用約76 KB的內存,花費44 ms進行推斷。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/68051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/68051.shtml
英文地址,請注明出處:http://en.pswp.cn/web/68051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ORB-SLAM2源碼學習:KeyFrame.cc④: void KeyFrame::UpdateBestCovisibles更新最佳共視

前言 在添加新連接之后就要重新對所有的共視關鍵幀和權重的那兩個列表重新進行降序排列,這樣非常容易知道列表的第一位就是最佳共視關鍵幀和權重。 總的來說就是只要權重發生了變化就要調用這個函數來修改mvpOrderedConnectedKeyFrames共視關鍵幀和mvOrderedWeigh…

尚硅谷課程【筆記】——大數據之Shell【一】

課程視頻:【【尚硅谷】Shell腳本從入門到實戰】 一、Shell概述 為什么要學習Shell? 1)需要看懂運維人員的Shell程序 2)偶爾編寫一些簡單的Shell程序來管理集群、提高開發效率 什么是Shell? 1)Shell是一…

ES6 對象擴展:對象簡寫,對象屬性 表達式,擴展運算符 ...,Object.assign,Object.is,用法和應用場景

1. 對象屬性簡寫 1.1 基本語法 // 傳統寫法 const name John; const age 25; const user {name: name,age: age };// ES6 簡寫語法 const user {name,age };1.2 實際應用場景 // 1. 函數返回對象 function createUser(name, age, email) {return {name,age,email}; }// …

【2025】camunda API接口介紹以及REST接口使用(3)

前言 在前面的兩篇文章我們介紹了Camunda的web端和camunda-modeler的使用。這篇文章主要介紹camunda結合springboot進行使用,以及相關api介紹。 該專欄主要為介紹camunda的學習和使用 🍅【2024】Camunda常用功能基本詳細介紹和使用-下(1&…

Java進階學習之路

Java進階之路 提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 目錄 Java進階之路前言一、Java入門 Java基礎 1、Java概述 1.1 什…

JAVA安全—反射機制攻擊鏈類對象成員變量方法構造方法

前言 還是JAVA安全,哎,真的講不完,太多啦。 今天主要是講一下JAVA中的反射機制,因為反序列化的利用基本都是要用到這個反射機制,還有一些攻擊鏈條的構造,也會用到,所以就講一下。 什么是反射…

TfidfVectorizer

TF-IDF / Term Frequency - Inverse Document Frequency 作用:是自然語言處理NLP中常用的文本特征提取工具,用于將文本數據轉換為數據向量。 核心思想:是通過統計詞頻和逆文檔頻率來量化詞語在文本中的重要性。 T F ? I D F ( t , d ) T F…

DeepSeek-R1 論文解讀:強化學習如何 “煉” 出超強推理模型?

深度解析DeepSeek-R1:強化學習驅動大語言模型推理能力新突破 論文鏈接:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 在大語言模型(LLMs)飛速發展的當下,提升模型推理能力成…

【數據結構】循環鏈表

循環鏈表 單鏈表局限性單向循環鏈表判斷鏈表是否有環思路code 找到鏈表入口思路代碼結構與邏輯 code 單鏈表局限性 單鏈表作為一種基本的數據結構,雖然在很多場景下都非常有用,但它也存在一些局限性: 單向訪問:由于每個節點僅包含…

ip屬地是手機號還是手機位置?一文理清

在數字化和網絡化的今天,IP屬地這一概念逐漸成為了人們關注的焦點。特別是在社交媒體和在線平臺上,IP屬地的顯示往往讓人聯想到用戶的地理位置。然而,關于IP屬地到底與手機號還是手機位置有關,卻存在著不少誤解和混淆。本文將深入…

【嵌入】基于nomic-embed-text-v1.5和HuggingFaceEmbeddings實現

測試代碼 model_name = /media/zhangbin/DATA/DataCache/nomic-ai/nomic-embed-text-v1.5import osos.environ[HF_HOME] = /media/zhangbin/DATA/DataCache/#os.environ["TRANSFORMERS_CACHE"] = "/media/zhangbin/DATA/DataCache/" # 確保目錄結構正確 if…

離散時間傅里葉變換(DTFT)公式詳解:周期性與連續性剖析

摘要 離散時間傅里葉變換(DTFT)是數字信號處理領域的重要工具,它能將離散時間信號從時域轉換到頻域,揭示信號的頻率特性。本文將深入解讀DTFT公式,詳細闡述其具有周期性和連續性的原因,幫助讀者全面理解DT…

哈希表與散列表的原理及C++實現

1. 什么是哈希表? 哈希表(Hash Table)是一種高效的數據結構,用于存儲鍵值對(Key-Value Pairs)。它通過哈希函數(Hash Function)將鍵(Key)映射到一個固定大小…

圖像分類與目標檢測算法

在計算機視覺領域,圖像分類與目標檢測是兩項至關重要的技術。它們通過對圖像進行深入解析和理解,為各種應用場景提供了強大的支持。本文將詳細介紹這兩項技術的算法原理、技術進展以及當前的落地應用。 一、圖像分類算法 圖像分類是指將輸入的圖像劃分為…

前端框架中 HTML 的應用技巧:React、Vue、Angular 深度解析

系列文章目錄 01-從零開始學 HTML:構建網頁的基本框架與技巧 02-HTML常見文本標簽解析:從基礎到進階的全面指南 03-HTML從入門到精通:鏈接與圖像標簽全解析 04-HTML 列表標簽全解析:無序與有序列表的深度應用 05-HTML表格標簽全面…

Vue - customRef 自定義ref

customRef 作用:創建一個自定義的 ref , 并對其依賴項跟蹤和更新觸發進行邏輯控制。 在原生 ref 的基礎上,添加自己的邏輯等... 在 Vue 3 中,customRef 是一個用于創建自定義響應式引用的 API。它允許開發者控制和優化響應式引用的行為&…

數字化轉型:概念性名詞淺談(第四講)

?大家好,本篇文章是在新年之際寫的,所以在這里先給大家拜個年。 今天要介紹的名詞為ETL: ETL,是英文Extract-Transform-Load的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transfor…

UE學習日志#22 C++筆記#8 基礎復習8 string和string_view2

1 std::string_view類 string_view基本上就是const string&的簡單替代品,但不會產生開銷。他不復制字符串。 string_view添加了remove_prefix(size_t)和remove_suffix(size_t)方法,前者將起始指針給定的偏移量來收縮字符串,后者則將結尾指…

UVM factory機制

目錄 1. factory-register 1.1 uvm_object_registry#(type T=uvm_object, string Tname="") 1.1 uvm_default_factory::register 2. factory-override 2.1 set_type_override(uvm_object_wrapper override_type) 2.2 set_inst_override(uvm_object_wrapper ove…

Spring MVC學習——發送請求(@RequestMapping注解及請求參數綁定)

前言 Spring MVC作為Spring框架中的核心組件之一,其強大的功能在于能簡潔高效地處理HTTP請求和響應。在開發Web應用時,理解和正確使用Spring MVC的注解,尤其是RequestMapping注解,至關重要。本文將詳細講解RequestMapping注解的使…