OpenHarmony啃論文俱樂部—細數(shù)生活中的壓縮點滴
【本期看點】
主題:《老子到此一游系列》之 老子游玩了一條河。
- 深度學習助力數(shù)據(jù)壓縮。
- 貫穿生活的無線傳感器網(wǎng)絡。
- SFFT的前世今生。
【技術DNA】
【智慧場景】
無線傳感器網(wǎng)絡(WSN)
- 說到無線傳感器網(wǎng)絡,大家或許會先自然將其結(jié)合自己所熟悉的三個概念進行拆分:無線——傳感器——網(wǎng)絡。無線與網(wǎng)絡這兩個概念大家已經(jīng)十分熟悉了,把這兩個概念進行組合:無線 + 網(wǎng)絡 = 無線網(wǎng)絡,就是我們“賴以生存”的 WIFI。
- 再介紹傳感器,傳感器就是一種先感再傳的檢測裝置(如樓道里的聲控燈,銀行的感應門等)?!案小?,是能感受到被測量的信息;“傳”,是能將感受到的信息,按一定規(guī)律變換成為電信號或其他所需形式的信息輸出;“器”,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求的檢測裝置。
背景
目前,我們正處于計算機進化的第三代,稱為普適計算時代。在這個時代,計算機已經(jīng)開始消失在周圍的物體中,人們甚至可能不知道他們在日常生活活動中與計算機進行交互。支持廣泛存在計算的關鍵技術之一是無線傳感器網(wǎng)絡 (WSN)。
如何構建
無線傳感器網(wǎng)絡 = 傳感器節(jié)點 + 無線網(wǎng)絡小微控制器板傳感器
傳感器節(jié)點:三個子單元。
- 傳感單元——獲取目標事件/感興趣數(shù)據(jù)。
- 處理單元——管理采集數(shù)據(jù)。
- 通信單元——無線電收發(fā)器——節(jié)點間交換信息。
傳感器節(jié)點經(jīng)過組織形成無線傳感器網(wǎng)絡。簡單來講,就是由諸多傳感器節(jié)點組合形成網(wǎng)絡,再利用無線通信技術進行信息綜合處理的一項技術。
建立WNS需解決的三大問題
1、 信息管理體系結(jié)構,多傳感器采信時的信息沖突與交互問題
多傳感器系統(tǒng)的運行過程中,必須不斷融合“有用數(shù)據(jù)”和“不良數(shù)據(jù)”。然而,好的和壞的數(shù)據(jù)的簡單組合總是會產(chǎn)生不準確的結(jié)果,因為壞數(shù)據(jù)“污染”了好數(shù)據(jù)。因此,需要不斷地使用所有可用的信息,不論是外衍或者是系統(tǒng)內(nèi)生的,并據(jù)此在理論框架內(nèi)對其建模,以此來在運行時中不斷評估和修正來自不同傳感器的觀察數(shù)據(jù),并基于其相關性加以利用。
2、 敏感數(shù)據(jù)加密與密鑰管理
傳感器節(jié)點隨機分布,易遭受惡意gong擊。
3、 無線傳感網(wǎng)絡中功耗與功耗管理
傳感網(wǎng)絡中傳感節(jié)點由電池供電,數(shù)量龐大順序更換充電實踐中不可行。
最關鍵問題:傳感器節(jié)點上的無線電收發(fā)器是功耗的主要因素。
節(jié)能方案
占空比方案——協(xié)調(diào)定義網(wǎng)絡中節(jié)點之間的喚醒和睡眠計劃。
通俗點講:節(jié)點996,定時開關機,到點下班回家,關機睡覺
網(wǎng)絡內(nèi)方案——聚合技術 + 數(shù)據(jù)壓縮——減少傳輸數(shù)據(jù)量。
*聚合技術程序。
- 不同傳感器節(jié)點——提取數(shù)據(jù)集(特征,統(tǒng)計信息)——路由(路由器從一個接口上收到數(shù)據(jù)包)方式組合——轉(zhuǎn)發(fā)匯聚節(jié)點。
- 基本組件:路由算法 + 數(shù)據(jù)聚合 + 數(shù)據(jù)壓縮/數(shù)據(jù)表示。
- 路由算法:聚合函數(shù)—>提取最值—>匯總數(shù)據(jù)平均值—>減少密集傳感器網(wǎng)絡中影響功耗的通信數(shù)據(jù)量。
- 弊端:聚合程度較高時。提取的數(shù)據(jù)中丟失大部分原始結(jié)構,只提供粗略的統(tǒng)計數(shù)據(jù),沒有局部變化。
- 解決方案:數(shù)據(jù)壓縮方案——不需要密集網(wǎng)絡和路由算法——壓縮算法是在每個本地節(jié)點上獨立于其他節(jié)點執(zhí)行的——分布式數(shù)據(jù)壓縮方法 + 本地數(shù)據(jù)壓縮方法。
*數(shù)據(jù)壓縮。
- 可滿足需求:減少計算成本和節(jié)能。
- 原因:由于無線傳感器節(jié)點上的通信單元是主要的電力消耗單元, 因此可以使用一種數(shù)據(jù)壓縮方案來減少網(wǎng)絡中交換的信息量,從而節(jié)省電力。比率越高數(shù)據(jù)壓縮越好,省電百分比越高。然而,當應用數(shù)據(jù)壓縮算法時,傳感器節(jié)點的處理單元需要更大的功率來運行算法。
*商用傳感器的節(jié)點約束。
商用無線傳感器節(jié)點的實際應用中,這些節(jié)點通常具有體積小、通過一組傳感器、低數(shù)據(jù)率無線電收發(fā)器和小電池來感知環(huán)境現(xiàn)象的能力。
*硬件約束。
- 處理約束:著名的無線傳感器節(jié)點平臺,配備了 Atmel Atme -ga128L 和 Texas Instruments MSP430 微控制器, 指令內(nèi)存分別只有 128 和 48 KB。他們的處理時鐘從 4 到 8 兆赫茲不等。
- 解決途徑:在這些約束條件下,有必要為無線傳感器網(wǎng)絡的應用設計一種低復雜度、小編碼的壓縮算法。
傳感器精度誤差。
- 原因:硬件固有噪聲——制造時——規(guī)定工作范圍,精度。
- 問題:用戶只明確測量值在誤差范圍內(nèi),而不知道誤差的大小和相關的誤差概率。
- 結(jié)果:無損數(shù)據(jù)壓縮算法,確保信息在壓縮過程中的正確性和解壓縮過程,對于商用節(jié)點——低效。有損壓縮算法——導致信息丟失——在只允許丟失噪聲的條件下更適合——去噪技術來實現(xiàn)。
- 結(jié)論:在某些應用中,如果它們使用的是誤差幅度較大的傳感器,則有必要避免實現(xiàn)無損數(shù)據(jù)壓縮,而采用帶去噪技術的有損壓縮則更為合理。
應用實例
軍事領域的敵人跟蹤
在軍事領域,由于WSN具有密集型、隨機分布的特點,使其非常適合應用于惡劣的戰(zhàn)場環(huán)境。利用WSN能夠?qū)崿F(xiàn)監(jiān)測敵軍區(qū)域內(nèi)的兵力和裝備、實時監(jiān)視戰(zhàn)場狀況、定位目標、監(jiān)測核gong擊或者生物化學gong擊等。
智能交通中保障安全暢通
在智能交通領域,由于WSN具有密集型、隨機分布的特點,使其非常適合應用于靈活多變的環(huán)境。利用WSN能夠?qū)崿F(xiàn)監(jiān)測區(qū)域內(nèi)的車輛流量、路燈、交通設施等實時監(jiān)測。
- 家庭自動化應用中的人類跟蹤。
- 醫(yī)療保健應用中的病人監(jiān)測。
基于深度學習的三維點云幾何壓縮
背景
過去幾年間,人工智能得到了迅猛式發(fā)展,深度學習作為人工智能的主流技術,已經(jīng)成功應用于解決各種二維視覺問題。三維層面上,由于點云表示在計算機視覺、自動駕駛、增強現(xiàn)實(AR)、智慧城市、虛擬現(xiàn)實(VR)等領域有著廣泛的應用,因此,深度學習取代如PCL、Draco等傳統(tǒng)方式處理點云數(shù)據(jù),成為當今或未來的必然趨勢。點云數(shù)據(jù)在自動導航、沉浸傳播等現(xiàn)實生活領域發(fā)揮著重要作用,為了應對數(shù)據(jù)傳輸效率和數(shù)據(jù)存儲的嚴格要求,需要采用更高壓縮比的相關無損壓縮方案,相關學者提出了在當時2019年可能是第一個基于深度學習的點云壓縮算法。2020年起,逐漸火熱起來,而當下,相關技術已較成熟。
何為“點云”
點云就是某個三維坐標系下一些點(X, Y, Z, Nx, Ny, Nz)的集合,但是這些點并不是普通的點,它包含了豐富的信息,每一個點都會有屬于自己的X、Y、Z坐標及相對應的法向量,因為大量的離散點聚集在一起,放遠了看就像一片片云,所以便稱之為了點云。簡單來看,我們能夠掌握事物的輪廓。通過點的顏色,能夠知道點的稠密,從而得到其他屬性。
那么這些3D點是如何獲取的? 它們主要是由激光雷達等傳感器掃描得到,目的是為了更好地表達位置信息。
畫面中這些看起來像熱成像的東西就是點云數(shù)據(jù)。
點云生成
點云生成有算法和軟件兩種方式,很多是基于深度學習算法將無人機拍攝的圖像做成3D點云。
點云補全
整體來說類似于GAN和Unet編解碼網(wǎng)絡的感覺,其中,GAN全稱生成對抗網(wǎng)絡,可用于目前比較火熱的換臉等媒體場景,OMGD是相關的前沿壓縮算法。
體素
體素是體積元素(Volume Pixel)的簡稱,是數(shù)字數(shù)據(jù)于三維空間分割上的最小單位,類似于二維平面的像素。就像著名的沙盒游戲 MineCraft 一樣,世界中的很多建筑等都是由 1x1 的小方塊組成的。
同像素一樣,體素本身并不含有空間中位置的數(shù)據(jù)(即它們的坐標),然而卻可以從它們相對于其他體素的位置來推敲。
BPP
BPP(bit per pixel) 是評判壓縮算法好壞的重要指標之一,表示每個像素占據(jù)的比特位數(shù)。從壓縮的目的來看,BPP越小越好。
表示學習
為了提高機器學習的準確率,我們就需要將輸入的信息轉(zhuǎn)換成有效的特征,這種行為被稱為表示(Representation)。表示學習(Representation Learning)就是一種可以自動地學習出有效特征的算法,并在最終提高了機器學習的性能的一種學習。使用深度學習進行三維點云幾何壓縮要做的事情也就兩項:點云表示學習以及點云數(shù)據(jù)壓縮。點云表示學習在這里起到了一個預處理的作用,把數(shù)據(jù)預處理后能夠更方便地壓縮。
點云幾何壓縮
點云是一大堆點,存儲這些點云數(shù)據(jù)會大量消耗內(nèi)存,而且不利于傳輸。舉個不是特別恰當?shù)睦?,假如未來有一天你正開著無人駕駛車,開的過程中它突然無人駕駛系統(tǒng)突然卡了,那就一失兩命了。有人可能會說我們只要不斷的往車里堆加內(nèi)存不就行了? 但是車的容量是有限的,堆加這些設備就意味著要增大車的體積或者降低其它部件的體積,而且汽車廠商更要考慮成本。
所以,為了大家都從中獲益,點云壓縮顯得尤為重要
點云壓縮一直是計算機圖形學的一個重要研究方向,包括三種類型:幾何壓縮、屬性壓縮和動態(tài)運動補償壓縮,這里研究幾何壓縮。一般而言,體素模型的體、面、邊、點的形狀分布既不規(guī)則、也不均衡,其它壓縮技術難以適應它的特點以取得高效的壓縮結(jié)果。而幾何壓縮用盡可能少的比特來反應連接信息和幾何信息,并將這些比特順序排列形成比特數(shù)據(jù)流,然后用數(shù)據(jù)壓縮方法壓縮這個比特數(shù)據(jù)流。其傳統(tǒng)的算法主要是PCL和Draco,新興的也就是本文關注的,是基于深度學習的稀疏點云幾何壓縮算法,它比現(xiàn)有的任何壓縮方法都能達到更高的壓縮比,且壓縮損耗可接受。它還提供了三種不同分辨率的輸出,適合不同的場合。但這里,還是將對PCL和Draco做一些簡單介紹:
PCL
PCL全稱Point cloud library(點云庫),于2011年推出,屬于機器視覺類別,與獲取2D信息并處理的OpenCV類似,它是一個獨立的、大規(guī)模的、開放的跨平臺 2D/3D 圖像和點云處理項目,根據(jù)BSD許可條款發(fā)布,因此可免費用于商業(yè)和研究用途。庫中包含很多先進的算法,PCL與機器人操作系統(tǒng)ROS完全集成,并已在機器人領域的各種項目中使用。從0.6版本開始,PCL就已經(jīng)被移植進Windows,MacOS和Linux,目前的最新版本是1.12.1,Android中也在使用,因此,PCL的應用容易移植和多方發(fā)布。另外,PCL的壓縮比可以根據(jù)實際需要進行調(diào)整。
上圖是對點云數(shù)據(jù)集進行PCL可視化操作的結(jié)果。
Draco
Draco是一個Google的開源庫,于2017年推出,用于壓/解壓縮3D幾何網(wǎng)格和點云,旨在改進3D圖形的存儲和傳輸。Draco專為壓縮效率和速度而設計,該代碼支持壓縮點、連接信息、紋理坐標、顏色信息、法線以及與幾何相關的任何其他通用屬性。使用Draco,3D圖形的應用程序可以顯著縮小,而不會影響視覺保真度。對用戶而言,這意味著應用程序可以更快地下載,瀏覽器中的 3D圖形可以更快地加載,VR和AR場景因此可以用一小部分帶寬傳輸并快速渲染。
Draco算法同時支持有損和無損壓縮,它提供了10種可選的壓縮級別,還可通過減少量化位以支持進一步的有損壓縮。官網(wǎng)Draco 3D Graphics Compression的Demo子頁面中可以在線測試3D渲染性能。
實際上,Draco最初便是由Chrome團隊設計。
Draco開源剛不久,便有網(wǎng)友對其進行了測試復現(xiàn):
可以看到,編碼之后,點云文件大小從原本的3mb顯著減小到了110kb,但此時的文件是不能夠被正??梢暬?,只能用來傳輸存儲,所以我們需要對其再進行解碼。解碼之后為431kb,其實也并沒有再大多少,但是我們注意下方的編碼前后點云圖像質(zhì)量比較,發(fā)現(xiàn)二者從肉眼上幾乎分辨不出差別,而點云數(shù)目也沒有發(fā)生變化,都是35947 data points。
可見,Draco的編碼效率十分強悍。
基于深度學習的壓縮
學者設計了一種新的基于深度學習的稀疏點云幾何壓縮方案,能夠達到比現(xiàn)有的任何壓縮算法都更高的壓縮比,且壓縮損耗可接受。另外,它提供了三種不同分辨率的輸出,適應于不同場合;基于矩陣運算,支持GPU對多個模型并行壓縮,大大提高處理效率。
算法測試
ShapeNet數(shù)據(jù)集是一個稀疏的點云數(shù)據(jù)集,不常用于點云壓縮任務。但是,稀疏點云可以用來測試壓縮算法,原因是它們比密集點云更難壓縮,因此更能體現(xiàn)算法效率。稀疏點云用更少的點代表形狀或表面,比密集點云包含更少的冗余信息。
為了比較稀疏點云壓縮和密集點云壓縮在簡化Stanford bunny(斯坦福兔子)點云時采樣的2048和35947個點的差異,使用PCL和Draco對兩個模型壓縮,得到下圖結(jié)果。bpp指每點壓縮數(shù)據(jù)的比特數(shù),損耗由RMS計算以減小計算量:
結(jié)果表明,稀疏點云壓縮往往比密集點云壓縮更難達到高壓縮比及低重構損失。
為了清晰顯示算法訓練過程,學者選擇了幾個模型,并在不同迭代次數(shù)下重構點云,模型細節(jié)逐漸出現(xiàn):
編碼的最后一層稱為瓶頸層,瓶頸層的維數(shù)和碼字中每個浮點數(shù)所占位數(shù)是影響壓縮結(jié)果的兩個關鍵因素。
將基于深度學習使用"PointNet++、TensorFlow"等技術的壓縮算法與PCL和Draco在最終條件下進行比較,Ours-16和Ours-32分別表示用16位和32位表示單個值的方式,討論壓縮比、重構損失、計算量等一系列參數(shù)。結(jié)果表明,基于深度學習的新算法有著比Draco高10倍、甚至比PCL高110倍的壓縮比,同時保證了較小的重構損失。
但是,有優(yōu)點必有缺點。PCL和Draco更快、更節(jié)省內(nèi)存。原因是PCL和Draco都是基于C的,比基于Python的新算法要更高效,解決辦法可以是用C程序簡化網(wǎng)絡,替換TensorFlow中的更多操作,從而提高效率、減小內(nèi)存負載。
總結(jié)
本文提出的基于深度學習的三維點云壓縮新方法,是第一個基于深度學習的點云幾何壓縮算法。由于其并行處理能力和較高的壓縮比,在保持可接受的損耗的情況下,顯示了巨大的潛力。實驗表明,在高壓縮比條件下,該算法的性能優(yōu)于 PCL 和 Draco。該算法的關鍵是具有分層結(jié)構的自動編碼器,其性能優(yōu)于目前的重建質(zhì)量,特別是在局部細節(jié)上。毫無疑問,深度學習是數(shù)據(jù)壓縮未來的發(fā)展方向。
基于稀疏快速傅里葉變換(SFFT)的語音壓縮算法
SFFT的前世今生
1876 年 Bell 發(fā)明創(chuàng)造了電話,用聲電-電聲轉(zhuǎn)換方式實現(xiàn)了人類有史以來第一次的遠距離語音傳輸,開啟了現(xiàn)代語音信號處理的研究。
1928年奈奎斯特(Nyquist)就推導出在理想低通信道的最高碼元傳輸速率的公式。
2012 年由麻省理工學院(Massachusetts Institute of Technology,MIT)Haitham Hassanieh 等四位研究員提出的一種新的信號處理算法,稀疏快速傅里葉變換(Sparse Fast Fourier Transform,SFFT) 。該算法通過利用信號頻域的稀疏特性,以與信號長度成亞線性關系的時間復雜度和較高的概率重構出信號的完整頻譜,其效率是傳統(tǒng)快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)算法的 10~100 倍。為此,麻省理工學院專門建立了研究 SFFT 的相關網(wǎng)站,并發(fā)表了多篇相關論文。
應用場景
語言交流是人類最基本的能力之一,是人類長期進化形成的特有的思維和交流形式。語言是概況總結(jié)的規(guī)律性的符號系統(tǒng),是創(chuàng)造和記錄人類文明的根本方式。
語音作為語言的聲學表現(xiàn)形式,是音與義的結(jié)合體,是最方便有效的信息傳遞和交換形式。語音和語言是人類思維的一種依托,它與所生存的社會、文化密切相關,擁有最大的信息含量及最高的智慧水平。
語音信號的數(shù)字化處理已成為數(shù)字化時代下通信網(wǎng)絡里最重要的一部分,數(shù)字語音信號的傳輸、合成、存儲、增強、識別等已經(jīng)有了比較成熟的技術,語音壓縮算法在此基礎之上擁有了蓬勃發(fā)展的機會。
語音信號處理技術的應用包括工業(yè)、軍事、交通、醫(yī)學、民用等多種領域,市場上已有大量的語音相關產(chǎn)品,語音信號方向的科研及應用擁有極為廣闊的市場需求及應用場景。
語音信號壓縮面臨的問題
傳統(tǒng)的信號離散化基本依據(jù)為奈奎斯特(Nyquist)采樣定理,指出當采樣頻率 f 大于信號最高頻率的 2 倍時,采樣后的數(shù)字信號完整地保留了原信號中的信息,而在實際應用中往往需要 5~10 倍才能達到理想的效果。這給信息處理帶來了巨大壓力:其一,需要提高采樣頻率來完成超寬帶信號的信息采集,硬件要求高、設備昂貴、難于實現(xiàn);其二,采樣信息龐大,需要的更多的存儲介質(zhì)。
在隨著移動互聯(lián)網(wǎng)等的快速發(fā)展,語音業(yè)務也大幅增加,用傳統(tǒng)奈奎斯特采樣將會獲得龐大的采樣數(shù)據(jù),這給信號的傳輸和存儲帶來了巨大壓力。而此時,如何有效降低傳輸和存儲所需的數(shù)據(jù)量成為了緩解硬件設備的壓力,降低時延,提高信息傳輸?shù)恼w效率的關鍵問題。
關鍵技術
MIT提出的**稀疏快速傅里葉變換(SFFT)**技術將語音信號內(nèi)的冗余部分找到,并且在保持可接受失真的情況下盡可能多的將冗余部分刪除,使用較少的比特數(shù)表示原始信號。最后,利用這些較少的比特數(shù),通過反變換算法將語音信號以高概率重構出來。
簡而言之,利用信號頻域具有稀疏性的特點,抽取有用特征點,去除無用信號, 減少信號變換過程中的運算時間和存儲單元,達到壓縮數(shù)據(jù)的效果。
理論架構
SFFT 算法大致可以分為三個步驟:
1. “分筐”
首先將長度為 N 的信號頻率系數(shù)按規(guī)律 H 投入 B 個“筐”中,即分筐:
很明顯,在分筐的過程中數(shù)據(jù)量下降了。
2. FFT降采樣
對分筐后的信號進行降采樣 FFT。
3. 重構信號
最后依據(jù)分筐時的各種參數(shù)設計出重構算法,以高概率重構出大頻率系數(shù)的位置和幅值,得到重構信號的頻譜。
根據(jù)上面的分析可以得到如下 SFFT 的理論框架框圖:
總結(jié)
- 所謂分筐即抽取有用特征點,去除無用信號。
- 降采樣,即是采樣點數(shù)減少的FFT。
- 重構,即重構出大頻率系數(shù)的位置和幅值,得到重構信號的頻譜,即還原出音頻信號。
- 我們發(fā)現(xiàn)分筐與降采樣的過程抽取出了有用信號,去除了無用信號,從而大幅度壓縮了數(shù)據(jù)量,從而實現(xiàn)了緩解硬件設備的壓力,降低時延,提高信息傳輸?shù)恼w效率的目的。
算法評估
1、 分筐效果
頻域效果分析:
時域效果分析:
可以看出頻域與時域信號明顯密集化。
2、 重構信號與原信號對比
可以看出信號高度相似,差異很小。
綜上,采用高效的 SFFT 算法對其語音信號進行壓縮處理,在接收端通過高概率重構得到原始信號的近似信號。在語音信號傳輸前通過有效的壓縮方法剪去信號內(nèi)部的冗余部分,利用較少的數(shù)據(jù)量便可以完成信號的高效傳輸。
其他應用場景
醫(yī)學成像大多數(shù)的醫(yī)學圖像具有稀疏特性,將 SFFT 運用在 2D 相關振動光譜技術成像中, 降低了掃描時間、減少了截斷偽影。
頻譜感知由于對 GHz 帶寬的信號檢測會帶來超高的采樣頻率并獲得海量采樣數(shù)據(jù),給硬件設備提出了巨大的挑戰(zhàn)。采用混疊同余類似方法,無需全帶采樣實現(xiàn)信號的頻譜計算,高效減少檢測時間和降低能耗。
GPS 導航在衛(wèi)星傳輸過程中通常使用偽隨機前導碼來實現(xiàn)同步,存在較大的時延。基于前導碼良好的自相關性,使用 SFFT 技術加快了 GPS 的同步處理能力。
語音信號處理,埃及-日本科學技術大學的研究人員在語音信號處理中采用了基于 SFFT 算法的處理方法。
在國內(nèi),SFFT 算法還處在研究的起步階段,在水聲快速解調(diào)算法、寬帶頻譜感知、直接序列擴頻信號的捕獲、計算外輻射源雷達互模糊函數(shù)等做了一定的研究。綜上不難發(fā)現(xiàn),該算法擁有廣闊的應用前景。