Bu projenin amacı ses işleme ve görüntü işleme ile 90 dakikalık bir futbol maçının otomatik olarak özetini çıkarmak olmuştur. Projenin arayüzünde maç videosu seçme ve özeti kaydetme yeri seçilir ve onayla butonuna basılır. Görüntü işleme verisinin oyuncuları tespit edip etmediği kontrol edilir ve Q tuşuna basılır.
Opencv, moviepy, tkinter, numpy
Proje başlangıcında yapılan araştırmalar sonucunda en sağlıklı dilin Python olabileceğine karar verildi. Python dili kullanılacağı için yine araştırmalar sonucunda Anaconda Navigator ve onunla birlikte gelen Spyder idesi yüklendi. Python’un istediğimiz sürümünü Spyder’da kullanmak için Anaconda Prompt’dan conda create komutu ile istenilen sürüm yüklenir. Daha sonra o sürüm aktif edilerek istenilen kütüphaneler o sürüme pip install komutu ile yüklenmiştir.
En çok kullanılan kütüphane OpenCV olmuştur. Görüntü işleme alanında çok önemli bir yere sahip olan bu kütüphanedeki yöntemler sayesinde oyuncu tespiti ve takım tahmini yapılmıştır. OpenCV dışında kullanılan bir diğer kütüphane ise utils ve numpy olmuştur. Projede araştırma süreci boyunca Keras, Tensorflow gibi kütüphaneler de kullanılmıştır. Bunlar dışında Faster-r-cnn sınıfı kullanılarak da human detection denenmiştir. Projede kullanılan diğer görüntü işleme teknikleri ise Haar Cascade ve Histogram of Oriented Gradients olmuştur.
Oyuncuları tespit etme ve takımlara ayırma konusunda sıkıntılar yaşanmıştır. İlk başta oyuncu tespit etmek için human detection(insan tespit etme) farklı yöntemlerle denenmiştir. İlk denenen yöntem Histogram of Oriented Gradients olmuştur. Bu yöntem uygulandıktan sonra yöntemin maç videosundaki birçok oyuncuyu kaçırdığı gözlenmiştir. Bu yöntemden sonra faster-rcnn ve diğer coco veri kümeleri uygulanmıştır. Bu yöntemle de istenen sonuç alınamamıştır. Bu yöntemler hızlı akan maç videolarında oyuncuların bazılarını tespit etse de bazı oyuncuları kaçırmamaktadır. Oyuncuları tespit etme konusunda en iyi sonucu ve OpenCV ve YOLO vermiştir. OpenCV’de HSV renk uzayı dönüşümü ve kapanım işlemlerinden sonra elde edilen sonuç yüksek oranda doğru olmuştur. YOLO yönteminde ise önceden eğitilmiş yolo.weight dosyası maç videolarına doğru bir şekilde uygulandığında gayet başarılı bir sonuç vermiştir. YOLO, diğer yöntemlere göre daha hızlı bir algoritmaya sahip olduğu için maç videolarında oyuncuları ve futbol topunu daha iyi bir şekilde yakalamıştır.
İkinci yaşanılan en büyük problem ise takım ayrımı olmuştur. Bunun için yine farklı yöntemler denenmiş ve en başarılı sonucu OpenCV’de renk ayrımı yaparak olduğu gözlenmiştir. Ayrıca Haar Cascade ile futbol kalesinin tespiti yapılmaya çalışılmış ama başarılı sonuç alınamamıştır. Kale yerine kaleci tespit edilmiştir. Onda da kaleci forma rengine ayrım yapıldığı için bazı durumlarda hakemin rengi ile karışabilmektedir. Son yaşanan problem ise text detection(metin tespiti) yapılırken saha içindeki reklam tabelalarında da metin olduğu zaman algoritmanın onu da tespit etmesi ve sonucun karışması olmuştur.
Projenin araştırma teknikleri dersi dışında devam etmesi ve üstüne katılması durumunda daha başarılı sonuçlar alınabileceği bu bitirme tezi doğrultusunda gözlenmiştir. Birçok verinin ortak paydada birleşmesi ve bir sonuç doğrultusunda ortaya başarılı bir özet çıkması muhtemeldir. Ancak bu projenin tek kişi ilerlemesi oldukça zaman ve emek isteyen bir durumdur. Daha iyi sonuç alınabilmesi için projeye makine öğrenmesinin girmesi gerekmektedir. Ses verisi, görüntü işleme verisi –bunlar object tracking(oyuncu ve top takibi), yazı ve sayı tespiti ve buna benzer veriler- ve diğer verilerin sonuçları eşleştirilmelidir. Makine öğrenmesinin de buna büyük yardımı dokunacaktır. Birçok maç verisinin sisteme verilmesi durumunda uzun bir eğitim süresi sonunda makine bu durumu öğrenebilir ve bu verilere ek olarak makine öğrenmesi verisi de buna dâhil edilebilir. Bu durumlar söz konusu olduğunda projenin geliştirilmesi sonucunda geleceğinin açık olduğu söylenebilir.
Kullanılan dil, kütüphaneler ve yöntemler doğrultusunda en iyi ve sağlıklı sonucu veren oyuncu yakalama yönteminin YOLO ve OpenCV HSV renk uzayı dönüşümleri olduğu saptanmıştır. Projenin ilk aşamasında saha çizgileri saptanmaya çalışılmıştır. Line detector ile eğitilmiş veriler maç videolarında kullanılmıştır. Amaç, saha çizgilerinin kesiştiği(Korner çizgisi) yerleri saptamak ve kamera açısını saptamak olmuştur. Bu, kamera açısının kaleye dönük olduğunu gösterir ve muhtemelen bir takım atağa hazırlanıyor olarak yorumlanabilir bu da önemli bir pozisyonu doğurabilir. Ardından projede oyuncu tespiti ve takım ayrımı yapılmaya çalışılmıştır. Birçok yöntem test edilmiş ve bu yöntemlerin çalışma mantığı öğrenilmiştir. Projenin ilerleyen kısımlarında ise text detection(metin yakalama) üzerinde çalışılmıştır ve maç videolarında skor tabelası tespit edilmiştir.
Gelişim kısmında Python programlama dili öğrenilmiş, görüntü işleme yöntemleri ve algoritmaların çalışma mantığının nasıl olduğu anlaşılmıştır. Bu proje doğrultusunda görüntü işleme üzerinde birçok araştırma yapılmıştır ve bunlarla yeni bilgiler edinilmiştir. Problemlere karşı çözümler üretilmiş ve tecrübe kazanılmıştır. Projenin en son geldiği noktada ise ses verisi ve görüntü işleme verisi ortak bir paydada tutulmaya çalışılmış ve başarılı bir özet çıkarılmaya yaklaşılmıştır. (Bazı önemli pozisyonları ve goller özete eklenemiyor.) Bu durumun sebebi maçtan maça değişmektedir çünkü her maçın ses verisi ve görüntü işleme verisi –forma renkleri, yayıncı kuruluş logosu ve görüntü kalitesi- değişmektedir. Projenin geleceği başlığında da değinildiği üzere tam başarılı sonuç için daha birçok yerden veri alınması ve makine öğrenmesinin ekstra olarak belki derin öğrenme kütüphanelerinin de projeye dâhil edilmesi gerekmektedir.