#3 「1-3 物体の材質感を決める「光の反射」をリアル再現」1

|

【科学・数学 ✕ Python = ∞】#3 「1-3 物体の材質感を決める「光の反射」をリアル再現」1

 平林 純著「なんでもPythonプログラミング 平林万能IT技術研究所の奇妙な実験」で紹介されている実験をなぞっています。

「1-2 1.5億km先で輝く熱い太陽、表面温度をはかる!」はいくつか物理的に用意しないといけないものがあるのと、今ひとつ作り方がわからなかったのでスキップしまして、今回は、メトロポリタン美術館が公開している写楽の浮世絵のデジタル画像をリアルに見えるようにしようというものです。

 デジタルの画像をみてもちっともリアルではないですが、表面の凹凸や粗さをデジタルで再現してみようというものです。

 該当の本書のサンプルコードはこちらです。

 https://gihyo.jp/assets/files/book/2020/978-4-297-11637-8/download/1-3.zip

1 仕組み編

(1)画像ファイルから表面のマクロな凹凸情報を生成する

(2)表面の(光沢を決める)粗さ(ミクロな凹凸)情報を生成する

(3)タブレット・スマホ上で「眺めに応じたインタラクティブレンダリング」

という流れとのことです。

 まず、「(1)画像ファイルから表面のマクロな凹凸情報を生成する」では作品画像の明るさ(陰影)情報の高周波数成分を抽出します。サンプルのコードでは、画像から色を変換し輝度信号を抽出し、ガウシアン差分で高周波を抽出する流れとなります。

 続く「(2)表面の(光沢を決める)粗さ(ミクロな凹凸)情報を生成する」では、絵の「明るさ分布情報」から「近似的な粗さ分布情報」を作りますとのこと。。。

 浮世絵の画像から表面の凹凸と粗さを表す情報を生成したら、「(3)タブレット・スマホ上で「眺めに応じたインタラクティブレンダリング」していきます。「WebGLライブラリのThree.jsは、光の当て方や眺め方に応じた自然な見え方を(光反射や材質の物理特性に基づく)物理ベースレンダリングにより簡易に再現することができます。」とのこと。うーん。わからない。。。

2 準備編

 この本では、細かい説明がないので、環境設定が難しいかもしれないので、メモしておきます。Intel版MacMiniでやってます。Windowsの場合は、似たような作業をすればできるはずです。。。

(1)ライブラリのインストール

 Anacondaのsdbookという仮想環境からmacのターミナルを開いてbottleというPythonの軽量ウェブフレームワークと、ネットワーク処理のライブラリである geventをインストールします。

 pip install bottle gevent

(2)HTTPS通信をするための証明書の作成

 今回の実験では、スマホのカメラをサーバ側から使うので、ローカルでhttpsサーバを立ち上げる必要があります。そのための証明書を作成します。

 Macにopensslが入っているかを試すには、「openssl version」というコマンドをターミナルで実行します。私の環境では、「OpenSSL 1.1.1k 25 Mar 2021」と表示されたので、すでにインストールされているようです。

 次のコマンドを実行すると証明書を作成できます。

 openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

 証明書が作成されるまでに色々入力を求められますが、Country Nameを「JP」と入力して以後は空欄でも大丈夫でした。ルートディレクトリに「server.pem」というファイルができるので、サーバを起動するコードも入っている「SoftwareDesign201901.ipynb」と同じフォルダに移動させます。

 証明書の作成に当たってはこちらのサイトを参考にしました。

https://blog.motikan2010.com/entry/2017/01/11/Python%E3%81%A0%E3%81%91%E3%81%A7HTTPS%E3%82%B5%E3%83%BC%E3%83%90

(3)サーバの起動

 「SoftwareDesign201901.ipynb」のファイルの一番最後に書かれている「0.0.0.0」を、自身のPCで使ってるローカルIPアドレスに書き換えます。

   run(host=’192.168.0.24’, port=8080, server=SSLWebServer)

 Macだとターミナルから「ifconfig」で調べるか、環境設定の「ネットワーク」を見るとIPアドレスがわかります。

 最後にサーバを起動して、以下のアドレス(IPアドレスは置き換えて)にMacMiniのsafariから接続してみます。危険なサイトと注意が出るのを無視して詳細を表示させて、写楽の浮世絵画像が出てくれば成功です。

 次は手元のスマホからアクセスしてみましょう。

 https://0.0.0.0:8080/DP130228.htm

3 サンプルの確認

 自分のiPhoneからMacMini上のサーバにアクセスした画像を載せておきます。本書の説明に書いてあったように、スマホを傾けても見え方に変化がなかったですし、ほっぺた以外の箇所は表面反射している感じが全くなかったので、次回は、別の画像で試したり、コードを見てみて調整可能か試してみたいと思います。

 今回は、ひとまずきちんと動いたので良しとします。


コメント0

お気に入りに追加しました お気に入りから削除しました