可视化工具
实时可视化
可视化的内容:
- 2D图像
- 3D图像:画到空间中
- 文字
- 画线: points(N, 2, 3), color(N, 3)
- 骨架: config, [(J, 3)]
- SMPL:
- avatar:
- mesh
- 可操纵位置的物体:篮球、足球
- 辅助性mesh => 棋盘格,场景,相机
输入:
- 从socket接收
- 从文件夹中读取
这部分需要考虑,文件中总共有多少帧,这个进度条是需要可以控制的。
输出:
- 存图
其他功能:
- 清楚缓存
- filter可视化的类型
3D Annot
同时可视化3D图像,然后对有问题的地方修改2D
通讯协议:
{
"seq": 'seq0',
"nframes": 0, # 记录当前的数据是第几帧
"view": [], # 可选,用于表示相机视角,如果有,就用来设置相机的观看的角度
"scene": [
{
'type': <camera>
},
{
'type': 'ground'
},
{
'type': 'light'
},
],
"data":[
{
'id': 0,
'type': 'body25',
'keypoints': [(25, 3)]
},
{
'id': 1,
'type': 'half',
'keypoints': [(10, 3)]
},
{
'id': 2,
'type': 'bodyhand',
'keypoints': [(25+42, 3)]
},
{
'id': 3,
'type': 'bodyhandface',
'keypoints': [(25+42+65, 3)]
},
{
'id': 4,
'type': 'smpl',
'poses': [(1, 60)],
'shapes': [(1, 10)],
'Rh': [(1, 3)],
'Th': [(1, 3)],
},
{
'id': 5,
'type': 'mano',
'poses': [(1, 60)],
'shapes': [(1, 10)],
'Rh': [(1, 3)],
'Th': [(1, 3)],
},
{
'id': 6,
'type': 'smplh',
'poses': [(1, 60)],
'shapes': [(1, 10)],
'Rh': [(1, 3)],
'Th': [(1, 3)],
'handl': [(1, 3)],
'handr': [(1, 3)],
},
{
'id':1001,
'type': 'sphere',
'T': [(1, 3)]
},
{
'id':1002,
'type': 'mesh',
'name': 'meshname',
'R': [(1, 3)]
'T': [(1, 3)]
},
]
}
需要实现的函数
- body_model的可视化
这个函数用于对于一个给定配置文件的模型,可以使用控件操纵,对模型进行可视化
- 一般场景的可视化
这个函数用于可视化之前的场景,控件需要提供的功能有:
- 设置范围
- 设置地面的原点
- 设置棋盘格的参数
- 设置棋盘格的颜色
- 足球场景的可视化
- 足球场景,或者一个绿地
- 相机模型
- 人体骨架模型
- 光照、阴影
- 运动的足球模型
- 人体SMPL模型
- 驱动的其他人的模型
- 其他模型的可视化