HMS ML Kit ile Resim Sınıflandırma

Bekir Yavuz Koc
Huawei Developers - Türkiye
4 min readNov 26, 2020

Huawei ML Kit Custom Model ile Deep Learning’in önemli algoritmalardan Convolutional Neural Network’u(CNN) kolaylıkla kullanabilirsiniz. CNN algoritması ile resimler yüksek bir başarı oranında sınıflandırılabilir. Örneğin kedi ile köpeğin resimlerini CNN ile train ettirdiğinizde, eğer yeterince veri kullandıysanız, yeni bir resmin kedi veya köpek olduğunu ayırt edebilecektir. HMS Custom model ile de hiçbir kod yazmadan oluşturabilir, train edebilir ve uygulamanızda rahatlıkla kullanabilirsiniz.

MindSpore Lite, entegrasyonu ve geliştirmeyi basitleştirmek için HMS ML Kit tarafından sağlanan özel modeller için oluşturulmuş bir frameworktur. MindSpore Lite ile birlikte kendi modelimizi oluşturabilir ve train ettirebiliriz.

HMS ML Kit, Transfer Learning işlevini sağlar. Deep learning ve model eğitimi ile, uygulamanızda hızla yeni modeller eğitebilir ve oluşturabilirsiniz. Şu anda yalnızca resim sınıflandırması desteklenmektedir.

Modeli oluşturmak için yapmanız gereken bazı aşamalar bulunmaktadır.

1-) Huawei Developers websitesine kayıt olmak

2-) HMS ToolKit plug-in’i indirmek

HMS ToolKit: Light-weight bir IDE aracı eklentisi olarak HMS Toolkit, uygulama oluşturma, kodlama, dönüştürme, hata ayıklama, test ve yayınlama işlemlerini gerçekleştirir. HMS Core API’lerini daha düşük maliyetler ve daha yüksek verimlilikle entegre etmenize yardımcı olur.

HMS ToolKit’i Android Studio’da Plugins bölümünde aratarak bulabilirsiniz. Plug-in’i indirdiğinizde Android Studio’yu yeniden başlatmanız gerekmektedir.

3-) Eğer kurulu değilse bilgisayarınıza Python indirmek ve kurmak.(Şu anda sadece 3.75 versiyonu desteklenmektedir.)

Bu aşamaların ardından HMS ToolKit’in AI Create özelliğini kullanmaya hazır hale geleceğiz. AI Create ile resimlerin sınıflandırılmasını hiçbir kod kullanmadan yapabileceğiz.

Resimleri sınıflandırabilmek adına:

  • Resimler yüksek kalitede olmalı ve ilgili sınıflara bölünmelidir. Resimlerin pathi ve sınıf isimleri yalnızca harf, rakam veya alt çizgi (_) karakterini içerir. Boşluklara ve diğer sembollere izin verilmez.
  • Eğitim veri setinin sınıflandırma numarasının alt sınırı 2, üst sınırı ise 1000'dir.
  • Eğitim veri setindeki her bir sınıf en az 10 resim içermelidir.
  • Desteklenen resim formatları: .bmp, .jpg, .jpeg, .png veya.gif’dir.

Bu örnekte Bursa’daki 5 önemli yeri sınıflandıracağız.

  • Panorama 1326 Bursa Fetih Müzesi
  • Pirinçhan
  • Saitabat Şelalesi
  • Ulu Camii
  • Uludağ

Veride tüm fotoğrafların yer aldığı klasör ile birlikte, test ve training veri seti için de fotoğraflar ayrılmış durumdadır. Dilerseniz, test ve traning klasöründe yer alan resimleri değiştirebilirsiniz.

Veri setini buradan indirebilirsiniz.

Modeli Oluşturma:

1-) HMS ToolKit’i indirip Android Studio’yu yeniden başlattığınızda, HMS bölümü açılacaktır. Bu bölümde Coding Assistant şeçeneğini şeçin.

2-) Coding Assistant’da AI sekmesine ardından da AI Create’e tıklayın.

3-) Ardından Image şeçeneğini şeçin. (Şu anda Text bölümü desteklenmemektedir.)

4-) Açılan pencerede train modeli şeçmemiz gerekmektedir. Eğer ki veri setini indirdiyseniz, buradaki traning_set klasörünü şeçebilirsiniz.

Output Model File Path ise, modelimiz eğitildikten sonra Mindspore dosyasının nerede oluşacağını belirttiğimiz bölümdür. Bu dosya mobil uygulamada kullanılacaktır.

Advanced bölümünü isterseniz kullabilirsiniz. Bu bölümde öğrenme işleminin sayısını ve hızını kontrol edebilirsiniz. Çok şeçmeniz halinde eğerki veri setiniz fazla ise öğrenme işlemi uzun sürecektir. Ayrıca, overfitting(fazla öğrenme) durumu ile karşılaşabilirsiniz.

Training Set’i belirledikten sonra Create Model butonuna basabilirsiniz. Bu butona bastığınızda öğrenme işlemi gerçekleşecektir.

Model Traning ve Doğruluğu:

Create Model’den sonra veri setinizin büyüklüğüne bağlı olarak belirli bir süre boyunca training işlemi gerçekleşecektir.

Training işleminin bitmesinin ardından MindSpore dosyası oluşacaktır. Buradaki örnekte accuracynin %94.44 olduğunu görüyoruz. Modelimizin başarılı bir şekilde çalışacağını öngörmekteyiz.

Model Testing:

Add test image bölümünde, veri setindeki testing klasörünü şeçerek modelimizin ne kadar doğru çalıştığını görebiliriz. Testing klasöründe, modelin daha önce karşılaşmadığı fotoğraflar yer almaktadır.

Test setini belirlediğimizde modelimizin 45 fotoğraftan 42'sini doğru ve 3 tanesini ise yanlış bildiğini görüyoruz. Böylelikle modelimizin çoğu resmi doğru sınıflandırdığını söylebiliriz.

Generate Demo butonuna tıkladığınızda sizin için demo bir uygulama oluşacaktır.

Demo uygulamada MindSpore dosyası ile birlikte assest kısmında bir kedi ile köpek resmi oluşturulacaktır. Bu iki resmi silip, test setindeki resimleri buraya yapıştırabilirsiniz.

Uygulamada Random From Assest’e tıkladığınızda Android Studio’da assest klasöründeki resimler yüklenecektir. Run butonuna tıkladığınızda da ilgili resmin sınıflandırılması yapılacaktır. Modelimiz, test doğruluğundaki gibi resimleri %93 oranında başarılı sınıflandıracaktır.

HMS Custom Model’i kullanarak hiçbir kod yazmadan kendi modelinizi oluşturabilir ve uygulamaya entegre edebilirsiniz. HMS ML Kit ve MindSpore ile bu işlemler oldukça kolay ve hızlı bir şekilde gerçekleşmektedir.

Referans:

Custom Model

AI Create

HMS ToolKit

Image Classification

--

--