基于百度API的车牌识别计费系统

news2024/10/6 2:25:13

1,车牌识别API

介绍:

百度车牌识别API是一款基于人工智能算法的车牌识别服务,可以识别包括普通车牌、新能源车牌在内的多种车牌类型,并支持高精度的识别结果输出。其主要功能特点包括:

  1. 普通车牌和新能源车牌的识别:支持多种省份、地区等不同类型的普通汽车车牌和新能源汽车车牌的识别,识别效果高。

  2. 支持多种车牌颜色的识别:支持蓝色、黄色、白色、黑色等多种车牌颜色的识别,以及单排、双排车牌的识别。

  3. 高精度的识别结果输出:通过使用深度学习技术和大量训练数据,可以实现高精度的车牌识别结果输出,准确率较高。

  4. 多语言支持:支持多种语言接口调用,包括Python、Java、C++等,方便开发人员进行集成与开发。

  5. 可定制化的识别服务:提供丰富的API接口和开发文档,可以支持开发者自定义车牌识别服务,实现与自身业务场景的无缝衔接。

支持识别中国大陆机动车蓝牌、黄牌(单双行)、绿牌、大型新能源(黄绿)、领使馆车牌、警牌、武警牌(单双行)、军牌(单双行)、港澳出入境车牌、农用车牌、民航车牌的地域编号和车牌号,并能同时识别图像中的多张车牌。

1.1首先打开百度智能云官网注册登录。

网址:百度智能云-登录 (baidu.com)

登录之后选择文字识别服务

创建应用

然后输入应用名称、描述,并选择应用类型为个人,之后点击“立即创建”按钮

之后返回应用列表就可以看到已经创建好的车牌识别的应用,此处显示API Key和Secret Key,后边程序中会用到

注意:百度智能云车牌识别API免费版提供每天200次免费调用,后续会调用失败。建议妥善保存API Key和Secret Key。

应用创建完成之后打开接口文档https://ai.baidu.com/ai-doc/OCR/ck3h7y191得到以下有用信息。
请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate
Header格式:Content-Type:application/x-www-form-urlencoded

2,Demo代码实现

# -*- coding: utf-8 -*-
import urllib
import urllib.parse
import urllib.request
import base64
import json

# client_id 为官网获取的API Key, client_secret 为官网获取的Secret Key,将自己应用的Key分别复制在下方即可。
client_id = '*********'
client_secret = '********'

# 获取token
def get_token():
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
    request = urllib.request.Request(host)
    request.add_header('Content-Type', 'application/json; charset=UTF-8')
    response = urllib.request.urlopen(request)
    token_content = response.read()
    if token_content:
        token_info = json.loads(token_content.decode("utf-8"))
        token_key = token_info['access_token']
    return token_key

# 读取图片
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
        
# 获取车牌号信息
def get_license_plate(path):
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate"

    f = get_file_content(path)
    access_token = get_token()
    img = base64.b64encode(f)
    params = {"custom_lib": False, "image": img}
    params = urllib.parse.urlencode(params).encode('utf-8')
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    # print("json类型下的返回值:", content)
    if content:
        license_plates = json.loads(content.decode("utf-8"))
        # print("utf-8解码并转化为python类型下的返回值:", license_plates)
        strover = '识别结果:'
        words_result = license_plates['words_result']
        # print("python类型下的返回值:", words_result)
        number = words_result['number']
        strover += '  车牌号:{} \n '.format(number)
        print(strover)
        return content
    else:
        return ''
# 读取图片,自行保存图片,更改路径即可。
image_path = 'D:\桌面\chepai.jpg'
# image_path = 'C:/Users/Wong/chepai.jpg'
# image_path = r'C:\Users\Wong\chepai.jpg'
get_license_plate(image_path)

3,效果展示

本系统通过图像识别技术来识别车辆的车牌信息,并根据车辆驶入和驶出时间、停放时长等信息自动进行计费。

具体功能包括以下:

  1. 车辆进入系统后,通过摄像头获取车辆照片及车牌号码信息,并自动记录车辆的驶入时间。

  2. 当车辆离开停车场时,系统自动获取车辆照片及车牌号码信息,并根据车辆驶入时间和驶出时间计算停车时长,并按照相应的计费规则进行计费。计费规则可以根据不同区域、时间段、车型等因素进行设置。

  3. 系统可以将计费信息及时记录,并提供实时查询和导出历史记录的功能,方便管理员进行统计和管理。

  4. 为了保证计费的准确性,系统还可以配合其他设备,如道闸、计重器等,对车辆进行进一步的检测和确认,避免误判和漏收费用。

  5. 在周末休息日发出满预警,提醒停车场做好调度

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

首发AI原生应用开发平台——千帆AI原生应用开发工作台,加速企业AI应用落地

为了满足企业对于敏捷和高效地进行AI原生应用开发与运维的需求,并降低相关开发的门槛,百度智能云最新发布了“千帆AI原生应用开发工作台”。该工作台将开发大型模型应用程序的常见模式、工具和流程进行了整合,使得开发者可以聚焦于自身业务&a…

深度学习 | Pytorch深度学习实践

一、overview 基于pytorch的深度学习的四个步骤基本如下: 二、线性模型 Linear Model 基本概念 数据集分为测试集和训练集(训练集、开发集)训练集(x,y)测试集只给(x)过拟合&#xf…

【网络安全 --- xss-labs通关】xss-labs靶场通关,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)

一,资源下载准备 1-1 VMware 16.0 安装请参考以下博客,若已经安装请忽略: 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程(…

IPIDEA代理IP如何帮助企业采集市场信息

在当今数字化的时代,市场信息对于企业的发展至关重要。然而,如何高效地收集市场信息成为了每个企业都需要面对的问题。爬虫技术的出现为企业提供了一种高效、便捷的信息采集方式。然而,由于爬虫的请求频率较高,目标网站可能会将频…

Linux | gcc/g++的使用

目录 前言 一、程序的翻译过程 1、预编译 2、编译 3、汇编 4、链接 (1)链接做了什么 (2)动态链接 (3)静态链接 (4)如何使用gcc进行动态链接和静态链接 前言 本章主要带着大…

【实战】学习 Electron:构建跨平台桌面应用

文章目录 一、Electron 简介二、Electron 的优势1. 学习曲线平缓2. 丰富的生态系统3. 跨平台支持4. 开源和社区支持 三、Electron 的使用1. 安装 Node.js2. 安装 Electron3. 创建项目4. 初始化项目5. 安装依赖6. 创建主进程文件7. 创建渲染进程文件8. 打包应用程序9. 运行应用程…

【AI视野·今日NLP 自然语言处理论文速览 第五十六期】Tue, 17 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 17 Oct 2023 (showing first 100 of 135 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Step-by-Step Remediation of Students Mathematical Mistakes Authors…

泛微e-office json_common.php SQL注入漏洞

一、漏洞描述 泛微e-office为企业办公提供丰富应用,覆盖常见协作场景,开箱即用。满足人事、行政、财务、销售、运营、市场等不同部门协作需求,帮助组织高效管事理人。 系统 json_common.php 文件存在SQL注入漏洞 二、网络空间搜索引擎搜索 …

【前端学习】—Vuex(十八)

【前端学习】—Vuex(十八) 一、Vuex Vuex是一个专门为Vue.js应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

虚拟机zeppelin安装

一、解压 tar -zxvf ./zeppelin-0.10.0-bin-all.tgz -C /opt/soft/ 二、改名字 mv ./zeppelin-0.10.0-bin-all.tgz zeppelin010 三、配置/etc/profile #ZEPPELIN export ZEPPELIN_HOME/opt/soft/zeppelin010 export PATH$ZEPPELIN_HOME/bin:$PATH source /etc/profile 四…

Vue笔记_插件组件_lucky-canvas抽奖转盘

文章目录 官网使用(vue2.x)[1] 下载[2] 引入[3] 使用配置项-width/height配置项-blocks配置项-prizes配置项-buttons优化案例 lucky-canvas 是一个基于 Js Canvas 的抽奖 web 前端组件,提供 大转盘和 九宫格两种抽奖界面,UI 精美,功能强大…

Linux创建与删除用户

Linux创建与删除用户 新增用户: adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户: userdel -r 用户名【删除用户】

C++QT---QT-day2

/*使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中, 在槽函数中判断ui界面上输入的账号是否为"admin",密码是否…

THE PLANETS:EARTH vulnhub

信息收集 netdiscover -i eth0 -r 192.168.239.0,扫描存活主机,发现目标主机 对目标主机进行端口扫描:nmap -p- -sV -O -Pn -A 192.168.239.186,发现443端口存在DNS,域名 在本地得/etc/hosts中添加域名信息 浏览…

地垫/毛绒地毯/地毯GCC认证测试项目介绍

出口美国地垫GCC清关认证 美国联邦法律规定,地毯和垫子要符合易燃性标准和其它要求, 包括2008年《美国消费品安全改进法》的要求。 在地毯和垫子经过检测或合理检测项目后,作为一般用途的 地毯和垫子的生产商和进口商必须在一般合规证书&…

在 Python 中如何向列表或数组添加元素

在这篇文章中,你将了解 Python 中的 .append() 方法。你还会看到 .append() 与其他用于向列表添加元素的方法有什么不同。 让我们开始吧! Python 中的列表是什么?给初学者的定义 编程中的数组是一个有序的项目集合,所有的项目都…

开关电源EMC整改案例-辐射骚扰

1. 测试结果 产品 Coconut1首次 EMC 测试时,辐射、静电、浪涌均失败。本篇先讨论辐射超标. 1.1 辐射超标 50MHz 、100MHz 、130MHz 、200MHz ,4 个频点明显超标,其中 130MHz 左右最明显, 超出 19dB;后将电路板仅…

龙芯S-2K2000板卡测试记录,安装loongnix系统已知问题及DPDK

S-2K2000板卡已知问题 安装系统时PMON需要使用acpi传参pmon下USB键盘不支持热插拔pmon下插入部分USB键盘 进pmon特别慢,兼容性问题,后续统一解决不支持emmc,等待更新pmon S-2K2000板卡手动引导USB命令 load (usb0,0)/boot/vmlinuz. initr…

Julia 笔记:初识julia

1 变量 Julia 不需要指定变量类型,它可以自动推断等号右侧的对象类型 x 10 # 将 10 赋值给变量 xstr "hello" # 将字符串赋值给变量 site_nameflt 9.5 # 浮点型数据 2 注释 单行注释以 # 开头多行注释用 # 与 # 将注释括起来 3 数组 可以存储一个…

windows terminal鼠标右键打开

如果在官网上下载的是zip文件的 需要在注册表修改鼠标右键才能出来 注册表修改如下: 1.先windowsR,在命令框中输入regedit 打开注册表 2.在路径’计算机\HKEY_CLASSES_ROOT\directory\background\shell’下新建一个wt,wt下新建commond 这里…