誰でも簡単にフォトグラメトリを今すぐ無料で始める方法

#概要
本記事はフォトグラメトリを初めてやる人を対象にしています。
無料の範囲で簡単に始められるような内容になっています。
フォトグラメトリを使ってリアルのオブジェクトをバーチャルに持っていきましょう！

#フォトグラメトリとは？
複数の画像から3Dデータを作成する技術です。
手のひらサイズの小さなものから、建造物や都市等といった大きなものまで作成可能です。
特殊な機材は必要なく、画像さえ準備できればすぐに始められます。
![27.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/85a53039-9b3f-2f94-3856-a3b5e1a85192.png)
#準備するもの
* PC (Windows)
* カメラ
* 3DF Zephyr (無料版)

PCのスペックによって処理時間が変わります。ゲーミングPCを持っている方は処理が早いかと思います。
通常のPCでも問題ありませんが時間がかかる場合があります。参考として、記事の末尾に私のPCスペックを記載しておきます。

カメラはスマホカメラで十分です。一眼レフ等を使うとより綺麗に撮れます。今回の記事ではiPhoneXを使用しました。

3DF Zephyrは画像から3Dデータを生成するソフトです。他の選択肢はいくつかありReality Capture等が有名です。今回は簡単に無料でやることが目的なので3DF Zephyrを選定しました。このソフトは50枚を元とした生成であれば無料で利用することができます。対応OSはWindowsのみになります。

#生成手順
##①3DF Zephyrのインストール
SteamがPCにインストール済みの場合はこちらからインストールできます。
https://store.steampowered.com/app/438450/3DF_Zephyr_Lite_Steam_Edition/?l=japanese

Steamが入っていない場合はURLから3DF Zephyrをダウンロードすることもできます。
ダウンロードした後はexeファイルを起動し、インストールを行って下さい。
https://www.3dflow.net/3df-zephyr-evaluation-download-page/
![スクリーンショット 2019-05-24 20.54.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/8560dea2-063a-d975-002b-d93c0b7a0507.png)

##②画像の用意
3Dデータにしたいものの撮影を行います。

※補足
3DF Zephyrの場合、画像だけでなく動画からそのまま生成することも可能です。
今回の例ではわかり易さを優先するために画像でやっていますが、動画の方が手間はかかりません。
ただ、手ブレやピント等は起こりやすいので手間とのトレードオフになります。

###3D化の対象選定
フォトグラメトリは**特徴点**を元に生成を行います。その為、反射するものや単色のもの、動くもの等はうまく生成できない可能性があります。逆に模様や質感のあるものは綺麗に生成できます。今回の例では、比較的生成しやすい木を使用します。

###撮影
撮影対象は色々な角度から満遍なく撮りましょう。位置や角度等を変えて抜け目のない様に撮ると良いでしょう。
![28.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/325cbcf8-ff30-97b7-1220-994892722b6b.png)
撮影に関するコツは3DF Zephyrのチュートリアル動画が参考になります。
https://www.youtube.com/watch?v=E06kgYBftak

一眼レフの場合はレンズの設定を調節することで精度を高めることができます。
今回は撮影のコツについての詳細は省略します。

##③生成
3DF Zephyrを起動しましょう。生成完了まではの５つステップに分かれています。
順に説明していきます。

* (1) 低密度点群生成
* (2) 高密度点群生成
* (3) メッシュ生成
* (4) テクスチャ付きメッシュ生成
* (5) 3Dデータのエクスポート

###(1)低密度点群生成（参考時間：5分程度）
起動したら、撮影した50枚までの画像を全てドラッグアンドドロップします。![01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/6bf4b1f9-3fc0-80ea-bab9-ec130d2bfc17.png)
![スクリーンショット 2019-05-24 22.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/d5918a46-bf12-c7b1-e454-5a3ad38476d8.png)
基本的にはデフォルトの設定で次へを押していれば問題ありませんが"カメラの方向"の画面のみカテゴリーを確認して下さい。
４つの中から適切なものを選択します。今回は近接範囲を選択します。

プリセットはデフォルトにしておきます。また、右上の設定からアドバンスドやカスタムを選択すると詳細設定をすることができます。クオリティを高めたい場合はそちらを見てみると良いでしょう。

実行を押すとモデルの生成が始まります。処理が終了すると結果が表示されます。
ここが綺麗に生成できるかの分かれ道です。
![08.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/48e51a05-beaf-1d23-c793-86027d5e432c.png)
このYESと表記された画像がモデルの生成に使用できたという意味になります。つまり、このYESが多いほど綺麗に生成できるということになります。対象に特徴点が少なかったり、使用した画像がぶれていたりするとYESの数が減ってしまいます。この数が少なすぎるとそもそもモデルを生成できなかったりします。うまくいかなかった場合は、撮影方法などを工夫するか対象を検討し直しましょう。

問題なければOKを押して高密度点群生成に進みましょう。

###(2)高密度点群生成（参考時間：8分程度）
どうでしょう。画面にぼやっと生成されたモデルが見えるでしょうか？
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/16f093bd-fea6-87d3-4c91-a643ab501ad2.png)
問題なさそうであれば左上のワークフロータブから高密度点群作成を選択してください。![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/3a9fd89a-b919-0c67-7f91-1456825a1a26.png)
この後の設定も基本的にはデフォルトのままで問題ありませんが高密度点群生成の画面では、先程のステップ同様にカテゴリーを選択しましょう。クオリティを上げたい場合は高精細を選択すると良いでしょう。今回の例ではデフォルトを選択しています。![スクリーンショット 2019-05-24 23.18.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/82b510b7-8ae0-6a44-e4b1-8dbafea87dfe.png)

処理が終了したら、完了を押しましょう。

###(3)メッシュ生成（参考時間：8分程度）
高密度点群生成が完了したら、ワークフロータブからメッシュ抽出を選択してください。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/e31eccae-a733-f74c-7888-586ca9bf4a8b.png)
メッシュ生成も低密度点群/高密度点群生成と同様のステップになるので詳細な説明を省略します。
![スクリーンショット 2019-05-24 22.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/4a8a0173-e671-1bb8-5d9a-f18a910391a5.png)

###(4)テクスチャ付きメッシュ生成（参考時間：10分程度）
メッシュ生成が完了したら、ワークフロータブからテクスチャ付きメッシュ作成を選択してください。
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/f193b202-c89e-7f51-ff9c-1cdbac1239c4.png)
テクスチャ付きメッシュ生成ウィザードでは、最大頂点数を変更します。
デフォルト設定だと頂点数が多すぎるので、1万〜10万ポリゴン程度に設定します。
テクスチャサイズも同様にモデルを軽くしたい場合は減らすと良いでしょう。
![スクリーンショット 2019-05-24 22.47.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/e5f6c7ab-69ae-02f3-8322-90d894c4ad9a.png)
ここの設定はモデルの生成後に使ってみて問題があれば調節しましょう。

###(5)3Dデータのエクスポート
ここまででモデルの生成は終わりました。後はデータをエクスポートすれば完了です。
左上の出力タブからをテクスチャ付きメッシュ生成選択してください。
![28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/2e6c62bb-7c40-1ca6-3d67-2457c73cc3e2.png)

フォーマットを出力から「Obj/Mtl」を選択します。（Unityであればこれで問題ありません）
他出力したい形式があればそれを選択しましょう。
![29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/4f688193-51b7-efec-cb02-f8cb5c714e63.png)
その後、ローカル表示基準システムにチェックを入れます。
![30.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/d4b0098e-ef57-3786-15a0-e19711504409.png)
フォルダを作成して、そこにフォルダを選択し、保存すれば終了です！
![31.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423399/b46e88b5-b26c-a68b-b015-9e22d39eb765.png)
生成されたデータはUnityやBlender等のソフトにインポートして利用することができます。

#最後に
今回は生成までの一連の流れの説明のみでしたが以下の点を工夫することでクオリティを上げることが可能です。

* 撮影方法
* 撮影環境
* 撮影対象
* 撮影機材
* 出力の詳細設定

ぜひクオリティを突き詰めて色々を試してみて下さい！
フォトグラメトリの世界は奥が深いです。

またフォトグラメトリに関する情報は私のTwitterアカウントでも発信しています。
【[@like_amaiokashi](https://twitter.com/like_amaiokashi)】
この記事が参考になったなと思って頂けたら是非フォローお願いいたします！
質問などありましたらお気軽に聞いて下さい😊

#参考にさせて頂いたURL
[フォトグラメトリ情報まとめ | STYLY](https://styly.cc/ja/tips/photogrammetry_summary/)

【紹介】私もかなり参考にさせて頂いているSTYLYさんでフォトグラメトリのアワードが開催されるみたいです！
[STYLY Photogrammetry Award 2019 | STYLY](https://styly.cc/ja/awards/styly-photogrammetry-award-2019/)
是非作品を作った方は応募してみましょー！（締切は6月30日まで）

#今回使用したPCスペック

* CPU：AMD Ryzen 5 1600 Six-Core
* メモリ：8.00GB
* グラフィックボード：NVIDIA GeForce GTX 1060 3GB