分享好友 最新动态首页 最新动态分类 切换频道
华为开源自研AI框架昇思MindSpore应用案例:PFLD实时人脸关键点检测算法
2024-12-26 13:20

华为开源自研AI框架昇思MindSpore应用案例:PFLD实时人脸关键点检测算法

如果你对MindSpore感兴趣,可以关注昇思MindSpore社区

云平台帮助用户快速创建和部署模型,管理全周期AI工作流,选择下面的云平台以开始使用昇思MindSpore,获取安装命令,安装MindSpore2.0.0-alpha版本,可以在昇思教程中进入ModelArts官网

选择下方CodeLab立即体验

等待环境搭建完成

下载NoteBook样例代码PFLD:实时人脸关键点检测算法 ,为样例代码

打开一个terminal,将项目clone下来

 
 
 

选择Kernel环境

切换至GPU环境,切换成第一个限时免费

进入昇思MindSpore官网,点击上方的安装

获取安装命令

 
 

安装MindSpore 2.0 GPU版本

 
 

安装mindvision

 
 

安装下载download

 
 
 
 

开始实验之前,请确保本地已经安装了Python环境并安装了MindSpore Vision套件。

本案例使用300W数据集作为训练集和验证集。请在官网https://ibug.doc.ic.ac.uk/resources/300-W/下载afw,helen,ibug,ifpw这四个文件。

300W数据集简介
300W数据集是一个非常通用的人脸对齐数据集,也是近年来凡paper,都要出指标比对的必然数据集。

下载链接:https://ibug.doc.ic.ac.uk/resources/300-W/

该数据集共计3148+689张图像,每个图像上包含不止一张人脸,但是对于每张图像只标注一张人脸。

该数据集包含的文件目录为

afw(train 337) https://ibug.doc.ic.ac.uk/download/annotations/afw.zip

helen(train 2000 + test 330)
https://ibug.doc.ic.ac.uk/download/annotations/helen.zip

ibug(test 135)
https://ibug.doc.ic.ac.uk/download/annotations/ibug.zip

lfpw(train 811 + test 224)
https://ibug.doc.ic.ac.uk/download/annotations/lfpw.zip

该数据集训练集共计3148张图像,测试集共计689张图像

其中每个图像上包含不止一张人脸,但是对于每张图像只标注一张人脸。由以上4个文件夹组成的训练集共计3148张图像,测试集有689张图像。

请将解压后的数据集放到https://blog.csdn.net/qq_46207024/article/details/datasets/300W/300W_images/下,文件目录如下所示

 
 

原始数据集中并没有将训练集的图片和关键点进行汇总,而是存储在pts文件中,非常分散,不利于数据集加载。

因此,运行以下代码对数据中的关键点和样本路径进行收集汇总以便后续的训练和评估过程。

 

运行成功后,将生成list_68pt_rect_attr_train.txt和list_68pt_rect_attr_test.txt两个文件。

在300W数据集中,尽管已经重新标注了四个数据集并统一为68个坐标点,但是对于网络而言数据量仍然不大,因此使用旋转、平移等操作将训练数据进行数据增强。

 
 
 

通过数据集加载接口加载数据集,并转换为Tensor以备输入模型。

 
 

运行以下代码观察数据增强后的图片。可以发现图片经过了旋转处理,并且图片的shape也已经转换为待输入网络的(N,C,H,W)格式,其中N代表样本数量,C代表图片通道,H和W代表图片的高和宽。

 
 
 

前文提到过PFLD模型的骨干网络采用了MobileNet网络,其中采用了大量的卷积层用于提取面部特征,由于人脸除了丰富的细节特征,还包含不同器官间之间的结构特征。所以,在主干网络的最后将多个尺度的特征结合起来以增强关键点的检测效果。
图中黄色框的部分代表了网络的骨干部分,主要由MobileNet构成用于提取特征,在骨干网络的后半部分有明显大小不同的三组特征图,这代表了不同尺度的特征图,通过对不同尺度特征图的组合利用来进行关键点的检测。

骨干网络中还有一条分支指向了绿色框代表的辅助网络,辅助网络接受骨干网络其中一层的特征图用于进行偏航角、俯仰角和横滚角的预测,以此来增强模型的泛化能力,提高预测准确率。

主干网络主要用于提取特征和预测关键点。结构如所示,先采用了mobilenet v2 的多个bottleneck 层, 然后采用多尺度,再通过全连接层把多个尺度的特征连接起来。

 
 

定义检测器的目的是为了更好的适应不同数量坐标点的情况。feature_num默认为176,如果使用0.25X版本需要改为44,具体计算方式可查看论文[1]。landmark_num常见取值为21,68,98,这主要取决于使用的数据集。

 
 

辅助网络是PFLD网络中一个非常重要的结构,前文提到人脸的器官结构信息是非常重要的,而该信息在头部发生扭动,俯仰等情况时,关键点会变形。此时,如果加入偏航角,俯仰角等信息会增强模型的预测能力。

 
 

训练的质量极大程度上取决于损失函数的设计,常用的 𝐿1 和 𝐿2损失对于小规模训练数据不十分友好,给定两点在图像空间中的偏差,将两点的投影从3D真实面孔应用到2D图像,真实面孔的内在距离可能明显不同,因此将几何信息即偏航角、俯仰角和横滚角整合到惩罚中可缓解此问题。

 
 

在之前的工作中,我们已经将300W数据集进行了训练集和测试集的划分、定义了网络结构,完成了针对不同数据进行不同程度惩罚的损失函数。在midspore中提供了训练的接口,但是直接使用此接口必须满足每条数据只有两列,例如一张图片和对应的类别等,的数据集不能满足此要求,因此在定义训练流程之前,需要自定义封装了损失函数和模型网络的类。

具体代码如下

 
 

实例化损失函数,优化器,使用Model接口编译网络。本案例训练的是PFLD1X网络,论文中也提到了0.25X网络,其网络的每层参数为1X网络的四分之一。

 
 
 

在300W数据集的验证集上进行评估。

 
 
 

最新文章
谷歌SEO是什么
有客户的前提是有流量,获取流量是销售产品的一个重要环节。谷歌SEO作为一种常见的推广方式,在独立站引流方面扮演着非常重要的角色。做好SEO 运营,就能增加产品和品牌的曝光量,找到更多的潜在用户,提高用户对品牌的信任感和好感度。那
怎么看百度热搜榜的点击量多少个_ ,揭开百度热搜榜点击量的神秘面纱
本文目录导读:百度热搜榜的基本介绍百度热搜榜的点击量是如何统计的如何查看百度热搜榜的点击量百度热搜榜点击量的影响因素百度热搜榜点击量的意义和价值如何利用百度热搜榜进行营销推广在当今信息爆炸的时代,人们对于热门话题的关注度越
现在揭晓真相:手机跑得快透视万能挂
排名品牌车型辅助驾驶功能其他亮点1特斯拉Model SAutopilot:具备自动变道、自动超车等功能,可实现接近全自动驾驶的体验加速性能突出,百公里加速仅需2.1秒2蔚来ET7NIO Pilot:拥有行业领先的NOA导航辅助驾驶功能,可实现高速自动驾驶搭载
华为Nova12如何设置三键?
华为Nova 12是很多用户们都在使用的机型,这款手机自从发布以来一直都保持着很不错的口碑,性价比超高而且还采用了很强大的性能配置,那么华为Nova12怎么设置三键?接下来就让小编来为大家介绍一下吧!华为Nova 12是一款基于EMUI操作系统的
谷歌SEO里,你既爱又恨的SEO工具是什么?
在SEO行业的摸爬滚打中,我逐渐发现,那些让人又爱又恨的工具,往往是最具争议也是最有效的。今天,我们就来聊聊我在谷歌SEO实战中,对某个既爱又恨的SEO工具的深刻体会。一、谷歌SEO里,我难以割舍的双刃剑作为一名SEO老鸟,我深知每个工
九江品牌网站开发|购物网站开发建设,一站式建站服务
九江网站建设平台,汇集新网站建设服务,价格,网站建设案例信息,提供实时网站建设需求服务与报价,了解WAP网页建立,开发网站,PC端网页设计等网站建设、价格,查看网站建设案例,点击本平台咨询了解.九江网站定制服务领域:高端网页建设,个人网页
Yaskawa机器人无显示维修机械手报错
Yaskawa机器人无显示维修机械手报错要选择它用箭头键移动光标到相应项目上然后按键,为了详细描述此过程必须每次都描述一遍但为了简化表达[选择[XXX]"将被用来替代详细描述,E0x系列控制器川崎机器人故障查找和排除手册川崎维
淘客最常用的社群发单软件介绍
为淘客骨灰级项目,从QQ群逐渐转到微信群,距今已有好多年,以前代理玩法居多,引流方法有免单引流法,进群送免单或者拉几个人进群送免单,免单商品一般是用淘礼金创建的,这里可以用工具辅助搭配使用,防止撸狗!红包引流法,群内满多少人
使用这些 Google 搜索运算符来改善您的 SEO
  如果你做 SEO,你就会知道涉及多少个漫长的过程。您知道节省时间是多么棒。  这就是为什么我是 “hacks” 的忠实粉丝,它们实际上可以帮助你减少花在这些繁琐过程中的时间。  我最喜欢的之一?使用 Google 搜索运算符。他们可以减
自动挡降挡超车技巧是怎样的
随着社会的发展,法律也在不断的完善,对社会的法治化管理会有很大的帮助,比如大家遵守法律法规会减少很多交通事故的发生,禁止右侧超车, 高速右侧超车怎么算,小编整理了《高速右侧超车怎么算》的内容,为大家解答。真正的右侧超车是指
相关文章
推荐文章
发表评论
0评