调用华为API实现车牌识别

目录

  • 1.作者介绍
  • 2.华为云车牌识别
    • 2.1车牌识别技术
    • 2.2华为云OCR
  • 3.实验过程
    • 3.1获取API密钥
    • 3.2Python代码实现
    • 3.3实验结果
  • 参考链接

1.作者介绍

袁明懿,男,西安工程大学电子信息学院,2023级研究生
研究方向:机器视觉与人工智能
电子邮件:3224116451@qq.com
吴思雨,女,西安工程大学电子信息学院,2023级研究生
研究方向:机器视觉与人工智能
电子邮件:3224116451@qq.com

2.华为云车牌识别

2.1车牌识别技术

车牌识别技术(Vehicle License Plate Recognition, VLPR)是计算机视频图像识别技术在车辆牌照识别中的一种重要应用。它通过先进的图像处理、模式识别和人工智能技术,实现对车辆图像的采集、车牌位置的定位、车牌字符的分割和识别,最终给出车牌的真实号码。在高速公路车辆管理,停车场管理和城市交通中得到广泛应用。
在这里插入图片描述
OCR(光学字符识别)技术作为一种将图像中的文字转换为计算机可编辑文本的技术,为车牌识别提供了基础的技术支持。车牌识别是OCR技术在交通管理领域的应用之一,车牌识别通过利用OCR技术的原理和方法,实现对车辆图像中车牌号码的自动提取和识别。
在这里插入图片描述

2.2华为云OCR

OCR以开放API的方式提供给用户,用户使用Python、Java等编程语言调用OCR服务API将图片识别成文字,帮助用户自动采集关键数据,打造智能化业务系统,提升业务效率。

3.实验过程

3.1获取API密钥

1.搜索华为云或输入huaweiicloud.com访问华为云官网进入后搜索“文字识别”。
在这里插入图片描述
2.进入之后点击活动专区,点击“立即购买”。
在这里插入图片描述
3.在文字识别服务下面选择“车牌识别PKG 1千 包年”。

在这里插入图片描述
4.选择购买之后在控制台,我的凭证里面添加访问密钥。描述可填“车牌识别”。点击确定之后会生成并下载csv文件,打开csv文件可获得Access Key Id和Secret Access Key。
在这里插入图片描述
5.在页面右上角进入个人中心,在服务列表中选择文字识别OCR。
在这里插入图片描述
6.进入文字识别的控制台之后,在“证件类”里选择车牌识别,点击开通管理。
在这里插入图片描述
7.进入API explore,填写项目id和图像的base64编码或者url链接,即可得到结果。
在这里插入图片描述

3.2Python代码实现

1.首先安装必要的包。

pip install huaweicloudsdkcore
pip install huaweicloudsdkocr

2.代码实现

# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkocr.v1.region.ocr_region import OcrRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkocr.v1 import *
import base64
#### base64编码格式
def image_to_base64(self):
    with open(self, 'rb') as f:
        base64_data = base64.b64encode(f.read())      #  将图像转换为 base64数据格式
        return base64_data
if __name__ == "__main__":
 ak = ""                        # 设置用户的AK
 sk = ""                        # 设置用户的SK
  img = image_to_base64('')       # 设置图片路径
    # 设置请求的AKSK
    credentials = BasicCredentials(ak, sk)
    # 创建Ocr客户端
    client = OcrClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(OcrRegion.value_of("cn-north-4")) \
        .build()
    try:
        # 创建请求
        request = RecognizeLicensePlateRequest()
        # 设置请求体
        request.body = LicensePlateRequestBody(
            image=img
        )
        # 发送请求
        response = client.recognize_license_plate(request)
        # 打印响应
        print(response)
    except exceptions.ClientRequestException as e:
        # 打印错误信息
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

3.3实验结果

程序运行后,得到车牌的车牌号,颜色,位置信息,以及置信度等信息。
在这里插入图片描述

并通过测试绿牌车辆,以及较远距离车辆图像,均获得了准确的结果,得到置信度均为1.0。
绿色车牌结果如下所示
在这里插入图片描述
较远距离车辆结果如下所示
在这里插入图片描述

参考链接

[1]链接: http://t.csdnimg.cn/7Tml5
[2]链接: http://t.csdnimg.cn/9y7Ei

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/705123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

神经网络 torch.nn---nn.RNN()

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) RNN — PyTorch 2.3 documentation torch.nn---nn.RNN() nn.RNN(input_sizeinput_x,hidden_sizehidden_num,num_layers1,nonlinearitytanh, #默认tanhbiasTrue, #默认是Truebatch_firstFalse,dropout0,bidirection…

Java云HIS医院管理系统源码 B/S架构 一体化电子病历系统源码 基于云端SaaS平台源码,采用B/S(Browser/Server)架构

“云”指系统采用云计算的技术和建设模式,具有可扩展、易共享、区域化、易协同、低成本、易维护、体验好的优势。“H”是医疗卫生,由原来医院 (Hospital)到现在的医疗卫生 (Healthcare),拓展了 H的内涵与外延。云 HIS 重新定义了医院信息系统…

11.1 Go 标准库的组成

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

618购物狂欢节有哪些数码好物值得抢购?年终必备神器清单大揭秘!

一年一度的“618年中大促”即将拉开帷幕,大家是否已经挑选好了心仪的宝贝呢?那些平时心仪已久的商品,是否总期待着在价格最优惠时收入囊中?毫无疑问,618就是这样一个绝佳的时机,因为各大电商平台都会纷纷推…

LVS+Keepalived NGINX+Keepalived 高可用群集实战部署

Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 VRRP协议(虚拟路由冗余协议) 是针对路由器的一种备份解决方案由多台路由器组成一个热备组,通过共用的…

【云原生| K8S系列】Kubernetes Daemonset,全面指南

Kubernetes中的DaemonSet是什么? Kubernetes是一个分布式系统,Kubernetes平台管理员应该有一些功能可以在所有节点上运行特定于平台的应用程序。例如,在所有Kubernetes节点上运行日志代理。 这就是Daemonset发挥作用的地方。 Daemonset是一个原生的K…

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航: 1、首先创建工作空间: 基于我们的artca_ws; 2、创建功能包: 进入src目录,输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名,后面两个是依赖&a…

浅谈配置元件之Java默认请求

浅谈配置元件之Java默认请求 1.简介 “Java默认请求”(虽然直接名为"Java Request"更常见)是一个高级配置元件,它允许用户通过Java代码自定义请求逻辑,为测试提供了极高的灵活性和扩展性。 2.Java请求组件概述 在JM…

哪个牌子的儿童护眼灯好?五款平价护眼台灯推荐

护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说,很多人可能已经对这类产品有所了解并进行了购买。然而,部分家长对护眼台灯的认识还不够深入,因此尚未为孩子选择一款合适…

Illustrator 2024 mac/win版:创新设计,一触即发

Illustrator 2024是一款由Adobe公司开发的强大且全面的矢量图形设计软件,它以其卓越的性能和丰富的功能,为设计师们提供了一个高效、直观且富有创意的工作环境。 Illustrator 2024 mac/win版获取 作为一款矢量图形设计软件,Illustrator 2024…

农产品商城系统农资电商商城系统java项目jsp web项目

农产品商城系统农资电商商城系统java项目jsp web项目 会员用户可以实现:注册登录、商品信息浏览、加入购物车、加入收藏、下单支付、查看公告、查看以及留言、个人信息管理 后台管理的实现:类别管理模块、商品管理模块、会员管理模块、订单管理、退货管…

实时数据的处理一致性如何保证?

实时数据一致性的定义以及面临的挑战 数据一致性通常指的是数据在整个系统或多个系统中保持准确、可靠和同步的状态。在实时数据处理中,一致性包括但不限于数据的准确性、完整性、时效性和顺序性。 下图是典型的实时/流式数据处理的流程: 流式数据以各…

PyTorch学习9:卷积神经网络

文章目录 前言一、说明二、具体实例1.程序说明2.代码示例 总结 前言 介绍卷积神经网络的基本概念及具体实例 一、说明 1.如果一个网络由线性形式串联起来,那么就是一个全连接的网络。 2.全连接会丧失图像的一些空间信息,因为是按照一维结构保存。CNN是…

rtl8723du android5.1 6818 (蓝牙 部分)(第四部分)

系统使用的是,android5.1 , 蓝牙驱动就要使用 V5.6,而不是V5.2 了。 由于 在原来的SDK中 蓝牙使用的是 mt6620 uart 接口。 所以在移植的过程中,顺带把之前的驱动去掉。 1 关于kernel 的修改。 拷贝驱动。 修改Kconfig 修改Makefile 拷贝 uhid dirver 拷贝 uhid.c 拷贝…

无需插件脚本,IDEA配置多服务一键启动

分享本教程的初衷是本人在本地调试时业务场景中需要调用多个服务,并且每次为了找到需要启动的服务花了很多不必要的时间,我相信很多同为开发的小伙伴也有和我一样的困扰。但是学会这招后多个服务需要同时启动时仅需一键即可搞定。接下来让我们一步步设置…

IDEA:开发配置(2024版 建议收藏)

文章目录 一、下载IDEA二、开发配置2.1 Maven仓库2.2 自动导包2.3 字符编码2.4 注释颜色2.6 鼠标滚轮控制代码大小2.7 关闭自动更新2.8 主题、字体和字体大小2.9 关闭usages提示 三、常用插件3.1 chinese(中文汉化)3.2 主题插件3.2.1 One Dark Theme&…

buuctf-findKey

exe文件 运行发现这个窗口,没有任何消息 32位 进入字符串就发现了flag{ 左边红色代表没有F5成功 我们再编译一下(选中红色的全部按p) LRESULT __stdcall sub_401640(HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam) {int v5; // eaxsize_t v6; // eaxDWORD v7; /…

录音转文字怎么弄?用转文字工具让你快速整理会议纪要

端午节活动精彩落幕,紧接着的回顾会议也圆满结束。 在这次会议上,我们收集了许多宝贵意见,但手写记录耗时且易遗漏。为了提高效率,我们急需一款能快速准确转换会议音频为文字的软件。 那么,市面上有哪些录音转文字软…

六西格玛培训都培训哪些内容 ?

天行健六西格玛培训的内容通常涵盖多个方面,旨在帮助学员全面理解和应用六西格玛管理方法。以下是详细的培训内容概述: 一、六西格玛基础知识 引入六西格玛的概念、原理和历史,包括DMAIC(定义、测量、分析、改进、控制&#xff0…

[Python学习篇] Python输入

关键字 input 语法:input("提示信息") 特点 当程序执行到input,等待用户输入,输入完成之后才能继续向下执行。input接收用户输入后,一般存储到变量中,方便使用。input会把接收到的任意用户输入的数据都当做…