1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Layout Parser を Windows で使う方法

Last updated at Posted at 2024-10-12

Layout Parser とは

ドキュメント画像を分析して、レイアウト(ここはテキスト、ここは画像、のような感じ)を検出してくれるやつです。
https://github.com/Layout-Parser/layout-parser

この記事の位置づけ

Layout Parser をWindowsで使うのに、一筋縄ではいかない状態なのだが、その回避方法が断片的に散らばってたのでまとめてみる。
基本的なインストール方法は本家のここに書かれている。
Windowsへのインストールに関してはもごもごしている。

Layout Parserのインストール

LayoutParser ライブラリをインストールする

まずは、本体をインストール

pip install layoutparser

Detectron2 レイアウト モデル バックエンドをインストールする

このDetectoron2をwindowsにインストールするのを躓いている人が多い(俺も)。
以下のサイトを参考に進めた。

Install Cython and COCO Tools

pip install cython
pip install pycocotools

Install Detectron2

detectron2を落としてくる。

git clone https://github.com/facebookresearch/detectron2.git

コードの修正

detectron2/setup.pyの75~87行目あたりに以下を追記します。
(行番号は新しいバージョンでは変更される可能性があります)

        if not is_rocm_pytorch:
            define_macros += [("WITH_CUDA", None)]
            extra_compile_args["nvcc"] = [
                "-O3",
                "-DCUDA_HAS_FP16=1",
                "-D__CUDA_NO_HALF_OPERATORS__",
                "-D__CUDA_NO_HALF_CONVERSIONS__",
                "-D__CUDA_NO_HALF2_OPERATORS__",
                "-allow-unsupported-compiler",  # この行を追加
            ]
        else:
            define_macros += [("WITH_HIP", None)]
            extra_compile_args["nvcc"] = [
                "-allow-unsupported-compiler",  # この行を追加
            ]

detectron2/setup.pyの最後226~227行目あたりをコメントアウトする。
(行番号は新しいバージョンでは変更される可能性があります)

    # ext_modules=get_extensions(),
    # cmdclass={"build_ext": torch.utils.cpp_extension.BuildExtension},

インストールを実行する。

pip install -e detectron2

iopath を修正する

このままでは、モデルを読み込む際にエラーが発生する。原因はiopathというライブラリのようです。

iopathを落としてくる

git clone https://github.com/facebookresearch/iopath

コードの修正

iopath/iopath/common/file_io.pyの924行目あたりを書き換えます。
(行番号は新しいバージョンでは変更される可能性があります)

# filename = path.split("/")[-1]
filename = parsed_url.path.split("/")[-1] # 書き換え

インストールを実行する。

pip install -e iopath

OCR対応

tesseractをインストールする

最新のインストーラーをダウンロードしてきてインストールする。

layoutparser[ocr]をインストールする。

pip install layoutparser[ocr]

以下のサイトから言語ファイルを落としてくる。

日本語の場合、jpn.traineddataをダウンロードし、tesseractのインストールフォルダ(C:\Program Files\Tesseract-OCR\tessdata)に保存する。

以上

まとめ

コンパイラとかパスとか、OS依存なところはまだまだなかなかな感じですね。

「自分が問題にぶつかって解決に10分以上使った内容は記事にして書く」という教えに従って書いてみました。ここ最近、ChatGPT等のおかげで10分以上はまることが少なくなりましたが、この記事で誰かのためになれば嬉しいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?