“NVIDIA Isaac Sim Kullanarak Sadece Akıllı Telefon ile Bir Sahne Yeniden Oluşturma”

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:

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.

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:

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:

git clone --recursive https://github.com/nv-tlabs/3dgrut.git
cd 3dgrut
chmod +x install_env.sh
./install_env.sh 3dgrut
$ 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.

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.

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:

  1. global xform altındaki NuRec primini seçin. Raw USD Properties panelinde NuRec/Hacim bölümünü bulup Proxy alanını gösterin.
  2. Proxy mesh priminizi eklemek için + seçeneğine tıklayın.
  3. Tekrar zemin düzleminizi seçin. Geometri > Mat yüzey özelliğinin açık olduğundan emin olun.
Video 1. Yeniden yapılandırılmış sahneye zemin düzlemi ve fizik eklemeyi öğrenin

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?

NVIDIA haberleri için abone olun ve NVIDIA Omniverse’u Discord ve YouTube üzerinden takip edin.

NVIDIA GTC Washington, D.C.’de 29 Ekim 2025 tarihinde düzenlenecek Fiziksel AI ve Robotik Günü‘na katılın.

Kaynak

Nvdia Blog

Exit mobile version