应用开发图像识别之经典方法

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 花无从开日,人无再少年,加油!。 今天主要和大家聊一聊,如何使用百度AI实现图像识别的方法,在现实生活中,我们会看到停车场,高速路口有车牌识别。现在很多车牌方案商都有成熟的车牌识别技术,它们是靠这个吃饭的,不会开源。本次文章主要是使用这些方案商的接口来做识别,百度AI的识别效率是非常高的,毕竟让别人花钱的东西是不一样的。

第一:百度车牌接口申请简介


   首先,在浏览器输入“百度车牌识别”搜索。

3391fa1884019216bdbdcc8f4f0480e3.png     点击“技术文档”,其中需要参考技术文档来查看使用手册,它里面会介绍API相关使用方法和测试方法。

d886d6f6cb3cf2e4f7b145269586fc78.png

 我们只需要领取车牌识别功能资源,根据百度提供的“技术文档”可以知道,在文字识别》购买指南》免费测试资源,可以看到未实名认证的用户免费领取车牌识别功能为 200 次/月,实名认证是 1000 次/月。根据自己所需,勺情实名认证。在快速入门》新手操作指引处,我们在领取资源页面找到车牌识别,勾选“车牌识别”,然后点 0 元领取即可。


df1a31e919b575765bfb3d4b0e484285.png

点击上图的文字识别控制台(蓝色字体)就可以看跳转到创建文字识别的应用了。如下图。

点击创建应用后。在文字识别应用列表中,默认会把文字识别的应用全部勾选了,如下图。接

着填上相关信息,完成创建即可。

c41288ee41e9a2b1e02905595a00e405.png

创建完成后,查看应用的 API Key 和 Secret Key。因为下面的程序需要用到。

8d315531c51c24a5e2d1d16c40f46c5d.png

第二:百度识别代码实现


   在源码路径下,先编写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 来开发的原因了!毕竟初学者处理不同的开发环境还是有点难度的!


第三:实现效果


ec6838a9ebfde42997197de468e550fd.png

效果分析如下:


运行程序后,界面会显示要识别的车牌图片,如果没有显示,是因为您没有把 image 文件夹拷贝到可执行程序的同级路径下。程序运行会根据您在百度上申请的车牌识别服务上的 API Key 与 Secert Key 来获取 token,获取 token 后,我们点击左上角的按钮就可以发送界面上显示的图片到百度车牌识别服务器上,服务器即会返回车牌识别结果。过程非常简单。如上图,识别的结果在界面的左上角


总结:我们使用了百度车牌识别的接口来完成这个车牌识别的过程,在这里我们虽然我们不能学到车牌识别的算法,但是我们也学会了怎么根据百度 ai 的帮助文档去调用。并不是所有的车牌识别算法都开源,毕竟也是别人的成果,别人的成果也是要付出的。此例程仅供参考使用。实际用到项目上请购买相关的车牌识别产品。


目录
相关文章
|
14天前
|
机器学习/深度学习 人工智能 监控
深度学习中的图像识别:原理与实践
【9月更文挑战第21天】本文将深入浅出地探讨深度学习在图像识别领域的应用。我们将从基础的神经网络概念出发,逐步深入到卷积神经网络(CNN)的工作机制,最后通过一个实际的代码示例来展示如何利用深度学习进行图像识别。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能。
36 1
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习进行图像识别的基本原理与实践
【8月更文挑战第27天】在这篇文章中,我们将探索图像识别技术的核心原理,并借助深度学习框架实现一个基本的图像识别模型。通过简洁的代码示例和直观的解释,我们旨在向读者展示如何从零开始构建自己的图像识别系统,以及这一过程中可能遇到的挑战和解决方案。无论你是AI领域的初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和指导。
|
2月前
|
机器学习/深度学习 自然语言处理 自动驾驶
【深度学习】深度学习的详细解析:涵盖定义、技术原理及应用场景
深度学习(Deep Learning)是机器学习(Machine Learning)的一个重要分支,它通过使用多层的神经网络来模拟人脑的学习过程,从而实现对数据的分析和理解。以下是关于深度学习的详细解析
115 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】AudioLM音频生成模型概述及应用场景,项目实践及案例分析
AudioLM(Audio Language Model)是一种基于深度学习的音频生成模型,它使用自回归或变分自回归的方法来生成连续的音频信号。这类模型通常建立在Transformer架构或者类似的序列到序列(Seq2Seq)框架上,通过学习大量音频数据中的统计规律,能够生成具有高保真度和创造性的音频片段。AudioLM模型不仅能够合成音乐、语音,还能生成自然界的声音、环境噪声等,其应用广泛,涵盖了娱乐、教育、辅助技术、内容创作等多个领域。
53 1
|
2月前
|
机器学习/深度学习 人工智能 算法
深入探索TensorFlow在强化学习中的应用:从理论到实践构建智能游戏AI代理
【8月更文挑战第31天】强化学习作为人工智能的一个重要分支,通过智能体与环境的互动,在不断试错中学习达成目标。本文介绍如何利用TensorFlow构建高效的强化学习模型,并应用于游戏AI。智能体通过执行动作获得奖励或惩罚,旨在最大化长期累积奖励。TensorFlow提供的强大工具简化了复杂模型的搭建与训练,尤其适用于处理高维数据。通过示例代码展示如何创建并训练一个简单的CartPole游戏AI,证明了该方法的有效性。未来,这项技术有望拓展至更复杂的应用场景中。
35 0
|
3月前
|
机器学习/深度学习 算法 PyTorch
深度学习中的图像风格迁移技术探析
图像风格迁移是近年来深度学习领域备受关注的研究方向之一。本文将从算法原理、实现步骤到应用案例,全面分析和探讨几种主流的图像风格迁移技术,为读者深入理解和应用这一技术提供详实的指南。 【7月更文挑战第2天】
|
4月前
|
机器学习/深度学习 监控 自动驾驶
图像识别:从理论到实践的技术探索
【6月更文挑战第15天】本文探讨图像识别技术,从理论到实践,涉及人脸识别、自动驾驶及医疗诊断的应用。图像识别基于数字图像处理和深度学习(如CNN),在改变世界的同时,也提出准确度、鲁棒性、隐私安全等挑战。未来,技术进步将持续推动其在多领域创新应用,伴随而来的是对伦理和社会问题的关注。
|
5月前
|
机器学习/深度学习 数据采集 监控
构建一个基于机器学习的图像识别系统
【5月更文挑战第29天】构建基于机器学习的图像识别系统涉及数据准备、模型选择、训练优化及部署测试。数据准备包括收集多样化数据集、预处理和数据划分;模型选择常选用CNN、RNN/LSTM或GAN;训练优化涉及模型训练、评估与选择;最后,部署到实际应用时要考虑计算效率和内存占用,并持续更新维护模型。
|
5月前
|
机器学习/深度学习 数据处理 决策智能
利用深度学习优化图像识别流程
【5月更文挑战第30天】 在当今数据驱动的时代,图像识别技术的进步为自动化和智能化开辟了新天地。本文将深入探讨深度学习在图像识别中的应用,并提出一套优化策略,旨在提升模型的准确度与效率。通过采用卷积神经网络(CNN)架构,并结合最新的数据增强技术,我们将展示如何构建一个既健壮又高效的图像识别系统。此外,文章还将讨论避免过拟合的策略以及如何利用迁移学习加速模型训练过程。我们的研究不仅适用于通用的图像分类任务,还能为特定领域的定制解决方案提供理论支持。
|
5月前
|
机器学习/深度学习 监控 安全
深度学习驱动下的智能监控革新:图像识别技术的实战应用
【4月更文挑战第16天】 随着人工智能的迅猛发展,深度学习技术在图像处理和分析领域取得了突破性的进展。尤其是在智能监控系统中,基于深度学习的图像识别技术已经成为提高安全水平、实现自动化监控的关键工具。本文聚焦于深度学习在智能监控中的应用,探讨了卷积神经网络(CNN)、递归神经网络(RNN)等先进结构在实时视频流分析和异常行为检测方面的具体实践。通过深入分析多个案例,我们展示了深度学习如何提升监控系统的准确性、效率及智能化程度,同时对面临的挑战和未来发展趋势进行了展望。
下一篇
无影云桌面