DeepLabCut使用篇(二):创建并标记自己的项目
文章目录
0x01 新建Project
deeplabcut.create_new_project(`Name of the project',`Name of the experimenter', [`Full path of video 1',`Full path of video2',`Full path of video3'], working_directory=`Full path of the working directory',copy_videos=True/False)
(TIP : you can also place config_path
in front of deeplabcut.create_new_project
to create a variable that holds the path to the config.yaml file, i.e. config_path=deeplabcut.create_new_project(...)
)
然后就会自动在working directory
工作文件夹中创建新的文件夹,命名方式为:project名称+试验人员名称Name of the experimenter
+文档创建日期
e.g.
deeplabcut.create_new_project("dlc_wy","houiin","/home/houiin/DeepLabCut/houiin_dlc_empty/videos/reachingvideo1.avi",working_directory="/home/houiin/DeepLabCut/houiin_dlc_empty",copy_videos=True)
执行之后自动建立了文件夹,自动生成了配置文件config.yaml
新的工程项目文件夹层级如下所示
5 directories, 2 files
0x02 添加视频文件(可选)
deeplabcut.add_new_videos(`Full path of the project configuration file*',[`full path of video 4', `full path of video 5'],copy_videos=True/False)
0x03 提取需标记的帧
1)先设置一个配置文件路径变量以便接下来的使用
config_path = '你的config.yaml文件的绝对路径'
**e.g: **
config_path = '/home/houiin/DeepLabCut/houiin_dlc_empty/dlc_wy-houiin-2019-01-18/config.yaml'
2) 修改标记帧图像大小
1. 随机抽取帧
# 可选参数
deeplabcut.extract_frames('config_path',`automatic/manual',`uniform/kmeans', crop=True/False, checkcropping=True)
#e.g.
deeplabcut.extract_frames(config_path,'automatic','uniform', crop=True, checkcropping=True)
#上面这行就是 使用自动标记模式,标记对象为表皮,启用图像裁剪,启用二次检验
执行上面那个语句过后,会自动跳出选择画面的窗口
需要注意的是:运行extract_frames函数时,如果参数crop = True
且checkcropping = True
,则它会将帧裁剪为config.yaml
文件中提供的大小,并且用户可以首先检查裁剪的边界框。在调用extract_frames
时,将根据裁剪参数弹出带有红色边界框的图像,以便用户可以检查这些参数。用户关闭弹出窗口后,将询问他们裁剪是否正确。如果是,则相应地提取帧。如果不是,则可以在继续之前基于该图形反馈迭代地调整裁剪参数。
输入yes
从视频中随机提取帧,如果有多个视频,将会分别存放于以视频文件名命名的多个文件夹中
2. 手动提取帧
deeplabcut.extract_frames(config_path,'manual')
先Load Video
加载视频
会提示是否需要裁剪画面,选否,不然无法捕获图像,不过我个人觉得还不如直接用媒体播放器截图自动保存更便捷一点
拖动进度条,找到合适的图像后Grab a Frame
0x04 标记图像
deeplabcut.label_frames(config_path)
可能会遇到标记工具一片空白的情况,解决方法见下面的错误解决栏目
标记部位的分类在当前项目的配置文件的bodyparts
进行更改
使用鼠标右键进行标记点,左键修改上一个标记点的位置,鼠标中间用于放大或者移动标记点的模式进行切换
标记完成后点击save
,在当前路径自动生成标记文件
训练模型请看下一篇
错误解决
1. 打开标记工具一片空白
提示**Failed to load module “unity-gtk-module”**
安装libcanberra-gtk-module
和 libcanberra-gtk3-module
即可
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
解决方法一:
在设置中将显示器设置设置为单显示器,然后再选择扩展模式,就能够成功加载界面。
如果你的多显示器是横向排列的,可以直接添加参数screens=2
deeplabcut.label_frames(config_path, screens=2)
# Screens=2说明有两个显示器
解决方法二: 改代码,不自动检测屏幕大小
进入操作的虚拟环境目录,找到labeling_toolbox.py
,路径一般为:anaconda3/envs/你的环境名称/lib/python3.6/site-packages/deeplabcut/generate_training_dataset/labeling_toolbox.py
比如我的路径为:/home/houiin/anaconda3/envs/deeplabcut-py36/lib/python3.6/site-packages/deeplabcut/generate_training_dataset/labeling_toolbox.py
修改下图红框中关于窗口大小的代码
比如我直接改成1280x720
可以看到窗口被成功的加载了