七月在线公开课笔记-三十五-
七月在线公开课笔记(三十五)
人工智能—计算机视觉CV公开课(七月在线出品) - P6:人体姿态估计的前世今生 - 七月在线-julyedu - BV17z4y167dq
好,呃,那么我们就今天开始的我们的内容啊。呃我们今天的一个主题呢是人体姿态的一个呃前世今生。那么呃对于人体姿态估计呢,可能大家了解的并不多。那么今天呢我们就想一大给大家40分钟到一个小时左右的一个时间。
让大家尽可能了解我们具体的一个相关的内容。那么人体姿态估计呢,其实是应用非常广泛,或者说落地很强的一个点啊,其实是在计算机视觉方面。那么我们今天的一个讲解的一个知识呃内容呢,就。
呃,这个那么我们今天的一个讲解的内容就主要包括呃呃四四大部分,就是人理姿态的一个问题的定义,常见的问数据及以及评测方法以及姿态估计的模型的发展脉络以及姿态估计的落应用和落地啊。
以及我们的最终的一个总结和回顾啊。呃,由于我这个鼠标好像突然出现了一点bug啊。所以我现在每一张PPT啊都要贴出去啊,都要切出去。
都寄出去啊。我就这样这样给大家讲吧,我就这样给大家讲吧,不好意思啊,因为我这个鼠标突然出了有点毛病。对。呃,首先呢是看我们人体姿态的一个问题的定义啊。首先我要弄懂我们这个问题是什么。
人体姿态估计呢其实是我们在就是说在计算机事界里面非常基基础的一个问题啊,从名字来看,你就可以理解出来这个人体姿态估计它是对我们人体的一个呃,就是说是一个姿态的一个呃识别,当然这个地方为什么这种估计呢。
其实嗯它这个esttimation,对吧?它和这个我们的分类和检测它不太一样。这个地方是估计到我们这个点就是说我们的关键点在什么位置,其实大家看可以从右边这个图可以看出来这个人体的一个定呃。
就是说我们这个地方是一个人的一个骨骼的点,对吧?这个地方其实人的这个骨骼这些点啊其实并不是完全呃,就是说符合我们的逻辑的,对吧?比如说这个呃运动员的这个右边对吧?这个关键点。
其实定义的这个关键点其实定义很模糊的,或者很难定义的,难。
所以说呃如果是很精细的做人体姿态估计呢,其实是很难的一件事情。那么人体字态估计呢,其实如果是按照这个具体的数据来划分啊,就是说如果按照数据来划分可能会更加直接一点。
就是说是单人的姿态估计多人的姿态估计以及人体的姿态追踪以及3D的人体人体字态估计啊,那么我们现实生活中呢,一般常见的是2D的,就是说我们2D的,主要是这种呃单人的或者多人的,如果是视频呢。
可能就是说是呃姿态跟踪了。如果呃更高级的可能还有3D的。那么其实我们现实生活中这种呃人体姿态估计其实已经有很常见的应用啊,最常见的应用,比如说大家肯定会用到的一个应用就是我们的抖音。哦。
不知道大家就是玩过抖音面,抖音里面有这种跳舞的。呃,就是那种特效,就是用来拍一档舞蹈,然后嗯给你进行个打分,或者说你。看不到吗?有同学看不到视频吗?你如果看不到视频,是不是flash要启动flash啊?
这个就是说我们的直播课是要启动,是需要启动flash的。呃,其他的同学应该看得到吧。嗯,对我我我自己也在看直播,应该是能看到的。你如果看看不到视频啊,可以在你的浏览器里面,你就是说允许flash执行。
或者说在我们的APP里面观看。对。啊,那么这个字态估计其实比如说你玩抖音,你假如说你拍了一段视频,他让你做出一些,比如说做出一些动作,做出一些表情。其实这个地方不管是表情式比如说字态估计啊。
都是这种关键点的一个视别。那么其实应用非常广泛。呃,我个人认为啊,姿态估计也是在计算机视觉里面应用最为广泛的一个呃就是说。一个嗯技术吧。对,那么我们今天主要给大家讲解的是就是说自台机估计。
比如说单人自台估计的它常见的一些方法。对呃,这个650821同原因你如果还看不到,就就看一下你是不是你flash没有启动啊。那么比如说这个人呃字态估计呢,还可以把它扩展到这种2D的姿态估计呢。
还可以把它扩展到我们具体的一个视频的自态估计。比如说给定视频帧来,就是说多段多张图片,我们追踪这个视频里面的这个人体的姿态,那么还有这种3D的,比如说我们嗯这种对于给定一张图片呢。
我们对这个人人体的关键点做自态估计呢,可能只是输出它具体的一个关键点的位置。那么比如说我们三假如说是3D的呢,那么我们就可以输出这个人体的3个XYZ的一个空间的位置,空间的位置,对吧?
那么这个可能是对于我们这种游戏的游戏的一些玩家可能比较感兴,对吧?这个其实就是对一些3D建模,嗯,ARVR其实也是用到的非常多啊。那么所以说人体现代估计不仅是在计算机试卷领域啊,嗯。
还是在一些呃就是我们的工业的领域,还是在游戏领域啊,都是应用的非常广泛的。呃,那么人体资态估计呢,其实这个问题或者说这个呃问题并不是很简单的一个问题。
人体资态估计你可以我这个地方有几张嗯这个hard example,对吧?你可以看一下人力资态估计它主要的难点是什么?第一个呃,我们的多张多个人体啊,其实是有这种关键点的重叠。
或者说这个地方你很清楚的看来这个。这个人的腿对吧?盖过了这个应该是这个棒球队员的腿,对吧?那么你如果让计算机的模型来识别这个呃具体的关键点的时候,其实你就很难去识别这个具体的关键点。
就是说这个人体之间他们的关键点会有重叠。那么这个重叠成会有什么程度呢?大家可以设想一下自己在拍一个毕业照的时候,你如果在拍毕业照的时候,你每个人每个同学只是露出一个头来,对吧?你露出一个头来。
如果是让一个人体自带过去的模型去预估。一个鼻业照的。这个照片那么你可以设想一下,其实这个模型还是很难做的啊。比如说前排的这些老师啊,他可能把这个姿态能预估出来。但是后排的同学他只看到了这个头,对吧?
身子可能看不到。那么这个呃不管是人体还是形象,它的关键点可能也会有重叠的这是第二个点。就是说这个地方你看他这样一个人才在跳起来,对吧?那么你就是说这个地方我们是从侧面看它,从侧面看呢,你会可能他两只脚。
两只脚它的就重叠在一起了,以及就是说肩膀都重叠在一起了。那么我们怎么做一个姿态估计呢?其实也是很难的。而且呢这个姿态其实很容人的姿态它这个地方呃忘记介绍。
就是我们做自态估计呢一般都会以这个呃骨骼的关键点给它进行一个输出。比如说我们常见呢有呃17个呃关键点或者14个关键点都是有的啊,都是有的。那么这种姿态估计,我们其实就是对这些关键点嘛。
比如说AP数据集是14个关键点FLIC数据集是9个关键点MMPI是16个关键点。然后这个coco数据集是17个关键点,不同的。嗯,就是说我们这些姿态估计,它可能都是定位到我们这个手腕,手臂,我们的脚踝。
我们的呃胯骨臀。对,那么就是说这个姿态估计你可以想象人的姿态其实是一个三维的过程,是一个三维空间的一个动作。你想让在让这个机器啊在一个二维的模型。
二维通过一通过一个画面来识别一个三维的空间在一个二维的映射其实是很难的其实很难的。即使是呃就是人的视角还是就是说人就是呃机器就是说这个画面的视角啊还是很多变的。比如说一个人他坐着的躺着的。
我们仰视的俯视的它的角度都不太一样啊,都不太一样。所以说你这个地方视角会影响的,而且这个衣服也会影响很多。比如说我们这个地方其实它就没识别。对对吧?这个肩膀没识别这个衣服啊。
就是我们现实生活中的一些衣服啊,其实呃就是人穿的一个衣服啊,肯定会和我们的背景有一定重叠。就不。在他们的颜色上,在屋顶上很肯定会有些重叠。就是说也会影响我们这个模型的判断。
而且会受到我们人体姿态物理因素的影响。这比如说嗯。就是你只看到了这个人的一一半的胳膊,对吧?那么你怎么做一个人姿态估计呢?还有一些关键年龄检测不出来怎么办呢?对吧?那么这个字态估计它毕竟是一个图像的。
或者说是一个数字信号的一个输入。那么它肯定会受到一个光照的呃人体角度的以及拍摄角度的影响。所以说人人姿态估计啊,其实一个很难的问题啊,很难弄力。那么其实现实生活中我们长的字态估计啊,都是呃很规整的。
就是我们还是以一个呃就是说我们。相相当于是一个切呃正对着我们的一个角度,对吧?相当于我们把这个摄像头手机的摄像头打开的自态模式,那样看我们每个人。但是现实生活中可能不是这样的。
就是我们每个人它的一个角度啊,可能是多种多样的。那么接下来呢我就给大家介绍一下常见的数据集和拼则方法。呃,那么既然人体姿态估计啊,它现在是计算机视觉里面的重要的部分。
那么自态估计其实现在也是主要的非常非常依赖于数据集啊,依赖于数据集,呃,不知道大家对深度学习有没有了解,其实深度学习它毕竟是一个很依赖于数据集的一个领域,对吧?那么数据级的一个数据量的多少。
其实很影响模型的一个精度啊,其实现在的一些呃比较大的一些数据集,比如说coco啊,或者说MPI啊,它其实的数据量都非常大。那么这些数据量的大小呢,其实是对姿态估计呃的精度啊提升很有帮助,提升很有帮助。
那么。
我们现实生活中呢也有很多这才估计的一些呃评价指标。评价指标比如说常见的有OKS嗯嗯PC我们讲PPPT里面的列举的PCK以及M嗯,这个M就是说大家如果知道这个物体检测的。
比如说这个paC或者coco上面的这个。呃,MAP啊这个应该不会陌生。那么对于这个PCK呢,它是就是说呃它是这样定义的,就是说正确估计出我们关键点的比例。
那么这个PCK呢是一个比较早的一个人体估计的指标啊,一般是在2017年或者说之前那些论文比较嗯广泛使用啊,现在已经不使用这个指标了。那么这个PCK呢其实它嗯在定义的时候其实非常简单。
如果是在做工程项目啊,或者说直接用来衡量,就是说这个模型这个就是说这个人体磁态估计模型啊,它的呃好坏啊,用PCK还是很方便的。那么它就是用呃就是对比一下我们真实的关键点和预测关键点的一个欧式距离。
然后计算它们之间的呃就是说通过一个欧式距离,然后通过一个阈值来计算的一个PCK那么PCK呢也是比较老啊比较老的一个指标。那么就是现在如果是直接用它当做一个衡量啊衡量的指标,衡量精度的指标还可以。
那么M呢,其实它是现在比较用的比较多的一个指标。那么M呢,现在它嗯也是我们发论文或者说做实验,主要看这个M那么这个地方M呢它可能的一个计算方式啊,在对于单人的M可能和多人的多人的M还不太一样。
就是我们人体。估计他还分单人和多人,就如果是单人自的估计,就是这张图只有一个人,多人的自在估计里面就有两个人啊,就有两个人。对那么对于单人估计呢,我们是针只针对一个行人进行进行估计。
然后此时我们一张图片里面的就为一个人。然后呢,我们通过这个呃真实的关键点,真实人人的关键点和我们预估的行人的关键点,然后算一个相似度这个相似度我们用这个OS指标。对,然后计算1个AP然后如果是多人的呢。
我们就把多个人找出来,然后算一算多个人的AP然后这个AP呢,我们如果就是算的单张的图片的AP呢,然后接下来我们就可以呃根据我们的一个呃具体的人工的预值卡域值得到多个AP的指标,对吧?
然后做接下来对多个AP的指标进行一个做平均然后得到得到一个对吧?那么这个地方需要注意的是,就是大家现在看到的一些内容可能都是以作为评价指标的。呃,其实人体自带估计的一个发展呢,其实离不开数据集啊。
离不开数据集。呃,数据集呢其实现在的人体自带的数据集呢也是呃就是说根据我们这个呃。就是这个图的一个类型划分的方法比较多吧,或者说主要的是以这个图的类型,或者说这个人的个数类型。
比如说比较典型的是这个单人的,或者说是多人的呃,单人的刚才已经解释了,就是说这个图片里面只有一个人多人的这个图片里面有多个人。那么右边的呢是我们还还可以进行划分。
就是说我们这个地方我们还可以按照这个图啊,我可以把它划分成2D或者3D的呃,比如2D呢就是说我们这个是2D图片的3D呢可能我们会给出就是这个3D这台估计的一个坐标信息。
那么我们现在现在常见的呃这个呃人力资源估计的数据集呢,比如说有PI这个口co数据集以及这个human3。6以及 track对以及我在PPT里面就列举的这些都是非常常用到的。
较长的单人的字态估计呢是这个MP嗯去这个呃这个数据集呢其实现在已经被刷爆了啊,这个数据集现在已经被刷爆了,它的精度已经嗯到90%多了到90%多。对嗯P呢它其实是一个单人或者多人的关键点嗯检测数据集啊。
嗯这个检测点的一个数会16个。那么样本数呢应该是接近这个25000。对,是单人人体关键点的一个呃就是说主要的数据集对是单人人嗯就是说人体关键点的一个主要数据。
然后呢这个coco呢这个coco其实和我们的一个物体检测那个micsoft的coco其实那个数据集也是比较类似的数据也比较类似。但是这个地方的coco呢它嗯就是说标注不太一样,标注它是多人的。
主要是用来评测多人人体关键点检测数据。它的关键点的个数是17个。样本量呢应该是大于30万的,是主流的多人关键点属于机啊。然后。你是主流的一个数据集。然后在嗯提到这个数据集呢。
提到这些嗯人体关键点数据集呢,就不得不提到一个竞赛叫AIchger。嗯,AI challenge呢这个我们要写在这个PPT上。
因为这个这个比赛已经现在已经不举办了AI challenge呢应该是在2017年2018年由李开复创新工厂举办的一系列比赛。那么因为当时A就是说AI刚开始很火嘛。
然后AIchger举办了一两场嗯就是说年度的人体关键点检测的比赛。那时候他的一个比赛的数据集也也是非常非常经典的。因为AIchenger那个比赛的数据集应该是样本量大约是38万。
甚至比coco的一个数据集的量级都大啊,但是他的一个关键点的个数是14个。那么这个human3。嗯3。6呢,这个数据集33。6万啊3。6,这个3点应该是3。60百呃33。600万,也就是360万。
那么这个这个数据集呢其实是这个3D人体四界估计的最大的数据集啊,嗯,一它是由360万个姿势和相应的视频帧组成。然后呢这个呃human这个数据集呢,它是包含了11个演员从4个摄像头。
然后具体是15天的一个采集的过程啊,数据集的大小应该是非常大的。具体呃,应该是呃就是大几十G吧,对,应该是大几十G,就是说一般的就是说我们的这个呃检测的数据集,检测数据集。
前面两前面两个就是用到的比较多,前面两个用到的比较多。比如。对,然后如果大家就是说刚开始呢可以尝试着看一看这个MPII这个数据集,就是它呃现在就是呃刷的,应该是刷应该是被刷爆了。
所以说这个数据集是嗯也是比较适合入门吧,比较适合入门。对。
那么接下来呢我们就看一看人体自态估计的模型的发展脉络啊,人体自态模估计模型的发展脉络。其实人体自态估计模型也是和物体分类或者说嗯这个物体检测的一个发展,有一点类似,就是说人体自态估计模型。
也可以按照呃深度学习前深度学习后的一个发展。对,然后呢如果大家知道啊就是或者了解一个深度学习的发展的话呢,你就知道人体自态估计或者说这个深度学习其实是改变了很多计算机视觉的领域啊,改变了很多计算机视。
比如说分类啊检测啊相关的。那么如果是在深度学习之前呢,我们处理这个人体自态估计呢,其实我们还就是说在深度学习之前啊,一般是做单人的人体自态估计问题。比如说我们把这个呃人把它求一些shift的特征。
或者画过这特征,然后把它把它转成一个浅层的一个feature,然后利用。
用这个关键呃人体资态的关键点呢做一些空间的相量关系,相当于相当于是做一些简单的模型啊。这个简单的模型其实在深度学习的前时代,或者说前深度学习时代也是非常非常有效的。那么其实呃如果是有深度学习的这种。
新人子识点限制。😔,嗯。姿态估计呃呃,这个主流的叫法应该叫姿态估计。嗯,这个姿态估计啊啊。呃,这个呃就是如果是有深度学习呢,其实它是在对于自态估计应该是嗯刷的很高的,刷的很高的。应该是从2014年开始。
2014年开始就有开始就有这种姿态估计相应的尝试啊,相应的尝试呃嗯行为识别和这个还不太一样嗯,就是行为识别可能是有这种。activity嗯这个呃action那种识别可这个字态估计还不单样。
行为识别你可以查一下资料,可能我刚才表达的有误啊,对不起呃,就是行为识别可能就是它跟具体的一个事件相关的。嗯,姿态估计可能是具体就是估计估计到我们这个人这个人体的这个关键点,骨骼关键点。
我就之后就就以这个姿态估计啊,就是姿态估计就是啊就说一下,刚才就是说啊忘记了啊嗯对于自态估计来说呢,如果是有嗯深度学习来说呢,它可能的一个进度会高很多。那么大家也知道这个深度学习在imag上刷榜啊。
就是说在imag上起作用,应该是在2013年到2014年,那么其实在201514年开始啊,就有很多或者道一直到2015年就有很多相关的自态估计都是可以用这种呃CNN的模型。
其实呃2014年就是这个MMPI这个数据集就是被引入了。那么很多时候这个数据集它是推动了我们这个行业或者说这个技术的发展的。大家也知道就是说如果没有imag数据集其实深度学习也发就是说不会发展这么快。
对吧?那么这个MPI数据集呢也是推动了这个。呃,人嗯人体自带估计的一个发展。因为在MPI数据机之前,这个数据大部分数据集都是呃就是数据量比较少,没有数据量没有这么多。那么MIMPI数据集呢。
直接把这个数据量提高到万级别,就是2。52。5万的呃这张图片。所以说就是说对我们的一个自带估计的发展,有提供了一个数据上的一个支持。那么就是说从2014年或者开始吧,就是说有很多自带估计的一个发展。
那么这个地方你可以划分成一些具体的时间节点,就是说从深度学习开始到2015年之前,就是主要的一些方法都是对一个自带估计。就是人体的关键点做一个呃回归,对这个坐标点做一个回归。
然后接下来就是2015年到2017年就是做一个呃有关键点回归的坐标回归,再加上一个呃这个关键点的一个热力图m做一个测的过程。那么从2018年开始,就是说前面这两个可能都是做单人的自台估计。
那么下面呢呢就是主流的一些学术,都是做一些呃多人的自台估计。呃,有同学看不到的,可以切换一下啊,就是说我们在浏览器里面允许允许一下设置一下flash允许啊,因为因为我们的直播是经通过flash插件的。
如果还有同学看不到呢,可以就是说用我们的呃7的手机APP啊。那么现在如果大家去看一些最新的论文,其实这在过计主流的还是就是说现在的一些方法都是用这种呃。多人的已经是多人的属悉了。
那么这个地方我提到了一个坐标点回归以及这个h map。那么其实这个地方其实是这样的,就是说对于一个h map,就是说我们通过对对于一个人体自态估计的一个呃就是说我们的一个坐标的一个定位。
或者说我们的一个ground的构建,其实是可以通过两种方式,一种是通过一个具体的一个坐标,比如coco coordinate对吧?还有一个是 map。那么这个关一个坐标呢。
它其实就是把我们具体的关键点的嗯,就是说我们的谷骼关键的一个坐标作为我们网络最终需要回归的一个目标。那么在这种情况下呢,我们的网络直接通过啊,就。翻到这一页啊。就是说假如说这个比较典型的。
我刚才讲的这个坐标点回归呢,就是说比较典型的这个deeppos。这个模型呢就是它是第一个使用这个CNN做自台估计的这个方法。它是使用关键点回归的方法。
就是说它把这个具体的关键点作我们最终需要识别的这个位置,然后以它来以它来作为回归。这个大家看到就是我们最终的一个礼盒的,或者说它需要完成的就是一个回归的问题,对吧?当然这个CNN它可以做分类。
也可以做回归啊,也可以嗯可以做分类,也可以做回归啊。嗯,然后这个当然大家应该清楚。然后如果是还有就是说我们如果做这种就是说我们这个人体的这个骨骼关键呢。
其实呃用具体坐标点也可以也可以做它的 ground数。就是它最终就是正确的表,也可以用这个H map。那么这个Hm呢,它是将一类坐标中一个概率图,或者说是一个像素位置的这个概率值。那么这个地方它。呃。
就是说如果是用这种h mapap的方法呢,它其实是相当于更加平滑了,对吧?你比如说我们如果是给就是说需要这个网络对这个谷歌的关键点做一个预测,其实你网络肯定就是说是对一个数值做一个回归。
如果是想让这个网络学习到一个就是说具体的一个概率值的一个h mapap的分布。那么它学到的一个可能性,就是说可能会更快一点。
那么如现在也是就是说hmap它的一个就是它的一个如果是用hmap这种嗯就是说构建一个模型啊,它的一个收敛的速度啊,其实是更快的。因为它是对呃我们这个整体的概率值啊。
就就是说对整体的这个谷歌关键点的这个区域啊做了一个概率值的呃,就是说预测。那么其实这个嗯大家可以嗯设想一下,就是说这个地方。H成本不它是有一点像嗯我们。这个图片分图片分类里面的一个soft label。
对吧?这个地方我们预测的不是一个呃具体的一个值,而是预测的一个分布。其实呢而而且这可 map呢,由于它这个地方是它预测的最终呢是一个分布呢,其实也会加快我们的模型的收敛。对。
那么这个地方hm它其实它的提出的时间啊,这个提出的时间应该是在2017年。那么我们截取的这个论啊也是谷歌公司提出的这个呃以h map再加上offset,就是我们预就是说。
哦嗯这个hm在上off这个off呢就是我们具体的一个呃偏值,或者说然后就是说这两个值呃呃来进行一个就是说统一的这个建模。这个这个off它和单纯的hm有一点区别,就是说这个地方off。
它是给进了这个HHm的一个范围。就是说如果是预测到了这个呃h map。以及有这个区域范围内的,我们就把它这个说就是认为它预测正确。如果是就是说超过了这个范围呢,我们就认为它预测就是有一点偏差。
那么这个地方就需要知道我们这个其实呃这个人体自态估计这个嗯就是我们具体的不仅仅需要大家这个这个人体自态估计,它有就是说有多少个骨骼关键点,对吧?
我们刚才介绍就是每种数据级可能可能它的一个标注的一个标准不一样。其次呢,它这个具体的一个就是标注数据啊也有也有一定差异。那么其实现在的人体自态估计的一个模型的发展呢也是发展的非常快速,非常快速。
那么这个地方我是截取了呃CSDN某个网友的博客,他是这样划分的。就是说对于人体自态估计的一个发展呢,我们主要的啊这个地方截取的是2D的,就是我们通过一张图片来进行一个人体自代估计的这种领域呢?
那么它主要分为单人的人体自代估计以及多人的人体自代估计这个地方呃如果是单人的人体自代估计常见的方法就有CPMPM以及CPM后续的发展比较典型。
就是非常非常出名的open pose以及这个然后如果是多人的呢,它这个地方你分支又可以具体划分到底是从上至下的,以及从下至上的。那么从上至下是什么区它是什么意思呢?就是从上至下它是先识别到哪个人。
然就是相当于拆分到每个人从上至下,然后再到这个人里面完成单人的人体代估计。如果是从下至上的,相当于它。先识别所有的人体骨骼关键点,然后再把这个关键点组合成单个的人。所以说这是两个思路啊,两个思路。
那么由于时间原因呢,以及就是说由于我们今天讲的这个基础,那么我们就以这个单人的人体自来估计啊,单人的人体的在估计主主要给大家讲一讲。对,那么如果是多人的呢,其实你也可以把它转成单人的问题。
那么其实人体自带估计呢,其实在单人的人体自带估计的问题,它还已经嗯研究了很久了。从深度学习前世代一直到现在,主主要的方法如果是在用传的方法。
就是用这种DPM如果用深度学习的方法又可以划分成这个直接回归坐标,比如po或者说这种热力图加回归坐标的对然后就是CPM的那么这个地方其实这都是有一些改进的。这个我没有展开讲啊,没有展开讲,没有展开讲。
就是说这个地方应该是在这就是说我们这个地方嗯每个这个是每个就是说呃这下面呢都是对我们的dpo的一些改进啊。比如说原始po是直接对我们的一个骨骼的关键点做一个回归的测。
那么我们能不能把它改进成这种多阶段的,我们能不能把它改成多阶段回归的对那么类似的其实在这种热力图回归的坐标的这种就是说发展慢度啊,也可以有一些相应的改进啊。比如说。整个讲啊,到时候就整个讲。
这个deppos应该大家都都就这个思路非常简单,对吧?我们直接预测这个具体关键点做一个回归就行了。但是它是非常这个这个作者也非常有名啊,这个作者应该是就是这个。呃,如果我没有记错。
就是fa斯CN其中的那个RRGB里面的一个人。对,也是就是说开创性的一个就是说用。那么刚才的depo就是直接对一个回归,就是对有个坐标进行回归。那么也有一些相关的一些问题啊。
其实呃就是说如果大家用啊就是说如果大家用这个CNN去完成一个回归的任务啊,你就会发现。会有一些问题会肯定会有一些问题。因为CNN它它的一个输出的结构啊,它本身就是如我们现在如果把它嗯很常规的。
就是说我们如果最后的一个是soid或者s next,它输出的就是概率值。那么我们怎么能够让一个模型,让它输出一个具体的坐标位置,对吧?我们比如说这个坐标,这个不管它是嗯什么谷歌关键点的坐标。
那么对于一个。网络来说,它不可能输出一个数值,对吧?或者说我们一般情况下不不让他输出一个数值。那么其实。有嗯这个我刚才讲的呃表达也表达的有有点有误啊。可能说有同学说老师。
我能不能直接让它回归这个具体的坐标的值?可以的,比如说这个坐标的值是5050,你直接让这个模型回归率这个坐标的值。比如说像素值是可以的,这种是可以的。但是它这个模型肯定会有误差,为什么呢?
因为我们CN它的一个输出空间,它经过了多次的这个呃激活函数,然后就会导致你如果是让这个模型去最终的输出是一个比较大的值。这个比较大的值就是说它是一个。比如说50100。
那么这个CNN其实它那个就是它的置信度不会特别高。那么在这种情况下,我们一般的做法就是把这个。具体坐标,比如说这个关键点的一个坐标把它映射到我们具体的,就相对于整张图它的一个相对的位置。呃。
有同学说自态估计对人体的定位进嗯嗯有同学说自态估计对人体的定位问题,借助自态,然后识别行为。是的嗯,对,这个是具体的一个对,当当然这个呃这个行为识别也有一些其他的就是说行为识别可能。就是在呃怎么说呢?
也不能是单纯是对人来对人的啊,也有可能看具体数据集,看具体数据集。有一些数据集就是呃根据人的行为的话有一些数据集可能是对一些视频对,或者说对于一些呃比如说嗯比如大家如果参加过呃近年天池的一个比赛。
就是他的一个视频行为的识别呢,就是识别一个电视剧里面的,有哪些片段是在打电话,哪些片段是在对白,哪些片段是在呃就是在一个室外的场景,哪些片段在一个室类的场景。
所以这个行为识别可能还跟你具体的应任务就是说定义相关啊。我们今天的一个课程呢是一个人体自在估计啊,人体自在估计。嗯,那么我们刚才也讲到,就是如果让一个模型直接回归我们的一个呃坐标点呢。
其实会有很多的问题的,其实会有很多的问题的。那么其实现接下来呢就会一些改进。比如说我们能不能让这个网络模型学习到多阶段的反馈呢,其实也是可以的。当然可以,那么我们就可以迭代误差来反馈我们模型。
那么如能同样的,我们也可以让我们的模型有更多现验知识。比如说让我们模型知道我们的关键点那关键点的分布规律,知道我们这个关键点的一个大小。就是说具体的一个呃位置比也就是说他们之间的关系。对。
然后这个地方我比嗯给举个例子,就是说我们其实是可以通过我们具体的一个关键点。比如说这个地方我可以把一个图把它切分成多个,这个地方就是双原生N的论文的截图啊,就是我们可以把一个图把它切分多个。
比如说不能区域把它切分开来,然后输入到我们模型。然后根据我们的区域呢,以及他们的关键点的位置呢来做一个精细的一个预测。所以说大家也可以看到,就是说对于姿态估计啊。
可能它是一个也是一个end to end的一个就是端到端的一个呃解决的思路。但是它有一些具体的解决方法是值得我们去学习的。那么如果是把我们的一个热力图加入到我们的这种解决方案,那怎么做呢?
就是说它就是需要我们用这个CPM比较典型的这个CPM模型。CPM呢就是就是这个convolutionpo machines就是一个序呃这个po machine呢就是一个呃序列化的预测框架。
它可以就是说学习到一个信息丰富的一个空间性模型嘛。那么这个CPM呢其实是将呃这个卷积神经网络整合到我们的po machine里面。然后呢呃就是将这个呃。就是说能够更好的学习到我们这个人体的一个姿态吧。
那么个CPM其实也是我们现在学习人体姿态估际里面必学的一个论文啊。那么CPM后续也有发展,就是说也是CPM相关的作者就是发表了这个open poseopen pose也是非常非常就是说经典的那么CPM呢其实这个条节解释了。
就是说CPM呢它是由全卷辑网络虚拟化组成。然后就是说在训练的过程中呢反复输出每个关键点的个2D的执信致信图。这个置信图呢,它这个致信图是这个中间层就是中间网络层的一个h对。
那么这个执线图呢为后面的一个阶段提供了每个关键点,在空间的一个不确定的一个编码。然后通过CPM呢,它其实可以就是CPM其实可以学习到这个丰富的一个空间的模型。
对你如果直接让这个模型就是说端到端的去学习这个具体的位置,可能还学的会不是特别精细。那么这个地方我就相当于手动把它分成了不同的阶段,手动把它分成了不同阶段,降低了我们这个呃就是呃不确定性。然后呢。
这个CPM它不同day的一个设计的启发点,就是说它是在呃图像同一张图里面或就是说获取到不同大小的一个感受也。那么这个感受也呢就也会改善我们模型的一个精度。那么CPM也是非常非常经典的论文。
但是也发展的就是发表的也不是呃不是特别晚了,不是特,也在2016年2016。那么CPM在这个tage one的时候,它的一个关键点嗯和在tage two的关键点啊是不太一样的是不太一样的。
如果大家感兴趣呢,可以向后客户呢阅读一下我们CPM的论文啊。对,现在在网网络上也有很多的CPM的一个解读的博客的。因为这个这个论文啊实在是非常经典非常经典啊非常经典。那么CPM它的一个整体流程。
就是说计算我们不同尺度下的一个各个关键点的一个相应的一个h。然后对于相同的部件呢,我们每家所有尺度的这个h得到一个总的响应图。然后呢再找到最大化的一个激活点来确定到具体的一个关键点的一个位置。
所以说你可以认为这个地方这个CPM它是有一点那个在我们现有的论文可能这个就原始论文这个CPM它是四个阶段四个阶段的对不同的阶段可能这个图片的一个尺寸。
就是输入到这个就是输入到不同t的这个feature featureature map的一个size吧,就不一样的对,不一样的。所以说它其实让我们的模型有一点像那种头像金字塔的意味,对吧?
那么这种CPM呢,其实它也是就是说它比这个 deeppo以及对这个坐标回归的这种模型相比呢,它是更进一步是对这个HH map这种来进行一个学习的。所以说它的精度也会更高一些。
那么其实如果是用h map以及它的个offet来进行一个学习呢,也有一些相应的呃缺点,或者说有相应的改进。比如说人的尺度是不一样的。在一个同一个图片里面,人的尺度不一样,他们以及他就是人的大小不一样。
以及人的这个关键点的一个位置信期,我们如何让我们模型知道呢?对吧?以及这个人与人之间的关系,我们怎么得到的对吧?其实这都是有一些具体的一个。呃,就是说解决方案,比如说人的尺度不一样。
我们都会可以通过CNN加图像金字塔,或者人的关键点有这个具体联系。我们可以就是说用1个CNN加一个树状建模的模型。对,所以说现在的一些前沿的发展都是基于这个思路的,基于这个思路。
那么这个链接呢就是呃这个人力资态估计现有的一个发展啊。对我这个地方不方便打开。如果大家感兴趣呢,也可以看一看,就是对我们现在就是说现在的一些人体资态估计啊,其实发展的也非常非常成熟了。
发展的非常成成熟了。那么现在的比如呃比如说这个open pose啊,或者说多多人,就是说多呃多人姿态嗯,就是说嗯这个。呃,CPF啊就是那个cascade的嗯predictionion那些模型。
其实对这个人体自代构计啊都是就是说刷分刷的很高的。比如说这个MPI数籍上很多论文啊都是刷到了93%以上的,基本上是。就是说人单人的人体自带估计啊,利用我们这种方式啊都是可以很好的解决。
都是就是特别是利用这种热力度回归的模型,都是解决的比较完好的。那么如果是把它拆分成多人或者说转成这种多人的自带估计呢。我们怎么做呢?就是说这也有两个路子啊,就是两种发展的路线。第一种呢就是自上而下。
就是先分成人,然后再到检测每个人的一个骨骼关键点,还有一个是自下而上自下而上呢就是是先进行一个关键点的检测,然后进行一个关键点的聚类啊,那么现有的可能性现有的呢可能是这个自上而下的这种方法。
就是先检测人再检测骨骼关键点这种思路会更多一点。这种相关点就会更多一点。比如说我这个PPT里面展示的是这个2018年MPE这个论文,就是说reing person嗯,这个论文它提出的。
然后这个论文其实也是非常经典的非常经典,它是呃也是提出比较早的它的一个考虑就是说我们是就是说人体关键点就是说人体这个姿态估计啊,其实就是本质对这个关键点进行一个检测。那么其实也是。呃,就是这个关键点呢。
它也会提就是说有一种proposal,就是物体检测里面的这种带呃物体带显框的这种感觉。那么我们能不能。就是说在训练引体自在估计的时候,也加入这种人体的。呃,就是说相当于你这个地方你你会你你你相当于你。
其实他是提出了我们就是说也改进了一些方,改进就是说比我们呃传统的这个物体检测的这种思路啊,就是说不不单单是这种传统的物体检测思路啊,也改进了相应的一个呃一些点啊,比如说对这个人体的一个不同裁剪区域。嗯。
然后进行个变化。比如说大部分人体就是位于我们财政区域的正中央,然后这个proposal,它最终和我们这个关键点那个位置有什么联系,都是有相应的就是说一些相关的。
那么这个但是这个RMP它其实是发展也是发展。在现在来看发展的也有点早。2018年,但是RMP其实它的一个精度啊并不低。呃,RP后续的还有一些这个由菲斯佳佳提出的这个CPM。
或者说这个呃face斯佳佳提出的这个。叫瑞ky嗯也是2019年拿下客户冠军的一些教军论啊,都是非常经典的都是非常经典的。那么大家也可能关心我们学的人体自态估计对于我们就业有什么帮助,对吧?
我们接下来就看一下学的人体自态估计,其实对我们的就业也是有很大帮助的。呃,首先呢人体自态估计我个人认为是在对于呃在计算机视觉领域啊,是落地比较大的一个或者落地。
非非常容易落地的一个领域。为什么呢?这么说呢?我这样给个具体的案例,你看,就是说自带估计有非常非常重呃多的落地啊,可能我就是说除了分类之外。
呃,人体自态估计它的一个落地的场景就最多的。那么自态估计呢它有这种行人的就是说可以检测行人的呃姿态,就是说人体的关键点,当然也可以检测动物的关键点啊,也可以检测衣服的关键点。大家注意一下。
就是说它不可以不仅可以检测人,也可以检测动物,也可以检测衣服,就是俯视也可以检测这种物体啊,这个比如说这个箱子,只要你有关键点的信息,对吧?就像只要你有标注信息,我们就可以用这个姿态估计来做来做。
那么呃姿态估计也有非常非常多的一些应用啊,呃,就是说比如说检嗯检测到一个人的行人的姿态,运动员的姿态,然后呢,比如说我们可以对一个运动员的一个跳舞动作进行打分,对个人的一个具体的一个动作进分。
比如说它到底是跳起来啦,在行走啊,还是蹲下来了,对吧?那么这个地方大家可以拿,其实这个地方就是第三点,对吧?其实姿态估计对这个安防啊,安防领域。非常非常就是用到的地方非常非常多。比如在安防里面。
我识别这个打架。对吧危险动作打架摔倒,对吧?大家可以看看,其实这个地方人姿态估计非常非常有用,对吧?这个在暗防领域现在已经成熟落地了很多。对,成熟落地了很多。那么在游戏领域啊,姿态估计。
比如说预测就是说根据一个玩就是我们游戏玩家的一个呃姿态来就是说相当于我们这个嗯游戏里面的人物啊,跟着我们这个现实生活的人人啊一起动。比如说这个VR的游戏联动舞蹈机舞蹈打分都是通过这种姿态估计的应用。
所以说姿态估计它其实是。落地性非常强的一个应用,而且是我比较建议大家学一下,为什么呢?你单纯学分类啊,图像分类啊,可能学不到这种关键点检测,对吧?就是相当于学不到关键点检测的问题。
也不学不到物体检测的问题。你如果想学想学一个具体落地的嗯点呢,其实这台估计可能是比较好的点。而且这台估计呢其实学起来也比较有趣,对吧?你可以学了之后就可以看看你把自己的摄像头打开,对吧?
你看看自己的模型能不能识别识别自己的这个就是说动作啊,对,所以说现在这台估计已经是在国内的这些摄像头啊,比较大的城市啊,应该是已经有部署了,已经有部署了。
但嗯就是说这台估计它肯定是我个人认为这台估计是比这个物传统的物体检测啊,它是呃应用的范围还会更广一些。那么这台估计虽然说已经在。单人的自带估计啊,你可以认为它已经解决的很好了。
但是在多人的自带估计啊解决的还是有一些呃还是有点欠缺的。那么自带估计我们如何进行一个扩展应用呢?其实。这个地方我们如果在国内做的话,其实你要考虑它一个具体的应用场景。比如说我们如何判断一个用户。
就是两个人到底是在握手还是在打架。对吧其实打架一般都是这个拳头来拳头去或者搅来搅去,对吧?其实也是有点像这种握手或者说跳舞,对吧?你如何识别两个人是不是在握手还是在打架,对吧?这大家可以考虑一下。
其实这个。也很有意思,对吧?在安防领域肯定要落地的。那么如何识别呢?我们是不是通过这个。用户的一个关键点,再结合他这个时间的信息,对吧?如果是在打架的话,那肯定不会像在握手那么呃。
就是说这个关键点他们的交叉会这么。呃,来的快,对吧?如果是打架,肯定这个关键点的一个接触会更加多一点。那么这是第一个,就是说我们如何把这个关就是说自态估计呃具体的一应用,对吧?
你比如说这个地方你们不要再打了,对吧?这个具体在打架呢,还是在跳舞呢?我们怎么。把它定赢了对。然后呢,自态估计如何做数据扩增呢?其实大家在学习深度学习,或者说学习任何计算机视觉的一个呃任务的时候。
你就必须要考虑到数据扩增方法。因为数据扩增其实是非常影响到我们模型的一个精度的,对吧?你的一个数据,我们比如说一个型人的一个姿态,我们把它数据扩增旋转呃平移缩放,我们可以把它转成多个多张图片,对吧?
其实对我们的精度影响非常大。那么对于自态估计它能不能做翻转呢。哎,这个是不是大家需要考虑到的?如果一个图片翻转之后,他们的这个姿态的标注是不是有改变呢?对,如果一个图片,假如说他你通过平移之后。
这个人只有上半身的人,他就是说下半身的一些关键点他都看不到我们。我们这个再怎么做呢?是吧?这都是一些具体的细节,就是如何做数据构增。那么还有一个点,就是说有同学会问到。
自态估计和这个人脸关键点有什么区别。其实人脸关键点现有的一些都是以这个坐标回归的。人脸关键点现在都是用做不了回归的,嗯,大部分都是用做表回归的。但是这在估计他可能会更进一步。为什么呢?
因为呃人脸的关键点啊,它都就是说聚的比较。密集就是都是在一张脸上。而且呢人脸啊大家可以设想,就是人的这张脸,其实不管在任何摄像头里面。
其实这个尺度就是不同关键点啊都是距离就是他们之间距离啊都是比较近或者比较远的。它不会像这种人体字态,有的就是胳膊之间隔得比较近,有的胳膊和腿啊就隔的比较远。
所以说自在估计可能比这个人脸关键点会更难一些点。那么自态估计也是现在有一些交叉的。比如说这个与行人冲检测ID的一些任务啊,都可以结合一起来,所以说也是发展发展非常快快的啊,发展非常快的。
那么这个地方我举一个具体的案例,现在这个案例已经是在呃在不管是在淘宝啊,还是在京东啊,在电商领域已经是被广泛利用到了一个。就是说时尚的关键点的检测。时尚的关键点的检测就是说我们不仅是可以。
做这种人体的姿态估计,还可以做这个时尚服饰的关键点啊,大家也可以考虑一下。其实这个人做完之后就可以把这个技术用到其他的。比如说作为做到一个服饰的关键点,比这个服饰的关键点非常非常有效啊,用途非常大。
我给大家举个例子。比如说这个地方给出的是一个。上半身的短袖。以及我们的一个全身的装,对吧?全身装以及一个呃裤子以及这个。然后上衣对吧?那么通过这个关键点啊。
大大家需要注意的这个服饰的关键点和这个人体的关键点是不是相差的不一样,对吧?一张就是说一个短袖可能我们定义这个这么多关键点。那么一一条裤子可能定义这么多关键点。那么也就是说在不同的任务啊。
可能我们这个关键点数量都不一样啊,这个这个是一这个是需要注意的,就是说对在时尚领域,不同的衣服,它的关键点可能。就不太一样,对对吧?比如说这个连衣裙、裙子和这个裤子以及上衣,它的关键点的个数肯定不一样。
那么这个姿态估计,或者说这种时尚关键点呢用处非常大。我给个例子啊,比如说大家如果用用到淘宝的一个拍照过,它里面肯定就有这个时尚关键点,服饰关键点的定位,它会定位到一个具体的服衣服的一个具体的关键点。
他呃有同学跟我说,老师他会不会用到这个服饰的一个物体检测,有可能用物体检测。但是这个关键的颜色会比这个物体检色就是说框选会更加精细。大家可以设想一下,因为我们这个关键点它会检测到这个具体的衣服的衣领。
大家知道这个衣服的衣领有很多种分类,对吧?有圆领的V领的。如果是西装的话,肯定分类更多。如果是用这种关键点,我们这个电商的一个这种啊它的一个就是说模型的一个识别的力度啊,还更加精细。
它会识别到具体的就是说一个比如袖子袖口,我们的呃就是说衣领以及我们的裙摆,对,就识别的会更加具体。那么我们这个给出的例子呢,是这个也是就是在天池上嗯,就是说现在已经有现成的。就是说数据级或者是比赛的。
现在这个在去年的CVPR上也有类似的比赛。就是说做一个服饰的关键能检测,现在就是这个也是应应用非常非常多的一个领域,不仅是可以做人啊,也可以做衣服啊。当然你可以做。宠物啊不仅是可以做人啊。
我这个地方不是说人体自在估计只能用到人啊,你可以用到动物。😡,比如说猫的狗的,当然啊,只要你有标注,你就可以训练啊,只要你有标注,你就会把我们现在的模型把它转换起来。所以说现在的情况是呃。
技术或者模型并没有这个数据来的重要啊,就是数据其实它的一个重要性肯定会比我们的技术会更重要。对。嗯,那么接下来呢是对我们的一个就业班进行一个介绍啊。大有同学已经说了啊老师。
我们接下来有没有具体的自态估计的一个呃班课啊,当然有当然有。那么在哪里呢?就是在我们的一个呃计算机视就是视觉的一个就业班里面会有我们具体的自态估计的一个项目啊项目。然后这个就业班呢。
其实如果大家不知道呢,我们可以给大家介绍一下啊,呃找一下,就在这个地方实战项目2,实战项目二这个地方就是具体的给大家做一个人体关键点的一个提取的。然后这个是很实战的啊。
就相当于从头到尾把这个代码以及原理都会给你讲通。那么这个CV的就业班呢,它不仅仅是讲一个项目啊,这个地方有一个两个三个4个5个6个,对吧?会讲6个实战项目。然后呢。
也是基本上涵盖了计算机视觉常见的一些分支。比如说这种图像的语分割自动驾驶的语义分割人体关键点,大规模。的行人同识别以及snaamp三维重建,以及这个这个叫imagic,对吧?根据图片看图说画。
以这个自监督的图像表征。所以说呃这个呃呃CV的这个就业班呢,其实是非常靠近我们具体的一个工业界的一些学术任务,工业任务或者学术任务。所以说如果大家有就业需求的呢。
就是说非常建议大家可以报一下我们的CV的就业小班。然后大家就是如果是今天想报名,或者说通过我们今天的公开课报名啊,都是有一些相应的优惠的。那么优惠呢可以呃点击一下我们的立即报名啊,立即报名。
然后就是可以到我们具体的不管是联系到我们具体的一个老师,或者说嗯联系到我们的微信上面的一些班主任啊,你都可以跟他说,就是说通过我们的直播课报名的,都会有都是有一些优惠的。
那么这个呃就业班不是说呃你报的名就一定保证你就业肯定是有一定的呃筛选机制。那么大部分的我们的就是说往期的一些学员,就是他的一个用户画像,就是他的一个就业信息还是非常好的,非常好的。
就是说大部分的学员都是应该是上一期呃一个就业学员,上一期的一个就业学员,按照统计应该是97%还是93%的同学都已经顺利就业了。所以说如果大家对我们的想学习计算机视学,或者说。已经有计算机视觉基础。
但是想找计算机视觉的工作,或者找不到计算机视觉工作的同学呢,可以报名一下我们的1个CV的就业小班。然后呢,其实嗯就是我们已有的一些课程啊,他的就是我们的同学已经是大部分都是就是说进入了我们比较好的公司。
对,比较好的公司。嗯,那么我们的时呃这个嗯单课的一个时间安排呢,大家也就是也可以注意一下,就是我们是10月18号开班。对,10月18号开开班。对,然后这个价格大家就是是可是可以是有优惠的。
可以优有优惠的。你可以点击一下立即报名,嗯,就是咨询一下。然后呢,这个班课不是说呃就是报名,就是也一一定审核机制的审核机制就是需要大家填写一个申请表,然后发到我们的邮箱。然后这个就是我们今天那个内容。
那么其实呃这个CVA的就业班,它其实讲的内容不仅仅是项目啊,也会讲解我们具体一些嗯就是CV的知识点。比如说。图像数字处理的基础呃,图像处理的进阶以及计算机视觉的基础。
传统的这种嗯计算机视觉以及这种比如说传统计算机视觉里面,就这个可能在其他的课程里面,你不会见到比如说shiftft它的一个具体的原理,通过shiftft完成一个图像拼接,通就是说hog图像特征。
可能这些特征,你只是呃你如果现在学计算机视觉可能都不会学这种传统的计算机视觉的方法,对吧?但是这个其实是非常非常有用的,或者说呃用途非常大的对。那么在我们的课程里面也会给大家讲也会给大家讲。
然后呢还会讲这个tentenflow的基础。然后呢机忆学习技术深度学习的基础,然后还会讲到这种卷积神经网络的调参,对吧?然后这个地方它不仅仅是根据一个就是说讲解一个具体的知识点啊。
它还会讲解一个具体的一个我们的一个这个知识点,怎么做一个落地的应用,比如说做一个根据我们的知识点做一个。呃,就是说比如这个地方我们嗯带着大家做一个车辆检索,或者说是一个行冲识别的项目。
那么在这个项目里面,你会深入知道我们这不同老师他们之间的区别,他们之间怎么调餐的,他们对应于什么学术任务的对,所以说也是非常干货的,非常干货的,不是说只是带着大家学习知识啊。
不是说只着带着带着大家学习知识。对,嗯,然后如果大家对我们班课感兴趣的呢,可以点击一下我们立即报名啊,点击一下我们立即报名。对。然后大家对我们的今天的内容有问题吗?或者说有相关问题吗?呃,需要注意的是。
刚才帮我讲了一下,就是我们今天的一个课程的课件呢会发到我们的微信的直播群啊,微信的直播群就是发到我们的老师,你可以随便咨询一下我们任意就是任意一个我们的老师啊,就是说就可以呃拿到我们今天的PPT。
当然我也欢迎大家关注一下我们7月在线的一个微信公众号的二维码啊。对,那么我们这后续的一些公开课呢,也会优先的在我们的呃呃公众号上面进行一个通知。对。
嗯,大家对我们今天那个课程有问题吗?对,ZZ987,如果你觉得学的还不够尽线,你可以参加一下我们的一个呃CV的就业班。然后个就业班现在已经开了是第第六期了,第六期了。呃,大家有问题吗?对我们课真相关的。
呃,那么如果没有问题,我们今天的一个内容就到此结束了。对,呃,那么我们后续的1个PPT呢也会发给我们的老师,呃,发给我们的助教。然后如果大家想获取了呢,也可以嗯咨询一下他们。好的,谢谢大家。
人工智能—计算机视觉CV公开课(七月在线出品) - P7:深度计算机视觉简介 - 七月在线-julyedu - BV17z4y167dq
🎼。
ok。我们现在正式开始,今天我们主要聊的是呃关于深度计算机视觉的方面的一个简介。呃,用英文来说,主要是deep learning for computer vision。呃,这堂课是7月在线主办,嗯。
我本身是7月在线的一名呃关于计算机视业这块的一个讲师。呃,我本身在呃美国的哥大学单国分校同时呃在那个metropolitan state University of Denverver做大学讲师O我主要的研究方向就是深度 deepep learning for computer vision我们今天。
呃,要跟大家聊大概四个话题。第一个话题是什么是深度学习?呃,因为在我看来,深度学习其实就很简单,它就三步。那么我也会跟大家分享一下到底是哪三步。😊,然后在第2块,我会跟大家聊一下目标识别与检测。
紧接着是呃关于这个计算机视觉的一些分支。比如说人体关键点检测呃,图像对抗生成。
呃,我们第一个话题会是。深度学习呃,三步轻轻松搞定,深度学习OK。
呃,在呃第一个话题的时候,一般来说我们会先提出三个问题,就是什么是深度学习?为什么要做深度学习?最后一个问题就是说如何去做深度学习三个问题,what why and how。先回答第一个问题。
什么是深度学习?那么好,深度学习它本身是人工智能的一个分支。所以我们先聊一聊人工智能。
人工智能简称AI呃,在人工智能出现之前,呃,因为计算机呃科学本身已经经历了一个很长期的发展。那么在呃人工智能的之前的那个时代。对于很多传统的软件或者是算法来说。
他们都是会编撰出一一套呃属于我们可以叫它算法也可以叫它规则。就是说在这个算法当中刚满足一些条件的时候,那么我该怎么样做,否则不满足条件的时候,我们又该怎么样做。那么它是一个基于规则的过程。
在人工智能当中,人工智能它本身是说呃,我是从海量的数据当中归纳一些知识。我不关心你中间过程发生就是发生了什么。当我有海量的数据,同时我知道通过这些数据,我最后想得到什么。然后我进行一个呃模型上的学习。
那么。😊。
所以说人工智能它是通过一个归纳法来总结知识的,只关注现象,不关注为什么。呃,所以在很多人看来呃深度学习可以说是它的基础就是。统计学它的基础是统计学,就是说一个归纳现象的一个东西。
那么在人工智能往下细分的时候,会出现另外一个分支,叫做机器学习。机器学习。因为它叫mine learningning。呃,从自边意义上来讲,我们就是说让机器去学习它的一些东西。我们看一下它的基本思路。
首先我们把现实问题会抽象出成为一些数学问题,用一些数学的公式或者是负号,把现实问题表示出来。然后在让机器去学习数学问题,并且解决这个数学问题。当解决数学问题之后反馈回去,就相对于我解决了呃现实的问题。
O这是一个机器学习的基本思路。那么在机器学习的机器学习本身也有很多分支,在它的分支里面还会出现一个新的分支,就叫做深度学习。我们看一下深度学习的一个大框架。嗯,左边和右边它像两一个管道。
那么我们把左边的管道,我们认为这是它的模型的输入,这个输入可以是一张图片,一段声音,甚至是。呃,一种气味,比如说我用传感器捕捉到了一种气味等等。那么它最后的输出就是最右面的两个管道,我们视为是一个输出。
它这个输出就可以说呃,我们想让这个机器来做什么?比方说我给了一张图像进来,我想让机器告诉我,这张图像里面有什么。比如说有一张桌子有一有一个花园,或者是有小朋友在踢球。对吧呃,如果是接绍到一段声音的话。
我可以希望嗯机器来告诉我声音的内容是什么。适音的内容是什么?就是等等会一段气味。那么这个气味它会它是香的还是臭的,就拿前一段时间。嗯,我记得我看到一个新闻,就是在这个呃国家针对这个肺炎的时候。
这个人工智能就是加速了那个疫苗的研究。那么其实我们可以也可以认为。在这个情况下,输入就是一些基因的组合,输出就是最后那个疫苗的表现形式就等等。所以传统的机器学习,它的特征主要是依赖人工。呃。
针对特定的简单的任务的时候,那个人工提取特征会简单有效。但是深度学习它的特征不依靠人工是机器自动提取的。呃,所以有些人说呃我这个比如我拿我们还是拿这幅图来说,左边的输入。
右边的输出通过模型自动来不停的学习。这个学习的过程,就好比说大家看中间的那个管道,我的哪些管道在某一瞬间可以打开哪些哪些水龙头是可以关闭,或者是说打开的时候,我阀门开多少,让这个水流很大,还水流很小。
它是一个这个的过程,这个过程是并不是人为干预的,而是这个机器它自动学习,自主学习出来的。呃,这也是为什么很多人说这个深度学习的可解释性比较差。呃。因为深度学习它的虽然会有很强很非常棒的表现。
但是我们不知道它的原理是啥,因为它这个归纳总结的方法嘛,所以有时候老大家老说这个深度学习就是个黑箱OK我们再往下看。😊。
Yeah。这张图片是大概是总结了一下机器学呃人工智能、机器学习和深度学习的关系。人工智能是一个很大的范围,呃,它可以让机器来模仿一些人类的特征或者人类的行为。在人工智能的领域下,会有机器学习,机器学习。
它是说让嗯机器来自主的学习人类的一些啊方法,注意是自主的学习。那么ding的一般它又认为是机器学习的一个小的分支。那么深度学习,可以认为是说让机器自己去想,自己去琢磨,因为它是一个自主学习的过程。
深度学习有哪些优点和缺点呢?我们可以看到深度学习的优点,比方说他可以学习能力强。😊,对吧因为我不需要人工干预。第二是它的覆盖范围广,适应性好。什么意思?就是说呃呃我的呃应用领就是应首先是应用上。
应用上它的非常的强。我同样比如说我拿一张图片,我让他学习了之后,那么我学习的这一类的图片的时候,我就不需要再拿新呃同样是一类的,同样是在这一类新的一波图片来学习。可以说它的适应性非常好。第三个优点。😊。
数据驱动上限高。那么。这个东西因为深度学习本身是基于海量的数据,所以这也是为什么它被称为是有数据就有了天下。最后一个优点,当然它并不只是这4个优点啊,我只列了4个优点。最后一个优点是可抑制性好。嗯。
在深度学习呃,这块有一个小小的很小的一个分支叫呃迁移学习,translytranstrans learning迁移学习。那么就是说呃在我们学习的过程当中。比如说我学习猫和我学习老虎。
因为他们在前期的时候,我们可以认为猫和老虎,它在很多地方上很像。那么当我训练了一个模型去识别图片里面全是猫和。当我在学习再训练模型,学习图片里面是老虎的时候。
那么我就可以把新的模型先应用前一个模型的一些。呃,我们可以叫参数或者是它的一些特征,这是它的可抑制性好。当然深度学习还会就是有很多的缺点。嗯,它最大的缺点就是说呃计算量非常大。
那么就导致了它的硬件需求非常高。一般我们聊像学习深度学习,一般首先你就得整一个比较好的显卡。因为呃当因为它的计算量非常的大。在显卡的算力,它是非常强的。如果仅仅依靠CPU来算,理论上是没有问题的。
只不过它的速度会非常的慢。😊,呃,还有一些缺点,比如说模型设计非常复杂,在早期的时候呃,深度学习早期的时候,它的模型并不复杂。但是随着我们想解决的问题越来越难,所以它的模型越来越复杂。
但问题是呃深度学习,它很容易被跑偏,所谓的跑偏,就是说在我调参的时候,不同的参数会导致结果非常不一样。那么当然我们调参也是呃会需要那个。啊,一些经验和技巧的呃,在深度学习的优点和缺点。
就是这一节这张幻灯片上吧。一般呃当我们聊了一些深度学习有什么优点的时候,其实也就回复了为什么要进行深度学习。😊,我们看一下深度学习的发展过程,这张嗯图片只是到了2017年。当然到现在为止。
2020年深度学习就经过了呃好几就是好几个阶段的大爆发。其实深度学习是一个老生常谈的话题了。大概在50年的时候,就上个世纪呃呃50年代的时候,它已经就是出现了呃深度学习的出行。
但问题是大概在呃大家可以看到啊,在1966年之后。这写了1个AI的寒冬,一直到1997年,为什么会出现AI的寒冬呢?AI涵通的意思就是说,在这个时期,人工智能这块,它的发展几乎陷入了停滞。
它的原因就是因为在上一张幻图片中,我们可以看到它对因为计算量大,所以硬件需求非常的高。那么所以就导致在。😊,那个时候,由于计算机所限,所以我根本就没有办法来训练好我的模型。
这也就是为什么一直到1997年之后,嗯,在呃芯片等等产业,呃,就是飞速猛进的时候,然后人工智能才重新迎来了升级,一直到现在,现在随着这个显卡的性能越来越高。超级计算机越来越强。
也就导致深度学习已经变成了一个全民性的话题。呃,说到这个地方,全民性的话题。呃,我记得以前就会有人问我,呃,在当今这个社会呃,会不会因为人工智能的出现,而导致大规模的失业。
我们看一下哪些工作容易被人工智能取代呢?嗯,这种工作一般有4个特点,我总结一下。第一个就是说。所嗯工作所需要的决策信息量很小。第二种是做决做决策的过程并不复杂,它的逻辑非常简单。而且你能够独立完成。
不需要互相合作。最重要的一点,重复性工作。那么如果呃有些工作有这四个特点的时候,那么我只能说这种工作会有很大的概率被人工智能所取代。给大家举个例子嗯。同声传译同声传译本身是一个非常难非常难的工作。呃。
因为他需要从业人员,有一首先是一个非常敏锐的头脑。呃,然后并且需要你有大量的,首先是你的英语知识,呃,口语非常好。当然你针对某一场类型的活动,你需要有相应的背景知识。你比方说你这场活动是销售领域。
那么就要有很强的商业知识。如果说这项是计算机领域,那么就需要有很强的计算机的背景的知识等等。但是在人工智能出现以后,同声传译这块嗯,它会我当然现在还并没有啊。
我只是说它会慢慢的慢慢的被受到这个人工智能的冲击。因为本身这块。
可以的,OK好,我们继续。😊,OK这个是一些很难被人工智能所替代的一些技能。嗯,那么在很难被就是所替代的一些工作的话,比如说他需要很强的社交能力,或者是一很强的创造力,或者是一些感知和操作的能力。
那么在很多服务行业当中,嗯,这个也很难被取代。我们重新回回头看一下吧,就是容易被人工智能取代的工作特征。比如说重复性工作需要独立完成,决策简单,同时呃需要选择的那个信息量比较小等等okK。呃。
其实在很多情况下,嗯,人工智能这块它会是它会取代一些工作,但同时他也会创造出来很多的一些工作岗位。
哎,我们现在回答第呃第三个问题啊,how就是说深动学习到底是怎么做的那我们可以看到嗯这个地方嗯,我给大家举一些例子,从左从从左往右看,最左面最左面的第一呃第一行的最左面,我们想做的是语音识别。😊。
那么我给一串给一串函数,我拿笔画一下给大家。OK比方说我这儿有一段音频,那么在这段音频当中,这是我的一个思入。然后我最想最想得到的是这段音频到底说了一个什么话,在这里这个音频7月在线O。😊。
那么我们再看。第二个例子是。图像识别,那么我输入一个图像。计算机会告诉我在这个图像当中,它的主体是什么?第三个例子是阿尔法go的例子。很前一段时间炒的很火的这个围棋大赛。😊。
比如说当我的摄像头捕捉到了一个桌灭奇谱。或者是棋局,然后下一步是怎么做?😡,下一步该怎么走字儿O。😊,最后一个例子是当我说一句话的时候。就是你少啥,然后系统会给我一个反馈。😡,投新咋地是吧?
这个就是比方说那像嗯苹果的siri,百度的,你好,你好,百度就等等这些。那么这些都是呃深度学习的一个应用。那我们看它到底怎么应用的。我们可以看到我这里有一个方框。😊,我这里有一个方框。
方框的意思就是说我这里其实都是一个函数。那么深度学习它本身可以认为它是在寻找一些函数,就是说我函数的输入。是什么?然后我通过函数的一些计算,最后来得到我想要的一个东西。这个其实就是它是如何深度学习。
如何进行运作的ok。我们可以把呃深度学习的函数视为一个黑箱。就拿这个来例子来说,我给定了一个图片。我最后我输入的是一个结果猫。O那么我把函数就叫做一个黑箱。大家注意,在这个黑箱里面。
它并不是仅仅但仅仅仅很简单的只有一个函数,它是有很多很多的函数。😊,OK所以说黑箱打包了所有的函数。比如说我立马有函第一个函数。😡,输入一张图片,猫呃输入一张图片,那么它的结果是猫。那么。
另外一张函数输一张图片,结果是狗。我们继续。注意啊,刚刚开始的是第一个函数F1。那么我在第二个函数的时候,我输入一张图片,我这开始计算F2入进第二张图片呃,输入到第二个函数里面,结果他给的我的是火烈鸟。
😊,同样还是这个函数,我输入了另外一张狗的图片,结果他给出的是答案是山猫ok。那么我们就知道在这个黑箱当中,它会有很多的函数,我给进输入,我想要一个输出,那么输出的结果是并不一样的。那么如何选择呢?
我们想要的是在这里呃猫咪的图片,我就想给定最后的结果就是猫。OK我们看一下。A set function,这是一个呃函数的集合,就是我们的黑箱。在这个黑箱里面有很多的函数。通过这个我还有一个训练的数据。
注意训练的数据是我人为已经提前做好标记的。😊,OK对于提前做好标记的意思就是说我只知这些训练数据,我给定一一张这是有猴绿的照片。我们希望函数的说出是monkey。注意我给每张图片都做了标记。第二。
我给了一张新的图片,我做标记是猫。第三张图片我做标记是狗。这个就是我的训练数据是我人为的已经提前准备好的。而且这些东西我会告诉我的机器。😊,那么大家看。
首先上面上半上半部分是我们的黑箱是充斥着各式各样的函数,下半部分是我们的训练数据,训练数据既有图片,又有最后的结果。那么我们的办法就是说我们通过这两者相结合来找到一个最佳的函数。
我们会发现比如说我刚才那些例子当中,F1和F22个函数第一个函数的结果是最好的。因为它给出的结果是比较准确的。F2给出的结果是不不是非常好的。那么我们就认为F1很好,OK。我们重新总结一下。
其实深度学习三部曲。第一步。呃。第一步有一个有一堆黑箱,有输入,有输出。第二步,在呃函数当中,我们希望选择一个最好的函数。最好的函数的意思就是说我们通过这个非常好的函数有一个输入。
有一个输出要达到我们的理想的结果OK。我们把左半部分叫做训练过程。我们把右半部分叫做测试过程。ok。okK我们重新捋一下啊,深度学习三步曲。第一步。😊,准呃第一步是我们从下面一张看吧。
第一步是建立一些函数,一群函数。第二步。我们把函数的所有的解全部算出来。那么第三步得到一个最佳解,那么这就是生度学的三部曲。okK我们重新看一下。第一步创建一个黑箱,黑箱里面会充斥着各式各样的函数。😊。
第二步,机器来自主判断这些函数结果的好和坏。第三步,在这所有的函数当中。找到一个最优解。最优解的意思就是说我的输入。通过这个函数最后得到输出是我想要的。那么我们就把这个认为是最优解。OK呃。
记得往年有一个充满的小品叫做把大象关到冰箱里面,需要几步三步,打开冰箱门,把大象放进去,关上冰箱门,深度学习也请你就三步,定义一个黑箱,让机器来判断黑箱里面函数的好坏,最后找到一个最好的解。
那么就是这三步很简单。说到这里我们看一下,那么深度学习呃,在计算机事业这块它还有哪些应用呢?O我们继续往下。😊,比如说第一个应用呃,人脸识别。呃,这个应用呃就是我现在给大家放出来的这个视频。
它是做一个就是face IDD。就是说我早上上班刷卡。还有目标检测。大家可以看到在高速路口的时候,我们会把呃我们会用一个矩型框框住我们感兴趣的。在这个图像当中,我们感兴趣的是一辆汽车。
那么同时我们可以也通过这个项目,我们可以发现。😊,哪些汽车是在行进,哪些汽车是一直不动。那么我当我发现某两个框,它一直不动的时候,那就说明这里出现了一些车祸,就需要派交警过去干预。
这个应用叫做人脸关键点识别。大家看这个是挺有意思的。像我们现在的社交媒体,比如说那个抖音快手,它就会呃我们捕捉一段你他用你的手机摄像头捕捉到你的人脸的时候,然后会给你加一些什么小眼镜呀,就等等。
这是一个也很好的应用,叫做呃人脸识别。😊,这一部分嗯新的这个叫做人体姿态估计,又叫做呃人体骨骼点检测。呃,人体骨骼点检测的应用也比较广泛。比如说一些体育或者是无人超市呃。
那么在这块就在现在这个幻灯片出现的两个例子当中,我们把它统称为关键点检测。呃,在今天的第三个话题当中,我会和大家聊一下什么是关键点检测。还有一些例子,比方说呃出去视频生成。
大家看到现在左边的普京和右边的奥巴马都在好像发表一些演讲。但是我要告诉大家的是。😊,这个呃这两张呃是这两个视频都不是他们本人所做的,都是计算机合成出来的。包括无人车。
通过一些接触到的一些传感器来感知周围的环境,然后做出下一步行动的呃就是行行动的预判。
嗯,包括去马赛克。最后一个是呃一个通过图像来进行翻译。比如说我拿我的手机摄像头,我照一下,然后就知道这个路标大概是什么画,就等等吧。呃。
这些就是我当然我仅仅是给大家罗列了一些呃深度学习在计算机视觉方向的一些小的应用。呃,本身它还有很多就是各式各样的应用。那么今天我们就不在这一一赘述了。呃,到目前为止,就是我们的第一个topic。
我现在退出一下,然后看看大家有什么问题或者想和我聊的嘛。如果没有的话,我们再进行第二第二个话题的呃,继续。
我看一下我们的。
。如果大家对第一个话题还有感兴趣的,就可以现在在对话框中跟我交流一下,不然的话我们就直接进入到第二个话题。
。第二个话题是目标识别与检测。嗯,在这个话题当中,其实它有两个不同的话题。第一个就是目标识别,第二个是目标检测。那么我们先看。
目标识别到底下来做什么的?目标识别本身可以把它想象成一个分类的问题。OK什么是分类问题呢?我们看到这里有三台电脑,三台不同就是各式各样的电脑。但是我们可以把它统称为电脑。
我们就可以如果对这三种电脑进行仔细细分类的话,我们可以得出右上角它是个台式机电脑。左边的是笔记本电脑,右下角是呃平板电脑。我给大家注意。那么这里它是三个不同的电脑,但是我们为什么可以把它统称为电脑呢?
因为对于人类来说,我们会找它的共同点和不同点。他们的共同点,比方说都是电脑都可以做一些,比如说做呃PPT啊或者都是打游戏,就等等或者是视频呀等等看电影。O就是他们共同点。那么我们人类还会找一些不同点。
我们所找的不同点是这三种电脑,它的大小是有什么不一样。对吧它的形状什么不一样,甚至是说你这个材质是什么?全是比如说是铝合金呢,还是说是纯塑料壳等等。呃,拿最后一个来说,便携性来说。
平板电脑的便携性是最高的对吧?然后是笔记本电脑,最后是台式机电脑,一般大家不会抱着台式机电脑来回跑。那么就是说对于人类来说,我们会找它的共同点和不同点。
那么如果我想让计算机来代替人类做这个分类的问题的话,计算机会怎么做?😊,计算机会找到一些特征,features。那么哪些特征?比方说颜色特征,我们可以看到我们先看左面这个。我们先看这个。
本身的颜色就是五颜六色的颜色,它其实可以认为是由三种颜色来混合搭配而成的。红色。蓝色和绿色,红色、蓝色和绿色。okK我们可以看到在这个点的时候。在这个点。这个点三嗯这三种颜色我们称为三原色。
三种颜色通过不同比例的混合,可以达到不同不样的颜色。当达到这个数值的时候,大家可以看到这写的255255255,达到这个数值的时候,我们就认为这个点是个白色的。
它显示的是白色OK我们会把颜色分为从0到255。就是在这三种不同的颜色当中都是0到255,或者是从0到1,这是不同的分类标准,但其实是一样的,效果是一样的。O。😊,呃,还有一种分类方法是向右右边所示。
它通过是饱和度、色相和它的值,当然还有其他的分类方法。但总的来说,我们把这些都归为颜色特征。那今天我主要会通过。左边这个来跟大家聊RGBO。第二个特征,比方说形状特征。我们看这幅呃建筑图片。
在这个建筑里面其实是有一些呃有很多形状的。比方说这是一条线。😊,这儿重置着一个角,那么再稍微复杂一点。😡,这里我们可以把它认为是一个结构,这个就是所谓的形状特征。OK除了颜色特征、形状特征。
我们再给大家举一个纹理特征。比方说。这两张图片,那么我们可以看到左面的像一个蜂呃蜂巢形状的,呃,右边的像很多叶片,它就是叶子叠成的。那么这个我们叫做纹理特征。OK那么在计算机。
它就会通过来分析判别这些各式各样的特征来最后得到它呃不同图片的共同点和不同点。Yeah。每当讲到目标识别的时候,我们都会提到一个东西叫做呃卷积网络conal neural networks。
或者是大家有时候简称叫CNN不是这个美国电台CN啊,就是我们把它剪成这个神经网络,叫卷积神经网络,简称CNN。OK我们可以看到左边和右边,它其实是一样的东西。左边的这个东西是二维的,右边那个东西三维的。
我现在通过二维来给大家解释一下CN他做的东西就是目标视频。那么它到底是如何做的呢?我们可以看到红框里面。我们有输入,我们也有输出。ok我们有输入和输出。所谓的输入,就比方说是一张图片或者是一段声音等等。
当然CN主要是解决图像的。那么所谓的输出,我们可以让它做来判别图呃照片里面有什么东西。okK那么在输入和输出当中。这一块儿。可以把它理解成嗯,这是我们的刚才所说到的黑箱。那么在黑箱里面。
它其实是由不同的层来组成的。比如说第一层,这是第二层或者是3456七八层。那么我们把这每一层都叫做隐藏层。因为我们看不到它,所以我们叫它隐藏层。O它具体是怎么做的。稍后我会给大家。
就是详细解释一下隐藏层的是如何进行工作的。
说到特征的时候,在这个地方我想给大家看一下。这个卷机神器网络,我最左面的输入是一张照片,大家可以看到这是一个汽车的照片。那么输出输出大家可以看到在最右面我有5类,第一个是轿车。
或者是卡车、飞机、轮船或者是一匹马。那么当我输入这张图片的时候,我最后的输出我们可以看到在car就是轿车这块,它的那个绿色是最多的,那么就代表这张图片是轿车的概率是最大的。OK是最大的。
所以我们就认为这张图片主要是轿车。呃,不同的绿色的范围代表着不同的概率。中间这块大家可以看到啊,中间这块中间这块就是呃。计算机所识别到的图像的一些features,它每一个都是一些一串隐藏层。
OK我们具体看一下它到底是怎么工作的吧。
说到这个时候,我们还得从图像说起。😡,刚才我已经跟大家解释了呃,彩色的图像,它一般来说我们可以认为它是由红色、绿色和蓝色这种这三个颜色来组成的,就是通过不同的比例配合。
从1到255或者是从0到1OK我们拿这张图片来举例,这是一张彩色照片。它其实也是它有三层,第一层是红色,第二层绿色,第三层是蓝色。那么对应的每一个像素,我们把这张图片分成了很多的小网格。
那么把这个呃最基本的一个小网格,我们称为一个像素。对于一个像素来说,每一层上面只有一个整数值,就在这个地方我们以整数值来聊。当然它也可以是小数值小数值的话,我们就得判定是从0到1呃。
在这块我们用另外一种判别方法,就是从0到255。对于每一个像素来说,它只有一个整数。这个整数是在0到255的范围内,在三种颜色相叠加的时候就会出现它所针对的颜色O。那么这还是同样一张照片。
我把它分成了三层。对于每一层。我可以假如说这是三层,这里是零或一或者是其他数值,其他的整数OK那么我现在我想做的事情就是说我拿一些所谓的过滤器,或者是呃但我们就把它叫做过滤器吧,或者是过滤器窗口等等。
我们拿它来不同的就不同的过滤器来找到一些所对应的特征。比方说我现在的第一个过滤器 one。那么第一个过滤器,我想找的是一条正的呃一条这个看象对角线,我们把它认为是一条斜线。
就是想找到的一条45度的斜线向下的一条斜线。第二个过滤器,我想找到的是一条垂直的直线O那么我再用不同的过滤器,就是说我用我的过滤器,在我的图片当中扫来扫去,我想发现在这个某一个区域内是否有我。😊。
本身这个过滤器所对应的特征。那么当我有呃各式各样的过滤器的时候,我就可以找到各种各样的特征。OK那么找到各种各样的特征,最后我们拼接起来,其实就能判别出来。哎,这个图像大概是什么类。
OK我们继续看我们的CN。对于每一层,我们可以看到它的过滤器是怎么工作的呢?我拿着呃。大家可以看到我这儿有三个矩阵,这三个矩阵就是相当于我对应的三个橙,红色、绿色还是蓝色。那么我拿着3乘3的一个过滤器。
注意我这个每一层上的过滤器也不尽相同。我拿着我的过滤器,我沿着我的图像一层一层的扫过去的时候,我想找到各式各样的。它的那个结构的结果如何如何找呢?我们是做卷积,所谓的卷积呃,听起来很难。
其实它无非就是说我把每一个像素点在同样的像素点和我在过滤器的像素点进行相乘。然后在这9个像素点在最最后做一次和。😊,做一次和,那就是我本身这一层通过我这个过滤器所得到的卷积。为什么说9个呢?
因为我这个时候我的过滤器是3乘3的范围,所以是9。如果我的过滤器是5乘5,那么我就要需要算25个像素点。OK在算完三个通道的呃过滤器呃的卷积的结果之后,我们加一个和。
那么这个和就是说我最后在这个区域的一个卷积的结果,为什么要算三层呢?因为我这个图像是三通道的RGBO。聊到这个的时候,还有两个话题要聊,一个是padding,就是填充,另外一个是stride,就是步长。
所谓的填充和步长,就是它的意思是说。填充。因为如果我的过滤器是从图像的从头到脚扫一遍,那么在最边和最角的地方,我会遗漏。那么为了防止这个现象发生,我就在图像的外围,我先扩充一圈或者是两圈。
那么当我的拍点等于一的时候,就我填充等于一的时候,意味着我只扩充了一行一列,如何扩充,我就把扩充出去的地方,我全用零来填充,就代表什么都没有,这样不会干扰我呃做卷积的结果。那么所谓的步长。所谓的步长。
它其实是来控制我们运算的速度的。就是说我每次我的过滤器,我在图像当中,我是平移一个像素,还是说平移两个像素,它这个就是作为一个控制速度的。在卷积层下面,我们会聊我们会聊一个池化层。OK我们看一下。
首先我们看到的这个地方,阴影部分就是。这个叫橙色,橙色是我本身的图像。橙色上面的阴影部分。😡,它就是我的那个卷积的范围。那么绿色的这块就是当我卷积之后所得到的结果。在我得到这些结果之后。
那么我为了我进一步缩要我的计算量。同时我也为了找到该区域内一个最显著的特征。那么我会做一步叫池化。石化的意思就是说,比方说我们右上角叫做最大池化。那我们可以看到这一块。
这一块我们有本身做出了4个卷积的结果。那么我找到我的最大值,我把它单独放出来。下一块我又找到一个最大值。然后我依次找出整张图片所有的最大值。这个就是我就是把我最显著的特征,我标识了出来,这个叫最大值化。
呃,有时候也会用到算平均值的池化,就是说我把这四个值,我做一个平均呃,一般来说最大池化是更常用的一种O好,讲到这里以后,我们看一下,在做完池化之后的大概的一些feature。O呃。
这个我本身是用了alexnet alexnet是好像是04年谷歌做出来的。如果我没记错的话,还是还是呃而是还是12年,我点记不清了,就是它是谷歌做出来的一个卷积神经网络。我们可以看到在做到。嗯。
第一层之后,这是第一层它的特征的一个表示。比如说我在。这个区域我们可以看到,我想找到的是一个中间是深色,两边是浅色,就类似于斑马条纹的一个形状。而且它的方向是从左上下1个45度。然后我们再看最后一个。
我想找到是一个这个是我呃就是这个红应该叫什么呀?就是类似于这种红的这个颜色。然后在这个区域,我想找到的是这种黑白相间的一个呃特征。OK这是在卷积神经网络第一层之后。这个是在第五层之后,注意啊。
我说的第五层是第五大层,每一大层它会分为一个卷基层和一个石化层。就是我们刚才讲的,那么在第五个石化层之后,这个是它的一个结果。我们可以看到。刚在第五层之后。这是一个人,这也是一个人。
他已经非常像是我们人眼所能看到的东西了,对吧?我们倒回去在第一层的时候,它仅仅是很很低端的很low level很低端的一些特征。那么当每一层通过不同的这种特征所叠加。最后在第五层的时候。
它已经已经很明显的做出了大概人眼所能判断出来的形状。比如说这是一只狗,这是一个黑人小孩等等。那么这些就是所谓的这些特征。O。😊,我们重新回顾一下,卷机神经网络。首先我们有输入层。最后我们也有输出。
这块就是输出okK我这里有5个类,代表我想找5个不同就是不一样的东西。这5个类可以是动物类,比如说猫狗、狮子狼、老虎,也可以是其他的笔记本电脑就等等各种类。在中间这些我们统一称为隐藏层。
okK就是中间这些统一称为隐藏层,隐藏层它有卷积层。说化层。除了这些之后,大家看最后还有两个,我们叫做全连接层。对于每一个全连接层,我们其实意思就是说我们把。
比如说池化层呃石化层最后它经过的它也是一个类似于这种矩形。类似于这种矩形OK那么呃全连接层的意思就是说我把你的矩形,比方说你是呃假如说这个是13乘以13乘以。108我随便举个例子啊。
那么我就把你这个举证。矩阵,我把它拉成一个X乘以Y乘呃X乘以Y乘以是应该是它乘以1。那么这个值就是说你前面的这个三个数相乘的一个值,我就把它拉平,这也是为什么我们把它叫做flatten,就是把它拉平。
拉成一条直线,然后再通过这条直线,嗯,通过一些最基本的运算来找到最后的。5个节点。OK或者是5个输出,这个就是转积神经网络的它的一个大概的定义。我们看一下哦,alexnet是12年谷歌所做出来的。
我们看一下,一般来说卷积神经网络它大概有哪些吧,就是比较经典的。第一个是12年,他做的是一个alexnet。我们可以看到12年的时候,这个卷积神经网络它仅仅只有8层。但是这八层的卷积神经网络。
它已经能做到误差率,仅仅是16。4%。两年之后,谷歌出现了VGG。这个VGG它有好几种类型。比如说这里做的是19层的,就是最高层,我是写的19层的VGG。那么在19层的时候,它的误差率已经降到了7。
3%。误差率的意思就是误识别率。当我输入一张猫的图片的时候,它给我一个结果是狗,这个叫是误差率。同年又还谷歌又出现出了一篇文章,它大概22层。那么这个22层的时候,它把误差降到了6。7%。15年的时候。
仅仅一年之后,科学家们做到了。152层的一个结构,它的误差率降到了3。57%。那么在这个时候大家可能不禁会问,是不是说当层数越多,或者是这个神经网络越深,那么它的误差率就越低。大家其实并不是这样的。呃。
因为当大当科学家做到就14年的时候,google net的时候,大家就会发现,如果仅仅是单纯的当单纯的把层数加深的时候,误差率并没有很明显的下降。反而误差率会上升。那么出现这个问题的原因,嗯。
科学家归类的一些归就是归纳了一点叫做梯度消失,或者是梯度爆炸。OK关于梯度消失和梯度爆炸,会在我们之后的就业的就业课上,就业班上,就是老师会大家给大家仔细讲。那么在这里我给大家只是说一下。
这有一个现象叫做梯度消失或梯度爆炸。它会影响神经网络的结果或者是进度。在15年的时候,它虽然做到了152层。大家可以看到,在每一层的时候会有很多的类似于这种。😊。
小连接这种小连接的目的就是来解决季度销售和梯度爆炸的问题的。17年的时候17年到我个人认为到目前为止,它其实也是呃一个层数达到了最大吧,已经做到了264层。264层嗯,这个它的精度也其实已经非常的高了。
在这儿我也给大家了一个就是大概的链接,就是嗯会讲一下关于呃深度就是各种呃卷积神经网络不同层数就是和一些的介绍。大家有兴趣的话可以过来看一下OK。😊,那么我们还会聊到,当我比如说dancenet。
就是上面这个车道264层的时候,我需要一个一个函数去写吗?答案是不需要。当然我们也可以这么做,但是现在的科学家已经做出了很多专业的库哦,顺便说一下,深度学习呃,常用的深度学习的编程工具是python。
呃,有的人也会用mab呃,因为mab本身结合了一些库嘛。但是python是最流行的。在python这个编呃就是编程语言当中,呃,很多公司做出了一些他们的专属的库library专属的库。
比方说谷歌的tansorflow或者是微软的呃。😊,CNTK呃facebook的y等等。就是说我现在在这张幻灯片上给大家列出的是当下比较流行的一些呃深度学习的框架。
那么这些框架或者是这些函数的python的函数库,对于我们普通应用者来说,如果你想搭出一个深度学习的模型来,你就可以完完全全的直接调用这些框架。比方说卷基层,我们就可以写一个呃CONV。
然后给出一些参数。至于参至于框架内部是什么,就是怎么运作的。这个不是在我们考虑范围之内,OK通过这些框架来很容易的搭载出深度学习的一个模型。O。到这里给大家说一个比较好玩的东西。这里是一张照片OK。
然后这里是一张梵高的油画像。那么我想做一件事情,就是说在这张照片当中出现类似于梵高油画像这种特色的一张照片,就是我要合成出来一张新的具有梵高特色的本人的照片。OK现在我们来看一下效果是怎么样的吧。
OK大家可以看到,在这张照片上本身还是依稀有着原照片的影子,但是呢它就具有有梵高的特色。这个事例我们叫做deep dream深度的梦。我们来看一下它是怎么实现的。首先我有一张照片。
同时我还有一张蛮高的油画。那么下一步。我们通过2个不同的CN卷辑神经网络来进行一个训练和学习。对于照片来说,我们所要学习到的是照片的内容。对于梵高的油画来说,我们所学习到的是这种风格。
然后我们把内容和风格统一放到一个新的全集成绩网络当中,再次进行学习。到最后一步,我们就可以得出一个呃具有梵高油画特色的一个呃非常经典的本人的照片。那么到目前为止,我们已经了解到了什么是目标识别。
我们也知道了目标识别它所做的就是求解一个分类的问题。这张图片是一个小婴儿,另外一张图片是狗,中间这张图片是以山猫的玩偶OK这就是目标识别所要解决的问题,分类问题。那么我们再看一下。
除了目标识识别能解决分类问题以外,我们也更想做的是在这张照片当中,不仅仅是呃能知道它的主体是什么。同时我们也想知道主体所在的内置是什么。这就涉及到了另外一个问题,目标检测。
OK所以说目标检测相当于我解决了分类问题的同时,又解决了一个定位的问题。比方说在这张照片当中,首先我们知道嗯这里面有两个主要的主体,一个是狗,另外一个是小孩。那么我们就用两个剧型框不同的剧情框。
分别把狗和小孩子圈出,同时给出了狗和baby的照片。OK那么我们就知道了狗和小婴儿的他们的所在的在所在图像当中的位置啊。我们看一下呃,拿这张图片举例吧,这张图片是一张俯视图,它是一个建筑物的俯视图。
中间的蓝色区域代表游泳池。那么在目标识别当中,就是左边的图像,它是目标识别或者是图像分类,我只能说出这是一张建筑图片。那么在右边我同时标出了中间是一块游泳池。大家看到我用绿色矩形框来标出了它的区域。好。
那么这个呢就是说呃目标识别。那么如果怎么做呢?传统的深度呃传统的目标检测呃,大家会用一个。一个框来不停的就是从左到右从上到下来去筛选,去找去找到那么这个游泳池所在地。
那么我们想想到这样会有其他什么问题呢?呃,显而易见,如果我扫描的矩形框大小不一样的话。这就会产生一个很大的问题。当我的矩形光特别大的时候,你比方说极端一点,我的矩形光就是我整张图片的一个大小。
那我就直接说ok我找到了,但是其实一点意义都没有,对吧?如果说我的这个呃扫描框又特别小,那么可能我只找到了。😡,游泳池的一部分。那么这个时候我会发现哇,这张图片啊好多地方都是游泳池。那么在目标检测当中。
我们最想得到的一个结果是,我希望你你的游泳池的大小和我矩形框的大小。差不多大。O我们看一下深度学习这块是怎么做的。😊,在目标检测这块呃,主要是一般来说会有呃两个流派吧。呃。
第一个流派是one stage,我给它起了一个名叫一刀流。第二个流盘叫t stages,我给他家写了个名字叫两刀斩。我们具体看一下。哦,在看之前我们我给大家罗列了一下,呃,就是到目前为止。
这些不同的流派的一些主比较流行的吧,不能主要比较流行的一些算法。比方说。呃,奶酪夹里面大家可以看到啊,我这列了4个。😮,我这列了4个。那么四个它其实都有1个RCN看都有1个RCN。
那么我们把这个称为RRCN家族OK那么在E道流里面,我就给也给大家列了几个。呃,在第二章的最后的结尾,我会给大家播一张图片。那么那张图片里面会显示出呃现有的所有的就是到目前为止。
所有的主流的呃目标检测的所有的算法。OK我们继续。我们先从呃两道讲来说起,所谓的两道展就tto stages顾名思义嘛,它有两个两个部分。okK我们先看这张图片。
这张图片是一个人骑着自行车在一个建筑物面前。那么这张图片下。😊,OK在这张图片下,它的首先我会有一个叫feature instructor,它的意思叫做特征提取器。所谓的特征提取器,大家看VGG熟悉吧。
OK yesnet熟悉吧,这个是我们在呃就是刚才所列了一下,大概有哪些卷进神经网络。好,也就是说我们可以通过卷积神经网络把它来当做一个东西,叫做特征提取。那么在特征提取下面。好。
我们紧接下来就是我们的two stages。第一步叫做兴趣框的生成器proposal generator。O。第二步叫box test fire。我们看一下到底是在做什么。
那么上面这个我们退一下上面这个上面他所做的东西就是说我想找到一个感兴趣的地方。所以感兴趣的地方,比方说我在这张照片当中,我想找到人。😊,就是说我想找到一个矩形框里面,大概是有人的一部分或者是人的整体。
这个就叫做感兴趣区域。如果说你想找是自行车,那么所谓的感兴趣区域,就可以把它理解成为自行就含有自行车的一部分或者是整体的一个矩形框,这个就是to stage的第一步第一个stage。
第一个第一步我找一些候选区域。OK感兴趣的候选区域。那么第二步就是说在我候选区域里面,我去找所谓的候选区域,哪些会真正的含有我左的我的呃被检测物体。如果我检测人的话,真正的还有那个人。
或者是有些候选框里面,它只有人的一部分,它只有人的左半边或者人的头或者是人的腿。但是我想找到。呃,个别某些候选区域在这个候选区里面有整个的一个人,而且注意这个范围不能太大。
你不能说你把整个一张图片给我图片给我,然后告我你那肯定有呃肯定有你想找的东西,那就没劲儿了,对吧?OK这个就是tto stages,他所主要所做的东西。😡,呃,在这张幻灯片中。
我给大家列了一个呃比较这个是fasRRCN的一个结构。fasRRCN在它刚出世的时候,是一个非常呃里程碑的一个算法,那或者是一个模型。我们看一下,首先最开始在呃两高展之前。
它用一个卷积神经网络来提取我的呃特征。然后这个区域是RPN简称RPN网络。那么它就是我们所谓的呃候选框区域。就是说我通过这个区域来找到我的那个我感兴趣的候选框,然后。在我所谓的所有的后选框当中。
我找出来最合适的我的矩形框。这个刚才所说的就是to stage的部分。我们再看一下one stage它是怎么做的。one stage这个地方我们可以看到还是那张图像。
还是在所有stage的最前面有一个卷积神经网络,大家把特征所提取出来。在提取出来之后,大家注意我这对于one stage来说,我只有一个部分,就是说我直接定位。😡,我的就我直接定位我的那个呃目标区域。
目标的矩形框OK他是怎么做的呢?他所做的东西。呃,首先我不再找我的那个候选区域了,因为我认为我的找候选区域的这部分太浪费时间了。那么它会用一个叫做毛框,英文叫anker毛框来就是。直接去找展信息区域。
因为今天这堂公开课主要是简介,所以我就在这里我就不给大家展开就是讲毛框的工作原理。如果感兴趣的同学的话,会在嗯欢迎来就是我们的就业在线的就业班,里面会给大家具体讲一下呃,所谓的候选框,还有毛框。
他们的工作原理,并且代码是如何实现的。那么在这儿我先给大家看一个,这个是优63的一个视频,让大家看一下,就是现在他是来如何进行工作的。
Yeah。🎼,🎼I just drawn up on love。 I wish you cant see you, but she only care when she stuck this time。
🎼多么值办。🎼I wish it let me be, but a best in these guys。そ。🎼是你了所。🎼给你是否为 my see。😊,🎼该我有人的嫁给我。😊,🎼跟上动。🎼会梦。
🎼这样。🎼过去为。🎼玫回。🎼谁。🎼逃过的。🎼爱我为。🎼可白。🎼是て。🎼我的心变天涂 much纯色体。😊,🎼Why can't she give some sort of son。
🎼I and I know, I think I do but when the boys town。😊,🎼I feel like the man。白。🎼Yeah。🎼就不住。买。🎼两场过子会。
🎼然就不觉问你。OK呃,大家刚才所看到的就是呃优路V3的一个呃测试的一个结果的效果效果的视频。呃,优乐V3可以说是在呃就是one stage这个分支一个非常经典代表作了。呃,很遗憾。
现在优乐V3的创始人现在已经宣布退出了就宣布退出计算机图像制约这个领域。呃,原因他他说的原因就是说呃不希望这些技术被美国军方所利用啊,所以他退出了。当然除了优乐V3之后。
呃,除了娱乐V3之后,呃,还有其他的一些呃算法也在继续发展。最后我会给大家列一下,大概会有哪些算法。OK我们在这儿看一下它的应用。😊,第一个应用,比方说车牌的检测识频。我们拿这个来看吧。
这个大概是我们可以看到啊,首先我们在这张图像上。这张图像是一个车流检测的原始图像。那么在第二张图像上,我们用不同的颜色看,我们用不同的颜色来标示出不同的车辆。同时它所对应的车辆的行动轨迹。
我们也能就是检测出来。还有一些应用,比方说大家看这个图像。首先我用标出了一些。呃,车样的车样的一车辆的呃一个。就是范围吧。然后我同时我还能检测出前方车辆到我现在这个摄像头。
或者到自己的车辆的一个大概距离。如果距离过近,注意这个距离会计相对的。根据我的车座,我判断距离。如果距离过近,我会把它标红,同时做出声音的警示。okK或者是我在过呃路口的时候,比如说最后一张图像。
过路口的时候,那么我的这个车辆,我检测到前面有一个行人正在横穿马路,那么我把它标红,同时发出警报。这个应用是在路口的摄像头,我会检测啊,这里有实通过。呃,也可以是呃当大家去旅游的时候。
我遇到一个比较有特色的建筑物,我拿起手机拍一下,然后直接发送上网,然后就可以找到。那么具体这个呃建筑物的一些详细的介绍,这个可以说是一个图像搜索的一个就是图像目标检测,再加一个图像搜索的一个结果。
OK还有一些应用,比方说工业上当然怎么能去找工业的对吧?呃,大家可以看到左边最左上角这是一群机器狗在踢球,这虽然是在做游戏,但是它这里面涉及到的人工智能询问比较多。
比方说首先我得需要摄像头来定位到就是机器狗的眼睛来定位到球在哪里。那么找到球之后,我下一步该怎么做,我该跑多快,或者是我该把球传给到队友啊,不要传给到其他的对方的狗是狗的脚底下,对吧?
还有现在很火的无人无人运输车,就或者叫无人快递车。还有工业自动化上面用到的那些机械手机械臂。呃,除了在交通或工业上有应用,目标检测在医学上也有很强的应用。这个好像是我本身不是做那个医学的。
所以我不太了解,不太了解这个图像。这个图像好像是盆古,也可能是一个大脑图像嘛,好像是棚古的图像。那么我通过目标检测的方法,我会把这些异常区域。你看这些异常区域,我先提前进行学习和训练。
然后我直接在其他我没有见过的,还是这些盆古应该是盆古八的这这些扫描扫描图上,我直接把呃我感兴趣的区域也标出来。大家看到上面的数值,0。9980。9850。992,它就还是那个概率值。
就是说我这半区域是我所学习到的东西,大概是呃这一类的概率大概是多少O。
这个就是我给大家呃抛的一张图。这个图就是说从13年开始最早的做RCN可以说是从嗯RCN开始,目标检测才真正呃就是走上了一题。一直到现在19年。到现在19年的就是呃到目前为止,一个所有的主流算法的一些。
呃,一呃一些名称吧。在这个地方大家看一般来说是红色区域,是当时来就是当时比较一个划时代的。在这儿我想给大家把这个圈出来。😡,18年的corron net,其实18年这个cor net这个算法。
它本身也是我个人认为是一个非常具有意义的。呃,因为它不再去用刚才所说的就是那个毛荒来去找感兴趣区域,它是直接找两个对角点,左上角的点和右下角的点呃,在就业课上。
就业班的老师会给大家具体讲一下这个cor net呃,最新的一个比如说M two that这个M two that它的呃代码,我我目前所说它还没有剖出来。呃,它这个也很新感兴趣的同学可以去网上搜一下。
okK好,到目前为止,我们就大概讲的第二个话题,我先退出来一下,看看大家有什么问题没有。
如果没有问题的话,我们就直接进入呃第三部分人体关键点检测啊,PPT最后可以发给大家呃,PPT在课程结束之后,我会把PPT传给我们的运营老师。
然后大家可以就就是呃问我们的老师直接就是拿到我们的PPT这个PPT我看一下,大概这个还挺大的,大概有104页。ok有104页。
我们才过了一半。包括最后这个公开课,他也会有一个呃就是视频也会传到网上,让大家来看。哎,这个问题问的很很棒啊,这个同同学问我呃,中间层它那个图是怎么画出来的?呃。这个问题问的很好。
他说一般来说图像不是是RGB对吧?三种颜色。然后这个同学问我就是那种像黑白颜色。大家注意啊,RGB我们可以合成一张彩色图像,但是本身的黑白图像,它可就只有一层,或者是我们有时候叫这个黑白图像叫灰度图像。
它本身就一层,明白吧?这个就是直接你pud出去就行。呃,在python里面,它有一个库叫做。我给大家打出来,它叫做open CV。open CVV它就可以。如果你是一层的通道。
它也可以直接给你直接就是播放出来,任生成三层或者是呃本身一层它也可以。这个有回放,这个最后回放会铺到网上。呃,我另外补充一点啊,中间层它这个中间层每一层的隐藏层,它的层数可就不再是三了。
它的层数由谁决定的?它的层数由你有多少个filter,就或者有多少过滤器决定。比如说你有1万个过滤器,那么层数就认为是1万层。那么对于每一层,你可以就是每一层你可以把它单独的就是显示出来。
OK还有其他问题吗?
没有的话,我们就继续我们的下一个。
人体关键点检测。呃,在开始这个话题之前,呃,我给大家罗列一下呃,公开数据集。因为对于前面所说的图像识别和图像检测来说,所谓的数据集,大家可以们随便一搜就能搜到。
或者是直接你在百度或者是谷歌上面直接用写个爬虫当了一堆图片,那么它也可以搜到。因为它本身就是些图,但是这个呃关键点检测呢,大家注意啊,虽然我们的书也是一张图像。
但是我们同时的数据集还需要有另外一个东西来作为辅助,就是说这个人工的呃我因为叫人工label,它的意思就是说我需要把大家看这张图,我需要把你所有的关键点,我先提前标出来,并且告诉的计算机。
我所标准的关键点,它是哪一类,比如说它是左眼右眼,虽然都是眼睛它是分左眼右眼,或者是你的。呃,比如说手腕鼻子。或者是肩膀等等。那么这些数据集我在家给大家列了一下,呃,可以可以看到啊。
对于不同的数据集来说,它所所含到的的图像的数量是不一样的。同时大家对第三列key pointskey points意思是说关键点的关键点,这只是数值代表关键点的个数什么意思?
对于人体关键点呃关键点检测来说,我所谓检测这个时候就不光仅仅是你这个人的主体,我同时还会把它里面的一些关键部位的点所标示出来,所以叫做关键点。所谓的关键点哦,还是那句话。
大家看左眼右眼嗯或者是手腕手肘膝盖膝关节等等。那么对于不同的数据集来说,对于不同的数据集来说,它关键点的数量是不一样的。这是提前定义好的。呃,对于我个人来说,也是如果是大型比赛来说。
大家一般常用的还是那个。😊。
coco数据器叫IMScoco在这个地方呃,我其实我这样给大家都做了一个每一个都有链接。呃,当你们拿到我的课件的时候,你们可以直接点链接,然后就直就可以直接搜到了。😊,就直接进入这个数据集。
然后你就可以下载它。OK另外这个东西大家看这里也有一个链接,这个链接就是我右面这个图像,它的呃它的网站注意啊,这个东西它其实是如果你想做人体关键点的数据集的时候,或者是你想做自己的训练呃训练样本的时候。
你就需要用左边这个工具来点出这些所有的点。看到没?所有的点OK左边是一个工具。OK说到这儿以后,呃,我们已经给大家介绍了数据集和做数据的工具。那么我们可以先看一下到底什么是人体关键点。O。呃。
人体关点检测就叫做人体自带估计,它的作用就是说在图像上找到它注意啊有两个作用。第一个是找到关键呃关键点的位置。关键点。比如说手肘手腕眼睛等等。第一是找到位置。第二步是找到位置之后,把具有相同。
就可以连接在一起的关键点,就是把它画成一条线连起来。比如说我的手腕和手肘就可以连起来,你不能把我的手腕和我眼睛值也连起来。那么这是这种连接方式不对的。当然,如果你知道了呃,第一步关键点的位置的时候。
同时就意意味着我们已经知道它的连接关系,因为连接关系是预先定义的。OK在人体关点检测,它主要有两个分支,第一个分支叫做自顶向下。第二个分支叫做自底向上。大家可以看看到这个字面意思,一个是从上往下。
一个是从下往上。那么我们看一下它具体是怎么做的。top down自顶向上啊,自顶向下。😊,他意思是就是说我先找人或找点。我在一张图像上面,我先把这张图像上人我用矩心框来圈出来。至于到目前为止。
这一步就是我们上一节所聊的object detection目标检测。找到人之后不在人呃,我在这个呃找到的这个矩形框的人的身上,我再找每一个关键点。OK这是第一种想法,就是说先找人或找点。
那么我们看一下第二个方向。第二个方向自底向上,它的方方法就是说我不找人了,我直接先把点找出来。找到点之后,我对这些点进行归纳。意思就是说比如说我这张图像上我有两个人,那么我就可以找到两只左手,两只右手。
对吧?然后下一步我就会需要做进行一个搭配组合,哪些关键点属于第一个人,哪些关键点属于第二个人。我不能把第一个人的手和第二个人的脚归成同一个人,那就闹说笑话了。
OK那么这个就是人体关键点呃人体关键点检测的两个分支。我们看一下具体事例。top down这里向下,先找人或找点OK这是一张图像。先用矩型框。把图像当中的人来标出来。第二步。
把点找到所有的关键点就是那些比较重要的关节点,找到之后。我把现在连起来,OK就是top down,它主要做的。我们看一下top嗯。关键点检测,大家注意关键点检测top down的第一步永远是目标检测。
你可以用呃one stage的方法也好,用tto stage的方法都好。找到点之后再去进行关键点检测。那么其实这个关键点检测,注意关键点我所对应的是每一个关节部位,那么所谓的关键点检测。
其实它就是一个分类的过程,明白吧?分类的过程,这一类属于左肩另外一类属于右胳膊肘。它这个就是一个关键点检测的分类过程。O。呃,在这儿本身这是有一个视频。
我在这儿想给大家抛一个就是maskRCEN在这个关键点检测里面的应用。大家注意啊,maskRCN它本身是目标检测的呃一个算法。但是它本身也可以用作关键点检测的一个呃检测上面我给大家呃上网。
然后给大家看一个视频,看一下mRCN在关键点检测上面是怎么做的。
No。と?どど。て。🎼い?🎼。🎼,🎼け?I it that ice cold Michelle fight for that white coat。
this one for him good girls, them good girls, straight masterpiece smiling。まれ。
L up in the city got with same row, Gota kiss myself so pretty I'。🎼他的头里现的发呀没了就 high。😊。
🎼Make a dragon wont retire made too high。😊,🎼せれのフ安へも to華。🎼Ba girls tolujah, girls tolujah。Hleluh。
S don't give it to you。🎼都别。🎼告底次。到底问。🎼Uptown, fun you up, uptown you up。
🎼叫 only if sense的 phony if pony dont。😊,好,我这要给大家暂停一下。那么大家可以看到。在这张图像上,我有很多的人,首先我用不同的颜色把人来区势,就是人来框出来。
大家注意啊,这个其实我省略了矩形框,我并没有标出来矩形框。那么其实它第一步是用矩形框来把人就是框出来。第二步,在人框出来的时候,他用不同颜色对人进行了一个实力分割。
大家看这里instant segmentmentation实力分割,然后在这个人的区域内,当然这个实力分割可有可无。在人人的这个大概范围内,我找到了,比如说这是眼睛还是这是肩膀,这是脚,这是膝关节。
然后把它们进行连起来。这个就是maCN在人体关检检测里面的一个效果示例啊,我把它推出。😊,我们继续。那么我们具体看一下mCN在这里它是怎么做的吧。OK先找人再进行实力分割,再进行关键点检测。
这是一个步骤。CN它本身是基于faN上的。O在这里大家嗯不要被这个模型所吓到。因为呃我到目前就是到现在为止,我们因为只是一个简介课,我不会给大家说具体面具体的东西,就具体太细节的东西。
我会给大家介绍一下大概哪块是做什么的。我们看一下啊N如果你对比faN的时候,它其实就是在faN的基础上多了一个ma branch多了一个ma大家还记得呃在讲ma在讲呃wo stages的时候。
我给大家大家具体介绍了一下,你看这里是不是有两个stage,对吧?那么在这一块大家看这块这是不是我的features,就是说我是通过一些转积,通过我CN找到了就是找到了我的一些大概特征,然后我会分2块。
一个这是一然后这块是2最后我会出。😊,一个是我的分类,一个是我这个呃检测框的呃一个回归的一个准确性。那么在fasask mask RCN上面,我除了我就是这一部分就是它本身就是fast RN一模一样。
我就是找你的句情框,然后我多了一个mask branch。musask它本身的呃就是翻译叫做掩码。我们看一下它这个掩码到底是做什么的?O。😊,야マ。大家注意嗯,前面上面上面这个这块完全是fasCN。
我们不再赘溯。下面这块就是说我的岩码分支。在岩码分支的时候,其实我也是看我做到了很多也是卷积层,不同大小的卷积层。那么我最后一个掩码,我们先看一下。嗯,我我先把墨水去掉。
ok。我拿一张图片来说,首先到目前为止,我已经用了一个红色的矩型框,框住了我想找到的这个人穿红衣服的这个男人就这个男人OK我找到了。那么我现在做到的就是说我在每一层上面。
我对他进行掩满来估计大家看我第一层。然后再进行第二层,第三次。当我从第一次到最后一次的时候,大家可以看到我这个越来越光滑了,对吧?越来越光滑了。那么我这个白色的区域就是整或者是整个这个框。
大家看我我我找一个笔。Yeah。我整个的这个框就是我这里找到这个红色的框,然后我用黑色的像素点。首先我第一步会用像素的级别,我先把哎大概这个呃人的那个范围先框出来,然后慢慢一步一步让它更加平滑。
那么这个东西就是我们所所说的掩码musok。😊,说到这个地方的时候,大家好感觉我好像还在介绍目标检测。那么我们看一下在目标检测的基础上,mars RCN它是如何进行人体关联检测的?我刚才说了。
所谓的人体关点检测,它其实就是也是一个分类问题。我找出不同的类。如果你有17个关键点,我就找17个类。😡,那么我就在mask的基础上,我把你最后的mask我去掉。mask上面本身大家看啊。
我就我我先回归一下。😊,本身它是28乘28乘80,28乘28,大家先不用管80的意思是说,我这儿有80个channel。注意,因为在最后一层,所以我们认为它是80个类,这80个类呃。
它是基于那个呃大家还记得我说的那个coco的coco的数据集。cogle的数据集它本身默认是80个类,所以它这里面也找了80个类。😡,那么。我在做人体观关点检测的时候,我把你的80去掉。
我换成1717的意思就是说我只找17个类。那么我对应的这17个类的点,那么就是相当于我每一个点。😡,眼睛、左眼、右眼、鼻子就每一个点,我把m我去我换个名字,我叫做key points。😡,看我第一步。
我加17个关键点。然后我就对一个每一个关键点,我对关键点进行一个掩码预测。最后我用one heart encoding,就是叫热力图来进行编码。我们看一下one heart encoding什么意思。
介绍 one called encoding。首先我们有一个大的去大的框架叫做bodyy身体。紧接下来我们会有头手和脚。如果我把左面的列表用右面的表格来代替,变成一个3乘3。在对角线上我置一。
其他区域有个置0。那么它的意思就是说这个时候我就知道了这个一是对应的哪一列。我就找到了它的属性。那么好,所谓的包号ing口点,我们或者把它叫做he map这个力图。😊,大家可以看到,这里是我的17个点。
17个17个图像,每个图像都应一个点,所以17个是17个点,红色区域代表。😊,最大的发就是概率最大的就是该点是作为该类是概率最大的区域。那么把它就标红。我们可以看到,第一个是nose鼻子,一个是鼻子。
第二个是左眼,第三个是右眼红色之它的红色区域,就是说在这个点它是鼻子的概率最大O就是说热力图就是找概率最大的那个图,最后我把所有的这17张图呃,红色点的位置或区域,我再回归到原图当中,然后我再进行连线。
那么这个就是我marRCN做呃人体关联检测的一个方法。maRCN是top down里面比较一个典型的代表O。😊,所以找到关键关键点之后,最后再把关键点连起来就可以了。说完第一个分支。
我们再聊一下第二个分支。第二个分支叫做自底向上,先找点再归纳,先把点找到,然后再看这些点属于哪个人。呃,这个里面它最经典的一个算法叫做open pose openen pose。
我们可以看open pose,它这里输入一张图像,就这里有两个芭蕾舞演员,然后它有两个分支。上面是找热力图,注意啊。boom up自底向上的方法,我我并不会再做目标检测,就是第一步我不做目标检测。
我直接找这些点,我直接找这些点我把所有点都找到。对于点来说,我知道这个点是呃胳膊轴呃,是右胳膊轴,呃,这个点是右肩,我先把所有关键都找到。同时在找点的时候,对于每一个可能性的关键点。大家注意。
因为我已经知道了关键点的类。我所需要做的就是说找出这两个点的连接大概的连接关系。😡,叫PAFOK大概的连接关系。😊,如果说他俩是同一个人的话,那么我就本身就应该把这两个点连起来。如果是不同的人的话。
那么这两个关键点就不能相连。OK大家看是同一个人的话,我连起来这两个点不是同一个人呃,这两个点不是同一个人。那么我就得想办法把它去掉。O想办法把它去掉。
那么最后的一个结果就是说同样处于同一个人的点连起来,不同的人的点去掉,这个就是oppo主要思想。😊,我们看一下它的具体的方案吧。首先第一步还是找一个卷积神经网络,把它的特征呃特图像的特征来画一下。
这里用的是VGG19,我们前面也提过继续输入图片的特征图。第二步就是刚才说的stage one,找一下那17个点OK预测人体观点的位置。在这个地方呃,我写了一个confidence map致信图。
大家注意啊,智信图这个叫法是在论文里面的,它其实说白了就是前面的heat map,就是前面的热力图。他是一个意思。对于每一个质信图来说,它其实都是一个灰度图,最亮的区域。我们可以看最每一个人。
这儿我是找的是他的左肩,最最亮的区域就是说对于某一个人体关键点的概率的最高的那个地方。那么当我找见这些点以后,我下一步我是我就可以把所有的点就是不同类的点应该连起来。看我这里知道红色的点代表脖子。
蓝色的点代表肚子,而且我也知道我应该把红呃脖子的点和肚子的点连起来。那么有个问题就是说哪些点该连,哪些点不应该连。第一步,我们可以先把所有的点都连接起来。OK点都连接起来。那么第二步我就要找到这些。
比如说黑色的线是应该相连的。OK可以红色的绿色的线不应该相连的,不可以,那么怎么办法去掉呢?我们计算两个连连接中呃中间这个黄色点,看我们计算黄色点,如黄色点就它是中值点。
如果黄色点落在一个相应的人的身上,就是说本身属成一个人的身上,那么这样个点就留,那么这条线就留下来,否则就去掉。O我们看一下具体怎么算吧。😊,呃,在算之前我们想一下啊,这是两张。
这是两个人的胳膊点我都找到了,有3个点,红色点代表肩,绿色点代表轴,蓝色点代表手腕。一般来说我们可以考虑位置,对吧?😊,假如说呃手腕就是两个点的位置比较近,它可以连接着。因为我们认为它属于一个人。
但是如像这种重叠或者遮挡的。这种遮挡图很有可能比方说这个这两条线连起来和这两条线连起来,可能他们两条两个长度都一样,这时候崩溃了,或者是另外一个人到这个手手腕着点距离更近。我们看一下具体应该怎么做。
ok。在open po上面,大家看啊,我把公式给大家poll了上来,但是我为大家具体讲一下它是什么意思。😊,它其实很简单啊它其实很简单,它就是做做一个什么呢?我先算,比如说我算这个点这个点P。
是否你说是说是我们先说吧,这个蓝色的是胳膊肘,红色的是手腕。那么它我先做连,先先连一下,然后我再看它的对于这个绿色的点P,我是否应该属于这个胳膊呢?我先做一个法向量,然后我再做一个单位向量。
O我做一个法向量做一个单位向量。那么如果这个点P在我这条胳膊上面,我就给它定义外一个值。就叫做这个V大家注意,我就定义V这个值就是说现在我这个P我落在了胳膊外面,那么我就把它的值规定为0。
就这个值规定为0。那么V这个值怎么做呢?大家看一下啊。😡,这这个像什么?😡,前面。是空间距离,后面是他们的那个范数,它相溢除。这个就是它的这个V。就是说我如果在这个上面,就是这就是它这个值。
否则我就是零具体的这个会呃会在那个就业班的课上有老师给大家具体讲解。同时呃在5月9号我也会开一堂课,就是专门做这个人体关点检测。在那个时候我会给大家具体讲解一下这个V它为什么要设置成这个等式。
它它具体的含义和最后这个的结果,我会给大家说一下,就是在5月9号开的课上ok。好,我们看一下,那么刚才说的说完第一步知讯图,第二步就是测试关联度。关联度就是刚才我们所说的是否哪些点该相连。
哪些改点不该相连。那么在测试完关联度之后,我们把这个叫做一个stage,一个大tage。然后再循环第二个大stage,就是再循环好几遍。一般来说可能是会循环4到5遍。然后那么这个就会给出一个精准图。
但是根据我的项目经验,其实如果仅仅是一个一个stage,你像本身这个stage你你呃转足够的次数,它也最后会得出一个非常精准的就是定位。ok。O到这儿的时候,我再给大家看一下。呃。
人体自带检测或人体光联检测它的一些主要的运用。Yeah。🎼首先是无人超市 four years ago, we started to wonder。
What would shopping look like if you could walk into a store。
grab what you want and just go What if we could weave the most advanced machine learning。
computer vision and AI into the very fabric of a store so you never have to wait in line, No lines。
no checkouts, no registers。Welcome to Amazon Go。Use the Amazon Go app to enter。
Then put away your phone and start shopping It's really that simple take whatever you like。
anything you pick up is automatically added to your virtual car。
If you change your mind about that cupcake。Just put it back。
Our technology will update your virtual card automatically。这一个。
So how does it work We used computer vision, deep learning algorithms and sensororfusion。
much like you'd find in self driving cars, we call it just walk out technology。
Once you've got everything you want, you can just go when you leave our Just walkout technology adds up your virtual cart and charges your Ramazon account。
you receive a sense straight to the app and you can keep going。Amazon go。No lines, no checkout, no。
seriously。
🎼是你。OK大家也看到了,这是第一个主要的应用。它是如何做到的呢?首先大家会在超市里面遍布很多的摄像头,那么然后摄像头会对你进行捕捉。比方说你的动作捕捉动作识别,注意样动作识别,不仅仅简单的是目标识别。
动作识别,我会根据你的人人体骨骼观点来预测你的动作。同时我会对我货架子上面的东西做一个提前的呃知识储备。就是说我在哪一个点。我首先我已经知道了,呃,这个是对应的是什么物品,然后根据你的动作。
你的观点检测到动作和物品发生的所谓的关系来检测出来你是否把相应的物品拿走。OK那么说到这个地方,呃,这个是117年的时候,on他提出的一个无人超市。我们看一下呃,因为我个人认为在生人工智能这块。
中国的发展是最好的。我们看一下无人超市在中国的情况。🎼我们看一下。
好,okK我现在想知道,就是在中午的这个无人超市里面,就是会不会被偷。我们我们看一下。
🎼,大家好,我是郭水,我现在在上海虹桥机场。那一天我在牛约,我拍一个amazon的无人超市店。那我看了很多评论呢,大家都说就我没有那样的无人超市,但是我现在在上海虹桥机场,哎,我看到了一个无人超市。
我很好奇啊,在中国的无人超市怎么样。所以现在我要做一个对比,我要看一看中国的无人超市可不可以偷到东西,比amazon够方便,因为你这是要用微信,你就是要这个二V吗?😊。
我们现在也要看看这里有没有很多是像头,上面有很多。但是我记得应为这里面有应该也有一个拼。😊,🎼,在这里有关法偷东西吗?你可以尝试一下,你就知道了,有关法吗?啊,没办法,没真的没办法,真的没办法。
我可以我可以试一下,没问题。那那个我我可以问,你试一下啊。🎼我要喝这个,我很喜欢白涮锅。🎼で。🎼,🎼这个我喝碗呢这个我喝碗呢,这个我可合我们饭咱们在一起。😊,🎼,🎼他们有咖啡。
and Amazonazon没有咖啡。So看你开。🎼,🎼は。如果我没有带走,他会不会受我的钱?我去把怕发放才多。我要把这个放在我的帽子。🎼The。🎼,🎼我 love。🎼,🎼还有辣条。我。🎼这个很贵。
😊,🎼哎,我知道我有好多朋友喜欢这个。😊,🎼我用要这个超杯算了。我不要这个味道,我要另外一个味道,这个味道。😊,やや。🎼给来个棉签好看穿还算好吃。😊,🎼,🎼。🎼あた。🎼あ?🎼我的相品里面已经有太多东西。
所以我需要新的方法。我想一想,我刚看我有新的方法。我们我我们都这样啊。123。🎼,🎼他出了之后跟amazon差不多一样,我现在走我现在去。🎼,🎼なっ。我说这个我的顶当连他的叮当这么快了,有可能就是秒。
那爱azon我忘了,我我等你应该5时15分钟。那我们先看一看它对不对?我们昨买了一个这个咖啡,哦,这个在帽子。😊,Once。这个这个我们用新的方法偷,哎呀,那个新的方法没有用这个。😡,这根。😊,So哥。
有。哎,这个。威龙别油,这这个是那个我喝过的酸奶,但是我只喝一瓶,他说道我只喝一瓶。但这个饼干都是对的,每一个味道它都是我我我拿什么,所以让我觉得这个很厉害的科技师,他觉得我把这个扔起来。
然后他就道那个爱上过的酸奶,他说我喝一瓶这一瓶,那真就是你第一次去一个欧润超市吗?不是不是很我一经经常去,你经常去,你为什么要去欧润欧润超市比样方便的,拿了就整得。😊,出门店天就出来了。
那今天你买这这个不是今天我买的豆浆,你就买一个豆叫。在美国,我们大部分的老人家不如咱们用一个智能手机。总来说是这样,在美国这有一个很有钱,很有名的公司,叫叫amazon,做五人超市。
在中国是一个我从来没听过的公司,叫云南做五人超市,比 Amazonazon更好的地方是第一,你不需要下1个APP,你你就需要用微信。第二,它讲比你的叮当很快。amazon有可能是要当10分钟。
这个是鸡毛是么?😊。
🎼你一天工作几个小时。活一天OK大家看到了,这个就是一个中国五人超市的应用。呃,也就是说,不论你怎么样就是做各种小动作,你东西也不会被丢。
它前提还是呃所谓就是它前提还是就是通过定位你的呃骨骼关键点来预知你的下一步动作,做行为预测OK。呃,还有一个呃应用,比如说姿态检测,姿态检测更多的会应用在体育方面。我给大家播一个视频。
一分钟的视频,这是NBA的。🎼We're not to hum through everybody done。🎼Everybody。🎼And I stop poll, everybody。
🎼Everybody like。ほらたらた。終らった終らった終わらったら。
🎼走的。Yes。对对。う。
🎼都告飞。Yes。🎼水个来。あされて。问的事。Yeah。No。🎼。
O。😊,我们现在看到的这个叫。
我们看到这个叫做home court,呃,它本身是呃呃我先回复一下啊,它本身是就是说在。
在里面的一个应用okK。呃,home call它主要是做就是说我拿一个手机或者是平板电脑一个你可以下一个app叫做home call,然后你放在那里,你就可以把NBA的教练请到你的家里来。
OK请到你的家里来。
除了这个里面呃这个例子叫做人脸人脸关键点检测。人脸关键点检测的意思就是说我这次虽然是也是人体的关键点,但是我不找你的手腕脚,我直接找你人脸上的这些关键点,它的方法也是大同小异的,都是一个呃分类的技术。
呃,这个是我认为就是到目前为止做的最牛逼的1个8000个人脸的关键点检测。大家可以看到这个效果。非常屌。OK我们继续。除了我刚才所说的以外,人体关键人还有很多的应用。
比方说自动驾驶自动导航、DR行为检测,甚至包括手势识别呀、人机交互等等。OKOK这就是第三部分。我们退出一下,然后我们再进入最后一部分图像对抗与生成。😊。
大家有什么问题的话,可以在现在问可以跟我交流一下。
啊,过滤器的参数设置原则是什么?是这么跟你说哈?呃,这个过滤器呢,就是说如果你去调用库的时候,那么你呃那么你所谓的这个过滤器,你只你仅仅需要所做的有几个参数。第一个参数是过滤器的大小,过滤器大小。
比方说它是3乘3还是5乘5,或者是12乘12就等等,这个是过滤器的大小。然后呃至于里面对,还有就是说你这个过滤器,你是否要进行填充,就是你扫描图像的时候,你是否要进行填充,或还有就是你的步长大概是多少?
你是每次你跨一步还是跨两步,就这个一步就是说几个pixelok那么这个的时候就是说你仅仅需要设置这些就行了。至于其他的有那些库来自动帮你随机生成过滤器,这是我们不所所不ca的。😊。
手机夜间的拍摄原理是什么?这个手机夜间的拍摄原理好像就跟我们今天聊的嗯不大,就没什么太多关系啊。中间不里通道数。对,可以理对,理解成下一层过滤器的个数。呃,有个同学问的好。
在同一一个图像上做出了关键点检测之后,下一针是同样的检测方法,还是对上一针的关键点进行了跟踪。大家注意,本身是对下一针同样进行了关键点检测。呃,这个目标就是目标跟踪或者是关键点跟踪。
它其实一个最基本的方法就是啥了。就是说我在你不同的针之间,我先都做一遍检测。同样的关键点,既然我都知道你是同一个人,同一个人的左肩,那么我就可以知道你在上一针的位置和你下一针的位置。
你就知道了你的一个呃你的肩部的运动轨迹,或者是你手的运动轨迹,通过你的运动轨迹,我就可以知道这个对你的行为进行预测,明白了吧?它本身是对下一节的关键点进行了检测。啊。
这个同学说问我就是说之前是为什么是灰度图,为什么后面画出来是彩色图?当然同学你要知道,就是所谓这个特征,它除了我刚才给你看的灰度图,它可能就是一些形状特征。那如果我要是对颜色特征进行找的。
它本身颜色特征就是彩色的。然后你所看到的那些是我把所有的那个叠加在一起的,明白了?所以这也是为什么它是彩色图。O我们时间也其实也不早了啊,我赶紧给大家聊一下最后一个话题。
最后一个话题叫做图像对抗与生成。那么它这个话题里面其实有两个主要的因素,一个是对抗,一个是生成。我们看一下,先看一下图像对抗生成的主要应用吧。呃我们可以看到左右边这些都是卡通小姐姐。
那么对于每个卡通小姐姐,注意啊,这个不是人不是人手化的。就是说呃在对抗生成网络出现之前。
一般来说呃,游戏公司或者是动漫公司,他们都会请专门的设计师来画每一个卡通小姐姐。但是在对抗神经网络就是GNN出现之后。不需要再找专门人去话了。你仅仅需要的就是说把这个对抗生成网络训练一遍。
然后把里面的生成器生成部分拿出来做这些就是直接生成这些卡通小姐姐的图像。那么这个就是一个比较经典的应用。除了对图像来说,那么对声音这个GN我们就叫它干嘛,它也可以做出来一些呃也有很强的应用。
比方说我给你一个曲子,然后你希我希望你通过这个曲子,你生成大概类似的就这个曲子,那么这个就是在声音上的一个应用。OK还有哪些应用,比方说。这个主要是我一个风格的迁徙。比方说我在最右面。呃。
我知道一个图像呃,有一个图像,大家看看这是一个model,他穿了一些呃他穿的衣服。然后呃通过这个图像,我进行关键点的定位。那么我针对它的关键点,我就可以生成其他的图像,就是说他穿衣服的其他图像。
比如说你是正面,我可以把你的关键点稍微的这个位置稍微挪一挪,它就变成新的姿势,穿着同样的照片,要穿着同样的衣服的类似图像。
这个叫做cyclo干。cyclo干它主要是一个风格迁徙。比方说原始图片,它可以生成其他的具有不同油画风格的一个图像。大家记不记得我在讲第2块的时候,会讲一个叫deep dream,它也是一个类似的。
就是迁风格迁移,风格迁移。
。这个是叫做面部年龄的测试。比方说同样一个人,同样一个人最左面的最左最左面一列是0到18岁,那么最右面一列是60岁以上的样子。那么我每隔十年,我都会给他剖出来一个他的大概的容颜的变化。大家可以看到。
从最左到最右一排一排一排一排,而不应该叫一列一列一列一列,他是不是每次他的风额都会有个稍微细小的变化。但是如果你从第一列直接看到最后一列,它是一个很大的变化。当然即面很大的变化。
我们也可以认出这是同样一同样的一个人。OK这是faceA减。
这个的意思就是说呃,我只有最左面的一张图片。OK这是一个大概的是绿色的大衣。那么。我当我只有绿色大衣的时候,我想生成的时候,我不想再去专门买一件这个大衣,然后给他再进行重新的拍照。那么作为商家来说。
它完全可以,我既然你有绿色大衣,我就直接给你生成,把绿色大衣展开之后展开的样子或者是它背部的样子,侧面的样子等等。😡,这个叫做cycle。这个cycl gun的意思是说,我说一句话,比如说这个鸟是黑色。
但是它还有就是还有一些绿色,同时有一个很尖的嘴OK那么我说一句话,然后通过这句话来进行直接让计算机画出这幅画。这个是另外的一个应用。OK再看这个应用,这个应用上来说呃,我上面这一排是我的输入。
那么下一排是我输出,我想做什么呢?很多小姐姐来一般她我今天背一个包,那么我想对你穿什么样的衣服,我想穿一个什么样的鞋子okK然后这个时候。嗯,我们可以让计算机直接给它生成。比方说第一个蓝黑色的包。
那么我就生成蓝黑呃,蓝黑的一个鞋子,当然它主体还是白色,对吧?这叫disco感。就是说它来做一个风格上的配对的一个事情。😊,讲到这儿,我们可以看。这个是个人认为是干对抗生成网络一个巅峰之作吧。
它叫做big干。当然我们看一下这个这4张图片哪些是真的,哪些是计算机生成的。这4张图片。我们可以看啊四张图片非常逼真。😡,这4张图片都是计算机生成的。真的可以做到以假乱真的底部。
而且真的是生成的非常的像okK我们看一下。对抗生成网络的讲了这么多了,看一下对抗生成网络的结构吧。😊,大家看。猛的看上去,我能看到两个字母和两个数字。
两个字母大G和大DG的意思是genator生成器就是对抗与生成的生成部分。Ddisriminator辨别器。注意啊,辨别器的意思就是说呃我要辨别出。你给我的输入图片是你生成器生的是是生成器造假的假图像。
所谓的假图像是希望达到以假乱真的效果,就是你生成器上成的图像呢,还是说这是个是我真实的图像,这就是辨别器的作用。而技能gene生成器就是说我就想不停的生成图像。我一次一次的学习一次一次的生成。
然后让你大D来去看,我最后要做到就是以假乱真。大家注意,这个是不是有一个对抗的过程。😡,辨面器想给你挑刺儿,找出来哪些是真的,哪些是你自己生成的,就或者你自己画的。记就是说我去要画的越来越逼真。
让你判断不出来,这叫对抗的一个过程。所以叫做对抗与生成网络。两个数字一和0。😡,一代表是呃真实的图片,零代表是你生成的图片。OK我们仔细看一下。我拿张我拿个笔,先看生成器部分。上面是一堆噪声。
下面是一堆label,我把这些都丢给生成器。大家可以可以知道,生成器的生成其实就是一堆噪声了。😡,哦,那么我生成出来的一些图像同是我的label。
它就要我这个的label意思就是说我这个是我生成器的生成的图像。但是呢我生成器生成图像,这label我不告诉D,我只让它看我图像部分,然后让D去猜测这是是我生成呢还是真实的。然后上面这这一行。
这个意是我真实的图像,然后我这个label代表就是说这个其实是我真实的图像的意思。同样我只把图像丢给D,但是我这个label,我并不让D看到,然后D来判别。
如果它认为是是呃这个我所输入的图像是真实的图像,那么我就是一如果是生成器G生成的图像,那么就是0O那么就是在不停的学习当中进行对抗,这个就是说但的最基本的概念。😊,O我们看一下图像生成和句子生成。
对于图像生成来说,我我每次都是给一列一个矢量,然后我可以生成一个图像,我再给一个矢量,我再生成一个图像。大家注意啊,我这个时候你可以看到这两个小姐姐的颜就是头发颜色变了,脸的朝向变了。
如果我再给一个矢量,我再生成一个图像,O这是图像生成。这是句子生成呢,我们可以看给一个矢量进行生成器,注意这个是这个NN是代表newnetwork例子,是生成网络就是神经网络。
就是我刚才所GN所所提到的G。我这个是仅仅是G我通过这个生一个矢量输入到我大G当中,就是生成器当中,我生成一句话。我再给一个矢量再生成一句话,再给一个矢量再生成一句话。所以。😊。
生成器或者是对抗生成网络,它既可以用于图像当中,也可以用到呃语言当中或者是声音当中。ok。我们看一下就是说如何生成,就是如何来控制这个生成呢?是用为条件生成。我们看一下,我给你一个矢量。
我这次我生成了一张图片。然后假如说我想生成一个长头发,注意看这两个矢量只有一个数字不一样。就是第一个数字,我把0。1变成了3,我们看一下生成结果。注意我这个时候头发变长了,我们就知道了。
第一个数字是用来控制头发的长度的。第二个数字,我们再看啊。我们把第二数字变了。啊,不是第二组字,是倒数第二个数字变了,它会生成的是蓝色的头发。如果再给一个数字变了。
它会生成把嘴巴打开OK所以我们在这里就知道它一个数字其实是空制一个特征的。我们再看一下辨别器吧,辨别器它在做什么?首先我给一张图像。这个图像丢到变频器里面。辨别器会它会生成一个scalar标量。
这个标量就是说一个数值零还是一。数字越大,代表这个呃意思这张图片是真正的图片,数值越小,代表这张图片是生成器生成的图片,就就就我们可以叫做假的图片。让图片进来给他11。
0OK说明这张图片是一个真实的图片。给了一家同标进来。okK还是1。0,说明一张图片还是真实的图片。现在一张图片进来了,大家注意这个图片比较模糊,但是一系能辨不出他是个人,它的分支是0。1。
那么们就认为这个图片是生成系统生成的图片,并不是真实数据图片。😊,那么再给一张图片进来。OK数值非常低,我们就知道了,数值越大,就是辨变器生成的是一个数字,数字越大,那么代表着这张图片是真实的图片。
数值越小,代表着它是呃生成器生成的假的图片O。😊,所以说生成器和辨别器它其实一个对抗的过程。我们再看一下这个对抗是什么意思。这张图片大家看到,我就问你这张图片的,大家认为这是就这个部分。
大家觉得这是个树页吧。😡,还是一个什么东西呢?我们看一下。其实它是一个蝴蝶,枯叶蝶。在很早期的时候,枯叶蝶大概是在它的祖先其实就是一张蝴蝶,这个样子。😊,慢慢的他因为躲为了躲避天敌。
它就变化成了这个样子。但是天敌会认为okK第天敌就是辨别器,因为认为其实还是你这个还是蛮像于蝴蝶的嘛。但是我们已经可以看到第二张图片的时候,它已经具备了数月的样子。直到第三张图片。真的是以假乱真。
如果是真的是让我猛一看的话,我会把它认为是一张是一个枯样的,不会把它认为是一个。呃,不是不会,并不会把它认为是一个副业。这这当然这对于我那对于天体来说,那就看他们的变本器到底有多厉害了。😊。
OK我们再看一下。Roround one。第一步呃,第第一个回合生成器,生成一堆图片,辨别器看一下。变位器有一堆图片进来。他也明显能看出来,上面那部分是假的,下面那部分真的ground to。
深深去学习了一下,哎呀,我这个骗不了他,那我就再学一学吧。然后哎画了大家看这次的图片,哎,就画的比第一次好了,然后又丢到了。😊,变变器里面变变器干你这还是太假了,还照样能区分出来哪些是生成的。
哪些是真的光碎。😡,继续学习还是能一直到最后一直到最后,直到辨频序再也分辨不出来,哪些是生成器的图片,哪些是真实图片的时候,然后回合结束OK。我们看一下算法,首先我先初始化我的生成器和变频器。
然后在每一个训练的回合当中,step one。首先我要固定我的生成器,然后我更新我的辨别器的参数。okK固定生成器。然后我随机给一些呃矢量进来,注意啊,这随机初始化的。在最开始,然后我生成一堆图像。
同时我还有我的真实数据daabbase数的真实数据,真实的图像。😡,然后我把真实的图像抽一部分,把生成器的图像抽一部分打乱顺序,然后丢到辨别器里面,然后让辨别器进行学习,然后生,然后更新辨别器的参数。
step one。下部话大家注意到呃,最后我会有一个就是一还是零,就是进行打分。当然我这个一0现在目前表示的是是真实还是生成。看step two第二步就是要固定辨别器来更新生成器。第一步我是第一步。
我是固定的大G。来更新大地。第二步我就要固定大地来更新大GO我们看一下。OK我输入一张图像,然后我丢掉,我丢给呃辨别器里面,辨别器给了一个分值0。13,然后。生成器就说哎呀,这个好像用搞不定。
然后我固定我的生成器,这我是更新我的呃sorry,我固定我的辨别器来更新我生成器的参数,让它进行新一步的学习,这样下一步画的更好。我的目标就是说我想把你辨别器辨别出来分值,我得再提高一点。因为数字越高。
代表越真。😊,OK然后我生成,那么这一步就是第二步,就是它一个很大的ntwork。第二步,我们把中间那部分叫做隐藏层。呃,这个方法在那个呃生成器当中,我们是用的一个T度学习的方法。
T度上升的方法来更新我们的生成器。OK我们再看一下具体的算法吧。首先初始化呃D的参数和G的参数。😊,大家看啊,第二步就是我在每一个循环当中训练循环当中。我先学习D,学习我的辨别器。
然后我下面这部分是学习我的生成器OK我们看一下,其实它具体的其实并不难。虽然我写了这么多。😊,嗯,大家看啊,首先这一步呢我如何学习D呢?我先生成一些在数据当中,我采随机的采样真实数据当中。
我采样一些真实值,然后我再采样一些噪声值。😊,过了这一部分,我我采样完毕之后,我注意我这个是获得一个生成的数据,生成的数据,大G生成的数据OK然后我要这个时候我我要学习如何学习D呢?
就是说我固定我的GfiixGFGfiixG,然后我更新我的D,大家看啊,我fiixG呃,我更新我的数据。😊,这个是代表一个更新的过程。我们看上面这部分,上面这部分。😡,这个是D是D的输出。
就是说我辨别器的值。D也是我变别器的值。但是我的输入这是XII代表第几张图,X代表是我真实图像的我的分数。大家再看这这边X上面这有个波浪线,注意啊,波浪线是来自于这儿,看见没?
波浪线是来自于生成器的生成的图像看见没?生成器生成的图像,波浪线来自于这儿,也就是说我想让我这个的值越来越小。就是说我想让我辨别器所对生成图像的分值给的越低越好给对真实图像的值给的越高越好。
那么这个就是我。😊,呃的呃一个损失函数。然后我在每一步我的目标就是把损失函数降低。OK然后我每次更新我的参数。这个符号代表着学习速率。就 learning的学习出略。呃,我每一步就是我进行一次循环。
不停的循环这一部分。降低我的辨别器对生成图像的分数,同时增高辨别器对真值图像的分数。通过这一步一步的学习来更新我的辨别器生成器。😊,我们看啊生成器这个是记的结果。
注意生成器是学习生成器的固是要固定你的辨别器,就是你一个不动一个动ok。我对于每一个生成器的图像,我会。我的目标是我生成的图像,我丢给变频器,然后我让你辨别器的值越高越好。这样的话我才能以假乱真。
所以这是我生成器的一个目的。然后我每一次还是继续更新。大家注意啊,我所说的这一部分算法是呃最原始的干的呃算法在慢慢的发展当中,它干其实有很多的变种。然后这对于这个变种,它会对这些公式进行改观。
就是这些公式进行改改变。但是万变不离其宗,永远是想要生成器以假乱真,想让辨别器呃具有一双火眼金睛。干看好玩的吧。左边呃大家看啊,左列是一张图,右列是一张图,完全不同的图,不同的人没有任何关系O。
我把最左列设成0,最右列设成0。9。然后我把中间的。每一个每个0。1我代表一个,然后看我一次一次的变一次一次的变。大家如果你从最左边一个一个看向最右面,你会发现每一张图片跟它相邻的其实过度非常小。
但是如从最。坐便如果一下越到最右面,它是一个很大的过程。OK这是一个干的一个很好玩的一个小例子吧。😊。
最后我在这给大家列了一个叫甘肃。如果大家可以在ge里面,也可以搜到甘入。甘肃就是说他把所有呃对抗射程网络所有算法都放在了一起,就是做了一个归纳。这个其实挺有意思的。我时不时也会就是关注一下这个。
我们可以看到14年的时候干就是第一次提出,然后到目前为止是越来越红越来越火。他的论文是真的是水涨船高。😊,OK说到最后的这时候,我想给大家推荐一下,就是我们的那个最后一个。最后一个就业版。
我先把这个去掉。
最后的一个就业班。就业班的话,第四期,如果大家点击我们的这个就是搜7月在线的话,或者直接点击这个链接,我们可以是直接看到。
呃,我们可以直接看到。就是进入7月在线CV就业班第四期的主页。OK进来之后,呃,这个班呃会就是对呃整个呃对于就是如果你如果大家想从事深度学习计算机视觉这块的工作的话,呃。
如果你能把这个课程完整的听下来的话,那么你基本上找工作没有任何问题了。因为它本身大家看啊,我给大家大概列一下,它第一部分你先报名。😊。
第二部分嗯,他会除了讲这一些所有的基础知识,他会从最开始给大家讲。他会从最开始给大家讲,然后慢慢的1。1。点的讲讲到深度学习的部分,包括你所有代码实现。😊,然后最后。看1。1点讲。
然后讲完基础之后再讲到一些,比如说目标跟踪语义分割,就是讲一些不同的分支。同时在不同的分支里面,它会它同时又会做一些一些实际的项目,在第四阶段的时候,他又会讲一些,比如说刚才我们讲的对像生成网络。
或者是RNRN主要是做就是循环神经网络。讲完进阶第四阶段的时候,到第三部分实战项目,我个人是非常喜欢实战项目这块的,它会我们会有三三个主要的项目,大家可以进行选择,然后会因为这三个项目。
它对的是三个方向。呃,毕竟深度学习在计算机事业这块,其实还有很多小的方向的,然后会在每一个方向上面做一个针对性的项目,呃,一步一步对你进行手把手的培训。你看重最一开始的介绍,然后帮你配置项目项目。
就是配置你的系统。然后就帮你进行构。😊,建模型构建模型之后,如何训练并且优化。然后最后呃又会聊一些呃就其他一些项目的一些呃难点吧,这是我们的一些就是项目的总结。当过完第三部分的时候。
7月在线还会对大家就是讲一些呃面试求职这块的东西。OK讲完面试求职这块东西,会帮你的顺便会帮大家做一下简历。然后包括你面试当中一些会遇呃你会被遇到的被问的那些问题。
毕竟7月在线老师有很多都是呃兼职在要么是在各个大学做讲师,要么就是在各个公司做项目负责人。所以说如果你大家想从事这类的工作的话。
是非常建议大家报一下这个7月在线第四期就业班的OK我看大家还有什有些什么问题吧。今天和大家聊了很长的时间。😊,哦,你这个问题其实已经很专业了。他这个东西怎么说呢?这个其实主要是看你不同的不。
就是针对不一样的那个分支。本身我今天所讲到的那个对抗生成网络,我们本身用不到这块。Okay。同学那个也。就是呃报一下这个班,然后问一下这个班里面的对应的授课老师。
然后呃针对你呃你的这个专项的一个干的一个分支来,我们再就是聊一下这个这个问题,好吧。OK今天时间也不早了,呃,我会把最后的课件,然后发给我们的呃后台老师。然后如果大家想看回播的话,也可以直接进行。
也这也可以直接进入呃我们的网站上,然后看一下回播。同时也欢迎大家关注一下我们最后的第四期的这个呃就业小班第四期的呃呃具体的课程。😊。
呃,课程讲解和呃欢迎大家来报名。OK那么今天就先这样,谢谢大家,拜拜。😊。
人工智能—计算机视觉CV公开课(七月在线出品) - P8:双语公开课《解密GNN》 - 七月在线-julyedu - BV17z4y167dq
hello,大家好,能听到我的声音吧。能听到我声音的话,就请大家呃回回个一,谢谢。好的,谢谢。
呃,今天我们这堂公开课主要跟大家聊一下关于图神经网络的一些故事。呃,首先就做一个自我介绍。呃,我是7月在线的CB庞老师。呃,我在CP在线主要是负责视呃计算机视觉这块的相关课程。
那么今天这堂课呃我们主要是呃为了跟大家聊一下关于图神经呃,图图神经网络的一些相关的事情。那么我们会从。
以下三个方面跟大家大致的聊一下。呃,由于这个图神经网络是一个呃非常大的一个内容。嗯,它也是最近。一个新兴的一个风口。所以我们很难用一节课就跟大家呃把这个图神经网络聊的面面俱到。
所以我会尽我最大的可能跟大家好好的聊一下。呃,最嗯就是帮助大家入门图神经网络。同时如果对这方面感兴趣的同学的话,我们也非常欢迎大家呃关注一下我们在呃7月在线所开的相关的课程。
视觉呃实战视觉下的图神机网络。另外我们在我们的就业小班里面也会开设关于相关的一些呃代码方面的一些实呃呃课程,也希望大家呃关注OK那么我们正式开始。
我们先从第一个话题来入手,图神经网络简介。换句话来说,我们需要搞明白一些问题。比如说什么是图。什么是神经?什么是网络?什么是简介?当然了,我们这个也是从这个字面意思上来直接给它抠出来。图神经网络。
简介也不用说。第一个是什么是图?好,我们先弄明白这个问题。关于这个图,如果大家去进言词吧、有道词典等等,上面一些相关的词典上去搜这个图所对应的英文。那么你会发现它会有很多很多的一个单词。
比如说photo。比如说image。比如说graph。那么对于我们这块来说,这个图应该去怎么样翻译更准确呢?我看微信用户314967同学说关系和节点没错。好,那么我们先说这三个英文单词。
第一个photo,当然这个我觉得没什么好说的,photo嘛它特指就是我们的照片。我估计群里面肯嗯肯定有我们的摄影爱好者。那么对这个照片你肯定相当了解。第二个image。我们这个专门讲图片。
对于呃如果大家相嗯相对于熟悉这个呃卷机神经网络相关内容。比如说图像识别、图目标检测、目标分割等等。那么大家肯定会对这个image图片非常了解,因为图片它每一个像素。它图片是有很多像素组成的一个图片。
如果是彩色图片的话,它要三通道,那么这就是图片的意思。而对于我们目前来说的这个图神经网络这个领域呢,我们更多的是关注这个graphuff。OK graph那么。graphra的定义是什么呢?呃。
正如刚才微信用户31496系统也说。是他有一些相应的object目标。同时,与这些目标object它所对应的一些关系,relationship。ok。所以说图就是由一些的目标或者是对象。
加上他们之间的关系所组成。Okay。那么我们通常也会更加严谨的说。所谓的目标对象,我们把它视为一个一个的节点。Notode。😡,而节点之间的这个关系,我们用边H来表示。
我给大家看一幅图。大家觉得这幅图片。他应该是imageage呢。还是graphraph呢?大家觉得这幅图片应该是image呢还是挂uff呢?我看看他家的想法,他是一秘智能还是guff呢?好。
我们用这张图片来说,这张图片呢它本身是 image是一个图片或者是图像OK但为什么我会把它放在这儿呢?我们也可以把这个图像里面的主体视为graphraph。okK你比方说。这张图像里面的最大的一个主体。
是梦想,梦想下面有人在推着。然后人的脚下又会被一些。呃,又会被一个小的一个黑色的球所拴住。而这个小的黑色的球,你可以把它视为。你想达到你的梦想,你想实现你的梦想所需要克服的挫折,你所需要经力的努力。
你所面对的艰难困苦等等。那么。这两个节点当中它的关系是。人在推,那么这就是它的关系,我们就可以把它视为一个一条边。O。那么我们看一下,我们用数学语言来定义一下这个图。
好,那么从这个句话来看的呢,我们就可以知道一个图 graph。它是有一些节点。和一些边所构成的啊,当然我们知道节点呢就是一些对象,而这个边呢就代表对象之间的关系。好。我们这儿有一个。
数学公式我们用大G来表示图graph我们用V。来表示节点用E来表示H。涛级同学说你还是看不到,要不嗯你用电脑打开刷新一下你的那个浏览器,然后把你的那个flash打开。好,我们继续。现在大家看到这幅图呢。
就是一个很经典的graphuff。你比方说我们看到了一个一个的圆,这个语我们就可以把它当做它的节点,也可以说是顶点。要注意啊,就是在这个graph当中,有的人会把它称为node节点。
有的人会把它称为vers顶点。当然它其实是两个呃一样的东西。我默认他俩是一样的。好,那么在节点与节点之间的那条实线,它所对应的就是边。我们可以看到同一个节点,它可能被某一条边所连接到另外一个节点上。
同时它也可以被很多节点与其相连。也就是说它有很多的边。另外一个现象呢就是在这个图graph当中,每一个节点它是有不同的颜色的。那么我们就可以把它认为你这个节点。你有着不同的语义,或者是可可以这么理解。
我们每一个不同颜色的点。它属于不同的大类。什么意思呢?我给大家举个例子啊。嗯,比方说。我们在高中的时候。我们需要参加高考,那高考考什么内容呢?高考比如说考着语文、数学、英语。
政治、生物、化学、生物等等各式各样的学科。好,那么在这些学科当中,我们可以把每一个学科都视为一个节点。那么跟这些所有节点所发生关系的那个就是我们这考生。每个学科之间是有一条边的。好,那么这种情况呢。
我们就可以把每一个节点画一个不同的颜色。比如说化学,我们可以画成,比如说浅蓝色。数学化成正黑色等等。那么这个就是说每一个节点它有一个不同的类的图,graphra它还有哪些分类呢?我们看一下。
比方说我们现在看到的一左一右两张图。这一左一右呢。左边我们下面写了一个undirected。右边写的是directacted。那么大家可以看到的是。同样作为相同的节点。如果你仔细看的话。
你可以发现节点的颜色它是相应的,是基本上完全相同的。唯一不同的就是边。对于左面那个图。边并没有任何箭头,也就是说你这两个节点之间的关系可以是说节点一打呃发送一些信息到节点2。
也可以说节点二发送一些信息到节点一,它们之间的关系相互的。OK也可以说是平等的。那么对于右边这个图呢,由于它的边它是有箭头的。那么换句话说,那么这些边。它表明了节点之间的从属关系。比如说我说你听。
那么这个就是说就是说我发这些信息你来接收。好,那么这种分法呢,我们就把它叫做有向图或者是无像图。除了这种分法,还有其他什么分法呢?😡,我们再看这个。对于这一幅图像。嗯,我们来先看左面那个图吧。
左边那个图的它是有像图。然后中间有一块部分,大家仔细看。箭头或者是边,它是红色的。那么对于红色的这一块来说。他的意思就是说,你看它是不是构成一个循环了。所以我们可以把这个图叫做循环图或者循环有向图。
而对于右侧,我并没有一个就是一些节点能构成这种循环。注意我说的是循环,不是闭环。O。循环的意思就是说我从一个节点向外发射信息。可能我经过若干个节点之后,我又能把信息送回来。那么在右右边这个图当中。
我们并嗯没有办法找到一个类似的结构。所以我们把右边这个图叫做非循环有箱图。除了这种分法,还有一种常见的分法呢?我们可以说。由于图当中所有的顶点它都或多或少的会有跟其他的相连。注意我的用词是或多或少。
那么换句话来说。有一种可能。图上的节点全部连接起来了。那么我们就把它叫做。完备图。如果说某一个图并没有所有的节点。嗯,就是互相之间能个个的访问。那么我们把这种图叫做连接图。
但是也有可能有的节点它是孤立的。或者是有一部分节点,它与另外一部分节点,它是孤立的。孤立的意思就是说没有边相连。我们就把这种情况叫做非连接图。好。那么到目前为止呢,我们就跟大家聊了一下图的基本概念。
我估计同学有些同学心里面肯定犯嘀咕。哎,这图有什么用?或者是说你说的这些节点,它到底还能表构建些什么表示些什么。😡,好,我们给大家看一个例子。以这张图来说呃,不以这个来说。
我们现在把图想象成一个社交网络。OK详情社交网络。那你看这个图。常见的一个应用呢,比如说我们的微博。你的朋友圈。你的Twitter。等等。比如说你是一个大V。很多肯定有很多其他的一些微博用户,他去粉你。
他就follow你。那么这个时候比如说我follow了一个大V。那么我们俩就之间就构成了一个关系,只不过这个关系呢是从我出发到大V。那么这个时候又有向图,假如说这个大V哎,他又互粉了我。
那么我们俩就形成一种互粉关系,也就是说我。可以粉他他也可以粉我,那么是双向有像图。所谓的双向有向图其实就是无相图。OK那么我们的关系就是说我们俩之间要彻底的连通,我们俩是平等的。好。
那么这个呢就是一个很常见的例子。当然了,大家要知道啊,就是在这个微博上面,由于这个用户是我都不能说千千万了,应该说数以万级或者数以亿级。那么通过这些互粉呀或者是。呃,哪怕说有相同呃兴趣爱好呀,就等等。
那么我们就可以能大致的推测出来。这个账号下这个用户的大概属性,所谓的属性,比如说他的偏号。它的兴趣点儿。等等,或者是说它的地域。可以说就这么说吧。在数据公司面前。我们是完全暴露的。以这个图来我们来举例。
大家看啊。这个节点的大小就代表你的粉丝数有多少。O。那么节点之间不同的颜色代表你们属于哪块区域?比如说我是音乐区的。哎,另外一个朋友呢,他是数码区的,就等等。
那边的连接关系呢就代表你们你们之间的相互关系。那么这个就是图在呃这个。社交上的一个很常见的应用。有的图我们就可以推算,或者是预测出每一个节点括括弧用户。它的相关的属性。O。有什么用呢?举个例子啊。
比如说我是一家广告商,我希望定点投放一些我的广告。比如说我的广告呢是关于呃数码产品方向的。但是呢另外一个用户呢,他可能是。舞蹈区的。那这个时候我可能我把我的数码产品我推送给舞蹈学。
这个用户呢可能不大合适。那么我做个广告就没有任何意义了。所以说如果我想把我的广告投放的更有意义的话,那么我希望。找到特定的一些用户。那么这个时候我们就用图的一些方法来进行分析。又或者是说。
我想比如说我我们作为。心浪它有一个推送。不如我向你推送一些新闻,可能我关心的是实时政治。但是你非要给我推数码产品,那我也不是很开心。😊,就等等。那么如何精准定位呢?这都是图的一些呃方法。哈。
那么如果解决这些图呢?这个就是我们今天的主角。图,神经网络graphph new networks。而图神经网络呢,他的想法就是说哎我用一些深度学习的一些相关的思想,我来直接作用在图上面。
作用在graphraph上面。那么大家现在看啊,我左边这个图就是我可能是描述的我的一些关系,接俩之间的一些关系。而我右面的这个图。每一个节点上面都会有很多的数字,比如说00100610010等等。
那么这些又代表了什么呢?好,我们先看第一个。节点我们用N来表示n取首字母N来表示节点之间的关系。我们用大E来表示H。而我们所说的那些那一串数字。我们用X来表示它就代表节点的feature。
有人也把它说成节点的embodydding。O再等等。好。那么我们要考虑现在这个图呢我已经有了。图我已经有了每一个节点,它自身的属性,它的feature我也有了。那我应该怎么做呢?
因为本身这个图它是死的。我们需要让它变得流动起来。😡,OK那么这个流动的过程,我们就把它叫做信息传递的过程。英文来说就是message passageok信息传递的过程。啊,那么。对于这个图来说。
节点与节点之间,我可以把我的信息发送出去,你来接收。比如说。两个节点。现在呢我们中间那个红色的节点,我们把它叫做reference node参考节点。而两旁的这个黄色的节点,黄色三角形的节点呢。
我们把它叫做邻基节点。那么我们这些节点它邻居节点把我的信息哎,我推送给你。因为我们俩实间是有关系的。那么这个推送的过程就叫做messagepa的过程。稍后我给大家讲具体怎么做。现在呢先构建一个概念。
什么是mesage passy?那么对于这些节点来说,对于我的中心的节点,当我接收到了各个周围的邻居节点传递过来的信息,那么我只需要做一件事情。就是aggggregation。
Agregation的意思就是说我需要把我所有阶段的信息聚合起来。然后我进行下一步的分析。通过分析,我得到我想要的一些东西。okK那么这个东西呢就可以把它称为。信息聚合。可能有同学心里想。
那这些他能做什么呢?好,我们给大家说第一个例子。Graph tasks。第一个例子啊。比如说对于节点的分类。什么是节点的分类?这如我刚才所说,每一个节点它其实是有相关的关系的。我给大家举个例子。
刚才我已经给大家举过了那个。社交网络的例子。现在我给大家举1个IOT的例子。LOT就是物联网O。这么想啊。对于IOT物联网来说,我每一个节点可以是做一个设备。这个设备呢可能是我的手机。
也可能是我的电视机,也可能是我的电脑。再或者来说,也可能是我的智能智能电灯泡等等。然后对于整个这些图呃,不能这么说,整个一个图就是整个这个物联网来说,它是一个大的图。那么每个节点它会发射出它的信息。
比方说我现在用我的电脑,我在说话。那么我的这些声音就会形成一个音频信息来发送到大家的耳机上。好,就等等。那么我们大家想哈,我们目前来说,我可能仅仅知道物联网当中的某一些节点类。
比如说我现在的这个节点是我的电脑。另外一个节点可能是我的手机。另外还有一个节点呢是我的路由器,这是我知道的。但是我的物联网就千千万万的这种点节点,很多我是不知道的。那么我想搞清楚它到底属于哪一个哪一种。
当然他们之间的他们本身的信息我是知道的。它们的连接关系我可能也是知道的,就是边我也是知道的。那么我们就可以通过这些信息来反推出你属于哪一个。那么这个就是对类的定义not classification。
当家说到这儿了啊,我们还有另外一种呃classification分类叫做graphraph classification。意思就是说我已经已知这些图了,我都放这儿了。😡,我想知道。
那么这个图我最终它代表了什么含义?等等。这个呢就叫做graphra classification。除此之外,还有一种任务叫做。Li prediction。他的意思就是说,我每一个节点你属于什么?
我明白节点,你每一个节点你内部的特征feature我也知道,但是我不知道的是什么呢?有些节点存在着边M,这个我是确定的。但有些节点可能不存在B,也可能存在B。我用的是可能,我是不清楚的。
我想把这个可能落实一下,你到底是否存在于边。O。再举大家一个再给大家举一个最更常见的例子啊,比如说。人与人之间的关系图。比如说我和我的同事之间,哎,我们是有一个关系,我和我的上司之间,我们也有一个关系。
跨部门之间的同事或多或少有可能有关系。那我想到底知道他们到底有没有关系。那么这个方法就这个这种叫做link prediction。这是图的另外一个呃任务。哎,说到这儿的时候呢。
大家可能对这个图和graph view network有个一个初步的印象。那么我们为什么说。😡,GNA是一个新的风口,就是深度学习里面。新的风口呢为什么这么说呢?又我们换换一种问法。
为什么之前它没有出现,没有成为风口,而现在开始成为风口了。又或者是说他之前为什么那么难。好,我们来问解决一下这个问题。Why is it hard。我们来看哈。😊,在聊天之前。
深度学习呢dep learning for computer呃 deep learning它有两大类。第一大类。是computer vision计算机视觉。在计算机视觉下面又有很多很多的子类。
比如说随便举举一个例子。目标检测。实力分割、关键联检测等等。那么除了这个大的类别以外,还有一个另外很大的类别。叫做。
natural呃 naturalural language processing NLP。那么从这个名字上面,我们就知道它主要是处理一些,比如说语言、文本等等一些信息的。O。那么我们知道就到目前为止呢。
不管是CV领域还是NLRP领域,深度学习都有了一个长久的发展。大为什么这么说呢?你看啊,我相以CNN来说。现在有一幅图像,这个是比较非常一个简单的呃M list里面的一个手写的数字。3。
那么大家知道啊对于每一个图像或者是每个image来说,我每一个像素点。我们把每一相对点呢视为一个n,视为一个节点。然后这个图像当中所有的像素点它是非常均匀的排列的,而且它每个像素点的位置是固定死的。
在这看的就像一个山格。好,我们再看一下NLP下卖的RN的那些各种网络,它所处理的。比如说。这儿有一串语音。这一串语音呢,比如说我说这句话,我说这句话五个字儿,那么这5个字儿往出传输的时候。
它有一个先后顺序。那么这个先后顺序就所谓的语序,它也是固定的。所以说不管CN呢还是RN来说,他们所处理的对象都是有着比较相对简单的一些形状的。O。那么话说回来,GN呢我们来看。大家看到这幅图。
对于GNN的这个网络图。他非常的复杂。OK它非常的复杂。比如说我们的网络关系图,你说你做为一个节点,我做为一个节点。哎,我知道我们有关系。有可能关系非常近,也有可能关系非常远。
你能说清楚我们的这个节点的位置在哪儿吗?我这个很难说清楚。对吧。所以说这是基因所处理的东西的一个非常复杂的一个呃现象。它不像图像,不像文本,它们的结构非常单一。那么对于如此复杂图像,这种的复杂图像。
它已经不像我们在那个呃欧式几何当中可以有规则的形状的这种复杂图像来说,CN和RNN就失去了效益。那么这个时候就该继N出场了。好,我们再看。对于图来说。它没有一个固定的形状。问大家一个问题啊。
现在呢是两幅图。大家有的这两幅图是一样的还是不一样的?大家看这两幅图,这俩是一样的还是不一样的?这两个图呢都是无相图。都有5个节点。它是一样还是不一样的?手机用户520013同学说呃。
还有5873有同学说他们俩感觉是一样的,还有没有其他答案呢?其实无外乎就两种答案。一样不一样,ys on no,还有没有其他答案?好,我们来看啊。这个问题呢。该怎么回答呢?如果你猛的一看呢。
它俩形状呢好像是不一样的。左面的。是你看那个一2,它是在右侧。右面的呃啊不是123右侧,然后你看那个左边那个44号节点是在下方,但是右面呢它好像四节点在这左上方,就是猛的一看,好像是不一样的。
但是如果我们要是把这两幅图。用它的临阶矩阵来表示。注意啊,我现在说到临接矩阵,可能有些同学对这个临接矩阵不是有什么概念的话,你就你就现在仅仅的把这临接矩阵想成图的一个用数学表示的一种结构的方法。
稍后我们会给大家介绍什么是临接矩阵?如果说我们把这两幅图用数学的连接循来表示的。那么你会发现它们的连接又是完完全全一样的。O。所以说那你这个图同样有着数学呃相同的临界曲线的这种结构的图。
它的表现形式又完全是可以不一样的。所以说这个图是千变万化的这又是一个非常嗯为什么基N非常复杂的一个原因?还有一个原因。其实我们刚才看到的那些节点,那些图都是非常简单的。在真实事业当中呢。
这个图其实是非常庞大的。你比方说。知乎用户。知乎的用户,那也是。估计是些小一一以上了吧,我我瞎猜的啊,啊,非常的多。那么请你把这些这个他们之间的关系用图来表现出来,或者是说可视化出来这个工作非常难。
可以说这个图它非常抽象,它不像我们之前看到的图像image,也不像我们之前所听到的声音,读到的文本。很具象的放在你面前。那这个图它要很抽象,很难可视化。所以这又是为什么它非常难的另外一个原因。
那既然这个问题这么难的话,那么我们为什么要使用图呢?从简单点不好吗?
我给大家呃这么回答一下,为什么这么难,我们还要硬着头皮去攻克它。首先第一个原因,图它本身有着天然的优势,这个天然的优势是它可以非常好或者非常形象的来描述。
关系relationship会有interaction。我们把节点视为对象,对象之间的关系,我用图非常的一目了然就能描述出来。同时图又可以把很多就是生活当中很嗯抽象的一些问题。把它简单化。
我给把它简单化。另外一个的图它有很多的应用。其实我们现在经常说all is graph。万物皆图。我给大家随便举几个应用的例子。好,比如说你现在看到的这两个应用。左边的是物理,右边的是化学,化学当中。
它每个原子或离子之间有着什么化学键和共价键,那么这就是一个你就包括物理你的这个各个核之间的一些关系等等。像生物生物里面的基因图谱等等。那么这些就是一个非常好的应用。CNN和GRN不太好用吧,在这儿。
All is graph。我们大家看这个图,回到我们计算机视觉上来说。这个图呢这这先从这个意值吧。这个图像来说呢,我首先用目标检测的方法,哎,我已经找到了图像里面每一个具体的objects,具体的对象。
我把它用矩型框来框出来。那么这个只是我初步想做到事情。那么更进一步呢,我想知道哎每一个对象就我框容对象之间它有什么关系,或者说它是否有关系。比如说这个这张图呢,这个场景图它里面搜了5个对象。
一个男人一匹马,一辆车,一只狗,一个小男孩。那么比如说哈这个小男孩骑在马上,那么人男孩和马有一个关系。狗看着男孩,男孩看着狗,他们有一个关系。
那么我们就可以把每个对象抽象成为一个我们图graphra当中的一个节点。那么节点之间的关系用边来表示有边,那么就代表着他们俩有关系等等。所以说这个是在计算机设备上的一个场景图上的一个应用。
又或者是在文本上面一个应用。你看你CN做的事儿,我能做你RN做事,我也能做,你们做不到事儿,我还能做。这个就是图的强大之处,all is graph。下面一个例事例呢是社交网络。又或是属性图。
关于这个应用,刚才我已经给大家就是解举过具体的例子,这样就不再赘述了。
除此之外呢,熬一思过。比如说我们的交通图。交通网络呢它有很多的就是多种样式。我们以这个图来举个例子啊,比方说我每一个整个这个地铁网。地铁网是一个很大的图,每一个地铁站你可以把它设为一个节点。
然后地铁站之间的联通性,那么它可以是一个边。地铁站嗯就是地那个站与站之间的这个路径上面跑的这个地铁就应该叫。呃,就是火车也不能叫火车。啊,就地铁吧,你就里面跑的这个车,那么我们可以把它识别信息。
你车辆的大小可以说你信息的大小就等等。我们可以关注到那个。呃,我们可以把它关注到。呃,路径规划的相关问题。比如说最短路径。比如说车流量作为简单的属性,我们去预测未来交通流量的变化。有同学说。
transformer也能做到transformer能做到一部分。okK我并不是说其他东西做不到。比如说CNRN传造门,他可以做到,但是他有些他做不到事件,GN我也能做到。
这个图呢比如说是电子商务的图。呃,像电子商务,它有一个最经典的用,就是推荐系统。OK推荐系统。比方说我们刚刚过去不有的一个双十一。我每一个商家,哎可能我比如说我作为一个呃买数码产品的一个商家。
我的店铺里面呢举个例子啊,我有笔记本电脑,我有台式机电脑。哎,我同时也可能有啊摄像机就等等。那么我每一个产品可以视为一个节点,我放在这里。这个节点呢是有一个属性叫做产品这个属性。
在这个网上有很多很多用户他去浏览。哎,那么用户作为一个节点,它是有着他的用户属性。当我有很多人浏览了同样一个呃,比如说商品之后,那么我们就可以知道他们之间的关系。那么通过他们之间的关系。
我们可以更好的对用户做出推荐。那么这个呢就是涂在呃电商的上面的一个应用。哎,我给大家举一个呃比较。呃,以前那个经典事例吧,这个这个难道不是电商,但是一跟商业有关的一个经典事例。呃。
就是说我们先把这个节点呢分成两类,最简单的啊先分成两类用户和商品。那么用户和商品之间它存在的这个关系呢,比如说有浏览。哎,可能我浏览完之后,我就说把它收藏下来了,所以收藏是第二种关系。
有可能哎喂最后我把它买下来了,购买,那么这是第三种关系。那么用户与商品之间可以存在单一的关系,它也可以存在多重关系。就比方说我光浏览,我看一看就走,没问题。哎,我看一看,我收藏下来,我现在不买。
我以后再买没问题,我直接买了也没问题。那么像这种复杂的数据场景,可以用属性图来轻松的描述。好,我给大家举一个比较呃一个经典的例子啊,啤酒与尿布的故事。大家萌一下,我这啤酒和这尿布是有什么关系的?
我也不能说我拿尿布来擦嘴巴。他的关系呢是曾经就是在这个美国的一些小超市呢,他会发现一个有趣的现象,就是说爱买啤酒的人通常也跟爱买尿布。哎,咱们这么一想啊。好像没什么道理呀。😡,为什么呢?是这样的啊。😡。
就是货架上的一些呃商家会把啤酒和尿布放在一起售卖。我说的一些小超市啊,就是这两个看似无关的东西,为什么会放在一起售卖呢?原因是这个样子的,就是在美国呢,一些呃就是呃妻子会经常给他呃丈夫打电话说。
你下班之后哈,你给娃买点尿布回来,给那个小包的尿布。那么丈夫心想哎,那我你说我还得绕道去一趟。那我就去不能白去啊,我要不稍微再给自己买点袋犒劳一下。然后丈夫就在买完尿布之后。呃,买完尿布之后呢。
呃又会顺手买回一瓶自己爱喝的啤酒,我们也能看到这美国爱喝酒嘛。那么是商家通过很长时间的个原始交易季度进行详细的分析,就发现了这这一对神奇的组合。所以他就会把啤酒和尿布反子一起售卖。当你看到那尿布的时候。
哎,我顺手拿杯酒走吧。那么这个呢就是一个比较呃经典的一个案例。哎,我看到手机用户是664790,问有没有做过STTCN的前辈,我们在那个。图实战下的图神经网络当中会有一节课专门讲嗯这个行为识别分析。
专门有一节课讲识别分析,里面上涉及到了STGCNASGCN等等。如果你感兴趣的话,我建议你就是关注一下我们这个图形级网上的课程。当然如果你是专门做行为这个行为识别分析的,我们有另外一门课程。
就叫做行为识别分析。那个里面会有更详细的讲解。O我们继续。图的数据应用场景不仅仅简单就是这些,它很多很多的。你比如说神经网络计算过程的计算图。电子元器件中传感器的阵列网络图。
由各个智能传感器组构成的物联网。等等就很多很多。所以说all is graph。O。呃,说到这儿呢。咱点干货。我给大家用了两页的PPT,呃,就是放了一些比较常用的一些呃data set。兵马未动。
两草先行嘛,对吧?所以说在这儿呢给大家就是放了一些。呃,然后这个上面呢会有呃它所相应的链接,还有每一个数据的相应的介绍啊,这是第一页,这是第二页。那么如果你感兴趣的话,在我们今天的公开课讲完之后。
你可以到群里面问我们的后台工作人员要我到时候会把我的这个呃PPT放在,就是让我们工作人员放在群里面OK。呃,当然我们这个视公开课最后也会形形成一个视频,最后也会挂在上面。那么如果您感兴趣的话,呃。
可以就是拿到这两个这个PPT来说呃,然后看一下里面的每一个数据集的相关的一些具体事例。然后这个呢也会在我们的视觉实战视觉下图层新网络里面有具体的讲解。
OK当然我们另外一个就业小班里面也会有相应的一些。呃,相应的一些就是实际的实操。
好。😊,说完这儿呢,大家相信大家已经对这个GN有了一个大概的呃认识。那么我们现在就开始从另外一个角度入手图卷积神经网络。如果我们去掉第一个汉字儿,那就是卷积神经网络,就是CN。
只不过我们现在聊着图卷积神经网络。O我们来看一下GCN它具体什么做的。GCN呢是一种图转基神经网络。它可以直接在图上工作,利用图的结构信息。它所解决的是对图中的一个节点所进行的分类的问题。
就是我们之前所说的node classification的问题。O。呃。我们来看。在这些这幅图像当中呢,有一些节点,比如说我蓝色的节点和红色的节点。你们都是节点,你们可能有不同的类。我给大家举个例子啊。
😡,我们常用的一个数据集叫做有一个叫做cor。那么这个数据集上呢,它会有。呃,2000多张2000多篇论文。然后我对这个论文。我通过你们之间的引用关系,我来构建出就是引引用是否引用我构建出来你们的关系。
然后我就这2000多篇论文。我分成了7个大类。比方说啊我给大家随便举个例子啊,比方说哎你这一波论文你可能是关于CN的。你另外一波论文,你可能关于是RN的。你还有一些论文,你是关于GNN的。那么。
我们把这些论文分为7个大类。OK还有一些论文呢,我并不知道它属于哪一类,但是我知道他引用了谁或者谁引用了他,我知道你们之间的关系,我希望我推算出来。最后你这篇论文属于哪个大类。那么这个呢就是我们。
GCN的一个应用。在讲GCN的具体原理之前,我们看一下。它和CNN有什么关系?因为你们都叫卷积神经网络嘛。好。其实从本质上看到,CNN和GNN它都是聚合领域信息的运算,只是作用的数据对象不同。
CN我做的是每个像素,而每个像素它有相对固定的位置,相对固定的关系。但是GNN的我是直接作用在graph图上面的。图它没有一个固定的关系。O。但不管CN还是GN,它都是聚合领域信息的运算。
那么CN中卷积的计算呢,相较于GCN中卷积的运算,它最大的区别就是没有显示的表达出这个临接矩阵。我们可以看到就是呃左边这幅图。我们看这个公式。如果我把这个公式的这个A撇去掉,我把它完全去掉。我把F。
我如果用X来表示。那么这个就是我们非常熟的了,Z等于金入函数括号W乘以X加B。那么这个就是会变成我们非常熟的CN的一个一个每一个神经元的公式。O。APR是什么意思呢?😡,或者说A是什么意思呢?
A在这就是指的临界矩阵。它代表的就是图的这个结构,我希望用这个矩阵我来描描述出节点的序要编号节点之间的关系。F。F所对应的就是CN当中的X。它就是feature特征。然后剩下的呢就不用多说了。
OK剩下的就是W和B,那就是参数sigma,那就是激乎函数,最后的Z就是输出。OK所以说你如果看这个公式的话,其实它们是非常接近的,区别就是没有显示表达出一个临接矩阵。O。那么有的同学肯定要问,老师。
你这右上角写的这什么玩意儿?😡,OK那么在右下角来说,我们显示的这个这个呢就是GCN最终的。那个公式我最后会给大家带给大家来还原出这个公式。OK但然现在呢我们先卖个关子,挖个坑。
我们到最后来可给大家讲一下,我是如何从它具体的写到这一步的。啊,我们一会儿再说。我们再看CN和GN的这个相呃,它们之间的比较。从模型上来看呢,嗯我们这个呢它其实感受也这块是非常相同的。感受也会感受欲。
它会随着卷积层的增加而变大。我每多一层卷积运算,我的中心节点就能向外多融合一圈信息。比如说啊你看左边那个CNN就A图CNN我中心的感受域,我从第一第一层的1乘以1。然后到33到5乘5不断的扩大。
在G字当中呢,我的中心节点中心节点那 node。我也可以哎向外融合嘛。比如说我第一次我融合我的一阶邻居。然后我在第二次我认会二级邻居。好,我们现在说一下什么是一级邻居。先问大什么是邻居吧。
所谓的邻居就是说我对这个中心节点,我有直接有边跟它相连的那些节点就叫做邻居。OK一届领区代表着我直接与中心节点相连。二阶邻居代表的意思就是说这些节点呢我并没有直接跟你中心节点相连。我中间还有一个节点。
比如说我节点A是中心节点,节点C它连了B,节点B又连了中心节点A。那么这个时候我们就说节点C和节点A,它是节点C是节点A的二阶邻居。那么同样你也可以说我们有三界邻居、四界邻居等等,当然是可以的。那么好。
也就是说CN和GNN呢呃它们都有一个共同特性,就是说我都是感受点的都会随着程度的增加进行变大。那么对于他们的学习任务上来说,CN和GCN也有非常强的可类比性。比如说哈你看。
目前这个图当中的A图和B图就是左面这两幅图。他这个展示了个。呃,计算机视觉中的两大主流任务,一个是图像呃,一个什么目标识别或者是图像分类,一个叫做图像分割。也有还有一种就是实力分割等等。
就是一个分类一个分割。我们再看右面这两幅图,C和D图。C图呢是研究人员利用脑信号来进行构图。比如说哈我们这个人的大脑其实它是分区的,比如说某一个区它掌管的是你的感情,某一个区域掌管的是你的记忆等等。
因为我并不是做脑科学的,我这给大家举一个比较粗浅的例子啊,那么我对这每一块分区呢呃我这每一块的区域我会发射出来我的脑神经信号。哎,我通过我发射给哪个区,我就构建一个联系。OK当我做一件事情的时候。
这些区域需要互相协调配合。当我做特定的一件事情。他们发射的信号,不管是大小或者就属性,它都是不一样的。很明显,比如说我唱歌。和我跳舞。你这个信号肯定是不一样的。那么我们图分类。
就是说我通过研究你这个区域发生的信号,我想得到你最终代表的是什么?那可最终代码是什么?呃,有一个经典的案例,就是说我可以用这个脑电波的这个信号,呃呃这个脑信号来先构图,然后再对这个正常人就是健康人。
阿尔兹海默韦症患者,还有轻度认知障碍患者的脑信号来进行这个大脑信号的分类。那么这是一个比较精典的一个应用。然后再看那个地图,就是右下角那个图。呃,是B图是图像分割,地图呢。
它这个对应的也是对这个节点进行分割啊,不是sorry,对节点进行分类。因为本身这个所谓的图像分割,我其实就是对我每个像素进行分类。你这个像素你是属于某一个目标还是完全是个背景。
那么我对于这个节点也可以进行分类,就是在基验当中,你归你属于属于哪一类?OK那么说明他们的任务其实也非常相通的。好。那么这个是GGN和CN的一个对比。CNN不用赘眼,大家肯定都熟。
那我们看一下GCN它的一个主要的一个核心思想是什么呢?这个GCN呢图神图卷积网络,它的一个基本思路就是说。我希望对于每个节点。我们从他所有的邻居节点处获取其特征信息啊,当然了,不光邻居节点的信息了。
也包括你自己的信息。O。比如我们可以呃通过计算这些信息的一个平均值,最简单的一个平均值。然后我们对所有的这个你所从邻居线得的信息和你自身的信息做一这样的一个操作。
然后我们把你操作手到的平均值输入到神经网络当中去。那么这个就是计资单的核心思想。O。举个例子啊,这个图当中最中间的那个点绿色节点,我们把这个绿色节点呢就当做核心节点。那么他把他自己的信息。
加上周围蓝色节点邻居所构成过来的信息,我进行相融合,我算了均值。我通过这个均值,我来可可能得到我这个该阶点的属性。当然这是最简单的一个想法。GCN它后面的您如果去看的话,它这个是呃好像数学公式很复杂。
然后好多好多层它其实的思想就是这个这个思想。那么对于这个GCN呢。在实际操作当中。我们会。把很多层叠加在一起。来获得一个更深的GCM。在原始的代码当中,GCN只有两层。第一层的输出是要第二层的输入。
ok。我们来这么说吧,我们来具体的看一下。或者是说我们从数学角度看一下GCN到底是怎么工作的。那么在开那个之前,我需要先跟大家聊一些他的呃数学的一些定义。比如说第一个。我们先看这幅图。
这幅图当中呢我有4个节点,ABCD。每个节点呃都有边,要么是向外延伸,要么是呃就是边连接到它自己。okK当然其中有一个图,有一个阶点A,它有一个循环,我们把它叫做自循环。就是说我跟我自己相连接。
因为这个有像图嘛。好,那么我们是不是呃除了用嘴说这个节点间的相互关系,我们希望表示出来。最简单的一个表示呢。就叫做零接验表。你比如说他的第一行。A连接到了A和B。哎,那我就知道了A点和哪些节点相关系。
B连接到了C就等等。我们把它叫做临接链表。但是我们实际当运用的时候呢,这个连接变表还不够方便。那么所以说我们就把另外一个。
概念你引得出来,叫做临街矩阵。连接矩阵呢它是一种使用二位数组N乘N的矩阵来表示的图的一种方式。针对顶点相交的情况。如果两个节点是相连接的,我们就把所对应的。数字元素写成一。单间可以用其他权重等等。
最简单的就是一和零。如果没有连接,我就把它写成零,就是等等。okK那么这个就是临接矩阵。我们来看这个实际的例子啊。比如说这两个图,一个是有向图,一个是无向图,他们的节点都是4。就是4个节点。
那么如果当我们写出来的时候呢,比如说我们先看左边这个图,从一号节点来看。一号节点和2号节点相连,所以在A01处。我们写个一,我给大家画一下。比如说在这儿我就写个一代表一号节点,2号节点相连。
一号节点和4号节点相连。哎,我代表哎,我在这里写个一。那么其他地方写零的呢,就代表他们并未连接。OK这是第一行。如果你看第二行的话也一样,对应的12。34。2号节点和一号节点相连。
所以我写一2号节点和4号节点相连,我写一,其他地方我写0。那么对于有向图来说呢,方法一样,我们可以把它这个完成出来。这个矩阵A吧你呃完成出来。如果你仔细观察这两个矩阵的话,你会发现关于左面这个矩阵。
无项图的连接矩阵。我完全根据主对角线对称,没错吧。对于有向图来说,他就没有这个道理了。这个其实很容易想象吧。这个所谓的无向图,其实就是双向有向图,对吧?你一言二对无相来说,那就二也连了一。
只不过对有向图来说,它可能没有这个道理。O。呃,所以说呢这个就这个呢就是连接矩阵的一个定义。当然了哈呃这个矩阵呢可以从水平和垂直方向列出所有的节点。
其实我们可以通过观察这个矩阵里面的一的数量或者有值的数量。假如说你的连接比较少。那么你E的数量就比较少,或者换句话说,零的数量就比较多,我们把它称为稀疏土。你图越细说。
说明你有可能就是undirected graph。如果连接很多,我们就把它称为稠密图。如果我们有发现所有的数字都为一,那么它要达到所有可能的连接,我们可以把它弄作完全图。呃。
手机用户520013同学问五像图的AII指的是0吗?这问题问的好。在最开始的就是最basic的这个呃连接局阵当中,我们先把对角线全部换成0。但是注意要这个。但是在实际操作过程当中。
我们会再加一个对角线矩阵。把对角线的值列为一,一会儿我给他我给你解释,为什么要这么做哈,一会儿我们就会有一张幻灯片来讲解。那么这个概念呢是呃临接曲线的概念。呃,第二个概念呢叫做度矩阵。什么叫做动矩阵呢?
这个动矩阵其实就是说我对于你每个节点。我希望用一个数字来代表你这个节点的度。所谓节点的度就是说你有多少条边相连。给大家举个例子。你比方说这个图。这个图。1234566个节点。如果我们写杜取阵的话。
他就会写成这样。对角线上有值,其他地方没有值。O。那么在对角线当中,比如说我们先看第一个数字吧,这个数字4它所对应的就是节点一。它的度所谓的度就是说它有几条边相连。我们看啊一和二相连,一和五相连。
一还有个自循环。哎,同学肯定要问老师这个不是三吗?应该为什么写这个四呢?他问的好。注意对于无项图来说,它的度数如果有涉及到自循环,我们需要把自循环。变成2。O。所以说对无向图来说,如果有自循环的话。
那么我们就需要把这个自循环这个边写成2。okK这这就是为什么我们最后会得到了4,而不是三的原因。那么这个就是我们刚才先给大家介绍了两个呃数学概念。一个叫做呃连接矩阵,一个叫做度矩阵。
然后第二个呢叫做message passing。什么意思呢?你看这两个节点A和节点B。他们之间有什么关系呢?如果你只猛的看一下,貌似A和B没有任何边相连。我们可以给大家举个实际的例子啊。
我们拿这个图呢可以代表这个人际关系图。OK我们把它代表人际关系图。比如说我每一个节点哎A可能是。呃,举个例子啊,赵薇和黄晓明。作为两个节点,由于他们曾经是同学,所以我们给他们相进行连接。哎,我们再说。
比如说陈凯歌、马思纯。假如说陈凯哥和马思纯,我们看见他没有任何关系。他们肯定不可能是同学吧,年年纪差哪了。但是他们会不会通过赵薇和黄晓明来构建出来与马思纯的关系呢?虽然你们离的表面上看的很远。
但是呢通过你个人际关系,你总能七拐八拐的找到你们的这个呃关系。那么这个呢就是我们希望用一些呃mey passing的一些方法,我来找到。哪怕离得很远的节点之间的关系。具体怎么做呢?我们看一下啊。
先看官图记。这个呢既首先根据我们刚才给大家引的这个思想,我从它我可以知道连接矩阵A我也可以知道度数矩阵D。这是非常容易得到的。O。但是除此之外,其实我们还有一个矩阵。叫做feature vector。
X这个X的意思就是说我有属性矩阵。具体来说,我对于我每一个节点。我有可能是有属性的,这个属性呢就是一串vector。这是一个比较简单的一个案例,就是说呃我只用一个节点,我写了三个数字。当然实际实操当中。
它这个弯度是很大的。啊,那么这些呢都是我已知的。刚才有个同学问我呃,手机用户520013同学问我这个无像图AAII只能是0吗?你本身的没呃那个临界矩阵,它确实是零,但是在实操过程当中呢。
我们会加一个特征矩阵I。这个I的意思就是说,哎我对角线都为一,为什么这么做呢?这是因为。我们不希望。0乘以任何数都为0,这样就会造成一个现象。我本身节点的特征我完现就利用不上了,因为你乘以0全是0。
所以说我们还希望把本身节点它的特征也照样利用上,那么我们就把对角线改成一,那么就会从矩阵A变成了At,就是A上面有个波浪线。就是说我要首先我要先更新一下我这个连接矩阵。那么话说回来哈。你临接矩阵更新了。
你的度数矩阵是不是要更新一下呀?2好,我就把我的度数组织也更新一下。那么有了。呃,督数举证。大家看到我们第三个举势,就右面这个矩势,它是度数矩值的逆。哎,我们知道为什么群逆呢?是这样子的,神经网络。
它对输入的数据的规格非常的敏感。像微博用户314967同学说,这个大型的数据呢,这个矩算非常非常大。没错。都不用特别大型的数据啊,你像那个coral。Qre这个数据集呢,刚才我也说了一下。
就是说它每个节点都是代表一个论文。它的节点那它的这个呃连接距它有多大呢?它的维度是2708乘以2708。它的feature呃矩阵就是特征矩阵,它有多大的,它是2708乘以1433。如果我没记错的话。
都不用特别大的举阵。那么这两就是特别大的这个数据图,光这个不是很大,它就已经非常大了。所以说。神经网络对输入数据的规模非常敏感。那么我们就对这些呃刚才我们提到一些呃矩阵的,我们进行一个缩放,缩放的意思。
有人因把它也叫做规化。O。解决方案是对数据矩行缩放。那么我们通常会对矩阵乘以一个对角线矩阵来减小规模。从数学上来说呢,要根据这度数的聚额向量来减小规模。你为什么这么做呢?你看度数矩阵。
它本身就是一个对角线矩阵。你就现成的摆在这儿,我干嘛不用呢?哎,我干脆就利用上吧。所以说这个时候呢,我们就考虑。在A前面乘以一个D,只不过是我们取是D的力。
O所以说那么第一title的列就是我们这个更新的这个呃。临接取阵A title的,我们就把它叫做一个成积因素。如果你把这两个展开呢,就是你看到这幅图。你会发现。哎,前面那个D抬斗负1力乘以A。
我为什么会把乘以X呢?因为我希望乘以它的这个属性矩阵。好,那么同学你仔细想。它这个乘法它其实是对称A式的距它是对称的,对不对?你既然可以在我的左面,我乘以一个D的负1。
那我是不是也可以在的右面乘以也乘以一个D的负1呢?这样我的话我就保证了,我既不亏待行,又不亏待列。大家有福一起一起想嘛。手机呃,我先说那个阿赠Z类们会有回放吗?会一般我们会在周一周二的时候。
在我们这个新车在官网上面会播出我们的这个回放视频。首先用户520013同学问,为什么不用正态分布规一化呢?呃,我们会有时候会产生正态分布规一化。我在这讲的是一个最最开始最方便的一个解决方案。
OK不过好像这个正态分布规划用的好像比较少。好,我们继续说。那么我对你左面乘以D的负1,右面刚脆我也是乘以一个D的负1。这样的话就是说哎我左面我也不亏待你,右面也不亏待你。所谓的左右。
如果你用句子的乘法仔细看一下,就是下面那个图仔细看一下,我一个是乘以横。很好,那么我右的那个我就会乘以列,这样的话我全部不亏待,就形成了我们现在看到的dtle-1AtD title负1乘以X。O。
那么我们新得到这个呢,就会把它我们可以称为这个叫weightted的 average。好。那么这个新的算法方法就给我们提供了这个加权的平均值。我们在做这里做的。
其实就是说给这个度数比较低的节点加更多的权重,来减少度数比较高的节点的影响。OK他的想法是就是这个加权平的想法是呢,我们会假设在度数节点嗯比较低的,它会对呃邻居产生更大的影响。
而度体量比较高的人会对邻居贷款较低的影响。所以说这个就是为什么我们要这么做。我们再轻给它变一下,哎,你看。你左成第负一,右成第正一。他们我们现在就是说哎,我干脆都给你成开方吧。OK我都给以成开方吧。
成完开放之后,就是我们所看到的GCN论文里面的最终形式。好。给大家做一个快速总结。最开始呢就是它这个演变过程。最开始呢我就是完全用这个A title。更新好的这个临接矩阵,乘以我的属性矩阵。
再然后我们开始进行呃规化。我成立一个D负一。都书举证能力。既然我可以左成,那么我我也可以右成。这样的话,我对你的行和对你的列都有了同等的关注。哎,我们进行进一步的变化,我们将它乘乘以地区任的开放。
OK那么这个就是我们最终所看到的这个呃GCN里面的最终的这个呃数学公式。好,们把它放在一起。还有一点呢,就是没跟大家提,就是前面那个soid呃,就是那个机乎函数sigoid函数。
由于GCN它做的是节点的分类问题,所以说它采取的是sof max。因为of max呢,我就是解解决这个分类问题的。在CN呢就是所以它的机乎函数取采用了sof max。同理,对于损失函数来说。
分类方法它最容易用的这个呃损失函数就是cross andtrophy。OK呃,关于这个我就不给大家做更多的介绍了啊,因为这个跟CN是非常近的。另外一个问题呢就是层数在GCN当中。
它本身就用了两层OK所谓的乘数啊,注意啊,这个层数它其实指的是节点特征能够传输的最远距离。你比方说在一层的记责当中,它每个节点呢只能从他的邻居那里获得信息。每个节点收集信息的过程,它是独立进行的。
对所有的线来说,它都是在同一时间进行。假如说我们在第一层的基础上再叠加一层,那么我们重复收集信息的过程。OK那么这一次呢你的邻居节点,他邻居又有了他的邻居。
OK所以说那么这个层数就可以认为是每个阶段可以走的最大的ho。O。这就是呃how来这个意义。那么E接ho就代表你的直接的直接邻居。二级号再远点,三级号堡更远一点,就等等。关于这个呃更多的细节呢。
呃我们也会在这个我们的呃实战课程视觉实呃实战视觉下的图神经网络有更进一步的给大家介绍。我们会有6节课为大家介绍GN的来龙去脉。
同时我们也会在就业小班当中呃增加一些关于呃GN的一些实战的代码演练。OK如果有兴趣的同学的话,我建议大家也去关注一下我们这些相应的课程。那么通过第二个话题呢,就跟大家聊了一下关于GCN它的这个来龙去脉。
当然,GNN图神经网络,它不光有GCN,它还有其他很多很多的一些网络。比方说举个例子啊,图注意力网络。比方说graph search。O。那么除了这些最基本的网络呢,它还有一些,比如说我在CN当中。
我希望通过用到一些方法来解释我的一个模型。因为大家都知道深度学习是基于统计学的,说白了就是说它是一个黑箱,我不知道里面是怎么搞的,我只知道输入和输出中间那部分。网络自己训练。
OK那么基于此就诞成了另外一个就是研究的一个小小的一个方向。解释性。那么对于GN来说,它也有解释性。OK那么关于我刚才讲的所有的这些东西。我们会在我们的这个课程当中给大家有一个具体的讲解。
OK因为在公公开课当中呢,没有那么多时间,就不跟大家一一赘述了。感兴趣的同学可以关注一下我们的呃图人记网络的课程,也可以到我们就业小班里面进行一下代码的实操。手机用户520013同学问。
之所以叫图神经网络,是不是因为最后还是对矩阵之间的转化操作,只不过这个矩阵叫做临接取阵。呃,这个问题怎么回答呢?首先就这么说啊,不管你是呃图神经网络还是卷积普通的那个卷积神经网络。它都是对矩神经操作的。
它之所以叫图神经网络,它跟这个没关系。它叫图神经网络是因为这个神经网络是作用在图上面,所以叫图神经网络。
O。好,我们现在跟大家聊最后一个话题。我们带大家简单的过一下图注意力网络。那么在公开课当中呢,我们会给大家做一个总结的方式来展现一下图神经网络的每一个步骤。总共是五步来完成。呃。
在我们之后的呃视觉神经呃那图视视觉下的图神经网络课程当中呢,我们会给大家做细节的展示。O我们先给大家做一个呃总结性的步署演演练。首先是GAT它的权限叫做graphph attentionnet。O。
那么从这个名字上来,大家都可以知道啊,首先它是图神经网络。第二,它就是加了一个attention注意力。家人属于的机制。O。那么我们来看一下这个图呢,它就一个很好的一个表示。对于中心节点。
就是你中间那个红圈儿中心节点。然后他的除此之外,还我还有一些,比如说我的一届领居。二阶邻居等等。那么我对于我这个中心界点来说。你这这个信息的收集,我不能像以前一样。我完全就不管了。好,我完全不管。
我就把它当做是。同等的,但现实情况中,这个肯定是不一样的。😡,举个例子。你比方说。我们拿这个关系图来给大家起举例,比如说夫妻之间父子之间。母子之间这个关系非常紧的。其次是你的同学关系,你的战友关系等等。
那么根据这个每一个关系,其实你对相应的对象,你的关注度是不一样的。可以说比如说你对你的女朋友关注的比较多,你对你的前女友。你表面上关注的就比较少,你等等。所以说实际案例当中,我的节点是有不同的关注度。
那么对于我们这个方法来说呢,我们也把它带入了。啊残忍机制。好,我给大家总结的来说一下啊。GT来说。他就五步,我已经给大家列了出来。通过这五步来完成最终的。GAT最终的节点分类。呃,当然了还是那句话。
就是说因为在公开课当中呢,我们这些呃由于时间有限,其实想跟大家展示很多很多的细节,但是实在是无法展现。比方说其实我特别想跟大家聊一下这个注意力机制,它到底它的它到底有哪些。比说让穿子方嘛。😡,哎。
它是怎么形成的?它要是如何用transformer来步入到这个GAT当中。这个我们没有办法给大家展开讲。所以如果感兴趣的话,欢迎大家关注我们的课程。课程当中我给大家细细道来。
那么在这儿我给大家一步一步的看第一步。W。HIW就是我的这个权重矩阵。OK第一步呢就是说我用一个下形妙画,我对的我的这个每一个feature节点的每一个featureH。我乘以一个矩阵W啊。
这是第一步就相当于我们乘立一个呃CN里面的那个W乘以X那一个意思。那么第二步呢,我们来计算它的注意力系数。OK所以这个注意力系数,它就意思是说我从节点I到节点J的。我所关心的这个程度,关注的程度。
OK那么就是算这个EIJ。第三步。第三步的方法就是说我要其次化一下。其次化一下我的注意力系数。OK比如说我AI这线R已经算出来了。对吧然后我进行其次化啊,不是我的EIJ已经算出来了。
EIJ呢就是我距离系数就节点I和节点J的关注度。然后。我有很多的节点呀,我中心节点哎我周围有很多的邻居,我不能说对某一个偏心吧。当然你可以说对某一个节点的注力更多一点,但是得有理有据。
所以这个时候我们用soutt max的思想,我们来把他的这个注意呃呃力就这个注意这个阿尔法AJ进行其次化。这是第三步。第四步更简单,其次划完之后,我乘以你之前的。权重和H权重和这个特征矩阵。我乘完之后。
我求和。然后我把它从线性变成非线性,用一个sigma函数。那么程序当中呢,它用的那个是re录。OK这是第四步。其实到这一步为止。GT的核心模块基本上做完了。但是呢它又加了第五步。
第五步叫做multti head attentionmechanism。就是说多头注意力机制什么意思呢?我给大家简单的聊一下这个多头注意力机制呢,它本身就是说我每一个头就相当于。我做一次。
关于GAT的单独的运算。OK就相当于我进行做一次。然后我每做一次,对呀,我虽然只是做一次,但是我的系数初始化是不一样的。那么就相当于哎你做你的,我做我的。最后我们再核一下我们的计算结果。
就好比我给呃老师给学布置的作业,每个学生分别做一遍,可能你比如说你擅长应用题。另外一个同学擅长呃就是那个简答题。那么你们最后所做出来的结果肯定或多或少不一样的。可以说你的可能呃做的比较好。
另外一个同学做的不是很好。然后你们把你们的答案对一下。对出来那个结果。肯定比你们俩单独做出来结果要好。当然一般来说,当然你如果说你两个学生都不会都不是很会做题,最后可能对的还不如单独蒙的呢。
当然这这种情况我们可不考虑啊。哎,所以说这个就是多头注意借他的想法。各做各的最后我们合一下你的结果。呃,关于这个阶T的这个里面的具体细节呢。在这儿就没有办法给大家展开说了。
如果对我们这个呃机器更感兴趣的同学呢,也欢迎大家来看一下我们的这个视觉实战视觉图学进网络,在里面会给大家具体的解释注意力机制的由来。
包括每一个参数值是怎么得来的。更详细的了解一下多头注意力机制等等。OK但然如果对这个呃实操录代码这块更有需求的同学呢,我们也欢迎大家来更多的关注一下我们的就业小班。OK呃,这个就业班上面呢。
我们会带着大家实际做相应的项目,一步一步一行一行的给大家一点点的推导出来最终的形态。OK当然了,我这个课件上呢,我已经把这个链接呢都放在这里,都已经抄链接上去,就是抄链接上去了。呃。
如果感兴趣的同学的话,你可以上我们官网直接搜,也可以呃到后台就是到群里面问相应的工作人员,相应的老师要一下我的课件。OK上面呢也会有今天的所有的这个干货呃的包括里面每个链接,每一个知识点,每个公式。
同时也有我们这两堂课这两门课的直接的链接。O。那大家现在还有什么问题帮?我看一下。呃,手机用户520013问GAT的论文能推一下吗?可以呃,哦,对了,在我们的这个实实战课程下面。
我们会有14篇最新呃14篇论文。其中嗯8篇是来自2020年的论文。OK里面就包括GAT。呃,在每一堂课程开始之前,我们会把相应的所需要的材料,包括论文、阅读材料,还有我们的课件。
还有一些代码会给提前给大家分享过去。OK因为我们有QQ群。那个里面就会有呃各个的代码,就包括我各个的论文,包括我对论文的论文的一些注解。呃,手机用户544692,同学问有录屏和PPT吗?
有的录屏通常我们会在周一周二的时候会放在我们的官网上面。官网上面有个就是计算机视觉的公开课,你可以到那里搜索一下。呃,上面会有我们今天的这个课时呃公开课的一个呃视频的全貌。关于这个PPT呢。
我最一会儿我会呃生成,然后分享给我们的后台工作人员。我们的后台老师。如果有需要的话,可以呃到群里面问一下相应的老师,然后我们会在那个里面给大家分享。大家还有其什么问题吗?
如果你对STTCNASTCN感兴趣的话,呃,我们会有一节课专门讲这两个呃就是这就是这两个知识点。呃,当然我们还有另外一门课叫做行为识别分析来专门阐述呃更详细的。
除了这两个呃算法以外的其他的关于行为识别分析的方法。这个是在我们的另外一堂课,感兴趣的同学话,也可以到去在线上面搜索一下。其实在线呢会不定期的更新我们的课程内容,呃,也包括会推出一些新的课程。餮同学们。
节点之间的边的长度。我们这个看这个边不考虑长度啊。我们不考虑长度,我们只是呃编值代表他们那个连接关系。我们更多会关注在它连接关系的基础上面来考虑一下feature呃,那个就是属性矩阵来进行计算。
编段长度其实就可长可短,无所谓那个。
大家还有什么问题吗?没有的话,那么我们今天的公开课就先到这里,呃,也欢迎大家继续关注我们的课程。相应的课程。呃,有需需要的同学的话,可以在群里面给我们进行更新的一步探讨。同时我也希望在课堂当中见到大家。
明天呢我们会开设GNN呃实战视觉下图人机网络的第二课。第一个已经上传到了我们的官网上面,大家也可以去浏览。
OK那么我们今天先到这里,大家再见,祝大家周末愉快,拜。
人工智能—计算机视觉CV公开课(七月在线出品) - P9:图像搜索与分类 - 七月在线-julyedu - BV17z4y167dq
🎼。
OKOK那我们现在抓紧时间开始。呃,今天的直播课呃主要是讲一下图像搜索与分类。呃,那么我现在会把我的屏幕最大化。你这样的话我会挡住我的呃就是对话框。所以呃就是在讲述的时候可能看不到。
然后在呃每一章结束的时候,我会呃会呃打重新打开对话框,来看一下大家的留言,并且解答一下大家的问题。OK那么我们现在开始。
Okay。呃,首先做一下自我介绍吧。嗯,今天我们主要讲的是图像搜索与分类的一个公开课。那么今天我们会从嗯四个top屏入手。
诶。今天4个topic。首先第一个是我会给大家介绍一下什么是卷积神经网络和卷积神经网络主要是干什么的。可以说第一个topic它是呃深度学习在计算机图像视觉分类的一个最基础的部门。
那么在第一步的基础就是在第一步的基础上,我们会在延伸出一个目标检测与定位的一个问题。ok。呃,第三个topic是关于变分自编码器,这个主要是一个生成图像的一个话题。第四个topic是车辆的重识别问题。
车辆的重识别问题主要的意思就是说在一片区域里面找到呃某一个特定的车。那么今天我们会从这四个话题里面跟大家详细的探讨一下OK。呃,我本人做的是深度学习计算机方向。呃,在计算机视觉方向。那么在7月在线。
我主要负责授课的内容也是呃相关的一些呃话题。呃,本人主要是呃在呃美国一所大学里面做讲师是CO丹呃,全称叫呃古拉多 universityrsuniveity of古罗拉多丹佛同时也在MSU丹做大学讲师OK自我介绍到这里。
然后我们开始我们的第一个课题。
第一个话题。卷积神经网络,它的英文简写叫CNN呃,卷积神经网络可以说是呃图像的一个深度根基,也可以说是深度学习当中嗯。在计算机视觉方向的一个入门。那么卷积神经网络到底是解决一个什么样的问题?
全新神经网络主要是解决的目标识别的问题。什么是目标识别。比方说当我看到一个照片的时候,那么我应该知道这个照片的主体是什么。当然我不 care细节,我主要管它的主体是什么。比如说照片里是一只猫还是一只狗。
或者是是一所建筑还是人。那么这个问题我们统称为分类问题。给大家举一个比较详细的例子吧。这里有3张图片。OK3张图片呃,我们知道这三张图片都是电脑,那么。当计呃我们或者是计算机看到这三张图片之后。
我们想区分出来它到底是什么样的电脑。比方说它是笔记本电脑、台式机、电脑还是平板电脑。那么这个就是一个分类的问题。OK呃,对于人类来说,我们很轻松的就能找到呃。这三呃这呃这三种图片或者是这三个电脑的归属。
比方说最右上角这个是台式机,呃,这个是外星人电脑台式机。那么左面这张图片是笔记本电脑啊,我播了一张华为的笔记本,呃,右下角是呃。平板电脑okK那么对于人类来说,我们是如何对这三种电脑进行分类的。
我想我们首先是找它的相同点,同时再找出它的不同点。从相同点,我们可以知道三个图片都是电脑。那么从不同点,我们可以呃细细的区分它到底是哪一个电脑。找它的不同点,我们比方说我们可以找出来它的大小。
一般来说笔记本电脑大小比较大。然后其次是笔记本呃,sorry一般来说台式机的电脑比较大体积,然后是笔记本电脑。那么最小的可能是嗯平板电脑,关于便携性来说呢,可能是呃平板电脑排第一,然后是笔记本电脑。
一般大家会报着一个台式机电脑到处走,对吧?另外就是说它的形状,它们的形状,我们一下人能看着它不一样,嗯,还有包括它们的材质呃等等吧。那么人类是通过这些显著的特征来找出它们的相同点和不同点。那么问题来了。
对于机器来说,嗯,机器它无法得知它的形状、材料甚至便携性,对吧?那么机器首先机器当用它用摄像头捕捉到这些图片的时候,它是怎么样进行区分的呢?那么我们就要提一个东西了。机器靠的是找特征。
这个特征在英文翻里面找feature,有哪些对于机器来说有哪些feature呢?比方说第一个颜色特征。呃,对于颜色来说,呃,我们眼睛看到的是一个颜六色的器载世界。呃,在计算机视觉的角度来说,呃。
人们会把这个各种颜色进行分类,用数值表示。呃,比方说我可以分成RGBRGB的意思是R是red红色,G是green,B是 blueue。就是说红绿蓝通过这三种红绿蓝来组成各种各样的颜色。
那么还有一些其他的分类方法,比方说通过呃像右图的这种嗯像饱和度饱和度的值,还有色素等等。他们通过另外一种方法来分类。那么这个就是颜色特征呃。一般来说。这个分类就对颜色来分类,不管是用什么样的方法来分类。
它主要一般来说都是三维的OK这是第一个特征。那么第二个计算机视觉方面特征,我们比方说有形状特征。举一个例子,这是一张建筑的图片。在这个图片上,我们可以找出来哪些形状?比如说这是一条线。这儿存在着一个角。
那么这一块是一个嗯可以说是不规则的西形吧,我们统一把它称为结构。那么这些东西它就违规为形状特征。好,还有一些特征,比方说纹理特征,纹理特征像这个事例呃,左面和右面是一个不同的纹理,它们在大量的重复。
这个也是呃计算机视觉方面的一个特征。当然还有其他很多很多的特征。那么机器它通过摄像头捕捉到的图片,在这个图片上找到这些不各式各样的特征,通过低维特征,然后组组装到高级特征。
那么这个过程就是计算机呃来呃对图片进行分类的一个嗯过程。OK。OK那么话说到这儿,那么我们知道了卷积神经网络或者是CN它主要的作用就是目标识别,或者是可以叫做呃目标分类OK而且我们也知道。
CNN主要是通过捕捉到一些计算机图像之后,然后分析图案上的特征来进行判别。我们现在看到的这张图片,它其实是有两部分组成呃,左面。红色框圈出来的是一个呃CN的一个最基本的结构。呃,右边的那一部分。
它其实和左边的部分基本一样,只不过是一个是2D。我们看的是2D。另外的右边呢是我们是画成一个立体的。其实它俩是一样的。我们看一下它里面具体想做什么。好,那么对于一个CN来说。
它主要有三部分构成输入端输出端。那么我们把中间的那部分叫做隐藏隐藏层叫 hiddenden layer。对于输入来说,我们可以认为输入一张图片,然后输出呢输出这块是决定我们有多少个小的分类。
比方说我如果呃拿之前的例子例子来讲,三种电脑。那么我们就可以认为它的输出有3个笔记本电脑台式机电脑和平板电脑。OK这就是输入端和输出端,在输入端和输出端中间的部分,我们统称为隐藏层。
隐藏层的层数可以是由人为来定义的。好,那么。隐藏层到底是做什么的?隐藏层它主要的目标就是找出各式各样的teacher,就是找出各式各样的特征。呃,越靠近输入端的那一侧,我们就称它为找出来的特征。
称它为是低级的特征。越往后靠近输出端的特征,我们可以称为它为高级特征。
我们看这张图,在这张图里面,从左往右看,最左面是一张轿车的图片。那么轿车的图片那就作为一张输入,最右面呃,我们可以看到就是有5类,也就是说输出端它有它可以有5个输出。第一个输出。
我是来判别是不是轿车的第二个输出我判别是是否是卡车。第三个判别是否是飞机。第四个轮船,第五个是判断是否是马。那么在这张图片的输出,我们可以看到呃,卡就就是car轿车所占到的那个绿色的那个比例是最大的。
那么这个面积就绿色的面积,我们认为是它的一个概率,它的面积最大。那么我们就认为这张图片是轿车的呃,概率是最大的。OK那么这张图片给它一个标签,就说。这张图片是轿车。
那么这个就是输入端和输入端中间的那些部分,我们可以看到,就是上面当然也显示了,比如说count呃卷积层热落的一些激乎函数,包括布等等这些东西,我们我们把它统称为是隐藏层。那么从第一遍到最后一遍。
我们可以看到这些所输出的就是它的每一层上可以找到的特征。OK那么。隐藏层中间具体的com原路或破,它到底是什么意思呢?呃,我们接下来会一一给大家演示。那么现在我们从输入层呃输入层入手。
对于任何一张图片来说,我们可以把它考虑成为是一个三维的数据,或者是三个通道。一般来说我们拿红绿蓝来说吧。对于一张图片,它其实是有三层组成的,第一层是红色的考量,第二层是润绿色,第三层是蓝色。
那么对于每一层它会有一个数值,这个数值会分布在如果是整数的话,会分在0到255之间。如果是小数的话,会分布在0到1之间。当这只是分就是区分的不一样。其实它的道理是这样的。那么我们现在考虑从整数来分。
从0到2255。嗯,每一层的每一个小小的格我们称为一像素。那么对于每一个像素来说,它都是占一个值,当三层的三个值加起来就是该像素的所代表的颜色,它到底是红色还是其他什色。如果是纯红色的话。
那么我们认为它的这个像素点是2550和0,这两个零意味着在绿色上面是是没有颜色,在蓝色上面也认为没有颜色,所以最后的个颜色合起来只有一。255哦,这是举的一个例子。那么我们现在已经明白了一张彩色图片。
它是由三层组成的OK。对一张彩色图片三层组成,我们就认为这三层就是一个三维矩证,就是我们可以认为是W乘以H乘以3W的意思是宽H是高。那么三就是我这个三层三通道。那么对于呃CN来说。
它最重要的就是我们叫和就卷积核。什么是卷基核。卷积盒的意思就是说呃换一种说法,就是说呃它是一个。过滤器OK是一个filter,是一个过滤器。在这里我们可以看到我有两个filter。
那么左面的呃filter它也是三层的。我们就认为这个呃filter的层数是三层filter,就是三层过滤器。呃,它是一个3乘3的过滤器,因为长是3,宽也是3,然后它的合数也是3。嗯,在这个过滤器上。
我们可以看到呃,它的对角线全是一,其他地方是-一。那么我们就可以说这个过滤器主要找的是在一个3乘3的一个小区里面,我找一条斜线。OK这个就是第一个过滤器。那么我们看第二个过滤器。
第二个过滤器也是3乘3乘3的,它最左面的一列和最右面的一列是-一,中间的一列是一。那么我们就可以想象这个过滤器主要想找的是中间有没么有一条竖线OK那现在大家应该明白了。
就是卷接盒的作用就是我在一张图片上,我就是搜我有没有我指定的东西,我可以指定找一条斜线,对角线斜线也可以找一条直线,甚至我可以找一个角,找一个圆等等。那么使用不同的过滤器。在一张图像上。
我从左到右再从高到低全部扫一遍。那么我就可以把。整张图片上面的各个的特征先找到,大家注意啊,这个找到的那个特征是我预先定义好的。从哪定义呢?是从过滤器来定义的OK。我们以这个图像为例。
它图过滤器可以是W乘以H乘以DD的意思就是dap就有多少层。当然在这个例子上是30呃,过滤器3乘3乘3。那么对于每一层,我有每一个不一样的过滤器,在不一样的过滤器,我对它进行做卷积。
OK卷积的意思就是说我对应比方说呃,我们拿中间这个来举例吧。中间这个蓝色的区域,它可就浅蓝色区域,它可以是就是图片上的一些像素值。那么我拿一个过滤器,这是个绿色的过滤器。就是说我扫一遍。
然后每一个对应的像素相加,然后会出一个值。这样的话我就找到了绿色的这个过滤器在某一个区域的一个对应的值。同样红色过滤器扫一遍,蓝色过滤器扫一遍。那么我在每一个小的区域我都有一个值。
我把这个值全部放在一个新的矩阵当中。大家可以看最右下角一个output输出,这是新的一个呃举阵。那么对于新的矩阵就是我最后转机所做出来的呃一个结果的一个值。那么嗯看到这里我们呃想说两个东西。
第一个东西叫做padding就是填充。第二个意呃东西叫做stride,就是步长。具体是什么意思呢?我们还是以这三张图片为。OK我们拿这次拿红色的来举例吧,我们可以看到红色的正在从左往右滑。
然后它滑的时候有一部分是有数值的。比如说156、153甚至1148、158等等。那么这些有数值的都是真实的图片上像素值。那么在这个的最左面和最上面它都是零。大家注意啊,这个零。
它并不是本身图片所有的像素,可以说它已经超出了图像的范围。但是我们仅仅是把它做一个填充,填充的目的就是说呃我想从头到脚全部把图像扫一遍,不放过每一个像素值。大家可以想象。
如果没有最外面就是扩充扩充出去那一层。那么他找到的第一个,它其实是从第二列或者是第二行来找到的,这样的话就会漏掉了最外面那一圈的像素值。所以说这是填充的一页,那么步长。我们看一下吧。还是拿这个例子来说。
这个更直观OK填充在这个例子当中,填充是一步长是一填充等于一的意思就是说我在这个蓝色区域,就是我正式图像的外围有扩出去一个像素值横的扩出一个像素呃,纵轴再扩出一个像素,所以这叫填充为一。
那么步长为一的意思,就是说我每一次大家可以看到我有一个呃这应该算阴一个阴影处吧。我在这张蓝色图像上,我一直在扫。那么我每次扫我只扫一个像素值。那么我就认为步长为一,当然我们也可以做到把步长设置为二。
就是说我的这个过滤器就是阴影部分,我每次走两个像素值,它的一个好处就是说我可以加快我的这个扫描的就是进度,就就是一个加速的过程。呃,当然他如果你把步长设置的特别大的话,它有一个问题,当你的步长特别大。
你容易忽略到一些细节。所以一般来说需要平衡好步长。嗯,的这个数值。ok。讲到这里,我们明白了什么是填充和什么是布场。那么我们下一个问题就是说。经过卷积层以后,我仅仅得到了就是图上的。
大家可以看到这个绿色的区域。那么得到它之后,我要经过怎么样处理的?在这个。CIN的一些科研上,大家会把这下面这一层叫做池化场孤林类池化者,它是什么意思?就是说当我通过卷积核在我的图像上扫描一遍之后。
得到了这些数值,我要进行一些呃区分。大家可以看到橙色的区域。呃,是我原始的图像。橙色区域上有一个阴影部分,这就是我的卷积盒。然后大家看到的绿色的区域。绿色的区域就是说我通过这个卷积核之后。
我得到的一些数值。那么得到的一些数值。大家可以看到绿色区域上还有一个阴影部分。当然这个阴影部分所对应的就是我最后呃我的那个橙色真实图像上阴影得的所做过卷积以后得到的值。
OK那么在我得到绿色阴影部分的时候,我我一般来说我们会再做一步,就是说找到这个。某一小片区域里面的一个我想要的东西。比方说大家可以看到右边。这是1个4乘4的一个矩阵,这个4乘4的矩阵。
就是我们通过卷积之后所得到的一个矩阵。那么在这个矩阵当中,我分别呃我把这个矩阵分成了4块,我对每一块,我可以找它的最大值,我也可以找它的最小值,对吧?那么找到最大值意思就是说我可以去到一些细节。
我我不care,我只找到它最突出的那一部分。那么比如说最大值呃23、112、30sorry最大值在红色图像上,就是红色区域中就是左上角它的最大值12820和12,最大值是20,那么我把它记录下来。
再往旁边,黄色的那个区域当中最大值30。第4,我找到了4个最大值。那么我首先我把这个呃我的运算量我减小了。我从44乘4我减少到了2乘2。同时我也找到了在减少过之后的那个所要的细节。
这就是混理层所要做的事情。那么我们可以把呃前面的卷积层和紧接下来的磁化层可以统分为第一层隐藏层。然后继续往下,我们可以重复好几次隐藏层。那么在每一次隐藏层结束之后,我们都会找到一些它的图样的特征。
说到这里,大家可能在想嗯,我经过这么多步的处理,其实得到的仅仅是一些数值。那么它这些数值我知道它是像素,那么它到底代表什么,或者是我们能看到它是什么的。好,我现在告诉大家答案。
大家可以看到这个是201应该是2012年吧,2012年他们就是科学家所做出来的呃一个神经网络。这个当时的效果是最好的,它的神经网络叫做alexn。呃,在这个网络当中。
我们现在看到的这张图片就是在第一层隐藏层之后的一个一个可以看到的一个结果。那么我们可以看到,在最左上角,它好像是找到了一条斜线,但这个斜线是一条深色斜线,在它的两边是两个浅色的斜线。嗯,在。
我们也可以看到,在最右下角,我们右下角往上,它有一个呃这个叫。这个颜色应该叫。我们可以叫它呃,比如说二红色或者是不好意思啊,我也不知道这个美妆叫什么色。就是说我们找到了这种颜色,就等等。
我们可以看到这是第一层第一层所找到的都是一些比较低级的一些特征。那么好。经过五好几层的重复之后,大家注意每一层的这个呃filter或者是过滤器,它的那个都可以是不一样的。大家千万别要走。
当然你也可以设成一样的。但是一般来说我们都是让电脑随机生成的。我们可以看一下,经过5层之后,feature是什么样子。在这张图片这张图片同样是alexnet呃卷积网络所做的。那么在经过5层之后。
可以看到第五层,我们已经可以很明显的看到它已经具备了很多图像的特征。比方说对左上角嗯很明显的是一个小孩,然后我们也可以看到在。呃,第二行的最右面这是一只狗等等。那么这个CNN这就是我每一层输出。
我想要得到什么?OK呃,这个主要就是CNN的feature。我们总结一下。在卷积神经网络,它主要有哪些东西?首先我有输入最左面输入呃,这个输入。呃,是可以设一张图片,然后最右面是输出。
输出是分的分的类别,你有几类,我们就可以设置成几个输出,五类就是5个输出。OK中间的这块我们统一称作为隐藏层。那么隐藏层,我们看第二个吧,就是第二列。第二列卷基层。
然后紧接下来是它的石化层O池化层之后呃又有两个,我们可以看到是两个就是竖的那个好像以圆圈表示的。第一列是588乘以一,就代表着95588个,呃,可以说这是应该算一为向量吧,然后紧接着是20乘以1。
我们把这些统称为呃全连接层,就是什么意思呢?就是说我把前面的所给我的输入,然后它可能是一个三维矩阵,那么我把它全部呃展开,就是拉平,所以它这有时候大家也知道我们叫flatten。
就是使它呃就是拉平拉成一条线。O我们把它拉成一条线,就是说比如说前面是14乘以14乘以3,我把它全部展开变成588乘以1,然后再往下展开,变成右边又缩小到了20乘以,最后我可以做成到5乘以1。
因为我们用5类,所以我们变成5乘以1,然。然后我们可以训练这个神经网络。训练的神经网络的意思是说,我有一张输入。同时我知道注意啊,我已知它的输出是什么。比方说我这张照片是猫。
那么OK我最后知道class one是猫,那么它的概率应该是一,其他的概率应该是零,或者说class one猫的概率非常大,其他的那的概率非常之小。那么我们经过不同的训练,不同的训练嗯,就不停的训练。
使得最后我的网络牢牢的记住了,我给一张图片,是猫的图片,那么我的输出就是一给狗的图片,我输出就是2。那么这个过程我们要训练过程。当训练结束之后,我们拿我们把输入去掉。因为注意我输入的时候。
我是已知道我的这张图片是猫的。当我测试的时候,我拿一张其他的我从来没有见过的一张陌生的图片。那么我们把陌生的图片丢到这个神经网络当中,还是做同样的输入。那么它只计算一遍。如果我们的网络训练的比较好的话。
那么它可以知道这张图片的分类,它应该是猫是狗还是其他的动物OK。另外大家要注意,在卷积神经网络当中,我的呃测试的时候,如果想得到准确的东西,就准确的分类,那么我们必须得是让。就是已知类,你训练了猫。
你才可以进行猫的分类,你训练了狗曾经行狗的分类,对吧?我们不能说我训练了一只猫呃,猫的分类,然后让计算机去看一张计算机一个鼠标的图片。那这下的话,这个实际网络就凉了。当然这是CN的一个呃缺点吧。
科学家针对此也做出了其他的一些呃就是改进。比方说ze short learning零度学习零度学习,它主要就是说我看一张图片图片,然后我通过分析得到它的一些特征,可能这张图片我从来没有见过。
那么我通过一些已知的我曾经见过的一些类。那么我把它归到一个新的类,就比方说斑马是怎么来的,它可以是呃斑马线加上一只正常的马,就是斑马,这就是零度学习。O在这个地方呢,我们扯远了。
我们还是回来看卷积神经网络。我们看一下比较几个非常著名的卷基神经网络吧。第一个是2012年的卷积神经网络,它总共有8层,它的名字叫alexn。它的识别率可以达到就是错误识别率可以达到16。4%。
它仅有8层,在两年之后,谷歌出现了VGGVGG也是转机神经网络的一个名字。它最高可以到19层,这个时候它的误差率进一步降低,降到了7。3%。呃,同年2014年。
谷歌又做了另外一个手经网络叫做googlenet。呃,它可以达到22层,它的误差率也在一步减小。降到了6。7%。15年的时候,科学家做出了1个152层,这是一个自的飞跃。
它从之前的呃很就是大概时候看一下啊,就是8层19层、22层一下飞跃到了152层。但是它里面有很多的窍门的。这个时候它的误差率也降到了3。57%。在最近的是17年17年的时候。
科学家做出了一个dancen。它可以达到惊年的264层OK当然它的误差率也在进营无下。嗯,是否是层数越高,又或是层数越深,那么它的效果越好。所以答然是并不一定。在14年到15年的时候。
虽然有一次质的飞跃,但在做出这个之前,科学家发现在不采取一些其他方法的时候,层数非常深的时候,可能我们根本就训什么都训练不出来。大家注意想知道到底是就是增加了什么样的方法呢?大家可以有兴趣的话。
可以查阅一下,就是什么是呃15年这个残插网络,大家都可以也从那个里面知道是如何用残插网络的方式来克服的。主要是因为这个并不在我们今天的投论范围之内,所以我就不给大家过多的展开了O。呃。
到这里大家可能有一个问题。呃,这么深的神经网络,比方说264层的神经网络让我来写,那么我需要一层一层的去写,或者是里面的所有的过滤器,我一个一个来写嘛。呃,答案当然是说你可以这么做呃。
这么做的好处是你会把所有的底层了解的非常清楚。当然一般一般人不会这么做,因为太费事了。在现阶段有很多比较著名的开源的深度学习的框架,方说sorflow最火的,我个人认为啊最火的有or floor呃。
当然还有一些其他的比如说呃trainer微软的CNTK等等。这些东西都是已经搭好的框架。那么我们所用的就是说把调这些库O by the way就是这些库全部是基于thon来的。就是说如果想学好深度学习。
那么第一步也你需要就是掌握一些最基础的。就是呃python它的应用非常广,那么也导致它的分支非常多。你比方说我们可以做爬虫,我们可以做呃文档的一些处理等等。所以说在此我只想说。
大家只要具备最基本的python知识即可。呃,然后根据自己的兴趣,然后慢慢的再走一些python的高级编编程O。那么有了这些框察之后,我们仅仅每次只需要呃调它起这些库里面的每一层。比如说转移层。
它就叫com呃,石化层就叫铺。我们只要调过来以后,对于里面的所有的呃过滤器,没有必要自己一个一个亲自去定义。你所做的主要是告诉我呃,告诉我这个系统,你想要多少过滤器,然后你过滤器的呃大小大概是多少。
大小就是几层几,那概大概是多少。然后这个然后系统会自动帮大家生成一些随机的过滤器,然后再不停的去找OK。好,讲到这里以后,我们给大家聊一些比较好玩的事情吧。我们看一下,这是我的一张照片。
这是很正常的一张照片,有风景,有人。然后我还有另外一张照片,这是梵高的一幅画,然后这幅画就比较抽象了。那么我现在想干的事情就是说我想在我自己照片的基础上做出梵高的效果。O我们看一下最终结果。
这就是最终结果,呃,首先我们依然能大概的分辨出这是有风景有人。同时我们也能知道,呃,这里好像有梵高的那个艺术的感觉在里边,我们把这个称为deep dream深入梦。我们看一下他大概是怎么样实现的吧。
还是那句话用CNN来做,就是转基神经网络来做给我一张图片,然后我可以把这张图片改造成一个呃有着就是非常著名的一幅画的那个特征的图像。我们看一下它怎么去实现的,左面是一个正常的照片,右面是梵高的图像。
那么我这个时候会有两个卷积神奇网络。通过这两个卷积神经网络,左面的需要学习的是照片里面的内容,右面需要学习的是这张油画的一些风格。大家注意啊,学习东西不一样。但是不管是内容还是风格。
它都是它都是一些呃特征。当我学习到以后,我会输入到一个新的卷神经网络当中,把呃的呃内容和风格相统一结合起来,最终输出一张具有梵高风格的我的一张照片。哦,这个是一个非常好玩的。
再次也就是印证了CNN它有一大特性,就是说我们可以通过CNN的一些藏来学习到样的一些特征。CNN在到底它还有什么样的应用呢?毕竟这个生成一副带有油画风格,自己的照片是一个比较怎么说呀?
就是一个很娱乐的一个东西。那么我们看一下呃CNN就或者是深度学习在计算机视觉方面一些主要的应用。第一个应用是。呃,目标识别大家可以看到,这个是上班打卡或者是上飞机打卡工作的朋友应该知道。
以前我们可能是呃签到之后,我们就变成了刷指纹,就刷指纹其实挺麻烦的。而且每次都进入这个指纹机,手里搞得很脏。那么。呃,头像识别的话,我完全不必要接触,我只往他面前一站即可。
包括大家手机上的那个faceID呃,解锁,它道理是一样的,这是第一个应用。第二个应用目标检测。大家可以看到,在高速路口当中,我们架一个摄像头,在摄像头我们可以捕捉到的画面里面。
我们找到了呃有些找到首先找到一些汽车,偶尔会发现有人出现,同时对于这个汽车来说,我们知道哪些车在运动,我们就绘制出来它一条运动轨迹,哪些车一直在动,这个时候我们就能明白OK这个地方应该是出车祸了。
因为有些车一直停在那里,就是趴窝了。如果突然出现人的话,也可以意识到这个地方有问题。高速路口怎么能突然突然出现行人呢?这个就是目标检测的一个应用。
呃,第三个应用,这个是面部识别,面部识别现在应用也很广,尤其是在这次抗击呃肺炎的战役中,嗯,在机场或者是地铁站等一些人流密集的地方。然后呃科学家可以架设一些设备。通过不接触。
同时快速筛选的方式来很快的定位到哪一位乘客,他的体温过高。注意啊,这个是不接触的。同时而且是快速的。曾经的传统的检测方式是拿一个温控枪,让就是扫一下呃被拍摄者的额头,然后得到分。这样的话。
在大密集的人群当速度非常慢。但是深度学习可以做到就是说我仅仅一个摄像头架在高空,我扫一遍人群,我就能快速定位到这个患者在哪里。还有一些应用,比方说人体自带估计,这个我给大家播了一个。呃。
体育上的一个应用吧,这个是板球。然后我可以快速的精准的定位到板球运动员的主要的一些关节点。比如说他头头手,他的肘、膝盖等等,通过分析他们的呃这些关节就是关键点。
然后我们就可以知道这些呃板球运动员他的姿势呃规范如何呀,或者是输赢呀或者球在哪里呀等等一些信息吧。呃,关于人脸的检测和。呃,人体骨骼点的检测,我们可以把它统称为呃关键点检测呃。
key point detection。在5月9号的时候,就是个星期六吧,就是从5月9号开始,7月在线会单独开设一门课程的个关检检测。它包括了一些主流的一些算法。
这个如果大家就是具备一些python的基本的概利技能,如果你对此感兴趣的话,欢迎大家到时候来关注ok现在这个广告还没有铺出去,不过很快就铺出去了。我们再看下一个应用。这个是生成一些图像。
那么生成图像的时候。呃,这是奥巴马和普欣在说话。大家注意啊,这个并不是真实他们在说话,而仅仅是用深度学习的方法来呃模拟出来的。当然我们看的时候,他们非常像真人在讲话。下面一个应用比较非常有名啊。
这就是无人车。也是通过一些雷达或者是摄像头,我们来判断我们现在车辆的周周边的信息来执行下一步命令。我是该左转右转减速还是加速等等。
这个应用叫做去马赛克啊,去马赛克的话就是说有图像有马赛克这的,然后把将它去掉。这个应用是图像翻译。呃,如果有手机的话,我们当遇在国外遇到一个路牌,我们拿摄像头去照一下这个路盘。
那么呃手机会直接把路盘上的意思,比如说英文它翻译成汉语,或者是把呃德语翻译成汉语等等,这个也是一个非常方便的应用,它不需要你再打开,比如说有道词典呀,或者是金山词典,然后手写输入,然后再在那个得出翻译。
那么这些东西就是呃很便利的。OK这个就是我们第一个话题所要聊的。我现在退出一下我的这个换文篇,然后我看一下大家有什么问题。
呃,从低级特征到高级特征是否是因为感受也变大呃,这个并不是啊就是这个感受也变大。可以就是认为就是说先说一下什么感受野吧。可能有的同学呃感受也不是特别呃特别明白感受也,你就可以简单的想。
你就可以是认为这个卷积核的大小,然后感受也变大,它并并不影响次否从低级到高级。大家注意从低级到高级,我们的说法的意思,就是说呃从第一层第二层第三层随着层度的增加。
我们就可以看到在初始那些层是一些非常低的特征。比如说要直线一个拐弯,一个圆圈,然后再过渡到下一个下一层,下一层可能是通过直线或者圆圈组成的。一直到最后比如说五层六层7层,他们所得出来的。
我们看到的可能是一个轮胎一个方向盘就等等吧。这些就是这个叫高级特征,就是。层数越升,特征越高级。这门课代码有拍套这个版本吗?呃,拍套的话对呃。居然那个叫关键点检测,我们会专门针对拍到式来就是进行训练。
我们到时候会有呃7个实战项目。那么每一个实战项目我们都主要是针对拍套式,当然你也可以用其他的一些框架,这个都是可以的。deep dream和syle transfer是一样的,还是说法不一样。呃。
风格迁徙和deep dream它有就是共同的东西,它也有不一样的东西。呃,如果大家去搜索这个deep dream的网站,其就只比如说直接在百度或者主播上敲deep dream。
它你就可以在他的网站上上传一张图片syle transfer就它的意思就是说我学比如说我先学了一个图像的呃梵高的一些特征。然后我在学习比加索的一些特点,它这个主要是reyle。
而deep dream它是既学习一张图像上的一些呃就是内容,同时又学习另外的一块的一些风格,然后将其组合起来。我给大家还有其他什么问题吗?没有问题的话啊。canf和拍值选择哪个比较好啊。对。
其实最开始我们也经常面对这个问题。canther floor是呃google做的,然后拍到时facebook做的。呃,不能说哪个比较好吧。呃只能说哪个更适合于就是那个项目,但家要注意啊。
就是你选择不同的框架,选择不同的框架,然后你会发现你训练的时候,它会有些微小的差异,拍到时的出现比canf晚。呃后拍到现在特别的火,真的特别的火。呃,一般对于我来说,我虽然不能说它哪个更好。
但是我可以告诉大家就是说一般我会选选择拍到时来就是呃解决我的项目。ok。还有其他问题吗?OK没有其他问题的话,我们继续我们的课件,我们进入第二部分。
嗯。第二部分主要讲的是object detection,就是目标检测,也可以叫目标定位检测。我们先看一下,从目标识别来说,因为目标检测它是基于目标识别的,在深度学习领域上的呃往前走了进一步。目标识别。
它主要是找一个分类问题。比方说我在这张照片当中,我想找到它是什么?OK我们知道它可能是狗唯可能是小孩。那么我们目标 detect就object detection目标检测它在分类目问题的基础上。
它同时在做一个定位问题。
比方说在一张图片上。我把我所找到的对象,我用嗯矩形框我圈认出来。那么我知道左面黑色的框,它指的是一只狗,然后右面紫色的框,它指的是一个小婴儿。那么这个就是目标检测所要做的事情。
分类加定位OK这也是为什么我们说目标检测是在目标识别上又往前进了一步。
我们看一下呃以这个例子来举例吧。这个例子它本身是一个主拍的建筑物,在建筑物蓝色的那片是一个游泳池。那么当我想找到游泳池的时候,我拿一个绿色的框把它圈住,这个就叫做目标检测。而目标分类是我只能区分出来。
这是一个建筑的图像清楚。在传统的就在深度学习没火之前,传统的方法找到这个游泳游泳池。它主要是我在这张图像上,我拿一个固定大小的划窗,就是那个绿色区域,我从左到右从上到下我全部划那么一遍。
然后我每次划一遍,我就我都用比如说分类的方法,我找一下里面是不是有游泳池,这个就会带来一个很大的问题。我们的被找的对象,游泳池,它的大小不确定。那么你的滑窗可能过大,也可能过小,对吧?
而且这个速度非常的慢,因为游泳池只出现在图像的某一个角落,但是传统的滑窗它会把整个图片都找不遍,这样会浪费时间。那么我们看一下现在的奥布加迪达的目标检测,它有哪些方法。
で。现在主要的就是目标检测,它会有两个流派吧。它这个两个轮换是根据它我们叫做呃stage,就是呃阶段的数量来定位。比如说two stages或者是one stage,我直接把它翻译成了一刀流。
就是one stage,wo stage就要两道。当然这个是我的个人翻译啊呃。那么我们看一下在不同的流派里面,它主要流行的一些算法,我给大家做了一个是就是列了一下。
从呃咱们先说to stages吧从最开始的CN一直过渡到现在的ma可以说这个是CN加族CN就是说R的意思是gion区域后面就是CN转神经网络。然后从最开始的区域转神经网络到快速,然后再到更快。
然后现在到mus然后E到它所一些主要的一些算法。比如说SSD意思就是说我只查一次呃sing short现在已经到了第三个版本的意思是你只看一次由 only那注意啊,我给大家说一个八卦。
这个Ulo的这个发明者。优乐之父吧,他前一段时间就宣布他要退出计算机机要这个领域的。原因是因为美国政府他利用这个计算机图像,他总是把他这个方法用入到军事上和孕育到就是安全上。
所以他就奋上而然的退出了这个计算机视觉啊这八卦了。我们再回来。呃,最新的一个也是我非常喜欢的一个呃one stage的一个方法叫做concon。它主要就是我找两个点,嗯,然后就来定位这个区域。
当然这个呃具体的一些算法,我们会在就是之后开一些开设一些课程来给大家告诉大家看里面的细节是什么?同时怎么实现。在今天的公开课的最后我也会告诉大家有哪些课程比较适合大家OK那么说到这里。
大家可能可能会问同样是目标检测,我为什么要分成,按照它的阶段来分这个阶段到底是什么意思。OK我们先举一个例子吧。这个就是我们先拿第一个就是二呃二刀展,就是说两个阶两个阶段,它所谓的两个阶段。
我们拿faN这个来举例。首先大家注意啊,两个阶段其实我这有三个阶段。当然这三个阶段为什么我们老去掉第一个阶段。第一个阶段它就是输入一张图像,然后通过呃一个卷积神经网络来得到它的那个feature。
大家注意这一个阶段,它不管是呃任何的呃呃faN就是to stages还是说one stage的算法,它都要经过这一个步骤,所以这个并没有什么好说的,而且这个就是卷积神经网络。
后面的wo stages会再加两个阶段one stage再加一个阶段。那么我们这也是为什么我们说目标检测是目标识别的一个再往前进,我们看一下to stages是哪两个阶段。第一个阶段,它我们把它甚叫做。
它的意思就是说会找到一些候选区域。然后第二个阶段就是最后一个阶段,我会在这个候选区域上面嗯,什么是候选区呢,可以说我感兴趣区域,就是说在这些区域当中疑次存在我们的目标。
拿前面这张建筑物来说我在这些框框之中有一次可能存在游泳池。当然也可能是物检测,但是不重要,通过候选框,我们就可以缩小缩索范围。那么最后一个阶段就是第二个阶段就是大家看到这个绿色区域,在我这些候选区域。
就候选框当中,我再进行一次精确的分类,把游泳框就游泳池找到。那么这个就是fa达这尿错了。诶。这一个是它的一个基本的框架构成,我们也可以看到。首先第一步红色箭头指示给一个一张图片。那么我们经过。
我们经过一个卷积层,就是卷积神经网络,然后得到它的feature。然后第二阶段从嗯这一块我们找到它的候选区域,就是我疑次在这些区域当中有着呃被检测被检测目标的区域。第三阶段就是最上面的这一部分。
在这些也候选方当中候选区域当中,我找到我需要的东西。那么这个就是。two stage的过程。那one stage呢。one stage首先它还有个最开始的,我们可以叫做第零个stage吧。
也是一张图片进来,通过一个转机实经网络找到它当中的一些呃特征。然后对就我们只有一个区域叫做det generator,就是我直接我就把最终的那个我的目标定位找到。那么大家想一想。
two stage和one stage的方法主要的一些区别是。to的方法,比如说刚才我们说的那个RCNN的这种系列,它主要思路就是先我先通过一个转机神经网络产生一系列候选框。
然后再对这些候选框进行分类和回归。OK那么to的方法,它的优势就是它我的准确度一般来是比较高。那我们在想到那个one stage的方法,比如说刚才提到的o或者是SSD。
那么这些方法它主要的思路就是说呃我不不再去浪费时间找这些互选框的。我直接均匀的在图片的不同的位置,我进行密集的抽样。大家注意啊,这个抽样并不是呃并不是随机的。我抽样的时候。
我会提前就是设置一些我这个抽样框的一些我的尺度,或者是我个长宽比,它可能是1比2,这是一个矩型,也可以也可以是1比1一个正方形等等。嗯,然后通过然后利用CN提取特征之后,我直接进行分类回归。
那么这个过程只需要一步。那么在这里。我们又可以找到了one stage,它的最大的优势是速度非常的快,它的速度会可以说是完虐这个to stage的方法。但它也有一个问题。
就是说你这个均匀密集采样的一个重要缺点,就是训练时比较累,呃,主要是因为正样本,副样本不经营不均衡。什么是正样本,正样本就是我们的想找到的呃那个目标副样本。比方说这是个背景,对吧?呃。
所以一般来说注意啊,一般来说,one stage的准确度稍微低一点,tto stage的准确度稍微高一点,但是one stage的速度非常的快。当然现在也会出现就一些新的情网。
它会就是结合了one stage和to stage的所有的一些优势。然后它的速度也快,准确度也高。呃,我们看一下呃一个效果吧,我给大家播一个就是优loV3的个效果。
Yeah。
く。
,🎼,Okay。🎼,我后就能放。Oh。🎼用你也放轻狂的散,多么期。😊,我是要兄你。😊。
Oh。你。おち?🎼给了谁的我们。😊,🎼多少回。那成为了我。😊,这你。老啊。Yeah。こいと。こと?🎼某个爱你小会,我们就会。😊,🎼你我的。お?での?啥时好。あ。🎼爱你的爱好。😊。
Oh。🎼爱是不爱你我你还是我的爱手。😊,我爱你。
🎼我心不就忘成自己,我 can却在多。😊,🎼。あ。我不能。🎼或许给了心,或是愿意给总是松在。😊,🎼是两个从。都是回忆。😊,🎼心掉的所话。🎼打天之梦。🎼原不是那天。😊。
🎼只么是别你讲。😊,Yeah。🎼爱你。把丢は。想不我我就不。😊。
あし。你。🎼这样天我们不说。😊,🎼对。Oh。🎼这的的我不。😊,Yeah。🎼我爱你。😊。
OK这是大家看到的一些就是呃它的应用。那么我们再看一下,就是说还有哪些其他应用呢?就是目标检测这块。首先第一个应用,比如说车牌号识别,车牌号,那这个就很明显了。当过来一辆汽车的时候。
摄像头首先在这张图片当中准确的找到了车牌号的位置并进行截取,然后通过一些可以说是通过一些图标数理的方法,也可以通过计算机就是卷机网络的方法来得到最终的车牌号的数值。说到车辆,目标检测。
还有一些其他的比如说应用,拿这个来说,我们可以得到汽车的轨迹。比方说这个是右上角的那幅图片。我们可以得到这些汽车的轨迹来预判这个车流到底是它是否正确的行行在自己正确的道路上,还是在叉车就是叫。
加三或者什么的。然后当然也可以进行就是前方的一些安全预警。比方说突然检测到前方的车辆紧急刹车指得距离过近。那么当检测到之后,我们就需要做出一些相应的判断,我们是刹车还是赶紧变道。
当前或者是检测到有前面有行人通辆穿过的话,我汽车应该做下一步的那个工作来预防就是撞上去。这个是行人检测,呃,这个是这个刚才也说过了。然后再往下我们可以看到。
就是这个的例子就是说当旅客在旅游的时候遇到一个新的建筑物,我并不知道这是什么。然后我拿起手机拍了一张,同时把这张照片传到网上,这时呃这个叫图像搜索就可以找到okK这个建筑是什么,它的地址呃。
在哪里或者是等等吧。这个叫图像搜索。更多的应用,比方说在就是机器人领域,呃,左上角这个是机器狗,当然这个是一个小竞赛了。呃,这个机器狗,比方说呃我机器狗的眼睛就是我的摄像头不知道这个球在哪里,然。
后对友在哪里,该怎么调。呃,右面右上角这张图片是现在比较火的一个无人车的物流配送。呃,大家注意不知道大家注意没?就是经过这次肺炎的疫情,呃,然后就是国家会大力在机器人这个领域。
或者是工业机器研这个领域进行大量投资,像呃用一些就是无人车来进行配送,这样会减少人的在公共场合出现。也就是说减少了人得病的一些可能性。嗯,还有就是机械臂在工业自动化当中,机械臂它需要准确的定位。
就是物体在哪里。同时当我拿起抓取到这个物体的时候,我下一步要把它怎么操作,我放在哪里,需要一个精准的定位,这个都是目标识别的一些特性。除了在工业上有应用。在医学上目标检测,也有的就是很广泛的应用。
这张是一个呃应该叫CD图吧,呃,当然我本身不是做医学的啊,呃,可能说错,这个我能一个医学图像。然后在医学图像当中,我们可以训练神经网络找出一些异常点的地方,那么异常点的地方。
我们再把这张有问题图像再呈现给医生来看,就医生就可以得是ok呃,这个患者他就是有有哪些病变,然后怎么样治疗,这是下一步过程。呃,当为什么要这么做呢?因为其实医生的时间是很保贵的。
当有大量的医学都药摆在面前的时候,如果你让医生一个一个去干。首先医生他会累,当他累的时候,他看到之后,他可能就是有一个疏忽等等。计算机不会,他看呈现上一张照片,他也能准确的帮你找到一次区域。
所以也就是说可以缩短时间,大家注意没有?就是这次疫情呃,在生产疫苗的时候。就是人工智能会帮助这个加速疫苗的延禁。大家注意啊,人工智能并不能去研究疫苗,研制疫苗,但是它会加速这个过程。
那么这个应用就是说也是一个就像你视觉方向的一个比较深的应用和影响吧。OK这就是我们的第二个top个我们所要聊的。我现在推出我的全屏,我看一下大家的一些聊天。
啊,迁一学习吧,这个我做过迁一学习其实挺好的,它可以大大减上我这样过程。迁一学习的意思就是说呃我本身有一个就是比如说我训练了一个网络,我这个网络主要是区分狗的照片。然后我想做这个呃同样的网络。
不我再做一个网络,我想它区分狼的照片。大家注意啊,这个狗和狼,它主要是比较接近的。那么我已经有了训练好这个狗的一个网络,我没必要再重新从零开始训练一个狼的一个网络。
因我完完全全可以就是说我把我狗的训练狗的网络,我的一部分,我拿过来。因为大家注意在很多地级特征它们是非常像。比如那狗耳朵,就哈士奇的狗耳朵,和狼的那个耳朵非常像,就是那个体型非常像。
就是说我先利用一些前面那个网络特征。嗯,然后我在新的网络,我将其就是大概会缩短我这个需要时间。课件可以分享,视频也可以分享。最后大家可以就是我我的这个课件和视频都会最后哦就是发到7月在线的网上。
大家可以就是联系,就联系那个小七嗯,或者是直接到那个网站上啊,就是问大家要这个都会给大家分享。水下物体检测你带什么东西比较好?水下物体检测的话。嗯。这个其实怎么说呢?对对。
前期学期确实还有其他的OK我们看水下物理检测什么模型比较好。其实我个人认为呃。做水下模型的话,如果你要是不图快的话,你可以考虑一下那个musaskCN。当然你要是图块的话。
像拥有V3或者是最新的那个connet,我是个人比较喜欢那con light。呃,conline它有有有两种形式,呃,有一个就是效果非常的好。我给大家打一下吧。
就这个connet light这个大家可以呃去看一下,这个非常好。做CV必须得有GPU的支持。对,一般来说,当然你没有CGPU用CPU也可以,理论上是可以啊。这个理论上可以。
大家注意你这个理论上可以是呃你的实际训练速度非常的慢。所以一般来说我们会用GPU来测。这个有个同学提问就是CV需要那个图像呃传统的图像处理学那个这么说吧,传统的图像处理你只要知道非常基础的东西就行。
学本身学深度学习不需要去那个特别了解传统那块。你像传那传统的那些那块好多已经不用的。跟说,就是学了,你深度学了,这个挺好的。但是完全可以就是直接用深度学习的学习。车牌识别主要什么方法,这个东西就知了。
机于或野外环境特征比较少,适合哪种做法?哎,这个问题问的非常好。呃,其实在那个车辆重序别最后一章的时候,我们也会讲到,就是说当特征比较少的时候会就是怎么用。这个特征比较少的话,我个人建议你就是啥了。
你用你的光 truth光 truth就是说你原本的一些图像,然后你再结合那个比如说conroncon这种这种算法,然后你进行一种比对,就是算它那个相似值,然后呃算相需要算相似值来。
你得到一些就是更显著一些特。这个一会儿我讲到那个第四项的时候,会给大家再提一下。车牌识别呃,这么说吧,其实嗯在传统的计算机游戏的图像处理上,车牌识别已经比较成熟了。
open那不知道大家听过open c没一般来说,如果做深度学习呃,做图像处理的话,都会用到这个。欧CP你接调它的库就可以,完全就是进行车牌实验。然后CN也可以做车牌实验。okK大家还有其他什么样的问题?
没有的话,我们就。哦,什么net,我重新给大家打一下啊。这个corner net light这个东西大家注意啊,它之前是有一个叫corner net。net它是他第一次提出来,它这个的速度非常快。
而且总确率也非常高。因为它我不需要就是找一些anker, anchorker的意思就是说锚点。我个人认为cor,然后大我再继续说啊,corner map light是它的第二个版更新版本。
它的更新版本里面,然后它的那个效果确实是比优o V3的效果更好。呃,上一讲中需要设计多个滤波器,对输入数据进卷积器服复制。呃,还是那句话,这个滤波器不需要你自己去设计。呃,我们可以截调那些库。
然后你只要告诉那个呃系统,你对于每一层当中,你想放多少个滤波器,注意要基行数量,然后对于每个滤波器,你的大小。比如说你可以设置33或者是5乘5呃,仅此而已就可以了。然同时你在需要告诉你的呃系统。
你对于每一个比如说卷积层来说,你是否需要填充或者是是否需要把你的这个步长默认步长是一,你也可以把步长拉大就等等。你只需要微调这些,我们把这个叫做调参,呃,你不需要专门去写那个滤波器。
只需要运用那些库就就可以了。OK大家还有其他问题吗?没有的话,我们进入第三个呃话题。第三个话题是变分自编码器。变分自编码器主要是生成图样,挺有意思的。
OK那么我们先继续第三章。然后在第三章的结尾,我依然会推出来,就是大家就是聊一些呃呃解答一下大家的问题吧。OK变分自编码器它的简写叫做VAE。从这个名字上,我们就可以知道,所谓的变分自编码器。
它其实是有两步,第一是自编码器,第二在做变分。那么具体什么意思呢?我们先从这个自编码器auto en来看始。
。诶。autoencoder自动编码。我们看一下什么叫做编码。这儿有一张就是示例图,我们还是从左看到右。最左面我是有一串矢量,就是大家对这个矢量词全部都是一。
然后最右面我是想让它从这个最左面的输入全是一的一个矢量。然后最后我想生成一张猫咪的图片,大家注意啊,我每次只能输出同样的猫咪图片。因为你要训验。然后我们看到中间的这两个。这叫粉色的块,这个叫做呃。
反卷基层反卷机层,它就是把卷积层逆过去来一遍就行了,同样不需要自己设线,只需要调库。呃,至于怎么调库,我们将来会提到。OK那么我们通过大家注意啊,我如果是从右往左的话,一张图片,然后经过卷积。
再经过卷积,复制卷积和1化层之后,我们可以得到一串那个分类,你可以把这个分类就是说认为就是说呃它是一或者零。那么我们反过来的话,我们在初始的时候,我们把所有的这个类,我们全写成一,然后一步一步反卷积。
最后来生成一个呃固定的图像。当我训练的时候,我必须得训练出出生成平方图像。这个叫做编码。那么大家可以想象,我最初始的时候,我这个矢量全是一,其实这个很什么呀很bug。就是说呃它的解释性非常的差。
而且来说你这个数量特别的少。那么科学家就想,我下一步我可不可以把我的全是一,我改成一个方阵就本来是一个矢量,我改成一个方阵,这个方阵叫做one horse vector,呃,什么这个什么意思呢?
我给大家举个例子啊,one horse或者one factor。然后呃我举个例子,我现在有一个类,这个类叫做body就是身体,然后这给写错了,应该是叫animal。然后对于这个这一类来说。
如果我是用前面的算法,我会写成全是一的话,比如说我第一类代表猫,第二行,我代表狗,然后是狐狸和狼,那么我把它变成one vector方法,就是说我把它变成一个方阵,O就是因为我有四类,所以是四。
字的方正对角线上为接代表代表这个值应该是对应的它的哪一类OK。那么这个时候我的信息量就从一个N变成了N乘N,我的信息量变大了。但是大家呃它还有一个问题,它最大的问题就是说这个矩阵太稀疏了。
你仅仅是零和一表示呃,虽然你的是变成N乘N量大,但是你的信息并不变大。而且只有零和一,这个数值代表的就是是不是信息量特别少。那么下一步如何更改呢?
我们就把one how one how vector变成一个纯粹的一个 vector矩阵。我们还是给大家举例,看一下怎么变。通过one ho呃举证它全是零或一,而且注意就对角线上反7,我把它变成一串。
小数。大家可以看啊,我第一列原本是10001000代表着okK我在第一列的第一行的第一个A11是一,其他都是0。那么我就认为它是第一类猫。但是我变过之后,我在第一列,我们全部变成小数,一也变成小数。
零也变成小数。那么我们这样的话,我的信息量就会极大的增加,对吧?这个小数可以是正也可以是负,变成极大的增加。那么对于这个来说,我的信息量非常的大。OK但是大家注意这个时候我们没不有办法再仅仅区分类来呃。
就是区分那个类来表示到底是什么样的动物。那么这个时候我们怎么样做呢?我这个比如说我的 cat猫,我有4个数就是四组数字,然后每一个数字每一行代表一个特征。
可以我可以说这个比如说第一行它可以是一个耳朵的意思,就是代表耳朵不同的数值代表不同的耳朵的特征。那么第二行我比如说代表脚,我们再看第一行,如果我的第一行的数值是3。3,那么它可以是落在猫的这个特征上。
然后呃如果是3。4,唉,有稍微的变化,可落在了狗的特征上。比如说猫的耳朵是圆圆的,我的耳朵是尖尖的,我我举个例子啊,当然可能不准确。然后比如说我最后一行我可以是尾巴的一个特征。我本来是呃如果是6。
2这块的,我可以认为尾巴是蓬松的,而且永远是下垂,那么我就可以把它体向一只狼尾巴的。然后我如果变成了呃一个呃数字变成9。8,唉,它会变成一个细不留长的尾巴。然后那个毛呢也很紧凑,呃。
而且可以随时随时打弯。这个特别像猫的尾巴OK那么我针对你不同的行代表着不同的一些特征,我就可以组组成一个呃我的这个呃一个动物的类。那么这个我们就要做编码,就从一个vector。
然后也最后生成到一只一张固定的图片。OK到此为止,我们已经知道什么是wer。那么我们再看一下什么是deder编码器,对应的解码器和嗯自动自编码器,就是自动编码器。在outto当中。
auto en本身的意思就是outto是自动的嘛,这它自动编码,就是说我加入一个编码器,我再家里有同时我还有个解码器,我从最左边我输入这张猫的图像,然后让它进行编码,通过我这个网络呃卷积网络。
然后我最后生成一串矢量。然后这个矢量。然后我再反着走,通过我的der解码器,解码器它主要是那个反向的一个叫嗯卷积网络。然后我再最后生成到我原先的猫的图像当中,这点我要强调一下。
这个时候我的这个凹 enr,它的输入图像输出图像必须是就最终的训练结果必须是越接近越好。可以说是一模一样。ok。呃,标准编码器现在就是我们已经获得了一个有实际用处的网络了。
而且我们可以训练呃任意读的图片。你想训练猫各种各不有不一样的猫没问题。然后当训练好以后,我们可以把这些图片的编码向量存下来。然后呃之后我只要通过读这些编码向量,然后我就可以生成我们所对应的图像。
我们把这个称为标准字编码器。这个时候他有一个问题。它这个标准字编码器,它产生的图片和你输有图片是一模一样的。我们就可以认为标准词编码器就是一个图样的保存过程,只不过是我我保存的不是一张完整的图片。
而是我保存的是它的一个编码下的节省空间。但这个并不是我们最终想要的。我们想要的一个产生式模型。什么叫产生式模型呢?他的意思就是说,我通过一个一系列代码回来让它自动生成一些图像。
这个生成图像它并不是我训练的时候,我的输的一模一样的图像。比如说我让他看到了很多猫的图片,我不光想让我的网络判断出来这是猫是不是猫。同时我也想让它画出一些猫的样子。O。诶。在标准自编码器。
它不能产生任何位置的东西,主要是因为我们不能随意产生合理的潜在变量。然后那么我们该怎么做呢?这就是我们下一步要说的变分自编码器VAE变分自编码器,它主要是在标准自编自编码器的基础上增加了三步。
第一步是增加约束。强迫这个编码器来生成一些不从单位,就是高斯分布的潜在面量。为什么是高斯分布呢?因为在这个现实社会当中吧,我感觉很多事物都符合这个高斯分布。比方说一个班里的学习的成绩,或者是一个猫的。
比如说猫那个眼睛那个大眼它这个分布,从特别小意量特别大,它都是符合高斯分布的这也是就是为什么我们要让它服从高斯分母,或者其他的分布。第二步是在从呃高斯分布上进行采样,然后再丢给解码器,可以生成新的图像。
那么最后一步就是说你你生成新的图像的时候,它你肯定是有一些偏差的吧,就是我要调它的精确度呃,并且要符合这个高斯分布,你不能说呃在两头我的图像特别的多,这个部母际起点中间特别少,这个很奇怪。
所以我要把它材品拉回来,让那符合高斯分布同时让它精确度变高。我们看一下它的网络图是什么样子。我们可以看到在这个网络图上,它的这个和标准标准编码器的区分。就是我在中间我多了一个蓝色的柱子和黄色的柱子。
蓝色的柱子是叫min vector,就是说我求它的那个平均平均量,平均矢量。黄色的柱子是我求它的平均平方误差。那么我们就是让网助自己去权衡这种平衡。就是一方面我研究它的那个图片的重构误差。
我们用平均平方误差来表示,另一方面我们用一个呃我们这个地方叫做KL散度KL散也是算一个两图样当中它的区别的。就我们用这个来度量我们前列变量的分布和这个高斯分布的差异。大家看到上面的三个公式。
上面三个公式,我们先看第一个公式。第一个公式它是算一个los,这个los我们翻译过来叫呃叫误误差函数或者是损失函数。那么这个所谓的这个误差或者是损失函数,它的意思就是说呃我的网络生成一张新的图像。
那么在这个新的图像和我真实的图像,它的一个差异。我们当然是想让生成的这个图像和真实图像的差异越小越好。那么也就是说在我训量网络的过程中。
我的一个最核心的目的就是说我降低我的los函数的值使得这个差异越来越小,意思就是说我生成图像越来越接近我真实的图像,这是这是第一个就是我生成那个los。然后第二个就是我潜在的一个lo。
现在lo就是说我它可能不是很符合这个高斯分布,我把它拉回来。呃,同时我调一下它的一个精确度,这个los呃。加上之前的生成的lo,我们把它合成为一个总的一个损失函数。那么我有两个los。
同时把它就是家使它的呃这个los的值越小越好。那么最终我达到的目的就是说呃我想让我的这个生成的图像越来越接近我真识图像。那么这个就是VAE的,就是一个基本的原理。OK我现在再退出退出来,我退出全屏。
我看一下大家有什么问题。
哎,有一个呃朋友把这个code扑上来了,就是框架做的非常好,这是普林斯顿大学做的。呃,二阶段的话大家会经常看到一个是mus和CN。呃,这个它的效果,它是在faN基础上,它增加了一层解码。呃。
这个我们因为它这个本身不是我们今天公开课讨论的话题。呃,如果感兴趣的朋友的话,你可以搜一下这个。然后在我将来那个新的课程当中会,最后要给大家推荐的课程当中的,会就是看到一些就是具体讲解一下maC产解。
但是大家注意啊,musask和CNN它其实也是有一些问题的。然后现在会出现一个新的叫做。askCN呃,它是在maCN基础上进行的演化。呃,我给大家说一下mCN一个很大的一个问题吧。它的问题就是说。
我每次预测出来,我找到一个我找到了我这个目标,但是我找到目标之后,我会进行实力分割。是他的意思就是说我找到的目标我是有用一个矩型框来框。我只知道ok在这个区域之内,然后我实力分割,假如区域里面是人。
那么我就把人的轮廓来画出来。这个就是做的事情。但问题是它的损失函数是我只要我看到我这个区域里面我把人框住了,那么我就把它分达的很高。至于我实力分割的精准不精准,我不管反正我里面有人。
而且我这个呃范围也很小的。那么我就认为分这其实也是有问题的。所以mus就是在他的基础上它会在做进一步是你不光光把你的这个人圈住了,就这个框圈的很准。同时你实力分割就是把人的轮廓要很准。
然后这只有把人的轮廓也很准的时候,我们才认为你这个。就是找到的很准,否则的话我给你的打分非常低,就得重新学习。这个是m scoring前做的事情。大家还有其他什么问题吗?没有的话,我们会过渡到下一章。
下一章主要讲的是呃车辆的。呃,这样的重构呃重识别。
OK那我们先继续。第四章,车样重识别。呃,简写叫VEI。呃,vi re andification,我们看一下具体车辆从里面到底是什么意思呢。难道是重新让我认识一辆车辆吗?😡。
我们看一下啊具体的意思就一句话可以表达出来。就是已知在某一点那某一时刻,我有一个我想找一辆车,而且我这个时候我知道你的车在某处,当然你也可以说我这个车不知道在某处,我大概的位置可以知道。
那么经过一段时间之后,我想重新定位,并且跟踪到这个目标车辆。OK这个就是车辆同时别的问题。我们看一下一般来说它会怎么做吧。第一步。聚立假设空间。
意思就是说我现在既然知道了这个某一时刻车像在某处或者是它的大概区域。那么我按照车的最大速度,我找到一个圆形区域,一个合理的速度嘛。比如说我这个车在哎北京朝阳的一个小区,那么经过一个小时。
我完全没有必要去扩到到天津去找,对吧?我给大家举个例子啊,呃就等等,所以我先确定假设空间,那么第二步。当我确定假设空间之后,我需要缩小假设空间。因为在一个地图上,我们知道车辆指定沿着道路走。
或者是停到那个呃比如我停到那个停车库,或者是停到那个路边,我不可能我直接把车我开到比如湖里或者是学校里,我我当然我是是非停车场的地方。就是说我配上地图,我去到不是道路的地方,这样我会极大的减少工作量。
那么下一步就是说我筛选可用数据,在那个公路上会有很多摄像头嘛。就是说我在一比如一个呃多个摄像头数据,我把这些他所拍到的车辆,我都拿回来,我召回所有可能的就是候选。然后我最后一步我在这些候选的车辆当中。
我最后确定可疑的车辆,我可以参考车牌的信息,如果没有车牌信息,我需要参考车辆的其他一些特征的信息,来最终定位它的可能的位置。OK它主要是四步。那么这四步。其实我给大家总结一下啊。就总结一下就是两大块吧。
第一块是时空信息,我需要确列车辆的大致范围。第2块是我的地理信息,我要去过滤,不我去掉非道的地方。大家可以看到这是一张交通图。那么这这个交通图呃,我首先我是已经确定好这个车在哪我是10分钟的啊。
我确定好这个车在哪,我根据它这个路线,我对每一处的那个摄像头,所以我大概会有一个时间的记录,我就可以知道OK那么这个车大概的活动范围是啥分等。我们看一下就是他如何做的吧。
比如说如何搜索搜缩小搜搜索空间呢。呃。粗略的话可以根据一些外观的特征。比方说它的呃颜色、形状、类型,比如红色的车,那我们就只要找红色的车就可以了。检一车辆嘛。如果是比如说我是轿车,那我是轿车的话。
我就没有必要选公交车,就是直接大概的先粗粗的先搜一遍,包括它呃它的就是其他的一些呃主要的特征吧。外观特征。确精准定位。精准定位大家注意啊,精准定位其实最好的一项就是说我有车牌没?如果有车牌的话。
那么我搜一下你的车牌,就看一下通过这个呃是呃深度学习的一些技术,或者是计算机视觉的技术。我把这个车牌车牌号我定位出来,我识别出来。那么我就知道你这个车牌是否就是车辆是否在哪一个地方。但是最后有一个问题。
当你的车流速度就是车辆速度特别快的时候,很可能我抓拍到非常模糊。那么非常模糊的情况下。我如何精准的定位出来呢?你像比如说我第一张,说句实话,我第一呃第一行的那个图片,我大概能看出来它是TH080。
当然我要找的是TH090。那么我可能就知道,ok这个肯定不是。那么第大家看最后一行第三行,这个的车辆非常的模糊,因为它称度过快了,非常的模糊。那么我如何定位出来它是是不是TH090。
或者是它如果不是的话,那么它大概的范围是070还是080?这个怎么做呢?我一会儿给大家解释,那么就现在的车辆重启,它会有一些挑战。比如说第一个挑战。同一个车辆的不同角度的观测照片,它是不一致的。
哪怕你用同一个上头拍,你拍正面,你拍侧面,你拍后面,甚至你俯视图它都不一样。当然对于人类来说,我们看一眼就知道okK这肯定是同一辆车,但是如何让计算机知道这个问题,这是第一挑战。第二个挑战。不同摄像机。
哪怕你拍摄像的同同样是正面的,你同样确实它是有差别的。包括它的这个摄像这个摄像机的分辨率等等。嗯,或者是因为那个天气的情况,因为那个车辆是流动的嘛,它根据时间在流动等等,它就会拍到图样有差别。
下一个挑战。有车牌的话,那那很好说,把我读车牌就行了。那如果车牌被遮挡,或者是压根就没有车牌怎么办?这是一个非常重要的挑战。我一会儿给大家具体解释一下如何这个做就是去掉这个挑战。3。还有一个挑战是。
就是说你这个时空场景有时候难以确定,因为你想找这个嫌疑车辆,它这个嫌疑车辆并不是我们自己来控制的。它会根据其他一些很多的因素,比如说现在的交通是否拥堵,然后它是否改变了既定的路线,或者是天气。
就天气下雨,它突然把这个车停到了路边就等等,会改变车辆的路线。所以这个时空场景那里去。那么对于这四个挑战来说呢,呃,它是如何解决的呢?我们会开设一个课叫图像搜索与分类。
这是张老师他讲的那个斯蒂even老师讲的,那么他会在这个课程当中给大家具体介绍如何处理这个挑战。我在这里给大家介绍一下呃,这个处理一些挑战大致流程啊。大家可以看到这个图。呃,我们先从左往右看吧。
左面我是想知道我在某一个时刻,比如说下午4点1730秒,我在我第16个摄像头当中拍到了一个车辆。那么我想在知道经过很陈久之后,比如说一个小时之后,那么这个车辆大概在我是哪一个位置。OK。通过第一张图片。
我们已经可以知道了,嫌疑车辆大概应该是一辆SUVOK它的车牌号一次是AT8251次啊,大家对这也不清楚。但是我们可以知道它至少有车牌。同时通过我的摄像头的编号和时间,我就大概知道了,在几点的时候。
这么这个车辆所处的位置。那么最后的输出是什么?大家可以看最后的输出,首先右上角它是各从就是各种不一样的车,但是就是很接近的车辆嗯的一个数据库。
这个就是我们这个摄像头所呃所有的摄像头抓拍到的一个数据库的后载车辆。那么同时我也可以由我自己的数据库。呃,最后我还有一张地图,我在地图上头想确列让确立这个车辆的大致的行进路线和它现在的图的大致的范围。
那么怎么做到的呢?我们看一下中间这块。那么中间这块它其实是一个渐进的过程。首先第一步,它是基于外观的一个大概的过滤。比如说我可以基于外观的模型过滤到有不同颜色啊,像这是黑车嘛,我就需要白车,对吧?
需要红色车辆,就我过滤到不同颜色,还有纹理形状或者类型的大多数车辆嗯。大家可以看啊,我绿色的这块就是我第一行绿色的框代表着这些车辆嗯是比较接近的。然后红红色框圈出来的时候。
这些车辆在呃外形呀或者颜色等等。就很不像。那么我就没有必要在你这些红色框所圈住的这些项当中浪费时间,这是第一步。那么呃第二步是基于车辆的基于车牌的一个精细搜索。大致。
我们第一步就我们最重要的还是要基于车牌,因为车牌给的信息是非常准确的OK。呃,基于车牌的话,我们可以看一下,当我捕捉到这些就是在第一步的基础上一些的备选一些车辆之后,我们大概扫一下这个车牌。
如果说车牌能精准识别出来的话,那么我们就认为呃就大概的一些哪些车辆又可以进行备选。如果说是呃无法就是精准识别的话,就是如果有精准识别。你直接找到车了,找不到的话,我们可以呃基于它这个那个你近距离的原理。
呃,就是呃通过那个呃叫做。呃,翻译过来叫就是聂罗猫神经网络,它其实就是主要是计算这个呃。就是两张不同图片,它的那个相似度的。就是说我通过测量就是检查。嫌疑车辆和被搜索车辆车牌的大概相似。
然后我找到最相近的那一批车辆。OK最后一步就是说第三步啊,基于你近距的原理,我利用时空作性对车辆进行重新排序,然后进一步改善这个车辆的搜索过程。那么排序最高的。那么就是嫌疑车辆最大的你看一下这个车辆。
那么这个就是主要的三步。呃,当然三步,它其实实现起来也挺挺挺有意思的。在我们那个呃图像归类与搜有的课程中会给大家具体介绍。我在这儿主要给大家说一下。第二步,那个如果你车牌有精准的。
就是很清晰一下精准定位出来识别出来,这个不然好,如果它比较模糊,那这样我们怎么办?我们看一下。其实。在很多就是识别的时候,我们没必要去精准的那个识别这个车牌是不是它的数字到底是什么,然后去匹配。
因为有时候它比较模糊吧。其实我们只要验证车这两个板是否相互就行。注意啊,我说的是这两个车车牌的这个板,而不是说这个车牌的号,这是两个概念,我只验这两个板说下,首先我呃通过目标检测,我把这个板框出来。
然后我把这个框出来的两个板进行一个比对,这个只译过来叫聂罗猫神仙或者聂罗网络CM。然后这个神经网络,大家去看一下,我们我把这两个牌子输进来。
O我们先看那个label onelabel等于onelabel的意思就是我标签,当label等于one的思,就是说这个。呃,他的意思就是说我这个两个非常接近。呃,当li等于零的话。
我就认为这两个呃非常就是差异度非常大,就是压根不一样。那就甭看这辆车了。我们看一下右边这个列个神经网络,首先我的输入就是我这两个车法,然后我经过上下这两个分支的呃卷积层,就卷积神经网络,最后对啊。
这两个卷积神经网络,它的结构是一模一样的,包括它的所有的权重,所有的参数完全一样。你可以把它认为这压根就是同一个神经网络,以及训练好的同一个神经网络。OK通过这个神经呃就是两个神经网络。
但是什么都一样的神经网络,最后然后会输出一个输出就是一串编码,这一串编码,呃,就非常像我刚才给大家就是讲那个变分字编码器,它的那一一。那么我们把这些编码进行一个相似度的匹配,这个相似度的匹配。
比方说我可以呃通过当然有很多公式,比如说我利用预旋公式或者是我最哪怕你就是利用那个距离公式等等。嗯,就是来我计算一下相似度,相似度越接近。
那么就说明这两个车牌在很多外观上都非常像相似度越小呃越就是越呃越小,就以说会离地越远。那么就说明这两个车牌非常。它就是呃这个就是说我只需要验证两个车牌这个把的相相似度就可以。
没必要去今准的识别这个呃车牌号。O。呃,最后我给大家推荐两个课程吧,呃先看右面节课程,右面课程图像分类与图像搜索。它这个注意啊,这个课程它主要就是讲解的就是我今天所有的这个top的所有更多的细节。呃。
因为毕竟呃公开课嘛,时间有限。而且我们在短短的不到两个小时的时间里给大家聊了这么多话题。嗯基本上也不可能就是把所的细节聊的面慢俱道。所以说在这个课程当中,这个是我们网课了。呃,在其月在线推出一个网课。
大家进去以后可以就是呃报名学习。如果感兴趣的话。呃,这个呃网课它仅仅是讲的就是呃转移乘经网络呃变更自约呃就那个或者是VAE啊车还有车辆识别等等这些问题。如果大家对其他更感兴趣的话。
那么左边的这个班叫CV就业小班第四期。现在你经到第四期的这个是专门针对就业的,就是说嗯就是呃本科或者研究生毕业的时候,如果大家想进大展就做鹅场,就是腾讯或者是华为等等。如果你想从事计算机视觉这块的话。
那么我建议大家去参加一下这个CV就业小班第四期,他会有老师手把手的从最开始的基础,一直到最后来教会大家关于计算机同样视觉在深度学习这块的所有的主要的一些算法。然后帮助大家啊又找一个高薪的工作。
最后他会也就是帮大家有推荐内推。大家注意啊,在AI这个领域内推真的非常非常的重要。呃,同时也会就是帮大家改一下简义,就是我他不光对知识的一个详细的解示和介绍,同时还帮助大家找一个很好的工作。呃。
这个链接如果你点开的话。就是呃关于CV就业小班的一个呃介绍。
现在退出来给大家看一下。
OK这个就是CV就业小班第四期的介绍。然后大家可以看到在这个里面呃如何进的?一个是可以问那个管理员要一下,就是这个的呃PPT也可以就是直接搜7月在线。O搜7月在线。
然后进7月在线里面找到CV就业小团第四期呃,这里有一些课程去看这里介绍一些包括如果大家喜欢的话,感兴趣的话,你也可以就是来这看一下。
那关掉。呃,faRCN的一些基本原理。呃,这里有课程简介会给大家就是解释一下,就是最基本的它分成四个阶段吧。
没有。呃,如何报名的话,大家可以在这个网站上就是填写申请表,然后会有专门的工作人员负台工作人员呃,给您打电话呃,就是聊一下这个呃跟您聊一下,看看您现在的基础是什么。然后针对您的基础。
然后再进行一些呃更是就是在课前的一些的去安排。O。呃,然后预习阶段会讲一些就是呃最基本的一阶段。比如说如用open CVV呀呃或者是最基本的这大家注讲。
就是前面这些预习的阶段基本上都是些传统的计算机视觉呃,打个基础。然后紧接着第一阶段嗯,然后会给大家讲解很多这个。开go这个是一个比赛,参加过这个比赛的话,呃,对大家的就业非常有帮助。嗯。
然后第二阶段的话是掌握一些深度学习的高级技巧。比方说这里讲了一些呃tto stage的物体检测,还有one stage的物体检测,具体怎么样做的。第三阶段会讲一些跟踪和语分割上面的问题嗯,然后再往下。
呃,第四阶段就是讲一些呃,现在如果你是本科生的或者是硕士生的话,如果你想参加计算机这些网络的竞赛的话,比比如说开口竞赛的话,他会就是教大家一些如何呃一些经验吧。呃。
最后一部分第三部分第三部分非常重要是我最极力推荐的,它是一些实战项目。就是说我不光给大家介绍一些呃理论,它如何实现的原理。同时我还会给大家就是讲一下呃它的代码就是带着大家一写代码,这个呢我觉得非常重要。
这是一些实战项目,它这个呃就是涉及到的一些就是还是比较全面的,涉及到领域。最后一部分第四部分的呃啊这个不是第四部分的是就是面试这块。呃,毕竟大家就是交钱报名学习,最终的目的还是想找一份高薪的工作嘛。
7月在线的所有的讲师基本上是在各个领域,就是各个领域当中的一些佼佼者。然后有些是在学校,比如说像我是在学校,有些会是在公司大厂的公司,他们会就是根对自己多年的经验来为大家就是总结一下面试当中。
你如何讲解,如何把自己最优秀的那一面展示给HR,就是第四个部分,这个会是面对面的帮你。第五部分就是。呃,在虽然在课程结束之后,但是其实大家也依然想跟大家做一个朋友,然后有问题的话也可以联系你的你的老师。
或者是你的助教。然后大家会嗯就是在后续的过程当中,你有任何问题也可以向我们私下里提问,嗯,为大家访加互啊,这是第五部分。然后这是讲师的一些介绍。呃,OK这是一些学员的一些评价。呃,总而言之。
这门课程是我极力向大家推荐的一门课程。呃,这是CV就业小班第四期,如果仅仅是对我今天的就是。
呃,讲的话也就感兴趣的话,大家可以就是呃看一下。
看一下图像分类,就是大家可以看到吧?就是这个这门小课程这门小课程。O。呃,最后这个是我们7月在线的官网。呃,如果大家想就是看我的领音主要的话,右面这个是有领音大吧。OK我看看一下大家有什么问题。
啊,论文这块。
论文是就是首先读论文和复线论文都都是必须的。你比方说在这些实战项目当中。读论文我就不给大家做过多解释。因为在课程当中本身就会给大家介绍啊这个论文的很多细节。那么在实实战项目当,比如说这些都是实战项目。
实战项目当中,嗯就会首先是基于当下的就是论文当中的算法,先给大家讲解,然后进行复现,从开始如何进行建模,然后到最后如何训练训练之后如何测试。呃,那么在测试当中发现一些问题。
如何精确就是微调你的呃训练的这些参数等等,发现你的参数,这个是必须的。改进改进模型的话,这个呃就为针对就是不同。
大家比方说刚才那个我给大家叫那个m RRCN我又提到了m spoilingRCN但是m spoilingRC大家注意啊,它也是有一些小问题的。那么在我的课上,我会给大家教就是教速一些。
就是你现在论文上看不到一些东西,就是说如何调这个如果更精调。那么它为什么有问题,怎么样解决。呃,就是呃一些比较新的一些东西吧。准确率0。4,说句实话不是特别的高。呃,如果你。
就这位用户如果就是比较想更多的了解这块的话,我建议你可以看一下。呃,你稍我打开一下啊。这样我把它进到首页。大家可以看到首页往下拉,首页往下拉的话,那么这个就是图像分类与图像搜索。
就是我今天主要就是涉及到我今天公开课所的那个课程。然后大家进来的话,这个在这个地方就会给大家介绍一下呃,就是如何这个解决,这个可以1元秒,我觉得还不错的1块钱吧,对吧?1块钱的话。
大家进来以后可以看到呃一个第一课第二课讲这些。然后同时迁机学习这个地方以后给大家聊一下迁机学习,并且如何翻去。最后呢智慧交通这块呃,包括什么是智慧交通。然后如何呃就是重定位呃。
同时再讲一下如何就是充市比。刚才我提到那些挑战在这门课程当中都会给大家呃一一的进行个详细的解答。如果对项目还有什么就是更多的想了解的话,那大家可以呃私信我,就是进我的领域。
也可以就是联系我们的管理员负责的老师。O。最后再多说一点吧。在那个5月9号的时候,我们会开一门新的课。Okay。5月9日,我们会开一个关于呃关键点检测的一个课程。这个是由我来主讲。
大家也可以感兴趣的话可以就是来看一下。在开课之前,我们也会给大家就是讲解一下,做一个公开开课。然后给大家说一下关于点检测有哪些,呃,还有它的趋势,包括它的就业。O。这个CVG小报第四期大家可以看一下。
在我们主页的呃,大概是在精品课程的中间。就是第四期。当然呃7月在线还有其他很多更多的课程。大家如果感兴趣的话,可以在这里面搜索呃呃搜索,然后。它并不局限于深度学习,包括很多机器学习大数据,呃。
哪怕是最基础的python的基本的标准,这应面都有OK。呃,感兴趣的话,大家可以搜一搜,然后进入你选喜欢的过程。然后看一下。呃,还有其他什么问题吗?如果没有问题的话。
那么我们今天的直播也就呃在这个时间点告一段落了。也感谢大家今天来到我们的直播间,嗯,听我跟大家呃聊一聊一聊关于头像搜索和分类的一些知识。呃,当然也感谢大家关注7月在线。呃。
7月在线的终旨就是说在这个大人工智能的大趋势下。
希望能帮更多的帮助大家找到一个高薪的工作,也为咱们国家的人工智能做一些微武足高要的工作。OK谢谢大家。那么今天的直播就到这里,拜拜。😊。