Python Hakkında Ufak Bir Söyleşi

Python son yıllarda popülerliği gittikçe artan ve artmaya devam eden bir programlama dili. Bu yazımızda bu popülerliğin arkasındaki sebepleri, yadsınamaz büyüklükteki topluluğunu ve tabii ki dilin kendisini inceleyeceğiz.

Geçmiş

Herşey, Guido van Rossum tarafından, aslında bir hobi projesi olarak geliştirilen Python’un 1991 yılında duyurulmasıyla başladı. Tabii çok daha öncesinde, 1980’li yıllara dayanan bir tarihi bulunan Python, 1989 yılında implemente edilmeye başlanmış. 1994 yılının Ocak ayında 1.0 stabil sürümüne ulaşabilmiş, en son stabil sürümü olan 3.6.5’e ise 28 Mart 2018 tarihinde ulaşmıştır.

Bugün

Stack Overflow Blog sayfalarında yayınlanan 6 Eylül 2017 tarihli ‘The Incredible Growth of Python’ adlı yazıda, Dünya Bankası’nın yüksek gelirli olarak belirlediği ülkelerin diğer ülkelere oranla farklı teknolojiler kullandığı ifade ediliyor ve yapılan araştırma sonucu elde edilen verilere göre Python’ın bu ülkelerde en hızlı büyüyen programlama dili olduğu sonucuna varılıyor.

Peki Neden?

Benim nezdimde ilk nedenin yazım kolaylığı ve okunabilirliği olduğunu söyleyebilirim. Bu faktörler , dilin öğrenilmesini de ciddi oranda kolaylaştırıyor. İnternette yapabileceğiniz küçük çaplı bir araştırma ile de büyük bir çoğunluğun bu sebeplerle tercih ettiğini görebiliyorsunuz. Örneğin, diğer popüler programlama dilleri ile karşılaştırdığınızda direkt göze çarpan fark, dilin space-sensitive yani boşluğa duyarlı bir dil olması oluyor. Dilin dizayn felsefesine göre okunabilirliği arttırması amaçlı alınmış bir karar aslında bu. Bizzat Guido van Rossum’un The History of Python‘da yayınladığı ‘Python’s Design Philosopy’ yazısında bahsettiği gibi, direkt olarak kendisinin belirtmediği dizayn ilkelerinin, dilin gelişiminde büyük katkısı olan Tim Peters tarafından yazıya dökülmeye çalışılması ile ortaya çıkan Zen of Python maddelerinden bir tanesi de ‘Readability counts’ yani ‘Okunabilirlik önemlidir’ maddesidir. Tabii dilin bu kadar popüler olmasını sağlayan tek şey ‘yazım kolaylığı’ ya da ‘okunabililiği’ değil.

Yapay Zeka Çağı

Başka bir neden ise son yıllarda popüler olan fakat geçmişi aslında o kadar da yakın tarih olmayan, AI, Deep Learning, Neural Network gibi konulara çok kolay bir şekilde girebilmenizi sağlayacak bir çok paketin, örnek kodların ve topluluk desteğinin bulunması. Aslında anlayabileceğiniz üzere bu konular çokta “basit” değil. Sadece teknik yetkinlik yetersiz kalıyor çünkü bu teknik yetkinlikleri edinebilmek için zaten öncelikle kendinizi biyolojik ve felsefik olarak yeterli bilgiye sahip olacak şekilde geliştirmeniz gerekiyor. Çünkü temelinde yapmaya çalıştığınız şey bir bilgisayarın insan gibi düşünmesini sağlamak. Topluluk buradaki bariyeri, yukarıda bahsettiğim etmenler ile biraz daha aşağı çekmeye çalışarak daha çok insana ulaşabilmesini sağlıyorlar ve topluluğun günden güne büyüme hızının artması da bir şeyleri doğru yaptıklarının bir göstergesi olsa gerek.

Web Geliştirme

Tabii başka bir etmen de Web uygulamaları geliştirebilmeniz. ‘Web Uygulamaları Geliştirebileceğiniz Diller ve Platformlar’ yazısında da incelediğimiz, Django, Flask ve Pyramid gibi paketleri kullanarak hızlı bir şekilde web uygulamaları çıkartabiliyorsunuz. Burada da topluluk desteğinin oldukça yüksek olduğunu belirtmekte fayda var.

Gelecek

Bugün başlığı altındaki Stack Overflow yazısı, Python’ın geleceği hakkındaki görüşlerini de belirtiyor ve tahminlerde bulunuyor. Bugüne kadar aldıkları trafik verisi ile 2018 yılı dahil olmak üzere önündeki iki yılı tahminlemeye çalışan Stack Overflow, Python’ın 2020’ye kadar Java ile arasındaki farkı oldukça açacağını söylüyor. Ayrıca Java trafiklerinin, eğitim sistemlerinde oldukça ağırlıklı kullanılan bir dil olduğundan sonbahar ve ilkbahar dönemlerinde trafiğin arttığını ve yaza doğru azaldığı da belirlenmiş ve öngörüde bu bulgular da düşünülerek tahminleme yapılırken ‘Seasonal and Trend composition using Loess’ (STL) modeli kullanılmış.

Ayrıca, büyüme oranlarına göre de diller karşılaştırıldığında, Swift ve R’a göre çok daha hızlı şekilde büyüme kat ettiğini görüyoruz.

Sonuç

Python, öğrenme zorluğu düşük, geniş bir uygulama yelpazesine sahip ve topluluk tarafından oldukça destek gören, programlamaya yeni başlıyorsanız ya da başlamayı düşünüyorsanız eğer kesinlikle önerebileceğim bir dil.

Bir sonraki yazıda görüşmek üzere.

Microsoft Cognitive Toolkit ( CNTK ) FastRCNN-BrainScript ile Görüntü İşleme

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…

 

Görüntü işleme için Gerekli Kurulumlar ve İlk Örnek

Kurulum Adımları

Önceki yazımızda görüntü işleme için gerekli yapıları genel olarak inceledikten sonra;
1- İlk olarak Python programlama dilini belirttiğim adresten 2.7 sürümünü indirin ve kurulumunu tamamlayınız. https://www.python.org/downloads/#pubkeys
2- Sonra Visual Studio Code’u belirttiğim adresten size uygun olan işletim sistemine göre indirme işlemini yapıp, kurulumu tamamlayınız.
https://code.visualstudio.com/Download.
3- Ardından aşağıda bulunan ekran görüntüsündeki adımları uygulayarak Python programlama dilini kullanmak için gerekli eklentiyi entegre ediniz.

3- Bu adımdan sonra sol üst köşede bulunan file sekmesinden File > New File adamalarıyla yeni bir dosya oluşturunuz.
4- Ardından kodlarımızı geliştirmeye başlamadan önce Visual Studio Code’un Python dosyasını tanıyabilmesi için oluşturduğumuz dosyayı CTRL+ SHIFT+S (Farklı Kaydet) kısa yolu yardımıyla uzantısını .py olarak değiştirmelisiniz.
5- Bu işlemin ardından aşağıdaki fotoğrafı indirip .py uzantılı dosyanızla aynı klasöre taşıyışınız.



5- Artık kullanacağımız kütüphaneleri Visual Studio Code terminali vasıtasıyla indirmeye başlayabiliriz.
6- Python programlama dilinin bilimsel hesaplamaların temel kütüphanesi olan NumPy‘yi indirmek için terminale “pip install numpy” komutunu yazarak ulaşabilirsiniz.

7- Ardından görseller üzerinde gerekli manipüle işlemlerini yapabilmemiz için gerekli olan OpenCV kütüphanesini indirmek için terminale “pip install opencv-python” komutunu yazarak ulaşabilirsiniz.

Tebrikler eğer bu adıma kadar sorunsuz gelmeyi başardıysanız artık Python programlama dili ile geliştirmeye başlayabiliriz.

import numpy  
import cv2    

fotograf = cv2.imread('peakup.jpg')fotografGri = cv2.cvtColor(fotograf, cv2.COLOR_BGR2GRAY)
cv2.imwrite("peakupGri.jpg",fotografGri)


ret,fotografBW = cv2.threshold(fotografGri,110,240,cv2.THRESH_BINARY) 
cv2.imshow('Binary Fotograf', fotografBW)

cv2.imshow('Orijinal Fotograf', fotograf)
cv2.imshow('Gri tonlarina cevrilmis fotograf', fotografGri)
cv2.imwrite("peakup01.jpg",fotografBW)cv2.waitKey(0) 
cv2.destroyAllWindows()

kodların ayrıntılı açıklamalarına https://goo.gl/KUpwYk adresinden ulaşabilirsiniz.

ekteki kodu yazıp kaydettikten sonra Terminal tarafından dosyamızın bulunduğu ilgili dizine gidip “python demo.py” komutu ile kodlarımızı çalıştırabiliriz.

ve yazdığımız kod çıktımız aşağıdaki gibi gözükecektir. Aynı zamanda ilgili dizinde manipüle ettiğimiz fotoğrafların ayrı ayrı çıktılarını görebilirsiniz.

Bir sonraki yazımızda Python programlama dili ile daha kompleks görüntü işleme örneklerine değineceğiz. Sıradaki yazımızda görüşmek üzere…

Görüntü işleme için Öğrenilmesi Gereken Yapılar

Önceki yazımızda görüntü işleme konseptine giriş yapmıştık. Bu bölümde sizlere görüntü işleme ile ilgili bilinmesi gereken yapılar genel hatlarıyla tanıtılacaktır. Bu bilgiler ışığında ileri ki zamanlarda yapılacak olan geliştirmelerde karşı karşıya gelinebilecek sorunlar ve yapılacak araştırmalar daha efektif bir şekilde gerçekleştirilebilecektir.

1-Anaconda

Anakonda; Python, R programlama dili, veri bilimi ve bilimsel araştırmalar ile uğraşan insanlar için Anaconda kuruluşu tarafından geliştirilmiş bir ön yükleyicidir. Geliştirilen bu on yükleyici kullanıcıların işlerini büyük ölçüde kolaylaştırmaktadır. Yüklendiği zaman kendisiyle beraber veri işleme ve raporlama dahil olmak üzere bu işlemlerle ilgili 100’den fazla pakete otomatik olarak erişilebilmektedir. Aynı zamanda istenilen 600’den fazla paket conda yükleyicisi sayesinde rahatlıkla kurulabilmektedir. Daha fazla bilgi için https://www.anaconda.com/ adresine göz atabilirsiniz.

2- OpenCV

OpenCV (Open Source Computer Vision) açık kaynak kodlu görüntü işleme ve makine öğrenimi için geliştirilmiş bir yazılım kütüphanesidir. 2 ve 2.1 bir sürümleriyle Pyhton programlama dili desteği getirilmiştir. Google, Microsoft, IBM, Yahoo, Sony, Honda, Toyota gibi köklü şirketler tarafından aktif olarak kullanılmaktadır. OpenCV kütüphanesi içerisinde görüntü işlemeye ve makine öğrenmesine yönelik 2500’den fazla algoritma bulunmaktadır. Bu algoritmalar ile yüz tanıma, nesneleri ayırt etme, insan hareketlerini tespit edebilme, nesne sınıflandırma, plaka tanıma gibi bir çok işlem rahatlıkla yapılabilmektedir. Daha fazla bilgi için https://opencv.org/ adresine bakabilirsiniz. Alternatif görüntü işleme kütüphaneleri:
-OpenFrameworks
-Fiji
-Halcon
-Matlab
-Lead Tools
-Pink
-Image Magick
görüntü işleme kütüphanelerinin bazılarıdır.

3- Cognitive Toolkit

Daha önce CNTK olarak bilinen aynı zamanda Microsoft Cognitive Toolkit olarak adlandırılan, Microsoft araştırmacıları tarafından geliştirilmiş veri akış grafiklerinden faydalanarak sayısal hesaplama için kullanılan açık kaynak kodlu bir derin öğrenme kütüphanesidir. CNTK, kullanıcıların ileri beslemeli (DNN), konvolüsyonel sinir ağıları (CNN) ve tekrarlayan sinir ağları (RNN / LSTM) gibi popüler model türlerini kolaylıkla fark etmesini ve birleştirilmesine olanak sağlar. CNTK, çoklu GPU’lar ve sunucular arasında otomatik farklılaşma ve paralelleştirme ile stokastik inişini (SGD, hata geri yazılımı) ile uygular. Daha ayrıntılı bilgi için https://www.microsoft.com/en-us/cognitive-toolkit/ adresine göz atabilirsiniz. CNTK alternatif kütüphaneleri olarak:
– TensorFlow
– Theano
– Keras
– Infer.Net
– Torch
derin öğrenme kütüphanelerinden bazılarıdır.

4- Visual Studio Code

Microsoft tarafından geliştirilen Visual Studio Light olarak tanımlayabileceğimiz güçlü, kurulum kolaylığı ve işimize yarayan paketlere ulaşma rahatlığı açısından oldukça kullanışlı, JavaScript, TypeScript, Node.JS C++, C#, Java, Python, PHP, Go gibi programlama dillerini destekleyen aynı zamanda, Windows, macOS ve Linux işletim sistemlerinde kullanabileceğimiz bir geliştirme ortamıdır. Daha fazla bilgi için https://code.visualstudio.com/.Kısa bir tanıtımın ardından, genel olarak sonraki bölümlerde işleyeceğimiz konular için bilinmesi gereken genel yapılar bunlardır, belirtmeliyim ki her bir yapı kendi içerisinde çok derin incelenmesi gereken konu başları. Daha sonrasında hepsini teker teker daha ayrıntılı bir şekilde inceleyeceğiz. Bir sonraki yazımızda basit kurulum adımlarının ardından ilk örneğimizi hayata geçireceğiz.

Yeni Başlayanlar İçin Görüntü işleme’ye Giriş

Görüntü İşlemeye Giriş

Günümüzde teknoloji önüne geçilemez bir hızla gelişirken insan hayatına her gün birbirinden farklı buluş, yöntem ve teknikler girmektedir. Bundan birkaç sene öncesine kadar sadece bilim kurgu filmlerinde yer alan teknolojinin şu an insan hayatında yadsınamaz bir noktaya geldiği çok net bir şekilde görülmektedir. Blockchain, chatbotlar, sürücüsüz araçlar, nano teknoloji endüstrisi, sanal gerçeklik ve nesnelerin interneti gibi bir çok kavramı insan hayatına giren önemli noktalar arasında sıralamak mümkündür. Bu önemli noktalardan bir tanesi de Bilgisayar Bilimlerinde popüler araştırma alanları içerisinde yer alan ve günden güne artı gösteren görüntü işleme tekniğidir. Gelecek yıllarda hayatımızın daha derinlerinde yer edinecek görüntü işleme tekniğini ana hatlarıyla ele alalım.

Image Proccesing, görüntü işleme ile ilgili düzensiz çizgilerin ahenkle dansından ortaya çıkan insan yüzü
Çizgilerin birleşerek oluşturduğu insan silueti

Peki Görüntü İşleme Nedir?

Görüntü işleme: Dijital ortama aktarılmış görseller üzerinden ilgili ihtiyaca göre faydalı bilgiler elde etmek için farklı tekniklerle özdeşleştirebilen bir yöntemdir. Görüntü işleme yöntemi, kaydedilmiş olan belirli görüntülerin işlenip mevcut resim ve grafiklerin değiştirilerek yabancılaştırılması veya iyileştirilmesi için kullanılmaktadır. Örneklendirecek olursak, fotoğraf veya belgelerin taranıp dijital ortama aktarılırken yaşanan kalite düşüşlerini görmek mümkündür. İşte bu kalite düşüşleri sırasında görüntü işleme yöntemi devreye girmektedir. Düşen görüntü kalitesini ve görselde yaşanan bozulmaları en aza indirmek için görüntü işleme yöntemine başvurmaktayız. Başka bir örnek ise Google Earth üzerinden erişebildiğimiz haritalardır. Uydudan alınan görüntüler görüntü işleme teknikleri ile iyileştirilmektedir. Böylelikle insanlara daha kaliteli görseller sunulmaktadır. Bu ve daha bir çok farklı yerlerde kullanılabilen görüntü işleme hızla gelişen teknolojiler arasında yer almaktadır.
Aynı zamanda mühendislik ve bilgisayar bilimleri gibi disiplinlerin temel araştırma alanlarından biridir.

PeakUp Bilişim Teknolojileri logosu
PeakUp şirketinin logusu
PeakUp şirketi logosunun gri hali
PeakUp şirketi logosunun gri hali
PeakUp logosunun konturlenmiş hali
PeakUp logosunun konturlenmiş hali

Görüntü İşleme Nelerde Kullanılır?

Bu işlemlerin nasıl ilerlediğine değinmeden önce görüntü işlemenin genel olarak nerelerde ve nasıl kullanıldığına, göz atalım:

– Yüz tanıma ve güvenlik sistemleri.
– Demografik bilgi analizi.
– Trafik, astronomi, radar ve fotoğraf endüstrisi uygulamaları.
– Uygu görüntülerinden yararlanılarak nüfus yoğunluğunun tespit edilmesi.
– Radyoloji alanı (Tomografi, Ultrason vb.).
– Askeri Endüstri alanında hem su altındaki görüntülerin hem uydu görüntülerinin anlamlandırılması.
– Tıp alanı, çeşitli organ yapılarının ayırt edilmesinde
Daha fazla uygulama alanına bakmak için http://cvisioncentral.com/projects adresine göz atabilirsiniz.

Sokaktaki insanların görüntü işleme tekniği ile ekranda belirtilmesi
Görüntü işlemenin uygulandığı örnek bir görsel

Görüntü İşleme Adımları Nelerdir?

Görüntü işleme ile ilgili ana hatları öğrendikten sonra işlemlerin nasıl gerçekleştiğini anlamak gerekmektedir. Görüntü işleme temel olarak üç adımda incelenmektedir. – Gerekli araçlar ile imajı aktarılması
– Görüntünün analiz edilerek istenilen doğrultuda işlenmesi
– Analiz edilip işlenen veri raporu ve çıktısının, sonucunun alınması
Görüntü işleme adımlarının yanında görüntü işleme için iki tür yöntem kullanılmaktadır. Bunlardan ilki analog görüntü işleme diğeri dijital görüntü işleme yöntemidir. Dijital ve analog görüntü işleme için verinin geçmesi gereken birtakım temel aşamalar vardır. Bu aşamalar arasında:
– Ön işleme
– Geliştirme ve görüntüleme
– Bilgi çıkarımı
yer almaktadır. Bu asmaların ardından ilgili veriden ihtiyaca göre sonuçlar elde edilebilmektedir.

Görüntü işlemenin ayrıntılı bir şekilde gösterildiği şema
Görüntü İşleme İş Akış Şeması

Bir sonraki yazımızda Python ile görüntü işleme yapabilmek adına gerekli kurulumların yapılmasına değineceğiz. Sonraki yazımızda görüşmek üzere…