Python ile Çizgi Film Karakteri Tanıma Projesi

Python ile Çizgi Film Karakteri Tanıma Projesi

Python ile hazırlanmış bu proje sayesinde, çizgi film karakterlerini tanımak artık çok kolay! Resimleri analiz ederek karakterleri sınıflandıran Python'u öğrenmek için hemen projemizi inceleyin

Python ile Çizgi Film Karakteri Tanıma Projesi

Çizgi filmler, senaryoları ve karakterleriyle hepimizin küçük yaşlardan itibaren vazgeçilmezleri arasında yer almaktadır. Peki ya bir çizgi film karakterini yapay zeka sayesinde tanımlayabileceğimizi söylesek? Bu mümkün ve Python ile gerçekleştirebiliriz. Bu makalede, Python kullanarak bir çizgi film karakteri tanıma projesi yapmak için gerekli adımları anlatacağız.

Öncelikle yapay zeka ve makine öğrenmesi sayesinde resim tanıma üzerine çalışmalar yürütülmektedir. Bu çalışmaların sonunda birçok uygulama, fotoğraf tanıma, yüz tanıma ve nesne tanıma gibi birçok alanda kullanılabilecek hale gelmektedir. Biz de bu alanda bir adım atıp, Python kullanarak bir çizgi film karakteri tanıma projesi gerçekleştireceğiz.


Keras ve Tensorflow ile İdeal Öğrenme Modeli Oluşturma

Çizgi film karakterlerini tanımak için, bir makine öğrenimi modeli oluşturmak önemlidir. Keras ve TensorFlow gibi kütüphaneler, makine öğreniminde en sık kullanılan araçlardan biridir. İdeal bir öğrenme modeli oluşturmak için birkaç adım vardır:

  • Veri toplama: Önce, çizgi film karakterlerinin bir veri seti oluşturulmalıdır. Bu veri seti, ayrık görüntüler halinde olmalıdır, yani aynı karakteri gösteren farklı görüntüler farklı etiketlerle işaretlenmelidir.
  • Veri ön işleme: Görüntüler, modelin görüntüleri daha kolay işlemesini sağlamak için grileştirilmeli ve boyutlandırılmalıdır.
  • Model oluşturma: Önceden eğitilmiş bir model kullanmak veya kendi modelinizi oluşturmak için Keras ve TensorFlow'u kullanabilirsiniz. Birçok makine öğrenmesi modeli, görüntü tanıma problemleri için kullanım için uygundur. Mimariler, sinir ağları, optimizasyon fonksiyonları vb. Ayarlanabilir.
  • Sonuçların değerlendirilmesi: Modelin doğruluğunu ve başarısını test etmek için, ayrı bir test veri seti ile çalıştırabilirsiniz. Bu veri setindeki görüntüler, modelin daha önce hiç görmediği yeni görüntüler olmalıdır.

Bunlar, çizgi film karakterleri tanımak için ideal bir öğrenme modeli oluşturmak için başlangıç adımlarıdır. Keras ve TensorFlow, çizgi film karakterlerini tanımak için iyi bir seçimdir ve bu adımları izleyerek, çizgi film karakterleri tanıma projesinde başarılı sonuçlar elde edebilirsiniz.


Görüntüleri İşleme Teknikleri

Çizgi film karakterlerinin tanınması, görüntü işleme tekniklerinin kullanılması gerektirir. Bu nedenle, çizgi film karakterlerini tanımak için kullanacağımız görüntülerin işlenmesi çok önemlidir. Bu işlem adımlarının başında görüntüleri yükleme ve önyükleme yer alır.

Öncelikle, çizgi film karakterlerini tarayıcıdan yükleyerek, uygun bir formata getirmemiz gerekir. Bunun için yüklenen resimler ölçeklendirilerek uygun boyuta getirilir ve ardından grileştirilir. Grileştirme işlemi, resimlerin siyah-beyaz hale getirilmesi işlemidir.

Bu noktada, resimlerin kontrast ve parlaklık ayarları da değiştirilerek karakterlerin daha iyi tanınması sağlanabilir. Ancak, resimlerde belirli bir gürültü seviyesi olabilir. Bu nedenle, gürültü azaltma teknikleri kullanarak resimlerdeki gürültü seviyesi düşürülmelidir.

Özellikle çizgi film karakterleri tanıma projesinde, resimlerin doğru bir şekilde işlenmesi son derece önemlidir. Bu nedenle, görüntü işleme teknikleri konusunda bilgi sahibi olmalı ve çeşitli teknikleri kullanarak karakterlerin daha iyi tanınmasını sağlamalıyız.


Resimleri Yükleme ve Ön İşleme

Çizgi film karakterlerini tanıma projesi için, öncelikle resimleri tarayıcıdan yüklememiz gerekiyor. Bunun için Python'da "OpenCV" kütüphanesi kullanabiliriz. OpenCV ile, resimleri yükleyip işlemek için birçok fonksiyon bulunmaktadır.

Bir resmi yüklemek için, resmin yolunu (path) belirterek "imread" fonksiyonunu kullanabiliriz. Örneğin:

import cv2
resim = cv2.imread("resim.png")

Yukarıdaki kodda, "cv2.imread" fonksiyonu ile "resim.png" adlı resim dosyası yükleniyor ve "resim" adlı bir değişkene atılıyor.

Resmi yükledikten sonra, birkaç ön işleme adımı uygulamamız gerekebilir. Bunların başında ise resim boyutlandırma ve grileştirme işlemleri gelmektedir. Bunun için "cv2.resize" ve "cv2.cvtColor" fonksiyonları kullanılabilir. Örneğin:

resim = cv2.resize(resim, (224, 224))
griletirilmis_resim = cv2.cvtColor(resim, cv2.COLOR_BGR2GRAY)

Yukarıdaki kodda, "cv2.resize" fonksiyonu ile resim boyutları (224, 224) olarak ayarlanıyor. Ardından, "cv2.cvtColor" fonksiyonu ile renkli resim, gri tonlamalı hale getiriliyor. Bu işlemler sonucu, resim daha küçük boyutlara indirgenirken, işlem hızı da artar.

Bunun yanı sıra, resimlerdeki kontrast ve parlaklık ayarları da önemli bir ön işleme adımıdır. "cv2.convertScaleAbs" fonksiyonu ile kontrast ve parlaklık ayarlarını değiştirebiliriz. Örneğin:

alpha = 1.5 # kontrast ayarı
bias = 25 # parlaklık ayarı
kontrastli_resim = cv2.convertScaleAbs(griletirilmis_resim, alpha=alpha, beta=bias)

Yukarıdaki kodda, "alpha" değişkeni ile kontrast ayarı, "bias" değişkeni ile parlaklık ayarı yapılıyor.

Tüm bu adımlar, çizgi film karakterlerini tanıma projesinde başarılı sonuçlar elde etmek için önemli işlemlerdir. Resimleri yüklemek ve ön işleme yapıldıktan sonra, resimler makine öğrenmesi algoritmalarına beslenebilir ve çizgi film karakterleri tanıma projesi başarılı bir şekilde gerçekleştirilebilir.


Resim Boyutlandırma ve Grileştirme

Çizgi film karakterleri tanıma projesinde kullanılan resimler, farklı boyutlarda ve renklerde olabilir. Bu nedenle, bu resimleri uygun formata getirmek için bazı adımlar atılması gerekiyor. Resim boyutlandırma ve grileştirme ile çizgi film karakterlerinin tanınmasındaki doğruluğu artırabiliriz.

Resim boyutlandırma işlemi, resimleri aynı boyuta getirerek daha kolay bir şekilde işlem yapılmasını sağlar. Bu sayede, aynı boyuttaki resimler daha tutarlı bir model oluşturmak için kullanılabilir. Örneğin, eğer farklı boyutlarda resimler kullanırsak, modelimiz yüksek boyutlu resimlerin daha çok olacağı bir biçimde öğrenim yapabilir. Bu da doğruluğu azaltır.

Resim boyutlandırma işlemi, programlama dili Python'da PIL (Python Imaging Library) kullanılarak yapılabilir. boyut() yöntemi, boyutlandırma için kullanılan yöntemdir. Örneğin, 50x50 boyutlarında bir resmi 25x25 boyutuna indirgemek için şu kodu kullanabiliriz:

Kod Açıklama
from PIL import Image
image = Image.open("image.jpg")
new_image = image.resize((25, 25))
Bir resmi 25x25 boyutuna indirger.

Bunun yanı sıra grileştirme işlemi, renkli resimleri gri tona dönüştürerek işlem yapılması için daha uygun hale getirir. Bu işlem, resimdeki ayrıntıları daha da vurgular ve modelin resimdeki özellikleri daha iyi tanımasını sağlar.

Python'da, opencv-python kütüphanesi kullanılarak kolayca resimler gri tona dönüştürülebilir. Örneğin, şu kod bloğunu kullanarak resmi gri tona dönüştürebiliriz:

Kod Açıklama
import cv2
img = cv2.imread('image.jpg',0)
cv2.imshow('Gray image', img)
Resmi gri tona dönüştürür.

Resim boyutlandırma ve grileştirme işlemleri, çizgi film karakterleri tanıma projesinde verimliliği artırmak için önemli adımlardır. Bu adımları doğru uygularak daha tutarlı ve doğru bir model oluşturabiliriz.


Kontrast ve Parlaklık Ayarlama

Bir resmin çizgi film karakteri tanıma projesinde kullanılabilmesi için parlaklık ve kontrastı uygun hale getirilmesi önemlidir. Parlaklık ve kontrast, resimlerdeki yüzeylerin arasındaki farklılıkları artırır ve böylece karakterin özellikleri daha belirgin hale gelir.

Parlaklığı artırmak veya azaltmak için, resmin piksellerine bir ışık yoğunluğu ayarı uygulamak gerekir. Bu ayar, resmin tüm piksellerinin ışık gücünü artırır veya azaltır. Bu işlem için nokta (.) ve virgül (,) tuşları kullanılabilir. Örneğin, resmin parlaklığını artırmak için, piksel değerlerine ışık gücü eklemek gerekir:

Komut Açıklama
img = cv2.convertScaleAbs(img, alpha=1.2, beta=0) Resmi %20 daha parlak hale getirir.
img = cv2.convertScaleAbs(img, alpha=0.8, beta=0) Resmi %20 daha koyu hale getirir.

Benzer şekilde, kontrast ayarı için, resimdeki farklılıkları artırmak için gamma değeri ayarlanabilir. Gamma değerinin artması, resimdeki açıklık farklılıklarını artırır ve karakterin özelliklerini daha belirgin hale getirir. Gamma değerini artırmak için aşağıdaki kod kullanılabilir:

Komut Açıklama
gamma = 2.0 Gamma değerinin ayarlanması.
img = np.power(img/float(np.max(img)), gamma) Resimdeki kontrastı artırır.

Bu ayarlama işlemleri, resimdeki özellikleri daha belirgin hale getirerek, çizgi film karakterlerinin tanınmasına yardımcı olur.


Gürültü Azaltma

Resimlerdeki gürültü, çizgi film karakterlerinin doğru tanınmasını engelleyebilir. Bu nedenle, gürültüyü azaltmak için bazı teknikler kullanabiliriz. İşte birkaç yöntem:

  • Filtreler: Filtreler, resimlerdeki gürültüleri azaltmak için en yaygın kullanılan yöntemlerden biridir. İki tür filtre vardır: Gauss filtresi ve Median filtresi. Gauss filtresi, resimdeki gürültüyü azaltmak için kullanılırken, Median filtresi sadece gürültülü pikselleri filtreler.
  • Dalgacık Dönüşümü: Piksellerin farklı frekans bileşenlerini ayrıştırarak dalgacık dönüşümü gürültüyü azaltmanın bir diğer yöntemidir.
  • Resim Eşikleme: Gürültülü pikselleri elemek için resim eşikleme yöntemi kullanılabilir. Bu adımda, belirli bir eşik değerinin altında kalan pikseller filtrelenir ve gürültü azaltılır.

Bu yöntemlerin kullanımı, resimlerin daha doğru bir şekilde işlenmesine ve çizgi film karakterlerinin daha kesin bir şekilde tanınmasına yardımcı olabilir. Ancak, her yöntemin farklı avantajları ve dezavantajları vardır, bu nedenle en uygun yöntemi seçmek için denemeler yapılmalıdır.


Özellik Çıkarımı

Özellik çıkarımı, çizgi film karakteri tanıma projesinde oldukça önemli bir yöntemdir. Bu yöntem sayesinde, makine öğrenmesi modelleri için resim özelliklerini çıkararak daha iyi sonuçlar elde edilebilir.

Özellik çıkarımı için kullanılan yöntemler arasında, özellikleri çıkarmak için kullanılan özellik salience, özellik tanımlama ve görüntü işleme teknikleri yer almaktadır. Özellik tanımlama, belirli resim sınıflarını kalıplara sokmak ve belirli özellikleri belirlemek için kullanılırken, özellik salience, önemli olan özellikleri belirlemek için kullanılır.

Görüntü işleme teknikleri, çizgi film karakterleri tanıma projesinde kullanılacak resimleri düzenlemek için kullanılır. Bu teknikler arasında resim boyutlandırma, grileştirme, kontrast ve parlaklık ayarlama ve gürültü azaltma bulunur.

Özellik çıkarımı, tek başına birçok avantaj sağlasa da, transfer öğrenme yöntemi de kullanılabilir. Transfer öğrenme yöntemi, eğitimde kullanılan verilerin değiştiği durumlarda modelin başarısını artırmak için kullanışlıdır. Örneğin, bir modelin eğitiminde kullanılan veriler çizgi filmler ise, transfer öğrenme yöntemi kullanılarak gerçek hayattaki çizgi film karakterlerine de uygulanabilir.

Sonuç olarak, özellik çıkarımı çizgi film karakterleri tanıma projesi için oldukça önemlidir. Bu yöntemle, makine öğrenmesi modelleri için gerekli olan resim özellikleri daha iyi bir şekilde belirlenebilir ve daha doğru sonuçlar elde edilebilir. Ancak, yöntemlerin doğru bir şekilde uygulanması ve sonuçların doğru bir şekilde değerlendirilmesi için, verilerin doğru bir şekilde hazırlanması ve yöntemlerin doğru bir şekilde uygulanması gerekmektedir.


Özellik Çıkarımı Yöntemleri

Çizgi film karakteri tanıma projesinde, modelin doğru bir şekilde öğrenmesi için verilerin özelliklerinin çıkarılması gerekiyor. Özellik çıkarımı, görüntü işleme tekniklerinin temel bir parçasıdır ve çizgi film karakterleri tanıma projesinde oldukça önemlidir. Bu yazıda, özellik çıkarımı yöntemlerinin nasıl kullanıldığına dair bilgilere yer vereceğiz.

Özellik çıkarımı, görüntülerden farklı görsel özellikleri çıkarmak için bir dizi yöntem ve teknik kullanır. Bu özellikler, modelin çizgi film karakterlerini doğru bir şekilde tanıması için yeterli bilgiyi sağlar.

Özellik çıkarımı yöntemleri arasında Histogram of Oriented Gradients (HOG), Local Binary Patterns (LBP), Fisher Vectors, ve Convolutional Neural Networks (CNN) yer alır.

Histogram of Oriented Gradients (HOG), bir görüntüdeki kenarları tespit etmek için kullanılır. Bu özellik, görüntüdeki piksellerin gradientleri kullanılarak oluşturulur. Bu yöntem, çizgi film karakterlerinin basit şekillerinin ayırt edilmesinde oldukça etkilidir.

Local Binary Patterns (LBP), bir görüntüdeki dokuya odaklanır. Bu özellik, bir pikselin etrafındaki diğer piksellerin yoğunluğunu kullanarak oluşturulur. Bu yöntem, çizgi film karakterlerinin daha karmaşık dokularını tanımak için kullanılır.

Fisher Vectors, öğrenme modelinde görüntülerin özelliklerinin daha doğru bir şekilde tanımlanmasına olanak tanır. Bu özellik, bir görüntünün farklı kısımlarındaki özellikleri ayrı ayrı tanımlayarak oluşturulur.

Convolutional Neural Networks (CNN), özellikle büyük ve karmaşık veri setleri üzerinde kullanılan bir özellik çıkarım yöntemidir. Bu yöntem, birçok katmana sahip bir sinir ağı kullanarak özellikleri çıkarır. Bu sayede, öğrenme modeli daha iyi sonuçlar verir.

Özellik çıkarımı aşamasında, özelliklerin tanımlanması ve özellik salience gibi faktörler de dikkate alınmalıdır. Bu faktörler, verilerin ne kadar öğrenme modeli tarafından faydalı olduğunu belirlemek için kullanılır.

Çizgi film karakterleri tanıma projesinde, özellik çıkarımı yöntemleri doğru bir şekilde kullanıldığında, modelin doğruluğunu ve performansını artırabilir. Bu nedenle, özellik çıkarımı aşaması titizlikle planlanmalıdır.


Transfer Öğrenme Kullanımı

Transfer öğrenme, bir makine öğrenmesi modelinin, bir sorundan başka bir soruna aktarılmasını ifade eder. Çizgi film karakterleri tanıma projesinde de transfer öğrenme kullanarak daha iyi sonuçlar elde edebiliriz.

Bunun için, önceden eğitilmiş bir modelin kullanımıyla, çizgi film karakterleri tanıma probleminde daha fazla veri elde edebiliriz. Eğitilmiş bir model, daha önceki benzer bir problemin çözümlerinde elde edilen bilgiyi içerir. Bu, modelin daha az veri kullanarak daha iyi sonuçlar elde etmesine olanak tanır.

Bu nedenle, önceden eğitilmiş bir model kullanarak çizgi film karakterleri tanımak için özellik çıkarımı yapabilirsiniz. Örneğin, VGG-16 modeli, özellikle nesne tanıma problemleri için önceden eğitilmiş bir derin öğrenme modelidir. Bu model, görüntüleri ve nesneleri tanımak için kullanılan temel özellikleri öğrenir.

Bu özellikleri kullanarak, çizgi film karakterleri ile ilgili verileri eğitirdiğimizde, önceden eğitilmiş modelden gelen özellikler de kullanılabilir. Bu, özelleştirilmiş bir çizgi film karakteri tanıma modeli oluşturarak daha iyi sonuçlar elde etmenize olanak tanır.

Transfer öğrenme, zaman ve efor açısından da önemlidir. Veri setlerini daha az eğiterek daha iyi performans elde etmek, yerinde ve yetersiz veriler için kullanılmıştır. Bu teknik, çizgi film karakterleri tanıma problemleri için de büyük bir avantaj sağlar.

Sonuç olarak, transfer öğrenme, eğitim süresini ve gereksinimlerini azaltarak, çizgi film karakterleri tanıma probleminde daha iyi sonuçlar elde etmenize yardımcı olacaktır. Veri setinize uygun bir önceden eğitilmiş model bulmak, doğru özellikleri çıkararak ve eğiterek, özelleştirilmiş bir model oluşturabilirsiniz.


Test Etme ve Sonuçlar

Öncelikle, çizgi film karakterlerini tanımak için oluşturduğumuz modelin doğruluğunu test etmek için test verileri kullanmamız gerekiyor. Test verileri, eğitim verilerinden farklı olmalı ve modelimizin gerçek hayatta çizgi film karakterlerini tanımak için başarılı olduğunu göstermelidir.

Test verileri hazır olduğunda, modelimizi test etmek ve sonuçları değerlendirmek için çeşitli ölçütlere göre karşılaştırmalı bir analiz yapabiliriz. Bu ölçütler arasında doğruluk, hassasiyet, özgüllük ve F1 skoru yer alır.

Ölçüt Açıklama
Doğruluk (Accuracy) Modelin doğru sınıflandırma yüzdesi
Hassasiyet (Precision) Modelin doğru pozitif tahminlerinin yüzdesi (Gerçekte pozitif olanlar arasında ne kadarının doğru tahmin edildiği)
Özgüllük (Specificity) Modelin doğru negatif tahminlerinin yüzdesi (Gerçekte negatif olanlar arasında ne kadarının doğru tahmin edildiği)
F1 Skoru Hassasiyet ve özgüllük arasındaki dengeyi ölçen bir skor

Ölçütleri belirledikten sonra, modelimizin performansını bu ölçütlere göre değerlendirebiliriz. Eğer modelimiz iyi bir hassasiyet ve özgüllüğe sahip ise, doğru pozitif ve negatif tahminler yaparak çizgi film karakterlerini başarıyla tanıyabiliriz.

Sonuç olarak, çizgi film karakterleri tanıma projesi için oluşturduğumuz modelin performansını test etmek ve sonuçları ölçütlerle karşılaştırmak, modelimizin gerçek hayatta çizgi film karakterlerini tanıma konusunda ne kadar etkili olduğunu gösterir.


Test Verilerinin Hazırlanması

Test verileri, oluşturduğumuz öğrenme modelinin etkinliğini ve doğruluğunu test etmek için kullanılır. Test verilerinin hazırlanması, proje için oldukça önemlidir. Çizgi film karakterlerini tanıma projesinde test verileri, çizgi film karakterleri içeren bir veri kümesi olmalıdır. Bu veri seti, çeşitli çizgi film karakterlerinden oluşmalıdır.

Test verileri, belirli bir oranda egitim verilerinden ayrılmalıdır. Bu oran, genellikle %20 olarak belirlenir. Bu şekilde, modelin eğitilmesi ve test edilmesi ayrı ayrı gerçekleştirilir.

Test verilerini oluştururken, verilerin dengeli olmasına dikkat etmek de önemlidir. Veri kümesindeki her karakterin sayısı yaklaşık aynı olmalıdır. Hangi karakterlerin dahil edileceği, veri setinin büyüklüğüne bağlı olarak değişebilir.

Test verilerinin oluşturulması birkaç adımdan oluşur. İlk olarak, belirlenen oranda egitim verisinden ayrılan veriler seçilir. Ardından, seçilen veriler daha küçük bir veri kümesi oluşturmak için ölçeklendirilir ve renk öznitelikleri çıkarılır. Bu adımlar, her resmin aynı özellikleri taşımasını sağlamak için yapılır.

Test verileri, çizgi film karakteri görsellerinin yanı sıra, görsellerin hangi karakteri temsil ettiği bilgisini de içermelidir. Bu bilgi, doğruluk oranlarının hesaplanması ve modelin doğruluğunun incelenmesi için gereklidir.

Test verilerinin hazırlanması sırasında, aynı karakteri temsil eden benzer resimlerin dışında farklı açılardan, farklı pozisyonlardan ve farklı aydınlatmalardan oluşan verilerin de dahil edilmesi önemlidir. Bu, modelin daha geniş bir yelpazede özellikler tanımasına ve daha doğru sonuçlar vermesine yardımcı olur.

Sonuç olarak, test verilerinin hazırlanması, çizgi film karakterleri tanıma projesinin doğruluğu ve etkililiği açısından son derece önemlidir. Test verileri, modelin etkinliğinin test edildiği ve proje için belirlenen ölçütlere göre sonuçların değerlendirildiği kritik bir aşamadır.


Sonuçları Değerlendirmek

Son aşamada, oluşturduğumuz öğrenme modelini test etmek ve sonuçları belirlenen ölçütlere göre değerlendirmek gerekiyor. Bu ölçütler, özellikle çizgi film karakterlerinin tanınması için önemli olan doğruluk oranları, hassasiyet, özgüllük ve F1 skoru gibi metriklerdir. Test verilerini hazırladıktan sonra, modelimizi bu veriler üzerinde çalıştırıyoruz ve sonuçları analiz ediyoruz.

Bu son aşamada, elde edilen sonuçların beklenen performansı gösterip göstermediğini tespit ediyoruz. Eğer sonuçlar beklenenden daha iyi ise, modelimizi geliştirmek için daha fazla veri kullanabilir veya farklı özellik çıkarımı yöntemleri deneyebiliriz. Ancak sonuçlar beklenen performansın altında ise, modelimizi yeniden değerlendirmeli ve iyileştirmeler yapmalıyız.

Sonuçları değerlendirirken, ayrıca yanlış sınıflandırılan çizgi film karakterlerini gözlemlemek de faydalı olabilir. Bu sayede, modelimizi geliştirmek için hangi karakterlerin tanınmasında zorluk yaşadığımızı belirleyebiliriz. Ayrıca, test verilerinin kalitesi de sonuçları etkileyebileceğinden, test verilerini de dikkatli bir şekilde hazırlamamız gerekiyor.

Sonuç olarak, çizgi film karakterlerinin tanıma projesi için ideal bir öğrenme modeli oluşturmak için birçok adım atılması gerekiyor. Doğru görüntü işleme tekniklerinin kullanımı, özellik çıkarımı yöntemlerinin seçimi ve test verilerinin hazırlanması sonuçların doğruluğunu belirleyebilir. Bu şekilde, uygun şekilde eğitilmiş bir öğrenme modeli, günümüz teknolojisindeki birçok uygulama için oldukça önemli olan çizgi film karakterlerinin tanınması gibi görevleri başarabilir.