12 款开源OCR发 PDF 识别框架

2024 年 12 款开源文档解析框架的选型对比评测:PDF解析、OCR识别功能解读、应用场景分析及优缺点比较

这是该系列的第二篇文章,聚焦于智能文档处理(特别是 PDF 解析)。无论是在模型预训练的数据收集阶段,还是基于 RAG 的知识库构建阶段,大量高质量数据通常以 PDF 或扫描图像的形式出现。由于这些文件的排版多样、格式不一以及扫描质量参差不齐,利用这些数据极具挑战。主要难点在于:一是有效提取内容信息和版面信息(如正文、标题、图注、图片、表格、公式等);二是处理版面元素之间的关系。鉴于此领域的巨大需求,市场上既有开源框架,也不乏商业解决方案,涵盖了从传统 OCR 识别到新型多模态大模型,甚至两者的结合,本篇文章就对他们进行盘点并做功能解读,优缺点比较,应用场景推荐。

如果觉得内容不错,欢迎关注,分享和在看~

文档智能一直是学术研究的重要课题和工业界的痛点需求,它涉及对网页、数字文档及扫描文档中的文本和排版信息的理解、分类、提取及信息归纳。文档布局和格式的多样性、低质量的扫描图像以及模板结构的复杂性,给文档智能带来了许多挑战,自动、精确、快速的信息处理对于提升生产力至关重要,自大模型技术爆发以来,文档和图像等载体的结构化分析与内容提取成为了企业进行 LLM 落地的关键因素之一,在金融领域,文档智能可用于财报分析和智能决策支持;在医疗领域,它可以实现病例的数字化,提高诊断精度,并通过分析医学文献和病例的关联性,提出潜在的治疗方案;在财务领域,它可以实现发票和采购单的自动化信息提取,大幅降低人工处理的时间成本。关于文档智能详细的演进历史,可以阅读微软亚洲研究院这篇综述《文档智能:数据集、模型和应用》
在这里插入图片描述

常规工作流

无论是厂商提供的智能文档识别与处理服务,还是日常遇到的 PDF 内容提取和影像扫描件识别,其背后的技术核心都是文档智能,这里快速梳理下文档智能处理流程中的关键环节及关键技术,以便更好地理解随后对 12 款开源 PDF 工具和 5 家智能文档处理服务的对比分析,这些方案大致可分为两类:一是较为成熟、适用范围广的常规工作流方案;二是尚处于探索阶段、应用场景有限的基于多模态模型的端到端解决方案。

首先看常规的处理流程,通常涉及以下几个步骤:

文档预处理:预处理措施可能包括去噪、校正倾斜、二值化和增强对比度等,这一步是为了提升(图像)文档的质量,以确保后续分析和识别的准确性。

物理版面分析:使用基于回归的单阶段检测模型(如 Faster R-CNN、YOLO 等)检测文档中的物理布局元素(如栏、章节等),通过分析图像中的空白区域、边界和文本密度等特征,识别出标题、段落、图片和表格等不同区域。

文本区域分析:进一步分析检测到的文本区域,识别单词、行和段落,这可能涉及文本行提取和字符分割等子任务。

内容识别:应用 OCR 和表格解析等技术,提取表格、公式、文字等内容。

逻辑版面:通过语义分析理解文档的结构和层次关系,将文本块组织成段落、列表等语义单元。

在这里插入图片描述

数据输出:将分析结果以 HTML、JSON 等格式输出,便于后续处理和应用。

内容识别
内容识别是版面分析流程的后续步骤,版面分析关注的是文档的整体布局和结构,而关注的是文档中具体内容的识别,主要包括三种场景,即表格解析、公式识别和文字提取。

表格解析

表格结构识别是在完成表格区域检测后进行的任务,旨在解析表格的布局和层次结构,将视觉信息转化为可用于重建表格的结构描述。这些描述信息涵盖单元格的确切位置、单元格间的关系及单元格的行、列定位。目前,表格结构信息主要采用两种描述方式:1)单元格列表(包括每个单元格的位置、行列表信息及内容);2)HTML 或 LaTeX 代码(除了单元格的位置,有时还包括内容)。实际应用中,表格类型多样,结构各异。根据表头的位置,表格大致可分为四类:

垂直表格:首行为表头,其余行为垂直排列的数据,是最基础的表格形式。

水平表格:首列为行表头,其余列为水平排列的数据,常见于维基百科中的人物信息记录。

层级表格:表头具有层级结构,表格中包含合并单元格,常见于统计报告和学术论文,此类表格可能同时具有行表头和列表头的层级结构。

复杂表格:表头不仅限于表格的左侧或顶部,还可以出现在任意位置,甚至与常规数据混杂,如专业设备手册、政府登记表和公司面试申请表中常见的形式。

在这里插入图片描述

公式识别

公式识别用于将图像中的数学公式转换为 LaTeX、MathML 等格式,确保其在文档中正确显示和编辑,但在自动阅卷、数字图书馆建设和办公自动化等场景中,手写数学公式的识别仍面临挑战,主要因为这些公式具有复杂的二维结构、多样的书写风格和手写符号的歧义性,具体来说,手写数学公式的识别难度体现在以下几个方面:

复杂的二维结构,如分式、上下标和根号等;

多样化的书写风格,不同人书写同一符号可能存在差异;

手写符号的歧义性,某些符号在手写时容易混淆。

文字提取

这里需要重点说下 OCR 识别,OCR(Optical Character Recognition、光学字符识别)用于将图像中的文字内容识别并转换为可编辑的文本格式,文字识别是 OCR 技术的核心应用场景之一。广州软件应用技术研究院发布了一份关于 12 款开源 OCR 工具(包括PaddleOCR、RapidOCR、读光、ChineseOCR、EasyOCR、Tesseract、OcrLiteOnnx、Surya、docTR、JavaOCR以及文档分析组件RagFlow和Unstructured)的文字识别性能评估报告。评估覆盖了五个关键场景:印刷中文、印刷英文、手写中文、复杂自然场景和变形字体。该评估的数据集在数量和多样性方面(见下图)很有说服力,而且时间很新(2024 年 6 月),具有较高的参考价值。可以在公众号「莫尔索随笔」后台获取回复「文档解析」获取完整的评估报告,对你进行技术选型和设计符合自己场景的测试数据集很有帮助。
在这里插入图片描述

在这里插入图片描述

多模态模型端到端

基于多模态大模型(如面壁智能的 MiniCPM-V 2.6)的端到端解决方案较为直接,通过设计特定的提示词,能够直接从图片文档中提取和分析信息,输出结构化的数据。尽管开源社区已有许多相关项目,但是远远还不成熟,后面我会详细介绍。针对多模态模型,已有一个名为 OCR 任务测评基准(OCRBench
在这里插入图片描述

[2]
)的评估工具,该工具涵盖了文本识别、场景文本为中心的视觉问答(VQA)、文档导向的 VQA、关键信息提取(KIE)以及手写数学公式识别(HMER)等测试维度。多模态模型在传统的文本任务上表现出色,但在处理缺乏语义上下文的文本、手写文本、多语言文本及高分辨率输入图像方面存在不足。

开源框架

了解完核心能力,接下来就可以对开源的 12 款文档解析框架了进行比较了,首先我会快速介绍下每款工具,最后用一个表格直观展示每个框架具备的能力,不想看介绍的可以直接翻到总结部分查看。

常规流程

1. MinerU

[3]
MinerU 放在第一个,因为这个项目完成度特别高。作为由上海人工智能实验室大模型数据基座团队(OpenDataLab)开发的开源数据提取工具,MinerU 专精于从复杂的 PDF 文档、网页和电子书中高效提取内容。它能去除文档中的页眉、页脚、脚注和页码等非文本元素,确保提取内容的语义连贯性。该工具支持单栏、多栏及复杂排版的文本提取,并能保留原文档的结构,如标题、段落和列表等。此外,MinerU 还能提取图像、图片描述、表格、表格标题和脚注。对于文档中的数学公式,MinerU 可以自动识别并转换为 LaTeX 格式,同时将表格转换为 HTML 格式。对于扫描版 PDF 和乱码 PDF,MinerU 配备了 OCR 功能,支持 84 种语言的检测与识别,输出格式多样,包括 Markdown 和 JSON。

然而,MinerU 不支持垂直文字的处理。目录和列表依赖规则识别,少数不常见的列表类型可能无法被正确识别。仅支持一级标题,不支持多级标题。漫画书、艺术图册、小学教材和习题集目前无法准确解析。在处理复杂表格时可能出现行列错误。小语种 PDF 的 OCR 识别可能无法准确识别特殊字符,例如拉丁文重音符号或阿拉伯文中的易混淆字符。某些数学公式可能无法在 Markdown 中正确显示。

尽管存在上述限制,但我依旧很推荐这个项目,其 PDF 解析功能已被拆分为独立项目 PDF-Extract-Kit

[4]
,通过它可以深入了解文档处理流程的具体实现,包括表格解析方法和版面分析模型的设计。此外,OpenDataLab 团队还分享了一份关于 MinerU 的 PPT,链接在此
[5]
,其中包含了许多有价值的见解,特别是关于网页内容采集和 PDF 解析的系统性思考。

2. PaddleOCR

[6]
PaddleOCR 放在第二个,生态繁荣,影响力巨大,延伸的项目特别多,OCR 话题基本绕不过它,上面的 PDF-Extract-Kit 就在用。PaddleOCR 是一个基于 PaddlePaddle(飞桨) 深度学习框架开发的开源多语言 OCR 工具包,为开发者提供丰富实用的 OCR 解决方案,帮助训练更优质的模型并应用于实际场景。PaddleOCR 提供了一系列功能模型,涵盖文本图像智能分析、通用 OCR、版面解析、表格识别及印章文字识别等。此外,还支持以下高级功能:

文档场景信息抽取

[7]
%28PP-ChatOCRv3-doc%29:用于从文档中提取关键信息。
高精度版面区域检测模型

[8]
(基于 RT-DETR):适用于需要高精度检测的应用。
高效率版面区域检测模型

[9]
(基于 PicoDet):适用于对处理速度有较高要求的场景。
高精度表格结构识别模型

[10]
SLANet_Plus:能够准确识别表格的结构。
文本图像矫正模型

[11]
UVDoc:用于校正扭曲的文本图像。
公式识别模型

[12]
LatexOCR:能够识别并转换数学公式。
文档图像方向分类模型

[13]
(基于 PP-LCNet):用于确定文档图像的方向。

3. Marker

[14]
Marker 用于将 PDF 文件快速且准确地转换成 Markdown、JSON 和 HTML 格式,也有对应的商业化服务 Datalab

[15]
,包含特性如下:
页面布局检测:利用 Surya 模型检测页面布局,确定文本的阅读顺序。

内容清洗与格式化:采用 heuristics、texify 和 tabled 模型对文本进行清洗和格式化,确保表格、代码块等元素的结构清晰。

文本提取:除了使用常规 PDF 解析方式,还使用 OCR 技术(如 heuristics 和 Surya 模型)识别图像中的文本。

公式图片处理:提取 PDF 中的图片,并将公式转换为 LaTeX 格式。

Marker 的核心是开源的Surya

[16]
,它是一个支持 90 多种语言的文档 OCR 工具包,提供文本检测、布局分析、阅读顺序和表格识别等功能,具体的能力详情前面的开源 OCR 工具评测报告有详细介绍,可自行阅读。

4. Unstructured

[17]
Unstructured 是一个开源库和 API 套件,旨在构建自定义数据预处理管道。它主要用于机器学习任务中的数据提取、转换和加载(ETL)过程,支持 PDF、图像等多种文档格式,帮助开发者从非结构化数据中提取结构化信息,以用于标注、训练或生产环境中的机器学习模型。该项目的创始人在此基础上构建企业级数据预处理工具,提供商业服务,已融资 2500 万美元。

多模态模型

5. gptpdf

[18]
想法很不错,这是我看到的第一个使用多模态模型做 PDF 处理的,虽然已经不维护了,但我还是放在这里,几百行代码,使用 GPT-4o 解析 PDF 文件。首先利用 PyMuPDF 库分析 PDF 文件,识别并标记出所有非文本区域,例如图表和图片,接着使用 GPT-4o 来处理这些标记过的非文本区域,向模型提供适当的提示词,指导其将这些区域内容转换为 Markdown 格式。

DEFAULT_PROMPT = “”“使用 markdown 语法,将图片中识别到的文字转换为 markdown 格式输出。你必须做到: 1. 输出和使用识别到的图片的相同的语言,例如,识别到英语的字段,输出的内容必须是英语。2. 不要解释和输出无关的文字,直接输出图片中的内容。例如,严禁输出 “以下是我根据图片内容生成的 markdown 文本:”这样的例子,而是应该直接输出 markdown。3. 内容不要包含在markdown中、段落公式使用 的形式、行内公式使用 $ $ 的形式、忽略掉长直线、忽略掉页码。 再次强调,不要解释和输出无关的文字,直接输出图片中的内容。 “”” DEFAULT_RECT_PROMPT = “”“图片中用红色框和名称%28%s%29标注出了一些区域。 如果区域是表格或者图片,使用 %21[]%28%29 的形式插入到输出内容中,否则直接输出文字内容。 “”” DEFAULT_ROLE_PROMPT = “”“你是一个 PDF 文档解析器,使用 markdown 和 latex 语法输出图片的内容。 “””

6. Zerox

[19]
Zerox 首先将 PDF、 Docx 等格式转换为一系列图像,这一步使用graphicsmagick和ghostscript等工具来处理 PDF 文件。对于 Docx 格式使用libreoffice等工具将其先转换为 PDF,然后再进行图像转换。将转换得到的图像传递给多模态模型,下面的步骤就和在 gptpdf 的思路上一致了,将模型返回的每个页面的 Markdown 文本聚合起来,形成完整的 Markdown 文档。顺便一提,项目创始人也基于此推出了OmniAI

[20]
产品,用于将多种类型的文档转换为结构化数据,融资 320 万美元。
结合方案

7. Chunkr

[21]
Chunkr 可以将 PDF、PPT、Docx 和 Excel 等格式的文件转换成结构化数据,它通过使用 11 种语义标签(结合多模态模型)进行文档的布局分析,支持 OCR 技术提取文本内容,并能够生成包含边框信息的结构化输出,如 HTML 和 Markdown 格式,开源这个项目的公司叫 Lumina

[22]
,也是做 AI 搜索引擎的,拿了 YC 投资。

8. pdf-extract-api

[23]
pdf-extract-api 用于将图片和 PDF 文档转换为 Markdown 或 JSON 格式,支持多种 OCR 策略,包括 surya、llama_vision(多模态模型) 和 tesseract,此外,它还集成了 LLM(如 LLama 3.1)来改善 OCR 文本的质量。

9. Sparrow

[24]
Sparrow 项目用于从各种文档和图像中高效提取和处理数据,包括表格、银行对账单、发票、收据等非结构化数据源,具有模块化架构,包括多个组件,其中 Sparrow Parse 支持使用多模态模型进行数据提取,Sparrow OCR 使用 OCR 技术进行字符识别,Sparrow 只擅长处理常见的形式化文档。

其他
题目提到 12 个开源的项目,怎么只罗列了 9 种呢,别急,其余 3 种已在系列第一篇关于 RAG 框架的介绍

RAGFlow 开源的DeepDoc

[26]

以及 Quivr 开源的MegaParse

[27]
,这些组件不仅提供了文档解析功能,还处理了内容分块的步骤,是构建高效 RAG 框架不可或缺的一部分,这里不再赘述。
总结
划重点的部分来了!
在这里插入图片描述

PDF、DOCX、Excel 和 PPT 四种文档格式均有对应的解析器,其中 PDF 的解析最为复杂,因此常被用作评估文档解析能力的基准。尽管有许多优秀的开源项目,但在处理复杂表格和公式识别时,它们大多表现不佳。例如,当公式嵌入到上下文页面中时,具备布局分析能力的框架往往会出现大量识别错误。此外,这些项目还存在各自的局限性:gptpdf、PaddleOCR 缺乏必要的后处理步骤;Marker 支持的语言种类有限,Figure 处理不够完善;MinerU 消耗较多的计算资源等。大多数项目转换后的格式支持 Markdown 和 HTML,以便于 LLM 理解和处理。不过不支持 HTML 输出的项目可以确定是无法解析较为复杂的表格,因为标准 Markdown 语法仅适用于简单的表格结构,而复杂的表格则需借助 HTML 表格或其他文档格式(如 LaTeX、AsciiDoc、ReStructuredText)来实现。

文件解析是一个不断优化的过程,针对不同格式和复杂性的文件,需要持续探索和调整解决方案,在处理 PDF 文件时,数字签名、扫描件、影印件及复杂表格的解析均属特殊情形,需采取专门的方法,这个领域仍有许多机会,欢迎有兴趣合作的朋友后台联系我交流咨询。

智能文档处理服务
鉴于开源项目在处理复杂表格和公式方面过于拉垮,我进一步测试了 5 家收费的智能文档处理服务,发现其性能确实更出色些,果然是贵有贵的道理。比如下面这个复杂合并单元格(关于更多带复杂表格和公式的文档测试数据,可以在公众号「莫尔索随笔」后台获取回复「文档解析」获取,相信对你进行厂商选择和设计符合自己场景的测试数据集很有帮助)

TextIn

[28]
TextIn 是合合信息推出的通用文档解析服务,它能够识别文档或图片中的文字信息,并将文档内容解析为 HTML 格式,保持常见的阅读顺序。该服务在表格识别方面具有高精度,能够处理有线表、无线表、密集表格,以及单元格合并和跨页表格合并。解析速度极快,100 页长文档最快仅需 1.5 秒,同时支持在线和离线批量处理。TextIn ParseX 支持多种文档格式,包括 PDF、Word、HTML 等,并且能够一次性获取文字、表格、标题层级、公式、手写字符、图片信息。TextIn 解析正确,但表格内内容区分度不明显。
在这里插入图片描述

PDFlux

[29]在这里插入图片描述

PDFlux 是专为 PDF 文档设计的数据提取工具,实现对 PDF 或图片中的表格和文字内容的智能识别和提取。在内容识别方面,PDFlux 能够智能识别 PDF 或图片中的表格和文字内容,支持无线表格识别、复杂排版精确提取、自动扶正歪斜表格、去除印章干扰、智能合并跨页表格以及一键去除空格换行等功能。在格式转换方面,PDFlux 支持将 PDF 转换为 Word、Excel、HTML 等多种格式,方便用户编辑和移动端阅读,同时保留文档的章节目录结构。PDFlux 的识别结果丢失了表格标题。

Mathpix

[30]
通过 OCR 技术识别公式,可以快速准确地将数学公式截图和手写公式转换为 LaTeX 格式,无论是行间公式还是行内公式都可以准确识别,支持多国语言;可以识别图片或 pdf 文件中的表格,并输出 TSV(制表符分隔值)格式,可以直接将 pdf 转换为 LaTeX、Word、HTML 等格式,沉浸式翻译、Anthropic、谷歌 Bard 等都调用了它的服务。Mathpix 识别正确,但没有合并单元格。

在这里插入图片描述

Doc2x

[31]
上传 PDF 或图片,精准公式识别和表格识别,一键高效转换为 Word、LaTeX、HTML、Markdown 等多种格式,Doc2x 识别正确 ,内容使用空格区分。
在这里插入图片描述

百度智能云办公文档识别服务
[32]
大厂产品就首先试了下百度的,内容对,但丢失表格结构,直接放弃,其他家的就没再继续试了。
在这里插入图片描述

写在最后
以后再看到新的和文档解析相关开源项目时,可以通过以下技巧快速判断其是否具有实质性创新:首先检查项目是否沿用了传统的 OCR 流程;其次,观察表格识别和版面分析模型是自主研发的还是基于 PaddleOCR 等开源工具,如果这些方面有所创新,那么该项目值得深入研究。若计划在实际产品中应用相关技术,本着对用户负责的态度,优先考虑商业化的智能文档处理服务(商业化的智能文档处理服务,主要关注三个维度,快、准、稳,(表格、公式)识别精准、解析速度快、稳定性好),对于包含大量表格和公式的文档,我推荐如下选择:英文上下文中的公式识别首选 Mathpix;中文上下文中的公式识别则应选择 Doc2X;而面对复杂的表格,则 PDFlux 或 TextIn 更为可靠。如果你要自建一套文档解析解决方案,基于 MinerU 去搭建,针对无法处理的特定场景利用 PaddleOCR 工具包训练相应的模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化(一)默认构造(二)值初始化(三)使用std::make_optional(四)使用std::nullopt 三、访问值(一)value()&#x…

拟合损失函数

文章目录 拟合损失函数一、线性拟合1.1 介绍1.2 代码可视化1.2.1 生成示例数据1.2.2 损失函数1.2.3 绘制三维图像1.2.4 绘制等高线1.2.5 损失函数关于斜率的函数 二、 多变量拟合2.1 介绍2.2 代码可视化2.2.1 生成示例数据2.2.2 损失函数2.2.3 绘制等高线 三、 多项式拟合3.1 介…

基于微信小程序的移动学习平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【公因数匹配——暴力、(质)因数分解、哈希】

题目 暴力代码&#xff0c;Acwing 8/10&#xff0c;官网AC #include <bits/stdc.h> using namespace std; const int N 1e610; vector<int> nums[N]; int main() {ios::sync_with_stdio(0);cin.tie(0);int n;cin >> n;for(int i 1; i < n; i){int x;ci…

操作系统指定用户密码永不过期

背景 实际生产环境中&#xff0c;数据中心操作系统通常会有基线要求&#xff08;比如等保之类&#xff09;&#xff0c;要求设置操作系统密码有效期&#xff0c;但是infra团队或者操作系统管理员或者某些业务配置使用的操作系统用户又需要密码不能不停修改&#xff08;或者说一…

能量提升法三:赞美

前情回顾&#xff1a; 《能量提升法二&#xff1a;感恩》 片段&#xff1a;“感恩&#xff0c;就像是在跟世界说&#xff1a;谢谢你&#xff0c;我收到了&#xff0c;我很喜欢&#xff0c;请多来点” 把它归还人海&#xff0c;就当作每一个人&#xff0c;都有可能是曾经帮助…

25美赛ABCDEF题详细建模过程+可视化图表+参考论文+写作模版+数据预处理

详情见该链接&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 25美国大学生数学建模如何准备&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;-CSDN博客文章浏览阅读791次&#xff0c;点赞13次&#xff0c;收藏7次。通过了解比赛基本…

2025企业繁体镜像站镜像站群版 | 干扰码+拼音插入

技术背景 高效的SEO优化和内容采集是企业站群系统的核心竞争力。本文将详细介绍一套企业级网站镜像工具包&#xff0c;重点展示其在SEO优化、内容采集、智能处理等方面的创新实现。 系统特性 1. SEO优化功能 关键词智能布局标题标签优化链接结构优化移动端适配页面加速优化…

动态规划<九>两个数组的dp

目录 引例 LeetCode经典OJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 7.第七题 引例 OJ传送门LeetCode<1143>最长公共子序列 画图分析&#xff1a; 使用动态规划解决 1.状态表示 ------经验题目要求 经验为选取第一个字符串的[0,i]区间以及第二个字…

大数据学习之SCALA分布式语言三

7.集合类 111.可变set一 112.可变set二 113.不可变MAP集合一 114.不可变MAP集合二 115.不可变MAP集合三 116.可变map一 package com . itbaizhan . chapter07 //TODO 2. 使用 mutable.Map 前导入如下包 import scala . collection . mutable // 可变 Map 集合 object Ma…

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID &#xff1a; TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的&#xff0c;范围是 0 to 0xFFFE&#xff0c;0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级&#xff0c;ID越大&#…

WGCLOUD运维工具从入门到精通 - 如何设置主题背景

需要升级到WGCLOUD的v3.5.7或者以上版本&#xff0c;才会支持自定义设置主题背景色 WGCLOUD下载&#xff1a;www.wgstart.com 我们登录后&#xff0c;在右上角点击如下的小图标&#xff0c;就可以设置主题背景色了&#xff0c;包括&#xff1a;经典白&#xff08;默认&#x…

LigerUI在MVC模式下的响应原则

LigerUI是基于jQuery的UI框架&#xff0c;故他也是遵守jQuery的开发模式&#xff0c;但是也具有其特色的侦听函数&#xff0c;那么当LigerUI作为View层的时候&#xff0c;他所发送后端的必然是表单的数据&#xff0c;在此我们以俩个div为例&#xff1a; {Layout "~/View…

基于RIP的MGRE VPN综合实验

实验拓扑 实验需求 1、R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址&#xff1b; 2、R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b; R2与R5之间使用ppp的CHAP认证&#xff0c;R5为主认证方&#xff1b; R3与R5之间使用HDLC封…

git的理解与使用

本地的git git除了最经典的add commit push用来做版本管理&#xff0c;其实他的分支管理也非常强大 可以说你学好了分支管理&#xff0c;就可以完成团队的配合协作了 git仓库 我们可以使用git init来初始化一个git仓库&#xff0c;只要能看见.git文件夹&#xff0c;就代表这…

STM32 对射式红外传感器配置

这次用的是STM32F103的开发板&#xff08;这里面的exti.c文件没有how to use this driver 配置说明&#xff09; 对射式红外传感器 由一个红外发光二极管和NPN光电三极管组成&#xff0c;M3固定安装孔&#xff0c;有输出状态指示灯&#xff0c;输出高电平灯灭&#xff0c;输出…

https数字签名手动验签

以bing.com 为例 1. CA 层级的基本概念 CA 层级是一种树状结构&#xff0c;由多个层级的 CA 组成。每个 CA 负责为其下一层级的实体&#xff08;如子 CA 或终端实体&#xff09;颁发证书。层级结构的顶端是 根 CA&#xff08;Root CA&#xff09;&#xff0c;它是整个 PKI 体…

【自然语言处理(NLP)】深度循环神经网络(Deep Recurrent Neural Network,DRNN)原理和实现

文章目录 介绍深度循环神经网络&#xff08;DRNN&#xff09;原理和实现结构特点工作原理符号含义公式含义 应用领域优势与挑战DRNN 代码实现 个人主页&#xff1a;道友老李 欢迎加入社区&#xff1a;道友老李的学习社区 介绍 **自然语言处理&#xff08;Natural Language Pr…

Niagara学习笔记

橙色 发射器 , 绿色 粒子, 红色 渲染器 Emitter State 发射器状态 Life Cycle Mode&#xff08;生命周期模式&#xff09; 选择Self就是发射器自身管理生命周期 Loop Behavior 决定粒子发射次数 一次&#xff08;Once&#xff09;&#xff1a;发射器只播放一次多次&#…

2025数学建模美赛|F题成品论文

国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展&#xff0c;网络犯罪问题已成为全球网络安全中的重要研究课题&#xff0c;且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题&#xff0c;基于多元回归分析和差异中的差异&#xff08;DiD&#xff09;思…