我想在UCF_CC_50数据集上训练CSRNet模型,但出现了这个问题
件路径为KeyError Traceback (most recent call last) <ipython-input-11-78e054690de5> in <module> 4 img= plt.imread(img_path) 5 k = np.zeros((img.shape[0],img.shape[1])) ***----> 6 gt = mat["image_info"][0,0][0,0][0]*** 7 for i in range(0,len(gt)): 8 if int(gt[i][1])<img.shape[0] and int(gt[i][0])<img.shape[1]: **KeyError: 'image_info'**
C:\Users\Gigabyte pc\Desktop\COUNTING\CSRNet pytorch master\UCF_CC_50\part_A_final/train_data\images\IMG_1.jpg
您正在读取与图像'...IMG_1.jpg'
相对应的matfile'...ground_truthGT_IMG_1.mat'
。在处理此数据点时,尝试访问存储在读取的matfile中的变量'image_info'
。正如您收到的错误消息所示:
KeyError:'image_info'
matfile不包含此变量'image_info'
。
要进行调试,请读取matfile并查看存储在其中的变量的名称。请注意,命名它们是区分大小写的。
您的代码不符合您试图读取的注释文件的结构。UCF-50中的注释CC数据集可以简单地通过获得关键字"的值来读取;anPoints";。
您可以对代码进行以下更改,以读取逐点人头注释的x和y坐标:
4 img= plt.imread(img_path)
5 k = np.zeros((img.shape[0],img.shape[1]))
6 gt = mat["annPoints"]
7 for i in range(0,len(gt)):