应用开发图像识别之经典方法
花无从开日,人无再少年,加油!。
今天主要和大家聊一聊,如何使用百度AI实现图像识别的方法,在现实生活中,我们会看到停车场,高速路口有车牌识别。现在很多车牌方案商都有成熟的车牌识别技术,它们是靠这个吃饭的,不会开源。本次文章主要是使用这些方案商的接口来做识别,百度AI的识别效率是非常高的,毕竟让别人花钱的东西是不一样的。
第一:百度车牌接口申请简介
首先,在浏览器输入“百度车牌识别”搜索。
点击“技术文档”,其中需要参考技术文档来查看使用手册,它里面会介绍API相关使用方法和测试方法。
我们只需要领取车牌识别功能资源,根据百度提供的“技术文档”可以知道,在文字识别》购买指南》免费测试资源,可以看到未实名认证的用户免费领取车牌识别功能为 200 次/月,实名认证是 1000 次/月。根据自己所需,勺情实名认证。在快速入门》新手操作指引处,我们在领取资源页面找到车牌识别,勾选“车牌识别”,然后点 0 元领取即可。
点击上图的文字识别控制台(蓝色字体)就可以看跳转到创建文字识别的应用了。如下图。
点击创建应用后。在文字识别应用列表中,默认会把文字识别的应用全部勾选了,如下图。接
着填上相关信息,完成创建即可。
创建完成后,查看应用的 API Key 和 Secret Key。因为下面的程序需要用到。
第二:百度识别代码实现
在源码路径下,先编写ocr.h源文件。
#ifndef OCR_H
#define OCR_H
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonArray>
#include <QHostInfo>
#include <QFile>
#include <QImage>
class Ocr : public QObject
{
Q_OBJECT
public:
Ocr(QObject *parent = nullptr);
~Ocr();
/* 请求网络 */
void requestNetwork(QString, QByteArray);
/* 获取识别结果 */
void getTheResult(QString fileName);
void getTheResult(QImage image);
private:
/* 存储获取 tokenUrl 地址 */
QString tokenUrl;
/* 存储 serverapi 地址 */
QString serverApiUrl;
/* 最终需要访问 token 的地址 */
QString accessToken;
/* 获取 token 的接口*/
const QString token_org ="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials
&client_id=%1&client_secret=%2&";
/* 填写网页上申请的 appkey 如 api_key ="g8eBUMSokVB1BHGmgxxxxxx" */
const QString api_key = "填写自己的 APP KEY";
/* 填写网页上申请的 APP SECRET 如
secret_key="94dc99566550d87f8fa8ece112xxxxx" */
const QString secret_key = "填写自己的 APP SECRET";
/* 百度服务器 API 接口,发送图片可返回识别结果 */
const QString server_api ="https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=%1
";
/* 网络管理 */
QNetworkAccessManager *networkAccessManager;
/* 处理 Json 数据 */
QString getJsonValue(QByteArray ba, QString key);
/* 处理 Json 数据 */
QString getJsonValue(QByteArray ba, QString key1, QString key2);
public slots:
/* 准备读取响应返回来的数据 */
void readyReadData();
/* 响应完成处理 */
void replyFinished();
/* 开始识别 */
void readyToDetection(QString);
void readyToDetection(QImage);
signals:
/* 识别到车牌,发送信号 */
void ocrReadyData(QString);
};
#endif // OCR_H
请填写读者自己在网页上申请的 API Key。本例不提供开放的 API Key,请填写自已个人申请的!
请填写读者在网页上申请的 Secret Key。本例不提供开放的 Secret Key,请填写自已个人申请的!
ocr 文件夹为车牌识别的应用程序,主要发送本地图片到百度车牌识别服务器上,然后返回识别结果。
Headers 文件夹为界面的头文件。
Sources 文件夹为界面的源文件。
注意:运行之前需要把项目下的 image 文件夹拷贝到可执行程序的同级目录下。此 image 文件夹目录存放的是要识别的车牌图片,若想替换自己的图片,需要把要识别的图片替换到 image 文件夹下的 carlpr.jpg,名字要相同。运行结果如下。
注意:Ubuntu 或者开发板需要联网!本程序适用于 Ubuntu18 和 I.MX6U开发板,Ubuntu16 会报 Openssl 版本错误!请注意!这就是为什么建议需要读者使用和笔者相同版本 Ubuntu 来开发的原因了!毕竟初学者处理不同的开发环境还是有点难度的!
第三:实现效果
效果分析如下:
运行程序后,界面会显示要识别的车牌图片,如果没有显示,是因为您没有把 image 文件夹拷贝到可执行程序的同级路径下。程序运行会根据您在百度上申请的车牌识别服务上的 API Key 与 Secert Key 来获取 token,获取 token 后,我们点击左上角的按钮就可以发送界面上显示的图片到百度车牌识别服务器上,服务器即会返回车牌识别结果。过程非常简单。如上图,识别的结果在界面的左上角。
总结:我们使用了百度车牌识别的接口来完成这个车牌识别的过程,在这里我们虽然我们不能学到车牌识别的算法,但是我们也学会了怎么根据百度 ai 的帮助文档去调用。并不是所有的车牌识别算法都开源,毕竟也是别人的成果,别人的成果也是要付出的。此例程仅供参考使用。实际用到项目上请购买相关的车牌识别产品。
应用开发图像识别之经典方法相关推荐
- IT软件开发行业拓客的10个经典方法
IT软件开发精准拓客.拓客方法.客源线索获取.客源信息抓取.拓客软件.流同行的客户.截取竞争对手客户.渠道裂变方式.如何找到对IT软件开发服务有需求的精准客源是每个老板每天思考要解决的问题,我教大家如 ...
- 采集京东网数据的10个经典方法
京东网数据采集全网抓取网页数据.商品销量.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集.一站式网站采集技术.BI数据的数据分析. ...
- 网站数据采集的10个经典方法
网站数据采集的网页抓取数据.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集.一站式网站采集技术.BI数据的数据分析.数据标注等成为大数据发展 ...
- 采集淘宝网的10个经典方法
采集淘宝官网的10个经典方法 采集淘宝数据分析.商品详细信息.竞店数据.品牌数据.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集. ...
- 实现人rou搜索的10个经典方法
实现renrou搜索关于人rou搜索论坛.网络找人.网络搜人.renrou搜索怎么搜人.人rou搜索解决的方法,网页抓取数据.网页爬虫.采集网站数据.网页数据采集软件.APP数据采集.一站式网站采集技 ...
- 电商数据采集的10个经典方法
电商数据采集的网页抓取数据.淘宝.天猫.京东等平台的电商数据抓取,网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集.一站式网站采集技术.BI数 ...
- 直播数据采集的10个经典方法
直播数据采集.直播峰值.直播销量.直播销售额.主流直播平台数据,直播带货量和爆款数据.粉丝数据.竞品分析,采集网站数据.网页数据采集软件.python爬虫.APP数据采集.一站式网站采集技术.BI数据 ...
- 采集天猫网的10个经典方法
采集天猫网的10个经典方法 天猫网采集天猫数据统计.商品详细信息.竞店分析.品牌数据.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采 ...
- 采集企业老板的10个经典方法
采集企业老板的10个经典方法 企业老板采集全网抓取网页数据.企业信息采集.企业名录.法人号码.企业采集软件.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP ...
最新文章
- Smarty模板的基础
- iPad不是大号的iPod touch
- 最小生成树kruskal算法并查集版 C语言实现
- split命令--linux切割(拆分)文件
- Lua 读表代码,自动生成字段名字
- 云安全仍是企业决策者最大担心
- 一次线上ctf的网络协议分析
- 换工作,让我里外不是人,到底错在哪儿
- 中专计算机专业教研方案,教研活动实施方案电脑基础知识IT计算机专业资料-教研活动实施方案.pdf...
- JZOJ 3517. 空间航行
- Fragmen的onAttach方法
- 计算机网络原理的思维导图汇总
- 内蒙古工业大学2022年数据结构习题集
- Laya的位图字体bitmapFont字体用法
- 【期权机理与python实践】
- android系统密码设置功能,手机锁屏设置!安卓手机锁屏密码设置技巧?
- mysql创建用户并授权语句_MySQL创建用户与授权
- pl/sql oracle导出,用pl/sql实现oracle数据的导出和导入
- ”高内聚 ,低耦合“到底是什么意思?
- discuz gbk php在utf8,Discuz!3.4论坛从GBK转换成UTF8的成功经验
热门文章
- 土壤水分检测仪的工作原理?
- 电路基础_模拟电路_问答_2023_01
- 大学生的就业观念普遍趋于现实
- Java中的Character类
- 如何将Delphi7 下Bookmark的运用方便地移植到Delphi XE 下
- 《RFID原理及应用》期末复习总结
- 编译出错 yacc:未找到命令
- [阿里云大学][Java面向对象开发][课程笔记][17-42课时]
- 如何利用亚马逊关键词进行引流?权威关键词设置技巧来了
- SouthernBiotech山羊抗兔IgM-FITC说明书