服务器环境配置
只有配置好服务器环境,才能顺利运行本项目,包括模型训练、推理,动物行为分析流程。论文图表复现🔗 不需要配置服务器环境,只需要配置本地环境即可。
服务器环境配置注意
深度学习环境是本项目的核心基础。我们理解环境搭建可能是一个复杂且具有挑战性的过程,这也是整个AI领域普遍面临的难题。 虽然我们在持续优化部署流程,但当前项目仍存在一些版本兼容性问题。我们建议您在配置环境时保持耐心,并具备一定的技术钻研精神,以应对可能出现的挑战。
硬件配置
服务器硬件配置包括:
- 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年) | 2025年版本,未测试 | 备注 |
---|---|---|---|
Ubuntu | 18.04 | 24.04 | 操作系统,推荐 |
Python | 3.7.16 | 3.12 | 开发语言,必须 |
CUDA | 11.4 | 12.9 | 深度学习框架,必须 |
cuDNN | 8.8 | 8.9 | 深度学习框架,必须 |
TensorRT | 8.6 | 10.13 | 推理加速,必须 |
OpenCV-Python | 4.8.0 | 4.12.0 | 图像处理,必须 |
TensorFlow | 2.7.0 | 2.16.0 | DANNCE 模型,必须 |
PyTorch | 1.11.0 | 2.7.1 | 深度学习框架,必须 |
Docker | 24.0.6 | 28.3.0 | 容器化,用于 Mediamtx |
FFmpeg | 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 by NVIDIA HEVC encoder
$ ffmpeg -i /path/to/test.mp4 -c:v hevc_nvenc -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
三方深度学习工具包
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 模型
这是一个提供了 MaskRCNN 的开源项目,用于人体姿态关键点检测。我们进行了 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 的版本,与最新版本可能存在兼容性问题。请根据实际需求选择合适的版本。
安装本项目创建和改造的 python 包
1. LILAB 分析工具包
包含了常见的分析工具,如相机标定流程,大鼠分割、姿态估计流程,行为识别流程,大数据挖掘相关工具等。
- 代码地址: https://github.com/chenxinfeng4/LILAB-py.git
安装方法:
git clone https://github.com/chenxinfeng4/LILAB-py.git
cd LILAB-py
pip install -e .
重要警告
包含许多流程工具,依赖过于庞大,因此不进行自动依赖安装。如果 import 报错,则需要手动安装依赖。
2. FFMPEGCV 工具包
GPU 加速的视频处理工具包,方便多相机视频读写,某些场景下比 OpenCV 快 9 倍。我开源之后,年下载量 7 万次。查看对应文档。
- 代码地址: https://github.com/chenxinfeng4/ffmpegcv.git
安装方法:
pip install ffmpegcv
重要警告
使用 GPU 加速,需要有 NVIDIA-driver。
3. multiview_calib 工具包
相机外参标定(小球标定)的工具包。在三方库基础上,进行了优化,并添加了自定义的标定流程。查看对应文档。
- 代码地址: https://github.com/chenxinfeng4/multiview_calib.git
安装方法:
pip install git+https://github.com/chenxinfeng4/multiview_calib.git
# 小球标定简易教程
git clone https://github.com/chenxinfeng4/multiview_ball_calib
4. 其它改造工具包
torch2trt: torch2trt 改造,支持 engine 文件直接载入。
pip install git+https://github.com/chenxinfeng4/torch2trt
cocoapi: 将 cocoapi 进行多线程改造,提升速度。
pip install git+https://github.com/chenxinfeng4/cocoapi
mmdetection-to-tensorrt: Mask-RCNN 模型转换为 tensorrt 模型。
pip install git+https://github.com/chenxinfeng4/mmdetection-to-tensorrt