正面視点です。左手側の背景物体が人物近傍に存在しています。
本レポートでは、4枚の全身写真から人物の切り抜きを行い、ローカルの fallback メッシュと Hugging Face 上の PSHuman 推論を併用して、3D プレビュー動画を生成した手順を整理しています。入力素材、処理段階、中間生成物、運用上の修正点、最終出力を、同一ページ上で追える構成にしています。
入力は Body Images 内の4枚です。ポーズは腕が胴体から離れており、全身の外形を推定しやすい状態でした。一方で背景は屋外で情報量が多く、黒い衣服も多いため、マスク精度がその後の結果を左右する条件でした。
正面視点です。左手側の背景物体が人物近傍に存在しています。
側面視点です。身体の厚み推定に使用しました。
背面視点です。背面シルエットの補完に使用しました。
最もクリーンな入力であり、PSHuman の本推論にはこの画像を用いました。
今回の処理は、写真の人物切り抜き、4視点の silhouette 整形、ローカル fallback としての visual hull 生成、private Space 上の PSHuman 推論、最後の turntable 動画化、という順で進めています。下の各段で、どの出力が次の入力になったかを確認できます。
初期には rembg も試しましたが、屋外背景由来の混入が残りました。そのため本処理では yolo11n-seg を使い、4枚すべての人物領域を再抽出しました。切り抜き画像は outputs/prepared/*.png として保存しています。
この段階で最も安定していたのは 3_4_view.png であり、最終の PSHuman 推論ではこの画像を主入力に採用しました。
visual hull を作るため、切り抜き PNG から正規化マスクを作成しました。各マスクは高さ基準で整列し、左右位置を揃えたうえで normalized_masks/*.png として保存しています。
これにより、視点ごとの silhouette を共通座標系に投影できる状態にしています。
4視点マスクから occupancy を構築し、marching cubes により粗いメッシュを生成しました。これは external inference が失敗した場合でも、最低限の体積形状を確保するための deterministic fallback です。
生成された visual_hull.obj は 14,894 vertices / 29,824 faces です。
public Space は無料 GPU quota により安定運用できなかったため、fffiloni/PSHuman を daitomanabe/PSHuman として duplicate し、private Space 化しました。さらに PRO、pre-paid credits、L40S x1 を適用しています。
duplicate 後の build では cp310 固定 wheel 群が原因で起動に失敗したため、Space metadata に python_version: "3.10" を追加して再ビルドしました。その後、prepared-three-quarter.png を入力して mesh.obj, mesh_colored.obj, render.mp4 を得ています。
mesh_colored.obj をもとに、ローカルで回転プレビュー動画を作成しました。目的は最終メッシュを全方向から短時間で確認できることです。
現在のプレビューは 6秒 / 24fps で、報告用の軽量な確認動画としてまとめています。
生成品質だけでなく、実行環境の調整も今回の処理の一部でした。公開 Space の制約、private 運用への移行、GPU 選定、build 修正までをここに記録しています。
daitomanabe/PSHumanl40sx13600 seconds最終成果物は、PSHuman の生成動画、回転プレビュー動画、そしてメッシュ本体です。ここでは目視確認しやすいメディアを前に出し、その下に統計を添えています。
レポート閲覧だけでなく、そのまま成果物へアクセスできるように主要ファイルをまとめています。HTML 本体は静的で、下記ファイルを相対参照するだけの構成です。