点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

前言:

在计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck等。这些术语的解释无法直接在网上搜到,也没有在哪一篇论文中定义它们的概念和意义,因此,对于第一次听到这些术语的读者来说会非常的困惑。

此外,对于还没有建立计算机视觉知识体系的读者来说,也很难理解特征空间,fine-tuning、预训练、池化等方面的内容。

本文介绍了很多读者在其它地方不可能了解的内容,通过这些内容相信读者能更深层次地理解计算机视觉,建立起基本的计算机视觉知识体系。

backbone、head、neck和fine-tune

以一个图像分类的卷积神经网络为例,网络分成两部分,前部分是由卷积层、归一化层、激活层、池化层堆叠的,输入图像在经过若干层卷积、归一化层、激活层和池化层的堆叠后进入全连接层,经过几次全连接后输出每个类别的概率值。

在这里,前面卷积层、归一化层、激活层和池化层的堆叠部分属于backbone。意思是神经网络的躯干部分,这部分也称为特征提取网络。

后面的全连接层的堆叠属于head。意思是神经网络的头部,实现模型任务的预测,称为predictor head,这部分网络也称为分类网络。

再以目标检测中的YOLO_V4中的图为例。

如上图所示,在backbone后,常构建特征金字塔,在特征金字塔部分做一些处理,如多尺度融合,再将特征金字塔的输出进行预测。因此,特征金字塔这部分放在backbone和head之间,称为neck(脖子),这里的Dense Prediction即为head。

关于backbone即常见的经典网络,如VGG,ResNet,MobileNet,ShuffleNet,DenseNet等,当某个模型提到backbone使用的是VGG,即表示使用的是VGG的backbone部分,而不包括VGG的head。

这里解释一下为何是这样。神经网络有多种解释,其中一种解释如下,神经网络被认为是在提取特征,计算机视觉的传统方法就是人为地设定某些特征,再进行分类。如HOG特征,LBP特征,在提取完特征后,使用分类器对这些特征进行分类,如SVM分类器。

这里的backbone部分则认为是一个特征提取网络,而head部分则被认为是分类网络,因此特征提取的部分可以共享,它们的本质都是在提取图片的特征,而分类网络则对应到具体的任务,如分类猫狗,分类网络需要从提取的特征中分成猫狗两类。

这段话同时也解释了fine-tune的原理,使用一个预训练好的backbone,针对你自己的任务,自己搭建相应的分类网络,在训练时冻结backbone的参数,只训练分类网络的参数。这是因为预训练好的backbone已经具备很好的特征提取能力,因此对于你自己的图像,网络只需要学习如何将提取后的特征按你定义的类别进行分类。

Preprocess和Postprocess

Preprocess为预处理,图像在送入神经网络之前,需要进行一定的处理。

通常的处理是使用opencv中的resize将所有图像缩放到同一尺寸,并根据数据集的标注设置网络的label。此外,如果有必要的话,还会进行数据增强,如调整图像饱和度,镜像,加噪声,随机掩码等方式。

预处理的必要性:大部分神经网络在backbone后将数据进行flatten(即将四维的张量变成二维)的操作,再进行全连接,此时全连接层输入的神经元个数即为flatten后的长度,若输入的图像的尺寸不一样,则全连接层输入的神经元个数无法一致,会报错。此外,对于没有全连接层,其它类似的处理部分(除少数外),也会要求backbone后的输出大小一致。

Postprocess指的是对网络预测的结果进行后处理,对于普通的分类网络不需要后处理,但对于目标检测、语义分割这样的任务,需要对网络的输出进行处理,将预测的结果通过图像进行可视化。

例如目标检测中的YOLO,其输出一个7x7x30的张量,输出98个预测框,但实际一张图片没这么的目标,则需要进行NMS这样的处理来去除一些不合理的预测框,且我们无法直接看待这些预测框是否准确,就需要将其在原图像上显示出来,以直观感受预测的效果如何。

先验知识

在《论文创新的常见思路总结》中我提到,关于特定的类的检测,我们可以针对这个类别添加很多先验知识,在《数据增强方法总结》中我提到,数据增强的本质是人为地引入人视觉上的先验知识。在《CNN可视化技术总结(一)特征图可视化》中我提到,所谓改进网络都是人的主观改进,这里人的主观即先验知识。

这里的先验知识指的是人对于如何识别一张图像或如何识别一个类而关注的内容,引入先验知识是指设计一些东西让网络也关注这些内容。

例如特征金字塔中的多尺度融合,人认为大目标应该在低分辨率检测、小目标在高分辨率检测,由此网络在特征金字塔的不同层预测不同大小的目标。人又认为如果大目标在低分辨率检测,小目标在高分辨率检测,则在低分辨率时,小目标还存在,在这里被当成了背景,同理在高分辨率时大目标被当成了背景,这样不合理,又提出了ASFF处理方式,提升了5-10个百分点。

例如人在关注一个事物时,会自动忽略眼睛看到的其它东西,由此提出了注意力机制。

例如即便只有上半身,人还是能认出自己熟悉的人,由此提出随机遮挡等数据增强方式,让网络在有遮挡的情况下也能正确识别。

例如人是如何识别打篮球这一行为的,人根据篮球、投篮手势、身体跳跃、篮球运动等一系列的组合识别,因此如何让网络更好地关注这些特征提出了Non-Local。

embedding

在transformer中出现了embedding,在自编码器中也出现了embedding,还有很多地方也有提到,如何理解embedding?

这里涉及到神经网络的另一种解释。神经网络被认为是将图像从高维的像素空间映射到低维的嵌入空间,即embedding,也可称为特征空间。这里的特征空间用embedding(向量的形式)来表示。

在编码器中,网络将图像映射成embedding,即高维图像通过非线性函数的多次映射,可以用低维embedding来表示,在解码器中,网络将低维embedding映射回图像。

因此,embedding可以认为是某些特征的浓缩表示形式。

以行人重识别为例,论文认为即便是在不同拍摄角度下,只要是同一个人,神经网络输出的embedding在某种距离度量方式下就是相近的,而不同的人在某种距离方式下就是很远的,因此可以通过某种距离度量方式判断两个embedding的距离是否在阈值范围内来判断是否为同一个人。

feature map

字面意思:特征图。

根据前面的解释,神经网络是在将图像从高维像素空间映射到低维的特征空间,这个映射是通过一层一层卷积和激活来进行的,卷积具备提取特征的能力。

例如在数字图像处理中,我们是通过sobel算子来检测轮廓,而sobel算子可以认为是3x3的卷积的其中一种情况,在这种情况下,它就可以提取图像的轮廓,那在其它情况下就可以提取其它的特征,因此卷积的过程就是在提取特征的过程,经过卷积提取特征和激活函数的映射后的输出称为feature maps。

池化

接着上面的解释来介绍一下池化。

在一张图像中存在很多噪声和冗余信息,噪声是由相机拍摄过程中由于传感器电路、材料等硬件因素或传输过程中产生的,冗余信息是指跟具体任务无关的内容。

当我们以整张图像输入时,需要将这些噪声、冗余信息去除。我们认为这些冗余信息和噪声不是特征,在神经网络中的卷积和映射过程中,会产生比较低的响应值,因此我们可以通过最大池化选择最大的响应值进入下一层,因为我们认为只有特征才会在卷积过程中产生大的特征值,也称为响应值。

同样以sobel为例,当对一个像素值基本相同的背景进行卷积时,卷积的输出几乎为0,而对一个轮廓边缘进行sobel卷积,则会输出较大的值。

因此神经网络通过多次最大池化,去除了噪声和冗余信息。这也就是为什么神经网络的backbone部分基本全是最大池化,而不是平均池化,因为平均池化会将这些冗余信息和噪声继续传到下一层。

关于池化更详细的技术总结,请阅读《池化技术总结》文章。

语义信息

数字图像是由像素值组成的,它们本是一堆数字的组合,但就是这样的组合形成了一幅幅图像,如猫、狗、篮球、米老鼠、眼睛、鼻子等。因此,语义信息指的是图像的内容,即鼻子,眼睛这样的图像。

总结

本文介绍了很多读者在其它地方不可能了解的内容,通过这些内容相信读者能更深层次地理解计算机视觉,建立起基本的计算机视觉知识体系。

后面还会总结一些其它的专业术语,并进行解释。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

计算机视觉专业术语总结:构建计算机视觉的知识体系相关推荐

  1. 真正的高手,都懂得构建自己的知识体系

    导语 高手一般分为两种,一种比较明显,他们有很成体系的逻辑,术法清晰:另一种比较难以被察觉,他们悟性高,通常风格犀利自成一派. 对于我们大多数人来说,前者的可借鉴性更高,前提是你足够努力和坚持,塑造系 ...

  2. 认知,构建个人的知识体系(上)

    1.前言 本文将聊聊我对构建个人知识体系的一些想法,主要是为了提升自我认知.从个人经历开始,谈谈对知识的划分,也就是一个是什么,为什么的过程. 2.缘起 把时间回到一年前,那时候我工作快一年了,得益于 ...

  3. 碎片化学习的骗局-如何构建自己的知识体系

    一.前言 人生有好多事情,可以走捷径或者可以找人替代,唯有求知.成长无捷径及无法找人替代. 二.曾经的我 现在年底流行知识跨年,今年毫无例外的知识跨年又刷屏了,其中最出名的莫过于罗振宇的"时 ...

  4. 【软件工具篇01】如何用思维导图构建自己的知识体系

    如何用思维导图构建自己的知识体系 思维导图是什么 百度百科上说 思维导图,英文是The Mind Map,又叫心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具 ...

  5. 如何构建自己的知识体系

    如何构建自己的知识体系 01 何为知识体系 那什么是知识体系呢?大家可以参考这两张图看一下,如果没有知识体系,我们吸收进来的知识就像左面这张图一样,都是零散的.点状的.相互割裂的,右边这张图则代表知识 ...

  6. 情感驿站 | 如何构建自己的知识体系?

    写给学生的一点建议-如何构建自己的知识体系? 1. 什么是知识体系? 2. 知识体系的组成? 2.1 要有大量的通识知识作为根基 2.2 要知道它的应用场景 3. 如何建立知识体系? 3.1 需要一位 ...

  7. 构建自己的知识体系(IT、理财等)

    什么是知识体系? 人的一生中实际是学习了很多知识,上学时学习各种语数外理化生,工作了学习了工作的技能,学习人际关系.正如伟人说的,活到老学到老.这么多的知识,不知道你是否很明白自己到底掌握了多少? 特 ...

  8. 30 张Java 的思维导图,全面梳理构建 Java 的知识体系

    小编这几天在网上收集了 30 张大佬制作的 Java 知识点总结的思维导图,整理成了这篇文章分享给大家,帮助大家梳理构建 Java 的知识体系. 这份思维导图包含从Java的简介.主要特性.发展历史到 ...

  9. 【0-导言】如何构建分布式系统的知识体系

    对于开发工程师们来说,相信对于这种招聘要求的描述并不陌生:"熟悉分布式系统的设计和应用:熟悉分布式.缓存.消息.搜索等机制:能对分布式常用技术进行合理应用,解决问题". 现在基本上 ...

最新文章

  1. linux命令行大全 笔记,分享|4 个 Linux 下的命令行笔记程序
  2. 消息队列之延时消息应用解析及实践
  3. Nginx与Tomcat区别
  4. 对文本的内容进行排序
  5. ubuntu通过vmware与访问宿主的文件
  6. 别让小小的“短信验证码”毁了用户体验
  7. NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))...
  8. R数据处理包plyr:超越apply函数族的向量化运算
  9. JS向NPAPI传递参数,并返回结果
  10. 根号n向下取整的c语言编程,【向上取整/向下取整】C语言向上或向下取整 函数...
  11. 基于WTN6040F-8S语音芯片ic在助眠耳机产品的设计解决方案
  12. 计算机工作面试需要准备什么,视频面试手机还是电脑 面试前的准备工作要做好...
  13. ipad协议更新非常稳定
  14. 不同版本的centos默认的ks.cfg
  15. HTTP略显不足 IPFS/FIL异军突起 未来可期
  16. 人工智能应用实例:图片降噪
  17. 90个外国英文网站强力推荐
  18. Q-Learning的学习及简单应用
  19. C语言-if...else if...else 语句
  20. MyBatis 大于小于不等于的写法

热门文章

  1. 行集函数:OpenRowSet 和 OpenQuery
  2. 华为 S5700S-28P-LI Console连接电脑
  3. 【转】每天一个linux命令(34):du 命令
  4. 统一沟通-技巧-7-Lync 2010-配置信息-EWS未部署-增加版
  5. 极客新闻——02、最高效的人都是最会休息的人
  6. 了解 ElasticSearch 这几个知识点后,查询起飞~
  7. 如何理解 RESTful 的幂等性
  8. 某程序员发现新来女同事简历造假!原来是培训机构出身!纠结怎么处理,网友评论亮了!...
  9. 百度员工吐槽:百度江河日下,不知该何去何从?
  10. 网友提问:精通 Spring 全家桶,被 15 家公司拒绝,大专程序员出路在哪?