2022.3.24重磅开源的行人实时分析系统

一、环境准备

尽量在Ubuntu下面完成测试,windows下面问题极多,新手请勿尝试

项目地址:

PaddleDetection/deploy/pphuman at release/2.4 · PaddlePaddle/PaddleDetection · GitHubObject Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. - PaddleDetection/deploy/pphuman at release/2.4 · PaddlePaddle/PaddleDetectionhttps://github/PaddlePaddle/PaddleDetection/tree/release/2.4/deploy/pphuman

该项目包含于PaddleDetection里面

项目依赖安装方法:

conda create -n paddle 
source activate paddle
# 有老哥反应cuda和cudnn版本对不齐导致的各种奇葩bug
# 这里我的建议是先用conda装一遍torch-gpu,然后再装paddle的环境,该有的就都有了
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch


# PaddlePaddle CUDA10.1
python -m pip install paddlepaddle-gpu==2.2.2.post101 -f https://www.paddlepaddle/whl/linux/mkl/avx/stable.html

# PaddlePaddle CPU
python -m pip install paddlepaddle -i https://mirror.baidu/pypi/simple

# 克隆PaddleDetection仓库
cd <path/to/clone/PaddleDetection>
git clone https://github/PaddlePaddle/PaddleDetection.git

# 安装其他依赖
cd PaddleDetection
pip install -r requirements.txt

二、下载预训练权重

有六个不同的部分,但是下载五个权重就可以了

 目标检测(目标跟踪):https://bj.bcebos/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_pipeline.zip

属性识别:

​​​​​​https://bj.bcebos/v1/paddledet/models/pipeline/strongbaseline_r50_30e_pa100k.zip

关键点检测:

​​​​​​https://bj.bcebos/v1/paddledet/models/pipeline/dark_hrnet_w32_256x192.zip

行为识别:

https://bj.bcebos/v1/paddledet/models/pipeline/STGCN.zip

ReID:

https://bj.bcebos/v1/paddledet/models/pipeline/reid_model.zip

        下载好了以后检查一下权重文件的目录结构,权重的文件夹名字就是压缩包的名字,这个权重文件夹里面直接就是几个权重文件,如果包含在更深一层目录下面需要提出来

我比较懒,不知道行为识别都需要什么,就直接全下载了。

        还有一个部分需要强调,这五个权重是在PaddleDetection项目根目录新建名为output_inference的文件夹,然后丢进去的。虽然Paddle-human是在PaddleDetection/deploy里面的,但是所有的东西都是放在根目录的

三、推理

# 行人检测,指定配置文件路径和测试图片
python deploy/pphuman/pipeline.py --config deploy/pphuman/config/infer_cfg.yml --image_file=test_image.jpg --device=gpu

# 行人跟踪,指定配置文件路径和测试视频
python deploy/pphuman/pipeline.py --config deploy/pphuman/config/infer_cfg.yml --video_file=test_video.mp4 --device=gpu

# 行人跟踪,指定配置文件路径,模型路径和测试视频
# 命令行中指定的模型路径优先级高于配置文件
python deploy/pphuman/pipeline.py --config deploy/pphuman/config/infer_cfg.yml --video_file=test_video.mp4 --device=gpu --model_dir det=ppyoloe/

# 行人属性识别,指定配置文件路径和测试视频
python deploy/pphuman/pipeline.py --config deploy/pphuman/config/infer_cfg.yml --video_file=test_video.mp4 --device=gpu --enable_attr=True

# 行为识别,指定配置文件路径和测试视频
python deploy/pphuman/pipeline.py --config deploy/pphuman/config/infer_cfg.yml --video_file=test_video.mp4 --device=gpu --enable_action=True

        命令直接复制就可以,但是要注意:1、配置文件不需要修改(如果全部按照上面的配置)。2、PaddleDetection根目录里面要有个叫做test_vidro.mp4的视频文件用来测试。

完成后会在outputli生成结果mp4

四、其他

         目前这个行为检测只支持摔倒行为的识别,我手边并没有摔倒的视频,就随便下了个行人视频测了下目标追踪,我觉得效果还可以,但是距离商用还有点距离。

行为识别模型是基于STGCN训练的:

        数据使用了NTU-RGB+D & UR Fall Detection Dataset & 部分业务数据融合训练,精度在业务数据测试集上得到,吃水不忘挖井人,这里要感谢天覆科技。

        简单说就是他们用了三个数据集联合训练的这个模型,但是只开源了识别摔倒检测的模型,如果想识别其他行为,那么需要自己组织数据去训练

        我简单看了下NTU-RGB+D这个数据集,基本上已经够用了,数据集容量也不算太小,后面我会说一下怎么用这个数据集去训练STGCN

更多推荐

Paddle-Human 实时行人分析 | 安装测试指南 (一)