手势识别
更新时间:2022-01-18
识别图片中的手势类型,返回手势名称、手势矩形框、概率分数,可识别24种手势,支持动态手势识别,适用于手势特效、智能家居手势交互等场景;
支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。
主要适用于3米以内的自拍、他人拍摄,1米内识别效果最佳,拍摄距离太远时,手部目标太小,无法准确定位和识别。
图片中有多个手势时,也能识别,但该情况下,单个手势的目标可能较小,且角度可能不好(例如存在倾斜、遮挡等),识别效果可能受影响。建议针对单个手势进行识别,效果最佳。
注:
1)上述24类以外的其他手势会划分到other类。
2)除识别手势外,若图像中检测到人脸,会同时返回人脸框位置。
可识别的24种手势示意图如下:
序号 | 手势名称 | classname | 示例图 |
---|---|---|---|
1 | 数字1(原食指) | One | |
2 | 数字5(原掌心向前) | Five | |
3 | 拳头 | Fist | |
4 | OK | OK | |
5 | 祈祷 | Prayer | |
6 | 作揖 | Congratulation | |
7 | 作别 | Honour | |
8 | 单手比心 | Heart_single | |
9 | 点赞 | Thumb_up | |
10 | Diss | Thumb_down | |
11 | Rock | ILY | |
12 | 掌心向上 | Palm_up | |
13 | 双手比心1 | Heart_1 | |
14 | 双手比心2 | Heart_2 | |
15 | 双手比心3 | Heart_3 | |
16 | 数字2 | two | |
17 | 数字3 | three | |
18 | 数字4 | four | |
19 | 数字6 | six | |
20 | 数字7 | seven | |
21 | 数字8 | eight | |
22 | 数字9 | nine | |
23 | Rock | Rock | |
24 | 竖中指 | Insult |
Json::Value result;
std::string image;
aip::get_file_content("/assets/sample.jpg", &image);
// 调用手势识别
result = client.gesture(image, aip::null);
手势识别 请求参数详情
参数名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
image | 是 | std::string | 图片数据的二进制字符串,可以使用aip::get_file_content函数获取 |
手势识别 返回数据参数详情
字段 | 是否必选 | 类型 | 说明 |
---|---|---|---|
result_num | 是 | int | 结果数量 |
result | 是 | object[] | 检测到的目标,手势、人脸 |
+classname | 否 | string | 目标所属类别,24种手势、other、face |
+top | 否 | int | 目标框上坐标 |
+width | 否 | int | 目标框的宽 |
+left | 否 | int | 目标框最左坐标 |
+height | 否 | int | 目标框的高 |
+probability | 否 | float | 目标属于该类别的概率 |
log_id | 是 | int64 | 唯一的log id,用于问题定位 |
手势识别 返回示例
{
"log_id": 4466502370458351471,
"result_num": 2,
"result": [{
"probability": 0.9844077229499817,
"top": 20,
"height": 156,
"classname": "Face",
"width": 116,
"left": 173
},
{
"probability": 0.4679304957389832,
"top": 157,
"height": 106,
"classname": "Heart_2",
"width": 177,
"left": 183
}]
}