Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition.
Recording the process in the project.
The paper pdf is here;
The code repository is here
Check List
17->18关节点
st-gcn输入18个关节点,而HRNet输出17个关节点(少了neck),用左肩和右肩平均代替
关节点标注见OneNote:/PRIS/notes/Keypoint 关节点标注
TBD…
realtime_demo渲染慢
python显示视频慢,直接保存到本地png,打开png会自动刷新,与视频无异
但还是最好找到高性能的视频包
TBD…
鬼影问题
Problem
offline_demo中骨架总是比真人慢几拍,有的视频会这样但有的却不会,而且realtime_demo不会出现这个问题
Solution
在视频渲染函数1的输入参数中 骨架和视频是分开的,说明生成的骨架就已经有了偏移。
生成骨架是由 demo 中的 naive_pose_tracker类负责的,而原作者也说了这个class是简单写的,可能会有问题。
溯因后发现根本原因在于 get_skeleton_sequence函数中假设 trace 的 latest_frame 能达到 data_frame
而对于offline_demo来说latest_frame不一定总是达到data_frame(offline的data_frame等于视频长度)
但对于realtime_demo来说视频渲染函数输入是单帧的骨架
修改get_skeleton_sequence中end的计算即可
提取关节点
Problem
在导入Python json包,调用json.dump/dumps函数时,python对象转json时报错 TypeError: Object of type 'float32' is not JSON serializable
也就是无法序列化某些对象格式
Solution 1
自定义序列化方法
然后在调用json.dump/dumps时,指定使用自定义序列化方法
Solution 2
将其转化为可以序列化的对象格式,比如int()
,str()
BTW
四舍五入取整
训练数据
Problem
训练精度不变,label不变
Solution
原来是数据处理的时候忘记了归一化,要把坐标归一化到视频画面的宽高范围内
-
utils.visualization.stgcn_visualize ↩