AI 时代的视频云转码移动端化——更快、更好、更低、更广
编者按: AI技术的落地是渐渐地从服务器端、云端落地,逐步到移动端及边缘设备上。这些年随着AI技术的进步,轻量级算法模型开始在移动端实时跑起来,并且移动端算法也在不断进行迭代和完善,而对于实时直播场景,也有越来越多的AI算法落地。ZEGO即构科技提出了一套极轻量级AI算法模型,结合移动端硬件特性,差异化优化前馈推理库,让算法模型、推理库、硬件成为一体,使得视频云转码移动端化成为可能。LiveVideoStackCon 2022音视频技术大会上海站邀请到了即构科技的李凯老师,为我们分享产品架构、移动端视频转码、移动端智能视频处理、四位一体网络模型设计以及具体实施Demo。
文/李凯
整理/LiveVideoStack
这是我第二次在LiveVideoStackCon分享,第一次时本人肚子还没有这么大,疫情三年肚子长大了,但我们的模型会变得越来越小、越来越快、效果越来越好,这就是“更快、更好、更低、更广”。
快 —— 速度越来越快,好 —— 效果越来越好,低 —— 耗费很低的码率,广 —— 尽可能覆盖更多的机型。曾经在云端转码遇到大批量的任务,本次探讨在移动端如何处理,分享内容更侧重在移动端如何把任务快速跑起来,把服务器端的事情放在手机端做,对 ToB 厂商的用户来说是非常开心的。
本次分享按以下方向逐一展开:一是 ZEGO 产品概貌;二是要在移动端去做的理由,这是帮助解决客户提出的需求问题;三是在移动端可以做到哪种程度,能不能面对用户提出的苛刻需求,解决客户问题;四是如何解决行业内难题,这是任何一个做音视频厂商、做视频前后处理都孜孜不倦追求的问题;五是简单实验结果分享。
1、产品架构
产品应用方面,会议端的小艺帮主要针对考试类的应用;直播类有游戏直播,KTV唱歌等;方案有社交娱乐、泛娱乐、以及这几年很火的在线教育。目前也会给小艺帮考试类的做应用,不限于在线教育的方案。我们同时会提供基础技术服务,比如视频转码、画质增强、美颜特效、Avatar 元宇宙底层技术、背景分割等。
1.1视频处理
本次分享的重点是视频处理。上图是我们很直观的数据。
在 iPhoneXR 这样的中端机型上,超分辨率 640480 两倍率做 AI 超分到 1280960,21ms 可以搞定。同时也测试了安卓机型,大概可以覆盖 2500 款,1000 元以上机型基本能够覆盖。如果机型好一点,超分到 1080p 没有问题,但国家政策鼓励出海去东南亚、印度、非洲。这些国家市场非常大,但最大的现状为使用者大多为千元机以下,这就面临一个很大的难题,千元机难做超分。
去编码速度比超分速度快很多,超分天然的数据量很大,不能把图片缩小,将图片原始分辨率不做改动的情况下放大。去编码效应的优势在原始分辨率上做,处理速度比超分快很多,基本可覆盖千元机。而在印度、东南亚、非洲这些带宽很低的地方,这时做去编码效应比超分,更具实际价值。
最难的点是视频插帧,两帧插一帧,基础数据是在 IPhoneXR 上 960*540,32ms,这一部分依然面临难覆盖千元机,也是我们一直去追求的点,后续可以演示插帧在移动端上手机具体效果。
随后也会与大家分享如何实现低照度增强,大家也可以跟着这个思路复现低照度增强,速度可以覆盖到 2ms,很低端的机型例如 2015 年的机型小米2S,2ms 可以实现。道理很简单,就是 3D或 2D 查找表,非常快,效果在最后一部分演示。但低照度会有个问题,这也是业界难题,在极度暗的情况下出现噪点放大。那我们为什么走低照度增强?
给大家讲个小故事,我们有一个东南亚客户之前提出需求,“需要 1280720 的分辨率,要求 30 帧率不能下降、灯全关掉、手机屏幕亮度调到最低,但对方可以清晰看到我的脸”。在与客户沟通时,问能不能把屏幕亮度调亮一点点,对方不乐意,他就需要这个效果,但我们努力帮助其解决问题他还是很开心的,虽然不能否认会给他带来噪点问题,但亮度调高一点点,噪点问题将被适度放大。如果使用长曝光 1280720,帧率很低,长曝光只能 10 帧,用户做很多动作想要 30 帧,也会不开心。
1.2其他AI技术产品
技术人员要经常与销售打交道,面对一线用户,技术人员就能了解是否要解决此问题,知道需求在哪儿,做的技术有无价值。当然我们也会做其他的应用。一是抠图,其中有隐私反向打码,例如小米摄像头监控功能,老人在家监控但不放心,就可以把老人反向打码,将老人虚化而背景不虚化,或只虚化老人身体的一部分,反向抠图,关键看你怎么去做去用。二是小目标检测,曾经有用户给一个条件:小分辨率在 640*360,只有 10 像素的手机,考场监控场景下,看拿手机作弊的小动作能否被检测出。这样的难题是实际中碰到过的很多基础应用。
2、移动端视频转码
第二部分是移动端视频转码。
2.1 移动端转码
关于移动端视频转码,也有一个来自于真实用户提出的需求:为什么要将视频上传至云服务,云服务下载后又要转一遍,用户自己拍的视频或是转的视频不愿意上传至服务器,那么移动端是否能将视频修复呢?
视频修复需要做很多任务,首先要从云转码角度分析是什么场景下的视频,游戏、体育或是日常生活,质量如何、块的效应如何、编码状态如何。一个视频块很多,但也许是录屏的,初步分析后考虑是否要做超分、做编码块效应、做降噪,那这一整套能不能在手机端做到?用户提出此问题后,如果可以解决用户就愿意付费,但用户不想放在云端,ToB 公司不乐意放在云端为单个服务器付费,在用户的手机将事情落地对于 ToB 公司来说是乐意付费的。所以我们很多的技术实现都是源自于具体生活。到底能不能实现,实现到什么程度,后面会分享具体一些数据,看能否支撑能否做到。
2.2 移动端 AI 技术性能一览
在上图的超分性能数据中可以看到,我们可以覆盖 2500 款机型,业界能敢喊出这个数字的不多,这是公开的,能给到厂商实测。最难的是移动端实时视频插帧,需要解决人物不扭曲、大运动不虚、字幕不花等场景,并且机型覆盖程度仍在努力中,不会停下脚步。刚才提到的低照度增强,提升通道通透性指的是视频进入编码之后,会有朦朦一层,没有深度参差,将其处理,使之纵深变强,立体感更强,而不是像有一层雾,当然也可以用去雾通道处理此问题。在降噪方面,我们本身也在做各种优化。抠图和小目标检测在前文中也有提到,我们主要做安卓端,IOS 端有 MPU 和 ANE 会好做很多。
3、移动端智能视频处理
第三部分是移动端智能视频处理。
3.1 全链路自研可控
上图中是我们公司大型团队端到端做的事情。我所负责的是与视频相关的业务,包括视频前后处理部分、麦克风采集、涉及端到端的网络,以及部分编解码。我相信这个流程每个做 RTC 的技术人员都能画得出,搞技术的即使是做视频前处理也要会画,这是整个公司每个同事负责盯在哪一块的概貌。
3.2 移动端视频处理
上图是本人整个职业生涯所要做的事情,当然也不仅仅只有这些。现在也做关于教育的东西,技术是相通的,整个数据流是这样走的,核心重点还是在视频后处理或视频前处理上,包括前端推理库的优化,后续会讲到前端推理库的一部分优化和网络模型如何设计得更加小型化。
3.3 移动端超分辨率
再看一下移动端超分辨率具体技术细节。
- 超分辨率-性能PK
超分是我们去年上半年做的事情,与行业内进行 PK,在上图数据上做测试,越向左模型越小越好,越往上效果越好,左下角都是一些小模型的效果。上图中PAN 在2020年模型参数量最小,效果排第二。RFDN 在 2020 年效果第一,与之作初步对比,大模型的位置如图,但实际覆盖大概 2500 款机型使用不同的模型。
- 超分辨率网络模型-设计
上图是超分很简单的网络模型设计,起初花了很多心思精力阅读大量文章加上自己的奇思妙想、胡思乱想,我们做了一些通道处的处理,包括通道注意力机制,但最终发现流程越多,模型加速可能性越低。后来回到初衷,原始设计出来的模型,最后还是这样的,这样做加速会非常容易。如果模型效果好但没法加速也不行,结构比较复杂。这一部分我们也发了一篇文章,影响因子5.9(https://doi.org/10.1016/j.neucom.2022.07.050)。模型怎么训练,其中就有一些弯弯绕绕,涉及到后续会统一提到的技术点。
3.4 移动端低照度
- 低照度设计
低照度方面,第一版是用 2D 查找表方式,发现其维度不够,后改用 3D 查找表,用网络模型训练得到查找表本身,而不是模型,后续将推理库丢掉,只要进来数据,有三个维度分别是图像输入的原始像素点、当前像素点周围邻域的均值、根据自己定义例如当前像素点Y通道的亮度与周边像素点亮度差异值,在 0-1 之间。将其变成 0-255,此表最大为 255255255,最终结果是几毫秒。
- 网络模型-设计指导方向
回到视频超分辨率的问题,如何将视频超分辨率模型变小,可以做知识蒸馏;重参数,这在最近几年很火,我们用在很多领域,还会放在目标检测中,美团的 YOLOv6 就用了重参数、台湾的YOLOv7 同样使用重参数,重参数同样变成了在 CV 基础业务领域的骨干网络,重参数的意思是训练中模型非常大,推理模型非常小,但训练模型和推理模型是等价的,最终效果一样,推理速度更快,依据这个可以看更多的论文。
还有就是做量化 PQT 和 QAT,训练前和训练后量化会带来不同效果,后续会提到一个模型的设计是否可以转换成量化,是否适合,精度是否下降,模型本身与推理库是否紧密耦合,模型在硬件上借助推理库能否达到最佳,这是个考验人的事情。对所有底层计算机视觉视频增强任务大部分可以用查找表来做,例如锐化,二维三维都可以实现,对照度、对比度增强,甚至做得好可以做 8bit 到 10bit 转换,速度性能非常快。这里仅仅是给了大致的方向。
4、四位一体网络模型设计
第四部分比较关键,四位一体网络模型设计。
四位一体网络模型设计,虽然是四个,但上图中只有三个,大家可以猜一下还有哪一个。
第一维度是模型设计;第二维度是模型推理引擎,例如 TNN、NCNN、MNN 等很多,基于别人的推理引擎去改和优化,推理引擎与网络模型是否能很好结合,模型本身在不同的推理引擎上速度差别大,模型在 iPhone 上是跑在 CPU 还是 GPU 还是 NPU上,iPhone 的 Core ML 是个黑盒子,如果 OPS 不适合在 NPU上跑,数据就有可能一会儿在 GPU,一会儿在 NPU,模型效率低;第三维度是 Peak,意思是需要去度量模型,操作算子在指定硬件上,例如指定的硬件如高通、联发科、华为芯片上,它的性能到底如何,一个模型在同一时代的机型上跑出的数据效率不同,最重要的是要将 roofline 模型图画出,反向指导我们设计模型。
还差一个维度是什么?我们做所有的事情所要实现的目标就是快和效果,我认为第四个维度是数据,我一直认为基于业务做需求,数据占了功效的 60%。举个例子,超分可以刷榜刷得很厉害,但到实际场景就效果不好,一定是要根据业务指定场景强相关。我们做了一个测试,所有东西从零开始,用自定义数据集,标注好的 3 万张图片,将所有 YOLO 系列的模型参数全部设置在差不多的数量级,初始化一样,训练结果发现 YOLOv5 执行度较高。但在 YOLOv7 文章中开门见山表示从零开始直接训练比多次训练效果好,这表明可能是在特定场景效果好,但在另外场景下是不一定的。
这里更细致地讲一下在推理引擎端,模型设计尽可能运用到硬件算力本身,尽可能将其发挥出来。推理引擎、模型设计大家应该不会忽略,相信大家做多了也知道如何并行、状态信息化。上图右下角绝对会被忽略,这是三个部门做的事情,看似毫不相干,但每个人做的应该与其他两个相关。早期 CL、Peak 和 RAMMER 做了硬件 CPU、GPU 在移动端 NPU 的性能度量,还有旷视的 MegPeak 也在 6 月刚好做了同一件事情,都在做说明这个方向是对的。
我认为数据是最重要的,数据不稳定,模型根本不用去想设计。数据要保证百分之百准确,比如做目标检测的标注,首先运用大模型预标注,人工筛检,再训练,再预标注,反复几次。标注的时候只标注一类,比如生成部署标注十类,实际上做的时候一类一类标注,这样就保证每一类精度非常高,但没人愿意标注,觉得是粗活脏活,但这是把数值刷最高最有效直接快速的方法,丢给外包质量不好,包括算法同事标注质量也差。所以要想出各种办法通过算法本身将数据筛选出来做更多的事情,达到效率提升。
上面分享的效率、速度需要同时上升,主观感受质量不能下降,但模型可以裁剪。
5、演示Demo
低照度增强示例
上述视频是低照度增强示例,视频前后分别为原始视频和渐变处理后的视频。明暗程度可以在查找表中动态调整,实例中达到渐变效果,网络生成出来的模型调整程度是固定的。这里没有用噪点视频,不可否认在低照度增强中会把噪点放大。
以上是我的全部分享,谢谢!
AI 时代的视频云转码移动端化——更快、更好、更低、更广的更多相关文章
- 在线公开课 | 5G时代的视频云服务关键技术与实践
5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...
- 课程报名 | 5G时代的视频云服务关键技术与实践
6月3日,工业和信息化部宣布将于近期发放5G商用牌照.这也意味着,中国正式进入了5G时代. 5G身上有很多新标签:"大规模天线"."新的编码技术"." ...
- 2018亚太CDN峰会开幕, 阿里云王海华解读云+端+AI的短视频最佳实践
4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了<短视频最佳实践:云+端+AI>的主题演讲,分享了短视频的生命周期关键点和 ...
- 视频云肖长杰:视频AI科技助力短视频生态
人工智能技术是当今炙手可热的技术领域,它在制造.家居.零售.交通.安防等行业的应用已经是大势所趋.在本月云栖Techday音视频技术沙龙中,阿里云视频云产品专家肖长杰为我们分享了一些AI技术在视频中应 ...
- 阿里云视频云 Retina 多媒体 AI 体验馆开张啦!
带你体验视频更多可能 海量视频管理难度大?翻库检索特定人物费时费力?视频内容剪辑效率低?您的得力助手"Retina多媒体AI"体验馆已上线.带你感受视频AI黑科技,开启极致智能体验 ...
- 峰值利用率80%+,视频云离线转码自研上云TKE实践
作者 刘兆瑞,腾讯云高级研发工程师,负责腾讯明眸极速高清,画质重生等产品.专注于codec优化,画质增强等技术. 背景和问题 随着流量资费的降低和带宽的增加,视频成为人们获取信息越来越重要的方式,随之 ...
- AI时代大点兵-国内外知名AI公司2018年最新盘点
AI时代大点兵-国内外知名AI公司2018年最新盘点 导言 据腾讯研究院统计,截至2017年6月,全球人工智能初创企业共计2617家.美国占据1078家居首,中国以592家企业排名第二,其后分别是英国 ...
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...
- 阿里云启动视频云V5计划,全面赋能生态合作伙伴
9月25 - 27日,主题为数·智的2019云栖大会在杭州举行.在第三天的智能视频云专场中,阿里云研究员金戈首次对外发布视频云V5计划,释放视频IT基础设施红利,赋能生态合作伙伴,共促大视频产业发展. ...
- LiveVideoStackCon2021 北京站专访:从上云到创新,视频云的新技术、新场景
伴随着视频技术的进步和标准的迭代,视频产业从模拟进入到数字时代,完成了从电影电视到互联网的媒介转换,并且衍生出了超高清.3D.AR/VR 等多种创新形态.特别是在后疫情的当下,我们可以看到音视频技术领 ...
随机推荐
- JUC(五)Callable
Callable接口 创建线程的几种方式 继承Thread类 实现Runnable接口 通过Callable接口 线程池 使用Runnable接口无法获取到线程返回的结果,因此在jdk1.5后java ...
- 23.oneOf
const { resolve } = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') // 提取cs ...
- win10 双开微信 微信双开
方法1:鼠标连续点击实现Windows微信双开在桌面上找到微信图标,鼠标左键连续点击2次为打开一个微信,连续点击8次就打开了4个微信. 注意:不要连续点开太多防止卡顿. 方法2:回车键双击微信图标实现 ...
- [白嫖]阿里云服务器ECS以及无影云桌面
[白嫖]aliyun 阿里云ECS和无影云桌面 [云服务器 ECS]学生认证约7个月 适合入门级开发者,用于搭建网站.小程序.云博客.部署主流开发环境,如 lamp.node.js.wordpress ...
- Locust 界面简介(非使用级)
一.认识Locust 1.简介 Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在 ...
- C#自行实现安装卸载程序(不使用官方组件)
正规软件建议还是使用官方的标准安装程序组件,因为官方的标准安装/卸载组件能更好的与操作系统衔接,安装和卸载流程更加规范. 今天提供一种野路子,全用代码实现安装卸载器. 需要写一个程序,包含安装器.卸载 ...
- Unity中实现字段/枚举编辑器中显示中文(中文枚举、中文标签)
在unity开发编辑器相关经常会碰到定义的字段显示在Inspector是中文,枚举也经常碰到显示的是字段定义时候的英文,程序还好,但是如果编辑器交给策划编辑,策划的英文水平不可保证,会很头大,所以还是 ...
- JVM 优化踩坑记
本文记录了服务 JVM 优化的过程与思路,有对 JVM GC 原理以及对问题排查方向和工具的介绍,也有走弯路和踩坑,分享出来希望对大家有所帮助. 本文概要 服务异常和排查过程 RPC 接口超时的排查方 ...
- ubuntu配置vscode全过程(下载安装配置优化插件)
一.安装vscode 下载vscode 当然啦,我们安装vscode,当然要先下载啦,但是但是但是!不要在ubuntu的软件中心(Ubuntu Software)下载!贼坑!下载完不能用! 推荐下载方 ...
- react eject提示This git repository has untracked files or uncommitted changes:
在yarn eject 但时 老是提示This git repository has untracked files or uncommitted changes: Remove untracked ...