PCOT関連の掲示板

PCOTの感想、質問、バグ報告受付 / 44

710 コメント
views
1 フォロー
44
ぬるっぽ 2020/05/17 (日) 17:35:17 修正

PCOTを更新しました。最新版をDLしてご利用ください。

  • いくつかのバグを修正しました。

私信です。
・synctam様
大分落ち着いた(?)のでOCRの読取精度の向上に注力したいと思うのですが、いくつか質問させてください。

・ホワイトリストについて
前にホワイトリストを取得するサンプルを頂いたと思うのですが、以前私がやったホワイトリストの設定方法は対象の文字を直接指定する方法でした。
参考URL:<http://notame.hatenablog.com/entry/2019/02/03/234131>
synctam様のサンプルにある文字コードを指定する方法と何か違うのでしょうか?
もし3.X系と4.X系のバージョン違いに起因する問題だったらすみません。

それとサンプルには文字種に「Ascii」と「Windows1252」とで分かれていますが、分ける意図はあるのでしょうか?サンプルソースから読み取った感じだと基本Asciiで問題ないという認識で合っていますか?

・余白について
余白をつけると読取精度が上がるという情報、とても為になりました。ありがとうございます。
そしてまたしても質問で恐縮ですが、数ピクセルの余白を付ける際、黒字に白の文字などでも文字通り白の余白を付けた場合、読取精度は上がるのでしょうか?もし試していたら結果を教えて頂きたいです。

最後にこの分野では知識が浅いため、恥も外聞もなく質問しています。もしお気を悪くされていたら申し訳ありません。

通報 ...
  • 45

    返事が遅くなってすいません。
    Terrariaのアップデートが来ましてちょっとバタバタしてました。

    ・ホワイトリストについて
    指定方法はリンクの通りでOKだと思います。自分の場合は、漏れに気が付きやすいように ASCII コード順に並べただけです。「Ascii」と「Windows1252」にわかれているのは、試行錯誤していたときの残骸です。ご指摘の通り ASCII のみで良いと思います。

    ・余白について
    自分の場合は、黒地に白い文字に場合は、反転させて白地に黒い文字に変換していました。
    特に意味はないのですが、条件を統一したほうが、認識精度向上のテストケースが減るかな?と考えたためです。

    それとプログラムは趣味で覚えたものですので、詳しいことはわかっていません。画像処理やOCRも以前作成していた時にネットで調べたものです。ネットがあれば素人でも色々なことにチャレンジできる時代になったので、とてもありがたいです。

    後ほど、最新版を使ってみたいと思います、ありがとうございました。

    47
    ぬるっぽ 2020/05/18 (月) 23:20:38 修正 >> 45

    忙しい中お返事くださりありがとうございます。
    ・ホワイトリストについて
    リンクの通りで良さそうとのことなので、試しにホワイトリストではなくブラックリストの方に「|」を指定してみました。
    画像1
    結果としてちゃんと「|」を無視してくれるようですね。
    画像1
    (※一番右のは紛らわしいですがIビームです)
    前にちゃんと動作しなかったのは、画像側の問題だったかもしれません。

    他に何かOCRの段階で無視した方がいい文字などありましたら、是非助言をお願いします。

    ・余白について
    余白についてですが、画像の二値化を行わないので、決め打ちで白や黒を入れるのは難しいですね・・・。やれるとしたら画像の一番外側を拡張して引き伸ばす感じになるんでしょうかね?

    ・プログラムについて
    ことプログラムの分野においては、素人玄人問わず、出来る人はすごいという認識です。
    趣味であそこまでやれるのはすごいですね、素直に尊敬します。

    フィードバックはモチベーション維持に直結しますので、どしどしください。また、こちらも質問させてください。

    49

    ブラックリスト上手く行きましたか、良かったですね。

    ・余白について
    確かに難し問題ですね、仰るとおり一番外側の色で拡張するのが良いかもです。
    ちなみに、画像処理は OpenCV が処理速度も早く楽に画像処理ができて便利です。時間のある時に試してみるのも良いと思います。

    ・無視した方がいい文字について
    今のところ、思い当たる文字はありません。
    以前検討していた情報がここ↓にあります。
    「Issues · synctam/GCat4X」
    https://github.com/synctam/GCat4X/issues?q=
    あまり参考になる部分はないと思いますが、リンクを張っておきます。

    あとOCRの精度については、Capture2Text のソース(OcrEngine.cpp や OcrEngine.h)を参考にしてはいかがでしょうか。
    「GSam/Capture2Text: Linux CLI port of Capture2Text v4.5.1」
    https://github.com/GSam/Capture2Text

    50
    ぬるっぽ 2020/05/19 (火) 21:46:22 >> 45

    ・余白について
    ありがとうございます。
    実を言うと画像の二値化を行った際に一度OpenCvSharpというのを使ってました。Bitmapで大津の二値化手法を試そうとしてネットで情報を得ようとしても、有料の記事だったり、数式や概念の様なもので難しすぎて挫折しました。
    OpenCvSharpはBitmapとMat形式の相互変換で多少躓きはしたものの、処理自体は確かに簡単でしたね。
    また時間のある時に手を出してみようと思います。

    ・「Issues · synctam/GCat4X」について
    今もこのプロジェクトは継続中なのでしょうか?
    私がこのツールを公開したからこそ、synctam様と直接交流できて喜ばしい反面「素直に待っておけば良かった!」という気持ちもあり、複雑な気分ですw
    もしとん挫したのでなければ、日の目を見ることを楽しみにしています。
    参考資料が必要であれば、連絡さえ頂ければPCOTのソースをソリューションごと渡してもいいです。
    もちろん、その際の著作権は放棄します。
    あ、でもアイコンだけはネットのフリー素材なので、流用しない方がいいと思います。

    ・Capture2Textについて
    ソース公開されてたんですね、知りませんでした・・・。
    OCRは仕事で有料のものを一度触ったきりで、完全に門外漢でした。今更ながら無知を晒して恥ずかしい限りです。

    最後に、前のレスにも書きましたがDeepLが起動しない挙動について、返答頂いてもいいですか?

    52

    失礼しました、DeepLについては返信いたしました。
    GCat4Xは、まだ仕様を確認している段階で動くものは何もありません。時間のある時に実現性の確認をしている状態で、まだ実現の目処は立っていません。ちょうどそんな時に、ぬるっぽさんから連絡があったので、情報を公開したという訳です。また、Github は、仕様をまとめるのに便利だったので使っておりました。という事で、現状では公開できるようなソースはありません。

    53
    ぬるっぽ 2020/05/20 (水) 01:03:03 >> 45

    ・DeepLについて
    >>失礼しました、DeepLについては返信いたしました。
    返信確認しました。こちらでDeepLについて今の所感を書きます。
    まず更新内容の書き方が分かりにくかったですね、こちらこそすみませんでした。
    DeepLのプロセス自動起動についてですが、前にPCOTとは全く関係ないアプリでレジストリからインストールディレクトリを検索する処理を書いたことがあるので、レジストリに名前が載ってさえいれば流用すればいけそうかなと思ったものの、翻訳が終わった後の後始末(プロセスを終了するか否か)をどうするかとか、あとはDeepLの設定を見る限り、無効時間を設定したり、ショートカットを拾って欲しくないプログラムを例外設定していく設計思想に倣うならば、基本常駐させるべきものという認識です。

    ・GCat4Xについて
    長期ベースのプロジェクトということですね。
    ならば即興で動くPCOTを作ったのは無駄ではなかったということですね。少し報われた気がします。
    改めて、いつか公開されることを楽しみにしています。

    あと別件になりますが、PCOTの要望にもGCat4Xの構想にもあったショートカットについてsynctam様の意見を伺いたいです。
    私は簡易コマンド画面によってショートカットの実装を避けましたが、理由は前に書いた通りWindowsを含む、他アプリとのバッティングが怖かったからです。
    極端な例を挙げると「CTRL+S」とキーコンフィグに設定してしまったら、他アプリで保存ができないみたいな弊害が起きたら困ると思ったからです。
    なので決め打ちなら・・・とも思ったのですが、フリー選択はともかく、PCOTの機能の売りはsynctam様もご存じの通り固定翻訳です。別にフリー選択だけでいいならプロセスに接続するメリットはあまりありません。(最小化されていても勝手にアクティブになってくれる位のメリットはありますが・・・)
    どうせショートカットを入れるなら固定翻訳もショートカットで機能してくれないと片手落ちに見えるのです。
    その場合、固定翻訳はタイトル(領域)ごとに動的に変わってきます。そうすると、ショートカットの数も必然的に増減しますよね?(ベースキー*設定領域数)という感じで。
    その辺をユーザーに設定させて後はバッティングしようがどうなろうが知らんと言ってしまうとあまりに無責任なので、PCOTは簡易コマンド画面の実装に落ち着いたわけですが、何か腹案はありますか?
    もし良さそうな案があれば簡易コマンド画面を残すかどうかはともかく、今からでもショートカットの実装を検討します。

    長くなってしまいましたが、ご確認ください。

    54

    ・ショートカットについて
    グローバルフックを使用した場合、CallNextHookEx()関数のコールを忘れなければ他のアプリに悪影響を及ぼす可能性を減らすことができると思います。ただ、利用者に対して正しい使い方と注意事項を説明する必要がありますね。

    ちなみに、以前テストしていたバージョンでは、Ctrl+0 ~ 5 をそれぞれの領域の翻訳用に割り当てていました。
    「synctamの雑談日記: ゲーム画面翻訳ツール作成中・・・その1」
    https://synctamdiary.blogspot.com/2018/12/hdd-eschalon-book-eschalon-book-ocr-ocr.html
    (各ボタンのキャプションに数字が書いてありますがこの番号がショートカットキーの番号です)
    当時はまだキーは固定でしたが、変えたい時は設定ファイルを変更してテストしていました。グローバルフックを使用した理由は、「Eschalon: Book I」のキャラクター作成画面ではマウスオーバーした場所の説明が説明欄に表示される仕様のため、翻訳ボタンが押せなかったからです。

    55
    ぬるっぽ 2020/05/21 (木) 01:51:10 >> 45

    お返事ありがとうございます。
    なるほど、CallNextHookEx()関数を呼べばフックが継続する感じなんでしょうかね?(というか、基本呼べって書いてありますね)同じショートカットなら、処理の順番が変わるだけで両方そのショートカットの処理を行う感じでしょうか。でも、外部アプリの画面状態を強制的に変更するPCOTとは相性が悪い気もします・・・。

    んー、でもやっぱり怖いですねw
    注意喚起するにしても、皆が一様にReadmeを読んでくれるわけでもないですし・・・。
    仕事柄、目的としたもの以外の外部アプリを巻き込む処理の実装には消極的(下手すると賠償問題に発展するので)なんですよね・・・。過剰反応していると思われたらすみません。

    >>「Eschalon: Book I」のキャラクター作成画面ではマウスオーバーした場所の説明が説明欄に表示される仕様のため、翻訳ボタンが押せなかったからです。

    一応、今の簡易コマンド画面でもかなり不格好ですが、簡易コマンド画面を対象項目に重ねて翻訳ボタンを押せば、説明欄の翻訳を行ってくれるので、一旦様子を見させてください。
    あまり使ってくれてる人もいない気がしますが、これから先「ショートカットがどうしても欲しい!」という要望がたくさん挙がってきたら、慎重に対応します。

    相談に乗って頂き、ありがとうございました。