> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 用YOLO分析文档布局
- URL: https://www.hubwiz.com/blog/document-layout-analysis-with-yolo/
- Published: 2025-01-08T08:10:23.000Z
- Updated: 2025-01-08T08:10:23.000Z
- Description: 分析文档布局至关重要，因为它有助于正确解释和理解文档内容。随着 RAG 的兴起，它变得更加重要，因为它严重依赖于准确解析文档的能力。
- Author: admin
- Tags: APPLICATION, LAYOUT ANALYSIS, YOLO, DOCLAYNET, HUGGINGFACE, #Import 2026-10-14 14:41

分析文档布局至关重要，因为它有助于正确解释和理解文档内容。随着 RAG 的兴起，它变得更加重要，因为它严重依赖于准确解析文档的能力。

RAG 系统经常与各种文档交互。例如，科学论文通常具有复杂的布局，包括图形、表格、参考文献和结构化部分。正确的解析对于避免内容混乱非常重要。如果操作不正确，LLM 可能会因“垃圾进，垃圾出”原则而失败。

但是，由于这个问题的复杂性，不可能将手工规则作为解决方案。最好的方法是训练机器学习模型。

## 1、我的解决方案

你可以在[ yolo-doclaynet ](https://github.com/ppaanngggg/yolo-doclaynet?ref=hubwiz.com)中找到我的解决方案。在检查了几个模型和数据集后，我选择了 YOLO 作为基础模型，并选择 DocLayNet 作为训练数据。让我们深入了解更多细节。

YOLO 是最先进的视觉检测模型。它由领先的计算机视觉团队 Ultralytics 维护。该模型易于训练、评估和部署。此外，其大小足够紧凑，可以在浏览器或智能手机上运行。

DocLayNet 是一个人工标注的文档布局分割数据集，包含来自各种文档来源的 80,863 页。据我所知，它是文档布局分析的最高质量的数据集。你可以从[此链接](https://github.com/DS4SD/DocLayNet?ref=hubwiz.com)下载并查找更多信息。

## 2、演示

从 huggingface 下载[预训练模型](https://huggingface.co/hantian/yolo-doclaynet/tree/main?ref=hubwiz.com)。选项包括 yolov8n-doclaynet、yolov8s-doclaynet 和 yolov8m-doclaynet。

通过执行 `pip install ultralytics` 安装 Ultralytics。如果遇到任何问题，请参阅[官方文档](https://docs.ultralytics.com/quickstart/?ref=hubwiz.com#install-ultralytics)。

复制并修改此代码片段以输出检测结果：

```
from ultralytics import YOLO

img = cv2.imread(your_image_path, cv2.IMREAD_COLOR)
model = YOLO(your_model_path)
result = model.predict(img)[0]
print(result)
```

当你只能检查纯文本输出时，调试模型可能会很困难。幸运的是，可视化结果很简单：

```
from ultralytics.utils.plotting import Annotator, Colors

colors = Colors()
annotator = Annotator(img, line_width=line_width, font_size=font_size)
for label, box in zip(result.boxes.cls.tolist(), result.boxes.xyxyn.tolist()):
    label = int(label)
    annotator.box_label(
        [box[0] * width, box[1] * height, box[2] * width, box[3] * height],
        result.names[label],
        color=colors(label, bgr=True),
    )
annotator.save(
    os.path.join(os.path.dirname(image), "annotated-" + os.path.basename(your_image_path))
)
```

检查带标注的图像。以下是示例：

![](https://www.hubwiz.com/blog/content/images/2025/01/image-128.png)

yolo-doclaynet 输出示例

## 3、基准测试

我还评估了整个 yolov8 系列在 DocLayNet 测试集上的 mAP50-95 性能：

| 标签  | 图像   | 包围盒   | yolov8n | yolov8s | yolov8m | yolov8l | yolov8x |
| --- | ---- | ----- | ------- | ------- | ------- | ------- | ------- |
| 标题  | 4983 | 1542  | 0.682   | 0.721   | 0.746   | 0.75    | 0.753   |
| 脚注  | 4983 | 387   | 0.614   | 0.669   | 0.696   | 0.702   | 0.717   |
| 公式  | 4983 | 1966  | 0.655   | 0.695   | 0.723   | 0.75    | 0.747   |
| 列表项 | 4983 | 10521 | 0.789   | 0.818   | 0.836   | 0.841   | 0.841   |
| 页脚  | 4983 | 3987  | 0.588   | 0.61    | 0.64    | 0.641   | 0.655   |
| 页眉  | 4983 | 3365  | 0.707   | 0.754   | 0.769   | 0.776   | 0.784   |
| 图片  | 4983 | 3497  | 0.723   | 0.762   | 0.789   | 0.796   | 0.805   |
| 节头  | 4983 | 8544  | 0.709   | 0.727   | 0.742   | 0.75    | 0.748   |
| 表格  | 4983 | 2394  | 0.82    | 0.854   | 0.88    | 0.885   | 0.886   |
| 文本  | 4983 | 29917 | 0.845   | 0.86    | 0.876   | 0.878   | 0.877   |
| 标题  | 4983 | 334   | 0.762   | 0.806   | 0.83    | 0.846   | 0.84    |
| 全部  | 4983 | 66454 | 0.718   | 0.752   | 0.775   | 0.783   | 0.787   |

以下是不同模型大小的 mAP50-95 性能概述：

![](https://www.hubwiz.com/blog/content/images/2025/01/image-129.png)

---

原文链接：[How to analyze document layout by YOLO](https://dev.to/ppaanngggg/how-to-analyze-document-layout-by-yolo-3jd?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处