【困った…】PIFuHDのエラー FileNotFoundError & module ‘numpy’ has no attribute ‘int’

【困った...】PIFuHDのエラー FileNotFoundError result _2d _256.obj

 

【動画で解説】PIFuHDのエラー
– FileNotFoundError

 

 

【対応例】PIFuHDのエラー対応チュートリアル
FileNotFoundError:result _2d _256.obj

FileNotFoundError:result _〜 _256.obj」というobj形式ファイルが出力されないエラーの解決方法例を動画にまとめておきました。
YouTubeに投稿しておきましたので文字情報だけではわかりにくい方は、解説動画をご活用いただけますと幸いです。

【対応例】PIFuHDのエラー FileNotFoundError:result _2d _256.obj – Response Example Error in PIFuHD by RehabC – デジタルで、遊ぶ。| YouTube
視聴時間:10分35秒

 

【追記:2024年6月12日】

上記の動画を作成した時に比べ、Google Colaboratoryの挙動が変化しているようでしたので、2024年6月12日時点の対応例を動画でまとめておきました。

【対応例】PIFuHDのエラー module ‘numpy’ has no attribute ‘int’ – Response Example Error in PIFuHD by RehabC – デジタルで、遊ぶ。| YouTube
視聴時間:2分53秒

 




 

 

PIFuHDの公式チュートリアルコード

 

 

PIFuHDのリンク
facebookresearch /pifuhd | GitHub

 

 

PIFuHDエラー解決方法例

 

 

以下のファイル

sdf.py」(/content/pifuhd/lib/sdf.py)

内の

    notprocessed = np.zeros(resolution, dtype=np.bool)
    notprocessed[:-1,:-1,:-1] = True
    grid_mask = np.zeros(resolution, dtype=np.bool)

という記述を

    notprocessed = np.zeros(resolution, dtype=bool)
    notprocessed[:-1,:-1,:-1] = True
    grid_mask = np.zeros(resolution, dtype=bool)

に変更します。
(「np.bool」を「bool」に変更)
この情報だけでは、プログラミングに慣れていない方は、わかりにくいかと思いますので、お時間のある時に動画を見ながら一連の手順を順番に実施してみてください。

 

今回のエラーは、以前作成したPIFuHDのチュートリアル動画

【現代の魔法】PIFuHDの使い方入門:AIで2D人物画像から3Dモデル作成〜簡単アニメーションで遊ぶ(Adobe Mixamo)by RehabC – デジタルで、遊ぶ。| YouTube
視聴時間:9分1秒

を視聴してくださった方から2024年6月に報告をいただいたので知ることになりました。
PIFuHDが公開されてから4年ほどの月日が経っているようですが、2024年6月時点でも2D画像から3Dモデルを作成したい方が、興味を持ってくださっているようです、
ここ数年の進歩が著しく、栄枯衰退の激しいAIの領域ではありますが、PIFuHDは、息の長いAIとなりそうですね。

 

 

PIFuHDエラー解決方法例の動画へのコメント

 

 

【PIFuHDエラーと対応例】AttributeError: module ‘numpy’ has no attribute ‘int’.

 

 

【2024年6月10日時点】

Preprocess (for cropping image)」内の以下のコード

実行コード:

net = PoseEstimationWithMobileNet()
checkpoint = torch.load('checkpoint_iter_370000.pth', map_location='cpu')
load_state(net, checkpoint)

get_rect(net.cuda(), [image_path], 512)

を実行すると

エラー出力:

AttributeError: module 'numpy' has no attribute 'int'.

になるという報告も受けました。
対応例としては

EvalWPoseDataset.py – facebookresearch/pifuhd | GitHub

のファイル内の

・「np.int」を「int」に置き換え

た後に、ファイルを保存し該当コードを実行します。
具体的には

・67行目
center = center.astype(np.int)

・100行目
center = center.astype(np.int)

・116行目
center = pts[8,:2].astype(np.int)

・125行目
center = (0.5 * (pmax[:2] + pmin[:2])).astype(np.int)

のコードを修正します。

 

【おまけ】

上述の説明が難しい場合には「Clone PIFuHD repository」のコード

元のコード:

!git clone https://github.com/facebookresearch/pifuhd

を、以下のコード

修正後のコード:

!git clone https://github.com/facebookresearch/pifuhd

!pip install textfile
import textfile

textfile.replace("/content/pifuhd/lib/data/EvalWPoseDataset.py", "np.int", "int")
textfile.replace("/content/pifuhd/lib/sdf.py", "np.bool", "bool")

に変更し、一連のコードを実行するとエラーを回避できるのではないかと思います。
修正後のコードでは

・該当ファイルの「np.int」を「int」に変換

・動画で解説している「np.bool」を「bool」に変換

していますので、動画の手順を実行しなくてもそのままPIFuHDが使えるのではないかと思います。

 

【追記:2024年6月12日時点】

チュートリアル動画作成後の状態とGoogle Colaboraotryの環境が変更されているようでしたので、上述の対応方法ではエラーが出るようでした…
エラー回避の現時点での最終的な結論としては、

・numpyのバージョンが原因

とわかりました。
そのため、「Clone PIFuHD repository」のコード

元のコード:

!git clone https://github.com/facebookresearch/pifuhd

を、以下のコード

修正後のコード:

!git clone https://github.com/facebookresearch/pifuhd

!pip install pandas-stubs==2.0.1.230501 optax==0.1.7 chex==0.1.7 numpy==1.23.5

に変更しコードを実行後に表示される

・セッションを再起動する

セッションを再起動

の表示で

・セッションを再起動する

を選択し、再起動後に、残りの一連のコードを実行するとエラーを回避できるようでした。
この手順を実行した倍には、動画で解説しているような操作はしなくても大丈夫です。
* 確認時点のGoogle ColaboratoryのPythonのバージョン「Python 3.10.12

 

by 子供プログラマー | プログラミング入門ウェブ教室

 

 

PIFuHDで作成した3Dモデルを動かすところまでを解説
PIFuHDの使い方入門 – 2D人物画像から3Dモデル作成(Python・PyTorch・Colaboratory)