本文整理自多篇博客。虽然不是原创,但是也是费了心血整理的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.保留图片特征,符合图片处理的原则

图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高。

 CNN用类似视觉的方式保留了图像的特征,当图像做翻转、旋转或变换位置时,它也能有效的识别出来是类似的图像。

2.CNN的思想来源

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

人类的视觉原理:

  1. 摄入原始信号:瞳孔摄入像素 Pixels
  2. 初步处理:大脑皮层某些细胞发现边缘和方向
  3. 抽象:大脑判定,眼前的物体的形状,是圆形的
  4. 进一步抽象:大脑进一步判定该物体是只气球

    在最底层特征基本上是类似的,就是各种边缘。越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等)。到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。

3.基本原理

3.1.卷积层:提取特征

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

 如果我们设计了6个卷积核,可以理解为:
 我们认为这个图像上有6种底层纹理模式,也就是我们用6种基础模式就能描绘出一副图像。
 以下是25种不同的卷积核的示例:

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

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

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

3.3.全连接层:输出结果

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

4.结构

 典型的CNN并非只是3层结构,而是多层结构。
 LeNet-5 的结构:卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层,如下图所示:

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

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

6.Python实现

有个博主写特别好

7.应用

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

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

科普:计算机视觉

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

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

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

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

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

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

3.CV的8大任务


具体任务的详情见网页

4.CV的具体应用实例


以上内容整理自公众号:AI知识库

科普:人脸识别

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

1.特点

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

2.关键步骤

2.1.人脸检测

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

2.2.人脸对齐

目的:不同角度的人脸图像,对齐成同一种标准的形状
方法:定位人脸上的特征点,然后通过几何变换(仿射、旋转、缩放),使各个特征点对齐(将眼睛、嘴等部位移到相同位置)。

2.3.人脸编码

目的: 人脸图像的像素值会被转换成紧凑且可判别的特征向量,这也被称为模板(template)
注意: 理想情况下,同一个主体的所有人脸都应该映射到相似的特征向量

2.4.人脸匹配

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

3.难点

人脸图像在现实世界中的呈现具有高度的可变性

4.算法发展历程

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/

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

  1. 毕业设计:基于CNN做人脸识别

    基于CNN做人脸识别 首先,我是考虑,这系统在Windows下做还是在Linux.Ubuntu下做比较好? 然后,我都检测过,Windows下可以用python.anaconda写代码都可以.当然,和 ...

  2. python人脸识别理论_简述几种人脸识别的主要方法

    简述几种人脸识别的主要方法 人脸识别的方法很多,以下介绍一些主要的人脸识别方法. (1)几何特征的人脸识别方法 几何特征可以是眼.鼻.嘴等的形状和它们之间的几何关系(如相互之间的距离).这些算法识别速 ...

  3. CV之FR/FD:人脸识别之Face Detection人脸检测原理及其常见分类技术

    CV之FR/FD:人脸识别之Face Detection人脸检测原理及其常见分类技术 目录 人脸识别之Face Detection人脸检测原理及其常见分类技术 人脸探测的原理 线性分类器 影像金字塔 ...

  4. 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码

    目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...

  5. 深度学习之基于opencv和CNN实现人脸识别

    这个项目在之前人工智能课设上做过,但是当时是划水用的别人的.最近自己实现了一下,基本功能可以实现,但是效果并不是很好.容易出现错误识别,或者更改了背景之后识别效果变差的现象.个人以为是数据选取的问题, ...

  6. 基于cnn的人脸识别_鬼都藏不住,人脸识别新突破!就算遮住半张脸也能100%被识别...

    转自:新智元 如涉版权请加编辑微信iwish89联系 哲学园鸣谢 新智元报道 来源:sciencedirect 编辑:金磊,元子 [新智元导读]众所周知,人脸识别在摄像头无法捕捉到完整面部图像的情况下 ...

  7. 基于cnn的人脸识别_基于卷积神经网络(CNN)的人脸在线识别系统

    微信搜索"AI大道理",选择"置顶"公众号 重磅干货,深入讲解AI大道理 ------ 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统, ...

  8. 基于kl变换的人脸识别_简述几种人脸识别的主要方法

    人脸识别的方法很多,以下介绍一些主要的人脸识别方法.(1)几何特征的人脸识别方法几何特征可以是眼.鼻.嘴等的形状和它们之间的几何关系(如相互之间的距离).这些算法识别速度快,需要的内存小,但识别率较低 ...

  9. 简述几种人脸识别的主要方法

    人脸识别的方法很多,以下介绍一些主要的人脸识别方法. (1)几何特征的人脸识别方法 几何特征可以是眼.鼻.嘴等的形状和它们之间的几何关系(如相互之间的距离).这些算法识别速度快,需要的内存小,但识别率 ...

  10. CNN tensorflow 人脸识别

    数据材料 这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据.这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道.于是我们需要对这张大图片切分成一个个的小 ...

最新文章

  1. wkwebView基本使用方法
  2. http://hi.baidu.com/grayworm/blog/item/c76c4046307d380a6a63e56a.html
  3. c++ list 容器
  4. Java初学者习题20道(转)
  5. graphpad prism怎么添加图例_Graphpad官网刚刚升级了!听说,新功能吊打R语言...........
  6. ie浏览器收藏夹位置更改步骤
  7. 玩转 SpringBoot 2.x 之使用 SpringDataJpa 篇
  8. 点击元素改变样式,再点击,又变回去,来回变
  9. maven使用java8
  10. 推荐五个免费UML建模工具
  11. linux无线网卡消失,Linux下无线网卡无法开启解决办法
  12. 数据结构之平衡二叉树C语言版
  13. 什么是小托福考试?适合什么学生报考?
  14. 小红书小程序x-sign加密算法解析
  15. 字体使用的侵权是如何判定的?
  16. 未来计算机畅想英语作文,畅想未来的生活life in the future
  17. 计算机c盘一直减小咋办,C盘空间越来越小怎么办有效解决方案
  18. windows如何批量修改文件名
  19. 【附源码】计算机毕业设计java疫情期间优化旅游平台设计与实现
  20. Pycharm中怎么给字典中的多个键-值对同时加上单引号

热门文章

  1. Unity中的UGUI屏幕适配
  2. java - 详解 Java 17 中新推出的密封类
  3. 我当程序猿的那些狗日子,毕业后的徘徊
  4. 中国民生信托荣膺《经济观察报》“年度卓越财富管理信托公司”称号
  5. 验房注意事项(仅供参考)
  6. XMLTable使用实践
  7. 提高逻辑思维能力从说话开始
  8. 计算机和台式机哪个好,台式机、一体机和笔记本电脑哪个好
  9. ArcGIS批量处理悬挂线
  10. iphone CSS动画失效