第6回: 最終課題に向けて,リアルタイム画像処理

目次

最終課題について

授業の最後にお伝えします.

リアルタイム画像処理

動体検知

動体検知は動くモノを検知することです.背景と前景との差分あるいは異なるフレーム間の差分を見る,つまりある瞬間と別の瞬間のピクセルの差を見ることによって,動いたモノ(変化したピクセル)を知ることができます.動画では

今のフレーム - 数フレーム前のフレーム = 差分のピクセル

を行なっています.

Blob Tracking (OpenCV)

Blob TrackingとはOpenCV(コンピュータビジョンのライブラリ)ベースの動体検知システムです.前景と背景をインプットに繋ぐことで,動体とその幅と高さの値も取得することができます.画面内での動体の情報についてはInfo DATを配置し,参照先をBlob Track TOPにすると取得できます.Info DATで取得できるデータについて表に示します.non-commercialライセンスでは同時に2つの動体までしか検知できないようです.

取得データ 概要
id 検知開始時からの取得番号
u 横座標
v 縦座標
width
height 高さ

フレームキャッシュ

フレームをキャッシュしておくことで,過去のフレームを使用した残像系の表現につなげることができます.

画面分割

入力画像をCache TOPに繋げ,Cache Select TOPでキャッシュしたフレームを選ぶことで分割した画面ごとに少しずつ時間を遅らせたような表現ができます.

Feedback

Feedback TOPは自分より後のオペレータを指定することで,フィードバック効果を得られるTOPです.Feedback TOP後に付け加えた効果付きのTOPとFeedback前のTOPが合成されているTOPを参照する必要があります.

Time Machine

フレームキャッシュの表現の中に,フレームを指定分キャッシュしてそのどれを選ぶかエリアごとに決められるTime Machine TOPを使ったものがあります.Texture 3D TOPでキャッシュするフレームを連番で保持しておいて,Time Machine TOPのインプット1つめに素材,2つ目にグレースケールのイメージを入れることでそのイメージの階調によってフレームを選ぶエリアを決めることができます.白と黒のフレームのインデックスは決めることができます.

テクスチャを貼る

2Dのまま解析したり効果を加える以外にも3Dの構成要素として適用することもできます.

Color Map

MATのColor Mapにテクスチャを貼ることでオブジェクトの表面に意図したイメージを貼り付けることができます.

LITEというバンドが前編オンラインライブを行ないました.そのうちの1曲だけKezzardrixがライブエフェクトとして参加した模様が公開されています.2Dのノッペリとした定点の映像だけでもうまく効果をつけたり,3D上に配置したりすることで大きく印象が変化していることがわかります.

Post Processing

PostProcessingとはレンダリング前後の情報を使用して,効果を加えることを言います.代表的なものを以下の表に示します.

名称 概要
Depth of Field 被写界深度,いわゆるぼけみ
Film grain フィルムの粒状のノイズ
Glow 光のにじみ
Vignette ビネット.画面端の暗み
SSR スクリーン空間上の反射

Glow

光のにじみを表現するGlowを,間的に実装してみます.厳密なアルゴリズムとは異なるのですが,うまくBlur TOPでボケさせて加算合成すると光のにじみらしきものが表現できます.
Blur TOPのPre Shrinkは増やしすぎないように注意しましょう.負荷がかかりすぎて重くなります.

Film Grain

フィルム特有の粒状のノイズをこれも簡易的ですが実装します.Noise TOPのType > Random(GPU)とすることでホワイトノイズを作り出し,乗算合成することで実現します.

Vignette

ビネットの読みます.Ramp TOPを使ってVignetteは周りを黒くぼかすことで,カメラで起こる微ベッティングをシミュレーションします.

RGB Shift

RGB Shiftは映像の乱れのような効果を起こします.Channel Mix TOPでRGBそれぞれの値を取り出し,それぞれを横方向に移動させることで実現します.

TouchDesignerをZoomのカメラに

COVID-19によってオンライン授業が始まり,オンラインツールにSnap Cameraなどの加工用アプリケーションを通すことで生カメラさへも個性を表現する媒体となりました.TouchDesignerユーザーはZoomのカメラとしてTouchDesignerで作ったアプリ画面を選ぶことができます.

NDI Virtual Input

NDI Virtual InputとはNDIというネットワークを介してビデオを共有可能にする規格からカメラとしてシステムに認識させるツールです.インストーラはサーバーからダウンロードしてください.
起動したら入力ソースを選んでください.

NDI Out TOP

NDI Out TOPはNDIで送信するためのTOPです.なんとCOVID-19の状況によって2020年4月のアップデートからnon-commercial版でもNDI IN/Out TOPが解放されました!使い方は最終的にNDI Out TOPに繋げるだけです.

Zoomの設定

Zoom側ではVideoアイコン横の矢印ボタンから入力をNewTek NDI Videoを選ぶだけです.

課題

授業内課題

図のようにカメラからのインプットを使ってインスタンシングしなさい.

要件

  • Wireframe MATで枠も作成すること
  • Glow,Feedbackを使用すること
  • ファイル名を学籍番号+名前(ローマ字).toe として添付して提出(例: 11111111SeiyaAoki.toe)

締切: 2020年6月19日15:50
提出先: Google Classroom

来週までの課題

今日の内容を使って,リアルタイム画像処理しなさい.

要件

  • ファイル名を学籍番号+名前(ローマ字).toe として添付して提出(例: 11111111SeiyaAoki.toe)
  • カメラのインプットを必ず入れること(Video Device In TOPが使えない学生はMovie File In TOPでOK)
  • 使用したファイルがあればプロジェクトファイルと同一フォルダに入れて,Zip化して添付すること

締切: 2020年6月25日23:59
提出先: Google Classroom