1. Train on Custom Dataset

参考链接

JD 官方README

1.1 Register your dataset(i.e., tell fastreid how to obtain your dataset).

How to train Custom Dataset
为让fastreid企业获得你的数据集,为了让fastreid知道how to获得a dataset named my_dataset, 用户需要去实现一个class, 这个class是继承自fastreid.data.datasets.bases.ImageDataset

怎么继承?

How to train Custom Dataset

下面给出了原来都用的公开数据使用的代码段snippet(片段):

How to train Custom Dataset
到底是对应的这段还是对应的cuhk03/market1501里面的另外的段?

经过比照发现,应该是cuhk03/market1501里面的另外的段。

下面是cuhk03的:

How to train Custom Dataset
下面是market1501的:

How to train Custom Dataset
上述无论是Custom Dataset还是cuhk03还是market1501, 他们的工作原理都是:

How to train Custom Dataset
将叫MyOwnDataset的数据集与一个处理train, query, gallery的类(ImageDataset)联系起来,然后传递给基类(baseClass). 到底这个baseClass是指base.py里的ImageDataset还是Dataset?

然后给这个类(MyOwnDataset)添加一个decorator用于registration.

How to train Custom Dataset
How to train Custom Dataset
新定义的这个类起个什么作用?

1.2 Import your dataset 载入你的数据集

How to train Custom Dataset
你要是想让某些位置为空的话,可以用None或者空的列表[]来填充。

How to train Custom Dataset
这段就很有用了。

How to train Custom Dataset
查询和画廊集可以具有相同的摄影机视图,但是对于每个单独的查询标识,都排除了来自同一摄影机的他/她的画廊样本。 因此,如果您的数据集没有照相机批注,则可以将所有查询身份照相机编号设置为0,将所有画廊身份照相机编号设置为1,则可以获得测试结果。PIT的问题是不是出在这?

在注册了你自己的数据集以后,你需要在train_net.py里载入它,从而让它生效。

相关文章: