python车牌识别系统开源代码,python车牌识别系统程序
车牌识别系统中的计算机视频图像识别技术在车牌识别中的应用。本文主要介绍Python中如何识别车牌的示例代码。文中详细介绍了示例代码,具有一定的参考价值。感兴趣的朋友可以参考一下。
00-1010实现方法简介:自己实现第三方接口,具体实现SDK安装,创建应用,具体实现最终的车牌识别,广泛应用于高速公路,比如我们常见的电子不停车收费(ETC)系统,交通违章车辆的检测,除此之外,就像小区或者地下区域。
还将使用车库出入控制。基本上,在任何需要识别车辆的地方都会用到它。
目录
车辆牌照识别系统是计算机视频图像识别技术在车辆牌照识别中的应用,通常是车牌识别。
该系统主要包括以下四个部分:
图像采集车牌定位车牌字符分割车牌字符识别我们先来看看百科中对车牌识别技术的描述:
车牌识别技术要求通过车牌提取、图像预处理、特征提取和车牌字符识别,从复杂的背景中提取并识别出运动车辆的车牌。
其他技术,比如车号、颜色等信息的识别,目前最新的技术水平是字母和数字的识别率可以达到99.7%,汉字的识别率可以达到99%。
简介
这里不做太复杂的车辆动态识别,只演示从图像中识别车牌信息。车牌识别的实现方式大致有两种,一种是自己写。
代码实现,另一种是借助第三方API接口实现。
实现方式
如果想通过Python自己手工编码实现车牌识别功能,可以使用一些Python库,比如OpenCV,TensorFlow等。这种方法
因为每个功能点都需要自己编码实现,所以会相对复杂。另一方面,如果要保证识别的准确性,可能需要把它做大。
实验的量,也就是说,需要更多的时间。
自己实现
现在一些第三方平台已经实现了车牌识别的功能,并且对外提供了API接口。我们只需要调用它们提供的接口
这种方法的实现比较简单,通常接口提供者提供的接口函数的准确性基本上是有保证的。原因很简单。如果接口
如果功能太差,首先你会面对自己,然后基本上就没人用了,就失去了界面提供的价值。另外第三方接口可能会收藏。
取一定的费用,因此,实际变现的话,要综合考虑。
第三方接口
综上所述,我们使用第三方接口来实现车牌识别的功能。作为接口提供者,我们选择百度云提供的接口,百度云接口。
提供免费的配额。简单来说就是每天可以免费使用多少次。超过这个数,就需要付出一些东西。文件地址是:https://cloud.baidu.com/doc/OCR/index.html.让我们看看具体的实施过程。
具体实现
百度云SDK提供多种语言的支持,如Python、Java、C、IOS、Android等。在这里,我们安装了Python版本的SDK,安装非常简单
简单,用pip安装baidu-aip命令即可。SDK支持的Python版本有:2.7和3.x,SDK的目录结构如下:
自述. md
aip //SDK目录
__init__。py //导出类
base.py //aip基类
http.py //http请求
-ocr.py//ocr -setup.py//setup工具安装
maodian">
创建应用
SDK 安装好后,我们接着需要创建应用了,这里需要一个百度账号或百度云账号,如果没有的话自己注册一个即可,登录及注册
地址为:https://login.bce.baidu.com/?redirect=http%3A%2F%2Fcloud.baidu.com%2Fcampaign%2Fcampus-2018%2Findex.html,登录之后,我们将鼠标移动到登录头像位置,接着在弹出菜单中单击用户中心,如下图所示:
如果是首次进入的话,勾选一下相应信息,如下图所示:
信息勾选完了之后,点击保存按钮。
接着将鼠标移动到左侧栏中 > 符号位置,再依次选择人工智能和文字识别,如下图所示:
点击之后会进入到下图中:
我们点击创建应用,进入下图中:
这里我们只需要填一下应用名称和下面的应用描述即可,填写完毕之后点击立即创建。
创建完后,我们再返回应用列表,如下图所示:
这里我们需要用到三个值:AppID、API Key 和 Secret Key。
具体实现
应用创建完了,我们就可以调用接口实现车牌识别功能了。
首先,我们要创建 AipOcr,AipOcr 是 OCR 的 Python SDK 客户端,为使用 OCR 的开发人员提供了一系列的交互方法,代码实
现也比较简单,如下所示:
from aip import AipOcr# 自己的 APPID AK SKAPP_
ID = 自己的 App
IDAPI_KEY = 自己的 Api Key
SECRET_KEY = 自己的 Secret Key
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
在上面代码中,常量 APP_ID、API_KEY 和 SECRET_KEY 就是我们在查看应用列表时说的需要用到的常量值,这些值均为字符
串,用于标识用户,为访问做签名验证。
如果我们需要配置 AipOcr 的网络请求参数,可以在构造 AipOcr 之后调用接口设置参数,目前支持两个参数,看一下代码实现:
# 建立连接的超时时间,单位为毫秒client.setConnectionTimeoutInMillis(5000)
# 通过打开的连接传输数据的超时时间,单位为毫秒client.setSocketTimeoutInMillis(5000)
总的来说通过接口方式实现车牌识别功能是比较简单的,以如下图为例:
实现代码如下:
from aipimport AipOcrAPP_ID = 自己的 App ID
API_KEY = 自己的 Api Key
SECRET_KEY = 自己的 Secret Key#创建客户端对象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)# 建立连接的超时时间, 单位为毫秒
client.setConnectionTimeoutInMillis(5000)# 通过打开的连接传输数据的超时时间, 单位为毫秒
client.setSocketTimeoutInMillis(5000)# 读取图片
def get_file_content(filePath): with open(filePath, rb) as fp: return
fp.read() image = get_file_content(car.jpeg)
res = client.licensePlate(image)
print(车牌号码: + res[words_result][number]) print(车牌颜色: + res[words_result][color])
执行结果:
车牌号码:川QK9777车牌颜色:blue
上面代码实现的是对一张图片中的一个车牌进行识别,当然接口还支持对一张图片中的多个车牌进行识别,只需使用
licensePlate(image, options)
即可, 以如下图为例:
实现代码如下:
from aip import AipOcrAPP_ID = 自己的 App IDAPI_KEY = 自己的 Api KeySECRET_KEY = 自己的 Secret Key# 创建客户端对象client = AipOcr(APP_ID, API_KEY, SECRET_KEY)# 建立连接的超时时间,单位为毫秒client.setConnectionTimeoutInMillis(5000)# 通过打开的连接传输数据的超时时间,单位为毫秒client.setSocketTimeoutInMillis(5000)
# 读取图片def get_file_content(filePath): with open(filePath, rb) as fp: return fp.read()
image = get_file_content(cars.png)options = {}# 参数 multi_detect 默认为 falseoptions[multi_detect] = trueres = client.licensePlate(image, options)for wr in res[words_result]: print(车牌号码: + wr[number]) print(车牌颜色: + wr[color])
执行结果:
车牌号码:京N6HZ61
车牌颜色:blue
车牌号码:鲁NS1A26
车牌颜色:blue
最后
本文我们先对车牌识别进行了一些介绍,之后利用百度云接口实现了单个和多个车牌的识别功能,通过本文我们可以对车牌识别的相关概念和具体实现有一些了解,更多相关Python 识别车牌内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。