2020-12-12

テレビの代わりにプロジェクター LG HF60LS 動作検証メモ

2019年12月ころテレビ代わりにプロジェクター「HF60LS」(LG製)を購入。

約1年使用し掃除ついでに動作を検証しました。カタログからはわからない使い勝手を中心に動画を撮り、使用感などをメモしておきます。

結論:「HF60LS」はテレビ代わりになる!!


プロジェクター「HF60LS」

H60LSはFullHDの解像度で60Hzのリフレッシュレートのプロジェクターです。詳細はアマゾンやメーカホームページを参照。


接続状況

以下のような接続をして使用しています。
プロジェクタ:LG HF60LS
HDMIハブ:Buffaro BSAK302
HDMI1:4Kチューナ 東芝 TT-4K100 ※TV視聴、録画
HDMI2:Amazon Fire Stick 4K
HDMI3:Nintendo Switch
その他:Amazon Echo Dot



検証1 台形補正

台形補正について確認。
上下からの投影、上下反転からの投影は自動で補正してくれる。
斜めからの投影の修正は手動で可能。25°くらいは補正可能だけど、その分画面が小さくなる。



検証2 CEC連動

LG HF60LS、4Kチューナ 東芝 TT-4K100、Amazon Fire Stick 4KでのCEC連動起動を確認。
LG HF60LSは「設定」「機器設定」「SIMPLINK(HDMI-CEC)」を有効にすると連動操作が可能になる。

HDMI接続機器との連動オン、連動オフは問題なく動作。
プロジェクタ自体の起動は7秒ほど。そのあと映像が出るまでは接続される機器側次第と思われる。

遅くても11秒で映像が表示されている。2010年頃の国内製ハイエンドテレビが完全待機状態からの起動も10秒ほどのため、あまりストレスはないかと思う。
  • HF60LS側リモコン ON から TT-4K100 起動と放送波バナーが表示されるまで11秒
  • TT-4K100側リモコン ON から HF60LS起動し放送波バナーが表示されるまで7秒(TT-4K100が完全に待機状態になってなかった模様。しばらく放置し再確認したところ11秒ほどだった)
  • Amazon Fire Stick 4Kリモコン ON からHF60LS起動し放送波バナーが表示されるまで7秒
ネットワーク内にAmazon Echo Dotがあり、Fire Stickの操作が可能となっている。このため「アレクサ、テレビつけて」「アレクサ、テレビ消して」で、プロジェクタが起動・終了することができた。リモコン探す手間が省けて便利。

HDMIハブを介して接続しているが、アクティブがTVチューナ(TT-4K100)になっていてもFire Stickを介してプロジェクタとTVチューナが起動した。すごい便利だ。
欲を言えば、HDMIの入力切替、チューナのチャンネル変更、音量変更も声で操作したくなる。

その他、チューナ側リモコン、Fire Stick リモコンの電源、音量ボタンでプロジェクタ側の操作も問題なくできた。プロジェクタ側リモコンがなくても接続機器側があれば操作に困らない。



検証3 遅延

PC側モニタとプロジェクタにて、映像の遅延量を確認した。
プロジェクタ側の映像モードによって遅延量が異なる結果となった。
一般的なテレビと同じように「あざやか」モードなどは各種映像補正を実施しているため遅延していると思う。

結果は以下。
あざやか:PCモニタと比べ+180ms 遅い
ゲーム :PCモニタと比べ+80ms 遅い

ゲームモードであれば、PC操作やシビアな反応が求められないゲームは問題なくできると思う。あざやかは、PC操作のマウスの遅延が気になる。




検証4 フレーム補間

1年使用し、あざやか設定で映像がぬるぬる動くと感じるケースが多々あった。カタログには特にフレーム補間など記載はなかったように思う。

24fpsの動画をPCモニタ(リフレッシュレート144Hz)とプロジェクタの投影を並べNikon Z50のスロー撮影(120fps)して確認してみた。

結果:フレーム補間されてそう

撮影してみた結果、プロジェクタ側の描画されるフレームが多かった。フレーム単位でみるとPCモニタ側が1フレーム出している間にプロジェクタ側は2~3フレーム更新されている模様。60fps程度までにフレーム補間されているものかと思う。

ただ、苦手なものもあるらしく、左下のシークバーがずれて表示されているようなケースもあった。






まとめ

HF60LSの台形補正、CEC連動、遅延、フレーム補間の挙動を確認しました。
プロジェクタでありながらテレビの基本的な機能を備えているように感じました。代用可能と思っています。(テレビ代わりに使ってます。)
フレーム補間されていそうなことも分かり満足しています。

それ以外で購入に踏み切った理由は以下。
  • 小型(オフィスにあるEPSON FullHDのプロジェクタの半分以下のサイズ。設置難易度が低い。)
  • 明るい(一般的なプロジェクタより暗いが、モバイルプロジェクタに比べると数倍明るい。)
検証で使用した機材も紹介しておきます。

2020-09-30

SikuliX findAnyListで見つかった画像を判別する

SikuliXで画像を検索するメソッドのfindAnyListは、一度に複数の画像を検索し見つかったものを返します。

どの画像が見つかったか判断する方法をまとめます。


index番号で判別

検索結果のオブジェクトに対してgetIndexのメソッドを呼ぶと検索画像配列の位置が得られます。

これによりどの画像が検索されたか判定できます。

サンプルコードは以下。

	

# 検索画像配列
IMGS = [
    "1601465877364.png"
    ,"1601465887104.png"
    ,"1601465895898.png"
]

# 検索
ms = reg.findAnyList(IMGS) 

# 検索結果配列から1つごと取り出して処理
for m in ms:        
    # indexが2の場合クリック
	if m.getIndex() == 2:
		m.click()
		break

上記はIMGSに登録された画像のうち、3番目(index=2)の画像のみクリックする。


ファイル名で判別

index番号で判別した場合は、検索画像配列の並びが変わると判定条件のindex番号も変更すが必要になります。

並びに影響を受けないファイル名で判別する方法もあります。

画像オブジェクトはnameプロパティでファイル名を取得することができます。検索画像、検索結果画像のnameを比較することで対象の画像であるか判別できます。

サンプルは以下。


# 検索画像
IMG = Pattern("1601465895898.png")

# 検索画像配列
IMGS = [
    "1601465877364.png"
    ,"1601465887104.png"
    ,IMG
]

# 検索
ms = reg.findAnyList(IMGS) 

# 検索結果配列から1つごと取り出して処理
for m in ms:
	# 名前が一致したらクリック
	if m.getImage().name == IMG.image.name:
		m.click()
		break

まず、比較用画像オブジェクトIMGを定義します。

検索画像配列には、このIMGを追加。

検索結果のgetImageを呼び出すと画像オブジェクトが取得できます。この画像オブジェクトのnameプロパティが見つかった画像のファイル名になります。

nameプロパティの一致をみることで目的の画像かを判別できます。


2020-08-30

SikuliXで様々な背景に表示されるアイコンを認識させる

SikuliXで画像認識をさせていると、背景画像の上に描画されたアイコンを認識させたい場合があります。

背景を含めて認識画像にすると、別の背景に配置されたアイコンの認識率は下がります。

これを解決するため、 SikuliXではアルファチャンネル付きの画像が扱えます。

背景部分を透過させ、アイコンのみを認識させることができます。


アイコンを認識させたい

オペラオムニア(DFFOO)の画面で「NEW」アイコンを認識させるとこのようになります。(認識閾値 0.70)

右側のNEWアイコンをスキャンしました。右側のNEWアイコンが認識率が高いため濃い赤で塗られています。

左側に移るにつれ、認識率が下がり、左端では認識されてていません。

背景を透過させ、認識できるようにします。


GIMPで背景画像を削除

スキャンした画像の加工にフリーの画像エディタ「GIMP」を使用しました。

SikuliXで取り込んだ画像はスクリプトフォルダに保存されています。

これをGIMPで加工していきます。


アルファチャンネルの追加

右側のレイヤー管理で右クリックするとメニューがでます。

その中から「アルファチャンネルの追加」を選択します。

あとは画像から不要部分を消すだけです。

消しゴム使用時は、「不透明度 100」「ハードエッジ チェック」が良いです。

ハードエッジにチェックしないと、消した跡がグラデーションがかかり、完全に消えません。

加工前

加工後

あとは、ファイル→名前を付けてエクスポートで元のファイルに上書きするだけです。


SikuliXで透過画像を認識させる

以上の手順で認識画像の背景は削除されました。

SikuliXでスクリプトを開くとちゃんと背景を透過した表示になります。
(画像の再読み込みが必要なため、スクリプトを開いている場合は、開きなおす必要があります)

そのまま認識させるとこのようになります。(認識閾値 0.70)

認識閾値を0.90くらいに上げると正しく認識されます。

すべてのNEWが濃い赤で認識されるようになりました。


まとめ

認識画像の背景が異なる場合や動画のように時間とともに変化する場合、変化しない部分を残して削除することで認識させるようになります。