hirax.net::Keywords::「Python」のブログ



2017-02-12[n年前へ]

Ricoh Theta S で2017年旧暦1月満月の夜を撮ってみる 

 思い返せば2015年は忙しかった。長身の国オランダに入り浸ったり、大学病院に入院したり、タイのスコータイやチェンマイあるいはバンコクで Ricoh Theta S と自作治具を抱えて全天周HDR距離マップ付き動画に挑戦したり、人生で2回目のスカートを送風機でめくる実験をしたり…と七転八倒の毎日だった。

 そんな人生七転八倒のお友達 Ricoh Theta S ともっと戯れたい!というわけで、OpenSphericalCameraのTheta S 制御用 Python コードを3.x用に書き換えて、長時間露光の微速度撮影で満月の夜を撮影をしてみた。

 旧暦1月の満月の夜を、露光60秒で20分ほどの時間、微速度動画を撮ってみる。太陽のように明るい満月と、都会に近いけれどそれでも見えるいくつもの星 は、北極星を中心に廻っている。もしも、渋谷のスクランブル交差点や、上野公園の桜の下、あるいは、山手線のホームで眺めてみたら、一体どんな景色が見えてくるだろう。

Ricoh Theta S で2017年旧暦1月満月の夜を撮ってみる






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映像に変換して眺めてみました。

現実のリアルタイム風景と、そこから眺めた好きな時間・瞬間を合成してVR的に眺めてみよう!?現実のリアルタイム風景と、そこから眺めた好きな時間・瞬間を合成してVR的に眺めてみよう!?






2017-04-23[n年前へ]

Ricoh Theta用の極座標自動ステージを作ってみよう!(その心は、どちらもRなθと解きます) 

 これまで、今や誰もが持ち歩いているスマホを使った手持ち移動撮影で、大径レンズを取り付けたカメラにような画像を作り出してみたり(「手持ちスマホ撮影動画からの超巨大開口レンズ撮影」に挑戦してみよう!? )、あるいは、全天周を撮影することができるRicoh Theta Sカメラを使って、ありとあらゆる情報を手に入れてみようと遊んでみたりしてきました(Ricoh ThetaSで全天周/HDR/立体動画の撮影に挑戦してみるRicoh Theta S 撮影動画で3次元の世界を撮影してみよう!?)。

 今日は、それらの続きをやってみよう!というわけで、全天周カメラRicoh Theta用の極座標自動ステージを作って、いくつかの撮影&後処理を行ってみました。

 まず、左下は試行錯誤的に作っている(途中の)自動制御ステージです。ステージを動かして違う場所から撮影した写真を使えば、もちろん立体的な映像を作り出すことができます。…というわけで、試しに作った立体視用画像が右下の画像です。

 2つの視点から見た映像を並べれば立体的な映像を感じることができるのと同様に、複数視点からの撮影画像を解析すれば、立体的な世界を再現することができます。…というわけで、自動制御ステージに載せたTheta Sで撮影した画像から生成してみた3次元映像が、下に貼り付けた動画です。

 …と、Ricoh Theta用の極座標自動ステージを作りながら、ふとと気付いたことがあります。それは、もしかしたら、あまり目的思考がなく、Ricoh Thetaを使ったRθな極座標系ステージを作ってみたかっただけかもしれない…ということです。(その心は、どちらもRなθと解きます)

Ricoh Theta用の極座標自動ステージを作ってみよう!(その心は、どちらもRなθと解きます)Ricoh Theta用の極座標自動ステージを作ってみよう!(その心は、どちらもRなθと解きます)http://www.hirax.net/diaryweb/2017/04/23.html#10975http://www.hirax.net/diaryweb/2017/04/23.html#10975http://www.hirax.net/diaryweb/2017/04/23.html#10975






2017-04-30[n年前へ]

スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる。 

 先週、Ricoh Theta用の極座標自動アームを作った。それを旅先で持ち歩き・街中で2軸アームを 動かしつつ気軽なスナップ写真を撮るために、今日は「ステージ制御をスマホ(iPhone)からできる」ようにしてみました。作戦は、iPhoneとアーム制御ボード間をBluetooth(BLE)で繋ぎ、iPhone上で動くPython環境(Pythonista)から制御アームとRicoh Theta Sを同期制御するという仕組みです。

 先週組んだアームはMakeblockのパーツを使っているので、その制御に使ってる(Makeblock製の)ArduinoボードにBluetooth I/Fを繋ぎ、ドキュメントとiOSアプリのLightBlue Explorerで制御ボードにアクセスしてみると、servicesのFFE1中にあるcharacteristics FFE3 に書き込みを行えば、制御ボードに情報を渡すことができることがわかります。…というわけで、「iPad + Pythonista(iOSで動くPython) + BLEで、Genuino101のLチカをしてみた。」を参考に、Makeblock(Arduino UNO)ボードに(適当に俺ルールで決めた5byte一組の)コマンドをiPhone(Pythonista)から送りつけ、そのコマンドをもとに2軸アームを動かしてみることにしました。

 というわけで、スマホから制御できる「Ricoh Theta S+制御アーム」を持ち歩き、山道で撮影した(円筒表面上の48枚の)画像から、試しに生成してみたた3次元風景が下の動画です。Ricoh Theta S自体は、全天周撮影を行うカメラですが、それを閉曲面状の複数点で撮影することで、3次元な全天周世界を復元したり、周囲の見た目を再現したり(ライトフィールド)することができます。

 ちなみに、iOS Pythonista ( Python ) からの制御コードは、上記参考コードをもとにして、たとえば下のような感じにしています。

    def did_discover_services(self, p, error):
        for s in p.services:
            print(s.uuid)
            if 'FFE1' in s.uuid:
                p.discover_characteristics(s)

    def did_discover_characteristics(self, s, error):
        if 'FFE1' in s.uuid:
            for c in s.characteristics:
            if 'FFE3' in c.uuid:
                 self.myProcedureWithTheta(c)
その上で、(上記コードのmyProcedureWithThetaとしたような部分で)適当なコマンドや値をMakeblock Arduinoボードに渡す(そしてその情報をもとにアームのモータなどを動かす)ことで、持ち歩き用の自動制御アーム付き三脚のできあがり!というわけです。
self.peripheral.write_characteristic_value(
        c, cmd, False)
self.peripheral.write_characteristic_value(
        c, bytes([step]), False)

スマホから動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる。スマホから動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる。スマホから動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる。








■Powered by yagm.net