资讯 社区 文档 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

接口说明

车型识别

识别图片中车辆的具体车型,可识别常见的3000+款车型(小汽车为主),输出车辆的品牌型号、颜色、年份、位置信息;支持返回对应识别结果的百度百科词条信息,包含词条名称、百科页面链接、百科图片链接、百科内容简介。

注:当前只支持单主体识别,若图片中有多个车辆,则识别目标最大的车辆。

Json::Value result;

std::string image;
aip::get_file_content("/assets/sample.jpg", &image);

// 调用车型识别
result = client.car_detect(image, aip::null);

// 如果有可选参数
std::map<std::string, std::string> options;
options["top_num"] = "3";
options["baike_num"] = "5";

// 带参数调用车型识别
result = client.car_detect(image, options);

车型识别 请求参数详情

参数名称 是否必选 类型 默认值 说明
image std::string 图片数据的二进制字符串,可以使用aip::get_file_content函数获取
top_num std::string 返回预测得分top结果数,默认为5
baike_num std::string 0 返回百科信息的结果数,默认不返回

车型识别 返回数据参数详情

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位
color_result string 车身颜色
result car-result() 车型识别结果数组
+name string 车型名称,示例:宝马x6
+score double 置信度,取值范围0-1,示例:0.5321
+year string 年份
+baike_info object 对应识别结果的百科词条名称
++baike_url string 对应识别结果百度百科页面链接
++image_url string 对应识别结果百科图片链接
++description string 对应识别结果百科内容描述
location_result string 车辆在图片中的位置信息
+width float 车辆区域的宽度
+height float 车辆区域的高度
+left float 车辆区域离左边界的距离
+top float 车辆区域离上边界的距离

车型识别 返回示例

{
  "log_id": 4086212218842203806,
  "location_result": {
    "width": 447,
    "top": 226,
    "height": 209,
    "left": 188
  },
  "result": [{
    "baike_info": {
      "baike_url": "http://baike.baidu.com/item/%E5%B8%83%E5%8A%A0%E8%BF%AAChiron/20419512",
      "description": "布加迪Chiron是法国跑车品牌布加迪出品的豪华超跑车。配置四涡轮增压发动机,420 公里每小时,有23种颜色的选择,售价高达260万美元。"
    },
    "score": 0.98793351650238,
    "name": "布加迪Chiron",
    "year": "无年份信息"
  },
  {
    "score": 0.0021970034576952,
    "name": "奥迪RS5",
    "year": "2011-2017"
  },
  {
    "score": 0.0021096928976476,
    "name": "奥迪RS4",
    "year": "无年份信息"
  },
  {
    "score": 0.0015581247862428,
    "name": "奥迪RS7",
    "year": "2014-2016"
  },
  {
    "score": 0.00082337751518935,
    "name": "布加迪威航",
    "year": "2004-2015"
  }],
  "color_result": "颜色无法识别"
}

车辆属性识别

传入单帧图像,检测图片中所有车辆,返回每辆车的类型和坐标位置,可识别小汽车、卡车、巴士、摩托车、三轮车、自行车6大类车辆,并针对小汽车识别11种外观属性,包括:是否有车窗雨眉、是否有车顶架、副驾驶是否有人、驾驶位是否系安全带、遮阳板是否放下、车辆朝向等

当前主要适用于普通监控场景,如道路、停车场等,无人机高空拍摄的图片,因车辆目标较小,识别效果可能欠佳,后续会扩展支持超高空拍摄场景,如有该场景的需求,请通过QQ群或提交工单,详细沟通测试情况。

Json::Value result;
std::string image;
aip::get_file_content("/assets/sample.jpg", &image);
// 调用车辆属性识别
result = client.vehicleAttr(image, aip::null);
std::string url = "https//www.x.com/sample.jpg"
result = client.vehicleAttrUrl(url, aip::null);
//  如果有可选参数
std::map<std::string, std::string> options;
options["type"] = "roof_rack"
result = client.vehicleAttr(image, options);
result = client.vehicleAttrUrl(image, options);

请求参数详情

参数 是否必选 类型 取值范围 说明
image 和url二选一 string 0-255彩色图像(base64编码) 图像数据,Base64编码字符串,不超过4M。最短边至少50px,最长边最多4096px。支持图片格式:jpg/bmp/png。 注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)
url 和image二选一 string - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效。
type string 是否选定某些属性输出对应的信息,可从12种输出属性中任选若干,用英文逗号分隔(例如vehicle_type,roof_rack,skylight)。默认输出全部属性

附:type字段说明

ID type 说明 类别数 类别
0 vehicle_type 车辆类型 6 小汽车、卡车、公交车、摩托、三轮车、自行车
1 window_rain_eyebrow 是否有车窗雨眉 2 无车窗雨眉、有车窗雨眉
2 roof_rack 是否有车顶架 2 无车顶架、有车顶架
3 skylight 是否有天窗 2 无天窗、有天窗
4 in_car_item 是否有车内摆放物 2 无车内摆放物、有车内摆放物
5 rearview_item 是否有后视镜悬挂物 2 无后视镜悬挂物、有后视镜悬挂物
6 copilot 副驾驶是否有人 2 副驾驶无人、副驾驶有人
7 driver_belt 驾驶位是否系安全带 2 驾驶位未系安全带、驾驶位系安全带
8 copilot_belt 副驾驶位是否系安全带 2 副驾驶位未系安全带、副驾驶位系安全带
9 driver_visor 驾驶位遮阳板是否放下 2 驾驶位遮阳板未放下、驾驶位遮阳板放下
10 copilot_visor 副驾驶位遮阳板是否放下 2 副驾驶位遮阳板未放下、副驾驶位遮阳板放下
11 direction 车辆朝向 8 正前方,右前方,正右方,右后方,正后方,左后方,正左方,左前方

返回参数详情

字段 是否必选 类型 说明
vehicle_num int 检测到的车辆框数目
vehicle_info object数组 每个车辆检测框的具体信息
+location object 检测到的车辆框位置
++left int 检测框左坐标
++top int 检测框顶坐标
++width int 检测框宽度
++height int 检测框高度
+attributes object数组 包含所有车辆属性内容
++vehicle_type object 车辆类型
+++name string 如"小汽车"
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值
++window_rain_eyebrow object 是否有车窗雨眉
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大(即有车窗雨眉),实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.02
++roof_rack object 是否有车顶架
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.01
++skylight object 是否有天窗
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.5
++in_car_item object 是否有车内摆放物
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.35
++rearview_item object 是否有后视镜悬挂物
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.4
++copilot object 副驾驶是否有人
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.55
++driver_belt object 驾驶位是否系安全带
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.75
++copilot_belt object 副驾驶位是否系安全带
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.85
++driver_visor object 驾驶位遮阳板是否放下
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.2
++copilot_visor object 副驾驶位遮阳板是否放下
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值,推荐阈值0.1
++direction object 车辆朝向
+++name string 如"正前方"
+++score float 对应概率分数,分数越大代表属性的正向取值可能性越大,实际应用中可根据测试情况选取合适的score阈值

返回示例

未检测到任何车辆:

    {
        "vehicle_num": 0,
        "vehicle_info":
        [
            {
                "location":
                {
                    "left": 0,
                    "top": 0,
                    "width": 0,
                    "height": 0
                    "score": 0
                 }
                "attributes":
                {
                }
            }
        ]
    }

检测到2辆小汽车:

    {
         "vehicle_num": 2,
         "vehicle_info":
         [
            {
                "location":
                {
                    "left": 100,
                    "top": 200,
                    "width": 200,
                    "height": 400
                }
                "attributes":
                {
                    "vehicle_type":
                    {
                        "name": "小汽车",
                        "score": 0.852
                    }
                     "window_rain_eyebrow":
                    {
                        "score": 0.937
                    }
                    "roof_rack":
                    {
                        "score": 0.889
                    }
                    "skylight":
                    {
                        "score": 0.925
                    }
                    "in_car_item":
                    {
                        "score": 0.774
                    }
                    "rearview_item":
                    {
                        "score": 0.774
                    }
                    "copilot":
                    {
                        "score": 0.711
                    }
                    "driver_belt":
                    {
                        "score": 0.633
                    }
                    "copilot_belt":
                    {
                        "score": 0.721
                    }
                    "driver_visor":
                    {
                        "score": 0.455
                    }
                    "copilot_visor":
                    {
                        "score": 0.455
                    }
                    "direction":
                    {
                        "name": "正前方",
                        "score": 0.455
                    }
                }
            }
            {
                "location":
                {
                    "left": 400,
                    "top": 200,
                    "width": 200,
                    "height": 400
                }
                "attributes":
                {
                    "vehicle_type":
                    {
                        "name": "小汽车",
                        "score": 0.921
                    }
                    "window_rain_eyebrow":
                    {
                        "score": 0.918
                    }
                    "roof_rack":
                    {
                        "score": 0.850
                    }
                    "skylight":
                    {
                        "score": 0.714
                    }
                    "in_car_item":
                    {
                        "score": 0.787
                    }
                    "rearview_item":
                    {
                        "score": 0.787
                    }
                    "copilot":
                    {
                        "score": 0.711
                    }
                    "driver_belt":
                    {
                        "score": 0.633
                    }
                    "copilot_belt":
                    {
                        "score": 0.721
                    }
                    "driver_visor":
                    {
                        "score": 0.455
                    }
                    "copilot_visor":
                    {
                        "score": 0.455
                    }
                    "direction":
                    {
                        "name": "右前方",
                        "score": 0.455
                    }
                }
             }
         ]
    }

车辆检测

传入单帧图像,检测图片中所有机动车辆,返回每辆车的类型和坐标位置,可识别小汽车、卡车、巴士、摩托车、三轮车5类车辆,并对每类车辆分别计数,同时可定位小汽车、卡车、巴士的车牌位置,支持指定矩形区域的车辆检测与数量统计。

当前主要适用于普通监控场景,如道路、停车场等,无人机高空拍摄的图片,因车辆目标较小,识别效果可能欠佳,后续会扩展支持超高空拍摄场景,如有该场景的需求,请通过QQ群或提交工单,详细沟通测试情况。

Json::Value result;
std::string image;
aip::get_file_content("/assets/sample.jpg", &image);
// 调用车辆检测
result = client.vehicleDetect(image, aip::null);
std::string url = "https//www.x.com/sample.jpg"
result = client.vehicleDetectUrl(url, aip::null);
//  如果有可选参数
std::map<std::string, std::string> options;
options["area"] = ""
result = client.vehicleDetect(image, options);
result = client.vehicleDetectUrl(image, options);

请求参数详情

参数 是否必选 类型 可选值范围 说明
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

返回参数详情

字段 是否必选 类型 说明
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 int32 目标物体类型,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
		}
	]
}

车辆外观损伤识别

针对常见的小汽车车型,识别车辆外观受损部件及损伤类型,支持32种车辆部件、5大类外观损伤。同时可输出损伤的数值化结果(长宽、面积、部件占比),支持单图多种损伤的识别。

  • 可识别的32种汽车外观零部件:前保险杠、机盖、左前叶子板、左A柱、左前门、左后叶子板、左底大边、后保险杠、行李箱盖、右后叶子板、右底大边、右后门、右前门、右前叶子板、右A柱、车顶、钢圈、中网、左前大灯、左前雾灯、左前雾灯框、右前大灯、右前雾灯、右前雾灯框、前保下隔栅、左后视镜、右后视镜、左后外尾灯、左后内尾灯、右后外尾灯、右后内尾灯、左后门
  • 可识别的5类外观损伤:刮擦、凹陷、开裂、褶皱、穿孔(一般指有破洞的情况)
Json::Value result;
std::string image;
aip::get_file_content("/assets/sample.jpg", &image);
// 调用车辆外观损伤识别
result = client.vehicleDamage(image, aip::null);

请求参数详情

参数 是否必选 类型 取值范围 说明
image string 0-255彩色图像(base64编码) 图像数据,Base64编码字符串,不超过4M。最短边至少50px,最长边最多4096px。支持图片格式:jpg,bmp,png。 注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

图片拍摄方式建议与要求

  1. 水平方向放置手机或其他拍照设备;
  2. 正对受损部位,使得受损部位位于图像中心2/3区域内;
  3. 调节手机与受损部位之间的距离,使得整张图能看出受损车辆部件,同时能看清受损区域,尽量减少车身反光、污渍干扰;
  4. 拍摄图片分辨率要求1280 * 720以上,拍摄清晰无模糊、遮挡。

返回参数详情

字段 是否必选 类型 说明
log_id uint32 请求标识码,随机数,唯一;用于排查问题
result object 识别结果
+description string 检验图片效果是否满足识别要求,包含车辆检测、图片内容过滤两部分
1、图片符合要求时,返回very good,返回示例:"Very good【车辆局部特写图】【1.000000】"
2、图片不符合要求时,显示检验不通过的描述信息:
1)没检测到车辆,返回示例:"No car detected !"
2)检测到了车辆,但图片内容未通过校验,返回描述信息【前端过滤类别】【概率值】,返回示例:"Failed【散落部件】【0.303969】"
+damage_info object[] 部件损伤信息
++parts string 汽车零部件名称,共计支持32种零部件
++type unit32 损伤类别,共计支持5类外观损伤;无损伤则返回“正常” 。注:如果全图无损伤,则整个返回结果为空;某个部件的type为“正常”仅表示该部件无损伤
++probability float 概率打分
++numeric_info object[] 损伤的数值化输出结果,如果有多处损伤,则有多个object;损伤的部件需拍摄完整,才能输出数值化结果,否则只返回部件名称和损伤类别,不输出数值化信息
+++length float 损伤区域的长,单位厘米
+++width float 损伤区域的宽,单位厘米
+++area float 损伤区域的面积,为实际面积,不是单纯的长*宽
+++ratio float 损伤区域面积相对于部件面积的占比,= 损伤区域面积 / 部件区域面积,均为实际面积,不是单纯的长*宽

返回示例

图片不满足识别需求,未检测到汽车:

    {
    	"description":"No car detected !",
    	"damage_info":[]
    }

图片不满足识别需求,检测到汽车,但未通过图片内容校验:

    {
    	"description":"Failed[散落部件][0.303969]",
    	"damage_info":[]
    }

图片满足识别需求,正常返回,不包含数值化输出结果,有两处损伤:

    {
    	"description":"Very good[车辆局部特写图][1.000000]",
    	"damage_info":[
    	{
    		"parts":前保险杠,
    		"probability":89,
    		"type":刮擦
    	},
    	{
    		"parts":左前叶子板,
    		"probability":74,
    		"type":凹陷
    	}
    	]
    }

图片满足识别需求,正常返回,包含数值化输出结果,有两处损伤:

    {
    	"description":"Very good[车辆局部特写图][1.000000]",
    	"damage_info":[
    	{
    		"numeric_info":[
    		{
    			"area":3.540100097656250,
    			"height":5.260000228881836,
    			"ratio":0.04069080576300621,
    			"width":1.139999985694885
    		}
    		],
    		"parts":前保险杠,
    		"probability":95,
    		"type":刮擦,
    		"numeric_info":[
    		{
    			"area":2.418999910354614,
    			"height":2.750,
    			"ratio":0.08458041399717331,
    			"width":1.460000038146973
    		}
    		],
    		"parts":左前叶子板,
    		"probability":84,
    		"type":刮擦
    	}
    	]
    }
上一篇
快速入门
下一篇
错误信息