Rumah  >  Artikel  >  Peranti teknologi  >  Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

PHPz
PHPzke hadapan
2023-04-08 23:11:021470semak imbas

Penterjemah |. Zhu Xianzhong

Pengulas | Sun Shujuan

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 1: Penutup

Menjana model 3D boleh menjadi masa-. memakan , atau memerlukan sejumlah besar imej rujukan. Satu cara untuk menyelesaikan masalah ini ialah menggunakan medan sinaran saraf (NeRF), kaedah kecerdasan buatan untuk menjana imej. Idea utama NERF adalah untuk mengambil set kecil imej 2D bagi objek atau pemandangan yang anda ambil gambar, dan kemudian gunakan imej 2D ini untuk membina perwakilan 3D dengan cekap. Ini dicapai dengan belajar mengubah antara imej sedia ada. Kini teknik melompat (juga dipanggil "interpolasi") ini boleh membantu anda mencipta imej perspektif baharu pada objek!

Sedap bunyinya, kan? Dengan bantuan set kecil imej, anda boleh membuat model 3D! Ini berfungsi lebih baik daripada fotogrametri standard, yang memerlukan perpustakaan imej yang besar untuk menghasilkan beberapa gambar (anda memerlukan tangkapan dari setiap sudut). Walau bagaimanapun, NVIDIA pada mulanya berjanji bahawa NeRF akan menjadi pantas namun, sehingga baru-baru ini, ini tidak berlaku. Sebelum ini, NeRF cenderung mengambil masa yang lama untuk mempelajari cara menukar set imej kepada model 3D.

Tetapi hari ini, itu tidak lagi berlaku. Baru-baru ini, NVIDIA membangunkan perisian NeRF segera yang memanfaatkan perkakasan GPU untuk menjalankan pengiraan kompleks yang diperlukan. Pendekatan ini mengurangkan masa yang diperlukan untuk mencipta model dari hari ke saat! NVIDIA membuat banyak tuntutan menarik tentang kebolehgunaan dan kelajuan perisian instant-ngp. Selain itu, hasil dan contoh yang mereka berikan juga sangat mengagumkan:

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 2: Paparan imej NeRF - NVIDIA mempunyai makmal robotik yang hebat

Saya dapati sukar untuk tidak kagum dengan demo ini – ia kelihatan hebat! Jadi, saya ingin melihat betapa mudahnya untuk memindahkan ini ke imej saya sendiri dan menjana model NeRF saya sendiri. Jadi, saya memutuskan untuk memasang dan menggunakan perisian ini sendiri. Dalam artikel ini saya akan menerangkan pengalaman saya dengan eksperimen dan memperincikan model yang saya buat!

Pembahagian tugas utama

Jadi apa yang perlu kita lakukan? Tugasan yang dipentaskan secara kasar dibahagikan seperti berikut:

  • Pertama sekali, kita perlu memetik beberapa rakaman. Jom rakam beberapa video yang ingin kami buat dalam 3D!
  • Kemudian, kami mula merakam adegan dan menukar video yang ditangkap kepada berbilang imej pegun.
  • Kami menghantar data imej berterusan yang diperoleh di atas kepada instant-ngp. AI kemudian dilatih untuk memahami ruang antara imej yang kami hasilkan. Ini sebenarnya sama seperti membuat model 3D.
  • Akhir sekali, kami mahu mencipta video yang mempamerkan ciptaan kami! Dalam perisian yang dibangunkan oleh NVIDIA, kami akan melukis laluan, biarkan kamera membawa kami melalui model yang kami buat, dan kemudian memaparkan video.

Saya tidak akan menerangkan secara terperinci tentang cara ini semua berfungsi, tetapi saya akan memberikan pautan kepada banyak sumber yang saya dapati membantu. Jadi, seterusnya, saya akan fokus pada video yang saya buat, dan beberapa cebisan ilmu yang saya temui sepanjang perjalanan.

Mulakan percubaan saya

Perisian NeRF segera NVIDIA bukanlah mudah untuk dipasang. Walaupun arahan untuk perisian itu jelas, saya rasa bahagian arahan yang diperlukan tidak menawarkan banyak ruang goyang apabila ia datang kepada versi khusus perisian yang diperlukan oleh individu. Nampaknya mustahil bagi saya untuk menggunakan CUDA 11.7 atau VS2022, tetapi saya fikir ia telah bertukar kembali kepada versi CUDA 11.6 dan VS2019 yang akhirnya berjaya membuat pemasangan. Antaranya, saya mengalami banyak ralat, seperti "CUDA_ARCHITECTURES kosong untuk sasaran", dsb. Ini kerana kerjasama antara CUDA dan Visual Studio tidak mesra. Oleh itu, saya amat mengesyorkan pembaca yang berminat untuk merujuk kepada ​​video​​ dan ​​sumber gudang​​ di Github untuk membantu anda menyediakan segala-galanya dengan lancar.

Selain daripada itu, proses berjalan lancar. Pegawai itu juga menyediakan skrip Python untuk membantu membimbing langkah-langkah menukar video yang ditangkap kepada imej, dan seterusnya menukarnya menjadi model dan video.

Eksperimen 1: Kereta LEGO

Pada mulanya, saya cuba NeRF-ify kereta LEGO kecil di pejabat saya. Saya merasakan kemahiran fotografi saya tidak mencukupi kerana saya tidak dapat mencipta sebarang imej yang bermakna. Hanya cela 3D yang pelik. Lupakan saja, mari kita lihat contoh yang diberikan kepada kita oleh NVIDIA. Sila ambil perhatian kedudukan kamera dalam gambar:

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 3: Kedudukan "Kamera" model NeRF lalai penggali yang disediakan oleh NVIDIA

Salah satu tetapan penyediaan yang berfungsi dengan baik untuk latihan ialah meletakkan "kamera" di tempat kejadian seperti yang diterangkan dalam gambar di atas. Kamera ini ialah sudut yang difikirkan oleh perisian yang anda hadapi semasa merakam video. Ia sepatutnya menjadi bulatan yang bagus. Sudah tentu, kereta Lego pertama saya tidak kelihatan seperti ini sama sekali, tetapi separuh bulatan terhimpit.

Eksperimen 2: Kereta LEGO Yang Lebih Besar Sedikit

Untuk belajar daripada percubaan pertama, saya menemui meja dengan mobiliti penuh dan menemui sebuah kereta Lego yang lebih besar. Saya cuba memastikan saya menangkap foto untuk jangka masa yang lebih lama daripada sebelumnya juga. Akhirnya, saya merakam video 1 minit yang lancar dari semua sudut. Secara keseluruhan, saya mengambil masa kurang daripada 30 saat untuk melatih model itu. Selepas 4 jam membuat rendering pada 720p, berikut ialah video yang saya buat:

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 4: Model NeRF kedua saya – sebuah kereta LEGO Technic!

Eksperimen 3: Tumbuhan

Hasilnya membuktikan bahawa eksperimen 2 di atas adalah lebih baik, sekurang-kurangnya boleh dilaksanakan secara teknikal. Walau bagaimanapun, masih terdapat kabus aneh, yang pastinya tidak terlalu menyusahkan. Dalam percubaan seterusnya, saya juga cuba merakam dari jauh ke belakang (saya mengandaikan kabus disebabkan oleh AI yang "keliru" tentang apa yang ada). Saya cuba untuk mempunyai lebih kawalan ke atas parameter aabc_scale (yang mengukur seberapa besar adegan itu) dan kemudian melatihnya selama beberapa minit. Pada penghujung rendering, hasil video diperolehi seperti yang ditunjukkan di bawah:

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 5: Model NeRF yang saya buat dengan tumbuhan di atas meja ruang tamu

Jauh lebih baik! Sungguh mengagumkan bagaimana ia mewakili selok-belok pasu tumbuhan yang dirajut, alur dalam kayu, dan dedaunan dengan ketepatan sedemikian. Lihatlah kamera melayang di atas daun!

Ujian 4:

Kini, keputusan ujian kami semakin baik dan lebih baik! Walau bagaimanapun, saya ingin video luar. Saya merakam video kurang daripada 2 minit di luar apartmen saya dan mula memprosesnya. Ini amat menyusahkan untuk rendering/latihan. Tekaan saya di sini ialah nilai aabc_scale saya agak tinggi (8), jadi "sinar" pemaparan mesti pergi sangat jauh (iaitu bilangan perkara yang saya mahu berikan lebih tinggi). Jadi, saya terpaksa bertukar kepada 480p dan menurunkan FPS pemaparan daripada 30 kepada 10. Ternyata pilihan parameter tetapan mempengaruhi masa rendering. Selepas 8 jam membuat persembahan, saya mendapat yang berikut:

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 6: Model NeRF yang saya gunakan di luar apartmen saya

Walau bagaimanapun, saya rasa The percubaan ketiga masih kegemaran saya. Saya rasa saya boleh melakukan percubaan keempat dengan lebih baik. Walau bagaimanapun, apabila masa pemaparan menjadi sangat panjang, ia menjadi sukar untuk mengulangi versi dan mencuba dengan tetapan pemaparan dan latihan yang berbeza. Kini sukar untuk menetapkan sudut kamera untuk pemaparan, yang menyebabkan program saya menjadi sangat perlahan.

Walau bagaimanapun, ini benar-benar keluaran yang sangat menakjubkan, kerana hanya satu atau dua minit data video digunakan. Akhirnya, saya akhirnya mempunyai model 3D yang terperinci dan realistik!

Analisis Kebaikan dan Keburukan

Apa yang saya rasa paling mengagumkan ialah dalam 1-2 minit penangkapan, seseorang yang tiada latihan fotogrametri (saya) boleh mencipta model 3D yang boleh digunakan. Proses ini memerlukan beberapa pengetahuan teknikal, tetapi setelah anda menyediakan segala-galanya, ia mudah digunakan. Menggunakan skrip Python untuk menukar video kepada imej berfungsi dengan baik. Setelah ini selesai, memasukkan ke dalam AI akan berjalan dengan lancar.

Walau bagaimanapun, walaupun sukar untuk menyalahkan Nvidia untuk aspek ini, saya rasa saya harus mengemukakannya: perkara ini memerlukan GPU yang cukup berkuasa. Saya mempunyai T500 dalam komputer riba saya dan tugas ini hanya menolaknya ke had mutlaknya. Masa latihan sememangnya lebih lama daripada 5 saat yang diiklankan, dan cuba untuk membuat pada 1080p akan menyebabkan program ranap (saya memilih untuk membuat secara dinamik sekitar penunjuk 135*74). Kini, ini masih merupakan peningkatan yang besar, kerana percubaan model NeRF sebelum ini mengambil masa beberapa hari.

Saya tidak fikir semua orang akan mempunyai pelantar 3090p untuk projek seperti ini, jadi ia bernilai nota ringkas. Komputer berprestasi rendah menyukarkan program untuk digunakan, terutamanya apabila saya cuba membuat kamera "terbang" untuk mempunyai persediaan yang lebih kondusif untuk memaparkan video. Namun, hasil proses itu mengagumkan.

Selain itu, masalah lain yang saya hadapi ialah tidak dapat mencari fail render render.py (yang, seperti yang anda rasa, adalah penting untuk memaparkan video). Sangat aneh, ia tidak terdapat dalam repositori kod sumber terbuka yang disediakan secara rasmi, walaupun banyak disebut dalam kebanyakan artikel pengiklanan dan dokumentasi lain. Oleh itu, saya perlu mencungkil harta ini dari pautan https://www.php.cn/link/b943325cc7b7422d2871b345bf9b067f.

Akhir sekali, saya juga berharap untuk menukar model 3D di atas kepada fail .obj. Mungkin sekarang, ini mungkin.

Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan

Rajah 7: Animasi GIF musang - ini bukan saya buat, ia dibuat oleh NVIDIA. Tidak buruk, bukan?

Ringkasan dan pemikiran seterusnya

Proses percubaan di atas mengingatkan saya kepada ​​DALL-E​​ dibangunkan oleh OpenAI, yang juga merupakan kaedah yang boleh Kepintaran buatan teknologi yang menghasilkan imej. Hari ini, teknologi ini telah menjadi sangat popular, sebahagiannya kerana ia sangat mudah diakses. Selain itu, DALL-E menunjukkan contoh yang sangat menarik tentang perkara yang boleh dilakukan oleh model kecerdasan buatan, serta batasannya. Malah ia telah menjadi fenomena budaya pop sekarang (atau sekurang-kurangnya banyak dipaparkan pada suapan Twitter saya) - orang membuat gambar DALL-E pelik mereka sendiri dan berkongsi dengan satu sama lain. Saya boleh bayangkan sesuatu seperti ini berlaku dengan teknologi ini: potensi virus tapak web yang membenarkan sesiapa sahaja memuat naik video dan mencipta model 3D yang boleh dikongsi dengan rakan adalah besar. Seseorang pasti akan melakukannya akhirnya!

Secara peribadi, saya menantikan lebih banyak hasil percubaan dalam bidang ini. Saya mahu dapat menjana model super realistik dan kemudian membuangnya ke dalam AR/VR. Berdasarkan teknologi ini, anda juga boleh menganjurkan mesyuarat web – bukankah itu menyeronokkan? Kerana anda hanya perlu menggunakan kamera pada telefon anda untuk mencapai matlamat ini, dan kebanyakan pengguna sudah mempunyai konfigurasi perkakasan ini dalam telefon mereka hari ini.

Secara keseluruhan, saya kagum. Sangat bagus untuk dapat merakam video selama 1 minit pada telefon anda dan mengubahnya menjadi model yang boleh anda lalui. Walaupun ia mengambil sedikit masa untuk dipaparkan dan agak sukar untuk dipasang, ia berfungsi dengan baik. Selepas beberapa percubaan, saya mendapat output yang sangat hebat! Saya tidak sabar untuk lebih banyak eksperimen!

Rujukan

​NVIDIA Git​

​Blog NVIDIA​

​Git Tambahan​

Pengenalan Penterjemah

Zhu Xianzhong, editor komuniti 51CTO, blogger pakar 51CTO, pensyarah, guru komputer di sebuah universiti di Weifang, veteran dalam bidang bebas industri pengaturcaraan One piece. Pada hari-hari awal, beliau memberi tumpuan kepada pelbagai teknologi Microsoft (menghimpun tiga buku teknikal yang berkaitan dengan ASP.NET AJX dan Cocos 2d-X Dalam sepuluh tahun yang lalu, beliau telah menumpukan dirinya kepada dunia sumber terbuka (biasa dengan popular penuh-). susun teknologi pembangunan web) dan pelajari tentang OneNet/AliOS+Arduino /ESP32/Raspberry Pi dan teknologi pembangunan IoT lain serta Scala+Hadoop+Spark+Flink dan teknologi pembangunan data besar yang lain.

Tajuk asal: Menggunakan AI untuk Menjana Model 3D, Pantas!, pengarang: Andrew Blance

Atas ialah kandungan terperinci Bina model 3D dengan pantas berdasarkan teknologi kecerdasan buatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam