low-level 的视觉模型要在生产环境的服务端部署使用,还是有一些工作要做的。当然,本文不涉及在移动端的部署,我理解移动端模型部署很核心的工作是模型压缩(量化、枝剪和蒸馏),这块我涉及不算很深入,只搞过一点量化和枝剪,就不展开描述了。

3.2.1 推理框架

主要试了三个推理框架:阿里的MNN、facebook的libtorch和nvidia的TensorRT

a. MNN

MNN相对而言成熟度稍差些,优势是开源,有问题可以自己看代码,甚至做一点点修改,我在windows上跟MingW32结合编译MNN的库开始就遇到问题,后面做了一点修改,就能跑了,这个当时还给MNN提了个issue ,总的来说,我理解MNN可能更适合移动端推理,我的场景可能不是特别符合

b. libtorch

libtorch 和 pytorch 系出同门,是其的 c/c++ 版本,也是开源的,这些特性决定了相对而言libtorch对 pytorch模型支持度相对友好,虽然跑通过程中也有一些坑(主要是跟ffmpeg融合编译的时候比较折腾),但回头看基本也都还好,但相比较 tensorRT,实测下来libtorch 性能会差不少,所以最终我选择的还是 tensorRT作为最终版本的推理引擎

c. tensorRT

TRT实测下来性能最好,应该跟我默认开了量化有关,它的缺点之一是它不开源,真遇到问题,比较容易抓瞎没办法,网上搜索出来的资料良莠不齐,比较难搞,不过跑通的话还是比较香的。

3.2.2 推理过程

pytorch训练产生的是 pth文件,通过python脚本可将其转为 onnx文件,然后使用 trt 库函数再转成 *.trt 文件,最后推理用的就是这个 *.trt 文件了

这里值得指出的是,不同显卡、不同硬件,通用的是 onnx文件,而非 *.trt,也就是说,*.trt 是硬件相关的(应该本质就是显卡),它可以理解为显卡定制优化后的模型文件供TRT使用,这应该也是其可以比 libtorch 性能更好的原因吧。

3.2.3 显卡

实际跑过的显卡还是比较多的,实测下来,性价比最高的感觉是 3070/3090 系列,比V100 性能稍差一点,但价格差距就更大了,我理解这跟超分、降噪这类 low-level  模型特性有关

画质增强概述-3.2-AI增强实践之推理与部署相关推荐

  1. 哔哩哔哩视频云画质与窄带高清AI落地实践

    视频赛道卷到下半场,一定会面临体验与成本的对抗,尤其是在行业大环境"过冬"的背景下,想要在有限带宽下获得最佳的画质观感变得异常具备挑战性.从视频云业务场景的视角来看,如何有效解决c ...

  2. 画质增强概述-4-传统方法增强实践

    传统方法和AI方法是一个互相补充的关系,要看具体的场景和视频类型,一般而言,传统方法性能上相对比AI方法更好些,对算力要求相对低一些,成本上自然也更低 传统方法的保边滤波(如导向滤波等).锐化.对比度 ...

  3. 画质增强概述-3.1-AI增强实践之超分训练

    三 画质增强的AI增强实践 画质增强处理从方法上可以分为传统方法和深度学习(AI)方法,他们是互相补充的关系,传统方法相对而言性能会好些,AI方法吃GPU.吃算力,很多课题AI方法效果远非传统方法科比 ...

  4. 画质增强概述-3.3-AI增强实践之服务形态

    low-level 视觉任务输入输出一般都是RGB数据,那么在生产环境,除非在移动端增强后直接显示,否则基本是需要对数据进行压缩,然后存储或者传输.服务端的增强服务,多数是把增强服务封装为ffmpeg ...

  5. 画质提升了! LR增强细节_Lightroom 开启 AI 照片细节强化:画面清晰度提升 30%

    使用超分辨率,画质提升了,白给图也能救了,能拍一亿像素了,吗? ​​Adobe在最新版本的Lightroom CC,以及Lightroom Classic CC中更新了超分辨率影像的功能,旨在通过AI ...

  6. 画质增强概述-2-应用场景

    二 画质增强应用场景 画质增强应用场景是非常广泛的,本质上,"谁会嫌画质太好了呢",随着传输.显示等基础设施和硬件的进步,画质增强的应用一定会越来越广泛,我这里只是简单介绍一下几个 ...

  7. 视频编解码优化以及与AI的实践结合

    RealNetworks是流媒体类别的发明者,改变了音频和视频内容在各种设备和全世界消费的方式.在编解码市场的大环境下,RealNetworks推出了新一代的视频压缩算法RMHD,专为下一代的高清流媒 ...

  8. 智能化软件开发微访谈·第二十期暨2022新年特辑:AI软件架构实践

    CodeWisdom 智能化软件开发沙龙是复旦大学CodeWisdom团队参与组织的专注于代码大数据与智能化软件开发的学术和技术沙龙,面向相关领域的学术界研究者和工业界实践者,通过各种线上和线下交流活 ...

  9. 从微信AI首席顾问到金融文档智能,一位中科院计算机科学家AI产品化实践

    从微信AI首席顾问到金融文档智能,一位中科院计算机科学家AI产品化实践 本文作者:伊莉 2017-08-14 10:18 导语:"我的研究思路是扎根某一领域,如金融,并探索一些实际问题,再从 ...

最新文章

  1. String比较.equals
  2. 深度学习先驱 Yann LeCun 被骂到封推!AI 偏见真该甩锅数据集?
  3. UA MATH575B 数值分析下VI 统计物理的随机模拟方法2
  4. PHP获取当前页面的网址
  5. 小白学编程“Java小白”入门解疑大全
  6. C语言九十七之实现有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并且输出多少个
  7. cookie 和session 的区别
  8. Arrays工具类常见方法
  9. 关于a标签不能调用js方法的小细节,你注意到了么?
  10. rx2700_第二代锐龙 7 2700X 台式处理器 | AMD
  11. java 图形 登录_Java图形界面——登录框
  12. mysql中date与datetime类型的区别
  13. 每日算法系列【LeetCode 827】最大人工岛
  14. python带cookie登录
  15. nginx 认证访问web
  16. Win环境下的Axure汉化
  17. 特斯拉造芯片:不能失去集成电路的高地,就像西方不能失去耶路撒冷
  18. IBM AppScan v9.0.3.12+安全规则17339下载、安装和使用
  19. python 管理windows客户端_Python管理Windows进程
  20. 请问为什么DSP需要Q格式? q31、q15、q7和f32是什么意思?

热门文章

  1. EdgeRec - 揭秘边缘计算在淘宝猜你喜欢的大规模应用
  2. ce逆向修改——扫雷(详细)
  3. mysql中not exists用法_not exists用法
  4. 视频播放器的html代码
  5. 获取Google Advertising ID 和 Android ID
  6. 一篇文章入门HTML5
  7. 什么是hidl_protobuf 在通过 hidl 接口传输时,是不是应该用 string 啊
  8. 淘宝逛逛内容如何做,逛逛机构申请要求
  9. 建筑工程与软件工程的区别
  10. java runnable接口_java实现Runnable接口适合资源的共享