接口描述
传入单帧图像,检测图片中所有机动车辆,返回每辆车的类型和坐标位置,可识别小汽车、卡车、巴士、摩托车、三轮车5类车辆,并对每类车辆分别计数,同时可定位小汽车、卡车、巴士的车牌位置,支持指定矩形区域的车辆检测与数量统计。
当前主要适用于普通监控场景,如道路、停车场等,无人机高空拍摄的图片,因车辆目标较小,识别效果可能欠佳,后续会扩展支持超高空拍摄场景,如有该场景的需求,请通过QQ群或提交工单,详细沟通测试情况。
普通监控场景示例图片:
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/vehicle_detect
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
image | 和url二选一 | string | 0-255彩色图像(base64编码) | 图像数据,Base64编码字符串,不超过4M。最短边至少50px,最长边最多4096px。支持图片格式:jpg,bmp,png。 注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,) |
url | 和image二选一 | string | 0-255彩色图像(base64编码) | 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效。 |
area | 否 | string | 小于原图像素范围 |
只统计该矩形区域内的车辆数,缺省时为全图统计。 逗号分隔,如‘x1,y1,x2,y2,x3,y3...xn,yn',按顺序依次给出每个顶点的x、y坐标(默认尾点和首点相连),形成闭合矩形区域。 服务会做范围(顶点左边需在图像范围内)及个数校验(数组长度必须为偶数,且为4个顶点);目前只支持单个矩形区域。坐标取值不能超过图像宽度和高度,比如1280的宽度,坐标值最大到1279。 |
请求代码示例
提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。
提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。
curl -i -k 'https://aip.baidubce.com/rest/2.0/image-classify/v1/vehicle_det
ect?access_token=【调用鉴权接口获取的token】' --data 'image=【图片Base64编码,
需UrlEncode】' -H 'Content-Type:application/x-www-form-urlencoded'
返回说明
返回参数
字段 | 是否必选 | 类型 | 说明 |
---|---|---|---|
vehicle_num | 是 | object | 检测到的车辆数目 |
+car | 是 | int | 小汽车数量 |
+truck | 是 | int | 卡车数量 |
+bus | 是 | int | 巴士数量 |
+motorbike | 是 | int | 摩托车数量 |
+tricycle | 是 | int | 三轮车数量 |
+carplate | 是 | int | 车牌的数量,小汽车、卡车、巴士才能检测到车牌 |
vehicle_info | 是 | object[] | 每个框的具体信息 |
+location | 是 | object | 检测到的目标坐标位置 |
++left | 是 | int32 | 目标检测框左坐标 |
++top | 是 | int32 | 目标检测框顶坐标 |
++width | 是 | int32 | 目标检测框宽度 |
++height | 是 | int32 | 目标检测框高度 |
+type | 是 | string | 目标物体类型,car、truck、bus、motorbike、tricycle、carplate |
+probability | 是 | float | 置信度分数,取值0-1之间,越接近1说明识别准确的概率越大 |
返回示例
未检测到任何车辆:
{
"vehicle_num":
{
"car":0,
"truck":0,
...
"tricycle":0
},
"vehicle_info":[]
}
检测到3辆小汽车、1辆卡车:
{
"vehicle_num": {
"motorbike": 0,
"tricycle": 0,
"car": 3,
"carplate": 0,
"truck": 1,
"bus": 0
},
"vehicle_info": [
{
"type": "car",
"location": {
"width": 73,
"top": 655,
"left": 1193,
"height": 49
},
"probability": 0.89164280891418
},
{
"type": "car",
"location": {
"width": 40,
"top": 582,
"left": 1026,
"height": 37
},
"probability": 0.75931918621063
},
{
"type": "car",
"location": {
"width": 131,
"top": 712,
"left": 1366,
"height": 68
},
"probability": 0.74551039934158
},
{
"type": "truck",
"location": {
"width": 348,
"top": 604,
"left": 229,
"height": 311
},
"probability": 0.80106335878372
}
]
}