服务器环境配置

只有配置好服务器环境,才能顺利运行本项目,包括模型训练、推理和动物行为分析流程。论文图表复现 不需要使用服务器,普通电脑也可安装。

服务器环境配置注意

深度学习环境是本项目的核心基础。我们理解环境搭建可能是一个复杂且具有挑战性的过程,这也是整个AI领域普遍面临的难题。 虽然我们在持续优化部署流程,但当前项目仍存在一些版本兼容性问题。我们建议您在配置环境时保持耐心,并具备一定的技术钻研精神,以应对可能出现的挑战。

游乐场 中快速体验

可以使用游乐场进行视频分析处理相关的演示。游乐场基于Docker,将大部分深度学习环境打包好,方便用户快速体验。


硬件配置

服务器硬件配置包括:

  • CPU: Intel Xeon 4314
  • 内存: 256 GB
  • GPU: 4 块 NVIDIA GeForce RTX 3090
  • 存储: 1 TB 固态硬盘 + 8 TB 机械硬盘

软件环境

软件环境包括:

  • 操作系统: Ubuntu 18.04
  • 深度学习框架: CUDA 11.4、cuDNN 8.8、TensorRT 8.6
  • 开发工具: Python 3.7.16、OpenCV-Python 4.8.0、TensorFlow 2.7.0、PyTorch 1.11.0

用于深度学习模型训练和数据分析。

重要警告

  • 目前仅支持 Ubuntu 系统和 NVIDIA 显卡,其他系统请自行查阅相关资料。或者使用游乐场进行快速体验。

  • 由于软件是在2019年配置的,因此部分软件版本可能已经过时,建议根据实际需求选择最新版本。大部分 Python 库可以在 pip 和 conda 中找到,但是部分库可能难以兼容安装。本文档难以兼顾所有软件的最新版本,请自行查阅相关资料。

依赖软件的版本

推荐使用游乐场引用的软件版本号。

软件名称 本机测试版本
号(2022年)
游乐场 Docker
(推荐)
2025年版本
(未测试)
备注
Ubuntu 18.04 22.04 24.04 操作系统,推荐
Python 3.7.16 3.8.10 3.12 开发语言,必须
CUDA 11.4 12.9 12.9 深度学习框架,必须
cuDNN 8.8 9.12 9.12 深度学习框架,必须
TensorRT 8.6 8.6 10.13 推理加速,必须
OpenCV-Python 4.8.0 4.12.0 4.12.0 图像处理,必须
TensorFlow 2.7.0 2.11.0 2.16.0 DANNCE 模型,必须
PyTorch 1.11.0 1.12.1 2.7.1 深度学习框架,必须
Docker 24.0.6 - 28.3.0 容器化,用于 Mediamtx
FFmpeg 4.x 4.x 6.x 视频读写
Mediamtx - - - 视频流服务器,用于闭环行为干预

测试安装环境

所有软件安装完成后,需要进行测试,以确保安装成功。测试方法如下:

测试 nvidia cuda driver

$ nvidia-smi

测试 Nvidia Cuda Compiler

$ nvcc --version  # 游乐场并未安装 

测试 TensorRT 命令行工具

$ trtexec --onnx=/path/to/model.onnx --saveEngine=/path/to/model.engine  # 游乐场并未安装 

测试 polygraphy (NVIDIA 官方工具) 命令行工具

$ polygraphy inspect model --onnx=/path/to/model.onnx

测试 FFmpeg 命令行工具

# ffmpeg generate a 640x480 video, 30 fps, 1 minute
$ ffmpeg -f lavfi -i testsrc=duration=60:size=640x480:rate=30 -c:v libx264 -pix_fmt yuv420p -f mp4 /path/to/test.mp4

# convert it to hevc
$ ffmpeg -i /path/to/test.mp4 -c:v hevc -pix_fmt yuv420p -f mp4 /path/to/test_hevc.mp4

测试 Docker 命令行工具

$ docker run hello-world
$ docker run --rm -it -e MTX_PROTOCOLS=tcp -p 8554:8554 -p 1935:1935 bluenviron/mediamtx

三方深度学习工具包

已经安装的深度学习模型:

模型 (conda) 用途 项目路径(游乐场)
Mask-RCNN 大鼠分割 ~/mmdet-pkg
mmpose 2D 关键点检测 ~/mmpose-pkg
YOLO-v8 大鼠实时分割 ~/YOLOv8-pkg
DANNCE 大鼠3D关键点检测 ~/dannce-pkg
SmoothNet 关键点时序平滑 -

1. OPEN-MMLAB/MMDETECTION 模型

这是一个提供了 MaskRCNN 的开源项目,用于目标检测和分割。我们进行了 fork (2022年),并添加了自定义的模型和配置文件,以实现多大鼠分割。

安装方法请参考 MMdetection 的官方文档

  • 代码地址: https://github.com/chenxinfeng4/mmdetection.git

重要警告

我们 fork 的是 MMDET 1.x 版本,目前支持 python3.7;官网最新的 MMDET 是 3.x 版本,可能存在严重的兼容性问题。请根据实际需求选择合适的版本。

2. OPEN-MMLAB/MMPOSE 模型

这是一个用于人体姿态关键点检测的开源项目。我们进行了 fork(2022年),并添加了自定义的模型和配置文件,以实现小球检测。

安装方法请参考 MMpose 的官方文档

  • 代码地址: https://github.com/chenxinfeng4/mmpose.git

重要警告

我们 fork 的是 MMPOSE 0.x 版本。新版本和环境可能存在兼容性问题。请根据实际需求选择合适的版本。

3. YOLO-v8 模型

这是一个轻量级目标检测和实例分割的开源项目。我们进行了 fork(2024年),并添加了自定义的模型和配置文件,以实现实时多大鼠分割。

  • 代码地址: https://github.com/chenxinfeng4/ultralytics.git

重要警告

我们 fork 的版本,与最新版本可能存在兼容性问题。请根据实际需求选择合适的版本。

4. DANNCE 模型

这是一个多视角动物姿态估计的库。我们进行了 fork(2022年),并添加了自定义的模型和配置文件,以实现实时多大鼠3D关键点识别。

  • 代码地址: https://github.com/chenxinfeng4/dannce.git

重要警告

我们 fork 的版本,与最新版本可能存在兼容性问题。而且,该库的预测精度高,但速度慢。我们进行了速度优化,导致与原始代码存在一些差异,以及更多的兼容性问题。安装起来比较麻烦,我们正在优化安装文档。

5. SmoothNet 模型

这是一个姿态时间平滑的库。我们进行了 fork(2022年),并添加了自定义的模型和配置文件,以实现多大鼠3D关键点平滑。

  • 代码地址: https://github.com/chenxinfeng4/SmoothNet.git

重要警告

我们 fork 的版本,与最新版本可能存在兼容性问题。请根据实际需求选择合适的版本。