Segmentasyon

Görüntü segmentasyonu, dijital bir görüntüyü birden fazla bölüme (görüntü nesneleri olarak da bilinen piksel kümeleri) bölme işlemidir. Bölümlendirmenin amacı, bir görüntünün temsilini basitleştirmek ve/veya daha anlamlı ve analiz edilmesi daha kolay bir şeye dönüştürmektir.

Aşağıdaki resim, Android'deki görüntü segmentasyon modelinin çıktısını göstermektedir. Model, hedef nesnelerin üzerinde yüksek doğrulukla bir maske oluşturacaktır.

Başlamak

TensorFlow Lite'ta yeniyseniz ve Android veya iOS ile çalışıyorsanız, başlamanıza yardımcı olabilecek aşağıdaki örnek uygulamaları incelemeniz önerilir.

Görüntü segmentasyon modellerini yalnızca birkaç satır kodla entegre etmek için TensorFlow Lite Görev Kitaplığı'ndaki kullanıma hazır API'den yararlanabilirsiniz. Modeli TensorFlow Lite Interpreter Java API'sini kullanarak da entegre edebilirsiniz.

Aşağıdaki Android örneği, her iki yöntemin uygulamasını sırasıyla lib_task_api ve lib_interpreter olarak göstermektedir.

Android örneğini görüntüle

iOS örneğini görüntüle

Android veya iOS dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine zaten aşina iseniz başlangıç ​​görseli segmentasyon modelimizi indirebilirsiniz.

Başlangıç ​​modelini indirin

Model Açıklaması

DeepLab , anlamsal görüntü segmentasyonu için son teknoloji ürünü bir derin öğrenme modelidir; burada amaç, giriş görüntüsündeki her piksele anlamsal etiketler (örneğin kişi, köpek, kedi) atamaktır.

Nasıl çalışır

Semantik görüntü segmentasyonu, bir görüntünün her pikselinin belirli bir sınıfla ilişkili olup olmadığını tahmin eder. Bu, dikdörtgen bölgelerdeki nesneleri algılayan nesne algılama ve genel görüntüyü sınıflandıran görüntü sınıflandırmanın tersidir.

Mevcut uygulama aşağıdaki özellikleri içerir:

  1. DeepLabv1: Derin Evrişimli Sinir Ağlarında özellik yanıtlarının hesaplandığı çözünürlüğü açıkça kontrol etmek için tehlikeli evrişim kullanıyoruz.
  2. DeepLabv2: Nesneleri birden çok ölçekte, birden çok örnekleme hızına ve etkili görüş alanına sahip filtrelerle sağlam bir şekilde bölümlere ayırmak için atrous uzamsal piramit havuzu (ASPP) kullanıyoruz.
  3. DeepLabv3: Daha uzun menzilli bilgileri yakalamak için ASPP modülünü görüntü seviyesi özelliğiyle [5, 6] güçlendiriyoruz. Eğitimi kolaylaştırmak için toplu normalizasyon [7] parametrelerini de dahil ediyoruz. Özellikle, eğitim ve değerlendirme sırasında farklı çıktı adımlarında çıktı özelliklerini çıkarmak için şiddetli evrişim uyguluyoruz; bu, BN'nin çıktı adımı = 16'da verimli bir şekilde eğitilmesine olanak tanıyor ve değerlendirme sırasında çıktı adımı = 8'de yüksek bir performans elde ediyor.
  4. DeepLabv3+: DeepLabv3'ü, özellikle nesne sınırları boyunca segmentasyon sonuçlarını iyileştirmek için basit ama etkili bir kod çözücü modülü içerecek şekilde genişletiyoruz. Ayrıca, bu kodlayıcı-kod çözücü yapısında, hassas evrişim yoluyla çıkarılan kodlayıcı özelliklerinin çözünürlüğü, hassasiyet ve çalışma süresi açısından keyfi olarak kontrol edilebilir.

Performans kıyaslamaları

Performans kıyaslama numaraları burada açıklanan araçla oluşturulur.

Model adı Modeli boyutu Cihaz GPU İşlemci
Deeplab v3 2,7 MB Piksel 3 (Android 10) 16ms 37ms*
Piksel 4 (Android 10) 20ms 23ms*
iPhone XS (iOS 12.4.1) 16ms 25 ms**

* 4 konu kullanıldı.

** En iyi performans sonucu için iPhone'da 2 iş parçacığı kullanıldı.

Daha fazla okuma ve kaynaklar