Tensorflow Object Detection Api Nedir? Nasıl Kullanılır?
0

Tensorflow Object Detection Api Nedir? Google’un nesne tanıma için sunduğu önceden eğitilmiş modelleri kullanmamıza yarayan araçtır diyebiliriz. Bu modeller COCO veri seti ile eğitilmiş olup günlük hayatta fazlaca karşılaştığımız 80 tane nesneyi tanıyabilir. Buradan COCO veri seti ve içerdiği nesneler hakkında detaylı bilgi edinebilirsiniz.


Resim-1

Tüm modeller aynı veriler ile eğitiliyor ise arasındaki farkın ne olduğunu merak ediyor olabilirsiniz. Nesne tanıma modelleri arasındaki temel fark, modellerin başarılarının hızlarına oranıdır. Resim-1’deki “Speed” sütunundaki değerler modellerin “ms” cinsinden hızlarını temsil ediyor. Aynı şekilde Resim-1’deki “COCO Map[^1]” sütunundaki değerler ise modellerin COCO veri setindeki nesneleri tanıma başarısını temsil ediyor. Donanımınızın yeterli olduğunu düşünüyorsanız, genellikle bu ölçüt ekran kartınızın gücü ile doğru orantılıdır; başarım oranı yüksek modelleri seçebilirsiniz. Aksi durumda başarımı düşük ama hızlı modelleri tercih etmelisiniz. Burada önemli olan kısım bu modeller ile ne yapmak istediğinizdir. Eğer gerçek zamanlı nesne tanıma yapmak istiyorsanız, hızlı modeller seçmeniz mantıklı olacaktır. Tek bir resim üzerinde nesne tanıma yapmak istiyorsanız ve başarı oranı sizin için önemli ise daha ağır modeller seçebilirsiniz.

Resim-2

Tensorflow Object Detection Api’yi buradan indirebilirsiniz. Açılan sayfada Resim-2’deki kırmızı kutucuklara sırasıyla tıklamanız yeterli olacaktır. İşlemler sonucunda “models-master.zip” adında bir dosyanın inmeye başlamış olması gerekiyor. İndirdiğiniz dosyayı rar’dan çıkarın ve adını models olarak değiştirin, bu işlem dosyaya ulaşırken sürekli “models-master” yazmaktan kurtulmak için, teknik bir tarafı yok. Yine aynı şekilde ulaşmamız kolay olsun diye models klasörünü “C:\” dizinine kopyalayalım.

Resim-3

Şimdi ise Python, Tensorflow vb. gereksinimlerin sürümlerinin değişmesi halinde projemizin çalışmaması durumuna karşı Virtualenv oluşturacağız. Virtualenv sayesinde Python’u ve kullandığımız kütüphaneleri, projelerimizin gereksinimlerince özelleştirmiş ve ayırmış oluyoruz. Örnek olarak kullanıcının sadece “Hello World” yazdırmak istediği durumlarda görüntü işleme, yapay zekâ kütüphanelerini yüklemesi anlamsızdır. Ya da Tensorflow kütüphanesinin n sürümünü kullanıyorsunuz, sürüm n+1 olduğunda bazı fonksiyonların kullanımı değişebilir, bu durumda yazdığımız kodlarda hata çıkmasını istemeyiz. Öncelikle Virtualenv’yi Python’a eklememiz gerekiyor. Python paket yöneticisi Pip’i kullanacağız. Python Paket Yöneticisi(Pip) Anaconda ile kurulu geliyor. Anaconda’yı buradan Python 3.x sürümü için indirip kurabilirsiniz. Anaconda kurulum adımları gayet basit, indirin ve kurulum sihirbazını takip edin. Kurulum tamamlandıktan sonra Başlat’tan Anaconda Prompt’u açın ve Resim-3’deki gibi “pip install virtualenv” yazıp Enter’a basın. Virtualenv yüklendikten sonra iki defa “cd..” yazarak “C:\” dizinine ulaşalım. Şimdi ise Virtualenv oluşturacağız. Ben adını Resim-3’teki 4 numaralı adımda gözüktüğü gibi “computer_vision” yaptım, siz istediğiniz ismi verebilirsiniz.

Resim-4

Yaptığımız işlemlerden sonra “C:\” dizininin Resim-4’teki gibi gözükmesi gerekiyor. Resim-4’teki kırmızı kutuların içindeki klasörler mevcut ise her şeyi doğru yaptınız demektir.

Resim-5

Anaconda Prompt’u tekrardan açıp oluşturduğumuz Virtualenv’yi aktif edelim. Bu işlemi yapabilmek için “C:\” dizininde, Resim-5’teki gibi “computer_vision\Scripts\activate” yazmamız gerekiyor. İmlecin en solunda Resim-5’teki gibi (computer_vision) yazısını görüyorsanız Virtualenv aktif olmuş demektir.

Resim-6

Virtualenv’yi aktif ettiğimize göre nesne tanıma yapmak için gerekli kütüphaneleri yükleyebiliriz. Tensorflow’u Gpu için yüklemek istiyorsanız CUDA ve cuDNN kurulumlarını yapmış olmanız gerekiyor, “Tensorflow Nedir? Nasıl Kurulur? ” isimli makalemde bu kurulumları anlattım. Modelleri Gpu ile çalıştırmak istiyorsanız ve kurulumları tamamladıysanız, Resim-6’daki gibi “pip install tensorflow-gpu==1.14 pillow opencv-python matplotlib protobuf” komutunu yazıp Enter’a basın. Modelleri Cpu üzerinde çalıştırmak istiyorsanız, Resim-6’daki kırmızı kutu içerisindeki yazı yerine “pip install tensorflow==1.14 pillow opencv-python matplotlib protobuf” yazın ve Enter’a basın.
Pip install yazısından sonraki her boşluk bir kütüphaneyi temsil ediyor. Tensorflow’u nesne tanımak, Opencv, Pillow, Matplotlib’i resimleri işlemek ve göstermek, Protobuf’u ise model ve eğitim parametrelerini yapılandırmak, kütüphaneleri derlemek için kullanacağız.

Resim-7

Resim-6’daki kurulumlar tamamlandıktan sonra protobuf ile kütüphaneleri derlemek için yine “C:\” dizinine gidelim. Resim-7’deki gibi “cd models/research” yazalım ve Enter’a basalım. Ardından yine Resim-7’deki gibi “protoc object_detection/protos/*.proto –python_out=.” komutunu yazalım ve Enter’a basalım. Hiçbir çıktı vermediyse Protobuf başarı ile çalışmış demektir.

Resim-8

Tüm kurulumları tamamladık. Son olarak ilgili dosyayı buradan Resim-8’de gösterildiği gibi indiriyoruz. Bu işlemleri yaptığımızda “mshowto_object_detection-master” adında bir dosya inmesi gerekiyor. Bu dosyayı modelleri çalıştırmak için kullanacağız. Bu dosya içindeki “object_detection.py” isimli dosyayı “C:\models\research\object_detection” adresine kopyalayalım.

Resim-9

Anaconda Prompt’u açıp Resim-9’daki gibi Virtualenv’yi aktif edelim ve “C:\models\research\object_detection” adresine gidelim.“Object Detection” klasörü içindeyken “python object-detection.py” yazalım ve enter’a basalım.

Resim-10

Bir süre bekledikten sonra varsayılan modelin inmiş ve Resim-10’un solundaki gibi bir resmin çıkmış olması gerekiyor. Bu resim çıktıktan sonra herhangi bir tuşa basın. Tuşa bastıktan sonra ise Resim-10’un sağındaki sahil resmi karşınıza çıkacak. Tekrar bir tuşa basıp modelin çalışmasını sonlandırabilirsiniz.

Resim-11

Kodu her çalıştırdığımızda yeniden model indirmesini istemeyiz. “C:\models\research\object_detection” içerisine kopyaladığımız “object-detection.py” isimli klasörü herhangi bir metin editörü ile açın. Resim-11’de gözüken satırların hepsini silin. Farklı modeller indirmek için başka bir yöntem göstereceğim.

Resim-12

Resim-10’daki resimler Tensorflow Object Detection Api ile beraber geliyor. Kendi resimleriniz üzerinde nesne tanıma yapmak için “C:\models\research\object_detection\test_images” adresine gidin ve resimlerinizi buraya kopyalayın. Aynı zamanda resimlerinizi “image1”, “image2” formatında kaydedin. “C:\models\research\object_detection” içerisine kopyaladığımız “object-detection.py” isimli klasörü herhangi bir metin editörü ile açın. Resim-12’de gözüken satırı bulun. Kırmızı kutu içerisindeki 3 rakamını “C:\models\research\object_detection\test_images” adresine kaç tane resim attıysanız bir fazlası olarak değiştirin. Örneğin image1, image2, image3 olarak 3 tane resim attıysanız oradaki 3 rakamını 4 olarak değiştirmeniz gerekiyor. Sonrasında Resim-9’daki işlemleri yapıp modelin tahminlerini görebilirsiniz.

Resim-13

Modelin başarısı sizin tatmin etmediyse, Resim-1’deki sayfaya buradan gidebilir, istediğiniz modele tıklayıp indirebilirsiniz. Model indikten sonra rar’dan çıkarmadan “C:\models\research\object_detection” klasörü içine kopyalayın. “C:\models\research\object_detection” içerisine kopyaladığımız “object-detection.py” isimli klasörü herhangi bir metin editörü ile açın. Resim-13’de kırmızı kutu içerisindeki satırı bulun ve silin. İndirdiğiniz modelin adını tek veya çift tırnak içerisinde yazın. “model_adi.rar” isminde bir model indirdiyseniz, Resim-13’deki ilgili satırın MODEL_NAME = ‘model_adi’ olması gerekiyor.

Bu makalemde, nesne tanıma yapmak için kullanılan Tensorflow Object Detection Api kurulum ve çalıştırma adımlarını anlatmaya çalıştım. Sizde farklı modeller indirip başarılarını karşılaştırabilirsiniz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: Object Detection, Nesne Tespit, Araba Tanıma, Resim Tanıma, Bitirme Ödevi, Nesne Tanıma, Hayvan Tanıma, Plaka Tespiti, Tensorflow Gpu, TensorflowCpu, Cuda, Deep Learning, Derin Öğrenme, Makine Öğrenmesi, Machine Learning, Yapay Zekâ, Python, Tensorflow

Bu İçeriğe Tepkin Ne Oldu?
  • 8
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 1
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Fırat Üniversitesi Yazılım Mühendisliği son sınıf öğrencisiyim. Deep Learning, Computer Vision, Image Processing konuları üzerinde çalışıyor ve bu teknolojileri mobil, gömülü sistemlere entegre etmeye uğraşıyorum

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir