لا يزال هذا مشروعًا بحثيًا قيد التقدم.
يهدف هذا المشروع إلى قياس العديد من خوارزميات الحقول على نطاق واسع على نطاق واسع. نحن نستخدم المصطلحات "NERF غير المحدود" و "NERF على نطاق واسع" لأننا نجد أن التقنيات التي تقف وراءها ترتبط ارتباطًا وثيقًا.
بدلاً من متابعة نظام التعليمات البرمجية الكبير والمعقد ، نتابع ريبو رمز بسيط مع أداء SOTA لـ NERFs غير المحدود.
من المتوقع أن تحصل على النتائج التالية في هذا المستودع:
| معيار | طُرق | PSNR |
|---|---|---|
| الدبابات والمعابد غير المحدودة | nerf ++ | 20.49 |
| الدبابات والمعابد غير المحدودة | بلينوكسل | 20.40 |
| الدبابات والمعابد غير المحدودة | DVGO | 20.10 |
| الدبابات والمعابد غير المحدودة | لنا | 20.85 |
| MIP-NERF-360 القياس | nerf | 24.85 |
| MIP-NERF-360 القياس | nerf ++ | 26.21 |
| MIP-NERF-360 القياس | MIP-NERF-360 | 28.94 |
| MIP-NERF-360 القياس | DVGO | 25.42 |
| MIP-NERF-360 القياس | لنا | 28.98 |
انشقاقات التدريب:
تناوب:
آمل أن تساعد جهودنا في بحثك أو مشاريعك!
استنساخ هذا المستودع. استخدم العمق == 1 لتجنب تنزيل تاريخ كبير.
git clone --depth=1 [email protected]:sjtuytc/LargeScaleNeRFPytorch.git
mkdir data
mkdir logsإنشاء بيئة كوندا.
conda create -n large-scale-nerf python=3.9
conda activate large-scale-nerfتثبيت Pytorch و libs الأخرى. تأكد من أن إصدار Pytorch الخاص بك متوافق مع CUDA الخاص بك.
pip install --upgrade pip
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
pip install -r requirements.txtقم بتثبيت المشغلين المستندة إلى الشبكة لتجنب تشغيلها في كل مرة ، مطلوب Cuda Lib. (تحقق عبر "NVCC -V" للتأكد من أن لديك أحدث CUDA.)
apt-get install g++ build-essential # ensure you have g++ and other build essentials, sudo access required.
cd FourierGrid/cuda
python setup.py install
cd ../../تثبيت libs الأخرى المستخدمة لإعادة بناء المشاهد المخصصة . هذا مطلوب فقط عندما تحتاج إلى بناء مشاهدك.
sudo apt-get install colmap
sudo apt-get install imagemagick # required sudo accesss
conda install pytorch-scatter -c pyg # or install via https://github.com/rusty1s/pytorch_scatterيمكنك استخدام إصدار الكمبيوتر المحمول من Colmap أيضًا إذا لم تتمكن من الوصول إلى Sudo Access على الخادم الخاص بك. ومع ذلك ، وجدنا إذا لم تقم بإعداد معلمات Colmap بشكل صحيح ، فلن تحصل على أداء SOTA.
انقر فوق عناوين القسم الفرعي التالي لتوسيع / انهيار خطوات.
(1) الدبابات والمعابد غير المحدودة. قم بتنزيل البيانات من هنا. ثم فك ضغط البيانات.
cd data
gdown --id 11KRfN91W1AxAW6lOFs4EeYDbeoQZCi87
unzip tanks_and_temples.zip
cd ../(2) مجموعة بيانات MIP-NERF-360.
cd data
wget http://storage.googleapis.com/gresearch/refraw360/360_v2.zip
mkdir 360_v2
unzip 360_v2.zip -d 360_v2
cd ../(3) خليج San Fran Cisco Mission. ما يجب أن تعرفه قبل تنزيل البيانات:
سوف تبدو البيانات التي تم تنزيلها هكذا:
data
|
|——————360_v2 // the root folder for the Mip-NeRF-360 benchmark
| └——————bicycle // one scene under the Mip-NeRF-360 benchmark
| | └——————images // rgb images
| | └——————images_2 // rgb images downscaled by 2
| | └——————sparse // camera poses
| ...
|——————tanks_and_temples // the root folder for Tanks&Temples
| └——————tat_intermediate_M60 // one scene under Tanks&Temples
| | └——————camera_path // render split camera poses, intrinsics and extrinsics
| | └——————test // test split
| | └——————train // train split
| | └——————validation // validation split
| ...
|——————pytorch_waymo_dataset // the root folder for San Fran Cisco Mission Bay
| └——————cam_info.json // extracted cam2img information in dict.
| └——————coordinates.pt // global camera information used in Mega-NeRF, deprecated
| └——————train // train data
| | └——————metadata // meta data per image (camera information, etc)
| | └——————rgbs // rgb images
| | └——————split_block_train.json // split block informations
| | └——————train_all_meta.json // all meta informations in train folder
| └——————val // val data with the same structure as train
تحتاج فقط إلى تشغيل "Python Run_FourierGrid.py" لإنهاء دورة اختبار التجارة. تفسيرات بعض الحجج:
--program: the program to run, normally --program train will be all you need.
--config: the config pointing to the scene file, e.g., --config FourierGrid/configs/tankstemple_unbounded/truck_single.py.
--num_per_block: number of blocks used in large-scale NeRFs, normally this is set to -1, unless specially needed.
--render_train: render the trained model on the train split.
--render_train: render the trained model on the test split.
--render_train: render the trained model on the render split.
--exp_id: add some experimental ids to identify different experiments. E.g., --exp_id 5.
--eval_ssim / eval_lpips_vgg: report SSIM / LPIPS(VGG) scores.بينما ندرج تخصص الأوامر في البرامج النصية/Train_FourierGrid.sh ، فإننا ندرج بعض الأوامر أدناه للحصول على استنساخ أفضل.
# Unbounded tanks and temples
python run_FourierGrid.py --program train --config FourierGrid/configs/tankstemple_unbounded/playground_single.py --num_per_block -1 --render_train --render_test --render_video --exp_id 57
python run_FourierGrid.py --program train --config FourierGrid/configs/tankstemple_unbounded/train_single.py --num_per_block -1 --render_train --render_test --render_video --exp_id 12
python run_FourierGrid.py --program train --config FourierGrid/configs/tankstemple_unbounded/truck_single.py --num_per_block -1 --render_train --render_test --render_video --exp_id 4
python run_FourierGrid.py --program train --config FourierGrid/configs/tankstemple_unbounded/m60_single.py --num_per_block -1 --render_train --render_test --render_video --exp_id 6
# 360 degree dataset
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/room_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 9
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/stump_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 10
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/bicycle_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 11
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/bonsai_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 3
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/garden_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 2
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/kitchen_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 2
python run_FourierGrid.py --program train --config FourierGrid/configs/nerf_unbounded/counter_single.py --num_per_block -1 --eval_ssim --eval_lpips_vgg --render_train --render_test --render_video --exp_id 2
# San Francisco Mission Bay dataset
python run_FourierGrid.py --program train --config FourierGrid/configs/waymo/waymo_no_block.py --num_per_block 100 --render_video --exp_id 30لا يزال يتم توفير الإصدار القديم من Block-Nerf ليكون بمثابة خط أساسي ، ولكن سيتم إهماله قريبًا. سنعمل بشكل أساسي على النماذج القائمة على الشبكة لاحقًا لأنها بسيطة وسريعة. قم بتشغيل الأمر التالي لتكاثر تجارب الكتلة القديمة:
bash scripts/block_nerf_train.sh
bash scripts/block_nerf_eval.shضع صورك تحت مجلد البيانات. يجب أن يكون الهيكل مثل:
data
| ——————Madoka // Your folder name here.
| └——————source // Source images should be put here.
| └——————--- | 1.png
| └——————--- | 2.png
| └——————--- | ...يتم توفير بيانات العينة في مجلد Google Drive الخاص بنا. يمكن العثور على Madoka و Otobai في هذا الرابط.
تشغيل Colmap لإعادة بناء المشاهد. من المحتمل أن يكلف هذا وقتًا طويلاً.
python FourierGrid/tools/imgs2poses.py data/Madokaيمكنك استبدال Data/Madoka بمجلد البيانات الخاص بك. إذا كان إصدار Colmap الخاص بك أكبر من 3.6 (والذي لا ينبغي أن يحدث إذا كنت تستخدم APT-GET) ، فأنت بحاجة إلى تغيير export_path إلى Output_Path في colmap_wrapper.py.
تدريب مشاهد nerf.
python FourierGrid/run_FourierGrid.py --config configs/custom/Madoka.pyيمكنك استبدال التكوينات/custom/madoka.py من خلال التكوينات الأخرى.
التحقق من صحة نتائج التدريب لإنشاء فيديو ذبابة.
python FourierGrid/run_FourierGrid.py --config configs/custom/Madoka.py --render_only --render_video --render_video_factor 8أحدث أعمالنا النظرية حول النماذج المستندة إلى الشبكة ( مرشح جائزة عن طريق الفم وأفضل الورق ودرجة المراجعة الكاملة (5/5/5) في CVPR24):
@misc{zhao2024grounding,
title={Grounding and Enhancing Grid-based Models for Neural Fields},
author={Zelin Zhao and Fenglei Fan and Wenlong Liao and Junchi Yan},
year={2024},
eprint={2403.20002},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
النظر في الاستشهاد بالأعمال العظيمة التالية:
@inproceedings{dvgo,
title={Direct voxel grid optimization: Super-fast convergence for radiance fields reconstruction},
author={Sun, Cheng and Sun, Min and Chen, Hwann-Tzong},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={5459--5469},
year={2022}
}
@InProceedings{Tancik_2022_CVPR,
author = {Tancik, Matthew and Casser, Vincent and Yan, Xinchen and Pradhan, Sabeek and Mildenhall, Ben and Srinivasan, Pratul P. and Barron, Jonathan T. and Kretzschmar, Henrik},
title = {Block-NeRF: Scalable Large Scene Neural View Synthesis},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {8248-8258}
}
نشير إلى الكود والبيانات من DVGO و NERF-PL و SVOX2 ، شكرًا على عملهم الرائع!
نتتبع أوراق NERF الأسبوعية وتصنيفها. تمت إضافة جميع أوراق NERF المنشورة السابقة إلى القائمة. نحن نقدم نسخة باللغة الإنجليزية ونسخة صينية. نرحب بالمساهمات والتصحيحات عبر العلاقات العامة.
نقدم أيضًا إصدارًا Excel (بيانات التعريف) لجميع أوراق NERF ، يمكنك إضافة تعليقاتك الخاصة أو صنع أدوات تحليل الورق الخاصة بك بناءً على بيانات التعريف المنظمة.
شكراً لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
زيلين تشاو ؟ | إيز يانغ | أليكس زانغ ؟ | مروحة لو ؟ | Maybeshewill-cv ؟ | Buer1121 ؟ |
يتبع هذا المشروع مواصفات جميع المساهمين. مساهمات من أي نوع ترحيب!