لمزيد من النتائج المرئية، انتقل إلى صفحة مشروعنا.
لمزيد من التفاصيل، يرجى الرجوع إلى ورقتنا.
يرجى استنساخ البيئة الخاصة بنا وتثبيت التبعيات الضرورية:
conda env create -f environment.yml
conda activate occfusion
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.4 -c pytorch -c nvidia
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
pip install " git+https://github.com/facebookresearch/pytorch3d.git "
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl
نحن نقدم كود التدريب/العرض لتسلسلات OcMotion الستة التي تم أخذ عينات منها بواسطة Wild2Avatar. إذا وجدت التسلسلات التي تمت معالجتها مسبقًا مفيدة، فيرجى مراعاة الاستشهاد بـ Wild2Avatar وCHOMP.
يرجى تنزيل التسلسلات التي تمت معالجتها هنا وفك ضغط التسلسلات التي تم تنزيلها في الدليل ./data/
. يجب أن يبدو هيكل ./data/
كما يلي:
./
├── ...
└── data/
├── 0011_02_1_w2a/
├── images/
├── masks/
└── ...
├── 0011_02_2_w2a/
├── 0013_02_w2a/
├── 0038_04_w2a/
├── 0039_02_w2a/
└── 0041_00_w2a/
يرجى التسجيل وتنزيل نموذج SMPL المحايد هنا. ضع النماذج التي تم تنزيلها في المجلد ./assets/
.
لتمكين SDS للمساحة الأساسية الأكثر كفاءة، يتم حساب لوحة OpenPose للوضعيات الأساسية ثنائية الأبعاد مسبقًا ويمكن تنزيلها هنا. ضع المجلد الذي تم تنزيله في المجلد: ./assets/
.
لتدريب النموذج في المرحلة 0 (اختياري، انظر أدناه)، نحتاج إلى حساب الأقنعة الثنائية للرسومات البشرية الكاملة. استخدمنا SAM-HQ للتجزئة. إذا كنت ترغب في حساب الأقنعة بنفسك، يرجى تنزيل الأوزان المدربة مسبقًا sam_hq_vit_h.pth
هنا ووضع الأوزان التي تم تنزيلها في المجلد: ./assets/
.
بعد التنزيل الناجح، يجب أن يبدو هيكل ./assets/
./
├── ...
└── assets/
├── daposesv2
├── -5.png
└── ...
├── SMPL_NEUTRAL.pkl
└── sam_hq_vit_h.pth (optional)
نحن نقدم نماذجنا المدربة مسبقًا لجميع تسلسلات OcMotion للسماح بالاستدلال/التقييم السريع. يرجى تنزيل المجلد ocmotion/
هنا ووضع المجلدات التي تم تنزيلها في ./output/
.
يتكون تدريب OccFusion من 4 مراحل متتالية. المرحلتان 0 و2 اختياريتان وترسمان الإنسان المغطى بنماذج مخصصة، وحلول، ومطالبات. قد تؤثر المجموعات المختلفة على نتائج الطلاء بشكل كبير. إن الوضعية البشرية عالية الجودة المشروطة هي خارج نطاق هذا العمل. نحن نقدم الكود الخاص بنا (انظر المرحلة 0 والمرحلة 2 أدناه) للسماح للمستخدمين بتجربة أنفسهم.
نحن نقدم أجيالنا المحسوبة مسبقًا (لتكرار نتائجنا في الورقة) ليتم تنزيلها هنا. يرجى فك الضغط ووضع المجلد oc_generations/
مباشرة في الدليل الجذر. إذا استخدمت حساباتنا، فيمكن تخطي المرحلتين 0 و2.
قبل التدريب، نوصي بشدة بتحديد دليل مخصص للتخزين المؤقت لنماذج Hugging Face، والتي سيتم تنزيلها تلقائيًا عند التشغيل الأول لنصوص التدريب.
export HF_HOME= " YOUR_DIRECTORY "
export HF_HUB_CACHE= " YOUR_DIRECTORY "
قم بتشغيل المرحلة 0 (مرحلة التهيئة) لتقسيم ورسم الأقنعة الثنائية للبشر الكاملين باستخدام SAM وStable Diffusion. لتشغيل المرحلة 0 على تسلسل OcMotion، قم بإلغاء تعليق متغير SUBJECT
المقابل و
source run_oc_stage0.sh
سيتم حفظ الأقنعة الثنائية المجزأة في الدليل ./oc_genertaions/$SUBJECT/gen_masks/
.
قم بتشغيل المرحلة الأولى لبدء مرحلة التحسين. لتشغيل المرحلة 1 على تسلسل OcMotion، قم بإلغاء التعليق على متغير SUBJECT
المقابل و
source run_oc_stage1.sh
سيتم حفظ نقطة التفتيش مع العروض في ./output/$SUBJECT/
.
باستخدام نموذج محسّن، قم بتشغيل المرحلة 2 لبدء الطلاء داخل السياق. لتشغيل المرحلة 2 على تسلسل OcMotion، قم بإلغاء التعليق على متغير SUBJECT
المقابل و
source run_oc_stage2.sh
سيتم حفظ صور RGB المرسومة في الدليل ./oc_genertaions/$SUBJECT/incontext_inpainted/
Painted/.
وأخيرًا، باستخدام صور RGB المضمنة ونقطة فحص النموذج المُحسّنة، قم بتشغيل المرحلة 3 لبدء مرحلة التحسين. لتشغيل المرحلة 3 على تسلسل OcMotion، قم بإلغاء تعليق متغير SUBJECT
المقابل و
source run_oc_stage1.sh
سيتم حفظ نقطة التفتيش مع العروض في ./output/$SUBJECT/
.
في المرحلتين 1 و3، سيتم تشغيل عملية العرض تلقائيًا بعد انتهاء التدريب. للعرض بشكل صريح على نقطة تفتيش مدربة، قم بتشغيل
source render.sh
قاعدة الكود هذه مبنية على GauHuman. يتم استعارة إرشادات SDS من DreamGaussian.
تحقق أيضًا من أعمالنا السابقة على العرض البشري المغطى! OccNeRF وWild2Avatar.
إذا وجدت هذا الريبو مفيدًا في عملك أو بحثك، فيرجى الاستشهاد بما يلي:
@inproceedings { occfusion ,
title = { OccFusion: Rendering Occluded Humans with Generative Diffusion Priors } ,
author = { Sun, Adam and Xiang, Tiange and Delp, Scott and Fei-Fei, Li and Adeli, Ehsan } ,
booktitle = { The Thirty-eighth Annual Conference on Neural Information Processing Systems } ,
url = { https://arxiv.org/abs/2407.00316 } ,
year = { 2024 }
}