首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

使用DeepLabCut训练自己的数据

  • 23-09-19 04:21
  • 2233
  • 12689
blog.csdn.net

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()
  • 1
  • 2
  • 3

在这里插入图片描述

如果没有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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
import os
os.environ["DLClight"]="True"
import deeplabcut
#设置config.yaml的位置
path_config_file = '/mnt/dog-S10ow-2022-03-09/config.yaml'
  • 1
  • 2
  • 3
  • 4
  • 5
#创建训练集
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)
  • 1
  • 2
  • 3
  • 4
  • 5
#测试网络
deeplabcut.evaluate_network(path_config_file,plotting=True)
  • 1
  • 2
#分析视频
deeplabcut.analyze_videos(path_config_file,videofile_path, videotype=VideoType)
  • 1
  • 2
#在视频上绘制关键点
deeplabcut.plot_trajectories(path_config_file,videofile_path, videotype=VideoType)
  • 1
  • 2
文章知识点与官方知识档案匹配,可进一步学习相关知识
OpenCV技能树OpenCV中的深度学习图像分类20270 人正在系统学习中
注:本文转载自blog.csdn.net的SlOooow的文章"https://blog.csdn.net/fjy930911/article/details/123690524"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top