Hareket Eden Cisim Tespiti

Yayın: 29 Nisan 2022

Hareket Eden Cisim Tespiti

Birkaç gün önce Tesla'nın tam oto sürüş modülünün navigasyon panelini gördüm ve gerçek dünyanın panelde ne kadar doğru bir şekilde tasvir edildiğine şaşırdım. Binalar, araçlar, yayalar ve hatta ağaçlar bu sanal dünyada tamamen yeniden oluşturulmuş ve oto pilot modeline beslenmişti.

Tesla’s full self-driving module’s navigation panel

Bu modülün yaptığını yeniden oluşturmaya karar verdim, yani gerçek dünyada çekilen bir videonun analiz edilmesi ve videodaki hareketli nesnelerin belirlenmesi.

Yaklaşım

Tesla bunun için muhtemelen makine öğrenimini kullanıyor, ancak aşağıdaki 3 nedenle daha basit bir yaklaşım benimsemek istiyorum:

  1. Makine öğreniminin ilk kuralı: Makine öğrenimi olmadan başlayın

    Yukarıda, Eugene Yan tarafından güzel bir şekilde ifade edilmiş bir ifade. Bir veri sorununu çözmeye çalıştığımızda, her zaman basit sezgilerle başlamak ve makul bir doğruluk elde edilip edilmediğini görmek, daha karmaşık modellere geçmeden önce iyi bir fikir olacaktır.

  2. Kontrollü öğrenme etiketlere ihtiyaç duyar

    Bir videoda hareketli nesneleri tanımlayan bir model eğitmek mümkün olabilir, ancak modelin eğitim için etiketli verilere ihtiyacı olacaktır. Etiket oluşturmak maliyetli (ve sıkıcı) bir egzersizdir ve bunu mümkün olduğunca kaçınmak istiyorum.

  3. Makine öğrenimi kullanmamak daha eğlencelidir

    Makine öğrenimi, verideki desenleri tanır. Veri bilimcisi bir problem için bir çözüm (desenler) hakkında zaten bir fikre sahipse ve bu çözüm kolayca test edilebiliyorsa, veri üzerinde basit sezgileri denemek her zaman harika bir fikir olacaktır (ve daha eğlencelidir). Bu şekilde, genellikle bir siyah kutu olan bir tahmin modeli yerine açıklayıcı bir model elde edebiliriz.

Yöntem

İlk olarak, videonun karelerine ayırıyoruz ve her bir karedeki her pikselin rengini izleyerek hareketli nesneleri belirlemeye çalışıyoruz. Bir renk, Kırmızı, Yeşil ve Mavi (RGB) ölçeklerinin bir kombinasyonu tarafından temsil edilir. Bu üçlü renkler, 0 ile 255 arasında bir sayı ile temsil edilir. Gördüğümüz renklerin, görüntülerin ve videoların sadece büyük matrisler olduğuna şaşırıyor musunuz? (RGB'ler, pikseller).

Bir hareketli nesne, bir çerçevedeki bir pikselin renginde önemli bir değişiklik olduğunda belirlenir. Örneğin, bir pikselin RGB'si mor (180, 70, 250) dan yeşil (40, 200, 120) e ve tekrar mora (40, 200, 120) değiştiğinde, kameramız sabit olduğu sürece, bir nesnenin o pikselden geçtiğini rahatlıkla söyleyebiliriz. Bir pikselin rengini çerçeve çerçeve izleyerek, bir renk değişikliğini gözlemlediğimizde bir "hareketli nesne" olarak etiketleyebiliriz.

SBI Securities Unsubscribe

Bir hareketli nesne algılandığında, o pikselin rengini nesneyi vurgulamak için yeşile değiştiriyoruz. Ayrıca, vurgulanan nesneleri kolayca görmek için videoyu gri tonlamalı hale getiriyoruz. Aşağıdaki video, bu mantığın videoları nasıl işlediğini ve hareketli nesneleri nasıl bulduğunu gösteriyor. Oldukça havalı değil mi?

Sonuç

Bir videoda her pikselin rengini inceleyerek kural tabanlı bir hareketli nesne tanımlayıcısı oluşturduk. Bu model, araçları, yayaları ve hatta feribotları tanımlamak için iyi çalışır. Ancak, bu modelin bazı sınırlamaları vardır; sabit bir kameraya gereksinimi vardır ve makul bir piksel rengi değişim eşiği belirlemek gerekir. Eşik çok düşükse, bir nehrin dalgalarını hareketli nesneler olarak tanımlarız, ancak çok büyükse, evcil hayvanlar gibi bazı küçük hareketli nesneleri kaçırabiliriz.

İşte modelin kodu.

İyi kodlamalar!

Bu iş İngilizce'den ChatGPT ile çevrilmiştir. Herhangi bir belirsizlik durumunda İletişim sayfasından bana ulaşabilirsiniz.

Yorum bırak

Yorumlar

Diğer işlere bak