比如下图,做到的不仅仅是检测到图像前景中有四个⼈、⼀条街道和⼏辆⻋。除了这些基本信息,⼈类还能够看出图像前景中的⼈正在⾛路,其中⼀⼈⾚脚,我们甚⾄知道他们是谁。我们可以理性地推断出图中⼈物没有被⻋撞击的危险,⽩⾊的⼤众汽⻋没有停好。⼈类还可以描述图中⼈物的穿着,不⽌是⾐服颜⾊,还有材质与纹理。⼈类能够理解和描述图像中的场景。
计算机视觉,图像处理,图像分析,机器⼈视觉和机器视觉是彼此紧密关联的学科。
1、计算机视觉的研究很⼤程度上针对图像的内容。如果你翻开带有上⾯这些名字的教材,你会发现在技术和应⽤领域上他们都有着相当⼤部分的重叠。这表明这些学科的基础理论⼤致是相同的,甚⾄让⼈怀疑他们是同⼀学科被冠以不同的名称。然⽽,各研究机构,学术期刊,会议及公司往往把⾃⼰特别的归为其中某⼀个领域,于是各种各样的⽤来区分这些学科的特征便被提了出来。下⾯将给出⼀种区分⽅法,尽管并不能说这⼀区分⽅法完全准确。
2、图像处理旨在处理原始图像以应⽤某种变换。其⽬标通常是改进图像或将其作为某项特定任务的输⼊,⽽计算机视觉的⽬标是描述和解释图像。例如,降噪、对⽐度或旋转操作这些典型的图像处理组件可以在像素层⾯执⾏,⽆需对图像整体具备全⾯的了解。
3、机器视觉主要是指⼯业领域的视觉研究,例如⾃主机器⼈的视觉,⽤于检测和测量的视觉。这表明在这⼀领域通过软件硬件,图像感知与控制理论往往与图像处理得到紧密结合来实现⾼效的机器⼈控制或各种实时操作。
⽬前CV公司⽐较集中的技术赛道有:⼈脸识别、⾃动驾驶、医疗图像等,但⽬前⽽⾔,商业化落地最快的还是⼈脸识别及其业务相关的⼀些技术,⽐如银⾏会⽤到⼈脸和⾃然场景下的OCR(⽂字识别),还有浸⼊式⼤数据⻛控,安防会⽤到⼈脸、⼈体、⻋辆与⼤数据分析等。
实体零售店利⽤计算机视觉算法和摄像头,了解顾客及其⾏为。计算机视觉算法能够识别⼈脸,确定⼈物特征,如性别或年龄范围。此外,零售店还可以利⽤计算机视觉技术追踪顾客在店内的移动轨迹,分析其移动路线,检测⾏⾛模式,并统计零售店店⾯受到⾏⼈注意的次数。
添加视线⽅向检测后,零售店能够回答这⼀重要问题:将店内商品放在哪个位置可以提升消费者体验,最⼤化销售额。计算机视觉还是开发防盗窃机制的强⼤⼯具。⼈脸识别算法可⽤于识别已知的商店扒⼿,或检测出某位顾客将商品放⼊⾃⼰的背包。
在医疗⾏业中现有计算机视觉应⽤的数量⾮常庞⼤。毫⽆疑问医疗图像分析是最著名的例⼦它可以显著提升医疗诊断流程。此类系统对 MRI 图像、CT 扫描图像和 X 光图像进⾏分析找出肿瘤等异常或者搜索神经系统疾病的症状。在很多情况下图像分析技术从图像中提取特征从⽽训练能够检测异常的分类器。但是⼀些特定应⽤需要更细化的图像处理。
例如对结肠镜检查图像进⾏分析时分割图像是必要的这样才能找出肠息⾁防⽌结直肠癌。
上图是观察胸腔元素所需的图像分割结果。该系统分割每个重要部分并着⾊:肺动脉(蓝⾊)、肺静脉(红⾊)、纵膈(⻩⾊)和横膈(紫⾊)。⽬前⼤量此类应⽤已经投⼊使⽤如估计产后出⾎量、量化冠状动脉钙化情况、在没有 MRI 的情况下测定⼈体内的⾎流量。
但是医疗图像并⾮计算机视觉在医疗⾏业中唯⼀的⽤武之地。⽐如计算机视觉技术为视障⼈⼠提供室内导航帮助。这些系统可以在楼层平⾯图中定位⾏⼈和周围事物等以便实时提供视觉体验。视线追踪和眼部分析可⽤于检测早期认知障碍如⼉童⾃闭症或阅读障碍这些疾病与异常注视⾏为⾼度相关。
你是否思考过,⾃动驾驶汽⻋如何「看」路?计算机视觉在其中扮演核⼼⻆⾊,它帮助⾃动驾驶汽⻋感知和了解周围环境,进⽽恰当运⾏。计算机视觉最令⼈兴奋的挑战之⼀是图像和视频⽬标检测。这包括对不同数量的对象进⾏定位和分类,以便区分某个对象是交通信号灯、汽⻋还是⾏⼈,如下图所示:
此类技术,加上对来⾃传感器和/或雷达等来源的数据进⾏分析,使得汽⻋能够看⻅。
2、七十年代,同样是在MIT,学者David Marr发表的著作《Vision》从严谨又长远的角度给出了CV的发展方向和一些基本算法,其中不乏现在为人熟知的“图层”的概念、边缘提取、三维重建等。
3、1999年David Lowe提出了尺度不变特征变换(SIFT, Scale-invariant feature transform)目标检测算法,用于匹配不同拍摄方向、纵深、光线等图片中的相同元素。
计算机视觉基于大量不同任务,并组合在一起实现高度复杂的应用。计算机视觉中最常见的任务是图像和视频识别,涉及确定图像包含的不同对象。
四大主要任务
1、图像分类
计算机视觉中最知名的任务可能就是图像分类了,它对给定图像进行分类。我们看一个简单的二分类例子:我们想根据图像是否包含旅游景点对其进行分类。假设我们为此任务构建了一个分类器,并提供了一张图像(见下图)。
我们要得出这张建筑图片是否是埃菲尔铁塔。
我们想象一个同时包含定位和分类的动作,对一张图像中的所有感兴趣对象重复执行该动作,这就是目标检测。该场景中,图像中的对象数量是未知的。因此,目标检测的目标是找出图像中的对象,并进行分类。
在这个密集图像中,我们可以看到计算机视觉系统识别出大量不同对象:汽车、人、自行车,甚至包含文本的标志牌。这个问题对人类来说都算困难的。一些对象只显示出一部分,因为它们有一部分在图像外,或者彼此重叠。此外,相似对象的大小差别极大。目标检测的一个直接应用是计数,它在现实生活中应用广泛,从计算收获水果的种类到计算公众集会或足球赛等活动的人数,不一而足。
我们可以把实例分割看作是目标检测的下一步。它不仅涉及从图像中找出对象,还需要为检测到的每个对象创建一个尽可能准确的掩码。
你可以从上图中看到,实例分割算法为四位披头士成员和一些汽车创建掩码(不过该结果并不完整,尤其是列侬)。
还有实例分割与语义分割有所不同,物体分割不仅需要对图像中不同的对象进行分类,而且还需要确定它们之间的界限、差异和关系。
目标追踪旨在追踪随着时间不断移动的对象,它使用连续视频帧作为输入。该功能对于机器人来说是必要的,以守门员机器人举例,它们需要执行从追球到挡球等各种任务。目标追踪对于自动驾驶汽车而言同样重要,它可以实现高级空间推理和路径规划。类似地,目标追踪在多人追踪系统中也很有用,包括用于理解用户行为的系统(如零售店的计算机视觉系统),以及在游戏中监控足球或篮球运动员的系统。