本技术周刊是以周为单位作为里程碑,记录一个程序员视角下的所见,所学,所想。兴趣领域包括:数学,算法,图形,图像,音视频,AI,游戏,软件开发技术,操作系统,开源,以及生活杂记等。“不积跬步,无以至千里;不积小流,无以成江海。”希望与君共勉。
算法
目前在读刘汝佳的《算法竞赛入门经典(第二版)》,已经读完了第一部分语言篇。第一部分是真的比较基础,很适合没有编程基础的新人。但是对于编程老手,基本上可以跳过,或者很快的速度浏览一下每章提示部分。一般提示部分相当于划重点,或许会有所收获。
这本书的亮点是每个章都给出了大量的示例讲解和习题,而且每道题都可以在UVA在线评测系统上面找到。更惊喜的是,作者和UVA合作专门将本书的所有题目放在了单独了一个文件夹里,很贴心!不管新手还是老手,强烈推荐刷掉所有的题目!目前我刚刚刷完了第三章的例题,下面是小结:
题号 | 解释 |
---|---|
uva 272 TEX Quotes | 字符读写。getchar/putchar |
uva 340 Master Mind Hints | 思考题 |
uva 401 Palindromes | 字符串编码;回文字符串;镜像字符串 |
uva 1583 Digit Generator | 数字游戏 |
uva 1584 Circular Sequence | 字符串比较大小 |
uva 10082 WERTYU | 字符串编码 |
我的代码在这里:https://github.com/jb2020-super/online-judge/tree/master/AOAPC-II
题目链接在这里:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=827
计算机视觉
- 在视频超分或者插帧等任务中,经常会需要对比多个视频的质量。使用MPV视频播放器的命令行可以实现多个视频同步播放。
用mpv实现多视频同步播放 - 在部署Pytorch模型之前,经常会需要将模型转换成ONNX格式。如何导出需要多个输入参数的模型?如何导出支持动态输入宽高或者批次大小的模型?可以看看这篇:
pytorch模型导出成ONNX格式:支持多参数与动态输入
图形学&游戏
分享GTC 2021上来自腾讯游戏的演讲:3D Reconstruction for Game Development [A31617]。主要讲了三方面内容:
-
3D表示(3D Representations)。比较了几种三维表示方法:网格(Mesh)、体素(Voxel)、点云(Point Cloud)、Combination of Parametric Models、Depth Map、Implicit Representation。Marching cube algorithm。
-
可微渲染(Differentiable Rendering)。引用了两篇参考论文。
- [1] Shichen Liu, Tianye Li, Weikai Chen, and Hao Li. A General Differentiable Mesh Renderer for Image-based 3D Reasoning. TPAMI 2020.
开源代码地址:https://github.com/ShichenLiu/SoftRas。该算法还被Pytorch3D收录。 - [2] Shichen Liu, Shunsuke Saito, Weikai Chen, Hao Li. Learning to Infer Implicit Surfaces without 3D Supervision. NeurIPS 2019.
传统的将三维模型渲染到二维图像是不可微的渲染过程。如果是可微的,那么就可以从二维图像生成三维模型。
- [1] Shichen Liu, Tianye Li, Weikai Chen, and Hao Li. A General Differentiable Mesh Renderer for Image-based 3D Reasoning. TPAMI 2020.
-
3D游戏角色重建(3D Game Character Reconstruction)。引用论文:
- Zeng Huang, Tianye Li, Weikai Chen, Yajie Zhao, Jun Xing, Chloe LeGendre, Linjie Luo, Chongyang Ma, Hao Li. Deep Volumetric Video From Very Sparse Multi-View Performance Capture. ECCV 2018
演讲PPT:https://download.csdn.net/download/sjb358714/46144772
音视频
- 拥抱智能,AI视频编码技术的新探索。LiveVideoStackCon 2021北京站文章概览。
视频压缩的三个最基本相关性,空域冗余、时域冗余,信息熵冗余,由此诞生了视频编解码的三个主要模块,帧内预测、帧间预测,变换/熵编码。除了这三个冗余,其实还有其它的冗余对视频压缩来说有很大的性能提升空间:结构冗余和先验知识。
对于视频压缩来讲,结构冗余和先验知识冗余也很重要,传统编码并不是不能利用这两者,只是人工智能和神经网络在额外利用结构冗余和先验知识冗余上更高效,更游刃有余。
看来深度学习已经渗透到了视频编解码领域。最新的VVC都还没用上,就已经被智能编码吊打。
AI生成编码系统,基于参考帧、密集运动场和遮挡图生成当前帧。实验中,VVC码率不变,AI生成压缩方案的码率变为VVC的1/3,结果显示生成质量依然优于VVC的画面质量。
未来研究方向:- 在人物视频编码方面,实现多人、多物、多运动的复杂场景下的超低码率视频通话及视频会议。
- 在视觉分析任务方面,实现可分离的多任务编码,编码端单通道、解码端多分支来实现多任务的统一系统。