服务器环境配置
只有配置好服务器环境,才能顺利运行本项目,包括模型训练、推理和动物行为分析流程。论文图表复现 不需要使用服务器,普通电脑也可安装。
服务器环境配置注意
深度学习环境是本项目的核心基础。我们理解环境搭建可能是一个复杂且具有挑战性的过程,这也是整个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 的版本,与最新版本可能存在兼容性问题。请根据实际需求选择合适的版本。