文章介绍
AI是高通一直关注的领域,为此推出了高通AI软件栈(Qualcomm AI Stack),提供了一个集成所有AI框架(如TensorFlow、PyTorch、ONNX、Keras)、开发者库、系统软件和操作系统的整合平台,有不同层面的架构支持,能够助力开发人员一次开发,即可跨不同终端和操作系统进行扩展,赋能生态系统。Qualcomm AI Stack Models是高通开源的一个模型示例Github仓库,演示了使用Qualcomm AI Stack端到端的解决方案,也提供模型精度调优的例子。Qualcomm AI Stack Models的代码可以在这里获得
https://github.com/quic/ai-stack-models/tree/main/
本文主要介绍Qualcomm AI Stack Models仓库使用到的模型,包括模型的转换和调优。
AI 模型:
1. Super-resolution—****图片超分
图片超分是指通过硬件或软件算法将一幅低分辨率的图像恢复生成高分辨率图像,下面是几种可以使用的模型
** a. SESR**
Collapsible Linear Blocks for Super-Efficient Super Resolution (SESR)网络建立了一种新的高效超分辨率技术,它是基于CNNs的线性过参数化,并为SISR创建了一个有效的模型体系结构。
DNN Framework为ONNX,source code链接为https://github.com/quic/aimet-model-zoo/#pytorch-model-zoo
** b. SRGAN**
SRGAN是一个超分辨网络,利用生成对抗网络(GAN)的方法实现图片的超分辨。GAN不仅能做图像生成,还能辅助其他输入信息不足的视觉任务。SRGAN就是把GAN应用在超分辨率(SR)任务上的代表之作。
DNN Framework为PyTorch,source code链接为https://github.com/quic/aimet-model-zoo/
** c. QuickSRNet**
QuickSRNet是一种简单而有效的架构,与现有的单图像超分辨率神经架构相比,它提供了更好的准确性和延迟权衡,主要用于移动平台上实时应用程序的高效超分辨率架构。
DNN Framework为ONNX,source code链接为https://github.com/quic/aimet-model-zoo/
** d. XLSR**
Extreme Lightweight Super Resolution(XLSR)超轻量图片超分,运行AIMET量化。
DNN Framework为ONNX,source code链接为https://github.com/quic/aimet-model-zoo/blob/develop/aimet_zoo_torch/xlsr/XLSR.md
**2. Low-light-enhancement-**图片增强
“图像增强”,是通过算法将原图像附加一些信息或数据,有选择的将图像中感兴趣的部分突出。下面是几种可以使用的模型:
** a. EnlightenGAN**
EnlightenGAN提出了一种高效的无监督生成对抗性网络,可以在没有弱光和正常光图像的情况下进行训练,但事实证明,该网络在各种真实世界的测试图像上都能很好地运用。
DNN Framework为ONNX,source code链接为https://github.com/arsenyinfo/EnlightenGAN-inference
** b. MBLLEN**
MBLLEN通过CNN卷积层将图像丰富的特征提取到不同的层次,使用多个子网进行同时增强,最后将多分支输出结果融合成最终增强图像,达到从多方面提高图像质量的效果。
DNN Framework为ONNX,source code链接为https://github.com/ymmshi/MBLLEN.pytorch.git
** c. RUAS**
RUAS通过注入弱光图像的知识和搜索轻量级的优先架构,为现实场景中的微光图像构建轻量级但有效的增强网络
首先,通过展开Retinex-inspired 模型的优化过程来建立增强网络。
然后,引入了一个基于蒸馏池的先验模块搜索空间。
最后,提出了一种合作的双层搜索策略,以发现所需的光照估计和噪声去除架构。
DNN Framework为ONNX,source code链接为https://github.com/dut-media-lab/RUAS.git
** d. SCI**
自校准光照学习(SCI)是一种全新的低光照图像增强方案,通过构建引入自校准模块的权重共享光照学习过程,摒弃了网络结构的繁杂设计过程,实现了仅使用简单操作进行增强的目的。
DNN Framework为ONNX,source code链接为https://github.com/vis-opt-group/SCI.git
** e. StableLLVE**
StableLLVE是利用自一致性的单图像方法来增强微光视频,并通过在网络上施加一致性来解决时间不一致性问题。首先从单个图像中学习和推断运动场(光流),然后将光流图像扭曲为相邻帧,并对深层模型施加一致性
DNN Framework为ONNX,source code链接为https://github.com/zkawfanx/StableLLVE.git
** f. Zero-DCE**
Zero-DCE是利用神经网络拟合出这样的一条亮度映射曲线,再结合原图就能得到一张亮度增强后的图像,而这个曲线的拟合是可导的,因此可以我们可以利用梯度下降法,使用深度卷积神经网络来学习这个曲线的参数,这个网络可以通过迭代去近似高阶的曲线,从而提高结果的准确性和鲁棒性。
DNN Framework为ONNX,source code链接为https://github.com/Li-Chongyi/Zero-DCE.git
**3. Object-detection-**目标检测
目标检测是通过算法找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,Android应用程序可以设计为使用任何内置/外接的相机来捕捉对象,并使用机器学习模型来获得预测/推断相应对象的位置。
以下是几种可以使用的模型:
** a. SSD-MobileNetV2**
SSD-MobileNet 是以 MobileNet 为基础的目标检测算法,很好的继承了 MobileNet 预测速度快,易于部署的特点,能够很好的在多种设备上完成图像目标检测任务。MobileNet网络中,核心思想就是减少卷积计算以及参数。SSD整个网络采取了one stage的思想,以此提高检测速度。
DNN Framework为ONNX,source code链接为https://github.com/lufficc/SSD.git
** b. YoloX**
YOLO(You Only Look Once)是一种对象检测算法,它使用深度神经网络模型,来实时检测和分类对象。YOLOX是旷视开源的高性能检测器。旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。
DNN Framework为ONNX,source code链接为https://github.com/Megvii-BaseDetection/YOLOX/
** c. DETR**
DETR 是 Facebook 团队于 2020 年提出的基于 Transformer 的端到端目标检测,没有非极大值抑制 NMS 后处理步骤、没有 anchor 等先验知识和约束,整个由网络实现端到端的目标检测实现,大大简化了目标检测的 pipeline。
DNN Framework为ONNX,source code链接为https://github.com/facebookresearch/detr
** d. Yolo NAS**
YOLO(You Only Look Once)是一种对象检测算法,它使用深度神经网络模型,来实时检测和分类对象。“NAS”代表“神经架构搜索”,是一种用于自动化神经网络架构设计过程的技术。NAS 不依赖手动设计和人类直觉,而是采用优化算法来发现最适合给定任务的架构。NAS 的目标是找到一种在准确性、计算复杂性和模型大小之间实现最佳权衡的架构。
DNN Framework为ONNX,source code链接为https://github.com/Deci-AI/super-gradients/
**4. Image-segmentation-**图像分割
图像分割是指将一幅图像划分成多个不重叠的区域或像素集合的过程。其目标是将图像中的每个像素分配到不同的类别或对象中,从而实现对图像的语义理解和区域识别。
图像分割在计算机视觉领域中具有广泛的应用,包括目标检测、图像分析、图像编辑和机器人视觉等。通过对图像进行分割,可以提取出感兴趣的目标区域,进而实现更高级别的图像分析和理解。
以下是几种可以使用的模型:
** a. FFNet**
FFNet是一种简单的编码器-解码器结构,编码器由ResNet骨干网络组成,但没有分类头。FFNet从所有中间残差阶段提取不同空间分辨率的特征,并将它们传递给一个轻量级卷积解码器头Decoder,该Decoder将低分辨率分支的特征上采样并与高分辨率分支的特征进行融合(称之为Up-head),从而输出不同空间分辨率的且具有多尺度上下文信息的特征。
DNN Framework为ONNX,source code链接为https://github.com/quic/aimet-model-zoo/releases/tag/torch_segmentation_ffnet
** b. deeplabv3**
DeepLabv3 是目前广泛使用的语义分割方法,本文将围绕DeepLabv3给出语义分割的一个简单实现。DeepLabv3是一种基于深度卷积神经网络的语义分割模型,由Google Brain团队于2017年提出。DeepLab v3的主要特点是能够有效地利用多尺度上下文信息和低级特征进行语义分割,取得了在多个数据集上的优秀表现。
DNN Framework为ONNX
** c. FCN**
FCN语义分割网络是在图像语义分割文章Fully Convolutional Networks for Semantic Segmentation中提出的全卷积网络,基于深度网络进行图像语义分割,而且是全卷积的网络,可以输入任意图像尺寸。
DNN Framework为ONNX
** d. LRASPP**
LRASPP是一个轻量级语义分割网络,它是在MobileNetV3论文中提出来的,非常适合移动端部署。相比于其他语义分割网络,LR-ASPP在精度上有所牺牲,但在速度上有很大的提升。LRASPP的推理时间在CPU上只需要0.3秒,而且它的网络结构也非常简单。
DNN Framework为ONNX
5. Nlp-nlu –****语言理解(智能问答)
NLP可以追溯到20世纪50年代计算机程序员开始尝试简单的语言输入。NLU在20世纪60年代开始发展,希望让计算机能够理解更复杂的语言输入。NLU被认为是NLP的一个子方向,主要侧重于机器阅读理解:让计算机理解文本的真正含义。
以下是几种可以使用的模型:
** a. BERT**
BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。BERT是一种基于微调的多层双向变换器编码器
DNN Framework为ONNX,source code链接为https://huggingface.co/bert-base-uncased
** b. ALBERT**
ALBERT 是 BERT 的“改进版”,其进步的地方,一言以蔽之,就是 用更少的参数,取得了更好的效果。ALBERT模型也是基于这一点考虑,通过各种手段减少参数量,得到一个占用较小的模型,对实际落地有较大的意义,不过由于其主要还是减少参数量,所以在推断时间上并没有优化
DNN Framework为ONNX,source code链接为https://huggingface.co/docs/transformers/model_doc/albert
** c. DistillBert**
DistillBert是在Bert的基础上用知识蒸馏技术训练出来的小型化bert,通过teacher model的soft target作为total loss的一部分,以诱导student model的训练,实现Bert模型的知识迁移。
DNN Framework为ONNX,source code链接为https://huggingface.co/docs/transformers/model_doc/distilbert
** d. MobileBERT**
MobileBERT 可以看作一个“瘦身”后的BERT-large模型,其使用了瓶颈结构(Bottleneck Structure),并且在自注意力和前馈神经网络的设计上也有一定的改进。MobileBERT能够达到教师模型 BERT-base 99.2% 的性能效果(以GLUE数据集 为测试基准),推理速度快 5.5 倍,参数量降低至23.2%。
DNN Framework为ONNX,source code链接为https://github.com/gemde001/MobileBERT
** e. ELECTRA**
ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)采用了一种“生成器——判别器”结构,其与生成式对抗网络(Generative Adversarial Net,GAN)的结构非常相似。使用替换词检测(Replaced Token Detection,RTD)预训练任务,取代了BERT模型原始的MLM。
DNN Framework为ONNX,source code链接为https://huggingface.co/google/electra-base-discriminator
作者:高通工程师,戴忠忠(Zhongzhong Dai)
版权归原作者 csdnsqst0050 所有, 如有侵权,请联系我们删除。