2016-09-24[n年前へ]
■その瞬間に眺めた世界をいつでもリアルに記録していく
自分を囲んでいる周りの世界を、あるいは掌の上に載せたものを、他の誰かに見せるために、いつか自分で眺め返す時のために、その瞬間にできる最大限のやり方で記録しています。…といっても、重い特殊な機材を持ち歩くのは辛いので、その時手にしたお手軽機材で、けれど時間が許す限りのやり方で、目にしたものをリアルに撮影したりしています。
たとえば、2014年くらいのタイ・バンコクでは、自転車でうろうろする時、いつでも全天周の動画を撮影していたりしました。そして、1年後の2015年には同じく自転車で通り抜けたバンコク路地裏は、3次元で(暗い部分から輝いている部分まですべて記録する)HDRな世界になっていました。あるいは、チェンマイで11月の満月に眺める「空へ灯籠を流すお祭り」をヘッドマウントディスプレイを掛ければ、もう一度眺めたりすることができます。
今年は、色んな物質で作り上げられた周囲の世界を、その素材感を伝える特性や立体的な形も含めて撮影することがようになりました。たとえば、安っぽいプラスチックの外装や、油で汚れて鈍く黒光りする金属塊や、年期を経た木板のさまを、リアルに写し出してコンピュータ画面の中で眺めることもできるようになりました。本当の世界ほどにリアルではないけれど、現実が持つ複雑なさまを、少しづつ記録して残すことができるようになっています。
2016年の今年は、やはりバンコクを自転車でウロウロしつつ、記録する情報の次元や内容を、またバージョンアップできたら面白いな!と思っています。遠くに見える大通りを走るバスや、近くの路地裏を区切る土壁や、店の机に並ぶアジアな小物、そんなものを昨年より少しでもリアルに記録できたら面白いな、と思っています。
2017-02-26[n年前へ]
■Ricoh Theta S で24時間のHDR(多段露出)撮影をして遊んでみる!?
Ricoh Theta Sを制御するPython 3.xコードを書いた (「Ricoh Theta S で2017年旧暦1月満月の夜を撮ってみる」)ので、Theta Sを載せた三脚を高く立て、24時間を少し超えるくらいの時間にわたり、11段階の露出時間での撮影を交互に続けてみました。ちなみに、撮影に使ったPython コードは下記になります。
import osc import theta import time thetas = RicohThetaS() thetas.setCaptureMode( 'image' ) thetas.setOption("exposureProgram", 1 ) thetas.setOption("ISO", "100") thetas.setOption("whiteBalance", "daylight") shutterSpeeds1 = [0.00015625, 0.0005, 0.002,0.008,0.03333333,0.125,0.5, 2,8,30,60] for i in range(400): for shutterSpeed in shutterSpeeds1: thetas.setOption("shutterSpeed", shutterSpeed) time.sleep(1) response = thetas.takePicture() thetas.waitForProcessing(response['id']) time.sleep(1) thetas.getLatestImage() time.sleep(1) thetas.closeSession()
こうして、 1/6400秒~60秒までの11段階にわたる露出時間で撮影した画像群を、下記のPythonコードでHDR(ハイダイナミックレンジ)合成します。
import cv2 import numpy as np iniID = 11006 # fileName for i in range(400): files=["hoge"+"R00"+str(iniID+j+i*11)+".JPG" for j in range(11)] imgs = [cv2.imread(file) for file in files] mertens = cv2.createMergeMertens() resImg = mertens.process(imgs) resImg = np.clip( resImg*255, 0, 255 ).astype('uint8') cv2.imwrite("hoge"+ "out_"+str(1000+i)+".jpg", resImg)そして、11段階の多段露出画像を合成した連番画像ファイルを動画ファイルとして結合することで、たとえば、下に貼り付けたようなLittle Planet風のタイムラプス(微速度)動画として眺めることができます。撮影を行ったのは、都会に近い薄曇りの空の下ですが…それでも恒星が浮かぶ宇宙空間を回転する地球が進んでいるさまが見えるような気がしてきます。
2017-03-05[n年前へ]
■現実のリアルタイム風景と、そこから眺めた好きな時間・瞬間を合成してVR的に眺めてみよう!?
先日、周囲全方向を撮影することができるRicoh Theta Sを使い、24時間にわたり11段階の多段露出撮影画像からリトル・プラネット(とても小さな星を上空から撮影したような)風動画を作ってみました(Ricoh Theta S で24時間のHDR(多段露出)撮影をして遊んでみる!?)。けれど、そんな風に景色を離れたところから第三者的・客観的に眺めるのではなくて、その場に立って一人称的に景色を眺めたくなりました。そこで、合成した高画質4K動画をYoutubeに(360度映像だというタグを付けて)アップロードしてみました。
こうすることで、スマホからYoutubeアプリケーションでアクセスし、VR用レンズセットを取り付けて眺めれば、あたかもこの場所に立ち・数百倍近く速く時間が流れる中で、夜空や太陽の影を眺めることができます。
そして一番面白いのは、24時間の撮影を行った場所に立って、目の前にあるリアルタイムな実際の景色を眺めつつ、「東の空に昇る太陽や夜星や夕焼けや」…24時間の中にある美しい瞬間や一番好きな時間を、スマホに覗いて自由自在にVR合成しながら眺めてみると…とても不思議で面白い気持ちになってきます。
今日は、24時間にわたる、周囲全ての4πステラジアンの全天周風景を、11段階多段露出のハイダイナミックレンジ撮影をして、その映像を4K映像に変換して眺めてみました。
2017-10-27[n年前へ]
■スマホの1ショット撮影でHDR(ハイダイナミックレンジ)画像を作り出してみる!?
機械学習を使った「単一露光画像からのHDR(ハイダイナミックレンジ)画像生成」の Paper PDF が出ていて、プロジェクトページ には Tensorflow / Pythonによるコードが公開されていた。
そこで、まずは iPhone 6s で撮影した1ショット RAW(DNG)画像(右)から、詳細がわかるように…というかGPUメモリが許す画像サイズに切り抜いた上で、HDR画像を生成してみました。それが下の結果です。下左側画像が(1ショット単一露光画像)入力画像で、下右側が機械学習が出力したHDR画像です。相対的に明るすぎて白飛びしている箇所が、それっぽくHDR生成されていることがわかります。
最近のスマホなら、高速連写機能を使ったHDR撮影が普通にできる時代です。とはいえ、動画撮影をするときは、そんなHDR処理が働かないもの。…ということは、撮影した「動画」が白飛びしていたりしたら、こんな機械学習による単一露光条件動画からのHDR動画を作り出してみるのも良いかもしれません。
ところで、下に貼り付けた画像は、全天周カメラ Ricoh Theta で撮影した単一露光条件の低解像度画像から生成してみたHDR画像です。…こうした全天周画像に対して機械学習で使われるCNN(Convolutional Neural Network)処理を掛けようとすると、XY座標系の2次元画像ではなく、曲率を持つ球表面に適用可能なCNN画像処理を掛けたくなります。…そんな全天周画像処理を探す旅に出たくなります。
2019-01-06[n年前へ]
■RAW/生画像の取得に対応したiOS/Pythonista 撮影ライブラリ
以前作成した(iOS上のPython環境である)Pythonista からiOSデバイスのマニュアル撮影などを簡単に行うことができるライブラリをアップデートして、RAW/生画像の取得ができるようにしてみました。まずは、github に仮版でアップロードしてあります。.DNGフォーマット保存だけでなく、(PythonistaだとPure Python でない rawpyといった.DNG読み込みが簡単にできるライブラリは使えませんから )RAW形式の画像ファイルをパースするのが面倒なPythonista ユーザ向けに、 「Python の numpy アレイ・バイナリデータとして保存する機能」も付けてみました。
というわけで、下の画像は、そんな「RAW/生画像の取得に対応したiOS/Pythonista 撮影ライブラリ」を使い、1段置きの8段階の露出スピード違いで(各14bitの情報を)撮影し、つまり、実情報として8+14 = 22 bit のHDR画像取得をしてみた撮影結果例です。…このHDR合成については、また明日にでもHDR合成用のPythonコードも含めて、メモ書きしてみようと思います。