お茶漬けぶろぐ

ラノベデータベースを作る 〜OCR〜その2

ラノベデータベースを作る 〜OCR〜のつづき。

今回は画像のバリエーションを増やしてみる。

最初のサンプルはこちら。

[caption id=”attachment_131” align=”alignnone” width=”206”]OCRサンプル2。test2.png OCRサンプル2。test2.png[/caption]

コレは縦書きだ。

[caption id=”attachment_132” align=”alignnone” width=”206”]OCRサンプル3。test3.png OCRサンプル3。test3.png[/caption]

これがサッと思いついたちょっと難しそうな漢字。

[bash]
$ tesseract test2.png result -l jpn+eng -psm 5
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
$ cat result.txt
日本語
あいう
ABC

$ tesseract test3.png result -l jpn
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
$ cat result.txt
壱 鬱
[/bash]

縦書きの場合は -psm 5をオプションに入れればいいし、ちょっと難しそうな漢字も難無く読み取れるようだ。

それではこれはどうか。長めの文章だ。

[caption id=”attachment_134” align=”alignnone” width=”300”]OCRサンプル4。長めの文章。 OCRサンプル4。長めの文章。[/caption]

[bash]
$ tesseract test4.png result -l jpn
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
$ cat result.txt
手持ちのコ三ックスゃラノべのデ一タべ一スを作りたいと
思った時、 全部手作業で入カするにはだぃ,ぶ厳しい分冒が
ぁるので、 どうせなら` 背表紙が写るょぅに並べて撮影今
各本ごとの領域に切り分け今。cR今タィ トル/著者くらぃ
の情報を得て、 デ一タべ一スに放り込む、 みたいなシステ
ムを作りたぃと思ぅわけだ〟 その準備として、 まずは0cR
で文字が認識出来るかどうか、 取り敢ぇずで触ってみる〟
[/bash]

なんだか惜しいところが沢山ある。これを人間が読む分には別にこれでも良い気もするが、データベースに放り込む内容としてはかなり難がある。最悪、こうやって読み取ったデータを手作業でチェックしていってもいいけれど…

[caption id=”attachment_135” align=”alignnone” width=”300”]OCRサンプル5。サンプル4からの切り抜き。 OCRサンプル5。サンプル4からの切り抜き。[/caption]

1行だけ切り抜いてみると、次の通り。

[bash]
$ tesseract test5.png result -l jpn
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
[tea@teaarch ocr_test]$ cat result.txt
ぁるので どうせなら 背表紙が写るょうに並べて撮影今
[/bash]

比較すると、こういう感じだ。

ぁるので、 どうせなら` 背表紙が写るょぅに並べて撮影今 ぁるので` どうせなら` 背表紙が写るょうに並べて撮影今

大差無いっていうか、むしろ悪化している(前後の行がなくなったので、上下の位置関係がわかりにくくなった?)。

次は回転させてみよう。

[caption id=”attachment_136” align=”alignnone” width=”289”]OCRサンプル6。回転させた。 OCRサンプル6。10度回転させた。[/caption]

[bash]
$ tesseract test6.png result -l jpn+eng
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
Empty page!!
Empty page!!
[/bash]

ダメだ。-psmで少し条件を変えてみたけど、7,6,4の時は拾えたけど、あとはやっぱりダメ。文字が少なすぎるか、回転させすぎかな?

[caption id=”attachment_144” align=”alignnone” width=”289”]OCRサンプル7。回転量を減らした OCRサンプル7。回転量を減らした[/caption]

[bash]
$ tesseract test7.png result -l jpn+eng -psm 1
Tesseract Open Source OCR Engine v3.04.00 with Leptonica
Too few characters. Skipping this page
OSD: Weak margin (0.00) for 10 blob text block, but using orientation anyway: 0
[tea@teaarch ocr_test]$ cat result.txt
ABC123 あいうえお!
[/bash]

殆ど回転してないようにも見えるけど、要はほんの少しの傾きならなんとかなるという事だ。ちなみに-psm 1入れなくても同じ結果になった。オプションよくわからん。

正確に(傾き無く)切り出せる事、読み取りミスをなんとか吸収出来る事、がラノベデータベースにおける必要条件だな。

< monacoin-qtがエラー落ち

俺々プールをさくっと構築するスクリプト >