Renk Takibi Açıklaması#

Bir rengi izlemek nedir ve CMUcam4 bunu nasıl yapar?#

Renk takibi, bir görüntü alma, belirli bir rengi izole etme ve o görüntünün yalnızca o rengi içeren bir bölgesinin konumu hakkında bilgi çıkarma yeteneğidir. Örnek olarak, toprak bir yolda duran kırmızı bir top içeren bir fotoğraf verildiğini varsayalım. Biri sizden görüntüde kırmızı renkte olan her şeyin etrafına bir kutu çizmenizi isterse, topun etrafına oldukça kolayca bir dikdörtgen çizerdiniz. Renk takibinin arkasındaki temel fikir budur. Nesnenin bir top olduğunu bilmenize gerek yoktu. Resimdeki nesneyi izole etmek için yalnızca kırmızı renk kavramına sahip olmanız gerekiyordu. Aşağıda, CMUcam4’ün renk takibi gerçekleştirmek için bir kamera görüntüsündeki bilgileri gerçekte nasıl kullandığına kısaca değineceğiz.

Bir rengi belirtmek için, üç renk kanalı için izin verilen minimum ve maksimum bir değer tanımlamanız gerekir. Her benzersiz renk, her kanaldan benzersiz renge ne kadar karıştırıldığını gösteren bir kırmızı, yeşil ve mavi değeriyle temsil edilir. Bir rengi belirtmenin zor kısmı, üç renk kanalının tamamı için izin verilen değerlerden oluşan bir aralık tanımlamanız gerekmesidir. Işık tam olarak tekdüze olmadığından ve bir nesnenin rengi tam olarak tekdüze olmadığından, bu değişimlere yer açmanız gerekir. Ancak, bu sınırları çok fazla gevşetmek istemezsiniz, aksi takdirde birçok istenmeyen renk kabul edilir. CMUcam4 durumunda her renk kanalı 0 ile 255 arasında bir sayıya dönüştürüldüğünden, her kanalı iki sayıyla, bir üst ve bir alt limitle sınırlayabilirsiniz. Üç kanalın her biri için iki limitiniz varsa, bu, izlemek istediğiniz tüm renk uzayını kısıtlamak için altı değerin kullanılabileceği anlamına gelir. Renklerin her bir kenarının farklı bir renk kanalı (kırmızı, yeşil ve mavi) olduğu bir küple temsil edildiğini hayal ederseniz, renginizi seçmek için kullanılan altı değer, o küpün içinde istediğiniz renk kümesini tanımlayan üç boyutlu bir kutu çizer.

İzlemek istediğiniz renk için bir sınıra sahip olduğunuzda, CMUcam4 bu sınırları alır ve görüntüyü işler. Bir görüntüde renkleri izlemenin oldukça karmaşık olabilen birçok yolu vardır. CMUcam4, kameradan gelen her yeni görüntü karesini bağımsız olarak işleyen basit bir tek geçişli algoritma kullanır. Görüntünün sol üstünden başlar ve her pikseli satır satır sırayla inceler. İncelediği piksel, kullanıcının belirttiği renk aralığının içine düşerse, o pikseli izlenmiş olarak işaretler. Ayrıca mevcut izlenen pikselin konumunu, görüntüde şimdiye kadar bulunan tüm izlenen piksellerin en üstteki, en alttaki, en soldaki veya en sağdaki konumu olup olmadığını görmek için inceler. Pikselin izlenen bölgenin mevcut sınırlayıcı kutusunun dışında olduğunu bulursa, bu yeni pikseli içerecek şekilde sınırlayıcı kutuyu büyütür. Tek bir izlenen pikselin konumu bile sınırlayıcı kutuyu değiştirebildiğinden, sınırlayıcı kutu bazen kareden kareye oldukça dalgalanabilir. Bu dalgalanmanın bir kısmını azaltmak için gürültü filtreleme (bir sonraki paragrafa bakın) kullanılabilir. Depolanan diğer tek önemli bilgi, izlenen piksellerin yatay ve dikey koordinatlarının toplamıdır. Görüntünün sonunda CMUcam4, izlenen piksellerin yatay toplamını ve dikey toplamını alır ve her birini izlenen piksellerin toplam sayısına böler ve izlenen nesnenin ortasının nerede olduğunu gösteren bir değer elde eder. Her izlenen piksel yalnızca son yatay ve dikey toplamlara küçük bir katkı sağladığından, izlenen piksellerin ortası (genellikle ağırlık merkezi olarak adlandırılır) tipik olarak sınırlayıcı kutudan çok daha kararlı bir ölçümdür. Görüntüdeki tüm pikseller kontrol edildikten sonra, izlenen piksellerin toplam sayısı, izlenen nesnenin güvenilirliğini ve içindeki piksel sayısını hesaplamak için sınırlayıcı kutunun alanıyla birlikte de kullanılabilir.

Gürültü filtreleme, görüntüdeki diğer rastgele değişimlerin izlenmesine neden olmadan görüntü piksel değerlerindeki daha büyük değişimlere yer açabilmemiz için renk izleme aralıklarını daha büyük yapmamıza olanak tanır. Gürültü filtrelemenin arkasındaki fikir, bir pikseli yalnızca renk izleme sınırları içindeki bir piksel grubunun parçasıysa izlenen renkte kabul etmek istememizdir. CMUcam4’te bunu, görüntü üzerinde yalnızca tek bir geçiş gerektiren bir şekilde uyguluyoruz. CMUcam4, bir görüntüdeki pikselleri işlerken, mevcut pikselden önce mevcut satırdaki kaç ardışık pikselin izlenen renk sınırları içinde olduğunu takip eden bir sayaç tutar. Bu değer gürültü filtresi değerinin üzerindeyse, mevcut piksel izlenen bir piksel olarak işaretlenir.

Histogram nedir ve ne işe yarar?#

Histogram, verilerin sıklığını ve dağılımını gösteren bir grafik türüdür. CMUcam4 durumunda, histogram bir görüntüde bulunan renk değerlerinin sıklığını ve dağılımını gösterir. Her çubuk, belirli bir kanal için bir renk değerleri aralığını temsil eder. CMUcam4, 0 ile 255 arasındaki olası renk değerlerini 1, 2, 4, 8, 16, 32 ve 64 farklı bölmeye (bin) ayırabilir. Her bölme, görüntüde bulunan ve belirli renk sınırları içine düşen piksel sayısını içerir. Dolayısıyla belirli bir bölmedeki büyük bir değer, bu renklerden çoğunun görüntüde bulunduğu anlamına gelir. Her histogram yalnızca seçilen bir renk kanalını temsil eder.

Histogramlar, bir görüntünün içeriğini soyutlamanın bir yoludur. İlkel nesne tanıma, eşikleme veya renk dengeleme gibi birçok kullanımları vardır. Özellikle farklı dokular arasında ayrım yapmak için yararlıdırlar. CMUcam4’ü otomatik kazanç kapalıyken iki farklı dokulu yüzeye doğrultmayı deneyin ve renk dağılımlarındaki farkı gözlemleyin. Bu etki, zemin yüzeylerini ayırt etmek veya engelleri tespit etmek için kullanılabilir.