16

deeplabcut 位姿标注软件的安装与使用

 2 years ago
source link: https://xujinzh.github.io/2022/04/24/deeplabcut-usage/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

深度学习模型需要大量的训练数据,特别是标注数据。数据的标注非常重要,这对标注软件提出了很高的要求,易用、免费、高效的标注软件是深度学习从业人员的必备工具。deeplabcut 是一款面向位姿识别的标注软件(也可以进行模型训练),它开源、高效、易用,本篇介绍该软件的安装与简单使用。

deeplabcut 的安装

假设已经按照好了 miniconda,下面介绍安装 deeplabcut

git clone https://github.com/DeepLabCut/DeepLabCut.git
cd DeepLabCut/conda-environments


# 如果不想克隆源代码仓库,可以直接从官网下载配置文件
wget http://www.mackenziemathislab.org/s/DEEPLABCUT.yaml

conda env create -f DEEPLABCUT.yaml

deeplabcut 的使用

conda env list
conda activate DEEPLABCUT

pythonw -m deeplabcut
# 或者,会将后台信息打印在控制台上
python -m deeplabcut

此时,会打开 deeplabcut 的 GUI 界面。

在首次打开软件时,需要创建一个工程(如果已经有工程的配置文件,可选择加载存在的工程),输入工程名和实验名,选择视频,选择工程保存路径(路径中不能有中文字符)并选择标注对象是否是多个目标。点击确定,则会生成配置文件。

建议打开配置文件,根据个人情况设置里面的参数。下面介绍几个重要参数。

bodyparts:  # 这里是你要标注的对象的关键点,可以根据字节情况设置,如 head, middle, tail 等
- bodypart1
- bodypart2
- bodypart3
- objectA

numframes2pick: 20 # 这里是设置提取帧的个数,设置成你需要提取的图像个数

# Plotting configuration
skeleton: # 骨架,和 bodyparts 对应,标识通过依次链接关键点得到对象的骨架网络
- - bodypart1
- bodypart2
- - objectA
- bodypart3

# 当选择的是多个对象时,配置信息会像下面这样
individuals: # 几个对象
- nematodes1
- nematodes2
- nematodes3
uniquebodyparts: []
multianimalbodyparts: # 每个对象标注的关键点位置
- head
- middle
- tail

当创建工程后,界面会增加多个标题栏,首先我们需要对视频进行帧随机提取,用于标注。假设我的配置文件已经根据标注要求进行设置完成。那么首先我们选择配置文件,然后提取方法我们可以选择自动或手动。如果选择自动提取,则下面会有选择的算法。

提取的图片会自动放到 工程名/labeled-data/视频名 目录下,图片格式为 .png。如果自动提取的帧不能够很好的用来进行标注,可以选择手动的提取方法。但这种方法对于视频较长的情况将会非常耗时的。此时,可以使用程序先将视频转化为图片序列,然后人工筛选质量较好的图片,并将筛选的图片格式转化为 .png. 视频转图片序列以及图片格式转换可参考我的代码库:toolkit. 然后将转换好的图片序列放到 工程名/labeled-data/视频名 目录下。

假设上面的图片已经提取完成,此时,可以选择标注数据标题。首先选择配置文件,然后选择标注帧,其次,选择加载帧,选择上面的放置提取的图片序列的文件夹。此时,图片会按照文件名顺序加载到标注工具框中。右上角为对象(当配置多个对象时)和关键点。默认打开图像时选择第一个关键点。右键为标注关键点,点击缩放 zoom 可以对小对象放大然后精细标注,点击 home 则返回正常尺寸。如果标注好当前图片,可以点击 save 保存标注信息,也可以标注多张图像后再点击保存。previous 和 next 分别标识前一帧和后一阵,可查看前后两种对象的变化情况。鼠标中键可以删除某个标注,需要先选择该标注,然后点击鼠标中键,然后点击 save,然后切换帧,返回当前帧后可重新标注。更多可查看 help 页面。

标注完成后,点击 quit 退出当前标注。标注的信息会保存在 工程名/labeled-data/视频名 下的 CollectedData_实验名.csvCollectedData_实验名.h5 中。

除了进行图像标注以外,deeplabcut 还提供了:create traing dataset, train, evaluate, analyze videos, create videos 等功能。有兴趣的伙伴可以探索。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK