Gerçek Dünya Görüntülerinden 3D Ortamlar Oluşturma
Robotik simülasyon için gerçekçi 3D ortamlar oluşturmak, genellikle zahmetli bir süreçtir. Ancak artık NVIDIA Omniverse NuRec ile bu işlemi sadece akıllı telefon kullanarak tamamlayabilirsiniz. Bu yazıda, bir iPhone ile fotoğraf çekiminden başlayarak, sahneyi 3D’ye dönüştürme sürecini 3DGUT kullanarak yapmanın adımlarını öğreneceksiniz. NVIDIA Isaac Sim’e yükleyip bir robot ekleyeceksiniz. Yeniden yapılandırma adımlarını (1-3. adımlar) atlamak ve bu sahneyi doğrudan Isaac Sim’de keşfetmek isterseniz, NVIDIA Physical AI koleksiyonuna göz atabilirsiniz.
1. Adım: Gerçek Dünya Sahnesini Yakalama
İlk adım, yeniden yapılandırılacak gerçek ortamın fotoğraflarını çekmektir. Bunun için özel donanıma ihtiyacınız yok; sıradan bir akıllı telefon kamerası yeterlidir.
Sahneniz etrafında yürüyerek fotoğraflar çekin. Aşağıda bazı fotogrametri en iyi uygulamalarını bulabilirsiniz:
- Işık ve odaklamanın doğru ve sabit olduğundan emin olun. Hızlı hareket ve bulanıklıktan kaçının. Mümkünse daha hızlı bir deklanşör hızı (örneğin, 1/100 saniye veya daha hızlı) kullanın.
- Otomatik odaklama ve pozlamayı kilitleyin: Konuda uzun basın ve AE/AF Kilitleme’yi etkinleştirin; ardından pozlama kaydırıcısını biraz aşağı (−0.3 ile −0.7 EV) çekin.
- Stabilize edin: Bir tripod kullanın veya bir duvara yaslanın; her çerçeve ne kadar net olursa, COLMAP o kadar iyi özellikleri takip eder.
- Otomatik makro geçişine engel olun: iPhone Pro modellerinizde odak uzunluğunun çekim başına atlamasını önlemek için, Ayarlar → Kamera → Otomatik Makro’yu kapatın.
Manuel deklanşör/ISO kontrolü için şu iOS uygulamalarından birini deneyebilirsiniz: Lumina: Manuel Kamera, Halide, ProCamera, ProCam 8, Moment Pro Camera, Lightroom Mobile.
- Dış mekanlarda 1/120 – 1/250 saniye, iç mekanlarda ise ≥1/100 saniye ile başlayın. Pozlama kabul edilebilir düzeyde kalırken ISO’yu mümkün olan en düşük değere ayarlayın.
- Beyaz dengenizi kilitlemek, çerçeveler arasında renk kaymalarını önler.
Kapsama alanı oluşturmak için yavaşça çevrenizde döngü yapın ve çeşitli yükseklik ve açılardan birden fazla fotoğraf çekin. Güvenli bir nokta olarak %60 örtüşme kuralını kullanabilirsiniz.
İpucu: COLMAP standart resim formatlarını bekler. Eğer iPhone’unuz HEIC kaydediyorsa, Ayarlar → Kamera → Formatlar → En Uygun Olanı seçin (JPEG çeker) veya JPG olarak dışa aktarın/dönüştürün.
2. Adım: COLMAP ile Seyrek Yeniden Yapılandırma Oluşturma
Fotoğraflarınızı çektikten sonra, bu görüntülerden 3D yapıyı ve kamera pozisyonlarını belirlemeniz gerekir. Bu örnekte, popüler açık kaynak COLMAP uygulamasını kullanacağız. COLMAP, sahnenin seyrek nokta bulutunu oluşturacak ve her fotoğraf için kamera parametrelerini tahmin edecektir.
COLMAP, aşağıdaki komut satırı yolunu da sağlar. Ancak, GUI Otomatik Yeniden Yapılandırma başlatmak için daha kolay bir yol olduğunu unutmayın. 3DGUT ile uyumluluk için pinhole veya basit pinhole kamera modelini seçin.
# Özellik tespiti ve çıkarma
$ colmap feature_extractor
--database_path ./colmap/database.db
--image_path ./images/
--ImageReader.single_camera 1
--ImageReader.camera_model PINHOLE
--SiftExtraction.max_image_size 2000
--SiftExtraction.estimate_affine_shape 1
--SiftExtraction.domain_size_pooling 1
# Özellik eşleştirme
$ colmap exhaustive_matcher
--database_path ./colmap/database.db
--SiftMatching.use_gpu 1
# Küresel SFM
$ colmap mapper
--database_path ./colmap/database.db
--image_path ./images/
--output_path ./colmap/sparse
# Doğrulama için görselleştir
$ colmap gui --import_path ./colmap/sparse/0
--database_path ./colmap/database.db
--image_path ./images/
COLMAP tamamlandığında bir proje klasörü (genellikle bir database.db, bir images/ klasörü ve yeniden yapılandırma verileri bulunan bir sparse/ dizini içerir) oluşturacaktır. Bittiğinde sahip olacağınız şeyler:
- Sahnenin seyrek nokta bulutu
- Tüm görüntüler için kamera poz bilgisi
Bu, 3DGUT ile 3D yeniden yapılandırmaya beslenecek bilgidir (Adım 3).
3. Adım: 3DGUT ile Yoğun 3D Yeniden Yapıtlama Eğitimi ve USD’ye Aktarma
Şimdi sihirli kısmına geldik. Bir sonraki adım, seyrek modeli ve görüntüleri kullanarak yoğun, fotogerçekçi bir 3D sahne oluşturmak için 3DGUT algoritmasını kullanmaktır:
- 3DGUT ortamını ayarlayın: 3DGUT deposu, CUDA 11.8, GCC ≤ 11 ve bir NVIDIA GPU’ya sahip bir Linux sistemi gerektirir. Resmi 3DGUT kodunu görmek için nv-tlabs/3dgrut adresine göz atın ve gerekli kütüphaneleri yüklemek için talimatları izleyin.
- 3DGUT deposunu klonlayın: Aşağıdaki komutu kullanarak 3DGUT deposunu klonlayın ve yükleyin. İşlemin başarılı olduğunu doğrulamak için sonraki aşamalara geçmeden önce depodaki örnek veri kümesinde test yapın.
git clone --recursive https://github.com/nv-tlabs/3dgrut.git cd 3dgrut chmod +x install_env.sh ./install_env.sh 3dgrut
- COLMAP çıktılarınızı hazırlayın: 2. adımda oluşturduğunuz COLMAP çıkış dizininin yolunu bilmek önemlidir. Bu örnek,
apps/colmap_3dgut_mcmc.yamlyapılandırmasını kullanmaktadır; bu yapılandırma, 3DGUT’u MCMC (Markov Zincir Monte Carlo) yoğunlaştırma stratejisiyle eşleştirir. - 3DGUT eğitim betiğini çalıştırın ve USDZ olarak dışa aktarın: Ortam etkinleştirildiğinde, COLMAP yapılandırmasıyla birlikte train.py betiğini çalıştırarak eğitime başlayabilirsiniz. Örneğin, komut şu şekilde görünebilir:
$ conda activate 3dgrut
$ python train.py --config-name apps/colmap_3dgut_mcmc.yaml
path=/path/to/colmap/
out_dir=/path/to/out/
experiment_name=3dgut_mcmc
export_usdz.enabled=true
export_usdz.apply_normalizing_transform=true
Komutu çalıştırdığınızda, 3DGUT eğitime başlayacaktır. Görüntülerinizi ve COLMAP verilerini okuyarak 3D bir temsili optimize etmeye başlayacaktır. Bu süreç, sahne boyutunuza ve GPU’nuzun hızına bağlı olarak birkaç dakikadan birkaç saate kadar sürebilir.
İşlem tamamlandığında, sahnenizin yoğun bir yeniden yapılandırması elinizde olacaktır. Çıktı, model denetim noktaları içeren bir dizini içermektedir. export_usdz.enabled=true ve export_usdz.apply_normalizing_transform=true bayraklarını ayarlamak, aynı zamanda bir USDZ dosyası üretir.
export_usdz.enabled=true, yeniden yapılandırılmış sahnenizin bir USDZ’sini yazar, böylece onu doğrudan Isaac Sim’e yükleyebilirsiniz.export_usdz.apply_normalizing_transform=true, sahneyi başlangıç noktasına yakın merkezi bir normalleştirme uygular. Zemin düzleminin tam olarakz = 0olduğu garanti edilmez; Isaac Sim’de bir zemin düzlemi ekleyebilir veya sahne kökünü hizalamak için (çevirmek/sonlandırmak) hareket ettirebilirsiniz.
Yeniden oluşturulan sahnenin USD’ye aktarılması, onu Isaac Sim ile kolayca kullanıma sunar. Üretilen USDZ dosyası, özünde 3D yeniden yapılandırmanın tüm Gaussian-yığın verilerini içeren paketlenmiş bir USD sahnesi görevi gören özel bir USD şemasını kullanır.
4. Adım: Yeniden Yapılandırılmış Sahneyi Isaac Sim’de Yayınlayın ve Bir Robot Ekleyin
Artık eğlenceli kısma geçebiliriz. Gerçek dünya sahnesi tam olarak USD formatında yeniden oluşturulduğundan, bu sahneyi Isaac Sim’de sanal robotları eğitmek ve test etmek için kullanabilirsiniz.
1. Isaac Sim’i başlatın: (5.0 veya üstü versiyonun, NuRec/3DGUT özelliklerini desteklediğinden emin olun). Isaac Sim açıldığında, boş bir sahne ile başlayın (Dosya > Yeni).
2. USD sahnenizi içe aktarın: Menüden Dosya > İçe Aktar seçeneğine gidin ve sahnenizin USDZ dosyasını bulun. Alternatif olarak, Isaac Sim içerik tarayıcısından USDZ dosyasını sahneye sürükleyip bırakabilirsiniz. Isaac Sim dosyayı yüklediğinde, yeninden oluşturulmuş ortamınızın renkli noktalardan oluşan görüntüsünü alma olasılığınız yüksektir.
- İpucu: Isaac Sim’in navigasyonunu kullanarak (WASD tuşları ya da sağ tıklayıp sürükleme ile) sahnenizde hareket edebilir ve farklı açılardan inceleyebilirsiniz.
3. Fizik için bir zemin düzlemi ekleyin: Yeniden yapılandırılmış sahneniz, yerleşik çarpışma özellikleri olmayan sadece görsel geometridir. Robotun hareket etmesi için bir zemin düzlemi eklemek gereklidir. Isaac Sim’da bunu yapmak kolaydır: Oluştur > Fizik > Zemin Düzlemi’ni seçin. Düz bir zemin belirecektir (genellikle z = 0 noktası etrafında) ve sahnenizin zemin alanını kapsayacaktır. Ölçeğini ayarlamak isteyebilirsiniz (örneğin x ve y için 100 ölçeklemekte olduğu gibi). Yeniden yapılandırılmış zemininize hizalamak için Dön / Çevir / Ölçek seçeneğini ayarlayın.
Ardından, gölgeleri almak için bir proxy mesh ile bağlantı kurabilirsiniz. Proxy bir mesh, sahnedeki nesneleri görsel olarak yerleştirmenin basit bir aracıdır. Zemin düzleminizi oluşturmuş oldunuz. Bunu bir proxy olarak bağlamak için şu adımları izleyin:
- global xform altındaki NuRec primini seçin. Raw USD Properties panelinde NuRec/Hacim bölümünü bulup Proxy alanını gösterin.
- Proxy mesh priminizi eklemek için + seçeneğine tıklayın.
- Tekrar zemin düzleminizi seçin. Geometri > Mat yüzey özelliğinin açık olduğundan emin olun.
4. Isaac Sim varlıklarından bir robot ekleyin: Isaac Sim, birçok SimReady robot modeli içerir. Birini sahneye eklemek için üst menü çubuğundan Oluştur > Robotlar seçeneğine gidin. Örneğin popüler Franka Emika Panda robot kolunu veya mevcut kütüphanenizde bulunan bir mobil robotu (LeatherBack/Carter/TurtleBot) seçebilirsiniz.
Seçtiğiniz robot modeli, sahnenize eklenecektir. Robotu yeniden yapılandırılmış sahnede istediğiniz yere konumlandırmak için Taşı ve Dön araçlarını kullanın.
5. Başlat’a basın ve izleyin: Bu aşamada robotunuz fotogerçekçi 3D sahnenizde duruyor olmalıdır. Eğer bir manipülatör kol ise, onu hareket ettirebilir veya güçlendirme öğrenimi gerçekleştirebilirsiniz—kullanım durumunuza bağlı olarak. Artık gerçek dünya ortamı Isaac Sim’de olduğuna göre, onu diğer simülasyon ortamları gibi kullanabilirsiniz.
NVIDIA Isaac Sim’de Bir Sahne Yeniden Yapılandırmaya Başlayın
Bu basit gerçekten simülasyona iş akışı, günlük iPhone fotoğraflarınızı etkileşimli robot dostu bir sahneye dönüştürmektedir. İş akışı, çek → COLMAP → 3DGUT yeniden yapılandırması → USDZ dışa aktarma → NVIDIA Isaac Sim’de yükleme adımlarını içermektedir. Bu iş akışı, uzun fotogrametri döngülerini basit bir tekrar edilebilir dijital ikiz yoluna dönüştürmektedir.
Başlamak için hazır mısınız?
- Hazır bir sahne açın: Hugging Face üzerindeki NVIDIA Physical AI koleksiyonundan bir NuRec örneğini alın ve Isaac Sim’de açın.
- Gerçekten simülasyona referans iş akışını deneyin: Isaac Sim için robot geliştirmek üzere gerçekçi 3D ortamlar oluşturmak için Stereo Kamera Verilerinden Sahne Yeniden Yapılandırma adımlarını takip edin.
NVIDIA haberleri için abone olun ve NVIDIA Omniverse’u Discord ve YouTube üzerinden takip edin.
- OpenUSD kaynakları içeren kapsamlı bir doküman kaynağına erişin.
- Tüm bunlarla birlikte OpenUSD Insiders canlı yayınlarına katılın ve NVIDIA Geliştirici Topluluğu ile etkileşimde bulunun.
- Hızla uygulama ve hizmetlerinizi geliştirmek için Geliştirici başlangıç kitleri ile başlamayı düşünün.
NVIDIA GTC Washington, D.C.’de 29 Ekim 2025 tarihinde düzenlenecek Fiziksel AI ve Robotik Günü‘na katılın.








