以下链接是个人关于DG-Net(行人重识别ReID)所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。文末附带\color{blue}{文末附带}文末附带公众号−\color{blue}{公众号 -}公众号−海量资源。\color{blue}{ 海量资源}。海量资源。

行人重识别0-00:DG-GAN(行人重识别ReID)-目录-史上最新最全:https://blog.csdn.net/weixin_43013761/article/details/102364512

极度推荐的商业级项目:\color{red}{极度推荐的商业级项目:}极度推荐的商业级项目:这是本人落地的行为分析项目,主要包含(1.行人检测,2.行人追踪,3.行为识别三大模块):行为分析(商用级别)00-目录-史上最新无死角讲解

前奏准备

通过前面的博客,大家应该拿到论文和源码,为了方便,我这里把源码再粘贴一次:https://github.com/NVlabs/DG-Net
不用多说什么,拿到源码之后,肯定是先阅读README.md,不管三七二十一,先根据提示操作一波,遇到问题再说,所谓水来土掩兵来将挡(环境搭建就大家自己解决了-表示本人也遇到了一些坑)。

根基提示我们先下载数据集(本人下载的是[Baidu Disk]):

数据下载好之后,我们要执行

python prepare-market.py

在执行之前,需要更改一下路径,本人如下:

# download_path = '../Market'
download_path = 'E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15'

其目的即使把官方的数据集进行处理,把行人分好类到\Market-1501-v15.09.15\pytorch下面,制作号训练数据,我们就要进行测试了,测试之前当然是下载好预训练模型:

这里出现了一个小问题,那就是下载好之后,我们的预训练模型应该要放在哪里呢?本人放置的方式如下:

放置好了之后,我们就要进行模型评了。

根据提示,他让我们查看visual_tools目录下面的README.md,然后使用./visual_tools/test_folder.py生成大量的图片进行评估,对于 SSIM 与FID(如果不是很了解,可以看看上两篇论文翻译的博客,并且一定要了解,不然对后面的讲解看得会比较模糊)指标,我们仅需要改变一下路径就能进行测试了。

那么我们就来看看visual_tools目录下面的README.md,可以看到,他提示我们需要去下载:
https://github.com/layumi/TTUR
直接把整个工程下载下来就OK了,不用考虑那么多。完成之后,本人的两个项目是并列放置的,如下:

模型验证FID评估

首先我们要修改DG-Net-master\visual_tools\test_folder.py的路径,本人修改如下:

parser.add_argument('--output_folder', type=str, default="E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15/pytorch/off-gan_id1/", help="output image path")
parser.add_argument('--output_folder2', type=str, default="E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15/pytorch/off-gan_bg1/", help="output image path")
parser.add_argument('--input_folder', type=str, default="E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15/pytorch/train_all/", help="input image path")

后面生成的图片就在Market-1501-v15.09.15/pytorch目录之中,然后我们指定预训练模型的路径:

opts = parser.parse_args()
opts.checkpoint_gen = "./outputs/%s/checkpoints/gen_00%06d.pt"%(opts.name, opts.which_epoch)
opts.checkpoint_id = "./outputs/%s/checkpoints/id_00%06d.pt"%(opts.name, opts.which_epoch)
opts.config = './outputs/%s/config.yaml'%opts.name

下面是一个重点,大家一定要修改好,在程序的最后,本人修改如下:

print('---- start fid evaluation ------')
os.system('cd ../../TTUR & python fid.py \E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15/pytorch/train_all \E:/1.PaidOn/5.ReID/1.DG-Net/2.Dataset/1.OfficialData/1.traindata/Market-1501-v15.09.15/pytorch/off-gan_id1 \--gpu 0')

可以看到,在数据生成之后,其执行了一条命令,这条命令,就是执行我们之前下载好的代码程序,对生成的数据集进行评估。还有一点大家要注意两个点是。
1.在源码中,os.system的命令是用;号分开的,这是在linux运行,我这里改成了&。这是winds下执行多条命令的格式
2.这里不能使用朋友pycharm进行评估,否则评估之后的信息看不到,本人修改完成之后,直接执行如下命令:

python test_folder.py

如果报错 No module named ‘trainer’,则修改如下:

#sys.path.append('.')
sys.path.append('..')

运行打印如下:

进行等待即可,这里再进行数据生成,还没有进行评估,其生成过程需要一段时间。等待生成之后,会进行FID评估。

可以看到,其评估得到的FID值,和论文的描述是相近的,表示的是生成照片和实际照片的分离度。也就是说,该值越小表示模型效果越好。

源码中似乎没有介绍SSIM的评估,如果后续有时间,我会介绍一下SSIM评估的过程。现在我们来看看下载的Market-1501数据集。

Market-1501数据集分析

本人下载数据集之后,解压如下:

执行完上面的FID评估程序之后,目录如下:

我们可以很明显的看到多了一个pytorch的文件夹,这个估计是生成的数据,暂时我们先不去理会。下面是readme简单的翻译:

%******************************************************************************************************************%
% The Market-1501 dataset is collected with six cameras, open environment, in Tsinghua University.                 %
% A total of 1501 individuals are annotated. 751 individuals are used for training. There are 750 individuals for  %
% testing, and in total 3368 query images.                                                                         %
% There are 19732 images in the test set, and 12936 images in the training set.                                    %
% If you use this dataset, please kindly cite our paper as,                                                        %
%                                                                                                                  %
% Liang Zheng*, Shengjin Wang, Liyue Shen*, Lu Tian*, Jiahao Bu, and Qi Tian. Person Re-identification Meets Image %
% Search. Technical Report, 2015.  (*equal contribution)                                                           %
%                                                                                                                  %
% This dataset should be used for research only. Please DO NOT distribute or use it for commercial purpose.        %
%******************************************************************************************************************%
# 上面说这是清华大学收集的数据集(来自六个摄像头)。一共有1501人个人经过的注释,其中751个人(12936张图片)用于训练,750个人(19732张图片)用于测试。%%%%%% Content in the Zip file%%%%%%%%%%
# 这个文件包含了19732张的测试图片
1. "bounding_box_test" file. This file contains 19732 images for testing. # 这个文件包含了12936张训练图片
2. "bounding_box_train" file. This file contains 12936 images for training.# 该文件包含了3368张来自于bounding_box_test抽取的图片,也就是3368有疑问的照片
3. "query" file. It contains 3368 query images. Search is performed in the "bounding_box_test" file.# 该文件包含了25259张图片,全都是手工框出的行人,这些图片包含了训练和测试的所有行人。简单的说,就是检测出了行人,但是没有根据ID分类。
4. "gt_bbox" file. It contains 25259 images, all hand-drawn. The images correspond to all the 1501 individuals in the test and training set.It is used to distinguish "good" "junk" and "distractors".# gt_query目录每个人的图片,都包含了质量好的,或者质量差的照片,其中有3368张图片是带有疑问的。该数据可以用于性能评估(原谅我真的翻译不过来)
5. "gt_query" file. For each of the 3368 queries, there are both good and junk relevant images (containing the same individual). This file contains the image index of the good and junk images. It is used during performance evaluation.If you have any problem, please contact me at liangzheng06@gmail.com.

下面我们来看看重新生成pytorch,文件夹:

现在我们看来也比较懵逼,由于还没有去分析代码,也不知道生成的数据有那些特点,下面是本人观察之后的大概 猜测(参考即可,不需要太在意)

off-gan_bg1 # 忽略背景,其中的人相同,但是背景衣服不一样,训练出来的模型可以忽略同一人,不同衣服的影响
off-gan_id1 # 衣服是相同的,但是每个文件夹下的ID都不是同一个
# 上面的两个文件夹,应该都是生成的图片,是为了FID的评估,也就是训练的时候不会用到这两个文件(在线生成,不会保存)train与train_all#的人物ID都一样,但是train的图片少一些,暂时不知道删除了那些照片val #中的应该是验证集的照片,其中每个人都只有一张照片,ID和train_all中的是一样的
# val+train=train_all的数目,所以猜测val为验证集multi-query #应该是测试集的照片query # 应该就是测试集了吧gallery # 包含了所有的照片,其他文件夹中的照片,应该都能再这里找到。其中有一个-1的文件夹,保存那些不知道所属ID的图片

暂时这样去分析,感觉乱七八糟的,等我们后续分析代码,应该就清楚怎么回事。那么该章博客就介绍到这里了。下小节我们将开始讲解训练过程!

行人重识别0-03:DG-Net(ReID)-模型评估验证,数据集讲解相关推荐

  1. 长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总

    长期换衣行人重识别任务中目前常用的数据集 总览 目前换衣数据集的主要问题 数据集换衣/总体情况集统计 DeepChange(2021) LaST(2021) COCAS(2020) VC-Clothe ...

  2. (AAAI-2019)用于行人重识别的水平金字塔匹配

    用于行人重识别的水平金字塔匹配 论文题目:Horizontal Pyramid Matching for Person Re-Identification paper是贝克曼研究所发表在AAAI201 ...

  3. 行人重识别简介(Person ReID)

    一.简介 行人重识别,也被称为 ReID(Person Re-identification),是希望能够利用计算机视觉的算法来进行 跨摄像头的追踪,也就是找到不同摄像头下的同一个人,这也是图像检索的一 ...

  4. 下一个视觉「杀手级应用」来了,依图行人重识别ReID性能创纪录

    人脸识别之后的下一个风口是什么? 对于这个问题,业界似乎早已有了共识.从 AI 的人脸识别能力超越人类以来,学术界和产业界的目光逐渐转向另一个更具科研意义和应用价值的课题--行人重识别(Person ...

  5. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述

    转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...

  6. 摄像机域内监督行人重识别问题

    本文是对『Intra-Camera Supervised Person Re-Identification』一文的详细解读,IJCV接收论文. 作者信息: 论文链接:https://arxiv.org ...

  7. 行人重识别(Person re-identification)概述

    在人的感知系统所获得的信息中,视觉信息大约占到80%-85%.行人重识别(person re-identification)是近几年智能视频分析领域兴起的一项新技术,属于在复杂视频环境下的图像处理和分 ...

  8. 行人重识别技术不断突破 安防企业力拔头筹

    近年来,越来越多的摄像机被部署到公共场所中.如何借助人工智能技术实现海量视频数据的智能分析和应用,成为构建智能安防的关键.其中,行人重识别(简称为ReID)正是核心课题之一. 行人重识别是利用计算机视 ...

  9. CVPR 2019 | 基于密集语义对齐的行人重识别模型:有效解决语义不对齐

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自微软研究院AI头条. 编者按:行人重识别(Person Re-identification),也称行人再识别,旨在利用计算机视觉技术实现基于图 ...

最新文章

  1. 十六、python开发之进程与线程
  2. c语言给定变量a的初始值,2018年9月计算机二级C语言考试冲刺提分试题(一)
  3. shell 定时删除制定目录下过期文件
  4. Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
  5. python爬虫开发 从入门到实战 pdf 谢乾坤_python字符串和整数相互转换的实例分享...
  6. redhat python3.4安装步骤
  7. java jackson unicode_如何让Jackson JSON生成的数据包含的中文以unicode方式编码
  8. Android Studio导入Project、Module的正确方法
  9. 2 . 8 注释和嵌入文档
  10. 记一次UDP的sendto函数错误解决
  11. 使用Selenium实现直播平台的自动刷屏
  12. 全新天狼星网络验证系统源码+功能强大
  13. 何为数码相机EXIF信息的等效焦距
  14. axure8 事件改变样式_【Petrel老师带你玩转Axure 8(二)】Axure部件样式与页面样式管理...
  15. My sql 统计一个字段某种类型的总数(非group by)
  16. 解决微信公众号发布新的版本H5页面有缓存的问题
  17. cmd中启动MySQL输入net start mysql 显示‘net‘不是内部或外部命令,也不是可运行的程序或批处理的文件。
  18. Unity Unet(四)多人在线游戏框架
  19. android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!
  20. 谨摘此文以纪念“浅墨”毛星云,并献给所有追逐梦想的朋友

热门文章

  1. 每日感悟-华杉讲解论语-2022/2/2
  2. maven在idea中使用junit时,运行要测试的类,提示class not found。
  3. java中两个类怎么解决_导入两个具有相同名称的类。如何处理?
  4. Python 基础学习 --入门(了解小常识)
  5. 王者荣耀服务器更新维护2020,王者荣耀苹果版更新后进不去怎么办 王者荣耀iOS版服务器维护是怎么回事...
  6. Python实现文件名称批量添加后缀
  7. 2022卡塔尔世界杯中人体姿态重建加持的半自动越位技术
  8. 记一次hashMap遍历时删除异常
  9. 打破价格限制1099元更超值 荣耀畅玩8C打造千元最强颜值实力派
  10. 虚拟机设置固定IP,以及解决设置固定IP后不能上网的问题