2017-04-18[n年前へ]
■たった2枚のスマホ写真から、自動でリアルなCG素材を作ってみよう!?
スマホを使って、(スマホ付属のライト点灯有無による)2枚の撮影画像から対象物の素材情報(反射特性や凹凸分布)をキャプチャする研究があります。原理は単純で、一般的に照明光が方向性を持つ普通の環境下で撮影した写真からは、同じ方向を向く領域が抽出できるし、照明ライトを点けた写真からは、(撮影画像内の各領域に対する)照明方向と撮影方向がわかるので、それらを組み合わせると、色んな情報がわかるよね!という内容です。…その研究内容が、最近NVIDIAサイトで最近WEBサービス(Photo To Material: 2shot)化されました。
これは面白そう!というわけで、使ってみた結果が下のようになります。左2枚の写真が、黒皮的な素材をスマホで撮影した画像で、右の画像がWEBサービス(Photo To Material: 2shot)で生成された素材データを使ってCGレンダリングした画像です。…わかりにくいかもしれませんが、たった2枚のスマホ撮影画像から、対象物の色や3次元形状などが得られていることがわかります。
ためしに、畳をスマホで撮影して・その撮影画像から生成した素材データを使ってCGレンダリングを行ってみると、下の画像のようになります。…わかりにくいかもしれませんが、3次元情報や色やさまざまな情報が得られていることがわかります。
処理可能な撮影対象は、(規則的である必要は無いのですが)似たような模様が繰り返されているパターンに限られます。けれど、目の前にある素材を「記録」して「CGなどで使ってみたくなる」ことも多い…かもしれません。そんな時、このNVIDIAのサービスはとても役立つに違いない!というわけで、もう少し遊んでみようと思います。
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)
2017-05-20[n年前へ]
■スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta用)自動制御アームで特殊映像を撮ってみる
「スマホ(BLE)から動かせる街中スナップ用の(Ricoh Theta S用)2軸自動制御アームを作ってみる」を南国バンコクに持ち込んで、この撮影機材をリュックの中に詰め込んで、自転車で街中をウロウロしながら特殊撮影をしてみました。特殊撮影というのはどういうことかというと、異なるたくさんの視点から撮影した全周画像をもとに3次元空間を再現したり、その3次元空間に光が注ぐ世界の中を歩いてみたり…という実験です。
リュックから大型三脚とBLE経由制御の駆動ユニットを組み立てて、Ricoh Theta Sを取り付けるまで、慣れれば1分で完了します。そして、バンコクの通りに立てた特殊機材の近くから、iPhone 経由で駆動制御と撮影をしてやるのです。数十枚〜百枚弱の撮影をおよそ5分弱の間に行うのです。
そんな撮影をしたら、カメラの周りに存在した3次元空間を再現するための計算をCPUとGPUをぶん回し行います。あるいは、そんな世界に差し込む光や反射する光をガウス的に捉え再現するための計算を、やはりCPU・GPUをぶん回して行うのです。…そんなことをするこで、色んな映像を作り出すことができます。
たとえば、下の動画はBTS(バンコク中央部を走る高架鉄道)のスラサック駅近くにある、中華系の墓地の Tae Chew Association of Thailand で撮影した72枚の全円周な画像群から生成した3次元映像です。この動画では3次元空間を1方向に向かい眺めているだけですが、再現されたデータ世界の中では、「一応」すべての方向に向かう風景が生成されています。
といっても、こんな映像はとてもチープなのもまた確かです。けれど、そんな撮影画像であっても、「もう二度と見ることができない今の時代を撮影した」データであるような気もする…ので、こんな変な撮影を色々してみて残していこうかな、と思います。
2017-07-17[n年前へ]
■WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」
WEBベースのカメラアプリ、「私、脱いだらスゴイんです!ー筋肉自慢 版」を書いてみました。先日作った「妄撮アプリ」、つまりはopenpose を使った人体姿勢推定からの脱衣的な画像処理を、取り回し良いように修正を入れた上で、スマホ対応のWEBカメラアプリ(撮影・画像処理アプリ)にしてみたものです。
画像処理のサーバ側は、Python/bottleという、恐ろしいチープさなので、サーバが無反応とかエラー返すことも多そうな気もしますが、「まぁ気にしない」ということにしておきましょう。
今回の想定用途は、自撮り用カメラとして「ウソっこ筋肉自慢」です。…といいつつ、サーバ立ち上げ用に画像処理テストをしていると、腐女子のための「妄撮」カメラの方が似合う気がしてきます。けれど、それは腐女子の生態を理解していないことによる勘違いな気もします(そんな発想をする、腐女子という存在は無いのかも)。WEBカメラアプリ「私、脱いだらスゴイんです!ー筋肉自慢 版」のURL、"/lookInside/muscle" というURLを眺めると、当然「これはアレだな。muscle部分を変えれば、違う用途にも動きそうだな。"lookInside"が”手続き”で、"muscle"部分がーどんなキーワードにもとづくかーなんだな」と思われそうです。・・・もちろん、実際のところ、そういう作りにしていますが、この記事を書いた時点では look inside できるのは "muscle" だけにしてあります。
2017-08-01[n年前へ]
■300円くらいで「高性能な立体顕微鏡」を作ってみよう!?
先日、「3000円くらいの立体顕微鏡」を作ってみました。けれど、3000円ではまだ高い!というわけで、そのさらに10分の1のお小遣いでも買える「300円くらいの立体顕微鏡」を作ってみました。
「やったこと」をひとことで言うと、300円ほどで買ったスマホ用レンズを使って、スマホからの特殊撮影をすることで、300円のレンズ+スマホを立体顕微鏡に仕立ててみました。
たとえば、下に貼り付けたのは、深圳の油画村(大芬油画村)で買った「油絵」の表面を撮影してみたものです。油絵具材の盛り上がりのようすが見てとれます。こんなようすが、300円程度のレンズとスマホを使って撮影できるのは、結構面白いのではないでしょうか。
下に貼り付けたテスト撮影を眺めると「千円札のインク盛り上がり」くらいなら撮影できそうな感じです。
この後は、レーウェンフック系の単レンズ顕微鏡用のボールレンズや「水滴「など、各種安レンズを使ったテスト撮影を行った上で、来週には、コストはさらに10分の1・解像度はさらに10倍くらいの世界を目指してみたいと思います。 10ミクロンオーダーくらいの面内&高さ精度の立体顕微鏡を、100円玉一個くらいで実現するのが来週の目標です。…そして、今年2017年の夏休みの終わり頃には、それを誰でも使えるようにしてみたいと思います(と、日記には書いておこう)。