PCOT関連の掲示板

views
0 フォロー
627 件中 601 から 627 までを表示しています。
29
ぬるっぽ 2020/05/14 (木) 16:12:13 >> 24

参考ソースまで貼って頂いてありがとうございます!

・ブラック/ホワイトリストについて

ただ・・・まことに残念なことにtesseract-ocr 4.1.0では、ホワイトリストが使えないようです・・・。
How to whitelist characters in tess4j version 4.1.*

使い始めた時にはそんなことはつゆ知らず・・・。せっかく参考ソースを貼って頂いたのにすみません。

・「対象通り改行」について
アイテム名と説明文

確かにそういう使い方が出来ますね。ならば領域ごとの保存が望ましいということですね。

・「原文を小文字化」について

>>「原文を小文字化」は一律で行っても良いように感じます。
とありますが、チェック機能そのものがなくていいという意味合いでしょうか?
元々「原文を小文字化」については、GoogleTranslateFreeAPIが大文字だけの単語や大文字だけの文章の翻訳精度が異常に悪かったので、読み取り箇所が全て大文字の場合は強制的に小文字にしています。
ただ、文章を一律小文字化すると頭大文字の段落や固有名詞などでは翻訳結果が変わるため、その場でユーザーが確認できるようにチェックして利用して頂くことを目的としていました。
文章全てが大文字だと強制的に小文字になる現在の仕様と、文章単位で強調表示としての大文字の単語が混在することを考えると、プロセス単位、領域単位で保存するメリットがあまりないように思いますがこれといった要件はありますか?

・「ダブルコーテーションを除去する」について

ダブルコーテーションについてですが、文章単位で翻訳精度が上下するので、PCOTでは領域単位やプロセス単位で持つのではなく、翻訳(読取)全体に関わる事だと思うので、辞書登録で処理タイプを「無視」とする仕様になっています。尚、辞書に登録した文言は「辞書一覧画面」にて、有効/無効を切り替えることが可能です。

28

・動作環境について
自分は、tesseract-ocr v3.5.2.0 を使用していました。PCOTでは、tesseract-ocr 4.1.0 をお使いのようなので状況が異なるのかもしれません(v4系はOCRエンジンが大幅に拡張されたので私も移行したいのですが、まだ使い方がわかっていません)。

・ブラック/ホワイトリストについて
ブラックリストについてですが、自分は使ったことがありません。理由は、Tesseract-ocr で言語に英語を指定した場合の認識対象の文字種を調べる方法がわからなかったためです。認識対象の文字種がわかればブラックリストでも良いと思います。

・ホワイトリストの使用例について
Tesseract-ocr ホワイトリストのサンプルプログラムを Gist にアップしました。
https://gist.github.com/synctam/5b351411ca6062eff2b89173a87cb152
CatInnerTesseract.cs 31行目のコンストラクタでホワイトリストの設定を行っています。ホワイトリストの文字種は CatOcrDriverBase.cs 58行目の GetWhiteList() 関数で設定しています。どちらも、MITライセンスで公開しますので、ご自由にお使いください。

・「対象通り改行」について
領域ごとに保存できた方が良いと思います。この部分については、PCOTがどの様な処理を行っているのかわかりませんので、以前検討していた時のことを書きます。自分の場合は、改行が一つの場合は無条件に文を繋げてしまい、改行が二つ以上の場合は段落が別と捉えていました。しかし、この方式ですと、例えばアイテムの説明画面のようにアイテム名と説明文が繋がってしまい問題が発生しました。このように領域ごとに状況が異なるため領域ごとに指定できるのが良いと思います。

・「原文を小文字化」について
ゲーム(プロセス)単位で保存できた方が良いと思います。「原文を小文字化」は一律で行っても良いように感じます。

・「ダブルコーテーションを除去する」について
この前の投稿で言い忘れましたが、「ダブルコーテーションを除去」すると、一部の文章では翻訳精度が上がることがありました。以前検討していた時は、領域ごとに保存していました。

長くなりましたが、よろしくおねがいします。

27
ぬるっぽ 2020/05/14 (木) 02:14:43 修正 >> 24

参考意見ありがとうございます。

余白を設けるのは盲点でした、検討してみます。
whitelistについてですが、まだ画像の拡大をやってなかった頃か設定の方法が悪かったのか定かではありませんが、以前やった時は読取精度が著しく下がってしまったので元に戻した経緯があります。
もし宜しければ、synctam様の方で設定した具体的なwhitelistの文字リストをご提示頂けないでしょうか?
あと、重ねて質問で恐縮ですがwhitelistに読取対象の文字を全て列挙するのと、blacklistに除外文字だけを列挙するのとでは、読取精度に差が出るのでしょうか?
どちらもやってみた感じ、読取精度が逆に下がってしまったので設定方法か何かがまずかったような気がしてなりません・・・。(変化があったということは、設定自体は出来てたと思うのですが・・・)

画像の余白についてはC#のGraphicsクラスの操作に慣れていないため、少し時間がかかりそうなので、今回の更新からは外しますが、whitelistなどはすぐに反映できると思うので次回リリース時に反映しようと思います。

あと最後に確認しておきたかったのですが、「対象通り改行」や「原文を小文字化」チェックの保存単位はゲーム(プロセス)単位でよろしかったでしょうか?それともタイトル(領域)単位の方がよろしいでしょうか?

26

気が付きませんでした、指摘した部分は既に実装済みとのことですね、安心しました。

私も、二値化については閾値などの設定がわからず、大津の二値化も含めてうまくいきませんでした。また、ガンマ値変更もやってみましたが効果はあまりなかったです。仰るとおりグレースケールのみで良いような気がします。

Tesseractの精度向上策としては、切り取った画像の周りに余白を追加するとOCRの精度が向上することがあります。この例では上下左右に8ドットの余白を追加しています。
変更前画像:https://i.imgur.com/kZ3aIye.jpg
変更後画像:https://i.imgur.com/zkNyAMl.jpg
切り取り領域の設定でどうしても文字ギリギリで指定しないといけないゲームもありますので、余白の追加は有効だと思います。
もう一つは、Tesseractのオプションで whitelist の指定をすることでした。自分の場合はアルファベットの英数字+記号(縦棒|は除く)のみを指定していました。これは、数字のイチ(1)、大文字のアイ(I)、小文字のエル(l) を縦棒(|)に誤認識することが多かったためです。

参考になれば幸いです。

25
ぬるっぽ 2020/05/13 (水) 23:05:36 >> 24

早速のフィードバックありがとうございます。

名詞リストについては、ゲーム毎に設定できると良いと感じました(何処に情報が保存されているか確認できなかったのですでに対応済みであればごめんなさい)。

現行で名詞リストはゲームごとの保存となっております。名詞リスト登録後に作成される[プロセス名].cfg内で「NounTable」とある場所のデータがそれです。

画像の拡大倍率をゲーム毎に設定できるようにするのも良いかもしれません。

こちらについても、現行で(私の方では読取倍率と呼んでいますが)ゲームごとではなくタイトルラベル単位で設定されています。前述の[プロセス名].cfg内の「TitleTable」とある場所の「ReadMultiples」という項目がそれです。
デフォルト値は2(2倍)となっています。この値はタイトル設定画面で直接値を設定するほか、新規作成時もしくは編集時の翻訳範囲の再選択時にキャプチャー画面上でマウスホイールで値を増減(最小x1~最大x10)できます。
何故ゲームごとではなく、タイトルラベルごとにしたかというと、同じゲーム内でも場所によってフォントサイズが変わっている箇所があったので、それに対応した結果となります。

なお、以前実装の確認をしていた時は、領域ごとに拡大倍率を設定できるようにしていました。

つまり、同じことを考えていたということですね。先生に近づけた気がしてなんだか嬉しいです。
今だから言いますが、開発中ブログに訪れるたび、synctam様のことを勝手に「先生」と呼んでいましたw

あとこれは余談ですが、私も当初synctam様に倣って画像を二値化してOCRにかける方法を実装してみたのですが、二値化する際の閾値を取得するのに大津の二値化手法を使って最適な閾値で二値化を実現できたと思いきや、人の目から見るとちゃんと文字として認識できるにも関わらず、どうもTesseractOCRとの相性が悪いらしくて読取精度が異常に下がりました・・・。
PCOTでは結局画像の二値化は没になりましたが・・・こちらについて、何か解決策はご存じですか?
自分の中では今の所、どんな画像も強制的にグレースケールにした状態が一番読み取り精度が高い気がします。

24

ご検討いただきありがとうございます。
設定(.cfg)ファイルの非互換については了解いたしました。

OCR訂正辞書(wordlist.dat)については、現状通りシステムにひとつで構わないと思います。名刺リストについては、ゲーム毎に設定できると良いと感じました(何処に情報が保存されているか確認できなかったのですでに対応済みであればごめんなさい)。

あと、画像の拡大倍率をゲーム毎に設定できるようにするのも良いかもしれません。例えば、設定ファイルにデフォルト値を入れておいてUIへの実装は先送りする方法でも良いかとおもいます。なお、以前実装の確認をしていた時は、領域ごとに拡大倍率を設定できるようにしていました。これについいては、現状での必要性が明確ではないため、参考程度に考えてください。

今のところ気がついたのは以上となります。
よろしくおねがいします。

23
ぬるっぽ 2020/05/13 (水) 21:28:06 修正

お知らせ

公開して早々ですが、次回更新は少し大幅な更新となりそうです。ご使用して頂いている皆様にはご不便をおかけしますが、今しばらくお待ちください。
少し言い訳させて頂きますと、元々思いつきで自分が使うだけの想定で始めてバージョン管理も何もなく2か月程度で作った物なので粗が多いのです・・・。見た目がダサいのはセンスがないからです。

以下、私信です。
>> synctam様
ゲームごとのチェック状態の記憶に関してですが、既に何かしら登録されたプロセスが存在する場合、データ構造の整合性が合わずエラーとなってしまいます。
お手数ですが、次回リリース時にお手元でdataフォルダ配下の[プロセス名].cfgファイルから新規作成した同名ファイルとの差分をマージして頂く必要があります。ご不便をお掛けして申し訳ありません・・・。
上記の通り、プロセスごとの設定についてはデータ構造上、影響範囲大きそうなので今のうちに潰しておいた方がいいですね。他に今ある機能でプロセスごとに記憶しておきたい項目は無いと思ってよろしいですか?

>> NOFA様
貼っていただいた画像を確認しました。酷いですね・・・。
一応対応してみたので、次回リリース時には直っていると思います。ダメだった場合はお手数ですが再度ご報告をお願いいたします。
あと、ショートカットについてですが、なるべく他のアプリに迷惑(笑)をかけずに、ショートカット以外の方法でアプローチ出来ないか模索中です。
コレジャナイ感が半端ないことになりそうな気もしますが、期待せずにお待ちください。

22
ぬるっぽ 2020/05/13 (水) 17:24:09 >> 21

ご使用頂きありがとうございます。

ご要望の件ですが、テキストを選択コピー出来るのであれば辞書登録は不要ですし、DeepLを使用して頂ければ翻訳精度の低いPCOTを使用するまでもなく質の高い翻訳結果を得られますので、DeepLのご使用を強く推奨いたします。

また、もしなんらかの事情で、DeepLをインストールしたくない場合は、PCOTの原文にコピーした後で原文下部にある「即時翻訳」ボタンを押して頂ければ、すぐに翻訳結果が得られます。

21
Sorori 2020/05/13 (水) 10:24:40 a2662@f02be

要望なのですが、ゲームによってはテキストをそのまま選択コピーできるものが
あったりするので、もしよければテキストコピーからの翻訳にも対応してもらえないでしょうか、よろしくおねがいします。

20

お返事ありがとうございます。
ショートカットの実装にはそういう難しさがあるんですね。別の翻訳キャプチャソフトではWinキー+Qキーとか、あまり使われないWinキーと他のキーを同時押しした時にキャプチャするのが初期設定になっていたのですが、それもアクティブなアプリとバッティングしないためだったのかもしれませんね。

>もし宜しければ、画面のハードコピーなどを貼っていただくことはできますか?そうでなければ、OSがどのような設定になっているかを教えて頂けると幸いです。

画像1
画像1

これでアップロードできてるでしょうか。一応ボタンを押すことは出来るので自分だけの問題でしたら修正などはなくても大丈夫だと思います。

名詞リストの説明もありがとうございます。訳された文章に対して使うのですね。辞書リストも名詞リストも、翻訳キャプチャソフトにあったらいいなと思っていた機能だったので嬉しいです。

19
ぬるっぽ 2020/05/13 (水) 01:15:12 >> 16

要望ありがとうございます。
「DeepLと連携」については確かにシステムで覚えておきたいですね。設定ファイルを新設します。

「対象通りに改行」は試したプロセスのサンプル数が少なかったせいか、翻訳精度が落ちる傾向があって辞書登録時の比較用という認識でした。
ただ、確かに改行の位置によってGoogle翻訳もDeepLも翻訳結果が変わるので、ゲームごとに覚えておくといいですね。

「原文を小文字化」については、DeepLがある以上もう正直要らないかなと思っていたんですが、よくよく考えれば辞書登録は訳文と対比して作成するので必要ですね。
というわけで、近いうちに実装します。少しお時間ください。

>>NOFA様
ショートカットについては、まだ色々と検討の余地がありそうなので、こちらを先に対応させてもらいます。
フォントサイズについては、こちらの対応と併せてリリースしますので、ご了承願います。

18
ぬるっぽ 2020/05/12 (火) 23:51:23 >> 15

フィードバックありがとうございます。長文です。すみません。

ショートカット

やっぱりこういう要望でますよね・・・私も欲しいですw
実は当初実装しようかと思っていたんですが、キーストロークを監視して上書きするような事をするので、Windowsや現在アクティブなアプリ(接続できるのはゲームだけじゃないので)とバッティングしたらどうしようと思って、実装を見送ったのです。
後は、もしキーコンフィグを付けるとなると上記の理由からプロセスごとにショートカットキーを設定する必要もあって、些か設定の手間が増えそうな気がして・・・。
なので、ショートカットの対象ボタン(フリー選択や翻訳)を決めた上で原則Windowsや他のどのアプリともバッティングしないショートカットを決め打ちで実装するなら、行けそうな気がします。
PCOTがアクティブな状態でのキーコンフィグの実装については他のアプリに影響しないので全然問題ないんですけどね。

あとこれは自分のOSの「閉じる」等のボタンやタイトルバーの大きさを少し変更して使っているからかもしれませんが、辞書登録と名詞登録の「確定」「キャンセル」ボタンが上のチェックボックスやテキストボックスに重なって表示されてしまいます。

もし宜しければ、画面のハードコピーなどを貼っていただくことはできますか?そうでなければ、OSがどのような設定になっているかを教えて頂けると幸いです。

辞書リストと名詞リストの違いについて説明します。
辞書リスト・・・原文に対して置換を行う
名詞リスト・・・訳文に対して置換を行う
が大まかな違いとなります。

名詞リストについてですが、海外のゲームで固有名詞などがそのまま翻訳されずに訳文に出てきた際に任意の名称に置き換えられるというものです。
例えば、Eschalon: Book I のEverSleep墓地とかなどは翻訳されずに
そのまま訳文に「EverSleep」と出てきますがそれを翻訳時に「EverSleep」→「エヴァースリープ」と置き換えてから訳文に表示する機能です。

上記の性質上、訳文の対象箇所を選択した上で名詞登録機能を利用して頂ければ、正常に機能すると思われます。
原文から選択した文字を置換前テキストに設定すると、原文と訳文で大文字小文字や半角全角が変わってしまっている可能性がありますので、置換前テキストは訳文から取得するようにしてください。

17

お返事ありがとうございます。

>要望についての確認ですが、ショートカットを設定出来るようにしてほしいといった内容で合っていますか?

はい、ショートカットキーで自分の好きなキーをフリー選択ボタンに設定できればいいなと思いました。自分の場合は海外ゲームプレイ中の翻訳に使いたいのですが、翻訳のたびにボタンを押しにゲーム画面外にカーソルを移動するのが手間だったので実装していただけたらとても嬉しいです。

あとこれは自分のOSの「閉じる」等のボタンやタイトルバーの大きさを少し変更して使っているからかもしれませんが、辞書登録と名詞登録の「確定」「キャンセル」ボタンが上のチェックボックスやテキストボックスに重なって表示されてしまいます。そこ以外は問題ありませんでした。

また辞書リストと名詞リストの機能なのですが、この2つの具体的な違いや使い分け方はありますか?辞書リストの方はうまく機能していたのですが、名詞リストの方は自分の使い方が悪かったのか機能しないようでした。

16
synctam 2020/05/12 (火) 22:13:38 6a35e@02360

「翻訳表示」画面のチェックボックスの状態について

現状、「DeepLと連携」のチェック状態が記憶されないようです。チェック状態を記憶できるように変更できないでしょうか?できれば、他のチェックボックスも記憶されると嬉しいです。

ただ、記憶はゲーム毎とシステムに分ける必要があるかもしれません。例えば、「DeepLと連携」のチェック状態はシステムで共通の設定として保存。一方、「対象通りに改行」や「原文を小文字化」についてはゲーム毎に記憶など。

ご検討いただけると嬉しいです。

15
ぬるっぽ 2020/05/12 (火) 21:38:05 >> 13

ご使用頂き、ありがとうございます!
要望についての確認ですが、ショートカットを設定出来るようにしてほしいといった内容で合っていますか?
申し訳ありませんがフォントの件と併せて対応しますので少しお時間下さい。
ご不便をおかけしますが、お願いいたします。

13

とても便利なツールありがとうございます!
要望なのですが、フリー選択ボタンのキーコンフィグがあるとマウスのサイドボタンなどで楽にキャプチャ画面が出せて便利かなと思いました。
また自分のディスプレイ(2560x1440)だと翻訳テキストのフォントが小さく行間が狭いので、ちょっと読みづらいと感じました。

12
ぬるっぽ 2020/05/12 (火) 02:01:37 >> 9

有益な情報提供ありがとうございます!
なんとか対応してみましたので、お手数ですがご確認願います。

高DPI対応ですが、Windowsフォームの場合マニフェストファイルで対応できるようです。(Windowsフォームでの開発かな?と予想しました。違っていたらすみません。)

ご推察の通り、Windowsフォームで作成しています。
本業が業務システム開発なので、見た目がダサいのはご愛敬ですw

Spoonail様も同様のツールを作成されていたんですね。
私はOCRも翻訳APIも殆ど触ったことがなく、無料で際限なく使えるものを
手探りで探してましたが・・・この分野は色々大変そうだということを
身に染みて実感いたしました。

11
Spoonail 2020/05/12 (火) 00:36:59 c64f3@f0312 >> 9

screen.pngを確認したところ、見切れていました。
一応、こちらに現物を添付します。
https://drive.google.com/open?id=1lafteBnh0g3n-aP5hsxfck5K-19vXw0b

高DPI対応ですが、Windowsフォームの場合マニフェストファイルで対応できるようです。(Windowsフォームでの開発かな?と予想しました。違っていたらすみません。)
https://qiita.com/felis_silv/items/efee4b1a397b0b95100a

実は自分もOCR+翻訳ソフト作っていて、これに一時期悩まされました(^_^;)
フォームが拡大されているのでズレちゃうんですよね…

10
synctam 2020/05/11 (月) 22:58:09 6a35e@02360 >> 8

早速の対応ありがとうございます。
ワンクリックで DeepL 翻訳も実行されるようになり、更に使いやすくなりました。

9
ぬるっぽ 2020/05/11 (月) 22:45:25 >> 7

ご使用頂き、ありがとうございます!
高DPI設定については全くの盲点でした。ご指摘感謝いたします。
一点確認して頂きたいのですが、OCR読取を行うと実行ファイルと同階層に
「screen.png」という直前に取り込んだ画像を出力しています。
これが見切れているという認識で合っていますか?

一応※の操作でPCOT.exeに対して拡大をオフにすれば問題なく動作はするのですが、この設定に気づかないユーザーも多いかなと思い報告させていただきました。

ただ、ご指摘の点についてですが、調査をしてみますが内容によっては
対応できない場合もあることをご了承願います。
いずれにせよ、説明書には注意点として明記させていただきます。

ご指摘ありがとうございました!

8
ぬるっぽ 2020/05/11 (月) 22:34:02 修正 >> 4

すみません・・・勢いあまって右クリックの処理を外してしまいました・・・。
原文テキストを編集後、再度DeepLで翻訳する場合に右クリックは必要だったのを
思い出したので、急遽もとに戻しました。
周りの友人含めて誰一人まともに触ってもらえなかったので
ご意見を頂けて浮かれてしまったようです・・・すみません。
再度戻したものをアップしましたのでお手数ですがご確認ください。

7
Spoonail 2020/05/11 (月) 22:27:59 c64f3@f0312

すみません、高DPI設定でスクリーンの拡大をしているとおそらくキャプチャ画像が切れてしまっているのか、OCRがうまくいかないようです。

以下の3行の文章に対してOCRを試してみたところ…
Even so, the Queen seems more
determined than ever. Under her rule,
prosperity awaits the Ant Kingdom!

以下のようにOCRされました。
Even so, the Queen seems determined than ever. Under

アプリケーションの自動拡大設定をオフ※にすると以下のように全体がOCRできたので、この設定の影響の可能性が高いです。
Even so, the Queen seems more determined than ever. Under her rule. prosperity awaits the Ant Kingdom!

※アプリケーションのプロパティ>互換性タブ>高DPIの設定>高DPIスケール設定の上書き>チェックボックスをON

一応※の操作でPCOT.exeに対して拡大をオフにすれば問題なく動作はするのですが、この設定に気づかないユーザーも多いかなと思い報告させていただきました。

6
ぬるっぽ 2020/05/11 (月) 22:15:39 >> 4

修正したものをOneDriveに上げました。
お手数ですがご確認ください。

5
ぬるっぽ 2020/05/11 (月) 22:04:51 >> 4

早速ご使用して頂き、ありがとうございます!

現状では、「翻訳」ボタンを押した後、原文を右クリックする仕様になっていますが、「DeepLと連携」にチェックが入っている場合は、「翻訳」ボタンを押した時に自動的に連携ができないでしょうか?

DeepLについてはインストールしている人だけが恩恵を受けられるので、試験的に導入したものの、ご指摘の通りDeepLをインストールしていない場合でもクリップボードにコピーされるだけで、特に不便はないと思われますので早速修正しますね。
ご意見ありがとうございました!

4
synctam 2020/05/11 (月) 21:51:37 6a35e@02360

DeepL 連携について
現状では、「翻訳」ボタンを押した後、原文を右クリックする仕様になっていますが、
「DeepLと連携」にチェックが入っている場合は、「翻訳」ボタンを押した時に自動的に連携ができないでしょうか?

3
synctam 2020/05/11 (月) 21:14:44 6a35e@02360

おお!これは素晴らしいですね。
早速、Eschalon: Book I で試してみましたが、まさに自分が求めていたものです。
素晴らしいツールを公開していただき、ありがとうございます。

2
kazuのFMSの部屋管理人 2020/05/11 (月) 17:58:31 修正 19fcb@13e49

HP再開おめでとうございます!
いつもお世話になっております。再開おめでとうございます、これからも応援しています。
リンク