解释CNN图像的地线.mat文件

时间:2018-06-25 19:10:50

标签: matlab neural-network conv-neural-network mat

晚上好

我是编码CNN的新手 我得到了ShanghaiTech人群计数数据集,该数据集具有(在图像旁边).mat文件,这是我认为用于(计数)图像的基本事实。

我尝试在python中打印一个.mat文件的内容,这是我得到的:

{'image_info': array([[array([[(array([[ 855.32345978,  590.49587357],
   [ 965.5908524 ,  472.79472415],
   [ 937.09478464,  400.93507502],
   ...,
   [  42.5852337 ,  359.87860699],
   [1017.48233659,    8.99748811],
   [1017.48233659,   23.31916643]]), array([[920]], dtype=uint16))]],
  dtype=[('location', 'O'), ('number', 'O')])]], dtype=object), '__version__': '1.0', '__header__': 'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Nov 18 20:06:05 2016', '__globals__': []}

每个.mat文件对应一个图像, 我知道在CNN中的某个时刻,我们需要计算网络结果与所掌握的基本事实之间的误差,但是我似乎并不了解这些.mat文件的结构和内容。

有人可以解释这些文件中的内容以及这些内容在人群​​估计中的使用方式或用途。

1 个答案:

答案 0 :(得分:0)

所以我得到了答案, 问题中显示的.mat中的数据包含(或至少我们感兴趣的)两个数组, 第一个:

array([[ 855.32345978,  590.49587357],
   [ 965.5908524 ,  472.79472415],
   [ 937.09478464,  400.93507502],
   ...,
   [  42.5852337 ,  359.87860699],
   [1017.48233659,    8.99748811],
   [1017.48233659,   23.31916643]])

2 数组的 N 2 对应于目标对象 X Y 坐标,而 N 是目标对象的数量(地面真实

另外,第二个数组包含 ground-truth

.mat文件的数据是通过scipy.io.loadmat提取的, 并且数据的结构是字典,现在到达地面是相当困难的,但是它像这样:

matContent=spy.io.loadmat(os.path.join(gtPath,gtList[1])) #var type is dictionary
gt=matContent['image_info'][0][0][0][0][1] #getting the ground-thruth number