前言:
上一篇从社会的角度聊了聊我对计算机视觉未来走向的看法,提出的主要观点是未来计算机视觉需要扩展应用领域,研发新产品,去更好地为社会服务。具体而言,它可以与机器人、嵌入式设备和移动端结合,因此需要做到模型小型化、专一化和轻量化。
在这篇,接着这个观点从产品的角度聊一聊我对计算机视觉未来走向的看法。
当前计算机视觉的主要应用场合有:人脸识别、无人驾驶、安防监控等少数领域,而大家几乎一致认为,影响其落地应用的主要因素有数据量和计算算力。
目前,我们是如何解决这两个问题的?
对于数据量太少,在大数据集上预训练,再到小数据集上fine-tuning;使用迁移学习;使用数据增强;使用小样本学习等。
对于数据分布不均衡,使用重采样;使用重加权;使用迁移学习等。
对于标注数据太少或标注成本太高,使用现有的SOTA去做推理,生成标注,再人工调整校正;使用无监督;使用半监督等。
对于计算算力不足,设计轻量化模型;知识蒸馏;模型压缩;模型量化等;
然而,影响计算机视觉落地应用的为何会是数据量和计算算力?上面这些方法为什么没有很好地解决这两个问题?是这些方法目前尚未解决好但继续下去的话日后可以解决,还是说这些方法只能治标不能治本呢?
从技术的角度来看待计算机视觉的落地应用,大数据和计算算力确实是关键因素。但在上篇中我们提到,一味地追求技术并不是一个明智的做法,因为技术不是最终目的,产品才是。因此,我们可以从产品的角度来分析分析计算机视觉的落地应用。
在上篇中也提到了计算机视觉在未来可以与机器人、移动端和嵌入式设备端结合,而它们之间的结合会出现很多新产品,这些产品之间是有区别的。第一,它们的应用场景不同;第二,它们的算法不同;第三,它们的硬件不同;第四,它们实现的功能不同。
我始终认为,算法总是要与硬件结合,也必须与应用场景联系,它无法超然物外。
从具体产品这个角度来看,我们不能再片面地说,影响计算机视觉落地应用的是大数据和计算算力。因为大数据和大算力这两个问题对于很多场景来说,也许根本就没必要。
在一些特定的场合,始终在固定的场景下的监控或机器人,执行重复的、固定的任务,不存在意外的东西进入摄像头范围。在这样的应用场景中,我们不再需要大数据去保证它的泛化能力,我们可以放心地过拟合,同时,我们可以针对这个特定的场景,为它增加很多特定的先验知识,从而达到远胜于当前SOTA模型的性能。
在一些云计算的边缘设备中,例如移动端,或某些嵌入式设备,随着5G的发展和建设,相信不久后可以实现在边缘设备传输原图像或原视频到云服务器检测或识别再传送回来,也可以先在边缘设备进行简单处理,将提取的关键信息传输到云服务器进行检测识别。在具备这样条件的设备和应用场景中,大算力也不再是硬性条件。
在2019年有一条重磅新闻,“意法半导体推出STM32神经网络开发工具箱,将AI技术引入边缘和节点嵌入式设备。AI技术使用经过训练的人工神经网络对运动和振动传感器、环境传感器、麦克风和图像传感器的数据信号进行分类,比传统的手工信号处理方法更加快速、高效。”这似乎跟视觉没什么关系,对于视觉研究员来说,可能也没感觉到这有什么。但对于熟悉STM32的我来说,当时看到这个新闻是非常惊叹的。
以前stm32顶多用来做一些机器人、小车的运动控制以及一些传感器的控制使用,使用OV7725等摄像头完成循迹,颜色检测等任务,此外用stm32制作的openMV也可以完成识别二维码、人脸识别等任务。现在,它实现对神经网络的支持,那它离一些简单的计算机视觉任务还远吗?
最近很有感触的体会就是,我们过于强调使用视觉解决某些问题,实际上在很多场合下,还有很多的条件可以利用。
前面提到的先验知识是一方面,另一方面是各种各样的传感器。例如,结构光相机,它不仅能获取RGB信息,还获取到了深度信息。一些特定的场景下的一些传感器是否也能与神经网络结合呢?我相信这完全是可以的,由于传感器的抗干扰性很强,在很多影响视觉识别的情况下,传感器的存在会极大提升模型的鲁棒性,甚至于说这样的结合会使得神经网络在只需要少量数据的情况下,就可以实现很高的准确率。
此外,可以根据视觉任务来设计相应的硬件,而不是将视觉模型部署到已有的硬件上。这样的硬件会很轻松地解决视觉上拼死拼活都很难优化的问题。例如可以根据视觉的检测结果来控制摄像头的旋转,避免需要多摄像头去做行人重识别。例如高清相机,直接就让很多场景下的图像超分辨率的工作变得毫无意义。
目前很多的研究都是基于目前的硬件水平来进行的,当日后硬件性能提升,也许完全不需要模型压缩或者模型轻量化就可以直接在硬件上部署,现在的很多工作又将变得毫无价值。
因此,从与配套硬件结合这个角度来看,当看到stm32支持神经网络,我感到非常惊叹,因为,这条路线也许在不久的将来就可以得到实践,并很好地能解决计算算力和大数据的问题。当然,这只是我自己的一个设想,并不表示它真的可行。
有一句很有意思的话是:“打败百年尼康的,不一定是佳能,也可能是2000万柔光自拍,打败康师傅的不一定是统一,也可能是美团,饿了吗”。计算机视觉的未来,非得是深度学习吗?当硬件水平不断提升,未来会不会出现一条新的路线,直接对深度学习实行了降维打击,我们现在考虑的大算力和大数据的问题在那条路线里也许压根不存在。
计算机视觉目前最缺的是产品,导致现在的饱和也是因为没什么产品,当计算机视觉在各个场景下落地应用,若前面的一些设想能实现,我们需要针对每一个特定的场景设计专一的、轻量化的、小型的模型,到那时,计算机视觉将又会出现供不应求的情况。
以往我们总是带着需求去研发技术,很奇怪的是,到了计算机视觉这个领域,大家都在带着技术去找应用场景。然后我们就发现了,深度学习这个技术需要大数据和计算算力,结果符合大算力和大数据的场景没几个,然后就没人做产品了?
最后,引用毛爷爷打辽沈战役的一段话:“好吧,不太好勉强他们,同意他们先解决大算力和大数据好了,回电要讲清楚,只能说在目前情况下,先研究解决大算力和大数据的方法比较有利,不要过分强调研发新产品、跟硬件结合的困难,这也不行,那也不行,没有那么一回事。”
本文来源于公众号CV技术指南的行业系列,更多内容请扫描文末二维码关注公众号。
最近把公众号(CV技术指南)所有的技术总结打包成了一个pdf,在公众号中回复关键字“技术总结”可获取。