3D Video Çekmek İçin Bir iOS Uygulamasını Nasıl Oluşturduk (Örnek Olay)

Yayınlanan: 2022-03-10
Kısa özet ↬ Hollywood'un ilk 3D filmlerini yayınlamasından kısa bir süre sonra film formatının dünya çapında büyük bir popülerlik kazanması çok uzun sürmedi. Video kayıt teknolojisindeki gelişmeler sayesinde artık her kullanıcı kendi başına video çekebiliyor. Hayatınızdaki unutulmaz olayların stereo kaydını yapabilir veya işiniz için harika materyaller oluşturabilirsiniz.

Ekibimiz ayrıca 3D çekimlere ilgi duydu. İnsan görsel aparatının özelliklerini ve stereoskopik fotoğrafçılığın teknik detaylarını derinlemesine inceledik. Ardından, 3D videolar çekmek ve videoları YouTube'a yüklemek için bir iOS uygulaması geliştirmeye karar verdik. Uygulamanın arkasındaki fikir, iki iPhone'u özel bir çerçeveye monte ederek 3D video çekimini kolaylaştırmaktı - ve başardık! Stereo Video Kaydedici uygulaması böyle ortaya çıktı.

3D video oluşturma konusundaki araştırmamızı Smashing Magazine okuyucularıyla paylaşmaya karar verdik. Ayrıca, uygulamayı oluşturmanın teknik özelliklerinden bahsetmek ve iPhone'ları monte etmek için kullanılan çerçevenin ayrıntılı çizimlerini sağlamak istiyoruz.

Hepsi nasıl başladı

3D video özellikleri çalışmamızda sanal gerçeklik üzerine deneylerle başladık. Bir karton çerçeve oluşturduk ve iki iPhone üzerinden 3D formatında dünyaya baktık. Araştırmamızın detaylarını blogumuzda bulabilirsiniz. Burada daha ileri gideceğiz.

İki iPhone ile 3D Video Nasıl Çekilir?
Artırılmış gerçekliği incelemek için tarafımızca yapılmış karton (Büyük versiyonu görüntüleyin)

Bu araştırmaya devam ederek, stereoskopik 3D video kaydetmenize ve YouTube'a yüklemenize izin veren uygulamanın başka bir prototipini oluşturmaya karar verdik.

Stereoskopi, düz bir görüntüde derinlik yanılsaması yaratmanın bir yoludur. Stereo kayıt 19. yüzyıldan beri bilinmektedir. Stereoskopik 3D video oluştururken binoküler görüşü simüle ediyoruz. Öğrenciler arasındaki mesafe nedeniyle, insan beyninin çevreleyen alanın hacmini - nesnelere olan mesafeyi - analiz etmesi çok daha kolaydır. Binoküler stereoskopi, film endüstrisinde yaygın olarak kullanılmaktadır. Stereo format kullanmayan bir Hollywood şaheserine pek rastlayamazsınız.

Uygulama prototipimizin amacı, iki farklı iPhone kamerasıyla aynı anda video çekmek ve ardından ortaya çıkan video dosyalarını, örneğin Google Cardboard, sanal gerçeklik kaskı veya 3D TV gibi herhangi bir 3D gözlük kullanarak görüntülemek için tek bir dosyada birleştirmekti.

Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Stereo Görüntü ve 3D Görüntü Algımız

Stereo görüntüleri ve 3D görüntü algımızı detaylandırmama izin verin. Aslında stereografi, zamanla gelişen gözlerimiz gibi çalışır. İki gözümüz arasında mesafe olduğu için sol ve sağ gözlerin retinalarına yansıtılan görüntüler biraz farklıdır. Bu farka paralaks denir (bir nesnenin konumunun iki farklı konumdan bakıldığında farklı görünmesine neden olan bir etki). Ancak gözlemci iki ayrı görüntü görmez. Görsel aparat, tek bir uzamsal görüntünün algısını oluşturur ve hacmi, mesafeyi vb. algılayabilir. Görsel aparatın, uzayda bulunan uzamsal görüntüleri ve belirli noktalarda bulunan nesneleri algıladığını, işlediğini ve yansıttığını anlamak önemlidir.

İki iPhone ile 3D Video Nasıl Çekilir?
Görsel aparat, paralaksa dayalı bir hacim algısı yaratır. (Büyük versiyonu görüntüle)

İnsan görsel aparatının nasıl çalıştığının anlaşılması, izleyicinin tam bir 3D görüntü hissine sahip olabilmesi için görsel materyalin nasıl hazırlanması ve yeniden üretilmesi gerektiğinin kapsamlı bir şekilde araştırılmasına olanak tanır.

Her şeye sırayla bakalım.

Fizik yasalarına göre çalışan herhangi bir cihaz gibi, insan görsel aygıtının da kendine has özellikleri ve sınırlamaları vardır.

Her şeyden önce, görme sürecimiz açısından bakışımızı yalnızca bakış açısı (POV) adı verilen tek bir noktaya odakladığımızı anlamamız gerekir. Aslında POV, gözlerin odaklandığı ve sol ve sağ görüş çizgilerinin geçtiği noktadır. POV'a olan mesafeye bağlı olarak, sol ve sağ gözün görüş çizgileri arasındaki açı farklı olacaktır. Gözler, çizgiler POV'de birleşecek şekilde yönlendirilir. Kişi uzaklığa, yani sonsuzluğa baktığında bu çizgiler paraleldir.

İki iPhone ile 3D Video Nasıl Çekilir?
Nesneye olan uzaklığa (çizgilerin birleşme noktası) bağlı olarak gözler her zaman paralel bakmaz. (Büyük versiyonu görüntüle)

Retinaya yansıtılan görüntüler, gözlerin küçük yer değiştirmesi nedeniyle biraz farklıdır. Bu genellikle kişinin baktığı görüntünün yer değiştirmesi şeklinde kendini gösterir - sol göz için sola ve sağ göz için sağa. Daha önce bahsedilen bu fenomene paralaks denir.

Ancak görsel aparat, hacmi yalnızca belirli paralaks değerlerinde algılayabilir. Nesneye olan mesafeye bağlı olarak, yakın ve uzak nesneler için paralaks farklı olacaktır. Paralaks sınır değerini aşıyor olabilir ve kişi 3B bir nesne değil, çatallı bir görüntü görecektir. Bir kişinin görüşünün yakın nesnelerden uzak nesnelere geçişini içeren bir deney, bunun özelliklerinin daha iyi anlaşılmasını sağlayabilir.

İki iPhone ile 3D Video Nasıl Çekilir?
Hacim algısı sadece beynimizin bir yanılsamasıdır. Aslında, bazı yan etkiler var. (Büyük versiyonu görüntüle)

Şekilden de anlaşılacağı gibi, görüşünüzü ön plana sabitlerseniz, arka plan nesneleri çatallanmaya başlayacaktır. Görünümünüzü arka planda sabitlerseniz, ön plan görüntüsü ikiye ayrılır. Görsel aygıtın bu özelliği, 3D çekim özelliklerinde ve stereo görüntülerin yeniden üretilmesinde önemli bir rol oynar.

Sıradan yaşamda bu etkiyi fark etmiyoruz çünkü sadece bir nesneyi takip etmeye alışkınız ve görüşünüzü değiştirdiğinizde görüşünüz hızla yeni koşullara uyum sağlıyor. Bununla birlikte, önceden belirlenmiş bir paralaks ile iki resim kullanarak hacimsel bir görüntüyü yapay olarak yansıtmaya çalıştığımızda, görsel aygıt artık normalde olduğu kadar hızlı uyum sağlayamaz. Görsel aparatın normal modda çalışması için, 3D video ekipmanı, gözlem noktasının nerede olduğunu analiz ederek izleyicinin gözlerine göre ayarlanmalıdır. Bu ekipman ayrıca gerekli paralaks ile stereo görüntüler oluşturmalıdır.

Ancak bunu uygulamak teknik olarak çok zordur. Genellikle, sabit geometrik ve teknik çekim parametrelerine sahip basit bir şema kullanılır. Bu parametreler yakın ve uzak görünümler için farklı olacaktır. Geometrik ve teknik parametreler ile kameraların görüş alanı, kameraların merkezden yatay yer değiştirmesi, kameraların dönüş açısı ve kameraların yakınsama noktası kastedilmektedir.

Bu nedenle, yalnızca bir çekim ekipmanınız varsa (iki kamera ve bir çerçeve) eşit derecede yakın ve uzaktaki nesneleri çekemezsiniz. Daha doğrusu, çekim yapabilirsiniz, ancak bir kişinin, örneğin ekipmanın uzak bir görünüm için ayarlandığı ancak yakın bir görünüm çektiği veya bunun tersinin stereo efektle çekildiği bir videoyu izlemesi son derece rahatsız edici olacaktır. arka planda zayıf bir şekilde ifade edilir.

İki iPhone ile 3D Video Nasıl Çekilir?
Atış sistemi, belirli gözlem koşulları altında insan görme sisteminin parametrelerine uyacak şekilde yapılandırılmalıdır. (Büyük versiyonu görüntüle)

Fikirden Pratiğe: iPhone'ları Nasıl Monte Edersiniz

Fikrimize dönelim. Stereo 3D video kaydedebilen bir mobil uygulama prototipi geliştirmeye karar verdik. Yukarıdakilerin hepsini göz önünde bulundurarak, aşağıdakileri değerlendirmemiz gerekiyordu:

  • iki iPhone kullanarak bir stereo görüntü çekmenin temel olasılığı;
  • bir kamera kullanmanın olağan koşullarını dikkate alarak, yüksek kaliteli ve rahat stereo algısı sağlayacak etkili mesafe aralığı.

Bir prototip oluşturmaya çok yaklaştığımızda yaptığımız ilk şey iPhone kamerasının potansiyelini bizim görevimiz için değerlendirmek oldu. iPhone'un yakın plan çekim için kabul edilebilir bir görüş açısı sağladığını keşfetmek bizi çok şaşırttı. Daha önce de belirtildiği gibi, iyi bir stereo efekti elde etmek için sadece iki kamerayı yan yana yerleştirmek yeterli değildir. Genellikle, çekimi hesaplama algoritması, planın parametrelerini, yani en yakın ve en uzak nesnelere olan mesafeleri ve çerçeve düzlemindeki nesneler arasındaki mesafeleri ayarlamakla başlar. Kurulum parametreleri daha sonra bu verilere göre seçilir.

Bu formüle dayalı olarak kameralar arasındaki mesafenin basitleştirilmiş bir hesaplaması yapılabilir:

İki iPhone ile 3D Video Nasıl Çekilir?
(Büyük versiyonu görüntüle)
  • Parallax<sub>fore</sub> , stereo çift çerçeveler birbiriyle örtüştüğünde ön plan görüntüsünün maksimum yer değiştirmesini ayarlar.
  • L<sub>fore</sub> = ön plan nesnesine olan uzaklık
  • f = merceğin odak uzaklığı
  • L = merceğin odak noktasına olan uzaklık
  • M = çerçeve yakınlaştırma

Bizim durumumuzda, standart bir kamera kullandığımız için algoritmayı biraz değiştirmek zorunda kaldık ve buna göre lensin odak uzaklığı katı bir şekilde ayarlandı. Görevimiz, rahat bir stereo efekti ve çekim nesnesine kabul edilebilir bir mesafe aralığı elde etmekti. Bu nedenle, merkezleri (kameraların merkezleri arasındaki mesafe) ve yakınsama açıları arasındaki gerekli mesafeyi bulmak için her iki kamerayı birbirine göre düzenleyerek birkaç deney yapmamız gerekiyordu.

Prototipleme sürecindeki görevi basitleştirmek için, belirli bir noktada yakınsamayı sağlamak için kameraları döndürmeye değil, sonsuzda yakınsamayı kullanmaya karar verdik. En iyi sonucu elde etmek için kameraların yakınsama açısını doğru bir şekilde ayarlamak gerektiği ortaya çıktı. Ve iPhone'ları monte etmek için karton bir çerçeve yapmayı planladığımızı hesaba katarsak, kameraların yakınsama açısını ayarlamak neredeyse imkansız hale geliyor. Böylece, bir dizi deneyden sonra, yakın bölgede çekim yapmak ve iyi bir stereo efekti elde etmek için kameralar arasındaki mesafe arasında en uygun dengeyi elde ederek bir uzlaşmaya vardık.

İki iPhone ile 3D Video Nasıl Çekilir?
İyi bir stereo efekti elde etmek ve olumsuz fizyolojik etkileri en aza indirmek için telefonlar arasındaki mesafe kesinlikle sabitlenmelidir. (Büyük versiyonu görüntüle)

Amacımız, iPhone'lar için üretimi kolay, kullanımı kolay, gerekli çekim parametrelerini sağlayan ve gerekli sertliğe sahip en basit çerçeveyi geliştirmekti. Bu nedenle, frezeleme veya 3D baskı ile plastik veya köpük malzemeden (bu durumda polistiren) yapılabilecek bir 3D model seçtik. Gelecekte, elbette, daha basit bir cihaz geliştirmek isteyeceğiz - örneğin bir karton cihaz.

Şu anda tek donanım sınırlaması, aynı cihazları kesinlikle aynı kameralarla kullanmanız gerektiğidir.

İki iPhone ile 3D Video Nasıl Çekilir?İki iPhone ile 3D Video Nasıl Çekilir?
3D video çekim çerçevesinin en basit versiyonu (Büyük versiyonu görüntüleyin)

Aşağıda, iPhone 6+ ve 6S+, 6, 6S ve 7 ve 5 ve 5S için uygun olan 4.0, 4.7 ve 5.5 inç ekran boyutlarına sahip cihazların farklı sürümleri için ayrıntılı çerçeve çizimleri bulunmaktadır.

İki iPhone ile 3D Video Nasıl Çekilir?
İki iPhone ile 3D Video Nasıl Çekilir?
İki iPhone ile 3D Video Nasıl Çekilir?
Kendi ev yapımı çerçeveniz için çizimler

Stereoskopik 3D Video Çekimi İçin Uygulama

Uygulama aynı anda iki cihazda çalışır, ancak çekim yalnızca bir cihazdan kontrol edilir, bu nedenle çekim sürecini özel bir şekilde kontrol etmeye gerek yoktur.

Basitleştirilmiş biçimde, uygulama için standart kullanım senaryosu aşağıdaki eylem dizisinden oluşur:

  1. İki iPhone'u çerçeveye monte edin.
  2. Uygulamayı iki cihazda çalıştırın.
  3. Hangi cihazların master, hangilerinin slave olarak hizmet edeceğini belirleyin. Ana cihazdan kaydetmeye başlayın. (İkinci cihazda herhangi bir ek işlem yapmayın.)
  4. Kayıttan sonra, kaydedilen parçaların senkronizasyonunu ve YouTube'a yüklenmeye hazır bir videonun oluşturulmasını bekleyin.
  5. Senkronizasyondan sonra istediğiniz zaman videoyu YouTube'a yükleyin ve ardından 3D TV'nizde veya sanal gerçeklik gözlüğü ile izleyin.

Ana çalışmanın, ana cihaz olan iPhone'lardan yalnızca birinde gerçekleştiğini belirtmekte fayda var. Çekimi bu iPhone'da başlatıyoruz. Video işlenir ve ana cihazda da YouTube'a yüklenir. Videonun YouTube'a yüklenmesi için hazırlanması biraz zaman alıyor. Bu, kullanılan cihazların performansına ve ana ve bağımlı cihazlar arasındaki bağlantının kalitesine bağlı olacaktır.

Köle görevi gören ikinci iPhone, yalnızca ikinci bir kamera olarak kullanılıyor. Çekim sonunda video parçasını master cihaza gönderir.

İki iPhone ile 3D Video Nasıl Çekilir?
3D video çekim süreci şuna benzer. (Büyük versiyonu görüntüle)

Uygulamanın ana ekranının, çekilen videoların galerisini gösteren ekran görüntüleri aşağıda gösterilmiştir. Videolar hem gömülü bir oynatıcı aracılığıyla hem de YouTube'da görüntülenebilir. Burada ayrıca cihazlara daha fazla çekim rollerinin (master ve slave) nasıl atandığını da izleyebilirsiniz.

İki iPhone ile 3D Video Nasıl Çekilir?
İki iPhone ile 3D Video Nasıl Çekilir?
Uygulamanın kullanıcı arayüzü

Teknik Engeller

senkronizasyon

Video parçalarıyla yapılan tüm işlemler, mümkünse donanım hızlandırması kullanılarak güçlü AVFoundation çerçevesinin yardımıyla gerçekleştirilir.

YouTube'a yüklemek için video parçaları yan yana çerçeveler halinde yapıştırılır. Açıkçası, her sol kare zamanla sağ kareyle eşleşmelidir. Kaynaklardan birinin karelerindeki en ufak bir gecikmeyle, stereo efekti kaybolur veya bozulur (özellikle dinamik sahnelerde) ve resim iki katına çıkar.

Bu sorunu çözmek için aynı anda cihazlara video kaydetmeye başladık. Aslında, kayıt, başlat düğmesine basıldıktan hemen sonra değil, belirli bir algoritmanın etkinleştiği kısa bir gecikmeden sonra başlar - hassas zaman protokolünün (PTP) saat eğriliğini ölçmesine çok benzer. Böylece, 30 ila 50 milisaniyelik bir sapma ile video kaydını başlatabildik, bu da en kötü senaryoda yaklaşık 1 senkronizasyonsuz çerçeveye tekabül ediyor.

iOS Çoklu Eş Bağlantısındaki Hatalar

İki cihaz arasında iletişim kurmak için yerel iOS kitaplığı Multipeer Connectivity'yi kullandık. Bu kitaplık, aynı Wi-Fi ağındaki cihazlar arasında ve ayrıca Bluetooth aracılığıyla veya iPhone'daki Wi-Fi Direct'e benzer bir şey kullanarak doğrudan bağlantı kurar. Böylece, kablosuz veya mobil İnternet ağı olmadan açık bir alanda bile video parçalarını çekebilir ve senkronize edebilirsiniz. Ancak videoyu ana cihazdan YouTube'a göndermek için İnternet bağlantısı gerekir.

Bu kütüphaneyi kullanmaya karar vermemizin temel nedeni, aynı ağa bağlı olmadığında iki cihaz arasında iletişim kurmasıdır. Açıktır ki, kötü stereo 3D çekim koşulları altında, en çok beklenebilecek olan bir 3G bağlantısıdır. Bir 3D video çekmek için, senkronizasyon için veri paketlerini minimum gecikmeyle iletebilmek çok önemlidir. Ayrıca internet bağlantısı olmasaydı çekim yapamayacaktık. Bu nedenle, Multipeer Connectivity kitaplığı bir yaşam çizgisi haline geldi. Ayrıca, Apple platformu için yerel bir çözümdür.

Ancak her şeyin tam istediğimiz gibi gitmediğini de belirtmekte fayda var. Multipeer Connectivity ile entegrasyon sırasında birçok hata tespit edildi ve kütüphanenin tamamı çalışmasında son derece kararsızdı. Bildirilen özelliklerin çoğu sadece teoride vardı. Cihazlar aynı ağ segmentinde çalıştığında, Multipeer Connectivity daha etkin çalışır; bağlantı kabul edilebilir bir süre için kurulur; mesaj teslim süresinin izin verilen dağılımı sağlanır.

Ancak, göreceli olarak konuşursak, kötü stereo 3D çekim koşullarımız varsa veya diyelim ki tek bir yerde birçok mobil cihaz varsa, o zaman bağlantı kurmak bir piyangoya benzer. Apple kitaplığının henüz tam olarak gelişmediği ve hala oldukça ham olduğu hissine kapılıyorsunuz.

Cihazları Bağlama

Prototipimizin ilk versiyonunda otomatik bağlantı protokolünü uyguladık. Protokolün kendisi, ilk zaman noktasında eş cihazlar arasından bir çoğunluğa dayalı olarak bir koordinatörün seçildiği bir dizi kuraldan oluşur.

Ardından, koordinatör, bağımlı cihazlar arasında bir daire içinde özel bir işaretleyici geçirerek her cihazdan periyodik olarak telemetri istatistiklerini toplar. Bu telemetri verilerine dayanarak, çerçeveye monte edilen cihaz çiftleri karşılaştırılır. Bir çift tanımlandıktan sonra, çifte bir master ve slave atanır ve aralarında doğrudan bir bağlantı kurulur. Bu aşamada, bağlantı tamamlandı.

Otomatik ve Bağımsız Aramalar

Gerektiğinde, senkronizasyon (kayıt sırasında verilerin ana cihaza yüklenememesi durumunda kaydedilen video parçalarının elde edilmesi) için önceki oturumlara katılan cihazlar için (benzersiz tanımlayıcılara dayalı olarak) otomatik ve bağımsız aramalar yapıldı. İvmeölçer okumaları esas olarak hangi cihazların çifte karşılık geldiğini belirlemek için kullanıldı. Koordinatör, potansiyel çiftler arasındaki korelasyonu hesapladı. Korelasyon belirli bir eşiği aşarsa, cihazlar potansiyel çiftler olarak kabul edildi ve ardından ikincil özellikler test edildi.

Multipeer Connectivity ile yukarıda bahsedilen sorunları tam olarak çözemediğimiz için, ortalama kullanıcıyı çok olumsuz etkileyeceği ve kullanıcı deneyimini bozacağı için otomatik linklemeyi geçici olarak bırakmaya karar verdik.

Neyle Bitirdik

Sonunda çok ilginç ve kaliteli bir uygulamaya ulaştık. Bu uygulama aracılığıyla kaydedilmiş bir videoyu izlemek, sinemada 3D film izlemekten aldığınız duygunun aynısını size verir.

Elbette insan gözü biraz farklı çalışır: Çizgileri uzayda belirli bir noktada birleşir ve odak noktasına bağlıdır. Bizim durumumuzda gözler her zaman paralel bakar. Bununla birlikte, bu gerçekle bile, stereo etkisi çok belirgindir: Alanın hacmi ön planda, orta planda ve arka planda ekranda olduğu gibi hissedilir.

Bu videoyu düzgün izlemek için VR gözlüğüne veya 3D TV'ye ihtiyacınız var.

Bu nedenle, iş ihtiyaçlarınız için veya sadece eğlence için kendi başınıza 3D stereo video çekmek için Stereo Video Kaydedici uygulamasını kullanmayı mümkün hale getirdik!

Hatalar ve Gelecek Planları Üzerinde Çalışmak

Hedefimize ulaştık: 3D video oluşturma kriterlerini inceledik ve herhangi bir kullanıcının stereo video oluşturmasını sağlayan bir uygulama oluşturduk. Ama her şey göründüğü kadar kolay değil. Bazı şeyler üzerinde çalışmamız gerekiyor. Multipeer Connectivity kitaplığıyla ilgili birçok sorun yaşadık. Uygulamanın sınırlı İnternet erişimiyle iyi çalışması için onu değiştirmek veya bir geçici çözüm bulmak istiyoruz.

Ayrıca şunları da yapmamız gerekiyor:

  • iki cihazda senkronize odaklama ve pozlama ölçümü uygulamak ve ayrıca stereo ses parçalarının kaydını uygulamak;
  • cihazlar için daha pragmatik bir çerçeve geliştirmek;
  • otomatik cihaz eşleştirme mekanizmasını entegre edin;
  • farklı cihaz seçenekleri için destek sağlamak ve farklı video çözünürlüklerini işleyebilmek (şu anda yalnızca aynı iPhone sürümleriyle video çekebiliyoruz - örneğin, bir iPhone 5S yalnızca başka bir iPhone 5S ile eşleştirilebilir);
  • uygulamanın bir Android sürümünü oluşturun.

Stereo Video Kaydedici uygulamamız zaten App Store'da. 3D video oluşturmak için kullanabilirsiniz. Teknolojinin gelişmeye devam edeceğinden ve sonunda stereoskopik video oluşturmak için çok daha fazla çözüm olacağından eminiz. Çağa ayak uydurmaya çalışacağız.

Lütfen bu uygulamayı kullanımınız hakkında yorumlarınızı ve fikirlerinizi bırakın. Görüş ve geri bildiriminiz için minnettar olacağız.

SmashingMag'de Daha Fazla Okuma :

  • Mobil Uygulama Oluşturmanın Dört Yolu, Bölüm 1: Yerel iOS
  • Sketch ile iOS ve Android Uygulamalarını Prototipleme (Bir Freebie ile)
  • Web Tasarımında Videonun Geleceği
  • Uygulamalar, Oyunlar ve Mobil Web İçin Test Otomasyonunun Temelleri