Yalnızca bir bilgisayar kamerası bağlayarak gerçek zamanlı nesne algılama için derin öğrenmeyi kullanabileceğinizi öğretin

Lei Feng Net Not: Bu makale, Lei Feng'in altyazı grubu tarafından derlenen teknik bir blogdur, orijinal başlığı Derin Öğrenmeyi Kullanarak Gerçek Zamanlı İnsanları Algılamaktır ve yazar Schuman Zhang'dır.

Çeviri | Jingpeng Wang Fei tarafından tamamlandı | Yu Hang Fan Jiang

Gerçek zamanlı nesne tespiti çok ilginç bir konudur. Video girişindeki insanları ve diğer gerçek hayattaki nesneleri güvenilir bir şekilde nasıl tespit etmeliyiz? Son zamanlarda, yalnızca kullanıcının bilgisayar web kamerasına bağlanarak nesneleri otomatik olarak algılayabilen çok basit bir uygulama geliştirmeyi başardım. Bu uygulamayı nasıl oluşturduğumu ve bu süreçte karşılaştığım bazı ilginç sorunları ve zorlukları sizlerle paylaşmak istiyorum.

Projenin kaynak kodu burada bulunabilir (https://github.com/schumanzhang/object_detection_real_time).

Nesne algılama, bilgisayar görüşü alanında çok aktif bir araştırma konusudur. Bir görüntüdeki nesneleri algılamanın ve yerleştirmenin en etkili yolu (nesnenin etrafına sınırlayıcı bir kutu yerleştirmek olarak anlaşılabilir) derin öğrenme tekniklerini kullanmaktır. R-CNN, Hızlı R-CNN, Tek Atış Algılama (SSD) ve YOLO (Sadece Bir Kez Bakarsınız) gibi bu amaç için özel olarak tasarlanmış birkaç sinir ağı mimarisi vardır.

Tensorflow nesne algılama modeli

Yukarıdaki sinir ağı mimarisinin önceden eğitilmiş modelini tensorflow kitaplığında kolayca bulabilirsiniz. Toplu olarak tensorflow algılama modeli koleksiyonu olarak adlandırılırlar. Bu önceden eğitilmiş modeller, toplam 90 tip etiket (gerçek dünya nesneleri, İnsanlar, kediler ve köpekler gibi). Bu basit uygulamada, mobilenet adlı tek bir algılama yöntemi kullanacağız. Bu mimari daha kompakttır ve saniyede 30-50 kare analiz etmek için önemli olan ek bir hız artışı sağlayabilir.

Bu sinir ağlarının nasıl çalıştığı hakkında ayrıntılara girmeyeceğim (bu başka bir bağımsız ve ilginç konudur). Uygulamamızda odak noktamız insanları tespit etmek, odada insan var mı, varsa kaç kişi var sorusuna cevap vermeye çalışıyoruz. Ancak, cep telefonları, kitaplar ve dizüstü bilgisayarlar gibi sıradan nesneler dahil olmak üzere 90'a kadar gerçek dünya nesne kategorisini de algılayabilmelidir. Teorik olarak, daha fazla nesne türünü tespit etmek için bu sinir ağı mimarilerinin son birkaç katmanını yeniden eğitmek için aktarım öğrenme yöntemlerini kullanabiliriz, ancak bu ek eğitim verisinin yanı sıra çok fazla bilgi işlem gücü ve zamanı gerektirir.

Kısacası, video akışı analizimiz odadaki insanları tespit etmek için tensorflow, open-cv ve Python kullanacaktır.

Bir nesne algılama uygulaması oluşturun

Uygulamanın genel akışı aşağıdaki gibidir:

  • Çerçeve verilerini dizüstü bilgisayarın web kamerasından okumak için open-cv Python kitaplığını kullanacağız. Bu, open-cv'deki VideoCapture işlevi aracılığıyla yapılacaktır.

  • Daha sonra nesneleri algılamak için bu çerçeveleri mobilenet ssd modeline geçiriyoruz. 0,5'ten daha yüksek bir güven düzeyine sahip herhangi bir algılama döndürülecek ve çerçeve görüntüsüne çizilecektir.

  • Algılanan nesneler, görüntüde algılanan nesnelerin etrafına renkli sınırlayıcı kutular yerleştirerek görselleştirme modülünden geçecektir.

  • Ayrıca odanın boş olup olmadığını ve odadaki kişi sayısını göstermek için bir izleme modülü ekledik. Bu veriler ayrı bir .csv dosyasında saklanacaktır.

İşlenen çerçeve verileri döndürüldükten sonra, çerçeve görüntüsünü sınırlayıcı kutuyla birlikte kullanıcıya göstermek için open-cv'de imshow işlevini kullanabiliriz.

Son olarak, video akışının çıktısı saniyede 20 kare hızında ayrı bir .mp4 dosyasına yazılacak, böylece işimizden daha sonra keyif alabilelim :)

Yukarıdaki kodda, 'while' döngüsü web kamerasından çerçeve verilerini okumak ve ardından işlenmemiş çerçeve verilerini derin öğrenme modelimize geçmek için giriş kuyruğuna koymak için kullanılır. Tensorflow'un tahmin sonuçlarını aldığımızda, bu tahmin / algılama değerleri çıktı kuyruğuna ve ardından object_tracker sınıfının görselleştirme modülü aracılığıyla eklenecek ve son olarak işlenen çerçeveleri ayrı bir dosyaya yazıp sonuçları kullanıcıya gösteriyoruz.

Python'da video karelerini işleme hızını artırmak için çoklu okuma kullanacağız. Aşağıdaki çalışan işlevi, çerçeve verilerini giriş kuyruğundan alacak, tensorflow modelini yükleyecek ve algılama sonuçlarını çıktı kuyruğuna geri gönderecektir. Bu, ana iş parçacığından ayrı çalıştırılır.

Elbette, algılamayı görselleştirmek için, tespit edilen sınıf etiketlerini, ilgili güvenirliklerini, sınırlayıcı kutu rengini ve koordinatlarını geçmemiz ve bunları çerçeve görüntüsüne çizmemiz gerekir.

Uygulamaları test edin ve değerlendirin

Sonraki soru, bu basit uygulamanın nasıl performans göstereceğidir? Uygulamayı dizüstü bilgisayarımda çalıştırırken, denetleme işlevinin iyi çalıştığını düşünüyorum. Bu uygulamaları katı bir test ortamına koymadım. Bununla birlikte, performansın oldukça kırılgan olduğu birçok durum da gördüm. Birincisi, Steve Jobs'un biyografisini kameranın önüne koyduğumda, bir kitabı değil, başka bir kişiyi tespit ediyor (bu yüzden gerçek bir kişi ile bir başkasının görüntüsünü ayırt edemez). İkinci olarak, müfettişler iyi performans gösterirken, diğer kategorileri incelemede pek iyi olmadıklarını hissediyorum Örneğin, cep telefonumu sık sık bir TV veya dizüstü bilgisayarla karıştırıyorum. Gerçek dünyadaki diğer nesneleri tespit ederken iyileştirme için hala çok yer var.

Potansiyel gerçek dünya uygulama vakaları?

İnsanları veya diğer nesneleri gerçek zamanlı video akışlarında analiz etmek ve tespit etmek için birçok ilginç gerçek hayat uygulama vakasını kolayca düşünebiliriz. Güvenlik kameralarındaki insanların varlığını tespit edebiliyoruz, sonuçta çok sayıda gözden kaçan güvenlik kameramız var. Kameranın insanları izlemesine, insanların akışını hesaplamasına ve hatta belirli davranışları gerçek zamanlı olarak tanımlamasına izin verebiliriz. Otomatik ulaşım da ortaya çıkmak üzere ve bu teknoloji, araçlarımızın yolu görmesine ve yayaları algılamasına yardımcı olmak için çok önemlidir.

Orijinal bağlantı: https://medium.com/@schuman.zhang/detecting-people-in-real-time-using-deep-learning-84859c9682d2

Takma ad

Odaklanmış biri

AI teknolojisinin geliştirilmesi ve AI mühendislerinin büyümesi için bilgi arayan bir topluluk

Doğdu!

Herkesi aşağıdaki bağlantıyı ziyaret etmeye veya deneyimlemek için kodu taramaya hoş geldiniz

https://club.leiphone.com/page/home

Lei Feng Ağı Lei Feng Ağı

En iyi hibrit teknolojisi hangisi? Honda VS Toyota
önceki
SEEK Berlin SS18 için en iyi spor ayakkabılar hangileri? ! Bu listedeki ayakkabılara ikna oldunuz mu?
Sonraki
"Fighting Nation Cultivation" da "Last Night on Earth" yıl sonuna kadar votka rulet içeceği
Tarihteki ilk teknik ev, birçok programcıya
Lin Bin, ekran parmak izlerinin yeni trendini ortaya çıkardı, ilgili iki temel teknoloji aşıldı!
Başlangıç fiyatı 220.000 olan bu lüks SUV, 2 milyona yakın bir auraya sahip!
Berlin'de başka bir şifoniyer grubu ortaya çıktı! Çeşitli mashup ipuçları dikkatinize değer!
Yedek makine için ilk tercih! Pürüzsüz, dayanıklı ve yüksek değerli bin yuan makinesi için önerilir
"Predator City" sahnelendi "Jedi Rescue" "En Karizmatik Karakter" aslında soğukkanlı bir makine katiliydi.
Snapdragon 675 işlemcisinin ilk lansmanı yeni bir odak noktası haline geldi ve Meizu ve Redmi'nin orta sınıf amiral gemileri ortaya çıktı!
Zafer Kralı ve Kutsal Tanrı'nın Öncesi İnsan Eti Buldozer Xiang Yu'nun Kullanım Deneyimi
"Deniz Kızı", denizanası sokmalarından korkmadan "Usta Denizanası" na dönüştü, bunu nasıl yaptı?
Kia Niro Jirui resmi olarak 149.800 ila 189.800 arasında satış için listelendi
Aktif olmak için doğmuş adidas neo yaz zonkluyor
To Top