在上次的改进方案失败(没有效果)后,最近一直在思考怎么继续改进当前的一个计算机视觉算法,因此在网上搜索了一下计算机视觉这两年可以做的方向,以下内容来自知乎的回答,摘录的部分是对我自己比较有帮助启发的,本文主要自己收藏记录用,希望对看到这篇文章的人也有所帮助。
也可以戳以下链接去看完整的原回答
1、对transformer结构的网络进行轻量化处理(这是我现在正在探索的方向)
可以尝试一些Transformer结构的模型压缩算法方案,目前虽然transformer在CV领域比较火,但是在移动端还是以CNN结构的为主。一方面可以做纯transformer方案的压缩移植,还可以做CNN+transformer融合的方案,里面的方式不限于NAS,蒸馏,剪枝以及量化,特别是在TinyML这种关注低功耗以及边缘计算的领域,如何把transformer的优势发挥出来,也是有很多值得尝试的方向。
2、应用于边缘计算领域(其实也是轻量化的需求)
边缘计算是指在数据源头的附近,采用开放平台,就近直接提供最近端的服务。边缘计算与云计算相反,云计算是指通过网络,把众多数据计算处理程序分解,通过服务器组成的系统,把这些分解的小程序再处理分析来得到结果。
在计算机视觉领域,边缘计算技术的重要性与日俱增,因为计算机视觉系统经常需要快速作出决定,比如在自动驾驶汽车等领域,因此根本没有时间将数据发送到云。
随着边缘计算的计算速度不断提高,计算机视觉将在安全领域产生重大影响,鉴于企业商业和个人在捕获和使用视频数据的方式上面临更严格的审查和监管,这一点日益重要。使用边缘设备,如配备了计算机视觉的安全摄像头,人们可以动态分析数据,并在没有理由保留数据(如没有检测到可疑活动)的情况下丢弃数据。
另一个回答中也提到:
算法落地一般要部署到服务器上,但这需要网络,对于有些没有网络的场景我们怎么部署算法呢?比如,电网行业的算法应用场景绝缘子检测、鸟巢检测、火灾检测等,应用主体都是高压线,这些高压线一般分布在偏远地区,网络条件差,这时候我们就要考虑没有网络的情况下我们还要达到实时检测的需求,那这时候就需要部署到不需要借助网络传输的边端设备上来,最常见还是摄像头。
但是边端部署存在一个问题,就是对硬件要求比较高,目前主流边端设备生产商主要就是浪潮、寒武纪、英伟达、瑞星微等。
3、multi-modal多模态处理
如何融合多模态的数据进行更好地预测,这个确实是我之前没怎么关注过的。我所在的实验室主要做智能医学影像处理,在医学图像处理领域多模态确实应用得不少,这个方向之后也可以多关注关注。
4、小样本检测(摆脱对需要大量数据的依赖)
在很多场景下,收集大量的有标签的数据是非常昂贵、困难、甚至不可能的,比如医疗数据、手机上用户手动标注的数据等。"是否能仅利用少量带标签的数据来训练就得到一个好的模型?"已经成为机器学习的发展中一个十分重要的课题,不论是学术界还是工业界都高度关注。
不可否认需要大量的训练数据也是深度学习在落地时候会面临的一个重要问题,但是我目前主要在做的人体姿态估计的数据集都还挺大的,所以暂时不考虑这个方向的改进。
看到了很多回答都是跟模型轻量化相关的,因此我又去了解了一下深度学习轻量化相关的回答
1、几个小型化技术最近有慢慢整合的趋势,比如搜索算法同时实现NAS、剪枝和量化[1][2],所以并不是孤立的,如果想做小型化方向的研究,这几个方向应该都要熟悉,建议自己google上找些survey文章,花段时间对这几个方向都做一下了解,再考虑从哪个角度入手;
NAS在几个方向中是相对独立的,也可以归为automl的其中一种技术,可参考:AutoML: Methods, Systems, Challenges (first book on AutoML),了解下大体内容;
不同的任务小型化难度不一样,所以在什么任务上研究小型化也是一个考虑,建议从两个角度:
1) 最近比较火的模型结构上做小型化,比如CV transformer,发文章比较容易;
2) 比较难的任务上做小型化,比如low-level vision;
可以尝试从改进已有基于搜索的小型化算法入手,这个过程中学习到的一些技术(e.g., 搜索和优化)在其他任务上也是受用的;
[1]https://arxiv.org/abs/2006.08509
[2]A Survey of Quantization Methods for Efficient Neural Network Inference
了解目前的轻量化transformer的方法
待补充。。