Kurs
Google, bilgisayarla görme ile ilgili görevleri gerçekleştirmek için Vision API adlı özel bir API'yi yayımlayalı epey oldu. Bilgisayarla görme, bir bilgisayarın bir görüntüyü nasıl işlediğiyle ilgilenen bir alandır. Biz insanlar için verilen bir görüntüden faydalı içgörüler çıkarmak oldukça kolaydır; peki bir bilgisayar bunu nasıl yapar?
Örneğin, bilgisayarınıza bir köpek resmi verdiğinizi ve bilgisayarın bir yazılım aracılığıyla kendisine verilen görüntünün bir köpeğe ait olduğunu söylediğini düşünün. İşte burada bilgisayarla görme devreye girer. Bilgisayarla görme başlı başına koca bir çalışma alanıdır ve Vision API, bilgisayarla görmeyle ilgili görevleri son derece kolay bir şekilde gerçekleştirmek için bir dizi yardımcı araç sunar. En güzel yanı da, bilgisayarla görme konusunda hiçbir deneyimi olmayan geliştiricilerin bile dokümantasyonunu inceleyerek Vision API'yi kullanabilmesidir.
Bu eğitim, sizi Vision API ile tanıştırmayı ve Python kodundan nasıl çağrılabileceğini göstermeyi amaçlamaktadır.
Not: Bu eğitime başlamadan önce genel olarak API'ler hakkında (Python ve Makine Öğrenimi perspektiflerinden) daha fazla bilgi edinmek isterseniz aşağıdaki kaynaklar oldukça faydalıdır:
Google'ın Vision API'si nedir? Daha Ayrıntılı Bir Giriş
Google, geliştiricilerin Vision teknolojisini kullanabilmesi için Makine Öğrenimi modellerini bir API içinde kapsüllemiştir. Vision API, görüntüleri hızla binlerce kategoriye sınıflandırabilir ve onlara mantıklı etiketler atayabilir. Hatta bir görüntü içindeki tekil nesneleri, yüzleri ve metin parçalarını bile tespit edebilir.
Çok üst düzeyde bakıldığında, Google'ın Vision API'si size iki şey yapma olanağı tanır:
- API'yi doğrudan kodunuzdan kullanarak, hem de ölçekli şekilde, güçlü görüntü analizi yapmak.
- Belirli kullanım durumunuz için daha fazla esneklik sağlamak üzere API'yi kullanarak özel modeller oluşturmak.
Bu API özellikle kullanışlıdır çünkü günümüzde "Full-Stack" uygulayıcılara duyulan ihtiyaç çok hızlı bir şekilde artmaktadır. Şimdi, bir Full-Stack web geliştiricisinin (bu, geliştiricinin web geliştirmenin hem ön yüz hem de arka yüz teknolojilerine hâkim olduğu anlamına gelir) yüklenen görüntüleri alıp türlerini tespit eden bir web sitesi yapmasının istendiği bir senaryo düşünün. Bu durumda, geliştiricinin arka uç kodunu verilen bir görüntüyü doğru şekilde algılayacak biçimde yazması gerekeceği için (eğer hâlihazırda yoksa) Bilgisayarla Görme konusunda hatırı sayılır bir bilgi gerekir. Ayrıca teslim tarihinin de çok uzak olmadığını varsayalım.
Böyle bir durumda, geliştiriciler Bilgisayarla Görmeyi sıfırdan öğrenip ardından gereken görevleri uygularsa teslim tarihini kaçırmaları daha olasıdır. Bunun yerine, önceden eğitilmiş bilgisayarla görme modellerini kullanıp geliştirme sürecinde alttaki kavramları öğrenmeleri daha pratik olacaktır. Vision API'nin tam da bu gibi durumlarda işe yaramasının nedeni budur. API, pek çok gerçek dünya iş senaryosuna hizmet eden, son teknoloji ürünü önceden eğitilmiş modeller sunar.
"Full-Stack" terimi, Makine Öğrenimi Mühendisi, Veri Bilimci gibi rollerle de ilişkilendirilmeye başlandı. Full-Stack Makine Öğrenimi Uygulayıcısı/Veri Bilimcisi'nin uçtan uca iş süreçlerini tasarlayıp geliştirmesi veya en azından bilmesi beklenir. Bunun içinde en kritik adımlardan biri olan "Üretime Hazır Modeller Geliştirme" yer alır; ilgili kişi/ekip geliştirilen modeli bir API ya da bir dizi API içine sarar ve üretim ortamına dağıtır. Üretim kavramı kullanım durumuna göre değişse de süreçlerin genel fikir/çerçevesi aynı kalır. Vision API, AutoML Vision BETA ile özel görme modellerini verimli şekilde eğitmenize olanak tanır.
Harika! Artık Vision API hakkında oldukça iyi bir genel bakışa sahip olmalısınız. Vision ana sayfasında yapabileceğiniz küçük bir deney, favori görsellerinizi analiz edip Vision'ın yardımıyla faydalı içgörüler çıkarmaktır. Bunu yapmak için adımlar şunlardır:
- Vision ana sayfasına gidin.
- "Try the API" adlı bir bölüm var. Arayüzüne bir görsel sürükleyip/buraya yüklemenize olanak tanır.

- Bir görsel verdiğinizde, size görselle ilgili bir dizi bilgi sunar:
Gördüğünüz gibi, Vision verilen görselle ilgili pek çok bilgiyi anında tespit etti. Görüntü hakkında daha fazlasını öğrenmek için diğer sekmeleri de keşfetmekten çekinmeyin.
Bu görevin milyarlarca görselden oluşan bir kümede gerçekleştirildiğini düşünün. Bu tür bir API kullanmak bu bakımdan şüphesiz çok verimli olacaktır. Şimdi, Vision API'nin sunduklarını ve API'nin hizmet verdiği bazı gerçek dünya kullanım örneklerini öğrenelim.
Vision API Neler Sunar - Bazı Niş Kullanım Örnekleri
Vision API, isabetli sonuçlarıyla bilinir. Vision API dokümantasyonu, API hakkında çok ayrıntılı içgörü sunan mükemmel bir eğitim koleksiyonu sağlar. Ancak ilk bakışta bunlar bunaltıcı görünebilir. Bu nedenle işleri basit tutmak için, Vision API'nin hâlihazırda hizmet verdiği birkaç kullanım örneğini öğreneceksiniz.
- Optik Karakter Tanıma (OCR): Bu, öncelikle bir görselden metin çıkarmayla ilgilenen, Bilgisayarla Görme'nin klasik bir örneğidir. Vision API bunu yapmak için pek çok son teknoloji yaklaşım içerir.
- Görüntü Özelliklerinin Tespiti: Önceki bölümde gerçekleştirdiğiniz görev budur. Vision API ile bir görselin genel özniteliklerini, baskın renk gibi özelliklerini alabilirsiniz.
- Etiket Tespiti: Bu görev, bir görseli içerdiği içeriğe göre bir etiketle (veya "tag") açıklama ekleyerek ilişkilendirir. Örneğin, bir köpek fotoğrafı "köpek", "hayvan" veya benzeri bir açıklama üretebilir. Bu, İçerik Tabanlı Bilgi Erişimi alanında temel bir adımdır.
- Yüz Tespiti: Verilen bir görsel veya görseller kümesi için, görev içlerindeki yüzleri tespit etmektir. Bunun Gözetim Sistemleri gibi geniş uygulama alanları vardır.
Bunlar, Vision API'nin sorunsuz şekilde çalıştığı mükemmel kullanım örneklerinden bazılarıdır ve yukarıdakilerden herhangi birini çok kısa sürede uygulamalarınıza entegre edebilirsiniz. Bu tür daha fazla kullanım örneği öğrenmek isterseniz, bu eğitimlere göz atmayı unutmayın.
Vision API, Go, C#, Java, PHP, Node.js, Python, Ruby gibi geniş bir yelpazede dil desteği sağlar. Sonraki bölümlerde Vision API'yi Python ile nasıl kullanacağınızı göreceksiniz.
Python için Vision API İstemci Kitaplığı
Vision API'nin Python sürümünü kullanmanın ilk adımı, onu kurmaktır. Kurmanın en iyi yolu pip kullanmaktır.
!pip install google-cloud-vision
Kurulum başarılı olduktan sonra, bir sonraki adımın başarılı olup olmadığını doğrulamaktır.
from google.cloud import vision
Yukarıdaki kod satırı başarıyla çalışıyorsa, devam etmeye hazırsınız. Google, Vision API'yi Python'da kullanma üzerine harika bir eğitim serisi sunar.
Şimdi, bir görselin baskın rengi gibi bazı genel özniteliklerini tespit edebilen basit bir Python uygulaması geliştireceksiniz.
Python ile Vision API Üzerine Bir Vaka Çalışması
Uygulamanız, girdi olarak bir görselin yolunu alacak ve ilgili görselin genel özniteliklerini görüntüleyecektir. Bu, görsellerin uygulamanın çalıştırılacağı bilgisayarda bulunduğu durumlarda kullanışlıdır. Peki ya görseli internetten okumanız gerekirse? Vision API, internetten görsel okumayı da destekler.
Bu vaka çalışmasında ilk senaryoyu ele almayı öğreneceksiniz. Ancak internetten okuma varyantını desteklemek yalnızca bir satır kod meselesidir.
Her zamanki gibi, google.cloud modülünden vision'ı içe aktararak başlayacaksınız.
from google.cloud import vision
Bir sonraki adım, görüntü özelliklerini çıkarmaya yönelik yardımcı araçları içeren ImageAnnotatorClient()'ı çağırmaktır.
client = vision.ImageAnnotatorClient()
GOOGLE_APPLICATION_CREDENTIALS ortam değişkeni ayarlanmadıysa muhtemelen bir hatayla karşılaşırsınız. Bunun nedeni, bu kitaplıkların uygulamanızın kimlik bilgilerini bulmak için Application Default Credentials (ADC) kullanmasıdır. Kodunuz bu tür kitaplıkları kullandığında, strateji kimlik bilgilerinizi denetler.
GOOGLE_APPLICATION_CREDENTIALS oluşturmayı öğrenmek için bu bağlantıyı izleyin. Amaç, kimlik doğrulama için kullanacağınız bir client_secrets.json dosyası oluşturmaktır.
client_secrets.json elde edildikten sonra, GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini ayarlamak için aşağıdaki kodu çalıştıracaksınız.
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
Artık aşağıdaki kodu çalıştırmak size herhangi bir hata vermemelidir.
client = vision.ImageAnnotatorClient()
Şimdi, verilen bir yoldan görsel okumaya yönelik kodu yazacaksınız.

import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
Bir görseli çalışma alanınıza başarıyla yüklediniz. Şimdi vision.types.Image türünde bir nesne oluşturacak ve argüman olarak content=content sağlayacaksınız.
image = vision.types.Image(content=content)
Artık Görüntü Özellikleri tespiti uygulamanızın son adımları kaldı. Bu adımlarda şunları yapacaksınız:
client.image_properties'i(image=image)argümanıyla çağırın.image_properties()yanıtınıresponseadlı bir değişkende saklayın ve görüntü özellikleriniresponse'ınimage_properties_annotationargümanını çağırarak çıkarın.- Görsellerin çeşitli özelliklerini biçimlendirilmiş bir şekilde görüntüleyin.
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
Uygulamanız için Vision API'yi etkinleştirmediyseniz yine hatalarla karşılaşabilirsiniz. API'yi etkinleştirmek son derece kolaydır ve hata izinde bunu hızlıca etkinleştirmenize yardımcı olacak yönergeler bulunur.
API'yi etkinleştirdikten sonra, Vision API'yi kullanmak için Faturalandırma'yı da etkinleştirmeniz gerekir. Görüntü Özellikleri tespiti araçları yalnızca 0,60 $ tutar. Bunlar tamamlandıktan sonra kod başarıyla çalışır ve çıktıyı üretir.

Tebrikler!
Vision API'yi kullanmanın ne kadar kolay olduğunu ve sunduğu araçların ne kadar düşük bir maliyetle erişilebilir olduğunu gördünüz. Bugün pek çok şirket ve kuruluş bu API'den, ister iş amaçlı ister araştırma için, fayda sağlıyor. Bu eğitimde Vision API'nin yalnızca yüzeyini çizdiniz, ancak bu, uygulamalarınız için Makine Öğrenimi API'lerini kullanmaya iyi bir başlangıç olacaktır.
Google'ın sunduğu tüm Makine Öğrenimi API'lerine göz attığınızdan emin olun; bu paket CloudML olarak bilinir.
Bu kolayca çağrılabilen API'lerin yardımıyla pek çok harika uygulama geliştirebilirsiniz. Vision API ve CloudML bağlantıları, onlarla kolayca pratik yapabilmeniz için harika bir eğitim derlemesi sunar. İyi şanslar!
Görüntü İşleme hakkında daha fazla bilgi edinmekle ilgileniyorsanız, DataCamp'in Görüntü İşleme için Evrişimsel Sinir Ağları kursuna göz atın.
