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
里载入它,从而让它生效。