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

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.mzph.cn/news/584276.shtml

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

相关文章

Vue - 实现文件导出文件保存下载

1 文件导出:使用XLSX插件 需求背景:纯前端导出,如 在前端页面勾选部分表格数据,点击"导出"按钮导出Excel文件。 实现思路: 1.通过XLSX插件的 XLSX.utils.book_new()方法,创建excel工作蒲对象wb…

Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中

目录 默认样式 修改默认字体颜色&#xff1a; 修改鼠标悬浮/选中字体颜色&#xff1a; 去掉长分割线并修改下划线颜色 完整代码 默认样式 注意事项&#xff1a;一定要在 <style scoped>不然修改的样式不会覆盖生效 修改默认字体颜色&#xff1a; ::v-deep .el-tabs__…

[鹏城杯 2022]简单包含

[鹏城杯 2022]简单包含 wp 题目代码如下&#xff1a; <?php highlight_file(__FILE__); include($_POST["flag"]); //flag in /var/www/html/flag.php; 直接 POST 传参&#xff1a; flag/var/www/html/flag.php 会触发 waf 。 尝试用伪协议读取&#xff1a; …

canvas绘制红绿灯路口

无图不欢&#xff0c;先上图 使用方法&#xff08;以vue3为例&#xff09; <template><canvas class"lane" ref"laneCanvas"></canvas> </template><script setup> import { ref, onMounted } from vue import Lane from …

C实现数组奇数在前偶数在后排序

一、运行结果&#xff1b; 二、源码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现调整函数move_odd_even函数&#xff1b; void move_odd_even(int arr[], int sz) {//初始化变量值&#xff1b;int left 0;int right sz - 1;//循环判断和…

CSP CCF 201312-2 ISBN号码 C++满分题解

解题思路&#xff1a; 1.用一个int数组单独存储每个数字&#xff1b;用char数组存储原始标识符串&#xff0c;方便输出 2.计算后得到标识码&#xff0c;判断是否正确 #include<iostream> using namespace std;int main() {int num[15]; //存储每个位置的数char arr[15…

【高性能篇】QPS概念、RT概念

什么是QPS&#xff0c;什么是RT&#xff1f; ✔️典型解析✔️扩展知识仓✔️RT ✔️QPS✔️ QPS和TPS✔️并发用户数✔️最佳线程数 ✔️典型解析 QPS&#xff0c;指的是系统每秒能处理的请求数(Query Per Second)&#xff0c;在Web应用中我们更关注的是Web应用每秒能处理的re…

Radar System Pro - Plug Play Solution

Radar System Pro是一款功能多样且可定制的资源,旨在通过功能齐全且易于使用的雷达系统增强您的Unity项目。无论您是在开发第一人称射击游戏、策略游戏还是太空探索模拟器,我们的雷达系统都将为您提供所需的工具,以创建引人入胜且身临其境的体验。 雷达系统是一个模块化资产…

2023年华为OD机试(python)B卷-符合要求的结对方式

一、题目 题目描述&#xff1a; 用一个数组A代表程序员的工作能力&#xff0c;公司想通过结对编程的方式提高员工的能力&#xff0c;假设结对后的能力为两个员工的能力之和&#xff0c;求一共有多少种结对方式使结对后能力为N。 二、输入输出 输入描述: 5 1 2 2 2 3 4 第一行为…

Unity 贝塞尔曲线工具获取运动轨迹

Unity 贝塞尔曲线工具获取运动轨迹 一、介绍贝塞尔曲线二、Unity中贝塞尔曲线工具介绍1.创建一个空物体挂在上BezierSpline.cs脚本组件2.由上图可知刚创建出来的有两个点和两个手柄组成3.我们可修改其坐标看下效果4.这样我们就可以获得这两个点之间的指定数量的点来作为某个物体…

openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述

文章目录 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述177.1 功能描述177.2 注意事项177.3 性能 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述 177.1 功能描述 openGauss对数据复制能力的支持情况为&#xff…

资助26项!基金委公布一批原创探索项目资助结果!

根据《国家自然科学基金原创探索计划项目实施方案&#xff08;试行&#xff09;》要求&#xff0c;现将2023年度数理科学部资助的专项项目&#xff08;指南引导类原创探索计划项目&#xff09;相关信息予以公示&#xff1a; 国家自然科学基金委员会 数理科学部 2023年12月26日…

Linux 内核学习笔记: hlist 的理解

前言 最近阅读 Linux 内核时&#xff0c;遇到了 hlist&#xff0c;这个 hlist 用起来像是普通的链表&#xff0c;但是为何使用 hlist&#xff0c;hlist 是怎么工作的&#xff1f; 相关代码 hlist_add_head(&clk->clks_node, &core->clks); /*** clk_core_link_…

vue3项目使用pako库解压后端返回zip数据

文章目录 前言一、pako 介绍一些特点和功能&#xff1a;简单示例 二、vue3 实战示例1.安装后引入库安装:引用用自定义hooks 抽取共用逻辑部署小插曲 前言 外部接口返回一个图片数据是经过zip压缩的&#xff0c;前端需要把这个数据处理成可以显示的图片。大概思路&#xff1a;z…

68内网安全-域横向PTHPTKPTT哈希票据传递

今天讲PTH&PTK&PTT&#xff0c; PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测试 PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试 用的Kerberos 协议 PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试 lm加密算法是2003以前的老版&…

vitis HLS中实现canny算法的IP核

一、前言 canny边缘检测主要用于提取图像的边缘&#xff0c;是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中&#xff0c;使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。 二、xf::cv::Cann…

JUC常用并发工具类

JUC常用并发工具类 1、什么是JUC? JUC 就是 java.util.concurrent 包&#xff0c;这个包俗称 JUC&#xff0c;里面都是解决并发问题的一些东西&#xff0c;该包的位置位于 java 下 面的 rt.jar 包下面。 2、4大常用并发工具类 2.1 CountDownLatch CountDownLatch&#x…

基于Java车间工时管理系统(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

《新传奇》期刊投稿论文发表

《新传奇》杂志是经国家新闻出版总署批准、面向国内外公开发行的综合性社科期刊&#xff0c;由湖北省文联主管&#xff0c;湖北今古传奇传媒集团有限公司主办&#xff0c;湖北优秀期刊。本刊旨在坚守初心、引领创新&#xff0c;展示高水平研究成果&#xff0c;支持优秀学术人才…