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(); } […]
View DetailsAnaconda介绍、安装及使用教程
1. 简介
Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
2. 特点
Anaconda具有如下特点:
▪ 开源
▪ 安装过程简单
▪ 高性能使用Python和R语言
▪ 免费的社区支持
其特点的实现主要基于Anaconda拥有的:
▪ conda包
▪ 环境管理器
▪ 1,000+开源库
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 推理部署文档
PaddleOCR服务部署-并通过Java进行调用
上一篇讲了PaddleOCR的简单使用,但是最终的目的肯定是要将它进行服务部署方便我们调用的,这里介绍一下他的服务部署方式
选择部署方式
官方推荐有以下几种:
Python 推理
C++ 推理
Serving 服务化部署(Python/C++)
Paddle-Lite 端侧部署(ARM CPU/OpenCL ARM GPU)
Paddle.js 部署
9步搭建Windows下PaddleOCR图片文字识别WebAPI
本文实现在windows平台下依靠现有资源来搭建一个图片文字识别的WebAPI,便于其他项目通过Post方式将图片进行Base64编码后传到该API,能够得到图片中的文字信息
第一步:安装Python环境
第二步:安装 opencv-python
第三步:安装 paddleocr
第四步:安装 paddlepaddle
第五步:安装 Flask
第六步:安装 DateTime
第七步:编写 PaddleOCR.py 文件,并放在D盘根目录中,文件内容如下
第八步:启动API服务
webflux 支持formdata获取参数(包括文件),以及formdata参数封装
在项目微服务的升级过程中,我们通常会设置一个网关,作为一个洪流的出入口,在Spring Cloud 中提供了对应的功能,也就是Spring Cloud Gateway。对于旧的项目springMVC,实际也就是将spring-webmvc升级为spring-webflux,但你会发现fromdata 形式的数据,在webmvc可以被封装成参数,而在webflux中却不能,是不支持吗?
View Details无法将类型“Newtonsoft.Json.Linq.JArray”隐式转换为“System.Collections.Generic.List
List>();
QRCode.js:使用 JavaScript 生成二维码
什么是 QRCode.js?
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。
Netty实战:Netty如何实现文件的上传和下载?
一、Netty应用场景
讲了一些Netty的组件,来聊一聊大家最关心的事情吧,他能够做什么?毕竟,我们学习就是拿来用的嘛。我可以简单的概括一下,凡是牵扯到网络相关的,都可以使用Neety去实现!
构建高性能、低时延的各种 Java 中间件,例如 MQ、分布式服务框架、ESB 消息总线等,Netty 主要作为基础通信框架提供高性能、低时延的通信服务;
公有或者私有协议栈的基础通信框架,例如可以基于 Netty 构建异步、高性能的 WebSocket 协议栈;
各领域应用,例如大数据、游戏等,Netty 作为高性能的通信框架用于内部各模块的数据分发、传输和汇总等,实现模块之间高性能通信。
View DetailsJava volatile关键字最全总结:原理剖析与实例讲解(简单易懂)
一、简介
二、并发编程的3个基本概念
1.原子性
2.可见性
3.有序性
三、锁的互斥和可见性
四、Java的内存模型JMM以及共享变量的可见性
五、volatile变量的特性
1.保证可见性,不保证原子性
2.禁止指令重排
六、volatile不适用的场景
七、volatile原理
八、单例模式的双重锁为什么要加volatile