PIFuHD(2D→3D)にエラーが出て3D画像が作れなくなりました。その対処法についてです。
◇Aiに聞くと(原因)
「エラーの原因は、marching_cubes_lewinerという関数が非推奨になったことかもしれません。」とあります。
◇解決策は
①scikit-imageのバージョンを0.19.2にダウングレードする。
②lib.mesh_utilの77行目を書き換えて、marching_cubes_lewinerをmarching_cubesにする。
との答えでした。②の方法を記載します。
※PIFuHDの使い方は以前の記事(動画付き)を参照してください。
Googleドライブに、PIFuHDのコピーが終了したところから説明します。
>>>
全体図
以前の記事内容とは若干操作方法が変わります。「すべてのセルを選択」をクリックしての手放操作ではなく、[]にマウスを当てを手動で行ってゆきます。
それでは、ボタンをクリックしてライブラリを取得します。
※諸々のプログラムの作成者により表示が異なりますが、それでも下方へ順にをクリックで進めばOKです。
ライブラリの取得が済んだら、フォルダを表示させ、上部の更新ボタンをクリックします。
この作業は、PiFuの実行、使用画像のアップロード手前までに行ってください。
「pifuhd」フォルダを表示させたら修正ファイルを探します。「pifuhd」→「lib」→「mesh_util.py」とクリックで進み「mesh_util.py」をダブルクリックすると右側に、ファイル編集が表示されます。スクロールダウンで77行目まで移動します。
◇回答 77行目を書き直します。
verts, faces, normals, values = measure.marching_cubes_lewiner(sdf, thresh)を
↓
verts, faces, normals, values = measure.marching_cubes(sdf, thresh)に変更します。
※後半部分を消すだけでイケます。
作業を保存するため、再び更新ボタンをクリックしておきます。
プログラム編集を非表示にするときは、mesh_util.pyの「X」をクリックします。
使用する画像をアップロードします。
アップロードが完了したら、次の[]アイコンにマウスを当てを表示させます。これを順に行いながら進みます。
「レンダリング」で下記の表示がされたならば成功です。
更新ボタンをクリック、「recon」ファルダをオープンします。そこに、objファイルがあれば成功です!
mp4取得エラーは無視しています。
◇編集後記
Aiに聞いたなんて大げさですが、これは誰でも利用できます。MicrsoftのBingを使います。
MicrsoftのブラウザBingから申請しておけば、次期に使えるようになります。
OpenAiやChatGPTも使っていますが、使い勝手がそちらより便利かもしれません。
例えば「今夜の晩御飯を考えて・・・」
のように、漠然とした内容でも答えてくれますが、具体的に質問すればより良い結果が出ます。
「今夜の晩御飯を考えて欲しい。条件は、豚肉を使用して15分ほどで作れるもの。600cal程度。・・・」
などと詳しく入力します。
このブログの回答を得るまで質問は2回で済みました。
Aiはweb上の膨大なデータから答えを探してくれますが、時には、回答を間違えることもあるようです。検索と併用しながら、自分なりの納得の行く回答を追及すればよいと思います。
本題のPIFuHDですが、写真から3Dモデルを作成できるオープンソースのプログラムです。Googleドライブへコピーして使います。