【CV面试】简述CNN、计算机视觉、人脸识别

本文整理自多篇博客。虽然不是原创,但是也是费了心血整理的O(∩_∩)O

目录

  • CNN:图像、视频
    • 1.CNN解决了什么问题?
      • 1.1.将大数据量的图片降维成小数据量
      • 1.2.保留图片特征,符合图片处理的原则
    • 2.CNN的思想来源
    • 3.基本原理
      • 3.1.卷积层:提取特征
      • 3.2.池化层:下采样、降维、避免过拟合
      • 3.3.全连接层:输出结果
    • 4.结构
    • 5.梯度的求法和反向传播过程
    • 6.Python实现
    • 7.应用
  • 科普:计算机视觉
    • 1.原理:同CNN【2.CNN的思想来源】
    • 2.挑战:同CNN【1.CNN解决了什么问题?】
    • 3.CV的8大任务
    • 4.CV的具体应用实例
  • 科普:人脸识别
    • 1.特点
    • 2.关键步骤
      • 2.1.人脸检测
      • 2.2.人脸对齐
      • 2.3.人脸编码
      • 2.4.人脸匹配
    • 3.难点
    • 4.算法发展历程
      • 4.1.传统机器学习算法的3个阶段
      • 4.2.深度学习算法的3个阶段
    • 5.应用实例
  • 模型发展
  • 参考

CNN:图像、视频

 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一 。
 由于卷积神经网络能够进行平移不变分类,因此也被称为平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)。

1.CNN解决了什么问题?

在CNN出现之前,图像对于人工智能来说是一个难题。原因如下。

1.1.将大数据量的图片降维成小数据量

 图像需要处理的数据量太大,导致成本很高,效率很低。
 图像是由像素构成的,每个像素又是由颜色构成的。

现在随随便便一张图片都是1000×1000像素以上的, 每个像素都有RGB 3个参数来表示颜色信息。
假如我们处理一张1000×1000像素的图片,我们就需要处理1000×1000×3=300W个参数!

 CNN把大量参数降维成少量参数,再做处理。
 在大部分场景下,降维并不会影响结果。比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。

1.2.保留图片特征,符合图片处理的原则

图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高。
【CV面试】简述CNN、计算机视觉、人脸识别_第1张图片
 CNN用类似视觉的方式保留了图像的特征,当图像做翻转、旋转或变换位置时,它也能有效的识别出来是类似的图像。

2.CNN的思想来源

  • 模仿人类大脑的特点,构造多层的神经网络。
  • 较低层的识别初级的图像特征。
  • 若干底层特征组成更上一层特征。
  • 通过多个层级的组合,最终在顶层做出分类。
    【CV面试】简述CNN、计算机视觉、人脸识别_第2张图片

人类的视觉原理:

  1. 摄入原始信号:瞳孔摄入像素 Pixels
  2. 初步处理:大脑皮层某些细胞发现边缘和方向
  3. 抽象:大脑判定,眼前的物体的形状,是圆形的
  4. 进一步抽象:大脑进一步判定该物体是只气球
    【CV面试】简述CNN、计算机视觉、人脸识别_第3张图片
    在最底层特征基本上是类似的,就是各种边缘。越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等)。到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。

3.基本原理

【CV面试】简述CNN、计算机视觉、人脸识别_第4张图片

3.1.卷积层:提取特征

 使用一个过滤器(卷积核) 来过滤图像的各个小区域,从而得到这些小区域的特征值(即,提取出图片中局部的特征),跟上面提到的人类视觉的特征提取类似。
 在具体应用中,往往有多个卷积核。每个卷积核代表了一种图像模式如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核

 如果我们设计了6个卷积核,可以理解为:
 我们认为这个图像上有6种底层纹理模式,也就是我们用6种基础模式就能描绘出一副图像。
 以下是25种不同的卷积核的示例:
【CV面试】简述CNN、计算机视觉、人脸识别_第5张图片

用一个卷积核扫完整张图片,运算过程如下图。

3.2.池化层:下采样、降维、避免过拟合

 即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。
 池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。
 例:原始图片是20×20的。下采样窗口为10×10,最终将其下采样成为一个大小2×2的特征图。

3.3.全连接层:输出结果

 经过卷积层和池化层降维过的数据,全连接层才能“跑得动”,不然数据量太大,计算成本高,效率低下。

4.结构

 典型的CNN并非只是3层结构,而是多层结构。
 LeNet-5 的结构:卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层,如下图所示:
【CV面试】简述CNN、计算机视觉、人脸识别_第6张图片

5.梯度的求法和反向传播过程

把卷积核旋转180°来反向传播

6.Python实现

有个博主写特别好

7.应用

  • 图像分类、检索
  • 目标定位监测:自动驾驶、安防、医疗
  • 目标分割:美图秀秀、视频后期加工、图像生成
  • 人脸识别:安防、金融、生活
  • 骨骼识别:安防、电影、图像视频生成、游戏

以上内容大部分整理自公众号:AI知识库。

科普:计算机视觉

  • 计算机视觉是人工智能的一个重要分支,它要解决的问题就是:看懂图像里的内容
  • 计算机视觉是一个跨学科的科学领域,涉及如何制作计算机以从数字图像或视频中获得高层次的理解。从工程的角度来看,它寻求自动化人类视觉系统可以完成的任务

1.原理:同CNN【2.CNN的思想来源】

构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类。

2.挑战:同CNN【1.CNN解决了什么问题?】

  • 特征难以提取
     同一只猫在不同的角度、不同的光线、不同的动作下,像素差异是非常大的。就算是同一张照片,旋转90度后,其像素差异也非常大!
     哪怕图片里的内容相似甚至相同,但是在像素层面,其变化会非常大。
  • 需要计算的数据量巨大
     手机上随便一张1000*2000像素的照片就要处理600万个参数,再算算现在越来越流行的4K视频。就知道这个计算量级有多恐怖了。

CNN解决了上面的两大难题(见上面CNN章节)

3.CV的8大任务

【CV面试】简述CNN、计算机视觉、人脸识别_第7张图片
具体任务的详情见网页

4.CV的具体应用实例

【CV面试】简述CNN、计算机视觉、人脸识别_第8张图片
以上内容整理自公众号:AI知识库

科普:人脸识别

  • 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。
  • 人脸识别是身份识别的一种方式,目的就是要判断图片和视频中人脸的身份是什么

1.特点

  1. 便捷性: 人脸是生物特征,不需要携带类似身份证的东西
  2. 非强制性: 识别的过程甚至不需要对象的配合,只要拍摄到人脸就可以进行识别,例如安防领域就是如此。
  3. 非接触性: 不需要跟设备进行接触,相比指纹更加安全一些。
  4. 并行处理: 一张照片里有多个人脸时可以一起处理,不像指纹和虹膜,需要一个一个来。

2.关键步骤

2.1.人脸检测

目的: 寻找图片中人脸的位置。当发现有人脸出现在图片中时,不管这个脸是谁,都会标记出人脸的坐标信息,或者将人脸切割出来。
方法: 可以使用方向梯度直方图(HOG) 来检测人脸位置。先将图片灰度化,接着计算图像中像素的梯度。通过将图像转变成HOG形式,就可以获得人脸位置。
【CV面试】简述CNN、计算机视觉、人脸识别_第9张图片

2.2.人脸对齐

目的:不同角度的人脸图像,对齐成同一种标准的形状
方法:定位人脸上的特征点,然后通过几何变换(仿射、旋转、缩放),使各个特征点对齐(将眼睛、嘴等部位移到相同位置)。
【CV面试】简述CNN、计算机视觉、人脸识别_第10张图片

2.3.人脸编码

目的: 人脸图像的像素值会被转换成紧凑且可判别的特征向量,这也被称为模板(template)
注意: 理想情况下,同一个主体的所有人脸都应该映射到相似的特征向量
【CV面试】简述CNN、计算机视觉、人脸识别_第11张图片

2.4.人脸匹配

目的: 比较两个模板,得到相似度分数。该分数给出了两者属于同一个主体的可能性

3.难点

人脸图像在现实世界中的呈现具有高度的可变性
【CV面试】简述CNN、计算机视觉、人脸识别_第12张图片

4.算法发展历程

【CV面试】简述CNN、计算机视觉、人脸识别_第13张图片

4.1.传统机器学习算法的3个阶段

  1. 几何特征阶段
  2. 表象特征阶段
  3. 纹理特征阶段

4.2.深度学习算法的3个阶段

  1. 网络更深、更宽: VGG 网络→ Inception 网络→ Resnet 网络。
  2. 扩大数据集,提高算法性能: 旷视、商汤等在学术公开竞赛中取得好成绩的厂商,开始发展实际业务。
  3. 更加轻量化: 与第一阶段相反,大家开始在不降低识别性能的基础上,研究网络的轻量化。轻量化的主要目的:(1)提升算法速度,甚至能够部署到移动端;(2)便于硬件实现,从而将人脸识别算法直接做成一个硬件模块。

5.应用实例

  • 门禁系统
  • 安防系统
  • 无人超市
  • 电子护照及身份证
  • 自主服务系统(如ATM)
  • 信息安全系统,如刷脸支付
  • 娱乐型应用,如抖音里的部分道具

模型发展

CNN→+BatchNorm→+残差连接

参考

https://easyai.tech/ai-definition/cnn/
https://easyai.tech/ai-definition/computer-vision/
https://easyai.tech/ai-definition/facial-recognition/

你可能感兴趣的:(#,deep_learning,卷积,人脸识别,算法,计算机视觉)