TA的每日心情 | 无聊 2025-8-15 09:01 |
---|
签到天数: 117 天 [LV.6]常住居民II

技冠群雄
 
- 积分
- 663

|
发表于 2025-8-6 17:09:31
|
显示全部楼层
以下是基于PP-Human实现本地部署、打架斗殴行为识别及自定义视频检测的完整方案,结合飞桨官方文档和社区实践整理而成:
一、本地部署与配置步骤
环境准备
安装Python 3.7+、CUDA 11.2(GPU版需匹配驱动)、cuDNN 8.1
创建虚拟环境并安装依赖:
git clone https://github.com/PaddlePaddle/PaddleDetection
cd PaddleDetection
pip install -r requirements.txt
pip install paddlepaddle-gpu==2.5.0 -i https://mirror.baidu.com/pypi/simple # GPU版本
2.下载预训练模型
打架识别模型下载(PP-Human v2):
wget https://bj.bcebos.com/v1/paddled ... PPHG_Fight_attr.tar
tar -xvf PPHG_Fight_attr.tar -C deploy/pipeline/models/
模型配置文件路径:deploy/pipeline/config/infer_cfg_pphuman.yml 23
3.修改配置文件
编辑deploy/pipeline/config/infer_cfg_pphuman.yml ,启用打架检测:
ACTION:
model_dir: output_inference/PPHG_Fight_attr/
enable: True # 开启打架行为识别
二、自定义视频检测与报警输出
1.命令行启动检测
python deploy/pipeline/pipeline.py --config
deploy/pipeline/config/infer_cfg_pphuman.yml \
--video_file=/path/to/your/video.mp4 \
--device=gpu \
--output_dir=output_results \
--draw_center_traj=False \
--do_action=True
--video_file: 指定本地视频路径
--output_dir: 报警截图和结果视频保存目录 4
2.关键代码定制(报警截图)
修改deploy/pipeline/pipeline.py ,添加打架行为触发时的截图逻辑:
# 在 ActionRecognizer 处理逻辑中添加
if actions.get('fight', 0) > 0.8: # 打架置信度阈值
timestamp = time.strftime("%Y%m%d_%H%M%S")
cv2.imwrite(f"alert_screenshots/fight_alert_{timestamp}.jpg", frame) # 保存当前帧截图
cv2.rectangle(frame, (bbox[0](), bbox[1]()[2](), bbox[3]()[0]()[0]()[255]()[2]()[1]()[4]()
- 调用Webhook API:推送JSON报警信息至服务器
3.多摄像头支持
python pipeline.py --rtsp rtsp://cam1_stream rtsp://cam2_stream # 支持多路RTSP流输入
4.性能优化建议
GPU部署:添加--trt_fp16启用TensorRT加速 5
分辨率调整:在配置文件中设置target_size: [640,480]降低计算负载
四、注意事项
硬件要求
设备类型 最低配置 推荐配置
GPU GTX 1060 RTX 3080
CPU i5-8代 Xeon 8核
内存 8GB 32GB
|
|