首页 > 编程语言 >实时渲染前沿研究:在浏览器上实现了Facebook提出的DLSS算法

实时渲染前沿研究:在浏览器上实现了Facebook提出的DLSS算法

时间:2023-06-24 11:56:09浏览次数:88  
标签:浏览器 实现 神经网络 DLSS 算法 Facebook Supersampling 推理

大家好,我基于WebNN在浏览器上实现了2020年Facebook提出的Neural-Supersampling-for-Real-time-Rendering算法。它是一个用于实时渲染的神经网络超采样算法,能够把低分辨率的图片超采样为高分辨率的图片

本课程系列文章可进入合集查看:
实时渲染前沿研究系列文章合集

介绍DLSS算法整体思想

算法的整体介绍可参考:毫秒级时间使图像清晰16倍,Facebook提出的DLSS算法介绍

算法的pytorch实现请见:Github

介绍整体实现思路

1.使用pytorch实现训练,保存weight、bias
2.使用WebNN实现推理,读取weight、bias

实现的重点记录

1.后面需要加入Motion Vector input,并实现Backward Warp
2.zero upsampling的实现参考了:https://github.com/pytorch/pytorch/issues/7911#issuecomment-392835113
3.应该可以使用Typescript dependent type来实现Tensor维度的编译检查。不过目前没有完全实现
4.等webnn issue实现后,就可以直接获得MLOperand的dimensions了。这样可方便简化代码,如在builder.slice时直接获得dimensions

在浏览器上推理的结果

使用webgl后端,场景大小为180*120,推理后为720*480

耗时为:
2015年的macbook pro:6000ms

后续优化点

现在的主要问题是推理太慢了,可以从下面几个方面来加快速度:

  • 减少推理中的数据拷贝,如减少builder.slice、builder.concat的使用

  • 减少previous frame的个数
    目前我用的是5个,可以减少为4个

  • 减半Reconstruction网络的参数

  • 等待WebNN成熟,从而可以使用WebGPU后端、甚至是硬件推理后端

改进方向

对颜色rgb进行处理

进入神经网络前先除以albedo;神经网络输出后再乘以它

可以结合Neural Supersampling for Real-time Rendering、High-Quality Supersampling via Mask-reinforced Deep Learning for Real-time Rendering论文提出的神经网络,从而获得16*4=64倍的像素提升!

具体方法是:
1.渲染512*256的1/4的像素(也就是256*128)
2.使用该论文提出的神经网络,将其超采样为512*256的分辨率
3.使用本文实现的DLSS算法的神经网络,再将其超采样为512*256*16的分辨率

不使用Motion Vector来做Backward Warp?

参考Fast Temporal Reprojection without Motion Vectors

移动端的改进

参考MNSS: Neural Supersampling Framework for Real-Time Rendering on Mobile Devices

标签:浏览器,实现,神经网络,DLSS,算法,Facebook,Supersampling,推理
From: https://www.cnblogs.com/chaogex/p/17500874.html

相关文章

  • 前端面试题之HTML和浏览器
    00-一些术语DTD:DocumentTypeDefinition文档类型定义,是一组机器可读规则,定义XML和HTML的特定版本中所有允许元素及它们的属性和层次关系的定义。DTD对HTML文档的声明会影响浏览器的渲染模式。SGML:标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言。HTML:超......
  • 浏览器内核讲解
    浏览器内核是浏览器的核心部分负责解释网页语法并渲染网页,也叫渲染引擎。渲染引擎决定了浏览器如何显示网页内容和页面的格式信息。不同的浏览器内核对网页编写语法的解释也不相同,因此同一网页在不同内核的浏览器里的渲染效果也不同。 Trident内核代表IE浏览器,只能......
  • 前端缓存【http缓存 | 浏览器缓存】
    一、前端缓存分类【http缓存|浏览器缓存】1、http缓存分类:强缓存 协商缓存   都是服务端设置HTTPHeader来实现的(1)强缓存不需要发送请求到服务端,直接读取浏览器本地缓存//在Chrome的Network中显示的HTTP状态码是200在Chrome中,强缓存又分为DiskCac......
  • 浏览器本地储存
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>localStorage</title>......
  • 浏览器的回流和重绘
    1、回流重绘的概念回流:当RenderTree中部分或全部元素的尺寸、结构、或某些属性发生改变时,浏览器重新渲染部分或全部文档的过程重绘:当页面中元素样式的改变并不影响它在文档流中的位置时,浏览器会将新样式赋予给元素并重新绘制它的过程浏览器使用流式布局模型(FlowBasedLayo......
  • [转]火狐浏览器访问github提示:未连接:有潜在的安全问题...github.com 启用了被称为 HTT
    火狐浏览器访问github,提示:       未连接:有潜在的安全问题;       Firefox检测到潜在的安全威胁,并因github.com要求安全连接而没有继续。如果这种情况是因为使用DevSidecar而引起的,可以使用以下方式解决:在地址栏输入:about:config在搜索框输入:security.en......
  • 添加一段代码,让你的网站在微信QQ提示使用浏览器访问
    <script>//跳转提示if(is_weixn_qq()){;window.location.href='https://c.pc.qq.com/middle.html?pfurl='+window.location.href;}functionis_weixn_qq(){//判断当前是否微信/QQ浏览器varua=navigator.userAgent;varisWeixin=!!/MicroMessenger/i.test......
  • 浏览器插件管理工具 auto-extension-manager
    背景最初的需求是,能够根据当前TAB的URL,自动打开或者关闭某些浏览器插件。找到了一个扩展管理工具(本身也是个扩展),有类似的功能,但却失效了,而且作者看起来没有再维护了。所以,就自己写了一个。插件JasonGrass/auto-extension-manager:achromeextensionmanagerwhereyouca......
  • 保护个人隐私的新趋势:防关联浏览器与指纹浏览器
    在数字化时代,个人隐私保护成为人们越来越关注的话题。随着互联网的快速发展,我们在日常生活中越来越多地依赖网络浏览器进行各种活动,但同时也面临着隐私泄露的风险。为了保护个人隐私,新一代的防关联浏览器和指纹浏览器应运而生。本文将深入探讨这两种浏览器技术的原理、应用以及对个......
  • 探索防关联浏览器与指纹浏览器的隐私保护之路
    在数字化时代,互联网的快速发展使得我们的生活更加便利,但同时也带来了隐私泄露的风险。近年来,随着互联网追踪技术的不断进步,人们对在线隐私保护的需求也越来越迫切。本文将探讨防关联浏览器和指纹浏览器这两个与隐私保护相关的关键词,并介绍它们对隐私保护的作用以及未来的发展趋势。......