Nurdan Atalan

İngilizce Metin: https://o-date.github.io/draft/book/d-photogrammetry.html

 🔧 Launch the Photogrammetry notebook in Google Collab and follow the directions; this notebook can be connected to your Google Drive. 

Google Collab’da Fotogrametri not defterini başlatın ve yönergeleri izleyin; bu not defteri Google Drive’ınıza bağlanabilmektedir.

Son yıllarda, daha hızlı ve daha güçlü bilgisayarlar, birden fazla fotoğraftaki örtüşme noktalarını seçip, ardından bu görüntülere gömülü kamera üst verilerinden, noktalardan kameranın görüntü sensörüne olan mesafeyi tahmin ederek karmaşık 3 boyutlu model oluşturmayı mümkün hale getirmiştir. Bu bilgi, söz konusu noktaların kameraya göre uzayda nerede olduklarının yeniden oluşturulmasını sağlamaktadır. Böylece oldukça düşük maliyetle olağanüstü kalitede 3 boyutlu modeller oluşturulabilmektedir.

Öte yandan lazer tarama, bir nesneye (veya alana) ışık ışınlarının gönderilmesi ve ışığın tarayıcıya geri dönmesi için geçen sürenin sayılması ile ilgilidir. Bu kapsamda lazer tarayıcılar bir nesnenin yüzeyinin ve dokusunun mikro milimetrelik ayrıntılı taramalarını yapabilmektedir. Bazı arkeolojik çalışmalarda lazer tarama tercih edilmelidir. Diğer çalışmalar için 3 boyutlu fotogrametri veya ‘hareketten yapı’ (‘structure from motion’-sfm) uygundur ve çözünürlük seviyesi yeterince iyidir.

Bu bölümde, sfm’nin nasıl çalıştığına dair bazı temel ilkeleri ele alırken, sizi daha ayrıntılı tartışmalara yönlendiriyoruz. Ayrıca, yeni yöntemlerle 3B fotogrametriyi kullanan bazı yeni örnek çalışmalara ‘ek okumalar’ bölümünde bağlantılar veriyoruz.

4.1.1 Temel İlkeler

Fotogrametri, adından da anlaşılacağı gibi, fotoğraflardan ölçümlerin elde edilmesidir. Bizim örneğimizde triangulation (nirengi ? üçgenleme?) kavramından bahsedilmektedir. Bir nesneye ait bir dizi fotoğraftan bir dizi ‘kontrol noktası’  ‘control points’  (birden fazla fotoğraftaki aynı özellikler) ve ‘ışınlar’ (görüş hatları) ‘rays’ (lines-of-sight) belirlenmektedir. Daha sonra triangulation (üçgenleme) yoluyla ışınların nerede kesiştiği hesaplanır. (Bu, gözlerimiz ve beynimiz tarafından doğal olarak yapılmaktadır ve buna ‘derinlik algısı’ ‘depth perception’ denmektedir). Bu işlem yeterli sayıda tekrarlandığında, fotoğrafları çeken kameraya göre uzaydaki üç boyutlu konumu temsil eden bir nokta bulutu elde edilmektedir. Daha sonra çeşitli algoritmalar tarafından bu noktalar ağ örgüsü biçiminde birleştirilerek, üzerlerine görüntü bilgisi yansıtılabilmektedir. Sonucun kalitesi, yazılım ve algoritmalara, kameranın kalitesine, arka plan aydınlatmasına ve fotoğrafçının becerisine bağlıdır.

Günümüzde görsel anlamda çekici modeller düşük maliyetli akıllı telefon uygulamalarıyla oluşturulabilir ve Sketchfab gibi hizmetlerle doğrudan paylaşılabilir (Sayfanın ‘Cultural Heritage & History’ kategorisine göz atabilirsiniz). Eserlerin kaydedilmesi veya daha sonra çalışmak üzere 3 boyutlu çıktılarının alınabilmesi için genellikle daha güçlü kameralar ve yazılımlar kullanılmaktadır (Agisoft Photoscan bu amaçla sıklıkla kullanılan bir üründür). Açık kaynaklı yazılımlar oldukça güçlüdür, ancak VisualSFM (en iyi bilinenlerden biridir) gibi paketlerin kurulumu zor olabilir. (Docker’a aşina iseniz, Ryan Baumann sürecin bir kısmını basitleştirmiştir). Yine de, daha fazla görüntü ve daha fazla bilişim gücü her zaman daha iyi sonuçların elde edileceğinin garantisini vermez (Baumann 2015).

Genel olarak, fotoğraflardan ve yazılımlardan en iyi şekilde yararlanılabilmesi için gerekli fotografik ve teknolojik becerinin/sezginin geliştirilmesi pratik gerektirmektedir. Aşağıdaki alıştırmada, sürecin her adımında bir dizi algoritmayla çalışmayı sağlayan bir grafik kullanıcı arayüzü olan Regard3d’yi kullanan bir iş akışı tanıtılmaktadır. Ayrıca, 3 boyutlu modellerin yüksek kaliteli drone veya diğer videolardan da üretilebileceğini belirtmek gerekir; bunun için (Regard3d’yi de kullanan) bir iş akışı burada sunulmuştur. 

Genel süreç şu şekilde işlemektedir:

  • görüntü yakalama: üst üste binen ve yüksek derecede örtüşen görüntüler çekilir. Lens distorsiyonu, odak uzaklığı vb. dahil olmak üzere görüntüyle birlikte gelen üst verilerden kameranın ‘iç ve dış’ yöneltmelerinin bilinmesi, yazılımın görüntülerdeki çakışma noktalarına göre kameranın konumunun hesaplamasını sağlar.
  • görüntü eşleştirme: bağlantı noktaları eşleştirilir ve kamera yöneltmeleri çıkarılır.
  • yoğun nokta bulutu oluşturma: Işınlar kesiştirildikten sonra bu noktaların uzaydaki konumunun hesaplanması sağlanır.
  • ikincil ürün üretimi
  • analiz / sunum

4.1.2 İleri Okuma

Aşağıdaki ek okumalar, 3 boyutlu fotogrametri ile nelerin mümkün olduğuna ve arkeologların bu teknoloji hakkında nasıl/neden eleştirel düşünmeleri gerektiğine dair anlayışını güçlendirecektir.

Eve, S. (2018). Losing our Senses, an Exploration of 3D Object Scanning. Open Archaeology, 4(1), pp. 114-122. Retrieved 7 Aug. 2018, from doi:10.1515/opar-2018-0007

Reilly, P. (2015). Additive Archaeology: An Alternative Framework for Recontextualising Archaeological Entities. Open Archaeology, 1(1), pp. -. Retrieved 7 Aug. 2018, from doi:10.1515/opar-2015-0013

Verdiani, G. (2015). Bringing Impossible Places to the Public: Three Ideas for Rupestrian Churches in Goreme, Kapadokya Utilizing a Digital Survey, 3D Printing, and Augmented Reality. Open Archaeology, 1(1), pp. -. Retrieved 7 Aug. 2018, from doi:10.1515/opar-2015-0007

4.1.3 Alıştırmalar

Fotogrametri için komut satırı uygulamaları (VSFM gibi) olsa da, yükleme işlemleri acemilere göre değildir (örneğin Ubuntu için buna bakın). Bu bölümün başında bağlantısı verilen not defteri, Google tarafından sağlanan GPU komut satırı arayüzü olarak AliceVision’ın Meshroom’unu kullanmaktadır. Ancak kendi makinenizde bir şeyler denemek istiyorsanız, Roman Hiestand tarafından bir iş akışında birleştirildiğinde fotogrametri ile deney yapabilmenizi sağlayan bir dizi açık kaynaklı modül etrafında bir grafik kullanıcı arayüzü oluşturulmuştur. Biraz uğraşarak, akıllı telefon veya tabletten çekilen fotoğraflarla da çalışması sağlanabilmektedir.

İşletim sisteminiz için Regard3d’nin ilgili sürümünü indirin ve kurun.

  1. Heistand’ın eğitimini Sceaux Kalesi‘nin (Sceaux Castle) görüntülerini kullanarak deneyin. Bu eğitim Regard3d’nin kullanımı için size temel iş akışları hakkında bir fikir verecektir.
  2. Bir nesnenin fotoğraflarını çekin. Fotoğraflar arasında yüksek miktarda örtüşme olduğundan emin olana kadar her açıdan çekmeye çalışın. Bir modelin oluşturulması için yaklaşık 20 fotoğraf yeterli olabilir, ancak normalde daha fazla veri daha iyi olacaktır. Bu fotoğrafları bilgisayarınıza kopyalayın. Akıllı telefon kameralarıyla ilgili bir not: Artık birçok insanın cebindeki akıllı telefonlar güçlü kameralara sahip olsa dahi, bu kameralar Regard3d’nin kamera ve sensör genişlikleri veritabanında yer almamaktadır. Akıllı telefon kamerası kullanıyorsanız, bu bilgileri görüntülerin metaverilerine eklemeniz ve ardından ‘kamerayı’ kamera veritabanına eklemeniz gerekecektir. Gerçek bir dijital fotoğraf makinesiyle fotoğraf çektiyseniz, bu bilgilerin Regard3d veritabanında mevcut olma ihtimali vardır. Regard3d’ye bir fotoğraf seti eklediğinizde resmin yanında ‘NA’ yazıyorsa, bilgi eklemeniz gerekip gerekmediğini anlayabilirsiniz.

Regard3d’yi açın ve yeni bir proje başlatın. Fotoğrafları kaydettiğiniz dizini seçerek bir fotoğraf seti ekleyin.

Görüntüleri kullanmak için OK’e tıklayın. Regard3d kameranızı tanımazsa, aşağıdaki Görüntülere üst veri ekleme bölümünü kontrol edin.

Compute matches (eşleşmeleri hesapla) seçeneğine tıklayın. Önce varsayılan değerlerle deneyin. Sistem eşleşmeleri hesaplayamazsa, tekrar deneyin ancak bu sefer anahtar noktası yoğunluğu kaydırıcılarını (iki kaydırıcı) ‘ultra’ya kadar kaydırın  (slide the keypoint density sliders (two sliders) all the way to ‘ultra) . ‘Ultra’, kaynak görüntüler için gerekli olabilecek mümkün olduğunca çok veri noktası elde edeceğimiz anlamına gelir (uyarı: bu ayar hesaplama açısından çok yoğundur ve makinenizde yeterli bellek yoksa işlem başarısız olabilir). Bu işlem biraz zaman alabilir. İşlem tamamlandığında, Regard3d’nin sunduğu sonraki adımlara geçebilirsiniz (programın sol alt panelindeki seçenekler bağlama özeldir (context-specific). Önceki bir adımı farklı ayarlarla tekrar denemek isterseniz, sol üstteki inspector panelinde o adımın sonuçlarını seçerek yeniden yapabilirsiniz).

Model oluşturmadaki son prosedür yüzeyleri hesaplamaktır. ‘Surface’ (yüzey) düğmesine tıklamadan [densification (yoğunlaştırma) adımını tamamladıktan sonra], ‘texture’ (doku) seçeneğini işaretlemeyi unutmayınız. Bu adım tamamlandığında, ‘export’ (dışa aktar) butonuna tıklayabilirsiniz. Model proje klasörünüze – .obj, .stl. ve .png olarak aktarılacaktır. Modelin Sketchfab.com gibi bir ortamda paylaşılabilmesi için bu üç dosya tek bir zip klasöründe sıkıştırılmalıdır. Sketchfab’a (veya benzer hizmetlere) zip klasörü olarak yükleme yapılmaktadır. Bu hizmetler zip klasörlerini açarak 3d görüntüleyicileriyle verilerinizi okuyabilir ve görüntüleyebilir.

3. Meshlab ile modelin temizlenmesi: 3 boyutlu bir modelin oluşturulması beceri, sabır ve pratik gerektirmektedir. Hiçbir model ilk denemede ‘mükemmel’ görünmeyecektir. Bir 3 boyutlu model, 3 boyutlu düzenleme programında açılarak bir dizi sorunu ‘düzeltilebilir’. Bu anlamda farklı derecelerde kullanıcı dostu olan birçok program vardır. Sıklıkla kullanılan açık kaynak paketi Meshlab’dır. Çok güçlüdür, ancak o kadar kullanışlı veya kolay değildir. Uyarı: ‘undo’ yapmaz.

Meshlab’ı indirip kurduktan sonra, proje klasörünüzdeki .obj dosyasına çift tıklayın. Meshlab’da modeliniz açılacak ve görüntülenecektir. Modelinizi geliştirmek ya da temizlemek için kullanabileceğiniz araçlar büyük ölçüde modelinizin nasıl ortaya çıktığına bağlıdır. Son olarak, ‘vertice select’ (köşe seç) aracını (hoşa gitmeyen parçanın üzerine bir kutu çizilmesini sağlar) ve ‘vertice delete’ (köşe sil) aracı kullanılmaktadır.

4.1.3.1 Görüntülere üst veri eklenmesi

  1. https://www.sno.phy.queensu.ca/~phil/exiftool/index.html adresine gidin ve bilgisayarınıza Exiftool’un uygun sürümünü indirin.
  • Windows kullanıcılarının ziplenmiş dosyadan araçları tamamen çıkarmaları gerekmektedir. SONRA dosyanın adını exiftool.exe olarak yeniden adlandırmaları gerekmektedir. Dosyadan çıkarıldığında, aracın adıexiftool(-k).exe’dir. Dosya adındaki (-k)’yi silin.
  • exiftool.exe’yi görüntülerinizin bulunduğu klasöre taşıyın
  • Mac kullanıcıları gerekirse Unzip yapın, dmg dosyasına çift tıklayın, komutları izleyin. Artık hazırsınız.
  1. Resimlerinizin depolandığı yere gidin. Windows kullanıcıları, makinenizde komut istemcisini arayın(command prompt). Mac kullanıcıları, makinenizde terminali arayın (terminal). programı çalıştırın. Bu, bilgisayarınızda komut yazabileceğiniz bir pencere açar. ‘Dizinleri değiştirmek’ (change directories) için cdkomutunu kullanın, ardından resimlerinizin tam konumunu (path) yazın. Bilgisayarda muhtemelen cd c:\users\yourname\documents\myimages gibi görünecektir.  Konuma geldiğinizde, dir size o dizindeki her şeyi gösterecektir. Mac kullanıcıları, ls komutu dizin içeriğini listeleyecektir. Doğru konumda olduğunuzdan emin olun (Windows kullanıcıları,exiftool.exe‘nin bu dizinde olduğundan).
  2. Aşağıdaki komutlar görüntülerinize gerekli üst verileri ekleyecektir. Her komutun aslında şunu söylediğine dikkat edin: exiftool, aşağıdaki görüntü için aşağıdaki metaveri alanını bu yeni ayarla değiştir. *.jpeg, bu klasördeki her bir jpeg anlamına gelir. NB dosyalarınız .jpg ile bitiyorsa, .jpg kullanırsınız, değil mi? 

exiftool -FocalLength="3.97" *.jpeg

Bu, görüntünüzün odak uzaklığını 3,97 mm olarak ayarlar. Gerçek ölçümü bulabilmek için cep telefonunuzun markasını internette aramalısınız. Bulamazsanız, 3,97 muhtemelen yeterince yakın olacaktır.

exiftool -Make="CameraMake" *.jpeg

CameraMake yerine istediğiniz değeri kullanabilirsiniz.Örneğin: myphone olabilir.

exiftool -Model="CameraModel" *.jpeg

İstediğiniz değeri kullanabilirsiniz, örneğin LG3.

Her şey yolunda giderse, bilgisayar değiştirilen görüntü sayısını rapor edecektir. Exiftool ayrıca yeni dosya uzantısı olan .jpeg_original olarak  resimlerinizin bir kopyasını oluşturur, böylece bir şeyler ters giderse, yeni dosyaları silebilir ve dosya adlarını değiştirerek eskilerini geri yükleyebilirsiniz (örneğin, addan _original’i kaldırabilirsiniz).

4. Regard3d, modelin oluşturulduğu nokta bulutunu üreten hesaplamaları yapabilmek için bu üst verileri arar. Çalışabilmesi için odak uzaklığına ve görüntü sensörünün boyutuna ihtiyacı vardır. Marka ve modele ilişkin üst verileri okur ve görüntü sensörü plakasının boyutunu elde edenilmek için bunu bir kamera veritabanıyla karşılaştırır. İşin ilginç yanı, bu bilgi görüntü üst verilerinde kodlanmamıştır, bu nedenle veritabanına ihtiyacımız vardır. Bu veritabanı, bilgi alanlarını sınırlandırmak için virgül kullanan bir metin dosyasıdır. Örüntü şuna benzer: make;model;width-in-mm. Örn: Canon;Canon-sure-shot;6. Böylece, bu dosyayı buluruz ve bu bilgileri dosyanın sonuna ekleriz. 

windows kullanıcıları Bu bilgiler bu konumda yer alacaktır:

C:\Users\[User name]\AppData\Local\Regard3D

Örneğin, bilgisayarımda:

C:\Users\ShawnGraham\AppData\Local\Regard3D

ve “sensor_database.csv” dosyasında bulunmaktadır.

*mac kullanıcıları  Finder (bulucu) açın, shift+command+g yapın ve şuraya gidin:

/Applications/Regard3D.app/Contents/Resources

  • sensor_database.csv’yi Excel ile açmayın; Excel daha sonra soruna yol açacak gizli karakterler ekleyecektir. Bunun yerine, dosya ile çalışmak için uygun bir metin editörüne ihtiyacınız vardır (notepad veya wordpad burada kullanışlı değildir). Sublime Text iyi bir seçenektir. İndirin, kurun ve sensor_database.csv dosyasını açmak için kullanın.
  • 3. adımda kamera markası ve kamera modeli için ne yazdıysanız tam olarak onu ekleyin, büyük/küçük harf önemlidir. Cep telefonu kameranızın görüntü sensörünün boyutunu bulmak için arama yapabilirsiniz. Bulabilirseniz bu bilgiyi kullanın; aksi takdirde 6 mm muhtemelen oldukça yakındır. Veritabanına eklediğiniz satır aşağıdaki gibi görünecektir:

myphone;LG3;6

Dosyayı kaydedin. Artık Regard3d’yi açabilir, ‘bir resim seti ekleyebilir’, bu resimleri seçebilirsiniz. Regard3d çalışmak için gerekli tüm üst verilere sahip olacaktır.

Referanslar

Baumann, Ryan. 2015. “Qualitative Photogrammetry Comparisons Gallery.” /etc (blog). https://ryanfb.github.io/etc/2015/07/27/qualitative_photogrammetry_comparisons_gallery.html.