[论文复现]A Richly Annotated Dataset for Pedestrian Attribute Recognition

[论文复现]A Richly Annotated Dataset for Pedestrian Attribute Recognition
整体介绍
复现了一篇行人识别的论文

数据集介绍

实验中采用peta数据集进行模型训练和测试。peta数据集存于./dataset/peta中。由于数据集有19000张图片,过于庞大,所以提交文件中只有数据集标注的文件。

从数据集标注文件中来看,将19000张图片按5:1:4分成训练集、验证集和测试集。每个数据包含了105 个特征,但有的特征出现次数太少,即使采用加权交叉熵损失函数也不太适合,所以在训练时只选取了其中35个特征。数据集详细介绍参见./dataset/peta/README.

主要运行环境

python2.7+pytorch1.4

模型构建

主要采用论文中提到的deepmar模型。但论文中用的backbone是CaffeNet,而这里复现时用的ResNet50作为backbone。

对于预训练好的ResNet50,除去其最后的全连接层,改用自己的全连接层。最终因为要联合训练35个特征,所以输出为35维向量,采用加权交叉熵损失函数。加权的作用是减轻特征数量差距太大的影响。

论文中的网络结构如下

网络结构

论文中采用图©所示的backbone和(b)中的整体架构。而在本实验中只是将©的backbone换成ResNet50。

损失函数具体形式为

L o s s = − 1 N ∑ i = 1 N ∑ l = 1 L w l [ y i l log ⁡ ( p i l ^ ) + ( 1 − y i l ) log ⁡ ( 1 − p i l ^ ) ] Loss=-\frac1N\sum\limits_{i=1}\limits^N\sum\limits_{l=1}\limits^Lw_l[y_{il}\log(\hat{p_{il}})+(1-y_{il})\log(1-\hat{p_{il}})] Loss=N1i=1Nl=1Lwl[yillog(pil^)+(1yil)log(1pil^)]

w l = exp ⁡ ( − p l / σ 2 ) w_l=\exp(-p_l/\sigma^2) wl=exp(pl/σ2)

其中 N N N表示数据集总量, L L L表示特征总量, y i l y_{il} yil表示第 i i i个样本的第 l l l个特征真实值({0,1}), p l p_l pl表示第 l l l个特征所占比重。

模型训练和测试

在当前目录运行sh script/experiment/train.sh进行训练。

在当前目录运行sh script/experiment/test.sh进行测试。

由于在提交文件中不包含训练数据所以无法运行shell,但在./exp/deepmar_resnet50/peta/partition0/run1/model路径下有训练好的模型(迭代1次和50次)

下图是在训练至第70个eopch时的结果

对比论文中的结果

可以发现采用ResNet50训练的结果得到全方位的提升。

下面是对于demo中的样本的检测结果。中间是实际的标注,右边是用迭代50次的模型得到的结果,对比发现预测出的特征已经和实际值非常接近,表明该方法的性能较好。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值