hotcloud的短文,用超分重建从client传来的低分辨率视频,超分模型部分的idea基本和infocom21,然后扩刊TCC22的那篇一样,就是加一个和视频分析有关的loss。
两个重要设计:
用神经网络的方法去预测一个帧和上一个key frame之间的差别,去预测segmentation maps的偏移程度,决定该帧的重要性; 在一些金字塔输入结构的网络中,可以省掉下采样的操作,因为传的就是低分辨率视频。 即使超分好用,还是可能出现性能骤降的情况,还是需要一个knob policy去调节清晰度。
文章还提出一些Discussion:
神经网络插帧,进一步降低带宽需求(不太现实,相当于要预测物体移动); 怎么为基于神经网络的系统兜底; video analytics 关注的视频质量指标到底是什么; 用视频数据线上学习。
很多video analytics都是client端决定传输质量,为什么需要server driven?一个原因是client端不好估计视频传输质量对推理效果的影响,另一个原因是推理效果在server端可以很直观地给出,这对于视频的补充需求是一个context。另外有些工作也是server driven,但这些早期工作是直接调整视频的质量,但实际上不需要再传视频,只需要提高画质的那部分region就好了。这个分析我是比较认可的,会比其他基于超分或者client端heuristics的工作的上限和稳定性都更好。文章设置了很多人工参数和阈值去决定哪些是需要重传高画质的regions。
但这个工作因为需要多轮的resend,delay会超过1秒,如果可以实现0 resend可以降低很多延迟,而且准确率保持一致的话会是一个不错的创新,低延时的server端推理在自动驾驶等领域比较有价值。自然的想法是可不可以在edge端把ROI全部抠出来,然后只传ROI?是不行的,region proposals是由feature maps产生的,而feature maps有需要很多层卷积,在client端做不了。原始视频副本最终肯定会用某种方式保存回server,无论是传输还是人工回收,所以更应该考虑的是对大规模部署camera的信息分析的实时性,和适用的query种类的多样性。另外一篇几乎同时期的文章Video Analytics with Zero-streaming Cameras有这样的思想,之后会看一下。另外这篇文章的作者今年又发了一篇MLsys,从视频编码的角度入手:AccMPEG: Optimizing Video Encoding for Accurate Video Analytics。
hotcloud的短文,现在的视频流传输的方案对服务器端的视频分析模型是无感知的,视频分析的视频流传输方案的目的是在带宽限制下,适当用一些降分辨率和抽帧的方法,达到最高的推理准确率。旧的视频流传输方案大多面对的是人的观看体验,而视频分析要求推理准确率高。
文章提出,因为低质量的视频中能知道一些大概的信息,所以可以先发低质量视频,服务器再决定哪里需要补充。用一个叫Superposition Coding的叠加编码,先发一些基本的低质量视频,再按需要补充帧和高分辨率,模型需要分辨出什么region看得不够清楚,需要分辨出两个帧之间是否有遗漏的信息,可以把这个过程看成主动学习,通过尽可能少的帧达到一定的准确率,设定每帧预测的deadline,提前退出。
论文给的idea,client端和server端更好的集成,为特定推理任务定制策略。