Java车辆牌照识别
大家好,近期想做一个Java的车牌识别功能(借助第三方百度云车牌识别API),大致搜索了一下相关的博客文档,没有看到有相对完整详细的文章,于是准备写一篇稍微详细一点的文章说明,废话不多说,开始码字。。。。。。
准备工作
- 百度云帐号申请注册(手机注册)
- 百度云控制台创建应用
第一步:选择车牌识别的功能应用:
产品 ===》 人工智能 ===》 汽车场景文字识别

第二步:点击过后,选择页面车辆产品列表中的车牌识别

第三步:创建应用实例
点击车牌识别后点击立即使用,进入到控制台界面,我们所需要的车牌识别功能API在汽车场景OCR中,描述每个月赠送1000次免费调用次数。注意:在列表右上方有一个免费领取资源按钮,新建的应用需要在此免费领取资源,在后续调用代码时,可能会抛出异常没有权限调用此API,明明是领取了资源的,需要重新退出后再登陆到控制台资源才会刷新,博主也是遇到了这个问题,百度了一圈,未找到解决方法,退出重登后调用API成功

第四步:创建应用
填写相应的信息,选择个人或公司,本章测试选择的个人使用。

创建成功后界面如下,后续在代码中,调用车牌识别的API需要用到API Key和Secret Key进行身份验证。
代码部分
这里贴出来百度云的接口文档说明,里面有详细的接口介绍,大家可以参考(https://cloud.baidu.com/doc/OCR/s/ck3h7y191)
- 下图是接口的描述,包括请求URL、参数,主要的参数是image(图片二进制数据)或url任选其一,还有Aceess Token如何获取。

- 下图中,我们选择的是JAVA代码示例,示例中的代码会用到其它的一些工具类,注释中都有相应的下载地址。

代码目录说明

获取TOKEN
以下是权限获取的Java示例代码,获取Access Token说明
clientId:对应百度云控制台新建实例的API Key
clientSecret:对应百度云控制台新建实例的Secret Key
调用API接口
注意如果提示没有Access调用API接口,在创建应用实例时,领券免费的接口调用次数。
private static final String ACCESS_TOKEN = AuthService.getAuth();
public static void main(String[] args) {
// 请求url
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";
try {
// 本地文件路径
String filePath = "d://car1.jpg";
// 转化成二进制数据
byte[] imgData = FileUtil.readFileByBytes(filePath);
// Base64转换
String imgStr = Base64Util.encode(imgData);
String imgParam = URLEncoder.encode(imgStr, "UTF-8");
// 参数
String param = "image=" + imgParam;
// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
String result = HttpUtil.post(url, ACCESS_TOKEN, param);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
结果展示
- 测试图片

- 调用结果
会有车辆的车牌信息、颜色、坐标位置等信息。

本文档详述了如何使用Java结合百度云API进行车辆牌照识别。首先介绍了注册百度云账号并创建应用,然后讲解如何获取API Key和Secret Key。接着展示了Java代码示例,包括获取Access Token和调用接口的步骤。最后展示了识别结果,并提供测试图片。如遇到问题,作者欢迎交流。


1万+

被折叠的 条评论
为什么被折叠?



