Bu makale, AI Araştırma Enstitüsü tarafından derlenen, orijinal başlığı olan teknik bir blogdur:
Mini Otonom Araçlarda Derin Öğrenme Özellik Haritalarının Görselleştirilmesi
Yazar | Nelson Fernandez
Tercüme | Liu Liu 1126
Düzeltme, inceleme | Soslu tarak bitirme | Pide
Orijinal bağlantı:
https://towardsdatascience.com/displaying-convnets-feature-maps-on-real-time-video-with-keras-and-opencv-418b986adda7
Birkaç ay önce, küçük bir otomatik radyo kontrollü (RC) araba olan Axionaut'u üretmeye başladık ve Paris'te bazı yarışmalara katıldık. Şimdiye kadar her şey yolunda gitti ve iyi sonuçlar elde ettik. Yine de, arabayı kontrol eden evrişimli sinir ağının içinde ne olduğunu herkes her zaman merak eder.
Özellik haritalarının ve filtrelerin nasıl görüntüleneceğine dair bazı iyi makaleler gördük. Bunlar, sinir ağı özellik haritalarını anlamak ve yazmak için çok kullanışlıdır. Ayrıca, sürücüsüz arabadaki sinir ağının gerçek zamanlı olarak nasıl etkinleştirildiğini gösteren bazı harika Nvidia videoları da gördük (ama bunu nasıl yapıyorlar?).
Bu yüzden sıfırdan başlamaya ve bu deneyimi prototipte kopyalamaya karar verdik. Bu amaçla, önceden eğitilmiş Keras Convnet otopilot modelinin yanı sıra eğitim ve yarışma sırasında çekilen bazı videoları kullandık.
Bu iyi başlangıçla, "ağ dünyayı nasıl görüyor" ve "ağ gerçekte neyi önemsiyor" gibi bazı klasik soruların yanıtlarını aramak için birkaç gün geçirdik.
Deneyimin sonuçlarını burada sergiliyoruz, lütfen aşağıdakilere erişmek için bilimsel yöntemleri kullanın:
https://youtu.be/YC13O-U5MnY
başarmak
Bunu nasıl yaptığımızı merak ediyorsanız, öncelikle görüş alanındaki ilgili özellikleri tespit ederken evrişimli katmanın özellik haritasının nasıl etkinleştirildiğini anlamanız gerekir. Harsh Pokharna tarafından yazılan bir makale bunu çok iyi açıklıyor.
Bu durumda, arabamız şeritleri algılayan bir "uzman" haline gelir
Tıpkı insanlar gibi, diğer faktörleri (diğer araçlar, yol işaretleri, yayalar veya varış noktaları) dikkate almadan, şerit bize doğru kararın nasıl verileceğine dair ilgili bilgileri sağlayacaktır. Sola dönelim mi? Sağa dönün? Düz gitmeye devam et?
Tamam, konuya geri dönelim. Yapmamız gereken ilk şey, ilgilenilen evrişimli katmanı bulmak ve etkinleştirilmesi gereken ısı haritasını çizmektir. Bunun için bu devasa deponun biraz değiştirilmiş bir versiyonunu kullandık.
Bir aktivasyonu yeniden inşa etmek, burada bahsedilen "derin" evrişimli tabakanın rolünü tamamen hesaba katmak anlamına gelir.
Basit olması için, tek bir evrişimli katmanın aktivasyonunu tahmin etmemiz gerekir Burada ters evrişim yerine kübik spline interpolasyonu kullanılır. Ağdaki tüm özellik haritalarını görsel olarak tespit ettikten sonra, ikinci evrişimli katmanı seçtik.
Sonuçları burada gösteriyoruz:
Giriş resmiİkinci evrişim katmanı için özellik eşleme
Bu noktada, ağın esas olarak şeritlere yanıt verdiği açıktır. Bir sonraki adım, orijinal giriş görüntüsünü etkinleştirme ile örtüştürmek ve orijinal görüntünün şekline ve rengine zarar vermeyecek şekilde yüksek yanıt alanlarını net bir şekilde kaplamaktır.
OpenCV burada kullanılıyor! İlk olarak, diğerlerini kaldırırken en aktif kısmı segmentlere ayırmak için kullanılan bir ikili maske oluşturun. Aktivasyon haritalama alanı küçük olduğundan, yukarı örneklemeye de ihtiyacımız var. Ardından, son birleştirilmiş görüntüyü elde etmek için bitsel işlemleri kullanın.
İlk bitsel işlem, AND ikili maskeye ve aktivasyon haritasına yöneliktir. Bu işlem OpenCV ile kolaylıkla uygulanabilir ve haritanın en aktif kısmı bölümlere ayrılmıştır.
İkili maske
Bitsel işlemde maske ve özvektörün "Ve" işlemi
Beklendiği gibi, sonunda evrişimli sinir ağı tarafından tamamen kesilmiş net bir şerit elde ettik.
Şimdi sanırım bunu düşündünüz, son görüntüyü tamamlamak için ikinci bitsel işlemi yapmamız gerekiyor: AND işlemi. Görüntüdeki soğuk mavi, Matplotlib (RGB) ve OpenCV (BGR) 'nin farklı renk formatlarından kaynaklanır. Farklı renkler elde etmek için rengi değiştirecek olan renk haritasını pound edebilirsiniz.
Bu şekilde, nihayet giriş görüntüsünü ve özellik haritasını, ağ aktivasyonunun makul bir tahminine dayalı olarak entegre ediyoruz.
Son entegre görüntü
Şimdi bu sonucu sunmak için bir video kullanalım.
sorun
Herhangi bir sorunuz varsa, yorumlarda cevaplamaktan memnuniyet duyarım. Burada, tüm kod ve veritabanları dahil olmak üzere genel havuza bir bağlantı sağlanmaktadır. Bizi Twitter'da takip etmeyi unutmayın.
Bu makalenin ilgili bağlantılarını ve referanslarını görüntülemeye devam etmek ister misiniz?
Bağlantıya uzun basın ve [Mini Otopilotun Derin Öğrenme Özelliği Haritalandırmasının Görselleştirilmesi] öğesini açmak veya tıklayın:
https://ai.yanxishe.com/page/TextTranslation/1206
AI Araştırma Enstitüsü heyecan verici içerikleri günlük olarak güncelliyor ve daha heyecan verici içerikler izliyor: Lei Feng Wang Lei Feng Wang Lei Feng Wang
Çevirmeni bekliyorum: