Google製OCRライブラリの「Tesseract」をEmscriptenでラップした「Tesseract.js」で日本語OCR試してみる
OCRしたい場合どうするんやろ? OSSで日本語対応してるやつあるんか?
↓
TesseractっていうGoogle製のOCRライブラリがあるんか!
Webブラウザで動作するようなJavaScriptのOCRライブラリはあるんかな?
↓
Tesseract.jsってまんまなJavaScriptライブラリあるやんけ!
精度どんなもんやろか? ← イマココ
タイトルの「Emscripten」はC/C++をJavaScriptに変換できるような奴(雑)
環境構築(雑)
適当にディレクトリ作ってコマンド叩く。
npm install tesseract.js
適当にindex.jsとかファイル作ってExampleをコピペしてjpnに書き換える。
日本語の文字列が書かれてるimage.pngを用意して、以下のコマンドを叩く。
node index.js
これでコンソール上に画像の日本語が文字列として取得できるはず。
試してみた
image.pngを差し替えてコマンドを叩く手作業を繰り返す。
まず用意したのはこの画像。
文字小さめ、そこそこ長文といきなりハードモード。
結果
A は 外 と う て D こ の i⑧m 人 と と も に の の e で あ り な たh。
ま る ま ま が 訣 送 ヘ は ま も い ゎ り る せ だ ま せ と も が ふ ら ら し て な
ぅ ぅ に ikRSu な か
電 捨 に ょ し で す な け れ
な い 。 ⑤ ゃ ろ ④ 百 さ ん に 恐 ゅ S ん S か R が し た ⑧ オ ェ の る 映 思 ら か ー& に と h ぅ
ち Rin ん ま す で た か し こ の 定 危 ご ち ち ⑤00 る ま 長 に な る か ら 、 睦 き ん の 事 に の
れ そ か ご ち ら と 肋 い て れ m ほ に ち ち C に 田 す ょ う に も し 入 栄 き に す る た ら い と さ
ぞ ょ う ゃ く ① ち り た か ら 呂 っ ヱ し ょ の に な り た で す 。
だ か ら っ ま り ご ほ を 気 に ス る の も ま す ま す 湯 と 信 じ る り て 、 そ の B カ が は 栄 き っ
😇
俺が悪かった。
次に用意したのはこの画像。
文字を大きく、短く。
結果
本 日 天 気 晴 朗 ナ レ ド モ 浪 高 シ
やりました👍
OCRっていうからには手書き文字対応して欲しいよねってことで次はこれ。
もちろん素直に読み込ませる気はなく、縦。
結果
覇
目 。 ⑤
国 メ
國 ま ) M
0 惧 _
国
睡 に
目
この画像を読み込ませられるTesseractの気持ちも大事だけど、この文字列をnoteに貼る俺の気持ちにもなって欲しい。
気を取り直して画像の向きを正しくする。
結果
ト a 綱 梨 梨 梨 梨 絵 綱 栄
愛 す に ミ ミ ス
目 _ 陸 ふ ヒ ュ ッ リ - 瞥
俺は悪くなかった。
ちょっとムキになってこの画像を正しく認識させたくなってきた。
トリミングして、白黒にして、明瞭度弄った。全部Windows標準機能さ!
結果
惧 号 に ミ ミ ネ ス
ー
メアリーどこいったんや……。
そうだ1文字ずつ細切れにしてやろう。
結果
寝
『
峠
ー
ー
ヽ
ー
ズ`
「寝」が出たときはこれでいけると思ったんですがね。
分かったこと
気軽にOCRを実装できる。
CDN版もあるのでNode.js要らずに試せる。
文字の大きさ、明瞭さは超重要。
画像の上下左右は正規化してから読み込ませる必要がある。
人間の認識能力はすごい。
あとがき
この「寝耳にミミズ 障子にメアリー画像」はパブリックドメインにしておくので、我こそはという方は挑戦してみてください。
😉