最近发现一个很NB的玩意,deeplabcut,实现自动捕捉动物运动的软件,尝试使用在自己的项目中,所以进行一波操作。
本人环境 Ubuntu 16.04,根据自己电脑显卡分别安装对应版本的NVIDIA,CUDA 9,Anaconda3-4.2.0,Python3.5。请先自行安装好
1、首先到 https://repo.anaconda.com/archive 下载对于你Python版本的Anaconda,并安装。
2、环境创建命令:
# 在上述环境安装完成的情况下进行:
conda create -n deeplabcut-py36 python=3.6
# 激活环境,之后的操作都是在激活 deeplabcut-py36环境的情况下进行操作
source activate deeplabcut-py36
# 笔者安装gpu版本,deeplabcut 现阶段只支持 tensorflow 1.8 版本
conda install tensorflow-gpu
# 安装deeplabcut
pip install deeplabcut
# 安装wxpython-这是一个Python的GUI库
#linux用户 Ubuntu 16.04LTS
pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04/wxPython-4.0.3-cp36-cp36m-linux_x86_64.whl
/
3、环境检测:
# 在激活 deeplabcut-py36 环境下
# 进入 python 交互环境
:~$ python
>>>import tensorflow as tf
>>>sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# 如果能够正确显示出GPU信息说明成功
>>>import deeplabcut
# 无报错则说明成功
4、其他相关命令:
conda info --envs #列出系统中现有的环境
conda remove –n 环境名 –all #移除环境
source activate 环境名 #激活环境
source deactivate # 退出环境
conda create -n deeplabcut-py36 python=3.6 #创建环境
######################################################
使用
导入相关库:
import deeplabcut
import tensorflow as tf
import os
from pathlib import Path
加载数据:
# 路径
path_config_file = os.path.join(os.getcwd(),'DeepLabCut-Felix/examples/Reaching-Mackenzie-2018-08-30/config.yaml')
# 加载数据
deeplabcut.load_demo_data(path_config_file)
# 注意文件夹的 文件变化
# 检查标签数据
deeplabcut.check_labels(path_config_file)
训练数据:deeplabcut.train_network(path_config_file, shuffle=1, saveiters=300, displayiters=10)
可以实时监控显卡运行情况:watch -n 10 nvidia-smi
# ^数字10代表每隔10s刷新一次数据
评估网络:# ctrl + c 停止训练
# 开始评估模型
deeplabcut.evaluate_network(path_config_file,plotting=True)
# 此函数用于评估特定训练状态(快照)或所有状态下特定随机播放/随机播放的训练模型。
# 在数据集(图像)上对网络进行评估,并将结果作为.csv文件存储在评估结果下的子目录中。
分析视频:
# 创建路径
videofile_path = ['/home/DeepLabCut-Felix/examples/Reaching-Mackenzie-2018-08-30/videos/MovieS2_Perturbation_noLaser_compressed.avi']
# 注意保存视频的目录下有两个视频,但不是同一个视频。
# 一个用于训练,一个(MovieS2_Perturbation_noLaser_compressed.avi)用于分析
# 分析视频
print("Start Analyzing the video!")
deeplabcut.analyze_videos(path_config_file, videofile_path )
# 需要较长的时间分析
后续。。。。等待二。。