美文网首页
计算机视觉的前世今生

计算机视觉的前世今生

作者: CV算法恩仇录 | 来源:发表于2022-01-25 10:51 被阅读0次

原创:王稳钺
资料来源:安健侨

一、人工智能之智

这个图非常有意思,这是按照时间线排布的不同画师画的朱元璋。如果了解历史,都知道他长得巨丑无比。他丑到什么程度呢?据说他的下巴可以当武器来用。而且他对自己的容貌还非常自信,经常喜欢找一些人给他画画。一开始他找了一个画师,画了第一个图。可能是因为太还原真实相貌了,第一个画师被斩了。然后朱元璋就换了一个画师,画成第二个图,明显可以看出皮肤光滑了一些。按照现在的技术来说,这是做了一个磨皮或者叫滤波。一种滤波方法是把图像当中的每一个像素点,都用它周围的一圈值的平均值替换。这样一些局部的噪声点就可以被磨掉了,其实这就起到了磨皮的作用。这种方法明显是一个传统图像处理的算法,并不涉及到深度学习。也就是因为他不涉及到深度学习,改进太小了,朱元璋看完后,第二画家也被斩了。第三个画家,画完之后脸更光滑了,眼睛变大了一些,皱纹也变少了,但是下巴和耳朵都没有改进。结果第三个画家也被斩了。第四个画师,可以称他为智慧画师,他的画明显已经脱离朱元璋原来的样貌,眉毛、胡须等都画的非常立体,而且别的画师都是画侧视图,而他画了正视图,这样就看不出下巴的突出。因此,他最终也没有被斩。前三个画师只是图像处理层面的改进,而没有深入到改变语义,所以说其实可以近似地认为前三个画师都处在图像处理级别,而最后一个画师则处在深度学习级别。

通过这个例子,其实是想说,计算机视觉在深度学习诞生之前,都是沿着传统的视觉算法方向发展的。传统视觉中有很多算法,《计算机视觉》书中超过一半都是介绍传统算法的,因为这个书出版时间比较早,它其中的算法都是上世纪四五十年代就被提出来的,到现在已经发展了几十年。所以,在深度学习诞生之前,传统算法其实已经有很完整的理论了。

比如刚才提到的均值滤波。但是为什么均值滤波要用周围一圈的均值来代替中心值,而不是别的位置的均值呢?因为宇宙是渐变的,宇、宙分别代表了时间和空间,所以时间和空间都是渐变的。在图像当中也是如此,图像当中很少有突变,大多数都是渐变。即使感觉某个颜色确实是突变,但如果把它无限放大,中间一定也是渐变的。有人做过这样一个实验,在一张图像上随机撒十分之一的点,这些点的颜色是已知的,而其他点的颜色是未知的。通过这十分之一个点的颜色可以复原一个和原来图像非常接近的一个图。为什么呢?因为已知颜色的这些点,它们带有周围一圈颜色的性质,所以图像中每一个点一定是和它周围的一圈点是高度相关的。通常认为是有一个相关性场存在的,离某一点越近的相关性越强,离的越远的相关性越低。这是计算机视觉的一个根本理论。

傅立叶变换和小波变换也是传统算法中重要算法,它们都可以用来提取图像中深层次的特征。

超像素分割也是传统图像处理中一个重要方向同时也是很有前景的研究方向。这个方向其实早在 10 年 20 年前就有人在做了,但现在依然每年都会有几篇相关论文发表。超样素分割定义是把图像分成尽量少的超像素块,使得每一个超像素块不会跨越图像的语义边界。比如规定 300 个超像素块,就要把原图裂变成 300 个小区域,每一个小区域只能属于一个语义信息,不能属于多个语义信息。

如何验证分割的好不好呢?有一种很直观的验证,比如把图像分割成多块之后,假设图像就是一个刚刚画完的水粉画,然后把每一个小方块内的颜色抹匀,也就是上图中的左图到右图的过程。如果在抹匀后的图中(右图)还能看出原图像当中的一些信息,就说明分割的效果很好。因为如果能够保留原来图像的信息,就说明只用 300 个超像素块表达了原始图像中可能几百万个像素表达的信息量。所以原理和均值滤波有相似之处,就是前面提到的渐变。一幅图像当中,真正有用的信息有限,但是一个图像当中可能需要上百万个像素去表达,这其实是很浪费的。每一个像素点都是一个数据,当程序处理数据都是代价。超像素分割就是解决数据过多,用 300 个所谓的超像素来代替原来图像当中上百万个像素,并且使得它的信息尽量的不损失。

基于深度模型的视觉算法在一年以前大部分都是基于 CNN 结构。而最近两年,Transformer 成为了热点。最开始它是 Google 提出的在自然语言处理领域的一个非常好用的算法,它一直处理的都是自然语言方面的数据。也有人尝试把它应用到计算机视觉中,但是两三年之前效果都不好。直到去年,Facebook 的 FAIR 组(目前何凯明就在 FAIR 组),提出来了一个非常厉害的结构 —— DETR,第一次把 Transformer 从自然语言处理领域,成功的迁到了视觉领域,效果非常好的完成了 Detection 任务。从那之后,Transformer 席卷了视觉领域所有方向。今年出现了一个创新的模式 —— Swin-Transformor,目前在学术圈中的影响非常大,论文引用量呈几何式增长。

计算机视觉中有一些常见任务,比如 Detection、Generation。以 Detection 为例,一幅图像中有车和人,想要通过算法找出车和人在哪,这就是 Detection。Detection 是非常有用的,摄像头可以拍摄世界,但是现在通过Detection,摄像头不仅可以拍摄,还能理解一些事情,理解人和车在哪里,人和车的位置可以框出来,甚至能够预测人的一个行径轨迹,然后追踪一个人的行动轨迹,这就非常智能化了。所以如果照相机是模拟了人类的眼睛,但是人的眼睛其实只是一个器官,人类能够“看到”这个世界更大贡献是人的大脑,如果没有大脑,也只能看见却无法理解,所以是需要大脑的处理的。因此虽然一百多年前,清朝的时候,慈禧也在拍照片。但是一百多年之后,现在才进入到所谓的智能摄像的热潮当中。

二、对抗生成网络 —— GAN

通常算法的思路都是用模型去理解图像,再考虑如何去检测、追踪、分类。但是有没有可能让模型像一个画家一样画出一个东西,让模型获得创造力呢?这是非常了不起的工作,早在很多年之前就有人在思考如何完成,但是一直没有人真正的完成,直到 2014 年 GAN 横空出世。

关于 GAN 有一个非常有意思的故事。GAN 的提出者 Goodfellow,某一天他和他几个朋友在一块喝酒之后,讨论起了哲学问题,大家就开始争吵,“对抗”起来了。Goodfellow 发现通过争执,他对一件事情的理解变得非常深刻,或者在争执过程当中,在对抗的过程当中,能够诞生一些新的想法。有了这个启发之后,他就想那能不能把这个思想应用到 Generation 领域上呢?

当天晚上他就做了这样的工作。Training set 是真实的训练数据,Generator 就是一个“造假的人”,他负责看了“真迹”之后开始模仿,并且将模仿后的图片和真实图片混在一起,输入给 Discriminator。Discriminator 就是辨别器,负责鉴别真和假,在辨别过程中,他也会训练自己,不断地提高判别真假的能力。同时,Discriminator 会反过来告诉 Generator 哪一部分太假不像真的,需要修改。“作假大师”就做得更加逼真,和真迹越来越像。最后鉴别师不断提高他的鉴别能力,成为了一个非常顶尖的“鉴宝专家”,而 Generator 也随着不断的迭代,不断的训练成了一个非常非常顶尖的“造假专家”。一般保留 Generator 而不使用 Discriminator,因为模型的目的就是生成一些“假图”。

这里会有一个问题。如果直接把真实的图 copy 一份,一模一样,那么鉴宝专家就分辨不出来了。所以说这里边要增加一个 Random 模块,所以说一开始必须要有 Random noise,就是随机的扰动,不允许 Generator 产生的图片和真实图片一模一样。在不允许一模一样的情况下,还必须和真实图片很接近,这才学到了这个真正的精髓。比如下图中这些人都不是真实世界中存在的,而是 GAN 生成的。

扩展一下对抗的思想,其实还有一个领域为 Domain Adaptation。现在自动驾驶很盛行,但是因为天气的阴晴不定,自动驾驶系统通常在晴天的时候效果很好,但是到了阴雨天检测结果就会变差。为什么会这样呢?因为其中“域”发生了变化。

左边的图代表晴天的图,对于晴天的图是有标签的。右图是雾天的图,如果将所有天气全采集一遍,人工消耗太大,所以雾天只有图没有标签。这样改如何训练呢?这就需要在提取特征时,提取到域不变特征。比如无论晴天还是雾天,车的外形是不变的。虽然它上面蒙了一层雾,但是车的某些特征是不变的。如果特征提取器能够提到不变的特征,不同天气下的问题就解决了。变的是天气的特征,不变的是车的特征,而想要的也是这个不变的特征。

想要提取到不变特征,其实可以借鉴 GAN 的思想,给网络加“对抗”,训练域分类器,对 feature 进行域分类,其实就是二分类,分出 feature 属于晴天还是雾天,并不断提高辨别能力。同时,绿色部分形成对抗,不断提取的特征让后面的域分类器无法区分出晴天和雾天。这样,经过几轮的迭代,绿色部分所提取的特征就越来越接近不变特征。

三、“天网”背后的CV技术

“天网”主要使用的 CV 技术有人脸识别的关键点检测以及检测和追踪。追踪如何实现呢?追踪是有很多帧画面的,这又要用到“渐变”的想法了。追踪,本质上就是把每一帧里都捕获某个人并打方块,再把每一个方块连起来就是追踪。所以最直接的办法就是把每一个帧的图像都做检测,然后再把它们连起来。但是这样做并不好,因为有很多信息没有用到。以某一帧为例,因为“渐变”,它一定是和它的前一帧和后一帧相关性最强。并且从第一帧开始就能捕获所要跟踪的物体,所以第一帧也很重要。

所以其实需要做的就两件事,首先通过第一帧 First Frame 提取特征,之后找到这 Proposal 然后进行 ROI,之后合并到一起。再做一个 Regression,找到较好的框。最后再通过和上一帧进行匹配,选取得分高的框。而在最后几个得分高的框中该如何选择最好的呢?这就涉及到优化问题,线性规划、动态规划、图论网络流等等。这些都是面试中经常会遇到的问题。如果可以将传统算法和深度学习算法融合,将会是很好的创新点以及亮点,这也是未来研究非常好的方向。

相关文章

  • 计算机视觉的前世今生

    原创:王稳钺资料来源:安健侨 一、人工智能之智 这个图非常有意思,这是按照时间线排布的不同画师画的朱元璋。如果了解...

  • 浅析Haar分类器方法

    一、Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物...

  • 计算机的前世今生

    各种水平有限 不喜勿喷! 很久很久以前,大概在几千年以前吧。就诞生了数学。实在是太自然不过了,因为数学实在太有用了...

  • 视觉检验系统的前世今生是什么?

    很多人,不明白视觉检验系统是什么,那么如今就来跟大伙儿谈谈视觉检验系统的前世今生是什么?视觉检验系统如何检验和...

  • 计算机思维的前世今生

    最近在得到APP上听万维钢老师讲解一本今年4月份出版的新书《计算机思维》,书中提到计算机思维已经影响到了现代人生活...

  • 将军在上之男昭女惜重生三世千年孽缘

    前世!今生!来世再续! 前世欠谁!今生还!来世再续前缘! 前世因!今生续!来世果!

  • 人死,并非如灯灭……

    “今生,是前世的“来生”,是来生的“前世”。在今生中,我们能见到自己的前世与来生。回溯前世,是为了改善今生;回到今...

  • 前世今生来世缘

    谈何前世情 今生还 今生情 来世还 前世孽债 前世还 未了 今生还 今生欠 今生还 谈何来世还 来世欠 来世还 能...

  • iOS Device ID 的前世今生

    iOS Device ID 的前世今生 iOS Device ID 的前世今生

  • SLAM--优秀文集

    1、SLAM技术概述 1)激光SLAM与视觉SLAM的现状与趋势 2) SLAM的前世今生 终于有人说清楚了 | ...

网友评论

      本文标题:计算机视觉的前世今生

      本文链接:https://www.haomeiwen.com/subject/qqkwhrtx.html