PaddleDetection
在计算机视觉中,视频识别和检测是一个重要的方向。历年来CVPR和ICCV
等顶会文章中这类论文是最多的。视频识别和检测也是最有落地场景前景的,像人脸识别、动作检测、异常检测、行人重识别、行人计数等都是很有落地前景的应用方向。本文介绍百度PaddlePaddle推出PP-Human
行为识别模块,覆盖视频分类、检测、关键点识别等重要领域,既有demo又有代码,是初学者很好的入门学习资料。
Gitee链接:https://gitee.com/paddlepaddle/PaddleDetection/blob/release/2.6/deploy/pipeline/docs/tutorials/pphuman_action.md
基于骨骼点的识别
基于骨骼点关键点识别有ST-GCN框架,主要把人体分为21个重要关节点,根据这些关节点不同的动作有不同的连接方式,运用图神经网络进行分类识别,应用场景有跌倒检测、动作检测等。
跌倒检测
基于骨骼点的行为识别包含行人检测/跟踪,关键点检测和摔倒行为识别三个模型,首先需要下载以下预训练模型:
方案说明
使用多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,,跟踪方案为OC-SORT。
通过行人检测框的坐标在输入视频的对应帧中截取每个行人。使用关键点识别模型得到对应的17个骨骼特征点。骨骼特征点的顺序及类型与COCO一致。每个跟踪ID对应的目标行人各自累计骨骼特征点结果,组成该人物的时序关键点序列。当累计到预定帧数或跟踪丢失后,使用行为识别模型判断时序关键点序列的动作类型。当前版本模型支持摔倒行为的识别,预测得到的class id对应关系为:
❝0: 摔倒, 1: 其他
❞
基于图像分类的行为识别
基于图像分类的行为识别包含行人检测/跟踪,打电话识别两个模型,首先需要下载以下预训练模型:
方案说明
使用目标检测与多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,跟踪方案为OC-SORT,详细文档参考OC-SORT。
通过行人检测框的坐标在输入视频的对应帧中截取每个行人。 通过在帧级别的行人图像通过图像分类的方式实现。当图片所属类别为对应行为时,即认为在一定时间段内该人物处于该行为状态中。该任务使用PP-HGNet实现,当前版本模型支持打电话行为的识别,预测得到的class id对应关系为:
❝0: 打电话, 1: 其他
❞
基于行人轨迹的行为识别
行人轨迹识别可以应用在闯入识别。如某一区域是禁止行人踏入的,当有人踏入时进行报警。
方案说明
使用多目标跟踪获取视频输入中的行人检测框及跟踪ID序号,模型方案为PP-YOLOE,跟踪方案为OC-SORT。
通过行人检测框的下边界中点在相邻帧位于用户所选区域的内外位置,来识别是否闯入所选区域。
基于视频分类的行为识别
视频分类识别可以应用在异常动作识别、打架识别等场景上。
该方案关注的场景为监控摄像头下的打架行为识别。打架行为涉及多人,基于骨骼点技术的方案更适用于单人的行为识别。此外,打架行为对时序信息依赖较强,基于检测和分类的方案也不太适用。由于监控场景背景复杂,人的密集程度、光线、拍摄角度等都会对识别造成影响,本方案采用基于视频分类的方式判断视频中是否存在打架行为。针对摄像头距离人较远的情况,通过增大输入图像分辨率优化。由于训练数据有限,采用数据增强的方式提升模型的泛化性能。
打架识别模型基于6个公开数据集训练得到:Surveillance Camera Fight Dataset、A Dataset for Automatic Violence Detection in Videos、Hockey Fight Detection Dataset、Video Fight Detection Dataset、Real Life Violence Situations Dataset、UBI Abnormal Event Detection Dataset。
预测速度为NVIDIA T4 机器上使用TensorRT FP16时的速度, 速度包含数据预处理、模型预测、后处理全流程。
由上面几个应用场景可知,PaddlePaddle推出的PP-Human模块有很好的应用前景,开箱即用,如果大家想入门视频检测可以先去Gitee看上面的代码和运行demo。
gitee链接:https://gitee.com/paddlepaddle/PaddleDetection