[やってみる]3Dスキャンや画像処理をやってみよう

 3D scanning and image processing

3Dスキャンをしてみよう

Structure Sensor

https://structure.io
Structure Sensor は、iPadに取り付けて使用する3Dスキャンセンサーです。昨年のオープンキャンパスで触った人も多いと思います。手軽で、比較的短い時間でスキャンが完了するので使いやすいです。スキャンするときに使用するソフトですが、ひとまずOccipitalが提供している「Scanner」というソフトでスキャンできます。また、「 Skanect」と連携してスキャンしたりできます。モデルのダウンロードが有償になりますが、「itSeez3D 」は比較的綺麗にスキャンできます。

Agisoft PhotoScan

http://www.agisoft.com
PhotoScanは、いわゆる Photogrammetry(フォトグラメトリ)と呼ばれる、複数の写真の特徴の差から3次元の形態を推測する方式で3Dモデルを生成するソフトウェアです。有償(スタンダードエディションがアカデミック版で$59)ですが、体験版で30日使えるのでまずは体験版で試してみましょう。比較的、テクスチャが複雑なものが綺麗にスキャンできます。うまくいくとかなり精度の高いスキャンができます。

画像処理をしてみよう

ここでは、画像処理にOpenCV(Open Source Computer Vision Library)というライブラリを使用します。これは画像を解析して様々な情報を得たりするためのコンピュータ・ビジョンのライブラリです。オープンなラライブラリで色々な環境で使用できますが、今回はProcessingから動かしてみたいと思います。

openCV for Processingのインストール

Processing のメニューから、スケッチ > ライブラリをインポート > ライブラリを追加... を選択して、「opencv」 で検索すると「openCV for Processing」というライブラが出てくるので、それをインストールします。

細かい仕様については、リファレンスを参照してください。

openCV for Processingのサンプルを少し改変したコードを動かしてみる。

Background Subtraction その1

映像から静止している背景と、動いているもの分離して検出してするサンプルです。赤い線が動いている場所の輪郭線で、緑の線がそのバウンディングボックスです。

[サンプルコード]

Background Subtraction その2

さっきのサンプルから、こんどは動いている部分だけを抽出して右側に表示してみました。また、微妙にフェードアウトするようにしています。基本的な処理としてはさっきのサンプルと同じですが、表現が変わったことで、どのように意味や感じ方が変わったでしょうか?

[サンプルコード]

Background Subtraction その3

今度は、webカメラからの映像を入力としたサンプルです。映像の中で動いている部分だけが切り取られます。こうした表現を踏まえた時、どのようなモチーフを撮影するとよいでしょうか?

[サンプルコード]

Face Detection その1

いわゆる、顔認証のサンプルです。顔が認識されると、一定間隔で顔の部分をjpgで保存するようにしています。

[サンプルコード]

Face Detection その2

顔が認識されていないときは背景画像をそのまま右側に表示し、顔が認識されると顔のバウンディングボックスだけを更新して表示するようにしたサンプルです。例えば友達と一緒に写って、ゆっくりと動いてみてください。このイメージには、部分的に更新される仕組みにで作られています。つまり、複数の時間と運動が写っていると言えるかもしれません。

[サンプルコード]

Face Detection その3

顔が認識された際の矩形に対してマスクをかけるサンプルです。例えばマスクの形を変えることでどんな印象に変わるでしょうか。

[サンプルコード]

Face Detection その4

プリントアウトした写真を手で持っていて、そこに顔はめ看板のように顔が合成されるという感じの3D表現のサンプルです。

[サンプルコード]

Optical Flow

Optical Flowは、画面の中それぞれの場所における動きの方向(ベクトル)を検出します。真ん中の白い線は全体を平均した方向を表しています。

[サンプルコード]

Find Edges

このサンプルでは、画像に映っているものから輪郭線を抽出します。

[サンプルコード]

ここからどんな作品の可能性が考えられるでしょうか?

わりと今回はプログラムが複雑でしたが、頑張って複雑なプログラムを書くよりも、これらのサンプルで起きている出来事をよく観察して理解し、 どのようなモチーフを撮影すれば、面白いコンセプトや感覚が立ち上がるのかを試行錯誤しながら考えるのがいいように思います。