# Layout Parser 介紹 ## Git 專案資訊 ### 專案名稱與連結(GitHub URL) [Layout Parser](https://github.com/Layout-Parser/layout-parser) ### 專案定位 Layout Parser 的目標是建立一個統一、開放且易於擴充的框架,讓文件圖像分析(Document Image Analysis)成為一個標準化的研究與應用流程。 ### 專案用途 文件圖像分析的流程主要有以下步驟: 1. Preprocessing 2. Layout Detection 3. Character Recognition 4. Postprocessing 5. Storage 各步驟都需要使用各種 Model,難以整合,開發不便,使用不易 而 Layout parser 做了以下整合 - Layout Detection - 提供 11 個 pre-trained Model - 主要是 `faster_rcnn`、`mask_rcnn`、`retinanet`,他們分別用 6 個 dataset 去 train 這 3 種架構,當作 11 個不同的 Model - HJDataset:日文歷史文件 - PubLayNet:期刊、預印本 - PrimaLayout:當代文件、主要是雜誌、科學刊物 - Newspaper Navigator:報紙(Chronicling America) - TableBank:各種文件上的表格 - Math Formula Detection(MFD):數學式子 - 支援 3 種 backend - Detectron2 - EfficientDet - PaddleDetection - Character Recognition:提供兩種 OCR 引擎的 API(不含引擎本身) - Postprocessing:將不同 Model 辨識出的文件布局格式整合為統一的 Layout 物件,並提供方便的視覺化函式,以及基於各區塊位置訊息的操作(選取、分組...等) - Layout:基本上就是 block 的 list - block:基本上就是個 dict,代表著 Model 辨識出來的一個區塊,紀錄位置、Type、score 等資訊 - Storage:雖未提供直接將 Layout 物件導出的函式,但有將 Dataframe(pandas)、dict、CSV、JSON 格式的 Layout 資料轉成 Layout 物件的函式,且因為 Layout 物件繼承自 List,要存成上述格式不困難。 ### 特色 - 使用簡單:把各種 Model 跟 OCI 統一成 Layout Parser 自己的 API,只需要 `pip install layoutparser` 就能用(但 Model 跟 OCR 要額外弄) - 多功能:提供多種函式 - 可客製化 - 可擴充:官方提供的 Layout 辨識 Model 與 OCR 引擎選項有限,可以根據它的 code 實作一個相同介面的 class 去串接自己的模型 - open platform:官方有個 [Layout Models & Pipelines Sharing Platform](https://layout-parser.github.io/platform/) 可以讓人上傳 Model,但上面只有 2021 年官方上傳的東西而已 ### 作者/維護者與更新時間 Layout Parser 是一個由研究者發起、由開源社群維護的專案。 論文作者 Zejiang Shen, Ruochen Zhang, Melissa Dell, Benjamin Charles Germain Lee, Jacob Carlson & Weining Li Github repo 上次更新時間:Apr 6, 2022 ### 專案整體印象 Layout Parser 本身主要是把文件辨識流程的一些工具整合起來,讓人可以透過統一的介面進行操作,不過疏於維護,也沒在更新了(latest commit: 3 years ago),且模型選項有限,雖然我沒有實際單獨分開使用過它包起來的那些工具,所以不確定 Layout Parser 幫忙省了多少事,不知道會不會不如自己串一串還比較有彈性。