Skip to content

Google Techable Machine Kullanımı Hakkında Rehber ve Meyve-Sebze Sınıflandırma Projesi

Notifications You must be signed in to change notification settings

fatihes1/Techable-Machine-Turkish-Directory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Techable-Machine-Turkish-Directory

Google Techable Machine Kullanımı Hakkında Rehber ve Meyve-Sebze Sınıflandırma Projesi

Bilgilendirme

Bu projede Kaggle üzerinden meyve ve sebzeleri içeren bu veri seti kullanılmıştır. Orijinal GitHub dosyaları Michael D'Argenio ait olup kaynak kodları yardımıyla farklı bir görüntü işleme projesi olarak düzenlenmiştir.

Öğretilebilir Makine (Teachable Machine) Nedir?

İlk versiyonu 2017 yılında yayınlanmış olan ve en kısa tanımı ile makine öğrenimi modelleri oluşturmayı hızlı, kolay ve herkes için erişilebilir olan web tabanlı bir araçtır denebilir. Öğretilebilir makine, web tarayıcımızda yaptığımız modelleri eğitmek ve çalıştırmak için Javascript’te makine öğrenmesi için kullanılan TensorFlow.js kitaplığını kullanmaktadır. Tek bir cümle ile ifade etmek istersek herhangi bir kodlamada yapmadan kendi derin öğrenme modelimizi geliştirmeye imkan sağlar. Bu aracı kullanımı ise oldukça basit :

  1. Örneklerimizi, modelimizin öğrenmesini istediğimiz sınıf veya kategoriler halinde gruplarız.
  2. Modelimizi tek bir buton ile eğitip, ardından yeni örnekleri doğru şekilde sınıflandırılıp sınıflandırılmadığını test ederiz.
  3. Modelimizi siteler, uygulamalar gibi birçok alan için ücretsiz bir şekilde indirebiliriz.

Öğretilebilir makine esnek bir yapıya sahiptir. Bu esnek yapı sayesinde halihazırda olan dosyalarımızı kullanabilir veya o an web kamerası veya mikrofonu kullanarak verilerimizi oluşturabiliriz.

Şuanlık sadece üç model sunmaktadır. Fotoğraf, ses veya poz sınıflandırabiliyoruz. Geliştiriciler yakın zamanda yeni modellerin geleceğini de belirtmektedir.

Öğretebilir makine ile yapılan tüm modeller, Javascript’in çalıştığı her yerde çalışabilen TensorFlow.js modelleridir. Bu nedenle Glitch, P5,js, Node.js gibi araçlar ile verimli çalışabilmektedir.

Adım Adım Teachable Machine Kullanımı

Adım 1: Teachable Machine Üzerinden Model Oluşturma

Projenin Seçilmesi: Teachable Machine oldukça kolay bir arayüze sahiptir. Bu proje de görüntü işleme üzerine bir model geliştirip yerel bilgisayarımızda çalıştırmayı hedefliyoruz. https://teachablemachine.withgoogle.com/ adresine gidin ve ‘Get Started’ kısmına tıklayınız. Sonrasında ‘Image Project’ ksımını seçerek devam edin. Bu seçim bize resimlerden model oluşturup eğitebileceğimiz bir sayfa açar.

Veri Setinin Oluşturulması: Resimleri sınıflandırmak ve modeli eğitmek için sınıfları ekleyip onlara etiket atamalısınız. Bu etiketleri yani sınıf adlarını model eğitildikten sonra nesneyi tanıdığında ne olduğunu belirtmek için kullanacak.

Bir grubu ‘Arka Plan’ sınıfı olarak atmak mantıklı olacaktır. Böylelikle herhangi bir nesne konulmadığında arka plan çıktısı alırız. Buna ek olarak arka plandaki ayrıntıları diğer etiketli sınıflardan biriyle ilişkilendirilmemesine yardımcı oluruz.

Bir sınıfa görüntü eklemek için, webcam kullanabileceğiniz gibi başka kaynaktan görüntüler yükleyebiliriz. İnternet üzerinden hazır veri setleri bulacağımız gibi kendi veri setlerimizi de oluşturabiliriz. Bu örnekte Kaggle’da bulunan ve bu link (https://www.kaggle.com/kritikseth/fruit-and-vegetable-image-recognition) üzerinden erişilebilir olan meyve ve sebzeler üzerine fotoğraflardan oluşan seti kullanıyoruz.

Modeli Eğitmek: Tüm sınıfları oluşturduktan ve veri setimizin yeteri kadar fotoğraf içerdiğinden emin olduktan sonra modeli eğitme aşamasına gelmiş oluyoruz. Modeli eğitmek için tarayıcı üzerindeki sekmeyi açık bırakmalısınız ve elbette modeli eğitmek biraz zaman alabilmektedir. Tamamlandıktan sonra modeli test etme kısmına gelmiş oluyoruz.

Modeli Test Etmek: Şimdi eğitilmiş modelimizi test etme ve başarısının nasıl olduğunu görebiliriz. Önizleme bölgesine gidip ‘Input’ seçeneğini açarsak web kameramız açılacaktır. Web kamerası önüne eğitirken kullandığınız nesneleri koyarak doğru tahmin edip etmediğini kontrol edebiliriz. Eğer iyi bir performans almadığınızı düşünüyorsanız modeli dağa çok fotoğraf ile besleyerek tekrar eğitmeyi deneyin, memnunsanız modeli dışa aktarma zamanı gelmiştir.

Modeli Dışarı Aktarma: Modeli dışarı aktarmak için ‘Export Model’ butonuna tıklayın. Yeni bir pencere açılacaktır. ‘Tensorflow’ sekmesine tıkladıktan sonra hemen sonrasında ‘Keras’ türünü seçiniz. Bu işlemden sonra ‘Download my model’ diyerek modelinizi indirin. Modei sıkıştırmak ve indirmeye hazır hale getirmek birkaç dakika sürebilir. Bir ‘.zip’ doyası inecektir. Zip içerisindeki dosyaları dışarı çıkarttığınızda ‘keras_model.h5’ dosyası ve bir ‘label.txt’ dosyası görmelisiniz. Bu dosyları konumunu unutmayacağınız bir yere taşımanızı tavsiye ederim.

Adım 2: Python 3 Kurulumu

Yapılması gereken ilk işlem eğer bilgisayarınızda halihazırda kurulu değilse Python 3’ü kurmak olacaktır. https://www.python.org/downloads/ adresine gidip işletim sisteminiz için doğru kurulumu indirip çalıştırabilirsiniz. Kurulum sırasında, Python’u Path’e eklmek için kutuyu işaretlediğinizden emin olun.

Python’u tam olarak yükledikten ve Path’e ekledikten sonra, terminalizden veta komut istemcisini açıp ‘python –version’ ve hemen ardından ‘python3 –version’ yazın. Bu önemlidir çünkü; ‘python’ veya ‘python3’ komutunun Python 3 kurulumunuzla eşleşip eşleşmediğini bilmek istiyoruz. Python komut satırlarını çalıştırmak ve teni Python paketleri yüklemek gibi işlemler için bilmemiz gerek. Python ve Python3 ile hiçbir yürütülebilir dosya eşlenmemiş ise, işletim sisteminizin Path kısmına ortam değişkenleri eklemeyi deneyebilirsiniz.

Şimdi bu projeyi yaparken yararlandığımız dosyaları, makine öğrenimi modelini ve demo Python programını projeyi farklı bir veri seti ile yapan Micheal’in Github deposundan veya direkt olarak bu projeyi şahsi Github depomdan almanız gerekecek. Bir git istemcisi kurabilir ve depoyu klonlayabilir veya isterseniz direkt tarayıcınızdan deponun zip dosyasını indirebilirsiniz:

Micheal Github Depo Linki : https://github.com/mjdargen/Teachable-Machine-Object-Detection

Adım 3: Python Ortamını Ayarlama: OpenCV ve TensorFlow

Bu geliştirme ortamı için kurulum sürecini basitleştirmek adına Micheal’in hazırladığı kurulum komut dosyalarını kullanacağız. Github üzerinden aldığım dosyalar içerisinde ‘installation_scripts’ adlı klasörün içerisine girmeliyiz. İşletim sistemimize uygun olan çalıştırmalıyız.

Windows Kurulumu : Python 3’ün kurulu olduğunu varsayar.Python 3 çalıştırılabilir dosyanızın ‘python3’ ile çağrıldığını varsayar. Aksi takdirde, kabuk komut dosyasını düzenlemeniz ve ‘python3’ komutunun her örneğini ‘python’ ile değiştirmeniz gerekir. ‘Windows_install.btt’ toplu komut dosyasını çalıştırmalıyız ancak yönetici olarak çalıştırmayalım. Sistem ve internet hızına bağlı olarak yarım saat veya daha fazla sürebilmektedir.

Mac Kurulumu: Python 3’ün kurulu olduğunu varsayar.Python 3 çalıştırılabilir dosyanızın ‘python3’ ile çağrıldığını varsayar. Aksi takdirde, kabuk komut dosyasını düzenlemeniz ve ‘python3’ komutunun her örneğini ‘python’ ile değiştirmeniz gerekir. İndirilen dosyların olduğu klasörde açılan terminale şu kodu yazarak komut dosyasını çalıştırılabilir hale getirmeniz gerekmektedir :

  • sudo chmod + x ./installation_scripts/mac_install.sh 

 Kabuk komut dosyasını şu komutu kullanarak çalıştırabilirsiniz:

  • ./installation_scripts/mac_install.sh

 Sistem ve internet hızına bağlı olarak yarım saat veya daha fazla sürebilmektedir.

Linux Kurulumu: Python 3’ün kurulu olduğunu varsayar.Python 3 çalıştırılabilir dosyanızın ‘python3’ ile çağrıldığını varsayar. Aksi takdirde, kabuk komut dosyasını düzenlemeniz ve ‘python3’ komutunun her örneğini ‘python’ ile değiştirmeniz gerekir. İndirilen dosyların olduğu klasörde açılan terminale şu kodu yazarak komut dosyasını çalıştırılabilir hale getirmeniz gerekmektedir :

  • sudo chmod + x ./installation_scripts/linux_install.sh

  Kabuk komut dosyasını şu komutu kullanarak çalıştırabilirsiniz:

  • ./installation_scripts/inux_install.sh

 Not: OpenCV ve Tensorfow kurulumlarını resmi siteleri üzerinden de yapabilirsiniz.

Adım 4: Kaynak Kodunu Ayarlama

Artık OpenCV ve TensorFlow geliştirme ortamı kurulumlarına sahip olduğumuza göre Teachable Machine modelimizi çalıştırabiliriz. Sağlanılan örnek modeli veta oluşturup dışa aktardığınız modeli kullanabilirisiniz

Modelimizi dışarı aktardırdıktan ve sonrada ‘.zip’ dosyasından dizine çıkardıktan sonra ‘.h5’ uzantılı dosyamız ve ‘label.txt’ dosyamız vardı. Bunları kopyalıp Github üzerinden indirdiğimiz dosyların dizininde bulunan ‘la_croix_model’ klasörünün içine yapıştırıp içeride aynı adla bulunan dosyalarla değiştir dememiz yeterlidir.

Webcam video beslemesinin genişlik ve yükselliğini piksel cinsenden belirlemek için ‘tm_obj_det.py’ dosyasını sağ tık yaptıktan sonra ‘Edit with IDLE’ diyebiliriz (Windows bilgisayarlar için). Açtıktan sonra ‘frameWidth’ ve ‘frameHeight’ değişkenlerini güncelleyebilirsiniz veya bu kısma hiç dokunmadan devam edebilirsiniz.

İsterseniz güven eşiğini (conf_threshold)  ayarlayabilirsiniz. Bu değişken, modelimizin görüntüyü etiketlemeden ve tahmini söylemeden mnce ne kadar emin olmasını belirlediğimiz bir yüzde değeridir. Varsayılan olarak güven eşiği %90’a ayarlanmıştır.

Son olarak, videonun düzgün bir şekilde gösterilmesi ile ilgili sorunla karşılaşıyorsanız, matplotlib uygulamasını kullanabilirsiniz. Bunun için ‘cv.imshow’ ve ‘cv2.waitKey’ satırlarını yorumlamanız gerekecektir. Daha sonrasında ‘import matplotlib’ ve kodun sonlarına doğru olan olan ‘plt’ kod satırlarının yorumlarını kaldırmanız gerekecektir.

Adım 5: Çalıştırma Zamanı

Artık kodumuz çalışacak şekilde ayarlanmış olmalı. Dizine gidin, terminal yardımıyla veya kullandığınız bir IDE (Tümleşik Geliştirme Ortamı) aracılığıyla ‘tm_obj_det.py’ dosyasını çalıştırın. Program, hangi nesneyi tanıdığını etiketleyecek ve nesnenin adını söyleyecektir.

Not: Programı kapatmak için CTRL + C tuşlarını kullanın aksi takdirde çalışmaya devam edecektir veya kullandığınız IDE üzerinden durdurma butonuna basabilirsiniz. (Pycharm da olduğu gibi)

Örnek Çıktı: (Telefon ekranından portakal resmi gösterilmiştir.)

About

Google Techable Machine Kullanımı Hakkında Rehber ve Meyve-Sebze Sınıflandırma Projesi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published