Computer Vision APİ Kullanımı

Selamlar,

Önceki yazımda RESTful api tasarlama ilkelerinden bahsetmiştim. Bu yazımda ise bu ilkeleri kullanarak bir api geliştireceğiz. Microsoft’un fotoğraf analizleri için geliştirdiği ve azure platformu üzerinde bizlere sunduğu Computer Vision API’sini kullanacağız. Projemizde kullanacağımız ekipmanlar ise şöyle;

  • .NET Core 1.1 Web API
  • Swagger
  • Azure Blob
  • Azure Computer Vision API

Projemiz API üzerinden bize post edilen imajı Azure Blob’a atacak. Bu esnada bu imaj Vision API aracılığıyla işlenecek ve taglenecek. Sonrasında biz bu imajları kategorilerine göre sınıflandırabileceğiz ya da tagler üzerinden arama yapabileceğiz.

Hadi başlayalım.

Öncelikler .NET Core Web API projesi oluşturalım. Daha sonra projemize RESTful apiler için dokümantasyon aracı olan Swagger’i kuralım.

Packege Manage Console’a aşağıdaki komutu verelim

Sonrasında Startup.cs içerisindeki gerekli yerlere eklemeleri yapalım.

Swagger aracını yüklemiş olduk. http://localhost:portNo/swagger/ adresine gittiğimizde aşağıdaki gibi bir ekranla karşılaşmamız lazım.

Şimdi ImageController isminde bir conroller oluşuralım. Sadece get ve post metotları olsun.

Swagger eklentimizde. Fotoğraflarımızı upload etmek için ufak birkaç değişiklik yapmamız gerekiyor ki aşağıdaki gibi dosyayı seçebilelim.

FileOperation isimli bir class oluşturalım. Startup.cs içinde aşağıdaki değişikleri yapalım.

Swagger aracındaki gerekli ayarlamaları yaptıktan sonra azure üzerinde blob yaratalım.

New>Storage>Storage Account

Sonrasında ise Blob Service içinde profileimages isminde bir container yaratalım. Aynı şekilde bir tane de computer vision api oluşturalım.

New>AI+Cognitive Services>Computer Vision API

Şimdi kodlarımızı yazmaya başlayabiliriz.

Blob container içine resmi upload edecek ve resmi çağırınca getirecek bir class yazalım.

NOT: Azure üzerinde blob oluşturduğumuzda blob ismini, konteyner ismini ve keyimizi bir yere not edelim ve aşağıdaki classta gerekli yerlere yazalım.

 

Yukarıdaki classta yükleyeceğimiz resmin ismini benzersiz yapmalıyız. Aksi taktirde aynı isimle resim yüklenirse çakışma olabilir bunu için FileNameHelper isimli bir class yazdım. Basitçe bir guid oluşturuyor.

Şimdi ise vision api ile yüklenen resmin taglemek için gerekli işlemleri yapan classımızı yazalım.

Son olarak endpointlerimizde yukarıda yazdığımız classları çağıralım.

 

Aşağıdaki resmi upload edelim ve taglarine bakalım.

Sonuçlarımıza bakalım.

Caption değerimiz : a young boy sitting at a table with a plate of food with broccoli

Categories: people_young  ve fotoğrafra 20’ye yakın tag oluşturdu şimdi ise bu taglerden birisi ile arama yapalım. Bakalım API miz bize bu fotoğrafın bilgilerini geri dönecek mi?

Projeyi buradan indirebilirisiniz

https://github.com/limanerkan/AzureBlobAndVisionApi

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir