スキップしてメイン コンテンツに移動

Google Cloud、Microsoft Azure、Tesseract.js のOCR機能対決をやってみた

はじめに

果的に Google Cloud の VISION API (画像認識) の OCR機能が凄かった件の話です。

回は、
JavaScript だけで 文字認識できる「Tesseract.js」と、
Google Cloud の VISION API、
Microsoft Azure の Computer Vision のOCR機能を比較してみます。

1つめの画像

「Tesseract.js」の公式サイトにある、サンプル画像です。

enter image description here

「Tesseract.js」の結果

Mild Splendour of the various-vested Night! 
Mother of Wildly-working visions! haill I watch thy gliding, 
while with watery light Thy weak eye glimmers through a fleecy veil; 
And when thou lovest thy pale orb to shroud Behind the gather’d blackness 
lost on high; And when thou dartest from the wind-rent 
cloud Thy placid lightning o’er the awaken’d sky.

「Microsoft Azure Computer Vision」の結果

Mild Splendour of the various-vested Night!
Mother of wildly-working visions! hail!
I watch thy gliding, while with watery light
Thy weak eye glimmers through a fleecy veil;
And when thou lovest thy pale orb to shroud
Behind the gather'd blackness lost on high;
And when thou dartest from the wind-rent cloud
Thy placid lightning o'er the awaken'd sky.

「Google Cloud VISION API」の結果

Mild Splendour of the various-vested Night!
Mother of wildly-working visions! hail! I watch thy gliding, while with watery light
Thy weak eye glimmers through a fleecy veil; And when thou lovest thy pale orb to shroud
Behind the gather'd blackness lost on high; And when thou dartest from the wind-rent cloud
Thy placid lightning o'er the awaken'd sky.

共に問題なく認識されました!!(みんな引き分け)

2つめの画像

enter image description here

「Tesseract.js」の結果 (何が起きた??)

| V n9"a \ Ge ofi‘ice I post , w“ .4, 5 PM PM” 13‘ ‘ ‘ ‘ , m l 71W l Level 3 $5 hm ' “mam é?" ‘ Level 1 ' ‘5: D‘paflmnnl «Training and ,7 H' E Workiwu Dwalopmnnt X», : Bummer Smile- Cenh % - K .314“

「Microsoft Azure Computer Vision」の結果

General
Post Office
3 Forrest Place
Level 3
Metropolitan
Redevelopment Authority
Level 7
Department of Training and
Workforce Development
Customer Service Centre

「Google Cloud VISION API」の結果

General Post Office
3 Forrest Place
Level 3
Metropolitan Redevelopment Authority
Level 7 Department of Training and Workforce Development Customer Service Centre

平面ではなく、奥行きがある文字は Tesseract.js は苦手みたいです
Microsoft Azure、Google Cloud は完璧です。
(ここは改行位置が完璧な Microsoft Azure が勝利)

3つめの画像(日本語)

enter image description here

「Tesseract.js」の結果 (まぁある程度認識している)

タ  イ  ポ  グ  ラ  フ  ィ 美Lく文字を組む 初醜状惠〟ヵ夕ヵナ、平仮名が闇いて入ヵされ、
漬宇か艦まっている タイポグラフイ 美しく文字を組む ー文宇すつ闔整した例〝  〝 
ソフ卜ウェアの数値に左右されす`視覚たけ雄置を讀肇している 図=文宇粗のサンブル

「Microsoft Azure Computer Vision」の結果(AIに何が起きた?)

1:X5180+>JJ

「Google Cloud VISION API」の結果

タイポグラフィ 美しく文字を組む
初期状態。カタカナ、平仮名が開いて入力され、漢字が詰まっている
タイポグラフィ 美しく文字を組む
1文字ずつ調整した例。 ソフトウェアの数値に左右されず、視覚だけで位置を調整している
図1:文字組のサンプル

なぜか Microsoft Azure はまったく認識されませんでした
Tesseract.js は一部読めてました。
Google Cloud さんは恐ろしいくらい完璧です。(Google Cloudの勝ち)

4つめの画像(カタカナの手書き)

enter image description here

「Tesseract.js」の結果 (ブ??)

ブ、

「Microsoft Azure Computer Vision」の結果(ギブアップされました)

画像内で単語を検出できませんでした。

「Google Cloud VISION API」

ダイエット

ここでも、Google Cloud さんは恐ろしいくらい完璧です。(Google Cloudの勝ち)

5つめの画像(英語の手書き)

enter image description here

「Tesseract.js」の結果 (ん〜)

而AN  k  Ynu FDr  〔Dm垢日

「Microsoft Azure Computer Vision」の結果(またギブアップされました)

画像内で単語を検出できませんでした。

「Google Cloud VISION API」

THANK YOU For Coming

またまた、Google Cloud さんは完璧です。(Google Cloudの勝ち)

最後に

結果は、いずれの画像も完璧に認識してくれた Google Cloud さんの完全勝利でした。
恐ろしい認識力ですね!!

スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント

このブログの人気の投稿

axiosの使い方まとめ (GET/POST/例外処理)

axiosの使い方まとめ (GET/POST/例外処理)最近何かとよく使うJavaScriptでAJAX通信を行うaxiosについて、簡単に使い方をまとめました。GETリクエストをaxiosで送るまずはGETリクエストをaxiosで送る方法です。const res =await axios.get('/users') console.log(res.data)分割代入の記法を使うと、以下のようにも書けますconst{data}=await axios.get('/users') console.log(data)クエリパラメータ (URLパラメータ)を指定クエリパラメータを指定する方法は2つあります。1つ目は、axios.getに指定するURLに直接記述する方法です。axios.get('/user?id=123')2つめは、axios.getの第2引数に、オプション指定する方法です。axios.get('/user',{ params:{ id:123}})POSTリクエストをaxiosで送る次はPOSTリクエストをaxiosで送る方法です。JSON形式でPOSTするJSON形式でPOSTする場合は、axios.postの第2引数に、送信するデータをJavaScriptオブジェクトで指定します。const res =await axios.post('/user',{ id:123, name:'Yamada Tarou'})application/x-www-form-urlencoded形式でPOSTするapplication/x-www-form-urlencoded形式でPOSTする場合は、URLSearchParamsを使います。var params =newURLSearchParams() params.append('id',123) params.append('name','Yamada Tarou')const res =await axios.post('/user', params)axios でファイルをアップロードする画像などのファイルを、axiosでアッ…

[VB, C#] Windows 8, Window 10 で ImeModeが制御できない問題を解決する

[VB, C#] Windows 8, Window 10 で ImeModeが制御できない問題を解決するタイトルの通りですが、Windows 8 以降では Windows Form アプリケーションで、コントロールの ImeMode に Katakana や KatakanaHalf を設定しても、カタカナになってくれません。なぜ ImeMode が効かないのか?Windows 8 以降、IME Mode の切り替えは、ユーザー単位で切り替わるようになった為、アプリから IME Mode 制御が出来ないようになりました。
(IME をON にした場合、常に ひらがな モードになます)※ Windows 7までは、IME Modeの切り替えはアプリ単位で行われていた為、問題なくアプリから IME制御が行えました。対処方法Windows 8 以降、IMEの制御は、InputScope クラスの利用が推奨されています。
しかし、InputScope クラスは、WPF、Windows ストアアプリでしか使えない為、Windows Formアプリでは使用できません。
(Windows Form はもう使うな!という事でしょうか (涙) )結論としては、コントールパネルの設定で、IMEの制御をユーザ単位から アプリ単位に変更する事ができます。
これで、Windows Formアプリでも 従来通りIMEの制御を行う事が出来ます。おわりにこの方法だと、アプリをインストールする端末すべてに設定が必要となり、とっても面倒です。。。
しかし、今の所これしか方法がない状態です。
これからは Windows Formではなく、WPFや Windows ストアアプリで作れという事ですかね (^^;)

MailKitの使い方! エンコーディング指定や添付ファイをメールで送信する方法[C#/VB Tips]

MailKitの使い方! エンコーディング指定や添付ファイをメールで送信する方法[C#/VB Tips]MailKitを使ってメールを送るサンプルコードです。(C#)UTF8/iso-2022-jpのエンコーディング指定、GMail/YahooのSMTPサーバで送るなど、4つのサンプルコードでMailKitの使い方を紹介します。MailKitって何?2017年に.NET標準のSystem.Net.Mail.SmtpClientが廃止予定となり、Microsoftより今後はオープンソースライブラリである、MailKitに置き換えるとアナウンスがありました。既にSmtpClientは非推奨になっており、今後は廃止されていきます。現在、SmtpClientを使用したソースコードには、Visual StudioからMailKitを使うよう警告が出るようになっています。さっそく、MailKitを使ってメールを送信するサンプルコードを作っていきます。UTF8でメールを送信文字エンコーディングを、UTF8でメールを送信するサンプルコードです。
MailKitは、デフォルトの文字エンコーディングがUTF8なっている為、シンプルなコードでメールを送信する事ができます。var host ="<smtp server name>"; var port =25;// or 587using(var smtp =new MailKit.Net.Smtp.SmtpClient()){//SMTPサーバに接続する smtp.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);//認証が必要な場合は、以下のコメントを解除//smtp.Authenticate("<id>", "<password>");//送信するメールを作成する var mail =new MimeKit.MimeMessage(); var builder =new MimeKit.BodyBuilder(); mail.From.Add(new MimeKit.MailboxAddress("",&quo…