合合信息TextIn服务使用心得

news2024/11/16 3:40:17

目录

    • 一、前言
    • 二、TextIn简介
      • 2.1、通用文字识别
      • 2.2、国内通用票据识别
      • 2.3、通用表格识别
    • 三、项目案例
      • 3.1、application.yml
      • 3.2、TextInService
      • 3.3、TextInController
      • 3.4、测试
    • 四、总结

一、前言

智能图像处理、文字表格识别、文档内容提取产品的背景源自于人工智能技术的快速发展和广泛应用。随着计算机视觉和自然语言处理技术的不断进步,人工智能在图像处理和文字识别领域取得了巨大的突破,使得这些产品能够实现更加精准和高效的功能。

  • 在图像处理方面,智能图像处理产品能够识别图像中的各种物体、场景和特征,并进行自动标注和分类。这使得用户能够快速找到他们需要的信息,提高工作效率。同时,这些产品还能够对图像进行修复和增强,提高图像的质量和清晰度。
  • 在文字表格识别方面,这些产品能够识别图像中的文字和表格,并将其转换为可编辑的文档。这使得用户能够方便地提取图像中的文字信息,编辑和分享文档内容。同时,这些产品还能够识别表格中的数据,并将其转换为可编辑的电子表格,方便用户进行数据分析和处理。
  • 在文档内容提取方面,这些产品能够自动提取文档中的关键信息和内容,并进行分类和整理。这使得用户能够快速找到他们需要的信息,节省时间和精力。同时,这些产品还能够将文档内容转换为可编辑的电子文档,方便用户进行编辑和分享。

二、TextIn简介

合合信息是一家人工智能及大数据科技企业,基于自主研发的领先的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。C端业务主要为面向全球个人用户的APP产品,包括扫描全能王(智能扫描及文字识别APP)、名片全能王(智能名片及人脉管理APP)、启信宝(企业商业信息查询APP)3款核心产品;公司B端业务为面向企业客户提供以智能文字识别、商业大数据为核心的服务,形成了包括基础技术服务、标准化服务和场景化解决方案的业务矩阵,满足客户降本增效、风险管理、智能营销等多元需求,助力客户实现数字化与智能化的转型升级。凭借领先的自主研发技术、成熟的产品落地能力、优质的用户体验及服务质量,公司的C端产品覆盖了全球百余个国家和地区的亿级用户,B端服务覆盖了近30个行业的企业客户。在B端业务方面,公司智能文字识别与商业大数据服务已覆盖了银行、证券、保险、政府、物流、制造、地产、零售等近30个行业的众多头部客户。《财富》杂志2022年发布的世界500强公司名单中,公司客户已覆盖超过125家。

TextIn是上海合合信息科技股份有限公司旗下智能文字识别云服务平台
官网地址:https://www.textin.com
为全球用户提供智能图像处理、文字表格识别、文档内容提取产品
其提供的服务及其丰富,几乎可以满足多有开发者关于智能图像处理、文字识别等的需求。
在这里插入图片描述
关键的是TextIn提供的API控制台简洁易用,对于资历不深的开发者十分友好。
下面我来列举几个其公司提供的产品服务。

2.1、通用文字识别

基于自研的文字识别技术,覆盖文字、文档、表格、印章、二维码、公式等多种通用场景,提供全球50+主流语言的印刷体、手写体的高精度识别能力。可用于纸质文档电子化、办公文档/报表识别、教育类文本识别、快递面单识别等场景。

识别普通文字:

在这里插入图片描述

效果如下:
可以看到每种文字都被准确的识别出来,
在这里插入图片描述

除了普通文字识别,同时支持印刷体、手写体、倾斜、折叠、旋转等

识别印刷体:

在这里插入图片描述

效果如下:

在这里插入图片描述

识别手写体:
在这里插入图片描述
效果如下:
在这里插入图片描述
可以看到无论是普通文字、印刷体、手写体,识别效果都十分的好。

2.2、国内通用票据识别

支持对多种票据类型(多票据)票据切分、票据分类、票据识别,包括增值税普通发票、增值税普通发票(卷票)、增值税专用发票、增值税电子专用发票、增值税电子普通发票、货物运输业增值税专用发票(仅支持分类不做识别)、机动车销售统一发票、二手车销售统一发票、通用机打发票、通用定额发票、旅客运输普票、公路客运发票、船运客票、出租车发票、停车费发票、过路过桥费发票、教育费收据(仅支持分类不做识别)、行程单、火车票、增值税销货清单和其他可报销票据。

样本数据:
在这里插入图片描述

识别效果:

在这里插入图片描述

2.3、通用表格识别

通用表格识别适用于带有表格的文档图像
上传图片返回表格区域分析后的文字识别结果以及表格外区域的其他文字识别结果

样本数据:

在这里插入图片描述

识别效果:

在这里插入图片描述

三、项目案例

在我们的项目中,需要将用户上传的图片中的文字交给大模型来处理,这样就需要用到文字识别技术,合合信息TextIn服务正好满足我们的需求,并且合合信息TextIn服务的通用文字识别服务API调用简单,有详细的API说明文档和示例代码,在开发过程中极大的节省了我们的时间。
在这里插入图片描述

在示例代码中,支持多种主流的语言:Java、C#、python、Node.js、PHP以及HTML

在这里插入图片描述

合合信息TextIn服务还支持在线调试功能

  • 实时监控和分析API请求和响应数据,帮助开发人员快速定位和解决问题。
  • 可以模拟不同的请求参数和环境,方便开发人员测试和调试API接口

在这里插入图片描述

下面我来用Java语言举一个使用合合信息TextIn服务的例子

我们以通用文字识别为例

我们创建一个SpringBoot项目,在配置文件中写入一下信息:

3.1、application.yml

# 应用服务 WEB 访问端口
server:
  port: 8888

# TextIn服务参数
textin:
  appid: 你的appid
  secretcode: 你的secretcode

3.2、TextInService

接下来我们编写通用文字识别的逻辑代码,其本质是调用TextInAPI代码如下:

package com.csust.medicalassistant.service.impl;

import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.csust.medicalassistant.common.CommonResult;
import com.csust.medicalassistant.dto.MessageDTO;
import com.csust.medicalassistant.dto.TextDTO;
import com.csust.medicalassistant.service.TextInService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/**
 * @author niuben
 */
@Slf4j
@Service
public class TextInServiceImpl implements TextInService {

    @Value("${textin.appid}")
    public String appId;

    @Value("${textin.secretcode}")
    public String secretCode;

    @Override
    public JSONObject imgToText(String imgPath) {
        byte[] imgData = readfile(imgPath);
        // 通用文字识别
        String url = "https://api.textin.com/ai/service/v2/recognize";
        // 添加请求头信息
        Map<String, String> heads = new HashMap<>();
        // 使用json发送请求,下面的是必须的
        heads.put("connection", "Keep-Alive");
        heads.put("Content-Type", "application/octet-stream");
        heads.put("x-ti-app-id", appId);
        heads.put("x-ti-secret-code", secretCode);
        /**
         ** headerMap是添加的请求头,
         body是传入的参数,这里选择json,后端使用@RequestBody接收
         ERNIE-Bot 4.0
         */
        HttpResponse response = HttpRequest.post(url)
                .headerMap(heads, false)
                .body(imgData)
                .timeout(5 * 60 * 1000)
                .execute();
        // 数据解析
        JSONObject jsonResponse = JSONUtil.parseObj(response.body());
        JSONObject result = (JSONObject) jsonResponse.get("result");
        return result;

    }
    public static byte[] readfile(String path)
    {
        String imgFile = path;
        InputStream in = null;
        byte[] data = null;
        try
        {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }

}

3.3、TextInController

然后我们定义接口

package com.csust.medicalassistant.controller;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.csust.medicalassistant.common.CommonResult;
import com.csust.medicalassistant.service.TextInService;
import com.csust.medicalassistant.utils.ImageUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;

/**
 * @author niuben
 */
@RestController
public class TextInController {

    @Resource
    private TextInService textInService;

    @Resource
    private ImageUtil imageUtil;

    @ApiOperation("文字识别")
    @PostMapping("/getinfo")
    public CommonResult<Object> imageToJson(MultipartFile file){
        //上传图片
        String imgPath = imageUtil.uploadImgToLocal(file);
        //图片识别
        JSONObject result = textInService.imgToText(imgPath);

        return CommonResult.success(JSONUtil.toJsonStr(result));
    }

}

3.4、测试

样本图片
在这里插入图片描述
识别效果:

可以看到识别效果准确率很高

在这里插入图片描述

四、总结

总的来说合合信息的TextIn服务对于开发者来说十分友好,不仅提供的服务丰富,并且使用起来简单易上手,其识别的准确率极高,几乎上可以满足有关文字和图片处理的所有需求,强烈推荐给大家使用,再放一下官网地址:
https://www.textin.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1420225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化测试的10大误区!

自动化测试因提高效率&#xff0c;减少重复工作的特性而被广泛采用。然而&#xff0c;随着自动化测试的普及&#xff0c;自动化测试也面临一系列挑战和误解。 这些误区不仅影响了测试的有效性&#xff0c;还会导致一定的项目风险&#xff0c;为了确保自动化测试能够真正提升测…

YOLOv8改进 | 可视化热力图 | 支持YOLOv8最新版本密度热力图,和视频热力图

一、本文介绍 本文给大家带来的机制是集成了YOLOv8最新版本的可视化热力图功能,热力图作为我们论文当中的必备一环,可以展示出我们呈现机制的有效性,本文的内容支持YOLOv8最新版本的根据密度呈现的热力图,同时支持视频检测,根据视频中的密度来绘画热力图。 在开始之前给…

方案:将vue项目放在SpringMVC中,并用tomcat访问

需要先将项目生成一次war包才能访问项目的webapp文件夹下的资源&#xff0c;否则tomcat的webapp文件夹下面不会生成对应资源文件夹就无法访问。 问题&#xff1a;目录如下&#xff1a; 今天我测试了一下将vue打包后&#xff0c;放入webapp下面访问&#xff0c;却发现vue项目无…

基于C#制作一个连连看小游戏

基于C#制作一个连连看小游戏,实现:难易度选择、关卡选择、倒计时进度条、得分计算、音效播放等功能。 目录 引言游戏规则开发环境准备游戏界面设计游戏逻辑实现图片加载与显示鼠标事件处理游戏优化与扩展添加关卡与难度选择说明</

C++ ffmpeg RTSP 视频推流实现, arm linux平台

环境&#xff1a; FFmpeg版本&#xff1a;n4.2.2 下载地址&#xff08;下载编译后请确认版本正确&#xff09;&#xff1a; https://ffmpeg.org//download.html 下面地址经过第三方git加速可能存在实效性&#xff1a; https://hub.fgit.cf/FFmpeg/FFmpeg/tree/n4.4.2实现代码…

MicroPython核心:映射和字典

MicroPython字典和映射使用称为开放寻址和线性探测的技术&#xff0c;本文详细介绍了这两种方法。 开放寻址 开放寻址用于解决碰撞问题&#xff0c;碰撞是非常常见的现象&#xff0c;当两个条目恰好散列到同一个槽或位置时就会发生碰撞。例如&#xff0c;散列设置如下&#x…

【教程】极简Docker搭建“帕鲁幻兽PalWorld”服务器, 附资源

注意&#xff1a; 如果搭建在个人服务器或者内网中&#xff0c;需要做内网穿透&#xff0c;可以看这篇博客&#xff1a; 【教程】超详细安装和使用免费内网穿透软件Zerotier-One-CSDN博客文章浏览阅读523次&#xff0c;点赞8次&#xff0c;收藏8次。真的很详细https://blog.csd…

14个国产AI大模型备案获批,众多科技巨头进入AIGC赛道

北京商报官网消息&#xff0c;第四范式、什么值得买、新壹科技、衔远科技、小米、智联招聘、Boss直聘、脉脉等13家企业的&#xff0c;14个国产AI大模型通过《生成式人工智能服务管理暂行办法》备案&#xff0c;可实现商业化应用。 自2023年8月&#xff0c;文心一言、讯飞星火、…

在Windows中如何格式化硬盘?这里提供了详细的步骤

格式化硬盘意味着擦除硬盘上的任何信息和设置文件系统,以便操作系统可以从硬盘读取数据并将数据写入硬盘。如果你计划在Windows中使用硬盘,则需要格式化硬盘。 如何在Windows中格式化硬盘 按照以下简单步骤在Windows 11,Windows 10,Windows 8,Windows 7,Windows Vista或…

【机器学习前置知识】隐变量

隐变量又称潜变量&#xff0c;顾名思义就是隐藏着的随机变量&#xff0c;它不能通过观测来得到&#xff0c;或者说它产生的过程是不可观测的&#xff0c;然而它却可以在潜移默化中影响可观测变量。 我们用抛硬币为例来解释什么是隐变量。假设有 A 、 B 、 C A、B、C A、B、C …

jrt运维命令改造

以前发布网站都是定死网站放置路径的&#xff0c;现在JRT想面向更广范围推广&#xff0c;所以就不能明确确定网站放置目录&#xff0c;为此需要改造一下jrt命令和sh来满足目录不确定情况和多个程序用不同管理命令的要求。 以前是写死的&#xff0c;现在改为调程序运行目录的sh…

Redhat 8.4 一键安装 Oracle 11GR2 单机版

Oracle 一键安装脚本&#xff0c;演示 Redhat 8.4 一键安装 Oracle 11GR2 单机版过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&#xff1a;Shell脚本安装Oracle数据库 脚本…

利用OpenCV检测物流过程中的暴力拆箱和暴力拿放行为

背景介绍&#xff1a; 随着电子商务的快速发展&#xff0c;物流行业面临着越来越多的挑战。其中&#xff0c;暴力拆箱和暴力拿放成为最突出的问题之一。这些行为不仅会导致货物损坏&#xff0c;还会给物流公司和消费者带来巨大的经济损失。传统的解决方法依赖于人工监控&#x…

git仓库批量备份

git的mirror参数 在git中&#xff0c;--mirror是一个用于克隆和推送操作的参数。它用于创建一个镜像仓库&#xff0c;包含了源仓库的所有分支、标签和提交历史记录。 当使用git clone --mirror <source-repo>命令时&#xff0c;会创建一个完全相同的镜像仓库&#xff0…

P1012 [NOIP1998 提高组] 拼数题解

题目 设有n个正整数,将它们联接成一排&#xff0c;相邻数字首尾相接&#xff0c;组成一个最大的整数。 输入输出格式 输入格式 第一行有一个整数&#xff0c;表示数字个数n。 第二行有n个整数&#xff0c;表示给出的n个整数。 输出格式 一个正整数&#xff0c;表示最大的…

导出Mysql数据库表名和字段并合并成一个word

参考链接&#xff1a; 导出MySQL数据库所有库和字段注释及相关信息为word文档——工具类 java - Apache POI - How to copy tables from one docx to another docx - Stack Overflow 领导让我研究下一个低代码平台的代码&#xff0c;我就想着做一个把数据库字段直接导出来的…

【算法专题】贪心算法

贪心算法 贪心算法介绍1. 柠檬水找零2. 将数组和减半的最少操作次数3. 最大数4. 摆动序列(贪心思路)5. 最长递增子序列(贪心算法)6. 递增的三元子序列7. 最长连续递增序列8. 买卖股票的最佳时机9. 买卖股票的最佳时机Ⅱ(贪心算法)10. K 次取反后最大化的数组和11. 按身高排序12…

关于Spring Boot和MyBatis常见的十道面试题

拦截器和过滤器有什么区别&#xff1f; 拦截器&#xff08;Interceptor&#xff09;和过滤器&#xff08;Filter&#xff09;都是用于在请求道道目标资源的之前或之后进行处理的组件。主要区别有以下几点&#xff1a; 依赖对象不同&#xff1a;过滤器是来时Servlet&#xff0…

蓝桥杯2024/1/28----十二届省赛题笔记

题目要求&#xff1a; 2、 竞赛板配置要求 2.1将 IAP15F2K61S2 单片机内部振荡器频率设定为 12MHz。 2.2键盘工作模式跳线 J5 配置为 KBD 键盘模式。 2.3扩展方式跳线 J13 配置为 IO 模式。 2.4 请注意 &#xff1a; 选手需严格按照以上要求配置竞赛板&#xff0c;编写和调…

【JS逆向实战-入门篇】某gov网站加密参数分析与Python算法还原

文章目录 1. 写在前面2. 请求分析3. 断点分析4. 算法还原 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋…