【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于FSRCNN的TPU平台超分辨率模型部署方案

news2024/11/25 18:58:10

2023 CCF 大数据与计算智能大赛

基于TPU平台实现超分辨率重建模型部署

基于FSRCNN的TPU平台超分辨率模型部署方案

WELL

刘渝

人工智能 研一

西安交通大学

中国-西安

1461003622@qq.com

史政立

网络空间安全 研一

西安交通大学

中国-西安

1170774291@qq.com

崔琳、张长昊、郭金伟

软件工程等 研一

北京大学软微学院

中国-北京

g1335129739@163.com

团队简介

刘渝:西安交通大学本硕,目前研一,研究兴趣是机器人多模态感知

史政立:西安交通大学本硕,网络空间安全专业。曾获得首届人工智能安全大赛优秀奖

崔琳:本科毕业于西安交通大学,目前北京大学软件与微电子学院研一在读,主要进行多模态和dml方向的研究以及学习

张长昊:研究生就读于北大软微软件工程专业,研究兴趣是时序数据预测

郭金伟:本科毕业于辽宁工程技术大学,在校期间获得数学竞赛国家一等奖,辽宁省acm竞赛银牌,硕士就读于北京大学软件与微电子学院,录取方向为人工智能

摘要

视觉效果逼真的Stable Diffusion在生成高分辨率图像时效率较低,在TPU平台上提高Stable Diffusion模型生成高分辨率图像的效率可以依靠超分辨率模型作为上采样器。

赛题的目标是为在边缘计算设备上提高高分辨率图像生成效率提供有效的技术方案,降低资源和内存需求,同时保证图像质量。

针对本赛题,我们经过对比分析采用了FSRCNN作为超分辨率模型,并设计了集中式超分辨率(Centralized Super Resolution)的方法与插值组合到一起用于提高图像分辨率。此外,我们将前后处理集成到模型中,利用TPU的算力加速前后处理的速度,以减少处理时间。

实验结果表明,我们的方法在牺牲一部分图像质量评估指标NIQE的情况下,显著减少了处理时间,在赛题给定的评价指标上具有较高的得分。我们还讨论了性能改进的可能性,包括考虑使用Bmcv硬件加速部分操作。

关键词

图像超分辨率,TPU模型部署

1 赛题数据分析

赛题的任务是针对给定的数据在TPU上进行超分辨率处理,以期实现推理速度与图像质量之间的最佳平衡。

我们首先从大小和内容两个方面分析了数据的基本构成,从尺寸上说:最大尺寸:2039*2039,最小尺寸:183*510。

根据最大尺寸和最小尺寸对图像分组,组1:长宽均小于500,组2:去除组1后长宽均小于1000,组3:组2中长或宽为510,组4:去除组1、2后长宽均小于1500,组5:去除组1、2、4后的数量。根据分组对数据进行统计,得到下表:

组别12345
数量14944009213

可以看出小尺寸图像占比较大,大尺寸图像占比较少,同时长或宽为510的图像占比很大。

同时我们采样查看了数据图像的内容,图像确实包含各个场景,既包含外景也包含人像,还有虚拟二次元人物,内容比较丰富。我们认为赛题使用的是网络搜集的图像可以避免直接使用Diffusion生成的图像与实际情况可能的偏差,从而避免可能对NIQE这一自然评价指标有所影响。

2 方案介绍

本节将介绍我们采用的方案的具体内容, 我们针对比赛任务主要进行了三方面设计:超分辨率模型选取、集中式超分辨率处理(CSR)设计和前后处理集成。

2.1 超分模型选取

在经过多次比较实验之后,我们最终选用FSRCNN[1]作为超分模型使用。以下说明其设计结构及主要思想:

1、特征提取层:使用少量的卷积层来提取图像特征。我们使用的卷积核。

2、收缩层:减少特征维度,以降低后续处理的计算复杂度。我们使用的卷积核对特征提取层的高维数据降维。

3、映射层:一系列的卷积层,用于学习输入到输出(低分辨率到高分辨率)的映射关系。我们使用 的卷积核进行非线性映射。

4、扩张层:增加特征维度,准备进行分辨率提升。我们采用 的小卷积核恢复图像至收缩前的维度。

5、放大层:对图像进行分辨率提升。我们采用的卷积核放大图像尺寸。

总结结构如下图所示:
在这里插入图片描述

图1:FSRCNN结构

2.2 超分实施策略

官方代码通过将原图分解成多个小块进行超分辨率处理,然后使用权重融合来消融边界,这是比较优雅的处理。但是根据我们对评价公式的分析,运算速度的提高即运算时间的减少带来的收益高于图像质量带来的收益。

我们了解JPEG压缩图像是通过丢弃即使丢失也不会显著影响图像视觉质量的信息,从而在保持相对较高视觉质量的同时,能够以更小的文件大小存储和传输。受此启发,对于增大图像分辨率的任务,直接通过插值算法放大的质量通常比使用超分辨率模型放大的效果更差,因此我们可以仅使用超分辨率模型放大图像中对视觉效果影响更大的一部分,从而在时间和效果之间达到更好的平衡。

由于NIQE通过分析图像的统计特性,评估其视觉质量,从而更接近于人眼对图像的感知评价;另一方面,测试使用的图像种类也非常丰富。因此我们只能寻找一个普适的注意力集中的区域。

在计算机视觉和图像处理领域,有一些研究关注人眼视觉系统在观察图像时对中心区域的更高关注度[2]。这种现象通常被称为"中心偏向"(center bias)。受此启发,我们决定采用集中式超分辨率处理Centralized Super Resolution (CSR) 的策略。我们针对更高关注度的中心区域采用模型处理,而其他较低关注度的区域采用插值处理,这一方案首先符合人眼认知,而下一节我们将重点介绍其统计原理。

2.3 统计特性分析

为了进一步说明提出的CSR框架的有效性,我们对CSR、ESR(Edge Super Resolution)和GSR(Global Super Resolution)统计特性分析,深入探究不同超分辨率策略对图像的影响,并为它们的性能进行客观评估(NIQE)提供有力依据。

频率统计差异(幅度谱): 如图2所示,相较于ESR, CSR和GSR的的幅度谱变化更加自然,趋于一致,ESR在高频阶段能量增加剧烈。
在这里插入图片描述

图2:频谱特性曲线

亮度统计差异: GSR亮度特性与CSR和ESR均不同。GSR图像缺乏亮度饱和区域,并且整个直方图分布较为不均匀。ESR和CSR图像则出现饱和的像素值,相对于ESR,CSR亮度分布更加均匀一点。
在这里插入图片描述

图3:亮度直方图

局部亮度、对比度以及频率的t检验差异: t检验(t-test)旨在利用两组样本数据判断其均值是否存在显著差异。在这里我们利用t检验的p值进行比较。p值越小,代表两组数据存在显著性差异。我们比较GSR与CSR和GSR与ESR的t检验p值,相较后者,GSR与CSR的p值较大,这也就意味着,从统计平均的意义而言,GSR与CSR之间的统计特性更加接近。从像素域到频域,GSR和CSR共享统计特征。

P-value亮度对比度频率
GSR+CSR0.4870.5810.00100
GSR+ESR0.4850.5580.00003

三种统计特性的分析旨在证明CSR这种启发式的超分策略与一般的全局超分策略GSR之间存在更强的统计一致性。而NIQE指标正是建立在这种统计特性基础之上,因此CSR相较于其他超分策略,其NIQE值会更接近GSR。

2.3 前后处理集成

一方面TPU的算力比较强大,另一方面我们采用了中央超分的设计,因此我们观察到在处理图像时,TPU推理时间相对较短,而前后处理时间则占据了整体处理时间的较大部分。

通过查阅手册我们了解到,TPU配套软件提供的bmcv可以通过TPU的加速来提高前后处理的速度,但是我们认为这样仍然不如直接把计算以算子形式直接放到TPU上运行的速度快。

考虑到本任务的前后处理相对简单,使用的均为TPU软件支持的算子,同时前后处理方式固定,没有分支等结构,我们希望能够把数据的前后处理都集成到模型中,直接使用TPU进行处理。

具体而言我们集成的包括如下操作:输入图像0-255到0-1的转换、BGR到yCbCr和yCbCr到BGR的通道转换、输入TPU图像的插值放大,其中输入TPU的图像也要插值放大的原因是超分辨率模型仅对y通道进行处理,其余通道需要插值获得。

2.4 流程总结

最终总结流程图如下:
在这里插入图片描述

图4:方案流程图

3 效果对比说明

3.1 模型对比

我们采用官方提供的推理流程代码进行实验,仅对输入输出的不同进行少量处理,测试了ESRGAN、SRCNN和FSRCNN在官方代码下的运行效果,如下表所示:

项目ESRGANSRCNNFSRCNN
时间/s5.18332.37281.8364
NIQE4.40125.88644.7701

FSRCNN以少量的NIQE的损失,大大减少了处理时间,显著提高了运行效率。

3.2 超分策略对比

修改代码逻辑为CSR的形式,通道域转换等前后处理操作在CPU上进行,模型推理使用TPU进行,结果如下表所示:

项目GSRCSR
时间/s1.83640.5896
NIQE4.77015.9271

采用CSR处理之后模型以一定的NIQE损失换来了巨大的推理时间改善;我们的结果证实了中央超分不仅在视觉效果上符合人类的观察习惯,而且在客观的图像质量评估标准上也显示出优越性。

3.3 前后处理集成对比

未集成表示前后处理均通过Opencv进行,集成表示将所有可以转移到TPU处理的步骤都通过TPU支持的算子进行,结果如下表所示:

项目未集成集成
时间/s0.51870.0141
NIQE6.04816.3400

TPU的加速显著减少了前后处理的时间,使结果又有一次比较大的提升。

4 性能改进讨论

4.1 Bmcv加速

虽然我们把大部分前后处理操作转移到TPU进行,但是仍有一部分无法转移,这部分操作可以使用官方库Bmcv通过硬件加速。

我们详细阅读文档使用了Bmcv对代码进行了改写,但是23.5.1版本的Bmcv不支持cubic插值,这对我们方案的效果影响比较大,因此最终放弃了Bmcv加速的方案。

致谢

感谢史政立和刘渝同学的共同辛苦努力,感谢崔琳、张长昊、郭金伟同学的共同积极参与。

参考

[1] Dong C, Loy C C, Tang X. Accelerating the super-resolution convolutional neural network[C]//Computer Vision–ECCV 2016: 14th European Conference, Amsterdam, The Netherlands, October 11-14, 2016, Proceedings, Part II 14. Springer International Publishing, 2016: 391-407.

[2] Tseng P H, Carmi R, Cameron I G M, et al. Quantifying center bias of observers in free viewing of dynamic natural scenes[J]. Journal of vision, 2009, 9(7): 4-4.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue项目hdr格式文件放在assets下rgbeloader.load获取不到问题解决

如下图 我再App.vue组件中这样写 艾特符号定位 告诉系统 要src下的assets下的xhdr下的xidis.hdr 但是运行项目 他会告诉你找不到这个资源 我们改一下 我们组件时 App.vue 与assets同在 src目录下 用 ./去找 这样也是找不到的 我们需要将它放在静态资源包public下 public路…

Vite+Vue3学习笔记(2)——语法、渲染、事件、数据传递、生命周期、第三方库、前端部署

官网链接:https://cn.vuejs.org/ 如果出现普通用户无法新建项目,必须要管理员身份新建,那么可以在nodejs的安装路径设置安全选项,提高普通用户的权限。 具体方法参考: https://blog.csdn.net/weixin_43174650/article/…

毫米波雷达:从 3D 走向 4D

1 毫米波雷达已广泛应用于汽车 ADAS 系统 汽车智能驾驶需要感知层、决策层、执行层三大核心系统的高效配合,其中感知层通过传感器探知周围的环境。汽车智能驾驶感知层将真实世界的视觉、物理、事件等信息转变成数字信号,为车辆了解周边环境、制定驾驶操…

2023 年有什么流行的开源项目?

背景介绍 作为一个资深开源参与者,我盘点下2023年有意思的开源项目,从GitHub热榜角度盘点下。 作为工程师我对技术理解顺势而为,当风口袭来拥抱研究使用,理解其中精髓为风口添砖加瓦。 2023年很特殊,AI生成开始火热…

挑战Python100题(7)

100+ Python challenging programming exercises 7 Question 61 Print a unicode string "hello world". Hints: Use ustrings format to define unicode string. 打印一个unicode字符串“helloworld”。 提示:使用u“字符串”格式定义unicode字符串。 Solution…

【全网最细】爆肝3天,2023年年度音乐+图片+热词终于出来了,来看看你知道几个?

目录 前言 2023年度音乐 1.《阳光开朗大男孩》 2.《早安隆回》 3.《一路生花》 4.《爱如火》 5.《向云端》 6.《孤勇者》 7.《起风了》 8.《只因你太美》 2023年度图片 1.R星 2.小飞棍来喽 3.一键三连 4.只因你太美 5.原神,启动! 2023年…

毅速:3D打印技术传统模具行业影响深远

随着3D打印技术的不断发展和完善,一系列的优势使其在模具制造领域的应用越来越广泛,这一技术在模具行业的应用将为整个行业带来变革。 首先,3D打印技术将大幅提高模具制造的精度和效率。传统的模具制造过程中,由于加工设备的限制和…

SOAP请求发送(基于Hutool)

拿到SOAP请求的时候&#xff0c;先使用SOAPUI工具解析WSDL文件&#xff0c;得到请求方法列表&#xff0c;新建一个请求&#xff0c;SOAPUI查看协议版本和Action如下&#xff1a; 如下为解析出的XML入参示例。 <soapenv:Envelope xmlns:soapenv"http://schemas.xmlsoap…

ffmpeg 解码文件时的时间戳问题

实时流和普通文件 1 实时流 实时流编码时&#xff0c;我们一般不进行b帧编码&#xff0c;但是文件存储时为了减小大小&#xff0c;会增加b帧&#xff0c;实时流只带了I&#xff0c;P帧&#xff0c;那就会好很多 2 普通文件 很多文件带了b帧&#xff0c;所以要使用解码时间去同…

软件测试/测试开发丨Selenium环境安装配置

一、selenium 环境配置 1、下载浏览器 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 chrome 下载: www.google.cn/chrome/ 2、chromedriver 环境配置 chromedriver 是chromedriver提…

搜索算法和推荐算法、广告算法的区别

广告和推荐算法的技术框架比较相似&#xff0c;在线计算时都分为召回&#xff08;candidates generating&#xff09;和排序&#xff08;candidates ranking&#xff09;两个阶段&#xff08;这似乎是计算资源有限条件下&#xff0c;所有检索问题的通用架构&#xff09;。 在某…

从a类到b类理解原型链

一.一个Student类 class Student {constructor(name, age) {this.name name;this.age age;}learn() {console.log("学习");}}let a1new Student(王德发,20)console.log(a1); 打印出来的结果: 二.extends继承 // 老师类class Teacher {constructor(name, age) {thi…

什么是uniapp?用uniapp开发好不好用?

随着移动应用市场的持续发展&#xff0c;开发者们面临着不断增长的需求和多样化的平台选择。在这个背景下&#xff0c;UniApp 应运而生&#xff0c;成为一种跨平台开发框架&#xff0c;为开发者提供了一种高效、简便的方式来开发移动应用程序。利用 UniApp 开发应用程序可以节省…

飞企互联-FE企业运营管理平台 登录绕过漏洞复现

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外&#xff0c;支持企业B2B、C2B与O2O等核心需求&#xff0c;为不同行业客户的互联网转型提供支持。 0x02 漏洞概…

Android画布Canvas drawPath绘制跟随手指移动的圆,Kotlin

Android画布Canvas drawPath绘制跟随手指移动的圆&#xff0c;Kotlin import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Path import android.os.Bundle import android.…

快速实现图片重命名(统一命名或按数字顺序命名)

快速实现图片重命名&#xff08;统一命名或按数字顺序命名&#xff09; 有时候跑数据集需要图像的命名有规律&#xff0c;但储存时的命名可能是没有规律的。这时候手动一个个右键重命名&#xff0c;再进行修改过于耗时&#xff0c;这里给出简便的统一重命名方法。 按数字排序…

Linux驱动开发学习笔记6《蜂鸣器实验》

目录 一、蜂鸣器驱动原理 二、硬件原理分析 三、实验程序编写 1、 修改设备树文件 &#xff08;1&#xff09;添加pinctrl节点 &#xff08;2&#xff09;添加BEEP设备节点 &#xff08;3&#xff09;检查PIN 是否被其他外设使用 2、蜂鸣器驱动程序编写 3、编写测试AP…

LVM与磁盘配额

文章目录 LVM与磁盘配额一、LVM概述1、LVM概述2、LVM机制的基本概念2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09;2.2 VG&#xff08;Logical Volume&#xff0c;逻辑卷&#xff09;2.3 LV&#xff08;Logical Volume&#xff0c;逻辑卷&#xff09; 二、L…

PayPal账户被封是因为什么?如何解决?

Paypal作为跨境出海玩家最常用的付款工具之一&#xff0c;同时也是最容易出现冻结封号现象。保障PP账号安全非常重要&#xff0c;只有支付渠道安全&#xff0c;才不会“白费力气”&#xff0c;那么最重要的就是要了解它的封号原因以做好规避。 一、Paypal账号被封原因 1、账号…

Anolis安装Jdk保姆级教学

前言 欢迎来到本博客&#xff0c;我们将带领你完成在Anolis操作系统上安装Java Development Kit&#xff08;JDK&#xff09;的详细过程。Anolis操作系统是一款基于Linux的轻量级操作系统&#xff0c;专为容器和云原生应用而设计。在Anolis上安装JDK将为你提供一个稳定、高效的…