• Category Archives: 未分类

[PaddleOCR]使用教程

环境准备

【如果你的是Windows】

则需要按照官方的教程准备Anaconda环境:

https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/environment.html#11-windows

【如果你的是Linux】

则有两种选择:

方法一,安装Anaconda环境:

https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/environment.html#131-anaconda

方法二,使用现成的Docker环境(注意更换paddle的版本,因为官方的命令有误):

https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/environment.html#132-docker

那针对Linux的方法二,可以参考以下命令创建docker容器:

#首先切换到你的工作路径,然后执行以下命令
#注意:$PWD:/paddle的意思是将容器的/paddle路径映射到宿主机的当前目录中,因此建议运行前先想好要映射到哪个位置,从而提前切换到对应的路径

#如果用CPU环境中使用docker,则用这个命令
sudo docker run --name ppocr -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3 /bin/bash

#如果用GPU(cuda10.2+cudnn7)环境中使用docker,则用这个命令
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=64G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3-gpu-cuda10.2-cudnn7 /bin/bash

#如果用GPU(cuda11.2+cudnn8)环境中使用docker,则用这个命令
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=64G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3-gpu-gpu-cuda11.2-cudnn8 /bin/bash

再次进入容器可以使用如下命令:

sudo docker container exec -it ppocr /bin/bash

启动容器可以使用如下命令:

docker start ppocr

删除容器可以使用如下命令:

sudo docker rm ppocr

快速开始

在对应的python环境中,执行以下命令以安装paddlepaddle:

#使用CPU的用这个
python -m pip install paddlepaddle==2.1.3 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/

#使用GPU的用这个(注意替换cu版本号)
python -m pip install paddlepaddle-gpu==2.1.3 -i https://www.paddlepaddle.org.cn/packages/stable/cu102/

接下来安装paddleocr:

pip install paddleocr

然后运行以下指令以查看paddleorc是否能正常运作:

paddleocr -h
出现上述错误的原因解释
PaddleOCR 依赖的 protobuf 版本需 ≤3.20.x,新版(≥4.0)因协议不兼容会报错。
通过降级 protobuf 或调整环境变量可绕过此问题。

因此需要执行以下命令将protobuf降到兼容版本:

#卸载原有的protobuf
pip uninstall protobuf

#安装指定版本的protobuf
pip install protobuf==3.20.0

然后再使用“paddleocr -h”指令检查是否正常运行paddleocr:

出现上图所示的输出,代表paddleocr已经可以正常使用。

接下来使用如下命令尝试将图片转文字:

#首次运行需要下载大模型,模型的默认下载位置是:${HOME}/.paddleocr
#如需更改模型的存储位置,可设置环境变量:PADDLE_OCR_BASE_DIR
#目前语言可选:'ch', 'en', 'korean', 'japan', 'chinese_cht', 'ta', 'te', 'ka', 'latin', 'arabic', 'cyrillic', 'devanagari'

#
paddleocr --image_dir /paddle/JGJ-T-235-2011/JGJ-T-235-2011_00.png --lang ch

DeepSeek本地部署:在Windows中使用Ollama快速运行

第一步:Ollama的下载、安装、运行

到这个网站下载并安装:https://ollama.com/

安装完成并运行后,任务栏的右下角会有如下图标:

第二步:下载并运行DeepSeek模型

进入Ollama的这个网址可以查看到DeepSeek-R1有哪些模型可以直接下载并使用:

https://ollama.com/library/deepseek-r1

然后使用如下命令下载并运行模型:

(注意:Ollama默认的模型下载位置是系统当前登录用户的文件空间中,所以多数情况是放在C盘,请先确保有足够的存储空间。如果需要更改,请在系统中设置系统变量“OLLAMA_MODELS”,值为你要用于存放模型的文件夹路径。设置后,需要重启Ollama才会生效。)

ollama run deepseek-r1:7b

7b是模型的类型,请根据自己的需求进行调整。

“B”代表“Billion”,即“十亿”。这是用来量度模型中参数的数量。
——傻瓜式判断你应该使用哪种——-
1.5B 模型:4GB 显存
7B、8B 模型:8GB 显存
14B 模型:12GB 显存
32B 模型:24GB 显存

下载成功后会自动运行,出现>>>的符号表示你此时可以输入文字跟AI对话了:

第三步:设置模型推理时使用CPU还是GPU(可选)

刚刚装好,跟AI对话的时候发现AI的回复很慢,怎么跟网上的响应速度差那么远?我的电脑是12代I5,3050的显卡,理论上使用7b应该是轻松应付的。于是查了一下资料得知我们现在只是使用AI模型进行推理,而并非训练,因此推理的话,使用CPU或是GPU都是可以的。而Ollama在装好后,可能默认使用的是CPU进行推理。怎么去判断呢?

如果是Nvidia的显卡,可以在AI模型正在回复的时候使用nvidia-smi命令来查看是否有ollama的进程在运行:

如果是其他显卡就不知道了。但是我们可以在CMD夏直接使用以下命令进行配置:

export CUDA_VISIBLE_DEVICES=0  # 指定使用第一个 GPU

配置好后,记得重启Ollama服务,以让配置生效。

经过测试,速度立刻变得飞快。

那也顺便给大家配置回去CPU推理的命令:

export CUDA_VISIBLE_DEVICES=""  # 清空变量,强制使用 CPU

9部美剧提升英语能力

推荐9部适合学习英语的美剧,让你的英语学习更加有趣和高效!


🎬 “Friends”(《老友记》):这部经典剧集的语言简单易懂,贴近日常生活,非常适合英语初学者。


🎬 “The Big Bang Theory”(《生活大爆炸》):剧中人物的科学知识和幽默的对白,让你在欢笑中学习英语,同时了解科学知识。


🎬 “How I Met Your Mother”(《我是怎么遇见你的母亲》):虽然语言稍难,但剧情有趣,人物性格鲜明,适合有一定英语基础的人观看。


🎬 “Game of Thrones”(《权力的游戏》):虽然语言复杂,但剧情引人入胜,可以锻炼你的听力和理解能力。


🎬 “Breaking Bad”(《绝命毒师》):语言难度较高,适合有一定英语基础的人观看,剧中的专业术语也能增加学习的趣味性。


🎬 “The Crown”(《皇冠》):语言较为正式,对于提升英语的阅读和写作能力很有帮助。


🎬 “Sherlock”(《神探夏洛克》):对话语速较快,适合提升英语听力的人观看。


🎬 “The West Wing”(《白宫风云》):语言正式,适合提升英语的阅读和写作能力。


🎬 “Downton Abbey”(《唐顿庄园》):语言正式,适合提升英语的阅读和写作能力。

以上内容转载自:

https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4038222814918069207&sourceFrom=search_a

在使用Azure的Content Sagety Studio时,我测试Moderate text content时为什么提示“Select an Azure AI resource to run test.”

最近在学习微软的Azure,相关链接如下:

https://microsoftlearning.github.io/mslearn-ai-fundamentals/Instructions/Labs/02-content-safety.html

然后在走如下流程时,却出现了空白资源列表:

一开始怀疑自己没有做对指导流程中描述的步骤,于是再走了一次流程,还是不行。

搜索Internel没结果,最后在AI中找到了答案:

好吧,在Azure的Website中重新登录你的账号吧!结果就出来了:

唉!浪费了我几个小时,这个系统是应届生做的吧!?~

ResourceOperationFailure: Resource provider [N/A] isn’t registered with Subscription [N/A].

最近在学习Microsoft的AI,按照Azure的教程来走“Microsoft Machine Learning”时,遇到错误,相关的链接与错误提示如下:

https://microsoftlearning.github.io/mslearn-ai-fundamentals/Instructions/Labs/01-machine-learning.html

ResourceOperationFailure: Resource provider [N/A] isn’t registered with Subscription [N/A]. Please see troubleshooting guide, available here: https://aka.ms/register-resource-provider

根据错误提示进入“https://aka.ms/register-resource-provider”查阅资料,但无法解决。因为错误提示显示的是[N/A],因此你都不知道是哪个Resource Provider没有开。

继续查阅资料,看到这位国外使用者出现了同样的情况:

https://learn.microsoft.com/en-us/answers/questions/2129910/resource-provider-(n-a)-isnt-registered-with-subsc

大概意思就是,要开启“Microsoft.PolicyInsights”和“Microsoft.Cdn”这两个Resource provider,如下图所示:

操作注册后需要等一会,待彻底注册成功,即可再次尝试了。

自此,问题解决。

在IDEAJ中修改MAVEN的运行参数

举个例子,常规的是命令 mvn install,这时只需要双击这里即可:

但是如果需要制定运行参数,那怎么办?

第一种方法是直接在IdeaJ的Terminal中执行即可:

但这里的环境调用的是windows的环境,所以有可能你的windows环境是JDK17,但是项目的环境是JDK8,此时便会报错。那么我们可以通过这种形式去配置其参数:

右击这个命令,选择“Modify Run Configuration”:

然后在以下圈住的位置填写mvn参数(注意不需要前面打mvn三个英文字母):

点击“OK”后便可以在这个位置展开找到刚刚添加的快速启动入口:

选择并运行即可。

使用JAVA开发视窗软件,浅谈Swing、SWT、JavaFX的区别。

Swing是JAVA内置的,因此商用免费,优点是无需额外引入依赖而且跨平台。

SWT是Eclipse开发并维护的,开源协议是Eclipse所以商用免费,有点是界面调用了不同系统的底层实现的,做出来的窗体效果比较贴近系统,所以效果相对精美。

JavaFX是官方的产物,JDK1.8是内置,超过JDK1.8的版本都是需要独立引用,功能及效果均超越Swing和SWT,但开源协议是CC BY-NC 4.0 DEED,也就是不可商用!不可商用!不可商用!因此没有学习价值。

所以,长远来看,还是用Swing吧。

在SpringBoot项目中使用AWT的Toolkit.getDefaultToolkit().getScreenSize()时出现Exception in thread “JavaFX Application Thread” java.awt.HeadlessException错误

可以修改启动类为:

@SpringBootApplication
public class RmToolApplication implements CommandLineRunner {

	public static void main(String[] args) {
		//SpringApplication.run(RmToolApplication.class, args);
		SpringApplicationBuilder builder = new SpringApplicationBuilder(RmToolApplication.class);
		builder.headless(false).run(args);
	}

	@Override
	public void run(String... args) throws Exception {
		Application.launch(MainApp.class, args);
	}

}

SpringBoot项目使用tesseract

官方github地址:

https://github.com/tesseract-ocr/tesseract

注意,tess4j中用到的JAI类库只支持以下图像类型:

详情可到进入下面链接查看:

https://github.com/jai-imageio/jai-imageio-core

安装系统环境(可选)

https://github.com/UB-Mannheim/tesseract/wiki

如果不安装,则会在执行OCR识别时出现如下作物提示:

java.lang.RuntimeException: Unsupported image format. May need to install JAI Image I/O package.
https://github.com/jai-imageio/jai-imageio-core
	at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:215) ~[tess4j-4.5.5.jar:4.5.5]
	at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:195) ~[tess4j-4.5.5.jar:4.5.5]

下载语言数据

https://github.com/tesseract-ocr/tessdata

到这个连接中,下载zip包:

做OCR识别之前,不配置tessdata的话,会出现以下错误:

当然,你也可以只下载eng.traineddata

引入依赖

//OCR依赖
implementation 'net.sourceforge.tess4j:tess4j:4.5.5'

//JAI Image I/O 扩展库
implementation group: 'com.github.jai-imageio', name: 'jai-imageio-jpeg2000', version: '1.4.0'

代码示例

        File ocrFile = new File("ocr.png ");
        //使用OCR提取图片文字
        Tesseract tesseract = new Tesseract();
        //设置 Tesseract 数据文件的路径,如果不是默认路径的话
        //tesseract.setDatapath("path_to_your_tessdata_folder");
        try {
            String result = tesseract.doOCR(ocrFile);
            System.out.println(result);
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }

其他

java.lang.RuntimeException: Unsupported image format. May need to install JAI Image I/O package.
https://github.com/jai-imageio/jai-imageio-core
	at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:215) ~[tess4j-4.5.5.jar:4.5.5]
	at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:195) ~[tess4j-4.5.5.jar:4.5.5]

出现这种情况,请注意一下是否你的图像类型不属于支持的范围,请查看JAI的官网链接,别怀疑,PNG和JPG都是不支持的~!

close