目录

  • 环境准备
  • 模型下载
  • 配置文件说明
  • 预测部署
    • 参数说明
  • 方案介绍
    • 行人检测
    • 行人跟踪
    • 跨镜行人跟踪
    • 属性识别
    • 行为识别

环境准备

环境要求: PaddleDetection版本 >= release/2.4 或 develop版本

PaddlePaddle和PaddleDetection安装

# PaddlePaddle CUDA10.1
python -m pip install paddlepaddle-gpu==2.2.2.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html# PaddlePaddle CPU
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple# 克隆PaddleDetection仓库
cd <path/to/clone/PaddleDetection>
git clone https://github.com/PaddlePaddle/PaddleDetection.git# 安装其他依赖
cd PaddleDetection
pip install -r requirements.txt
  1. 详细安装文档参考文档
  2. 如果需要TensorRT推理加速(测速方式),请安装带TensorRT版本Paddle。您可以从Paddle安装包下载安装,或者按照指导文档使用docker或自编译方式准备Paddle环境。

模型下载

PP-Human提供了目标检测、属性识别、行为识别、ReID预训练模型,以实现不同使用场景,用户可以直接下载使用

任务 端到端速度(ms) 模型方案 模型体积
行人检测(高精度) 25.1ms 多目标跟踪 182M
行人检测(轻量级) 16.2ms 多目标跟踪 27M
行人跟踪(高精度) 31.8ms 多目标跟踪 182M
行人跟踪(轻量级) 21.0ms 多目标跟踪 27M
跨镜跟踪(REID) 单人1.5ms REID REID:92M
属性识别(高精度) 单人8.5ms 目标检测
属性识别
目标检测:182M
属性识别:86M
属性识别(轻量级) 单人7.1ms 目标检测
属性识别
目标检测:182M
属性识别:86M
摔倒识别 单人10ms 多目标跟踪
关键点检测
基于关键点行为识别
多目标跟踪:182M
关键点检测:101M
基于关键点行为识别:21.8M
闯入识别 31.8ms 多目标跟踪 多目标跟踪:182M
打架识别 19.7ms 视频分类 90M
抽烟识别 单人15.1ms 目标检测
基于人体id的目标检测
目标检测:182M
基于人体id的目标检测:27M
打电话识别 单人6.0ms 目标检测
基于人体id的图像分类
目标检测:182M
基于人体id的图像分类:45M

下载模型后,解压至./output_inference文件夹。

在配置文件中,模型路径默认为模型的下载路径,如果用户不修改,则在推理时会自动下载对应的模型。

注意:

  • 模型精度为融合数据集结果,数据集包含开源数据集和企业数据集
  • ReID模型精度为Market1501数据集测试结果
  • 预测速度为T4下,开启TensorRT FP16的效果, 模型预测速度包含数据预处理、模型预测、后处理全流程

配置文件说明

PP-Human相关配置位于deploy/pipeline/config/infer_cfg_pphuman.yml中,存放模型路径,该配置文件中包含了目前PP-Human支持的所有功能。如果想要查看某个单一功能的配置,请参见deploy/pipeline/config/examples/中相关配置。此外,配置文件中的内容可以通过-o命令行参数修改,如修改属性的模型目录,则可通过-o ATTR.model_dir="DIR_PATH"进行设置。

功能及任务类型对应表单如下:

输入类型 功能 任务类型 配置项
图片 属性识别 目标检测 属性识别 DET ATTR
单镜头视频 属性识别 多目标跟踪 属性识别 MOT ATTR
单镜头视频 行为识别 多目标跟踪 关键点检测 摔倒识别 MOT KPT SKELETON_ACTION

例如基于视频输入的属性识别,任务类型包含多目标跟踪和属性识别,具体配置如下:

crop_thresh: 0.5
attr_thresh: 0.5
visual: TrueMOT:model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_pipeline.ziptracker_config: deploy/pipeline/config/tracker_config.ymlbatch_size: 1enable: TrueATTR:model_dir:  https://bj.bcebos.com/v1/paddledet/models/pipeline/PPLCNet_x1_0_person_attribute_945_infer.zipbatch_size: 8enable: True

注意:

  • 如果用户需要实现不同任务,可以在配置文件对应enable选项设置为True。

预测部署

  1. 直接使用默认配置或者examples中配置文件,或者直接在infer_cfg_pphuman.yml中修改配置:
# 例:行人检测,指定配置文件路径和测试图片,图片输入默认打开检测模型
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml --image_file=test_image.jpg --device=gpu# 例:行人属性识别,直接使用examples中配置
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --video_file=test_video.mp4 --device=gpu
  1. 使用命令行进行功能开启,或者模型路径修改:
# 例:行人跟踪,指定配置文件路径,模型路径和测试视频, 命令行中指定的模型路径优先级高于配置文件
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o MOT.enable=True MOT.model_dir=ppyoloe_infer/ --video_file=test_video.mp4 --device=gpu# 例:行为识别,以摔倒识别为例,命令行中开启SKELETON_ACTION模型
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o SKELETON_ACTION.enbale=True --video_file=test_video.mp4 --device=gpu
  1. rtsp推拉流
  • rtsp拉流预测

对rtsp拉流的支持,使用--rtsp RTSP [RTSP ...]参数指定一路或者多路rtsp视频流,如果是多路地址中间用空格隔开。(或者video_file后面的视频地址直接更换为rtsp流地址),示例如下:

# 例:行人属性识别,单路视频流
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml -o visual=False --rtsp rtsp://[YOUR_RTSP_SITE]  --device=gpu# 例:行人属性识别,多路视频流
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml -o visual=False --rtsp rtsp://[YOUR_RTSP_SITE1]  rtsp://[YOUR_RTSP_SITE2] --device=gpu
  • 视频结果推流rtsp

预测结果进行rtsp推流,使用--pushurl rtsp:[IP] 推流到IP地址端,PC端可以使用VLC播放器打开网络流进行播放,播放地址为 rtsp:[IP]/videoname。其中videoname是预测的视频文件名,如果视频来源是本地摄像头则videoname默认为output.

# 例:行人属性识别,单路视频流,该示例播放地址为 rtsp://[YOUR_SERVER_IP]:8554/test_video
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --video_file=test_video.mp4 --device=gpu --pushurl rtsp://[YOUR_SERVER_IP]:8554

注:

  1. rtsp推流服务基于 rtsp-simple-server, 如使用推流功能请先开启该服务.
  2. rtsp推流如果模型处理速度跟不上会出现很明显的卡顿现象,建议跟踪模型使用ppyoloe_s版本,即修改配置中跟踪模型mot_ppyoloe_l_36e_pipeline.zip替换为mot_ppyoloe_s_36e_pipeline.zip。

Jetson部署说明

由于Jetson平台算力相比服务器有较大差距,有如下使用建议:

  1. 模型选择轻量级版本,特别是跟踪模型,推荐使用ppyoloe_s: https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_s_36e_pipeline.zip
  2. 开启跟踪跳帧功能,推荐使用2或者3: skip_frame_num: 3

使用该推荐配置,在TX2平台上可以达到较高速率,经测试属性案例达到20fps。

可以直接修改配置文件(推荐),也可以在命令行中修改(字段较长,不推荐)。

参数说明

参数 是否必须 含义
--config Yes 配置文件路径
-o Option 覆盖配置文件中对应的配置
--image_file Option 需要预测的图片
--image_dir Option 要预测的图片文件夹路径
--video_file Option 需要预测的视频,或者rtsp流地址(推荐使用rtsp参数)
--rtsp Option rtsp视频流地址,支持一路或者多路同时输入
--camera_id Option 用来预测的摄像头ID,默认为-1(表示不使用摄像头预测,可设置为:0 - (摄像头数目-1) ),预测过程中在可视化界面按q退出输出预测结果到:output/output.mp4
--device Option 运行时的设备,可选择CPU/GPU/XPU,默认为CPU
--pushurl Option 对预测结果视频进行推流的地址,以rtsp://开头,该选项优先级高于视频结果本地存储,打开时不再另外存储本地预测结果视频
--output_dir Option 可视化结果保存的根目录,默认为output/
--run_mode Option 使用GPU时,默认为paddle, 可选(paddle/trt_fp32/trt_fp16/trt_int8)
--enable_mkldnn Option CPU预测中是否开启MKLDNN加速,默认为False
--cpu_threads Option 设置cpu线程数,默认为1
--trt_calib_mode Option TensorRT是否使用校准功能,默认为False。使用TensorRT的int8功能时,需设置为True,使用PaddleSlim量化后的模型时需要设置为False
--do_entrance_counting Option 是否统计出入口流量,默认为False
--draw_center_traj Option 是否绘制跟踪轨迹,默认为False
--region_type Option 'horizontal'(默认值)、'vertical':表示流量统计方向选择;'custom':表示设置闯入区域
--region_polygon Option 设置闯入区域多边形多点的坐标,无默认值
--do_break_in_counting Option 此项表示做区域闯入检查

方案介绍

PP-Human v2整体方案如下图所示:

行人检测

  • 采用PP-YOLOE L 作为目标检测模型
  • 详细文档参考PP-YOLOE和检测跟踪文档

行人跟踪

  • 采用SDE方案完成行人跟踪
  • 检测模型使用PP-YOLOE L(高精度)和S(轻量级)
  • 跟踪模块采用OC-SORT方案
  • 详细文档参考OC-SORT和检测跟踪文档

跨镜行人跟踪

  • 使用PP-YOLOE + OC-SORT得到单镜头多目标跟踪轨迹
  • 使用ReID(StrongBaseline网络)对每一帧的检测结果提取特征
  • 多镜头轨迹特征进行匹配,得到跨镜头跟踪结果
  • 详细文档参考跨镜跟踪

属性识别

  • 使用PP-YOLOE + OC-SORT跟踪人体
  • 使用PP-HGNet、PP-LCNet(多分类模型)完成识别属性,主要属性包括年龄、性别、帽子、眼睛、上衣下衣款式、背包等
  • 详细文档参考属性识别

行为识别:

  • 提供四种行为识别方案
    1. 基于骨骼点的行为识别,例如摔倒识别
    1. 基于图像分类的行为识别,例如打电话识别
    1. 基于检测的行为识别,例如吸烟识别
    1. 基于视频分类的行为识别,例如打架识别
  • 详细文档参考行为识别

官方教程出自:PaddleDetection/PPHuman_QUICK_STARTED.md at release/2.5 · PaddlePaddle/PaddleDetection · GitHub

[paddlepaddle][转载][官方教程]PP-Human快速开始相关推荐

  1. PyTorch官方教程大更新:增加标签索引,新手更加友好

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习>手推 ...

  2. Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译

    http://www.cnblogs.com/alan777/p/6135703.html Unity性能优化(2)-官方教程Diagnosing performance problems using ...

  3. TensorFlow 2官方教程 . Keras机器学习基础知识 . 使用TF Hub进行文本分类

    写在前面 此篇博客转载自tensorflow官方教程中文翻译版: https://www.tensorflow.org/tutorials/keras/text_classification_with ...

  4. 【UDK官方教程】知识点学习第一章

    官方教程毕竟是视频,主要记录一些知识点,大部分是官方视频中文字幕的复制加上一些个人小提示. 官方视频1.0.0 打开UDK跳过提示,会进入到主界面,如下图 1.四个面板我们称作视口,当你在关卡中进行编 ...

  5. opencv python下载_[福利] OpenCV4 Python 最新中文版官方教程来了(附下载)

    教程简介 OpenCV 是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新 OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解 OpenCV 相关细节. ...

  6. basler相机参数简要中文说明_附下载| OpenCV最新中文版官方教程

    OpenCV是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解OpenCV相关细节.教程根据官方提供的 ...

  7. 福利,PyTorch中文版官方教程来啦(附下载)

    PyTorch 中文版官方教程来了. PyTorch 是近期最为火爆的深度学习框架之一,然而其中文版官方教程久久不来.近日,一款完整的 PyTorch 中文版官方教程出炉,读者朋友从中可以更好的学习了 ...

  8. PyTorch官方教程大更新:增加标签索引,更加新手友好

    点击上方↑↑↑"视学算法"关注我 来源:公众号 量子位 授权 PyTorch官方教程,现已大幅更新: 提供标签索引,增加主题分类,更加新手友好. 不必再面对一整页教学文章茫然无措, ...

  9. PyTorch中文版官方教程来啦(附下载)

    PyTorch 中文版官方教程来了. PyTorch 是近期最为火爆的深度学习框架之一,然而其中文版官方教程久久不来.近日,一款完整的 PyTorch 中文版官方教程出炉,读者朋友从中可以更好的学习了 ...

最新文章

  1. 戳戳HackShield Ring0反調試
  2. oracle asm dd命令,使用dd命令复制ASM磁盘的spfile
  3. 缓冲池、String/StringBuffer/StringBuilder、intern()
  4. 4 C++对C的加强之namespace命名空间
  5. 运用代码管理段来提升开发效率
  6. mybatisPlus的分页查询
  7. IntelliJ 创建main函数、for循环、输出语句快捷键
  8. web视图引擎框架对比
  9. Python机器学习(Sebastian著 ) 学习笔记——第五章通过降维压缩数据(Windows Spyder Python 3.6)...
  10. micropython文件上传软件_4-3 为NodeMCU刷入MicroPython固件
  11. hdu 2680 Choose the best route【dijstra+反向建图】
  12. EasyExcel读取文件的问题:Convert excel format exception.You can try specifying the ‘excelType‘ yourself
  13. Landsat-8 介绍
  14. 《学习openCV》例程解析 ex_9_3(codeBook模型实现背景减除)
  15. PR(Premiere) 鼓点节拍插件Beat Edit,打不开的原因
  16. 接口--PCI/PCIE
  17. 计算机网络期中考试总结反思,关于期中反思的说说
  18. 搜狗搜索php,搜狗搜索公众号内容提取
  19. 计算机系统(六):应用层(上篇)
  20. 父组件访问子组件的方法或参数 (子组件暴漏出方法defineExpose)

热门文章

  1. 分享一些我做笔记的经验(二)
  2. jsbox 导入_JSBox 与捷径在 iOS 13 的重要更新
  3. compaq evo d510 bios 密码 如何清除?
  4. 网页浏览加速器 v2008.00 bt
  5. linux安装软件imagemagick,linux下的ImageMagick安装方法
  6. linux7 绑定设备号,【Centos7】如何静态名称下绑定USB设备
  7. Java开发面试复盘
  8. 苹果被罚7800多万?都是防水惹的祸
  9. 宝付积极响应绿色支付倡议,创新绿色支付服务
  10. PL/SQL 11g R2 —— 包