Blenderを使用したNDVI画像の処理

この記事はBlender Advent Calendar向けに作成しました。本稿は元々Analyzing NDVI Imagery Using Blenderとして投稿していたものに加筆修正を加えたものです。

Blenderの本領である3D作成とは違った趣向ですが、レンダリングノードがどのくらい汎用性があるか、ということに関して示すことができましたら嬉しいです。

先ずはNDVIに関して軽く解説。NDVIはNormalized Difference Vegetation Indexの略で、正規化植生指標という植物の量や活力を表す値です。具体的には赤の可視光と近赤外線を測定することにより得る値となります。

国土環境モニタリングのページにその計算方法などが掲載されています。

どのようにして撮影するのか

一般的なカメラの素子は赤外線を捉えることができますが内部にそれを遮断するフィルタが入っており、そのまま撮影しても必要な光成分はほとんど撮影されません。Public Labはそれを分光するためのフィルタを販売しており、それを使用し、カメラを改造するか、改造済みのカメラを入手することができます。このカメラでは赤外線成分を赤チャンネル、可視光線を青チャンネルに記録します。

基本的原理は同じなので、衛星などの元データなどのデータも流用可能かとは思いますが、データ構成により調整を行う必要があるかもしれません。

Blenderを使用しての処理

ここで使用する画像はInfragramカメラに付属のサンプル画像を使用します。このカメラで撮影すると、以下のような画像が撮影できます。

撮影画像

NDVI画像を抽出するのにはノードでNDVI変換を定義しました。

NDVI変換ノード

このノードグループからは以下のような出力が得られます。この画像をColor Rampなどと合成することにより擬似色画像を構成することができます。

NDVI出力画像

以下はColor Rampを当てはめた例です。活性度に応じて白や緑に表示されています。

NDVI擬似色画像

Public Labでは撮影した画像を処理するサービスがありますが、Blenderで処理することにより同様の画像をローカルに処理することができます。

Infragram.org的 その1

Infragram的 その2

Blenderではノードを設定し、組み合わせることで、目的に応じた映像を出力することができます。

ノード設定

例えば以下は白黒の可視光線画像にNDVI画像を合成した画像です。

活性を示したオーバレイ画像

この画像では植物が活発と思われる部分がはっきりとハイライトされるため、存在する植物などを表示することができます。

以下、使用したBLENDファイルです。

infragram-2014082702.blend.zip

BlenderでNDVI処理する利点

  1. 柔軟性のある加工を施すことができる。
  2. Packすることにより、共同作業者などと単一のファイルをやりとりすることができる。
  3. NDVI動画画像も静止画と同じぐらい簡単に加工可能。(タイムラプス映像や気球映像などの加工も容易)ただし動画を使用した場合現状Packされないことにご留意下さい。
  4. 非破壊的に処理を加えることができるため、処理の切り替えができるほか、またどのようにして最終画像に至ったかということがファイルに含まれるため、いわば自己ドキュメンティングなファイルを配布することができる。

応用

同様のプロセスを使用して、その他の分野の加工でも、光成分に関する加工を行うことができます。カラーランプは色を一定の色のスケールに割り当てることができるため、例えば犬から見た景色、などもシミュレートしてみることが可能です。

犬が見る街

明日はnecoganeさんのテクスチャ作成方法(自己流)について、ということです。

萌えモデリングをまた始めてみる

ポリゴン分割モディファイアを使用したキャラクターの作り方について解説しているビデオがあったのでそれを応用してまた萌えモデリングを試してます。
モデリングしているのは「ゆゆ式」から野々原ゆずこ。

modeling

確かにポリゴン分割モディファイアを使用することによりかなりあたりが取りやすい。これまでは四角形からそれを押し出す形で作ってたけど、なかなか形にならなかったので。

yuyu.blend

髪の毛の試行錯誤も開始。こちらも同じ方法でできないかと考えてます。

色とアニメとそのグラフ……

Blenderの画像・映像ビューワーには各種分析機能が備わってて色の確認ができるようになっているのですが、ちょっと遊んでみました。

yuyushiki

右に表示されているのがそのグラフ群。上からヒストグラム、波形、ベクトルスコープ。

あまり詳しくはないのでわかりやすい解説はできませんが、ヒストグラムは画像中に含まれる色成分(この表示の場合はRGB)の量を示したものです。デジカメの液晶でも表示できたりするあれと同じものです。「ゆゆ式」のこのプロモ画像の場合はピークが尖っているので特定の色に集中した絵作りになっているということになります。

nyaruko

「ニャル子さん」の場合は白い部分が多いのでそれもヒストグラムに現れてます。

上から二番目の波形というのは(表示されているものは)YCbCrの表示。左(マゼンダ)から輝度で、画像の明るさのグラフです。その横が色差信号を示していて、真ん中(黄色)が青色成分から輝度を引いて、一定の定数を掛けたもの、一番右(青)が赤色成分から輝度を引いて一定の定数を掛けたものです。ちなみに縦が明るさ、横が画像の横方向のラインを示します。(Blenderではその他では輝度、RGBなどの波形を表示することも可能。)

muromi

「むろみさん」の画像の場合、更に広い範囲に色が広がっているのがヒストグラムから分かります。

ikamusume

同じ海をテーマにしたアニメの「イカ娘」だとこんな感じ。「むろみさん」が広い範囲の色を均一的に使っているのに対して、一定の色が強く出ているのが「イカ娘」

一番下に出ているのがベクトルスコープ。少し薄いですが12時の位置の四角い印が時計回りにマゼンダ、青、サイアン、緑、黄色、赤を示しています。ちなみになぜこのような円の配置になっているかというとこれが前述の色差信号をCrの部分を縦軸、Cbの部分を横軸にしているからです。

中心に行くほど色がない状態に近く、外側に行くほど色が強くなってきます。四角い印はカラーバーで調整する時に使用するもので、それぞれの色がここに合うようにします。

colorbar

ちなみに上のプロモ画像の場合、色の強さなどが放送に配慮したものではないため、多分そのままでは放送できないと思われます。(ベクトルスコープの円から大きく逸脱している部分があるので……。)

muromi-scr

そのため、本編だと結構押さえ気味になっているようです。