OpenHarmony啃论文俱乐部—细数生活中的压缩点滴

系统 OpenHarmony
我们正处于计算机进化的第三代,称为普适计算时代。在这个时代,计算机已经开始消失在周围的物体中,人们甚至可能不知道他们在日常生活活动中与计算机进行交互。

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

【本期看点】

主题:《老子到此一游系列》之 老子游玩了一条河。

  • 深度学习助力数据压缩。
  • 贯穿生活的无线传感器网络。
  • SFFT的前世今生。

【技术DNA】

【智慧场景】

无线传感器网络(WSN)

  • 说到无线传感器网络,大家或许会先自然将其结合自己所熟悉的三个概念进行拆分:无线——传感器——网络。无线与网络这两个概念大家已经十分熟悉了,把这两个概念进行组合:无线 + 网络 = 无线网络,就是我们“赖以生存”的 WIFI。
  • 再介绍传感器,传感器就是一种先感再传的检测装置(如楼道里的声控灯,银行的感应门等)。“感”,是能感受到被测量的信息;“传”,是能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出;“器”,以满足信息的传输、处理、存储、显示、记录和控制等要求的检测装置。

背景

目前,我们正处于计算机进化的第三代,称为普适计算时代。在这个时代,计算机已经开始消失在周围的物体中,人们甚至可能不知道他们在日常生活活动中与计算机进行交互。支持广泛存在计算的关键技术之一是无线传感器网络 (WSN)。

如何构建

无线传感器网络 = 传感器节点 + 无线网络小微控制器板传感器

传感器节点:三个子单元。

  1. 传感单元——获取目标事件/感兴趣数据。
  2. 处理单元——管理采集数据。
  3. 通信单元——无线电收发器——节点间交换信息。

传感器节点经过组织形成无线传感器网络。简单来讲,就是由诸多传感器节点组合形成网络,再利用无线通信技术进行信息综合处理的一项技术。

建立WNS需解决的三大问题

1、 信息管理体系结构,多传感器采信时的信息冲突与交互问题

多传感器系统的运行过程中,必须不断融合“有用数据”和“不良数据”。然而,好的和坏的数据的简单组合总是会产生不准确的结果,因为坏数据“污染”了好数据。因此,需要不断地使用所有可用的信息,不论是外衍或者是系统内生的,并据此在理论框架内对其建模,以此来在运行时中不断评估和修正来自不同传感器的观察数据,并基于其相关性加以利用。

2、 敏感数据加密与密钥管理

传感器节点随机分布,易遭受恶意gong击。

3、 无线传感网络中功耗与功耗管理

传感网络中传感节点由电池供电,数量庞大顺序更换充电实践中不可行。

最关键问题:传感器节点上的无线电收发器是功耗的主要因素。

节能方案

占空比方案——协调定义网络中节点之间的唤醒和睡眠计划。

通俗点讲:节点996,定时开关机,到点下班回家,关机睡觉

网络内方案——聚合技术 + 数据压缩——减少传输数据量。

*聚合技术程序。

  • 不同传感器节点——提取数据集(特征,统计信息)——路由(路由器从一个接口上收到数据包)方式组合——转发汇聚节点。
  • 基本组件:路由算法 + 数据聚合 + 数据压缩/数据表示。
  • 路由算法:聚合函数—>提取最值—>汇总数据平均值—>减少密集传感器网络中影响功耗的通信数据量。
  • 弊端:聚合程度较高时。提取的数据中丢失大部分原始结构,只提供粗略的统计数据,没有局部变化。
  • 解决方案:数据压缩方案——不需要密集网络和路由算法——压缩算法是在每个本地节点上独立于其他节点执行的——分布式数据压缩方法 + 本地数据压缩方法。

*数据压缩。

  • 可满足需求:减少计算成本和节能。
  • 原因:由于无线传感器节点上的通信单元是主要的电力消耗单元, 因此可以使用一种数据压缩方案来减少网络中交换的信息量,从而节省电力。比率越高数据压缩越好,省电百分比越高。然而,当应用数据压缩算法时,传感器节点的处理单元需要更大的功率来运行算法。

*商用传感器的节点约束。

商用无线传感器节点的实际应用中,这些节点通常具有体积小、通过一组传感器、低数据率无线电收发器和小电池来感知环境现象的能力。

*硬件约束。

  • 处理约束:著名的无线传感器节点平台,配备了 Atmel Atme -ga128L 和 Texas Instruments MSP430 微控制器, 指令内存分别只有 128 和 48 KB。他们的处理时钟从 4 到 8 兆赫兹不等。
  • 解决途径:在这些约束条件下,有必要为无线传感器网络的应用设计一种低复杂度、小编码的压缩算法。

传感器精度误差。

  • 原因:硬件固有噪声——制造时——规定工作范围,精度。
  • 问题:用户只明确测量值在误差范围内,而不知道误差的大小和相关的误差概率。
  • 结果:无损数据压缩算法,确保信息在压缩过程中的正确性和解压缩过程,对于商用节点——低效。有损压缩算法——导致信息丢失——在只允许丢失噪声的条件下更适合——去噪技术来实现。
  • 结论:在某些应用中,如果它们使用的是误差幅度较大的传感器,则有必要避免实现无损数据压缩,而采用带去噪技术的有损压缩则更为合理。

应用实例

军事领域的敌人跟踪

在军事领域,由于WSN具有密集型、随机分布的特点,使其非常适合应用于恶劣的战场环境。利用WSN能够实现监测敌军区域内的兵力和装备、实时监视战场状况、定位目标、监测核gong击或者生物化学gong击等。

智能交通中保障安全畅通

在智能交通领域,由于WSN具有密集型、随机分布的特点,使其非常适合应用于灵活多变的环境。利用WSN能够实现监测区域内的车辆流量、路灯、交通设施等实时监测。

  • 家庭自动化应用中的人类跟踪。
  • 医疗保健应用中的病人监测。

基于深度学习的三维点云几何压缩

背景

过去几年间,人工智能得到了迅猛式发展,深度学习作为人工智能的主流技术,已经成功应用于解决各种二维视觉问题。三维层面上,由于点云表示在计算机视觉、自动驾驶、增强现实(AR)、智慧城市、虚拟现实(VR)等领域有着广泛的应用,因此,深度学习取代如PCL、Draco等传统方式处理点云数据,成为当今或未来的必然趋势。点云数据在自动导航、沉浸传播等现实生活领域发挥着重要作用,为了应对数据传输效率和数据存储的严格要求,需要采用更高压缩比的相关无损压缩方案,相关学者提出了在当时2019年可能是第一个基于深度学习的点云压缩算法。2020年起,逐渐火热起来,而当下,相关技术已较成熟。

何为“点云”

点云就是某个三维坐标系下一些点(X, Y, Z, Nx, Ny, Nz)的集合,但是这些点并不是普通的点,它包含了丰富的信息,每一个点都会有属于自己的X、Y、Z坐标及相对应的法向量,因为大量的离散点聚集在一起,放远了看就像一片片云,所以便称之为了点云。简单来看,我们能够掌握事物的轮廓。通过点的颜色,能够知道点的稠密,从而得到其他属性。

那么这些3D点是如何获取的? 它们主要是由激光雷达等传感器扫描得到,目的是为了更好地表达位置信息。

画面中这些看起来像热成像的东西就是点云数据。

点云生成

点云生成有算法和软件两种方式,很多是基于深度学习算法将无人机拍摄的图像做成3D点云。

点云补全

整体来说类似于GAN和Unet编解码网络的感觉,其中,GAN全称生成对抗网络,可用于目前比较火热的换脸等媒体场景,OMGD是相关的前沿压缩算法。

体素

体素是体积元素(Volume Pixel)的简称,是数字数据于三维空间分割上的最小单位,类似于二维平面的像素。就像著名的沙盒游戏 MineCraft 一样,世界中的很多建筑等都是由 1x1 的小方块组成的。

同像素一样,体素本身并不含有空间中位置的数据(即它们的坐标),然而却可以从它们相对于其他体素的位置来推敲。

BPP

BPP(bit per pixel) 是评判压缩算法好坏的重要指标之一,表示每个像素占据的比特位数。从压缩的目的来看,BPP越小越好。

表示学习

为了提高机器学习的准确率,我们就需要将输入的信息转换成有效的特征,这种行为被称为表示(Representation)。表示学习(Representation Learning)就是一种可以自动地学习出有效特征的算法,并在最终提高了机器学习的性能的一种学习。使用深度学习进行三维点云几何压缩要做的事情也就两项:点云表示学习以及点云数据压缩。点云表示学习在这里起到了一个预处理的作用,把数据预处理后能够更方便地压缩。

点云几何压缩

点云是一大堆点,存储这些点云数据会大量消耗内存,而且不利于传输。举个不是特别恰当的例子,假如未来有一天你正开着无人驾驶车,开的过程中它突然无人驾驶系统突然卡了,那就一失两命了。有人可能会说我们只要不断的往车里堆加内存不就行了? 但是车的容量是有限的,堆加这些设备就意味着要增大车的体积或者降低其它部件的体积,而且汽车厂商更要考虑成本。

所以,为了大家都从中获益,点云压缩显得尤为重要

点云压缩一直是计算机图形学的一个重要研究方向,包括三种类型:几何压缩、属性压缩和动态运动补偿压缩,这里研究几何压缩。一般而言,体素模型的体、面、边、点的形状分布既不规则、也不均衡,其它压缩技术难以适应它的特点以取得高效的压缩结果。而几何压缩用尽可能少的比特来反应连接信息和几何信息,并将这些比特顺序排列形成比特数据流,然后用数据压缩方法压缩这个比特数据流。其传统的算法主要是PCL和Draco,新兴的也就是本文关注的,是基于深度学习的稀疏点云几何压缩算法,它比现有的任何压缩方法都能达到更高的压缩比,且压缩损耗可接受。它还提供了三种不同分辨率的输出,适合不同的场合。但这里,还是将对PCL和Draco做一些简单介绍:

PCL

PCL全称Point cloud library(点云库),于2011年推出,属于机器视觉类别,与获取2D信息并处理的OpenCV类似,它是一个独立的、大规模的、开放的跨平台 2D/3D 图像和点云处理项目,根据BSD许可条款发布,因此可免费用于商业和研究用途。库中包含很多先进的算法,PCL与机器人操作系统ROS完全集成,并已在机器人领域的各种项目中使用。从0.6版本开始,PCL就已经被移植进Windows,MacOS和Linux,目前的最新版本是1.12.1,Android中也在使用,因此,PCL的应用容易移植和多方发布。另外,PCL的压缩比可以根据实际需要进行调整。

上图是对点云数据集进行PCL可视化操作的结果。

Draco

Draco是一个Google的开源库,于2017年推出,用于压/解压缩3D几何网格和点云,旨在改进3D图形的存储和传输。Draco专为压缩效率和速度而设计,该代码支持压缩点、连接信息、纹理坐标、颜色信息、法线以及与几何相关的任何其他通用属性。使用Draco,3D图形的应用程序可以显著缩小,而不会影响视觉保真度。对用户而言,这意味着应用程序可以更快地下载,浏览器中的 3D图形可以更快地加载,VR和AR场景因此可以用一小部分带宽传输并快速渲染。

Draco算法同时支持有损和无损压缩,它提供了10种可选的压缩级别,还可通过减少量化位以支持进一步的有损压缩。官网Draco 3D Graphics Compression的Demo子页面中可以在线测试3D渲染性能。

实际上,Draco最初便是由Chrome团队设计。

Draco开源刚不久,便有网友对其进行了测试复现:

可以看到,编码之后,点云文件大小从原本的3mb显著减小到了110kb,但此时的文件是不能够被正常可视化的,只能用来传输存储,所以我们需要对其再进行解码。解码之后为431kb,其实也并没有再大多少,但是我们注意下方的编码前后点云图像质量比较,发现二者从肉眼上几乎分辨不出差别,而点云数目也没有发生变化,都是35947 data points。

可见,Draco的编码效率十分强悍。

基于深度学习的压缩

学者设计了一种新的基于深度学习的稀疏点云几何压缩方案,能够达到比现有的任何压缩算法都更高的压缩比,且压缩损耗可接受。另外,它提供了三种不同分辨率的输出,适应于不同场合;基于矩阵运算,支持GPU对多个模型并行压缩,大大提高处理效率。

算法测试

ShapeNet数据集是一个稀疏的点云数据集,不常用于点云压缩任务。但是,稀疏点云可以用来测试压缩算法,原因是它们比密集点云更难压缩,因此更能体现算法效率。稀疏点云用更少的点代表形状或表面,比密集点云包含更少的冗余信息。

为了比较稀疏点云压缩和密集点云压缩在简化Stanford bunny(斯坦福兔子)点云时采样的2048和35947个点的差异,使用PCL和Draco对两个模型压缩,得到下图结果。bpp指每点压缩数据的比特数,损耗由RMS计算以减小计算量:

结果表明,稀疏点云压缩往往比密集点云压缩更难达到高压缩比及低重构损失。

为了清晰显示算法训练过程,学者选择了几个模型,并在不同迭代次数下重构点云,模型细节逐渐出现:

编码的最后一层称为瓶颈层,瓶颈层的维数和码字中每个浮点数所占位数是影响压缩结果的两个关键因素。

将基于深度学习使用"PointNet++、TensorFlow"等技术的压缩算法与PCL和Draco在最终条件下进行比较,Ours-16和Ours-32分别表示用16位和32位表示单个值的方式,讨论压缩比、重构损失、计算量等一系列参数。结果表明,基于深度学习的新算法有着比Draco高10倍、甚至比PCL高110倍的压缩比,同时保证了较小的重构损失。

但是,有优点必有缺点。PCL和Draco更快、更节省内存。原因是PCL和Draco都是基于C的,比基于Python的新算法要更高效,解决办法可以是用C程序简化网络,替换TensorFlow中的更多操作,从而提高效率、减小内存负载。

总结

本文提出的基于深度学习的三维点云压缩新方法,是第一个基于深度学习的点云几何压缩算法。由于其并行处理能力和较高的压缩比,在保持可接受的损耗的情况下,显示了巨大的潜力。实验表明,在高压缩比条件下,该算法的性能优于 PCL 和 Draco。该算法的关键是具有分层结构的自动编码器,其性能优于目前的重建质量,特别是在局部细节上。毫无疑问,深度学习是数据压缩未来的发展方向。

基于稀疏快速傅里叶变换(SFFT)的语音压缩算法

SFFT的前世今生

1876 年 Bell 发明创造了电话,用声电-电声转换方式实现了人类有史以来第一次的远距离语音传输,开启了现代语音信号处理的研究。

1928年奈奎斯特(Nyquist)就推导出在理想低通信道的最高码元传输速率的公式。

2012 年由麻省理工学院(Massachusetts Institute of Technology,MIT)Haitham Hassanieh 等四位研究员提出的一种新的信号处理算法,稀疏快速傅里叶变换(Sparse Fast Fourier Transform,SFFT) 。该算法通过利用信号频域的稀疏特性,以与信号长度成亚线性关系的时间复杂度和较高的概率重构出信号的完整频谱,其效率是传统快速傅里叶变换(Fast Fourier Transform,FFT)算法的 10~100 倍。为此,麻省理工学院专门建立了研究 SFFT 的相关网站,并发表了多篇相关论文。

应用场景

语言交流是人类最基本的能力之一,是人类长期进化形成的特有的思维和交流形式。语言是概况总结的规律性的符号系统,是创造和记录人类文明的根本方式。

语音作为语言的声学表现形式,是音与义的结合体,是最方便有效的信息传递和交换形式。语音和语言是人类思维的一种依托,它与所生存的社会、文化密切相关,拥有最大的信息含量及最高的智慧水平。

语音信号的数字化处理已成为数字化时代下通信网络里最重要的一部分,数字语音信号的传输、合成、存储、增强、识别等已经有了比较成熟的技术,语音压缩算法在此基础之上拥有了蓬勃发展的机会。

语音信号处理技术的应用包括工业、军事、交通、医学、民用等多种领域,市场上已有大量的语音相关产品,语音信号方向的科研及应用拥有极为广阔的市场需求及应用场景。

语音信号压缩面临的问题

传统的信号离散化基本依据为奈奎斯特(Nyquist)采样定理,指出当采样频率 f 大于信号最高频率的 2 倍时,采样后的数字信号完整地保留了原信号中的信息,而在实际应用中往往需要 5~10 倍才能达到理想的效果。这给信息处理带来了巨大压力:其一,需要提高采样频率来完成超宽带信号的信息采集,硬件要求高、设备昂贵、难于实现;其二,采样信息庞大,需要的更多的存储介质。

在随着移动互联网等的快速发展,语音业务也大幅增加,用传统奈奎斯特采样将会获得庞大的采样数据,这给信号的传输和存储带来了巨大压力。而此时,如何有效降低传输和存储所需的数据量成为了缓解硬件设备的压力,降低时延,提高信息传输的整体效率的关键问题。

关键技术

MIT提出的**稀疏快速傅里叶变换(SFFT)**技术将语音信号内的冗余部分找到,并且在保持可接受失真的情况下尽可能多的将冗余部分删除,使用较少的比特数表示原始信号。最后,利用这些较少的比特数,通过反变换算法将语音信号以高概率重构出来。

简而言之,利用信号频域具有稀疏性的特点,抽取有用特征点,去除无用信号, 减少信号变换过程中的运算时间和存储单元,达到压缩数据的效果。

理论架构

SFFT 算法大致可以分为三个步骤:

1. “分筐”

首先将长度为 N 的信号频率系数按规律 H 投入 B 个“筐”中,即分筐:

很明显,在分筐的过程中数据量下降了。

2. FFT降采样

对分筐后的信号进行降采样 FFT。

3. 重构信号

最后依据分筐时的各种参数设计出重构算法,以高概率重构出大频率系数的位置和幅值,得到重构信号的频谱。

根据上面的分析可以得到如下 SFFT 的理论框架框图:

总结

  1. 所谓分筐即抽取有用特征点,去除无用信号。
  2. 降采样,即是采样点数减少的FFT。
  3. 重构,即重构出大频率系数的位置和幅值,得到重构信号的频谱,即还原出音频信号。
  4. 我们发现分筐与降采样的过程抽取出了有用信号,去除了无用信号,从而大幅度压缩了数据量,从而实现了缓解硬件设备的压力,降低时延,提高信息传输的整体效率的目的。

算法评估

1、 分筐效果

频域效果分析:

时域效果分析:

可以看出频域与时域信号明显密集化。

2、 重构信号与原信号对比

可以看出信号高度相似,差异很小。

综上,采用高效的 SFFT 算法对其语音信号进行压缩处理,在接收端通过高概率重构得到原始信号的近似信号。在语音信号传输前通过有效的压缩方法剪去信号内部的冗余部分,利用较少的数据量便可以完成信号的高效传输。

其他应用场景

医学成像大多数的医学图像具有稀疏特性,将 SFFT 运用在 2D 相关振动光谱技术成像中, 降低了扫描时间、减少了截断伪影。

频谱感知由于对 GHz 带宽的信号检测会带来超高的采样频率并获得海量采样数据,给硬件设备提出了巨大的挑战。采用混叠同余类似方法,无需全带采样实现信号的频谱计算,高效减少检测时间和降低能耗。

GPS 导航在卫星传输过程中通常使用伪随机前导码来实现同步,存在较大的时延。基于前导码良好的自相关性,使用 SFFT 技术加快了 GPS 的同步处理能力。

语音信号处理,埃及-日本科学技术大学的研究人员在语音信号处理中采用了基于 SFFT 算法的处理方法。

在国内,SFFT 算法还处在研究的起步阶段,在水声快速解调算法、宽带频谱感知、直接序列扩频信号的捕获、计算外辐射源雷达互模糊函数等做了一定的研究。综上不难发现,该算法拥有广阔的应用前景。

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2022-05-12 15:05:32

云计算数据压缩

2022-06-08 16:29:45

无损压缩方案分布式

2022-06-08 11:46:29

字符串鸿蒙

2022-06-15 16:06:29

LZ4 算法硬件加速

2022-09-19 14:25:35

JSON压缩算法

2022-06-15 15:56:22

压缩算法神经网络

2022-08-22 17:36:13

啃论文方法啃论文俱乐部

2022-06-15 15:44:21

无损数据压缩鸿蒙

2022-04-20 20:37:58

鸿蒙操作系统

2022-10-18 16:14:28

2022-05-13 23:03:25

大数据Big Data巨量资料

2022-03-28 15:09:17

无线传感器网络Harmony鸿蒙

2022-05-13 22:44:35

物联网算法鸿蒙

2022-06-27 14:01:31

LZ4 分析数据密集型压缩算法

2022-09-07 15:08:58

操作系统鸿蒙

2022-09-06 15:46:52

speexdsp鸿蒙

2022-09-16 15:01:37

操作系统技术鸿蒙

2022-09-13 16:10:15

鸿蒙操作系统

2022-09-14 15:28:19

操作系统鸿蒙

2022-09-15 15:21:22

操作系统鸿蒙
点赞
收藏

51CTO技术栈公众号