是否可以从OpenPose库实时输出JSON数据?

时间:2019-07-16 16:28:58

标签: c++ json osc supercollider openpose

我正在尝试使用OpenPose姿势估计库(C ++)输出身体位置信息,以便使用SuperCollider创建声音。

JSON信息作为文件输出,我想实时输出数据。我尝试浏览过OpenPose的源代码,但找不到指定输出格式的任何特定部分。 “ filestream”文件夹中的头文件似乎仅包含变量声明,如下所示:

#ifndef 
OPENPOSE_FILESTREAM_DATA_SAVER_HPP
#define 
OPENPOSE_FILESTREAM_DATA_SAVER_HPP

#include <openpose/core/common.hpp>
#include <openpose/utilities/string.hpp>

namespace op
{
    class OP_API FileSaver
    {
     protected:
        explicit FileSaver(const std::string& directoryPath);

        virtual ~FileSaver();

        std::string getNextFileName(const unsigned long long index) const;

        std::string getNextFileName(const std::string& fileNameNoExtension) const;

    private:
        const std::string mDirectoryPath;
    };
}

#endif // OPENPOSE_FILESTREAM_DATA_SAVER_HPP

我希望找到一个文件路径或类似的路径,以引导我了解数据从何处输出。如果有人熟悉这个库并且可以指出正确的方向,那将不胜感激。

我的计划是使用Quarks API通过OSC将关键点数据发送到SuperCollider。我正在使用MacOS X 10.11.6。

1 个答案:

答案 0 :(得分:0)

如果您已经下载了openpose示例代码,则在文件 openpose.cpp 中,您将找到

DEFINE_string(write_json,"","Directory to write OpenPose output in JSON format. It includes body, hand, and face pose keypoints (2-D and 3-D), as well as pose candidates (if `--part_candidates` enabled).");

json输出文件的路径由main的参数-write_json 指定。例如:

  

c:> openpose.exe --video“ D:\ user \ video.avi”-write_json“ D:\ user \ desktop \ output.json”

输入是视频“ D:\ user \ video.avi ”,而json输出是“ D:\ user \ desktop \ output.json ” < / p>

注意:如果不使用参数--write_json,则不会写入json输出。

更新1: 如果您想直接访问关键点,则可以按照How to access pose keypoint