TEK KAMERALI STEREO GÖRÜŞ İLE DERİNLİK HESABININ YAPILMASI
Ali MUMCU
YÜKSEK LİSANS TEZİ
BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI
GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ
EYLÜL 2016
Ali MUMCU tarafından hazırlanan “TEK KAMERALI STEREO GÖRÜŞ İLE DERİNLİK HESABININ YAPILMASI” adlı tez çalışması aşağıdaki jüri tarafından OY BİRLİĞİ ile Gazi Üniversitesi Bilgisayar Mühendisliği Anabilim Dalında YÜKSEK LİSANS TEZİ olarak kabul edilmiştir.
Danışman: Öğrt. Gör. Dr. Murat HACIÖMEROĞLU Bilgisayar Mühendisliği, Gazi Üniversitesi
Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum ...………
Başkan : Doç. Dr. Hacer KARACAN
Bilgisayar Mühendisliği, Gazi Üniversitesi
Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum ………...
Üye : Yrd. Doç. Dr. Mehmet Serdar GÜZEL
Bilgisayar Mühendisliği, Ankara Üniversitesi
Bu tezin, kapsam ve kalite olarak Yüksek Lisans Tezi olduğunu onaylıyorum ………...
Tez Savunma Tarihi: 02/09/2016
Jüri tarafından kabul edilen bu tezin Yüksek Lisans Tezi olması için gerekli şartları yerine getirdiğini onaylıyorum.
……….…….
Prof. Dr. Hadi GÖKÇEN Fen Bilimleri Enstitüsü Müdürü
ETİK BEYAN
Gazi Üniversitesi Fen Bilimleri Enstitüsü Tez Yazım Kurallarına uygun olarak hazırladığım bu tez çalışmasında;
Tez içinde sunduğum verileri, bilgileri ve dokümanları akademik ve etik kurallar çerçevesinde elde ettiğimi,
Tüm bilgi, belge, değerlendirme ve sonuçları bilimsel etik ve ahlak kurallarına uygun olarak sunduğumu,
Tez çalışmasında yararlandığım eserlerin tümüne uygun atıfta bulunarak kaynak gösterdiğimi,
Kullanılan verilerde herhangi bir değişiklik yapmadığımı,
Bu tezde sunduğum çalışmanın özgün olduğunu,
bildirir, aksi bir durumda aleyhime doğabilecek tüm hak kayıplarını kabullendiğimi beyan ederim.
Ali MUMCU 02/09/2016
TEK KAMERALI STEREO GÖRÜŞ İLE DERİNLİK HESABININ YAPILMASI (Yüksek Lisans Tezi)
Ali MUMCU GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ
Eylül 2016 ÖZET
Teknolojinin gelişmesi ile birlikte el bilgisayarı olarak kabul edilebilen yüksek performansa sahip mobil cihazlar üretilmektedirler. Bu cihazlar hızlı işlem yapma kabiliyetine, zengin algılayıcılara, büyük ekranlara ve yüksek çözünürlüklü kameralara sahip olmaları sayesinde bilgisayarla görü sistemlerinde de yaygın olarak kullanılmaktadırlar. Bu çalışmada, nesnelerin kameraya olan uzaklığının hesaplanması için kullanılan iki kameralı yaklaşım, stereo kamera donanımına sahip olmayan tek kameralı mobil bir cihaz ile gerçekleştirilmektedir. Aynı sahnenin, cihazın yatayda el ile yer değiştirilmesi sonucu iki resmi çekilerek, nesnelerin kameraya olan uzaklıkları hesaplanmaktadır. Yatayda kameranın hareket yönü ve yer değiştirmesi cihazın içerisindeki algılayıcılar sayesinde tespit edilmektedir. İki resimdeki özellik noktaların elde edilmesi için SURF (Speed Up Robust Features) algoritması kullanılmaktadır. İki resimde de ortak bulunan noktalardan en iyi eşleşen noktalar seçilmektedir. Çıkarılan bu noktalar üzerine ortak nesnenin tespiti için K- ortalamalar kümeleme algoritması uygulanmıştır. Nesnenin, iki resimdeki yer değiştirmesi ve kameranın yataydaki hareket etme mesafesi kullanılarak kameraya olan uzaklığı ölçülmektedir. Bu hesabın yapılması çok hassas olup, gerçekleştirilirken kullanılacak bu iki değerin yüksek doğruluk ile tespit edilmesi işlemin doğru sonuç verebilmesi için çok önemlidir. Tüm bu adımlar Android işletim sistemi ile çalışan mobil cihaz üzerinde geliştirilmektedir. Mobil uygulamalarda doğruluk yanında hız da önemli olduğundan literatürde kabul görmüş ORB (Oriented FAST and Rotated BRIEF) and BRISK (Binary Robust Invariant Scalable Keypoints) özellik belirleme algoritmaları ile bu işlemler tekrarlanarak hız ve doğruluk karşılaştırılması yapılmaktadır.
Bilim Kodu : 92418
Anahtar Kelimeler : Stereo Görüş, Uzaklık Ölçümü, Mobil Hesaplama Sayfa Adedi : 71
Danışman : Öğrt. Gör. Dr. Murat HACIÖMEROĞLU
DEPTH ESTIMATION USING SINGLE CAMERA STEREO VISION (M. Sc. Thesis)
Ali MUMCU GAZİ UNIVERSITY
GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCES September 2016
ABSTRACT
In conjunction with the development of technology, mobile devices which can be considered as a handheld computer with high performance are manufactured. Thanks to their fast processing capabilities, rich sensors, big screens and high resolution cameras, these devices are being utilized widely in computer vision systems. In this study, binocular stereo vision system, which can be used to calculate the distance between object and the camera, is performed with a mobile device that is not equipped with stereo camera. Distance of object to the camera is measured by taking two pictures of a scene by manually moving the camera.
Camera’s lateral displacement and direction of movement are detected using the device’s inertial sensors. SURF (Speeded Up Robust Features) algorithm is used in order to detect and descript the feature points in the two images. K-means clustering algorithms are applied on the extracted key points for detection of the common object. Camera displacement and location difference of an object in the images are used to compute the distance of object to the camera. Performing this operation is sensitive, therefore determining these two values with high precision is very critical to be able to retrieve the correct result. All these steps are developed on mobile device with Android operating system. In mobile applications in addition to the accuracy speed is also important, thus this operation is repeated by applying ORB (Oriented FAST and Rotated BRIEF) and BRISK (Binary Robust Invariant Scalable Keypoints) algorithms which are generally accepted in the literature for targeting speed and accuracy comparison.
Science Code : 92418
Key Words : Stereo Vision, Distance Measurement, Mobile Computing Page Number : 71
Supervisor : Lecturer Dr. Murat HACIÖMEROĞLU
TEŞEKKÜR
Bu çalışmanın planlanmasında, araştırılmasında, yürütülmesinde ve oluşumunda ilgi ve desteğini esirgemeyen, engin bilgi ve tecrübelerinden yararlandığım, yönlendirme ve bilgilendirmeleriyle çalışmamı bilimsel temeller ışığında şekillendiren saygıdeğer danışman hocam Öğrt. Gör. Dr. Murat HACIÖMEROĞLU’na, yine kıymetli tecrübelerinden faydalandığım Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Başkanı Prof. Dr. Şeref SAĞIROĞLU ve öğretim üyelerine sonsuz teşekkürlerimi sunarım.
İÇİNDEKİLER
Sayfa
ÖZET ... iv
ABSTRACT ... v
TEŞEKKÜR ... vi
İÇİNDEKİLER ... vii
ÇİZELGELERİN LİSTESİ ... ix
ŞEKİLLERİN LİSTESİ ... x
RESİMLERİN LİSTESİ ... xii
1. GİRİŞ
...1
2. STEREO GÖRÜŞ
... 52.1. İnsan Görüşü ... 7
2.2. Bilgisayarda Stereo Görüş ... 9
2.2.1. Stereo kamera ... 10
2.2.2. Kameralar arası uzaklık (baseline) ... 11
2.2.3. Odak uzaklığı ... 11
2.2.4. Farklılık değeri (disparty) ... 11
2.3. Özellik Çıkarımı ... 13
2.3.1. SIFT ... 15
2.3.2. SURF ... 17
2.3.3. ORB ... 19
2.3.4. BRISK ... 20
2.4. Stereo Eşleme ... 22
Sayfa
3. BENZER ÇALIŞMALAR
... 254. TEK KAMERALI STEREO GÖRÜŞ İLE DERİNLİK HESABININ YAPILMASI
... 294.1. Uygulama Yazılımı ... 31
4.1.1. Kullanılan teknolojiler ... 32
4.1.1. Yazılımın gerçekleştirilme adımları ... 33
4.2. Deneysel Sonuçlar ... 45
5. SONUÇ VE ÖNERİLER
... 57KAYNAKLAR ... 61
EKLER ... 67
EK-1. Derinlik hesabı ... 68
ÖZGEÇMİŞ ... 71
ÇİZELGELERİN LİSTESİ
Çizelge Sayfa
Çizelge 2.1. Algoritmaların gruplandırılması ... 14
Çizelge 4.1. Farklı uzaklıkta bulunan nesnelerin mesafe hesaplama sonuçları ... 46
Çizelge 4.2. Kamera hareket etme mesafesine göre ölçüm ortalamaları ... 47
Çizelge 4.3. Nesnelere göre ölçülen uzaklık değerleri ... 49
Çizelge 4.4. Nesnelerin kameraya olan uzaklık ölçüm değerleri ... 50
Çizelge 4.5. Uygulamanın farklı algoritmalar kullanılarak çalıştırılması ile bulunan özellik nokta sayısı ve uygulamanın çalışma zamanı ... 52
Çizelge 4.6. Farklı algoritmaların farklı uzaklıklardaki nesnelerin uzaklıklarını hesaplama sonuçlar ... 52
Çizelge 4.7. Çekilen resim sayısı arttırılması sonucu ölçülen uzaklık değerleri ... 53
ŞEKİLLERİN LİSTESİ
Şekil Sayfa
Şekil 2.1. Epipolar Geometri ... 6
Şekil 2.2. Pasif Stereo Görüş Piksel Eşleme ... 6
Şekil 2.3. Aktif Stereo Görüş ... 7
Şekil 2.4. İnsanda Binokular Görüş ... 8
Şekil 2.5. Bilgisayarla Stereo Görmenin Temel Prensibi ... 10
Şekil 2.6. Stereo Kamera ... 10
Şekil 2.7. Kamera Odak Uzaklığı (f) ... 11
Şekil 2.8. Farklılık ve Derinlik İlişkis ... 12
Şekil 2.9. Derinlik Çözünürlüğü ... 12
Şekil 2.10. Ölçek Uzayında DoG ... 15
Şekil 2.11. a) Büyüklük ve oryantasyonları b) Anahtar nokta ... 17
Şekil 2.12. ORB Algoritması Akış Diyagramı ... 20
Şekil 2.13. BRISK Örnekleme Deseni ... 22
Şekil 2.14. Tsukuba Stereo Görüntüleri (a) Sol Kamera Görüntüsü (b) Uzaklık Haritası ... 22
Şekil 4.1. Uygulama gerçekleştirme adımları ... 31
Şekil 4.2. OpenCV Bileşenleri ... 32
Şekil 4.3. Kamera hareket yönü: sağ (a) birinci resim (b) ikinci resim ... 40
Şekil 4.4. Kamera hareket yönü: sol (a) birinci resim (b) ikinci resim ... 40
Şekil 4.5. Sağ ve sol resimlerde eşleşen noktalar ... 41
Şekil 4.6. Kamera hareket ettirilme mesafesine göre hata yüzde değerleri ... 48
Şekil 4.7. Nesnelere göre uzaklık ölçümü hata oranları ... 49
Şekil 4.8. Hesaplanan uzaklık mesafelerinde hata değerleri ... 50
Şekil Sayfa Şekil 4.9. Algoritmalara göre ölçülen uzaklık değerlerinin hata oranları ... 53 Şekil 4.10. Ölçümlerde kullanılan nesnelere göre hata oranları ... 55
RESİMLERİN LİSTESİ
Resim Sayfa
Resim 4.1. Sol resim ... 37
Resim 4.2. Sağ resim ... 37
Resim 4.3. Sol resim özellik noktaları ... 38
Resim 4.4. Sağ resim özellik noktaları ... 38
Resim 4.5. Ölçümlerde kullanılan nesneler ... 45
1. GİRİŞ
İnsan duyarlılığında, iki ayrı gözün gördüğü iki ayrı resim benzerliklerin eşleştirilip, farklılıkların tamamlanması ile beyin tarafından birleştirilerek üç boyutlu model çıkarılmakta ve derinlik bilgisi elde edilmektedir. Stereo görüşte de insan görüşüne benzer şekilde sahne iki kamera kullanılarak farklı açılardan çekilmektedir. Çekilen resimlerde çok ortak özellik olmakla beraber küçük farklılıklar bulunmaktadır. Çekilen nesne için derinlik bilgisi, stereo resimlerdeki benzerliklerin bulunup eşlenmesi ve bu eşleşmelerin iz düşüm geometrisi kullanılarak işlenmesi ile elde edilmektedir [1-3].
Stereo görüş temassız üç boyutlu hesaplama için etkili bir yaklaşım olarak ortaya çıkmıştır.
Uzaklık hesabı, üç boyutlu sahnelerde hedef izlenmesi ve pozisyon tahmininin yapılmasında anahtar bir meseledir [4-7]. Genellikle uzaklık ölçümünde kullanılan lazer mesafe ölçüm cihazlarına kıyasla stereo kameralar ile aynı anda renk ve pozisyon bilgisine de ulaşılabilmektedir. Lazer mesafe ölçme cihazları stereo kameralardan çok daha pahalı olmakla beraber renk bilgisi için fazladan kameraya ihtiyaç duymaktadır. Bundan dolayı stereo kamera kullanımı tek başına bütün sistem için masrafların azalmasına olanak sağlamaktadır[8].
Nesnelerin kameraya ya da bir gözlemciye olan uzaklığının belirlenmesi çevresel algılama için temel işlemdir [9, 10]. Son zamanlarda cihazların hesaplama yapma kabiliyetlerinin artması, stereo kameraların birçok gerçek zamanlı uygulamalar ve bilgisayarla görüş problemleri üzerine uygulanmasına izin vermiştir [11-14]. Derinlik belirlemede de stereo görüş sistemleri bilgisayarla görüş tekniklerini kullanarak, gürbüz ve güvenilir bir şekilde nesnelerinin uzaklığının hesaplanması için kullanılmaktadır [15]. Bu sistemlerde kameraların farklı konumlarda bulunması nesnelerinde resimlerde farklı konumlarda çıkmasına neden olmaktadır. Nesnelerin resimlerdeki farkı ve kameralar arası uzaklık kullanılarak derinlik hesabı yapılmaktadır [16].
Stereo görüş iki ayrı kameranın kullanılması ile sınırlandırılmamalıdır. İki resmin tek bir kamera ile farklı konumlardan çekilmesi de aynı sonuçları verecektir. Bu şekilde tek kameralı stereo görüş oluşturulabilmektedir. Bu sistemlerde geleneksel yöntemlerden farklı olarak kameralar arası uzaklık sabit değil değişken olabilmektedir. Bu değişkenlik mesafe
hesaplamalarında yüksek doğrulukla sonuçlar alınmasına olanak sağlayabilmektedir [15].
Ayrıca iki kameralı stereo görüş sistemlerinde kameraların donanımlarından kaynaklı, kameralardan çekilen iki resim arasında yoğunluk farkına neden olabilecek değişiklikler, odak uzaklığı ve yakınlaştırma seviyesi farklılıkları olabilmesi nedeniyle, nesne uzaklığı hesaplamalarında hatalar olabilmektedir. Bu tür kısıtlar göz önünde bulundurulunca tek kameralı stereo görüş sistemini kullanmak daha avantajlı olabilmektedir [17].
Her geçen yıl mobil marketin çok hızlı bir şekilde büyüdüğü gözlemlenmekledir. Portio Research tarafından yapılan araştırmaya göre bütün dünya geneli mobil abone sayısının her yıl yüzde 7,3 arttığı ve 2016 yılı sonunda 8,5 milyar olacağı tahmin edilmektedir. Ayrıca dünya geneli 2017 yılında uygulama indirilme sayısının 200 milyardan fazla, mobil uygulama pazarının da 63,5 milyar dolar olacağı ön görülmektedir [18]. Mobil cihazların hızlı bir şekilde büyümesi sonucu, “istediğim zaman ve yerde bilgi parmaklarımın ucunda”
anlayışıyla mobil uygulamalara olan talepte artmaktadır ve insanlar mobil cihazları ile her şeyi yapmayı ister hale gelmektedirler [19].
Akıllı cihazların kapasitelerinin gelişmesine rağmen mobil donanım bilgisayarlara oranla hala zayıf kalmaktadır. Batarya ömrü, hesaplama kapasitesi, depolama alanı gibi kısıtlar zengin içerikli ya da kaynağa dayalı görüntü işleme ve artırılmış gerçeklik gibi uygulamaların desteklenmesinde zorluklar yaşatabilmektedir [18]. Kapasitesi sınırlı mobil cihazlarda, karmaşık işlemler uzak bulut tarafından desteklenen sunucular yardımı ile gerçekleştirilebilmektedir fakat böyle durumlar internet bağlantısı ile sunuculara bağlanılıp, gerçekleştirilen işlemin cevabının beklenilmesini gerektirdiğinden her zaman verimli olmayabilmektedir. Bundan dolayı, hesaplamaların cihaz içerisinde hızlı bir şekilde az kaynak kullanılarak yapılması tercih edilmektedir.
Bu tez çalışmasında tek kameralı stereo görüş sistemi mobil cihaz kullanılarak cihaz içerisindeki algılayıcılar yardımı ile oluşturulmaktadır. Aynı cihazla farklı açılardan çekilen iki resimde istenilen nesnenin kameraya olan uzaklığı hesaplanmaktadır. Resimlerdeki özellik noktalarının çıkarılıp eşlenmesi sonucu eşlenen noktalar arası fark değeri kullanılarak hesaplama işlemi gerçekleştirilmektedir. Çalışma mobil cihazlarda bu işlemin kabul edilebilir bir hızla ve doğru bir şekilde gerçekleştirilebilmesini amaçlamaktadır. Daha hızlı ve doğru sonuçların elde edilebilmesi amacıyla özellik belirleme için kullanılan algoritmalar değiştirilip, çekilen resim sayısı artırılarak uygulama tekrarlanmıştır.
Bu tez çalışması 5 bölümden oluşmaktadır. İkinci bölümde, stereo görüş, bilgisayarda stereo görmenin temel prensipleri ve resimlerden özellik noktaları çıkarımında kullanılan algoritmalar anlatılmıştır. Üçüncü bölümde stereo kameralar ile uzaklık hesabı yapılmasına yönelik olarak yapılan bilimsel çalışmalar incelenmiştir. Dördüncü bölümde, mobil cihaz kullanılarak tek kamaralı stereo görüş ile derinlik hesabının yapılmasında kullanılan yöntem anlatılmış ve gerçekleştirilen deney sonuçlarına yer verilmiştir. Son olarak beşinci bölümde sonuç ve öneriler ile çalışma tamamlanmıştır.
2. STEREO GÖRÜŞ
Stereo kelimesinin kaynağı Yunan “stereos” kelimesinden gelmektedir ve sabit, hareket etmeyen anlamlarına gelmektedir. Stereo görüş ile insan görüşü modellenip nesnelerin üç boyutlu derinlik kestirimi yapılabilmektedir [20]. Günümüzde dijital kameralar ve bilgisayarlar stereo görüntülerin elde edilmesinde kullanılmaktadırlar.
Epipolar geometri
Epipolar geometri genel olarak farklı açılardan çekilmiş resim çiftlerinde bulunan aynı sahnede, resimler ve nesne uzayı arasındaki geometrik ilişki olarak tanımlanmaktadır. Bu geometri resimlerin birbirileri ile olan ilişkisini belirttiği gibi her bir resmin nesne uzayı ile alakalı ilişkisini de ifade etmektedir [21].
Epipolar geometri stereo görüş sisteminin temelini oluşturmaktadır. Şekil 2.1’de gösterildiği gibi, cismin bulunduğu nokta P, iki kameranın iz düşüm noktaları (C, C’) ve cismin görüntüler üzerinde bulunduğu yerler (p, p’) aynı düzlemdedir. Bu düzleme epipolar düzlem denilmektedir [21].
Kamera merkezleri arasındaki doğru ile bu doğrunun görüntüleri kestiği varsayılan nokta (e, e’) epipol olarak adlandırılmaktadır. Diğer bir deyişle bir kamera merkezinin diğer görüntüde bulunan iz düşümüne denilmektedir. Bu noktalar ile resim noktalarını birleştiren doğru epipolar doğru olarak adlandırılmaktadır [21].
Kameranın görüş alanında bulunan üç boyutlu noktalar, resimleri epipolar doğru ile kesen epipolar düzlem üzerinde yer almaktadır. Bir resimdeki noktanın diğer resimdeki karşılığı epipolar doğru üzerinde bulunmaktadır. Bu durum epipolar kısıt olarak tanımlanmaktadır.
Bu kısıt iki resimdeki karşılıklı noktaların bulunması işlemini kolaylaştırmaktadır.
Böylelikle hesaplama yükü ve yanlış eşleştirmelerin önüne geçilebilmektedir [22].
Şekil 2.1. Epipolar Geometri
Stereo görüş aktif ve pasif olarak ikiye ayrılmaktadır [23].
Pasif stereo görüş
Pasif stereo görüş tekniğinde, 2 adet kamera bulunmaktadır. Nesnelerin üzerindeki şekillerden ve desenlerden faydalanılarak, her bir pikselin ne kadar kaydığı hesaplanmaktadır.
Şekil 2.2. Pasif Stereo Görüş Piksel Eşleme [24]
Örnek olarak bir kupanın sol ve sağ kameralar ile alınmış görüntüsü Şekil 2.2’de gösterilmektedir. Bu resimler kullanılarak kupa üzerindeki hayvanın gözünün sol ve sağ kamerada ne kadar kaydığı, kupanın kulpunun ne kadar kaydığı gibi bilgilere ulaşılabilmektedir.
Aktif stereo görüş
Aktif stereo görüş bir ışıldak yardımı ile nesneler üzerine bilinen örüntüye sahip kızılötesi görüntü göndermek ve stereo görüş kameraları ile bu kızıl ötesi desenleri yakalamaktır.
Alanda yeterli desen olmaması durumlarında derinlik bilgisine ulaşılmak için kullanılmaktadır.
Şekil 2.3. Aktif Stereo Görüş
2.1. İnsan Görüşü
İnsanlar bir kafa ile iki göze sahiptirler ve gözler başın ön kısmında yan yana bulunmaktadır.
Onların yakın ve aynı hizada olması sayesinde, her bir göz aynı alanı kısmen farklı açılarla görmektedir. İki gözün görüşü birçok benzerliklere sahip olmakla birlikte her bir göz çok kısa zamanda bir resmi yakalayarak farklı görsel bilgi elde etmektedir. Sağ ve sol göz tarafından algılanan iki resim beyine gönderilmektedirler. Beyinde yapılan hesaplamanın ardından, beynimiz bize ne gördüğümüzü göstermektedir. Gözler tarafından yakalanan bu resimlerin onaylanması için bir yol vardır. Sol gözü kapatıp resmi sağ gözle almak ve sağ
gözü kapatıp resmi sol gözle almak. Bu zıtlıklar göz önüne alındığında bu iki resim arasında küçük farklılıkların olduğu görülecektir. Bu farklılıklara dayanılarak, insan beyinin bu iki resmi özel bir teknikle birleştirdiği anlaşılmaktadır [25].
İnsanlar sağ ve sol göz tarafından görülen sahnenin farklılıklarından derinlik bilgisi sonucu çıkarabilmektedirler. Örnek olarak, eğer nesne1 nesne2 üzerinde hareket ediyorsa ve nesne2 daha büyükse bu nesnenin bir kısmı gözükmeyecektir ve böylelikle insan nesne1’in daha yakında olduğunu anlayacaktır [25].
Şekil 2.4’de sağ ve sol göz kendi görüşlerinden resimleri yakaladığından beyne iki farklı resim gönderilmektedir. Beyne gelen bu resimler birleştirilerek tek bir görüntü elde edilmektedir. İnsanda bulunan binokular sistemin incelenmesi ile stereo görüş sistemleri modellenmiştir.
Şekil 2.4. İnsanda Binokular Görüş [25]
2.2. Bilgisayar da Stereo Görüş
Bilgisayar ile stereo görüş üç boyutlu bilginin dijital resimlerden elde edilmesi işlemidir. İki farklı bakış açısından bir sahne hakkında bilgiyi karşılaştırıp, iki tablodaki nesnelerin birbiri ile ilişkili pozisyonları incelenerek üç boyutlu bilgi elde edilmektedir. Bu işlem insanda görüntünün algılanmasındaki biyolojik sürece benzemektedir [25].
Şekil 2.5’de stereo görmenin genel prensibi açıklanmaktadır. P noktası sahnedeki herhangi bir nokta, Ol ve Or sol ve sağ kameranın iz düşüm merkezleridir. Il ve Ir ise her bir kameraya karşılık gelen görüntü düzlemidir. Sadece sol kameranın görüntü düzlemindeki konum bilgileri bilinen bir P iz düşüm noktası, Ol' den P' ye uzanan ışın üzerindeki herhangi bir yerde olabilir. Ancak P noktasının, sağ kamera görüntü düzlemindeki bilgileri de bilindiğinde, üçgenleme tekniğinden yararlanılarak iki ışının kesişiminden P noktasının ortamdaki asıl yeri bulunabilmektedir. B, Ol ve Or arasındaki yani kameralar arasındaki uzaklık (baseline); (ul, vl) ve (ur, vl), P'nin sağ ve sol kameranın görüntü düzlemindeki yerleri; f, odak uzaklığı ve Z de, B' den P noktasına olan uzaklık olsun. Üçgenlerin benzerliği kullanılarak Z yani derinlik bilgisi Eş. 2.1’deki gibi hesaplanabilmektedir [26].
𝑍 = (𝑓∗𝐵)
𝑑 (2.1) Eş. 2.1' de, d dışındaki bütün terimler, sistemin bilinen sabit değerleridir. Bir noktanın gerçek uzaklığını bulmak için bu ifadenin hesaplanması gerekmektedir. Kameraların yerleştirilme konumlarına göre nesneler görüntü düzlemlerinde farklı yerlere düşmektedirler. Bu iki noktanın görüntü düzlemlerinde birbirlerine olan mesafeleri, farkı (d, farklılık değeri) vermektedir.
Şekil 2.5. Bilgisayarla Stereo Görmenin Temel Prensibi
2.2.1. Stereo kamera
Stereo görüş sistemindeki en önemli elemanlardan birisi stereo kameralardır. Görüntüler işlenip derinlik hesabı yapılırken kamera sisteminin iç ve dış parametrelerine ihtiyaç duyulmaktadır [27].
Şekil 2.6. Stereo Kamera [27]
𝑏
𝑍= 𝑏 − (𝑑 + 𝑑′)
𝑏 = 𝑑 + 𝑑 ′ 𝑓 𝐷 = 𝑑 + 𝑑′
𝑏
𝑍= 𝑏 − (𝑑 + 𝑑′)
𝑏 = 𝑑 + 𝑑 ′ 𝑓 𝐷 = 𝑑 + 𝑑′
𝑍 = 𝑓 ∗ 𝑏 𝐷
2.2.2. Kameralar arası uzaklık (baseline)
Stereo kamera sisteminde bulunan iki kamera arası uzaklık değerine karşılık gelmektedir.
İnsan gözleri arasındaki farka benzer şekilde stereo kamera sisteminde de kameralar arsında uygun bir mesafe bulunmak zorundadır. Sistemin insan gözüne benzetilmesi durumunda bu uzaklık iki göz arası ortalama mesafe olan 6,35 cm olarak alınmaktadır [27].
2.2.3. Odak uzaklığı
Kameranın odak uzaklığı, objektife gelen ışınların toplandığı nokta ile görüntü sensörü arasındaki uzaklığa denilmektedir. Genel olarak mm cinsinden ifade edilmektedir ve derinlik hesabı yapılırken kullanılan en önemli parametrelerden birisidir.
Şekil 2.7. . Kamera Odak Uzaklığı (f) [27]
2.2.4. Farklılık değeri (disparity)
Alanda bulunan bir P noktasının sağ ve sol resimdeki karşılıkları ul ve ur olmak üzere Şekil 2.5’den de anlaşılacağı gibi farklılık değeri;
d = ul - ur (2.2)
şeklinde hesaplanabilmektedir. Bu işlem bütün noktalar için yapıldığında ise farklılık haritası elde edilmektedir.
Farklılık değeri derinlik ile ters orantılıdır. Bu ikisi arasında lineer olmayan bir ilişki
bulunmaktadır. Büyük farklılık değerleri nesneler kameraya yakın olduğunda, küçük farklılık değerleri de nesneler kameraya uzak olduğunda ortaya çıkmaktadır. Şekil 2.8’de bu durum gösterilmektedir.
Şekil 2.8. Farklılık ve Derinlik İlişkisi [22]
Derinlik çözünürlüğü
Kameralar arası uzaklık (baseline) stereo görüş sisteminde elde edilecek derinlik çözünürlüğüne bağlı olarak değişmektedir.
Şekil 2.9. Derinlik Çözünürlüğü [28]
Şekil 2.9’de kameralar arası uzaklığın farklı olduğu durumlarda elde edilebilecek derinlik çözünürlükleri belirtilmiştir. Çözünürlük derinliği kameralar arası uzaklığın artması ile artmaktadır [28].
2.3. Özellik Çıkarımı
Bir resmin yerel alanlara ya da özniteliklere ayrılması bilgisayarla görüş sistemlerinde yerel görünüm özelliklerin elde edilmesinde karmaşıklığı azaltmak için geniş bir şekilde kullanılmaktadır. Nesne tanıma ve eşleştirme, üç boyutlu nesne modellerinin geri çatılması (3D reconstruction) ve hareket takibi gibi uygulamaların başarısı resimlerdeki kararlı, temsil edebilen özelliklerin varlığına bağlıdır. Ayrıca bu özelliklerin belirlenip tanımlanması işleminin kabul edilebilir bir zamanda ve yüksek doğruluk ile gerçekleştirilmesi çok önemlidir [29].
Bilgisayarla görüş uygulamalarında doğal resimden kararlı özellik noktalarının çıkarılması işlemi karşılaşılan en önemli problemler arasındadır. Bu özellik noktaları daha sonra karşılıklı eşleşme gerektiren, stereo ve nesne tanıma gibi uygulamalarda yaygın bir şekilde kullanılmaktadırlar. Aynı sahnenin farklı bakış açılarından ve yönlerden çekilen resimleri arasında kayda değer farklılıklar bulunabilmesinden dolayı çıkartılacak olan bu özellik noktaları ölçek ve rotasyondan bağımsız olması gerekmektedir. Ayrıca kararlı noktaların çıkarılabilmesi için bu noktaların sahnenin ışık durumuna da bağımlı olmaması gerekmektedir [29].
Bu alanda bu amaç için geliştirilen en popüler algoritma, Lowe tarafından gerçekleştirilen SIFT (Scale Invariant Feature Detection) algoritmasıdır [30] ve başarılı bir şekilde birçok uygulamada kullanılmıştır. SIFT algoritmasının yüksek hesaplama yükü sebebiyle özellikle gerçek zamanlı uygulamalarda ve düşük güçlü mobil cihazlarda kullanılması çok verimli olamamaktadır. Bu durum araştırmacıları aynı performansı daha düşük hesaplama maliyeti ile elde edebilecek algoritmaların bulunabilmesine yönlendirmiştir ve böylece SURF algoritması ortaya çıkmıştır [31].
SURF (Speeded Up Robust Features) SIFT algoritmasının tanıtılmasından kısa bir süre sonra farklı bir özellik çıkarımı ve tanımlayıcısı önerilmiştir. SURF algoritması özellik tanımlamadaki hızlı ayarlanmış Hessian kullanması ve yüksek tanımlama oranı ile SIFT algoritmasına, kabul edilen bir alternatif olarak çıkmıştır [29]. SIFT ve SURF algoritmaları bilgisayarla görü üzerinde çalışan kişilerce doğruluğunun ispatlanmış olmasından dolayı sıklıkla kullanılmaktadırlar [32].
Bir diğer taraftan, FAST (Feature from Accelerated Segment test) özellik çıkarım algoritması [33] ile BRIEF (Binary Robust Independent Elementary Features) özellik tanımlayıcı algoritması [34] üzerinde geliştirilen ORB (Oriented FAST and Rotated BRIEF) algoritması Rublee ve diğerleri tarafından önerilmiştir [35]. ORB algoritması ismini bu iki algoritmadan almıştır. SIFT ve SURF algoritmalarına alternatif olarak tasarlanmıştır. ORB özellik çıkarımı FAST algoritmasının uzantısı, ORB özellik tanımlayıcısı da BRIEF algoritmasının geliştirilmiş halidir [36].
Resimlerden uygun özelliklerin seçilebilmesi iki rekabet eden zorluğun dengelenmesinde yatmaktadır. Bu iki zorluk; yüksek kaliteli çıkarım ve düşük hesaplama gereklilikleridir. Bu amaca hizmet edebilmek için BRISK (Binary Robust Invariant Scalable Keypoints) [31]
adındaki algoritma 2011 yılında önerilmiştir. Anahtar noktaların elde edilip tanımlanabilmesi için önerilmiş bir yöntemdir ve SIFT ile SURF yaklaşımından daha hızlı çalışmaktadır [36].
Özellik çıkarımı ve tanımlayıcı algoritmaları ayrı ayrı iki grupta taoplanabilmektedirler.
Özellik çıkarım algoritmaları Blob Detectors ve Corner Detectors olarak, özellik tanımlayıcılarda binary ve non binary olarak ikiye ayrılabilmektedir [37]. Çizelge 2.1’ de bahsedilen bu algoritmalar gruplandırılmış olarak gösterilmektedir.
Çizelge 2.1. Algoritmaların gruplandırılması
Algoritma
Özellik Çıkarım Özellik Tanımlama
Blob Detectors
Corner Detectors
Binary Descriptors
Non-binary Descriptors
SURF √ √
SIFT √ √
FAST √
BRISK √ √
ORB √ √
Bu bölümde özellik noktalarının seçilip tanımlanabilmesi için kullanılan SIFT, SURF, ORB ve BRISK algoritmaları ayrıntılı bir şekilde anlatılacaktır.
2.3.1. SIFT
SIFT (Scale Invariant Feature Transform) bir resimde ölçeklendirme, döndürme ve aydınlatmaya karşı değişmeyen bölgesel özellikleri belirleyip tanımlayan bir algoritmadır.
SIFT algoritması, takip eden dört adımla tanıma işlemini gerçekleştirmektedir.
Ölçek uzayında uç değer tespiti
Hesaplamanın ilk aşaması anahtar noktaların bulunması ile başlamaktadır. Bunun için, verilen resme farklı ölçeklerde Gaussian süzgeci uygulanmaktadır. Gaussian süzgeci ile bulanık hale gelen bu resimler arasındaki farklar alınmaktadır. Farklı ölçeklerde alınan Gaussian farkının (DoG) ekstremum noktaları bize anahtar noktalarını vermektedir.
Şekil 2.10. Ölçek Uzayında DoG [38]
Anahtar noktanın yerini belirleme
Ölçek uzayındaki ekstremumların buluma yöntemi, aralarında bulunduğu yer konusunda kararsız olunan çok sayıda anahtar nokta sunmaktadır. Algoritmadaki takip eden adım, iyi bir şekilde konumlanamamış ya da düşük zıtlığa sahip noktaları elemine edilmesini sağlamaktadır.
Ölçek
DoG
Doğru pozisyonun bulunabilmesi için komşu veriye interpolasyon yapma
İlk olarak, yerini doğru bir şekilde tespiti edebilmek için her bir anahtar nokta adayına interpolasyon uygulanmaktadır. Bu işlem yapıldıktan sonra belirlenen yeni bölge, anahtar noktanın bulunması gereken yer olarak atanmaktadır. Daha sonra, bu adım herhangi bir değişim olmayana kadar, anahtar nokta adayının ölçeği değiştirilerek tekrarlanmaktadır.
Kenar tepkilerini elimine etme
Aday anahtar noktalar küçük miktardaki parazitlere karşı zayıf olsalar bile DoG fonksiyonu, bu noktaları tespit edebilmektedir. Bu durumun düzeltilmesi için kenara güçlü tepki veren fakat karasız olan anahtar noktalarının elimine edilmesi gerekmektedir. İkinci dereceden Hessian matrisinin Eigen değerleri kullanılarak elimine işlemi yapılmaktadır [38].
Yönelim tespiti
Bu adımda, her bir anahtar noktaya, yerel resimdeki eğim yönüne bakılarak bir ya da daha fazla yönelim atanmaktadır. Gaussian uygulanarak bulanık hale gelmiş bu resimde, anahtar noktaların etrafındaki komşu bölgede yer alan her piksel için, eğimin büyüklüğüne ve yönüne bakılmaktadır. Her bir kutusu 10 derece içeren 36 kutuluk bir histograma bulunan değerler yerleştirilmektedir. Histogramın zirve noktası, aranan yönelimi belirtmektedir [38].
Anahtar nokta tanımlayıcıları
İlk olarak, her biri 8 kutu içeren 4x4 piksel komşuluğunda dönüşüm histogramları oluşturulmaktadır. Anahtar nokta etrafındaki 16x16’lık bir bölgede yer alan, dönüşüm ve büyüklük ile ilgili bilgi veren histogramlar hesaplanmaktadır. Her bir histogram gerçek komşuluk bölgesinin 4x4’lük bir alt bölgesini içermektedir. Her biri 8 kutu içeren, 16(4x4) histogramlar, toplamda 128 adet vektör belirtmiş almaktadırlar. Bu vektörler, anahtar nokta tanımlayıcılarını temsil etmektedirler [38].
Şekil 2.11. a) Büyüklük ve oryantasyonları b) Anahtar nokta [30]
2.3.2. SURF
Bu algoritma ilişkili özellik noktalarını elde etmek için birkaç evreden oluşmaktadır. Tek bir evre takip eden adımları içermektedir [29].
a. Hızlı kutu süzgeci için çok az bir hafıza kullanımı ile Viola ve Jones [39] tarafından tanıtılan Intergral Image oluşturulmaktadır.
b. Hessian tabanlı ölçek uzay piramidi (SURF detektör) oluşturarak aday özellik noktalarının aranmaktadır.
c. Elde edilen aday noktalardan yüksek kontrastlı kararlı noktaların elde edilebilmesi için maksimum olmayan bastırma evresi uygulanarak filtreleme ve azaltma işlemi uygulanmaktadır.
d. Karakteristik yönleri bulunarak her bir özelliğe yöneliminin atanması gerçekleştirilmektedir.
e. Rotasyon bağımsızlığını kazanabilmek için karakteristik yönlere dayalı özellik vektörü (SURF tanımlayıcısı) hesaplaması yapılmaktadır.
f. Işık durumları değişiminden etkilenmemek için özellik vektörü normalize edilmektedir.
Tekbir ölçekte özellik yerleşimi için Laplacian of Gaussians (LoG), SIFT algoritmasında kullanılan Difference of Gaussians (Dog) ve SURF algoritmasında kullanılan determinant of the Hessian özellik belirleyicileri kullanılabilmektedir. Ölçeklemeye karşı dayanıklılığın sağlanabilmesi için Guassian süzgeci çekirdeği farklı sigma değerleri ile kullanılmalıdır.
Ayrıca bu süzgeç farklı ölçekler için farklı olacak şekilde uygulanmalıdır. Süzgeç boyutu büyüdükçe, komşu pikseller arasında küçük farklılıklar olmaktadır. Bundan dolayı hesaplama karmaşıklığı, N farklı ölçekten oluşan, octave olarak atfedilen her bir seviye piramidinde, ölçek uzayı piramidi oluşturularak azaltılabilmektedir. Her bir octave
çözünürlüğü, x ve y yönlerinde bir önceki octave değerinin yarısı kadar olmaktadır [29].
Resimde ve ölçek üzerinde ilgi noktalarının konumlandırılabilmesi için maksimum olmayan bastırma (NMS) 3 * 3 * 3 komşuluğunda, ölçek uzayı piramidine uygulanmaktadır. Hessian matrisinin determinantının uç noktaları Brown ve Lowe tarafından önerilen yöntem [40] ile ölçeğin ve resim uzayının arasına eklenmektedir.
Bir sonraki adım ilgilenilen noktanın etrafındaki dairesel bölgelerdeki bilgi ile tekrar üretilebilir yönelimi düzeltmemeyi içermektedir. Bu amaç için, ilgilenilen noktaların etrafındaki dairesel komşuluk bölgesinde x ve y istikametindeki Haar-wavelet cevapları hesaplanmaktadır. Dairesel bölge ve örnek adımların boyutu, belirlenen özellik noktasındaki ölçekle orantılı olarak belirlenmektedir. Wavelet cevapları hesaplanıp, ilgi noktasındaki Gaussian ağırlıklandırıldığında cevaplar apsis boyunca yatay cevap kuvveti ve ordinat boyunca dikey cevap kuvveti şeklinde uzayda vektör olarak temsil edilmektedirler.
Ardından dominant yönelim 60o’lik açıyı kapsayan kayan yönelim penceresi ile bütün cevapların toplamı hesaplanarak tahmin edilmektedir. Bu pencere ile yatay ve dikey cevaplar toplanmaktadır. En uzun vektör ilgi noktasında yönelimi vermektedir.
Son olarak her bir özellik için bir tanımlayıcı oluşturulmaktadır. Bu adım ilgilenilen noktayı merkez kabul eden bir kare alan inşa edilerek ve bir önceki adımda seçilen yön esas alınıp yönlendirilerek gerçekleştirilmektedir. Bu alan düzenli olarak 4 * 4 kare alt alanlara bölünmektedir. Her bir alt alan için 4 karakteristik değer, 5 * 5 örnek noktalardan hesaplanmaktadır. Bu örnek noktalarda hesaplanan dx ve dy Wavelet cevapları ilgilenilen nokta merkezli Gauusian ve her bir alt alanın toplanması ile ağırlandırılarak özellik vektörü için girdilerin ilk kümesi oluşturulmaktadır. Yoğunluk değişiminin polaritesi hakkında bilgi alınabilmesi için cevapların mutlak değerlerinin │dx│ve │dy│ toplamı çıkarılmaktadır.
Böylece her bir alt alan 4 boyutlu tanımlayıcı vektöre sahip olmaktadır, v = (∑dx, ∑dy,
∑│dx│, ∑│dy│) (64 uzunluklu 4 * 4 alt alanlar için tanımlayıcı vektör). Wavelet cevapları ışıklandırma etkisine karşı dayanıklı hale gelmektedirler. Tanımlayıcıların birim vektörüne çevrilmesi ile yoğunluk değişimine karşı duyarlı hale gelinmesi başarılmaktadır [29].
2.3.3. ORB
ORB algoritması FAST algoritması ve BRIEF algoritmasının hibridi olan bir algoritmadır.
Algoritma FAST algoritmasını kullanarak anahtar noktaları bulur ve BRIEF algoritmasını temel alan bir yöntemle bu anahtar noktalarından öznitelikleri çıkarır. ORB algoritmasının diğer algoritmalara göre en önemli ve etkin yanı resmin farklı yönlerde çevrilmesinden ve resmin gürültülü olmasından etkilenmeyişidir. Ayrıca bilgisayarla görü alanında popüler olan SIFT algoritmasından da iki kat daha hızlı çalışmaktadır [41].
ORB algoritması;
FAST algoritmasına hızlı ve doğru yönelme bileşeni eklemektedir.
Döndürülmüş BRIEF özelliklerinin verimli bir şekilde hesaplamaktadır.
Döndürülmüş BRIEF özelliklerinin değişimini ve ilgileşimini analiz etmektedir [35].
FAST algoritması
FAST algoritması gerçek zamanlı sistemlerde SIFT, HARRIS gibi algoritmaların çok işlemci zamanı aldığı gerçeğini ortaya koyarak, gerçek zamanlı sistemler için geliştirilmiş hızlı bir köşe bulma algoritmasıdır. Bu algoritmanın örnek bir şeması aday noktanın etrafında on altı pikselin dairesine (üç piksel yarıçaplı) dayanmaktadır. Eğer dairedeki on iki devamlı pikselin kümesi eşik değeri ile nokta pikselin yeğinlik değeri toplamından daha aydınlık ya da daha karanlık ise bu nokta köşe olarak sınıflandırılmaktadır. Daha sonra eğitim kümesi üzerinde makine öğrenmesi ile karar ağacı oluşturulmaktadır. Böylece FAST algoritmasının köşe nokta sınıflandırıcısı elde edilmiş olunmaktadır [33].
BRIEF algoritması
Özellik noktalarının yönleri ile birlikte elde edilmesinden sonra, BRIEF tanımlayıcısı tarafından geliştirilen tanımlayıcılar çıkarılmaktadır. İkili kodlama yöntemi ile BRIEF özellik noktalarının etrafında belirleyicileri çıkartmaktadır. Bu belirleyiciler SIFT ve SURF algoritmalarından daha basit ve daha az yer kapsamaktadırlar [34].
Bu yaklaşım yoğunluk farkı testinden elde edilen ilk ikili (binary) resim tanımlayıcısıdır. Bu teste göre, eğer belirli bir yerde bulunan yoğunluk değeri diğer bir belirli yerdeki yoğunluk değerinden büyükse 1 değilse 0 değerini almaktadır. BRIEF tanımlayıcıları önceden tanımlı
parçadaki bir anahtar nokta etrafında yoğunluk farkı testini rastgele seçilen bir numarada (128, 256 veya 512) fakat sabit yerlerde bulunan çiftlere uygulayarak şekillendirmektedir.
BRIEF tanımlayıcıları aydınlanma değişimlerine karşı dayanıklı iken dönme ve ölçeklemeye karşı dayanıklı değildir [42].
ORB, FAST tanımlayıcısını uygulayarak belirgin potansiyel nokta konumlarını resim piramidinde bulmaktadır. Harris köşe hesabına göre bulunan noktaları sıralamakta ve en üst noktalar kümesini belirgin noktalar olarak almaktadır. Noktaların yönleri yoğunluk merkezi kullanılarak hesaplanmaktadır. ORB tanımlayıcısı, BRIEF tanımlayıcısını geliştirmekte ve bağlı ikililerin yoğunluklarını karşılaştırarak ikili dizi vektörünü oluşturmaktadır [35].
ORB algoritmasının akış diyagramı Şekil 2.12‘de gösterilmektedir.
Şekil 2.12. ORB Algoritması Akış Diyagramı
2.3.4. BRISK
BRISK, SURF algoritmasına göre daha iyi performans gösteren ve işlemci zamanı olarak daha az zaman alan bir algoritmadır. Daha hızlı çalışmasını FAST algoritmasında kullanılan anahtar nokta bulma yöntemini uygulaması ve her bir anahtar nokta komşuluğunda bulunan piksel yoğunluklarının karşılaştırılmasında bit dizlerini kullanması sağlamaktadır [31].
Başla
FAST algoritması ile anahtar noktaların
pozisyonunun bulunması
Harris ile en iyi N noktasının
seçilmesi
Ölçek uzayı pramidi
Yoğunluk merkezinde noktalara yön bilgisi eklenmesi
BRIEF kullanılarak BRIEFtanımlayıcıla
rının çıkarılması
Yönlendirilmiş BRIEF elde
edilmesi
Greddy algoritması ile düşük korelasyonlu piksel
bloklarının bulunması
256 bit tanımlayıcının elde edilmesi
Bir resimden anahtar noktaların çıkarımında algoritma aşağıdaki iki adımı uygulamaktadır.
Ölçek uzayı anahtar nokta çıkarımı
İlgili noktalar ölçek uzay ve resim boyunca çıkıntı kıstasları kullanılarak saptanmaktadırlar.
Hesaplamanın verimliliğini artırmak için anahtar noktalar piramidin oktave seviyesinde belirlenmektedir. Her bir anahtar noktanın bulunduğu konumu ve ölçeği sıralı domainde karesel fonksiyon ile elde edilmektedir.
Anahtar nokta tanımlayıcısı
BRIEF algoritmasının aksine, BRISK tanımlayıcıdaki bitleri üretmek için önceden tanımlı örnek desen içermektedir. Bu karşılaştırmalar Şekil 2.13’de görülmektedir, kısa ikililer dairesel desen oluşturmaktadır. Noktaların kısa ikilileri belirlenen eşik değerinin altında uzaklığa sahip olanlar tanımlayıcı olarak kullanılmaktadırlar, uzun ikililer ise daha büyük uzaklığa sahiptirler ve dönüş bilgisi için kullanılmaktadırlar.
BRIEF tanımlayıcısının aksine BRISK dönmeye karşı dayanıklıdır. Bu durum hesaplama karmaşıklığına neden olmaktadır fakat hareket eden nesnelerin daha iyi takip edilmesini sağlamaktadır. Dönme ilk olarak örnek alan için gradyan kullanılarak hesaplanmaktadır. Bu işlem tamamlandığında, örnek noktalar ve karşılaştırmalar bu dönmeye göre geliştirilmektedir. Bunun anlamı, bir nesne döndüğünde, orijinal de olduğu gibi gradyan üretmesidir. Örnekleme gradyan boyunca yapıldığından, dönmüş ya da orijinal anahtar nokta için bit dizisi aynı olmaktadır ve bu durum BRISK algoritmasını dönmeye karşı dayanıklı yapmaktadır [31].
Şekil 2.13. BRISK Örnekleme Deseni [31]
2.4. Stereo Eşleme
Bir sahnenin 3 boyutlu yapısını elde edebilmek için farklı bakış açılarından çekilmiş stereo görüntülerinde, görülen her noktanın uzaydaki koordinatlarının bulunması gerekmektedir.
Bir noktanın 3 boyutlu uzaydaki yerinin tespiti için bir görüntü üzerindeki her bir noktanın diğer görüntü üzerindeki eşinin bulunması gereklidir. Bu açıdan stereo eşleme problemi aslında bir arama problemi olarak düşünülebilmektedir [43].
Stereo eşleme problemi, üç boyutlu bir noktanın farklı görüntü düzlemlerinde karşılık geldiği noktayı bulmaya çalışmaktadır. Eşlenen noktaların konumları arasındaki fark, stereo uzaklık (disparity) değerini vermektedir. Görüntü düzlemindeki her bir nokta farklılıklarını temsil eden bir başka görüntü elde edersek buna da stereo farklılık haritası (disparity map) adı verilmektedir. Stereo farklılık haritasında açık renkli bölgeler yani fark değeri yüksek olan bölgeler kameraya yakın olan bölgeleri, koyu olan bölgeler yani fark değeri düşük olan bölgeler ise kameraya uzak olan bölgeleri temsil etmektedir [43].
Şekil 2.14. Tsukuba Stereo Görüntüleri (a) Sol Kamera Görüntüsü (b) Uzaklık Haritası [43]
Görüntü eşleme algoritmaları alan tabanlı ve özellik tabanlı olmak üzere ikiye ayrılarak sınıflandırılabilmektedir [44].
Özellik tabanlı eşlemelerde resimlerden köşeler, dış hatlar gibi ilgilenilen özellikler bulunarak bunlar farklı resimlerde eşleştirilmektedirler. Eşleştirme işlemi hızlı olmaktadır çünkü özellik olarak sadece küçük sayıda resim pikselleri seçilmektedir. Bu tür eşleşmedeki eksiklik yanlış eşleşmelerin oluşması ve eşleşme noktalarının seyrek olarak dağılmış olmasıdır. Yine de özellik tabanlı eşleme nesne tanıma, robotik haritalama, görüntü birleştirme, işaret tanıma gibi uygulamalarda yaygın bir şekilde kullanılmaktadır [44].
Belirlenen özellik noktalarının eşleştirilmesinde kullanılabilecek yaklaşımlardan birisi FLANN (Fast Library for Approximate Nearest Neighbour Search) [45] tabanlı eşleştirmedir. Bu yaklaşım yüksek boyutlu özellikler ve büyük veri setleri için hızlı en yakın komşu araması için optimize edilmiş algoritmaların birleşmesinden oluşmaktadır. FLANN bulunan özellik noktalarının tanımlayıcılarını girdi olarak almaktadır. Bu kütüphane, sadece veri seti ve kullanıcı tarafından sağlanan seçilmiş hassaslığa göre en yakın komşu araması için otomatik olarak doğru algoritmanın ve parametrelerin seçilmesinde avantaj sağlamaktadır. FLANN ikinci resimde belirlenen özelliklerle ilk resimde belirlenen özellik noktalarının eşlenmesi için uygulanmaktadır ve ters olarak FLANN bu işlemin tersi şeklinde de uygulanmaktadır. Bundan dolayı kalan noktalar iki operasyonda da aynı şekilde eşleşen noktalar olmaktadır [46].
3. BENZER ÇALIŞMALAR
Nesnelerin uzaklıklarının hesaplanması için yöntemler aktif ve pasif olarak ikiye ayrılabilmektedir. Aktif yöntemler hesaplama işlemini nesneye sinyaller göndererek yaparken pasif yöntemler sadece nesnelerin pozisyon bilgisini elde etmek için kullanmaktadırlar [47]. Pasif yöntemler arasında derinlik hesabı için kullanılabilecek en iyi yöntemlerden birisi stereo görüştür[48]. Isobe ve diğerleri tarafından yapılan çalışmada stereo kamera kullanılarak mobil robotlar için insanı takip eden sistemin geliştirilmesi tartışılmıştır. Hedef insan üzerine yerleştirilen renkli alan esas alınarak 3 boyutlu derinlik bilgisini elde etmektedirler [49].
Tek kamera kullanılarak yapılan bir çalışmada mobil telefon kamerası kullanılarak stereo kamera düzeneği oluşturmuşlardır. Telefonun yer değiştirmesi sonucu iki resim çekilmekte ve bu resimler yardımı ile merkezde bulunan nesnenin uzaklık hesabı yapılmaktadır.
Resimlerdeki özellik noktalarını SURF algoritması kullanarak bulmaktadırlar. Deneysel sonuçlara göre iki kamera arasındaki mesafenin artması ile daha yüksek doğrulukta sonuçlar elde etmişlerdir [15].
Ogura ve diğerleri tarafından yapılan çalışmada stereo kamera kullanılarak uzak mesafe hesaplama yöntemi sunulmuştur. Yaptıkları çalışama da gemi ile tesisi arasındaki kontrolü otomatik olarak sağlamaktadırlar. Mesafe hesaplama sisteminin verimliliğini gemi üzerine yerleştirdikleri iki kamerayı kullanıp test etmişlerdir. Yaptıkları deneylerde hedef nesneyi veri tabanlarında bulunan nesnelerle karşılaştırarak bulmaktadırlar. 20 ile 100 metre arasına yerleştirilmiş hedef nesnelerin mesafelerini yüzde bir altında hata ile hesaplamakladırlar [50].
Stereo görüş sistemlerinde nesnelerin iki boyutlu resimlerinden üç boyutlu modellerinin oluşturulabilmesi için sadece dijital kameralar kullanılabilmektedir. Bu şekilde temassız olarak üç boyutta nesnelerin ölçümleri gerçekleştirilebilmektedir. Lazer tarama gibi özel cihazlar üç boyutlu sahnenin oluşturulmasında fazladan bilgiler sunmaktadırlar fakat bu cihazların kullanılması pahalı olabilmektedirler. Comlekciler ve diğerleri ortognatik cerrahi operasyonlar için yapay, temassız ölçüm tabanlı, ölçüm hata oranlarını en aza indirmeyi amaçlayan bir çalışma gerçekleştirmişlerdir. Çalışmada diş cerrahisinde kullanılabilecek
yeni bir yöntem sunmaktadırlar. Yapay zekâ yöntemleri kullanılarak operasyon zamanlarında çene pozisyonlarının belirlenme doğruluğunu artırmayı amaçlamışlardır [51].
Birkaç ayna ve tek kamera kullanılarak stereo kamera sistemini oluşturabilen basit teknikler bazı araştırmacılar tarafından önerilmiştir [52-57]. Nurmu ve Nandi tarafından gerçekleştirilen çalışmada tek kamera kullanılıp nesnenin kamera sistemine olan uzaklığı ile fark haritası çıkarılmaktadır. Önerdikleri sistemde yeterli kadar uzunlukta eğrilik yarıçapı olan iki tümsek ayna kullanmışlardır. Geleneksek stereo kamera sistemine benzer şekilde bu iki ayna yardımı ile aynı sahnenin farklı açılardan resimleri çekilmektedir. Tek kamera kullanılması ölçümleme ve düzeltme işlemlerini kolaylaştırmaktadır. Sistemin yüksek maliyetli stereo kameralarla karşılaştırılabilecek yeterli performans sağladığını, ucuz ve robotik uygulamalarda kullanılabilir olduğunu savunmaktadırlar [17].
Bir diğer yapılan çalışmada iki ilişkili kamera arasındaki uzaklık stereo resim çiftleri ve kamera ölçümleme sonucu elde edilen bilgiler kullanılarak tespit edilmektedir [58].
Boonkwang ve Saiyod tarafından yapılan çalışmada 3 boyutlu stereo tekniği kullanılarak robotlar için uzaklık hesaplaması yapılmaktadır. İki kamera ile odaklanılan nesnenin mesafesi, kameralar ve nesne arasındaki açı ile trigonometrik formüller kullanılarak hesaplanmaktadır. Yapılan deneyeler sonucu elde edilen hata oranının yüzde %10’un altında olduğunu gözlemlemişlerdir [59].
Stereo kamera kullanılarak nesnenin uzaklığını ve boyutunu hesaplayan bir çalışmada ise sabit sahneye ölçümü yapılacak nesne eklenip resimleri çekilmektedir. Çekilen resimlerden sahnenin ilk hali çıkarılarak nesnenin tespiti yapılmaktadırlar. Nesnenin resimlerdeki yer değiştirmesi ve piksel değerlerini kullanarak ölçümleri gerçekleştirmektedirler. Mesafe hesabında ±25cm, boyut hesabında ±3cm hata ile sonuçlar elde etmektedirler [7].
Jian ve arkadaşları tarafından gerçekleştirilen çalışmada elma toplama robotlarının pozisyon belirlemedeki doğruluğunu artırmak amacıyla bir yöntem geliştirilmiştir. Nişanlanan elmalar kullanılarak, işaret tespiti yapılıp elmaların uzamsal pozisyonlarını elde etmektedirler. Görüntüleri iki kamera arası uzaklığı 39.3mm olan Logitech stereo kamera ile almaktadırlar ve öbek eşleme algoritması ile resimleri eşleştirmektedirler. Elde ettikleri sonuçlar 0.63% hata oranı ile elma pozisyonlarını belirlediklerini göstermektedir [60]. Xia ve diğerleri tarafından gerçekleştirilen çalışmada ise stereo görüş tabanlı üç boyutlu yaprak
pozisyonu hesaplama yöntemi önerilmiştir. İki kameralı stereo görüş sistemini yukarı ve aşağı hareket edebilen robot koluna bağlı tek kamera yardımı ile gerçekleştirmişlerdir. Robot kolu yardımı ile hareket eden kameradan elde edilen resimlerde Birchfield's algoritmasını kullanılarak fark haritasını çıkarıp derinlik bilgisine ulaşabilmektedirler. Elde ettikleri kamera koordinat bilgilerini robot koordinat sistemine çevirip yaprakların pozisyonlarına ulaşmaktadırlar [61].
Diğer bir yapılan çalışmada tüm yönlü stereo görüş kullanılarak sürücülere yardımcı bir sistem oluşturulmuştur. Bu sistem sürücülere sürüş sırasında karşılaşabilecekleri beklenmedik durumlar için bilgi vermektedir. Tüm yönlü kamera 360 derece görüş yaptığından araç çevresindeki yol durumlarını kontrol edebilmektedir. Öndeki aracın tespiti için Histogram of oriented gradient (HOG) algoritmasını kullanmaktadırlar. Aracın sağ arka kısmı iki kamera tarafından da tespit edildiğinde uzaklık hesabı işlemini gerçekleştirmektedirler. Yapılan deneyler sonucu 25cm den az bir hata ile uzaklık tespitini gerçekleştirmişleridir [62]. Lai ve arkadaşları tarafında yapılan diğer bir çalışmada ise araba çarpmalarının önüne geçebilmek amacıyla öndeki nesneni belirlenmesini amaçlamaktadırlar. Stereo kameradan alınan resim dizileri kullanılarak statik arka plan çıkarımı ile önde bulunan nesnenin tespiti yapılmaktadır. Tespit ettikleri nesnenin üç boyutlu pozisyonu stereo görüş teknikleri ile yönünü ise bir sonra çekilen resim yardımı ile bulmaktadırlar [63].
Shin ve arkadaşları tarafından yapılan çalışmada mobil stereo kameralar ve uygulamaları için gerçek zamanlı derinlik aralığı algoritması sunulmuştur. Önerdikleri algoritma, farklı eşleme pencere boyutları özellikleri üzerinde basit derinlik birleştirme tekniği kullanarak verimli bir şekilde derinlik gürültülerini kontrol etmektedir. Algoritmanın uygulanması sonucu dinamik derinlik aralığını düşük hesaplama karmaşıklığı ile elde etmişlerdir [64].
Bu çalışma ile tek kameralı mobil bir cihaz kullanılarak stereo görüş sistemi yardımcı bir alete ihtiyaç duyulmadan gerçekleştirilmektedir. Oluşturulan stereo kamera sistemi ile nesnelerin kameraya olan uzaklıkları hesaplanmaktadır. Mobil cihaz ile nesnelerin mesafesi kabul edilebilir bir hızla bulunmaktadır. Çekilen resimlerdeki ilgi noktalarının tespiti ve betimlemesi için kullanılan algoritmalar değiştirilerek uygulama tekrarlanmakta, hız ve doğruluk karşılaştırılması yapılmaktadır.
4. TEK KAMERALI STEREO GÖRÜŞ İLE DERİNLİK HESABININ YAPILMASI
Bu tezde, nesnelerin uzaklıklarını hesaplamaya yardımcı olan stereo görüş sistemi, stereo kamera donanımına sahip olmayan tek kameralı mobil cihaz kullanılarak oluşturulmuştur.
Nesnelerin uzaklığı, aynı sahnenin kameranın yatayda el ile hareket ettirilmesi sonucu çekilen iki resmi kullanılarak hesaplanmaktadır. Kameranın hareket etme mesafesi ve hareket yönü cihaz içerisindeki algılayıcılar sayesinde tespit edilmektedir. İki resimdeki özellik noktalarının çıkarılıp tanımlanması için SURF algoritması kullanılmıştır. SURF’ün kullanılma sebebi bilgisayarla görü üzerinde çalışan kimselerce sıklıkla kullanılıyor olması ve doğruluğunun ispatlanmış olmasıdır [32]. İki resimde de çıkarılıp tanımlanan özellik noktaları eşleştirilmektedir. Yanlış eşlenen noktalar tespit edilip, eleme işlemi gerçekleştirilmektedir. Şekil 4.1’de sistemin gerçekleştirilme adımları anlatılmıştır.
Mesafe hesaplama işleminde Eş. 2.1’de belirtilen formül kullanılmaktadır.
Bu eşitliğin sağlanabilmesi için;
Resimleri çekerken kullanılan kameranın odak uzaklığının (focal length),
İki kamera arası mesafenin (baseline),
Farklılık (disparity) değerinin bilinmesi gerekmektedir.
Hesaplama işlemi bu üç değere bağlı olduğundan, bu değerlerin doğru bir şekilde tespit edilmesi gerekmektedir.
Çalışma gerçekleştirilirken Android işletim sistemine sahip mobil cihaz kullanıldığından, cihazın odak uzaklığı işletim sisteminin sunduğu fonksiyonlar yardımı ile belirlenmektedir.
Sistem gerçekleştirilirken tek kamera kullanıldığından kameralar arası mesafe sabit değil, değişken olmaktadır. Bundan dolayı bu değerin her seferinde yüksek doğrulukla belirlenmesi gerekmektedir. Farklılık değeri iki resimde de aynı yere karşılık gelen noktalar arasındaki farka denilmektedir ve işlemin en önemli parametrelerindendir. Bu değer iki resimden çıkarılan özellik noktaları kullanılarak tespit edilmektedir.
Bu çalışmanın amacı mobil cihazlarda mesafe hesaplama işlemini yüksek doğrulukla ve hızlı bir şeklide gerçekleştirebilmektedir. Bu amaç doğrultusunda, kameranın hareket etme
mesafesi ile farklılık değerinin yüksek doğruluk ile bulunması gerekmektedir. Ayrıca, cihazın algılayıcılarından gelen veriler anlık olduğundan hesaplama işleminde geçen süre farklılık değerinin bulunması ile yani özellik noktalarının tespit edilip eşlenmesi ile doğru orantılı olmaktadır.
İşlemlerin gerçekleştirilmesinde en büyük zorluk algılayıcılardan gelen verilerin yorumlanmasında karşılaşılmıştır. Algılayıcılardan dinlenen değerler çok hassas olduğundan kameranın yataydaki hareket etme mesafesini doğru bir şekilde hesaplayabilmek için cihazın yatayda sabit bir hızla hareket ettirildiği varsayımı yapılmaktadır.
Sistem mobil cihaz üzerinde tasarlandığından ve mobil cihazlar bilgisayarlara göre hesaplama yapma kabiliyeti bakımından daha zayıf olduğundan dolayı hesaplama karmaşıklığının en aza indirilmesi hız açısından çok önemli olmaktadır. İşlemlerin doğruluğu ve hızı özellik noktalarının bulunup tanımlanması ile ilişkili olduğundan, uygulama bölüm 2.3’de değinilen, ilgi noktası tespiti ve betimleyicisi olan, literatürde yaygın olarak kullanılan ORB ve BRISK algoritmaları ile tekrarlanmış, hız ve doğruluk karşılaştırılması yapılmıştır. Ayrıca daha doğru sonuçların alınıp alınamayacağının belirlenmesi için uygulama üç ve dört resim çekilerek tekrarlanmıştır.
Şekil 4.1. Uygulama gerçekleştirme adımları
4.1. Uygulama Yazılımı
Bu bölümde yazılımın gerçekleştirilmesi için kullanılan teknolojiler ve yazılımın
Başla 1. resmi çek
Cihaz içerisindeki ivme ölçer algılayıcısını dinlemeye başla
Cihazı sağa yada sola hareket ettirip
2. resmi çek Algılayıcıyı
dinlemeyi durdur Algılayıcıdan gelen
veri ile cihazın hareket etme mesafesini ve yönünü bul
Resimleri, hareket mesafesini ve yön
bilgisini sakla
İlk çekilen resim üzerinde uzaklığı bulunması istenen
nesneyi seç
Seçilen nesneye göre 1. resimde,
hareket yönü bilgisine göre de 2. resimde kırpma
işlemi uygula
Kırpılan resimlerde özellik noktalarını
çıkar ve tanımla Tanımlanan
özellik noktalarını
eşleştir Eşleşen
noktalardan en iyi eşleşenleri
çıkar
Yanlış eşleşmeleri ele
Kutu grafiği yöntemi ile aykırı noktaları ele
Kalan noktalar üzerine k- ortalamalar algoritmasını
uygulayarak istenilen nesneye ait özellik noktalarını belirle
Noktalar arası fark ve kamera hareket etme mesafesi ile
nesnenin kameraya olan uzaklığını hesapla
gerçekleştirilme adımları açıklanmaktadır.
4.1.1. Kullanılan teknolojiler
Yazılım Android işletim sistemi ile çalışan 3GB RAM’ e sahip, Exynos 5 Octa işlemci ve 1.3 GHz Cortex A7 ile çalışmakta olan mobil cihaz ile geliştirilmiştir. Cihaz 2560 x 1600 (WQXGA) çözünürlüğüne sahiptir.
Bu çalışmada mobil Android uygulama geliştirebilmek için Google tarafından geliştirilen, içerisinde Java Development Kit (JDK), Android Virtual Device (AVD) ve mobil uygulama için gerekli ortam ayarlarının oluşturulduğu Android Studio uygulaması kullanılmıştır [65, 66].
Ayrıca bu tez kapsamında, Intel’in açık kaynaklı görüntü işleme kütüphanesi olan OpenCV (Open Source Computer Vision) kütüphanesinden yararlanılmıştır [67].
OpenCV (Open Computer Vision)
Intel tarafından geliştirilmiş Windows, Linux, Mac OS X, PSP (PlayStation Portable) platformları üzerinde çalışabilen, C diliyle yazılmış, açık kaynak kodlu bir “Bilgisayarla Görme” kütüphanedir. Amacı bir resim ya da video içindeki anlamlı bilgileri çıkarıp işleyebilmektir [68].
Bünyesinde bulundurduğu fonksiyonların birçoğu platformdan bağımsız olarak çalışmaktadır. 2.0 sürümünden sonra, C ara yüzüne ek olarak C++ ara yüzü de eklenmiştir.
OpenCV akademik ve ticari kullanımı ücretsizdir [68].
Şekil 4.2. OpenCV Bileşenleri CV
Görüntü işleme ve Görü Algoritmaları
MLL
İstatistiksek Sınıflayıcı ve Kümeleme Araçları
HighGUI Grafik Algoritmaları
CXCORE
Temel Yapı ve Algoritmalar
OpenCV kütüphanesi, beş temel bileşenden oluşmaktadır [69].
CV (Computer Vision)
Resim işleme ve analizi için güçlü fonksiyonlar içeren bileşen olup, görsel işlemler için gelişmiş algoritmalar içermektedir.
MLL (Machine Learning Library)
Makine öğrenmesi için istatistiksel sınıflayıcı ve kümeleme araçlarını içeren bir bileşendir.
HighGui
Form gibi bileşenleri oluşturmak için grafik arabirimidir. Aynı zamanda resim ve videoları görüntülemek için giriş/çıkış fonksiyonlarım içeren kütüphanedir.
CxCore
OpenCV’de bulunan cvPoint, cvSize, cvMat, cvHistogram gibi veri yapılarını içerisinde bulunduran kütüphanedir.
4.1.2. Yazılım gerçekleştirme adımları
Bu bölümde yazılımın gerçekleştirilmesi adım adım anlatılacaktır.
Odak uzaklığının belirlenmesi
Uygulamada tek seferlik kullanılan cihazın odak uzaklığı bulunmaktadır. Odak uzaklığının bulunmasında android.hardware.camera2.CameraCharacteristics sınıfı kullanılmaktadır.
Bu sınıfta bulunan LENS_INFO_AVAILABLE_FOCAL_LENGTHS alanı ile cihazın odak uzaklığı belirlenmektedir [70].
Resimlerin çekilmesi
Nesnelerin uzaklıklarının belirlenebilmesi için aynı sahnenin cihazın yatayda hareket ettirilmesi ile iki resminin çekilmesi gerekmektedir. Ayrıca iki resim arasında kameranın ne kadar hareket ettirildiğinin de hesaplanması gerekmektedir. Resimlerin çekilme işlemini gerçekleştirebilmek için Android Studio aracılığıyla TakePhotoActivity isminde yeni bir
Activity sınıfı oluşturulmuştur. Bu sınıf ile resimlerin çekilmesi, kaydedilmesi, iki resim arasında algılayıcılar yardımı ile kameranın hareket etme mesafesinin ve yönünün hesaplanması işlemleri gerçekleştirilmektedir.
Bu sınıfta başlangıç değeri 0 olan bir sayaç tutulmaktadır ve resim çekilmeden önce ve sonra sayacın değeri 1 arttırılmaktadır. Kullanıcı tarafından resimler çekilmek istendiğinde ilk olarak bu sayacın değeri kontrol edilmektedir. Eğer sayacın değeri 0 ise ilk resmin, 1 ise ikinci resmin çekileceği anlaşılmaktadır. Sayacın değerine göre çekilecek olan resimlerin adları “FIRST” veya “SECOND” olarak atanmakta ve sayacın değeri bir arttırılmaktadır.
Daha sonra, resmin çekilebilmesi için aşağıda bulunan kod parçası çalıştırılmaktadır. Bu kısım resmin çekilebilmesi için kamerayı açmakta ve f parametresi ile resmin cihazda kaydedilmesi istenen yerin yolunu almaktadır.
startActivityForResult(new Intent(
MediaStore.ACTION_IMAGE_CAPTURE).putExtra(
MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)), Take_Photo);
Kullanıcı tarafından resim çekildikten sonra kod onActivityResult() metodu ile devam etmektedir. Bu metot içerisinde sayacın değeri tekrar kontrol edilmektedir. Eğer sayacın değeri 1 ise ilk resmin çekildiği, 2 ise ikinci resmin çekildiği anlaşılmaktadır. Sayacın değeri 1 ise yer çekiminden bağımsız ivme değerlerini veren Lineer İvmeölçer algılayıcısı dinlenmeye başlanmaktadır. Eğer sayacın değeri 2 ise ikinci resmin de çekildiği anlaşıldığından algılayıcının dinlenmesi bırakılmaktadır.
Bu kısımda iki resmin çekilmesi arasında dinlenilen algılayıcı hakkında kısa bilgi verilmekte ve mesafe hesaplama işleminin nasıl yapıldığı anlatılmaktadır.
Algılayıcılar ve kamera hareket etme mesafesinin hesaplanması
Birçok Android işletim sistemine sahip cihaz algılayıcılar ile donatılmıştır. Bu algılayıcılar hareketi, yönelimi ve çeşitli çevresel durumları ölçmektedirler. Algılayıcılar yüksek duyarlılık ve doğrulukla ham veri sağlama özelliğine sahiptirler. Cihaz hareketinin üç boyutlu monitörlenmesi, pozisyon bilgisi veya cihaz yakınındaki çevresel değişimlerin