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. Segmentasyonun 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 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 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.
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:
- 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.
- DeepLabv2: Birden çok örnekleme hızında ve etkili görüş alanlarındaki filtrelerle nesneleri birden çok ölçekte sağlam bir şekilde bölümlere ayırmak için aşırı uzamsal piramit havuzunu (ASPP) kullanıyoruz.
- 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.
- 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, çı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 2 iş parçacığı kullanılmıştır.