Fast face detection and recognition on graphics processing units
Grafik işlemciler üzerinde hızlı yüz saptama ve tanıma
- Tez No: 315266
- Danışmanlar: PROF. DR. MUHİTTİN GÖKMEN
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2012
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: 79
Özet
Gerçek zamanda yüz saptama ve tanıma, son yıllarda üzerinde en çok çalışılan konular arasındadır. Konulara karşı olan bu ilginin sebebi gerek ticari alanda, gerek ticari olmayan alandaki uygulamalarının fazlalığıdır. Sanal gerçeklik, trafik-yol gözlem ve güvenlik, görüntülü konferans, robotik ve eğlence sistemleri gibi bir çok uygulama da belli bir bölümlerinde yüz saptama ve/veya saptama algoritmalarından yararlanmaktadır. Bu örnek uygulamlardan büyük çoğunluğunun sabit bir resimden çok, hareketli bir video görüntüsü üzerinde gerçek zamanlı olarak çalışması gerekmektedir. Bu da söz konusu olan bu algoritmalar için hızın da en az başarım kadar önemli olduğu anlamına gelmektedir.Son yıllarda araştırmacılar, uygulama geliştiricilerinin gerçek hayattaki bir problemi çözmek amacıyla kullanabilmeleri için daha hızlı ve daha yüksek başarımlı yüz saptama ve tanıma algoritmaları geliştirmişlerdir. Bu algoritmalar her ne kadar hızlılarsa da, bazı durumlarda gerçek zamanlı çalışamamaktadırlar. Örneğin yüz saptama algoritmaları günümüzde ucuzlaşan hızlı donanım fiyatlarının da etkisiyle kullanımı sıradan bilgisayar kullanıcıları arasında bile fazlasıyla yaygınlaşmış olan 1280x720 ve 1920x1080 gibi yüksek çözünürlüklerde ancak çok hızlı bir işlemcinin tüm işlem hesaplama gücü bu işlem için ayrılırsa gerçek zamanlı olarak çalışabilmektedir. Eğer birden fazla algoritmanın bir arada kullanılmasını gerektiren, örneğin yüz saptamaya ek olarak yüzdeki nitelikleri saptama, hizalama ve yüz tanıma gibi birden fazla algoritmayı içeren bir sistem söz konusu olduğunda, işlemcinin tüm hesaplama gücünün yüz saptama işlemi için ayrılması söz konusu değildir. Böyle durumlarda gerçek zamanlı çalışma elde edebilmek için ya başarımdan feragat edilmesi, ya da sistemin genelleştirilme kabiliyetini kısıtlayacak uygulamaya yönelik ip uçlarının kullanılması gerekmektedir. Yüz tanıma algoritmaları için en büyük problem ise veritabanındaki kişi sayısıdır. Günümüzde kullanılan bazı yüz tanıma algoritmaları her ne kadar az sayıda kişi içerden veri tabanlarında gerçek zamanda çalışabileseler de, gerçek hayattaki uygulamaların bazılarının gerektirdiği çok sayıda kişi içeren büyük veritabanları üzerinde gerçek zamanlı olarak çalışamamaktadırlar.Yüz saptama ve tanıma algoritmaları için hız, sadece canlı görüntüler ya da videolar üzerinde gerçek-zamanlı çalışması gereken sistemler için değil, sabit görüntüler üzerinde çalışan uygulamalar için de sorun olabilmektedir. Örneğin çok sayıda yüksek çözünürlüklü görüntünün işlenmesini gerektiren bir uygulamada, işlemin saatler, hatta günler sürmesi bile söz konusudur. Böyle durumlarda algoritmaların hızlarının olabildiğince yüksek olması, uygulamanın pratikte kullanılabilirliği açısından çok büyük önem taşımaktadır. Bugüne kadar yüz saptama ve tanıma algoritmalarını hızlandırabilmek için önemli miktarda çaba sarfedilmiş olsa da, algoritmik değişikliklerin tek başına önemli miktarda hızlanmayı sağlayabilmek için yeterli olmadığı görülmüştür.Yüz saptama ve tanıma algoritmalarını hızlandırmak için başka bir yöntem de algoritmaların yapısını değiştirerek paralelleştirmektir. Bu, varsa çekirdekleri/çoklu iplik desteği kullanılarak bir MİB (Merkezi işlem birimi) üzerinde yapılabileceği gibi, mevcut olan GAGİB (Grafik işlem birimleri üzerinde genel amaçlı işlem) platformları yardımıyla bir GİB (Grafik işlem birimi) üzerinde yapılabilir.Günümüzde işlem yükü fazla olan bir çok uygulama, çok çekirdekli MİB'ler üzerinde tüm çekirdekleri birden kullanacak şekilde yazılmaktadır. Ancak MİB ile birlikte GİB kullanan uygulamaların sayısı ise çok azdır. Bunun sebebi MİB üzerinde, çok iplikli uygulama geliştirmenin, GİB üzerinde uygulama geliştirmeye kıyasla çok daha kolay olmasıdır. Her ne kadar bir algoritmanın paralelleştirilmiş halini MİB üzerinde geliştirmek çok daha kolay olsa da, daha fazla çaba harcayıp algoritmayı GİB üzerinde çalışacak şekilde yazmanın harcanan fazladan vakti fazlasıyla karşılayacak kadar avantajı vardır.Bir GİB'in en önemli özelliği aynı anda yüzlerce ipliği paralel olarak çalıştırabilmesi ve MİB'nin aksine tüm zamanlama işlemlerini donanımsal olarak yapmasıdır. Bu özelliği bir GİB içerisinde iplik yaratma, silme, başlatma ve durdurma gibi işlemlerin görmezden gelinebilecek kadar kısa sürelerde yapılabilmesini sağlamaktadır. GİB mimarisi bilgisayarla grafik işlemleri yapmak üzere tasarlanmıştır ve bu yüzden kayar noktalı sayılarla işlem performansı çok yüksektir. Modern bir GİB, örneğin bir GTX 580, 1581 GFLOPS gibi yüksek işlem hızlarına ulaşabilmektedir. Bu işlem kapasitesi, her yeni nesilde önemli miktarda yükselmektedir. Bunlara ek olarak, görüntüler üzerinde lineer interpolasyon ve adres sınırlama gibi bazı işlemleri yapabilmek için adanmış donanımlara sahip olmaları, görüntü yeniden boyutlandırma gibi işlemlerle bazı ikili işlemleri çok hızlı bir şekilde yapabilmelerini sağlamaktadır.Bu özellikleri GİB'leri işlem yükü ağır olan görüntü işleme, bilgisayarla görü ve örüntü tanıma algoritmaları için çok uygun hale getirmektedir. Ayrıca matematiksel işlem ağırlıklı, paralelleştirilebilir olan işlemleri GİB'e yüklemek, MİB'i diğer, daha az matematiksel, daha çok mantıksal işlem ve bellek erişimi gerektiren, seri olarak yapılması gereken işlemler için kullanmaya olanak vermektedir. Bu şekilde hem MİB hem de GİB'e kendilerine en uygun olan tipte işlemlerin yaptırılmasıyla, bilgisayar içerisinde bulunmakta olan donanımlar daha verimli şekilde kullanılmakta ve çok büyük performans artışları elde edilmektedir. Modern GİB'lerin de günümüzde çoğu bilgisayarda bulunduğu göz önüne alınırsa, bu yöntemle MİB'lerde çalışması çok uzun süren bazı uygulamalar sıradan kullanıcılar için de bilgisayardaki tüm işlem gücünün kullanılması sayesinde kullanılabilir hale gelmektedir.Bu tezin amacı iki farklı algoritmanın verimli ve yoğun bir şekilde paralelleştirerek bir GİB mimarisi üzerinde çalışacak şekilde nasıl gerçeklenebileceğini göstermektir. Ele alınan algoritmalardan ilki MCT (Değiştirilmiş Census Dönüşümü) temelli zayıf sınıflandırıcılar kullanan iteleme temelli bir yüz saptama algoritmasıdır. Diğeri ise bölgesel YİD (Yerel İkili Desenler) niteliklerinin ağırlıklandırılmış histogramlarını kullanan nitelik temelli bir yüz tanıma algoritmasıdır. Her iki algoritmanın da tüm adımları bir GİB'in mimarisine ve bu mimarinin dayattığı kurallara uygun şekilde paralleleştirilmiş ve NVIDIA tarafından geliştirilmiş olan CUDA (Compute Unified Device Architecture) platformu kullanılarak GİB üzerinde gerçeklenmiştir. Parallelleştirme için alternatif yöntemler üzerinde de durulmuş ve bu yöntemlerdeki problemlerden bahsedilmiştir. Gerçeklenmiş olan uygulamalar daha da geliştirilmiş ve sistem üzerinde birden fazla GİB kullanacak hale getirilmiştir.Karşılaştırma amacıyla algoritmaların tek ve çok iplikli halleri MİB üzerinde de gerçeklenmiş ve elde edilen sonuçlar ilgili GİB sonuçlarıyla hem başarım hem de hız açısından karşılaştırılmıştır. Yapılan bu karşılaştırmalar, algoritmaların GİB üzerinde çalışan sürümlerinin, MİB üzerinde çalışan sürümleriyle aynı sonuçları ürettiklerini ancak çok daha hızlı olduklarını göstermiştir. Bu da söz konusu olan algoritmalar için GİB kullanmanın MİB kullanmaktan daha mantıklı olduğunu kanıtlar niteliktedir.Yüz saptama algoritması için karşılaştırmalar hem 5 farklı çözünürlükteki video görüntüleri üzerinde, hem de CMU+MIT önden yüz saptama test veritabanındaki sabit resimler üzerinde yapılmıştır. Yüz tanıma algoritmasının MİB ve GİB versiyonları arasındaki karşılaştırma da farklı nitelik vektörü uzunlukları ve veritabanı boyutları için“CSU Face Identification Evaluation System”tarafından FERET veritabanındaki resimlerden oluşturulmuş olan görüntüler üzerinde yapılmıştır. GİB ve MİB arasındaki hız farkının, çözünürlük yükseldikçe, nitelik vektörleri uzadıkça ve veritabanı büyüdükçe arttığı gözlemlenmiştir. Diğer bir deyişle, GİB kullanmanın avantajının işlenen veri miktarı büyüdükçe daha belirginleştiği görülmüştür. GİB'lerin aynı anda çok büyük miktarda veri üzerinde aynı işlemi yapmak üzere tasarlanmış donanımlar olduğu göz önüne alındığında, bu zaten beklenen bir sonuçtur.
Özet (Çeviri)
Real-time face detection and recognition have been very active topics of research in the last decade. The main reason of this interest on these subjects is the number of their possible real-world applications both in commercial and non-commercial systems. Most of the complicated real-world applications like virtual reality, traffic and urban surveillance, video conferencing, robotics and entertainment systems make use of these algorithms at some point. Nearly all of these applications require the system to be able to run on real-time video streams. Therefore for these kind of applications, the speed of the algorithms used in the system is as important as the accuracy.In the last decade, researchers have found faster and better face detection and recognition algorithms suitable for real-world applications. Even though these algorithms are fast, they are still not fast enough to run in real time in some cases. For example, even the fastest face detection algorithms developed to date are not fast enough to run in real-time on video streams having a high resolution as 1280x720 or above, which have become increasingly common, unless all processing power is dedicated for that task. For a system involving additional algorithms, like facial feature detection, face alignment and face recognition, it is not possible to dedicate all processing power to the face detection task. Therefore, in order to make these algorithms run on such high resolution video streams in real-time, one has to either sacrifice accuracy or use very application specific cues to limit the processing required, which will in turn limit the generalization ability of the system in question. While the same problem exists for the face recognition algorithms, the main problem for them is the number of people in the database and not the resolution. Even though some face recognition algorithms can run in real-time on relatively small database sizes, they are not able to do so on larger databases required by some real-world applications. Speed is a problem not only for applications that process video streams, but also for the ones that process still images. If the number of images that need to be processed is very high, the time needed to complete the processing can quickly become impractical, regardless of the resolution of images.Considerable amount of effort has been made to speed up core face detection and recognition algorithms by eliminating or modifying some of their steps, but algorithmic modifications by themselves are proven to be insufficient to achieve the drastic speed improvements required.Another approach to accelerate face detection and recognition algorithms is modifying their structure and developing parallelized versions of them. This can be done either on a CPU (Central Processing Unit) by taking advantage of its multiple cores and/or hyper-threading capability if exists, or on a GPU (Graphics Processing Unit) by using one of the GPGPU (General-Purpose Computing on Graphics Processing Units) frameworks available. Even though it is much easier to develop the parallelized version of an algorithm on a CPU, putting more effort in development and implementing it on a GPU has very important advantages that make up for the additional effort required.The most important property of a GPU is its ability to execute hundreds of threads concurrently and perform all the scheduling purely on hardware, in contrast to the CPUs that require software scheduling. GPU hardware is optimized for performing computer graphics computations and have excellent floating point performance. A modern GPU, for example a GTX 580, can reach very high computing rates up to 1581 GFLOPS. These properties make GPUs very suitable for demanding image processing, computer vision and pattern recognition algorithms. Also by offloading some compute intensive, parallelizable tasks to GPU, it becomes possible to use the CPU cores for other non-parallelizable tasks that involve less computation and more logic, leading to much more efficient usage of the hardware that already exist in a computer and hence to drastic speed improvements. This approach, which is called heterogeneous computing, is not only a very cost-effective way to implement computationally demanding high-performance algorithms, but also the best way to make these algorithms accessible to common users.The purpose of this thesis is to present efficient, massively parallel GPU implementations of two different algorithms: A boosting based face detection algorithm that utilizes MCT (Modified Census Transform) based weak classifiers, and a feature based face recognition algorithm that uses weighted regional histograms of LBPs (Local Binary Patterns) as features. All steps of these algorithms are parallelized in a GPU firendly manner and efficient GPU implementations of them are given using the CUDA (Compute Unified Device Architecture) platform of NVIDIA. Some alternative methods for parallelization on the GPU and the problems with them are also discussed. The GPU implementations are further extended to utilize multiple GPUs.For the sake of comparison, single and multi-threaded CPU implementations of the same algorithms are developed and compared with their corresponding GPU implementations both in terms of speed and accuracy. These comparisons showed that the GPU implementations, while generating the exact same results, run much faster than the CPU implementations, proving that a GPU is more suitable for executing these algorithms than a CPU.For the face detection algorithm, comparisons are made both on video streams having 5 different input resolutions and on still images from the MIT+CMU frontal face detection test set. The implementations of the face recognition algorithm are compared for different feature vector lengths and database sizes using the images from the FERET database generated by the CSU Face Identification Evaluation System. It is observed that the difference between the speed of the GPU and CPU implementations increases as the resolution gets higher, feature vectors get longer or database size gets larger. In other words, the advantage of using GPUs became more apparent as the amount of data processed by the application got larger.
Benzer Tezler
- Face detection and recognition system using principal component analysis
Temel bileşen analizi kullanarak yüz algılama ve tanınma sistemi
SHERWAN ABDULSATAR ABDULLAH ABDULLAH
Yüksek Lisans
İngilizce
2017
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFırat ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. BURHAN ERGEN
- Görüntü işleme teknikleri ile 3 boyutlu yüz tanıma
3D face recognition with image processing techniques
HATİCE DURMUŞ
Yüksek Lisans
Türkçe
2019
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolMaltepe ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ ERDAL GÜVENOĞLU
- Scale and pose invariant real-time face detection and tracking
Ölçekten ve pozdan bağımsız gerçek zamanlı yüz bulma ve izleme
MEHMET ŞERİF BAYHAN
Yüksek Lisans
İngilizce
2008
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. MUHİTTİN GÖKMEN
- Destek vektör makinelerini kullanarak yüz bulma
Face detection using support vector machines
FATİH KARAGÜLLE
Yüksek Lisans
Türkçe
2008
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolTrakya ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. REMBİYE KANDEMİR
- Design and implementation of real-time eye detection and tracking system based on gpu
Grafik işleme ünitesi tabanlı gerçek zamanlı göz bulma ve takip sistemi'nin tasarlanması ve uygulanması
ALİ ACIOĞLU
Yüksek Lisans
İngilizce
2016
Elektrik ve Elektronik MühendisliğiGaziantep ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
PROF. DR. ERGUN ERÇELEBİ