15分ほどで寺をさくっと建立する(3Dで)

![Dec-13-2020 15-51-35.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/b0972e29-85c2-ba6e-7717-52c1017abfc2.gif)


この記事は[CivicTechテック好き Advent Calendar 2020](https://qiita.com/advent-calendar/2020/civictech_tech)の13日目の記事です。「やってみた系レビュー」なので軽く読んでいただけると幸いです。

## はじめに
 [CivicTechテック好き Advent Calendar 2020](https://qiita.com/advent-calendar/2020/civictech_tech)や、はたまた[Civictech１年目 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/civictech_rookies)のスケジュールをご覧のように、ここ数年コミュニティのミーム(法話)となりつつある[バッドデータ供養寺](https://bad-data.rip/)のネタがわたしの当番あたりに集中しています。本来は[SocialHackDay](https://hackday.code4japan.org/)などでいつもお世話になっている[点群メイツのmamix](https://medium.com/@mamix1116)に相談しながら真面目なネタのトライアル（後述）をずっとやっていたのですが、畑を片付けたり煙突掃除をしたり猫のトイレ替えなどをしていたため研究をすすめる時間もなく、結局お寺絡みの軽いネタになりました。

## 想定する読者
- カップラーメンくらいの手軽さで３D(点群)データを作る体験をしたい
- 可能な限り作業費は電気代とネット代でおさえたい
- 明日に学部1年向け講義があるのに今気がついた
- つねづね寺を建立したくてしたくて手の震えが止まらない

…というかた向けに書いています。ミクロン単位での麺の太さや絶品スープについて極めたい方くらいの方にはちょっとむいてないかもしれません、ごめんなさい。

## 点群とSfM
オープンデータやシビックテック界隈では3Dを表現できる点群(PointCloud)データが注目を浴びています（個人の感想です）。[ロックな静岡県庁さん](https://pointcloud.pref.shizuoka.jp/)による点群データのオープン化などだけでなく、[ゲーム](https://www.youtube.com/watch?v=R-ZXdAEGbiw)や[OpenGLAM](https://3dhop.net/demo.php)関係でもその活用や技術が進んでいます。

この点群データを現実世界から取得するにはレーザースキャン(LiDAR)といった手法があります。最近ではiPhone 12Pro/Maxやipadにも[LiDARスキャナが搭載](https://japanese.engadget.com/iphone-12-pro-lidar-220006265.html)されるなど、じわじわその技術が近づいてきております。
とはいえ、今からiPhone12に機種変するのもなんですし、プロユースでちょうかっこいい[レーザースキャナーライカのRTC360](https://leica-geosystems.com/ja-jp/products/laser-scanners/scanners)を買うためにお昼のパン代をケチってお小遣い800万円分貯めるのもなかなか大変ですよね。

このほかに点群データを作る技術としては、写真データから点群を作成するSfM(photogrammetry)という技術があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/c9b593e5-1c1c-1440-b0e9-a4e2449dd347.png) via. [Photogrammetry: 3D Scanning with a camera](https://wikifactory.cn/+bitfab/stories/photogrammetry-3d-scanning-with-a-camera)

たとえば、[みんなの首里城デジタル復元プロジェクト](https://www.our-shurijo.org/)などではこの技術が用いられており、多くの方から集まった首里城の写真から３Dデータを作成しています。SfMに関する細かい解説は関連専門サイトなどにおまかせするとして、これなら今からお昼のパン代(略)をしなくてもツールと素材があればあなたのパソコンで比較的簡単に点群をつくることができます。

## ツールと材料
ツールに関しては、商用の[Pix4D](https://www.pix4d.com/jp)や[Metashape](https://oakcorp.net/agisoft/)もありますが、軽く点群作成体験をするためにはちょっと荷が重いですよね。そこで今回はSocialHackDayの[HackMD](https://hackmd.io/@geopythonjp/HkZOmNpqL/%2FacE4ZVXrSUmozxoMt-sahw#%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AESfM%E3%83%84%E3%83%BC%E3%83%AB)を参考にさせていただきオープンソースの[Regard 3D](https://www.regard3d.org/)を使ってみます。いろいろ高性能なオープンソースのSfMソフトはあるのですが、Regard３DはGUIベースで操作が可能ですし、GPUなどのハードウェア制限もあまりないので、今回の目的にはうってつけと判断しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/2f6d861b-7975-622a-b579-51ac85e9b722.png)



また、材料の写真を得るために今夜から[ブータンにあるタクツァン僧院](https://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%AF%E3%83%84%E3%82%A1%E3%83%B3%E5%83%A7%E9%99%A2)の撮影に行ってもよいのですが、こんなご時世ですし「さくっと建立」するというこの記事の目的に沿わないので、[wikimedia commons](https://commons.wikimedia.org/wiki/Main_Page)などから[クリエイティブ・コモンズ・ライセンス](https://creativecommons.jp/)の画像を頂戴することにしました(なお、[機械学習などに用いる際の著作権](https://topcourt-law.com/ai-iot/copyrightlaw-revision)の扱いとかいろいろあったとおもいますが、そこ検証考察してる時間もないので今回は差し障りのない方法にしました)

## 処理
処理の流れはそんな複雑ではありません。
お野菜集めてきて、炒めるだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/c2e8e076-8e30-8ef4-1d7f-559c7321b5b6.png)

### 写真を集める 
今回は比較的写真が多いだろう（と勝手に想像した）東大寺をGoogle画像検索＋CCライセンスで[検索します](https://www.google.com/search?q=%E6%9D%B1%E5%A4%A7%E5%AF%BA&tbm=isch&ved=2ahUKEwivvba5scrtAhW0y4sBHVDhDucQ2-cCegQIABAA&oq=%E6%9D%B1%E5%A4%A7%E5%AF%BA&gs_lcp=CgNpbWcQAzICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BwgAELEDEAQ6BAgAEAQ6CggAELEDEIMBEAQ6BQgAELEDOggIABCxAxCDAToICAAQsQMQsQNQ3PXhA1io_uEDYI2D4gNoAHAAeACAAacBiAGGCZIBAzAuOZgBAKABAaoBC2d3cy13aXotaW1nwAEB&sclient=img&ei=NrzVX6_KOrSXr7wP0MK7uA4&bih=739&biw=1148&tbs=il%3Acl&hl=ja)。
東大寺付近に住んでいる鹿っぽい生き物とか二月堂とか興福寺も引っかかってくるので適当に見繕って高画質な画像10枚くらいダウンロードします。Pythonとかで判別しながらガツンとスクレイピングでとってくる方法もありますが、今回は「おためし」なのでそこまで凝りません。東大寺で良ければわたしが集めた[CCのデータをおいておきます](https://drive.google.com/file/d/1PnvfU53z64H-fp-twfib2Fm1ScnOavOu/view?usp=sharing)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/9b1cf5be-8935-7913-60d6-66255b021b23.png)


### Regard 3Dで処理を行う
[Regard 3D](https://www.regard3d.org/)の準備をします。真面目にやり方を書きかけてましたが、すでに素晴らしい記事がありましたのでこちらを参考にどうぞ

[GUI操作だけで画像から3DマッピングするSfMソフトRegard3Dの使い方 on Qiita](https://qiita.com/tttamaki/items/ef3e44f5219b74e0a15b)


手順としては上記Qiitaでの

[Regard 3Dダウンロード]⇒[インストール⇒起動]⇒
[プロジェクトの作成]⇒[画像の追加]⇒
[特徴点の検出と特徴量のマッチング]⇒[三角測量：カメラ位置の計算（バンドルアジャストメント）]⇒[復元された点とカメラの表示]⇒
[密な点群の作成]⇒[メッシュ生成]⇒[レンダリング]⇒[保存]

の流れになります。なんか多そうですが、写真をRegard 3Dで読み込んで、ほぼ延々とデフォルト設定でOKを押していくだけで、おおまかな点群がつくれます。

なお、今回はEXIF情報が最初からない写真も多く、厳密に処理をすすめるための「センササイズの指定」はスキップしています。また、処理枚数は10枚ほどなので序盤のCompute Matchesの設定は最高の[Ultra]にしています(Normalとかでもできると思います)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/852199ba-5f13-6350-780e-7a8da1cef78a.png)


## 結果

ものの5-10分ほどでポイントクラウドができます![Dec-13-2020 15-51-35.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/b0972e29-85c2-ba6e-7717-52c1017abfc2.gif)

Sketchfabでの表示は[こんなかんじ](https://skfb.ly/6X9ou)です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/10a4b619-688f-283f-aec5-3312e4f6e72e.png)



雑いですが[plyファイルはこちらに置いています](https://drive.google.com/file/d/1qyQJbUCRv4yJSVKYggkULPy18g_bV8og/view?usp=sharing)。


ということで、建立ができました！おめでとうございます🙏 

## ※本当はやりたかったこと

じつは、[1970年代の東京の風景](https://youtu.be/k2i73lmL3CM?t=28)などから１フレームごとに画像を[ffmpeg](https://qiita.com/tags/ffmpeg)で切り出してSfM処理をかけて[点描美大みたいに3Dで復元！](https://www.youtube.com/watch?v=WKnkI40_6A0)ややもすれば[3Dプリンタで出力しちゃうよ！](https://qiita.com/mkuriki1990/items/f5bba9d7161210847ade)なんて鼻息荒く目論んで3日くらい~~抱腹絶倒~~ 七転八倒していたのですが、やはり素材…とくに色んな角度で重複して撮影しないと厳しい（もしくはもっとパラメーターをいじくり回さないといけない）ということがわかり断念をしました。あと、供養寺ネタに前後左右取り囲まれたというのも（）

一応[町並みっぽいなにかの残骸](https://skfb.ly/6XsVG
)はおいておきますね.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/784788c4-b5e3-6d44-07b8-f9fcb5f7aa40.png)

とはいえ調べてたらCOLMAP+Deeplerningなどで再現、たとえば素晴らしい[こちら](https://qiita.com/ohashi_zaemon/items/b6dfad5031670455ec0e)とか[こちら](https://qiita.com/dcm_kitade/items/549fe1346773f809bdda)の事例などをみると技術的にはできそうなので、近々さっくり作れるようになるかもしれません。そのときは、昔の町なみを点群からVRにしてお年寄りの方々に見せてあげるのもおもしろいかなと思った次第でした、このあたりの技術は時々キャッチしてみようとおもいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100567/4e163e54-e7b6-c701-6bf8-d755cbbc297d.png)
昨年2月にお会いした86歳の大先輩、Oculusに大興奮

## この記事のライセンス

[![クリエイティブ・コモンズ・ライセンス](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/deed.ja)
この記事は[CC BY 4.0（クリエイティブ・コモンズ 表示 4.0 国際 ライセンス）](http://creativecommons.org/licenses/by/4.0/deed.ja)の元で公開します、どうぞどうぞ。