V831

文章目录

  • V831
  • 前言
  • 一、onenet平台
  • 二、V831
    • 1.联网
    • 2.获取token
    • 3.调用API
  • 总结

V831—车牌识别

前言

V831实现车牌识别,可识别车牌号,以及车牌的颜色。



一、onenet平台

OneNET是中国移动打造的高效、稳定、安全的物联网开放平台。 OneNET支持适配各种网络环境和协议类型,可实现各种传感器和智能硬件的快速接入,提供丰富的API和应用模板以支撑各类行业应用和智能硬件的开发,有效降低物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全以及大数据分析等平台级服务需求。 OneNET已构建“云-网-边-端”整体架构的物联网能力,具备接入增强、边缘计算、增值能力、AI、数据分析、一站式开发、行业能力、生态开放8大特点。

没错就是用的onenet平台实现的。

下面具体介绍是如何实现的,V831真的很好用。

首先你需要注册一个账号,然后开通AI能力。这个就不介绍了。

二、V831

1.联网

要实现API的调用就需要联网,V831如何联网呢

该 U盘 目录对应的板子运行 linux 系统的 /root/ 目录;这里 main.py 是默认执行的开机脚本,wpa_supplicant.conf 是 WIFI 配置信息。

2.获取token

首先登录OneNET AI平台,进入【控制台】-【AI能力管理】-【创建AI能力】,然后可根据需求灵活选择需要调用的AI能力并保存,最后平台会自动生成相应的AI Key和Secret Key,生成的AI key和Secret Key将用于获取对应能力的调用accessToken,accessToken可自定义设置使用有效期;为保证数据传输安全,建议定期更新accessToken。

import requestsurl = "http://ai.heclouds.com:9090/v1/user/app/accessToken?aiKey=xxxx&secretKey=yyyyy"headers = {'Content-Type': 'application/json'
}response = requests.request("GET", url, headers=headers)print(response.text)

你会得到属于自己的token

3.调用API

先来看onenet平台给的源码

import requests
import json
import base64url = 'http://ai.heclouds.com:9090/v1/aiApi/picture/NUMBER_PLATE_RECOGNITION'
headers ={'Content-Type':'application/json','token':'xxxxxxxxxxxxxxxxx(用户鉴权接口返回结果中的accessToken)'
}# 打开图片文件
file = open('D:/Desktop/体验图片/车牌识别/body5.png','rb')# 将其转为base64信息
base64Str = base64.b64encode(file.read()).decode()# 关闭打开的文件
file.close()# 构造接口调用参数
data = {'type':'GPU', #可选参数,填入“GPU”则代表使用GPU版本api,否则使用CPU版本api'picture':[base64Str]
}# POST 方式调用
response = requests.request("POST", url, headers=headers, data=json.dumps(data))# 打印结果
print(response.text)

然后直接附上V831的源码,这里注意token要24小时更新一次,当然你也写在前面,每次都是最新的token

from maix import display, camera, image
import requests
import time
from evdev import InputDevice
import pickle
import json
from select import select
import base64
import numpy
import serial
ser = serial.Serial("/dev/ttyS1",115200)    # 连接串口 UART-1 TX (PG6)和 UART-1 RX (PG7)
image.load_freetype(path="/home/res/sans.ttf")
while 1:img=camera.capture()    #display.show(img)filename = camera.read()img.save('/mnt/tmp.jpg')font_color=(255, 0, 0)filename = open('/mnt/tmp.jpg','rb')url = 'http://ai.heclouds.com:9090/v1/aiApi/picture/NUMBER_PLATE_RECOGNITION'headers ={'Content-Type':'application/json','token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjRhMmZjZjY4YzA1MDQ5YjViOWEwZDIxM2E1NzU0NjFkIiwiZXhwIjoxNjUzNjUwNzc2LCJ2YWx1ZSI6IntcImFpS2V5XCI6XCIxNGJmNmZhZWQzNmM0NTYwYjJmYWE4M2RjNGEyMDRlYVwiLFwiYXBwSWRcIjpcIjk3NTIwMDYyMzQ1ODc4MzIzMlwiLFwicHVycG9zZVwiOlwiYXBpXCIsXCJzZWNyZXRLZXlcIjpcImU3NDE2MDVjNTVmOTRlOGRiYjVjOGRiMGE0NjkzYWJiXCIsXCJ1c2VySWRcIjpcIjAxMHUwMDE2MzYyOTE4NDc4MDg1NTc1XCJ9In0.MIE6k8MSYK1kKvwR92iavVetKBfPWKU3k5rfd1r1ocw'}
##读取图像
# 将其转为base64信息base64Str = base64.b64encode(filename.read()).decode()# 构造接口调用参数data = {'type':'GPU', #可选参数,填入“GPU”则代表使用GPU版本api,否则使用CPU版本api'picture':[base64Str]}# POST 方式调用response = requests.request("POST", url, headers=headers, data=json.dumps(data))d1 = json.loads(response.text)#print (type(d1))#print(d1)#print(d1['data'])d2=d1['data']if type(d2) is list:chepai=d2[0]['label'].encode()# img.draw_string(d2[0]['box']['x'],d2[0]['box']['y'] ,'车牌号:', color= font_color)img.draw_string(d2[0]['box']['x']+20,d2[0]['box']['y'] ,chepai, color= font_color)img.draw_string(d2[0]['box']['x']+100,d2[0]['box']['y'] ,d2[0]['color'], color= font_color)print(chepai.decode('UTF-8'))print(d2[0]['color'])print(d2[0]['box']['x'])print(d2[0]['box']['y'])print(d2[0]['box']['width'])print(d2[0]['box']['height'])img.draw_rectangle(d2[0]['box']['x']+20, d2[0]['box']['y']+20, d2[0]['box']['x']+ d2[0]['box']['width']-20, d2[0]['box']['height']+ d2[0]['box']['y']-20 , color=(255, 0, 0), thickness=2)   #画一个从(80, 160)到(160, 200)的蓝色矩形外框display.show(img)display.show(img)

运行这段代码就可以看到上图的现象,V831使用的镜像是0.4.8,在0.4.8中支持了中文字体加载。否则你看到的中文是一段乱码。

总结

调用API接口,既可以大幅度提升准确率,又能最下限度的利用V831的资源。

V831——车牌识别相关推荐

  1. robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全

    软件连接各种数据库方法大全 1:软件连接免安装数据库. 免安装数据库使用方便,不受操作系统版本影响,不用安装,解压打开运行即可,所以免安装数据库不要放在桌面上,也不要解压打开多个. 打开车牌识别软件, ...

  2. LabVIEW OCR 实现车牌识别(实战篇—3)

    目录 1.字符数据集训练 2.识别与验证 在学习本章之前,推荐先学习系列专栏文章:LabVIEW目标对象分类识别(理论篇-5) OCR(光学字符识别)是指机器自动从图像中识别文本字符的过程,OCR机器 ...

  3. OpenCV(项目)车牌识别4 -- 总结篇

    目录 一.效果 1.成功案例 2.经典失败案例(单字符识别成类似字符) 3.其他失败案例 二.总结 三.车牌识别总代码 一.效果 1.成功案例 2.经典失败案例(单字符识别成类似字符) 3.其他失败案 ...

  4. OpenCV(项目)车牌识别2 -- 车牌字符分割(直方图)

    目录 试错 1.没有膨胀/膨胀过小:无法连接上单个字符. 2.膨胀过大:错误连接相邻字符. 一.直方图处理原理 1.横向分割 2.纵向分割 过程: 一.中值滤波.灰度化 二.二值化(统一黑底白字) 三 ...

  5. OpenCV(项目)车牌识别1 -- 车牌提取(形态学)

    目录 一.形态学车牌提取(简单:单情景) 1.读取图片,转灰度图 2.提取轮廓(Sobel算子提取y方向边缘) 3.自适应二值化 4.闭运算处理,把图像闭合.揉团,使图像区域化 5.腐蚀/膨胀去噪得到 ...

  6. 寻找连通域算法_【车牌识别算法】

    车牌识别技术要求能够将运动中的汽车牌照从复杂背景中提取并识别出来,通过车牌提取.图像预处理.特征提取.车牌字符识别等技术,识别车辆牌号.颜色等信息. 目前车牌识别技术主要分为端到端识别与车牌分割识别两 ...

  7. 免费直播:1小时带你体验Python车牌识别实战

    Python基础学会了,实战又是爬虫?太枯燥? 别无聊,CSDN学院邀请章秀淞老师开设技术直播课:1小时带你体验车牌识别实战.让你从众多车中,能用Python技术找到夏树上的那辆叔叔的奔驰车牌(玩笑) ...

  8. 基于OpenCV 的车牌识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各 ...

  9. 你不知道的车牌识别系统

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 有小伙伴后台和小白说,能不能推荐几个适合入门的开源视觉项目,因为根 ...

最新文章

  1. AI换脸、声音篡改等,明确写入新版《民法典》
  2. 2021高校毕业生薪酬Top100出炉!清华指数TOP,薪酬却排名第二
  3. 最短路模板 - Floyd / Dijkstra
  4. CentOS源码编译安装MySQL 5.5.15(转)
  5. Oracle10G各版本下载
  6. 【STC15系列】SYK-0806-A2S1 工业自动化控制之【05-定时器控制的流水灯】
  7. 世界三大数学猜想 哥德巴赫猜想 费马大定理: 费马猜想: 质数算法c++ 1.NP完全问题 2.霍奇猜想 3.庞加莱猜想 4.黎曼假设 5.杨-米尔斯存在性和质量缺口 6.纳卫尔-
  8. Python基础学习:operator模块
  9. 计算机主板参数指标,主板性能参数指标.doc
  10. 获取属性配置config文件
  11. Only fullscreen activities can request orientation异常解决
  12. 台式计算机强制关机,台式电脑强制关机按什么键
  13. 【数据挖掘】Python绘制一组样本的CDF概率分布函数(经验分布函数)
  14. 软件设计师笔记(信息安全)
  15. 远程服务调用失败重试之简单实现
  16. 深度学习_深度学习基础知识_Internal Covariate Shift
  17. webpack 报错Cannot find module 'opn'
  18. 配置- IDEA如何定位错误代码
  19. 随机数生成器(结绳中文app编程)
  20. 华中数控系统c语言,如何用C语言编写华中数控系统PLC程序

热门文章

  1. 计算机主板上的命名,电脑主板常见命名规则整理:微星;华硕;技嘉
  2. 一个编程A白的真实独白
  3. 在网易做游戏美术设计师是种什么体验?
  4. 学习Python后能找什么工作
  5. 歪门邪道之解决首屏图片加载闪烁问题
  6. java获取时间(今天,昨天,上周第一天,本周第一天,本周最后一天)
  7. 【转】DotNetNuke常用扩展模块
  8. NoSQL数据库与分布式缓存对比:同工异曲
  9. 在计算机术语中 将ALU控制器和,计算机组成原理试管理-题集
  10. 【React】Mobx