DeepLabCut教程(二 具体如何使用)

此篇为     二  具体如何使用         在这儿我将使用DLC进行新建工程、标记数据、训练、预测等,这是简化版流程。

如果你还不清楚DLC如何安装或者DLC是什么,请查看     一  从零开始安装     ,链接为:

DeepLabCut教程(一 从零开始安装) - 简书


一、使用前言

        在DLC官网上,已有官方使用教程:

                https://github.com/DeepLabCut/DeepLabCut/blob/master/docs/UseOverviewGuide.md

DLC官方流程

        实际上,DLC自从有了自己的GUI后,图形化操作确实非常简单,但因为这个GUI有时会卡BUG,且不利于我们理解DLC背后的代码,故在此我将从新建工程、标记、训练、预测等步骤详细介绍如何使用DLC。


二、使用流程

1、导入包

            import deeplabcut

       当然是先导入dlc的包,如果这一步出错,可能是没有wxPython,在环境中直接pip即可。如果是Spyder,将Graphs显示方式由Inline调整为Qt5。如果是tensorflow的问题,将环境中的tensorflow的uninstall后再安装一下。记得是要安tensorflow-gpu版本的,CPU太慢了(tai man le)。

2、新建工程

            deeplabcut.create_new_project('ProjectName','YourName', ['/usr/FullPath/OfVideo1.avi','/usr/FullPath/OfVideo2.avi','/usr/FullPath/OfVideo1.avi'],copy_videos=True/False,multianimal=True/False)

        注:这里新建工程后,工程文件夹的路径在这个.py脚本同级的路径下。工程名+作者名不要太长,否则会出一堆错!

        使用 deeplabcut.create_new_project 函数进行新建工程,参数如上所示,分别是工程名作者名视频路径是否拷贝视频到工程目录中是否多只动物。其中,DLC2.2目前虽然支持了多只动物的跟踪,但效果一(bu)般(xing),所以大多数情况下DLC是用来追踪单只动物的。也说不定过两天DLC的多动物追踪也变得十分强大。

3、查看配置文件config.yaml

        注:config.yaml位置在工程目录下

        为什么这里要特别提到yaml文件,因为这个文件中包含了对整个工程的配置,我们修改其中一些选项,达到对整个工程的控制。讲一些常用的配置选项:

project_path: 工程文件夹所在路径,包括文件夹名。

bodyparts: 自定义的身体点名称。

numframes2pick: 每个视频选择多少张图片作为训练集。

dotsize: 追踪点的显示大小。

iteration: 当前工程中第几次训练。

resnet: 选用resnet的哪个网络。

batch_size: 训练的时候batch大小,显存小、GPU运算能力不足时,适当降低batch_size。

4、从视频中自动提取训练帧

            deeplabcut.extract_frames(config_path,mode='automatic',algo='kmeans',crop=True/False)

        使用 deeplabcut.extract_frames 函数自动从传入的视频中提取训练集。其中参数分别为config.yaml文件路径是否自动提取哪种算法提取是否需要crop裁剪。一般第一个参数传入路径,第二、三个参数不用动,第四个选False。这里可以裁剪但没必要,DLC非常强大,全局特征和局部特征都能有效提取。

5、开始标记训练集(humdrum)

            deeplabcut.label_frames(config_path)

        使用 deeplabcut.label_frames 函数来进行标记训练集。其中参数为config.yaml文件路径。没错,DLC内部自带标记的GUI,且标记好后自动生成数据集,无需用Labelme等工具标记训练集,也无需自己搞训练集,极大降低了入门门槛。

6、检查训练集

            deeplabcut.check_labels(config_path)

        使用 deeplabcut.check_labels 函数检查是否将训练集标记完成。

7、创建训练环境

            deeplabcut.create_training_dataset(config_path)

        使用 deeplabcut.create_training_dataset 进行创建训练环境。这一步如果没有pre_model,则会报错。由于res_net官网访问不了,所以下载预训练模型总会出错。解决方法是在网上搜res_net50或者101或者其他的模型,然后下载解压到Anaconda\envs\DLC-GPU\Lib\site-packages\deeplabcut\pose_estimation_tensorflow\models\pretrained 路径下即可。

8、开始训练

            deeplabcut.train_network(config_path)

        使用 deeplabcut.train_network 训练你的网络。如果你的GPU、CUDA、CUDNN、TensorFlow、训练环境都没问题,则可以开始愉快地开始训练了。GPU能力越强,则训练速度越快,时间越短。推荐RTX2080Ti及以上,如TiTan、Tesla、RTX3080等。如果GPU的显存较小,则适当调小config.yaml中的batch_size。

9、评估网络

            deeplabcut.evaluate_network(config_path,plotting=True)

        评估网络使用 deeplabcut.evaluate_network。这条函数可以在工程目录下生成评估文件夹,在这个文件夹下可以查看网络一些评估参数的图等。词条语句可以跳过(如果不需要评估网络的话)。

10、预测

            deeplabcut.analyze_videos(config_path,['/fullpath/project/videos/'],videotype='.mp4',save_as_csv=True)

        使用 deeplabcut.analyze_videos 进行视频的预测。参数分别为:config.yaml文件路径预测的视频路径预测的视频格式是否保存为csv格式。通过这一步生成网络产生的输出,并保存为csv文件,保存在预测视频同级的文件夹下。

11、生成带有标记的视频

            deeplabcut.create_labeled_video(config_path, [`/analysis/project/videos/reachingvideo1.avi','/fullpath/project/videos/reachingvideo2.avi'],filtered=True)

        使用 deeplabcut.create_labeled_video 函数进行生成带有标记的视频图像。参数为:config.yaml文件路径原视频名是否需要滤波。生成的标记视频会保存在原视频同级的目录下。


至此,DLC简化版操作完成,可以尝试修改这些函数中的参数,玩出更多可能。


三、错误总结

        这里会不定期更新一些错误及解决方法,敬请期待。

        错误和解决方案见下连接:常见错误和解决方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容