图像和视觉处理 —— 计算机视觉概述
计算机视觉,即让计算机去模拟人类的视觉系统,来获取并理解图像中的信息。
现在世界上每天产生的数据70%都是以图像或视频的形式呈现,同时世界上的摄像头数量已经过亿,每天存储的视频时长超过了8亿小时。但是,被有效利用的图像、视频数据仍不到20%。
随着深度学习的发展,虽然数据被利用的程度越来越高,以往处理图像的手段得到了升级,但是计算也开始变得更加复杂,这也决定了“当下的发展”始终被限定在语义鸿沟之中。
因为生物获取视觉信息的推理过程更为简单、高级,计算机视觉的推理进化仍需要走很长的一段路。
回到正题,这一节先对计算机视觉的几个主要任务进行认知。
检测与定位
确定是否有目标存在、目标在什么位置以及其包含的关键点坐标,如人脸关键点检测、人体关键点检测:
- 人脸关键点检测,通过人脸轮廓、器官节点的组合和追踪来识别人的面部特点,是人脸识别的基础;
- 人体关键点检测,通过人体关键节点的组合和追踪来识别人的运动和行为,对于描述人体姿态,预测人体行为至关重要,是诸多计算机视觉任务的基础,例如动作分类,异常行为检测,以及自动驾驶等,也为游戏、视频等提供新的交互方式。
分类
对生物、物体、文字符号进行类别判定后映射到一个标签,如图像分类、视频分类:
- 图像分类,通过对不同类别图像,以图像的语义信息进行区分,是计算机视觉中重要的基础问题,也是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层视觉任务的基础;
- 视频分类,是视频理解任务的基础,与图像分类不同的是,分类的对象不再是静止的图像,而是一个由多帧图像构成的、包含语音数据、包含运动信息等的视频对象。因此,理解视频需要获得更多的上下文信息,不仅要理解每帧图像是什么、包含什么,还需要结合不同帧,知道上下文的关联信息。
分割
分割任务主要分为实例分割和语义分割,实例分割是物体检测加上语义分割的综合体;
语义分割,是将图像像素,根据其表达的含义的不同进行分组/分割:
- 语义是指对图像内容的理解,描绘出什么物体在哪里做了什么事情等;
- 分割是指对图片中的每个像素点进行标注,划分其类别;
- 近年来,语义分割被用在无人驾驶技术中分割街景来避让行人和车辆、医疗影像分析中辅助诊断等。
计算机视觉 —— 人脸识别
人脸识别是当下计算机视觉中应用最热门的一门技术,其执行了检测定位、识别这几个关键任务来达到对人脸的高效辨认,解决了几个关键的问题 :
如信任——手机相信了你是主人后让你解锁、关卡相信了你是具有许可的人后让你过关、银行系统相信了你是诚信用户后…
定位——摄像机看到你之后告诉监控系统你在哪…
所以接下来,我将尽量对所有涉及到的概念进行比较详细的描述,通过在了解人脸识别技术点的过程中更好的去理解计算机视觉概念之间的联系。
概念
人脸识别技术即计算机通过对采集到的包含人脸的数据进行处理之后,达到分类的目的。
瓶颈
首先,人脸识别的“发展趋势”亦是朝着“智能化”——推理、“人性化”——理解,的方向发展的,而现在的“瓶颈”也正是因为人脸识别对于人脸的推理能力不足导致的——特征依赖程度高。
回顾之前“瓶颈”的概念瓶颈”是促成“当下的发展”的因素,而“当下的发展”即是要去突破造成瓶颈的“限制条件”;
数据质量限制:
- 图像质量:
- 大多数情况下,实际采像质量远低于训练图像质量,即使算法模型可以达到很高的精确度,但由于采像图片质量不好的原因,实际效果会大打折扣甚至不可用,造成采集质量的问题如下:
- 光照影响:过曝、过暗;
- 模糊:运动对焦;
- 分辨率:大场景小样本。
- 现在如何克服:
- 提升硬件:
- 提升摄像头精度;
- 对摄像头进行补光/滤光。
- 改变环境:
- 将摄像头固定在角度合适的位置;
- 要求目标配合。
- 利用算法:
- 对图像进行预处理。
- 大多数情况下,实际采像质量远低于训练图像质量,即使算法模型可以达到很高的精确度,但由于采像图片质量不好的原因,实际效果会大打折扣甚至不可用,造成采集质量的问题如下:
- 图像维度:
- 人类的视觉系统获取的是3D的信息,而现在的人脸识别技术是基于2D图像的识别——2D图像包含的特征是有限的、是没有深度的,存在很大的被攻击的风险。所以,人脸识别常被质疑安全性不够高,很多人脸识别的产品都能被轻易破解;
- 为了突破这个限制,即如何获取更精准、全面的信息来保证安全,3D成像技术正随之发展,这一项技术被应用在活体检测上来提升人脸识别的性能;
- 活体检测:
- 非活体:
- 同一人照片;
- 同一人视频/人脸模型重建;
- 现在如何克服:
1). 依照系统随机指令做出动作;
2). 3D人脸识别。
- 伪活体:
- 相似人;
- 3D人脸仿真面具;
- 人脸模型实时重建。
- 现在如何克服:
1). 人脸识别技术和其他生物识别技术相结合,例如人脸识别+指纹识别、人脸识别+虹膜识别等等;
2). 3D人脸识别:由于其点阵投影器、泛光照明灯的特性,可以对其人脸肤色与其它材质有较好的区分性。
- 数据噪声/体量:
- 训练算法时,算法性能将受制于被标记数据的质量和数量,若无大量、优质的细分应用场景数据,该特定应用场景的算法迭代很难实现突破:
- 现在如何去克服:
- 细分场景数据量:找到细分场景并不断积累;
- 噪音:
- 打标方式的选择:
- 图像中圈出对应目标:F1值最高;
- 从图像中选出包含目标的图像;
- Y/S法判断是否为目标:F1值最低。
算法限制:
本质是因为当前算法难以突破语义鸿沟,而以下两点问题当下尤为明显:
- 对监督学习的依赖:
- 需要精准的打标方式,比如圈出对应图片中对应目标的脸才能为学习提供一个良好的养料;
- 目前这是所有机器学习问题难以跨越的难关,虽然“没有免费的午餐”,但是在计算机视觉方面能够做到无监督学习才能迈向真正的“智能”。
- 对特征完整性的依赖:
- 识别原理:
- 人脸图像的特征映射得到特征空间;
- 人脸识别在比对的时候,即比对两个人脸的特征空间,距离过远则判定为不相似。
- 原因:
- 人脸是具备多变性的,如表情、姿态等导致人脸特征点距离真实位置偏移过大,算法初始化时的特征点不够鲁棒。
- 姿态变化;
- 表情变化;
- 年龄跨度:
1). 随着人的生长、面部的五官比例、皮肤都会发生变化,这些变化使得人脸识别特别困难。 - 遮挡。
- 现在如何克服:
- 工程角度:研发质量模型,对检测到的人脸质量进行评价,质量较差则不识别;
- 应用角度:要求配合;
- 算法角度:
- 概述:
1). 基于特征点初始化问题,利用深度学习方法粗略计算特征点,再结合几何重投影法来计算精准位置。 - 思路:
1). 使用深度卷积网络粗略估计特征点位置,结合3D人脸姿态估计与重投影确定特征点初始位置,然后使用经典的回归树集成方法提精位置;
2). 通过深度学习+几何重投影方法初始化,结合传统特征点定位的回归模型ERT,在各个数据集上几乎都达到了最好的性能。 - 实现:
1). CNN模型计算每个特征点概率图,取最大相应的位置为特征点位置;
2). 计算3D人脸模型,通过POSIT计算人脸3D姿态,并将3D特征点使用计算得到的姿态矩阵重投影到人脸图像中,作为下一步的特征点提精的初始位置;
3). ERT非刚体形状估计,改进传统回归树模型由粗到细迭代计算特征点位置,直至算法收敛。ERT的特征提取使用快速的FREAK像素比较二值特征。
- 识别原理:
当下的发展
数据采集:
- 成像水平:
- 低分辨率的摄像头将逐渐被取代为高清摄像头,为人脸识别的准确性提供更好的基础;
- 2D摄像头将逐渐被取代为3D摄像头,为人脸识别的安全性提供更好的基础。
数据传输:
- 数据存储方式改变:
- 数据存储方式转变,存储趋向云端化;
- 今后的数据无需再从DVR之类的录像存储设备转出再处理,获取的图像直接存储云端并进行实时计算。
处理方式:
- 现在视觉落地的方式的改变:
- 边缘计算;
- 云端计算。
- 云边结合:
- 随着5G的发展,边缘和后端可以很