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