赞
踩
最近有个动作识别项目,采用了mmaction2工具,在使用过程中有些步骤耗费了些时间,例如搭建环境、框架理解。我们的项目要求多视频帧图base64编码传入,涉及到如何改造成多视频帧图推理。比较入门,如果你也感兴趣,继续往下看
先了解下动作识别有哪些?视频领域常见的任务有动作识别、时序动作检测、时空动作检测等。
github:https://github.com/open-mmlab/mmaction2
中文教程:https://mmaction2.readthedocs.io/zh-cn/latest/index.html
英文教程:https://mmaction2.readthedocs.io/zh-cn/latest/index.html
MMAction2 是一款基于 PyTorch 开发的行为识别开源工具包,是 open-mmlab 项目的一个子项目。
so many!下面会以TSN动作识别模型为例
查看github上的介绍,执行mmaction2需要安装openmim、mmcv、mmengine等包,有时候Linux上的conda虚拟环境有点问题,这几个包都装不上,实在是很难解决。后面发现源码给出了Dockerfile,在docker目录里面,便尝试用镜像的方式搭建环境。
创建镜像就容易了,这里简单说明下
# 下载源码,进入docker目录
cd docker
docker build -t mmaction2 .
镜像的创建过程中,在apt-get update这一步,显示的报错 GPG error: NO_PUBKEY xxx,在Dockerfile加上这句就可以解决,将下面这个命令放到apt-get update的上一步,并把编码改成你报错显示的编码
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 报错的编码
我用/bin/bash的方法将镜像启动,参考readme命令,测试TSN模型
# 启动镜像
docker run -it --gpus all mmaction2 /bin/bash
# 下载配置文件和权重文件
mim download mmaction2 --config tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb --dest .
# 测试源码中demo.mp4视频,使用Kinetics-400的标签文件
python demo/demo.py tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb.py \
tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb_20220906-2692d16c.pth \
demo/demo.mp4 tools/data/kinetics/label_map_k400.txt
推理命令解析:
测试的视频截图:
测试结果返回TOP5的结果:第一名是掰手腕,识别正确
上面用了视频文件进行推理,但是实际项目要求图片传入,查询发现mmaction2是支持图片推理,但是使用的版本不同。
python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \
checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \
test_data/frame_3/ tools/data/kinetics/label_map_k400.txt --use-frames
可以发现比上面的视频推理多了–use-frames参数
如果文章对您有所帮助,记得点赞、收藏、评论探讨✌️
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。