PaddleDetection行人分析工具PP-Human案例实操

PaddleDetection行人分析工具-PP-Human案例实操

本项目将带大家快速上手PP-Human,实操行人跟踪、属性分析和行为识别等行人高频场景应用,以及PP-Human多种使用方式。
光看项目不够?飞桨PaddleDetection还准备了三日课程,百度高工现场代码教学。

10月19日(周三)晚 8:30-9:30

为大家带来PP-Human的详细解读,10分钟搭建行人分析系统,课程亮点:

  • 打架摔倒等5大异常行为识别技术揭秘
  • 检测/跟踪/关键点等10+核心算法升级解析
  • 离线/在线视频流推理部署实操
  • 行人属性分析二次开发手把手教学

行人分析工具介绍

行人分析工具,是围绕人的轨迹跟踪、行为识别、属性分析等进行分析的智能工具,可以帮忙人们完成一些繁琐的固定任务的统计、分析。例如:公园、商场的人流量统计;摔倒、打架等危险行为的判断;等等这些以人为核心的分析任务。

PaddleDetection

PaddleDetection为基于飞桨PaddlePaddle的端到端目标检测套件,内置30+模型算法及300+预训练模型,覆盖目标检测、实例分割、跟踪、关键点检测等方向,其中包括服务器端和移动端高精度、轻量级产业级SOTA模型、冠军方案和学术前沿算法,并提供配置化的网络模块组件、十余种数据增强策略和损失函数等高阶优化支持和多种部署方案,在打通数据处理、模型开发、训练、压缩、部署全流程的基础上,提供丰富的案例及教程,加速算法产业落地应用。

github网址:https://github.com/PaddlePaddle/PaddleDetection


环境准备

  1. 首先,下载PaddleDetection代码库
git clone https://github.com/PaddlePaddle/PaddleDetection.git
cd PaddleDetection
  1. 安装代码库依赖包
pip install -r requirements.txt
# 下载代码库并安装依赖软件包
%cd work
!git clone https://gitee.com/paddlepaddle/PaddleDetection
%cd PaddleDetection
!pip install -r requirements.txt

场景分析工具PP-Human、PP-Vehicle介绍

PaddleDetection深入探索核心行业的高频场景,提供了行人、车辆场景的开箱即用分析工具,支持图片/单镜头视频/多镜头视频/在线视频流多种输入方式,广泛应用于智慧交通、智慧城市、工业巡检等领域。支持服务器端部署及TensorRT加速,T4服务器上可达到实时。

🚶‍♂️🚶‍♀️ PP-Human支持四大产业级功能:五大异常行为识别、26种人体属性分析、实时人流计数、跨镜头(ReID)跟踪。

🚗🚙 PP-Vehicle囊括四大交通场景核心功能:车牌识别、属性识别、车流量统计、违章检测。

github网址:https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.5/deploy/pipeline


PP-Human使用操作方式解析

1. 一行命令执行功能(通用配置文件方式):

命令格式:

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml `-o Module.enable=True` --video_file=../video/c1.mp4 --device=gpu

该命令中-o Module.enable=True 命令开启目标功能。
其中Module模块可以是以下任意功能:

  1. MOT(目标跟踪)
  2. ATTR(属性分析)
  3. VIDEO_ACTION(视频行为分析,案例:打架)
  4. SKELETON_ACTION(骨骼行为分析,案例:摔倒)
  5. ID_BASED_DETACTION(检测行为分析,案例:抽烟)
  6. ID_BASED_CLSACTION(分类行为分析,案例:打电话)
  7. REID(跨镜跟踪)
命令参数说明
参数是否必须含义
–configYes配置文件路径
-oOption覆盖配置文件中对应的配置
–image_fileOption需要预测的图片
–image_dirOption要预测的图片文件夹路径
–video_fileOption需要预测的视频,或者rtsp流地址(推荐使用rtsp参数)
–rtspOptionrtsp视频流地址,支持一路或者多路同时输入
–camera_idOption用来预测的摄像头ID,默认为-1(表示不使用摄像头预测,可设置为:0 - (摄像头数目-1) ),预测过程中在可视化界面按q退出输出预测结果到:output/output.mp4
–deviceOption运行时的设备,可选择CPU/GPU/XPU,默认为CPU
–pushurlOption对预测结果视频进行推流的地址,以rtsp://开头,该选项优先级高于视频结果本地存储,打开时不再另外存储本地预测结果视频
–output_dirOption可视化结果保存的根目录,默认为output/
–run_modeOption使用GPU时,默认为paddle, 可选(paddle/trt_fp32/trt_fp16/trt_int8)
–enable_mkldnnOptionCPU预测中是否开启MKLDNN加速,默认为False
–cpu_threadsOption设置cpu线程数,默认为1
–trt_calib_modeOptionTensorRT是否使用校准功能,默认为False。使用TensorRT的int8功能时,需设置为True,使用PaddleSlim量化后的模型时需要设置为False
–do_entrance_countingOption是否统计出入口流量,默认为False
–draw_center_trajOption是否绘制跟踪轨迹,默认为False
–region_typeOption‘horizontal’(默认值)、‘vertical’:表示流量统计方向选择;‘custom’:表示设置闯入区域
–region_polygonOption设置闯入区域多边形多点的坐标,无默认值
–do_break_in_countingOption此项表示做区域闯入检查

请点击此处查看本环境基本用法.

Please click here for more detailed instructions.

# 案例1:使用pphuman通用配置文件infer_cfg_pphuman.yml, 通过 -o MOT.enable=True 命令开启目标跟踪功能, 使用--output_dir指定保存路径(默认为output文件夹)
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o MOT.enable=True --video_file=../video/c1.mp4 --device=gpu --output_dir=output/mot
# 案例2:使用pphuman通用配置文件infer_cfg_pphuman.yml, 通过 -o ATTR.enable=True 命令开启行人属性分析功能
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o ATTR.enable=True --video_file=../video/c1.mp4 --device=gpu --output_dir=output/attr
# 案例3:更换使用的模型,指定使用PP-YOLOE-s版本小模型
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o MOT.enable=True MOT.model_dir=https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_s_36e_pipeline.zip --video_file=../video/c1.mp4 --device=gpu --output_dir=output/mot_s

2. 使用examples配置文件,快速执行功能

命令格式:

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/`config.yml` --video_file=`input.mp4` --device=gpu

只需修改两个选项:

  1. config.yml: 选择目标功能配置文件,根据旋转的配置文件开启相应功能
  2. input.mp4: 选择分析目标视频文件
# 案例1:使用examples配置文件对c1.mp4视频进行行人目标跟踪分析
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_mot.yml --video_file=../video/c1.mp4 --device=gpu --output_dir=output/mot
# 案例2:使用examples配置文件对c1.mp4视频进行行人属性分析
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --video_file=../video/c1.mp4 --device=gpu --output_dir=output/attr
# 案例3:使用examples配置文件对c1.mp4视频进行人员打电话识别分析
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_calling.yml --video_file=../video/c1.mp4 --device=gpu --output_dir=output/calling

3. 视频文件夹并行分析

命令格式:

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/config.yml `--video_dir`=video_dir --device=gpu

其中--video_dir表示视频文件夹路径

# 视频文件夹分析案例
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --video_dir=../video/ --device=gpu

4. 图片输入方式分析

  1. 单张图片分析
    命令格式:
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/config.yml --`image_file`=demo/hrnet_demo.jpg --device=gpu

其中--image_file表述输入图片路径

  1. 图片文件夹分析
    命令格式:
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/config.yml `--image_dir`=video_dir --device=gpu

其中--image_dir表示图片文件夹路径

#案例:单张图片输入分析
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --image_file=demo/hrnet_demo.jpg --device=gpu

5.RTSP视频流推、拉流使用

  1. 拉流命令格式:
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/config.yml `--rtsp=[YOUR_RTSP_SITE]` --device=gpu

其中--rtsp=[YOUR_RTSP_SITE]设置rtsp拉流地址

  1. 推流命令格式
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/config.yml --video_file=input.mp4  `--pushurl=rtsp://127.0.0.1:8554` --device=gpu

其中--pushurl=[YOUR_RTSP_SERVER_IP]设置rtsp推流地址

注意:

  1. 使用RTSP推拉流功能时请确保网络地址可以访问,否则不能正确运行
  2. 受限于Aistudio环境中ffmpeg版本,推流功能无法在Aistudio环境中执行,请下载到本地环境执行。
  3. rtsp推流服务基于 rtsp-simple-server,使用请提前开启,详情及下载地址请参考PP-Human使用文档
#案例:rtsp拉流分析
#!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_mot.yml --rtsp=rtsp://[YOUR_RTSP_SITE] --device=gpu
#案例:rtsp推流分析
#!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_mot.yml --device=gpu --video_file=../video/c1.mp4  --pushurl rtsp://127.0.0.1:8554

飞桨PaddleDetection准备的三日课程由百度研发工程师们详细讲解PP-Human细节,大家千万不要错过!

此文章为搬运
原项目链接

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值