吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4573|回复: 16
收起左侧

[Java 转载] java对接华为图片识别OCR服务

 关闭 [复制链接]
三木猿 发表于 2022-6-15 15:33
本帖最后由 三木猿 于 2022-6-17 10:02 编辑

已同步更新个人博客:http://www.sanmu.xyz/blog/6
OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
=======================================================以上来自百度========================================================================
  • 前言:
    简单来说OCR就是图片识别技术,我把图片传到OCR供应商,然后提供商返回图片中的所有文字。
  • 供应商:
       为什么要选择供应商,不能自己写OCR吗?
       当然可以,但是最好不要,实际上java是有OCR的工具包的,也就是开源OCR,使用它需要在电脑安装OCR软件,项目中也需要导包,不方便的同时,用开源OCR解析出来的文字
可能并不准确,并且数据会很乱,一般解析出来的json就是某一串文字和这串文字对应的以像素为单位的坐标。这种数据处理起来也比较麻烦,并且解析的图片也只能是指定大小、
指定样式的,想要数据解析准确就必须能够准确找到想要的数据,用自己写的OCR就很难做到了。如果需要解析的图片有固定的样式,图片大小也确定为固定像素,那你完全可以试试
这种手撸代码的方式。
       怎么选择供应商?
       这个要看自己的业务需求了,比如你需要解析的是营业执照,那你必须找到一个支持营业执照解析的OCR供应商,OCR识别功能其实也是属于人工智能的一种,而人工智能国内顶尖的
也就那几个公司,什么某里云,腾某云、某度云、某为云啥的,我这里主要说下某为云。,其实各家的使用方式都是大同小异的。
       有没有各家供应商的收费标准?
        你算是赚到了,我刚好有这玩意,我这只有部分的,其他的就要你们自己去找了
1655278990974.jpg

    3. 主体,华为云使用

  • [XML] 纯文本查看 复制代码
    <dependency>
    <groupId>com.huaweicloud.sdk</groupId>
    <artifactId>huaweicloud-sdk-ocr</artifactId>
    <version>3.0.92</version>
    </dependency>
  • 华为云其实能自动生成代码的,就在API Explorer(在线测试地址)
    • image.png

       3.1华为云代码解析
           
[Java] 纯文本查看 复制代码
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.ocr.v1.region.OcrRegion;
import com.huaweicloud.sdk.ocr.v1.*;
import com.huaweicloud.sdk.ocr.v1.model.*;


public class RecognizeGeneralTableSolution {

    public static void main(String[] args) {
        String ak = "<YOUR AK>";//这个是身份校验需要的ak,sk,相当于用户名密码
        String sk = "<YOUR SK>";

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        OcrClient client = OcrClient.newBuilder()
                .withCredential(auth)
                .withRegion(OcrRegion.valueOf("cn-east-3"))//地区
                .build();
        RecognizeGeneralTableRequest request = new RecognizeGeneralTableRequest();
        try {
            RecognizeGeneralTableResponse response = client.recognizeGeneralTable(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

ak,sk获取方式
地址:https://console.huaweicloud.com/ ... h-4#/mine/accessKey
image.png
地区获取方式
image.png

免费评分

参与人数 1热心值 +1 收起 理由
Hu2545Hu + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 三木猿 发表于 2023-1-6 11:40
Naylor 发表于 2023-1-5 09:23
核心代码是获做了认证,没有看到ocr识别相关的代码呀?

其中这一段代码都是OCR识别相关的,不同的OCR更换不同的实现类名就行,因为是自动生成的代码,所以可以直接到华为在线调试里面生成
[Java] 纯文本查看 复制代码
OcrClient client = OcrClient.newBuilder()
                .withCredential(auth)
                .withRegion(OcrRegion.valueOf("cn-east-3"))//地区
                .build();
        RecognizeGeneralTableRequest request = new RecognizeGeneralTableRequest();
        try {
            RecognizeGeneralTableResponse response = client.recognizeGeneralTable(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
大头鱼110 发表于 2023-8-29 21:28
椭圆:
2 2
2 2 1
4 3
x y
c c
&#61483; &#61501; ,
2
0,
2
C c
&#61670; &#61686;
&#61671; &#61687;
&#61672; &#61688;
,设 M (x, y),
2
2
2 2 2 1 2 9 7 2 6 2
2
2 3 2 2
c
MC x y c y cy c
&#61670; &#61686; &#61483;
&#61501; &#61483; &#61671; &#61485; &#61687; &#61501; &#61485; &#61485; &#61483; &#61603;
&#61672; &#61688;

6 1
2
MC &#61603; &#61483; c,
max
2 3 2
4
MC
AB
&#61670; &#61686; &#61483;
&#61532;&#61671; &#61687; &#61501;
&#61672; &#61688; ,选 D
 楼主| 三木猿 发表于 2022-6-17 10:06
顺带一提,QQ的文字提取就是OCR技术,很多小众文字提取软件大多用的开源OCR,毕竟别人的要钱
头像被屏蔽
nissansz 发表于 2022-6-17 16:53
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 三木猿 发表于 2022-6-18 09:21
nissansz 发表于 2022-6-17 16:53
pytorch, paddle自己训练,可以准确度高

用OCR识别营业执照这种,主要问题在于,营业执照有很多种模板,不去维护这些模板识别就总会有偏差,如果维护模板就很麻烦的,所以用别人的OCR就省了很多事
woshinage 发表于 2022-7-7 16:47
还是花钱的好
lilinas844 发表于 2022-7-7 16:48
赞一个,谢谢
toto123 发表于 2022-7-7 19:31
谢谢,赞一个
haibin163 发表于 2022-7-8 08:39
        用心讨论,共获提升!
zhouzhoufuck 发表于 2023-1-4 16:05
用心讨论,共获提升
Naylor 发表于 2023-1-5 09:23
核心代码是获做了认证,没有看到ocr识别相关的代码呀?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表