一.平台简介
车牌评测平台(网址:http://www.openits.cn/plateevaluate/)是一个评估车牌识别软件功能和性能的平台,可以详细的统计出被测软件的车牌错误定位率、车牌粗定位率、车牌准确定位率、汉字识别率、字母识别率、数字识别率、整牌识别率、颜色识别率等评测指标,从而找出被测软件的优点、缺点,帮助被测软件有针对性的进行改进。
该平台免费提供给车牌识别软件厂商使用,按照下面给出的接口修改方法修改被测车牌识别软件的接口参数,从该平台的服务器上下载图片到本地进行测试,并将测试结果返回平台,测试结束后平台对测试结果进行分析,并给出分析结果。图1是车牌评测平台使用方法流程图。

图1 车牌评测平台使用方法流程图
二.接口说明
2.1协议格式
{
jsonrpc": "2.0", --指定JSON-RPC协议版本的字符串
"method": "mehod", --需要调用的方法名
"params": {},--参数
"id": 1 --已建立客户端的唯一标识id
}
2.2服务器和端口号
该车牌评测平台hostname-ip: 113.107.6.184
port 端口号:80
api接口地址: http://113.107.6.184:80/plateevaluate/connAlgo,
第三方软件向服务器发送请求的格式为("hostname-ip", port , "api", parametrs)
parametrs按如下格式
{\"jsonrpc\":\"2.0\",\"method\":\"algoTest\",\"params\":{\"testNo\":\"KmTF\"},\"id\":1}
2.3方法调用步骤
2.3.1开始测试
开始测试首先调用的函数是algoTestStar,获取测试编号,其参数格式如表1
表1 开始测试函数
方法调用示例
char res1[4096] = {0};
char parm1T[4096] = {0};
char* parm1=
"{\"jsonrpc\":\"2.0\",\"method\":\"algoTestStar\",\"params\":{\"algoNo\":\"BU6647\",\"user\":\"zhgg\",\"testName\":\"方纬科技\",\"type\":\"渝牌\"},\"id\": 1}"
intnBufferSize = MultiByteToWideChar(CP_OEMCP, 0, (LPCSTR)parm1, -1, NULL, 0);
wchar_t *pBuffer1 = newwchar_t[nBufferSize + 1];
memset(pBuffer1, 0, (nBufferSize + 1) * sizeof(wchar_t));
MultiByteToWideChar(CP_OEMCP, 0, (LPCSTR)parm1, -1, pBuffer1, nBufferSize * sizeof(wchar_t));
DWORD dwNum = WideCharToMultiByte(CP_UTF8, NULL, pBuffer1, -1, NULL, 0, NULL, FALSE);
WideCharToMultiByte(CP_UTF8, NULL, pBuffer1, -1, parm1T, dwNum, NULL, FALSE);
int code1 =
request("113.107.6.184",80, "http://113.107.6.184:80/plateevaluate/connAlgo", parm1T, res1);
2.3.2获取测试图片
获取测试图片调用函数algoTest,参数如表2,调用成功返回一张图片和图片编号,失败返回error code
表2 获取测试图片函数

方法调用示例
char parm2[4096] = {0};
strcat(parm2,"{\"jsonrpc\":\"2.0\",\"method\":\"algoTest\",\"params\":{\"testNo\":\"");
strcat(parm2, testID);
strcat(parm2, "\"},\"id\":1}");
char res2[4096] = {0};
int code2 = request("113.107.6.184",80, "http://113.107.6.184:80/plateevaluate/connAlgo",parm2, res2);
2.3.3保存识别结果
获取一张图片函数saveTestResult将保存一次测试结果,该函数的参数如表3。
表3 识别结果保存函数

方法调用示例
stringresOut = "{\"jsonrpc\":\"2.0\",\"method\":\"saveTestResult\",\"params\": {\"imgid\":\"";
resOut += imgID;
resOut += "\",";
resOut += res;
resOut += ",\"testno\":\"";
resOut += testID;
resOut += "\"}, \"id\": 1}";
request("113.107.6.184",80, "http://113.107.6.184:80/plateevaluate/connAlgo", parm3, res3);
注:res是第三方软件识别的结果,包括"poit":"1","color":"red","tpye":"123","carplate":"123",这些识别结果。
2.3.4结束测试
同一类型车牌测试完后,调用测试结束函数algoTestEnd,接下来可以测试其他类型的车牌,该函数的参数如表4。
表4 测试结束函数

方法调用示例
strcat(parm0, "{\"jsonrpc\": \"2.0\",\"method\":\"algoTestEnd\",\"params\": {\"testNo\":\"");
strcat(parm0, testID);
strcat(parm0, "\"}, \"id\": 1}");
request("113.107.6.184",80, "http://113.107.6.184:80/plateevaluate/connAlgo", parm0, res0);
三.测试并查询结果
3.1车牌识别软件测试
车牌识别软件在测试时必须使用平台的车牌库,该平台的车牌库类型如表5,在3.3.1中的type参数选用表1中的车牌类型
表5 车牌类型
3.2结果查询
在算法管理中点击算法编号,链接到测试表展示,如图2,表中显示了该算法编号下的所有测试记录

图2 测试记录
选择图2中的测试编号,得到该测试编号的分析结果,如图3,包括车牌错误定位率、车牌粗定位率、车牌准确定位率、汉字识别率、字母识别率、数字识别率、整牌识别率、颜色识别率、各个汉字识别率、数字错误识别、字母错误识别、测试编号。其中数字错误识别、字母错误识别列举了识别错误的数字和汉字

图3 分析结果
点击图3中的测试编号,链接到该测试编号下的统计结果柱状图,如图4。

图4 统计结果柱状图
选择菜单中的车牌识别结果表,输入测试编号,点击查询,界面会显示该测试编号下的所有识别结果,如图5,包括图片的编号、车牌左上角右下角的像素坐标、识别颜色、类型、识别车牌号、测试编号。

图5车牌识别结果表