如何用网站设计制作网站建设所需的硬软件
2026/4/17 23:50:11 网站建设 项目流程
如何用网站设计制作,网站建设所需的硬软件,教育类网站建设策划书,在word环境下wordpress一、前言 在《动作识别》专栏的《动作识别3——mmpose和mmaction2》中我们介绍了如何通过mmpose获取姿态估计的关键点#xff0c;然后将关键点转换为pkl格式#xff0c;就能输入到mmaction2里面基于骨骼关键点的动作识别算法中进行动作识别#xff0c;比如PoseC3D。 为什么我…一、前言在《动作识别》专栏的《动作识别3——mmpose和mmaction2》中我们介绍了如何通过mmpose获取姿态估计的关键点然后将关键点转换为pkl格式就能输入到mmaction2里面基于骨骼关键点的动作识别算法中进行动作识别比如PoseC3D。为什么我们要在这个时候重新提到这个呢因为我们猜测我们之前自建数据集训练TSN进行动作识别包括我们认识的TSM动作识别算法它是端到端的也就是说如果我们的任务是识别人体动作那么这种端到端的视频分类就可能会比较容易受到背景的干扰那如果我们先用yolo做目标检测框出人之后再用这种动作识别呢这样不就规避了背景的干扰吗但每个人的体型、骨骼结构、衣服等都是不一样的这些可能仍然会干扰基于RGB的动作识别算法。当然这些都只是我的猜测。不管是不是真的这样从直觉上来说对人体动作识别我们得看看这个基于骨骼点的动作识别算法也就是先用姿态估计提取骨骼关键点再根据关键点去动作识别这样可能会规避一些无关因素的干扰。那为什么选择PoseC3D呢这是目前从速度和精度综合考虑来看的。在《动作识别4——mmaction2的demo》的4.8我们可以看到一些demo。4.8.1 使用Faster RCNN作为人体检测器HRNetw32作为姿态估计器PoseC3D作为基于骨架的动作识别器和基于骨架的时空动作检测器。每8帧进行一次动作检测预测并每1帧输出1帧到输出视频中。输出视频的帧率为24帧每秒。4.8.2 使用Faster RCNN作为人体检测器TSN-R50-1x1x3作为基于RGB的动作识别器SlowOnly-8x8-R101作为基于RGB的时空动作检测器。每8帧进行一次动作检测预测并每1帧输出1帧到输出视频中。输出视频的帧率为24帧每秒。4.8.3 使用Faster RCNN作为人体检测器HRNetw32作为姿态估计器PoseC3D作为基于骨架的动作识别器SlowOnly-8x8-R101作为基于RGB的时空动作检测器。每8帧进行一次动作检测预测并每1帧输出1帧到输出视频中。输出视频的帧率为24帧每秒。4.8.4 使用Faster RCNN作为人体检测器HRNetw32作为姿态估计器TSN-R50-1x1x3作为基于RGB的动作识别器PoseC3D作为基于骨架的时空动作检测器。每8帧进行一次动作检测预测并每帧输出1帧到输出视频中。输出视频的帧率为24帧每秒。上面的动作识别器和时空动作检测器有什么区别为什么采用Faster RCNN作为人体检测器HRNetw32作为姿态估计器而不是使用yolo目标检测和yolo11-pose一、动作识别器 vs 时空动作检测器的本质区别这两个模块在任务目标、输出形式、计算粒度上完全不同动作识别器Action Recognizer任务对整个视频片段进行动作分类输入预裁剪的视频片段每8帧一个clip输出单一动作标签如kick 置信度类比看图说话回答这段视频在做什么典型模型PoseC3D输入骨架热图序列输出动作类别TSN-R50输入RGB图像序列输出动作类别时空动作检测器Spatio-Temporal Action Detector任务在时空维度上定位动作即检测动作发生的时间和空间位置输入原始视频流 人体检测框输出动作标签 时空边界框空间bbox 时间起止帧类比在电影中标注这个动作从第几秒开始在哪个区域发生典型模型SlowOnly-8x8-R101输出每帧的动作概率 空间特征结合检测器生成带时间维度的动作 tublet时空管Demo中的协作流程视频流(24fps) ↓ 每8帧取1个clip → 动作识别器 → 整段clip的动作类别 ↓ 每帧检测框 → 时空检测器 → 每帧的动作概率 时空定位 ↓ 融合 → 输出带动作标签和定位框的视频核心区别动作识别器提供语义理解这是什么动作时空检测器提供时空定位动作在哪里、持续多久二、为什么用Faster R-CNN HRNetw32这完全是学术惯性 功能需求的折中选择1. MMAction2框架的学术基因历史原因MMAction2继承自MMDetection原生支持Faster R-CNN架构论文复现多数顶会论文如AVA数据集基于Faster R-CNN构建demo需保持一致性模块化设计Faster R-CNN的two-stage结构便于插入时空检测逻辑2. HRNetw32的精度优势特定场景关键点精度在COCO数据集上AP达74.4高于YOLO11-pose的69.5多尺度融合HRNet的并行多分辨率特征融合对遮挡更鲁棒慢速视频优势demo处理的是24fps视频非实时流HRNet的速度劣势~15fps可接受3. 时空检测的稳定性需求Faster R-CNN的RPN生成高质量候选框对小目标远距离人体召回率高HRNet的密集预测为PoseC3D提供高分辨率热图减少关键点抖动三、为什么不用YOLO YOLO11-pose技术层面并非不能而是没必要在demo中展示YOLO11的优势在车载场景不在学术demo特性YOLO11-poseHRNetw32Demo中的影响速度50 FPS15 FPSDemo是离线处理速度不敏感参数量2.7M28.5MDemo跑在服务器显存充足精度AP0.5:0.95 69.574.4HRNet略优demo追求极限精度工程适配✅ 车载优化❌ 通用场景MMAction2无车载专用分支功能安全✅ ASIL-B潜力❌ 无Demo不涉及车规认证MMAction2的架构限制耦合设计Faster R-CNN的roi_head直接输出检测框给下游替换为YOLO需重写数据流预训练权重MMAction2官方只提供Faster R-CNN HRNet的预训练模型用YOLO需从头训练指标对齐AVA等数据集的SOTA指标均基于Faster R-CNN换YOLO无法直接对比二、PosC3Dhttps://mmaction2.readthedocs.io/zh-cn/latest/model_zoo/skeleton.html#posec3d论文地址https://arxiv.org/pdf/2104.13586近年来人体骨架作为一种人体动作的紧凑表示受到了越来越多的关注。许多基于骨架的动作识别方法采用图卷积网络GCN在人体骨架之上提取特征。尽管先前的工作取得了积极成果但基于GCN的方法在鲁棒性、互操作性和可扩展性方面仍存在局限。在本研究中我们提出了PoseC3D一种基于骨架的动作识别新范式它使用3D热图堆叠而非图序列作为人体骨架的基础表示形式。与基于GCN的方法相比PoseC3D在学习时空特征方面更加有效对姿态估计噪声更具鲁棒性并且在跨数据集场景下具有更好的泛化能力。此外PoseC3D能够以无需额外计算成本的方式处理多人场景其特征可方便地在早期融合阶段与其他模态相结合为进一步提升性能提供了广阔的设计空间。在四个具有挑战性的数据集上无论是单独用于骨架还是与RGB模态相结合PoseC3D均稳定地获得了更优的性能。我们先不看论文先把 《动作识别4——mmaction2的demo》的4.8.1再跑一遍。注意切换到conda环境mmaction2_win_env再运行python demo/demo_video_structuralize.py \ --skeleton-stdet-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_ava.pth \ --det-config demo/demo_configs/faster-rcnn_r50_fpn_2x_coco_infer.py \ --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ --pose-config demo/demo_configs/td-hm_hrnet-w32_8xb64-210e_coco-256x192_infer.py \ --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \ --skeleton-config configs/skeleton/posec3d/slowonly_r50_8xb16-u48-240e_ntu60-xsub-keypoint.py \ --skeleton-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_k400.pth \ --use-skeleton-stdet \ --use-skeleton-recog \ --label-map-stdet tools/data/ava/label_map.txt \ --label-map tools/data/kinetics/label_map_k400.txt因为我是手动下载好模型再运行的而且我是在cmd终端运行的。所以我是运行这个python demo/demo_video_structuralize.py ^ --skeleton-stdet-checkpoint checkpoints/posec3d_ava.pth ^ --det-config demo/demo_configs/faster-rcnn_r50_fpn_2x_coco_infer.py ^ --det-checkpoint checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth ^ --pose-config demo/demo_configs/td-hm_hrnet-w32_8xb64-210e_coco-256x192_infer.py ^ --pose-checkpoint checkpoints/hrnet_w32_coco_256x192-c78dce93_20200708.pth ^ --skeleton-config configs/skeleton/posec3d/slowonly_r50_8xb16-u48-240e_ntu60-xsub-keypoint.py ^ --skeleton-checkpoint checkpoints/posec3d_k400.pth ^ --use-skeleton-stdet ^ --use-skeleton-recog ^ --label-map-stdet tools/data/ava/label_map.txt ^ --label-map tools/data/kinetics/label_map_k400.txt输出的视频位置它会在输出信息显示的在demo/test_stdet_recognition_output.mp4。我们打开mmaction2/demo/demo_video_structuralize.py找找它输入视频路径和输出视频路径是在哪定义的。原来是用--video指定输入路径--out-filename指定输出路径这两个路径都是mp4的路径你看你的mp4路径在哪改成你自己的路径就好了。python demo/demo_video_structuralize.py ^ --skeleton-stdet-checkpoint checkpoints/posec3d_ava.pth ^ --det-config demo/demo_configs/faster-rcnn_r50_fpn_2x_coco_infer.py ^ --det-checkpoint checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth ^ --pose-config demo/demo_configs/td-hm_hrnet-w32_8xb64-210e_coco-256x192_infer.py ^ --pose-checkpoint checkpoints/hrnet_w32_coco_256x192-c78dce93_20200708.pth ^ --skeleton-config configs/skeleton/posec3d/slowonly_r50_8xb16-u48-240e_ntu60-xsub-keypoint.py ^ --skeleton-checkpoint checkpoints/posec3d_k400.pth ^ --use-skeleton-stdet ^ --use-skeleton-recog ^ --label-map-stdet tools/data/ava/label_map.txt ^ --label-map tools/data/kinetics/label_map_k400.txt --video rD:\zero_track\mmaction2\demo\input_kick_video\test1.mp4 --out-filename rD:\zero_track\mmaction2\demo\output_kick_video\test1.mp4结果报错找不到路径File d:\zero_track\mmaction2\mmaction\utils\misc.py, line 56, in frame_extractassert osp.exists(video_path), ffile not exit {video_path}AssertionError: file not exit demo\input_kick_video/test1.mp4我明明是在vscode里面对文件进行右键复制路径所以按理说路径不会出错呀原因是路径不能用单引号而且cmd终端不认识r。我们改成双引号然后把r去掉python demo/demo_video_structuralize.py ^ --skeleton-stdet-checkpoint checkpoints/posec3d_ava.pth ^ --det-config demo/demo_configs/faster-rcnn_r50_fpn_2x_coco_infer.py ^ --det-checkpoint checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth ^ --pose-config demo/demo_configs/td-hm_hrnet-w32_8xb64-210e_coco-256x192_infer.py ^ --pose-checkpoint checkpoints/hrnet_w32_coco_256x192-c78dce93_20200708.pth ^ --skeleton-config configs/skeleton/posec3d/slowonly_r50_8xb16-u48-240e_ntu60-xsub-keypoint.py ^ --skeleton-checkpoint checkpoints/posec3d_k400.pth ^ --use-skeleton-stdet ^ --use-skeleton-recog ^ --label-map-stdet tools/data/ava/label_map.txt ^ --label-map tools/data/kinetics/label_map_k400.txt ^ --video D:\zero_track\mmaction2\demo\input_kick_video\test1.mp4 ^ --out-filename D:\zero_track\mmaction2\demo\output_kick_video\test1.mp4在cmd终端中核心要点每行末尾必须加^最后一行除外路径用双引号...包裹不要用r...这种 Python 语法正斜杠/和反斜杠\在 CMD 中都可用但反斜杠要用双引号括起来避免被当作转义符我们从输出视频可以看到人物走动、弯腰这些是识别出来了但是没有识别出我们想要识别的动作接下来我们得自己建数据集训练PoseC3D。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询