智能座舱算法基础之机器视觉篇

0 评论 2534 浏览 8 收藏 12 分钟

机器视觉在智能座舱研发中发挥着重要作用,其中,与智能座舱相关的机器视觉常见任务有分类、检测、分割和关键点等。这篇文章里,作者就重点介绍了这些任务的相关算法,一起来看看吧,或许会对想了解智能座舱和HMI的同学们有所帮助。

随着智能座舱技术的发展,机器视觉的应用需求也逐步扩大,包括人脸识别、手势识别、驾驶员行为识别等。机器视觉通过机器来模拟生物视觉,代替人眼对目标进行分类、识别、跟踪等。

机器视觉目前是人工智能领域应用最广的方向之一,在智能座舱研发中发挥着重要作用。与智能座舱相关的机器视觉常见任务见下图:

与智能座舱相关的机器视觉常见任务

下面重点介绍这些任务的相关算法。

一、分类

图像分类简单来说是输入一个图像,得到对图像内容分类描述的问题。随着分类算法的快速发展,图像分类已经从最简单的灰度图数字10分类,发展到现在千万级别ImageNet数据集的20000多类,计算机的推理精度和速度已经远远超越了人眼。

图像分类是计算机视觉的核心,是检测、分割等算法的基础,广泛应用于智能驾驶、智能安防、智能家居等多个领域。分类算法是从已知的分类集中给图像分配一个标签,比如猫、狗、老虎等。在智能座舱里的应用比如驾驶员的性别分类,是否在用手机打电话等。

二、检测

目标检测是机器视觉领域最具挑战的方向之一,它涉及物体的分类和定位。简而言之,检测的目的是得到目标在图像中的定位,并且判断物体的类别。下图所示为一张在目标检测中的常用图像,可以看到图像里的每个目标,包括人和汽车,都可以被精确地定位和识别。

图为目标检测示意图(图片来源网络)

随着智能座舱技术的发展,目标检测在智能座舱算法中的作用也在不断扩大。通过深度学习方法,可以检测到座舱内的人和物体,为后续的目标跟踪、行为判断等打好基础。

经典目标检测算法流程如下所示,大部分检测算法也是在这个流程图的基础上进行删减或改进的。

经典目标检测算法流程

1)经典目标检测算法流程

主要步骤:

候选框:通常采用滑动窗口的方法提取。

特征提取:基于颜色、纹理、形状的方法,以及一些中层次或高层次语义特征的方法来提取。

目标判别:对候选区域提取出的特征进行分类判定,如单类别(区别背景、目标)、多类别(区分当前窗口中对象的类别)。

非极大值抑制(NonMaximum Suppression,NMS):解决候选框重叠问题,NMS对候选框进行合并。

2)基于深度学习的常见检测算法,如Faster RCNN、YOLO系列等。

三、分割

许多计算机视觉任务需要对图像中的内容进行理解与分割,并使每个部分的分析更加容易。目前,图像分割技术主要通过计算机视觉深度学习模型来理解图像的每个像素所代表的真实物体,从而进行“像素级别”的分类。图像分割,顾名思义就是根据某些规则将图片分成若干特定的、具有独特性质的区域,并抽取出感兴趣的目标。

图像分割子领域图,主要包括以下几种:

1)语义分割(Semantic Segmentation):对于一张图像,分割出所有的目标(包括背景),但对于同一类别的目标,无法区别不同个体。例如,你可以将与猫相关的所有像素分离出来,并将它们涂成绿色。这也被称为dense预测,因为预测了每个像素的含义。

2) 实例分割(Instance Segmentation):将图像中除背景之外的所有目标分割出来,并且可以区分同一类别下的不同个体。例如,下图每辆车都用不同的颜色表示。

3) 全景分割(Panoptic Segmentation):在实例分割的基础上,可以分割出背景目标。

a)图像 b)语义分割 c)实例分割 d)全景分割 图片来源网络

深度学习使用的算法传统的图像分割在效率上不如深度学习技术,因为它们使用严格的算法,需要人工干预和专业知识,主要包括:

1)基于阈值:将图像分割为前景和背景。指定的阈值将像素分为两个级别之一,以隔离对象。阈值化将灰度图像转换为二值图像或将彩色图像的较亮和较暗像素进行区分。

2)基于K-means 聚类:算法识别数据中的组,变量K表示组的数量。该算法根据特征相似性将每个数据点(或像素)分配到其中一组。聚类不是分析预定义的组,而是迭代地工作,从而有机地形成组。

3)基于直方图的图像分割:使用直方图根据“灰度”对像素进行分组。简单的图像由一个对象和一个背景组成。背景通常是一个灰度级,是较大的实体。因此,一个较大的峰值代表了直方图中的背景灰度。一个较小的峰值代表这个物体,这是另一个灰色级别。

4) 基于边缘检测:识别亮度的急剧变化或不连续的地方。边缘检测通常包括将不连续点排列成曲线线段或边缘。例如,一块红色和一块蓝色之间的边界。

基于深度学习的图像分割方法下面介绍几个经典的基于深度学习的图像分割方法,包括全卷积网络(FullyConvolutional Networks,FCN)、ReSeg和 Mask R-CNN。

1) FCN:FCN是一种基于上采样/反卷积的分割方法,能够实现图像端到端的分割。

2) ReSeg:由于FCN没有考虑到局部乃至全局的信息,对各个像素分别进行分类,没有充分考虑像素与像素的关系,缺乏空间一致性,而在语义分割中这种像素间的依赖关系是非常有用的。因此在ReSeg中使用RNN去检索上下文信息,以此作为分割的一部分依据。

3) MaskRCNN:MaskRCNN的本质是基于候选区域的分割方法,是一个基于asterRCNN模型的一种新型的实例分割模型。在MaskRCNN的工作中,它主要完成了目标检测、目标分类、像素级分割三件事情。

四、关键点

在图像处理中,关键点本质上是一种特征,在图像中用一个点表示物体特定部位的特征。它是对物体的一个固定区域或者空间物理关系的抽象描述,它不仅是一个点信息,更代表着关键点周围邻域特征的组合关系。

常见关键点有人脸关键点、人体骨骼关键点、标识关键点等。人脸关键点涉及人脸识别的相关场景,人体骨骼关键点可以应用于分析人体的行为动作,标识关键点则一般和智能驾驶等场景相关。

在自动驾驶当中,通过关键点检测可以识别人或者其他不可控障碍物的行为动作,进而预测其下一步动作及意图。在智能座舱系统中,通过人脸关键点的检测可以识别出驾驶人员的情绪、精神状态等。

其次,交通标志的关键点检测使得汽车能够感知交通环境下的各种标志信息。例如在自动泊车中,需要先检测出车位,然后通过关键点检测把车位的角点识别出来。通过车位的角点坐标信息,可以精确获取车位相对自车的位置信息,然后通过控制模块实现对自车的控制,实现自动泊车功能。因此,车位的关键点检测对自动泊车来说是非常重要的信息。

因为关键点检测的算法在不同场景下差异较大,而且方法众多,这里主要介绍两个基础检测方法,包括坐标点方法以及热力图方法。坐标点方法主要是发源自人脸关键点检测,用CNN提取特征,然后使用全连接层直接数值回归关键点的坐标。经典网络包括DeepPose、MTCNN等。

研究人员在研究人体关键点检测算法时发现,照搬人脸关键点的暴力回归做法效果不太好,主要是由于人体的姿态动作变化较多,网络针对关键点的学习难度增大,而人脸的关键点基本在一个平面上,相对稳定,内在规律比较简单,网络学起来也相对容易。

基于以上分析,研究人员进而提出使用热力图预测的方法,类似分割中的dense预测的思想,网络预测的结果也是一张热力图,通过对预测结果进行后处理提取关键点的坐标。经典网络包括Hourglass、Openpose、Simplebaseline、HRNet等。

本文由 @ALICS 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!