Segmentasyon

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

Aşağıdaki görüntü, Android'deki görüntü segmentasyon modelinin çıktısını göstermektedir. Model, hedef nesneler ü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ı keşfetmeniz önerilir.

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

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

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

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

Android veya iOS dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerini zaten biliyorsanız, başlangıç ​​görüntü segmentasyon modelimizi indirebilirsiniz.

Başlangıç ​​modelini indirin

Model Açıklaması

DeepLab , giriş görüntüsündeki her piksele semantik etiketler (örn. kişi, köpek, kedi) atamak olan, anlamsal görüntü segmentasyonu için son teknoloji bir derin öğrenme modelidir.

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ırmasının aksinedir.

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

  1. DeepLabv1: Derin Evrişimli Sinir Ağları içinde özellik yanıtlarının hesaplandığı çözünürlüğü açıkça kontrol etmek için aşırı evrişim kullanıyoruz.
  2. DeepLabv2: Birden çok örnekleme hızında ve etkili görüş alanlarındaki filtrelerle birden çok ölçekte nesneleri sağlam bir şekilde bölümlere ayırmak için aşırı uzaysal piramit havuzunu (ASPP) kullanıyoruz.
  3. DeepLabv3: Daha uzun menzilli bilgileri yakalamak için ASPP modülünü görüntü seviyesi özelliği [5, 6] ile güçlendiriyoruz. Ayrıca eğitimi kolaylaştırmak için toplu normalleştirme [7] parametrelerini de dahil ediyoruz. Özellikle, eğitim ve değerlendirme sırasında farklı çıktı adımlarında çıktı özelliklerini çıkarmak için, BN'yi çıktı adımı = 16'da verimli bir şekilde sağlayan ve değerlendirme sırasında çıktı adımı = 8'de yüksek bir performans elde eden aşırı evrişim uyguluyoruz.
  4. DeepLabv3+: Özellikle nesne sınırları boyunca segmentasyon sonuçlarını iyileştirmek için DeepLabv3'ü 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, çıkarılmış kodlayıcı özelliklerinin çözünürlüğünü aşırı evrişim yoluyla değiş tokuş kesinliği ve çalışma süresi ile keyfi olarak kontrol edebilirsiniz.

Performans karşılaştırmaları

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

Model adı Model boyutu Cihaz GPU İşlemci
Derin laboratuvar 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 iplik kullanılmıştır.

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

Daha fazla okuma ve kaynaklar