ごった煮

色々な事を書いてます

Cognitive Serviceを使う(Vision API編 その3)

Vision APIの第三弾です。今回は、OCRで画像から文字列を抜き出してみます。

始めに

ライブラリを追加する

例にもれず下記のライブラリを追加します。

Microsoft.ProjectOxford.Vision

実装してみる

実装

分析自体は簡単です。

テキストを抜き出す際は、分析結果が行単位で取得されるので行単位で単語を全部抜き出します。

        private static async Task RecognizeTextAsync()
        {
            var visionServiceClient = new VisionServiceClient("APIキー");
            using (var imageFileStream = File.OpenRead(@"画像のパス"))
            {
                var analysisResult = await visionServiceClient.RecognizeTextAsync(imageFileStream, "en");
                Console.WriteLine(analysisResult.TextAngle.Value);

                foreach(var item in analysisResult.Regions)
                {
                    foreach(var line in item.Lines)
                    {
                        foreach(var word in line.Words)
                        {
                            Console.WriteLine(word.Text);
                        }
                    }
                }

            }
            
            Console.ReadLine();
        }

結果

下記の画像を今回は使いました。

product_img_f_3975356

画像を読み込むとこんな感じになりました。

image

まとめ

OCRもめちゃくちゃ簡単に実装できました。

アクセス数とかネットワーク越しの処理によるレスポンスタイムとかいろいろ面倒な部分もありますが、OCRを簡単に組み込めるというのはかなり大きいかなと思います。

英語はそこそこの精度が出ますが正直日本語とかはまだ微妙なので今後に期待です。

使ったら使うだけ中の人が正解データと紐づけとかやってくれてるんですかね

もう少しだけVision APIを使って色々やってみようかと思います。