一、项目介绍:

二、环境安装

  • 平台:windows 10
  • 编译器:pycharm
  • cuda 11.3
  • cudnn 8.2.0.53
conda create -n pphuman python=3.7
conda activate pphuman
pip install paddlepaddle==2.2.1 -i https://mirror.baidu.com/pypi/simple
pip install opencv-python
pip install pyyaml
pip install protobuf==3.20.0
pip install scipy -i https://mirror.baidu.com/pypi/simple
pip install lap
pip install -U scikit-learn
pip install motmetrics
pip install tqdm
pip install shapely
pip install matplotlib
pip install numba==0.56.4

三、执行代码

#直接使用默认配置或者examples中配置文件,或者直接在`infer_cfg_pphuman.yml`中修改配置:
# 例:行人检测,指定配置文件路径和测试图片,图片输入默认打开检测模型


wget -P demo_input -N https://paddledet.bj.bcebos.com/modelcenter/images/PP-Human/human_attr.jpg 
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml --image_file=demo_input/human_attr.jpg --device=gpu --output_dir=demo_output

# 例:行人属性识别,直接使用examples中配置

!wget -P demo_input -N https://paddledet.bj.bcebos.com/modelcenter/images/PP-Human/human_attr.mp4
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --video_file=demo_input/human_attr.mp4 --device=gpu --output_dir=demo_output

#使用命令行进行功能开启,或者模型路径修改:
# 例:行人跟踪,指定配置文件路径,模型路径和测试视频, 命令行中指定的模型路径优先级高于配置文件


wget -P demo_input -N https://paddledet.bj.bcebos.com/modelcenter/images/PP-Human/human_count.mp4
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o MOT.enable=True --video_file=demo_input/human_count.mp4 --device=gpu --output_dir=demo_output

# 例:行为识别,以摔倒识别为例,命令行中开启SKELETON_ACTION模型

wget -P demo_input -N https://paddledet.bj.bcebos.com/modelcenter/images/PP-Human/human_falldown.mp4
!python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_pphuman.yml -o SKELETON_ACTION.enable=True --video_file=demo_input/human_falldown.mp4 --device=gpu --output_dir=demo_output

#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=Ture --rtsp rtsp://[192.168.1.201:1935/hls]  --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播放器](https://vlc.onl/)打开网络流进行播放,播放地址为 `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](https://github.com/aler9/rtsp-simple-server), 如使用推流功能请先开启该服务.
# 2. rtsp推流如果模型处理速度跟不上会出现很明显的卡顿现象,建议跟踪模型使用ppyoloe_s版本,即修改配置中跟踪模型mot_ppyoloe_l_36e_pipeline.zip替换为mot_ppyoloe_s_36e_pipeline.zip。

摄像头:

python deploy/pipeline/pipeline.py --config deploy/pipeline/config/examples/infer_cfg_human_attr.yml --camera_id=0  -o visual=Ture --device=gpu 

视频流测试一直报错,查了一下应该是源码这块问题

参数说明

参数是否必须含义
–configYes配置文件路径
-oOption覆盖配置文件中对应的配置
–image_fileOption需要预测的图片
–image_dirOption要预测的图片文件夹路径
–video_fileOption需要预测的视频,或者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设置禁停区域多边形多点的坐标,无默认值
–illegal_parking_timeOption设置禁停时间阈值,单位秒(s),-1(默认值)表示不做检查

四、效果展示

五、总结