BLOG

Sağlık 4 Retinal Vessel

22.07.2018 tarihinde AKU Blogger yazdı.

Sağlık 4.0 da Bilgisayarlı Görme Uygulamaları: Retinal Damarların Tespiti
(Computer Vision Applications in Health 4.0 – Retinal Vessel Extraction)

Neural Net algoritmaları (SVM, kNN, CNN vs.), bilgisayarlı görme, kestirimsel veri analizi (predictive data science) gibi konulara blog sayfalarımızda, öğretici materyaller ve örneklerle yer vermeyi düşünüyoruz. Akademik ya da teorik bilgiye ulaşmak genelde mümkün olmakla birlikte, bu teorik bilgilerin günlük hayatımızda nerelerde ve nasıl kullanılabileceğine, dahası hangi araç ve gereçlerle bu teorik bilgilerden gerçek bir ürüne gidebileceğimize değineceğim. Blog yazıları, akademik makale olmadığı, samimi atmosferde yazıldığı için, doğası gereği kişisel görüşleri de içerecektir. Şunu belirtmek isterim ki, blog sayfalarında yazacağımız makalelerin çoğu, şirketimizin faaliyet alanında halihazırda çalıştığı konulardan seçilecektir. Çoğu kez zaman kıtlığından ya da her şeyi yazıya geçirme zorluğundan, makaleler kısa ve özet bilgi şeklinde sunulacaktır. Buna rağmen, konuyla ilgili amatör veya profesyonel, bize ulaşan herkes anlatılan proje/çözüm vs. hakkında detaylı bilgiye, açık kaynak kodlarına vs erişebilir.

Bu kısa girişten sonra, konumuza dönelim. Retinal damarların tespit edilmesi, tıp için (özellikle ophtalmology alanında) önemli bir konudur. Glaucoma, diabetic retinopathy, macular degeneration, hypertension gibi pek çok hastalığın teşhisinde kullanılır. Doktor ya da sağlık sektörü uzmanı olmadığım için, işin o yönünü sağlıkçılara bırakalım ve kendi alanımıza giren yönü ile “Deep Neural Network metotları ile Retina üzerindeki damarların otomatik olarak belirlenmesi" isimli konumuza dönelim.

Image Science Institute tarafından, bu çalışmaya (Retinal vessel extraction) temel teşkil etmesi, sonuçların karşılaştırılabilmesi amacıyla bir örnek veri kümesi hazırlanmış. Ben de oradan indirerek denemeler yaptım. (Klasik image processing yöntemleri ve CNN ile) resim veri setini isteyenler https://www.isi.uu.nl/Research/Databases/DRIVE/ adresinden indirebilirler. (Hem ham resimler hem de işlenmiş halleri mevcut. Sitede ayrıca konu hakkında detaylı bilgi de mevcut.

Önce, mevcut resmi bildiğimiz klasik yöntemlerle işlemeye çalışalım.

Bir görüntü işlemeci olarak böyle bir resme baktığımızda, damar olarak görünen kısımları nasıl algılarız? Birden fzla yöntem mevcut olmakla birlikte, klasik yaklaşımlardan ilk aklımıza gelen, edge detection (kenar bulma) algoritmasıdır. “Canny Edge detection” algoritmasını uygun parametrelerle çağırdığımızda, karşımıza çıkan sonucu “fena değil” olarak nitelemek mümkündür. (Henüz sadece 1 satır kod yazarak bu sonuca ulaştığımız düşünülürse, “fena değil” den öte, aslında “gayet tatminkar” da diyebiliriz)

Çok dikkatlice bakıldığında, bazı az belirgin damarlar hariç algoritmanın doğru çalıştığı görülmektedir.  Buna rağmen damar olmayan bazı “arka zemin” damar olarak bulunmuş, bazı hassas damarlarlar ise hiç belirlenememiştir. Üstelik çalıştığımız resim nispeten daha düzgün koşullarda alınmış görece “iyi” bir resimdir. Daha belirsiz resimlerde algoritma haliyle daha da zorlanacaktır. Diğer bir problem, belirli resimler için doğru çalışan parametreler, başka resimler için doğru çalışmayacak, parametreleri değiştirmek gerekecektir ki bu da istenmeyen bir durumdur. (Görüntü işlemecilerin bildiği gibi, Canny edge detectipon algoritmasında, 4-5 değer girilmek zorunludur. Edge direction, alpa, Low ve High değerleri v.b. Meraklılar Canny hakkında internette bolca bilgi, açık kaynak kodu vs bulabilirler.)

Şimdi aynı görseli, deep learning metodları ile yeniden işlemeye çalışalım. Öncelikle şunu belirtmek gerekir ki, deep learning metodları denemek, canny edge detection algoritması gibi pratik olmadığından, daha detaylı algoritmalar, parametreler ve “train set” lerle çalışmayı gerektirmektedir. Tüm kütüphaneyi burada veremediğimden, ilgilenenler olursa, bizimle iletişime geçerek çalışan kaynak kodlara ulaşabilirler.

Neticede, deep learning metodları kullanarak, görüntüyü zemin ve damar olarak sınıflandıralım. Deep learning kodumuz, her bir bölgenin zemin mi yoksa damar mı olduğuna karar versin, tek istediğimiz bu.

CNN tabanlı deep learning algoritmasına göre alınan sonuçların ise, klasik yöntemlere göre çok daha iyi olduğu gözlemlenmektedir.

Burada klasik yöntemleri kullanmanın tek avantajı, train etme işleminin olmaması ve daha kısa sürede sonuç veriyor olmasıdır.

İdealde, her 2 durumda da, “post-processing” dediğimiz işlemlere tabi tutularak sonuçlar iyileştirilmelidir. (Noktasal olarak belirlenmiş pixellerden çizgilerin oluşturulması gibi)

Sonuç olarak, CNN ya da diğer classification yöntemlerinin kullanıldığı deep learning temelli yaklaşımlar, bilgisayarlı görme alanında günden güne daha çok kullanılmaktadır. Özellikle önceden train edebileceğimiz bir set elimizde ise ilk etapta bu yaklaşım akla getirilebilir.

Hatalı ya da sağlam ürün resimlerinden bir set oluşturulması ve sistemin bu resimlere bakarak ürünün hatalı ya da sağlam olmasına karar vermesi gibi pek çok alanda kullanımları mümkündür. Özellikle problemin matematiksel olarak modellenmesinin mümkün olamadığı durumlarda çok pratik çözümler sunmaktadırlar. Kumaş hatalarının bulunması iyi bir örnektir mesela. Özellikle deri gibi, farklı renkler, farklı dokular söz konusu olduğunda klasik yaklaşımlar zorlanmaktadır.

 

AKU Vision Technologies olarak, Deep Learning, Machine Learning teknikleri ile bilgisayarlı görme, yapay zeka uygulamaları üzerinde çalışmaktayız. Zaman buldukça, burada konu ile ilgili daha detaylı makaleler yayınlamayı düşünüyoruz. Benzer uygulamalarımız için bizimle iletişime geçebilir, detaylı bilgi alabilirsiniz.

 

Paylaş: