【看图识文】tesseract.js@4.0.2

这篇具有很好参考价值的文章主要介绍了【看图识文】tesseract.js@4.0.2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


介绍

该库用于识别并获取图片上的文字,支持多种语言。对英文识别度非常高,但是对中文的识别度非常一般。需要单独训练对应的中文库。对白纸黑字的合同文识别度还不错,其他的都不太好。

git地址:

https://github.com/naptha/tesseract.js

下面通过6个小例子来看下用法。使用的时候需要开个服务,在vscode上打开Go Live就行。
【看图识文】tesseract.js@4.0.2


示例一

demo1.png

【看图识文】tesseract.js@4.0.2
demo1.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		p {
			width: 300px;
		}
	</style>
</head>
<body>
	<!-- 识别纯英文文字的图片 ok -->
	<p id="log"></p>
	<!-- v4 -->
	<script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
	<script>
		Tesseract.recognize(
			'./images/demo1.png', // 被识别的图片
			'eng', // 识别图片中文字用到的语言
			{ logger: m => console.log(m) }
		).then(({ data: { text } }) => {
			document.getElementById('log').innerHTML = text;
		})
	</script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2


示例二

demo2.png
【看图识文】tesseract.js@4.0.2
```demo2.html`

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 识别一个纯英文截图 ok -->
    <p id="log"></p>
    <!-- v4 -->
    <script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
    <script>
        const { createWorker } = Tesseract;


        async function demo2() {
            const worker = await createWorker({
                logger: m => console.log(m)
            });

            work();

            async function work() {
                await worker.loadLanguage('eng'); // 下载语言包
                await worker.initialize('eng'); // 使用的语言
                const { data: { text } } = await worker.recognize('./images/demo2.png');
                document.getElementById('log').innerHTML = text;
                await worker.terminate();
            }
        }

        demo2();
    </script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2



示例三

demo3.png
【看图识文】tesseract.js@4.0.2
demo3.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 识别一张打印版中文合同图片 ok -->
    <!-- 该图片的截图也ok -->
    <!-- v4 -->
    <script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
    <script>
        const { createWorker } = Tesseract;

        async function demo2() {
            const worker = await createWorker({
                logger: m => console.log(m)
            });

            work();

            async function work() {
                await worker.loadLanguage('chi_sim'); // 下载简体中文语言包
                await worker.initialize('chi_sim'); // 使用简体中文
                const { data: { text } } = await worker.recognize('./images/demo3.png');
                console.log(text);
                await worker.terminate();
            }
        }

        demo2();
    </script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2
很棒,识别出来了。


示例四

demo4.png
【看图识文】tesseract.js@4.0.2
自己写一串文字,然后截图,识别一下试试。
demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 浏览器字体 no -->
    <p id="log"></p>
    <!-- v4 -->
    <script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
    <script>
        const { createWorker } = Tesseract;


        async function demo2() {
            const worker = await createWorker({
                logger: m => console.log(m)
            });

            work();

            async function work() {
                await worker.loadLanguage('chi_sim');
                await worker.initialize('chi_sim');
                const { data: { text } } = await worker.recognize('./images/demo4.png');
                console.log(text);
                document.getElementById('log').innerHTML = text;
                await worker.terminate();
            }
        }

        demo2();
    </script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2
很拉跨,基本没识别出来。。。


示例五

demo5.png
【看图识文】tesseract.js@4.0.2
试试识别身份证,这么大的字,这么清晰的像素
demo5.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="log"></p>
    <!-- v4 -->
    <script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
    <script>
        const { createWorker } = Tesseract;


        async function demo2() {
            const worker = await createWorker({
                logger: m => console.log(m)
            });

            work();

            async function work() {
                await worker.loadLanguage('chi_sim');
                await worker.initialize('chi_sim');
                const { data: { text } } = await worker.recognize('./images/demo5.png');
                document.getElementById('log').innerHTML = text;
                await worker.terminate();
            }
        }

        demo2();
    </script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2
识别出来了,但是会受到其他因素的干扰。


示例六

demo6.png
【看图识文】tesseract.js@4.0.2
识别几个艺术字试试
demo6.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="log"></p>
    <!-- v4 -->
    <script src='https://unpkg.com/tesseract.js@4.0.2/dist/tesseract.min.js'></script>
    <script>
        const { createWorker } = Tesseract;


        async function demo2() {
            const worker = await createWorker({
                logger: m => console.log(m)
            });

            work();

            async function work() {
                await worker.loadLanguage('chi_sim');
                await worker.initialize('chi_sim');
                const { data: { text } } = await worker.recognize('./images/demo6.png');
                document.getElementById('log').innerHTML = text;
                await worker.terminate();
            }
        }

        demo2();
    </script>
</body>
</html>

识别结果:
【看图识文】tesseract.js@4.0.2
哎哟,不错哦,就是不那么完美,英文字母的拼写有一丢丢小问题。


实际开发中需要对使用过程进行优化,以及字库的训练。或者使用阿里或百度提供的付费版服务。文章来源地址https://www.toymoban.com/news/detail-420607.html

到了这里,关于【看图识文】tesseract.js@4.0.2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • terser用于ES6的压缩JS工具

    https://www.npmjs.com/package/terser uglify-es不再维护,uglify-js也不支持ES6+。 terser是uglify-es的一个分支,主要保留了与uglify和uglify-js@3. terser [input files] [options] 使用 terser-webpack-plugin (npm i terser-webpack-plugin) 因为uglifyjs不支持es6语法,所以用terser-webpack-plugin替代uglifyjs-webpack-plugin terse

    2024年02月11日
    浏览(14)
  • 【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)

    接下来使用AR插件制作案例 EasyAR是免费 好用的全平台AR引擎,支持使用平面目标的AR 支持1000以上本地目标的流畅加载和识别,支持基于硬解码的视频的播放,支持二维码识别、支持多目标同时跟踪,支持PC和移动设备等多个平台,EasyAR不会现实水印,也没有识别次数限制 在拿

    2024年02月06日
    浏览(16)
  • js使用xlsx生成二进制文件用于上传(不下载)

    业务中经常会处理各种数据,本文介绍了前端通过 xlsx 库将数据转换为 excel 文件用于上传的实现。

    2024年02月13日
    浏览(16)
  • 关于css中设置变量用于全局Css或者Js中使用

    一、配置变量css文件 src/styles/variables.scss 二、在组件中使用变量

    2024年02月07日
    浏览(17)
  • 将 Jupyter Notebook 用于 JavaScript (使用 Node.js 或 Deno 环境)

    熟悉 Python 的读者, 可能同样对 IPython 或 Jupyter 等项目 (如 Jupyter Notebook) 有所耳闻. 正如其名, IPython 项目让 Python 这门语言变得 “interactive”; 如: 交互式的 Shell 程序, 对交互式数据可视化以及 GUI 工具集的支持等等 (具体可见 IPython 项目的网站). 比如在 Notebook 中, 用户可以实现

    2024年02月07日
    浏览(15)
  • 分享18个用于处理 null、NaN 和undefined 的 JS 代码片段

    🎬 岸边的风 :个人主页  🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️生活的理想,就是为了理想的生活! 目录 前言 内容 📟 1. 检查是否为null: 📟 2. 检查undefined: 📟 3. 检查 NaN: 📟 4. 如果为 null 或undefined则默认为某个值: 📟 5. 如果为 NaN,则默认为一个值: 📟 6. 将

    2024年02月16日
    浏览(12)
  • React.js 中用于高质量应用程序的最佳实践和设计模式

    原文:Best Practices and Design Patterns in React.js for High-Quality Applications,适当增删 原作者:Ori Baram 文章已获原文作者授权,禁止转载和商用 不按文件类型对组件进行分组,而是按特征。示例: 小而集中的组件易于理解,维护和测试。 假设您有一个UserProfile组件代码体积逐渐变大

    2024年02月15日
    浏览(15)
  • ​5种常用于LLM的令牌遮蔽技术介绍以及Pytorch的实现

    本文将介绍大语言模型中使用的不同令牌遮蔽技术,并比较它们的优点,以及使用Pytorch实现以了解它们的底层工作原理。 令牌掩码Token Masking是一种广泛应用于语言模型分类变体和生成模型训练的策略。BERT语言模型首先使用,并被用于许多变体(RoBERTa, ALBERT, DeBERTa…)。 而Te

    2024年04月17日
    浏览(11)
  • 除了three.js,还有许多其他前端开发语言和库可以用于创建3D可视化大屏

    hello老铁们...本人熟悉html5,vue对bootsrap,uniapp,layui,element,vite,antd,echarts,jq响应式尤其擅长,ui设计等技能,如果ui前端工作中有遇到烦恼可私信关注评论我们共同交流进步!谢谢       随着前端技术的飞速发展,3D可视化已经成为许多应用场景中不可或缺的一部分。在

    2024年03月15日
    浏览(18)
  • 55、Flink之用于外部数据访问的异步 I/O介绍及示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月17日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包