跳转至

通用物体识别

检测图像中的通用对象主体,返回该对象主体的区域信息与置信度。支持识别300类物体,详情可参见本文中支持的目标识别实体列表。

适用场景

可应用于IPC图像检测、交通、安防等行业中图像场景的目标检测与跟踪。

支持的目标识别实体列表

ID 名称
accordion 手风琴
airplane 飞机
alligator 鳄鱼
apple 苹果
army_tank 军队坦克
awning
backpack 背包
ball
balloon 气球
banana 香蕉
barrel
baseball 棒球
baseball_bat 棒球棒
baseball_glove 棒球手套
basket 篮子
bathtub 浴缸
bear
bed
bee 蜜蜂
beer_bottle 啤酒瓶
bell_pepper 灯笼椒
belt 腰带
bench 长椅
bicycle 自行车
billboard 广告牌
bird
blackboard 黑板
boat
book
bookcase 书柜
boot 开机
bottle 瓶子
bowl
bowling_ball 保龄球
box 盒子
bracelet 手镯
brassiere 乳罩
bread 面包
broccoli 西兰花
building 建造
bus_(vehicle) 公共汽车_(车辆)
butterfly 蝴蝶
cabinet 内阁
cake 蛋糕
camel 骆驼
camera 相机
can 能够
candle 蜡烛
candy_bar 糖果条
cannon 大炮
canoe 独木舟
car_(automobile) car_(汽车)
carrot 胡萝卜
cart 大车
castle 城堡
cat
caterpillar 毛虫
cello 大提琴
cellular_telephone 蜂窝电话
chair 椅子
chicken_(animal) 鸡_(动物)
chopping_board 切菜板
chopstick 筷子
christmas_tree 圣诞树
clock
coat 外套
cocktail 鸡尾酒
coffee_table 咖啡桌
coin 硬币
computer_keyboard 计算机键盘
computer_monitor 电脑显示器
cone 锥体
cookie 曲奇饼
cow
cowboy_hat 牛仔帽
crab_(animal) 螃蟹_(动物)
crown 王冠
cucumber 黄瓜
cup 杯子
cupboard 橱柜
curtain 窗帘
deer 鹿
desk 桌子
dessert 甜点
dinosaur 恐龙
dog
doll 玩具娃娃
dolphin 海豚
door
doorknob 门把手
doughnut 甜甜圈
dragonfly 蜻蜓
drawer 抽屉
dress 裙子
drum_(musical_instrument) 鼓_(音乐乐器)
duck
duffel_bag 行李袋
eagle
earring 耳环
egg
elephant 大象
fan 扇子
faucet 龙头
fireplace 壁炉
fireplug 火塞
fish
flag 旗帜
flower_arrangement 插花
flowerpot 花盆
football_helmet 足球头盔
fork
fountain 喷泉
french_fries 炸薯条
frisbee 飞盘
frog 青蛙
fruit 水果
fruit_juice 果汁
frying_pan 平底锅
gazelle 羚羊
giraffe 长颈鹿
glass_(drink_container) 玻璃_(饮料容器)
glove 手套
goat 山羊
goggles 风镜
goose
grape 葡萄
guitar 吉他
gun
hamburger 汉堡包
hamster 仓鼠
handbag 手提包
handle 处理
harbor_seal 港口密封
hat 帽子
headset 耳机
helicopter 直升机
helmet 头盔
high_heels 高跟鞋
hog
horse
house
icecream 冰淇淋
insect 昆虫
jacket 夹克
jaguar 捷豹
jean 牛仔布
jellyfish 海蜇
kitchen_table 厨房的桌子
kite 风筝
knife
ladder 梯子
lamp
lantern 灯笼
laptop_computer 笔记本电脑
lavender 薰衣草
lemon 柠檬
lettuce 莴苣
license_plate 车牌
life_jacket 救生衣
lightbulb 灯泡
lighthouse 灯塔
lily 百合
lion 狮子
lizard 蜥蜴
maple
mask 面具
microphone 麦克风
microwave_oven 微波炉
minivan 小型货车
mirror 镜子
monkey
motorcycle 摩托车
mouse_(computer_equipment) 鼠标_(计算机设备)
muffin 松饼
mug 马克杯
mushroom 蘑菇
musical_instrument 乐器
napkin 餐巾
necklace 项链
necktie 领带
nightstand 床头柜
onion 洋葱
orange_(fruit) 橙子_(水果)
oven 烤箱
owl 猫头鹰
paddle
painting 绘画
palm_tree 棕榈树
parachute 降落伞
parking_meter 停车收费表
parrot 鹦鹉
pasta 意大利面
pastry 糕点
pen
penguin 企鹅
person
piano 钢琴
pillow 枕头
pizza 比萨
plastic_bag 塑料袋
plate 盘子
polar_bear 北极熊
pool_table 池表
porch 门廊
poster 海报
potted_plant 盆栽植物
pumpkin 南瓜
rabbit 兔子
refrigerator 冰箱
remote_control 遥控
ring 戒指
roller_skate 溜冰鞋
rose 玫瑰
salad 沙拉
sandal_(type_of_shoe) 凉鞋
sandwich 三明治
saucer 碟子
saxophone 萨克斯管
scarf 围巾
scissors 剪刀
sculpture 雕塑
sheep
shirt 衬衫
shoe
short_pants 短裤
shrimp
sink 下沉
skateboard 滑板
ski 滑雪
skirt 短裙
skullcap 黄芩
snake
snowboard 滑雪板
soccer_ball 足球
sock 短袜
sofa 沙发
sofa_bed 沙发床
sparrow 麻雀
speaker_(stero_equipment) 扬声器_(音响设备)
spectacles 眼镜
spider 蜘蛛
spoon 勺子
sportswear 运动服
squirrel 松鼠
stool 凳子
stop_sign 停止标志
stove 火炉
straw_(for_drinking) 稻草_(喝)
strawberry 草莓
street_sign 街道路标
streetlight 路灯
suit_(clothing) 套装_(服装)
suitcase 手提箱
sunflower 向日葵
sunglasses 太阳镜
sunhat 太阳帽
surfboard 冲浪板
sushi 寿司
swimming_pool 游泳池
swimsuit 泳装
table 桌子
tablet_computer 平板电脑
taxi 出租车
teddy_bear 玩具熊
telephone 电话
television_set 电视机
tennis_ball 网球
tennis_racket 网球拍
tent 帐篷
tiger 老虎
toilet 洗手间
toilet_tissue 卫生纸
tomato 番茄
toothbrush 牙刷
towel 毛巾
tower
toy 玩具
traffic_light 红绿灯
train_(railroad_vehicle) 火车_(铁路_车辆)
trash_can 垃圾箱
tray 托盘
tree
tripod 三脚架
trousers 裤子
truck 卡车
trumpet 喇叭
turtle
umbrella
vase 花瓶
vegetables 蔬菜
violin 小提琴
wall_socket 墙上的插座
watch 手表
water_jug 水壶
whale
wheel 车轮
wheelchair 轮椅
window 窗户
wineglass 红酒杯
zebra 斑马

API参数说明

  • HTTP 方法: POST

  • Body 请求参数

名称 类型 是否必选 说明
url String 与 img 参数二选一 图像的 URL 地址。支持 HTTP/HTTPS 和 S3 协议。要求图像格式为 jpg/jpeg/png/bmp ,最长边不超过 4096px。
img String 与 url 参数二选一 进行 Base64 编码的图像数据
  • 请求 Body 示例
{
"url": "图像的URL地址"
}
{
"img": "Base64编码的图像数据"
}
  • 返回参数
名称 类型 说明
Labels List 图像中找到的目标列表
Name String 目标类别名
Instances List 类别实例列表
BoundingBox JSON 实例在图像中的的坐标值,包含top,left,width,height相对全画面的百分比
Confidence Float 实例的置信度,0-100
Confidence Int 当前类别实例置信度的最大值
LabelModelVersion String 当前模型版本号
  • 返回示例
{
    "Labels": [
        {
            "Name": "car_(automobile)", 
            "Confidence": 67.87780523300171, 
            "Instances": [
                {
                    "BoundingBox": {
                        "Width": 1.0013043403596384, 
                        "Height": 0.9958885181613408, 
                        "Left": -0.00021715163893532008, 
                        "Top": 0.00033918747441136817
                    }, 
                    "Confidence": 67.87780523300171
                }
            ]
        }, 
        {
            "Name": "mirror", 
            "Confidence": 59.2678964138031, 
            "Instances": [
                {
                    "BoundingBox": {
                        "Width": 0.14041614532470703, 
                        "Height": 0.29166373257057565, 
                        "Left": 0.2743588984012604, 
                        "Top": 0.2794425819140053
                    }, 
                    "Confidence": 59.2678964138031
                }
            ]
        }, 
        {
            "Name": "window", 
            "Confidence": 16.396354138851166, 
            "Instances": [
                {
                    "BoundingBox": {
                        "Width": 0.44319993257522583, 
                        "Height": 0.6673663154702585, 
                        "Left": 0.5509995222091675, 
                        "Top": 0.015529238811174562
                    }, 
                    "Confidence": 16.396354138851166
                }
            ]
        }
    ], 
    "LabelModelVersion": "1.2.0"
}

开始使用

API资源浏览器

前提条件

通过AWS CloudFormation部署解决方案时,您需要:

  • 设置参数API Exploreryes
  • 设置参数API Gateway AuthorizationNONE

否则,在API资源浏览器中只能看到该API的参考定义,而不能进行在线测试等操作。

操作步骤

  1. 访问AWS CloudFormation控制台
  2. 从堆栈列表中选择方案的根堆栈,而不是嵌套堆栈。列表中嵌套堆栈的名称旁边会显示嵌套(NESTED)。

  3. 打开输出(Outputs)标签页,找到APIExplorer对应的URL。

  4. 点击URL访问API资源浏览器。页面将显示在部署解决方案时选中的API。

  5. 点击API右侧的向下箭头,展开显示API标准模型的请求方法。

  6. 点击右侧的测试(Try it out)按钮,并在Request body中输入正确的Body请求数据进行测试,并查看测试结果。
  7. 确认格式正确后,点击下方的Execute
  8. Responses body中查看返回的JSON结果。您还可以通过右侧复制或下载按钮保存处理结果。
  9. Response headers中查看响应头的相关信息。
  10. (可选)点击Execute右侧Clear按钮,即可清空Request bodyResponses测试结果。

Postman(AWS_IAM认证)

  1. 访问AWS CloudFormation控制台。
  2. 从堆栈列表中选择方案的根堆栈。
  3. 打开输出标签页,找到以 ObjectRecognition 为前缀的URL。
  4. 在Postman中新建标签页,并把URL粘贴到地址栏,选择POST作为HTTP调用方法。

  5. 打开Authorization配置,在下拉列表里选择Amazon Web Service Signature,并填写对应账户的AccessKey、SecretKey和Amazon Web Service Region(例如,cn-north-1或cn-northwest-1)。

  6. 打开Body配置项,选中raw和JSON数据类型。

  7. 在Body中输入测试数据,单击Send按钮即可看到相应返回结果。

{
  "url": "图像的URL地址"
}

cURL

  • Windows
curl --location --request POST "https://[API_ID].execute-api.[AWS_REGION].amazonaws.com/[STAGE]/object_recognition" ^
--header "Content-Type: application/json" ^
--data-raw "{\"url\": \"图像的URL地址\"}"
  • Linux/MacOS
curl --location --request POST 'https://[API_ID].execute-api.[AWS_REGION].amazonaws.com/[STAGE]/object_recognition' \
--header 'Content-Type: application/json' \
--data-raw '{
  "url":"图像的URL地址"
}'

Python(AWS_IAM认证)

import requests
import json
from aws_requests_auth.boto_utils import BotoAWSRequestsAuth

auth = BotoAWSRequestsAuth(aws_host='[API_ID].execute-api.[AWS_REGION].amazonaws.com',
                           aws_region='[AWS_REGION]',
                           aws_service='execute-api')

url = 'https://[API_ID].execute-api.[AWS_REGION].amazonaws.com/[STAGE]/object_recognition'
payload = {
    'url': '图像的URL地址'
}
response = requests.request("POST", url, data=json.dumps(payload), auth=auth)
print(json.loads(response.text))

Python(NONE认证)

import requests
import json

url = "https://[API_ID].execute-api.[AWS_REGION].amazonaws.com/[STAGE]/object_recognition"

payload = json.dumps({
  "url": "图像的URL地址"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Java

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"url\":\"图像的URL地址\"\n}");
Request request = new Request.Builder()
  .url("https://xxxxxxxxxxx.execute-api.xxxxxxxxx.amazonaws.com/[STAGE]/object_recognition")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();

成本预估

您需要承担运行解决方案时使用亚马逊云科技各个服务的成本费用。截至这次发布的版本,影响解决方案的成本因素主要包括:

  • Amazon API Gateway调用次数
  • Amazon API Gateway数据输出量
  • Amazon CloudWatch Logs存储量
  • Amazon Elastic Container Registry存储量

如果您选择基于Amazon Lambda架构部署,影响成本的因素还包括:

  • Amazon Lambda调用次数
  • Amazon Lambda运行时间

与之对应的Amazon SageMaker架构部署,影响成本的因素还包括:

  • Amazon SageMaker终端节点实例类型
  • Amazon SageMaker终端节点数据输入量
  • Amazon SageMaker终端节点数据输出量

成本预估示例1

以由西云数据运营的亚马逊云科技中国(宁夏)区域(cn-northwest-1)为例,处理1MB图像,处理时间1秒

使用本方案处理此图像所需的成本费用如下表所示:

服务 用量 费用
AWS Lambda 调用百万次 ¥1.36
AWS Lambda 内存10240MB,每次运行1秒 ¥1134.8
Amazon API Gateway 调用百万次 ¥28.94
Amazon API Gateway 数据输出以每次10KB计算,¥0.933/GB ¥9.33
Amazon CloudWatch Logs 每次10KB,¥6.228/GB ¥62.28
Amazon Elastic Container Registry 0.5GB存储,每月每GB¥0.69 ¥0.35
合计 ¥1237.06

成本预估示例2

以美国东部(俄亥俄州)区域(us-east-2)为例,处理1MB图像,处理时间1秒

使用本方案处理此图像所需的成本费用如下表所示:

服务 用量 费用
AWS Lambda 调用百万次 $0.20
AWS Lambda 内存10240MB,每次运行1秒 $166.7
Amazon API Gateway 调用百万次 $3.5
Amazon API Gateway 数据输出以每次10KB计算,$0.09/GB $0.9
Amazon CloudWatch Logs 每次10KB,$0.50/GB $5
Amazon Elastic Container Registry 0.5GB存储,每月每GB$0.1 $0.05
合计 $176.35

卸载部署

您可以通过AWS CloudFormation卸载 通用物体识别 功能,具体步骤请见部署解决方案:更新AWS CloudFormation堆栈(添加或删除AI功能),并在参数部分确认 ObjectRecognition 参数设置为no

卸载时间:10 分钟