行人重识别 reid

阅读: 评论:0

行人重识别 reid

行人重识别 reid

作为刚入门的小白,先找了reid方向的一个baseline来学习,我找的是浙江大学罗浩老师在2019发表的一篇CVPR论文,该论文利用一些tricks来提出了一个更强的baseline,本文主要是运行该论文的代码。
论文题目:《Bag of Tricks and A Strong Baseline for Deep Person Re-identification》
论文地址:.07071
代码地址:

下面就开始来跑代码,我用的环境配置是:
python3.6+pytorch1.6.0+cuda 10.1+torchvision 0.7.0
我因为是在家,所以是租的服务器,我用的是下面这个,感觉还很不错,注册还送十元代金券,租3090可以免费用四个小时左右,我租的是2080ti。
=5eb4c04b-ba17-4bb7-9e95-be2c55309631

步骤:

1、先cd到你要存储到的文件夹下,再运行git clone ,将项目下载下来。
2、安装项目需要的包,该项目需要安装ignite和yacs这两个包,运行conda install yacs,对于ignite这个包,作者GitHub上说要安装0.1.2版本,不然可能出错,我试过直接安装,确实后面有点问题,而0.1.2版本好像是python3.7(包括)以下才能用,所以我上面用的是python3.6。我准备来手动安装:
(1)用下面的地址先下载ignite的0.1.2版本的包:
.1.2
(2)解压之后cd到文件夹目录下,运行python setup.py install
这里有一个情况,我运行的时候报了time out错误(但是我后来运行又没出错,如果没有出错就忽略下面这些)
经过查询之后,是因为访问国外网站超时了,将报错的那一串链接复制到浏览器,下载future-0.18.压缩包,然后解压,cd到这个文件夹,运行python setup.py install,再回到ignite-0.1.2文件夹,继续运行python setup.py install,这样就不报错了。
3、准备数据集,这里我因为是想将这个项目先跑通,所以就只下载了Market1501数据集,没有的可以从我之前的博客里去取:
=1001.2014.3001.5501
下载好后新建一个data文件夹,然后将Market1501数据集放到里面。
4、从下面链接下载预训练权重:
.pth
我将其放到了我自己建的models文件夹/root/project/models/resnet50-19c8e357.pth中,然后将configs文件夹下的四个.yml文件中的PRETRAIN_PATH改为:PRETRAIN_PATH: '/root/project/models/resnet50-19c8e357.pth'
5、开始训练。项目中有很多.sh文件,可以用pycharm打开来进行选择,这里需要新建一个文件夹来存放输出,OUTPUT_DIR就是新建的文件夹路径。
我选择的是Experiment-all_tricks-without_center-market.sh
使用的指令是:

python3 /root/project/reid-strong-baseline/tools/train.py --config_file='/root/project/reid-strong-baseline/configs/l' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" DATASETS.ROOT_DIR "('/root/project/data')" OUTPUT_DIR "('/root/project/outputs/l_outputs')"

但是出现报错,如下:

找不到config模块,查询之后,需要在test.py中sys.path.append('.')前加入下面代码:

parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.insert(0,parentdir) 

训练完成后,我的结果如下:
6、进行测试,和训练一样,要在test.py中sys.path.append('.')前加入上面那两行代码。TEST.WEIGHT的值是上面你新建的文件夹路径里保存的训练120次的模型的路径,也就是:/root/project/outputs/l_outputs/resnet50_model_120.pth,然后将configs文件夹下的四个.yml文件中的OUTPUT_DIR改为:/root/project/outputs/l_outputs,我的指令是

python3 /root/project/reid-strong-baseline/tools/test.py --config_file='/root/project/reid-strong-baseline/configs/softmax_triplet_l' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" DATASETS.ROOT_DIR "('/root/project/data')" TEST.RE_RANKING "('yes')" MODEL.PRETRAIN_CHOICE "('self')" TEST.WEIGHT "('/root/project/outputs/l_outputs/resnet50_model_120.pth')"

这是加入了re_rangking来进行测试的,运行时报了‘Baseline’ object is not iterable的错误,查找资料需要将
将modeling文件夹中的baseline文件中,最下面的param_dict = torch.load(trained_path)
替换成param_dict = torch.load(trained_path).state_dict()
最后测试的结果是:

7、可以看到,这个baseline十分强大,取得了非常好的结果。对于其他的.sh文件,也可以自己来进行测试。

参考链接:
=%257B%2522request%255Fid%2522%253A%2522164507131916780274173890%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164507131916780274173890&biz_id=0&utm_medium=distribute.pc_-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-10-118580418.first_rank_v2_pc_rank_v29&utm_term=reid+strong+baseline+%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4187

本文发布于:2024-01-31 02:41:59,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664012224763.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:行人   reid
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23