iwasiblog

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

pgAdmin 4 v7 の Query Tool 用フォントを無理やり変更する(備忘録)

pgAdmin 4では,エディタ(Query Tool)のフォント設定がなくなってしまいました.
そこで,内部で使用しているCSSを書き換えてフォントを変更します.

pgAdmin 4 v7.7をWindowsかつローカルユーザ向けにインストールした環境を想定します.

続きを読む

【Unity】Androidでマウス使用時にカーソルを非表示&左クリック以外も取得

Andoidでは,マウスを接続するとカーソルが表示される.そのとき,Unity製のアプリにおいて

  • カーソル位置を固定できるか
  • カーソルを非表示にできるか
  • 右クリックとホイールクリックを認識できるか

の3つについて知りたかった(が検索で見つかる情報が古いものばかりだった)ので検証した.
結果的に,固定以外は可能であった.

環境

  • Android 12 (SP2A.220505.002)
  • Unity 2021.3.4f1
続きを読む

360度動画を使ったフォトグラメトリ(OpenMVG / OpenMVS)

フォトグラメトリでは,一般に良いカメラを使い照明条件など様々な要素に気を遣いながら大量の写真を撮影する必要があります.一方で,3Dモデルやテクスチャの綺麗さをある程度犠牲にしても手軽さを追求できないかと考えた時,全周を一挙にかつ高速で連続して撮影できる360度動画は良い選択肢となります.
360度動画を使用したフォトグラメトリにはいろいろと先行事例がありますが,高級なソフトウェアを使わずなんとかできないかと考えた結果,OpenMVGとOpenMVSにたどり着きました.公式で手順が用意されているので,ドキュメントをなぞってやってみた,という記事です.

得られたもの

youtu.be

続きを読む

【Unity】2021年にもなってRazer Hydraを動かしてみる

はじめに

運よくRazer Hydra*1を手に入れたので,Unityで開発をしてみようかと思いました.
しかし,残念なことに公式のunitypackageがすでに消滅しているので,自力で何とかするほかありません.
以下,UnityでRazer Hydraの位置と回転を取れるようになるまでのメモです.
(後日談として,使いやすいように書き直したものをGitHubに上げました)

*1:2011年発売の6DoF両手モーションコントローラです.磁気式のトラッキングを採用していて精度もそれなりに高く,貴重な存在です.VRとの相性も良く,Oculus Rift DK1~2の時代にはHMDのトラッキングやコントローラに利用されるなどしました.

続きを読む

SECCON Beginners CTF 2021 Writeup

作問者Writeupが公開されている問題も多いですが,一応こう解いたよ,という記録です.

大会概要

  • Time: 2021/05/22 14:00 (JST) ~ 2021/05/23 14:00 (JST)
  • Style: Jeopardy (Dynamic Scoring)

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

  • welcome (welcome 51pts)
  • Logical_SEESAW (crypto 118pts)
  • only_read (mreversing 55pts)
  • osoba (web 51pts)
  • json (web 109pts)
  • cant_use_db (web 108pts)
  • git-leak (misc 58pts)
  • Mail_Address_Validator (misc 76pts)
  • depixelization (misc 136pts)
続きを読む

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

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

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

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

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

github.com

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

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

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

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

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