全部产品
云市场

车牌二次识别服务

更新时间:2020-06-04 15:07:53

车牌二次识别服务

一、服务使用场景

传统基于车牌识别技术的停车系统,停车场库的出入口相机在受到角度,光线,天气等因素影响的时候,常常发生无法准确识别车牌的情况,车牌无法准确识别时,会影响车辆的进出和计费,进而导致停车业务无法正常进行。车牌二次识别服务是对停车系统采集的车牌图片原始数据进行二次校验,并将检验结果返回给停车系统的服务,经过停车系统自身识别和阿里云开放平台的二次识别,可以大大提升车牌识别的准确率,减少抬杆失败和计费错误事件。

二、服务带来价值

1、车牌二次识别能够提升场库本地相机采集到的车牌识别图片的准确率
2、能够使得图片的识别更加准确,减少车牌识别错误导致无法抬杆和无法计费的情况。
3、云端二次识别结果和端上不一致时告警,云坐席可以提前介入进行车牌修正。

三、场景串联说明

image.png
第一步:企业出入口相机采集到车辆的进离场图片和进离场结构化数据(车牌号,进离场时间,车场ID,出入口ID等)后,停车场本地系统推送图片信息和进离场信息到企业停车云平台。
第二步:企业停车云平台分析前端推送的进离场数据是否正常,置信度是否高于99%,如果高于99%,则不调用二次识别服务直接进行计费或抬杆处理,对于准确度把握较低或异常(例如价格较大,停车时间过长,停车时间异常)的进离场记录,企业停车平台将进离场的原始图片和信息推送至阿里云停车开放平台进行二次校验。
第三步: 阿里停车开放平台,将停车企业推送的图片和进离场信息进行比对,并返回阿里停车开放平台确认的进离场信息,包含:车场名称、车牌号、是否和推送数据匹配。
第四步: 企业停车云平台将阿里返回的停车二次识别结果和之前自身系统产生的结果进行比对,如果一致则确认放行。如果发生不一致的情况,则可以判断阿里的置信度是否高于企业自身系统的置信度,如果低于阿里的置信度则自行选择以阿里返回的停车二次识别结果为准,并将企业自身采集数据和阿里二次识别的数据进行模糊匹配处理。
第五步: 针对阿里返回的数据如果阿里的置信度低于企业自身识别的置信度,则可以将阿里返回的车牌信息和自身企业识别的车牌信息进行模糊匹配,看是否能匹配出进离场车牌号和记录信息(例如:企业停车系统识别的车牌是苏B843C空,阿里识别的是苏B8空3空6,那么模糊匹配结果是苏B843C6),如果无法匹配,则选择开启云坐席服务或者选择此次停车不记录费用,抬杆放行。

四、服务对接流程

4.1、前置条件说明

停车管理厂商按照《停车开放平台服务对接前置条件》文档,完成停车场和停车记录接入。

4.2、服务调用流程图

image.png

4.3、对接技术方案

4.3.1、说明

开放服务调用SDK及说明参见《全域停车开放服务接入文档》。

4.3.2、接口

path:/park/isv/v1/plate/recognize
version: 1.0.0

4.3.3、参数

业务请求参数:
参数名称 参数类型 必填 长度 说明
vendorParkId String 64 场库系统的停车场ID
vendorRecordId String 64 场库系统停车记录ID
pictureUrl String 512 进离场图片URL
业务响应参数:
参数名称 参数类型 必填 长度 说明
plates Array 车牌识别结果,下级参数说明如下

- txt
String 车牌号

- prob
Double 车牌号置信度

- roi
JSON 车牌在图片中的位置,例如{“h”:35,”w”:90,”x”:17,”y”:21}

- cls_name
String 车牌类型:
- 小型汽车
- 新能源车
- 大型汽车
- 挂车
- 教练车
- 警车
- 军车
- 使领馆车
- 港澳车

- cls_prob
Double 车牌类型置信度

- detail
String 详细说明

4.3.4、调用示例

Java SDK

  1. IoTApiClientBuilderParams ioTApiClientBuilderParams = new IoTApiClientBuilderParams();
  2. ioTApiClientBuilderParams.setAppKey("123456");
  3. ioTApiClientBuilderParams.setAppSecret("abcdefghijklmn");
  4. SyncApiClient syncApiClient = new SyncApiClient(ioTApiClientBuilderParams);
  5. IoTApiRequest request = new IoTApiRequest();
  6. //设置api的版本
  7. request.setApiVer("1.0.0");
  8. // 接口参数
  9. request.putParam("vendorParkId","2947297626687");
  10. request.putParam("vendorRecordId","R20200218135602565");
  11. request.put("pictureUrl", "http://aliyun.com/parking.jpg");
  12. //请求参数域名、path、request
  13. ApiResponse response = syncApiClient.postBody("aprk-api-pre.aliplus.com",
  14. "/park/isv/v1/plate/recognize", request);
  15. System.out.println("response code = " + response.getCode()
  16. + " response content = " + new String(response.getBody(), "utf-8"));

HTTP Client调用

请求示例

  1. {
  2. "id":"5e1c0fbc-acdb-4c47-9846-7fc9beedbe14",
  3. "params":{
  4. "vendorParkId": "2947297626687",
  5. "vendorRecordId": "R20200218135602565",
  6. "pictureUrl": "http://aliyun.com/parking.jpg",
  7. },
  8. "request":{
  9. "apiVer":"1.0.0"
  10. },
  11. "version":"1.0"
  12. }

响应示例

  1. {
  2. "code": 200,
  3. "data": {
  4. "plates": [
  5. {
  6. "txt": "苏B11111",
  7. "prob": 0.99950945377349854,
  8. "roi": {
  9. "h": 94,
  10. "w": 301,
  11. "x": 69,
  12. "y": 189
  13. },
  14. "cls_name": "小型汽车",
  15. "cls_prob": 1,
  16. "detail": "",
  17. }
  18. ]
  19. },
  20. "message": "success"
  21. }