iwasiblog

イワシブログ - Activity log of an iwasi -

KinectとOBSで映像の背景ぼかし

遠隔会議などでカメラを使用する際に,映像をより良いものにしたいという気持ちは起こるもの.

中でも,映像の背景がボケていると被写体を際立たせた画作りができ,同時に雑然とした背景を隠すことができる,プライバシー保護になるといった効果が得られて良い.

一般に,映像の背景をボカすとなると,センササイズの大きいカメラと望遠レンズを使用したり,GeForce RTXシリーズのグラボとNVIDIA Broadcastを使用したり,あるいはPerfectCamを使用するといった選択肢がある.

一方,Kinectシリーズのどれかを持っている場合,OBSの仮想カメラ機能とobs-kinectというプラグインを用いることでこれを実現することができる(obs-kinectKinect v1,v2,Azure Kinectに対応している).dGPUのない環境でも動作するので,ビジネス用ノートPCなどとの相性も良い.

背景ぼかしの様子 画像は公式GitHubリポジトリのissueより.

NVIDIA Broadcastなどは人物領域(前景)とそれ以外(背景)に分離して背景部分をボカしているのに対し,Kinectを使った処理では深度によってボカすか否かを判断しているので(一定の距離の範囲外がボケる),カメラの被写界深度にやや近い感じのボケかたとなる.

また,NVIDIA Broadcast同様,背景のぼかし以外にも背景除去などができる.

使用するKinectは映像が最も高精細かつ小型で設置が楽であるという点でAzure Kinectをおすすめしたいが,記事執筆時点ではAzure Kinectへの対応は開発中であるため,開発中のビルドをダウンロードする必要がある.

背景ぼかしの機能は実装されているものの,筆者の環境だと最新の開発ビルド ( #25)を設置しただけだと深度の取得ができず,一旦古いバージョンを設置した後に最新の開発ビルドで上書きする手順をおこなったら正常に動作するようになった.

PowerShell起動時にPSReadLineが無効になる(備忘録)

ある時からPowerShell起動時に以下の警告が出るようになった.
PSReadLineが無効だとコマンド履歴やシンタックスハイライトが使えず不便である.

警告: PowerShell により、スクリーン リーダーを使用している可能性があること、および互換性のために PSReadLine が無効になっている可能性が検出されました。再度有効にするには、'Import-Module PSReadLine' を実行してください。

日本語でググっても情報が見つからなかったので英語で調べたら以下の解決法が出てきた.

https://serverfault.com/questions/1014754/cause-of-warning-powershell-detected-that-you-might-be-using-a-screen-reader-an

リンク先の2番目の解答にあるスクリプトを実行したところ,次回から警告は出なくなった.
何らかのタイミングでレジストリ内のスクリーンリーダーのフラグが立ったままになってしまっているということのようだ.

スクリプト本体を以下に引用する.

続きを読む

SECCON 2019 Online CTF Writeup

SECCON 2019 Online CTFに参加したので、解いた問題のwriteup.

大会概要

  • Time: 2019/10/19 6:00 (UTC) ~ 2019/10/20 6:00 (UTC)
  • Style: Jeopardy (Dynamic Scoring)

Agenda (得点は競技終了時のもの)

  • Welcome (misc 50pts)
  • Thank you for playing! (misc 50pts)
  • Beeeeeeeeeer (misc 110pts)
  • Sandstorm (misc 279 pts)
  • coffee_break (crypt 56pts)
続きを読む

【Unity】Cutout系シェーダーでSSAOが透ける際に行なった対処

【検証環境】

  • Unity 2017.4.12f1 Personal(64bit)

  • ユニティちゃんトゥーンシェーダー Ver.2.0.4.3p1 (ver. 2.0.5 以降修正済み)

  • まんまるしぇーだー_ver_1.3

問題となる現象

ユニティちゃんトゥーンシェーダー2.0 (UTS2)等に同梱されているCutout系シェーダー(テクスチャのアルファやクリッピングマスクで透過を行うシェーダー)を使用した際に,ポストエフェクトのSSAOが正しく適用されず,背景のAOが透けたようになります(図1).

f:id:kuroiwasi:20181002114210p:plain

図1 Cutout系シェーダを適用したオブジェクトが存在するシーンにSSAOをかけた結果

/*

本記事では,Unity 2017.4.12f1上でUnity TechnologiesによるPost Processing Stackに搭載されたSSAO(Screen Space Ambient Occlusion)機能を使用していることを前提とし,以下の2つのシェーダーについて対策*1を述べます.

  • UnityChanToonShader/NoOutline/ToonColor_DoubleShadeWithFeather_TransClipping
  • MMS/Mnmrshader1_3_Clipping

【2018/10/06追記】ユニティちゃんトゥーンシェーダー Ver.2.0.5以降では修正されており,問題の現象は発生しません.

*/

*1:あくまでシェーダーに詳しくない筆者が対症療法的な対策をした記録であることをご承知おきください.本記事の内容よりも有効,または根本的な対処法が存在する可能性があります.

続きを読む

SECCON 2015 Online CTF Writeup

SECCON 2015 Online CTFに参加したので、解いた問題のwriteup.
以下の問題について書いた.

  • Agenda
    • SECCON WARS 2015 (Stegano 100pts)
    • Reverse-Engineering Android APK 1 (Binary 100pts)
    • Steganography 1 (Stegano 100pts)
    • Steganography 2 (Stegano 100pts)
    • Steganography 3 (Stegano 100pts)
    • Last Challenge (Thank you for playing) (Exercises 50pts)
続きを読む

EKOPARTY CTF 2015 Writeup

EKOPARTY CTF 2015に参加したので、解いた問題のwriteup.
以下の問題について書いた.

  • Agenda
    • Slogans (Trivia 50pts)
    • Banner (Trivia 70pts)
    • SSL Attack (Trivia 90pts)
    • Blocking truck (Trivia 100pts)
    • SCYTCRYPTO (Crypto 50pts)
    • XOR Crypter (Crypto 200pts)
    • Patch me (Reversing 50pts)
    • Olive (Misc 50)
    • Press it (Misc 100pts)
続きを読む