调用百度ai接口实现图片文字识别详解

article/2025/8/9 23:48:00

调用百度ai接口实现图片文字识别详解

        首先先介绍一下这篇博文是干嘛的,为了不浪费大家时间。公司最近和短视频公司合作,需要监控app的截图上的文字是否符合规范,也就是确保其没有违规的文字。到网上找了一些资料发现百度ai提供这个功能,这篇文章主要就是介绍怎么获取到图片上的文字。接下来进入正题,look down,man:

一、下载项目

        1、在浏览器输入网址http://ai.baidu.com/或者百度搜索‘百度ai’点击第一个。点击主页的产品服务,看到通用文字识别。如下图所示:
在这里插入图片描述

2、点击技术文档,里面有SDK。
在这里插入图片描述

3、可以看到在文字识别在的api文档有多个接口,你可以根据你的需求来选择对应的接口。
在这里插入图片描述

4、重点是现在这里,看到SDK文档的java语言,因为我用的是java,所以这里就介绍这个了,其他语言也一样选择对应的文档查看就行了。
在这里插入图片描述

5、在官方网站下载所需的jar包,你会看到下图所示,选择文字识别,然后下载右边的java SDK的jar包。
在这里插入图片描述

6、下载的jar包如图所示:
在这里插入图片描述

二、部署项目

1、先将项目导入到你的ide,我这里用的是eclispe。然后去下个jar包,叫做aip-java-sdk-version.jar。version对应的是你之前下载的项目的版本,这里下载aip-java-sdk-4.11.0.zip就好了。你可以直接百度搜索jar包名称,会发现有很多c站的资源可以下,我这里为了方便大家已经上传到了百度网盘,链接https://pan.baidu.com/s/1OWyE3s4d9MUWuC8dIbTMSQ、提取码mjiq。将包下下来以后回到项目这里,直接将包复制到你的项目下面,然后右键add build path,或者右键项目Build Path -> Add JARs选择其也可以。
在这里插入图片描述

2、因为项目中有用到json-20160810.jar和log4j-1.2.17.jar,所以在pom.xml文件加入如下两个依赖:
其中json包是在接收百度ai文字识别接口返回值时用的,log4j是输出日志时用的。如果你不想用这两个依赖。比如想用阿里的fastjson,将代码中的相应部分改掉就好了。

	<!-- json依赖 --><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20160810</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

3、你可以看到项目的结构,没错,这是一个springboot项目。
在这里插入图片描述

三、调用接口

1、在真正使用百度ai图片文字识别的接口前还需要一个东西,继续回到百度ai的主页。点击下图中的控制台中的文字识别。
在这里插入图片描述

2、选择应用列表,点击创建应用,然后填写一些相应的信息就可以创建了,这里我就不一一概述了。
在这里插入图片描述

3、创建好了会如下图所示,其中AppId、API Key、Secret Key都是有值的。在这里先说声恭喜啦,你离成功越来越近了。
在这里插入图片描述

4、在你的ide中打开之前的项目,在项目中随意建一个文件夹,在文件夹下随意建一个java类。我这里是run文件夹下建的Sample类。
在这里插入图片描述

5、然后将以下代码复制到你的Sample类中,我简单做一下说明。APP_ID 、API_KEY 、SECRET_KEY是你之前在控制台创建的,复制过来就可以了。options是设置可以识别的语言,path是你图片的路径,如果你不想设置语言类型,直接传new HashMap<String,String>()就可以了。现在你可以弄张图片测试下了。

import java.util.HashMap;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.baidu.aip.ocr.AipOcr;
import com.baidu.aip.run.mapper.KeyWordMapper;@Component
public class Sample{@Autowiredprivate KeyWordMapper keyWordMapper;// 设置APPID/AK/SKpublic static final String APP_ID = "1632656666";public static final String API_KEY = "SuIze0vOa1BQX9KhooKgtK311Q";public static final String SECRET_KEY = "kXQe85iSiv7TuamRXqbkdSyohIBSdCl227";// 初始化用户对象public static AipOcr init() {// 初始化一个AipOcrAipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);// 可选:设置网络连接参数client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);return client;}public void sample() {// 传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();options.put("language_type", "CHN_ENG");options.put("detect_direction", "true");options.put("detect_language", "true");options.put("probability", "true");AipOcr client = init();// 参数为本地图片路径String image = "test.jpg";String path = "C:\\Users\\Lenovo\\Desktop\\图片\\aaa.jpg";JSONObject res = client.basicGeneral(path, options);System.out.println(res.toString());//        // 参数为本地图片二进制数组
//        byte[] file = readImageFile(image);
//        res = client.basicGeneral(file, options);
//        System.out.println(res.toString(2));// 通用文字识别, 图片参数为远程url图片
//        JSONObject res = client.basicGeneralUrl(url, options);
//        System.out.println(res.toString(2));}
}

6、这点是扩展,主要讲讲接口的返回值。返回值是以json格式返回的。经过我的测试发现一共有三种可能的返回值。
          一、图片上有字并识别成功:这种情况在json返回值中会包含一个words_result键名,值就是识别到的文字,它是一行一行识别的,所以在words_result里面可能有多个值,键名是words。
          二、图片上有字但不出:这种情况是图片上是有字的,但是没有识别出来,返回的words_result里面是空的。比如艺术字。
          三、图片格式错误:这种情况是图片上根本就没字或者没有可识别的文字,返回值会包含一个error_code键名,你可以直接通过返回值是否包含其来判断格式是否错误。

好了,结束咯!有什么不明白或者博文中有不对的地方欢迎留言,我会及时回复的,谢谢。


http://chatgpt.dhexx.cn/article/FIB02T4Z.shtml

相关文章

UI界面视觉设计之字体要素--安卓-ios-网页常用字体

怎么设计出从而设计出富有美感和形式感的优秀作品&#xff1f; 1.设计经验的积累。 2. 在每个项目设计中只使用1到2个字体样式&#xff0c;通过对字体大小或颜色来强调重点文案&#xff0c;如图的界面设计中&#xff0c;都是通过字体大小、粗细来区分界面内容中的层级关系。字…

【UI教程】结合PS和AI绘制炫彩2.5D插画

【UI教程】结合PS和AI绘制炫彩2.5D插画 为了此次文章教程,利用下班在家空余时间撸图撸了两个凌晨,原则只做原创精品设计文章,好案例配好文章,希望大家能喜欢,做设计行业文章教程最初目的就是能希望帮助到更多设计师小伙伴,很单纯、很简单 完全免费奉献上我一些能量,我不…

Adobe AI软件解决界面字体过小的方法

转载自&#xff1a;http://www.pc0359.cn/article/jiaocheng/69216.html &#xff0c;图片为本博主自己操作时的截图。 AI是adobe旗下的软件之一&#xff0c;使用过该公司软件的用户应该都有这样的感受&#xff0c;软件功能很强大&#xff0c;可是它的界面字体实在是太小。对于…

视频教程-AI软件与字体设计-Illustrator

AI软件与字体设计 专注提供优质教学内容 CSDN就业班 136.00 立即订阅 扫码下载「CSDN程序员学院APP」&#xff0c;1000技术好课免费看 APP订阅课程&#xff0c;领取优惠&#xff0c;最少立减5元 ↓↓↓ 订阅后&#xff1a;请点击此处观看视频课程 视频教程-AI软件与字体设计…

ai怎么调界面大小_ai软件界面字体特别小 ai菜单栏字体大小怎么改

win8系统装软件,软件那些字体好小,怎么调大,例如PS软件,AI软件里面那些菜单栏字都很小,怎么? 1、桌面空白处单击鼠标右键,选择“屏幕分辨率”; 2、点击“放大或缩小文本和其他项目”; 3、单击屏幕右侧“设置自定义文本大小”; 4、在下拉列表中可以选择默认提供的放大…

ai字体设计(鲜到家)

1、选择合适的字体输入文本内容 2、 选中文字&#xff0c;选择文字菜单&#xff0c;点击创建轮廓&#xff08;将文字转曲&#xff09;&#xff1b;选择倾斜工具&#xff0c;双击后输入角度等参数&#xff0c;确定&#xff0c;用小白工具把鲜字的笔画往下拉一拉&#xff0c;有折…

AI多种设计字体的方法与英文字体收藏

为什么80%的码农都做不了架构师&#xff1f;>>> &#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;无意间看到了刘兵克的字体改造法&#xff0c;大神&#xff1a;点我。 ZCOOL上有他的字体LOGO专题&#xff0c;感觉比较专业&#xff0c;虽然有些改动并…

【AI】简单的方法教你做一组字体设计

字体设计初级方法交流、学习&#xff0c;喜欢可以分享&#xff0c;下面上设计教程。 首先&#xff0c;你要有一个软件——AI&#xff0c;这一点非常重要&#xff01;&#xff01;切记&#xff01;&#xff01; 然后我们开始设计&#xff0c;这次设计的是工作室出品的一组明信片…

【干货分享】用AI工具设计一款吸引人的字体效果

干货又来啦&#xff01;今天教大家如何使用AI工具设计一款引人注目的字体效果&#xff0c;话不多说&#xff0c;我们直接开始&#xff01; 1、在AI画布中使用钢笔工具勾勒出字母的线条&#xff0c;如图所示 2、使用椭圆工具画一个小的正圆&#xff0c;并填充蓝色渐变。 3、我们…

再续FFT:信号的频谱分析

摘自&#xff1a;http://www.ilovematlab.cn/thread-119939-1-1.html http://www.360doc.com/content/13/1208/18/13670635_335496776.shtml 对于下面这句话该怎么理解&#xff1f; 假设采样频率为Fs&#xff0c;信号频率F&#xff0c;采样点数为N。那么FFT之后结果就是一个为…

实验五 连续信号的频谱分析

目录 一、实验目的二、实验原理1、连续周期信号的傅里叶级数、各次谐波及叠加2、连续周期信号的周期T的变化对频谱的影响3、连续非周期信号的频谱 三、实验内容1、在实验原理1中&#xff0c;绘制加入5次谐波后的波形&#xff0c;根据该仿真图&#xff0c;说明为什么加入5次谐波…

【信号与系统】(十四)傅里叶变换与频域分析——周期信号的频谱及特点

文章目录 周期信号的频谱及特点1 周期信号的频谱2 单边谱和双边谱的关系3 周期信号频谱的特点4 周期信号的功率 周期信号的频谱及特点 频谱——信号的一种新的表示方法 1 周期信号的频谱 频谱&#xff1a;周期信号分解后&#xff0c;各分量的幅度和相位对于频率的变化&#x…

信号频谱和傅氏变换

信号频谱和傅氏变换基本思想&#xff1a; 把一个复杂信号分解成许多简单的正弦信号的叠加,这些正弦信号的频率是已知的&#xff0c;相应的振幅和相位则可由原始信号确定。 周期信号都可以表示成谐波关系的正弦信号的加权和&#xff0c;非周期信号都可以用正弦信号的加权积分来…

基于FFT的信号频谱分析

设计要求 用MATLAB产生正弦波及白噪声信号,并显示各自时域波形图。进行FFT变换,显示各自频谱图。做出两种种信号的均方根图谱,功率图谱,以及对数方均根图谱。用IFFT傅里叶反变换恢复信号,并显示时域波形图 正弦波的信号频谱分析 正弦波源代码 clear all clc %*************…

近代数字信号处理实验-DFT分析信号的频谱

一、实验目的 &#xff08;1&#xff09;掌握利用DFT近似计算不同类型信号频谱的原理和方法。 &#xff08;2&#xff09;理解误差产生的原因及减小误差的方法。 &#xff08;3&#xff09;培养学生自主学习能力&#xff0c;以及发现问题、分析问题和解决问题的能力。 二、…

Matlab中利用FFT实现信号频谱搬移

目录 Matlab中利用FFT实现信号频谱搬移只有实部的频谱搬移只有虚部的频谱搬移复函数下的频谱搬移 Matlab中利用FFT实现信号频谱搬移 在fft的理论中&#xff0c;fft的频移特性表示为&#xff1a; 也就是说&#xff0c;要想对信号f&#xff08;t&#xff09;实现频域的频谱搬移&…

转|周期矩形脉冲信号频谱及特点

周期矩形波信号及其频谱 如图所示信号为脉冲宽度τ&#xff0c;脉冲幅度A&#xff0c;周期为T的周期矩形脉冲信号。 上述周期矩形脉冲信号的傅里叶系数推导可参考占空比任意方波的傅里叶级数展开最终化简可得到下面的表达式。 由此式可得知&#xff0c;该信号频谱谱线大致按照…

用Matlab求余弦信号的频谱

如果你是电子信息类专业的学生&#xff0c;一定对频谱这个词听过无数次了&#xff0c;当然求频谱的方法之一就是可以采取快速傅里叶的方法&#xff0c;今天来给大家介绍一种用Matlab对余弦信号求频谱的实际操作。 第一步&#xff1a;构建原始余弦信号 Matlab代码如下&#xf…

2、信号与频谱

2.1、概述 信号传输的实质&#xff1a;信息传输的过程就是信号变换和处理的过程。如何观察信息传输过程中信号发生了什么变化&#xff1f; 一种方法是在时域 观察信号波形的变化&#xff0c;另一种方法是在频域观察信号频谱的变化。最常见的基本信号&#xff1a;正弦信号。 2…

matlab画信号频谱

为了让大学生活充实一点&#xff0c;多学点东西&#xff0c;我选修了《数字信号处理》。现在充实得不要不要的。 clc close all clear%参数设置% Fs 1000; % Sampling frequency T 1/Fs; % Sampling period L 1500; …