尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

LiteParse 边界框(Bounding Box)详解:给每段文字精准定位

LiteParse 边界框(Bounding Box)详解:给每段文字精准定位 LiteParse 边界框Bounding Box详解给每段文字精准定位【免费下载链接】liteparseA fast, helpful, and open-source document parser项目地址: https://gitcode.com/GitHub_Trending/li/liteparseLiteParse 是一款快速、开源的本地文档解析工具其中最实用的能力之一是为文档中的每段文字提供边界框Bounding Box坐标。只要以 JSON 格式解析一次你就能知道页面上任何一段文字在哪里、占多宽、多高——无论是做视觉引用高亮、表格单元格定位还是给多模态大模型喂坐标这份空间信息都缺一不可。 快速上手一条命令拿到文字边界框用命令行以 JSON 格式解析任意文档即可每个文本项text_items都自带x、y、width、height四个坐标lit parse document.pdf --format json -o result.json以项目自带的示例票据图片为例解析后输出结构如下节选{ pages: [ { page: 1, width: 612, height: 792, text_items: [ { text: Revenue grew 15%, x: 72, y: 200, width: 150, height: 12 } ] } ] }命名规则小贴士JSON 输出使用 snake_casetext_items、pageNode.js 绑定用 camelCasetextItems、pageNumPython 用 snake_casetext_items。 理解坐标系统PDF 点与 72 DPI新手最容易困惑的是这些数字代表什么。LiteParse 的坐标规则非常统一记住三点即可要点说明单位PDF 点point1 point 1/72 英寸原点页面左上角方向X 向右增大Y 向下增大也就是说(x, y)是文字块左上角的位置x width、y height是右下角。页面上所有对象——文字、表格单元格、图片、批注、矢量图形——都共用这同一套左上角原点、72 DPI的视口坐标系因此不同对象的框可以直接互相比较、重叠检测。这套坐标定义见crates/liteparse/src/types.rs中的TextItem与Rect结构。 短语搜索跨文本项自动合并边界框实际文档中一句话常被拆成多个文本项。LiteParse 的search_items函数源码位于crates/liteparse/src/search.rs会把相邻文本项拼接后搜索命中后自动合并出覆盖整个短语的统一边界框无需自己拼坐标from liteparse import LiteParse, search_items result LiteParse().parse(report.pdf) for page in result.pages: for m in search_items(page.text_items, 0°C to 70°C): print(f{m.text} ({m.x}, {m.y}) {m.width}×{m.height})Node.js 侧对应searchItemsAPI 完全一致。 布局块边界框整段、整表一次定位如果你要的是整个标题整张表格的框而不是逐词拼接可以开启--extract-blocks把 Markdown 渲染器使用的布局分类结果直接作为数据拿到lit parse document.pdf --format json --extract-blocks每页会多出一个按阅读顺序排列的blocks数组每个块包含kindheading、paragraph、list_item、code、table、figure等和覆盖其所有源行的bbox。例如一张表格{ kind: table, bbox: { x: 72.0, y: 310.5, width: 468.0, height: 96.0 }, header: [ { text: Territory Code, bbox: { x: 72.0, y: 310.5, width: 120.0, height: 24.0 } } ], rows: [ [ { text: 001, bbox: { x: 72.0, y: 334.5, width: 120.0, height: 24.0 } } ] ] }注意表格单元格自带独立bbox所以你可以精确到单元格级别做引用定位——这在审计、对账类场景中非常有用。块结构定义见crates/liteparse/src/layout.rs。️ 边界框坐标如何换算成图片像素截图是像素边界框是 PDF 点两者换算只需一个比例因子scale dpi / 72默认lit screenshot与解析渲染均为 150 DPI比例约2.08。例如文字项(72, 200)在 150 DPI 截图中对应像素(150, 416)。两个关键细节parse与screenshot请保持DPI 一致否则高亮框会错位JSON 中每页的page_width/page_height也是 PDF 点可直接用来把坐标归一化为百分比。✨ 实战给搜索结果画高亮视觉引用这是边界框最经典的应用——构建 RAG 或 Agent 时向用户展示答案究竟出自页面哪里# 1. 解析出带边界框的 JSON lit parse manual.pdf --format json -o result.json # 2. 生成同 DPI 的页面截图 lit screenshot manual.pdf -o ./screenshots之后用任意图像库如 sharp、Pillow按dpi/72缩放坐标在截图上叠加半透明色块即可得到高亮引用图。完整的多语言示例与 sharp 高亮工作流可参考官方文档docs/src/content/docs/liteparse/guides/visual-citations.mdx。 关键源码与文档速查内容路径坐标/文本项/Rect 核心类型crates/liteparse/src/types.rs短语搜索与框合并算法crates/liteparse/src/search.rs布局块heading/table 等结构crates/liteparse/src/layout.rs行级投影行框、锚点对齐crates/liteparse/src/projection.rs视觉引用官方指南docs/src/content/docs/liteparse/guides/visual-citations.mdxOCR 服务端返回 bbox 的接口规范OCR_API_SPEC.md 最后提醒即使是纯 OCR 扫描件LiteParse 也会把 OCR 结果的bbox归一化进同一套坐标系配合confidence字段还能区分原生 PDF 文字与OCR 识别文字。掌握这些坐标规则你就拥有了在任意页面上精准指出任何一段文字的能力。【免费下载链接】liteparseA fast, helpful, and open-source document parser项目地址: https://gitcode.com/GitHub_Trending/li/liteparse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表