当前位置:   article > 正文

说明书查询很麻烦,看数字奇点团队与合合TextIn如何解决问题的

说明书查询很麻烦,看数字奇点团队与合合TextIn如何解决问题的

目录

 一、前言

二、TextIn简介

2.1 图片切边增强

2.2 通用文字识别

三、API调用流程

3.1 注册TextIn账号,并进入工作台

3.2 x-ti-app-id和x-ti-secret-code的获取

3.3 配置公有云API

3.4 API调用的详细界面 

3.4.1 API文档功能演示 

3.4.2 示例代码演示 

3.4.3 在线的API调试

四、项目示例

4.1 前端界面

4.1.1 移动端

4.1.2 网页端

4.2 后端界面

4.3 API调度代码演示

4.3.1 index.ts

4.3.2 Base64ToArrayBuffer.ts

4.3.3 UploadArrayBufferToAi.ts

五、总结



 一、前言

        在当今快速发展的科技时代,人工智能技术已经成为推动社会进步和产业升级的重要力量。特别是大模型技术的出现,不仅标志着人工智能领域的一个新纪元,也为各行各业带来了前所未有的创新机遇和挑战。在这样的背景下,中国大学生服务外包创新创业大赛组委会携手合合信息公司,共同发起了一项旨在激发大学生创新潜能、推动智能技术应用的大赛。

        

二、TextIn简介

        上海合合信息科技股份有限公司是一家人工智能及大数据科技企业,专注于智能文字识别、图像处理、自然语言处理(NLP)、知识图谱、大数据挖掘等前沿技术的研发和应用。公司自2006年成立以来,已经在智能文字识别领域深耕16年,积累了丰富的经验和技术优势。基于自主研发的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。公司的B端服务已经覆盖了银行、证券、保险、政府、物流、制造、地产、零售等近30个行业的企业客户,其中包括《财富》杂志2020年发布的世界500强公司名单中的超过80家。在C端产品方面,截至2021年3月末,公司扫描全能王、名片全能王、启信宝3款APP在App Store与Google Play应用市场的全球用户累计首次下载量合计超过6亿C端APP2021年3月的月活合计约1.2亿。合合信息科技股份有限公司拥有强大的自主研发能力,拥有111项自主知识产权的发明专利,其中包括38项境外专利,Google Top Developer全球顶尖开发者。公司是行业内少有的同时在人工智能、大数据两个领域都具有核心自主研发技术的企业,并且在C端产品与B端服务方面都有完善的布局矩阵。此外,公司在国内、国际市场同时布局且均取得了规模化用户和产值。

TextIn是上海合合信息科技股份有限公司旗下智能文字识别产品
官网地址:https://www.textin.com
为全球用户提供智能图像处理、文字表格识别、文档内容提取等功能
其提供的服务及其丰富,几乎可以满足多有开发者关于智能图像处理、文字识别等的需求。

最主要的是TextIn提供了便利的API接口,其中API文档中更是提供了详细示例代码对于资历不深的开发者十分友好。

以下是数字奇点所使用的功能模块展示:

2.1 图片切边增强

智能判断照片中主体文档的边缘进行切边,同时增强图像突出文字,支持识别背景复杂的文字内容,返回切边后的图像。

 图片处理前:

 图片处理后:

 图片处理前: 

 图片处理后:

 图片处理前: 

 图片处理后:

2.2 通用文字识别

通过前沿的深度学习技术,对各种表格,图片,文档、证件、面单等多种通用场景进行快速、精准的检测和识别,支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言等共52种语言,同时支持印刷体、手写体、倾斜、折叠、旋转等。

支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言等共52种语言

同时支持倾斜、折叠、旋转等

 图片处理前: 

  图片处理后:

支持印刷体

图片处理前:

图片处理后:

支持手写体

图片处理前: 

  图片处理后:

三、API调用流程

3.1 注册TextIn账号,并进入工作台

 Textln官方网站的链接:https://www.textin.com

3.2 x-ti-app-id和x-ti-secret-code的获取

进入账号管理,在开发者信息中查看x-ti-app-id和x-ti-secret-code

3.3 配置公有云API

        点击我的机器人,选择公有云API(如果没有机器人则需先获取机器人),然后通过API集成可以进行API的调配。

3.4 API调用的详细界面 

3.4.1 API文档功能演示 

TextIn 同时提供详细的API文档来方便使用者调用 

3.4.2 示例代码演示 

        在示例代码中还提供了多种主流的语言:curl、Java、C#、python、Node.js、PHP以及HTML

JAVA示例代码演示:

代码修改初始信息:x-ti-app-id、x-ti-secret-code、img_path、save_path

  1. import java.io.*;
  2. import java.net.HttpURLConnection;
  3. import java.net.URL;
  4. import java.io.IOException;
  5. public class Main {
  6. public static void main(String[] args) throws Exception {
  7. // 通用文字识别
  8. String url = "https://api.textin.com/ai/service/v2/recognize";
  9. // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
  10. // 示例代码中 x-ti-app-id 非真实数据
  11. String appId = "c81f*************************e9ff";
  12. // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
  13. // 示例代码中 x-ti-secret-code 非真实数据
  14. String secretCode = "5508***********************1c17";
  15. BufferedReader in = null;
  16. DataOutputStream out = null;
  17. String result = "";
  18. try {
  19. byte[] imgData = readfile("example.jpg"); // image
  20. URL realUrl = new URL(url);
  21. HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
  22. conn.setRequestProperty("connection", "Keep-Alive");
  23. conn.setRequestProperty("Content-Type", "application/octet-stream");
  24. conn.setRequestProperty("x-ti-app-id", appId);
  25. conn.setRequestProperty("x-ti-secret-code", secretCode);
  26. conn.setDoOutput(true);
  27. conn.setDoInput(true);
  28. conn.setRequestMethod("POST"); // 设置请求方式
  29. out = new DataOutputStream(conn.getOutputStream());
  30. out.write(imgData);
  31. out.flush();
  32. out.close();
  33. in = new BufferedReader(
  34. new InputStreamReader(conn.getInputStream(), "UTF-8"));
  35. String line;
  36. while ((line = in.readLine()) != null) {
  37. result += line;
  38. }
  39. } catch (Exception e) {
  40. System.out.println("发送 POST 请求出现异常!" + e);
  41. e.printStackTrace();
  42. }
  43. finally {
  44. try {
  45. if (out != null) {
  46. out.close();
  47. }
  48. if (in != null) {
  49. in.close();
  50. }
  51. } catch (IOException ex) {
  52. ex.printStackTrace();
  53. }
  54. }
  55. System.out.println(result);
  56. }
  57. public static byte[] readfile(String path)
  58. {
  59. String imgFile = path;
  60. InputStream in = null;
  61. byte[] data = null;
  62. try
  63. {
  64. in = new FileInputStream(imgFile);
  65. data = new byte[in.available()];
  66. in.read(data);
  67. in.close();
  68. }
  69. catch (IOException e) {
  70. e.printStackTrace();
  71. }
  72. return data;
  73. }
  74. }

3.4.3 在线的API调试

 TextIn提供了在线的API调试平台

  • 实时监控和分析API请求与响应,助力开发者迅速诊断并解决难题。
  • 该平台能够模拟多样的请求参数和环境设置,简化API接口的测试与调试流程。

四、项目示例

        我们项目主要使用Textln提供的图片切片增强的API和通用文字识别的API接口,来实现对说明书的拍照存储与其的文字识别内容(部署在云端服务器中),再通过AI大模型底座来实现问答的交互,从而实现问答的交互功能。从而满足客户通过小程序完成本地上传/拍照上传说明书图片,通过Textln提供的图片切片增强的API,存储对应的图片,再通过使用通用文字识别的API接口,实现图片到文字的转变;需要时可同时调用说明书的图片与文字,可依据以存储的说明书的图片与文字,进行AI助手的问答,从而减轻使用者根据自身需求自主阅读说明书的时间。

4.1 前端界面

4.1.1 移动端

4.1.2 网页端

4.2 后端界面

 

4.3 API调度代码演示

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

4.3.1 index.ts

创建index.ts定义了一系列常量和接口

  1. export const PC_DEVICE_WIDTH = 1280
  2. export const MAX_FONT_SIZE = 40
  3. export const DevToken =
  4. 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI5NjIyMGVjL*********kZS1iMzM5LTdmYjgxNWQ3ODIzNiJ9.C0uziogLfCIfJ-7v7sJpVIICl6zU6aWgLOt-1Xn9nz9grAH766fClc0zjNf2FcN5xkw1L15GEK_AfQxx91nL1A'
  5. export const BaseURL = '后端网址'
  6. export interface SMSFace {
  7. id: number
  8. name: string
  9. categoryId: number
  10. title: string
  11. picUrls: string[]
  12. }
  13. export const AiInfo = {
  14. appId: '你的ID',
  15. secretCode: '你的密码',
  16. url: 'https://api.textin.com/ai/service/v2/recognize',
  17. }

4.3.2 Base64ToArrayBuffer.ts

使用异步函数,接受一个File对象作为输入,并将该文件转换成一个ArrayBuffer对象

  1. export function Base64ToArrayBuffer(file: File) {
  2. return new Promise((resolve, reject) => {
  3. var reader = new FileReader()
  4. reader.onload = function () {
  5. resolve(reader.result)
  6. }
  7. reader.onerror = function () {
  8. reject(reader.error)
  9. }
  10. reader.readAsArrayBuffer(file)
  11. })
  12. }

4.3.3 UploadArrayBufferToAi.ts

本质是我们调用合合信息TextIn提供的API过程

  1. import { AiInfo } from '@/constants'
  2. export function UploadArrayBufferToAi(fileData: any) {
  3. return new Promise((resolve) => {
  4. var xhr = new XMLHttpRequest()
  5. xhr.open('POST', AiInfo.url)
  6. xhr.setRequestHeader('x-ti-app-id', AiInfo.appId)
  7. xhr.setRequestHeader('x-ti-secret-code', AiInfo.secretCode)
  8. xhr.onreadystatechange = function () {
  9. if (xhr.readyState === 4 && xhr.status === 200) {
  10. let InfoList: string[] = []
  11. const { result } = JSON.parse(xhr.response)
  12. for (let i = 0; i < result.lines.length; i++) {
  13. InfoList.push(result.lines[i].text)
  14. }
  15. resolve(InfoList)
  16. }
  17. }
  18. xhr.send(fileData)
  19. })
  20. }

五、总结

        总的来说,TextIn服务为开发者提供了极大的便利,它不仅提供了丰富的功能,而且使用起来非常简单直观。其识别准确率非常高,几乎能够满足所有关于文本和图像处理的需求。强烈推荐给广大用户使用。

这里是官方网站的链接:https://www.textin.com
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/562661
推荐阅读
相关标签
  

闽ICP备14008679号