基于百度智能云的OCR接口进行图文识别

基于,百度,智能,ocr,接口,进行,图文,识别 · 浏览次数 : 1849

小编点评

## 利用百度OCR进行图片文字的提取处理 **1. 获取百度OCR免费资源** * 登录百度智能云:https://login.bce.baidu.com/ * 在“产品服务”菜单栏中搜索“文字识别”,点击【领取免费资源】 * 完成领取后,需要半个小时之后才能生效。 * 返回主面板,进行创建应用,填写相关信息即可创建成功,应用创建好之后会生成AppID、API Key和Secret Key * 使用百度AI的SDK,使用API Key和Secret Key参数接口调用处理! **2. 项目测试/接口调用** * 创建一个Winform的测试项目 * 添加对应的Baidu.AI的SDK包和Json.NET的类库 * 设计一个界面,对图片文件的内容进行识别处理 **3. 测试代码** ```csharp private void btnLoadImage_Click(object sender, EventArgs e) { var imageFile = FileDialogHelper.OpenImage(false, "\"); if (imageFile != null) { var str = BaiduOcr(imageFile); this.txtResuilt.Text = str; } } private static string BaiduOcr(string imageFile) { var APIKey = "**********"; var SecretKey = "********"; var ocr = new Baidu.Aip.Ocr.Ocr(APIKey, SecretKey); var currentImage = FileUtil.FileToBytes(imageFile); var result = ocr.Accurate(currentImage); string str = string.Empty; var txts = (from obj in (JArray)result.Root["words_result"] select (string)obj["words"]).ToList(); string startString = "手术助手"; int startIndex = 0; for (int i = 0; i < txts.Count(); i++) { if (txts[i] == startString) { startIndex = i; //记录二维表的开始位置 } } var newList = txts.Skip(startIndex + 1).ToList(); str = string.Join("\r\n", newList); return str; } ``` **4. 示例结果** 使用百度OCR接口进行测试,可以看到具体的测试结果即可,然后根据结果进行格式化的转换就可以输出对应Excel格式或者其他格式了

正文

由于一些客户的内部系统需要提取一些记录信息,如果手工录入会变得比较麻烦,因此考虑使用百度云的OCR进行图片文字的提取处理,综合比较了一下开源免费的Tesseract 类库进行处理,不过识别效果不太理想,因此转为了百度的OCR云接口处理方式,测试的效果比较理想,基本上较少出现错别字。本篇随笔介绍如何利用百度OCR进行图片文字的提取处理,以便从别的系统中批量化获得响应的系统数据,然后进行相应的格式化处理。

1、百度OCR服务申请

百度的OCR接口调用是收费的接口,不过一般是在超过一定量的情况后进行收费,我们可以申请获得每月免费的额度。

百度智能云地址:https://login.bce.baidu.com/

首先我们去到百度智能云里,在左边菜单栏的产品服务中搜索"文字识别",点击【领取免费资源】,将所有的免费资源领取,领取之后要半个小时之后才能生效。

回到主面板,我们要进行创建应用,填写相关的信息即可创建成功,应用创建好之后会生成AppID、API Key和Secret Key,使用百度AI的SDK,使用API Key和Secret Key参数接口调用处理!

 

 

2、项目测试/接口调用

创建一个Winform的测试项目及性能接口的调用测试,在Nuget上添加对应的Baidu.AI的SDK包,以及Json.NET的类库,如下所示。

 

设计一个界面,对图片文件的内容进行识别处理。 

 

具体测试的代码如下所示。

        private void btnLoadImage_Click(object sender, EventArgs e)
        {
            var imageFile = FileDialogHelper.OpenImage(false, "");
            if(imageFile != null)
            {
                var str = BaiduOcr(imageFile);
                //var str = TesseractOcr(imageFile);
                this.txtResuilt.Text = str;
            }
        }

        private static string BaiduOcr(string imageFile)
        {
            var APIKey = "**********";
            var SecretKey = "********";
            var ocr = new Baidu.Aip.Ocr.Ocr(APIKey, SecretKey);

            var currentImage = FileUtil.FileToBytes(imageFile);
            var result = ocr.Accurate(currentImage);
            string str = string.Empty;
            var txts = (from obj in (JArray)result.Root["words_result"]
                        select (string)obj["words"]).ToList();

            string startString = "手术助手";
            int startIndex = 0;
            for (int i = 0; i < txts.Count(); i++)
            {
                if (txts[i] == startString)
                {
                    startIndex = i; //记录二维表的开始位置
                }
            }

            var newList = txts.Skip(startIndex + 1).ToList();

            str = string.Join("\r\n", newList);
            return str;
        }

如系统界面的图片如下所示。

 

使用百度OCR接口进行测试,可以看到具体的测试结果即可,然后根据结果进行格式化的转换就可以输出对应Excel格式或者其他格式了

 

能够获取列表的记录,进行相应的处理即可,这样可以减少数据提取或者录入的时间,通过OCR的自动化处理,可以极大的提高数据的处理效率。

 

与基于百度智能云的OCR接口进行图文识别相似的内容:

基于百度智能云的OCR接口进行图文识别

由于一些客户的内部系统需要提取一些记录信息,如果手工录入会变得比较麻烦,因此考虑使用百度云的OCR进行图片文字的提取处理,综合比较了一下开源免费的Tesseract 类库进行处理,不过识别效果不太理想,因此转为了百度的OCR云接口处理方式,测试的效果比较理想,基本上较少出现错别字。本篇随笔介绍如何利用百度OCR进行图片文字的提取处理,以便从别的系统中批量化获得响应的系统数据,然后进行相应的格式化处

PanGu-Coder2:从排序中学习,激发大模型潜力

华为云CodeArts Snap插件也即将上线基于PanGu-Coder2的百亿级代码生成服务,为Snap用户提供更全面的语言支持、更智能的代码生成、更准确的补全建议。

基于百度AI实现文字和图像敏感内容审核

前言 百度AI是指百度公司的人工智能技术全称。它采用深度学习技术,包括自然语言处理、语音识别、计算机视觉、知识图谱等,可应用于各个领域如互联网、医疗、金融、教育、汽车、物流等。百度AI的发展将帮助人类更好地理解世界和提高生活品质,接下来就通过一个小案例演示实现百度AI在文字和图像敏感审核应用。 项目

#Python实例 计算外卖配送距离(基于百度API接口)---第二篇

https://www.cnblogs.com/simone331/p/17218019.html 在上一篇中,我们计算了两点的距离(链接为上篇文章),但是具体业务中,往往会存在一次性计算多组,上百甚至上千的距离。 所以我们需要利用python函数,批量去处理和传参,批量计算距离。前面的操作去第一篇

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)

[toc] [百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览](https://www.cnblogs.com/vipsoft/p/17439619.html) [百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Padd

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)

Paddle Serving 是飞桨服务化部署框架,能够帮助开发者轻松实现从移动端、服务器端调用深度学习模型的远程预测服务。 Paddle Serving围绕常见的工业级深度学习模型部署场景进行设计,具备完整的在线服务能力,支持的功能包括多模型管理、模型热加载、基于Baidu-RPC的高并发低延迟响应能力、在线模型A/B实验等,并提供简单易用的Client API。Paddle Serving可以

基于ReAct机制的AI Agent

当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己的LLM推出了自己的AI Agent,比如字节的Coze,百度的千帆等,还有开源的Dify。你是否想知道其中的原理?是否想过自己如何实现一套AI Agent?当然,借助LangChain就可以。

防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其“云基因”的成长与进化,即基于云存储的云备份。 本次我们使用Golang1.18完成百度网盘(百度云盘)接口AP

模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)

[TOC] 图像识别 + 信息抽取(UIE-X),部署接口供别的应用调用 最终在自己部署的环境中识别时报错,不知道是不是和GPU有关,还在尝试中 ## 流程 - 在百度 BML CodeLab 中跑好模型(免费算力,玩玩够了) - 下载模型 (比较大,我这个有10G了,可以适当做裁剪) - Linu

声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

借助So-vits我们可以自己训练五花八门的音色模型,然后复刻想要欣赏的任意歌曲,实现点歌自由,但有时候却又总觉得少了点什么,没错,缺少了画面,只闻其声,却不见其人,本次我们让AI川普的歌声和他伟岸的形象同时出现,基于PaddleGAN构建“靓声靓影”的“懂王”。 PaddlePaddle是百度开源