基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf

上传人:周** 文档编号:10230208 上传时间:2021-06-12 格式:PDF 页数:16 大小:883.32KB
收藏 版权申诉 举报 下载
基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf_第1页
第1页 / 共16页
基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf_第2页
第2页 / 共16页
基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf_第3页
第3页 / 共16页
文档描述:

《基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf》由会员分享,可在线阅读,更多相关《基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf(16页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010877588.4 (22)申请日 2020.08.27 (71)申请人 华南理工大学 地址 510640 广东省广州市天河区五山路 381号 (72)发明人 唐杰宋弘健帖千枫肖鸿昭 黄翊琳薛又天 (74)专利代理机构 广州市华学知识产权代理有 限公司 44245 代理人 李斌 (51)Int.Cl. G06F 16/53(2019.01) G06K 9/00(2006.01) G06K 9/62(2006.01) G06N 3/04(2006.01) G06N 3/0。

2、8(2006.01) (54)发明名称 基于神经网络和Unity的智能发型推荐方 法、 装置及系统 (57)摘要 本发明公开了一种基于神经网络和Unity的 智能发型推荐方法、 装置及系统, 该方法包括下 述步骤: 建立脸部特征与发型属性映射表; 构建 数据集; 根据不同面部特征对数据集内部图片进 行不同的预处理操作; 训练对应的神经网络, 完 成对应面部特征的分类预测; 进行面部特征分 析, 根据映射表给出推荐发型的属性; 建立发型 库, 并为每个发型标注发型属性, 在发型库检索 得到推荐发型编号; 根据关键点坐标生成用户脸 部3D模型; 用户脸部3D模型与指定编号的多个发 型渲染合成3D发。

3、型推荐效果展示模型, 接收用户 面部图片进行发型展示效果预览。 本发明实现了 为用户提供智能发型推荐服务, 并以3D模型的表 现形式实现试发效果展示。 权利要求书3页 说明书9页 附图3页 CN 112015934 A 2020.12.01 CN 112015934 A 1.一种基于神经网络和Unity的智能发型推荐方法, 其特征在于, 包括下述步骤: 收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表, 将面部特征 拆分为多个二分类指标; 构建用于面部特征提取的数据集; 根据不同面部特征对数据集内部图片进行不同的预处理操作, 所述预处理操作采用第 一预处理操作、 第二预处理操作或。

4、第三预处理操作; 所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取, 所述第 二预处理操作基于Yolo v3网络进行额头检测, 所述第三预处理操作基于数据增强扩充数 据集; 输入预处理操作后的数据集, 训练对应的神经网络, 完成对应面部特征的分类预测; 以人脸关键点检测模型作为补充, 进行面部特征分析, 再根据脸部特征与发型属性映 射表给出推荐发型的属性; 建立发型库, 并为每个发型进行发型属性的标注; 根据所述推荐发型的属性, 在发型库中检索, 得到推荐发型的编号; 提取用户面部正面图片关键点坐标, 根据关键点坐标生成用户脸部3D模型; 在Unity 3D框架下调用用户脸部。

5、3D模型作为第一组件, 从建立的发型库中调用指定编 号的多个发型作为第二组件, 将第一组件和第二组件进行渲染合成, 生成供用户选择的3D 发型推荐效果展示模型; 接收用户面部图片, 进行用户面部特征分析并获得推荐发型编号, 所述3D发型推荐效 果展示模型进行发型展示效果预览。 2.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法, 其特征在于, 所 述面部特征拆分为多个二分类指标, 包括: 第一指标、 第二指标、 第三指标、 第四指标、 第五 指标、 第六指标、 第七指标和第八指标; 所述第一指标用于区分额头长短, 所述第二指标用于区分额头宽窄, 所述第三指标用 于区分中庭长短,。

6、 所述第四指标用于区分人脸长短, 所述第五指标用于区分人脸宽窄, 所述 第六指标用于区分颌骨是否突出, 所述第七指标用于区分眼间距是否过宽, 所述第八指标 用于区分是否为椭圆脸。 3.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法, 其特征在于, 所 述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取, 并将关键点的 坐标集合展平为一维向量, 作为训练集。 4.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法, 其特征在于, 所 述第二预处理操作基于Yolo v3网络进行额头检测, 具体步骤包括: 筛选出数据集内裸露额头的图片组成额头检测器的数据集,。

7、 并用图片标注软件对图片 进行标注; 加载YOLO v3神经网络预训练权重; 经过图像预处理后的数据集在YOLO v3预训练的网络上训练得到额头检测器; 采用训练好的额头检测器裁剪出额头区域, 以额头照片作为神经网络的输入。 5.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法, 其特征在于, 所 述第三预处理操作基于数据增强扩充数据集, 所述数据增强的具体步骤包括: 小角度旋转、 权利要求书 1/3 页 2 CN 112015934 A 2 平面翻转、 图片平移、 亮度调整和对比度拉伸的图片处理操作。 6.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法, 其特征。

8、在于, 所 述输入预处理操作后的数据集, 训练对应的神经网络, 具体步骤包括: 所述第一预处理操作后的数据集基于MLPC多层感知机神经网络模型进行脸部属性预 测; 所述第二预处理操作与第三预处理操作后的数据集在VGG16卷积神经网络上进行迁移 学习, 训练卷积神经网络, 具体步骤包括: 删除VGG顶层的分类器和全连接层, 在顶层之上级联一层全连接层和分类器; 冻结整个VGG16模型, 端到端地训练全连接层和分类器; 分类器训练完成后视显卡性能和数据集大小选择性解冻VGG16最上方的某几层卷积 层, 再次训练网络, 对VGG16后几层卷积层的参数进行微调。 7.根据权利要求1所述的基于神经网络和。

9、Unity的智能发型推荐方法, 其特征在于, 所 述生成供用户选择的3D发型推荐效果展示模型, 具体步骤包括: 搭建3D展示环境, 同时预设了发型在3D空间内贴合头部的效果; 在Unity 3D框架下基于图标控件实现发型自由切换; 在MainCamera组件里嵌入脚本程序, 实现手指拖拽旋转视角。 8.一种基于神经网络和Unity的智能发型推荐装置, 其特征在于, 包括: 映射表构建模 块、 数据集构建模块、 图像预处理模块、 分类预测模块、 面部特征分析模块、 发型库构建模 块、 发型编号输出模块、 用户脸部3D模型构建模块、 3D发型推荐效果展示模型构建模块和效 果展示模块; 所述映射表构。

10、建模块用于收集面部特征与发型属性的映射关系并建立脸部特征与发 型属性映射表, 将面部特征拆分为多个二分类指标; 所述数据集构建模块用于构建面部特征提取的数据集; 所述图像预处理模块用于根据不同面部特征对数据集内部图片进行不同的预处理操 作, 所述预处理操作采用第一预处理操作、 第二预处理操作或第三预处理操作; 所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取, 所述第 二预处理操作基于Yolo v3网络进行额头检测, 所述第三预处理操作基于数据增强扩充数 据集; 所述分类预测模块用于输入预处理操作后的数据集, 训练对应的神经网络, 完成对应 面部特征的分类预测; 所述面部特征。

11、分析模块用于以人脸关键点检测模型作为补充, 进行面部特征分析, 再 根据脸部特征与发型属性映射表给出推荐发型的属性; 所述发型库构建模块用于建立发型库, 并为每个发型进行发型属性的标注; 所述发型编号输出模块用于根据所述推荐发型的属性, 在发型库中检索, 得到推荐发 型的编号; 所述用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐标, 根据关键点坐 标生成用户脸部3D模型; 所述3D发型推荐效果展示模型构建模块用于在Unity 3D框架下调用用户脸部3D模型 作为第一组件, 从建立的发型库中调用指定编号的多个发型作为第二组件, 将第一组件和 权利要求书 2/3 页 3 CN 11201。

12、5934 A 3 第二组件进行渲染合成, 生成供用户选择的3D发型推荐效果展示模型; 所述效果展示模块用于接收用户面部图片, 进行用户面部特征分析并获得推荐发型编 号, 所述3D发型推荐效果展示模型进行发型展示效果预览。 9.一种基于神经网络和Unity的智能发型推荐系统, 其特征在于, 设有权利要求8所述 的基于神经网络和Unity的智能发型推荐装置, 还包括: UI用户界面、 Socket客户端通信模 块和Socket服务器端通信模块; 所述UI用户界面用于接收用户图片及附加需求; 所述Socket客户端通信模块用于将用户图片发送至服务器端, 监听服务器响应, 接收 用户脸部3D模型并存储。

13、在本地; 所述Socket服务器端通信模块用于接收用户图片, 回传用户脸部3D模型至客户端。 权利要求书 3/3 页 4 CN 112015934 A 4 基于神经网络和Unity的智能发型推荐方法、 装置及系统 技术领域 0001 本发明涉及发型智能推荐技术领域, 具体涉及一种基于神经网络和Unity的智能 发型推荐方法、 装置及系统。 背景技术 0002 在传统方式上, 人们考虑发型时, 主要通过观看图像、 影视资料或者询问造型师等 方式, 这不仅费时费力, 而且效果可能不理想, 甚至出现造型被毁而无法恢复的问题。 另一 方面, 社交恐惧人群对传统方式也是难以接受的, 原因在于他们无法自如。

14、地同造型师沟通 或者对在公共场合尝试不同造型有所抵触。 而通过手机软件进行个人造型效果的预览和选 择, 可以让用户自由选择预览效果, 既便捷又不需要因为改变发型的不可逆性而承担原造 型被毁的风险, 同时也能够为社交恐惧者或者类社交恐惧者提供发型设计与选择的平台, 因此具有很大的实用意义。 0003 现有市场下的软件如发型屋、 ihairstyle、 换发型相机等, 存在整体效果不真实, 部分发型的放置过于突兀等问题。 更重要的是, 这两类软件只能提供部分素材让用户自己 选择, 而没有智能推荐适合用户的造型的功能, 其展示结果也仅限于用户的正脸, 无法展示 造型的整体效果, 对不熟悉造型设计的用。

15、户而言体验效果较差, 无法满足其个性化的需求。 0004 现有技术中提供一种基于WebGL和人脸重建的虚拟试发实现方法, 该方法存在以 下问题: (1)识别率低, 该方法将脸型分为心形脸、 方形脸、 长方形脸、 椭圆脸、 圆形脸, 计划 采用卷积神经网络识别脸型。 但是判断脸型只需要识别脸部的轮廓, 与五官, 背景没有任何 联系。 而将整张图片的所有信息囫囵吞枣地作为卷积神经网络的输入, 会给卷积神经网络 带来极大的干扰。 也就是说神经网络很难 “知道” 操作者到底希望他识别哪些特征。 (2)标准 单一。 该方法仅根据脸型和发型的映射关系推荐发型, 而发型的选择除了与脸型有关, 还与 额头和中。

16、庭的特征有关。 (3)便利性差, 市场应用前景不明朗。 该方法基于WebGL在网页实现 虚拟试发的服务。 而当今社会人们使用电脑主要的应用在于科研、 办公和打游戏, 像发型推 荐这一类满足实际生活需求的应用基本都是在手机上实现的。 因此该方法市场应用前景不 明朗。 (4)缺乏数据集。 该方法计划利用网络爬虫爬取相关数据, 制作数据集用于从头开始 训练卷积神经网络。 然而在实际工程实践中, 其可行性并不高。 原因在于: 1、 要训练一个多 分类的网络, 数据集至少要到万的数量级。 而数据集的制作不仅包括爬取照片, 还包括剪切 人脸一类预处理工作, 且需要人为为它们打标签, 工作量相当之大且无法保。

17、证数据集质量。 2、 即便数据集制作完成, 要让神经网络识别出脸型这种深层特征, 从头开始训练神经网络 得到的结果依旧不理想。 发明内容 0005 为了克服现有技术存在的缺陷与不足, 本发明提供一种基于神经网络和Unity的 智能发型推荐方法、 装置及系统, 实现了为用户提供智能发型推荐服务, 并以3D模型的表现 形式实现试发效果展示。 说明书 1/9 页 5 CN 112015934 A 5 0006 为了达到上述目的, 本发明采用以下技术方案: 0007 本发明提供一种基于神经网络和Unity的智能发型推荐方法, 包括下述步骤: 0008 收集面部特征与发型属性的映射关系并建立脸部特征与发。

18、型属性映射表, 将面部 特征拆分为多个二分类指标; 0009 构建用于面部特征提取的数据集; 0010 根据不同面部特征对数据集内部图片进行不同的预处理操作, 所述预处理操作采 用第一预处理操作、 第二预处理操作或第三预处理操作; 0011 所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取, 所 述第二预处理操作基于Yolo v3网络进行额头检测, 所述第三预处理操作基于数据增强扩 充数据集; 0012 输入预处理操作后的数据集, 训练对应的神经网络, 完成对应面部特征的分类预 测; 0013 以人脸关键点检测模型作为补充, 进行面部特征分析, 再根据脸部特征与发型属 性映射。

19、表给出推荐发型的属性; 0014 建立发型库, 并为每个发型进行发型属性的标注; 0015 根据所述推荐发型的属性, 在发型库中检索, 得到推荐发型的编号; 0016 提取用户面部正面图片关键点坐标, 根据关键点坐标生成用户脸部3D模型; 0017 在Unity 3D框架下调用用户脸部3D模型作为第一组件, 从建立的发型库中调用指 定编号的多个发型作为第二组件, 将第一组件和第二组件进行渲染合成, 生成供用户选择 的3D发型推荐效果展示模型; 0018 接收用户面部图片, 进行用户面部特征分析并获得推荐发型编号, 所述3D发型推 荐效果展示模型进行发型展示效果预览。 0019 作为优选的技术方。

20、案, 所述面部特征拆分为多个二分类指标, 包括: 第一指标、 第 二指标、 第三指标、 第四指标、 第五指标、 第六指标、 第七指标和第八指标; 0020 所述第一指标用于区分额头长短, 所述第二指标用于区分额头宽窄, 所述第三指 标用于区分中庭长短, 所述第四指标用于区分人脸长短, 所述第五指标用于区分人脸宽窄, 所述第六指标用于区分颌骨是否突出, 所述第七指标用于区分眼间距是否过宽, 所述第八 指标用于区分是否为椭圆脸。 0021 作为优选的技术方案, 所述第一预处理操作基于人脸关键点检测模型进行面部边 缘轮廓关键点提取, 并将关键点的坐标集合展平为一维向量, 作为训练集。 0022 作为。

21、优选的技术方案, 所述第二预处理操作基于Yolo v3网络进行额头检测, 具体 步骤包括: 0023 筛选出数据集内裸露额头的图片组成额头检测器的数据集, 并用图片标注软件对 图片进行标注; 0024 加载YOLO v3神经网络预训练权重; 0025 经过图像预处理后的数据集在YOLO v3预训练的网络上训练得到额头检测器; 0026 采用训练好的额头检测器裁剪出额头区域, 以额头照片作为神经网络的输入。 0027 作为优选的技术方案, 所述第三预处理操作基于数据增强扩充数据集, 所述数据 增强的具体步骤包括: 小角度旋转、 平面翻转、 图片平移、 亮度调整和对比度拉伸的图片处 说明书 2/9。

22、 页 6 CN 112015934 A 6 理操作。 0028 作为优选的技术方案, 所述输入预处理操作后的数据集, 训练对应的神经网络, 具 体步骤包括: 0029 所述第一预处理操作后的数据集基于MLPC多层感知机神经网络模型进行脸部属 性预测; 0030 所述第二预处理操作与第三预处理操作后的数据集在VGG16卷积神经网络上进行 迁移学习, 训练卷积神经网络, 具体步骤包括: 0031 删除VGG顶层的分类器和全连接层, 在顶层之上级联一层全连接层和分类器; 0032 冻结整个VGG16模型, 端到端地训练全连接层和分类器; 0033 分类器训练完成后视显卡性能和数据集大小选择性解冻VG。

23、G16最上方的某几层卷 积层, 再次训练网络, 对VGG16后几层卷积层的参数进行微调。 0034 作为优选的技术方案, 所述生成供用户选择的3D发型推荐效果展示模型, 具体步 骤包括: 0035 搭建3D展示环境, 同时预设了发型在3D空间内贴合头部的效果; 0036 在Unity 3D框架下基于图标控件实现发型自由切换; 0037 在MainCamera组件里嵌入脚本程序, 实现手指拖拽旋转视角。 0038 本发明还提供一种基于神经网络和Unity的智能发型推荐装置, 包括: 映射表构建 模块、 数据集构建模块、 图像预处理模块、 分类预测模块、 面部特征分析模块、 发型库构建模 块、 发。

24、型编号输出模块、 用户脸部3D模型构建模块、 3D发型推荐效果展示模型构建模块和效 果展示模块; 0039 所述映射表构建模块用于收集面部特征与发型属性的映射关系并建立脸部特征 与发型属性映射表, 将面部特征拆分为多个二分类指标; 0040 所述数据集构建模块用于构建面部特征提取的数据集; 0041 所述图像预处理模块用于根据不同面部特征对数据集内部图片进行不同的预处 理操作, 所述预处理操作采用第一预处理操作、 第二预处理操作或第三预处理操作; 0042 所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取, 所 述第二预处理操作基于Yolo v3网络进行额头检测, 所述第三预。

25、处理操作基于数据增强扩 充数据集; 0043 所述分类预测模块用于输入预处理操作后的数据集, 训练对应的神经网络, 完成 对应面部特征的分类预测; 0044 所述面部特征分析模块用于以人脸关键点检测模型作为补充, 进行面部特征分 析, 再根据脸部特征与发型属性映射表给出推荐发型的属性; 0045 所述发型库构建模块用于建立发型库, 并为每个发型进行发型属性的标注; 0046 所述发型编号输出模块用于根据所述推荐发型的属性, 在发型库中检索, 得到推 荐发型的编号; 0047 所述用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐标, 根据关键 点坐标生成用户脸部3D模型; 0048 所述。

26、3D发型推荐效果展示模型构建模块用于在Unity 3D框架下调用用户脸部3D 模型作为第一组件, 从建立的发型库中调用指定编号的多个发型作为第二组件, 将第一组 说明书 3/9 页 7 CN 112015934 A 7 件和第二组件进行渲染合成, 生成供用户选择的3D发型推荐效果展示模型; 0049 所述效果展示模块用于接收用户面部图片, 进行用户面部特征分析并获得推荐发 型编号, 所述3D发型推荐效果展示模型进行发型展示效果预览。 0050 本发明还提供一种基于神经网络和Unity的智能发型推荐系统, 设有上述基于神 经网络和Unity的智能发型推荐装置, 还包括: UI用户界面、 Sock。

27、et客户端通信模块和 Socket服务器端通信模块; 0051 所述UI用户界面用于接收用户图片及附加需求; 0052 所述Socket客户端通信模块用于将用户图片发送至服务器端, 监听服务器响应, 接收用户脸部3D模型并存储在本地; 0053 所述Socket服务器端通信模块用于接收用户图片, 回传用户脸部3D模型至客户 端。 0054 本发明与现有技术相比, 具有如下优点和有益效果: 0055 (1)本发明实现了为用户提供智能发型推荐服务, 并以3D模型的表现形式实现试 发效果展示; 同时本发明针对不同的面部特征提出了不同的数据预处理方法和神经网络训 练的方法, 在相同的数据集上得以达到更。

28、好预测效果, 最后, 本发明基于Unity 3D框架实现 3D发型推荐效果展示, 效果生动逼真, 具有较高的实用性。 附图说明 0056 图1为本实施例1基于神经网络和Unity的智能发型推荐方法的流程示意图; 0057 图2为本实施例1的3D试发效果示意图; 0058 图3为本实施例3基于神经网络和Unity的智能发型推荐系统的结构框图; 0059 图4为本实施例3智能发型推荐算法实现框图。 具体实施方式 0060 为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定。

29、本发明。 0061 实施例1 0062 如图1所示, 本实施例提供一种基于神经网络和Unity的智能发型推荐方法, 包括 下述步骤: 0063 S1: 收集面部特征与发型属性的映射关系并建立脸部特征-发型属性映射表; 0064 本实施例将用户面部特征拆分为8个二分类指标。 它们分别为: 指标一额头长 短、 指标二额头宽窄、 指标三中庭长短、 指标四人脸长短、 指标五人脸宽窄、 指标 六颌骨是否突出、 指标七眼间距是否过宽、 指标八是否为椭圆脸。 本实施例面部特征 与发型的对应关系如下表1所示, 针对不同的面部特征有不同的数据处理方式, 并使用不同 的神经网络架构进行网络训练。 0065 表1脸。

30、部特征-发型属性映射关系表 说明书 4/9 页 8 CN 112015934 A 8 0066 0067 S2: 根据所需面部特征, 在CelebA数据集中挑选并以爬虫下载图片为补充, 建立用 于面部特征提取数据集, 其中, 组成数据集图片的标准是: 正脸、 无遮挡, 挑选完成的数据集 作为训练集; 0068 S3: 根据不同面部特征对数据集内部图片进行不同的预处理操作, 以达到更佳的 面部特征提取效果, 涉及到的预处理操作有: 0069 第一预处理操作、 基于Dlib库的人脸关键点检测模型进行面部边缘轮廓关键点提 说明书 5/9 页 9 CN 112015934 A 9 取, Dilb库提供。

31、开源的人脸68个关键位置关键点检测模型。 其中编号1至编号17的总共17个 点表示从左侧太阳穴至右侧太阳穴的关键坐标位置, 因此本实施例提出调用Dlib库提供的 检测模型提取面部边缘轮廓的17个关键点, 并将关键点的坐标的集合作为指标六和指标八 的数据集; 0070 面向指标四、 指标六、 指标八, 提取脸部面部边缘轮廓关键点, 操作步骤包括: 用 Dlib库提取面部边缘轮廓的关键点; 将关键点的坐标集合展平为一维向量; 以上步骤得到 的一维向量作为神经网络训练的输入; 0071 第二预处理操作、 基于Yolo v3网络实现额头检测, 具体训练步骤如下: 0072 筛选出数据集内裸露额头的图片。

32、组成额头检测器的数据集, 并用图片标注软件 为图片进行标注, 并将数据集转化为YOLO v3网络需要的; 0073 加载YOLO v3神经网络预训练权重; 0074 用步骤制作的数据集在YOLO v3预训练的网络上训练额头检测器; 0075 面向指标一、 指标二, 基于YOLO v3神经网络训练额头检测器, 用训练好的额头检 测器模型对数据集进行预处理, 将额头区域裁剪出来, 再单独以额头的照片作为数据集, 以 额头照片作为神经网络的输入。 0076 第三预处理操作、 基于数据增强技术扩充数据集, 具体步骤包括: 0077 面向指标三、 指标五, 基于数据增强实现扩充数据集的功能、 提高训练精。

33、度和模型 的泛化能力, 具体操作包括小角度旋转、 平面翻转、 图片平移、 亮度调整和对比度拉伸等不 改变指标三、 指标五图片语义的图片处理操作; 0078 S4: 在步骤S3的基础上, 第一预处理操作得到的数据基于MLPC多层感知机神经网 络模型进行脸部属性预测; 0079 在预处理得到的数据集的基础上, 基于多层感知机进行训练, 实现对指标四、 指标 六、 指标八的分类预测, 具体操作为: 得到的向量的集合作为多层感知机的输入; 0080 将第二预处理操作或第三预处理操作得到的数据集在VGG16卷积神经网络上进行 迁移学习, 训练卷积神经网络, 实现对指标一、 指标二、 指标三、 指标五的分。

34、类预测, 基于 VGG16卷积神经网络进行迁移学习具体操作步骤如下: 0081 删除VGG顶层的分类器和全连接层, 在顶层之上级联一层全连接层和分类器; 0082 冻结整个VGG16模型, 端到端地训练全连接层和分类器; 0083 分类器训练完成后视显卡性能和数据集大小选择性解冻VGG16最上方的某几层 卷积层, 再次训练网络, 此步骤可以对VGG16后几层卷积层的参数进行微调; 0084 GPU性能越强, 数据集越大, 可选择解冻的层数越多。 此方法在NVDIA GTX850M或性 能更佳的GPU上可以正常实施。 实验结果显示: 对于指标五, 精度从82提升至83.6, 同时 经过数据增强的。

35、神经网络在即将过拟合时精度与损失波动较小。 0085 实验结果显示: 指标四、 指标六与指标八的识别精度均明显提高。 指标六、 指标八 的对照组的精度仅略高于50, 而指标六、 指标八的实验组的精度能达到75, 精度显著提 高。 尽管指标四的对照组精度达到了65, 但实验组的精度达到了76, 同样得到了显著的 改善。 0086 S5: 基于步骤S4训练得到的模型, 以Dlib库的人脸关键点检测模型作为补充, 进行 面部特征分析, 再根据步骤S1的映射表给出推荐发型的属性; 说明书 6/9 页 10 CN 112015934 A 10 0087 本实施例除指标七外, 其余指标直接基于神经网络训练。

36、得到的模型进行预测。 指 标七判断算法执行步骤为: 选取两只眼睛内测的关键点, 求欧式距离, 在这里记为d1; 选取太阳穴的两个关键点, 求欧氏距离, 记为d2, 求d1与d2之比, 若(d1/d2)0.74,判断眼间 距为宽, 若否则判断为窄; 阈值的模糊范围为0.002, 即(d1/d2)在0.738,0.742之间时, 触发二级判断; 选取眼睛外侧的两点, 分别计算两眼的宽度, 并去平均值, 眼睛宽度记为 d3, 若(d1/d3)1.55, 则判断眼间距宽, 否则判断眼间距窄。 0088 针对本发明规定的八个指标的分类结果得到面部特征的分析结果之后, 再根据步 骤S1的映射表给出推荐发型。

37、的属性。 0089 S6: 建立发型库, 发型库由3D发型模型组成, 并为每个发型进行发型属性的标注; 0090 本实施例将发型属性的标签存储在excel文件中, 发型库包括可推荐给用户的3D 发型模型及其对应的属性, 且发型模型可以方便被Unity 3D模块调用, 发型属性可以方便 被Android客户端检索, 发型库建立的步骤如下: 搜集3D发型模型的素材并存储为相同格 式, 本实施例存储为.fpx格式; 将发型库部署在Unity工程文件中, 并根据入库顺序编号; 在Unity工程文件中添加excel文件, 在excel文件内部根据编号-属性的格式存储各个发 型模型的属性。 0091 S7。

38、: 基于步骤S5得到的推荐发型属性, 在步骤S6建立的发型库中检索, 得到推荐发 型的编号; 0092 发型推荐算法在Python脚本内实现。 具体实现步骤为: 算法根据用户面部信息, 结合面部特征-发型属性的映射关系, 给出推荐发型的标签; 根据相关标签在发型库中检 索标签吻合的发型编号, 发型编号作为结果输出; 0093 S8: 基于Dlib库提取用户面部正面照片关键点坐标, 根据关键点坐标生成用户脸 部3D模型; 具体操作步骤如下: 定位用户面部关键点坐标, 用于生成面部3D模型的关键点 包括两侧眼珠中心, 两侧颧骨, 两侧鼻翼, 两侧嘴角, 两侧颌骨, 下巴尖点; 根据上一步提 取的关。

39、键点坐标调整原始正脸模型, 生成用户面部3D模型; 0094 S9: 在Unity 3D框架下调用步骤S8生成的用户脸部3D模型作为第一组件, 从步骤 S6建立的发型库中调用指定编号的若干发型作为第二组件, 该编号在在步骤S7中获得, 将 第一组件和第二组件进行渲染合成, 生成可供用户选择的3D发型推荐效果展示模型, 具体 步骤为: 0095 搭建3D展示环境, 使推荐结果可以在各个角度下被用户观察, 该展示环境利用 Unity3D为用户提供的3D内容开发引擎, 使用C#脚本编程以及可视化控件编程等内嵌技术, 同时预设了发型在3D空间内贴合头部的效果, 达到点击图标即可自动更换发型的效果; 0。

40、096 在Unity 3D框架下基于图标控件实现发型自由切换, 利用可视化编程使用户可 以通过点击图标控件选择发型标签和切换发型。 用户可以根据推荐的内容选择好发型标 签, 再查看神经网络推荐的发型标签下的几种相似的发型, 对推荐的结果有所不满或希望 查看自己搭配其他发型的结果, 可通过点击其他标签和发型图标方便快捷地实现发型转 换; 0097 MainCamera组件里嵌入脚本程序, 实现手指拖拽旋转视角。 调用touchCount和 GetTouch函数来识别用户是否触摸屏幕以及如何拖拽, 通过Unity引擎提供的Quaternion 定义的一系列函数实现视角的旋转, 在脚本里可以根据用户。

41、反馈对旋转角度范围和旋转灵 说明书 7/9 页 11 CN 112015934 A 11 敏度进行调整, 使得用户旋转视角时能获得一个合理而且流畅的体验, 嵌入该脚本后, 用户 得以从不同角度观察自己搭配发型的效果, 更接近第三人称视角, 从而得到比前置镜头AR 换发或2D贴图换发更好的观察和评估效果; 0098 S10: 接收用户面部图片, 进行用户面部特征分析并获得推荐发型编号, 所述3D发 型推荐效果展示模型进行发型展示效果预览。 0099 本实施例可通过开发安卓客户端并搭建服务器实现, 将步骤S6建立的发型库、 步 骤S9的Unity 3D框架部署于客户端, 在服务器建立数据库存储用户。

42、信息, 视情况可将步骤 S5得到的面部特征分析算法与发型属性推荐算法部署于客户端或服务器, 最后在Java Socket框架下实现客户端与服务器通信, 具体步骤包括: 0100 使用Android Studio作为开发环境, Android Studio提供了集成的Android开 发工具用于开发和调试, 开放用户权限拍照及上传照片; 0101 调用Android Stutio的Chaquopy插件, 将Chaquopy插件嵌入Android项目工程。 Chaquopy插件提供Android与Python脚本的接口, 使Android中央处理模块得以调用Python 脚本依次进行面部特征分析与。

43、发型推荐; 0102 基于Java Socket框架与服务器建立通信, 用于用户数据的上传和用户面部模 型的下载; 0103 用户面部模型下载完成后调用Unity 3D模型实现试发效果展示功能。 0104 在Django框架下搭建服务器, 服务器主要由以下4部分组成:Socket通信模块用 于监听客户端请求并与客户端进行数据交互。 服务器的核心部分基于Django框架实现, Django框架提供成熟的MySQL数据库接口, 方便进行数据库的管理。 部署脸部3D建模算 法, 算法具体实现方法在步骤S8中做了说明在数据库中根据用户名-用户id-用户个人信 息-用户面部特征的格式用于存储用户相关信息。

44、。 0105 如图2所示, 本实施例可根据不同用户的面部特征提供给智能化的定制发型推荐 服务, 并将推荐结果以3D试发模型的形式实现展示预览, 服务智能化, 展示效果逼真形象。 0106 实施例2 0107 本实施例提供一种基于神经网络和Unity的智能发型推荐装置, 包括: 映射表构建 模块、 数据集构建模块、 图像预处理模块、 分类预测模块、 面部特征分析模块、 发型库构建模 块、 发型编号输出模块、 用户脸部3D模型构建模块、 3D发型推荐效果展示模型构建模块和效 果展示模块; 0108 在本实施例中, 映射表构建模块用于收集面部特征与发型属性的映射关系并建立 脸部特征与发型属性映射表,。

45、 将面部特征拆分为多个二分类指标; 0109 在本实施例中, 数据集构建模块用于构建面部特征提取的数据集; 0110 在本实施例中, 图像预处理模块用于根据不同面部特征对数据集内部图片进行不 同的预处理操作, 所述预处理操作采用第一预处理操作、 第二预处理操作或第三预处理操 作; 0111 在本实施例中, 第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键 点提取, 所述第二预处理操作基于Yolo v3网络进行额头检测, 所述第三预处理操作基于数 据增强扩充数据集; 0112 在本实施例中, 分类预测模块用于输入预处理操作后的数据集, 训练对应的神经 说明书 8/9 页 12 CN 11。

46、2015934 A 12 网络, 完成对应面部特征的分类预测; 0113 在本实施例中, 面部特征分析模块用于以人脸关键点检测模型作为补充, 进行面 部特征分析, 再根据脸部特征与发型属性映射表给出推荐发型的属性; 0114 在本实施例中, 发型库构建模块用于建立发型库, 并为每个发型进行发型属性的 标注; 0115 在本实施例中, 发型编号输出模块用于根据所述推荐发型的属性, 在发型库中检 索, 得到推荐发型的编号; 0116 在本实施例中, 用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐 标, 根据关键点坐标生成用户脸部3D模型; 0117 在本实施例中, 3D发型推荐效果展示模。

47、型构建模块用于在Unity 3D框架下调用用 户脸部3D模型作为第一组件, 从建立的发型库中调用指定编号的多个发型作为第二组件, 将第一组件和第二组件进行渲染合成, 生成供用户选择的3D发型推荐效果展示模型; 0118 在本实施例中, 效果展示模块用于接收用户面部图片, 进行用户面部特征分析并 获得推荐发型编号, 所述3D发型推荐效果展示模型进行发型展示效果预览。 0119 实施例3 0120 如图3所示, 本实施例提供一种基于神经网络和Unity的智能发型推荐系统, 设有 实施例2的基于神经网络和Unity的智能发型推荐装置, 还包括: 客户端还设置有UI用户界 面、 Socket客户端通信。

48、模块、 安卓客户端中央控制模块; 服务器端还设有Socket服务器通信 模块、 数据库模块和服务器中央控制模块; 0121 如图4所示, 基于面部特征训练神经网络模型, 实现智能发型推荐算法, 在整体系 统框架中, 面部特征分析和发型推荐过程存储在Python脚本中, UI用户界面是提供用户与 客户端交互的界面, 用于接收用户图片及附加需求, 如 “场合” 、“年龄” 、“风格” ; Socket客户 端通信模块用于将用户图片发送至服务器端, 监听服务器响应, 接收用户脸部3D模型并存 储在本地; 安卓客户端中央控制模块调用UI用户界面接收用户照片及附加要求, 调用 Socket客户端通信模块。

49、发送用户面部照片至服务器, 监听服务器响应, 接收面部3D模型并 存储在本地; 调用面部特征分析模块和发型编号输出模块进行用户面部特征分析并获得推 荐发型编号, 调用3D发型库和效果展示模块实现3D发型推荐效果展示预览。 0122 Socket服务器通信模块, 实现客户端与服务器之间的通信, 用于接收用户图片, 回 传用户脸部3D模型至客户端; 数据库模块用于存储用户个人基本信息与面部特征信息; 0123 服务器中央控制模块调用Socket服务器通信模块与客户端通信, 接收用户照片; 调用用户脸部3D模型构建模块生成用户脸部3D模型; 调用数据库模块存储用户基本信息与 面部特征信息; 调用Socket服务器通信模块回传用户脸部3D模型。 0124 上述实施例为本发明较佳的实施方式, 但本发明的实施方式并不受上述实施例的 限制, 其他的任何未背离本发明的精神实质与原理下所作的改变、 修饰、 替代、 组合、 简化, 均应为等效的置换方式, 都包含在本发明的保护范围之内。 说明书 9/9 页 13 CN 112015934 A 13 图1 说明书附图 1/3 页 14 CN 112015934 A 14 图2 图3 说明书附图 2/3 页 15 CN 112015934 A 15 图4 说明书附图 3/3 页 16 CN 112015934 A 16 。

展开阅读全文
内容关键字: 基于 神经网络 Unity 智能 发型 推荐 方法 装置 系统
关于本文
本文标题:基于神经网络和Unity的智能发型推荐方法、装置及系统.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10230208.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1