Sürücü uykululuğunun gerçek zamanlı görüntü işleme ve makine öğrenmesi teknikleri ile tespitine yönelik  bir sistem tasarımı ve uygulaması
Designing and implementation of driver sleepiness detection system by using real-time image processing and machine learning techniques
Yazar: MUHAMMED OZAN AKI
Danışman: YRD. DOÇ. DR. İLHAN UMUT
Trakya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2017
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology
Dizin: Sayısal görüntü işleme = Digital image processing ; Sürücüler = Drivers ; Yorgunluk = Fatigue

Özet:
Bu tezin amacı, sürücü uykululuğunun görüntü işleme ve makine öğrenmesi
teknikleri ile gerçek zamanlı olarak tespit edilerek sürücünün uyarılmasını sağlayan bir
sistemin tasarlanması ve gerçekleştirilmesidir.
Çalışmada veri tabanı oluşturmak için dört gönüllünün gerçek zamanlı kamera
görüntüsü verileri kullanılmıştır. Kamera görüntüsü 320x240 uzaysal çözünürlüğe
düşürülerek gri ölçeğe dönüştürülmüştür. Sürücünün yüz ve göz görüntüleri Viola-Jones
detektörü yöntemi ile tespit edilerek kırpılmıştır. Görüntüdeki ışık değişimlerini
normalleştirmek için histogram eşitleme yöntemi kullanılmıştır. Görüntülerin
özniteliklerini çıkarmak için sekiz farklı açıda ve beş farklı ölçekte 40 Gabor filtresi
kullanılmıştır. Sınıflandırma performansını arttırmak için korelasyon değerleri
kullanılarak öznitelik seçimi yapılmıştır. Bu işlemler sonucunda dört gönüllüden elde
edilen 1077 resim için 13 özellikten oluşan veri setleri oluşturulmuştur. Oluşturulan veri
setleri ile beş farklı makine öğrenme algoritmasının sınıflandırma performansları
birbiriyle kıyaslanmıştır. Bu kıyaslama sonucunda sınıflandırma doğruluğu ve
sınıflandırma hızı değerlendirilerek J48 karar ağacı algoritması gerçek zamanlı uygulama
için önerilmiştir.
Sürücü uykululuğunun tespiti için kişiye özel verilerle çalışan gerçek zamanlı bir
yazılım geliştirilmiştir. Eğitim ve sınıflandırma olmak üzere iki modülden oluşan bu
yazılımın performansını arttırabilmek için paralel programlama teknikleri kullanılmıştır.
Eğitim modülünde sürücü, açık ve kapalı göz görüntüleri ile veri dosyası
oluşturmaktadır. Sınıflandırma modülünde ise, seçilen veri dosyası ile bir öğrenmeii
modeli oluşturularak canlı video görüntülerinde gözlerin açık ya da kapalı olduğu
sınıflandırılmaktadır.
Gerçek zamanlı çalışmada sürücü uykululuğunun tespiti için, birim zaman
periyodundaki kapalı göz sayısının, periyot zamanına oranı olan PERCLOS (Percentage
of Closure: kapalılık oranı) ve gözlerin kapalı kalma süresi olan CLOSDUR (Closed
duration: kapalılık süresi) büyüklükleri hesaplanmıştır. Bir dakikalık zaman periyodu
içerisinde, PERCLOS değeri 0,15'ten büyükse birinci seviye, 0,3'ten büyükse ikinci
seviye uyarı ile sürücü uyarılmaktadır. Ayrıca gözlerin ardışık olarak iki saniye boyunca
kapalı kaldığı (CLOSDUR  2) tespit edildiğinde, PERCLOS değerine bakılmaksızın
ikinci seviye alarm ile sürücü uyarılmaktadır.
Sonuç olarak bu çalışmada, sürücü uykululuğunun tespiti ve sürücünün uyarılması
amacıyla görüntü işleme teknikleri ve makine öğrenme algoritmaları kullanılarak
geliştirilen yazılımda, görüntü gerçek zamanlı olarak 24 FPS (Frame Per Second:
saniyedeki resim sayısı) hızda işlenerek %90 sınıflandırma başarımı elde edilmiştir.
Uykululuk düzeyi tanımlanan eşik değerlerine ulaştığında sürücü başarıyla uyarılmıştır.

Abstract:
The purpose of this thesis is to design and implement a system that enables driver
sleepiness to be detected in real time by image processing and machine learning
techniques and to warn the driver.
In this study, four volunteers' real time camera images are used for creating data
sets. The camera images are reduced to 320x240 spatial resolution and converted to gray
scale. The face and eye images of driver are detected using Viola-Jones detector and then
cropped. The histogram equalization is used for normalizing light changes in the images.
Forty Gabor filters were used at eight different angles and five different scales to extract
the features of the images. In order to improve the classification performance, the feature
selection was made using correlation values. As a result of these operations, data sets
consisting of 13 features were created for 1077 images obtained from four volunteers.
These data sets are used for comparing classification performances of five machine
learning algorithm. J48 decision tree algorithm is proposed for real time application by
evaluating classification accuracy and classification time.
A real time application has been developed that allows working with personal data
for detecting driver sleepiness. Parallel programming techniques have been used to
improve the performance of this software, which consists of two modules, training and
classification.
In the training module, driver creates own data file by its open and closed eye
images. In the classification module, a learning model is created with the selected data
file to classify whether the eyes are open or closed in live video images.iv
In order to detect driver sleepiness in real time operation, the number of closed eyes
per time period is calculated as PERCLOS (Percentage of Closure) and CLOSDUR
(Closed Duration), which is the period of closed eyes. Within one minute time period if
the PERCLOS value is greater than 0.15, the driver is warned by first level warning. If
the PERCLOS value is greater than 0.3, the driver is warned by the second level warning.
Also, when the eyes are closed for two seconds (CLOSDUR  2) consecutively, the driver
is warned by the second level alarm regardless of the PERCLOS value.
As result of this study, 24 FPS (Frame Per Second) real time image processing
speed and 90% classification accuracy has been obtained by developed application using
image processing and machine learning techniques for detecting driver sleepiness and
then warning driver. Driver was successfully warned when sleepiness level is reached the
defined threshold values.