Prestasi menakjubkan model besar yang diwakili oleh chatgpt tahun ini telah menyemarakkan sepenuhnya bidang AICG. Pelbagai produk pemetaan gpt dan AI bermunculan seperti cendawan selepas hujan. Di sebalik setiap produk yang berjaya adalah algoritma yang indah Artikel ini akan memberi anda pengenalan terperinci kepada proses dan kod cara menggunakan telefon mudah alih untuk mengambil beberapa foto adegan yang sama, kemudian mensintesis perspektif baharu dan menghasilkan video. Teknologi yang digunakan dalam artikel ini ialah NeRF (Neural Radiance Fields), iaitu kaedah pembinaan semula 3D berdasarkan pembelajaran mendalam yang telah muncul sejak 2020. Ia boleh menjana imej berkualiti tinggi dengan mempelajari penghantaran cahaya dan sinaran pemindahan tempat kejadian. imej pemaparan adegan dan model 3D. Mengenai prinsip dan kesusasteraannya, saya mempunyai senarai rujukan di penghujung untuk dipelajari oleh semua orang. Artikel ini terutamanya memperkenalkannya dari perspektif baharu penggunaan kod dan pembinaan persekitaran.
Persekitaran perkakasan yang digunakan dalam artikel ini ialah GPU RTX3090, dan sistem pengendalian ialah Windows 10. perisian yang digunakan ialah pelaksanaan NeRF sumber terbuka (https://github.com/cjw531/nerf_tf2). Memandangkan RTX 3090 memerlukan sokongan CUDA 11.0 dan ke atas, dan TensorFlow-gpu memerlukan sokongan 2.4.0 dan ke atas, kami tidak memilih https://github.com/bmild/nerf kerana persekitaran bmild menggunakan aliran tensor -. gpu==1.15, versi terlalu lama. Akan ada masalah berikut apabila menjalankan https://github.com/bmild/nerf/issues/174#issue-1553410900 Saya juga menjawab dalam tt ini bahawa saya perlu menaik taraf kepada 2.8. Tetapi walaupun anda menggunakan https://github.com/cjw531/nerf_tf2, persekitarannya agak bermasalah. Pertama sekali, kerana ia disambungkan ke saluran konda asing, kelajuannya sangat perlahan. Kedua, persekitarannya menggunakan tensorflow==2.8 dan tidak menyatakan versi tensorflow-gpu. untuk dua soalan ini. Kami telah mengubah suai environment.yml.
# To run: conda env create -f environment.ymlname: nerf_tf2channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- conda-forgedependencies:- python=3.7- pip- cudatoolkit=11.0- cudnn=8.0- numpy- matplotlib- imageio- imageio-ffmpeg- configargparse- ipywidgets- tqdm- pip:- tensorflow==2.8- tensorflow-gpu==2.8- protobuf==3.19.0- -i https://pypi.tuna.tsinghua.edu.cn/simple
Buka cmd dan masukkan arahan berikut.
conda env create -f environment.yml
Tambahkan nerf_tf2 pada jupyter, supaya jupyter dapat melihat hasil sistem yang sedang berjalan dengan mudah.
// 安装ipykernelconda install ipykernel
//是该conda环境在jupyter中显示python -m ipykernel install --user --name 环境名称 --python -m ipykernel install --user --name 环境名称 --display-name "jupyter中显示名称"display-name "jupyter中显示名称"
//切换到项目目录cd 到项目目录//激活conda环境activate nerf_tf2//在cmd启动jupyterjupyter notebook
Kini persekitaran konda dan jupyter sudah sedia.
Contoh gambar yang diambil oleh telefon bimbit
feature_extractor_args = ['colmap', 'feature_extractor','--database_path', os.path.join(basedir, 'database.db'),'--image_path', os.path.join(basedir, 'images'),'--ImageReader.single_camera', '1',# '--SiftExtraction.use_gpu', '0',]
python imgs2poses.py
Selepas menjalankan fail imgs2poses. direktori jarang, colmap_out.txt, database.db, poses_bounds.npy, kemudian kami mencipta data direktori baharu/nerf_llff_data/ll di bawah projek nerf_tf2 dan menyalin direktori jarang dan poses_bounds.npy di atas ke direktori ini. Akhir sekali, kami mengkonfigurasi fail baharu config_ll.txt. Pada ketika ini kerja penyediaan data kami selesai.
expname = ll_testbasedir = ./logsdatadir = ./data/nerf_llff_data/lldataset_type = llfffactor = 8llffhold = 8N_rand = 1024N_samples = 64N_importance = 64use_viewdirs = Trueraw_noise_std = 1e0
Pindahkan perisian sumber terbuka ke platform windows.
Memandangkan perisian sumber terbuka ini terutamanya menyokong mac dan linux, ia tidak boleh dijalankan pada tingkap dan memerlukan pengubahsuaian load_llff.py.
load_llff migrasi kod
Jalankan 300,000 latihan kelompok.
activate nerf_tf2python run_nerf.py --config config_ll.txt
render_demo berjalan
Oleh kerana kami menggunakan imej input kurang sedikit, hanya 10 Zhang , jadi kesannya tidak begitu baik, tetapi keseluruhan proses adalah sama. Petua: Separuh daripada kod rasmi menggunakan 30 atau 100 gambar.
Memberikan daripada perspektif baharu
kesan perspektif baharu sintetik rasmi pakis
https://zhuanlan.zhihu.com/p/554093703.
https://arxiv.org/pdf/2003.08934.pdf.
https://zhuanlan.zhihu.com/p/593204605.
https://inst.eecs.berkeley.edu/~cs194-26/fa22/Lectures/nerf_lecture1.pdf.
Atas ialah kandungan terperinci Pengeluaran kandungan digital DIY menggunakan teknologi AI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!