Gömülü grafik işlemcileri için opencl tabanlı  
görüntü işleme kütüphanesi ve insan yüzü tespit  
etme uygulaması
Opencl based image processing library for embedded  
gpgpus and a sample face detection application
Yazar: OSMAN SEÇKİN ŞİMŞEK
Danışman: DOÇ. DR. OĞUZ ERGİN
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2014
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Grafik işlemciler genel amaçlı işlemler için kullanılmaya başladığından beri, 
kullanım yaygınlığı artmıştır. Yalnızca 3 boyutlu grafik oluşturmak, hareket ettirmek 
ve simüle etmek için kullanılan grafik işlemciler artık veri paralelliğinin olduğu her 
alanda kullanılabilmektedir. İçerdiği yüzlerce çekirdek sayesinde, aynı anda normal 
bir işlemcinin ulaşamadığı kadar iş parçacığını çalıştırabilecek kapasiteye sahip 
olmuştur. Veri paralel uygulama alanları arasında en başta görüntü işleme 
uygulamaları, matris ve vektör içerikli lineer cebir uygulamaları, akışkanlar 
mekaniği, biyoinformatik gibi alanlar gelmektedir. Bu alanlardaki uygulamaların 
hızlandırılması için grafik işlemcilerin kullanımı halihazırda söz konusudur.
Gelişen ve küçülen teknoloji sayesinde, bahsi geçen grafik işlemciler mobil 
platformlara uyumlu hale gelmiş ve cep telefonu, tablet bilgisayar başta olmak üzere 
gömülü birçok sistemde kullanılmaya başlanmıştır. Bu çalışmada, gömülü 
sistemlerde kullanılmak üzere bir görüntü işleme kütüphanesi geliştirilmiş ve gömülü 
platformlar için üretilen grafik işlemcisi için eniyilemesi yapılmıştır. Geliştirilen 
kütüphane, görüntü işleme konularında standart haline gelmiş OpenCV (Open 
Computer Vision) kütüphanesi ile karşılaştırılmıştır. Günlük hayatta sıkça kullanılan 
bir görüntü işleme uygulaması olan "İnsan Yüzü Tespit Etme" uygulamasının 
geliştirilen kütüphane kullanılarak gerçeklenmesi ve başarım sonuçları da bu 
çalışmanın kapsamındadır.
Anahtar Kelimeler: Genel Amaçlı Grafik İşlemciler, Gömülü Yazılım Geliştirme, 
Görüntü İşleme, Başarım Eniyilemesi, Paralel İşleme

Abstract:
Since graphic processing units (GPUs) can be used for general purpose calculations, 
its spectrum of use increased. Not only GPUs can be used rendering, moving and 
simulating 3 dimensional graphics, but also can be used where data parallelism 
applies. GPUs include hundreds of cores, which enables them to process hundreds of 
threads simultaneously that standart processors can not achieve. Data parallel 
applications include image processing, linear algebra applications, fluid dynamics, 
bioinformatics and such. GPUs are used in these fields in order to accelerate 
common algorithms and applications.
With emerging and downscaling new technologies, these GPUs can be used in 
mobile phone, tablets and various embedded systems. In this work, an image 
processing library has been developed and optimized for embedded GPGPU 
platforms. The library have been compared to the standardized library, OpenCV. An 
application of "Human Face Detection" which is widely used and its performance 
results are also the content of this work.
Key Words: GPGPU, Embedded Software, Image Processing, Performance 
Optimization, Parallel Processing