matlab - 解释 CNN 图像的ground-thruth .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 的结构和内容文件。
有人可以解释这些文件中的内容以及该内容在人群估计中的用途或用途。
解决方案
所以我得到了答案,问题中呈现的 .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]])
是一个N x 2数组,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
推荐阅读
- java - 使用 Struts 上传大文件时出现 java.lang.NullPointerException
- rest - Swagger 调用失败 - net::ERR_EMPTY_RESPONSE
- javascript - 删除和替换 Javascript 中的元素
- reactjs - 关闭 eslint 警告/告诉编译器依赖项不会改变
- javascript - 数组到 ObjectList 角度
- bash - 通过jenkins执行shell脚本时出现问题
- python - 为什么移动画布对象的功能不起作用
- python - 如何检查Python中是否只有一部分变量位于字符串旁边?
- angular - Angular ChangeDetectorRef:无法读取未定义的属性“detectChanges”
- javascript - ASP.net Core 在传单地图上动态添加标记