はじめに
こんにちは!
Google社が買収した「AppSheet」なる、
ローコードでアプリが作れちゃう、というサービスで、
どれだけのものが作れるのか、最近研究しています。
そもそもAppSheetって、どんなことができるのかなーって機能概要をまとめたサイトを見てみると、、
**「OCRスキャン」**って書いてるじゃないですかー。
OCRを簡単に調べてみると、
OCRとは「Optical Character Recognition」の略で、
手書きや印刷された文字を、イメージスキャナやデジタルカメラによって読みとり、
コンピュータが利用できるデジタルの文字コードに変換する技術、だそうです。
つまり、手書きの文書とかを、写真とってアプリで変換かけると、文字起こしできちゃうよ、というアレですね。
じゃあAppSheetではどうやって使えるの?というのが気になったので、試していきたいと思います。
試してみる
AppSheetの公式マニュアルのOCRの項を参考にして試していきたいと思います。
そもそもどんな時に使えるか
上記の公式マニュアルを確認すると、以下のようなことが書かれています。
OCRで使用できる画像の種類は以下のようなもの
・標準化された紙のフォーム
・USPS配送ラベル
・1つの会社からの請求書
AppSheetのOCR機能が機能しないいくつかのケースは次のとおりです。
・名刺(標準形式に準拠していない)
・チェックボックスを使用するフォーム
・インターネットに接続していないアプリ
どうやら入力フォーマットが決まっているものはOCR機能が使えるようですが、
フォーマットがバラバラな書類では使用できないようです。
うーん、名刺とかで使えたらよかったのにーー。。
データの準備
まずは、必要となるデータソースの設定をします。
今回も、スプレッドシートでの設定で進めていきます。
新規でスプレッドシートを作成して、
以下のような**「id」「姓」「名」「所属」「写真」**という列を設定します。
続いて、新規でアプリを作成します。
その際に、データソースは先ほど作成したスプレッドシートを設定すると、以下のようなダッシュボードまで進むかと思います。
新規アプリの作成方法は、過去の記事の最初から読んでいただき、
「これで、ダッシュボード画面が表示されました。
いよいよアプリの作成が開始です!」
というところまで読んで見てください。
なお、id列は一意の値が入るように設定しておこうと思ったので、
[Data]>[Columns]の[ocr]テーブルの「id」列の「INITIAL VALUE」に、
「uniqueid()」と設定しています。
キャプチャを撮ったタイミングの問題で、「姓」「名」「所属」の「INITIAL VALUE」にも何か書かれていますが、
この段階では設定されているはずのないものなので、黒線を引いています
そして、**「写真」列の「TYPE」を「Image」**に変更しています。
写真を扱うときは、この設定が必須です。
学習用のデータを登録する
続いては**、学習のためのデータが必要になる**とのこと。
先ほどのマニュアルを見た所、だいたい4件くらいのデータが必要みたいですね。
ということで、自前のタブレットから、データを登録していきます。
作成中のアプリでも、アプリのURLを入力すれば、どの端末からでも使用できるのが素敵です。
写真を撮って、その他の項目を上からそれぞれ、
姓:Jon
名:Cartar
所属:Line
と入力してやります。
これで「Save」ボタンを押して、データを登録します。
この要領で別のデータを登録して、4件のデータを用意します。
これで、OCRを試すための準備はできました。
OCRの設定をする
[Intelligence]>[OCR Models(Beta)]から[+Add New OCR Model]をクリックします。
「OCR Models(Beta)」とある通り、このOCRの機能自体がベータ版であることがわかります。
OCRの設定をしていきます。
NAME:OCRを使用する時の名前(今回は「New OCR Model」)
Table:どのデータにOCRを適用するのか(今回は「ocr」(最初に作ったスプレッドシート))
Image Columns:OCRスキャンをするためのImage項目(今回は「写真」(スプレッドシートの「写真」列))
Output Columns:OCRスキャンした値を出力する項目(今回は「姓」「名」「所属」)

キャプチャからは見切れていますが、画面右上にある「Save」ボタンをクリックすると、以下のようになります。
先ほど写真を撮ってデータ登録した値から、学習結果を出力しているようです。
撮った写真と、入力した文字列から、以下のことを学習したようです。
3行あるうちの、一番上が"姓"が記述されている。(緑のライン)
3行あるうちの、真ん中が"名"が記述されている。(赤のライン)
3行あるうちの、一番下が"所属"が記述されている。(青のライン)
このように、「撮られた写真から、どの位置にある文字列をどの項目にセットする」ことを学習するようです。
そのため、各社でフォーマットの異なる名刺などには使用できないようです。
残念。。。
ただ、たったこれだけでOCRの設定が完了しました。
なにやら、画面には黄色い文字で警告が出ていますが、
内容を確認すると、一番右の写真の一番下の文字列が読み取れなかったようです。
本当はこれをクリアな状態にしてから進むべきでしょうが、ひとまずこのまま進めていきます。
ちなみに、OCRの設定が完了すると、データ定義に「INITIAL VALUE」が追加されています。
[Data]>[Columns]から、「姓」「名」「所属」の「INITIAL VALUE」になにやらOCRっぽい文字列が記述されていますね。
試しに、「姓」の項目を確認してみます。
よくわからないですが、「OCR機能を利用して、写真の値から項目「姓」にセットする」ような初期値が追加されるようです。
動作確認
それでは、実際にタブレットを使って動作確認をしていきます。
タブレットからアプリにログインして、登録画面に遷移します。
すると、以下の通りに画面が戻ります。
今撮った写真とともに、
「姓」「名」「所属」の項目に値が設定されていますね。
実は、僕は何も入力していません。
写真を撮っただけで、アプリが「この文字列はこの項目に設定されるんだろう」ってセットしてくれます。
超便利な予感!
これで、紙媒体のものをデジタルに変換することも容易にできるか??
いやいや、あくまで上記のテストでは、全てアルファベットでの確認でした。
試しに漢字を試してみましょう。
「姓」に入って欲しかった「中田」がなくなり、
「友彦」は「友声」になってしまいました。
なぜか「立花コーポ」は読み取れたようです。
でもこの感じだと、日本語での利用は厳しそうです。
まあ、ベータ版だしな。。
まとめ
AppSheetでOCRのテストをしてみました。
まとめると、以下のような感じでしょうか。
・フォーマットがバラバラなものは使えない
・4件ほどのテストデータが必要
・OCRの設定自体は難しくない
・アルファベットなら、そこそこ良さそう
・日本語はまだ難しそう
・そもそもOCR機能はベータ版なので、精度がよくなるかもしれないし、機能そのものがなくなるかもしれない
ひとまずOCRを試した結果は以上でーす。