Nature | Photography | Music | Art -28ページ目

Nature | Photography | Music | Art

日々好奇心の趣くまま

サイト内の写真の使用ならびに無断転用を禁じます。

先日の蔵王樹氷の動画が完成しました。



今回作成に少々時間がかかっていたのは、先日自作したこれとかこれを実践で使ってみたかったのでいろいろ机上で試行錯誤していたためです。

簡単な作業だと思っていたのだが、画像処理を加えた画像と元画像を違和感なくマージするというのは想像するより困難が伴い、プログラムのパラメータやアルゴリズムを微調整しながら実験しては破棄の繰り返し。

出来の方はまだまだ納得がいかないのが実情ですが、キリがなさそうなのでとりあえず公開することにしました。

残りは今後時間をかけて追求すればいいかと。

しかしながら、やはり星景にディフュージョンフィルター効果やフォローフォーカス効果を加えると画面が華やかになるような気がします。



音楽についてですが、上述の通り映像だけで息切れしてしまったので、即興で適当につけてしまいました。

とはいうものの、なるべく撮影時に実物の風景を見ながら頭に浮かんだ曲想を大事にしたいと考えています。

この時、脳裏にずっと鳴っていたのはなにやらグレゴリアン・チャントのような単一のモードと狭い音域だけで成り立つ小節線の概念が希薄で静的な音楽でした。



なるべくそのイメージを壊さないように和声付け、あえて使う鍵盤の幅とキーを限定して極力スタティックな音楽にしてみました。



今年のモンスター達は殊の外スリムだったので、想定するような迫力のある映像にはならなかったのが心残りですが。


星撮りや暗いもの好きの人以外には無用な内容ですが。

ダークフレーム減算とは

https://en.wikipedia.org/wiki/Dark-frame_subtraction

原理は簡単で、同じカメラに生じる定常的・定位置的なノイズはダークフレーム(要はレンズキャップを被せて撮った黒い写真)も同じノイズを持っているので元の写真からこれを減算してやればノイズが消えるだろうというもの。

普通に昼間の写真を撮っている限りではこの手のノイズに関しては無視していいものだが、星とかその他暗いものを撮り出すとこれが非常に厄介者になってくる。

一般的にデジカメで撮影した画像を目で見る際はデジカメセンサで捉えた画像そのままではなく、ガンマ補正によって暗い部分のデータの大部分がより明るい部分に振り分けられていて、本当に暗い部分のダイナミックレンジは非常に狭いのです。
これが画像の暗い部分にノイズが多く載る原因の一端となっているわけです。

余談ながら、これをカバーする手法のひとつとしてETTR(Exposure to the right)というものがあるんですが、これに関しては現在勉強中なので後日全貌を理解して使いこなせるようになったら書きたいと思います。

ダークフレーム減算の話に戻りますが、このあたりの処理は天体屋さん達が使うのがほとんどなので有料の専用ソフトを使うのが定番のようです。
Photoshopとかでも工夫すればできるそうですが。

しかしながら、個人的には天体写真ほど高度な処理は行わず、そもそもの原理は簡単なので勉強と研究ついでにOpenCV & Boost C++を使ってプログラムを自作してみました。

https://github.com/delphinus1024/dark_frame_sub

ビルド・詳細な使い方はreadmeを参照いただくとして。

基本的に撮影の前後に同じ条件(SS,F,ISO,環境温度)でダークフレームを複数枚(これらを平均すると本当のノイズパターンになるはずなので)撮影するのが基本のようです。

個人的に特に困っているのが上で書いたようなノイズというよりホットピクセルといわれるもの。
長時間露光によるセンサー温度の上昇が主な原因となっているようで、カメラが古くなるとより多く発生するらしくこんな感じ。



おそらくカメラの種類によっても異なるのだろうが、明らかに星とは別の色や写り方なのが分かるかと思います。

とりわけウチのご老体の5D2とかで真夏に星など撮ったりするとこのホットピクセルがワンサカ載って賑やかなこと…(汗)
ダークフレーム減算はこのホットピクセルにも有効で、手作業での修正に時間をかけるのがイヤなので今回のプログラム作成に至ったわけです。

ご参考までにこのプログラムでの処理前・処理後はこんな感じ。





綺麗にホットピクセルが消滅しているかと思います。その他の種類のノイズは正直あまり変化はわかりませんでした。

全く個人的なニーズから即席で作成したライブラリですが、とりあえず公開しました。Windowsのみで動作します。

https://github.com/delphinus1024/midi_cv_ctrl

おそらく同様のことはopenFrameworksあたりを使えば容易にできるかと思いますが、そのあたりまだ勉強できていないためスクラッチから作成しました。

もしかしたら車輪の再発明なのかもしれませんが。

やりたいことは非常に単純で、MIDIフィジカルコントローラのフェーダーやボリュームやボタンでOpenCVの各種パラメータを操作してやろうというもので、これによって複数あるパラメータを同時にかつ視覚的に弄くることができるようになります。

使い方によってはOpenCVでVJ(?)のようなこともできるかと。(…やらないですが)

コンパイル・使用方法はreadmeあたりを参照していただくとして、簡単なものですが参考のためWebカメラでキャプチャした動画をRGB(OpenCVの場合BGRだが)それぞれのゲインをフェーダーで調整している動画を上げてみました。



使用しているのはRoland UR-80という化石のような機材で、ファンタム電源もついて単体で録音もできる。発売が2003年というからもう10年以上前のもの。

すでにドライバのサポートもなくなっているのだが、MIDI経由でフィジカルコントローラとしてしか使わないので結局今も使い続けている一品です。

もちろんこのライブラリ自体はMIDIに対応していれば最近のイケてるコントローラも使用可能です。

画像処理用のプログラム作成の際、往々にしてOn the Flyで複数のパラメータを同時調整する必要が多くて、それをなるべく直感的にできないかというアイデアから作成したものです。

数時間プログラムなのでいろいろバグなども残っているかもしれません。
この映像を撮りたいがためにここ何年もの間に何度足を運んだか知れない、その度に悪天候で断念。
しかしながら今回、完全に思い通りの絵を撮ることはできなかったものの、ようやくなんとかそれらしい映像を収めることができました。

それは「蔵王の樹氷原」に鎮座するスノーモンスターの大群。

天候の良好な時にここで一夜を過ごして月光浴するモンスター達を撮影するのが念願だったのだが、とりわけ他地方の人間にとってそれはなかなか敷居が高い。

今まで何回か行って分かったのだが、ここは生半可な晴天予報程度では晴れてくれず、加えて湿気を伴った冬型の西風が弱くなって初めて晴れてくれる。

現地の人曰く、樹氷原が冬季に晴れるのは2週間に一度あるかないかとのこと。

従って、自分の都合と好天が合致することを待っていてはいつまでたっても撮影が叶わないわけで、今回はつかの間の好天+弱風の予報を見計らってスケジュールを無理やり合わせて登ってしまうことにしました。

ここに登るには山形側・宮城側のいずれかからのコースがあるが、ルートは長くなるものの完全自力で登れて、壮大な南蔵王の樹氷原を間近で一望できる宮城側から登ることに。

機材が重いので樹氷原までの時間はゆっくり歩いて4時間ほど。

2時間ほど歩いて展望が開ける大黒天バス停あたりで蔵王連峰を臨む。夏は車で来ることができるが、冬季の景色は全く別物。



更に高度を上げると段々神々しい景色になってくる。
ただし、モンスター達は暖冬と先日の猛暑のため若干痩せ気味で形の良いものが少ないが。





樹氷原に到着、モンスターの間の風が避けられそうな場所を雪を均して幕営、夕暮れを待つ。



日が暮れると月が樹氷原を照らしだす。 撮影用途だと本当はもう少し月が痩せている方が星がよく写るので理想なのだが贅沢は言えない。






気温はおそらく-10度を下回るくらい。 完全防寒装備なので寒くはなく、月夜に茫洋と浮かび上がるモンスター達を眺めながら別世界の風景を楽しむ。



比較的穏やかな天候とはいえ、風の通り道ゆえ雪や氷の飛沫がひっきりなしに飛んできてレンズに着いてしまうため撮影できる方角がかなり限定されてしまう。

まあ、そのおかげでモンスターが出来るわけなので仕方がない。
電動ドリーも持参したが、飛沫がすぐについて動作しなくなるので視点移動撮影は諦めた。

夜半からは(予報通りだが)更に風が強まり、撮影はとりあえず終了して夜明けを待つ。



夜明け、強風ながらも天候が持ち堪えているのでなんとか撮影。



この後に天候は更に悪化、飛ばされないようにテントを畳み、吹雪の中を下山。
いや、あれこれ大変でした。。

下界に下りてみると何事もないように晴天だったりして…昨夜の出来事が一夜の夢のようです。
最近少々興味を持っているのが、パノラマや全天球によるTime Lapse撮影。

そのあたり手っ取り早く撮ろうと思うと、ThetaやSP360などの専用カメラも発売されているのでそれらを使えば簡単にできるのだが、天の邪鬼な性分ゆえ普通のDSLRを複数使ってその裏にある原理や理屈をきちんと理解しながら遠回りで目的地に行こうと考えました。

そのことによって、専用機ではできない表現も可能になる(かもしれない)し、逆に途中で挫折して上の簡単な方法に逃避するかもしれません。

このあたり、とにかく様々な理屈や技術の集大成なので道は遠いのだが、今回は取っ掛かりとして前提・必須となる「複数カメラの同期インターバル撮影」から。

市販ソフトとかもあるのだが、どうせなら後から応用やカスタマイズができるようにlibgphoto2を利用して複数のEOSをLinuxマシンからUSBハブ経由でコントロールするプログラムを自作してみました。

https://github.com/delphinus1024/gp_multi_sync

以下参考にされる方は自己責任・No Question・No Supportでお願いします。扱い方を誤るとカメラにダメージを与える可能性もあります。

ビルド方法・使い方は同梱のreadmeに(githubゆえ英文)書いてあるので割愛しますが、例えばカメラを複数個USB接続して5秒毎に同期撮影したいのであれば、

$ ./gp_multi_sync 5


でカメラの個数を自動的に検出して撮影開始。 ESCで終了します
指定する秒数はシャッタースピードの最長+1~2秒が最低値となります。それ以上短くすると破綻します。

また、libgphoto2ではカメラのストレージに格納されるファイル名は弄れなさそうなので、苦肉の策として各カメラの時間的な横並びが分かるように以下のようなCVSログファイルを指定されたディレクトリに書き出します。




/store_00010001/DCIM/100EOS5D,7S4A1467.CR2,/store_00010001/DCIM/100EOS5D,IMG_3825.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1468.CR2,/store_00010001/DCIM/100EOS5D,IMG_3826.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1469.CR2,/store_00010001/DCIM/100EOS5D,IMG_3827.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1470.CR2,/store_00010001/DCIM/100EOS5D,IMG_3828.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1471.CR2,/store_00010001/DCIM/100EOS5D,IMG_3829.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1472.CR2,/store_00010001/DCIM/100EOS5D,IMG_3830.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1473.CR2,/store_00010001/DCIM/100EOS5D,IMG_3831.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1474.CR2,/store_00010001/DCIM/100EOS5D,IMG_3832.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1475.CR2,/store_00010001/DCIM/100EOS5D,IMG_3833.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1476.CR2,/store_00010001/DCIM/100EOS5D,IMG_3834.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1477.CR2,/store_00010001/DCIM/100EOS5D,IMG_3835.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1478.CR2,/store_00010001/DCIM/100EOS5D,IMG_3836.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1479.CR2,/store_00010001/DCIM/100EOS5D,IMG_3837.CR2,
/store_00010001/DCIM/100EOS5D,7S4A1480.CR2,/store_00010001/DCIM/100EOS5D,IMG_3838.CR2,




以上はEOS2台の例で、カメラが増えるとCVS列が増えていく。(ウチにあるのは2台なので、3台以上は未確認)

基本的に屋外でバッテリー駆動のBeagle BoneやRaspberry Pi等にインストールして使うことを想定しています。
個人的には重いキーボードやマウスを持ち歩きたくないので、Beagle Bone Green+タッチLCDにインストール、簡単なGUIをかぶせてLCDのタップ動作で開始するようにしています。こんな感じ。



カメラはこんな風にお互いなるべく近づけて別々の角度を狙う。



この一式を持ち出して近所の荒川土手で試し撮りをしてみました。(つまらない被写体ですみませんが。)
2台のEOSにFishEyeと広角をつけ隣同士に並べ、オーバーラップする領域を残しつつそれぞれで空と地上を同時に撮影すると、





それをOpenCVのStitcherを使っていろいろな投影法(Map Projection)で合成してみると、

spherical



panini



cylindrical



stereogram



rectilinear



投影法にもいろいろなつなげ方があるのがお分かりいただけるかと思います。これはこれで奥深い世界で勉強しだすと面白くて仕方がない領域。

https://en.wikipedia.org/wiki/Image_stitching#Projective_layouts

これらを形よくトリミングすると、いわゆる「パノラマ写真」というものになり、その特殊なケースで円周魚眼(持ってない…)を2つ背中合わせにして撮影・合成すると全天球画像になります。

更にそれを時系列で繋げていくとパノラマTime Lapseになる(はず)。

今後続けられるかもしくは挫折するかどうかは進展次第となります。

(緩募: 不要なEFマウントのFisheyeを格安で譲っていただける方)