Bu yazımızda Microsoft’un açık kaynaklı derin öğrenme kütüphanesi olan daha önceki yazılarımızda incelediğimiz Cognitive Toolkit (CNTK) ile Microsoft’un kullanıcıların daha iyi gözlemlemesi için yayınladığı örneklerden bir tanesi olan ve tanıttığımız resimdeki objeleri algılamamızı sağlayan FastRCNN algoritmasını adım adım birlikte hayata geçireceğiz.
Azure Data Science Virtual Machine
Microsoft’un bulut sistemi olan Azure platformunda bilimsel çalışmalar yapabilmek adına geliştirilmiş ve ihtiyacımız olan bir çok yapının önceden kullanıma hazır bir şekilde bulundurduğu sana makinesidir. Adımları yapılandıracak donanımlara sahip değilseniz veya bulut üzerinde çalışmak istiyorsanız. https://azure.microsoft.com/tr-tr/ adresi üzerinden Azure hesabı oluşturup, aşağıdaki ekran görüntülerini sırasıyla takip ederek bu yazıdaki demoyu hayata geçirmek için gerekli sanal makineyi oluşturabilirsiniz.
1-) Azure hesabınıza giriş yaptıktan sonra karşımıza çıkan gösterge panelinden gösterilen adımları takip ediniz.
2-) Sonraki adım olarak aşağıdaki ekran görüntüsü yardımıyla bir sonraki adıma geçiniz.
3-)Ardından karşımıza çıkan sayfada dikkat etmeniz gereken nokta Kullanıcı Adı ve Şifreyi bağlantı sırasında kullanacağımız için bir yere mutlaka not etmeniz.
4-) Demo için bizim kullandığımız sanal makine özellikleri aşağıda gösterildiği gibidir ihtiyacınız doğrultusunda farklı donanımlara sahip olan sanal makineleri tercih edebilirsiniz.
5-) Bu kısım sanal makinemizi ayrıntılı bir şekilde özelleştirmemiz için gerekli seçeneklerin bulunduğu yerdir. Demo özelinde böyle ayrıntılara ihtiyaç duymadığımız için tamam dedikten sonra sanal makinemizi oluşturabiliriz.
6-) Bu işlemleri tamamladıktan sonra kaynaklarım kısmında ismini verdiğimiz sanal makinemizi görebiliriz.
7-) Sanal makinemizin üzerine tıkladıktan sonra karşımıza çıkan göster panelinde önce başlat butonu ile sanal makinemizi hazırladıktan sonra, bağlan butonuna tıklayınız. Uzaktan bağlantı kurabilmek için çok hızlı bir şekilde .rdp uzantılı bir dosya indirecektir. İndirilen dosyayı çalıştırdıktan sonra sanal makinemizi oluştururken kullandığımız bilgiler ile sanal makinemize bağlanabiliriz
Sanal makinemize sorunsuz bir şekilde bağlantımızı gerçekleştirdikten sonra aşağıdaki adımları takip edebilecek duruma geldiğiniz demektir.
BAŞLANGIÇ ADIMLARI
Öncelikle ön paket yükleyicisi olan Anaconda’yı https://www.anaconda.com/download/ adresinden işletim sisteminize göre indirmemiz gerekiyor.
Kurulumumuzun ardından ekran görüntüsünün yönlendirmesi ile Anaconda Prompt’imizi açıyoruz. Konsol ekranında ilk olarak bize uygun olan ve kullanacağımız Python sürümünü
conda install python=3.5
komutu ile bilgisayarımıza indiriyoruz. Python 3.5 versiyonu ile bir çalışma alanı(environment) oluşturmamız gerekiyor bunun içinde
conda create -n py35 python=3.5 anaconda
komutunu kullanıyoruz. Hatırlatma olarak “py35″ çalışma alanınızın(environment) ismi istediğiniz gibi kişiselleştirebilirsiniz. Tüm bu işlemlerin ardından artık çalışma alınımız bilgisayarımızda hazır bir hale geldi, bunu aktif olarak kullanabilmek için
activate py35
komutunu kullanıyoruz.
CNTK KURULUMU
Kendi çalışma alanımızı oluşturduk. Şimdi bizim için gerekli olan kütüphaneleri çalışma alanımıza
pip install numpy scipy h5py jupyter easydict
komutu ile entegre etmemiz gerekiyor. Sırada asıl bizi ilgilendiren CNTK kurulumu var. Bunun için konsolumuza ilk olarak CPU uyumlu olan CNTK kurulumu için
pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp35-cp35m-win_amd64.whl
komutunu yazıyoruz böylelikle çalışma alanımıza CNTK kütüphanesini entegre etmiş olduk. İndirme işleminin ardından kontrol etmek için
python -c “import cntk; print(cntk.__version__)”
komutunu konsol üzerinde kullanarak CNTK versiyonunu kontrol edebilirsiniz.
Artık Microsoft tarafından yayınlanan örnekleri incelemeye başlayabiliriz. Bunun için kontrol ekranımıza
python -m cntk.sample_installer
komutunu kullanıyoruz. Bu işlem ile birlikte bilgisayarımıza CNTK-Samples-2-4 dosyasını indirmiş olduk. Başlat çubuğu CNTK-Samples-2-4 ile arama yapıp dosya konumunu istediğiniz yere taşıyabiliriz. Şuana kadar yaptığımız işlemlerin doğrulu kontrol etmek için.
CNTK-Samples-2-4 -> Tutorials -> NumpyInterop yoluna gittikten sonra python FeedForwardNet.py komutu ile python dosyamızı çalışılıyoruz.
FastRCNN Algoritmasının Çalıştırılması
Tüm kurulumları doğru bir şekilde gerçekleştirebildiysek FeedForwardNet.py dosyasını çalıştırdıktan sonra yukarıdaki gibi bir ekran görüntüsü elde etmeliyiz. Herhangi bir hata alıyorsanız önceki adımları tekrardan gözden geçiriniz.
Artık resimlerdeki objeleri algılamak için yazımızın başında bahsettiğimiz FastRCNN örneğini başlatabilmek için gerekli adımları gerçekleştirmeye hazırız. CNTK-Samples-2-4 dosyasının bulunduğu konuma içerisinde
pip install -r requirements.txt
komutu ile hangi kütüphanelere ihtiyacımız olduğunu gözlemleyebiliriz ve indirebilrisiniz.
conda install scikit-image opencv
komutu ile örnek için gerekli görüntü işleme kütüphaneleri çalışma alanımıza entegre etmemiz gerekiyor. Sonraki adım olarak pre-trained (önceden eğitilmiş) olan AlexNet modelini adresinden indirerek ..CNTK-Samples-2-4PretrainedModels yoluna taşıyınız. Bu işlemin artından artık veri setimizi indirme zamanımız geldi. Konsol ekranımız yardımıyla ..CNTK-Samples-2-4ExamplesImageDataSetsGrocery yoluna gittikten sonra
python install_grocery.py
komutu ile veri setimizi indiriyoruz. Modelimizi eğittikten sonra artık örneğimizi çalıştırma vaktimiz geldi. ..CNTK-Samples-2-4ExamplesImageDetectionFastRCNNBrainScript yoluna giderek önce
python A1_GenerateInputROIs.py
ile test ve eğitim için modelimize girdilerimizi entegre ediyoruz hemen ardından python A2_RunWithBSModel.py ile eğitimi gerçekleştiriyoruz. Ardından
python A3_ParseAndEvaluateOutput.py
ile elde ettiğimiz sonuçları gözlemlemiyoruz.
Elde edilen resim çıktılarını gözlemlemek için
python B1_VisualizeInputROIs.py
dosyasını çalıştırabilirsiniz.
Evet sonunda başardık! Görüntü işleme ile resimlerdeki objeleri CNTK derin öğrenme kütüphanesi ile algılama işlemini gerçekleştirdik. Bir sonraki yazımızda kendi veri setimizi nasıl eğitip, nasıl test edeceğimize dair örnekler üzerinde geliştirme yapacağız.
HATIRLATMA
bu aşamaya gelene kadar geride bıraktığımız aşamalara göz atmak için aşağıdaki linklere göz atabilirsiniz.
1-) Yeni Başlayanlar için Görüntü İşlemeye Giriş
2-) Görüntü İşleme için Öğrenilmesi Gereken Yapılar
3-) Görüntü İşleme için Gerekli Kurumlar ve İlk Örnek
Bir sonraki yazımızda görüşmek üzere…