日記/2019-04-27 のバックアップソース(No.1)

お名前:
#author("2019-04-27T17:45:09+09:00","default:editor","editor")
**雑記:画面解像度と文字認識 [#w3679fdc]

「画面を文字認識」する、トレジャーハント用アプリ ROTR。

友人にも使ってもらっていたところ、ちょっと「想定外」で「うまく動作していない」環境が見つかってます。

ちょっとすぐに対応できない感じなので「ごめん」してもらってるんですが。~
とりあえず、何が起きているかを共有も兼ねた、備忘録メモ。
#region(→続きを読む。)
***端的にいうと、どういう環境か。 [#p1afc4db]
Windowsの持つ、画面の拡大・縮小機能で「100%以外の倍率にしている」環境です。

Windows10だと、以下のような手順で設定できる場所。
-デスクトップを右クリック、メニューが開く。~
→そこにある「ディスプレイ設定」選択、ウィンドウが開く。~
→そこにある「拡大縮小とレイアウト」内「テキスト、アプリ、その他の項目のサイズを変更する」

ここ、初期値&推奨値は「100%」で、ROTRもこれを前提にしています。~
違う値になっていると、ROTRがうまく認識を行えません。

***なにが起きているか。 [#o4e59c32]
問題は2つ。
-変倍に起因する座標系のギャップ
--「Windows/アプリが把握している」認識エリアの座標と。~
「実際に画面表示されているイメージ画像座標」とがずれてしまっています。~
その結果、「認識したい位置」をアプリが切り出せません。
---例えば、倍率125%、切り出し座標を「100,100」と指定したとします。~
アプリは自分の座標系を信じて「100,100」の位置を認識しようとするとするのですが。~
上記100,100の位置にある画像は、変倍機能ゆえに実画面上は「125,125」に表示されています。~
つまり、「認識したい位置」よりもだいぶ左上を認識しようとしているわけです。

-文字自体の変倍
--文字が拡大/縮小された結果、認識アルゴリズムで文字を拾えないケースがでています。
--Windows標準の windows.media.ocr で拾えるケースはいいのですが。~
そうでない場合の「友瀬チューニング」がこの変倍を拾えていません。

***利用者側回避策 [#x3ac7c9b]
上記の拡大・縮小を行わない「100%」にする。

ROを使っている環境でこの機能を使っているということは、たぶん
「画面の解像度が大きすぎて、ROが小さく表示されている」状況でしょう。~
そのため、上記「100%」にするのは困る、というのは理解できます。

ディスプレイドライバレベルでの解像度変更:
モニタが「1920幅」だったとしても、「1280幅」に指定するなどで対応するしかなさそうです。

***開発側対応 [#tdeed028]
少なくとも、以下のような調査・開発が必要です。~

-上記の「拡大・縮小率」の取得方法の調査が必要。
-解像度に応じた、取得文字に対する認識処理のチューニング。

正直、対応する気はしていません:ぶっちゃけ、友瀬が現状困ってないので(^^;;~
今の「友瀬自身もトレジャーハントで時間を使っている」状況では、なかなか。

とりあえず、あしからず、にて。
----
ご意見などがあれば。
#comment2(below)

#endregion