首页 > 解决方案 > 为 pytorch 1.3 定制的 MPII 数据集 python3 类

问题描述

我是这种图像处理工作的新手。我想构建一个此处描述的 MPII 数据集,用于在其上训练 pytorch 网络。我倾向于使用 Python 3.6 和 pytorch 1.4

问题主要在于 MPII 数据集注释(在此处下载)是 .mat 格式,我不是很熟悉。我在 Github 上也找到了一些实现,比如这个deep high resolution net,还有这个Microsoft MPII dataset for python。后者实际上已在 MPII 数据集的许多实现中采用,但它太旧了。它是用pytorch==0.4.0和python2构建的,造成了很多环境冲突问题。

我现在要做的只是构建一个简单的pytorch数据集,它可以自动提取'annotation/'目录中的关节位置,并将其与'image/'目录中的特定图像结合起来。我希望返回值只是包含这两项的字典,这就是我所需要的。

我还注意到许多研究人员倾向于将原始的“.mat”注释文件转换为“.json”格式。我认为这会使操作更容易,但是当我尝试这样做时会遇到一些麻烦。

Python 3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> from scipy.io import loadmat
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/billy/miniconda3/envs/datasci/lib/python3.6/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/home/billy/miniconda3/envs/datasci/lib/python3.6/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/home/billy/miniconda3/envs/datasci/lib/python3.6/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/home/billy/miniconda3/envs/datasci/lib/python3.6/json/encoder.py", line 180, in default
  File "/home/billy/miniconda3/envs/datasci/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type 'bytes' is not JSON serializable

我也在这个网站上看到了这个问题,但我不确定我是否理解出了什么问题......我非常感谢任何帮助!

标签: pythonpytorch

解决方案


9 个月过去了,您可能已经解决了这个问题,但我对这类环境/安装问题的简单解决方案是利用虚拟或在线环境。一个例子是Google Colab。您可以.json使用工具而不是本地环境转换为格式,并将转换后的文件应用于您的 ML 应用程序。


推荐阅读