跑重识别实验的时候报错如下
assert num_valid_q > 0, "Error: all query identities do not appear in gallery"
AssertionError: Error: all query identities do not appear in gallery
该错误是由query和gallery相同的相机 ID 引起的
代码里metrics.py部分已经有remove部分的代码,但是仍然报错
# remove gallery samples that have the same pid and camid with query
order = indices[q_idx] # select one row
remove = (g_pids[order] == q_pid) & (g_camids[order] == q_camid)
keep = np.invert(remove)
解决办法是把query的camera ID 设置为0
而gallery的camera ID 设置为1即可
gallery = [(x[0], x[1], 1) for x in gallery] # camera view 1
因为本身VehicleID数据集的query和gallery都恒为0
所以我们改gallery部分即可
在vehicleid.py部分的最后更改,其他数据集应该也一样
源代码为
train = self.parse_img_pids(train_data, train_pid2label)
quer