一、需求
在GazeCapture数据集中,有两个记录了注视点坐标的数据文件train_y.npy和val_y.npy,这其中存放的并不是图像数据,而是点的位置信息,与之前的需求有区别。在制作自己的训练集时,可以在txt文本文件中记录每张图片对应的屏幕注视点的位置信息,然后将其转化为.npz文件,以供训练。
二、txt文件转npz文件
2.1 查看train_y.npy文件内容
首先,以train_y.npy为例,我们可以利用python代码查看该文件的内容以及相关信息。
import numpy as np# 加载文件face_data=np.load('C:/Users/Lenovo/Desktop/eye_tracker_train_and_val.npz')# 查看文件中保存的数据信息print(type(face_data['train_y']))print((face_data['train_y']).dtype)print((face_data['train_y']).size)print((face_data['train_y']).shape)print((face_data['train_y']).ndim)
得到下面的结果:
<class 'numpy.ndarray'>float6496000(48000, 2)2
说明从该文件转化的数组是一个2维数组,其中存放了48000个1×2的位置信息,对应48000张图片注视的点的坐标,并且数组中元素的数据类型是float64。
在控制台打印数据的内容如下图所示:
print(face_data['train_y'])
2.2 将npy文件保存为文本文件
为了更方便地查看其中的数据,需要转换为文本文件:
np.savetxt('C:/Users/Lenovo/Desktop/Eyetracking for everyone程序/我的调试/train_y.out',face_data['train_y'])
在指令路径下,可以直接用记事本打开train_y.out文件。
我已经把train_y.npy和val_y.npy都转换为文本文件了,这里挂上连接,需要自取。
#链接: train_y.out和val.out
2.3 txt文件转化为npz文件
在加载文本文件时,用的不是load,而是loadtxt函数,下图是其函数原型。
将txt文件中的数据读取到numpy数组中,并保存为npz文件的程序如下:
// 加载数据val_y_data=np.loadtxt('C:\\Users\Lenovo/Desktop/Eyetracking for everyone程序/我的调试/val_y.out');// 打印数据print(val_y_data)// 保存为npz格式np.savez('train_and_val1.npz',val_y=val_y_data);
OK,that’s all,enjoy it!