一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Backend

一、Tesseract4.0训练字库 OCR 提高识别率必备(超详情)

由于tesseract的中文语言包“chi_sim”对中文手写字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。

龙生   15 Mar 2024
View Details

Tesseract-OCR5.0字体训练以及提高准确率、提升训练效率的方法

目录
1、准备工作
2、训练步骤
2.1、生成训练用tif和box文件
2.2、生成lstm文件
2.3、生成lstmf文件
2.4、生成lstmf清单文件
2.5、开始训练
2.6、生成traineddata文件
2.7、安装字体
3、验证与测试
4、提高准确率
5、提升训练效率
6、避坑指南

龙生   15 Mar 2024
View Details

tess4j图片识别 和训练语言库提高图片识别率

1.pom文件添加依赖   <!-- 图形验证码识别https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j --> <dependency> <groupId>net.sourceforge.tess4j</groupId> <artifactId>tess4j</artifactId> <version>4.5.4</version> </dependency> 2.下载文件配置 链接:https://pan.baidu.com/s/1BsFJ7uTl-AEzcUEfuV9ESw 提取码:4wzp 解压后显示   3.进入dist文件,拷贝文件tess4j-3.4.8.jar到lib文件下     4.将lib文件和tessdata文件方到项目根目录   5.进入项目编码软件刷新项目目录   6.testdata可以放到项目文件目录下   7.被识别的图片存放位置 新建目录,放在项目路径下     8.编写识别代码 package com.app.ocr; import net.sourceforge.tess4j.ITesseract; import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException; import java.io.File; import java.io.IOException; public class Main { public static void main(String[] args) { //  当前项目存放路径 String path = "E://heduijiang//APP-test//APP-test//src//test//resources"; // 要识别的图片 File file = new File("E://heduijiang//APP-test//APP-test//src//test//resources//tupian//9188.png"); ITesseract instance = new Tesseract(); /** *  获取项目根路径, */ File directory = new File(path); String courseFile = null; try { courseFile = directory.getCanonicalPath(); } […]

龙生   15 Mar 2024
View Details

PaddleOCR本地部署(安装,使用,模型优化/加速)

文章目录
1. 安装
1.1 还是需要paddle
1.2 确认各种包和环境
1.3 可能不需要paddle?
2. 使用
2.1 配置摄像头,读取,识别,显示
2.3 检测模型的问题
2.3.1 换个模型
2.3.2 限定检测位置
3. 性能改进
3.0 基本情况
X 自己模型的速度和全用默认的速度对比
3.1 端侧部署
3.2 加速
3.2.1 CPU下使用mkldnn加速
3.2.2 修改参数
3.2.3 内存泄露
3.2.4 内存泄漏的问题记录
3.3 剪枝
3.4 其他可能的途径
3.3 更换模型
3.4 多进程
3.5 cpu占用问题
3.5.1 paddle绑定cpu问题
3.6 推理部署文档

龙生   15 Mar 2024
View Details

PaddleOCR服务部署-并通过Java进行调用

上一篇讲了PaddleOCR的简单使用,但是最终的目的肯定是要将它进行服务部署方便我们调用的,这里介绍一下他的服务部署方式

选择部署方式
官方推荐有以下几种:
Python 推理
C++ 推理
Serving 服务化部署(Python/C++)
Paddle-Lite 端侧部署(ARM CPU/OpenCL ARM GPU)
Paddle.js 部署

龙生   15 Mar 2024
View Details

9步搭建Windows下PaddleOCR图片文字识别WebAPI

本文实现在windows平台下依靠现有资源来搭建一个图片文字识别的WebAPI,便于其他项目通过Post方式将图片进行Base64编码后传到该API,能够得到图片中的文字信息

第一步:安装Python环境
第二步:安装 opencv-python
第三步:安装 paddleocr
第四步:安装 paddlepaddle
第五步:安装 Flask
第六步:安装 DateTime
第七步:编写 PaddleOCR.py 文件,并放在D盘根目录中,文件内容如下
第八步:启动API服务

龙生   15 Mar 2024
View Details

webflux 支持formdata获取参数(包括文件),以及formdata参数封装

在项目微服务的升级过程中,我们通常会设置一个网关,作为一个洪流的出入口,在Spring Cloud 中提供了对应的功能,也就是Spring Cloud Gateway。对于旧的项目springMVC,实际也就是将spring-webmvc升级为spring-webflux,但你会发现fromdata 形式的数据,在webmvc可以被封装成参数,而在webflux中却不能,是不支持吗?

龙生   15 Mar 2024
View Details

Netty实战:Netty如何实现文件的上传和下载?

一、Netty应用场景
讲了一些Netty的组件,来聊一聊大家最关心的事情吧,他能够做什么?毕竟,我们学习就是拿来用的嘛。我可以简单的概括一下,凡是牵扯到网络相关的,都可以使用Neety去实现!

构建高性能、低时延的各种 Java 中间件,例如 MQ、分布式服务框架、ESB 消息总线等,Netty 主要作为基础通信框架提供高性能、低时延的通信服务;

公有或者私有协议栈的基础通信框架,例如可以基于 Netty 构建异步、高性能的 WebSocket 协议栈;

各领域应用,例如大数据、游戏等,Netty 作为高性能的通信框架用于内部各模块的数据分发、传输和汇总等,实现模块之间高性能通信。

龙生   26 Feb 2024
View Details

Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)

一、简介
二、并发编程的3个基本概念
1.原子性
2.可见性
3.有序性
三、锁的互斥和可见性
四、Java的内存模型JMM以及共享变量的可见性
五、volatile变量的特性
1.保证可见性,不保证原子性
2.禁止指令重排
六、volatile不适用的场景
七、volatile原理
八、单例模式的双重锁为什么要加volatile

龙生   26 Feb 2024
View Details
1 17 18 19 281