1. Train on Custom Dataset
参考链接
1.1 Register your dataset(i.e., tell fastreid how to obtain your dataset).
为让fastreid企业获得你的数据集,为了让fastreid知道how to获得a dataset named my_dataset, 用户需要去实现一个class, 这个class是继承自fastreid.data.datasets.bases.ImageDataset
怎么继承?
下面给出了原来都用的公开数据使用的代码段snippet(片段):
到底是对应的这段还是对应的cuhk03/market1501里面的另外的段?
经过比照发现,应该是cuhk03/market1501里面的另外的段。
下面是cuhk03的:
下面是market1501的:
上述无论是Custom Dataset还是cuhk03还是market1501, 他们的工作原理都是:
将叫MyOwnDataset的数据集与一个处理train, query, gallery的类(ImageDataset)联系起来,然后传递给基类(baseClass). 到底这个baseClass是指base.py里的ImageDataset还是Dataset?
然后给这个类(MyOwnDataset)添加一个decorator用于registration.
新定义的这个类起个什么作用?
1.2 Import your dataset 载入你的数据集
你要是想让某些位置为空的话,可以用None或者空的列表[]来填充。
这段就很有用了。
查询和画廊集可以具有相同的摄影机视图,但是对于每个单独的查询标识,都排除了来自同一摄影机的他/她的画廊样本。 因此,如果您的数据集没有照相机批注,则可以将所有查询身份照相机编号设置为0,将所有画廊身份照相机编号设置为1,则可以获得测试结果。PIT的问题是不是出在这?
在注册了你自己的数据集以后,你需要在train_net.py里载入它,从而让它生效。