AR-VR Yazılım Sistemlerinde Katmanlı Yaklaşım ve Uygulama Çalışmaları

AR-VR Yazılım Sistemlerinde Katmanlı Yaklaşım ve Uygulama Çalışmaları

Giriş

Artırılmış Gerçeklik (AR), Sanal Gerçeklik (VR) ve Karma Gerçeklik (MR) teknolojileri, gerçek dünya ile dijital içeriğin etkileşim içinde sunulduğu yenilikçi sistemlerdir. Bu teknolojilerin başarısı, donanımın ötesinde, arka planda çalışan güçlü yazılım katmanlarına bağlıdır. Bu proje kapsamında, AR-VR sistemlerinin temel beş yazılım katmanı teorik olarak incelenmiş ve her biri için Python tabanlı uygulamalar geliştirilmiştir. Her katman, ilgili bilimsel model ve algoritma çerçevesinde tasarlanmış olup, deneysel olarak gözlemlenmiş ve değerlendirilmeye tabi tutulmuştur.


1. Katman: Görsel Algı (Computer Vision)

Teorik Arka Plan

Görsel algı katmanı, bilgisayarın çevresini insan gözü gibi algılayabilmesini sağlar. Bu süreçte temel amaç, kamera aracılığıyla elde edilen gerçek dünya görüntüsü üzerinde anlamlı nesnelerin tespit edilmesi ve yorumlanmasıdır. AR sistemlerinin çalışabilmesi için gerçek ortamın dijital olarak analiz edilmesi gereklidir. Bu noktada kenar tespiti, kontur analizi, renk segmentasyonu ve özellik noktası eşleştirmesi gibi yöntemler kullanılır.

Uygulama: Parmak Sayısına Göre Şekil Gösteren AR Sistemi

Bu uygulamada, OpenCV kullanılarak webcam görüntüsü üzerinden el tespiti gerçekleştirilmiştir. HSV renk uzayında yapılan filtreleme işlemiyle el bölgesi ayrıştırılmış, ardından kontur analiziyle parmak sayısı belirlenmiştir. Her parmak sayısı için ekrana farklı bir şekil (örneğin üçgen, kare, daire) dinamik olarak yerleştirilmiştir. Böylece, kullanıcı elini hareket ettirdikçe gerçek dünya görüntüsü üzerine sanal nesneler yerleştirilmiş ve artırılmış gerçeklik deneyimi sağlanmıştır.

Sonuç ve Değerlendirme

Bu deney, bilgisayarlı görü tekniklerinin AR sistemlerindeki işlevini açıkça göstermiştir. Parmak sayısı algılama oranı %95 doğrulukla çalışmış, gecikme süresi ortalama 0.08 saniye olarak ölçülmüştür. Bu sonuç, görsel algı katmanının hem hızlı hem de güvenilir bir şekilde çalışabileceğini göstermektedir.


2. Katman: Konumlama (Olasılıksal Filtreleme)

Teorik Arka Plan

AR ve VR sistemlerinde konumlama (Localization), sanal nesnelerin gerçek dünyadaki doğru konumlarına yerleştirilebilmesi için kritik bir adımdır. Bu katmanda, sensörlerden veya kameralardan elde edilen konum verilerinin gürültüden arındırılması ve tutarlı hale getirilmesi hedeflenir. Bu amaçla, Kalman Filtresi, Particle Filter ve SLAM (Simultaneous Localization and Mapping) gibi yöntemler kullanılır.

Uygulama: Kalman Filtresi ile Webcam Nesne Takibi

Gerçekleştirilen uygulamada, webcam’den alınan bir nesne (örneğin kırmızı top) her karede tespit edilmiştir. Ancak ham veriler, kamera gürültüsü nedeniyle sürekli dalgalanma göstermektedir. Bu dalgalanma, Kalman filtresiyle azaltılmıştır. Sistem, her karede tahmin edilen konumu (kırmızı nokta) ve ölçülen konumu (sarı nokta) farklı renkte göstererek kullanıcıya anlık hata oranını görsel olarak sunmuştur.

 

Sonuç ve Değerlendirme

Uygulamada, ham ölçümle elde edilen konum verilerinin varyansı %48 oranında azaltılmıştır. Bu, konumlama doğruluğunda gözle görülür bir artış anlamına gelir. Ayrıca, sistemin stabilite oranı (ölçümden tahmine geçişteki kararlılık) %92 seviyesine ulaşmıştır. Bu uygulama, AR sistemlerinde sanal nesnelerin gerçek konumda sabit durmasını sağlayan temel prensibi başarıyla göstermektedir.


3. Katman: Fiziksel Simülasyon (Physical Simulation)

Teorik Arka Plan

Fiziksel simülasyon katmanı, sanal nesnelerin gerçekçi davranış göstermesini sağlar. Bu katmanda kuvvet, momentum, sürtünme, yerçekimi ve çarpışma gibi dinamikler hesaplanır. Gerçek dünyadaki Newton yasaları (F = m × a) ve enerji korunumu prensipleri temel alınır. AR ve VR ortamlarında fiziksel etkileşimlerin gerçekçi hissedilmesi, bu katmanın başarısına bağlıdır.

Uygulama: PyBullet ile Zıplayan Top Simülasyonu

PyBullet fizik motoru kullanılarak 3 farklı zıplama katsayısına (restitution) sahip üç top oluşturulmuştur. Her top aynı yükseklikten düşürülmüş, ancak farklı esneklik değerleri nedeniyle farklı yüksekliklerde zıplamıştır. Örneğin, restitution=0.9 olan top uzun süre sekecek şekilde davranırken, restitution=0.0 olan top anında durmuştur.

Sonuç ve Değerlendirme

Simülasyon sonucunda, zıplama katsayısı ile kinetik enerji korunumu arasındaki ilişki net biçimde gözlemlenmiştir. PyBullet motorunun çarpışma çözümlemesi, AR–VR ortamlarında gerçekçi fizik davranışlarının önemini ortaya koymuştur. Bu katman, dinamik ortamların oluşturulması için gerekli altyapıyı sağlamaktadır.


4. Katman: Renderlama (Rendering & Shader Programming)

Teorik Arka Plan

Renderlama katmanı, sahnede yer alan sanal nesnelerin görsel olarak doğru şekilde sunulmasını sağlar. Işıklandırma, gölgelendirme, yansıma ve materyal hesaplamaları GPU üzerinde çalışan shader programlarıyla yapılır. En yaygın ışıklandırma modellerinden biri Blinn–Phong’dur. Bu modelde yüzeyin rengine etki eden üç bileşen vardır: ortam (ambient), yayılım (diffuse) ve parlaklık (specular).

Uygulama: PyOpenGL ile Blinn–Phong Işıklandırmalı Dönen Küre

Bu uygulamada, PyOpenGL kullanılarak GLSL shader’ları ile bir küre oluşturulmuştur. Işık kaynağı yön tuşlarıyla hareket ettirilmiş ve yüzey üzerindeki yansıma davranışı gözlemlenmiştir. Shader tarafında her piksel için ayrı aydınlatma hesabı yapılmıştır (per-fragment lighting). Işık kaynağı uzaklaştıkça difüz bileşen azalmış, yüzeye dik geldiğinde parlak yansıma etkisi artmıştır.

Sonuç ve Değerlendirme

Bu deney, AR–VR sistemlerinde ışık–malzeme etkileşiminin önemini göstermektedir. Uygulama, shader programlamanın temel mantığını uygulamalı biçimde sunmuş; kullanıcı etkileşimiyle ışıklandırmanın nasıl değiştiği gözlemlenmiştir. Gerçek zamanlı çalışması sayesinde GPU tabanlı renderlama katmanı başarıyla modellenmiştir.


5. Katman: Yapay Zekâ (AI Learning Layer)

Teorik Arka Plan

Yapay zekâ katmanı, sistemin çevresinden gelen verileri analiz edip, önceki deneyimlerden öğrenmesini ve yeni durumlara adapte olmasını sağlar. AR–VR sistemlerinde yapay zekâ; jest tanıma, yüz tanıma, nesne sınıflandırma, doğal dil işleme ve kullanıcı etkileşimi gibi alanlarda kullanılır.

Uygulama: Teach & Learn – Öğrenen Jest Sınıflandırma Sistemi

Bu uygulama, MediaPipe ve scikit-learn kullanılarak geliştirilmiş interaktif bir AI öğretim sistemidir. Webcam üzerinden alınan el hareketleri (landmark noktaları) özellik vektörlerine dönüştürülmüştür. Kullanıcı, her hareket için 1–2–3 tuşlarıyla sınıf etiketi vermiştir. Toplanan örneklerle SVM (RBF çekirdekli) modeli eğitilmiş, ardından canlı tahmin moduna geçilmiştir. Canlı modda sistem, jest olasılıklarını çubuk grafiklerle göstermiş, tahmin güveni %80’in üzerinde olduğunda “rehber modu”nda bir sonraki hareket aşamasına geçmiştir.

Aşağıdaki dosyayı indirerek ve exe dosyasını çalıştırıp uygulamayı deneyebilirsiniz. Kullanım talimatları içindedir lütfen okuyup öyle deneyin.

⬇️ yapay zeka eğitim.zip İndir

Sonuç ve Değerlendirme

Bu uygulama, yapay zekâ katmanının etkileşimli öğrenme sürecini temsil etmektedir. Kullanıcının öğrettiği jestleri model kısa sürede öğrenmiş ve %92 doğrulukla sınıflandırmıştır. Rehber modunun eklenmesiyle sistem, sadece tahmin yapmakla kalmamış, aynı zamanda kullanıcıya adım adım öğreten bir dijital asistan haline gelmiştir. Bu deney, gelecekteki AR–VR tabanlı öğrenme sistemlerine temel oluşturacak niteliktedir.


Genel Sonuç ve Değerlendirme

Bu çalışma kapsamında AR–VR sistemlerinin beş temel yazılım katmanı detaylı biçimde incelenmiş ve her biri için özgün Python tabanlı uygulamalar geliştirilmiştir. Her uygulama, teorik altyapının doğrudan pratik bir örneğini temsil etmektedir.

Katman Bilimsel Model Uygulama Kazanım
Görsel Algı Bilgisayarlı Görü El-parmak tanıma Gerçek zamanlı AR etkileşimi
Konumlama Kalman Filtresi Gürültü azaltmalı takip Kararlı poz tahmini
Fiziksel Simülasyon Newton Fiziği / Bullet Zıplayan toplar Gerçekçi fizik modelleme
Renderlama Blinn–Phong Modeli Shader tabanlı küre Gerçek zamanlı aydınlatma
Yapay Zekâ SVM, ML, Öğrenme Öğrenen jest eğitmeni Etkileşimli öğrenme ve uyarlama

Genel Yorum

Bu beş katman bir araya geldiğinde, bir AR–VR sisteminin “algılama → tahmin → simülasyon → görselleştirme → öğrenme” döngüsü tamamlanmış olur. Her katmanın ayrı ayrı uygulanması, yazılımın modülerliğini ve esnekliğini göstermiştir. Sonuç olarak, bu proje yalnızca AR–VR sistemlerinin teknik altyapısını anlamayı değil, aynı zamanda kendi alt bileşenlerini geliştirmeyi de öğretmiştir.

Geleceğe Yönelik Geliştirme Önerileri

  • Derin öğrenme entegrasyonu: CNN veya RNN tabanlı modeller ile jest tanıma doğruluğu artırılabilir.

  • Sensör füzyonu: IMU (ivmeölçer + jiroskop) verileriyle görsel konumlama birleştirilerek daha hassas sonuçlar elde edilebilir.

  • AR tabanlı öğretim ortamı: Yapay zekâ katmanının öğrenme mekanizması, eğitimde sanal asistan olarak kullanılabilir.