# 人类动作识别

# 简介

人类动作识别是一种计算机视觉任务,通过分析视频或图像序列来自动识别人类正在进行的动作或行为。本质上,它是一个分类任务:输入是视频帧或关键点序列,输出是预定义的动作类别,例如“走路”“跑步”“挥手”等。

# 安装

# Maven

在项目的 pom.xml 中添加以下依赖,详细引入方式参考 Maven 引入

如需引入全部功能,请使用 【不推荐 ❌】 all 模块。

<dependency>
    <groupId>cn.smartjavaai</groupId>
    <artifactId>vision</artifactId>
    <version>1.0.24</version>
</dependency>

# 获取动作识别模型

ActionRecModelConfig config = new ActionRecModelConfig();
config.setModelEnum(ActionRecModelEnum.INCEPTIONV3_KINETICS400_ONNX);
//模型所在路径
config.setModelPath("/Users/wenjie/Documents/develop/model/action/gluoncv-inceptionv3_kinetics400-695477a5.onnx");
config.setDevice(device);
//置信度阈值
config.setThreshold(0.5f);
//指定允许的类别
//config.setAllowedClasses(Arrays.asList("dancing_ballet"));
ActionRecModel model = ActionRecModelFactory.getInstance().getModel(config)

# ActionRecModelConfig参数说明

字段名称 字段类型 默认值 说明
modelEnum ActionRecModelEnum 动作识别模型枚举
modelPath String 模型路径
allowedClasses List<String> 允许的分类列表
threshold double 0.5 置信度阈值,分数低于这个值的结果将被过滤掉。值越高越严格,越低越宽松
device DeviceEnum CPU 指定运行设备,支持 CPU/GPU
gpuId int 0 gpu设备ID 当device为GPU时生效
predictorPoolSize int 默认为cpu核心数 模型预测器线程池大小
customParams Map<String, Object> 个性化配置(按模型类型动态解析)

# 动作识别模型

模型名称 引擎
VIT_BASE_PATCH16 PyTorch
INCEPTIONV3_KINETICS400 OnnxRuntime
INCEPTIONV1_KINETICS400 OnnxRuntime
RESNET_V1B_KINETICS400 OnnxRuntime

⚠️ 注意
不同模型支持的动作类别可能不一样,具体可查看模型目录下的 synset.txt 文件,其中列出了该模型支持的全部动作名称。


# ActionRecModel API 方法说明

# 动作识别

Image图片源请查看文档Image使用说明

R<Classifications> detect(Image image);

# Classifications主要功能

  • items()
    获取所有类别及其对应概率组成的列表。

  • topK() / topK(int k)
    获取 Top-K 的预测结果,结果按概率从高到低排序。

  • best()
    获取概率最高的分类结果。

  • get(String className)
    根据类别名称查询对应的预测结果。

# 模型下载

百度网盘:https://pan.baidu.com/s/1c1-QYzx9lPCKKptUonZvfg?pwd=1234 提取码: 1234

# 完整示例代码

示例代码 (opens new window)

# 离线使用

离线使用请看文档