Help us understand the problem. What is going on with this article?

Googleの新サービス「AppSheet」でOCR(画像からの文字起こし)機能を試してみる(ベータ版)

はじめに

こんにちは!
Google社が買収した「AppSheet」なる、
ローコードでアプリが作れちゃう、というサービスで、
どれだけのものが作れるのか、最近研究しています。

そもそもAppSheetって、どんなことができるのかなーって機能概要をまとめたサイトを見てみると、、
「OCRスキャン」って書いてるじゃないですかー。

OCRを簡単に調べてみると、
OCRとは「Optical Character Recognition」の略で、
手書きや印刷された文字を、イメージスキャナやデジタルカメラによって読みとり、
コンピュータが利用できるデジタルの文字コードに変換する技術、だそうです。

つまり、手書きの文書とかを、写真とってアプリで変換かけると、文字起こしできちゃうよ、というアレですね。

じゃあAppSheetではどうやって使えるの?というのが気になったので、試していきたいと思います。

試してみる

AppSheetの公式マニュアルのOCRの項を参考にして試していきたいと思います。

そもそもどんな時に使えるか

上記の公式マニュアルを確認すると、以下のようなことが書かれています。

OCRで使用できる画像の種類は以下のようなもの
・標準化された紙のフォーム
・USPS配送ラベル
・1つの会社からの請求書

AppSheetのOCR機能が機能しないいくつかのケースは次のとおりです。
・名刺(標準形式に準拠していない)
・チェックボックスを使用するフォーム
・インターネットに接続していないアプリ

どうやら入力フォーマットが決まっているものはOCR機能が使えるようですが、
フォーマットがバラバラな書類では使用できないようです。

うーん、名刺とかで使えたらよかったのにーー。。

データの準備

まずは、必要となるデータソースの設定をします。
今回も、スプレッドシートでの設定で進めていきます。

新規でスプレッドシートを作成して、
以下のような「id」「姓」「名」「所属」「写真」という列を設定します。
スクリーンショット 2020-04-24 15.51.09.png

続いて、新規でアプリを作成します。
その際に、データソースは先ほど作成したスプレッドシートを設定すると、以下のようなダッシュボードまで進むかと思います。

新規アプリの作成方法は、過去の記事の最初から読んでいただき、
「これで、ダッシュボード画面が表示されました。
いよいよアプリの作成が開始です!」
というところまで読んで見てください。

なお、id列は一意の値が入るように設定しておこうと思ったので、
[Data]>[Columns]の[ocr]テーブルの「id」列の「INITIAL VALUE」に、
uniqueid()」と設定しています。

キャプチャを撮ったタイミングの問題で、「姓」「名」「所属」の「INITIAL VALUE」にも何か書かれていますが、
この段階では設定されているはずのないものなので、黒線を引いています

そして、「写真」列の「TYPE」「Image」に変更しています。
写真を扱うときは、この設定が必須です。
スクリーンショット 2020-04-24 15.14.42.png

学習用のデータを登録する

続いては、学習のためのデータが必要になるとのこと。
先ほどのマニュアルを見た所、だいたい4件くらいのデータが必要みたいですね。

ということで、自前のタブレットから、データを登録していきます。
作成中のアプリでも、アプリのURLを入力すれば、どの端末からでも使用できるのが素敵です。
スクリーンショット 2020-04-24 15.12.37.png

写真を撮って、その他の項目を上からそれぞれ、
姓:Jon
名:Cartar
所属:Line
と入力してやります。
これで「Save」ボタンを押して、データを登録します。
スクリーンショット 2020-04-24 15.13.43.png

この要領で別のデータを登録して、4件のデータを用意します。
これで、OCRを試すための準備はできました。

OCRの設定をする

[Intelligence]>[OCR Models(Beta)]から[+Add New OCR Model]をクリックします。
「OCR Models(Beta)」とある通り、このOCRの機能自体がベータ版であることがわかります。
スクリーンショット 2020-04-23 15.23.42.png

OCRの設定をしていきます。
NAME:OCRを使用する時の名前(今回は「New OCR Model」)
Table:どのデータにOCRを適用するのか(今回は「ocr」(最初に作ったスプレッドシート))
Image Columns:OCRスキャンをするためのImage項目(今回は「写真」(スプレッドシートの「写真」列))
Output Columns:OCRスキャンした値を出力する項目(今回は「姓」「名」「所属」)

スクリーンショット 2020-04-23 15.24.13.png

キャプチャからは見切れていますが、画面右上にある「Save」ボタンをクリックすると、以下のようになります。
スクリーンショット 2020-04-23 15.24.28.png
先ほど写真を撮ってデータ登録した値から、学習結果を出力しているようです。
撮った写真と、入力した文字列から、以下のことを学習したようです。
3行あるうちの、一番上が"姓"が記述されている。(緑のライン)
3行あるうちの、真ん中が"名"が記述されている。(赤のライン)
3行あるうちの、一番下が"所属"が記述されている。(青のライン)

このように、「撮られた写真から、どの位置にある文字列をどの項目にセットする」ことを学習するようです。
そのため、各社でフォーマットの異なる名刺などには使用できないようです。
残念。。。

ただ、たったこれだけでOCRの設定が完了しました。

なにやら、画面には黄色い文字で警告が出ていますが、
内容を確認すると、一番右の写真の一番下の文字列が読み取れなかったようです。
本当はこれをクリアな状態にしてから進むべきでしょうが、ひとまずこのまま進めていきます。

ちなみに、OCRの設定が完了すると、データ定義に「INITIAL VALUE」が追加されています。
[Data]>[Columns]から、「姓」「名」「所属」の「INITIAL VALUE」になにやらOCRっぽい文字列が記述されていますね。
試しに、「姓」の項目を確認してみます。
スクリーンショット 2020-04-23 15.24.53.png

よくわからないですが、「OCR機能を利用して、写真の値から項目「姓」にセットする」ような初期値が追加されるようです。
スクリーンショット 2020-04-23 15.25.03.png

動作確認

それでは、実際にタブレットを使って動作確認をしていきます。
タブレットからアプリにログインして、登録画面に遷移します。
IMG_0804.PNG

カメラボタンから写真を撮って「写真を使用」します。
IMG_0805.PNG

すると、以下の通りに画面が戻ります。
IMG_0806.PNG
今撮った写真とともに、
「姓」「名」「所属」の項目に値が設定されていますね。

実は、僕は何も入力していません。
写真を撮っただけで、アプリが「この文字列はこの項目に設定されるんだろう」ってセットしてくれます。

超便利な予感!
これで、紙媒体のものをデジタルに変換することも容易にできるか??

いやいや、あくまで上記のテストでは、全てアルファベットでの確認でした。
試しに漢字を試してみましょう。

こっからカメラボタンで、
IMG_0807.PNG

写真撮って、、
IMG_0808.PNG

・・・
IMG_0809.PNG
惜しいけどアカーーン!!

「姓」に入って欲しかった「中田」がなくなり、
「友彦」は「友声」になってしまいました。
なぜか「立花コーポ」は読み取れたようです。

でもこの感じだと、日本語での利用は厳しそうです。
まあ、ベータ版だしな。。

まとめ

AppSheetでOCRのテストをしてみました。

まとめると、以下のような感じでしょうか。
・フォーマットがバラバラなものは使えない
・4件ほどのテストデータが必要
・OCRの設定自体は難しくない
・アルファベットなら、そこそこ良さそう
・日本語はまだ難しそう
・そもそもOCR機能はベータ版なので、精度がよくなるかもしれないし、機能そのものがなくなるかもしれない

ひとまずOCRを試した結果は以上でーす。

kazu_tekuru
株式会社Tekuru所属。 プログラミングスクールの開催や、技術書の出版、IT開発の最上流からの相談を気軽にしてもらえる、柔らかな物腰のエンジニア。
https://techool.jimdo.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした