見出し画像

国会図書館デジタルコレクションをOCRする

国会図書館デジタルコレクションは、利用者登録することで複写サービスが必要な一部の資料を、Web上で複写(閲覧)することができます。

資料は印刷することができ、不正利用防止の透かしなどが入った状態でpdf変換されてダウンロードすることが可能です。

PDFを画像に変換する際のdpi

bunkoOCRでは、pdfを画像として変換しOCRをかけていますが、PDFの解像度dpiを指定して画像としての仕上がりpixelサイズを指定します。このときの数値が、100dpi付近がdot by dotになっているのではと思います。

300dpiだとbunkoOCRで失敗する

現在改良中のbunkoOCRのエンジンで、国会図書館デジタルコレクションから適当に選んだ資料をOCRしてみました。このときPDF->PNGに変換する際に300dpiとしました。

大衆文学大系 27 (角田喜久雄,山手樹一郎,村雨退二郎)
コマ番号8の一部を抜粋
OCR結果

縄の文字がOCRに失敗していることが分かります。
きれいに見えるのにどうしてだろう、とよく拡大してみると。

縄の部分を拡大
ピクセルが分かるほど拡大

元々の1pixelが、どうやら3pixel程度に拡大されてしまっているようです。

findtextCenterNet(bunkoOCRのエンジン)の学習データの与え方

OCRエンジンを学習する際、色々なサイズで認識できるように画像を拡大縮小や、傾けたり歪めたり、ノイズを与えたりぼかしたり、変形して入力させています。

ランダム生成した文字から作った学習画像の例
学習画像の学習用パラメータを図示したところ

このとき、画像の拡大縮小に、バイリニア変換を使っています。元のピクセルサイズと変換先が違うときに、ガタガタのエッジになってはいけないので、間の値で補完するようにする変換です。

つまり、bunkoOCRは、ドットがガタガタのエッジの文字で学習していなかったということです。

100dpi相当に変換してOCRしてみる

同じエンジンで、先程の画像を1/3に縮小変換したものを、x3で読み込んでOCRしてみます。

1/3に縮小した画像
OCR結果(1/3に縮小した画像を3倍に拡大して入力)

先程失敗した、縄の部分が成功しています。

縄の部分を拡大
ピクセルが分かるほど拡大

ピクセルサイズまで拡大すると、先程の画像で見られたブロックで拡大されている現象が、ピクセルサイズまで小さくできていることが分かります。

現在の結論

国会図書館デジタルコレクションをbunkoOCRにかける際は、ピクセルサイズが等倍になるくらいのdpi(多分100dpiくらい)で変換し、出てきた画像で文字が50-100pixelに見えるようにリサイズをかけるとよさそう。

エッジが拡大でごつごつしているフォントが読めないのは、今後の宿題とさせてください。


いいなと思ったら応援しよう!