人工智能(artificial intelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。对图像、视频、语音和文字等内容的理解,构成了我们现在人工智能的基础,其中机器视觉是人工智能的核心部分。本节将介绍基于机器视觉的人工智能,具体包括在图像、视频、三维(three dimensions,3D)数据中机器视觉的基本任务,如分类、检测、分割。
图像是机器视觉与人工智能研究的基本数据之一,本节将介绍基于图像的分类、目标检测、语义分割和目标分割任务。
图像分类任务是机器视觉中最基本的任务之一,如图1-7左侧(来自CIFAR-10数据集)所示。图像分类会根据整张图像的信息区分图像类别,并赋予类别标签。
图像目标检测任务的输入是图像,输出是目标的位置和类别,其中位置通常以边界框的形式可视化呈现,如图1-7右侧(来自MS COCO数据集)所示。此项任务能够根据各个图像的局部信息,对图像中的目标进行定位和分类。
图1-7 图像分类(左)与图像目标检测(右)示例
分割指将整个图像分成一个个像素组,然后对像素组进行标记和分类,该任务分为语义分割和实例分割两类。
图像语义分割和实例分割的输入都是图像,输出都为整张图像各个类别物体的像素位置和所属类别,如图1-8左侧(来自CamVid数据集)所示。图像语义分割是对密集的像素进行分类,确定每个类别的边界,而在语义分割的基础上,实例分割还需要标注出图像中同一类别物体的不同个体,如图1-8右侧(来自MS COCO数据集)。
图1-8 图像语义分割(左)与图像实例分割(右)示例
如今,互联网上视频的规模日益庞大,网络影视作品、短视频、直播等视频数据随处可见,视频正逐渐成为人们接触数字世界最主要的数据格式。本节将介绍基于视频的分类、目标检测、语义分割和目标分割任务。
视频分类任务的输入是视频,即具有时序关系的图像序列,其中每一张图像称为一帧,输出是一个或多个主题关键词。视频分类能够基于视频的语义内容,将视频自动分类至单个或多个类别。如图1-9左侧所示,根据视频内容,视频分类任务将两者分别分成“打篮球”和“参加毕业典礼”。
视频目标检测任务的输入是视频,输出是视频每帧图像中目标的位置和类别,如图1-9右侧所示。该任务对视频中出现的目标进行检测,并努力确保每一视频帧发生变化的目标在以后的视频帧还是属于同一个目标。以图1-9右侧右下角图片为例,视频目标检测算法旨在将视频每一帧中的斑马所在的位置准确预测出来,即使斑马的位置发生改变,依然能够识别出这是同一只斑马。
图1-9 视频分类(左) [7] 与视频目标检测(右) [8] 示例
目前主流的视频分割任务包括视频语义分割和视频目标分割。视频语义分割任务的输入是视频,输出是视频每帧图像各个类别物体的像素位置和所属类别,如图1-10左侧(来自Cityscapes数据集)所示。该任务对视频的每帧图像进行图像语义分割时,需要考虑视频帧数据量,以及相邻帧之间的关系。
视频目标分割任务的输入是视频,输出是视频每帧图像中的特定目标实例的对应像素位置。视频目标分割首先在整个视频中分割一个特定的目标实例,然后在每一连续帧中寻找感兴趣目标的对应像素。如图1-10右侧(来自Perazzi数据集)所示,视频帧中用棕色像素分割出的实例,就是后续每一连续帧感兴趣的目标。视频语义分割旨在预测视频中所有类别物体(如街道、车、树木等)的像素位置,而目标分割只关注特定种类的目标所属的像素位置,并区分出该目标种类的不同个体(如人、骆驼等)。
图1-10 视频语义分割(左)与视频目标分割(右)示例
随着3D采集技术的快速发展,3D传感器[包括各种3D扫描仪、激光雷达和RGB-D相机(如Kinect、RealSense和苹果深度相机)]逐渐普及。这些传感器采集到的3D数据可以提供丰富的几何、形状和尺度信息。随着研究者对3D数据的深度学习研究,越来越多的方法被提出并用来解决与3D数据相关的各种问题,包括3D形状分类、3D目标检测与跟踪、3D点云分割等。
点云是一种常用的3D数据格式,它保留了3D空间中原始的几何信息。相比于图像来说,3D点云数据可以提供丰富的几何、形状和尺度信息,且不易受光照强度变化和其他物体遮挡等影响。因此,它是自动驾驶、智能机器人、遥感和医疗等场景理解、应用的首选表示形式。
3D形状分类任务的输入为3D点云数据,输出是对应的类别标签。此任务旨在提取3D点云数据的全局特征信息,然后根据不同的特征信息来区分3D点云数据的类别。如图1-11左侧(来自ShapeNet数据集)所示,图中包含多个3D点云数据,3D形状分类任务就是将图中所有的3D点云数据划分到椅子和汽车两个类别中。
3D目标检测任务的输入是场景的3D点云数据或深度图像,输出是目标的3D位置信息和类别,通常以3D边界框的形式显示。3D目标检测可以预测3D空间中关键目标的位置、大小和类别,在每个被检测物体周围生成一个有方向的3D边界框。如图1-11右侧所示,3D目标检测给输入的点云数据生成了有方向的3D边界框,并在普通二维图像中也标注了相应的3D边界框。如图1-11右侧(来自KITTI数据集)所示,给定交通场景的二维图像及对应点云数据,3D目标检测预测二维图片中车辆的位置,并以绿色边界框的形式展现,对于点云数据,同样预测边界框,绿色框内即检测的车辆对应的点云数据。
图1-11 3D形状分类(左)与3D目标检测(右)示例
3D点云分割任务根据分割粒度,可分为语义分割和实例分割两大类。
3D点云语义分割任务的输入是3D点云数据,输出是场景点云每个点的类别标签,如图1-12左侧(来自Stanford 3D semantic parsing 数据集)所示。3D点云语义分割将场景的3D点云信息逐点分类,赋予每个点语义标签,从而更准确地描述空间中物体的类型,例如绿色像素对应天花板,红色对应椅子。
3D点云实例分割任务的输入是3D点云数据,输出是场景点云每个点的类别标签和所属个体信息,如图1-12右侧(来自ScanNet数据集)所示。3D点云实例分割需要区分标签不同的点,还需要区分标签相同的实例,例如区分不同的桌椅等,通过对3D点云数据推理出更精确的目标。
图1-12 3D点云语义分割(左)与3D点云实例分割(右)示例