Forge Reality Capture API サンプル

Forge には、最大 1,000 枚の写真から 3D データを生成する Reality Capture API が提供されています。一般にフォトグラメトリーと呼ばれるテクノロジを API 化したものです。

もともと、特定の業種に特化したものではありませんでしたが、ドローンから撮影した写真の利用が多いことから、Reality Capture API アップデート のブログ記事でご案内したとおり、現在では建設業用途にチューニングされています。

建設現場の上空からのドローン撮影画像。新しい建物の屋根や周囲の構造物が見える。

Reality Capture API で生成/取得可能なデータは、次のファイル形式になります。

  • rcm: Autodesk ReCap Photo メッシュ データ ファイル
  • rcs: Autodesk ReCap 点群データ ファイル
  • obj: Wavefront Object データ ファイル
  • fbx: Autodesk FBX 3D アセット交換データ ファイル
  • ortho: オルソ画像とエレベーション マップ
  • report: 品質レポート

Forge Code Sample ページにも Reality Capture API を評価するものが公開されています。過去に、サンプルの実行までの手順をまとめたブログ記事を記載したことがありましたが、当時から内容が大きく変更されていますので、ここでは Photo to 3D (photogrammetry) sample  を使った評価手順をご紹介したいと思います。


準備:(ここでは Windows 環境での利用を前提にご紹介します)

  • 本サンプルは、Web サーバー実装に Node.js を使用しています。このため、事前に Node.js をインストールしておく必要があります。また、GiiHub リポジトリからのプロジェクト入手(クローン)に git コマンドを使用します。両者を利用可能とする手順は、Forge の開発環境 でご紹介しています。もちろん、ソースコード等を編集する場合には、テキストエディタも必要となります。

  • 本サンプルをローカル環境でテストするには、利用する Client ID と Client Secret(Consumer Key と Consumer Secret)を事前に Forge ポータル から取得しておく必要があります。これらの手順は、Forge API を利用するアプリの登録とキーの取得 でご紹介しています。

  • 本サンプルをローカル環境で実行するには、Forge ポータルでのアプリ作成時に、あらかじめ  CallBack URL に https://localhost:3000/api/forge/callback/oauth  を設定しておく必要があります。Node.js で https サーバーが利用出来ない環境では、認可プロセスでエラーになってしまいます。この場合には、設定する CallBack URL に s を省いた http://localhost:3000/api/forge/callback/oauth を設定してみてください。
Autodesk Forge APIの情報を表示する画面、アプリケーションのクライアントID、クライアントシークレット、コールバックURLが確認できる。
  • 本ンプルの実行時には、環境変数から Client ID、Client Secret、CallBack URL を読み取ります。テキストエディタでシステム環境変数、FORGE_CLIENT_ID、FORGE_CLIENT_SECRET、FORGE_CALLBACK_URL の代入式を用意定します。FORGE_CALLBACK_URL 値には、上記で設定したものを記述してください。
set FORGE_CLIENT_ID=<<YOUR CLIENT ID FROM DEVELOPER PORTAL>>
set FORGE_CLIENT_SECRET=<<YOUR CLIENT SECRET>>
set FORGE_CALLBACK_URL=<<YOUR CALLBACK URL>>

コマンド プロンプトを起動して、テキストエディタ上の set コマンドをクリップボードへコピー、コマンド プロンプトへ貼り付けしながら 環境変数への設定を完了します。

コマンドプロンプトで環境変数を設定する画面。FORGE_CLIENT_ID、FORGE_CLIENT_SECRET、および FORGE_CALLBACK_URL の設定が表示されている。

実行手順:

  1. GitHub 上のプロジェクトを開発に使用するクライアント コンピュータにクローンします。コマンド プロンプトを起動して、CD コマンドでリポジトリ内容をコピーしたいフォルダ(ディレクトリ)に 移動し、 git clone https://github.com/Autodesk-Forge/reality.capture-nodejs-photo.to.3d.git と入力します。
  2. クローン(コピー)されたプロジェクトに Node.js の実行で必要となるパッケージ(ミドルウェア)をインストールします。CD コマンドで現在のフォルダを photo-to-3d-sample フォルダへ移動してから、npm install と入力します。
  3. 現在のフォルダが photo-to-3d-sample フォルダであることを確認したら、 node index.js と入力、リターンキーを押して Node.js サーバーを起動します。
  4. コマンド プロンプトに Server listening on port 3000 と表示されたら、Web ブラウザを起動して URL に https://localhost:3000 と入力してリターンします。この時、CallBack URL や環境変数 FORGE_CALLBACK_URL に http://localhost:3000/api/forge/callback/oauth とした場合には、http://localhost:3000 としてください。
  5. 次の画面が表示されたら、中央の [Authorize me] ボタンをクリックします。 
  6. 3-legged 認証/認可のプロセスを実行します。ユーザとして使用する方の Autodesk ID(ユーザ名とパスワード)を画面遷移にしたがって入力、[サインイン] ボタンをクリックしてください。
  7. 認可の確認ページが表示されたら、[許可] ボタンをクリックします。
  8. サンプルのメインページが表示されたら、シーン名を入力して(①)[Create] ボタンをクリック(②)、「ID created」欄にランダムに生成されるシーン ID が表示されたら、[Upload remotely located photos] ボタンをクリックします(③)。写真がすべてアップロードされると、[Upload remotely located photos] ボタン下に 「Number of posted images: 7」と表示されるので(④)、[Launch photoscene] ボタンをクリックして演算処理を開始します(⑤)。
  9. [Get Result] ボタンで演算状態を紹介することが出来ます(⑥)。処理が完了するには十数分かかります。演算中には「Data is not ready」と表示されます。
  10. 処理が完了すると、次のように、生成したファイルのダウンロード URL が表示されるので、Web ブラウザで URL を入力(”scenelink” 値)してダウンロードすることが出来ます。この URL は 30 日間のみ有効です。
  11. サンプルでは、rcm ファイルの生成、ダウンロードを指定しています。ダウンロードしたファイルは、ReCap Pro に同梱される ReCap Photo で表示、編集することが可能です。

入手したいファイルの指定は、POST photoscene endpoint で、生成後のファイル ダウンロードは、GET photoscene/:photosceneid endpoint でおこなうことが出来ます。obj ファイルを指定すれば、テクスチャ画像も含めた ZIP 圧縮ファイルをダウンロード出来るので、Model Derivative API で SVF 変換、Forge Viewer で表示することも可能です。VS Code Forge Extension を使った Viewer ワークフローの確認 の手順で VSCode でも確認出来るはずです。

3Dシーンのプレビューが表示されているVisual Studio Codeの画面。左側にはフォルダー構造とメニューがあり、右側には3Dモデルが表示されている。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading