前書き

どうも、こんにちは

最近、副業をしたく身に付いている技術を活かしつつ、外国人である私にとって日常生活で困ってることをテーマにして何か改善できるものはないか考えたら時々読めない漢字が出たときアプリですぐ解決したいという考えてOCRについて調べました。

せっかくだから商用でも利用できるものでオープンソースであるEasyOCRPaddleOCRを見つけたので検証についてまとめました。

ちなみにTesseractについては言及しません。一通り触ったみたら使い勝手が良かったのですが性能は使い物にならないくらいよくなかったです😅

OCRとは?

OCR(Optical Character Recognition/Reader、オーシーアール、光学的文字認識)とは?手書きや印刷された文字を、イメージスキャナやデジタルカメラによって読みとり、コンピュータが利用できるデジタルの文字コードに変換する技術です。簡単に言うと写真を分析して写っている文字列を読み込むことができます。
まずEasyOCRから行きましょう。

EasyOCRとは?

80+ 言語をサポートをサポートしていてGithubのスター数も16.5kです。デモサイトからテストすることも可能です。タイトル通りに実際に使うのもすごく簡単で筆者はコマンドラインで検証しました。カスタムモデルとトレーニング方法も公開されている。2rd Generation Modelsのモデルサイズも14mb程度ですごく軽い、1st Generation Modelsが200mbのサイズに比べると飛躍的に発展した。

アルゴリズム/モデル

Detection: CRAFTなど

Recognition: ResNet, LSTM, CTC, Transformerなど

EasyOCRのサンプル例

アルゴリズム/モデル

Detection: EAST, DB, SAST, PSENet, FCENetなど

Text Recognition: CRNN, SRN, NRTR, SVTR, ABINetなど

PaddleOCRとは?

中国の検索大手 Baiduを中心に開発をしている中国語の最も優れる最新OCRです。EasyOCRと同じく80+言語をサポートしていていGithubのスター数は27.2kです。PP-OCRという自己開発ultra-lightweight OCRシステムを採用して20mb程度の軽いモデルも利用できるのが特徴です。プレトレーニング済みのモデル(Model ZOO)を利用していることを見て将来が明るい。

PaddleOCRのサンプル例

検証内容

  • 普通の大きさの文字
  • 小さい文字
  • 大きい文字
  • 斜めに描かれている文字
  • 書籍
  • 手書き文字
  • 前処理後

検証環境

共通

MacOS 11.7.2

EasyOCR

python 3.6.13
easyocr 1.6.2

PaddleOCR

python 3.9.5
paddle-bfloat 0.1.7
paddleocr 2.6.1.1
paddlepaddle 2.4.0

検証結果

普通の大きさの文字

WebやWordなどよく見かける普通の大きさのフォントを使った文字列の写真を検証しました。

EasyOCRの文字認識(1)

テキスト

文章の問題点をワンクリックで簡単チェック
田いいね
シエア
13
ツイート
1197
8+1
+54
Google でおすすめする
文章に言葉の間違いや不適切な表現が合まれていないか調べます
最終チェック時のあら探し
に最適なツールです。公開前納品前の校正作業にお役立てください。ブログの編集画面から
のチェックや IE8では画面上で範囲選釈した文字列のチェックも可能です。
文章を入力
最六工万宇まで。4千宇未満を推奨。 あまり多いと固まります。

出力時間

10.7秒

EasyOCRの文字認識(2)

テキスト

;大1万三まてとなります。
〔現在 64 文字入力しています。
日-から文章を青き
それをもとに収入を確保しているライターの方必見のサービスてす
記事に成後
文章構成を確認して納名する方は多いと思います。 この際
第三者:点て読むことが重受と言われ
ていますが なかなか難しいのも事実 ウェブ上にある校正支援ツールを使うと
自動河の町詞のテェックヤ淳
幸のテェックなども行ってくれます_
今回ご紹介する日本語構成サービスは
カスタマイズを遠して自分仕様の校正支援ツールを簡単に作ることがで
きる優れものてす。
サイトにアクセスして 構成したい文章をコピー&ペーストをするだけです。 一度に1万字まで構成可能です。
Yahoo!デベロッパーネットワークの校正支援A門を使用しています: 詩細はこちらをどうぞ:
https:developeryahooco-jplwebapiljlplkouseilvIlkousei-hitml
設定をカスタマイスする
川一二ざけニ にか
こi
三一語チニック

出力時間

19.1秒

PaddleOCRの文字認識(1)

テキスト

文章の問題点をワンクリックで簡単チェック
田いしいね!
三エア
デイ一ト
17
8+1
+54
でおすす助す号
立章言葉リ間違七下適可王表現力宮ま孔仁却カ調ます・最経手ェッコ時山市ち探
ニ最適なシ一ルです・公開前納品前山按正作業お役立亡ださし・ブ口号リ編集画面カム
リチェッコや
TE:では画面上て範囲選択した文子却山千ェコも可能です
文章を入力
昆六工五字まで:4千字未満茶推窪・市主山多.1と固ま山ます:
クリア

出力時間

8.8秒

PaddleOCRの文字認識(2)

テキスト

最大1万学までとなります
現在:4
立字行しています。
日頃力5立章を書き
それをもとに幅ユを確保しているライ多ーの方心見のサービスです
記事作成後、
文章構成を確認して納品する方は多いと思います。
この際、
第三者視点で読むことが重要と言われ
こいます方さ力さ力難しいのも事実。
ウェブ上にある校正支環ツールを使うと.
ヨ動的の町詞のチェックや菓
学のチェックさども行ってくれます
今回ご紹一する日本語構成十一ビスは
カス々マイズを通して自テ仕様の校正支環ッールを青単に作ることガで
きる優れものです
サイトにアクセスレて
構成したい立章をコピー8ペーストをする亡げです
一度に1万字まで構成可龍です
a山0!デベロッパーネットワークの校正支援門を使用レています。
詳細はこちらをどうぞ
Ittps.I I detelaperyahoo,co, ip tebapi ilp.
Kousei tl kgusei.htim!
コ設定をカス々マイズす
Ee bef”ires e’t
TA!–!
日本語チェック

出力時間

9.5秒

評価

EasyOCRは85点くらい。1枚目は「シェア」「最大」「1万文字」など少しだけご認識がある。2枚目は「最大」「日頃から」「視点」など文字数が多い分誤った判読も多い。

PaddleOCRは30点くらい全EasyOCRに比べて2倍早いが、全体的に誤認識が多すぎる。英数字や記号に誤読が多くて残念。これは話が見えないレベル。

小さい文字

解像度が低い画像の検証です。ネットでよくみる画像がより小さくて目視で判別も難しい。

検証用サンプル画像

EasyOCRの文字認識

テキスト

Enno

こウ

7
~

ロールロスフロリイア ニ川ミスリーアアエm
ヒイェックT
7
9_ @
ロタlのらか きすつ
(さボ スベースのエラー
Wゥりえりち止‥こちってらしとじ
り辺か:りゆのうりだ
7
7
lofrlttnn-ワ
そトて 入山の塩鼻ミス
ス子 け】こロドチミック
ッルにーこッ・わとこしうくここここつじして
fwo【せ川
‥う‥りしりsnryった‥こい
川 川のいり-‥りこし
I
田て
7-
一やー
IrWi四川りテ-
じこんどこすた・こいェしいゆりり”
5ハにアップグレードしょしこ;
‥山直
山-ト=
「nmyル
川せにりn
こっ山り?川川川こここ江
t川りnnいりゅひここきにこ
にロ
つんい:
ていりきにり
こうてらとりにしてらっり
フワー}
田島$』り・wい・」にアップクレートし
ート
Jyl-nluen
ルい-
み#川
しこまゥしュレト
つこりせいしいり
ごしここしらんこさりに
7_=
Nリロイトのクロこ・っじさじ朗5 -・りしこしこ
Tフ
~
さつりとこ 1川いい
すにコンクマー
クーさ記うし
sつさトこoとここうに
とnてにりりり口てりったいのとりてしな きりにい四しさ
してしに
つnntyに‥さり…-ゆい’こしとロタ山ル
フーマル・こルこロ‥
りつゆりミー川ー・・エラ
~二
イ川川’=ーりと:り川”ここ
Tトッ川け川v‥・
〈 ‥ル山
かつてこす
み一ア}

-川ー二
りこさりろここりこ
つりにこりにどふことu”いり
しり
川[
せ-に| 川t
上ー川町[
重町町
|
グゴ三フ
“o‥こ
・-k -ルー
~川田かしこいしす
一一つ –

“ち白に1
「めこり人じとり < こnsエ』えて
lyn:
町川;
に山山きnつす
一川クーロrーr
丁アしいロら
〈川g
たこりにう
うこうつこりこさ@にテ
ーーコーコーー・
りさん
さつ・セたPことにてこてに~
‥@山
ルワ
Atり1
たrrひきにりりうしいこいさ
クてuyz4』
回 こいし‥しいきじ‥
そ川り辺ル -7adり
t n ;
〈t ワ
田りすり#にきく~そい』
ういいに
山口

出力時間

30.6秒

PaddleOCRの文字認識

テキスト

日本置中号南母さ本中工ラ一中イ市
ユューエ山エラー

出力時間

6.3秒

評価

あまり期待しなかったとはいえ両方とも絶望的な結果ですが、かなり違う結果が出ました。EasyOCRは10点かな。。頑張って解析しようとしたけど残念な結果で全然あってません。一方でPaddleOCR5点くらいかな。。くぅ〜厳しいごく僅かしか分析できなかった。

大きい文字

主に広告やポスターなど用いられる大きい文字の検証です。

検証用サンプル画像

EasyOCRの文字認識

テキスト

正確な情報を
読者に信頼される
わかりやすい言葉で伝える
誤字脱字のない
文章に整えます
文章校正
正しい・読みやすい・わかりやすい
文章づくりのお手伝いをします
WEBページ
各種飛子・ 教科書など
どんな嫌体でも承ります

出力時間

11.7秒

PaddleOCRの文字認識

テキスト

正確な情報を
続者に信頼される
わかりやすい言葉で伝える
誤字脱字のない
文章に整えます
文章校正
正しい・
読みやすい・わかりやすい
文章づくりのお手伝いをします
WEBペ一ジ・各種冊子・教科書なと
どんな媒体でも承ります

出力時間

4.5秒

評価

EasyOCRは「冊」の文字以外全て合ってますね。95点👏

PaddleOCRは冊子も含む100%合ってます。素晴らしい。100点

やはい文字が大きいと判定しやすくなりますね。これはOCRに限らずイメージ認識全般の話ではあります。

斜めに描かれている文字

斜めに傾いている文字を判定する検証です。撮った写真を真っ直ぐに補正せずどれくらい精度がでるのか?

検証用サンプル画像

EasyOCRの文字認識(1)

テキスト

0

@
店内、

お願い
敷地内共に禁煙とさせていただいておりますと


留一
接帯電話の通話はご遠虚 < ださい。
8
欲食物の持込みはご達廣
お子杖の取順はお
うどん以外の写真擬影はこ達廣
一人につきー
ください
一つとさせていただきますま
中学生以上のお客機はお一人機一つ
お願いいたします
くださ…=
温かいお茶はセルフサービスときせていただい-
おります。
うどんの注さ
牛Mが熟持ち上
お町ごしぃただけ」
すょう上うし
1ia

出力時間

12.9秒

EasyOCRの文字認識(2)

テキスト

PCN
る。
~
価し諏定のお知ら世
時下ますますご清栄のこととお慶び申し上けま
厚く御礼申し上け
お得意様各位のご期待に
製品価格を堰え置いて
平素は格別のお引き立てを腸り
原料の杉
もはや企業勢ナ
唯今の諸資材
のは因難な事態と
幣社におきましては
経営の合理化を図り一
拝啓
しかしながら
O月O日
値上げその他経費の京
釘させていただくこ
ます。
さて
ながらF
添うべく
まいりました。
価格のル
賢察の上
略儀な力

出力時間

12.7秒

PaddleOCRの文字認識(1)

テキスト

店内、
救地内共に禁煙とさせていただいてちります
携帯電話の踊話はご式慮ください
飲食物の持入るはご違蔵くなさい
お子様の取血はお一人につき一つとさせていただきます。
どん以外のテ真採影はご達成くたさい
お頃いいたします。
ちります。

出力時間

6.7秒

PaddleOCRの文字認識(2)

テキスト

厚く御礼申し上け
P-CN
価格改定のお知らせ
すご清栄のこととお慶び申し上げま
原料の
お得意様各位のご期待に
製品価格を据え置いて
やつ
もはや企業努)
昨今の諸資材、
拝啓
平素は格別のお引き立てを賜り
は困難な事態
弊社におきまし
ます
経営の合理化を図り
しかしながら
0月0日
ながら
添うべく
その他経費の
まいリました。
上げ
価格の水
打させていただく
察の上、
略儀なか

出力時間

12.7秒

評価

EasyOCRは80点くらい程度。「ください」のくが記号になったりぼやけてる文字が判別できなかったりですね。

PaddleOCRは相変わらずひらがなやカタカナに弱い。70点くらい程度。

書籍

ネット上に転がっている本の写真です。著作権など問題があるかもしれないので1枚だけ判定してみます。

検証用サンプル画像

EasyOCRの文字認識

テキスト

言葉を
菜の文指ラ動なやてくするためには
「指標」
さらに、
ている。 その結果
れが出てきている。 このよう

かねない。
大きな責任がある。 なぜならば
原因だからである。 したがって
でいかなければならない。
1貴
「指標」
奥ほ_高くうないて津あ@おえうう軸F醐町|
GC
設問
次の文章には 「指標」 がない。
@この鼻の目町
読み手の理解が容易になるような文貨に青きdおz6
~
山理前的な文鼻に*
ワープロで打った手紙は事務的だが
e又末表唄以かでし
丙鹿h~
言われるな そうかもしれない。
手書きの手紙は時間おかが:
文鼻を書きじのる腐}
にならない。 事務的に見えるかもしれないが
さ」 (丁寧体) と 「で$
奉薫では待に 「であ
書くことができる。
ワープロの手紙がよ
くないと言うのはし
恵する弘雲のあるこ_
@この章を学
としてたてればよい。
たとえッ、
地球ては年々炭酸カスか増加し
がのい
炭酸ガスの増加は地珠上の気温を
藤性雨
なゆらき
海面は上昇し
上りきせ
しなき
標高の低い上地は動 :
な状湿の悪化は
確かに地球現境を守るのは会メ預の義砂であえり
地珠を人橋 *
炭酸ガスは先港国の自動)
先進国が率先し
て地斗フ町;
は文章を読み進めようとする読み手の理解を助け;
1るにけ
第二文以降の各文の初駅
手書きの手紙には心お:
ルぽう
ワープロなら
いじ
したかって

出力時間

25.7秒

PaddleOCRの文字認識

テキスト

言報を

さらに、
かねない。
1葉
指標

設問
次の文章には
指標
がない。
間に
にならない。
本音では特に
急でる地要前ある?
0この章を学

出力時間

5.9秒

評価

EasyOCRは70点くらい。文字が書いてるところの判定はほぼ正しかったが正しく判定できなかったところも多い印象

PaddleOCRは10点くらい。判定された文字列はほぼ正しかったが、判定されなかった文字が多すぎる。大抵の場合Paddleの方が少し出力時間と結果が良かったが、本の判定に弱いかも。

手書き文字

OCRにとって欠かせないですね。外国人である僕も読めない字を見たときにOCRで判読したことありますw

僕の字は外国人なため自然ではないのでネットで探した画像を使って検証します。

検証用サンプル画像

EasyOCRの文字認識(1)

テキスト

!
化.様だヶ達越ヶかがる行尚は
ご達彪く:.
ょでEri”路二
郎追信もくは清擬資1乃円‥「だきお
一気のカなどとわぎだぃお
C鴨働をひえxび:
いつもご利用ありがとうござあ
一気のコ-ル禁止

出力時間

83.4秒

EasyOCRの文字認識(2)

テキスト

紫表示価格は税抜 =価格でき
寿司屋がi歯磯う事 ! (親方ょりポッー
ッい】
!
特に…
:麓完嫌
まぶ語すえらと護しかけるあ
泥酔されているち
孝眠はsぐなぶな_?トのは勇
1
みらじこた之いただけ|さ,
ぎをうずやたぼきすす 、
楽しい時間を管様で。
美味しいお寿司と

出力時間

17.2秒

EasyOCRの文字認識(3)

テキスト

あ客様各位
あ気付きのちかにせいまびたら
とんなトさな事ても我ルに下さい。

持又
雨肇
e

出力時間

9.4秒

PaddleOCRの文字認識(1)

テキスト

コーレ禁上
一気の
セのあ客様は来みかかる行おむ
ご重忘ください。
店内
1F円.
もしくは着存賢
野県店
一気のクよとせホギたいカは

中キ店
モオススメします!
いつもごギ用ありがたうさします

出力時間

5.0秒

PaddleOCRの文字認識(2)

テキスト


老ふのいも
とまてまちすも
子メ難がのがはも。
美味しいお考司
楽しい鴟間をモ様て

出力時間

7.15秒

PaddleOCRの文字認識(3)

テキスト

お案栄名位
お気付きのよがいび
まは$
ごんな小な手
店主

出力時間

3.4秒

評価

画像を見て面白いと感じました。まずEasyOCRの1枚目の出力時間が83.4秒もかかったのか不思議ですね。やはり手書きは厳しいか人によって書き方も異なるし筆記体も異なります。30点くらい。
PaddleOCRはもっと判読結果がよくなかった。くぅ〜厳しい15点くらい。良かったポイントは処理時間だけですね。

前処理(プリプロセス)後

前処理とは画像から文字を判別しやすく画像に加工処理を追加する工程のことでその後判読しました。

openCVで画像サイズの変更、画像のしきい値処理、モルフォロジー変換などです。

検証用サンプル画像

EasyOCRの文字認識

テキスト

最大1万字までとなります。
現在 664 文字入力しています。 )
日頃から文章を青き
それをもとに収入を確保しているライターの方必見のサーピスです。
記事作成後
文章構成を確認して納品する方は多いと思います。
この際_
第三者視点で読むことが重夏と言われ
ていますが なかなか難しいのも事実。
ウェブ上にある校正支接ツールを使うと
自動的の助詞のチェックや漢
字のチェックなども行ってくれます。
今回ご紹介する日本語構成サーピスは
カスタマイズを通して自分仕様の校正支援ツールを簡単に作ることがで
きる優れものです。
サイトにアクセスして
構成したい文章をコピー&ペーストをするだけです。 一度に1万字まで構成可能です。
Yahoo:デベロッパーネットワークの校正支援APを使用しています。 詩細はこちらをどうぞ。
https:lldeveloperyahoo.cojplwebapililplkouseilvllkouseihtml
四四8図〉
rggl
設足をカスタマイズする
T
日本語チェック

出力時間

86.8秒

PaddleOCRの文字認識

テキスト

現在664
最大1方字までとなります。
文字入力しています。
日頃から文章を書き、
それをもとに収入を確保しているライターの方必見のサービスです
記事作成後、
文章構成を確認して納品する方は多いと思います。
この際、
第三者視点で読むことが重要と言われ
こいますが、なかなか難しいのも事実。
ウェブ上にある校正支援ツールを使うと・
自動的の助詞のチェックや菓
字のチェックなピも行ってくれます。
今回ご紹介する日本語構成サーピスは、
カスタマイズを通して自分仕様の校正支援ツールを簡単に作ることがで
きる優れものです
サイトにアクセスして、
構成したい文章をコピー&ペーストをするだはです。
一度に1万字まで構成可能です
аh00!デベロッパーネットワークの校正支援APIを使用レています。
詳細はこちらをどうぞ
Https:I I developer.yahoo.co.jipI webapi/lpI kousei/vlI kousei.htm!
ロ設定をカス々マイズする
日本語チェック

出力時間

10.8秒

評価

一部の例ですが、改善されました。上部の普通の大きさの検証と比べてみます。

EasyOCRは80点くらいだった評価が95点近くなりました。正しく判読できなかった「最大」「664」「日頃」「視点」「自動的」などが正しく判読できました。かなり改善されましたね。

PaddleOCRもかなり改善されました。50点くらいだった評価が90点くらいになりました。改善ポイントは「664」「文字入力」「日頃から文章を書き」「収入を確保」「自動的」「ご紹介」「文章」「&」など前処理はやはり重要であることがわかりました。

総評

評価基準はメイン基準で処理時間判読結果の質を、サブ基準で多言語の対応、アルゴリズムアクティビティなどを考えました。

結論から言うと一番大きい基準である二つは処理時間の速さはPaddleOCR正確さはEasyOCRでした。サブ基準は大きくないが今すぐ良いものを使いたいと言う方はEasyOCR。将来的に良くなりそうものを使いたい方はPaddleOCRです。本文には載せてないが、英語と韓国語も検証して日本語とほぼ同じ結果を得られました。

ユースケースやシナリオによって使い分けもありだと思います。

前処理の処理時間は含んでませんが、PaddleOCRは前処理をすることで精度がぐっと上がるケースもあるため、理想で言うと前処理 + PaddleOCRですね。

EasyOCR PaddleOCR
処理時間 ×
正確さ
多国語の対応
アルゴリズム数
アクティビティ