[OCR] Google Driveを使ったOCRのシェルスクリプトを書いた…ような?
スクリプトの場所:GitHub - linm25stg/OCR_book2data
これは何?
GoogleDriveに画像を投げると勝手にOCRされてドキュメントが作成される機能を利用するスクリプトです
* 本GIFはWin10、WSL(Ubuntu18.04)
環境で作成されています。
出来ること
-
JPG
とPNG
をテキストデータ
に変換してくれます。 -
JPG
とPNG
のみ対応。他は非対応。- 上記拡張子2種を一緒のフォルダに混ぜても構いません。
- ファイルサイズを2MB以下にして下さい。
使用には以下のものが必要です
-
gdriveをGithubからご自身の使用の環境OSに合わせてDLして下さい
- そのままでは使えないので、まずデフォルトの OAuth認証を書き直す 必要があります。 こちら(Qiita)の記事を参照してください。
- 上記のリンクを参照して OAuth(1.client_id 2.client_secret)は取得済だけど、それでも認証が通らない の方はこちら(teratailの自分の回答)を御覧ください
- 既にバイナリ書換済み、それでも通らない場合、ここ画像の左下
goto <your app name>(unsafe)
のクリックリンクを見逃している可能性が高いです。
- 既にバイナリ書換済み、それでも通らない場合、ここ画像の左下
- 上記のリンクを参照して OAuth(1.client_id 2.client_secret)は取得済だけど、それでも認証が通らない の方はこちら(teratailの自分の回答)を御覧ください
- そのままでは使えないので、まずデフォルトの OAuth認証を書き直す 必要があります。 こちら(Qiita)の記事を参照してください。
- 本スクリプトbook2data.sh
- スクリプト内で使用したコマンドは ↓
gdrive import $1 -p $2 # $1はディレクトリーパス。$2はGoogleDriveのディレクトリーID
gdrive export --mime text/plain ${id} # ${id}は ↑で発生したドキュメントファイルのID
gdrive delete ${id}
インストール
Github の releases から落として下さい。
* Mac OS XはLFなのでbook2data-ubuntu.shを使って下さい
Filename | Version | 改行コード | Shasum |
---|---|---|---|
book2data-osx.sh | 0.9 | CR(MacOS9以前) | SHA1: 0DD7F2E8979827F6447E6DFD1257BB1273836FC7 |
book2data-ubuntu.sh | 0.9 | LF | SHA1: 82D0D148A3D21648BF6D413CAB9BF3CF752F7153 |
$ mv book2data-hoge.sh book2data.sh
$ sudo chmod +x book2data.sh
やった方が便利な事
-
gdrive
を
$ mv gdrive-hoge-x64 gdrive
$ sudo chmod +x gdrive
$ sudo cp gdrive /bin/
- 同じく
book2data.sh
を
$ sudo cp book2data.sh /bin/
使い方
# 基本処理
$ sudo book2data.sh $1 $2
# 例
$ sudo book2data.sh /mnt/d/OCR/とある書籍/01/ 1wxzzCXPfmKZV8VnLqaeGPTW1Pxxxxx
- $1 は OCRしたい画像のディレクトリーパス
- $2 はGoogleDriveの適当なフォルダーの ID部分
- 例
> https://drive.google.com/drive/u/1/folders/{フォルダID}
- {フォルダID}の部分です。
- 例
> https://drive.google.com/drive/u/1/folders/{フォルダID}
このOCR環境での駄目な部分
-
GoogleDrive API の処理上限関係で 一辺に5個以上同時処理させると
Failed to get file: googleapi: Error 404: File not found: to., notFound
のエラーが出ます- 自炊小説4冊同時変換では
400枚 x 4個
同時処理して平均2,3個問題発生します - 上記エラー発生した場合、スクリプト内
gdrive delete ${id}
コマンドが実行されない可能性がありますので、ご自身のGoogleDriveのHomeにあるドキュメントを削除して下さい。 - また、スクリプトを途中終了した場合、最後の
rm -rf $workdir
実行されないので、tmp
にある作業用フォルダーを削除して下さい
- 自炊小説4冊同時変換では
-
出力テキストファイルの拡張子がtxtではない
- 仕様です。
export --mime text/plain
で指定していますが、OSによって異なるテキスト拡張子で出力されます…- 例:Win10 →
asm
、Ubuntu →asc
- 例:Win10 →
- スクリプトの初期設定では
asc → txt
する様に書いています。Ubuntu 以外のユーザーは書き換えてご使用下さい- 表示 gif では自分用のスクリプトを動かしてる為、Win10用の
asm
って出てます
- 表示 gif では自分用のスクリプトを動かしてる為、Win10用の
- 仕様です。
-
出力されたテキストファイルに半角スペースが発生する
- 仕様です。
- 半角指定して置換削除したかったのですが、上手く実装できませんでした…ご教授して下さるとありがたいです
-
自動的に結合して1個のテキストファイルにならない
- 頑張ったのですが、上手く実装できませんでした。ご教授下さい!
-
basename
を使って、$1パスの最後のディレクトリ名を取得してbasename.txt
したいと考えています
-
usage
を使ったbook2data.sh --help
が無い- 実装予定がありません。
-
ルビ多めの小説だとゴミが多い
- はい。細かいOCR制御が出来ない為仕方ありません。
- 音声に変換して聞いてると案外その辺は脳みそがスルッとスルーしてくれる為、OCRを読書として使用する場合はmp3化をオススメします。
- はい。細かいOCR制御が出来ない為仕方ありません。
-
GoogleDriveのゴミ箱が混沌とする
- 毎回デ
delete
コマンドを自動実行してる為、どうしてもそうなってしまいます。 - ゴミ箱を第2のファイル保管場所としている場合、OCR専用のGoogleアカウントを取得することをおすすめします。
- 毎回デ
総括
基本的に GoogleDrive のOCR機能を使用しているので、細かい制御は聞きません。オートマです。
しかし、縦読みOK、手書きでも一部OK、印刷フォントなら99%OK、挿絵は自動スルー、多言語対応 と個人用OCRで考えると中々便利です。
1年前は表内の文字は読めなかったりしてたけど、いまは大分マシになってきたりと、大分進化されていますね。
GooglePhotoの学習データを流用しているので、みんなももっと学習データをGoogleさんに上納すればいいと思うよ('A`)
- 2020-05-27 改稿しました。
- 2020-05-28 スクリプトのインストールを追加しました。
Author And Source
この問題について([OCR] Google Driveを使ったOCRのシェルスクリプトを書いた…ような?), 我々は、より多くの情報をここで見つけました https://qiita.com/linm25stg/items/b870320dcca1eabe4d6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .