分类: 未分类

  • [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 paddlepaddle/paddle:3.0.0rc1 /bin/bash

    如果需要其他版本的docker,请到该链接中进行查找:

    https://hub.docker.com/r/paddlepaddle/paddle/tags/

    如果用GPU环境中使用docker,则根据你的CUDA和CUDNN版本来选择你所需要的docker镜像,但记得要设置显存大小(–shm-size),命令参考如下:

    #如果用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

    快速开始

    由于使用Docker环境部署的话, Docker已经包含了paddlepaddle环境,我们可以直接安装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

    如果需要识别PDF,则需要提前安装PyMuPDF,命令如下:

    pip install PyMuPDF

    注意:请务必阅读PyMuPDF的开源协议。相关链接如下:

    https://github.com/pymupdf/PyMuPDF

  • 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”后便可以在这个位置展开找到刚刚添加的快速启动入口:

    选择并运行即可。

  • 在IDEAJ中运行SpringBoot项目时,使用参数指定application为对应环境的配置

    首先请确保项目已经有多个配置文件。

    然后点击这里展开:

    选择“Edit Configurations”。

    最后在“Spring Boot – Active profiles”的填写框里面填入配置文件的后缀,重启SpringBoot项目即可。

  • 使用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都是不支持的~!