欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 201811317143X
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于密集网络的多任务卷积神经网络顾客行为分析方法,含有以下步骤:(1)清洗数据:

步骤11:除去训练集中带大量马赛克的图片;

使用BOT2018新零售技术挑战赛的数据集,共有5000张图片,其中含有对应的标注JSON文件,与图片一一对应;使用9:1的分类方式,将5000张图片分成两份,一份是训练集,一份是测试集,训练集共有图片4500张,测试集共有图片500张;

步骤12:除去训练集中模糊行人;

本次数据集包含的标注含有以下部分,人物坐标(xmin,ymin,xmax,ymax),性别,职位(顾客导购),姿势(站坐),是否玩手机;需要对dataloader进行如下修改;对ImageDataset类进行多属性读取,设置变量position1存储xmin,ymin,设置变量position2存储xmax,ymax,设置变量gender,staff,customer,stand,sit,phone分别与其对应;将切割后的行人图片与属性相对应搭配起来;

(2)构建密集网络多任务卷积神经网络;

步骤21:构建Dense_Block结构;

Dense_Block是由于想增加信息的流动提出来的一个模块,用于处理多个特征图信息输入,并输出适合的信息;

一开始的Dense_Block采用的是一个BN层,接着一个ReLU层和一个3*3的卷积层;其中BN层和ReLu层是用来增加模型的科学习程度的,减少梯度消失等神经网络常用的问题,3*3卷积层是用来提取特征,并输出特征图的;

由于多个特征图信息输入可能会带来输入维度过大的问题,需要在3*3卷积层前加入

1*1卷积层作为Bottleneck_layer,减少输入维度;

步骤22:构建Transition_Layer模块;

Transition_Layer模块的作用是做卷积操作和降采样操作;其中,这些模块加入到两个Dense_Block模块之间作为改变特征图大小的方法;

Transition_Layer模块包括如下两个部分,首先是一个BN层,接着是一个1*1的卷积层和一个2*2的平均池化层;

步骤23:构建特征提取模块;

利用步骤21、步骤22的Bottleneck模块搭建轻量化的特征提取模块:首先,对于输入大小为224*224的图像,第一层conv1是一个卷积核大小为7*7,步长为

2,输出大小为112*112的特征图;之后是一个3*3的卷积层,步长为2,输出大小为56*56的特征图;

第二层是一个Dense_Block模块,其中是由Dense_Block堆叠而成;总共包含6个Dense_Block模块;输出特征图大小为56*56;

第三层是一个Transition_Layer模块,其中先经过1*1卷积层,输出特征图大小为56*

56,之后经过一个2*2的平均池化层,步长为2;输出特征图大小为28*28;

第四层由12个Dense_Block模块组合得到,其中输出特征图大小为28*28;

第五层由一个Transition_Layer组成,其中先经过1*1卷积层,输出特征图大小为28*

28,之后经过一个2*2的平均池化层,步长为2;输出特征图大小为14*14;

第六层由24个Dense_Block模块组合得到,其中输出特征图大小为14*14;

第七层由一个Transition_Layer组成,其中先经过1*1卷积层,输出特征图大小为14*

14,之后经过一个2*2的平均池化层,步长为2;输出特征图大小为7*7;

第八层由16个Dense_Block模块组合得到,其中输出特征图大小为7*7;

最后得到一个维度为1024的特征向量,该向量作为网络提取的图像特征供步骤24使用;

步骤24:构建多任务卷积神经网络;

在步骤23提取特征之后加入6个并行的全连接层,6个全连接层连接在步骤23所得到的特征向量上,彼此间互不相连;其中每个全连接层包含两个分类,分别为男性/女性,是/否导购,是/否顾客,是/否站姿,是/否坐姿,是/否玩手机;两个分类用来表示属性的置信度;

最后对这6个全连接层采用6个Cross Entropy Loss损失函数进行约束,公式如下:通过6个全连接层计算得到的损失值分别记为:L1,L2,L3,L4,L5,L6最终得到的损失值为:Loss=L1+L2+L3+L4+L5+L6       (2)(3)训练密集网络多任务卷积神经网络:

步骤31:数据预处理:

首先将需要将数据进行处理,由于数据的不平衡性,需要对数据进行数据增强;首先是转换成224*224的大小,再接着使用随机水平翻转,最后转化为Tensor之后进行一个标准化处理;

步骤32:预训练模型:

加载步骤(2)构建的卷积神经网络,采用Adam优化算法,根据6个损失值之和进行反向传播,优化神经网络里面的参数;预训练中每个批次大小为64,学习率为0.001,总共训练60个epoch;

步骤33:微调模型:

从步骤32中加载在测试集中精度最高的模型,调整学习率为0.0005,并采用权重衰减

1e-6,继续利用Adam算法继续训练40个epoch。