Genel

TensorFlow’da Nesne Algılama Eğitimi

Tek bir görüntüdeki birden fazla nesneyi belirleme ve yerelleştirme yeteneğine sahip doğru Makine Öğrenmesi Modelleri oluşturmak, bilgisayar görmesinde temel bir zorluk olarak bilinir. Ancak, Derin Öğrenmedeki son gelişmelerle, Nesne Tespiti uygulamalarının geliştirilmesi her zamankinden daha kolaylaştı. TensorFlow’un Nesne Algılama API’si, TensorFlow’un üzerine inşa edilmiş, nesne algılama modellerini oluşturmayı, eğitmeyi ve onları kullanmayı kolaylaştıran açık kaynaklı bir yazılımdır. Nesne Algılama Eğitiminde, aşağıdaki konuları ele alacağım:

  • Nesne Algılama Nedir?
  • Nesne Algılama Uygulamaları
  • Nesne Algılama İş Akışı
  • TensorFlow İle Nesne Algılama (Demo)

Nesne Algılama Nedir?

Nesne Algılama, araba, bisiklet, trafik ışıkları, çiçekler ve insanlar gibi gerçek dünyadaki nesne örneklerini hareketsiz görüntülerde veya videolarda bulma işlemidir. Bir görüntüyü bir bütün olarak daha iyi anlayabilmemizi sağlayan, görüntü içindeki birden fazla nesnenin tanınmasına, yerelleştirilmesine ve algılanmasına olanak tanır. Genellikle görüntü alma, güvenlik, gözetleme ve gelişmiş sürücü destek sistemleri (ADAS) gibi uygulamalarda kullanılır.
Nesne Algılama, birden çok yolla yapılabilir:

  • Özellik Tabanlı Nesne Algılama
  • Viola Jones Nesne Tespiti
  • HOG Özellikleri ile SVM Sınıflandırması
  • Derin Öğrenme Nesne Tespiti

Bu Nesne Algılama Eğitiminde , Tensorflow hesaplama için Derin Öğrenmeyi kullandığından Derin Öğrenim Nesne Tespiti’ne odaklanacağız .

Nesne Tespiti Uygulamaları

Yüz tanıma: 

“ DeepFace ” adı verilen derin öğrenme yüz tanıma sistemi , Facebook’ta insan yüzlerini dijital görüntüde çok etkili bir şekilde tanımlayan bir grup araştırmacı tarafından geliştirilmiştir . Google, görüntüdeki kişiye göre tüm fotoğrafları otomatik olarak ayıran Google Foto’da kendi yüz tanıma sistemini kullanır. Yüz Tanıma’da gözler, burun, ağız ve kaşlar gibi çeşitli bileşenler vardır.

Kişi Tespiti:

Evet Nesne Algılama insanlar için de kullanılabilir, örneğin; festivaller sırasında kalabalık istatistiklerini analiz etmek için kullanılabilir . Bunlar, insanlar hızlı bir şekilde çerçeveden dışarı çıktıkça daha zor olma eğilimindedir. (Çerçeve=Nesneleri kapsayan dikdörtgenler)

Kendi Kendini Süren Arabalar:

Kendi kendini süren arabalar hiç şüphesiz gelecekte her yerde olacaklar. Ancak, arkasındaki çalışma, çoklu radar, lazer ışığı, GPS, kilometre sayacı ve bilgisayar görüşü dahil olmak üzere çevrelerini tespit etmek için birden fazla tekniği birleştirdiği için çok zordur. Gelişmiş kontrol sistemleri, uygun gezinme yollarının yanı sıra engelleri tanımlamak için bilgileri yorumlar ve görüntü algılayıcısı yolundaki herhangi bir yaşam belirtisi algıladığında, otomatik olarak durur. Bu çok hızlı gerçekleşir ve sürücüsüz otomobillere doğru büyük bir adımdır.

Güvenlik:

Nesne Algılama, Güvenlik’te çok önemli bir rol oynar. Apple’ın kimliği veya tüm bilim kurgu filmlerinde kullanılan retina taramalarını düşünün, hepsi nesne tanıma ile yapılır. Ayrıca, suçluları bulmak veya soyguncunun aracını tespit etmek için güvenlik güçleri tarafından da kullanılır. Yapabileceğiniz uygulamalar sınırsız.

Nesne Algılama İş Akışı

Her Nesne Algılama Algoritması farklı bir çalışma şekline sahiptir, ancak hepsi aynı prensipte çalışır. Özellik Çıkarma: Elindeki giriş görüntülerinden özellikleri çıkarır ve görüntünün sınıfını belirlemek için bu özellikleri kullanır. MatLab, Açık CV, Viola Jones veya Derin Öğrenme yoluyla olsun.

Artık Nesne Algılama’nın temel iş akışını anladığınıza göre Tensorflow ile Nesne Algılama’ya geçebiliriz.

TensorFlow İle Nesne Algılama

İhtiyacımız olacaklar

  • Python
  • TensorFlow
  • Tensorboard
  • Protobuf v3.4 veya üzeri

Ortamı Kurmak: Şimdi TensoFlow ve TensorFlow GPU’yu indirmek için pip veya conda komutlarını kullanabilirsiniz:

Daha sonra gerekli diğer kütüphaneleri ekleyelim

  • Sonra, Protobuf’u indirmemiz gerekiyor, Protokol Tamponları (Protobuf), Google’ın yapılandırılmış verileri serileştirmek için dilden bağımsız, platformdan bağımsız, genişletilebilir bir mekanizmadır XML ​​gibi düşünün, fakat daha küçük, daha hızlı ve daha basit. Bu demo için Protobuf indirin veya üstünü indirip çıkartmanız gerekiyor.
  • Şimdi TensorFlow’ın Modelini Github ’dan Klonlamanız veya İndirmeniz gerekiyor. Bir kere indirildikten ve çıkartıldıktan sonra “models-master” adını sadece “models” olarak yeniden adlandırın.
  • Şimdi sadelik için, “modelleri” ve “protobuf” u bir tek “Tensorflow” klasörü altında tutacağız.
  • Daha sonra, Tensorflow klasörünün içine ve sonra araştırma klasörünün içine girip bu komutu kullanarak oradan protobufu çalıştırmamız gerekiyor:
  • Bunun işe yarayıp yaramadığını kontrol etmek için, models> object_detection> protos içindeki photos klasörüne gidebilir ve orada her proto dosyası için oluşturulan bir python dosyası olduğunu görebilirsiniz.

Ana Kod

Ortam ayarlandıktan sonra, “object_detection” dizinine gidip yeni bir python dosyası oluşturmalısınız. Kodunuzu yazmak için Spyder veya Jupyter kullanabilirsiniz. Öncelikle tüm kütüphaneleri import etmemiz gerekiyor.

Daha sonra COCO veri setinde eğitilmiş olan modeli indireceğiz. COCO, Bağlamda Ortak Nesneler anlamına gelir; bu veri kümesi, yaklaşık 330bin etiketli görüntüler içerir. Şimdi model seçimi, Hız ve Doğruluk arasında önemli bir denge kurmanız gerektiğinden önemlidir. İsteğinize ve sistem belleğine bağlı olarak, doğru model seçilmelidir.

“Modeller> research> object_detection> g3doc> detection_model_zoo” içerisinde farklı hız ve hassasiyete sahip tüm modeller bulunur (mAP).

Sonra, gerekli modeli ve kullanmak için Tensorflow tarafından oluşturulan donmuş çıkarım grafiğini sunuyoruz.

Bu kod, bu modeli internetten indirecek ve söz konusu modelin donmuş çıkarım grafiğini çıkaracaktır.

Sonra, tüm etiketleri yükleyeceğiz.

Şimdi, görüntü verilerini işlenmek üzere bir numPy dizisine dönüştüreceğiz.

Test amacıyla görüntülere giden yol burada tanımlanmıştır. Burada, sağlanan resim sayısı n olan i’deki (1’den n + 1’e) için “image [i]” adında bir adlandırma kuralımız var.

Bu kod, nesneleri algıladığı, kutuları oluşturduğu ve o nesnenin sınıfını ve sınıf puanını verdiği tek bir görüntünün çıkarımını çalıştırır.

Yukarıda tanımlanan tüm fonksiyonları çağıracak ve tüm giriş görüntülerinde çıkarımı tek tek yürütecek olan ve sonuçta nesnelerin etiketlerle algılandığı görüntülerin çıktısını ve o nesnenin yüzdesini / puanını verecek olan Final döngümüz Eğitim verilerine benzer.

Buraya kadar geldiğiniz için teşekkür ederim. TensorFlow ile ilgili yeni makaleler için sitemizi takip edin.

1 Yorum

1 Yorum

  1. Pingback: TensorFlow’da Nesne Algılama Eğitimi 2: Gerçek Zamanlı Nesne Algılama - teknosfer

Cevap bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Popüler

En üste