这篇笔记约定了如何使用Labelme来纠正已有数据中错误的skeleton
安装Labelme
-
在Anaconda中新建一个环境,用于安装Labelme。这里用Anaconda Prompt做演示
1
conda create --name=labelme
-
进入这个新建的环境
1
activate labelme
-
安装依赖pyqt,这是一个python的GUI包
1
conda install pyqt
-
安装Labelme
1
pip install labelme
安装好之后每次使用时只需要打开Anaconda Prompt,进入labelme环境,然后使用命令labelme
即可
1 | labelme |
下载服务器上的skeleton图片
将已经生成好的skeleton图片从服务器上下载到本地。路径为
1 | /data/ssongad/skeleton_img/<classname> |
为了避免可能的重复劳动,约定宋思哲从字母正序开始检查,倪啸元从字母逆序开始检查。另外,为了方便查看进度,在以下路径已经建好两个txt
文本,在完成下载和完成检查之后都可以记录到文本中
1 | /data/ssongad/ssongad_log.txt |
配置Labelme
按上述方式运行Labelme后
- 打开一个视频文件夹,对应的路径格式为
<yourLocalPath>/<classname>/<classname>_<index>
,比如...workspace\skeleton_img\abseiling\abseiling_000
- 更改输出路径,否则默认输出到图片的同路径,为了方便后续操作,我们要输出到一个单独的文件夹中。先新建好输出文件夹,格式应该与图片保持一致,即
<classname>/<classname>_<index>
。然后将这个文件夹设置成输出文件夹
- 打开自动保存,否则每次询问是否保存
开始检查
如果skeleton正确,或者部分正确,则对于这一部分无须任何操作。只需要重新标记那些识别错误的关节即可。首先,约定的关节序号如下
上图中的左边即为人物的左手,你可以认为这个人背对着你,相应节点的含义已在右侧给出。需要注意的是,0号关节是鼻子,虽然大多数时候它看起来像头部。眼睛和耳朵有数据但并未在skeleton中画出,本次检查也不需要管这两个关节。
关节之间的连接颜色也在图中给出了,左右半侧并不对称,可以依据这一点判断skeleton是否左右颠倒。尚不清楚左右颠倒是否影响未来的操作,但最好全部订正一遍。
我们需要做的操作就是标记关节的位置,Labelme有提供标记点模式,需要手动打开
然后只需要在图片上点击正确的关节位置,就可以创建一个标记点,然后会弹出窗口要求输入label,输入关节对应的序号即可
一张图中可以标记数个点,全部完成后可以直接前往下一张图片,节点信息会以一个json
文件的形式自动输出到指定的路径下
完成
注意每完成一个video之后,都需要重新设置输出路径,然后继续工作。完成一个class之后,可以把整个class的文件夹上传到服务器的如下路径
1 | /data/ssongad/labelme/ |