2021年6月8日火曜日

Object capture でうさぎを3Dにする! その2 〜CreatingAPhotogrammetryCommandLineApp で -11エラー〜

 さてさて、さきほどの続きであります。はたしてうさぎを 3D にできるのか!?

 Xcode13 beta は手に入りましたね?

 

Xcode13 のインストール

はい。Xcode を入れます。
これは言うまでもないのでばっさり手順割愛。

 


 

Apple のサンプルコードの入手

Creating a Photogrammetry Command-Line Appから、ファイルをダウンロードしてきてください。

解凍して、プロジェクトを開きましょう。

 

開いたら、signingまわりをなんとかして・・・

このプロジェクトはコマンドライン引数を取るので、ここから設定します。
第1引数が、3D化したい写真が大量に入ったディレクトリのパス。
第2引数が、3D化した結果のファイル名。

 

・・・ん?
写真が必要なんですね。撮りましょう。

※ちなみに、あとから気がつきましたが
 サンプル写真が、当該プロジェクトの Data/Rock36Images.zip というところにありました。これを使って試せるようです。まぁ、私はこれを使っても -11 エラーでしたけど。。。

 

3Dにしたい対象物の写真を撮る

私が使ったのは iOS14.6 の iPhone X。これで写真を撮ってゆきます。
別に LiDAR とかいらないらしい。

RealityKit オブジェクトの作成では、iPhone や iPad のカメラ、DSLR やミラーレス カメラ、さらにはカメラを搭載したドローンなど、あらゆるデジタル カメラでキャプチャした画像を受け入れます ・・・Google翻訳したこちらより引用

・・・だそうな。

 

具体的な撮り方ですが、
物体の上から、物体を舐め回すように眺めながら撮ってゆきます。

このあたりの正確な作法はこちらにありますが、いまは物体をテキトーに撮っていきます。

必要とするファイルの形式すらもよくわからず、はじめは .JPG で、二回目は .HEIC で撮ってます。これがいいのか悪いのかはよくわかっていない(なぜなら後述のエラーで進まないから)。

今回は、こんな感じで念入りに撮りました。

・・・

撮った写真は、mac にディレクトリを作って移します。
今回は /Users/junakita/Desktop/rabbit2 に置いたので、Xcode で指定した第1引数も /Users/junakita/Desktop/rabbit2 にしてあります。


プロジェクトを実行

さてさて、Xcode に戻って実行すると・・・

変なエラーが出ています。

 Using configuration: Configuration(isObjectMaskingEnabled: true, sampleOverlap: RealityFoundation.PhotogrammetrySession.Configuration.SampleOverlap.normal, sampleOrdering: RealityFoundation.PhotogrammetrySession.Configuration.SampleOrdering.unordered, featureSensitivity: RealityFoundation.PhotogrammetrySession.Configuration.FeatureSensitivity.normal)
2021-06-08 22:36:04.244052+0900 HelloPhotogrammetry[850:21464] Metal API Validation Enabled
Error creating session: cantCreateSession("Native session create failed: CPGReturn(rawValue: -11)")
Program ended with exit code: 1

 

・・・これがちっとも解決しません。

ドキュメントを見ても -11 の意味がわからず、
Twitter を見ても -11 の意味がわからず、
ビルドしてからターミナル経由で呼び出しても変わらず。

 

※ちなみに、このサンプルのコマンドライン引数はこうです

junakita@akitajunnoMacBook bin % ./HelloPhotogrammetry
Error: Missing expected argument '<input-folder>'

OVERVIEW: Reconstructs 3D USDZ model from a folder of images.

USAGE: hello-photogrammetry <input-folder> <output-filename> [--detail <detail>] [--sample-overlap <sample-overlap>] [--sample-ordering <sample-ordering>] [--feature-sensitivity <feature-sensitivity>]

ARGUMENTS:
  <input-folder>          The local input file folder of images.
  <output-filename>       Full path to the USDZ output file.

OPTIONS:
  -d, --detail <detail>   detail {preview, reduced, medium, full, raw}  Detail of output model in terms of mesh size and texture size . (default: nil)
  -l, --sample-overlap <sample-overlap>
                          sampleOverlap {normal, low}  It should be set to `low` if there is low overlap between images captured nearby in space.
  -o, --sample-ordering <sample-ordering>
                          sampleOrdering {unordered, sequential}  Setting to sequential may speed up computation if images are captured in a spatially sequential
                          pattern.
  -f, --feature-sensitivity <feature-sensitivity>
                          featureSensitivity {normal, high}  Set to high if the scanned object does not contain a lot of discernible structures, edges or textures.
  -h, --help              Show help information.

 

 ・・・ということで、きょうはこれで袋小路のままで終わりになりそうな予感です。

 

 

 < はやく 3D にして〜🐰
 
 
 
 
 

 

0 件のコメント:

コメントを投稿