CN112015934A - 基于神经网络和Unity的智能发型推荐方法、装置及系统 - Google Patents
基于神经网络和Unity的智能发型推荐方法、装置及系统 Download PDFInfo
- Publication number
- CN112015934A CN112015934A CN202010877588.4A CN202010877588A CN112015934A CN 112015934 A CN112015934 A CN 112015934A CN 202010877588 A CN202010877588 A CN 202010877588A CN 112015934 A CN112015934 A CN 112015934A
- Authority
- CN
- China
- Prior art keywords
- hair style
- face
- model
- neural network
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于神经网络和Unity的智能发型推荐方法、装置及系统,该方法包括下述步骤:建立脸部特征与发型属性映射表;构建数据集;根据不同面部特征对数据集内部图片进行不同的预处理操作;训练对应的神经网络,完成对应面部特征的分类预测;进行面部特征分析,根据映射表给出推荐发型的属性;建立发型库,并为每个发型标注发型属性,在发型库检索得到推荐发型编号;根据关键点坐标生成用户脸部3D模型;用户脸部3D模型与指定编号的多个发型渲染合成3D发型推荐效果展示模型,接收用户面部图片进行发型展示效果预览。本发明实现了为用户提供智能发型推荐服务,并以3D模型的表现形式实现试发效果展示。
Description
技术领域
本发明涉及发型智能推荐技术领域,具体涉及一种基于神经网络和Unity的智能发型推荐方法、装置及系统。
背景技术
在传统方式上,人们考虑发型时,主要通过观看图像、影视资料或者询问造型师等方式,这不仅费时费力,而且效果可能不理想,甚至出现造型被毁而无法恢复的问题。另一方面,社交恐惧人群对传统方式也是难以接受的,原因在于他们无法自如地同造型师沟通或者对在公共场合尝试不同造型有所抵触。而通过手机软件进行个人造型效果的预览和选择,可以让用户自由选择预览效果,既便捷又不需要因为改变发型的不可逆性而承担原造型被毁的风险,同时也能够为社交恐惧者或者类社交恐惧者提供发型设计与选择的平台,因此具有很大的实用意义。
现有市场下的软件如发型屋、ihairstyle、换发型相机等,存在整体效果不真实,部分发型的放置过于突兀等问题。更重要的是,这两类软件只能提供部分素材让用户自己选择,而没有智能推荐适合用户的造型的功能,其展示结果也仅限于用户的正脸,无法展示造型的整体效果,对不熟悉造型设计的用户而言体验效果较差,无法满足其个性化的需求。
现有技术中提供一种基于WebGL和人脸重建的虚拟试发实现方法,该方法存在以下问题:(1)识别率低,该方法将脸型分为心形脸、方形脸、长方形脸、椭圆脸、圆形脸,计划采用卷积神经网络识别脸型。但是判断脸型只需要识别脸部的轮廓,与五官,背景没有任何联系。而将整张图片的所有信息囫囵吞枣地作为卷积神经网络的输入,会给卷积神经网络带来极大的干扰。也就是说神经网络很难“知道”操作者到底希望他识别哪些特征。(2)标准单一。该方法仅根据脸型和发型的映射关系推荐发型,而发型的选择除了与脸型有关,还与额头和中庭的特征有关。(3)便利性差,市场应用前景不明朗。该方法基于WebGL在网页实现虚拟试发的服务。而当今社会人们使用电脑主要的应用在于科研、办公和打游戏,像发型推荐这一类满足实际生活需求的应用基本都是在手机上实现的。因此该方法市场应用前景不明朗。(4)缺乏数据集。该方法计划利用网络爬虫爬取相关数据,制作数据集用于从头开始训练卷积神经网络。然而在实际工程实践中,其可行性并不高。原因在于:1、要训练一个多分类的网络,数据集至少要到万的数量级。而数据集的制作不仅包括爬取照片,还包括剪切人脸一类预处理工作,且需要人为为它们打标签,工作量相当之大且无法保证数据集质量。2、即便数据集制作完成,要让神经网络识别出脸型这种深层特征,从头开始训练神经网络得到的结果依旧不理想。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提供一种基于神经网络和Unity的智能发型推荐方法、装置及系统,实现了为用户提供智能发型推荐服务,并以3D模型的表现形式实现试发效果展示。
为了达到上述目的,本发明采用以下技术方案:
本发明提供一种基于神经网络和Unity的智能发型推荐方法,包括下述步骤:
收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表,将面部特征拆分为多个二分类指标;
构建用于面部特征提取的数据集;
根据不同面部特征对数据集内部图片进行不同的预处理操作,所述预处理操作采用第一预处理操作、第二预处理操作或第三预处理操作;
所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,所述第二预处理操作基于Yolo v3网络进行额头检测,所述第三预处理操作基于数据增强扩充数据集;
输入预处理操作后的数据集,训练对应的神经网络,完成对应面部特征的分类预测;
以人脸关键点检测模型作为补充,进行面部特征分析,再根据脸部特征与发型属性映射表给出推荐发型的属性;
建立发型库,并为每个发型进行发型属性的标注;
根据所述推荐发型的属性,在发型库中检索,得到推荐发型的编号;
提取用户面部正面图片关键点坐标,根据关键点坐标生成用户脸部3D模型;
在Unity 3D框架下调用用户脸部3D模型作为第一组件,从建立的发型库中调用指定编号的多个发型作为第二组件,将第一组件和第二组件进行渲染合成,生成供用户选择的3D发型推荐效果展示模型;
接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
作为优选的技术方案,所述面部特征拆分为多个二分类指标,包括:第一指标、第二指标、第三指标、第四指标、第五指标、第六指标、第七指标和第八指标;
所述第一指标用于区分额头长短,所述第二指标用于区分额头宽窄,所述第三指标用于区分中庭长短,所述第四指标用于区分人脸长短,所述第五指标用于区分人脸宽窄,所述第六指标用于区分颌骨是否突出,所述第七指标用于区分眼间距是否过宽,所述第八指标用于区分是否为椭圆脸。
作为优选的技术方案,所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,并将关键点的坐标集合展平为一维向量,作为训练集。
作为优选的技术方案,所述第二预处理操作基于Yolo v3网络进行额头检测,具体步骤包括:
筛选出数据集内裸露额头的图片组成额头检测器的数据集,并用图片标注软件对图片进行标注;
加载YOLO v3神经网络预训练权重;
经过图像预处理后的数据集在YOLO v3预训练的网络上训练得到额头检测器;
采用训练好的额头检测器裁剪出额头区域,以额头照片作为神经网络的输入。
作为优选的技术方案,所述第三预处理操作基于数据增强扩充数据集,所述数据增强的具体步骤包括:小角度旋转、平面翻转、图片平移、亮度调整和对比度拉伸的图片处理操作。
作为优选的技术方案,所述输入预处理操作后的数据集,训练对应的神经网络,具体步骤包括:
所述第一预处理操作后的数据集基于MLPC多层感知机神经网络模型进行脸部属性预测;
所述第二预处理操作与第三预处理操作后的数据集在VGG16卷积神经网络上进行迁移学习,训练卷积神经网络,具体步骤包括:
删除VGG顶层的分类器和全连接层,在顶层之上级联一层全连接层和分类器;
冻结整个VGG16模型,端到端地训练全连接层和分类器;
分类器训练完成后视显卡性能和数据集大小选择性解冻VGG16最上方的某几层卷积层,再次训练网络,对VGG16后几层卷积层的参数进行微调。
作为优选的技术方案,所述生成供用户选择的3D发型推荐效果展示模型,具体步骤包括:
搭建3D展示环境,同时预设了发型在3D空间内贴合头部的效果;
在Unity 3D框架下基于图标控件实现发型自由切换;
在MainCamera组件里嵌入脚本程序,实现手指拖拽旋转视角。
本发明还提供一种基于神经网络和Unity的智能发型推荐装置,包括:映射表构建模块、数据集构建模块、图像预处理模块、分类预测模块、面部特征分析模块、发型库构建模块、发型编号输出模块、用户脸部3D模型构建模块、3D发型推荐效果展示模型构建模块和效果展示模块;
所述映射表构建模块用于收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表,将面部特征拆分为多个二分类指标;
所述数据集构建模块用于构建面部特征提取的数据集;
所述图像预处理模块用于根据不同面部特征对数据集内部图片进行不同的预处理操作,所述预处理操作采用第一预处理操作、第二预处理操作或第三预处理操作;
所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,所述第二预处理操作基于Yolo v3网络进行额头检测,所述第三预处理操作基于数据增强扩充数据集;
所述分类预测模块用于输入预处理操作后的数据集,训练对应的神经网络,完成对应面部特征的分类预测;
所述面部特征分析模块用于以人脸关键点检测模型作为补充,进行面部特征分析,再根据脸部特征与发型属性映射表给出推荐发型的属性;
所述发型库构建模块用于建立发型库,并为每个发型进行发型属性的标注;
所述发型编号输出模块用于根据所述推荐发型的属性,在发型库中检索,得到推荐发型的编号;
所述用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐标,根据关键点坐标生成用户脸部3D模型;
所述3D发型推荐效果展示模型构建模块用于在Unity 3D框架下调用用户脸部3D模型作为第一组件,从建立的发型库中调用指定编号的多个发型作为第二组件,将第一组件和第二组件进行渲染合成,生成供用户选择的3D发型推荐效果展示模型;
所述效果展示模块用于接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
本发明还提供一种基于神经网络和Unity的智能发型推荐系统,设有上述基于神经网络和Unity的智能发型推荐装置,还包括:UI用户界面、Socket客户端通信模块和Socket服务器端通信模块;
所述UI用户界面用于接收用户图片及附加需求;
所述Socket客户端通信模块用于将用户图片发送至服务器端,监听服务器响应,接收用户脸部3D模型并存储在本地;
所述Socket服务器端通信模块用于接收用户图片,回传用户脸部3D模型至客户端。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明实现了为用户提供智能发型推荐服务,并以3D模型的表现形式实现试发效果展示;同时本发明针对不同的面部特征提出了不同的数据预处理方法和神经网络训练的方法,在相同的数据集上得以达到更好预测效果,最后,本发明基于Unity 3D框架实现3D发型推荐效果展示,效果生动逼真,具有较高的实用性。
附图说明
图1为本实施例1基于神经网络和Unity的智能发型推荐方法的流程示意图;
图2为本实施例1的3D试发效果示意图;
图3为本实施例3基于神经网络和Unity的智能发型推荐系统的结构框图;
图4为本实施例3智能发型推荐算法实现框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本实施例提供一种基于神经网络和Unity的智能发型推荐方法,包括下述步骤:
S1:收集面部特征与发型属性的映射关系并建立脸部特征-发型属性映射表;
本实施例将用户面部特征拆分为8个二分类指标。它们分别为:指标一—额头长短、指标二—额头宽窄、指标三—中庭长短、指标四—人脸长短、指标五—人脸宽窄、指标六—颌骨是否突出、指标七—眼间距是否过宽、指标八—是否为椭圆脸。本实施例面部特征与发型的对应关系如下表1所示,针对不同的面部特征有不同的数据处理方式,并使用不同的神经网络架构进行网络训练。
表1脸部特征-发型属性映射关系表
S2:根据所需面部特征,在CelebA数据集中挑选并以爬虫下载图片为补充,建立用于面部特征提取数据集,其中,组成数据集图片的标准是:正脸、无遮挡,挑选完成的数据集作为训练集;
S3:根据不同面部特征对数据集内部图片进行不同的预处理操作,以达到更佳的面部特征提取效果,涉及到的预处理操作有:
第一预处理操作、基于Dlib库的人脸关键点检测模型进行面部边缘轮廓关键点提取,Dilb库提供开源的人脸68个关键位置关键点检测模型。其中编号1至编号17的总共17个点表示从左侧太阳穴至右侧太阳穴的关键坐标位置,因此本实施例提出调用Dlib库提供的检测模型提取面部边缘轮廓的17个关键点,并将关键点的坐标的集合作为指标六和指标八的数据集;
面向指标四、指标六、指标八,提取脸部面部边缘轮廓关键点,操作步骤包括:用Dlib库提取面部边缘轮廓的关键点;将关键点的坐标集合展平为一维向量;以上步骤得到的一维向量作为神经网络训练的输入;
第二预处理操作、基于Yolo v3网络实现额头检测,具体训练步骤如下:
①筛选出数据集内裸露额头的图片组成额头检测器的数据集,并用图片标注软件为图片进行标注,并将数据集转化为YOLO v3网络需要的;
②加载YOLO v3神经网络预训练权重;
③用步骤①制作的数据集在YOLO v3预训练的网络上训练额头检测器;
面向指标一、指标二,基于YOLO v3神经网络训练额头检测器,用训练好的额头检测器模型对数据集进行预处理,将额头区域裁剪出来,再单独以额头的照片作为数据集,以额头照片作为神经网络的输入。
第三预处理操作、基于数据增强技术扩充数据集,具体步骤包括:
面向指标三、指标五,基于数据增强实现扩充数据集的功能、提高训练精度和模型的泛化能力,具体操作包括小角度旋转、平面翻转、图片平移、亮度调整和对比度拉伸等不改变指标三、指标五图片语义的图片处理操作;
S4:在步骤S3的基础上,第一预处理操作得到的数据基于MLPC多层感知机神经网络模型进行脸部属性预测;
在预处理得到的数据集的基础上,基于多层感知机进行训练,实现对指标四、指标六、指标八的分类预测,具体操作为:得到的向量的集合作为多层感知机的输入;
将第二预处理操作或第三预处理操作得到的数据集在VGG16卷积神经网络上进行迁移学习,训练卷积神经网络,实现对指标一、指标二、指标三、指标五的分类预测,基于VGG16卷积神经网络进行迁移学习具体操作步骤如下:
①删除VGG顶层的分类器和全连接层,在顶层之上级联一层全连接层和分类器;
②冻结整个VGG16模型,端到端地训练全连接层和分类器;
③分类器训练完成后视显卡性能和数据集大小选择性解冻VGG16最上方的某几层卷积层,再次训练网络,此步骤可以对VGG16后几层卷积层的参数进行微调;
GPU性能越强,数据集越大,可选择解冻的层数越多。此方法在NVDIA GTX850M或性能更佳的GPU上可以正常实施。实验结果显示:对于指标五,精度从82%提升至83.6%,同时经过数据增强的神经网络在即将过拟合时精度与损失波动较小。
实验结果显示:指标四、指标六与指标八的识别精度均明显提高。指标六、指标八的对照组的精度仅略高于50%,而指标六、指标八的实验组的精度能达到75%,精度显著提高。尽管指标四的对照组精度达到了65%,但实验组的精度达到了76%,同样得到了显著的改善。
S5:基于步骤S4训练得到的模型,以Dlib库的人脸关键点检测模型作为补充,进行面部特征分析,再根据步骤S1的映射表给出推荐发型的属性;
本实施例除指标七外,其余指标直接基于神经网络训练得到的模型进行预测。指标七判断算法执行步骤为:①选取两只眼睛内测的关键点,求欧式距离,在这里记为d1;②选取太阳穴的两个关键点,求欧氏距离,记为d2,求d1与d2之比,若(d1/d2)>0.74,判断眼间距为宽,若否则判断为窄;③阈值的模糊范围为0.002,即(d1/d2)在[0.738,0.742]之间时,触发二级判断;④选取眼睛外侧的两点,分别计算两眼的宽度,并去平均值,眼睛宽度记为d3,若(d1/d3)>1.55,则判断眼间距宽,否则判断眼间距窄。
针对本发明规定的八个指标的分类结果得到面部特征的分析结果之后,再根据步骤S1的映射表给出推荐发型的属性。
S6:建立发型库,发型库由3D发型模型组成,并为每个发型进行发型属性的标注;
本实施例将发型属性的标签存储在excel文件中,发型库包括可推荐给用户的3D发型模型及其对应的属性,且发型模型可以方便被Unity 3D模块调用,发型属性可以方便被Android客户端检索,发型库建立的步骤如下:①搜集3D发型模型的素材并存储为相同格式,本实施例存储为.fpx格式;②将发型库部署在Unity工程文件中,并根据入库顺序编号;③在Unity工程文件中添加excel文件,在excel文件内部根据编号-属性的格式存储各个发型模型的属性。
S7:基于步骤S5得到的推荐发型属性,在步骤S6建立的发型库中检索,得到推荐发型的编号;
发型推荐算法在Python脚本内实现。具体实现步骤为:①算法根据用户面部信息,结合面部特征-发型属性的映射关系,给出推荐发型的标签;②根据相关标签在发型库中检索标签吻合的发型编号,发型编号作为结果输出;
S8:基于Dlib库提取用户面部正面照片关键点坐标,根据关键点坐标生成用户脸部3D模型;具体操作步骤如下:①定位用户面部关键点坐标,用于生成面部3D模型的关键点包括两侧眼珠中心,两侧颧骨,两侧鼻翼,两侧嘴角,两侧颌骨,下巴尖点;②根据上一步提取的关键点坐标调整原始正脸模型,生成用户面部3D模型;
S9:在Unity 3D框架下调用步骤S8生成的用户脸部3D模型作为第一组件,从步骤S6建立的发型库中调用指定编号的若干发型作为第二组件,该编号在在步骤S7中获得,将第一组件和第二组件进行渲染合成,生成可供用户选择的3D发型推荐效果展示模型,具体步骤为:
①搭建3D展示环境,使推荐结果可以在各个角度下被用户观察,该展示环境利用Unity3D为用户提供的3D内容开发引擎,使用C#脚本编程以及可视化控件编程等内嵌技术,同时预设了发型在3D空间内贴合头部的效果,达到点击图标即可自动更换发型的效果;
②在Unity 3D框架下基于图标控件实现发型自由切换,利用可视化编程使用户可以通过点击图标控件选择发型标签和切换发型。用户可以根据推荐的内容选择好发型标签,再查看神经网络推荐的发型标签下的几种相似的发型,对推荐的结果有所不满或希望查看自己搭配其他发型的结果,可通过点击其他标签和发型图标方便快捷地实现发型转换;
③MainCamera组件里嵌入脚本程序,实现手指拖拽旋转视角。调用touchCount和GetTouch函数来识别用户是否触摸屏幕以及如何拖拽,通过Unity引擎提供的Quaternion定义的一系列函数实现视角的旋转,在脚本里可以根据用户反馈对旋转角度范围和旋转灵敏度进行调整,使得用户旋转视角时能获得一个合理而且流畅的体验,嵌入该脚本后,用户得以从不同角度观察自己搭配发型的效果,更接近第三人称视角,从而得到比前置镜头AR换发或2D贴图换发更好的观察和评估效果;
S10:接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
本实施例可通过开发安卓客户端并搭建服务器实现,将步骤S6建立的发型库、步骤S9的Unity 3D框架部署于客户端,在服务器建立数据库存储用户信息,视情况可将步骤S5得到的面部特征分析算法与发型属性推荐算法部署于客户端或服务器,最后在JavaSocket框架下实现客户端与服务器通信,具体步骤包括:
①使用Android Studio作为开发环境,Android Studio提供了集成的Android开发工具用于开发和调试,开放用户权限拍照及上传照片;
②调用Android Stutio的Chaquopy插件,将Chaquopy插件嵌入Android项目工程。Chaquopy插件提供Android与Python脚本的接口,使Android中央处理模块得以调用Python脚本依次进行面部特征分析与发型推荐;
③基于Java Socket框架与服务器建立通信,用于用户数据的上传和用户面部模型的下载;
④用户面部模型下载完成后调用Unity 3D模型实现试发效果展示功能。
在Django框架下搭建服务器,服务器主要由以下4部分组成:①Socket通信模块用于监听客户端请求并与客户端进行数据交互。②服务器的核心部分基于Django框架实现,Django框架提供成熟的MySQL数据库接口,方便进行数据库的管理。③部署脸部3D建模算法,算法具体实现方法在步骤S8中做了说明④在数据库中根据用户名-用户id-用户个人信息-用户面部特征的格式用于存储用户相关信息。
如图2所示,本实施例可根据不同用户的面部特征提供给智能化的定制发型推荐服务,并将推荐结果以3D试发模型的形式实现展示预览,服务智能化,展示效果逼真形象。
实施例2
本实施例提供一种基于神经网络和Unity的智能发型推荐装置,包括:映射表构建模块、数据集构建模块、图像预处理模块、分类预测模块、面部特征分析模块、发型库构建模块、发型编号输出模块、用户脸部3D模型构建模块、3D发型推荐效果展示模型构建模块和效果展示模块;
在本实施例中,映射表构建模块用于收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表,将面部特征拆分为多个二分类指标;
在本实施例中,数据集构建模块用于构建面部特征提取的数据集;
在本实施例中,图像预处理模块用于根据不同面部特征对数据集内部图片进行不同的预处理操作,所述预处理操作采用第一预处理操作、第二预处理操作或第三预处理操作;
在本实施例中,第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,所述第二预处理操作基于Yolo v3网络进行额头检测,所述第三预处理操作基于数据增强扩充数据集;
在本实施例中,分类预测模块用于输入预处理操作后的数据集,训练对应的神经网络,完成对应面部特征的分类预测;
在本实施例中,面部特征分析模块用于以人脸关键点检测模型作为补充,进行面部特征分析,再根据脸部特征与发型属性映射表给出推荐发型的属性;
在本实施例中,发型库构建模块用于建立发型库,并为每个发型进行发型属性的标注;
在本实施例中,发型编号输出模块用于根据所述推荐发型的属性,在发型库中检索,得到推荐发型的编号;
在本实施例中,用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐标,根据关键点坐标生成用户脸部3D模型;
在本实施例中,3D发型推荐效果展示模型构建模块用于在Unity 3D框架下调用用户脸部3D模型作为第一组件,从建立的发型库中调用指定编号的多个发型作为第二组件,将第一组件和第二组件进行渲染合成,生成供用户选择的3D发型推荐效果展示模型;
在本实施例中,效果展示模块用于接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
实施例3
如图3所示,本实施例提供一种基于神经网络和Unity的智能发型推荐系统,设有实施例2的基于神经网络和Unity的智能发型推荐装置,还包括:客户端还设置有UI用户界面、Socket客户端通信模块、安卓客户端中央控制模块;服务器端还设有Socket服务器通信模块、数据库模块和服务器中央控制模块;
如图4所示,基于面部特征训练神经网络模型,实现智能发型推荐算法,在整体系统框架中,面部特征分析和发型推荐过程存储在Python脚本中,UI用户界面是提供用户与客户端交互的界面,用于接收用户图片及附加需求,如“场合”、“年龄”、“风格”;Socket客户端通信模块用于将用户图片发送至服务器端,监听服务器响应,接收用户脸部3D模型并存储在本地;安卓客户端中央控制模块调用UI用户界面接收用户照片及附加要求,调用Socket客户端通信模块发送用户面部照片至服务器,监听服务器响应,接收面部3D模型并存储在本地;调用面部特征分析模块和发型编号输出模块进行用户面部特征分析并获得推荐发型编号,调用3D发型库和效果展示模块实现3D发型推荐效果展示预览。
Socket服务器通信模块,实现客户端与服务器之间的通信,用于接收用户图片,回传用户脸部3D模型至客户端;数据库模块用于存储用户个人基本信息与面部特征信息;
服务器中央控制模块调用Socket服务器通信模块与客户端通信,接收用户照片;调用用户脸部3D模型构建模块生成用户脸部3D模型;调用数据库模块存储用户基本信息与面部特征信息;调用Socket服务器通信模块回传用户脸部3D模型。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种基于神经网络和Unity的智能发型推荐方法,其特征在于,包括下述步骤:
收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表,将面部特征拆分为多个二分类指标;
构建用于面部特征提取的数据集;
根据不同面部特征对数据集内部图片进行不同的预处理操作,所述预处理操作采用第一预处理操作、第二预处理操作或第三预处理操作;
所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,所述第二预处理操作基于Yolo v3网络进行额头检测,所述第三预处理操作基于数据增强扩充数据集;
输入预处理操作后的数据集,训练对应的神经网络,完成对应面部特征的分类预测;
以人脸关键点检测模型作为补充,进行面部特征分析,再根据脸部特征与发型属性映射表给出推荐发型的属性;
建立发型库,并为每个发型进行发型属性的标注;
根据所述推荐发型的属性,在发型库中检索,得到推荐发型的编号;
提取用户面部正面图片关键点坐标,根据关键点坐标生成用户脸部3D模型;
在Unity 3D框架下调用用户脸部3D模型作为第一组件,从建立的发型库中调用指定编号的多个发型作为第二组件,将第一组件和第二组件进行渲染合成,生成供用户选择的3D发型推荐效果展示模型;
接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
2.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述面部特征拆分为多个二分类指标,包括:第一指标、第二指标、第三指标、第四指标、第五指标、第六指标、第七指标和第八指标;
所述第一指标用于区分额头长短,所述第二指标用于区分额头宽窄,所述第三指标用于区分中庭长短,所述第四指标用于区分人脸长短,所述第五指标用于区分人脸宽窄,所述第六指标用于区分颌骨是否突出,所述第七指标用于区分眼间距是否过宽,所述第八指标用于区分是否为椭圆脸。
3.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,并将关键点的坐标集合展平为一维向量,作为训练集。
4.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述第二预处理操作基于Yolo v3网络进行额头检测,具体步骤包括:
筛选出数据集内裸露额头的图片组成额头检测器的数据集,并用图片标注软件对图片进行标注;
加载YOLO v3神经网络预训练权重;
经过图像预处理后的数据集在YOLO v3预训练的网络上训练得到额头检测器;
采用训练好的额头检测器裁剪出额头区域,以额头照片作为神经网络的输入。
5.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述第三预处理操作基于数据增强扩充数据集,所述数据增强的具体步骤包括:小角度旋转、平面翻转、图片平移、亮度调整和对比度拉伸的图片处理操作。
6.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述输入预处理操作后的数据集,训练对应的神经网络,具体步骤包括:
所述第一预处理操作后的数据集基于MLPC多层感知机神经网络模型进行脸部属性预测;
所述第二预处理操作与第三预处理操作后的数据集在VGG16卷积神经网络上进行迁移学习,训练卷积神经网络,具体步骤包括:
删除VGG顶层的分类器和全连接层,在顶层之上级联一层全连接层和分类器;
冻结整个VGG16模型,端到端地训练全连接层和分类器;
分类器训练完成后视显卡性能和数据集大小选择性解冻VGG16最上方的某几层卷积层,再次训练网络,对VGG16后几层卷积层的参数进行微调。
7.根据权利要求1所述的基于神经网络和Unity的智能发型推荐方法,其特征在于,所述生成供用户选择的3D发型推荐效果展示模型,具体步骤包括:
搭建3D展示环境,同时预设了发型在3D空间内贴合头部的效果;
在Unity 3D框架下基于图标控件实现发型自由切换;
在MainCamera组件里嵌入脚本程序,实现手指拖拽旋转视角。
8.一种基于神经网络和Unity的智能发型推荐装置,其特征在于,包括:映射表构建模块、数据集构建模块、图像预处理模块、分类预测模块、面部特征分析模块、发型库构建模块、发型编号输出模块、用户脸部3D模型构建模块、3D发型推荐效果展示模型构建模块和效果展示模块;
所述映射表构建模块用于收集面部特征与发型属性的映射关系并建立脸部特征与发型属性映射表,将面部特征拆分为多个二分类指标;
所述数据集构建模块用于构建面部特征提取的数据集;
所述图像预处理模块用于根据不同面部特征对数据集内部图片进行不同的预处理操作,所述预处理操作采用第一预处理操作、第二预处理操作或第三预处理操作;
所述第一预处理操作基于人脸关键点检测模型进行面部边缘轮廓关键点提取,所述第二预处理操作基于Yolo v3网络进行额头检测,所述第三预处理操作基于数据增强扩充数据集;
所述分类预测模块用于输入预处理操作后的数据集,训练对应的神经网络,完成对应面部特征的分类预测;
所述面部特征分析模块用于以人脸关键点检测模型作为补充,进行面部特征分析,再根据脸部特征与发型属性映射表给出推荐发型的属性;
所述发型库构建模块用于建立发型库,并为每个发型进行发型属性的标注;
所述发型编号输出模块用于根据所述推荐发型的属性,在发型库中检索,得到推荐发型的编号;
所述用户脸部3D模型构建模块用于提取用户面部正面图片关键点坐标,根据关键点坐标生成用户脸部3D模型;
所述3D发型推荐效果展示模型构建模块用于在Unity 3D框架下调用用户脸部3D模型作为第一组件,从建立的发型库中调用指定编号的多个发型作为第二组件,将第一组件和第二组件进行渲染合成,生成供用户选择的3D发型推荐效果展示模型;
所述效果展示模块用于接收用户面部图片,进行用户面部特征分析并获得推荐发型编号,所述3D发型推荐效果展示模型进行发型展示效果预览。
9.一种基于神经网络和Unity的智能发型推荐系统,其特征在于,设有权利要求8所述的基于神经网络和Unity的智能发型推荐装置,还包括:UI用户界面、Socket客户端通信模块和Socket服务器端通信模块;
所述UI用户界面用于接收用户图片及附加需求;
所述Socket客户端通信模块用于将用户图片发送至服务器端,监听服务器响应,接收用户脸部3D模型并存储在本地;
所述Socket服务器端通信模块用于接收用户图片,回传用户脸部3D模型至客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010877588.4A CN112015934B (zh) | 2020-08-27 | 2020-08-27 | 基于神经网络和Unity的智能发型推荐方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010877588.4A CN112015934B (zh) | 2020-08-27 | 2020-08-27 | 基于神经网络和Unity的智能发型推荐方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015934A true CN112015934A (zh) | 2020-12-01 |
CN112015934B CN112015934B (zh) | 2022-07-26 |
Family
ID=73503477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010877588.4A Active CN112015934B (zh) | 2020-08-27 | 2020-08-27 | 基于神经网络和Unity的智能发型推荐方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015934B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785500A (zh) * | 2021-01-15 | 2021-05-11 | 京东方科技集团股份有限公司 | 发型的预览方法、存储介质及电子设备 |
CN112859907A (zh) * | 2020-12-25 | 2021-05-28 | 湖北航天飞行器研究所 | 少样本条件下基于三维特效仿真的火箭残骸高空检测方法 |
CN112906585A (zh) * | 2021-02-25 | 2021-06-04 | 商楚苘 | 基于机器学习的智能化理发辅助系统、方法和可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6333985B1 (en) * | 1997-08-12 | 2001-12-25 | Shiseido Co., Ltd. | Method for selecting suitable hair-style and image-map for hair-style |
CN103489219A (zh) * | 2013-09-18 | 2014-01-01 | 华南理工大学 | 基于深度图像分析的3d发型效果仿真系统 |
CN108305146A (zh) * | 2018-01-30 | 2018-07-20 | 杨太立 | 一种基于图像识别的发型推荐方法及系统 |
CN109671142A (zh) * | 2018-11-23 | 2019-04-23 | 南京图玩智能科技有限公司 | 一种智能美妆方法及智能美妆镜 |
CN109993838A (zh) * | 2019-03-25 | 2019-07-09 | 河海大学常州校区 | 基于WebGL和人脸重建的虚拟试发实现方法和系统 |
CN110598097A (zh) * | 2019-08-30 | 2019-12-20 | 中国科学院自动化研究所南京人工智能芯片创新研究院 | 一种基于cnn的发型推荐系统、方法、设备及存储介质 |
-
2020
- 2020-08-27 CN CN202010877588.4A patent/CN112015934B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6333985B1 (en) * | 1997-08-12 | 2001-12-25 | Shiseido Co., Ltd. | Method for selecting suitable hair-style and image-map for hair-style |
CN103489219A (zh) * | 2013-09-18 | 2014-01-01 | 华南理工大学 | 基于深度图像分析的3d发型效果仿真系统 |
CN108305146A (zh) * | 2018-01-30 | 2018-07-20 | 杨太立 | 一种基于图像识别的发型推荐方法及系统 |
CN109671142A (zh) * | 2018-11-23 | 2019-04-23 | 南京图玩智能科技有限公司 | 一种智能美妆方法及智能美妆镜 |
CN109993838A (zh) * | 2019-03-25 | 2019-07-09 | 河海大学常州校区 | 基于WebGL和人脸重建的虚拟试发实现方法和系统 |
CN110598097A (zh) * | 2019-08-30 | 2019-12-20 | 中国科学院自动化研究所南京人工智能芯片创新研究院 | 一种基于cnn的发型推荐系统、方法、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
ZHIXIN LIANG ET AL: ""Research on the Personalized Recommendation Algorithm for Hairdressers "", 《SCIRES》 * |
张帅等: ""基于协同过滤的发型推荐算法"", 《现代计算机》 * |
邹晓等: ""基于移动平台的三维虚拟试发型系统实现及应用"", 《图学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112859907A (zh) * | 2020-12-25 | 2021-05-28 | 湖北航天飞行器研究所 | 少样本条件下基于三维特效仿真的火箭残骸高空检测方法 |
CN112785500A (zh) * | 2021-01-15 | 2021-05-11 | 京东方科技集团股份有限公司 | 发型的预览方法、存储介质及电子设备 |
CN112906585A (zh) * | 2021-02-25 | 2021-06-04 | 商楚苘 | 基于机器学习的智能化理发辅助系统、方法和可读介质 |
CN112906585B (zh) * | 2021-02-25 | 2022-08-23 | 商楚苘 | 基于机器学习的智能化理发辅助系统、方法和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112015934B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015934B (zh) | 基于神经网络和Unity的智能发型推荐方法、装置及系统 | |
CN111652121B (zh) | 一种表情迁移模型的训练方法、表情迁移的方法及装置 | |
WO2021184933A1 (zh) | 一种人体三维模型重建方法 | |
WO2020244373A1 (zh) | 基于人工智能的图像识别方法以及相关装置 | |
CN112990054B (zh) | 紧凑的无语言面部表情嵌入和新颖三元组的训练方案 | |
WO2020010979A1 (zh) | 手部关键点的识别模型训练方法、识别方法及设备 | |
CN105354248B (zh) | 基于灰度的分布式图像底层特征识别方法及系统 | |
CN112037320B (zh) | 一种图像处理方法、装置、设备以及计算机可读存储介质 | |
CN108961369A (zh) | 生成3d动画的方法和装置 | |
CN109978754A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN108885794A (zh) | 在用户的真实人体模型上虚拟试穿衣服 | |
US20220237812A1 (en) | Item display method, apparatus, and device, and storage medium | |
CN105426850A (zh) | 一种基于人脸识别的关联信息推送设备及方法 | |
CN111783620A (zh) | 表情识别方法、装置、设备及存储介质 | |
US11574392B2 (en) | Automatically merging people and objects from multiple digital images to generate a composite digital image | |
CN113569614A (zh) | 虚拟形象生成方法、装置、设备及存储介质 | |
US20230095182A1 (en) | Method and apparatus for extracting biological features, device, medium, and program product | |
CN108537126A (zh) | 一种人脸图像处理系统及方法 | |
CN111582342A (zh) | 一种图像识别方法、装置、设备以及可读存储介质 | |
CN111739027A (zh) | 一种图像处理方法、装置、设备及可读存储介质 | |
CN111062260B (zh) | 一种面部整容推荐方案自动生成方法 | |
CN116097320A (zh) | 用于改进的面部属性分类的系统和方法及其用途 | |
CN109271930A (zh) | 微表情识别方法、装置与存储介质 | |
CN108701355A (zh) | Gpu优化和在线基于单高斯的皮肤似然估计 | |
CN108492301A (zh) | 一种场景分割方法、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |