Googleドライブには、
PDFや写真のOCR機能がついています。
サポートされている言語も多くて、最近ではクメール語などを試してみましたが、結構使えそうだなぁと思います。で、単体でのやり方は簡単なのですが一括処理の方法が面倒なため、備忘録として残しておきます。Windowsならバッチファイルの知識、Macならシェルスクリプトの知識があると理解度があがります。以下は、すべてMacでの利用に特化した内容です。Windowsについては、
GoogleDriveのOCR機能を使って、大量の画像ファイルをテキストに変換する の情報を参考にすればできるんじゃないかなーと思います。
単体でのやり方
下記の関連サイトをみると簡単にできるはずです。
一括処理のやり方
Google Drive CLI Client ツールであり、
gdrive を使った一括処理ができます。
必要なこと
Step 1. OCRしたい写真を用意する
仮に ダウンロードフォルダ(~/Download)の sample フォルダに、拡張子 jpg ファイルをいくつか入れたとします。
/Users/ユーザー名/Download/sample
┣ ○○1.jpg
ここでの写真の名前はなんでも構いません。
Step 2. OCRしたい写真を調整
Step 3. ターミナルより、gdrive コマンドにてOCR変換しつつアップロード(単体)
まずは単体でテストします。
- gdrive import ~/Downloads/sample/○○1.jpg -p フォルダID
これで、OCRされた結果のGoogleドキュメントが、フォルダIDのGoogleドライブ内のフォルダにアップロードされます。写真自体をアップロードしたい場合には、 import を upload に変えてください(gdrive upload ~/Downloads/sample/○○1.jpg -p フォルダID)
Step 3. ターミナルより、gdrive コマンドにてOCR変換しつつアップロード(複数)
まずは複数のコマンドを組み合わせて、gdrive の単体実行を複数実行するようにします。
- ls ~/Downloads/sample/*.jpg | awk '{ printf "gdrive import %s -p フォルダID\n", $1}'
上記がダウンロードフォルダ→sampleフォルダ内にある拡張子 jpg ファイルに対して、gdrive コマンドを発行するためのコマンドです。
ここで実際に試すために画像として次の名前を使うことにします。
- IMG_0945.jpg ベトナム語の料理メニュー
- IMG_1232.jpg ベトナム語の料理メニュー
- IMG_1546.jpg ラオ語の料理メニュー
- 遺跡案内.jpg クメール語の遺跡案内看板
すると青文字のコマンドを実行すると、
gdrive import /Users/ユーザー名/Downloads/sample/IMG_0945.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/IMG_1232.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/IMG_1546.jpg -p フォルダID
gdrive import /Users/ユーザー名/Downloads/sample/遺跡案内.jpg -p フォルダID
のようなコマンドが4つ出てきます。
次に一括でこれらのコマンドを実行してみましょう。最期ほどの青文字に対して | sh を加えています。
- ls ~/Downloads/sample/*.jpg | awk '{ printf "gdrive import %s -p フォルダID\n", $1'} | sh
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
Imported 文字列 with mime type: 'application/vnd.google-apps.document'
ということでアップロードされました。
上図にあるように Googleドキュメントとしてアップロードされています。
日本語も問題なくアップロードされています。
たとえば
© ເສັ້ນຫມີ່ເຫຼືອງໄກ່ລາດ - chicken noodle
- ນ້ໍາຊຸບໃສ ໄກ່ລາດ ກະດູກໂຄ່ຍຫມູ, ເສັ້ນຫມີ່ເຫຼືອງໂຮມເມດ ສູດ“ເສັ້ນເສັ້ນ” - ຕ່ອນໄກ່ລາດ , ລູກຊີ້ນຫມູ ແລະ ຕ່ອນເລຶອດ , ໂຮຍຫນ້າດ້ວຍຫອມບົ່ວ , ຫອມເປ , ຫອມປ້ອມ ແລະ ຜັກທຽມຈຽວ
- Chicken, pork soup,homemade noodle by “ sensen “ - Chicken, pork meat ball and chicken blood, with garlic and spring onions
これをみると、+ は読み取れてませんが、割といけてるっぽく思います。
改行はされずに抽出されているところが見づらいかなとは思います。
*ラオ語の専門家じゃないので、正しく抽出できているかは調べていません。目視で大体あってるかなーという感じと、Google翻訳で一応意味が通るなというぐらいです)
以上のように、写真の場所を ダウンロードフォルダ内の sample フォルダに固定するなら、そこに写真をいれて、あとはアップロード先のフォルダIDを指定すれば手軽に一括処理できそうです。ただ大量にやった場合に、どこまで耐えられるかはわかりません。
2018年9月6日 @kimipooh
2019年12月5日 修正(コメントで指摘されていた部分)