1、计算机视觉的应用
计算机视觉在我们生活中已经有了很广泛的应用,在我们可见、不可见;可感知、不可感知的地方,深深地影响了我们的生活、生产方式。
- 日常生活:美颜相机、火车站刷脸进站、线上办理业务的身份认证、自动驾驶等等
- 医学领域:医学影像分析、疾病筛查、病理学图像分析、药物研发、皮肤病检测、运动和康复治疗等等。
- 工业领域:质量与缺陷检测、自动化生产线和机器人、自动化物流和仓储管理、尺寸测量、几何分析、包装和标签识别、安全与安防监控、3D视觉等等。
- 农业领域:作物监测与健康分析、精准农业(精准施肥、灌溉)、杂草识别与自动除草、果实成熟度检测与自动采摘、牲畜监测与健康管理、种子质量检测、产量预测等等。
- 城市治理:智能交通管理、公共安全与安防监控、人群管理与公共秩序维护、智能停车管理、智能建筑与社区管理、智慧零售与城市商业管理等等。
- 商业领域:智能零售、客户行为分析、人脸支付、个性化广告、虚拟试衣和增强现实购物、商品监控与库存管理、防盗与安全监控、自动化物流与供应链管理、电子商务中的视觉搜索、品牌保护与假货识别、数字人等等。
计算机视觉在我们社会各方面都有深入的应用,各种名词眼花缭乱,让人应接不暇,看起来让人找不到头绪,这些眼花缭乱的应用都是由计算机视觉一些基础任务组成:图像分类、目标检测、目标分割、图像生成、视觉多模态,这些基础任务最基本的原理都是一样的:数值回归。
2、视觉基础任务
2.1 图像分类
图像分类是根据图像中的内容把类别标签分配给图像。比如我们生活中的刷脸就有一个步骤是图像分类,即把类别标签分给人脸。
图像分类是怎么做的呢?图像在计算机中是一堆数据,不同内容的数据不一样,直观经验是直接对比这些数据距离的远近,也就是这些数据的相似程度,但是图像是矩形的,目标不可能正好也是矩形的,也就是说图像中有背景,而且同一类目标的会存在外观上的差别,比如颜色;即使同一个目标的也可能存在柔性变化、姿态变化。比如下图鸟的图片,鸟有正对摄像机,有侧对摄像机的;有的鸟嘴张开了,有的闭着的;有的头歪着,有的正的,有的背景时天空,有的背景时地面,等等这些因素都会影响算法的分类准确性。因此需要能获取能描述目标本质的特征,而不是看起来的特征,比如人有两条腿和两条胳膊,不能因为某个人少了一条就说不是人。
因此,首先让要分类的标签内容占据图像的主要部分,尽量减少背景的影响;然后利用一定手段获取图像特征,使得获取的特征具有一定抗干扰能力,如抗光照变化,柔性目标外形变化等等;最后利用分类器将图像划分到某一个类中。
2.2 目标检测
目标检测是从图像中把所需要的目标定位出来,并给出类别标签。目标检测中包含了两个部分:找到目标位置和确定目标的类别(即分类)。位置一般用矩形框表示,如下图所示。
目标检测是在一张完整的图像中,把占图像比较小的目标识别和定位出来。目标检测里的分类不是整张图的分类,而是图像中某个区域的分类,确定这块区域的标签信息。
我们人定位识别某个目标是一个非常自然而且似乎是一起完成的,对我们人来说似乎是非常具象的。图像在计算机里是一堆数字,虽然我们知道这些数字表示图像,但是如果把这些数字给我们看,我们是无法知道里面有什么的。那计算机怎么定位识别目标的呢?这些数字经过显示器能让我们区分不同的目标,表明这些数字是有规律的,并且数字之间存在一定的关联,才使得人能够看明白里面的内容。
2.3 目标分割
目标分割和目标检测有些类似,都是确定某个区域的像素是否属于某个目标类别;不同的是目标分割确定图像哪些像素属于目标,是像素级别的判别,理想情况下,目标分割不包含背景的像素。目标分割中包含了两个部分:确定像素是否属于目标以及目标的类别(即分类)。目标分割相对于目标检测来说,更加定准定位目标。如下图所示,矩形框是目标检测的结果,斑马上透明色是目标分割的结果,分割精细的描述了目标的边界。
2.4图像/视频生成
图像/视频生成是根据一定的输入而生成图像/视频。图像生成相对来说比较简单,应用比较广。可以文生图,也可以图生图。文生图很多人都不陌生,很多人在工作中直接会用到;图生图就是要输入图像,生成另一幅图像,像老图像修复、灰度图像上色、美颜、超分等等都可以看作是图生图。下图是在文生图网站上生成的图,我给的文本是高原草原风光,但是生成的图完全不符合,这也说明视觉算法很多时候也会失灵的。
2.5视觉多模态
视觉多模态是最近几年才火爆的,输入是视觉和其他的数据(如文本、语音等),不同的模型可以完成不同的任务,如生成、检测、图像描述等等。下图是智谱AI的CogVLM论文里的实验图,给模型一张图,一个prompt,模型根据这两个条件来生成对应的描述。视觉多模态还有一个应用:开放词汇,目标是让模型学习对应目标的图像、词汇,从而让模型能基于新的目标词汇在图像中找出/判断目标。
3、视觉算法演变
3.1 黎明前黑暗——深度学习之前的方法
早期的特征是人通过观察和数学上的推导获取的特征,再利用一些数学上的一些原理定义分类器,从而实现对目标的分类。这时期的算法在实验室条件,也就是严格控制环境条件下能取得不错的效果,但是基本上无法推广使用。这阶段主要方法haar+adaboost、HoG+SVM、LBP、PCA等等。
3.2 黎明——深度学习方法
我们现在处于黎明时期。这个时期,深度学习方法使得视觉算法获得了一定的社会应用,但是在有些时候也会出错,但是要么人可以忍受,要么用于辅助人的工作。不管怎样,是真的可以用了。这阶段的算法结构基础是卷积神经网络和Transformer。
3.3 未来
视觉算法未来会是什么样,现在无法预测,但是未来算法的数据基础很可能现在已经完善了,只是尚未到其爆发的时候。
4、总结
视觉算法已经获得了很多的应用,不仅仅是传统的分类、分割、检测获得应用,多模态大模型也逐步在各种场景有应用。
但是算法在应用中会遇到很多问题,这些问题归根到底主要是成本问题。因为算法在应用中是一个系统,而不仅仅是算法,系统其他部分也需要占用资源。如果为了追求效果而把算法模型做的很大,需要的资源就很多,这样成本就很高,特别是GPU资源。有的算法集成到低端的端侧芯片里,这些单薄的芯片里,不仅仅要运行算法,还有其他的业务需要运行,导致资源异常紧张,导致这个的主要原因就是成本。因为成本高了,愿意付费的用户就少了,企业可能入不敷出,所以为了保证企业生存,企业需要平衡各方面的因素。