こんにちは、なかやまです。
このブログはSalesforce App Cloud Advent Calendar 2016の2日目のエントリです。
今回はDreamforce 2016のセッションで見かけた、Tesseract.jsとSalesforce1を組み合わせた画像認識を試してみます。セッションの動画やスライドが見つからなかったため、手元にある写真を元に試してみました。
<Extracting Text From Images using a Computer Vision API>
■セッションで見たもの
1.カンファレンスなどで名刺交換する
2.お別れした後に、Salesforce1に名刺を保存する
3.名刺から自動でテキスト化してくれるので、変換間違いのところを手修正する
4.保存したら、メールアドレスにありがとうメールが送信される
名刺情報からはテキストが出てくるので、それを正規表現でマッチさせて各項目にいれていくそうです。
■今回試すこと
Tesseract.jsは画像の文字認識がJavascriptで実現できるもの。です。日本語の認識はできるのかしら、英語でもそれなりの精度かしら。試してみたいと思います。
・Tesseract.jsを使って画像認識
・Salesforce1からの写真を利用
・Dreamforceで見たデモを作ってみる
■やってみました
Salesforce1で使う前に、PC画面から確認してみる。
・日本語変換できるよ
このぐらいの画像だと、7秒ぐらいで変換完了
・画像サイズによって読み取り精度かわる?フォントサイズを変えてみよう
スマホで撮影した画像だと、かなり大きいサイズだと思うのでそれなりには認識されそう。しかし、英数字が残念な感じ。
・英語変換してみる
精度が高いです!
実装はこんな感じ
画像URLを見て気付いたかもしれませんが、ドキュメントが外部公開されていないとtesseract.jsでの読み込み時にエラーが出て処理が進みませんでした。
テキスト変換するための引数にCanvasがあったので、よしCanvasに貼り付けた画像を読みこませればいけるんじゃない?と試したところ。そのCanvasはcross-origin dataで汚染されてるぜ、的なメッセージを頂きまして、時間切れとなりました。画像のurlとjavascriptのurlこの辺が解決できれば画像を外部公開しなくても変換できそうですね。
うーん。
結果、使いにくい。。
セッションは英語だったので、注意事項をお話していたのかもしれませんが、上手く聞き取れずこのような結果になりました。英語の変換は何かに使えそうです。
■参考
デモで紹介してたURLです。
・正規表現確認 (http://scriptular.com/)
・SingleEmailMessage Methods (http://sforce.co/2dugPjQ)
・Tesseract.js (http://tesseract.projectnaptha.com)
Salesforce App Cloud Advent Calendar 2016の2日目でした。
↑まだ空きがあるので、よければエントリーしてください〜