AzureのComputer VisionとPowerToysのText ExtractorのOCR結果を比較してみた

# 前置き
以前、PowerToysのText Extractorで画像からテキストを抽出してみたのですが、精度があまり良くなかったです。
そこで、AzureのComputer VisionとPowerToysのText ExtractorでOCRの結果を比較してみました。

# PowerToysとComputer Visionについて
簡単にPowerToysとComputer Visionの解説をします。

## PowerToysとは？
詳細は以下のサイトに記載されています。

https://learn.microsoft.com/ja-jp/windows/powertoys/

PowerToysとは、パワー ユーザーが Windows エクスペリエンスを調整および合理化して生産性を向上させるためのユーティリティセットです。
今回、使用するText Extractor以外にも便利な機能がたくさんあります。

## Computer Visionとは？
詳細は以下のサイトに記載されています。

https://azure.microsoft.com/ja-jp/products/cognitive-services/computer-vision

AzureのComputer Visionは、今回使用するテキスト抽出(OCR)以外にも下記の用途があります。
1. イメージ分類：画像や動画に写っているモノの種類を推測する。例えば、メロン、本といったように推測する。
1. 物体検出：写っているモノの種類を予測し、長方形の枠でどこに写っているか示す。
1. セマンティックセグメンテーション：物体検出と似た機能であるが、長方形の枠で囲まず、マスクと呼ばれているレイヤーで塗りつぶしどこに写っているか示す。
1. 画像解析：写っているモノの意味を解析する。例えば、男性が犬を連れて散歩している。など
1. 顔検出と認識：画像・動画から人間の顔を抽出し、個人、性別、年齢、感情などを分析する。

# PowerToysとComputer Visionの使い方
それぞれの使い方を簡単に解説します。

## PowerToysのText Extractorの使い方
1. Microsoft Storeを起動。
1. PowerToysと検索して、インストールする。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/bc668e4c-2ba9-e81f-ca7d-d92fffe4be7c.png)
1. インストールしたPowerToysを起動し、「Text Extractor」をクリック。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/6c20685a-fea6-7e70-f15f-ddda659c33f0.png)
1. 「Text Extractorを有効にする」が「オン」になっているか確認する。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/45793903-7a95-d381-3e37-82ffd39af353.png)
1. Win+Shift+TでText Extractorを起動する。
1. テキスト抽出したい箇所を枠で囲む。
1. メモ帳などにCtrl+Vで貼り付ける。

この手順で、使用することが出来ます。

## Computer VisionのOCRの使い方
私は下記のサイトを参考に作成しました。詳細はサイトの方を確認してください。

https://dev.classmethod.jp/articles/using-azure-computer-vision-japanese-image-text-output/

# Webサイトの文字で比較してみる
私の過去のQiita記事で実験したいと思います。

https://qiita.com/fsd-shuhashi/items/f8cd9ee34fc983b53ba5

今回対象とするのは以下の部分のみになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/f0e3510a-a33b-2d63-d085-1f9d0b4fe6e7.png)

## PowerToysの場合
PowerToysの結果は以下の通りとなりました。
ーここから開始ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
zoom の会議に自動で参加する方法
自動化 zoom
最終更新日 20 四年 08 月四日 } 高日 20 四年月 23 日 138V
船井総研デジタルでは 、 毎週全社朝礼というものがあり 、 Z00n1 で参加するようになっています 。
しかし 、 毎週毎週予定表から URL をクリックして 、 バスワ - ドを入力して参加とするのはめんどく
さいですよね 。
なので 、 今回は自動で z 。 。 m に参加するバッチファイルを作成したので 、 簡単にご紹介します 。
``` bat
set id = ・・会 : 言義 ID -
( off
```
基本的なコード
``` bat
start Z000 凱 tg : " //zoom. us/j Oin ?action=join&confno=%id%&pwd=*)a 5 駅紀 % "
set pass = " 会パスワード "
```
<span>@</span>echo 0 升がない場合のコード
実際にこのコードがある場合とない場合を比較してみます 。
1 行目 : 実行中のコマンドを表示しないようにする設定です 。
簡単なので 、 1 行すっ解説します 。
はい 、 たったの 4 行です 。
ます 。
``` bat
pause
echo test
```
test という文字列を出力して 、 プログラムを止めるだけのコードを実行すると 、 以下の通りになり
ーここで終了ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

見てもらえば、分かる通り、精度がいいとは言えません。
テキスト抽出がそもそも出来ていない、なぜか順番がバラバラになっているなど、これでは使い物になりません。

## Computer Visionの場合
Computer Visionの結果は以下の通りとなりました。
ーここから開始ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
zoomの会議に自動で参加する方法
自動化 Zoom
最終更新日 2023年08月23日 投稿日 2023年08月23日 1399 views
船井総研デジタルでは、毎週全社朝礼というものがあり、zoomで参加するようになっています。
しかし、毎週毎週予定表からURLをクリックして、パスワードを入力して参加とするのはめんどく
さいですよね。
なので、今回は自動でzoomに参加するバッチファイルを作成したので、簡単にご紹介します。
基本的なコード
``` bat
@echo off
set id="会議ID"
set passwd="会議バスワード"
start zoommtg:"//zoom.us/join?action=join&confno=%id%&pwd=%passwd%"
```
はい、たったの4行です。
簡単なので、1行ずつ解説します。
1行目:実行中のコマンドを表示しないようにする設定です。
実際にこのコードがある場合とない場合を比較してみます。
<span>@</span>echo offがない場合のコード
``` bat
echo test
pause
```
testという文字列を出力して、プログラムを止めるだけのコードを実行すると、以下の通りになり
ます。
ーここで終了ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ぱっと見た感じでは、完璧にテキスト抽出出来ていそうな気がしますね。
私が確認したところ、間違いはありませんでした。
PowerToysと比較してもどちらが精度が高いかは一目瞭然ですね。
しかし、Webサイトの文字でも「。」が「.」になるというレベルの誤差はあるようですが、今回は起きませんでした。

# 手書き文字で比較してみる
今回対象とするのは以下の画像になります。
![IMG_3159.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/8590fc13-de80-fc08-108c-c97f99c8ee35.jpeg)

## PowerToysの場合
PowerToysの結果は以下の通りとなりました。
ーここから開始ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
おはよう
います 。
吟日はいいてはね
畴日主れの長うぞす 。
冒 0 れ
なんん Ⅲ ざ 。 。 ッ加川 。 ゖ 0 叫
ーここで終了ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

何言ってるか全く分からないですね。
最初の「おはよう」くらいしか合っていないですし、英語に至っては全くテキスト抽出できていません。

## Computer Visionの場合
Computer Visionの結果は以下の通りとなりました。
ーここから開始ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
おはようございます。
今日はいい天気ですね。
明日も晴れのようです。
Good morning.
It's a beautiful day.
It looks like it will be sunny tomorrow.
ーここで終了ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こちらも完璧にテキスト抽出することが出来ました。
もちろん、文量が多い場合や字に癖がある場合は、多少精度が落ちるかもしれません。
あくまで、私が書いた字は完璧に抽出できたという結果になりました。

# まとめ
今回は、Microsoftが公式に提供している２つのOCRの結果を比較してみました。
比較結果は、Computer Visionの方に圧倒的に軍配が上がりました。
しかし、PowerToysはアカウントを作成せずに、インストールすればすぐに使えるというメリットがあります。
と言っても、精度が低ければあまり意味はないですが。。。
やはり、AIの力恐るべし。