LoginSignup
0
0

Layout Parser をWindowsで使う。

Last updated at Posted at 2023-11-26

1. Layout Parser

Layout Parserは、論文や新聞、書籍などのレイアウトを検出して「ここは本文、ここは図表」などを検出する機械学習モデルである。

2. Layout Parserのこまったところ

この記事にたどり着いたということは多分、「Windows OSを使っててLayoutParserをinstallできない」という困りごとに直面した人なのではないかと思う。従ってあまり多くは語らない(語れない)が、原因としては「LayoutParserに使われている検出部分のBackboneがDetectron2であり、Detectron2をWindowsOSにinstallするのが大変」ということに尽きると思う。LinuxOSを導入することをいとわなかったり、公式に書かれているようにVisual Studioを導入して~というやり方ができて解決した、という人ならばもうこの記事は読む必要はないと思う。

3. LayoutParserのinstall方法

結局、どんな方法で解決すればよいのか言うと、「Backboneをefficientdetにしたものをinstallする」である。
やり方はシンプルで、pipでinstallする際に
pip install "layoutparser[effdet]"
でinstallすればよい。公式には「WindowsでLayoutParserを使いたかったらこれを使ってください」みたいな記載はないため、結構わかりづらい…。efficientdetを導入しました、ということやそれのinstallのやり方は書いてあるのだが…。

3.2 追記。モデルのダウンロード先の設定

このままではモデル読み込みの際にエラーが発生し、モデルがインストールされない。そこで、以下の対処でモデルを読み込めるようにする。

https://github.com/facebookresearch/iopath.git --single-branch --branch v0.1.8

を実行し、iopathのファイルをcloneする。
その後、iopath/iopath/comman/file_io.py
の中の753行目の

filename=path.Split("/")[-1]

の部分を

filename=parsed_url.path.split("/")[-1]

へと変更する。

その後、

pip install -e iopath

を実行することで準備が完了する。参考

4. 他にやること

あとは基本的にやることは変わらない。モデルを設定して検出をするだけである。
ただ、モデルを設定する際に、Detectron2をbackboneにしていた場合は

test.py
pip install layoutparser as lp
model=lp.Detectron2LayoutModel(~~~

と記載していた部分を

test2.py
pip install layoutparser as lp
model=lp.EfficientDetLayoutModel(~~~

と記載する必要がある。

5.注意

一応注意事項としては、検出性能が、Detectron2をbackboneにした場合と異なることが挙げられる。性能が良くなるか悪くなるかは何とも言及できないが…。
Kaggleなどで利用したいときはどうなるのだろう?有利になるのか不利になるのか…?

6.まとめ

ということで、やや「逃げ」のような方法でLayoutParserをWindowsOSにinstallする方法を紹介した。
「どうしてもDetectron2をBackboneにしたい」という人以外の要望は満たせたのではないかと思う。

0
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
0
0