人脸素描属性识别:深度学习模型探索与性能评估

人脸素描属性识别:深度学习模型探索与性能评估

github代码:https://github.com/linkcao/FS2K_extract
FS2K数据集:https://github.com/DengPingFan/FS2K

项目概述


本项目需要根据FS2K数据集进行训练和测试,实现输入一张人脸图片(真实图片或者素描图片),输入该图片的属性特征信息,提取属性特征包括hair(有无头发)、hair_color(头发颜色)、gender(图像人物性别)、earring(是否有耳环)、smile(是否微笑)、frontal_face(是否歪脖)、style(图片风格),详细信息均可通过FS2K的anno_train.jsonanno_test.json获取,本质是一个多标签分类问题。

  • 本文探索了三种深度学习模型:VGG16、ResNet18和DenseNet121在该任务下的性能表现。
  • 实验数据集FS2K数据集与实验结果均可在所给github仓库中获取,其中photo代表原图,Sketch代表素描图,数据集如下图所示:
    在这里插入图片描述

处理方案

​ 首先对于FS2K数据集用官方的数据划分程序进行划分,之后对划分后的数据进行预处理,统一图片后缀为jpg,之后自定义数据加载类,在数据加载过程中进行标签编码,对图片大小进行统一,并转成tensor,在处理过程中发现存在4个通道的图片,本文采取取前3个通道的方案,之后再对图像进行标准化,可以加快模型的收敛,处理完成的数据作为模型的输入,在深度学习模型方面,首先需要进行模型选择,本文使用了三个模型,分别为VGG16,ResNet121以及DenseNet121,在通过pytorch预训练模型进行加载,并修改模型输出层,输出数量为图片属性特征数,之后在设定模型训练的参数,包括Batch,学习率,epoch等,在每一轮训练完成后,都需要对预测出的特征进行处理,在二分类标签设定概率阈值,多分类标签特征列则进行最大概率类别组合,取预测概率最大的类别作为当前属性的预测结果,每一轮训练都在测试集上进行性能评估,并根据F1指标择优保存模型。训练完成后,在测试集上预测属性提取结果,对每一个属性进行性能评估,最后取平均,得到平均的性能指标。

整体的处理流程如下图所示:

在这里插入图片描述

数据预处理

  1. 数据划分: 根据FS2K官方给出的数据划分得到训练集和测试集
  2. 图片统一后缀和通道数: 统一图片后缀为jpg,通道数为3
  3. 统一图片大小:所给数据集分为三个文件夹,每个文件夹图片的像素各不相同,分别为250*250、475 *340、223 *318,这里统一变换成256 * 256,便于后序处理
  4. 转换为Tensor: 我们将图片数据转换为PyTorch的Tensor格式
  5. 图像标准化:逐channel的对图像进行标准化,可以加快模型的收敛

标签编码

  1. 二分类标签编码: 对于二分类属性(如hairearring等),我们将标签编码为0和1
  2. 多分类标签编码: 对于多分类属性&#x
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值