使用百度AI开放平台进行车牌识别

本文介绍了如何使用百度AI开放平台获取token;以及如何调用百度API接口,请求车牌识别;以及对结果进行解析,并根据百度返回的坐标值画出车牌所在位置的矩形框。

百度AI开放平台车牌识别使用

1. 产生token

在这里插入图片描述
通过如下代码获取token。将获取到的API key 替换下面代码中client_id的, Secret Key替换client_secret。

import requests

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【client_id】&client_secret=【client_secret】'

headers = {'Content-Type': 'application/json; charset=UTF-8'}

res = requests.get(url=host, headers=headers).json()
print(res['access_token'])

2. 车牌识别

调用百度API接口,请求车牌识别。

例如上述过程中,产生的access_token为’24.4a29644749eb522b170e6d15bb47ce66.2592000’,将其替换data中的access_token

# 请求百度车牌识别
def request_baidu_lpr(img_file):
    url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate'
    data = {}
    data['access_token'] = '24.4a29644749eb522b170e6d15bb47ce66.2592000'

    # 读取图片
    file = open(img_file, 'rb')
    image = file.read()
    file.close()

    data['image'] = base64.b64encode(image)
    headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }

    res = requests.post(url=url, headers=headers, data=data)
    return res.json()

3. 解析结果

经过第二步得到的是json文件,需要对其进行解析,同时也需要根据百度返回的坐标值画出矩形框。

# 解析baidu识别结果
# 画出矩形框
def parse_baidu_result(result, img_file):
    result_lpr = result['words_result']['number']
    print('baidu识别结果', result_lpr)

    probability = result['words_result']['probability']

    import numpy as np
    probability_total = np.sum(probability)
    result_confidence = probability_total / len(probability)

    # 坐标位置
    rect = result['words_result']['vertexes_location']
    pos_1 = (rect[0]['x']-1, rect[0]['y']-12)
    pos_2 = (rect[2]['x']+3, rect[2]['y']+12)

	# 车牌所在位置画矩形框
	import cv2
    image = cv2.imread(img_file)
    cv2.rectangle(image, pos_1, pos_2, (0, 0, 255), 4)

	# 保存车牌文件到指定目录
    t = str(time.time())
    img_url = './static/images/lpr/lpr_result' + t + '.jpg'
    cv2.imwrite(img_url, image)

	# 返回车牌识别结果、置信度、图像存放路径
    return result_lpr, result_confidence, img_url

上诉2、3步骤的上层调用情况:

result = request_baidu_lpr(img)
result_lpr, confidence, img_url = parse_baidu_result(result, img)

参考

  1. Python+OpenCV图像标注矩形框bounding box
  2. python调用百度文字识别API测试图片
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qt是一种跨平台的应用程序开发框架,它包含了许多用于创建图形用户界面(GUI)的功能和工具。通过使用qt,开发者可以在多个操作系统上构建高性能的应用程序。而百度AI人脸识别系统则是基于百度的人工智能技术开发的一种人脸识别系统。 百度AI人脸识别系统集成了颜值评分、人脸比对、性别年龄识别等多种功能。它可以通过对人脸进行分析和比对,判断出人脸的年龄、性别以及颜值评分等信息。此外,它还可以通过人脸比对技术进行身份认证,用于门禁系统、人脸支付等场景。 使用qt来开发百度AI人脸识别系统,可以便捷地创建用户友好的图形界面,并调用百度AI人脸识别的API接口来实现人脸识别功能。开发者可以通过qt提供的丰富控件和布局管理器,设计出符合用户习惯的界面,提供良好的用户体验。 通过qt开发的百度AI人脸识别系统,可以应用于各种场景,例如安防领域的人脸识别门禁系统,民宿行业的人脸入住认证系统,还能用于医疗行业的患者身份认证等。使用这种开发方式,可以大幅度减少开发时间和成本,提高开发效率。 综上所述,使用qt开发百度AI人脸识别系统可以充分发挥qt的跨平台特性和丰富的GUI功能,方便开发者在不同操作系统上构建性能优秀的人脸识别应用程序。同时,百度AI人脸识别系统的功能丰富,可以应用于多个行业,提供更好的用户体验和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值