吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡

3.2 特征点检测

        神经网络可以通过输出图片上特征点的(x,y)坐标,来实现对目标特征的识别

        我们来看几个例子,假设你正在构建一个人脸识别应用,出于某种原因,你希望算法可以给出眼角的具体位置,眼角坐标为(x,y),你可以让神经网络的最后一层,多出两个数字lx和ly,作为眼角的坐标值.

        如果你想知道两只眼睛的4个眼角的具体位置,那么从左到右依次用4个特征点来表示这4个眼角,对神经网络稍微做些修改,输出第1个特征点(l1X,lxy),第2个特征点(l2x,l2y)依次类推。这4个脸部特征点的位置就可以通过神经网络输出了,也许除了这4个特征点,你还想得到更多的特征点输出值,这些都是眼睛的特征点,你还可以根据嘴部的关键点输出值,来确定嘴的形状,从而判断人物是在微笑,还是在皱眉。也可以提取鼻子周围的关键特征点,为了便于说明,你可以设定特征点的个数。

吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡_第1张图片

         假设脸部有64个特征点,有些点甚至可以帮助你定义脸部轮廓甚至下颌轮廓。

        选定特征点个数,并生成包含这些特征点的标签训练集,然后利用神经网络输出脸部关键特征点的位置。

        具体做法是准备一个卷积网络和一些特征集,将人脸图片输入卷积网络,输出1或0,1表示有人脸,0表示没有人脸,然后输出(lx1,ly1)…直到(l64x,l64Y),这里用L代表一个特征,有129个输出单元,其中1表示有人脸,因为有64个特征,64×2,所以最终输出128加一个单元,由此实现对图片的人脸检测和定位.

        如果你玩过Snapchat或其他娱乐类应用,你应该对AR(增强现实)过滤器多少有点了解,Snapchat过滤器实现了在脸上画皇冠,和其他一些特殊效果。检测脸部特征也是计算机图形效果的一个关键构造模块,比如实现脸部扭曲,可头带皇冠等等。

        为了构建这样的网络,你需要准备一个标签训练集,也就是图片X和标签Y的集合,这些特点点都是人为辛苦标注的。

吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡_第2张图片

         最后一个例子,如果你对人体姿态检测感兴趣,你还可以定义一些关键特征点,比如胸部的中点,左肩,左肘,腰等等。,然后通过神经网络标志人物姿态的关键特征点,在输出这些标注过的特征点,就相当于输出了人物的姿态动作。要实现这个功能,需要设定这些关键特征点,从胸部中心点(l1x,l1y)一直往下,直到(l32x,l32y)。

        一旦了解如何用二维坐标系定义人物姿态,操作起来就相当简单了。批量添加输出单元,用于输出加识别的各个特征点的(X,Y)坐标值,要明确一点,特征点1的特性在所有图片中必须保持一致,标签在所有图片中必须保持一致。假如你雇用他人或自己标记了一个足够大的数据集,那么神经网络便可以输出上述所有特征点,你可以利用他们来实现其他有趣的效果,比如判断人物的动作姿态,识别图片中的人物表情等等。

 

B站视频来源:【中英字幕】吴恩达深度学习课程第四课 — 卷积神经网络_哔哩哔哩_bilibili

 

你可能感兴趣的:(深度学习,神经网络,计算机视觉)