フォロー

なんというか、日曜大工的なプログラミングでも、プログラミングという仕事自体がアジャイル的なんだというのは理解できる。

設計するというよりも、自分が把握できてテスト可能なパーツを作って、それを組み合わせて機能を増やしていって結果的に欲しいものに辿り着く感じが。

まあ日曜大工に計画はいらないんだけど。

· · Tootle for Mastodon · 1 · 0 · 1

@clementia1960
今回は、自炊した本の検品するのだるいな(ページ欠落やページ順番違いがないかどうかチェックする作業)と思ったので、

「ページ右端だけにOCRかけたらページ番号だけ抜けないか? それが昇順かどうかだけ検証したらよくない」という思いつきから始まった。

まずtesseractのライブラリで画像OCRを試す

pdf2imageで50ページくらいのPDFにもためしてみる。連番+各ページのテキストが50組できる。

画像トリミング。範囲は勘で縦20%、横20%。

トリミング範囲をチューニング

うまくページ番号を取り出せるようになってきたら、数値以外を弾くようなフィルタを作る。配列に入れてprintしてみる。

いけそうなので昇順かどうかを検証するコードを書く

...みたいな。

Pythonだから大量ファイルの処理まで考えると、遅そうではある。

@clementia1960 その後のオチ。自動検品プログラムは、20冊を大体45分くらいで処理してくれた(遅いが家事をしてればいいので許容範囲)。

しかし1)ページ番号がある場所がまちまち、2)そもそもOCRの精度に結構限界がある、という感じであまりら使えるものはできなかった。

1)はいっそパターンの数だけ処理を繰り返せばいいだけだとは思う。
2)は調べたり勉強したりして、前処理などで精度改善か。

プラス速度改善もやってみよう。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。