1. Deeplabcut安装

1.1 下载安装文件

安装地址

进入安装地址后,选择step2中的下载链接点击,下载DEEPLABCUT.yaml文件

在这里插入图片描述

1.2 创建环境并安装

选择Anaconda目录下的Anaconda Navigator

在这里插入图片描述

依次点击Enviroments—Import—选择DEEPLABCUT.yaml文件的下载目录

在这里插入图片描述
选中后点击import即可安装DEEPLABCUT

在这里插入图片描述

2. 模型训练

2.1 训练前准备

使用Anaconda Navigator进入

选择安装好的环境,选择Open with IPython

在这里插入图片描述

在命令框中输入 进入操作界面

import deeplabcut

deeplabcut.launch_dlc()

在这里插入图片描述

如果没有GPU的话,会出现下面的error,可以直接无视

在这里插入图片描述

在这里插入图片描述

此处输入任务的名称和操作者的名字,新的文件夹将以这两者的名字命名,为减少报错可能,尽量用英文+数字,不要使用汉字,设置完成后点击OK

在这里插入图片描述

2.2 模型标注

创建成功后,会进入下面的界面

在这里插入图片描述

抽取关键帧

上一步完成后,会在下图所示的目录中创建一个config.yaml文件,这个文件中包含了整个训练过程的所有主要设置,后面还会用到

由于输入的是连续的视频,此处需要定义抽取关键帧的方法,用于后续的标注

这里可以选择手动或自动提取(一般自动就可以 手动需要一帧帧挑有点麻烦)

并可以选择自动抽帧的方法(kmeans和uniform),由于我用的视频背景比较简单,没有仔细对比过这两种方法的差别

设置完成后点击OK 这里需要一点时间来读入视频和提取关键帧

在这里插入图片描述

关键点标注设置

点击OK后,选择Label Data进入到下面的界面

在这里插入图片描述

进入config.yaml所在的目录,并使用记事本打开config.yaml文件

这里的bodyparts和skeleton分别代表了需要在图中标识的关键点和关键点间可能的联系

如果和默认的关键点定义不一样,直接删掉修改就可以

在这里插入图片描述

修改完的文件如下

这里需要注意skeleton的写法,当点比较多的时候,写成这样会比较方便

另外,针对不同的场景,设置关键点的大小也非常重要

在这里插入图片描述

然后回到界面,选择Label frames

在这里插入图片描述

按顺序选择待标注图像所在的文件,就可以进入标注界面

在这里插入图片描述

然后就可以开始愉快的标注了,如果前面导入了多段视频的话,每个视频会生成一个文件夹,需要对每个文件夹分别标注

在这里插入图片描述

在标注完成后,回到主页面,并选择Check Labels,就可以看到在任务文件夹下的labled-data文件中找到一个带有-labeled的文件,点进去后可以看到标注的点和骨架已经被绘制在了图中

在这里插入图片描述

然后就可以点击Creaete Training Dataset进入到创建训练集的部分(如果用服务器训练的可以直接跳过这部分)

此处可以选择特征提取网络,主要影响后续的运算速度和精度,配置好的可以选择resnet家族的,配置一般的可以选择mobilenet

还可以选择数据增强的方法,这里我也没对比过几种有什么差别

在这里插入图片描述

全部选完后就可以点击OK

然后会在IPython中看到创建成功的提示

在这里插入图片描述

2.3 正式训练

然后就是正式训练的过程,这里由于我自己的电脑性能比较拉,所以选择了使用服务器训练,有条件的可以直接进入主界面中的train来训练

下面是我的租用配置,怕麻烦的可以直接copy

在这里插入图片描述

我的训练是在矩池云上进行的,这个配置可以直接在镜像里找到,简单是挺简单,但这个平台确实是贵……

首先当然需要在服务器上安装deeplabcut

然后把整个文件 就是那个由任务名+人名组成的文件打包上传

在这里插入图片描述

然后进入网盘,解压,用Jupyter打开文件

在目录下新建一个.ipynb文件 效果如下

在这里插入图片描述

接下来的事情就很简单了

# 设置
ProjectFolderName = 'dog-S10ow-2022-03-09'
VideoType = 'mp4' 

#这里不需要修改
videofile_path = ['./videos/test.mp4'] #Enter the list of videos or folder to analyze.
videofile_path
import os
os.environ["DLClight"]="True"
import deeplabcut
#设置config.yaml的位置
path_config_file = '/mnt/dog-S10ow-2022-03-09/config.yaml'
#创建训练集
deeplabcut.create_training_dataset(path_config_file, net_type='resnet_50', augmenter_type='imgaug')
#开始训练 displayiters=多久展示一次结果;saveiters=多久保存一次结果
#需要注意的是,这里的训练是持续进行的,自己觉得OK了就点停止
deeplabcut.train_network(path_config_file, shuffle=1, displayiters=10,saveiters=500)
#测试网络
deeplabcut.evaluate_network(path_config_file,plotting=True)
#分析视频
deeplabcut.analyze_videos(path_config_file,videofile_path, videotype=VideoType)
#在视频上绘制关键点
deeplabcut.plot_trajectories(path_config_file,videofile_path, videotype=VideoType)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐